ProEdge Level Work

This commit is contained in:
Brian Fertig 2025-08-02 12:23:31 -06:00
parent 47c815dd67
commit d09ac363c8
26 changed files with 1716 additions and 91 deletions

View File

@ -1000,7 +1000,7 @@
"visible":true,
"width":100,
"x":3792.67,
"y":1279.455
"y":1279.45
},
{
"gid":113,
@ -1028,7 +1028,7 @@
"visible":true,
"width":100,
"x":2392.55,
"y":1273.515
"y":1273.51
},
{
"gid":101,
@ -1701,6 +1701,17 @@
"width":100,
"x":5600,
"y":1500
},
{
"height":50.8333333333339,
"id":211,
"name":"proEdgeDungeon",
"rotation":0,
"type":"",
"visible":true,
"width":52.833333333333,
"x":4422.5,
"y":4245.33333333333
}],
"opacity":1,
"type":"objectgroup",
@ -1709,7 +1720,7 @@
"y":0
}],
"nextlayerid":7,
"nextobjectid":211,
"nextobjectid":213,
"orientation":"orthogonal",
"renderorder":"right-down",
"tiledversion":"1.11.2",

View File

@ -0,0 +1,55 @@
oooooh that ninety nine,
oooooh that ninety nine,
banana on my mind,
I love that ninety nine
ninety nine grape or pina colada
I want to drink a whole lotta
pineapple is oh so fine
Just give me more ninety nine
oooooh that ninety nine,
oooooh that ninety nine,
banana on my mind,
I love that ninety nine
No need to for a mixer
I just need a good fixer
It tastes like turpentine
But I love that ninety nine
oooooh that ninety nine,
oooooh that ninety nine,
banana on my mind,
I love that ninety nine
oooooh that ninety nine,
oooooh that ninety nine,
banana on my mind,
I love that ninety nine

Binary file not shown.

BIN
assets/music/99Dungeon3.mp3 Normal file

Binary file not shown.

BIN
assets/music/gulch-3.mp3 Normal file

Binary file not shown.

Binary file not shown.

BIN
assets/music/proEdge.mp3 Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 641 KiB

After

Width:  |  Height:  |  Size: 825 KiB

File diff suppressed because it is too large Load Diff

BIN
assets/sounds/explosion.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
assets/sounds/teleport.mp3 Normal file

Binary file not shown.

BIN
assets/sounds/vortex.mp3 Normal file

Binary file not shown.

BIN
assets/vortex.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

@ -3,7 +3,7 @@
"height": 4300,
"width": 2
},
"activeFile": "gulch.tmx",
"activeFile": "proedge.tmx",
"expandedProjectPaths": [
"."
],
@ -15,12 +15,12 @@
},
"NNDungeon.tmx": {
"expandedObjectLayers": [
4,
5,
3,
4
3
],
"scale": 0.5,
"selectedLayer": 1,
"selectedLayer": 4,
"viewCenter": {
"x": 6159,
"y": 644
@ -47,11 +47,11 @@
"scaleInDock": 1
},
"gulch.tmx": {
"scale": 0.25,
"selectedLayer": 1,
"scale": 2,
"selectedLayer": 3,
"viewCenter": {
"x": 2466,
"y": 4800
"x": 4517.25,
"y": 4397
}
},
"gulch.tmx#99boy-tiles": {
@ -60,6 +60,23 @@
"gulch.tmx#gulch-tiles": {
"scaleInDock": 0.5,
"scaleInEditor": 1
},
"proedge.tmx": {
"expandedObjectLayers": [
3
],
"scale": 0.33,
"selectedLayer": 2,
"viewCenter": {
"x": 3628.787878787879,
"y": 1960.6060606060605
}
},
"proedge.tmx#proedge-enemies": {
"scaleInDock": 1
},
"proedge.tmx#proedge-tiles": {
"scaleInDock": 0.5
}
},
"last.exportedFilePath": "C:/Git/legends/assets",
@ -73,13 +90,12 @@
"map.tileWidth": 100,
"map.width": 16,
"openFiles": [
"NNDungeon.tmx",
"gulch.tmx",
"gluch.tmx"
"proedge.tmx"
],
"project": "Tile-Project-Legends.tiled-project",
"property.type": "bool",
"recentFiles": [
"proedge.tmx",
"NNDungeon.tmx",
"gluch.tmx",
"gulch.tmx"

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.10" tiledversion="1.11.2" orientation="orthogonal" renderorder="right-down" width="58" height="63" tilewidth="100" tileheight="100" infinite="1" nextlayerid="7" nextobjectid="211">
<map version="1.10" tiledversion="1.11.2" orientation="orthogonal" renderorder="right-down" width="58" height="63" tilewidth="100" tileheight="100" infinite="1" nextlayerid="7" nextobjectid="213">
<editorsettings>
<export target="../assets/gulch.json" format="json"/>
<export target="../assets/proedge.json" format="json"/>
</editorsettings>
<tileset firstgid="1" name="gulch-tiles" tilewidth="100" tileheight="100" tilecount="100" columns="10">
<image source="../assets/gulch-tiles.png" width="1000" height="1000"/>
@ -1118,5 +1118,6 @@
</objectgroup>
<objectgroup id="6" name="zone">
<object id="37" name="99Dungeon" x="5600" y="1500" width="100" height="200"/>
<object id="211" name="proEdgeDungeon" x="4422.5" y="4245.33" width="52.8333" height="50.8333"/>
</objectgroup>
</map>

Binary file not shown.

View File

@ -1,29 +1,448 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.10" tiledversion="1.11.2" orientation="orthogonal" renderorder="right-down" width="16" height="9" tilewidth="100" tileheight="100" infinite="0" nextlayerid="4" nextobjectid="3">
<map version="1.10" tiledversion="1.11.2" orientation="orthogonal" renderorder="right-down" width="16" height="9" tilewidth="100" tileheight="100" infinite="1" nextlayerid="5" nextobjectid="19">
<editorsettings>
<export target="../assets/proedge.json" format="json"/>
</editorsettings>
<tileset firstgid="1" name="proedge-tiles" tilewidth="100" tileheight="100" tilecount="100" columns="10">
<image source="../assets/proedge-tiles.png" width="1000" height="1000"/>
<tile id="6">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="8">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="9">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="10">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="11">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="16">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="18">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="19">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="20">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="23">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="24">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="25">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="29">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="30">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="36">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="38">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="53">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="54">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="55">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="63">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="64">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
<tile id="65">
<properties>
<property name="collides" type="bool" value="true"/>
</properties>
</tile>
</tileset>
<tileset firstgid="101" name="proedge-enemies" tilewidth="100" tileheight="100" tilecount="100" columns="10">
<image source="../assets/proedge-enemies.png" width="1000" height="1000"/>
</tileset>
<layer id="1" name="main" width="16" height="9">
<data encoding="csv">
1,2,3,4,5,2684354612,2684354612,2684354602,2147483653,2147483652,2147483653,2147483652,2147483651,2147483650,2147483650,2147483649,
11,12,13,14,13,14,13,14,13,14,13,14,13,14,2147483660,2147483659,
21,22,23,23,24,24,24,24,24,24,24,24,24,24,2147483670,2147483669,
31,32,33,33,34,34,34,34,34,34,34,34,34,34,2147483680,2147483679,
42,22,24,33,34,34,34,34,34,34,34,34,34,34,2147483670,2147483690,
42,32,24,23,24,24,24,24,24,24,24,24,3221225506,3221225505,3221225504,3221225503,
52,22,34,33,34,34,34,34,34,34,34,34,3221225496,3221225495,3221225494,3221225493,
52,1610612748,1073741838,1073741837,1073741838,1073741837,1073741838,1073741837,1073741838,1073741837,1073741838,1073741837,3221225486,3221225485,3221225484,3221225483,
62,3221225477,3221225476,3221225475,3221225474,3221225477,3221225476,3221225475,3221225474,3221225477,3221225474,3221225477,3221225476,3221225475,3221225474,3221225473
</data>
<chunk x="0" y="0" width="16" height="16">
1610612762,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
3221225498,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,2684354586,
1610612762,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585
</chunk>
<chunk x="16" y="0" width="16" height="16">
1610612762,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
2,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
2,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
2,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
3221225498,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,1,2,3221225497,3221225497,3221225497,2684354586,
1610612762,25,25,25,25,25,25,25,25,25,1,2,25,25,25,26,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1
</chunk>
<chunk x="32" y="0" width="16" height="16">
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1610612762,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
2,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
2,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585
</chunk>
<chunk x="0" y="16" width="16" height="16">
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
3221225498,3221225496,1,2,1073741848,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,2684354586,
1610612762,2147483672,1,2,24,25,25,25,25,25,25,25,25,25,25,26,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,3758096408,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354584,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
3221225498,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,2684354586,
1610612762,2147483672,25,25,25,25,25,25,25,25,25,25,25,25,25,26,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354584
</chunk>
<chunk x="16" y="16" width="16" height="16">
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
3221225498,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,2684354586,
1610612762,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,
1610612760,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
2,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
2,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
536870936,2,3,1,2,3,1,2,3,1,2,3,1,2,3,3758096408,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354584,
3221225498,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,2684354586,
1610612762,2147483672,25,25,25,25,25,25,25,25,25,25,25,25,25,26,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354584
</chunk>
<chunk x="32" y="16" width="16" height="16">
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
3221225498,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,2684354586,
1610612762,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612760,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
2,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
2,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
536870936,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
3221225498,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,2684354586,
1610612762,2147483672,25,25,25,25,25,25,25,25,25,25,25,25,25,26,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354584
</chunk>
<chunk x="0" y="32" width="16" height="16">
1610612761,2,3,1,2,3,2684354584,2,3,1,536870936,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,2684354585,2,3,1,536870937,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,2684354585,2,3,1,536870937,3,1,2,3,2684354585,
3221225498,3221225497,3221225497,3221225497,3221225497,3221225497,1073741850,1,2,3,3221225498,3221225497,3221225497,3221225497,3221225497,2684354586,
1610612762,2147483672,25,25,25,25,26,1,2,3,2147483674,25,25,25,25,26,
1610612761,2,3,1,2,3,3758096409,2,3,1,1610612761,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,3758096409,2,3,1,1610612761,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,3758096408,2,3,1,1610612760,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354584,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
3221225498,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,2684354586,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
</chunk>
<chunk x="16" y="32" width="16" height="16">
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
3221225498,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,2684354586,
1610612762,2147483672,25,25,25,25,25,25,25,25,25,25,25,25,25,26,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354584,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
3221225498,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,2684354586,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
</chunk>
<chunk x="32" y="32" width="16" height="16">
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
3221225498,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,2684354586,
1610612762,2147483672,25,25,25,25,25,25,25,25,25,25,25,25,25,26,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354584,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
1610612761,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2684354585,
3221225498,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,3221225497,2684354586,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
</chunk>
</data>
</layer>
<layer id="2" name="objects" width="16" height="9">
<data encoding="csv">
<chunk x="0" y="0" width="16" height="16">
0,0,4,5,0,0,0,14,15,0,0,0,4,5,0,0,
0,11,12,13,0,0,0,0,0,0,0,0,0,0,0,0,
1610612741,21,22,23,0,0,0,0,0,0,6,7,8,0,0,3758096408,
1610612740,31,32,33,0,0,0,0,0,0,16,17,18,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1610612741,0,6,7,8,0,0,0,0,0,0,0,0,0,0,0,
1610612740,0,16,17,18,0,0,0,0,0,0,0,0,0,0,2684354584,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,56,0,0,0,0,0,0,54,55,37,38,39,54,55,0,
0,66,0,0,0,0,0,0,64,65,47,48,49,64,65,0,
1610612751,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1610612750,0,0,0,0,0,0,41,42,43,0,0,0,0,0,0,
0,0,0,0,0,0,0,51,52,53,0,0,0,0,0,0,
1610612751,0,0,0,0,0,0,61,62,63,0,0,0,9,10,0,
1610612750,0,0,0,0,0,0,0,0,0,0,0,0,19,20,0
</chunk>
<chunk x="16" y="0" width="16" height="16">
0,0,4,5,0,0,0,14,15,0,0,0,4,5,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,2684354591,2684354581,2684354571,0,
1610612760,0,0,0,0,0,0,0,0,0,0,0,2684354592,2684354582,2684354572,0,
0,0,0,0,0,0,0,35,36,0,0,0,2684354593,2684354583,2684354573,0,
0,0,0,0,0,0,0,45,46,0,0,0,0,9,10,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,19,20,0,
536870936,6,7,8,0,0,0,0,0,0,0,0,0,29,30,0,
0,16,17,18,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,3221225496,0,0,1073741848,0,0,0,
0,0,0,0,0,0,0,0,0,2147483672,0,0,24,0,0,0,
0,6,7,8,0,6,7,8,0,34,0,0,2147483661,2147483660,2147483659,0,
1610612741,16,17,18,0,16,17,18,0,0,0,0,2147483671,2147483670,2147483669,0,
1610612740,0,0,0,0,0,0,0,0,0,0,0,2147483681,2147483680,2147483679,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3758096408,
1610612751,2147483658,2147483657,0,0,0,0,0,0,0,0,0,0,0,0,0,
1610612750,2147483668,2147483667,0,0,0,0,0,0,0,0,0,0,0,0,0
</chunk>
<chunk x="32" y="0" width="16" height="16">
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,4,5,0,0,56,37,38,39,56,0,0,0,
0,0,0,0,6,7,8,0,66,47,48,49,66,0,28,0,
0,0,28,0,16,17,18,0,0,0,0,0,0,9,10,0,
0,0,0,0,0,0,41,42,43,0,0,0,0,19,20,0,
1610612760,0,0,0,0,0,51,52,53,0,0,0,0,29,30,0,
0,0,0,0,0,0,61,62,63,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
</chunk>
<chunk x="0" y="16" width="16" height="16">
0,0,0,0,0,0,0,0,0,0,0,0,0,29,30,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,54,55,35,36,54,55,0,0,0,44,0,
1610612751,0,0,0,0,64,65,45,46,64,65,0,0,0,0,0,
1610612750,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,
1610612751,1610612749,1610612759,1610612769,0,0,0,0,0,0,0,0,0,0,0,0,
1610612750,1610612748,1610612758,1610612768,0,0,0,0,0,0,0,0,0,0,0,0,
0,1610612747,1610612757,1610612767,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,56,37,38,39,56,0,0,0,0,0,
0,0,0,0,0,0,66,47,48,49,66,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
</chunk>
<chunk x="16" y="16" width="16" height="16">
0,2147483678,2147483677,34,0,0,0,0,0,0,0,0,0,0,34,2684354584,
0,0,0,0,1073741828,1073741829,0,0,0,0,1073741828,1073741829,0,0,0,0,
0,0,4,5,0,0,0,14,15,0,0,0,4,5,0,0,
0,44,0,34,27,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,34,27,0,0,0,0,
0,0,3221225477,3221225476,0,0,0,3221225487,3221225486,0,0,0,3221225477,3221225476,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
</chunk>
<chunk x="32" y="16" width="16" height="16">
536870936,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,37,38,39,0,0,0,0,0,0,0,0,0,0,0,0,
0,47,48,49,0,0,0,0,0,0,0,0,2684354591,2684354581,2684354571,0,
0,41,42,43,28,0,0,0,0,0,0,0,2684354592,2684354582,2684354572,0,
0,51,52,53,0,0,0,0,0,0,0,0,2684354593,2684354583,2684354573,0,
0,61,62,63,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,9,10,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,19,20,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,29,30,0,
0,0,0,0,3221225487,3221225486,0,0,0,0,0,3221225487,3221225486,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
</chunk>
</data>
</layer>
<layer id="4" name="candles" width="16" height="9">
<data encoding="csv">
<chunk x="32" y="0" width="16" height="16">
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,34,0,0,0,0,0,44,0,0,0,0,0,44,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
</chunk>
<chunk x="0" y="16" width="16" height="16">
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,44,0,0,0,0,0,44,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
</chunk>
<chunk x="32" y="16" width="16" height="16">
0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@ -33,19 +452,102 @@
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
</data>
</chunk>
</data>
</layer>
<objectgroup id="3" name="enemies">
<object id="1" gid="101" x="1096" y="498" width="100" height="100">
<object id="1" gid="101" x="4268" y="1638" width="100" height="100">
<properties>
<property name="fire" type="bool" value="true"/>
<property name="patrolX" type="int" value="-700"/>
</properties>
</object>
<object id="2" gid="111" x="904" y="702" width="100" height="100">
<object id="2" gid="111" x="1996" y="1410" width="100" height="100">
<properties>
<property name="follow" type="bool" value="true"/>
</properties>
</object>
<object id="4" gid="101" x="2696" y="302" width="100" height="100">
<properties>
<property name="fire" type="bool" value="true"/>
<property name="patrolY" type="int" value="500"/>
</properties>
</object>
<object id="5" gid="111" x="2274" y="1562" width="100" height="100">
<properties>
<property name="follow" type="bool" value="true"/>
</properties>
</object>
<object id="6" gid="111" x="2842" y="1486" width="100" height="100">
<properties>
<property name="follow" type="bool" value="true"/>
</properties>
</object>
<object id="7" gid="101" x="4386" y="1214" width="100" height="100">
<properties>
<property name="fire" type="bool" value="true"/>
<property name="patrolY" type="int" value="500"/>
</properties>
</object>
<object id="8" gid="111" x="2774" y="2070" width="100" height="100">
<properties>
<property name="follow" type="bool" value="true"/>
<property name="speed" type="int" value="300"/>
</properties>
</object>
<object id="9" gid="111" x="2146" y="2142" width="100" height="100">
<properties>
<property name="follow" type="bool" value="true"/>
<property name="speed" type="int" value="300"/>
</properties>
</object>
<object id="10" gid="111" x="2282" y="2526" width="100" height="100">
<properties>
<property name="follow" type="bool" value="true"/>
<property name="speed" type="int" value="300"/>
</properties>
</object>
<object id="11" gid="111" x="4330" y="2522" width="100" height="100">
<properties>
<property name="follow" type="bool" value="true"/>
<property name="speed" type="int" value="300"/>
</properties>
</object>
<object id="12" gid="111" x="122.727" y="3480.3" width="100" height="100">
<properties>
<property name="follow" type="bool" value="true"/>
<property name="speed" type="int" value="300"/>
</properties>
</object>
<object id="14" gid="111" x="1234.85" y="3877.27" width="100" height="100">
<properties>
<property name="follow" type="bool" value="true"/>
<property name="speed" type="int" value="300"/>
</properties>
</object>
<object id="15" gid="111" x="277.273" y="3877.27" width="100" height="100">
<properties>
<property name="follow" type="bool" value="true"/>
<property name="speed" type="int" value="300"/>
</properties>
</object>
<object id="16" gid="101" x="1195.45" y="4400" width="100" height="100">
<properties>
<property name="fire" type="bool" value="true"/>
<property name="patrolX" type="int" value="-1000"/>
</properties>
</object>
<object id="17" gid="101" x="295.455" y="4300" width="100" height="100">
<properties>
<property name="fire" type="bool" value="true"/>
<property name="patrolX" type="int" value="1000"/>
</properties>
</object>
<object id="18" gid="111" x="1356.06" y="3468.18" width="100" height="100">
<properties>
<property name="follow" type="bool" value="true"/>
<property name="speed" type="int" value="300"/>
</properties>
</object>
</objectgroup>
</map>

View File

@ -253,6 +253,12 @@ export class ProEdgeEnemy extends Phaser.GameObjects.Sprite {
// Create and fire garbage at 0.5 radians more than the base angle
this.createFireballProjectile(baseAngle + 0.8);
this.scene.sound.play('fireball-1');
this.scene.time.delayedCall(800, () => {
if (this.scene) {
this.scene.sound.play('fireball-2');
}
});
}
createFireballProjectile(angle) {
@ -270,15 +276,17 @@ export class ProEdgeEnemy extends Phaser.GameObjects.Sprite {
onComplete: () => {
const baseAngle = Phaser.Math.Angle.Between(fireball.x, fireball.y, player.x, player.y);
fireball.setVelocity(Math.cos(baseAngle) * this.fireballSpeed, Math.sin(baseAngle) * this.fireballSpeed);
this.scene.tweens.add({
targets: fireball,
angle: 720,
duration: 1500,
ease: 'Power1',
onComplete: () => {
fireball.destroy();
}
});
if (this.scene) {
this.scene.tweens.add({
targets: fireball,
angle: -720,
duration: 1500,
ease: 'Power1',
onComplete: () => {
fireball.destroy();
}
});
}
}
});
}
@ -287,20 +295,23 @@ export class ProEdgeEnemy extends Phaser.GameObjects.Sprite {
const player = this.scene.player;
this.prepShot();
this.scene.time.delayedCall(1000, () => {
const explosion = this.scene.physics.add.image(this.x, this.y, 'explosion');
this.scene.explosions.add(explosion);
this.scene.physics.world.enable(explosion);
this.scene.tweens.add({
targets: explosion,
angle: 120,
duration: 500,
ease: 'Power1',
alpha: .3,
scale: 3,
onComplete: () => {
explosion.destroy();
}
});
if (this.scene) {
const explosion = this.scene.physics.add.image(this.x, this.y, 'explosion');
this.scene.explosions.add(explosion);
this.scene.physics.world.enable(explosion);
this.scene.sound.play('explosion');
this.scene.tweens.add({
targets: explosion,
angle: 120,
duration: 500,
ease: 'Power1',
alpha: .3,
scale: 3,
onComplete: () => {
explosion.destroy();
}
});
}
this.destroy();
});

View File

@ -10,7 +10,7 @@ export class GlobalState {
startGulchY: 4250,
startNNX: 2400,
startNNY: 3350,
startProX: 350,
startProX: 800,
startProY: 250,
};
}

View File

@ -77,6 +77,10 @@ export class Gulch extends Phaser.Scene {
const NNDungeon = this.add.rectangle(object.x, object.y, object.width, object.height);
this.NNDungeon = this.physics.add.existing(NNDungeon);
}
if (object.name === 'proEdgeDungeon') {
const proEdgeDungeon = this.add.rectangle(object.x, object.y, object.width, object.height);
this.proEdgeDungeon = this.physics.add.existing(proEdgeDungeon);
}
});
// Add Enemies
@ -142,6 +146,12 @@ export class Gulch extends Phaser.Scene {
this.bgMusic.stop();
this.scene.start('NNDungeon');
});
this.physics.add.collider(this.player, this.proEdgeDungeon, (player, zone) => {
if (this.game.globalState.hasInventory('proEdgeLock') > 0) {
this.bgMusic.stop();
this.scene.start('ProEdge');
}
});
// Collision between bullets and enemies
this.physics.add.collider(this.bullets, this.enemies, (bullet, enemy) => {

View File

@ -15,6 +15,11 @@ export class ProEdge extends Phaser.Scene {
this.tall = 900;
this.topBound = 1100;
this.leftBound = 800;
// Lightning effect variables
this.lightningTimer = null;
this.isLightningActive = false;
this.lastLightningTime = 0;
}
preload() {
@ -23,6 +28,7 @@ export class ProEdge extends Phaser.Scene {
this.load.image('heart-empty', 'assets/heart-empty.png');
this.load.image('heart-upgrade', 'assets/heart-upgrade.png');
this.load.image('explosion', 'assets/explosion.png');
this.load.image('vortex', 'assets/vortex.png');
this.load.tilemapTiledJSON('proedgeMap', 'assets/proedge.json');
this.load.spritesheet('player-tiles', 'assets/player-tiles.png', {
frameWidth: 100,
@ -37,11 +43,18 @@ export class ProEdge extends Phaser.Scene {
frameHeight: 200
});
this.load.audio('dungeonMusic', 'assets/music/99Dungeon.mp3');
this.load.audio('proEdgeMusic', 'assets/music/proEdge.mp3');
this.load.audio('lightning-1', 'assets/sounds/lightning-1.mp3');
this.load.audio('lightning-2', 'assets/sounds/lightning-2.mp3');
this.load.audio('lightning-3', 'assets/sounds/lightning-3.mp3');
this.load.audio('teleport', 'assets/sounds/vortex.mp3');
this.load.audio('gunShot', 'assets/sounds/gun-shot.mp3');
this.load.audio('axeThrow', 'assets/sounds/axe.mp3');
this.load.audio('health-pickup', 'assets/sounds/health-pickup.mp3');
this.load.audio('player-damage', 'assets/sounds/player-damage.mp3');
this.load.audio('explosion', 'assets/sounds/explosion.mp3');
this.load.audio('fireball-1', 'assets/sounds/fireball-1.mp3');
this.load.audio('fireball-2', 'assets/sounds/fireball-2.mp3');
// Enemy Sounds
this.load.audio('swoosh', 'assets/sounds/swoosh.mp3');
@ -53,12 +66,53 @@ export class ProEdge extends Phaser.Scene {
const proedgeTiles = proedgeMap.addTilesetImage('proedge-tiles', 'proedge-tiles');
//const NNTiles = proedgeMap.addTilesetImage('99boy-tiles', '99boy-tiles');
const mainLayer = proedgeMap.createLayer('main', proedgeTiles, 0, 0)
.setCollisionByProperty({ collides: true });
//const objectsLayer = proedgeMap.createLayer('objects', dungeonTiles, 0, 0)
// .setCollisionByProperty({ collides: true });
.setCollisionByProperty({ collides: true })
.setTint(0x5555AA);
const objectsLayer = proedgeMap.createLayer('objects', proedgeTiles, 0, 0)
.setCollisionByProperty({ collides: true })
.setTint(0x5555AA);
const candlesLayer = proedgeMap.createLayer('candles', proedgeTiles, 0, 0)
.setCollisionByProperty({ collides: true })
.setAlpha(0.7);
const enemiesLayer = proedgeMap.getObjectLayer('enemies');
//const interactiveLayer = proedgeMap.getObjectLayer('interactive');
//const zoneLayer = proedgeMap.getObjectLayer('zones');
// Store references for lightning effect
this.mainLayer = mainLayer;
this.objectsLayer = objectsLayer;
// Add Portals
this.portals = this.physics.add.group();
let portal1A = this.physics.add.image(4250, 1010, 'vortex').setAlpha(.8).setData('destination', [3450, 2050]);
this.portals.add(portal1A);
let portal1B = this.physics.add.image(3450, 1910, 'vortex').setAlpha(.8).setData('destination', [4250, 1200]);
this.portals.add(portal1B);
let portal1C = this.physics.add.image(1150, 1010, 'vortex').setAlpha(.8).setData('destination', [850, 3000]);
this.portals.add(portal1C);
let portal1D = this.physics.add.image(850, 2810, 'vortex').setAlpha(.8).setData('destination', [1150, 1200]);
this.portals.add(portal1D);
// Make portals rotate 360 degrees every 5 seconds
this.portals.children.iterate((portal) => {
this.tweens.add({
targets: portal,
angle: -360,
duration: 5000,
repeat: -1,
ease: 'Linear'
});
this.tweens.add({
targets: portal,
alpha: .2,
glow: 0x008888,
yoyo: true,
duration: 3000,
repeat: -1,
ease: 'Linear'
});
});
// Show Score
this.interface = new Interface(this);
@ -164,13 +218,48 @@ export class ProEdge extends Phaser.Scene {
this.cursors = this.input.keyboard.createCursorKeys();
this.physics.add.collider(this.player, mainLayer);
// this.physics.add.collider(this.player, objectsLayer);
// this.physics.add.collider(this.enemies, mainLayer);
// this.physics.add.collider(this.enemies, objectsLayer);
this.physics.add.collider(this.player, objectsLayer);
this.physics.add.collider(this.enemies, mainLayer);
this.physics.add.collider(this.enemies, objectsLayer);
// this.physics.add.collider(this.player, this.interactive, touchInteractive);
this.physics.add.collider(this.player, this.enemies, (player, enemy) => {
player.takeDamage();
});
// Add collision between player and portals
this.physics.add.overlap(this.player, this.portals, (player, portal) => {
const destination = portal.getData('destination');
if (destination && Array.isArray(destination)) {
// Stop player movement and spin before teleporting
if (player.pauseMove === false) {
this.sound.play('teleport');
}
player.pauseMove = true;
// Create spinning animation
this.tweens.add({
targets: player,
angle: 720, // 2 full rotations (360 * 2)
duration: 1000,
ease: 'Linear',
onComplete: () => {
player.x = destination[0];
player.y = destination[1];
player.pauseMove = false;
}
});
this.tweens.add({
targets: player, // 2 full rotations (360 * 2)
duration: 1000,
scale: 0,
yoyo: true,
ease: 'Linear',
onComplete: () => {
player.setScale(1);
}
});
}
});
// this.physics.add.collider(this.player, this.Gulch, (player, zone) => {
// this.game.globalState.startNNX = 2400;
// this.game.globalState.startNNY = 3350;
@ -246,12 +335,32 @@ export class ProEdge extends Phaser.Scene {
this.cameras.main.setBounds(1600, 2700, 1600, 900);
// Background Music
this.bgMusic = this.sound.add('dungeonMusic', { volume: 0.5 });
this.bgMusic = this.sound.add('proEdgeMusic', { volume: 0.5 });
this.bgMusic.loop = true;
this.bgMusic.play();
}
update(time, delta) {
// Handle lightning effect in update loop
if (time - this.lastLightningTime > Phaser.Math.Between(10000, 20000)) {
if (!this.isLightningActive) {
this.isLightningActive = true;
this.lastLightningTime = time;
// Remove tints temporarily
this.mainLayer.setTint(0xFFFFFF);
this.objectsLayer.setTint(0xFFFFFF);
this.sound.play('lightning-'+Phaser.Math.Between(1, 3));
// Restore tints after random duration (100-300ms)
this.time.delayedCall(Phaser.Math.Between(100, 300), () => {
this.mainLayer.setTint(0x5555AA);
this.objectsLayer.setTint(0x5555AA);
this.isLightningActive = false;
});
}
}
this.player.update();
const onBounds = this.cameras.main.getBounds();