From 2eae71e0ac0ea40c0d3d2a9e65edeb59918d9fc7 Mon Sep 17 00:00:00 2001 From: Jakob Feldmann Date: Mon, 14 Aug 2023 22:24:29 +0200 Subject: [PATCH] feat: frog free progress ui, animtree bugfix --- ..._Hangar_Deep_Smooth_loop_stereo.wav.import | 4 +- ..._SciFi_Static_Tonal_loop_stereo.wav.import | 4 +- .../Shopping For The Future (LOOP).wav.import | 4 +- assets/ui/froggy-freed-ui.png | Bin 0 -> 340 bytes assets/ui/froggy-freed-ui.png.import | 35 +++ assets/ui/froggy-imprisoned-ui.png | Bin 0 -> 319 bytes assets/ui/froggy-imprisoned-ui.png.import | 35 +++ assets/ui/froggy-ui-collected.aseprite | Bin 0 -> 875 bytes assets/ui/froggy-ui-collected.png | Bin 0 -> 511 bytes assets/ui/froggy-ui-collected.png.import | 35 +++ blobby1.ico => icon.ico | Bin blobby1.png => icon.png | Bin blobby1.png.import => icon.png.import | 6 +- project.godot | 1 + src/Actors/Blobby/Blobby.tscn | 46 ++-- src/Actors/BlobbyCam.tscn | 5 +- src/Actors/Enemies/Enemy.gd | 2 - src/Actors/Enemies/Flyer.gd | 1 - src/Actors/Friendlies/BoundFrog.gd | 4 +- src/Actors/Friendlies/WhatAreFrog.gd | 15 +- src/Actors/Friendlies/WhatAreFrog.tscn | 2 + src/Autoload/GlobalAudio.gd | 13 +- src/Autoload/GlobalAudio.tscn | 10 +- src/Autoload/GlobalState.gd | 13 +- src/Autoload/GlobalState.tscn | 3 + src/BenefitialObjects/SavePoint.gd | 15 +- src/Contraptions/Portal/Portal.gd | 2 + src/Contraptions/Triggers/ElevatorButton.gd | 1 + src/Contraptions/Triggers/ElevatorButton.tscn | 9 +- src/Contraptions/Triggers/FrogFreeButton.gd | 4 + src/Levels/1 Tutorial Level.tscn | 254 +++++------------- src/Levels/2 Tutorial Level.tscn | 41 ++- src/Levels/3 Tutorial Level.tscn | 36 +-- src/Levels/4 Tutorial Level.tscn | 16 +- src/Levels/5 Tutorial Level.tscn | 20 +- src/Levels/6 Tutorial Level.tscn | 22 +- src/Levels/Actual Level 1.tscn | 24 +- src/Levels/Actual Level 2.tscn | 36 +-- src/Levels/Actual Level 3.tscn | 21 +- src/Levels/Templates/Template.tscn | 22 +- src/Platforms/FlyingPlatform.tscn | 11 +- src/Platforms/FlyingPlatformSmol.tscn | 11 +- src/Platforms/Spring/Spring.tscn | 2 +- src/Platforms/Spring/SpringPhysics.gd | 5 + src/Platforms/Spring/SpringPlatform.tscn | 10 +- src/Sounds/default_bus_layout.tres | 4 +- src/StateMachines/BlobbyStateMachine.gd | 5 +- src/UserInterface/Buttons/PlayButton.gd | 3 +- src/UserInterface/Buttons/RetryButton.gd | 1 - src/UserInterface/Screens/HUD.gd | 6 - src/UserInterface/Screens/HUD.tscn | 31 +-- .../Screens/MainMenu/AudioMenu.gd | 6 +- .../Screens/MainMenu/AudioMenu.tscn | 1 + .../Screens/MainMenu/LevelCheckBox.gd | 17 ++ .../Screens/MainMenu/LevelCheckBox.tscn | 152 +++++++++++ .../Screens/MainMenu/LevelList.gd | 15 +- .../Screens/MainMenu/MainScreen.gd | 1 + .../Screens/MainMenu/MainScreen.tscn | 5 +- src/UserInterface/TutorialThingy.gd | 3 +- src/UserInterface/TutorialThingy.tscn | 1 + src/Utilities/LevelState.gd | 41 +-- src/Utilities/SceneAudio.gd | 25 ++ src/Utilities/SceneAudio.tscn | 7 + 63 files changed, 698 insertions(+), 426 deletions(-) create mode 100644 assets/ui/froggy-freed-ui.png create mode 100644 assets/ui/froggy-freed-ui.png.import create mode 100644 assets/ui/froggy-imprisoned-ui.png create mode 100644 assets/ui/froggy-imprisoned-ui.png.import create mode 100644 assets/ui/froggy-ui-collected.aseprite create mode 100644 assets/ui/froggy-ui-collected.png create mode 100644 assets/ui/froggy-ui-collected.png.import rename blobby1.ico => icon.ico (100%) rename blobby1.png => icon.png (100%) rename blobby1.png.import => icon.png.import (73%) create mode 100644 src/UserInterface/Screens/MainMenu/LevelCheckBox.gd create mode 100644 src/UserInterface/Screens/MainMenu/LevelCheckBox.tscn create mode 100644 src/Utilities/SceneAudio.gd create mode 100644 src/Utilities/SceneAudio.tscn diff --git a/assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav.import b/assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav.import index 4dc7176..1401291 100644 --- a/assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav.import +++ b/assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav.import @@ -17,7 +17,7 @@ force/max_rate=false force/max_rate_hz=44100 edit/trim=false edit/normalize=true -edit/loop_mode=0 +edit/loop_mode=2 edit/loop_begin=0 -edit/loop_end=-1 +edit/loop_end=476280 compress/mode=0 diff --git a/assets/sounds/AMBIENCE_SciFi_Static_Tonal_loop_stereo.wav.import b/assets/sounds/AMBIENCE_SciFi_Static_Tonal_loop_stereo.wav.import index 36fdae8..964a5f5 100644 --- a/assets/sounds/AMBIENCE_SciFi_Static_Tonal_loop_stereo.wav.import +++ b/assets/sounds/AMBIENCE_SciFi_Static_Tonal_loop_stereo.wav.import @@ -17,7 +17,7 @@ force/max_rate=false force/max_rate_hz=44100 edit/trim=false edit/normalize=true -edit/loop_mode=0 +edit/loop_mode=2 edit/loop_begin=0 -edit/loop_end=-1 +edit/loop_end=216090 compress/mode=0 diff --git a/assets/sounds/Shopping For The Future (LOOP).wav.import b/assets/sounds/Shopping For The Future (LOOP).wav.import index 8e3fd94..4bc4e9d 100644 --- a/assets/sounds/Shopping For The Future (LOOP).wav.import +++ b/assets/sounds/Shopping For The Future (LOOP).wav.import @@ -17,7 +17,7 @@ force/max_rate=false force/max_rate_hz=44100 edit/trim=false edit/normalize=true -edit/loop_mode=0 +edit/loop_mode=2 edit/loop_begin=0 -edit/loop_end=-1 +edit/loop_end=1878660 compress/mode=0 diff --git a/assets/ui/froggy-freed-ui.png b/assets/ui/froggy-freed-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..1b765ef4e99c72d75f25bd004719caaa31e673f6 GIT binary patch literal 340 zcmV-a0jvIrP)Px$4oO5oR5*>Tl(7oJFc60SD-|+0brL#tQ&1nrQD4Bf(HC&-=$;AY7F|GTWeQ-kfO=muyVHIoTj=$c#ea9u~lihAIJKROy9gpffLp znKP!M_S@?8R`>^C*)uJgc@mwc1LBOm0kY27R&@-3r;3G5Zfi`_B3K;&qSv)YS$kFN msh=iucEMdQEd0000Px#`AI}UR5*>Tlgkl9BH%W>ou`zdYb_|Hz6SO+&^*t_cj{UKv@$7RBIjHIGR9Pc+`>{Psl501 z&g7s(2aa?B_I<~De-#_W>uLx@Ykhejh2~}G1(ZXabEkiCDf>bQMeVwp8|NG$geKe= z!!%8W>*AgXsJ2<8wLW#W3A>XxOo1W=#80}G*ELN$#`tbPD}{VM1+DAKIF4llQdw*9 z-lMfXjT}@{^#w@O)*4W_s=}6K!CKpl4zO)ob-sgV(eq0>3`2EX>3B~6&;xm`dVas0 R3|;^L002ovPDHLkV1jcLh(rJY literal 0 HcmV?d00001 diff --git a/assets/ui/froggy-imprisoned-ui.png.import b/assets/ui/froggy-imprisoned-ui.png.import new file mode 100644 index 0000000..8fd1e59 --- /dev/null +++ b/assets/ui/froggy-imprisoned-ui.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/froggy-imprisoned-ui.png-9d7f0cbdb0c652369f6c6dc41879bd61.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/ui/froggy-imprisoned-ui.png" +dest_files=[ "res://.import/froggy-imprisoned-ui.png-9d7f0cbdb0c652369f6c6dc41879bd61.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=false +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/ui/froggy-ui-collected.aseprite b/assets/ui/froggy-ui-collected.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..82c5f98732885120ed19ab8b980d5a60fb2bf7b9 GIT binary patch literal 875 zcmcJN{Yz6(9LCS8Ij{&rv4p6bZ)h*<#hi^vhAClFkqK6W>98iQ;qcuVMOYGCr2VjR zn%N7f#h7FT&SEPttkuxa)V0c%k-aFJx@Z$!+@7mZ{sVn4=fmNgAD+*{xhGc>^09+M zVo4~W2!{}I9P8i25Dt4tLh${MnO;T6!W?%gm5YFIEFQHKxgu^J`v@xL&q?%(o24y7 zNF=ozOpi+jl@cMS%aekxvRKf0LkW7GUI7=qVz6a02UI;4fJv81L0JhOl*^()QL+R~ zNvQ+{h4tXk(h0Drl>rL|K7;mm0g%BE(%NMP&!4#fmZ((VkvutAol1iykqC4iDgqs+ z9)UW;L6Fw4>5PN0bg^7m7zRDxjNt5-Mn;QzYuHy|tD_?Np&Xi_7CNC2+Mo)0padE~ zAMOx`HI(5CS=N+c;0Qt3K@DDzf)RA!!ivDc#pWX%$y?cA3jfC6ff3=6OojGDIVDVl z5|>)OWAK8@!~R3HR|oXM;B))J(yZ-P-ph=7>+_IdwL-B`-Y_B#y3BW#DQlu)qi5+} z0V7;A$ItMNZoqHN^wWBDcCzdBHC*03$my|#kB8R(9B{w^XngFqowT$;?S?6q_LK%dP#?G*J!#ap;G#(zfL;UU#ItP@VI_+x%q glc6Seq^ir>H>UB*+bwE`)et%PQ)l61%w5#~1`-QBfdBvi literal 0 HcmV?d00001 diff --git a/assets/ui/froggy-ui-collected.png b/assets/ui/froggy-ui-collected.png new file mode 100644 index 0000000000000000000000000000000000000000..130b1a18aa05f9bfc7d3666d7f2901e82dc0e903 GIT binary patch literal 511 zcmVPx$xk*GpR7i=2eV6-V(dmh(EoR-$Q-!W@# z`}dGa3IO;zLtO(wt^lwl1%T7(1g&+q1}?{i1lb}i|ESJkjCpyOn zYWn!fX9j>A-h`%tpt!^oQc7<^lVE*eoy+|}858833up5HFhiy<>_e}##@K&5WctEB zbW2NG@i~@qB7mZDcb#dR6SVF^HBE!XV!<@O6W_D#*|9vh0;nNTmL;^-kWzYA2*m|^ z@*nmah(z-fRG(WE73j_e`^%`YaCS3u5-EPOOpTRB- z?+!sRePTBp4{x0?)bQ>Q6h*;n9gj&J`$@XD_yt;$-Hz5y3G@H}002ovPDHLkV1m>q B;`RUl literal 0 HcmV?d00001 diff --git a/assets/ui/froggy-ui-collected.png.import b/assets/ui/froggy-ui-collected.png.import new file mode 100644 index 0000000..475a35b --- /dev/null +++ b/assets/ui/froggy-ui-collected.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/froggy-ui-collected.png-336ff92477b43674a6bd446e595e471d.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/ui/froggy-ui-collected.png" +dest_files=[ "res://.import/froggy-ui-collected.png-336ff92477b43674a6bd446e595e471d.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=false +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/blobby1.ico b/icon.ico similarity index 100% rename from blobby1.ico rename to icon.ico diff --git a/blobby1.png b/icon.png similarity index 100% rename from blobby1.png rename to icon.png diff --git a/blobby1.png.import b/icon.png.import similarity index 73% rename from blobby1.png.import rename to icon.png.import index 43a9a01..f898af2 100644 --- a/blobby1.png.import +++ b/icon.png.import @@ -2,15 +2,15 @@ importer="texture" type="StreamTexture" -path="res://.import/blobby1.png-02080f0b57c8ccaa15e26b1a3859acb0.stex" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" metadata={ "vram_texture": false } [deps] -source_file="res://blobby1.png" -dest_files=[ "res://.import/blobby1.png-02080f0b57c8ccaa15e26b1a3859acb0.stex" ] +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] [params] diff --git a/project.godot b/project.godot index 6e57522..73aa8d2 100644 --- a/project.godot +++ b/project.godot @@ -304,6 +304,7 @@ ui_click={ common/physics_fps=120 2d/thread_model=0 2d/cell_size=100 +common/physics_interpolation=true common/enable_object_picking=false [rendering] diff --git a/src/Actors/Blobby/Blobby.tscn b/src/Actors/Blobby/Blobby.tscn index 69324d2..7c40522 100644 --- a/src/Actors/Blobby/Blobby.tscn +++ b/src/Actors/Blobby/Blobby.tscn @@ -10,7 +10,7 @@ [ext_resource path="res://assets/effects/jump-point.png" type="Texture" id=8] [sub_resource type="RectangleShape2D" id=2] -extents = Vector2( 11.9219, 10.0313 ) +extents = Vector2( 14.9127, 5.98593 ) [sub_resource type="StreamTexture" id=62] load_path = "res://.import/blobby-spritesheet.png-205c8efc79bec685345a637ed2dcfc9b.stex" @@ -240,6 +240,8 @@ priority = 2 switch_mode = 2 auto_advance = true +[sub_resource type="AnimationNodeStateMachineTransition" id=171] + [sub_resource type="AnimationNodeStateMachineTransition" id=172] switch_mode = 2 auto_advance = true @@ -260,6 +262,7 @@ switch_mode = 2 auto_advance = true [sub_resource type="AnimationNodeStateMachineTransition" id=178] +priority = 0 [sub_resource type="AnimationNodeStateMachineTransition" id=137] @@ -273,8 +276,6 @@ auto_advance = true [sub_resource type="AnimationNodeStateMachineTransition" id=196] -[sub_resource type="AnimationNodeStateMachineTransition" id=203] - [sub_resource type="AnimationNodeStateMachine" id=47] states/duckTurn/node = SubResource( 126 ) states/duckTurn/position = Vector2( 1795.54, 241 ) @@ -289,27 +290,27 @@ states/idling/position = Vector2( 1375.63, -53.9546 ) states/jumpToFall/node = SubResource( 119 ) states/jumpToFall/position = Vector2( 1981.07, 404.104 ) states/jumping/node = SubResource( 125 ) -states/jumping/position = Vector2( 1368.79, 122.723 ) +states/jumping/position = Vector2( 1375.54, 117.961 ) states/runToJump/node = SubResource( 146 ) -states/runToJump/position = Vector2( 2119.34, 577.905 ) +states/runToJump/position = Vector2( 2194.36, 651.238 ) states/running/node = SubResource( 122 ) -states/running/position = Vector2( 2268.44, -53.9541 ) +states/running/position = Vector2( 2273.2, -53.7278 ) states/turnToRun/node = SubResource( 130 ) states/turnToRun/position = Vector2( 1795.54, -308.991 ) states/walking/node = SubResource( 133 ) states/walking/position = Vector2( 1795.54, -54 ) states/wallslideToJump/node = SubResource( 136 ) -states/wallslideToJump/position = Vector2( 1362.38, 336.342 ) +states/wallslideToJump/position = Vector2( 1374.76, 343.009 ) states/wallsliding/node = SubResource( 96 ) states/wallsliding/position = Vector2( 1795.54, 493.009 ) -transitions = [ "falling", "wallsliding", SubResource( 138 ), "wallsliding", "idling", SubResource( 139 ), "wallsliding", "wallslideToJump", SubResource( 140 ), "wallslideToJump", "jumping", SubResource( 141 ), "idling", "jumping", SubResource( 147 ), "runToJump", "jumping", SubResource( 148 ), "ducking", "jumping", SubResource( 149 ), "jumping", "jumpToFall", SubResource( 150 ), "jumpToFall", "falling", SubResource( 151 ), "ducking", "duckTurn", SubResource( 152 ), "duckTurn", "ducking", SubResource( 153 ), "falling", "ducking", SubResource( 154 ), "ducking", "falling", SubResource( 155 ), "ducking", "walking", SubResource( 156 ), "walking", "ducking", SubResource( 157 ), "idling", "ducking", SubResource( 158 ), "ducking", "idling", SubResource( 159 ), "ducking", "running", SubResource( 160 ), "running", "ducking", SubResource( 161 ), "running", "falling", SubResource( 162 ), "falling", "running", SubResource( 163 ), "walking", "falling", SubResource( 164 ), "falling", "walking", SubResource( 165 ), "falling", "idling", SubResource( 166 ), "idling", "walking", SubResource( 167 ), "walking", "idling", SubResource( 168 ), "walking", "turnToRun", SubResource( 169 ), "turnToRun", "walking", SubResource( 170 ), "turnToRun", "running", SubResource( 172 ), "idling", "idleTurn", SubResource( 173 ), "walking", "idleTurn", SubResource( 174 ), "idleTurn", "walking", SubResource( 175 ), "idling", "turnToRun", SubResource( 176 ), "turnToRun", "idling", SubResource( 177 ), "running", "runToJump", SubResource( 178 ), "wallsliding", "falling", SubResource( 137 ), "jumping", "wallsliding", SubResource( 189 ), "jumping", "idling", SubResource( 193 ), "jumping", "walking", SubResource( 194 ), "runToJump", "wallsliding", SubResource( 195 ), "jumpToFall", "idling", SubResource( 196 ), "running", "turnToRun", SubResource( 203 ) ] +transitions = [ "falling", "wallsliding", SubResource( 138 ), "wallsliding", "idling", SubResource( 139 ), "wallsliding", "wallslideToJump", SubResource( 140 ), "wallslideToJump", "jumping", SubResource( 141 ), "idling", "jumping", SubResource( 147 ), "runToJump", "jumping", SubResource( 148 ), "ducking", "jumping", SubResource( 149 ), "jumping", "jumpToFall", SubResource( 150 ), "jumpToFall", "falling", SubResource( 151 ), "ducking", "duckTurn", SubResource( 152 ), "duckTurn", "ducking", SubResource( 153 ), "falling", "ducking", SubResource( 154 ), "ducking", "falling", SubResource( 155 ), "ducking", "walking", SubResource( 156 ), "walking", "ducking", SubResource( 157 ), "idling", "ducking", SubResource( 158 ), "ducking", "idling", SubResource( 159 ), "ducking", "running", SubResource( 160 ), "running", "ducking", SubResource( 161 ), "running", "falling", SubResource( 162 ), "falling", "running", SubResource( 163 ), "walking", "falling", SubResource( 164 ), "falling", "walking", SubResource( 165 ), "falling", "idling", SubResource( 166 ), "idling", "walking", SubResource( 167 ), "walking", "idling", SubResource( 168 ), "walking", "turnToRun", SubResource( 169 ), "turnToRun", "walking", SubResource( 170 ), "running", "turnToRun", SubResource( 171 ), "turnToRun", "running", SubResource( 172 ), "idling", "idleTurn", SubResource( 173 ), "walking", "idleTurn", SubResource( 174 ), "idleTurn", "walking", SubResource( 175 ), "idling", "turnToRun", SubResource( 176 ), "turnToRun", "idling", SubResource( 177 ), "running", "runToJump", SubResource( 178 ), "wallsliding", "falling", SubResource( 137 ), "jumping", "wallsliding", SubResource( 189 ), "jumping", "idling", SubResource( 193 ), "jumping", "walking", SubResource( 194 ), "runToJump", "wallsliding", SubResource( 195 ), "jumpToFall", "idling", SubResource( 196 ) ] start_node = "idling" -graph_offset = Vector2( 958.54, -77.431 ) +graph_offset = Vector2( 1157.54, -22.431 ) [sub_resource type="AnimationNodeStateMachinePlayback" id=48] [sub_resource type="RectangleShape2D" id=1] -extents = Vector2( 12, 9.981 ) +extents = Vector2( 12, 8.99662 ) [sub_resource type="Animation" id=17] length = 0.001 @@ -3342,10 +3343,10 @@ tracks/10/loop_wrap = true tracks/10/imported = false tracks/10/enabled = true tracks/10/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), +"times": PoolRealArray( 0, 0.25, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1 ), "update": 0, -"values": [ Vector2( 1, 1 ) ] +"values": [ Vector2( 1, 1 ), Vector2( 1, 1 ), Vector2( 1, 1 ) ] } [sub_resource type="Animation" id=99] @@ -4218,7 +4219,7 @@ process_priority = -1 collision_mask = 254 [node name="CollisionPolygon2D" type="CollisionShape2D" parent="BlobbySkin"] -position = Vector2( 0.0469954, -10.0308 ) +position = Vector2( 0.0286326, -10.0053 ) scale = Vector2( 1.03, 1.04 ) shape = SubResource( 2 ) @@ -4233,10 +4234,12 @@ visible = false [node name="BlobbySprite" type="Sprite" parent="."] material = ExtResource( 2 ) position = Vector2( 0, -16 ) +scale = Vector2( -1, 1 ) texture = SubResource( 62 ) +offset = Vector2( 1, 0 ) hframes = 6 vframes = 6 -frame = 12 +frame = 5 __meta__ = { "_editor_description_": "YXNlcHJpdGVfd2l6YXJkX2NvbmZpZwpwbGF5ZXJ8PUJsb2JieVNwcml0ZS9CbG9iYnltYXRpb25QbGF5ZXIKc291cmNlfD1yZXM6Ly9hc3NldHMvYmxvYmJ5L2Jsb2JieS1zcHJpdGVzaGVldHQuYXNlcHJpdGUKbGF5ZXJ8PUJsb2JieQpvcF9leHB8PUZhbHNlCm9fZm9sZGVyfD0Kb19uYW1lfD0Kb25seV92aXNpYmxlfD1GYWxzZQpvX2V4X3B8PQo=" } @@ -4245,7 +4248,6 @@ __meta__ = { unique_name_in_owner = true tree_root = SubResource( 47 ) anim_player = NodePath("../BlobbymationPlayer") -active = true root_motion_track = NodePath(".") parameters/playback = SubResource( 48 ) parameters/ducking/blend_position = 1.0 @@ -4254,7 +4256,7 @@ parameters/idling/blend_position = 1.0 parameters/jumpToFall/blend_position = 1.0 parameters/jumping/blend_position = 1.0 parameters/runToJump/blend_position = 1.0 -parameters/running/blend_position = 1.00101 +parameters/running/blend_position = 1.0 parameters/turnToRun/blend_position = 1.0 parameters/walking/blend_position = 1.0 parameters/wallslideToJump/blend_position = 1.0 @@ -4341,7 +4343,7 @@ position = Vector2( 0, -9 ) scale = Vector2( 0.48, 0.48 ) [node name="BlobbyBody" type="CollisionShape2D" parent="." groups=["player"]] -position = Vector2( -0.0184917, -10.0133 ) +position = Vector2( 0.0392303, -10.002 ) shape = SubResource( 1 ) [node name="WallRaycasts" type="Node2D" parent="."] @@ -4350,13 +4352,13 @@ position = Vector2( 0, -1 ) [node name="LeftWallRaycast" type="Node2D" parent="WallRaycasts"] [node name="Left_Wallcast1" type="RayCast2D" parent="WallRaycasts/LeftWallRaycast"] -position = Vector2( -12, -9.013 ) +position = Vector2( -11.9763, -5 ) enabled = true cast_to = Vector2( -2, 0 ) collision_mask = 40 [node name="Left_Wallcast2" type="RayCast2D" parent="WallRaycasts/LeftWallRaycast"] -position = Vector2( -12, -1.942 ) +position = Vector2( -11.9763, 5 ) enabled = true cast_to = Vector2( -2, 0 ) collision_mask = 40 @@ -4364,13 +4366,13 @@ collision_mask = 40 [node name="RightWallRaycast" type="Node2D" parent="WallRaycasts"] [node name="Right_Wallcast1" type="RayCast2D" parent="WallRaycasts/RightWallRaycast"] -position = Vector2( 12.0573, -9.0133 ) +position = Vector2( 12.0551, -5 ) enabled = true cast_to = Vector2( 2, 0 ) collision_mask = 40 [node name="Right_Wallcast2" type="RayCast2D" parent="WallRaycasts/RightWallRaycast"] -position = Vector2( 12.0573, -1.94163 ) +position = Vector2( 12.0551, 5 ) enabled = true cast_to = Vector2( 2, 0 ) collision_mask = 40 diff --git a/src/Actors/BlobbyCam.tscn b/src/Actors/BlobbyCam.tscn index f02c3f1..c69baab 100644 --- a/src/Actors/BlobbyCam.tscn +++ b/src/Actors/BlobbyCam.tscn @@ -889,6 +889,7 @@ animations = [ { } ] [node name="BlobbyCam" type="Camera2D"] +physics_interpolation_mode = 2 material = ExtResource( 38 ) z_index = 3 rotating = true @@ -1030,10 +1031,10 @@ texture = ExtResource( 8 ) [node name="AnimatedSprite" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"] frames = SubResource( 7 ) -frame = 4 +frame = 13 playing = true [node name="AnimatedSprite2" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"] frames = SubResource( 8 ) -frame = 9 +frame = 4 playing = true diff --git a/src/Actors/Enemies/Enemy.gd b/src/Actors/Enemies/Enemy.gd index 97d8ab9..cc7e9d8 100644 --- a/src/Actors/Enemies/Enemy.gd +++ b/src/Actors/Enemies/Enemy.gd @@ -22,8 +22,6 @@ func _on_StompDetector_body_entered(body: Node) -> void: func die() -> void: queue_free() - # TODO make batterr - levelState.kills += 1 func _on_EnemySkin_area_entered(area:Area2D) -> void: if area.is_in_group("harmful"): diff --git a/src/Actors/Enemies/Flyer.gd b/src/Actors/Enemies/Flyer.gd index b992609..a2cdb76 100644 --- a/src/Actors/Enemies/Flyer.gd +++ b/src/Actors/Enemies/Flyer.gd @@ -156,7 +156,6 @@ func update_navigation() -> void: nav_agent.set_target_location(next_waypoint) func die() -> void: - levelState.kills += 1 queue_free() func get_facing_direction() -> float: diff --git a/src/Actors/Friendlies/BoundFrog.gd b/src/Actors/Friendlies/BoundFrog.gd index 1533884..1fa743e 100644 --- a/src/Actors/Friendlies/BoundFrog.gd +++ b/src/Actors/Friendlies/BoundFrog.gd @@ -8,6 +8,7 @@ onready var signalManager := get_tree().root.get_child(4).get_node("%SignalManag var Rope = preload("res://src/Contraptions/Rope/Rope.tscn") var RopeAnchor = preload("res://src/Contraptions/Rope/RopeAnchor.tscn") +var frog_number var rope var is_first_signal = true @@ -26,6 +27,7 @@ func _on_level_loaded() -> void: rope.spawn_rope($WhatAreFrog.global_position, $RopeAnchor.global_position, movement_radius, false) $WhatAreFrog.tilemap = tilemap $WhatAreFrog.bind_to_anchor($RopeAnchor, movement_radius) + frog_number = $WhatAreFrog.frog_number # Executes on frog death # The old switchero @@ -54,9 +56,9 @@ func disconnect_rope() -> void: func _on_FrogFreeButton_pushed() -> void: - $WhatAreFrog.levelState.frees += 1 $WhatAreFrog.is_bound = false $WhatAreFrog/LeashAnchor.visible = false $WhatAreFrog.remove_from_group("harmful") + levelState.free_a_frog(frog_number) disconnect_rope() is_first_signal = false diff --git a/src/Actors/Friendlies/WhatAreFrog.gd b/src/Actors/Friendlies/WhatAreFrog.gd index e391316..127de2f 100644 --- a/src/Actors/Friendlies/WhatAreFrog.gd +++ b/src/Actors/Friendlies/WhatAreFrog.gd @@ -15,6 +15,7 @@ onready var rng = RandomNumberGenerator.new() onready var invincible_shader = preload("res://src/Actors/Blobby/InvincibleShader.tres") # Is given in blocks +export var frog_number := 0 export var vision_distance := 6.0 export var attack_jump_range := 6.0 export var loose_target_seconds := 3.0 @@ -64,17 +65,24 @@ func _ready(): target_lost_timer.connect("timeout", self, "loose_target") add_child(jump_timer) add_child(target_lost_timer) + # TODO this is so bad ;_; + if(get_parent().name.begins_with("Bound")): + is_bound = true + else: + levelState.free_a_frog(frog_number) + levelState.register_frog(frog_number, !is_bound) # TODO Stays harmless for now #if(is_bound): add_to_group("harmful") - $LeashAnchor.visible = is_bound func bind_to_anchor(anchor_node: Node2D, radius: float ) -> void: anchor = anchor_node movement_radius = radius * block_size is_bound = true - $LeashAnchor.visible = true - + # TODO multiple free frogs + $Digit.visible = true + $Digit.frame = frog_number + $LeashAnchor.visible = is_bound func execute_movement(delta: float) -> void: @@ -108,7 +116,6 @@ func execute_movement(delta: float) -> void: func die() -> void: - levelState.kills += 1 queue_free() diff --git a/src/Actors/Friendlies/WhatAreFrog.tscn b/src/Actors/Friendlies/WhatAreFrog.tscn index 9a83fb3..6a6aea1 100644 --- a/src/Actors/Friendlies/WhatAreFrog.tscn +++ b/src/Actors/Friendlies/WhatAreFrog.tscn @@ -459,12 +459,14 @@ align = 1 valign = 1 [node name="Digit" type="Sprite" parent="."] +visible = false position = Vector2( 0, -3 ) z_index = 1 texture = ExtResource( 5 ) hframes = 10 [node name="LeashAnchor" type="Sprite" parent="."] +visible = false position = Vector2( 0, 2 ) rotation = 3.92699 z_index = 2 diff --git a/src/Autoload/GlobalAudio.gd b/src/Autoload/GlobalAudio.gd index 3ea1930..8b8100e 100644 --- a/src/Autoload/GlobalAudio.gd +++ b/src/Autoload/GlobalAudio.gd @@ -1,7 +1,11 @@ extends Node +onready var players: Dictionary = {} var disposable_player: AudioStreamPlayer -func play_scene_independent(sound_name: String, bus: String = "Master", attenuation: float = 0.0) -> void: + +func play_scene_independent(sound_name: String, bus: String = "Master", attenuation: float = 0.0, singleton = false) -> void: + if singleton && players.has(sound_name): + return disposable_player = AudioStreamPlayer.new() add_child(disposable_player) disposable_player.stream = GlobalState.sound_library[sound_name] @@ -9,6 +13,13 @@ func play_scene_independent(sound_name: String, bus: String = "Master", attenuat disposable_player.bus = bus disposable_player.play() disposable_player.connect("finished", self, "dispose_player") + players[sound_name] = disposable_player func dispose_player(player: AudioStreamPlayer = disposable_player) -> void: + if player == null: return player.queue_free() + +func stop_scene_independent(sound_name: String): + if players.has(sound_name): + dispose_player(players[sound_name]) + players.erase(sound_name) diff --git a/src/Autoload/GlobalAudio.tscn b/src/Autoload/GlobalAudio.tscn index b327b56..d818415 100644 --- a/src/Autoload/GlobalAudio.tscn +++ b/src/Autoload/GlobalAudio.tscn @@ -1,13 +1,7 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=2 format=2] [ext_resource path="res://src/Autoload/GlobalAudio.gd" type="Script" id=1] -[ext_resource path="res://assets/sounds/Shopping For The Future (LOOP).wav" type="AudioStream" id=2] [node name="GlobalAudio" type="Node"] +pause_mode = 2 script = ExtResource( 1 ) - -[node name="MenuMusic" type="AudioStreamPlayer" parent="."] -stream = ExtResource( 2 ) -volume_db = -15.0 -autoplay = true -bus = "Music" diff --git a/src/Autoload/GlobalState.gd b/src/Autoload/GlobalState.gd index d09d369..6238c29 100644 --- a/src/Autoload/GlobalState.gd +++ b/src/Autoload/GlobalState.gd @@ -20,8 +20,8 @@ func load_sounds() -> void: if file_name == "": break var sound_file - if file_name.ends_with(".ogg") || file_name.ends_with(".wav"): - sound_file = load(path + "/" + file_name) + if file_name.ends_with(".import"): + sound_file = load(path + "/" + file_name.split(".import")[0]) sound_library[sound_file.resource_path] = sound_file dir.list_dir_end() @@ -36,10 +36,19 @@ func save() -> void: SaveManager.save_default() func set_savepoint(levelName: String, position: Vector2) -> void: + #TODO You can free a frog, go to the checkpoint and it will be + # saved as freed forever if(!gsr.progress_dict.has(levelName)): gsr.progress_dict[levelName] = {} gsr.progress_dict[levelName]["savepoint"] = position SaveManager.save_default() + +func remove_savepoint(levelName: String) -> void: + if(!gsr.progress_dict.has(levelName)): + return + gsr.progress_dict[levelName].erase(levelName) + SaveManager.save_default() + func get_property_value(levelName: String, propertyName: String) -> int: if gsr.progress_dict.has(levelName) && gsr.progress_dict[levelName].has(propertyName): diff --git a/src/Autoload/GlobalState.tscn b/src/Autoload/GlobalState.tscn index cc1f09c..0aeb612 100644 --- a/src/Autoload/GlobalState.tscn +++ b/src/Autoload/GlobalState.tscn @@ -8,6 +8,9 @@ script = ExtResource( 2 ) progress_dict = { } wallet = 0 +last_played_level = "" +settings = { +} tutorial_prompts = { } input_map = { diff --git a/src/BenefitialObjects/SavePoint.gd b/src/BenefitialObjects/SavePoint.gd index a6e0aae..cc6054d 100644 --- a/src/BenefitialObjects/SavePoint.gd +++ b/src/BenefitialObjects/SavePoint.gd @@ -3,13 +3,16 @@ extends Node2D onready var levelState := get_tree().root.get_child(4).get_node("%LevelState") func _ready() -> void: - if(GlobalState.get_savepoint(levelState.levelName) == global_position + Vector2(0,18)): - $AnimationPlayer.play("rolloutflag") + if(GlobalState.get_savepoint(levelState.levelName) == global_position + Vector2(0,18)): + $Flag.material.set_shader_param("speed", 0.6) + $Flag.material.set_shader_param("amplitude", 1) + $Flag.material.set_shader_param("inclination", 1) + $Flag.texture_offset = Vector2(0,0) #TODO Animation plays over again on reset #TODO What should be saved when reaching a savepoint besides the position in the level func _on_SaveArea_area_entered(area: Area2D) -> void: - #TODO Spawnheight fixed - if(!GlobalState.get_savepoint(levelState.levelName) == global_position + Vector2(0,18)): - $AnimationPlayer.play("rolloutflag") - GlobalState.set_savepoint(levelState.levelName, global_position + Vector2(0,18)) + #TODO Spawnheight fixed + if(!GlobalState.get_savepoint(levelState.levelName) == global_position + Vector2(0,18)): + $AnimationPlayer.play("rolloutflag") + GlobalState.set_savepoint(levelState.levelName, global_position + Vector2(0,18)) diff --git a/src/Contraptions/Portal/Portal.gd b/src/Contraptions/Portal/Portal.gd index 04f5d99..90bad21 100644 --- a/src/Contraptions/Portal/Portal.gd +++ b/src/Contraptions/Portal/Portal.gd @@ -13,10 +13,12 @@ func _get_configuration_warning() -> String: return "The next scene property can't be empty" if not next_scene else "" func level_completion() -> void: + GlobalState.remove_savepoint(levelName) signalManager.emit_signal("level_completed") func teleport() -> void: + GlobalAudio.play_scene_independent("res://assets/sounds/MAGIC_SPELL_Morphing_Synth_Harp_Scales_stereo.wav", "Music", -8) get_tree().paused = true anim_player.play("fade_in") # TODO This doesn't pause the game but should diff --git a/src/Contraptions/Triggers/ElevatorButton.gd b/src/Contraptions/Triggers/ElevatorButton.gd index 6450ebf..b92f807 100644 --- a/src/Contraptions/Triggers/ElevatorButton.gd +++ b/src/Contraptions/Triggers/ElevatorButton.gd @@ -30,6 +30,7 @@ func selfActivate(): elevator.monitoring = true #TODO dis importante activatorArea.set_deferred("monitoring", false) + $GetBackMusic.play() func _on_ActivatorArea_area_entered(area:Area2D) -> void: diff --git a/src/Contraptions/Triggers/ElevatorButton.tscn b/src/Contraptions/Triggers/ElevatorButton.tscn index b6873ed..935fc2d 100644 --- a/src/Contraptions/Triggers/ElevatorButton.tscn +++ b/src/Contraptions/Triggers/ElevatorButton.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=11 format=2] +[gd_scene load_steps=12 format=2] [ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.gd" type="Script" id=1] [ext_resource path="res://assets/contraption/button.png" type="Texture" id=2] [ext_resource path="res://assets/contraption/buttonStateIndicator.png" type="Texture" id=3] [ext_resource path="res://assets/ui/sci-fi-godot-theme/sci-fi-pixel.tres" type="DynamicFont" id=4] +[ext_resource path="res://assets/sounds/Hurry! (LOOP).wav" type="AudioStream" id=5] [sub_resource type="Gradient" id=23] interpolation_mode = 2 @@ -148,6 +149,12 @@ one_shot = true [node name="GetBackTimer" type="Timer" parent="."] +[node name="GetBackMusic" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true +stream = ExtResource( 5 ) +volume_db = -10.655 +bus = "Music" + [connection signal="area_entered" from="ActivatorArea" to="." method="_on_ActivatorArea_area_entered"] [connection signal="area_exited" from="ActivatorArea" to="." method="_on_ActivatorArea_area_exited"] [connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] diff --git a/src/Contraptions/Triggers/FrogFreeButton.gd b/src/Contraptions/Triggers/FrogFreeButton.gd index ec98154..8543822 100644 --- a/src/Contraptions/Triggers/FrogFreeButton.gd +++ b/src/Contraptions/Triggers/FrogFreeButton.gd @@ -6,9 +6,13 @@ onready var activatorArea = $"%ActivatorArea" onready var indicatorPlayer = $"%IndicatorPlayer" onready var signalManager := get_tree().root.get_child(4).get_node("%SignalManager") onready var unactivatable_timer := $Timer +export(int) var frog_number := 0 var activatable = false +func _ready() -> void: + $Digit.frame = frog_number + func _process(delta): if activatable && Input.is_action_just_released("interact"): selfActivate() diff --git a/src/Levels/1 Tutorial Level.tscn b/src/Levels/1 Tutorial Level.tscn index 6f2c1af..8b23b92 100644 --- a/src/Levels/1 Tutorial Level.tscn +++ b/src/Levels/1 Tutorial Level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=28 format=2] +[gd_scene load_steps=27 format=2] [ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=1] [ext_resource path="res://src/Environment/GreenHouseTiles.tres" type="TileSet" id=2] @@ -13,16 +13,11 @@ [ext_resource path="res://src/Actors/Friendlies/WhatAreFrog.tscn" type="PackedScene" id=11] [ext_resource path="res://src/Environment/Grass/ShaderGrass.tscn" type="PackedScene" id=12] [ext_resource path="res://assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav" type="AudioStream" id=13] -[ext_resource path="res://assets/sounds/Hurry! (LOOP).wav" type="AudioStream" id=14] [ext_resource path="res://src/UserInterface/TutorialThingy.tscn" type="PackedScene" id=15] [ext_resource path="res://assets/effects/pixelDissolve.gdshader" type="Shader" id=16] [ext_resource path="res://assets/effects/noise.png" type="Texture" id=17] [ext_resource path="res://src/ObstacleObjects/Mine.tscn" type="PackedScene" id=18] -[sub_resource type="AnimationNodeStateMachinePlayback" id=14] - -[sub_resource type="AnimationNodeStateMachinePlayback" id=5] - [sub_resource type="ShaderMaterial" id=11] resource_local_to_scene = true shader = ExtResource( 16 ) @@ -140,6 +135,10 @@ tracks/1/keys = { } ] } +[sub_resource type="AnimationNodeStateMachinePlayback" id=14] + +[sub_resource type="AnimationNodeStateMachinePlayback" id=5] + [node name="1 Tutorial Level" type="Node2D"] physics_interpolation_mode = 2 script = ExtResource( 1 ) @@ -159,53 +158,73 @@ unique_name_in_owner = true [node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"] wait_time = 20.0 +[node name="Tutorials" type="Node2D" parent="."] +position = Vector2( 0, -2.27374e-13 ) +scale = Vector2( 1, 1 ) + +[node name="JumpTut" parent="Tutorials" instance=ExtResource( 15 )] +position = Vector2( 576, -15 ) +tutorial_text = "Press to jump:" + +[node name="Button" parent="Tutorials/JumpTut" index="0"] +material = SubResource( 11 ) + +[node name="CollisionShape2D" parent="Tutorials/JumpTut/StartTutorialArea" index="0"] +position = Vector2( -24.5, 0 ) + +[node name="LeftTut" parent="Tutorials" instance=ExtResource( 15 )] +position = Vector2( -40, -14 ) +action = "move_left" +tutorial_text = "Press to move left:" +initial_wait_time = 4.0 + +[node name="Button" parent="Tutorials/LeftTut" index="0"] +material = SubResource( 12 ) + +[node name="AnimationPlayer" parent="Tutorials/LeftTut" index="5"] +anims/RESET = SubResource( 7 ) +anims/cease_4_exist = SubResource( 8 ) + +[node name="CollisionShape2D" parent="Tutorials/LeftTut/StartTutorialArea" index="0"] +position = Vector2( -24.5, 0 ) + +[node name="RightTut" parent="Tutorials" instance=ExtResource( 15 )] +position = Vector2( -40, -56 ) +action = "move_right" +tutorial_text = "Press to move right:" +initial_wait_time = 2.0 + +[node name="Button" parent="Tutorials/RightTut" index="0"] +material = SubResource( 13 ) + +[node name="AnimationPlayer" parent="Tutorials/RightTut" index="5"] +anims/RESET = SubResource( 9 ) +anims/cease_4_exist = SubResource( 10 ) + +[node name="CollisionShape2D" parent="Tutorials/RightTut/StartTutorialArea" index="0"] +position = Vector2( -24.5, 0 ) + [node name="BlobbyCam" parent="." instance=ExtResource( 9 )] -physics_interpolation_mode = 2 unique_name_in_owner = true process_mode = 1 [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 9 +frame = 7 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 8 +frame = 6 [node name="Blobby" parent="." instance=ExtResource( 7 )] unique_name_in_owner = true position = Vector2( -70, -1.90735e-06 ) scale = Vector2( 0.878906, 0.936025 ) -[node name="CollisionPolygon2D" parent="Blobby/BlobbySkin" index="0"] -position = Vector2( 0.0286326, -10.0053 ) - -[node name="BlobbySprite" parent="Blobby" index="3"] -scale = Vector2( -1, 1 ) -frame = 5 - [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 14 ) -[node name="BlobbyBody" parent="Blobby" index="8"] -position = Vector2( 0.0392303, -10.002 ) - -[node name="Left_Wallcast1" parent="Blobby/WallRaycasts/LeftWallRaycast" index="0"] -position = Vector2( -11.9763, -5 ) - -[node name="Left_Wallcast2" parent="Blobby/WallRaycasts/LeftWallRaycast" index="1"] -position = Vector2( -11.9763, 5 ) - -[node name="Right_Wallcast1" parent="Blobby/WallRaycasts/RightWallRaycast" index="0"] -position = Vector2( 12.0551, -5 ) - -[node name="Right_Wallcast2" parent="Blobby/WallRaycasts/RightWallRaycast" index="1"] -position = Vector2( 12.0551, 5 ) - [node name="WhatAreFrog" parent="." instance=ExtResource( 11 )] position = Vector2( 926, -25 ) -[node name="Digit" parent="WhatAreFrog" index="2"] -visible = false - [node name="AnimationTree" parent="WhatAreFrog/FrogSprite" index="1"] root_motion_track = NodePath(".") parameters/playback = SubResource( 5 ) @@ -221,7 +240,7 @@ collision_layer = 8 collision_mask = 8 bake_navigation = true format = 1 -tile_data = PoolIntArray( -720908, 5, 524293, -720907, 5, 524293, -720906, 5, 524293, -720905, 5, 524293, -720904, 5, 524293, -720903, 5, 524293, -720902, 5, 524293, -720901, 5, 524293, -720900, 5, 524293, -720899, 5, 524293, -720898, 5, 524293, -720897, 5, 524293, -786432, 5, 524293, -786431, 5, 524293, -786430, 5, 524293, -786429, 5, 524293, -786428, 5, 524293, -786427, 5, 524293, -786426, 5, 524293, -786425, 5, 524293, -786424, 5, 524293, -786423, 5, 524293, -786422, 5, 524293, -786421, 5, 524293, -786420, 5, 524293, -786419, 5, 524293, -786418, 5, 524293, -786417, 5, 524293, -786416, 5, 524293, -786415, 5, 524293, -786414, 5, 524293, -786413, 5, 524293, -786412, 5, 524293, -786411, 5, 524293, -786410, 5, 524293, -786409, 5, 524293, -786408, 5, 524293, -786407, 5, 524293, -786406, 5, 524293, -786405, 5, 524293, -786404, 5, 524293, -786403, 5, 524293, -786402, 5, 524293, -786401, 5, 524293, -786400, 5, 524293, -786399, 5, 524293, -786398, 1610612741, 524291, -786397, -1610612731, 458760, -786396, -1610612731, 458760, -786395, -1610612731, 458760, -786394, -1610612731, 458760, -786393, -1610612731, 458760, -786392, -1610612731, 458760, -786391, -1610612731, 458760, -786390, -1610612731, 458760, -786389, -1610612731, 458760, -786388, -1610612731, 458760, -786387, -1610612731, 458760, -786386, -1610612731, 458760, -786385, -1610612731, 458760, -786384, -1610612731, 458760, -786383, -1610612731, 458760, -786382, -1610612731, 458760, -786381, -1610612731, 458760, -786380, -1610612731, 458760, -786379, -1610612731, 458760, -786378, -1610612731, 458760, -786377, -1610612731, 458760, -786376, -1610612731, 458760, -786375, -1610612731, 458760, -786374, -1610612731, 458760, -786373, -1610612731, 458760, -786372, -1610612731, 458760, -786371, -1610612731, 458760, -786370, -1610612731, 458760, -786369, -1610612731, 458760, -786368, 1610612741, 524292, -655372, -1610612731, 524293, -655371, 1610612741, 524291, -655370, -1610612731, 458760, -655369, -1610612731, 458760, -655368, -1610612731, 458760, -655367, -1610612731, 458760, -655366, -1610612731, 458760, -655365, -1610612731, 458760, -655364, -1610612731, 458760, -655363, -1610612731, 458760, -655362, -1610612731, 458760, -655361, -1610612731, 458760, -720896, -1610612731, 458760, -720895, -1610612731, 458760, -720894, 5, 458759, -720893, 5, 458759, -720892, 5, 458759, -720891, 5, 458759, -720890, 5, 458759, -720889, 5, 458759, -720888, 5, 458759, -720887, 5, 458759, -720886, 5, 458759, -720885, 5, 458759, -720884, 5, 458759, -720883, 5, 458759, -720882, 5, 458759, -720881, 5, 458759, -720880, 5, 458759, -720879, 5, 458759, -720878, 5, 458759, -720877, 5, 458759, -720876, 5, 458759, -720875, 5, 458759, -720874, 5, 458759, -720873, 5, 458759, -720872, 5, 458759, -720871, 5, 458759, -720870, 5, 458759, -720869, 5, 458759, -720868, 5, 458759, -720867, 5, 458759, -720866, 5, 458759, -720865, 5, 458759, -720864, 5, 458759, -720863, 5, 458759, -720862, 5, 458756, -720861, -536870907, 196615, -720860, -1073741819, 196611, -720859, -1073741819, 196611, -720858, -1073741819, 196611, -720857, -1073741819, 196611, -720856, -1073741819, 196611, -720855, -1073741819, 196611, -720854, -1073741819, 196611, -720853, -1073741819, 196611, -720852, -1073741819, 196611, -720851, -1073741819, 196611, -720850, -1073741819, 196611, -720849, -1073741819, 196611, -720848, -1073741819, 196611, -720847, -1073741819, 196611, -720846, -1073741819, 196611, -720845, -1073741819, 196611, -720844, -1073741819, 196611, -720843, -1073741819, 196611, -720842, -1073741819, 196611, -720841, -1073741819, 196611, -720840, -1073741819, 196611, -720839, -1073741819, 196611, -720838, -1073741819, 196611, -720837, -1073741819, 196611, -720836, -1073741819, 196611, -720835, -1073741819, 196611, -720834, -1073741819, 196609, -720833, -1073741819, 131073, -720832, 1610612741, 458760, -589836, -1610612731, 524293, -589835, 5, 458760, -589834, 1610612741, 196609, -589833, -1073741819, 196611, -589832, -1073741819, 196611, -589831, -1073741819, 196611, -589830, -1073741819, 196611, -589829, -1073741819, 196611, -589828, -1073741819, 196611, -589827, -1073741819, 196611, -589826, -1073741819, 196611, -589825, -1073741819, 196611, -655360, -1073741819, 196611, -655359, 1073741829, 196615, -655358, -536870907, 196615, -655357, -1073741819, 196611, -655356, -1073741819, 196611, -655355, -1073741819, 196611, -655354, -1073741819, 196611, -655353, -1073741819, 196611, -655352, -1073741819, 196611, -655351, -1073741819, 196611, -655350, -1073741819, 196611, -655349, -1073741819, 196611, -655348, -1073741819, 196611, -655347, -1073741819, 196611, -655346, -1073741819, 196611, -655345, -1073741819, 196611, -655344, -1073741819, 196611, -655343, -1073741819, 196611, -655342, -1073741819, 196611, -655341, -1073741819, 196611, -655340, -1073741819, 196611, -655339, -1073741819, 196611, -655338, -1073741819, 196611, -655337, -1073741819, 196611, -655336, -1073741819, 196611, -655335, -1073741819, 196611, -655334, -1073741819, 196611, -655333, -1073741819, 196611, -655332, -1073741819, 196611, -655331, -1073741819, 196611, -655330, -1073741819, 196611, -655329, -1073741819, 196611, -655328, -1073741819, 196611, -655327, -1073741819, 196611, -655326, -1073741819, 196611, -655325, -536870907, 131080, -655324, 1610612741, 65539, -655323, 1610612741, 2, -655322, 1610612741, 2, -655321, 1610612741, 2, -655320, 1610612741, 2, -655319, 1610612741, 2, -655318, 1610612741, 2, -655317, 1610612741, 2, -655316, 1610612741, 2, -655315, 1610612741, 2, -655314, 1610612741, 2, -655313, 1610612741, 2, -655312, 1610612741, 2, -655311, 1610612741, 2, -655310, 1610612741, 2, -655309, 1610612741, 2, -655308, 1610612741, 2, -655307, 1610612741, 2, -655306, 1610612741, 2, -655305, 1610612741, 2, -655304, 1610612741, 2, -655303, 1610612741, 2, -655302, 1610612741, 2, -655301, 1610612741, 2, -655300, 1610612741, 2, -655299, 1610612741, 65538, -655298, 5, 196611, -655297, -1073741819, 65546, -655296, 1610612741, 458760, -524300, -1610612731, 524293, -524299, 5, 458760, -524298, -1610612731, 196610, -524297, 5, 65540, -524296, 5, 10, -524295, 5, 10, -524294, 5, 10, -524293, 5, 10, -524292, 5, 10, -524291, 5, 10, -524290, 5, 10, -524289, 5, 10, -589824, 5, 65541, -589823, 5, 196611, -589822, 1073741829, 196612, -589821, -1073741819, 131080, -589820, 536870917, 262150, -589819, 1073741829, 196618, -589818, 536870917, 262144, -589817, 536870917, 196618, -589816, 1073741829, 196618, -589815, -1073741819, 65545, -589814, 5, 262144, -589813, 536870917, 327687, -589812, 536870917, 262144, -589811, 1073741829, 196612, -589810, 1073741829, 196617, -589809, -2147483643, 196612, -589808, -2147483643, 196617, -589807, 1073741829, 196618, -589806, 536870917, 196612, -589805, -536870907, 131082, -589804, 1073741829, 196618, -589803, 1073741829, 131075, -589802, 536870917, 196618, -589801, 1073741829, 196618, -589800, -1073741819, 131082, -589799, 536870917, 196618, -589798, -536870907, 196616, -589797, -2147483643, 196616, -589796, 536870917, 196618, -589795, 1073741829, 196617, -589794, -2147483643, 196612, -589793, -2147483643, 196617, -589792, 1073741829, 196618, -589791, -2147483643, 131077, -589790, 1073741829, 196618, -589789, 1610612741, 196611, -589788, 5, 7, -589787, 7, 0, -589786, 7, 0, -589785, 7, 0, -589784, 7, 0, -589783, 7, 0, -589782, 7, 0, -589781, 7, 0, -589780, 7, 0, -589779, 7, 0, -589778, 7, 0, -589777, 7, 0, -589776, 536870917, 0, -589775, 7, 0, -589774, 7, 0, -589773, 7, 0, -589772, 7, 0, -589771, 7, 0, -589770, 7, 0, -589769, 7, 0, -589768, 7, 0, -589767, 7, 0, -589766, 7, 0, -589765, 7, 0, -589764, 7, 0, -589763, 5, 6, -589762, 5, 196611, -589761, -1073741819, 65546, -589760, 1610612741, 458760, -458764, -1610612731, 524293, -458763, 5, 458760, -458762, -1610612731, 196610, -458761, 5, 7, -458757, 0, 1, -458756, 0, 393217, -458755, 0, 2, -458754, 0, 327686, -524288, 1610612741, 7, -524287, 5, 196611, -524286, 1073741829, 196612, -524285, 1610612741, 196612, -524284, -2147483643, 131074, -524283, 1073741829, 196618, -524282, 536870917, 262144, -524281, 536870917, 196618, -524280, 1073741829, 196618, -524279, 5, 196611, -524278, 5, 262144, -524277, -536870907, 65545, -524276, 536870917, 262144, -524275, 1073741829, 196612, -524274, 1073741829, 196612, -524273, 536870917, 262151, -524272, 536870917, 196612, -524271, 1073741829, 196618, -524270, -2147483643, 131079, -524269, 1073741829, 196612, -524268, 1073741829, 196618, -524267, 1073741829, 196612, -524266, 536870917, 196618, -524265, 1073741829, 196618, -524264, 5, 196611, -524263, 536870917, 196618, -524262, -536870907, 196616, -524261, -2147483643, 196616, -524260, 536870917, 196618, -524259, 1073741829, 196612, -524258, 536870917, 393220, -524257, 536870917, 196612, -524256, 1073741829, 196618, -524255, 536870917, 196611, -524254, 1073741829, 196618, -524253, 1610612741, 196611, -524252, 5, 7, -524251, 7, 0, -524250, 7, 0, -524249, 7, 0, -524248, 7, 0, -524247, 7, 0, -524246, 7, 0, -524245, 7, 0, -524244, 7, 0, -524243, 7, 0, -524242, 7, 0, -524241, 7, 0, -524240, 7, 0, -524239, 7, 0, -524238, 7, 0, -524237, 7, 0, -524236, 7, 0, -524235, 7, 0, -524234, 7, 0, -524233, 7, 0, -524232, 7, 0, -524231, 7, 0, -524230, 7, 0, -524229, 7, 0, -524228, 7, 0, -524227, 5, 6, -524226, 5, 196611, -524225, -1073741819, 196613, -524224, 1610612741, 458760, -393228, -1610612731, 524293, -393227, 5, 458760, -393226, -1610612731, 196610, -393225, 5, 7, -458752, 1610612741, 7, -458751, 5, 196611, -458750, 1073741829, 196612, -458749, -536870907, 131077, -458748, 536870917, 393221, -458747, 1073741829, 196618, -458746, 536870917, 262144, -458745, 536870917, 196618, -458744, 1073741829, 196618, -458743, -2147483643, 65545, -458742, 5, 262144, -458741, 536870917, 327687, -458740, 536870917, 262144, -458739, 1073741829, 196612, -458738, -536870907, 196617, -458737, -536870907, 196612, -458736, 536870917, 196617, -458735, 1073741829, 196618, -458734, 536870917, 196612, -458733, 1073741829, 196612, -458732, 1073741829, 196618, -458731, 536870917, 262153, -458730, 536870917, 196618, -458729, 1073741829, 196618, -458728, -1610612731, 131078, -458727, 536870917, 196618, -458726, -536870907, 196616, -458725, -2147483643, 196616, -458724, 536870917, 196618, -458723, -536870907, 196617, -458722, -536870907, 196612, -458721, 536870917, 196617, -458720, 1073741829, 196618, -458719, 536870917, 131077, -458718, 1073741829, 196618, -458717, 1610612741, 196611, -458716, 5, 7, -458715, 7, 0, -458714, 7, 0, -458713, 7, 0, -458712, 7, 0, -458711, 7, 0, -458710, 7, 0, -458709, 7, 0, -458708, 7, 0, -458707, 7, 0, -458706, 7, 0, -458705, 7, 0, -458704, 7, 0, -458703, 7, 0, -458702, 7, 0, -458701, 7, 0, -458700, 7, 0, -458699, 7, 0, -458698, 7, 0, -458697, 7, 0, -458696, 7, 0, -458695, 7, 0, -458694, 7, 0, -458693, 7, 0, -458692, 7, 0, -458691, 5, 6, -458690, 5, 196611, -458689, -2147483643, 131075, -458688, 1610612741, 458760, -327692, -1610612731, 524293, -327691, 5, 458760, -327690, -1610612731, 196610, -327689, 5, 7, -327685, 0, 4, -327684, 1, 393223, -327683, 1, 458753, -327682, 0, 5, -393216, 1610612741, 7, -393215, 5, 196611, -393214, 536870917, 196615, -393213, 536870917, 196610, -393212, 536870917, 196610, -393211, 1073741829, 131078, -393210, 536870917, 196610, -393209, 536870917, 196610, -393208, 536870917, 196610, -393207, 536870917, 196610, -393206, 1073741829, 131078, -393205, 536870917, 196610, -393204, 536870917, 196610, -393203, 536870917, 196610, -393202, 536870917, 196610, -393201, 536870917, 196610, -393200, 536870917, 196610, -393199, 536870917, 196610, -393198, 536870917, 196610, -393197, 536870917, 196610, -393196, 536870917, 196610, -393195, 536870917, 196610, -393194, 536870917, 196610, -393193, 536870917, 196610, -393192, 536870917, 196610, -393191, 1073741829, 131078, -393190, 536870917, 196610, -393189, 536870917, 196610, -393188, 536870917, 196610, -393187, 536870917, 196610, -393186, 536870917, 196610, -393185, 536870917, 196610, -393184, 536870917, 196610, -393183, 536870917, 327688, -393182, 536870917, 196610, -393181, 536870917, 196617, -393180, 5, 7, -393179, 7, 0, -393178, 7, 0, -393177, 7, 0, -393176, 7, 0, -393175, 7, 0, -393174, 7, 0, -393173, 7, 0, -393172, 7, 0, -393171, 7, 0, -393170, 7, 0, -393169, 7, 0, -393168, 7, 0, -393167, 7, 0, -393166, 7, 0, -393165, 7, 0, -393164, 7, 0, -393163, 7, 0, -393162, 7, 0, -393161, 7, 0, -393160, 7, 0, -393159, 7, 0, -393158, 7, 0, -393157, 7, 0, -393156, 7, 0, -393155, 5, 6, -393154, 5, 196611, -393153, 1073741829, 196612, -393152, 1610612741, 458760, -262156, -1610612731, 524293, -262155, 5, 458760, -262154, -1610612731, 196610, -262153, 5, 7, -262149, 0, 6, -262148, 0, 7, -262147, 0, 7, -262146, 0, 65536, -327680, 1610612741, 7, -327679, 1073741829, 131076, -327678, -1073741819, 196611, -327677, -1073741819, 196611, -327676, 5, 131078, -327675, -1073741819, 196611, -327674, -1073741819, 196611, -327673, 1610612741, 131082, -327672, 5, 131078, -327671, -1073741819, 196611, -327670, -1073741819, 196611, -327669, -1073741819, 196611, -327668, -1073741819, 196611, -327667, 1610612741, 131082, -327666, 1610612741, 131082, -327665, -1073741819, 196611, -327664, 1610612741, 131079, -327663, -1073741819, 196611, -327662, -1073741819, 196611, -327661, 1610612741, 131079, -327660, 1610612741, 131082, -327659, -1073741819, 196611, -327658, -1073741819, 196611, -327657, -1073741819, 196611, -327656, -1073741819, 196611, -327655, -1073741819, 196611, -327654, 536870917, 327688, -327653, -1073741819, 196611, -327652, -1073741819, 196611, -327651, -1073741819, 196611, -327650, -1073741819, 196611, -327649, 536870917, 131078, -327648, -1073741819, 196611, -327647, -1073741819, 196611, -327646, -1073741819, 196611, -327645, -536870907, 131076, -327644, 5, 7, -327643, 7, 0, -327642, 7, 0, -327641, 7, 0, -327640, 7, 0, -327639, 7, 0, -327638, 7, 0, -327637, 7, 0, -327636, 7, 0, -327635, 7, 0, -327634, 7, 0, -327633, 7, 0, -327632, 7, 0, -327631, 7, 0, -327630, 7, 0, -327629, 7, 0, -327628, 7, 0, -327627, 7, 0, -327626, 7, 0, -327625, 7, 0, -327624, 7, 0, -327623, 7, 0, -327622, 7, 0, -327621, 7, 0, -327620, 7, 0, -327619, 5, 6, -327618, 5, 196611, -327617, -536870907, 393220, -327616, 1610612741, 458760, -196620, -1610612731, 524293, -196619, 5, 458760, -196618, -1610612731, 196610, -196617, 5, 7, -262144, 5, 9, -262143, 5, 10, -262142, 5, 10, -262141, 5, 10, -262140, 5, 10, -262139, 5, 10, -262138, 5, 10, -262137, 5, 10, -262136, 5, 10, -262135, 5, 10, -262134, 5, 10, -262133, 5, 10, -262132, 5, 10, -262131, 5, 10, -262130, 5, 10, -262129, 5, 10, -262128, 5, 10, -262127, 5, 10, -262126, 5, 10, -262125, 5, 10, -262124, 5, 10, -262123, 5, 10, -262122, 5, 10, -262121, 5, 10, -262120, 5, 10, -262119, 5, 10, -262118, 5, 10, -262117, 5, 10, -262116, 5, 10, -262115, 5, 10, -262114, 5, 10, -262113, 5, 10, -262112, 5, 10, -262111, 5, 10, -262110, 5, 10, -262109, 5, 10, -262108, 5, 65536, -262107, 7, 0, -262106, 7, 0, -262105, 7, 0, -262104, 7, 0, -262103, 7, 0, -262102, 7, 0, -262101, 7, 0, -262100, 7, 0, -262099, 7, 0, -262098, 7, 0, -262097, 7, 0, -262096, 7, 0, -262095, 7, 0, -262094, 7, 0, -262093, 7, 0, -262092, 7, 0, -262091, 7, 0, -262090, 7, 0, -262089, 7, 0, -262088, 7, 0, -262087, 7, 0, -262086, 7, 0, -262085, 7, 0, -262084, 7, 0, -262083, 5, 6, -262082, 5, 196611, -262081, 1073741829, 196612, -262080, 1610612741, 458760, -131084, -1610612731, 524293, -131083, 5, 458760, -131082, -1610612731, 196610, -131081, 5, 7, -196603, 1, 6, -196602, 1, 7, -196601, 1, 7, -196600, 1, 7, -196599, 1, 7, -196598, 1, 65536, -196591, 1, 4, -196590, -1610612735, 196614, -196589, 1, 393216, -196588, 1, 2, -196587, 1, 2, -196586, 1, 2, -196585, 1, 3, -196579, 7, 0, -196578, 7, 0, -196577, 7, 0, -196576, 7, 0, -196575, 7, 0, -196574, 7, 0, -196573, 7, 0, -196572, 7, 0, -196571, 7, 0, -196570, 7, 0, -196569, 7, 0, -196568, 7, 0, -196567, 7, 0, -196566, 7, 0, -196565, 7, 0, -196564, 7, 0, -196563, 7, 0, -196562, 7, 0, -196561, 7, 0, -196560, 7, 0, -196559, 7, 0, -196558, 7, 0, -196557, 7, 0, -196556, 7, 0, -196555, 7, 0, -196554, 7, 0, -196553, 7, 0, -196552, 7, 0, -196551, 7, 0, -196550, 7, 0, -196549, 7, 0, -196548, 7, 0, -196547, 5, 6, -196546, 5, 196611, -196545, 1073741829, 196612, -196544, 1610612741, 458760, -65548, -1610612731, 524293, -65547, 5, 458760, -65546, -1610612731, 196610, -65545, 5, 7, -131055, 1, 4, -131054, -1610612735, 196614, -131053, 1, 393218, -131052, 1, 393219, -131051, 1, 393219, -131050, 1, 393220, -131049, 1, 5, -131043, 7, 0, -131042, 7, 0, -131041, 7, 0, -131040, 7, 0, -131039, 7, 0, -131038, 7, 0, -131037, 7, 0, -131036, 7, 0, -131035, 7, 0, -131034, 7, 0, -131033, 7, 0, -131032, 7, 0, -131031, 7, 0, -131030, 7, 0, -131029, 5, 65542, -131028, 5, 65543, -131027, 5, 65544, -131024, 7, 0, -131023, 7, 0, -131022, 7, 0, -131021, 7, 0, -131020, 7, 0, -131019, 7, 0, -131018, 7, 0, -131017, 7, 0, -131016, 7, 0, -131015, 7, 0, -131014, 7, 0, -131013, 7, 0, -131012, 7, 0, -131011, 5, 6, -131010, 5, 196611, -131009, 1073741829, 327688, -131008, 1610612741, 458760, -12, -1610612731, 524293, -11, 5, 458760, -10, -1610612731, 196610, -9, 5, 7, -65519, 1, 4, -65518, -1610612735, 196614, -65514, 1, 393222, -65513, 1, 393216, -65512, 1, 2, -65511, 1, 2, -65510, 1, 327686, -65507, 7, 0, -65506, 7, 0, -65505, 7, 0, -65504, 7, 0, -65503, 7, 0, -65502, 7, 0, -65501, 7, 0, -65500, 7, 0, -65499, 7, 0, -65498, 7, 0, -65497, 7, 0, -65496, 7, 0, -65495, 7, 0, -65494, 7, 0, -65493, 7, 0, -65492, 7, 0, -65491, 7, 0, -65490, 7, 0, -65489, 7, 0, -65488, 7, 0, -65487, 7, 0, -65486, 7, 0, -65485, 7, 0, -65484, 7, 0, -65483, 7, 0, -65482, 5, 1, -65481, 5, 3, -65480, 5, 3, -65479, 5, 3, -65478, 5, 3, -65477, 5, 3, -65476, 5, 3, -65475, 5, 65539, -65474, 5, 196611, -65473, -1073741819, 196613, -65472, 1610612741, 458760, 65524, -1610612731, 524293, 65525, 5, 458760, 65526, -1610612731, 196610, 65527, 5, 65538, 65528, 5, 2, 65529, 5, 2, 65530, 5, 2, 65531, 5, 2, 65532, 5, 2, 65533, 5, 2, 65534, 5, 2, 65535, 5, 2, 0, 5, 3, 1, 5, 3, 2, 5, 3, 3, 5, 3, 4, 5, 3, 5, 5, 3, 6, 5, 3, 7, 5, 3, 8, 5, 3, 9, 5, 3, 10, 5, 3, 11, 5, 3, 12, 5, 3, 13, 5, 3, 14, 5, 3, 15, 5, 2, 16, 5, 2, 17, 5, 2, 18, 5, 2, 19, 5, 2, 20, 5, 2, 21, 5, 2, 22, 5, 2, 23, 5, 2, 24, 5, 2, 25, 5, 2, 26, 5, 2, 27, 5, 2, 28, 5, 2, 29, 5, 2, 30, 5, 2, 31, 5, 2, 32, 5, 2, 33, 5, 2, 34, 5, 2, 35, 5, 2, 36, 5, 2, 37, 5, 5, 38, 7, 0, 39, 7, 0, 40, 7, 0, 41, 7, 0, 42, 7, 0, 43, 7, 0, 44, 7, 0, 45, 7, 0, 46, 7, 0, 47, 7, 0, 48, 7, 0, 49, 7, 0, 50, 7, 0, 51, 7, 0, 52, 7, 0, 53, 7, 0, 54, 5, 6, 55, 5, 131076, 56, -1610612731, 196611, 57, -1610612731, 196611, 58, -1610612731, 196611, 59, -1610612731, 196611, 60, -1610612731, 196611, 61, -1610612731, 196611, 62, 5, 196609, 63, -1073741819, 196613, 64, 1610612741, 458760, 131060, -1610612731, 524293, 131061, 5, 458760, 131062, -1610612731, 196609, 131063, -1610612731, 196611, 131064, -1610612731, 196611, 131065, -1610612731, 196611, 131066, -1610612731, 196611, 131067, -1610612731, 196611, 131068, -1610612731, 196611, 131069, -1610612731, 196611, 131070, -1610612731, 196611, 131071, -1610612731, 196611, 65536, -1610612731, 196611, 65537, -1610612731, 196611, 65538, -1610612731, 196611, 65539, -1610612731, 196611, 65540, -1610612731, 196611, 65541, -1610612731, 196611, 65542, -1610612731, 196611, 65543, -1610612731, 196611, 65544, -1610612731, 196611, 65545, -1610612731, 196611, 65546, -1610612731, 196611, 65547, -1610612731, 196611, 65548, -1610612731, 196611, 65549, -1610612731, 196611, 65550, -1610612731, 196611, 65551, -1610612731, 196611, 65552, -1610612731, 196611, 65553, -1610612731, 196611, 65554, -1610612731, 196611, 65555, -1610612731, 196611, 65556, -1610612731, 196611, 65557, -1610612731, 196611, 65558, -1610612731, 196611, 65559, -1610612731, 196611, 65560, -1610612731, 196611, 65561, -1610612731, 196611, 65562, -1610612731, 196611, 65563, -1610612731, 196611, 65564, -1610612731, 196611, 65565, -1610612731, 196611, 65566, 1610612741, 196613, 65567, 1610612741, 196613, 65568, 1610612741, 196613, 65569, -1610612731, 196611, 65570, -1610612731, 196611, 65571, -1610612731, 196611, 65572, -1610612731, 131076, 65573, 5, 8, 65574, 7, 0, 65575, 7, 0, 65576, 7, 0, 65577, 7, 0, 65578, 7, 0, 65579, 7, 0, 65580, 7, 0, 65581, 7, 0, 65582, 7, 0, 65583, 7, 0, 65584, 7, 0, 65585, 7, 0, 65586, 5, 1, 65587, 5, 3, 65588, 5, 3, 65589, 5, 3, 65590, 5, 65539, 65591, 5, 196611, 65592, -1073741819, 196618, 65593, -1073741819, 196618, 65594, -1073741819, 196618, 65595, -1073741819, 196618, 65596, -1073741819, 196618, 65597, -1073741819, 196618, 65598, -1073741819, 196618, 65599, -1073741819, 196613, 65600, 1610612741, 458760, 196596, -1610612731, 524293, 196597, 5, 524292, 196598, 5, 458761, 196599, 5, 458761, 196600, 5, 458761, 196601, 5, 458761, 196602, 5, 458761, 196603, 5, 458761, 196604, 5, 458761, 196605, 5, 458761, 196606, 5, 458761, 196607, 5, 458761, 131072, -1073741819, 458756, 131073, 536870917, 196610, 131074, -1610612731, 589830, 131075, -1610612731, 589828, 131076, -1610612731, 589828, 131077, -1610612731, 589828, 131078, 5, 589827, 131079, 1610612741, 196614, 131080, -1073741819, 196614, 131081, 5, 524298, 131082, -1610612731, 589828, 131083, -1610612731, 589828, 131084, -1610612731, 589828, 131085, -1610612731, 589828, 131086, 5, 589827, 131087, 1610612741, 196612, 131088, -1073741819, 589827, 131089, -1610612731, 589828, 131090, -1610612731, 589828, 131091, -1610612731, 589828, 131092, -1610612731, 589828, 131093, -1610612731, 589828, 131094, -1610612731, 589828, 131095, -1610612731, 589828, 131096, 5, 589827, 131097, 1610612741, 196614, 131098, -1073741819, 196614, 131099, 5, 524298, 131100, -1610612731, 589828, 131101, -1610612731, 589828, 131102, -1610612731, 589828, 131103, -1610612731, 589828, 131104, -1610612731, 589828, 131105, -1610612731, 589828, 131106, 1610612741, 589830, 131107, 536870917, 262152, 131108, 1610612741, 196611, 131109, 5, 8, 131110, 7, 0, 131111, 7, 0, 131112, 7, 0, 131113, 7, 0, 131114, 7, 0, 131115, 7, 0, 131116, 7, 0, 131117, 7, 0, 131118, 7, 0, 131119, 7, 0, 131120, 7, 0, 131121, 7, 0, 131122, 5, 6, 131123, -1610612731, 131077, 131124, -1610612731, 196611, 131125, -1610612731, 196611, 131126, -1610612731, 196611, 131127, 5, 196609, 131128, 1610612741, 196613, 131129, 1610612741, 196613, 131130, 1610612741, 196613, 131131, 1610612741, 196613, 131132, 1610612741, 196613, 131133, 1610612741, 196613, 131134, 1610612741, 196613, 131135, 5, 196614, 131136, 1610612741, 458760, 262132, -1610612731, 524293, 262133, 5, 524293, 262134, 5, 524293, 262135, 5, 524293, 262136, 5, 524293, 262137, 5, 524293, 262138, 5, 524293, 262139, 5, 524293, 262140, 5, 524293, 262141, 5, 524293, 262142, 5, 524293, 262143, 5, 524293, 196608, 5, 458760, 196609, 1073741829, 196610, 196610, 536870917, 589832, 196611, -1073741819, 589828, 196612, -1073741819, 589828, 196613, -1073741819, 589828, 196614, 1610612741, 524298, 196615, -1610612731, 196614, 196616, 5, 196614, 196617, 5, 589830, 196618, -1073741819, 589828, 196619, -1073741819, 589828, 196620, -1073741819, 589828, 196621, -1073741819, 589828, 196622, 5, 589832, 196623, 1610612741, 196612, 196624, 1610612741, 589827, 196625, -1073741819, 589828, 196626, -1073741819, 589828, 196627, -1073741819, 589828, 196628, -1073741819, 589828, 196629, -1073741819, 589828, 196630, -1073741819, 589828, 196631, -1073741819, 589828, 196632, 1610612741, 524298, 196633, -1610612731, 196614, 196634, 5, 196614, 196635, 5, 589830, 196636, -1073741819, 589828, 196637, -1073741819, 589828, 196638, -1073741819, 589828, 196639, -1073741819, 589828, 196640, -1073741819, 589828, 196641, -1073741819, 589828, 196642, 1610612741, 524298, 196643, -2147483643, 131074, 196644, 1610612741, 196611, 196645, 5, 65538, 196646, 5, 2, 196647, 5, 2, 196648, 5, 2, 196649, 5, 2, 196650, 5, 2, 196651, 5, 2, 196652, 5, 2, 196653, 5, 2, 196654, 5, 2, 196655, 5, 2, 196656, 5, 2, 196657, 5, 2, 196658, 5, 65539, 196659, -1610612731, 196613, 196660, 1073741829, 327688, 196661, -2147483643, 131074, 196662, -1073741819, 458753, 196663, -1073741819, 458760, 196664, -1073741819, 458760, 196665, -1073741819, 458760, 196666, -1073741819, 458760, 196667, -1073741819, 458760, 196668, -1073741819, 458760, 196669, -1073741819, 458760, 196670, -1073741819, 458760, 196671, -1073741819, 458760, 196672, -1073741819, 524292, 327668, -1610612731, 524293, 327669, 5, 524293, 327670, 5, 524293, 327671, 5, 524293, 327672, 5, 524293, 327673, 5, 524293, 327674, 5, 524293, 327675, 5, 524293, 327676, 5, 524293, 327677, 5, 524293, 327678, 5, 524293, 327679, 5, 524293, 262144, 5, 458760, 262145, -2147483643, 196618, 262146, -2147483643, 196618, 262147, -2147483643, 196618, 262148, -2147483643, 196618, 262149, -2147483643, 196618, 262150, -2147483643, 327688, 262151, -2147483643, 196618, 262152, -2147483643, 196618, 262153, -2147483643, 196618, 262154, -2147483643, 196618, 262155, -2147483643, 196618, 262156, -2147483643, 196618, 262157, -2147483643, 196618, 262158, -2147483643, 327688, 262159, -2147483643, 196618, 262160, -2147483643, 196618, 262161, -2147483643, 196618, 262162, -2147483643, 196618, 262163, -2147483643, 196618, 262164, -2147483643, 196618, 262165, -2147483643, 196618, 262166, -2147483643, 196618, 262167, -2147483643, 196618, 262168, -2147483643, 327688, 262169, -2147483643, 196618, 262170, -2147483643, 196618, 262171, -2147483643, 196618, 262172, -2147483643, 196618, 262173, -2147483643, 196618, 262174, -2147483643, 196618, 262175, -2147483643, 196618, 262176, -2147483643, 196618, 262177, -2147483643, 196618, 262178, -2147483643, 327688, 262179, -536870907, 131076, 262180, -1610612731, 196609, 262181, -1610612731, 196611, 262182, -1610612731, 196611, 262183, -1610612731, 196611, 262184, -1610612731, 196611, 262185, -1610612731, 196611, 262186, -1610612731, 196611, 262187, 536870917, 131082, 262188, -1610612731, 196611, 262189, 1073741829, 131078, 262190, -1610612731, 196611, 262191, -1610612731, 196611, 262192, -1610612731, 196611, 262193, -1610612731, 196611, 262194, 1610612741, 196613, 262195, 5, 196609, 262196, 1073741829, 327688, 262197, -2147483643, 131075, 262198, 1610612741, 458760, 262199, -1610612731, 524293, 262200, -1610612731, 524293, 262201, -1610612731, 524293, 262202, -1610612731, 524293, 262203, -1610612731, 524293, 262204, -1610612731, 524293, 262205, -1610612731, 524293, 262206, -1610612731, 524293, 262207, -1610612731, 524293, 262208, -1610612731, 524293, 393204, -1610612731, 524293, 393205, 5, 524293, 393206, 5, 524293, 393207, 5, 524293, 393208, 5, 524293, 393209, 5, 524293, 393210, 5, 524293, 393211, 5, 524293, 393212, 5, 524293, 393213, 5, 524293, 393214, 5, 524293, 393215, 5, 524293, 327680, 5, 524292, 327681, 1610612741, 458759, 327682, -1073741819, 458760, 327683, -1073741819, 458760, 327684, -1073741819, 458760, 327685, -1073741819, 458760, 327686, -1073741819, 458760, 327687, -1073741819, 458760, 327688, -1073741819, 458760, 327689, -1073741819, 458760, 327690, -1073741819, 458760, 327691, -1073741819, 458760, 327692, -1073741819, 458760, 327693, -1073741819, 458760, 327694, -1073741819, 458760, 327695, -1073741819, 458760, 327696, -1073741819, 458760, 327697, -1073741819, 458760, 327698, -1073741819, 458760, 327699, -1073741819, 458760, 327700, -1073741819, 458760, 327701, -1073741819, 458760, 327702, -1073741819, 458760, 327703, -1073741819, 458760, 327704, -1073741819, 458760, 327705, -1073741819, 458760, 327706, -1073741819, 458760, 327707, -1073741819, 458760, 327708, -1073741819, 458760, 327709, -1073741819, 458760, 327710, -1073741819, 458760, 327711, -1073741819, 458760, 327712, -1073741819, 458760, 327713, -1073741819, 458760, 327714, -1073741819, 458760, 327715, -1073741819, 458760, 327716, -1073741819, 458760, 327717, -1073741819, 458760, 327718, -1073741819, 458760, 327719, -1073741819, 458760, 327720, -1073741819, 458760, 327721, -1073741819, 458760, 327722, -1073741819, 458760, 327723, -1073741819, 458760, 327724, -1073741819, 458760, 327725, -1073741819, 458760, 327726, -1073741819, 458760, 327727, -1073741819, 458760, 327728, -1073741819, 458760, 327729, -1073741819, 458760, 327730, -1073741819, 458760, 327731, -1073741819, 458760, 327732, -1073741819, 458760, 327733, -1073741819, 458760, 327734, -1073741819, 524292, 327735, -1610612731, 524293, 327736, -1610612731, 524293, 327737, -1610612731, 524293, 327738, -1610612731, 524293, 327739, -1610612731, 524293, 327740, -1610612731, 524293, 327741, -1610612731, 524293, 327742, -1610612731, 524293, 327743, -1610612731, 524293, 327744, -1610612731, 524293 ) +tile_data = PoolIntArray( -720908, 5, 524293, -720907, 5, 524293, -720906, 5, 524293, -720905, 5, 524293, -720904, 5, 524293, -720903, 5, 524293, -720902, 5, 524293, -720901, 5, 524293, -720900, 5, 524293, -720899, 5, 524293, -720898, 5, 524293, -720897, 5, 524293, -786432, 5, 524293, -786431, 5, 524293, -786430, 5, 524293, -786429, 5, 524293, -786428, 5, 524293, -786427, 5, 524293, -786426, 5, 524293, -786425, 5, 524293, -786424, 5, 524293, -786423, 5, 524293, -786422, 5, 524293, -786421, 5, 524293, -786420, 5, 524293, -786419, 5, 524293, -786418, 5, 524293, -786417, 5, 524293, -786416, 5, 524293, -786415, 5, 524293, -786414, 5, 524293, -786413, 5, 524293, -786412, 5, 524293, -786411, 5, 524293, -786410, 5, 524293, -786409, 5, 524293, -786408, 5, 524293, -786407, 5, 524293, -786406, 5, 524293, -786405, 5, 524293, -786404, 5, 524293, -786403, 5, 524293, -786402, 5, 524293, -786401, 5, 524293, -786400, 5, 524293, -786399, 5, 524293, -786398, 1610612741, 524291, -786397, -1610612731, 458760, -786396, -1610612731, 458760, -786395, -1610612731, 458760, -786394, -1610612731, 458760, -786393, -1610612731, 458760, -786392, -1610612731, 458760, -786391, -1610612731, 458760, -786390, -1610612731, 458760, -786389, -1610612731, 458760, -786388, -1610612731, 458760, -786387, -1610612731, 458760, -786386, -1610612731, 458760, -786385, -1610612731, 458760, -786384, -1610612731, 458760, -786383, -1610612731, 458760, -786382, -1610612731, 458760, -786381, -1610612731, 458760, -786380, -1610612731, 458760, -786379, -1610612731, 458760, -786378, -1610612731, 458760, -786377, -1610612731, 458760, -786376, -1610612731, 458760, -786375, -1610612731, 458760, -786374, -1610612731, 458760, -786373, -1610612731, 458760, -786372, -1610612731, 458760, -786371, -1610612731, 458760, -786370, -1610612731, 458760, -786369, -1610612731, 458760, -786368, 1610612741, 524292, -655372, -1610612731, 524293, -655371, 1610612741, 524291, -655370, -1610612731, 458760, -655369, -1610612731, 458760, -655368, -1610612731, 458760, -655367, -1610612731, 458760, -655366, -1610612731, 458760, -655365, -1610612731, 458760, -655364, -1610612731, 458760, -655363, -1610612731, 458760, -655362, -1610612731, 458760, -655361, -1610612731, 458760, -720896, -1610612731, 458760, -720895, -1610612731, 458760, -720894, 5, 458759, -720893, 5, 458759, -720892, 5, 458759, -720891, 5, 458759, -720890, 5, 458759, -720889, 5, 458759, -720888, 5, 458759, -720887, 5, 458759, -720886, 5, 458759, -720885, 5, 458759, -720884, 5, 458759, -720883, 5, 458759, -720882, 5, 458759, -720881, 5, 458759, -720880, 5, 458759, -720879, 5, 458759, -720878, 5, 458759, -720877, 5, 458759, -720876, 5, 458759, -720875, 5, 458759, -720874, 5, 458759, -720873, 5, 458759, -720872, 5, 458759, -720871, 5, 458759, -720870, 5, 458759, -720869, 5, 458759, -720868, 5, 458759, -720867, 5, 458759, -720866, 5, 458759, -720865, 5, 458759, -720864, 5, 458759, -720863, 5, 458759, -720862, 5, 458756, -720861, -536870907, 196615, -720860, -1073741819, 196611, -720859, -1073741819, 196611, -720858, -1073741819, 196611, -720857, -1073741819, 196611, -720856, -1073741819, 196611, -720855, -1073741819, 196611, -720854, -1073741819, 196611, -720853, -1073741819, 196611, -720852, -1073741819, 196611, -720851, -1073741819, 196611, -720850, -1073741819, 196611, -720849, -1073741819, 196611, -720848, -1073741819, 196611, -720847, -1073741819, 196611, -720846, -1073741819, 196611, -720845, -1073741819, 196611, -720844, -1073741819, 196611, -720843, -1073741819, 196611, -720842, -1073741819, 196611, -720841, -1073741819, 196611, -720840, -1073741819, 196611, -720839, -1073741819, 196611, -720838, -1073741819, 196611, -720837, -1073741819, 196611, -720836, -1073741819, 196611, -720835, -1073741819, 196611, -720834, -1073741819, 196609, -720833, -1073741819, 131073, -720832, 1610612741, 458760, -589836, -1610612731, 524293, -589835, 5, 458760, -589834, 1610612741, 196609, -589833, -1073741819, 196611, -589832, -1073741819, 196611, -589831, -1073741819, 196611, -589830, -1073741819, 196611, -589829, -1073741819, 196611, -589828, -1073741819, 196611, -589827, -1073741819, 196611, -589826, -1073741819, 196611, -589825, -1073741819, 196611, -655360, -1073741819, 196611, -655359, 1073741829, 196615, -655358, -536870907, 196615, -655357, -1073741819, 196611, -655356, -1073741819, 196611, -655355, -1073741819, 196611, -655354, -1073741819, 196611, -655353, -1073741819, 196611, -655352, -1073741819, 196611, -655351, -1073741819, 196611, -655350, -1073741819, 196611, -655349, -1073741819, 196611, -655348, -1073741819, 196611, -655347, -1073741819, 196611, -655346, -1073741819, 196611, -655345, -1073741819, 196611, -655344, -1073741819, 196611, -655343, -1073741819, 196611, -655342, -1073741819, 196611, -655341, -1073741819, 196611, -655340, -1073741819, 196611, -655339, -1073741819, 196611, -655338, -1073741819, 196611, -655337, -1073741819, 196611, -655336, -1073741819, 196611, -655335, -1073741819, 196611, -655334, -1073741819, 196611, -655333, -1073741819, 196611, -655332, -1073741819, 196611, -655331, -1073741819, 196611, -655330, -1073741819, 196611, -655329, -1073741819, 196611, -655328, -1073741819, 196611, -655327, -1073741819, 196611, -655326, -1073741819, 196611, -655325, -536870907, 131080, -655324, 1610612741, 65539, -655323, 1610612741, 2, -655322, 1610612741, 2, -655321, 1610612741, 2, -655320, 1610612741, 2, -655319, 1610612741, 2, -655318, 1610612741, 2, -655317, 1610612741, 2, -655316, 1610612741, 2, -655315, 1610612741, 2, -655314, 1610612741, 2, -655313, 1610612741, 2, -655312, 1610612741, 2, -655311, 1610612741, 2, -655310, 1610612741, 2, -655309, 1610612741, 2, -655308, 1610612741, 2, -655307, 1610612741, 2, -655306, 1610612741, 2, -655305, 1610612741, 2, -655304, 1610612741, 2, -655303, 1610612741, 2, -655302, 1610612741, 2, -655301, 1610612741, 2, -655300, 1610612741, 2, -655299, 1610612741, 65538, -655298, 5, 196611, -655297, -1073741819, 65546, -655296, 1610612741, 458760, -524300, -1610612731, 524293, -524299, 5, 458760, -524298, -1610612731, 196610, -524297, 5, 65540, -524296, 5, 10, -524295, 5, 10, -524294, 5, 10, -524293, 5, 10, -524292, 5, 10, -524291, 5, 10, -524290, 5, 10, -524289, 5, 10, -589824, 5, 65541, -589823, 5, 196611, -589822, 1073741829, 196612, -589821, -1073741819, 131080, -589820, 536870917, 262150, -589819, 1073741829, 196618, -589818, 1610612741, 196612, -589817, 536870917, 196618, -589816, 1610612741, 196612, -589815, -1073741819, 65545, -589814, 5, 262144, -589813, 536870917, 327687, -589812, 536870917, 262144, -589811, 1073741829, 196612, -589810, 1073741829, 196617, -589809, -2147483643, 196612, -589808, -2147483643, 196617, -589807, 1073741829, 196618, -589806, 536870917, 196612, -589805, -536870907, 131082, -589804, 1073741829, 196618, -589803, 1073741829, 131075, -589802, 536870917, 196618, -589801, 1610612741, 196612, -589800, -1073741819, 131082, -589799, 536870917, 196618, -589798, -536870907, 196616, -589797, -2147483643, 196616, -589796, 536870917, 196618, -589795, 1073741829, 196617, -589794, -2147483643, 196612, -589793, -2147483643, 196617, -589792, 1073741829, 196618, -589791, -2147483643, 131077, -589790, 1073741829, 196618, -589789, 1610612741, 196611, -589788, 5, 7, -589787, 7, 0, -589786, 7, 0, -589785, 7, 0, -589784, 7, 0, -589783, 7, 0, -589782, 7, 0, -589781, 7, 0, -589780, 7, 0, -589779, 7, 0, -589778, 7, 0, -589777, 7, 0, -589776, 536870917, 0, -589775, 7, 0, -589774, 7, 0, -589773, 7, 0, -589772, 7, 0, -589771, 7, 0, -589770, 7, 0, -589769, 7, 0, -589768, 7, 0, -589767, 7, 0, -589766, 7, 0, -589765, 7, 0, -589764, 7, 0, -589763, 5, 6, -589762, 5, 196611, -589761, -1073741819, 65546, -589760, 1610612741, 458760, -458764, -1610612731, 524293, -458763, 5, 458760, -458762, -1610612731, 196610, -458761, 5, 7, -458757, 0, 1, -458756, 0, 393217, -458755, 0, 2, -458754, 0, 327686, -524288, 1610612741, 7, -524287, 5, 196611, -524286, 1073741829, 196612, -524285, 1610612741, 196612, -524284, -2147483643, 131074, -524283, 1073741829, 196618, -524282, 1610612741, 196612, -524281, 536870917, 196618, -524280, 1610612741, 196612, -524279, 5, 196611, -524278, 5, 262144, -524277, -536870907, 65545, -524276, 536870917, 262144, -524275, 1073741829, 196612, -524274, 1073741829, 196612, -524273, 536870917, 262151, -524272, 536870917, 196612, -524271, 1073741829, 196618, -524270, -2147483643, 131079, -524269, 1073741829, 196612, -524268, 1073741829, 196618, -524267, 1073741829, 196612, -524266, 536870917, 196618, -524265, 1610612741, 196612, -524264, 5, 196611, -524263, 536870917, 196618, -524262, -536870907, 196616, -524261, -2147483643, 196616, -524260, 536870917, 196618, -524259, 1073741829, 196612, -524258, 536870917, 393220, -524257, 536870917, 196612, -524256, 1073741829, 196618, -524255, 536870917, 196611, -524254, 1073741829, 196618, -524253, 1610612741, 196611, -524252, 5, 7, -524251, 7, 0, -524250, 7, 0, -524249, 7, 0, -524248, 7, 0, -524247, 7, 0, -524246, 7, 0, -524245, 7, 0, -524244, 7, 0, -524243, 7, 0, -524242, 7, 0, -524241, 7, 0, -524240, 7, 0, -524239, 7, 0, -524238, 7, 0, -524237, 7, 0, -524236, 7, 0, -524235, 7, 0, -524234, 7, 0, -524233, 7, 0, -524232, 7, 0, -524231, 7, 0, -524230, 7, 0, -524229, 7, 0, -524228, 7, 0, -524227, 5, 6, -524226, 5, 196611, -524225, -1073741819, 196613, -524224, 1610612741, 458760, -393228, -1610612731, 524293, -393227, 5, 458760, -393226, -1610612731, 196610, -393225, 5, 7, -458752, 1610612741, 7, -458751, 5, 196611, -458750, 1073741829, 196612, -458749, -536870907, 131077, -458748, 536870917, 393221, -458747, 1073741829, 196618, -458746, 1610612741, 196612, -458745, 536870917, 196618, -458744, 1610612741, 196612, -458743, -2147483643, 65545, -458742, 5, 262144, -458741, 536870917, 327687, -458740, 536870917, 262144, -458739, 1073741829, 196612, -458738, -536870907, 196617, -458737, -536870907, 196612, -458736, 536870917, 196617, -458735, 1073741829, 196618, -458734, 536870917, 196612, -458733, 1073741829, 196612, -458732, 1073741829, 196618, -458731, 536870917, 262153, -458730, 536870917, 196618, -458729, 1610612741, 196612, -458728, -1610612731, 131078, -458727, 536870917, 196618, -458726, -536870907, 196616, -458725, -2147483643, 196616, -458724, 536870917, 196618, -458723, -536870907, 196617, -458722, -536870907, 196612, -458721, 536870917, 196617, -458720, 1073741829, 196618, -458719, 536870917, 131077, -458718, 1073741829, 196618, -458717, 1610612741, 196611, -458716, 5, 7, -458715, 7, 0, -458714, 7, 0, -458713, 7, 0, -458712, 7, 0, -458711, 7, 0, -458710, 7, 0, -458709, 7, 0, -458708, 7, 0, -458707, 7, 0, -458706, 7, 0, -458705, 7, 0, -458704, 7, 0, -458703, 7, 0, -458702, 7, 0, -458701, 7, 0, -458700, 7, 0, -458699, 7, 0, -458698, 7, 0, -458697, 7, 0, -458696, 7, 0, -458695, 7, 0, -458694, 7, 0, -458693, 7, 0, -458692, 7, 0, -458691, 5, 6, -458690, 5, 196611, -458689, -2147483643, 131075, -458688, 1610612741, 458760, -327692, -1610612731, 524293, -327691, 5, 458760, -327690, -1610612731, 196610, -327689, 5, 7, -327685, 0, 4, -327684, 1, 393223, -327683, 1, 458753, -327682, 0, 5, -393216, 1610612741, 7, -393215, 5, 196611, -393214, 536870917, 196615, -393213, 536870917, 196610, -393212, 536870917, 196610, -393211, 1073741829, 131078, -393210, 536870917, 196610, -393209, 536870917, 196610, -393208, 536870917, 196610, -393207, 536870917, 196610, -393206, 1073741829, 131078, -393205, 536870917, 196610, -393204, 536870917, 196610, -393203, 536870917, 196610, -393202, 536870917, 196610, -393201, 536870917, 196610, -393200, 536870917, 196610, -393199, 536870917, 196610, -393198, 536870917, 196610, -393197, 536870917, 196610, -393196, 536870917, 196610, -393195, 536870917, 196610, -393194, 536870917, 196610, -393193, 536870917, 196610, -393192, 536870917, 196610, -393191, 1073741829, 131078, -393190, 536870917, 196610, -393189, 536870917, 196610, -393188, 536870917, 196610, -393187, 536870917, 196610, -393186, 536870917, 196610, -393185, 536870917, 196610, -393184, 536870917, 196610, -393183, 536870917, 327688, -393182, 536870917, 196610, -393181, 536870917, 196617, -393180, 5, 7, -393179, 7, 0, -393178, 7, 0, -393177, 7, 0, -393176, 7, 0, -393175, 7, 0, -393174, 7, 0, -393173, 7, 0, -393172, 7, 0, -393171, 7, 0, -393170, 7, 0, -393169, 7, 0, -393168, 7, 0, -393167, 7, 0, -393166, 7, 0, -393165, 7, 0, -393164, 7, 0, -393163, 7, 0, -393162, 7, 0, -393161, 7, 0, -393160, 7, 0, -393159, 7, 0, -393158, 7, 0, -393157, 7, 0, -393156, 7, 0, -393155, 5, 6, -393154, 5, 196611, -393153, 1073741829, 196612, -393152, 1610612741, 458760, -262156, -1610612731, 524293, -262155, 5, 458760, -262154, -1610612731, 196610, -262153, 5, 7, -262149, 0, 6, -262148, 0, 7, -262147, 0, 7, -262146, 0, 65536, -327680, 1610612741, 7, -327679, 1073741829, 131076, -327678, -1073741819, 196611, -327677, -1073741819, 196611, -327676, 5, 131078, -327675, -1073741819, 196611, -327674, -1073741819, 196611, -327673, 1610612741, 131082, -327672, 5, 131078, -327671, -1073741819, 196611, -327670, -1073741819, 196611, -327669, -1073741819, 196611, -327668, -1073741819, 196611, -327667, 1610612741, 131082, -327666, 1610612741, 131082, -327665, -1073741819, 196611, -327664, 1610612741, 131079, -327663, -1073741819, 196611, -327662, -1073741819, 196611, -327661, 1610612741, 131079, -327660, 1610612741, 131082, -327659, -1073741819, 196611, -327658, -1073741819, 196611, -327657, -1073741819, 196611, -327656, -1073741819, 196611, -327655, -1073741819, 196611, -327654, 536870917, 327688, -327653, -1073741819, 196611, -327652, -1073741819, 196611, -327651, -1073741819, 196611, -327650, -1073741819, 196611, -327649, 536870917, 131078, -327648, -1073741819, 196611, -327647, -1073741819, 196611, -327646, -1073741819, 196611, -327645, -536870907, 131076, -327644, 5, 7, -327643, 7, 0, -327642, 7, 0, -327641, 7, 0, -327640, 7, 0, -327639, 7, 0, -327638, 7, 0, -327637, 7, 0, -327636, 7, 0, -327635, 7, 0, -327634, 7, 0, -327633, 7, 0, -327632, 7, 0, -327631, 7, 0, -327630, 7, 0, -327629, 7, 0, -327628, 7, 0, -327627, 7, 0, -327626, 7, 0, -327625, 7, 0, -327624, 7, 0, -327623, 7, 0, -327622, 7, 0, -327621, 7, 0, -327620, 7, 0, -327619, 5, 6, -327618, 5, 196611, -327617, -536870907, 393220, -327616, 1610612741, 458760, -196620, -1610612731, 524293, -196619, 5, 458760, -196618, -1610612731, 196610, -196617, 5, 7, -262144, 5, 9, -262143, 5, 10, -262142, 5, 10, -262141, 5, 10, -262140, 5, 10, -262139, 5, 10, -262138, 5, 10, -262137, 5, 10, -262136, 5, 10, -262135, 5, 10, -262134, 5, 10, -262133, 5, 10, -262132, 5, 10, -262131, 5, 10, -262130, 5, 10, -262129, 5, 10, -262128, 5, 10, -262127, 5, 10, -262126, 5, 10, -262125, 5, 10, -262124, 5, 10, -262123, 5, 10, -262122, 5, 10, -262121, 5, 10, -262120, 5, 10, -262119, 5, 10, -262118, 5, 10, -262117, 5, 10, -262116, 5, 10, -262115, 5, 10, -262114, 5, 10, -262113, 5, 10, -262112, 5, 10, -262111, 5, 10, -262110, 5, 10, -262109, 5, 10, -262108, 5, 65536, -262107, 7, 0, -262106, 7, 0, -262105, 7, 0, -262104, 7, 0, -262103, 7, 0, -262102, 7, 0, -262101, 7, 0, -262100, 7, 0, -262099, 7, 0, -262098, 7, 0, -262097, 7, 0, -262096, 7, 0, -262095, 7, 0, -262094, 7, 0, -262093, 7, 0, -262092, 7, 0, -262091, 7, 0, -262090, 7, 0, -262089, 7, 0, -262088, 7, 0, -262087, 7, 0, -262086, 7, 0, -262085, 7, 0, -262084, 7, 0, -262083, 5, 6, -262082, 5, 196611, -262081, 1073741829, 196612, -262080, 1610612741, 458760, -131084, -1610612731, 524293, -131083, 5, 458760, -131082, -1610612731, 196610, -131081, 5, 7, -196603, 1, 6, -196602, 1, 7, -196601, 1, 7, -196600, 1, 7, -196599, 1, 7, -196598, 1, 65536, -196591, 1, 4, -196590, -1610612735, 196614, -196589, 1, 393216, -196588, 1, 2, -196587, 1, 2, -196586, 1, 2, -196585, 1, 3, -196579, 7, 0, -196578, 7, 0, -196577, 7, 0, -196576, 7, 0, -196575, 7, 0, -196574, 7, 0, -196573, 7, 0, -196572, 7, 0, -196571, 7, 0, -196570, 7, 0, -196569, 7, 0, -196568, 7, 0, -196567, 7, 0, -196566, 7, 0, -196565, 7, 0, -196564, 7, 0, -196563, 7, 0, -196562, 7, 0, -196561, 7, 0, -196560, 7, 0, -196559, 7, 0, -196558, 7, 0, -196557, 7, 0, -196556, 7, 0, -196555, 7, 0, -196554, 7, 0, -196553, 7, 0, -196552, 7, 0, -196551, 7, 0, -196550, 7, 0, -196549, 7, 0, -196548, 7, 0, -196547, 5, 6, -196546, 5, 196611, -196545, 1073741829, 196612, -196544, 1610612741, 458760, -65548, -1610612731, 524293, -65547, 5, 458760, -65546, -1610612731, 196610, -65545, 5, 7, -131055, 1, 4, -131054, -1610612735, 196614, -131053, 1, 393218, -131052, 1, 393219, -131051, 1, 393219, -131050, 1, 393220, -131049, 1, 5, -131043, 7, 0, -131042, 7, 0, -131041, 7, 0, -131040, 7, 0, -131039, 7, 0, -131038, 7, 0, -131037, 7, 0, -131036, 7, 0, -131035, 7, 0, -131034, 7, 0, -131033, 7, 0, -131032, 7, 0, -131031, 7, 0, -131030, 7, 0, -131029, 5, 65542, -131028, 5, 65543, -131027, 5, 65544, -131024, 7, 0, -131023, 7, 0, -131022, 7, 0, -131021, 7, 0, -131020, 7, 0, -131019, 7, 0, -131018, 7, 0, -131017, 7, 0, -131016, 7, 0, -131015, 7, 0, -131014, 7, 0, -131013, 7, 0, -131012, 7, 0, -131011, 5, 6, -131010, 5, 196611, -131009, 1073741829, 327688, -131008, 1610612741, 458760, -12, -1610612731, 524293, -11, 5, 458760, -10, -1610612731, 196610, -9, 5, 7, -65519, 1, 4, -65518, -1610612735, 196614, -65514, 1, 393222, -65513, 1, 393216, -65512, 1, 2, -65511, 1, 2, -65510, 1, 327686, -65507, 7, 0, -65506, 7, 0, -65505, 7, 0, -65504, 7, 0, -65503, 7, 0, -65502, 7, 0, -65501, 7, 0, -65500, 7, 0, -65499, 7, 0, -65498, 7, 0, -65497, 7, 0, -65496, 7, 0, -65495, 7, 0, -65494, 7, 0, -65493, 7, 0, -65492, 7, 0, -65491, 7, 0, -65490, 7, 0, -65489, 7, 0, -65488, 7, 0, -65487, 7, 0, -65486, 7, 0, -65485, 7, 0, -65484, 7, 0, -65483, 7, 0, -65482, 5, 1, -65481, 5, 3, -65480, 5, 3, -65479, 5, 3, -65478, 5, 3, -65477, 5, 3, -65476, 5, 3, -65475, 5, 65539, -65474, 5, 196611, -65473, -1073741819, 196613, -65472, 1610612741, 458760, 65524, -1610612731, 524293, 65525, 5, 458760, 65526, -1610612731, 196610, 65527, 5, 65538, 65528, 5, 2, 65529, 5, 2, 65530, 5, 2, 65531, 5, 2, 65532, 5, 2, 65533, 5, 2, 65534, 5, 2, 65535, 5, 2, 0, 5, 3, 1, 5, 3, 2, 5, 3, 3, 5, 3, 4, 5, 3, 5, 5, 3, 6, 5, 3, 7, 5, 3, 8, 5, 3, 9, 5, 3, 10, 5, 3, 11, 5, 3, 12, 5, 3, 13, 5, 3, 14, 5, 3, 15, 5, 2, 16, 5, 2, 17, 5, 2, 18, 5, 2, 19, 5, 2, 20, 5, 2, 21, 5, 2, 22, 5, 2, 23, 5, 2, 24, 5, 2, 25, 5, 2, 26, 5, 2, 27, 5, 2, 28, 5, 2, 29, 5, 2, 30, 5, 2, 31, 5, 2, 32, 5, 2, 33, 5, 2, 34, 5, 2, 35, 5, 2, 36, 5, 2, 37, 5, 5, 38, 7, 0, 39, 7, 0, 40, 7, 0, 41, 7, 0, 42, 7, 0, 43, 7, 0, 44, 7, 0, 45, 7, 0, 46, 7, 0, 47, 7, 0, 48, 7, 0, 49, 7, 0, 50, 7, 0, 51, 7, 0, 52, 7, 0, 53, 7, 0, 54, 5, 6, 55, 5, 131076, 56, -1610612731, 196611, 57, -1610612731, 196611, 58, -1610612731, 196611, 59, -1610612731, 196611, 60, -1610612731, 196611, 61, -1610612731, 196611, 62, 5, 196609, 63, -1073741819, 196613, 64, 1610612741, 458760, 131060, -1610612731, 524293, 131061, 5, 458760, 131062, -1610612731, 196609, 131063, -1610612731, 196611, 131064, -1610612731, 196611, 131065, -1610612731, 196611, 131066, -1610612731, 196611, 131067, -1610612731, 196611, 131068, -1610612731, 196611, 131069, -1610612731, 196611, 131070, -1610612731, 196611, 131071, -1610612731, 196611, 65536, -1610612731, 196611, 65537, -1610612731, 196611, 65538, -1610612731, 196611, 65539, -1610612731, 196611, 65540, -1610612731, 196611, 65541, -1610612731, 196611, 65542, -1610612731, 196611, 65543, -1610612731, 196611, 65544, -1610612731, 196611, 65545, -1610612731, 196611, 65546, -1610612731, 196611, 65547, -1610612731, 196611, 65548, -1610612731, 196611, 65549, -1610612731, 196611, 65550, -1610612731, 196611, 65551, -1610612731, 196611, 65552, -1610612731, 196611, 65553, -1610612731, 196611, 65554, -1610612731, 196611, 65555, -1610612731, 196611, 65556, -1610612731, 196611, 65557, -1610612731, 196611, 65558, -1610612731, 196611, 65559, -1610612731, 196611, 65560, -1610612731, 196611, 65561, -1610612731, 196611, 65562, -1610612731, 196611, 65563, -1610612731, 196611, 65564, -1610612731, 196611, 65565, -1610612731, 196611, 65566, 1610612741, 196613, 65567, 1610612741, 196613, 65568, 1610612741, 196613, 65569, -1610612731, 196611, 65570, -1610612731, 196611, 65571, -1610612731, 196611, 65572, -1610612731, 131076, 65573, 5, 8, 65574, 7, 0, 65575, 7, 0, 65576, 7, 0, 65577, 7, 0, 65578, 7, 0, 65579, 7, 0, 65580, 7, 0, 65581, 7, 0, 65582, 7, 0, 65583, 7, 0, 65584, 7, 0, 65585, 7, 0, 65586, 5, 1, 65587, 5, 3, 65588, 5, 3, 65589, 5, 3, 65590, 5, 65539, 65591, 5, 196611, 65592, -1073741819, 196618, 65593, -1073741819, 196618, 65594, -1073741819, 196618, 65595, -1073741819, 196618, 65596, -1073741819, 196618, 65597, -1073741819, 196618, 65598, -1073741819, 196618, 65599, -1073741819, 196613, 65600, 1610612741, 458760, 196596, -1610612731, 524293, 196597, 5, 524292, 196598, 5, 458761, 196599, 5, 458761, 196600, 5, 458761, 196601, 5, 458761, 196602, 5, 458761, 196603, 5, 458761, 196604, 5, 458761, 196605, 5, 458761, 196606, 5, 458761, 196607, 5, 458761, 131072, -1073741819, 458756, 131073, 536870917, 196610, 131074, -1610612731, 589830, 131075, -1610612731, 589828, 131076, -1610612731, 589828, 131077, -1610612731, 589828, 131078, 5, 589827, 131079, 1610612741, 196614, 131080, -1073741819, 196614, 131081, 5, 524298, 131082, -1610612731, 589828, 131083, -1610612731, 589828, 131084, -1610612731, 589828, 131085, -1610612731, 589828, 131086, 5, 589827, 131087, 1610612741, 196612, 131088, -1073741819, 589827, 131089, -1610612731, 589828, 131090, -1610612731, 589828, 131091, -1610612731, 589828, 131092, -1610612731, 589828, 131093, -1610612731, 589828, 131094, -1610612731, 589828, 131095, -1610612731, 589828, 131096, 5, 589827, 131097, 1610612741, 196614, 131098, -1073741819, 196614, 131099, 5, 524298, 131100, -1610612731, 589828, 131101, -1610612731, 589828, 131102, -1610612731, 589828, 131103, -1610612731, 589828, 131104, -1610612731, 589828, 131105, -1610612731, 589828, 131106, 1610612741, 589830, 131107, 536870917, 262152, 131108, 1610612741, 196611, 131109, 5, 8, 131110, 7, 0, 131111, 7, 0, 131112, 7, 0, 131113, 7, 0, 131114, 7, 0, 131115, 7, 0, 131116, 7, 0, 131117, 7, 0, 131118, 7, 0, 131119, 7, 0, 131120, 7, 0, 131121, 7, 0, 131122, 5, 6, 131123, -1610612731, 131077, 131124, -1610612731, 196611, 131125, -1610612731, 196611, 131126, -1610612731, 196611, 131127, 5, 196609, 131128, 1610612741, 196613, 131129, 1610612741, 196613, 131130, 1610612741, 196613, 131131, 1610612741, 196613, 131132, 1610612741, 196613, 131133, 1610612741, 196613, 131134, 1610612741, 196613, 131135, 5, 196614, 131136, 1610612741, 458760, 262132, -1610612731, 524293, 262133, 5, 524293, 262134, 5, 524293, 262135, 5, 524293, 262136, 5, 524293, 262137, 5, 524293, 262138, 5, 524293, 262139, 5, 524293, 262140, 5, 524293, 262141, 5, 524293, 262142, 5, 524293, 262143, 5, 524293, 196608, 5, 458760, 196609, 1073741829, 196610, 196610, 536870917, 589832, 196611, -1073741819, 589828, 196612, -1073741819, 589828, 196613, -1073741819, 589828, 196614, 1610612741, 524298, 196615, -1610612731, 196614, 196616, 5, 196614, 196617, 5, 589830, 196618, -1073741819, 589828, 196619, -1073741819, 589828, 196620, -1073741819, 589828, 196621, -1073741819, 589828, 196622, 5, 589832, 196623, 1610612741, 196612, 196624, 1610612741, 589827, 196625, -1073741819, 589828, 196626, -1073741819, 589828, 196627, -1073741819, 589828, 196628, -1073741819, 589828, 196629, -1073741819, 589828, 196630, -1073741819, 589828, 196631, -1073741819, 589828, 196632, 1610612741, 524298, 196633, -1610612731, 196614, 196634, 5, 196614, 196635, 5, 589830, 196636, -1073741819, 589828, 196637, -1073741819, 589828, 196638, -1073741819, 589828, 196639, -1073741819, 589828, 196640, -1073741819, 589828, 196641, -1073741819, 589828, 196642, 1610612741, 524298, 196643, -2147483643, 131074, 196644, 1610612741, 196611, 196645, 5, 65538, 196646, 5, 2, 196647, 5, 2, 196648, 5, 2, 196649, 5, 2, 196650, 5, 2, 196651, 5, 2, 196652, 5, 2, 196653, 5, 2, 196654, 5, 2, 196655, 5, 2, 196656, 5, 2, 196657, 5, 2, 196658, 5, 65539, 196659, -1610612731, 196613, 196660, 1073741829, 327688, 196661, -2147483643, 131074, 196662, -1073741819, 458753, 196663, -1073741819, 458760, 196664, -1073741819, 458760, 196665, -1073741819, 458760, 196666, -1073741819, 458760, 196667, -1073741819, 458760, 196668, -1073741819, 458760, 196669, -1073741819, 458760, 196670, -1073741819, 458760, 196671, -1073741819, 458760, 196672, -1073741819, 524292, 327668, -1610612731, 524293, 327669, 5, 524293, 327670, 5, 524293, 327671, 5, 524293, 327672, 5, 524293, 327673, 5, 524293, 327674, 5, 524293, 327675, 5, 524293, 327676, 5, 524293, 327677, 5, 524293, 327678, 5, 524293, 327679, 5, 524293, 262144, 5, 458760, 262145, -1073741819, 196612, 262146, -1073741819, 196612, 262147, -1073741819, 196612, 262148, -1073741819, 196612, 262149, -1073741819, 196612, 262150, -2147483643, 327688, 262151, -1073741819, 196612, 262152, -1073741819, 196612, 262153, -1073741819, 196612, 262154, -1073741819, 196612, 262155, -1073741819, 196612, 262156, -1073741819, 196612, 262157, -1073741819, 196612, 262158, -2147483643, 327688, 262159, -1073741819, 196612, 262160, -1073741819, 196612, 262161, -1073741819, 196612, 262162, -1073741819, 196612, 262163, -1073741819, 196612, 262164, -1073741819, 196612, 262165, -1073741819, 196612, 262166, -1073741819, 196612, 262167, -1073741819, 196612, 262168, -2147483643, 327688, 262169, -1073741819, 196612, 262170, -1073741819, 196612, 262171, -1073741819, 196612, 262172, -1073741819, 196612, 262173, -1073741819, 196612, 262174, -1073741819, 196612, 262175, -1073741819, 196612, 262176, -1073741819, 196612, 262177, -1073741819, 196612, 262178, -2147483643, 327688, 262179, -536870907, 131076, 262180, -1610612731, 196609, 262181, -1610612731, 196611, 262182, -1610612731, 196611, 262183, -1610612731, 196611, 262184, -1610612731, 196611, 262185, -1610612731, 196611, 262186, -1610612731, 196611, 262187, 536870917, 131082, 262188, -1610612731, 196611, 262189, 1073741829, 131078, 262190, -1610612731, 196611, 262191, -1610612731, 196611, 262192, -1610612731, 196611, 262193, -1610612731, 196611, 262194, 1610612741, 196613, 262195, 5, 196609, 262196, 1073741829, 327688, 262197, -2147483643, 131075, 262198, 1610612741, 458760, 262199, -1610612731, 524293, 262200, -1610612731, 524293, 262201, -1610612731, 524293, 262202, -1610612731, 524293, 262203, -1610612731, 524293, 262204, -1610612731, 524293, 262205, -1610612731, 524293, 262206, -1610612731, 524293, 262207, -1610612731, 524293, 262208, -1610612731, 524293, 393204, -1610612731, 524293, 393205, 5, 524293, 393206, 5, 524293, 393207, 5, 524293, 393208, 5, 524293, 393209, 5, 524293, 393210, 5, 524293, 393211, 5, 524293, 393212, 5, 524293, 393213, 5, 524293, 393214, 5, 524293, 393215, 5, 524293, 327680, 5, 524292, 327681, 1610612741, 458759, 327682, -1073741819, 458760, 327683, -1073741819, 458760, 327684, -1073741819, 458760, 327685, -1073741819, 458760, 327686, -1073741819, 458760, 327687, -1073741819, 458760, 327688, -1073741819, 458760, 327689, -1073741819, 458760, 327690, -1073741819, 458760, 327691, -1073741819, 458760, 327692, -1073741819, 458760, 327693, -1073741819, 458760, 327694, -1073741819, 458760, 327695, -1073741819, 458760, 327696, -1073741819, 458760, 327697, -1073741819, 458760, 327698, -1073741819, 458760, 327699, -1073741819, 458760, 327700, -1073741819, 458760, 327701, -1073741819, 458760, 327702, -1073741819, 458760, 327703, -1073741819, 458760, 327704, -1073741819, 458760, 327705, -1073741819, 458760, 327706, -1073741819, 458760, 327707, -1073741819, 458760, 327708, -1073741819, 458760, 327709, -1073741819, 458760, 327710, -1073741819, 458760, 327711, -1073741819, 458760, 327712, -1073741819, 458760, 327713, -1073741819, 458760, 327714, -1073741819, 458760, 327715, -1073741819, 458760, 327716, -1073741819, 458760, 327717, -1073741819, 458760, 327718, -1073741819, 458760, 327719, -1073741819, 458760, 327720, -1073741819, 458760, 327721, -1073741819, 458760, 327722, -1073741819, 458760, 327723, -1073741819, 458760, 327724, -1073741819, 458760, 327725, -1073741819, 458760, 327726, -1073741819, 458760, 327727, -1073741819, 458760, 327728, -1073741819, 458760, 327729, -1073741819, 458760, 327730, -1073741819, 458760, 327731, -1073741819, 458760, 327732, -1073741819, 458760, 327733, -1073741819, 458760, 327734, -1073741819, 524292, 327735, -1610612731, 524293, 327736, -1610612731, 524293, 327737, -1610612731, 524293, 327738, -1610612731, 524293, 327739, -1610612731, 524293, 327740, -1610612731, 524293, 327741, -1610612731, 524293, 327742, -1610612731, 524293, 327743, -1610612731, 524293, 327744, -1610612731, 524293 ) [node name="TileMap2" type="TileMap" parent="."] tile_set = ExtResource( 4 ) @@ -542,168 +561,21 @@ position = Vector2( 742, 36 ) [node name="ShaderGrass29" parent="Decor" instance=ExtResource( 12 )] position = Vector2( 785, 36 ) -[node name="LevelMusic" type="AudioStreamPlayer" parent="."] +[node name="LevelAmbiance" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true stream = ExtResource( 13 ) -volume_db = -14.14 +volume_db = -14.994 autoplay = true bus = "Music" -[node name="GetBackMusic" type="AudioStreamPlayer" parent="."] -stream = ExtResource( 14 ) - -[node name="Tutorials" type="Node2D" parent="."] - -[node name="JumpTut" parent="Tutorials" instance=ExtResource( 15 )] -position = Vector2( 576, -15 ) -tutorial_text = "Press to jump:" - -[node name="Button" parent="Tutorials/JumpTut" index="0"] -material = SubResource( 11 ) - -[node name="CollisionShape2D" parent="Tutorials/JumpTut/StartTutorialArea" index="0"] -position = Vector2( -24.5, 0 ) - -[node name="LeftTut" parent="Tutorials" instance=ExtResource( 15 )] -position = Vector2( -40, -14 ) -action = "move_left" -tutorial_text = "Press to move left:" -press_limit = 2 -initial_wait_time = 7.0 - -[node name="Button" parent="Tutorials/LeftTut" index="0"] -material = SubResource( 12 ) - -[node name="AnimationPlayer" parent="Tutorials/LeftTut" index="5"] -anims/RESET = SubResource( 7 ) -anims/cease_4_exist = SubResource( 8 ) - -[node name="CollisionShape2D" parent="Tutorials/LeftTut/StartTutorialArea" index="0"] -position = Vector2( -24.5, 0 ) - -[node name="RightTut" parent="Tutorials" instance=ExtResource( 15 )] -position = Vector2( -40, -56 ) -action = "move_right" -tutorial_text = "Press to move right:" -press_limit = 2 -initial_wait_time = 4.0 - -[node name="Button" parent="Tutorials/RightTut" index="0"] -material = SubResource( 13 ) - -[node name="AnimationPlayer" parent="Tutorials/RightTut" index="5"] -anims/RESET = SubResource( 9 ) -anims/cease_4_exist = SubResource( 10 ) - -[node name="CollisionShape2D" parent="Tutorials/RightTut/StartTutorialArea" index="0"] -position = Vector2( -24.5, 0 ) - [node name="Mine" parent="." instance=ExtResource( 18 )] -position = Vector2( 31, -6 ) +position = Vector2( 10, -6 ) [node name="Mine3" parent="." instance=ExtResource( 18 )] -position = Vector2( 31, -24 ) +position = Vector2( 10, -24 ) [node name="Mine2" parent="." instance=ExtResource( 18 )] -position = Vector2( 31, -41 ) - -[node name="Mine4" parent="." instance=ExtResource( 18 )] -position = Vector2( 48, -6 ) - -[node name="Mine5" parent="." instance=ExtResource( 18 )] -position = Vector2( 48, -24 ) - -[node name="Mine6" parent="." instance=ExtResource( 18 )] -position = Vector2( 48, -41 ) - -[node name="Mine7" parent="." instance=ExtResource( 18 )] -position = Vector2( 63, -6 ) - -[node name="Mine8" parent="." instance=ExtResource( 18 )] -position = Vector2( 63, -24 ) - -[node name="Mine9" parent="." instance=ExtResource( 18 )] -position = Vector2( 63, -41 ) - -[node name="Mine10" parent="." instance=ExtResource( 18 )] -position = Vector2( 80, -6 ) - -[node name="Mine11" parent="." instance=ExtResource( 18 )] -position = Vector2( 80, -24 ) - -[node name="Mine12" parent="." instance=ExtResource( 18 )] -position = Vector2( 80, -41 ) - -[node name="Mine13" parent="." instance=ExtResource( 18 )] -position = Vector2( 95, -6 ) - -[node name="Mine14" parent="." instance=ExtResource( 18 )] -position = Vector2( 95, -24 ) - -[node name="Mine15" parent="." instance=ExtResource( 18 )] -position = Vector2( 95, -41 ) - -[node name="Mine16" parent="." instance=ExtResource( 18 )] -position = Vector2( 112, -6 ) - -[node name="Mine17" parent="." instance=ExtResource( 18 )] -position = Vector2( 112, -24 ) - -[node name="Mine18" parent="." instance=ExtResource( 18 )] -position = Vector2( 112, -41 ) - -[node name="Mine19" parent="." instance=ExtResource( 18 )] -position = Vector2( 128, -6 ) - -[node name="Mine20" parent="." instance=ExtResource( 18 )] -position = Vector2( 128, -24 ) - -[node name="Mine21" parent="." instance=ExtResource( 18 )] -position = Vector2( 128, -41 ) - -[node name="Mine22" parent="." instance=ExtResource( 18 )] -position = Vector2( 145, -6 ) - -[node name="Mine23" parent="." instance=ExtResource( 18 )] -position = Vector2( 145, -24 ) - -[node name="Mine24" parent="." instance=ExtResource( 18 )] -position = Vector2( 145, -41 ) - -[node name="Mine25" parent="." instance=ExtResource( 18 )] -position = Vector2( 160, -6 ) - -[node name="Mine26" parent="." instance=ExtResource( 18 )] -position = Vector2( 160, -24 ) - -[node name="Mine27" parent="." instance=ExtResource( 18 )] -position = Vector2( 160, -41 ) - -[node name="Mine28" parent="." instance=ExtResource( 18 )] -position = Vector2( 177, -6 ) - -[node name="Mine29" parent="." instance=ExtResource( 18 )] -position = Vector2( 177, -24 ) - -[node name="Mine30" parent="." instance=ExtResource( 18 )] -position = Vector2( 177, -41 ) - -[node name="Mine31" parent="." instance=ExtResource( 18 )] -position = Vector2( 192, -6 ) - -[node name="Mine32" parent="." instance=ExtResource( 18 )] -position = Vector2( 192, -24 ) - -[node name="Mine33" parent="." instance=ExtResource( 18 )] -position = Vector2( 192, -41 ) - -[node name="Mine34" parent="." instance=ExtResource( 18 )] -position = Vector2( 209, -6 ) - -[node name="Mine35" parent="." instance=ExtResource( 18 )] -position = Vector2( 209, -24 ) - -[node name="Mine36" parent="." instance=ExtResource( 18 )] -position = Vector2( 209, -41 ) +position = Vector2( 10, -41 ) [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] @@ -711,9 +583,9 @@ position = Vector2( 209, -41 ) [editable path="LevelState"] [editable path="UserInterface"] [editable path="UserInterface/HUD"] -[editable path="BlobbyCam"] -[editable path="Blobby"] -[editable path="WhatAreFrog"] [editable path="Tutorials/JumpTut"] [editable path="Tutorials/LeftTut"] [editable path="Tutorials/RightTut"] +[editable path="BlobbyCam"] +[editable path="Blobby"] +[editable path="WhatAreFrog"] diff --git a/src/Levels/2 Tutorial Level.tscn b/src/Levels/2 Tutorial Level.tscn index 6056222..132689b 100644 --- a/src/Levels/2 Tutorial Level.tscn +++ b/src/Levels/2 Tutorial Level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=22 format=2] +[gd_scene load_steps=24 format=2] [ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=1] [ext_resource path="res://assets/environment/decor/platform-plants.png" type="Texture" id=2] @@ -17,6 +17,8 @@ [ext_resource path="res://src/UserInterface/TutorialComboThingy.tscn" type="PackedScene" id=15] [ext_resource path="res://src/UserInterface/TutorialThingy.tscn" type="PackedScene" id=16] [ext_resource path="res://assets/effects/noise.png" type="Texture" id=17] +[ext_resource path="res://src/BenefitialObjects/SavePoint.tscn" type="PackedScene" id=18] +[ext_resource path="res://assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav" type="AudioStream" id=19] [sub_resource type="AnimationNodeStateMachinePlayback" id=6] @@ -123,41 +125,19 @@ drag_margin_top = 0.1 drag_margin_bottom = 0.1 [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 0 +frame = 7 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 8 +frame = 1 [node name="Blobby" parent="." instance=ExtResource( 8 )] unique_name_in_owner = true position = Vector2( -156, -51 ) scale = Vector2( 0.878906, 0.936025 ) -[node name="CollisionPolygon2D" parent="Blobby/BlobbySkin" index="0"] -position = Vector2( 0.0286326, -10.0053 ) - -[node name="BlobbySprite" parent="Blobby" index="3"] -scale = Vector2( -1, 1 ) -frame = 5 - [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 6 ) -[node name="BlobbyBody" parent="Blobby" index="8"] -position = Vector2( 0.0392303, -10.002 ) - -[node name="Left_Wallcast1" parent="Blobby/WallRaycasts/LeftWallRaycast" index="0"] -position = Vector2( -11.9763, -5 ) - -[node name="Left_Wallcast2" parent="Blobby/WallRaycasts/LeftWallRaycast" index="1"] -position = Vector2( -11.9763, 5 ) - -[node name="Right_Wallcast1" parent="Blobby/WallRaycasts/RightWallRaycast" index="0"] -position = Vector2( 12.0551, -5 ) - -[node name="Right_Wallcast2" parent="Blobby/WallRaycasts/RightWallRaycast" index="1"] -position = Vector2( 12.0551, 5 ) - [node name="PitArea" parent="." instance=ExtResource( 13 )] position = Vector2( 1338, 198 ) @@ -245,11 +225,20 @@ press_limit = 2 position = Vector2( 1440, -90 ) action = "interact" tutorial_text = "Press to interact:" -press_limit = 1 [node name="Button" parent="TutorialThingy" index="0"] material = SubResource( 14 ) +[node name="SavePoint" parent="." instance=ExtResource( 18 )] +position = Vector2( 1168, -88 ) + +[node name="LevelAmbiance" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true +stream = ExtResource( 19 ) +volume_db = -14.994 +autoplay = true +bus = "Music" + [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] [editable path="SignalManager"] diff --git a/src/Levels/3 Tutorial Level.tscn b/src/Levels/3 Tutorial Level.tscn index f5e0804..4da7e85 100644 --- a/src/Levels/3 Tutorial Level.tscn +++ b/src/Levels/3 Tutorial Level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=24 format=2] +[gd_scene load_steps=25 format=2] [ext_resource path="res://assets/environment/decor/platform-plants.png" type="Texture" id=1] [ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=2] @@ -19,6 +19,7 @@ [ext_resource path="res://src/Platforms/FlyingPlatformSmol.tscn" type="PackedScene" id=17] [ext_resource path="res://src/UserInterface/TutorialComboThingy.tscn" type="PackedScene" id=18] [ext_resource path="res://assets/effects/noise.png" type="Texture" id=19] +[ext_resource path="res://assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav" type="AudioStream" id=20] [sub_resource type="AnimationNodeStateMachinePlayback" id=6] @@ -123,41 +124,19 @@ wait_time = 20.0 unique_name_in_owner = true [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 2 +frame = 10 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 1 +frame = 9 [node name="Blobby" parent="." instance=ExtResource( 10 )] unique_name_in_owner = true position = Vector2( -180, 112 ) scale = Vector2( 0.878906, 0.936025 ) -[node name="CollisionPolygon2D" parent="Blobby/BlobbySkin" index="0"] -position = Vector2( 0.0286326, -10.0053 ) - -[node name="BlobbySprite" parent="Blobby" index="3"] -scale = Vector2( -1, 1 ) -frame = 5 - [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 6 ) -[node name="BlobbyBody" parent="Blobby" index="8"] -position = Vector2( 0.0392303, -10.002 ) - -[node name="Left_Wallcast1" parent="Blobby/WallRaycasts/LeftWallRaycast" index="0"] -position = Vector2( -11.9763, -5 ) - -[node name="Left_Wallcast2" parent="Blobby/WallRaycasts/LeftWallRaycast" index="1"] -position = Vector2( -11.9763, 5 ) - -[node name="Right_Wallcast1" parent="Blobby/WallRaycasts/RightWallRaycast" index="0"] -position = Vector2( 12.0551, -5 ) - -[node name="Right_Wallcast2" parent="Blobby/WallRaycasts/RightWallRaycast" index="1"] -position = Vector2( 12.0551, 5 ) - [node name="PitArea" parent="." instance=ExtResource( 3 )] position = Vector2( 416, 170 ) @@ -273,6 +252,13 @@ goal_state = "runToJump" tutorial_text = "Move and press to runjump:" press_limit = 1 +[node name="LevelAmbiance" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true +stream = ExtResource( 20 ) +volume_db = -14.994 +autoplay = true +bus = "Music" + [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] [editable path="SignalManager"] diff --git a/src/Levels/4 Tutorial Level.tscn b/src/Levels/4 Tutorial Level.tscn index 9a6de87..c526b01 100644 --- a/src/Levels/4 Tutorial Level.tscn +++ b/src/Levels/4 Tutorial Level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=22 format=2] +[gd_scene load_steps=23 format=2] [ext_resource path="res://src/Environment/GreenHouseTiles.tres" type="TileSet" id=1] [ext_resource path="res://src/Environment/DropThroughPlatforms.tres" type="TileSet" id=2] @@ -19,8 +19,9 @@ [ext_resource path="res://src/Actors/Enemies/DartingEnemy.tscn" type="PackedScene" id=17] [ext_resource path="res://src/Contraptions/Triggers/GateButton.tscn" type="PackedScene" id=18] [ext_resource path="res://src/Platforms/FlyingLaserCutter.tscn" type="PackedScene" id=19] +[ext_resource path="res://assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav" type="AudioStream" id=20] -[sub_resource type="AnimationNodeStateMachinePlayback" id=4] +[sub_resource type="AnimationNodeStateMachinePlayback" id=6] [sub_resource type="TileSet" id=5] 0/name = "platform-plants.png 0" @@ -78,8 +79,8 @@ unique_name_in_owner = true position = Vector2( -70, -1.90735e-06 ) scale = Vector2( 0.878906, 0.936025 ) -[node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] -parameters/playback = SubResource( 4 ) +[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] +parameters/playback = SubResource( 6 ) [node name="TileMap" type="TileMap" parent="."] unique_name_in_owner = true @@ -183,6 +184,13 @@ position = Vector2( 609, 67 ) speed = 300 acceleration = 800 +[node name="LevelAmbiance" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true +stream = ExtResource( 20 ) +volume_db = -14.994 +autoplay = true +bus = "Music" + [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] [editable path="SignalManager"] diff --git a/src/Levels/5 Tutorial Level.tscn b/src/Levels/5 Tutorial Level.tscn index 93b442d..3421d60 100644 --- a/src/Levels/5 Tutorial Level.tscn +++ b/src/Levels/5 Tutorial Level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=19 format=2] +[gd_scene load_steps=20 format=2] [ext_resource path="res://src/Environment/GreenHouseTiles.tres" type="TileSet" id=1] [ext_resource path="res://src/Environment/DropThroughPlatforms.tres" type="TileSet" id=2] @@ -14,9 +14,10 @@ [ext_resource path="res://src/Platforms/FlyingPlatformSmol.tscn" type="PackedScene" id=12] [ext_resource path="res://src/Actors/Enemies/Flyer.tscn" type="PackedScene" id=13] [ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=14] +[ext_resource path="res://assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav" type="AudioStream" id=15] [ext_resource path="res://src/Contraptions/VendingMachine.tscn" type="PackedScene" id=19] -[sub_resource type="AnimationNodeStateMachinePlayback" id=4] +[sub_resource type="AnimationNodeStateMachinePlayback" id=7] [sub_resource type="TileSet" id=5] 0/name = "platform-plants.png 0" @@ -66,18 +67,18 @@ unique_name_in_owner = true drag_margin_bottom = 0.3 [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 4 +frame = 6 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 3 +frame = 5 [node name="Blobby" parent="." instance=ExtResource( 9 )] unique_name_in_owner = true position = Vector2( -186, 110 ) scale = Vector2( 0.878906, 0.936025 ) -[node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] -parameters/playback = SubResource( 4 ) +[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] +parameters/playback = SubResource( 7 ) [node name="VendingMachine" parent="." instance=ExtResource( 19 )] position = Vector2( 48, 100 ) @@ -137,6 +138,13 @@ position = Vector2( 0, 23 ) [node name="Position2D3" parent="Flyer/PatrolPath" index="1"] position = Vector2( 0, -25 ) +[node name="LevelAmbiance" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true +stream = ExtResource( 15 ) +volume_db = -14.994 +autoplay = true +bus = "Music" + [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] [editable path="SignalManager"] diff --git a/src/Levels/6 Tutorial Level.tscn b/src/Levels/6 Tutorial Level.tscn index a052555..2b58f7b 100644 --- a/src/Levels/6 Tutorial Level.tscn +++ b/src/Levels/6 Tutorial Level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=43 format=2] +[gd_scene load_steps=44 format=2] [ext_resource path="res://src/Environment/GreenHouseTiles.tres" type="TileSet" id=1] [ext_resource path="res://src/Environment/DropThroughPlatforms.tres" type="TileSet" id=2] @@ -22,8 +22,9 @@ [ext_resource path="res://src/Contraptions/Triggers/GateButton.tscn" type="PackedScene" id=20] [ext_resource path="res://src/Contraptions/Triggers/FrogFreeButton.tscn" type="PackedScene" id=21] [ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=22] +[ext_resource path="res://assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav" type="AudioStream" id=23] -[sub_resource type="AnimationNodeStateMachinePlayback" id=4] +[sub_resource type="AnimationNodeStateMachinePlayback" id=53] [sub_resource type="TileSet" id=5] 0/name = "platform-plants.png 0" @@ -259,18 +260,18 @@ visible = false drag_margin_bottom = 0.3 [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 11 +frame = 4 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 10 +frame = 12 [node name="Blobby" parent="." instance=ExtResource( 9 )] unique_name_in_owner = true position = Vector2( -128, 16 ) scale = Vector2( 0.878906, 0.936025 ) -[node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] -parameters/playback = SubResource( 4 ) +[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] +parameters/playback = SubResource( 53 ) [node name="TileMap" type="TileMap" parent="."] unique_name_in_owner = true @@ -282,7 +283,7 @@ collision_layer = 8 collision_mask = 8 bake_navigation = true format = 1 -tile_data = PoolIntArray( -393228, 5, 65540, -393227, 5, 10, -393226, 5, 10, -393225, 5, 10, -393224, 5, 10, -393223, 5, 10, -393222, 5, 10, -393221, 5, 10, -393220, 5, 10, -393219, 5, 10, -393218, 5, 10, -393217, 5, 10, -458752, 5, 10, -458751, 5, 10, -458750, 5, 10, -458749, 5, 10, -458748, 5, 10, -458747, 5, 10, -458746, 5, 10, -458745, 5, 10, -458744, 5, 10, -458743, 5, 10, -458742, 5, 10, -458741, 5, 10, -458740, 5, 10, -458739, 5, 10, -458738, 5, 65541, -327692, 5, 7, -327691, 7, 0, -327690, 7, 0, -327689, 7, 0, -327688, 7, 0, -327687, 7, 0, -327686, 7, 0, -327685, 7, 0, -327684, 7, 0, -327683, 7, 0, -327682, 7, 0, -327681, 7, 0, -393216, 7, 0, -393215, 7, 0, -393214, 5, 6, -393213, 5, 7, -393212, 7, 0, -393211, 7, 0, -393210, 7, 0, -393209, 7, 0, -393208, 7, 0, -393207, 7, 0, -393206, 7, 0, -393205, 7, 0, -393204, 7, 0, -393203, 7, 0, -393202, 5, 6, -262156, 5, 7, -262155, 7, 0, -262154, 7, 0, -262153, 7, 0, -262152, 7, 0, -262151, 7, 0, -262150, 7, 0, -262149, 7, 0, -262148, 7, 0, -262147, 7, 0, -262146, 7, 0, -262145, 7, 0, -327680, 7, 0, -327679, 7, 0, -327678, 5, 6, -327677, 5, 7, -327676, 7, 0, -327675, 7, 0, -327674, 7, 0, -327673, 7, 0, -327672, 7, 0, -327671, 7, 0, -327670, 7, 0, -327669, 7, 0, -327668, 7, 0, -327667, 7, 0, -327666, 5, 6, -196620, 5, 7, -196619, 7, 0, -196618, 7, 0, -196617, 7, 0, -196616, 7, 0, -196615, 7, 0, -196614, 7, 0, -196613, 7, 0, -196612, 7, 0, -196611, 7, 0, -196610, 7, 0, -196609, 7, 0, -262144, 7, 0, -262143, 7, 0, -262142, 5, 6, -262141, 5, 7, -262140, 7, 0, -262139, 7, 0, -262138, 7, 0, -262137, 7, 0, -262136, 7, 0, -262135, 7, 0, -262134, 7, 0, -262133, 7, 0, -262132, 7, 0, -262131, 7, 0, -262130, 5, 6, -131084, 5, 7, -131083, 7, 0, -131082, 7, 0, -131081, 7, 0, -131080, 7, 0, -131079, 7, 0, -131078, 7, 0, -131077, 7, 0, -131076, 7, 0, -131075, 7, 0, -131074, 7, 0, -131073, 7, 0, -196608, 7, 0, -196607, 7, 0, -196606, 5, 6, -196605, 5, 7, -196604, 7, 0, -196603, 7, 0, -196602, 7, 0, -196601, 7, 0, -196600, 7, 0, -196599, 7, 0, -196598, 7, 0, -196597, 7, 0, -196596, 7, 0, -196595, 7, 0, -196594, 5, 6, -65548, 5, 7, -65547, 7, 0, -65546, 7, 0, -65545, 7, 0, -65544, 7, 0, -65543, 7, 0, -65542, 7, 0, -65541, 7, 0, -65540, 7, 0, -65539, 7, 0, -65538, 7, 0, -65537, 7, 0, -131072, 7, 0, -131071, 7, 0, -131070, 5, 6, -131069, 5, 7, -131068, 7, 0, -131067, 7, 0, -131066, 7, 0, -131065, 7, 0, -131064, 7, 0, -131063, 7, 0, -131062, 7, 0, -131061, 7, 0, -131060, 7, 0, -131059, 7, 0, -131058, 5, 6, -12, 5, 7, -11, 7, 0, -10, 7, 0, -9, 7, 0, -8, 7, 0, -7, 7, 0, -6, 7, 0, -5, 7, 0, -4, 7, 0, -3, 7, 0, -2, 7, 0, -1, 7, 0, -65536, 7, 0, -65535, 7, 0, -65534, 5, 6, -65533, 5, 7, -65532, 7, 0, -65531, 7, 0, -65530, 7, 0, -65529, 7, 0, -65528, 7, 0, -65527, 7, 0, -65526, 7, 0, -65525, 7, 0, -65524, 7, 0, -65523, 7, 0, -65522, 5, 6, 65524, 5, 7, 65525, 7, 0, 65526, 7, 0, 65527, 7, 0, 65528, 7, 0, 65529, 7, 0, 65530, 7, 0, 65531, 7, 0, 65532, 7, 0, 65533, 7, 0, 65534, 7, 0, 65535, 7, 0, 0, 7, 0, 1, 7, 0, 2, 5, 6, 3, 5, 7, 4, 7, 0, 5, 7, 0, 6, 7, 0, 7, 7, 0, 8, 7, 0, 9, 7, 0, 10, 7, 0, 11, 7, 0, 12, 7, 0, 13, 7, 0, 14, 5, 6, 131060, 5, 7, 131061, 5, 2, 131062, 5, 2, 131063, 5, 2, 131064, 5, 2, 131065, 5, 2, 131066, 5, 2, 131067, 5, 2, 131068, 7, 0, 131069, 7, 0, 131070, 7, 0, 131071, 5, 2, 65536, 5, 2, 65537, 5, 2, 65538, 5, 65539, 65539, 5, 65536, 65540, 7, 0, 65541, 7, 0, 65542, 7, 0, 65543, 7, 0, 65544, 5, 1, 65545, 5, 2, 65546, 5, 2, 65547, 5, 2, 65548, 5, 2, 65549, 5, 3, 65550, 5, 65539, 196596, 5, 7, 196597, 5, 10, 196598, 5, 10, 196599, 5, 10, 196600, 5, 10, 196601, 5, 10, 196602, 5, 10, 196603, 5, 10, 196604, 7, 0, 196605, 7, 0, 196606, 7, 0, 196607, 5, 10, 131072, 5, 10, 131073, 5, 10, 131074, 5, 65536, 131075, 7, 0, 131076, 7, 0, 131077, 7, 0, 131078, 7, 0, 131079, 7, 0, 131080, 5, 6, 131086, 5, 6, 262132, 5, 7, 262133, 7, 0, 262134, 7, 0, 262135, 7, 0, 262136, 7, 0, 262137, 7, 0, 262138, 7, 0, 262139, 7, 0, 262140, 7, 0, 262141, 7, 0, 262142, 7, 0, 262143, 7, 0, 196608, 7, 0, 196609, 7, 0, 196610, 7, 0, 196611, 7, 0, 196612, 7, 0, 196613, 7, 0, 196614, 7, 0, 196615, 7, 0, 196616, 5, 6, 196622, 5, 6, 327668, 5, 7, 327669, 7, 0, 327670, 7, 0, 327671, 7, 0, 327672, 7, 0, 327673, 7, 0, 327674, 7, 0, 327675, 7, 0, 327676, 7, 0, 327677, 7, 0, 327678, 7, 0, 327679, 7, 0, 262144, 7, 0, 262145, 7, 0, 262146, 7, 0, 262147, 7, 0, 262148, 7, 0, 262149, 7, 0, 262150, 5, 1, 262151, 5, 2, 262152, 5, 65539, 262158, 5, 6, 393204, 5, 7, 393205, 7, 0, 393206, 7, 0, 393207, 7, 0, 393208, 7, 0, 393209, 7, 0, 393210, 7, 0, 393211, 7, 0, 393212, 7, 0, 393213, 7, 0, 393214, 7, 0, 393215, 7, 0, 327680, 7, 0, 327681, 7, 0, 327682, 7, 0, 327683, 7, 0, 327684, 7, 0, 327685, 7, 0, 327686, 5, 6, 327694, 5, 6, 458740, 5, 7, 458741, 7, 0, 458742, 7, 0, 458743, 7, 0, 458744, 7, 0, 458745, 7, 0, 458746, 7, 0, 458747, 7, 0, 458748, 7, 0, 458749, 7, 0, 458750, 7, 0, 458751, 7, 0, 393216, 7, 0, 393217, 7, 0, 393218, 7, 0, 393219, 7, 0, 393220, 7, 0, 393221, 7, 0, 393222, 5, 6, 393230, 5, 6, 524276, 5, 65537, 524277, 5, 2, 524278, 5, 2, 524279, 5, 2, 524280, 5, 2, 524281, 5, 2, 524282, 5, 2, 524283, 5, 2, 524284, 5, 2, 524285, 5, 2, 524286, 5, 2, 524287, 5, 2, 458752, 5, 2, 458753, 5, 2, 458754, 5, 2, 458755, 5, 2, 458756, 5, 2, 458757, 5, 2, 458758, 5, 65539, 458759, 5, 3, 458760, 5, 3, 458761, 5, 2, 458762, 5, 2, 458763, 5, 2, 458764, 5, 2, 458765, 5, 2, 458766, 5, 65539 ) +tile_data = PoolIntArray( -393228, 5, 65540, -393227, 5, 10, -393226, 5, 10, -393225, 5, 10, -393224, 5, 10, -393223, 5, 10, -393222, 5, 10, -393221, 5, 10, -393220, 5, 10, -393219, 5, 10, -393218, 5, 10, -393217, 5, 10, -458752, 5, 10, -458751, 5, 10, -458750, 5, 10, -458749, 5, 10, -458748, 5, 10, -458747, 5, 10, -458746, 5, 10, -458745, 5, 10, -458744, 5, 10, -458743, 5, 10, -458742, 5, 10, -458741, 5, 10, -458740, 5, 10, -458739, 5, 10, -458738, 5, 65541, -327692, 5, 7, -327691, 7, 0, -327690, 7, 0, -327689, 7, 0, -327688, 7, 0, -327687, 7, 0, -327686, 7, 0, -327685, 7, 0, -327684, 7, 0, -327683, 7, 0, -327682, 7, 0, -327681, 7, 0, -393216, 7, 0, -393215, 7, 0, -393214, 5, 6, -393213, 5, 7, -393212, 7, 0, -393211, 7, 0, -393210, 7, 0, -393209, 7, 0, -393208, 7, 0, -393207, 7, 0, -393206, 7, 0, -393205, 7, 0, -393204, 7, 0, -393203, 7, 0, -393202, 5, 6, -262156, 5, 7, -262155, 7, 0, -262154, 7, 0, -262153, 7, 0, -262152, 7, 0, -262151, 7, 0, -262150, 7, 0, -262149, 7, 0, -262148, 7, 0, -262147, 7, 0, -262146, 7, 0, -262145, 7, 0, -327680, 7, 0, -327679, 7, 0, -327678, 5, 6, -327677, 5, 7, -327676, 7, 0, -327675, 7, 0, -327674, 7, 0, -327673, 7, 0, -327672, 7, 0, -327671, 7, 0, -327670, 7, 0, -327669, 7, 0, -327668, 7, 0, -327667, 7, 0, -327666, 5, 6, -196620, 5, 7, -196619, 7, 0, -196618, 7, 0, -196617, 7, 0, -196616, 7, 0, -196615, 7, 0, -196614, 7, 0, -196613, 7, 0, -196612, 7, 0, -196611, 7, 0, -196610, 7, 0, -196609, 7, 0, -262144, 7, 0, -262143, 7, 0, -262142, 5, 6, -262141, 5, 7, -262140, 7, 0, -262139, 7, 0, -262138, 7, 0, -262137, 7, 0, -262136, 7, 0, -262135, 7, 0, -262134, 7, 0, -262133, 7, 0, -262132, 7, 0, -262131, 7, 0, -262130, 5, 6, -131084, 5, 7, -131083, 7, 0, -131082, 7, 0, -131081, 7, 0, -131080, 7, 0, -131079, 7, 0, -131078, 7, 0, -131077, 7, 0, -131076, 7, 0, -131075, 7, 0, -131074, 7, 0, -131073, 7, 0, -196608, 7, 0, -196607, 7, 0, -196606, 5, 6, -196605, 5, 7, -196604, 7, 0, -196603, 7, 0, -196602, 7, 0, -196601, 7, 0, -196600, 7, 0, -196599, 7, 0, -196598, 7, 0, -196597, 7, 0, -196596, 7, 0, -196595, 7, 0, -196594, 5, 6, -65548, 5, 7, -65547, 7, 0, -65546, 7, 0, -65545, 7, 0, -65544, 7, 0, -65543, 7, 0, -65542, 7, 0, -65541, 7, 0, -65540, 7, 0, -65539, 7, 0, -65538, 7, 0, -65537, 7, 0, -131072, 7, 0, -131071, 7, 0, -131070, 5, 6, -131069, 5, 7, -131068, 7, 0, -131067, 7, 0, -131066, 7, 0, -131065, 7, 0, -131064, 7, 0, -131063, 7, 0, -131062, 7, 0, -131061, 7, 0, -131060, 7, 0, -131059, 7, 0, -131058, 5, 6, -12, 5, 7, -11, 7, 0, -10, 7, 0, -9, 7, 0, -8, 7, 0, -7, 7, 0, -6, 7, 0, -5, 7, 0, -4, 7, 0, -3, 7, 0, -2, 7, 0, -1, 7, 0, -65536, 7, 0, -65535, 7, 0, -65534, 5, 6, -65533, 5, 7, -65532, 7, 0, -65531, 7, 0, -65530, 7, 0, -65529, 7, 0, -65528, 7, 0, -65527, 7, 0, -65526, 7, 0, -65525, 7, 0, -65524, 7, 0, -65523, 7, 0, -65522, 5, 6, 65524, 5, 7, 65525, 7, 0, 65526, 7, 0, 65527, 7, 0, 65528, 7, 0, 65529, 7, 0, 65530, 7, 0, 65531, 7, 0, 65532, 7, 0, 65533, 7, 0, 65534, 7, 0, 65535, 7, 0, 0, 7, 0, 1, 7, 0, 2, 5, 6, 3, 5, 7, 4, 7, 0, 5, 7, 0, 6, 7, 0, 7, 7, 0, 8, 7, 0, 9, 7, 0, 10, 7, 0, 11, 7, 0, 12, 7, 0, 13, 7, 0, 14, 5, 6, 131060, 5, 7, 131061, 5, 2, 131062, 5, 2, 131063, 5, 2, 131064, 5, 2, 131065, 5, 2, 131066, 5, 2, 131067, 5, 2, 131068, 7, 0, 131069, 7, 0, 131070, 7, 0, 131071, 5, 2, 65536, 5, 2, 65537, 5, 2, 65538, 5, 65539, 65539, 5, 65536, 65540, 7, 0, 65541, 7, 0, 65542, 7, 0, 65543, 7, 0, 65544, 5, 1, 65545, 5, 2, 65546, 5, 2, 65547, 5, 2, 65548, 5, 2, 65549, 5, 3, 65550, 5, 65539, 196596, 5, 7, 196597, 5, 10, 196598, 5, 10, 196599, 5, 10, 196600, 5, 10, 196601, 5, 10, 196602, 5, 10, 196603, 5, 10, 196604, 7, 0, 196605, 7, 0, 196606, 7, 0, 196607, 5, 10, 131072, 5, 10, 131073, 5, 10, 131074, 5, 65536, 131075, 7, 0, 131076, 7, 0, 131077, 7, 0, 131078, 7, 0, 131079, 7, 0, 131080, 5, 6, 131081, 1610612741, 131075, 131082, -1073741819, 196610, 131083, -1073741819, 196610, 131084, -1073741819, 196610, 131085, 1610612741, 196612, 131086, 5, 196611, 262132, 5, 7, 262133, 7, 0, 262134, 7, 0, 262135, 7, 0, 262136, 7, 0, 262137, 7, 0, 262138, 7, 0, 262139, 7, 0, 262140, 7, 0, 262141, 7, 0, 262142, 7, 0, 262143, 7, 0, 196608, 7, 0, 196609, 7, 0, 196610, 7, 0, 196611, 7, 0, 196612, 7, 0, 196613, 7, 0, 196614, 7, 0, 196615, 7, 0, 196616, 5, 6, 196617, 5, 196610, 196618, 5, 196614, 196619, -1073741819, 196610, 196620, -1073741819, 196610, 196621, -1610612731, 393217, 196622, 5, 196611, 327668, 5, 7, 327669, 7, 0, 327670, 7, 0, 327671, 7, 0, 327672, 7, 0, 327673, 7, 0, 327674, 7, 0, 327675, 7, 0, 327676, 7, 0, 327677, 7, 0, 327678, 7, 0, 327679, 7, 0, 262144, 7, 0, 262145, 7, 0, 262146, 7, 0, 262147, 7, 0, 262148, 7, 0, 262149, 7, 0, 262150, 5, 1, 262151, 5, 2, 262152, 5, 65539, 262153, 5, 196610, 262154, 5, 196610, 262155, 5, 196614, 262156, -1073741819, 131079, 262157, -1073741819, 65545, 262158, 5, 196611, 393204, 5, 7, 393205, 7, 0, 393206, 7, 0, 393207, 7, 0, 393208, 7, 0, 393209, 7, 0, 393210, 7, 0, 393211, 7, 0, 393212, 7, 0, 393213, 7, 0, 393214, 7, 0, 393215, 7, 0, 327680, 7, 0, 327681, 7, 0, 327682, 7, 0, 327683, 7, 0, 327684, 7, 0, 327685, 7, 0, 327686, 5, 6, 327687, 5, 196610, 327688, 5, 196610, 327689, 5, 196610, 327690, 5, 196610, 327691, 5, 196610, 327692, 5, 196609, 327693, 1610612741, 196612, 327694, 5, 196611, 458740, 5, 7, 458741, 7, 0, 458742, 7, 0, 458743, 7, 0, 458744, 7, 0, 458745, 7, 0, 458746, 7, 0, 458747, 7, 0, 458748, 7, 0, 458749, 7, 0, 458750, 7, 0, 458751, 7, 0, 393216, 7, 0, 393217, 7, 0, 393218, 7, 0, 393219, 7, 0, 393220, 7, 0, 393221, 7, 0, 393222, 5, 6, 393223, -1073741819, 196612, 393224, -1073741819, 196612, 393225, -1073741819, 196612, 393226, 5, 262146, 393227, -1073741819, 196612, 393228, -1073741819, 196612, 393229, 5, 196615, 393230, 5, 196611, 524276, 5, 65537, 524277, 5, 2, 524278, 5, 2, 524279, 5, 2, 524280, 5, 2, 524281, 5, 2, 524282, 5, 2, 524283, 5, 2, 524284, 5, 2, 524285, 5, 2, 524286, 5, 2, 524287, 5, 2, 458752, 5, 2, 458753, 5, 2, 458754, 5, 2, 458755, 5, 2, 458756, 5, 2, 458757, 5, 2, 458758, 5, 65539, 458759, 5, 196610, 458760, 5, 196610, 458761, 5, 196610, 458762, 5, 196610, 458763, 5, 196610, 458764, 5, 196610, 458765, 5, 393225, 458766, 5, 196615 ) [node name="DropThroughPlatforms" type="TileMap" parent="."] tile_set = ExtResource( 2 ) @@ -454,6 +455,13 @@ position = Vector2( -128, 97 ) position = Vector2( 207, -4 ) z_index = -1 +[node name="LevelAmbiance" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true +stream = ExtResource( 23 ) +volume_db = -14.994 +autoplay = true +bus = "Music" + [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] [connection signal="child_exiting_tree" from="BoundFrog/WhatAreFrog" to="BoundFrog" method="_on_WhatAreFrog_child_exiting_tree"] [connection signal="body_entered" from="Flyer/StompDetector" to="Flyer" method="_on_StompDetector_body_entered"] diff --git a/src/Levels/Actual Level 1.tscn b/src/Levels/Actual Level 1.tscn index c270d50..72f8f0a 100644 --- a/src/Levels/Actual Level 1.tscn +++ b/src/Levels/Actual Level 1.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=21 format=2] +[gd_scene load_steps=22 format=2] [ext_resource path="res://src/Actors/Enemies/DartingEnemy.tscn" type="PackedScene" id=1] [ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=2] @@ -15,12 +15,13 @@ [ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=13] [ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=14] [ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=15] +[ext_resource path="res://assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav" type="AudioStream" id=16] [ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=17] [ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=19] [ext_resource path="res://src/Environment/Grass/ShaderGrass.tscn" type="PackedScene" id=20] [ext_resource path="res://src/Environment/Legacy/Greenhouse.tscn" type="PackedScene" id=21] -[sub_resource type="AnimationNodeStateMachinePlayback" id=4] +[sub_resource type="AnimationNodeStateMachinePlayback" id=1] [node name="LevelTemplate" type="Node2D"] script = ExtResource( 19 ) @@ -44,18 +45,15 @@ wait_time = 20.0 unique_name_in_owner = true [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 4 - -[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 8 +frame = 0 [node name="Blobby" parent="." instance=ExtResource( 15 )] unique_name_in_owner = true -position = Vector2( 251, -24 ) +position = Vector2( 746, -195 ) scale = Vector2( 0.878906, 0.936025 ) -[node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] -parameters/playback = SubResource( 4 ) +[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] +parameters/playback = SubResource( 1 ) [node name="GateButton" parent="." instance=ExtResource( 5 )] position = Vector2( 371, -45 ) @@ -454,6 +452,13 @@ scale = Vector2( 1, 1.5 ) position = Vector2( 48, -7 ) scale = Vector2( 1, 1.5 ) +[node name="LevelAmbiance" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true +stream = ExtResource( 16 ) +volume_db = -14.994 +autoplay = true +bus = "Music" + [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] [connection signal="button_pushed" from="FrogFreeButton" to="BoundFrog" method="_on_FrogFreeButton_pushed"] @@ -461,6 +466,7 @@ scale = Vector2( 1, 1.5 ) [editable path="LevelState"] [editable path="UserInterface"] [editable path="UserInterface/HUD"] +[editable path="UserInterface/PauseScreen"] [editable path="BlobbyCam"] [editable path="Blobby"] [editable path="DartingEnemy"] diff --git a/src/Levels/Actual Level 2.tscn b/src/Levels/Actual Level 2.tscn index aa8cd05..6602c7a 100644 --- a/src/Levels/Actual Level 2.tscn +++ b/src/Levels/Actual Level 2.tscn @@ -1,10 +1,11 @@ -[gd_scene load_steps=22 format=2] +[gd_scene load_steps=23 format=2] [ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=1] [ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=2] [ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=3] [ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=4] [ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=5] +[ext_resource path="res://src/Platforms/FlyingPlatform.tscn" type="PackedScene" id=6] [ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=7] [ext_resource path="res://src/Environment/Legacy/AlienShipTileSet.tres" type="TileSet" id=8] [ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=9] @@ -15,12 +16,12 @@ [ext_resource path="res://src/ObstacleObjects/Spikes.tscn" type="PackedScene" id=14] [ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=15] [ext_resource path="res://src/Platforms/FlyingLaserCutter.tscn" type="PackedScene" id=16] -[ext_resource path="res://src/Platforms/legacy/FlyingPlatformClean.tscn" type="PackedScene" id=17] +[ext_resource path="res://assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav" type="AudioStream" id=17] [ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=18] [ext_resource path="res://src/Environment/Grass/ShaderGrass.tscn" type="PackedScene" id=19] [ext_resource path="res://src/Environment/Legacy/Greenhouse.tscn" type="PackedScene" id=20] -[sub_resource type="AnimationNodeStateMachinePlayback" id=4] +[sub_resource type="AnimationNodeStateMachinePlayback" id=6] [sub_resource type="AnimationNodeStateMachinePlayback" id=5] @@ -47,18 +48,18 @@ unique_name_in_owner = true drag_margin_bottom = 0.3 [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 5 +frame = 3 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 7 +frame = 5 [node name="Blobby" parent="." instance=ExtResource( 5 )] unique_name_in_owner = true position = Vector2( 3.8147e-06, 144 ) scale = Vector2( 0.878906, 0.936025 ) -[node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] -parameters/playback = SubResource( 4 ) +[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] +parameters/playback = SubResource( 6 ) [node name="SimpleEnemy" parent="." instance=ExtResource( 10 )] position = Vector2( 264, -36 ) @@ -67,9 +68,6 @@ position = Vector2( 264, -36 ) position = Vector2( 837, 72 ) aggressive = false -[node name="FlyerSprite" parent="Flyer" index="2"] -frame = 0 - [node name="AnimationTree" parent="Flyer/FlyerSprite" index="1"] parameters/playback = SubResource( 5 ) @@ -210,12 +208,6 @@ position = Vector2( 648, 0 ) [node name="Spikes29" parent="Spikes" instance=ExtResource( 14 )] position = Vector2( 672, 0 ) -[node name="FlyingPlatformClean" parent="." instance=ExtResource( 17 )] -position = Vector2( 1032, 228 ) - -[node name="anim" parent="FlyingPlatformClean" index="1"] -reset_on_save = false - [node name="Coin" parent="." instance=ExtResource( 18 )] position = Vector2( 696, 27 ) @@ -362,6 +354,17 @@ scale = Vector2( 1, 1.5 ) position = Vector2( 18, -6.72727 ) scale = Vector2( 1, 1.5 ) +[node name="FlyingPlatform" parent="." instance=ExtResource( 6 )] +position = Vector2( 1044, 225 ) +x_target = 48 + +[node name="LevelAmbiance" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true +stream = ExtResource( 17 ) +volume_db = -14.994 +autoplay = true +bus = "Music" + [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] [connection signal="button_pushed" from="FrogFreeButton" to="BoundFrog" method="_on_FrogFreeButton_pushed"] @@ -375,4 +378,3 @@ scale = Vector2( 1, 1.5 ) [editable path="TileMap"] [editable path="BoundFrog"] [editable path="BoundFrog/RopeAnchor"] -[editable path="FlyingPlatformClean"] diff --git a/src/Levels/Actual Level 3.tscn b/src/Levels/Actual Level 3.tscn index 60df3ba..1573bcd 100644 --- a/src/Levels/Actual Level 3.tscn +++ b/src/Levels/Actual Level 3.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=25 format=2] +[gd_scene load_steps=26 format=2] [ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=1] [ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=2] @@ -8,6 +8,7 @@ [ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=6] [ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=7] [ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=8] +[ext_resource path="res://assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav" type="AudioStream" id=9] [ext_resource path="res://src/Platforms/legacy/FlyingPlatformClean.tscn" type="PackedScene" id=10] [ext_resource path="res://src/ObstacleObjects/Mine.tscn" type="PackedScene" id=11] [ext_resource path="res://src/Platforms/FlyingLaserCutter.tscn" type="PackedScene" id=12] @@ -20,7 +21,7 @@ [ext_resource path="res://src/BenefitialObjects/SavePoint.tscn" type="PackedScene" id=19] [ext_resource path="res://src/Environment/Legacy/Greenhouse.tscn" type="PackedScene" id=20] -[sub_resource type="AnimationNodeStateMachinePlayback" id=4] +[sub_resource type="AnimationNodeStateMachinePlayback" id=9] [sub_resource type="Animation" id=5] resource_name = "Horizontal" @@ -113,16 +114,19 @@ unique_name_in_owner = true drag_margin_top = 0.08 drag_margin_bottom = 0.08 +[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] +frame = 8 + [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 11 +frame = 1 [node name="Blobby" parent="." instance=ExtResource( 5 )] unique_name_in_owner = true position = Vector2( -168, 95 ) scale = Vector2( 0.878906, 0.936025 ) -[node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] -parameters/playback = SubResource( 4 ) +[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] +parameters/playback = SubResource( 9 ) [node name="DropThroughPlatform" parent="." instance=ExtResource( 13 )] tile_data = PoolIntArray( -655281, 1, 0, -655280, 0, 0, -655279, 0, 0, -655278, 0, 0, -655276, 2, 0, 131072, 1, 0, 131073, 536870912, 0, 131074, 536870912, 0, 131075, 536870912, 0, 131076, 536870912, 0, 131077, 536870912, 0, 131078, 536870912, 0, 131079, 536870912, 0, 131080, 536870912, 0, 131081, 536870912, 0, 131082, 536870912, 0, 131083, 536870912, 0, 131084, 536870912, 0, 131085, 536870912, 0, 131086, 536870912, 0, 131087, 536870912, 0, 131088, 536870912, 0, 131089, 536870912, 0, 131090, 536870912, 0, 131091, 536870912, 0, 131092, 536870912, 0, 131093, 536870912, 0, 131094, 536870912, 0, 131096, 2, 0, 1376265, 1, 0, 1376266, 0, 0, 1376268, 2, 0, 1966084, 1, 0, 1966085, 0, 0, 1966087, 2, 0 ) @@ -324,6 +328,13 @@ position = Vector2( 648, -204 ) [node name="Coin4" parent="." instance=ExtResource( 1 )] position = Vector2( 1116, -120 ) +[node name="LevelAmbiance" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true +stream = ExtResource( 9 ) +volume_db = -14.994 +autoplay = true +bus = "Music" + [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] [editable path="SignalManager"] diff --git a/src/Levels/Templates/Template.tscn b/src/Levels/Templates/Template.tscn index 37ed9d5..5081974 100644 --- a/src/Levels/Templates/Template.tscn +++ b/src/Levels/Templates/Template.tscn @@ -12,9 +12,9 @@ [ext_resource path="res://assets/environment/decor/platform-plants.png" type="Texture" id=10] [ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=11] [ext_resource path="res://assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav" type="AudioStream" id=12] -[ext_resource path="res://assets/sounds/Hurry! (LOOP).wav" type="AudioStream" id=13] +[ext_resource path="res://src/Utilities/SceneAudio.tscn" type="PackedScene" id=13] -[sub_resource type="AnimationNodeStateMachinePlayback" id=4] +[sub_resource type="AnimationNodeStateMachinePlayback" id=6] [sub_resource type="TileSet" id=5] 0/name = "platform-plants.png 0" @@ -48,6 +48,8 @@ __meta__ = { [node name="SignalManager" parent="." instance=ExtResource( 2 )] +[node name="SceneAudio" parent="." instance=ExtResource( 13 )] + [node name="LevelState" parent="." instance=ExtResource( 3 )] unique_name_in_owner = true @@ -62,18 +64,18 @@ unique_name_in_owner = true drag_margin_bottom = 0.3 [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 0 +frame = 8 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 13 +frame = 7 [node name="Blobby" parent="." instance=ExtResource( 7 )] unique_name_in_owner = true position = Vector2( -70, -1.90735e-06 ) scale = Vector2( 0.878906, 0.936025 ) -[node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] -parameters/playback = SubResource( 4 ) +[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] +parameters/playback = SubResource( 6 ) [node name="TileMap" type="TileMap" parent="."] unique_name_in_owner = true @@ -106,12 +108,12 @@ position = Vector2( 36, -8 ) scale = Vector2( 0.5, 0.5 ) next_scene = "res://src/Levels/Actual Level 1.tscn" -[node name="LevelMusic" type="AudioStreamPlayer" parent="."] +[node name="LevelAmbiance" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true stream = ExtResource( 12 ) +volume_db = -14.994 autoplay = true - -[node name="GetBackMusic" type="AudioStreamPlayer" parent="."] -stream = ExtResource( 13 ) +bus = "Music" [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] diff --git a/src/Platforms/FlyingPlatform.tscn b/src/Platforms/FlyingPlatform.tscn index f930fb4..46804b7 100644 --- a/src/Platforms/FlyingPlatform.tscn +++ b/src/Platforms/FlyingPlatform.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=7 format=2] [ext_resource path="res://src/Platforms/FlyingPlatform.gd" type="Script" id=1] [ext_resource path="res://assets/contraption/5xFloatingPlatform.png" type="Texture" id=2] +[ext_resource path="res://assets/sounds/AMBIENCE_SciFi_Static_Tonal_loop_stereo.wav" type="AudioStream" id=3] [sub_resource type="Animation" id=1] length = 0.001 @@ -60,6 +61,14 @@ collision_layer = 16 collision_mask = 0 motion/sync_to_physics = true +[node name="FlyingSound" type="AudioStreamPlayer2D" parent="PlatformBody"] +stream = ExtResource( 3 ) +volume_db = -8.0 +autoplay = true +max_distance = 480.0 +attenuation = 3.73213 +bus = "Effects" + [node name="Sprite" type="Sprite" parent="PlatformBody"] position = Vector2( 0, 8 ) texture = ExtResource( 2 ) diff --git a/src/Platforms/FlyingPlatformSmol.tscn b/src/Platforms/FlyingPlatformSmol.tscn index 6b77eec..bb25c97 100644 --- a/src/Platforms/FlyingPlatformSmol.tscn +++ b/src/Platforms/FlyingPlatformSmol.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=7 format=2] [ext_resource path="res://src/Platforms/FlyingPlatform.gd" type="Script" id=1] [ext_resource path="res://assets/contraption/3xFloatingPlatform.png" type="Texture" id=2] +[ext_resource path="res://assets/sounds/AMBIENCE_SciFi_Static_Tonal_loop_stereo.wav" type="AudioStream" id=3] [sub_resource type="Animation" id=1] length = 0.001 @@ -90,4 +91,12 @@ polygon = PoolVector2Array( -6, -10, 6, -10, 5.5, 0, 5.25, 5, -5.25, 5, -5.5, 0 [node name="FlyTween" type="Tween" parent="."] +[node name="FlyingSound" type="AudioStreamPlayer2D" parent="."] +stream = ExtResource( 3 ) +volume_db = -8.0 +autoplay = true +max_distance = 480.0 +attenuation = 3.73213 +bus = "Effects" + [connection signal="tween_completed" from="FlyTween" to="." method="_on_FlyTween_tween_completed"] diff --git a/src/Platforms/Spring/Spring.tscn b/src/Platforms/Spring/Spring.tscn index 8cd59be..b9c0ee1 100644 --- a/src/Platforms/Spring/Spring.tscn +++ b/src/Platforms/Spring/Spring.tscn @@ -51,5 +51,5 @@ scale = Vector2( 1.5, 1 ) position = Vector2( 0, 1.5 ) z_index = -1 frames = SubResource( 1 ) -frame = 19 +frame = 8 playing = true diff --git a/src/Platforms/Spring/SpringPhysics.gd b/src/Platforms/Spring/SpringPhysics.gd index 6ca35e5..6922b28 100644 --- a/src/Platforms/Spring/SpringPhysics.gd +++ b/src/Platforms/Spring/SpringPhysics.gd @@ -90,3 +90,8 @@ func _on_EnteringVelocityDetector_area_entered(area: Area2D) -> void: if area.name == "BlobbySkin": if area.get_parent().velocity.y > 0: stored_incoming_velocity = area.get_parent().velocity.y + + +func _on_EnteringVelocityDetector_area_exited(area: Area2D) -> void: + if coupled_body == null: + $SpringSound.play() diff --git a/src/Platforms/Spring/SpringPlatform.tscn b/src/Platforms/Spring/SpringPlatform.tscn index 2c6dad8..e60a466 100644 --- a/src/Platforms/Spring/SpringPlatform.tscn +++ b/src/Platforms/Spring/SpringPlatform.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=7 format=2] [ext_resource path="res://src/Platforms/Spring/SpringPhysics.gd" type="Script" id=1] [ext_resource path="res://assets/contraption/SpringPlatform.png" type="Texture" id=2] +[ext_resource path="res://assets/sounds/leavingspringmaybe.wav" type="AudioStream" id=3] [sub_resource type="RectangleShape2D" id=2] extents = Vector2( 11.4863, 2.10568 ) @@ -44,5 +45,12 @@ collision_mask = 43 position = Vector2( 0.00395775, -1.07744 ) shape = SubResource( 3 ) +[node name="SpringSound" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true +stream = ExtResource( 3 ) +volume_db = -11.935 +bus = "Effects" + [connection signal="area_exited" from="SpringSkin" to="." method="_on_SpringSkin_area_exited"] [connection signal="area_entered" from="EnteringVelocityDetector" to="." method="_on_EnteringVelocityDetector_area_entered"] +[connection signal="area_exited" from="EnteringVelocityDetector" to="." method="_on_EnteringVelocityDetector_area_exited"] diff --git a/src/Sounds/default_bus_layout.tres b/src/Sounds/default_bus_layout.tres index 1bc8bba..4f67961 100644 --- a/src/Sounds/default_bus_layout.tres +++ b/src/Sounds/default_bus_layout.tres @@ -41,12 +41,12 @@ resource_name = "LowPassFilter" cutoff_hz = 3000.0 [resource] -bus/0/volume_db = -6.0206 +bus/0/volume_db = -1.9382 bus/1/name = "Music" bus/1/solo = false bus/1/mute = false bus/1/bypass_fx = false -bus/1/volume_db = inf_neg +bus/1/volume_db = -10.4576 bus/1/send = "Master" bus/1/effect/0/effect = SubResource( 1 ) bus/1/effect/0/enabled = false diff --git a/src/StateMachines/BlobbyStateMachine.gd b/src/StateMachines/BlobbyStateMachine.gd index 7de7d52..63cdd44 100644 --- a/src/StateMachines/BlobbyStateMachine.gd +++ b/src/StateMachines/BlobbyStateMachine.gd @@ -226,7 +226,10 @@ func _enter_state(new_state, old_state): anim_state_playback.travel("ducking") states.jump: if parent.rotation == 0 || !parent.snap_possible: - anim_state_playback.travel("jumping") + if old_state == states.run: + anim_state_playback.travel("runToJump") + else: + anim_state_playback.travel("jump") states.fall: if parent.rotation == 0 || !parent.snap_possible: anim_state_playback.travel("falling") diff --git a/src/UserInterface/Buttons/PlayButton.gd b/src/UserInterface/Buttons/PlayButton.gd index 9958680..dccb69b 100644 --- a/src/UserInterface/Buttons/PlayButton.gd +++ b/src/UserInterface/Buttons/PlayButton.gd @@ -4,7 +4,8 @@ export(String, FILE) var next_scene_path: String = "" onready var selected_level_base_path: String = "res://src/Levels/" func _on_button_up() -> void: - GlobalAudio.play_scene_independent("res://assets/sounds/MAGIC_SPELL_Morphing_Synth_Harp_Scales_Deep_stereo.wav", "Effects", -5) + GlobalAudio.stop_scene_independent("res://assets/sounds/Shopping For The Future (LOOP).wav") + GlobalAudio.play_scene_independent("res://assets/sounds/MAGIC_SPELL_Morphing_Synth_Harp_Scales_Deep_stereo.wav", "Effects", -8) get_tree().change_scene(next_scene_path) get_tree().get_current_scene().queue_free() get_tree().paused = false diff --git a/src/UserInterface/Buttons/RetryButton.gd b/src/UserInterface/Buttons/RetryButton.gd index ed130cc..34c7d19 100644 --- a/src/UserInterface/Buttons/RetryButton.gd +++ b/src/UserInterface/Buttons/RetryButton.gd @@ -3,6 +3,5 @@ extends AudibleButton onready var levelState := get_tree().root.get_child(4).get_node("%LevelState") func _on_button_up() -> void: - levelState.kills = 0 get_tree().paused = false get_tree().reload_current_scene() diff --git a/src/UserInterface/Screens/HUD.gd b/src/UserInterface/Screens/HUD.gd index b530100..4fb1d33 100644 --- a/src/UserInterface/Screens/HUD.gd +++ b/src/UserInterface/Screens/HUD.gd @@ -5,8 +5,6 @@ onready var current_scene := get_tree().get_current_scene() onready var pause_overlay: ColorRect = $HUDOverlay onready var timer: Label = $HUDOverlay/GetBackTimer onready var currency: Label = $HUDOverlay/Currency -onready var kills: Label = $HUDOverlay/Kills -onready var frees: Label = $HUDOverlay/Frees onready var levelState := get_tree().root.get_child(4).get_node("%LevelState") onready var signalManager := get_tree().root.get_child(4).get_node("%SignalManager") @@ -14,8 +12,6 @@ onready var signalManager := get_tree().root.get_child(4).get_node("%SignalManag func _ready(): #TODO Connect what HOW? signalManager.connect("currency_updated", self, "update_interface") - signalManager.connect("kills_updated", self, "update_interface") - signalManager.connect("frees_updated", self, "update_interface") signalManager.connect("terminal_activated", self, "start_timer") update_interface() @@ -41,8 +37,6 @@ func update_interface() -> void: var wallet = GlobalState.gsr.wallet if levelState != null: wallet += levelState.currency - kills.text = "Kills: %s" % levelState.kills - frees.text = "Freed: %s" % levelState.frees currency.text = "Orbs: %s" % wallet diff --git a/src/UserInterface/Screens/HUD.tscn b/src/UserInterface/Screens/HUD.tscn index 20789c8..cb4b54e 100644 --- a/src/UserInterface/Screens/HUD.tscn +++ b/src/UserInterface/Screens/HUD.tscn @@ -58,34 +58,15 @@ margin_bottom = 354.0 [node name="Currency" type="Label" parent="HUDOverlay"] unique_name_in_owner = true -visible = false -margin_left = 3.0 -margin_top = 291.0 -margin_right = 247.0 -margin_bottom = 312.0 +anchor_top = 1.0 +anchor_bottom = 1.0 +margin_left = 9.0 +margin_top = -21.0 +margin_right = 253.0 +margin_bottom = -3.05176e-05 rect_scale = Vector2( 0.590909, 0.627907 ) text = "Orbs: 100000000000000000" -[node name="Kills" type="Label" parent="HUDOverlay"] -unique_name_in_owner = true -visible = false -margin_left = 3.0 -margin_top = 315.0 -margin_right = 357.0 -margin_bottom = 336.0 -rect_scale = Vector2( 0.590909, 0.627907 ) -text = "Destroyed Beings: 100000000000000000" - -[node name="Frees" type="Label" parent="HUDOverlay"] -unique_name_in_owner = true -visible = false -margin_left = 3.0 -margin_top = 339.0 -margin_right = 317.0 -margin_bottom = 360.0 -rect_scale = Vector2( 0.590909, 0.627907 ) -text = "Freed Beings: 100000000000000000" - [node name="GetBackTimer" type="Label" parent="HUDOverlay"] unique_name_in_owner = true visible = false diff --git a/src/UserInterface/Screens/MainMenu/AudioMenu.gd b/src/UserInterface/Screens/MainMenu/AudioMenu.gd index f555f7d..9d338dd 100644 --- a/src/UserInterface/Screens/MainMenu/AudioMenu.gd +++ b/src/UserInterface/Screens/MainMenu/AudioMenu.gd @@ -6,10 +6,12 @@ export(String, FILE) onready var bus_resource_path = "res://src/Sounds/default_b func _ready() -> void: if visible: $"%MasterSlider".grab_focus() + +func save() ->void: + var new_resource = AudioServer.generate_bus_layout() + ResourceSaver.save(bus_resource_path, new_resource) func _input(event: InputEvent) -> void: if visible && event.is_action("ui_cancel"): - var new_resource = AudioServer.generate_bus_layout() - ResourceSaver.save(bus_resource_path, new_resource) $Panel/Back.emit_signal("button_up") diff --git a/src/UserInterface/Screens/MainMenu/AudioMenu.tscn b/src/UserInterface/Screens/MainMenu/AudioMenu.tscn index 3ac0282..74e18e4 100644 --- a/src/UserInterface/Screens/MainMenu/AudioMenu.tscn +++ b/src/UserInterface/Screens/MainMenu/AudioMenu.tscn @@ -277,4 +277,5 @@ margin_bottom = 20.0 text = "80" align = 1 +[connection signal="button_up" from="Panel/Back" to="." method="save"] [connection signal="button_up" from="Panel/Back" to="Panel/Back" method="_on_button_up"] diff --git a/src/UserInterface/Screens/MainMenu/LevelCheckBox.gd b/src/UserInterface/Screens/MainMenu/LevelCheckBox.gd new file mode 100644 index 0000000..150ce43 --- /dev/null +++ b/src/UserInterface/Screens/MainMenu/LevelCheckBox.gd @@ -0,0 +1,17 @@ +extends VBoxContainer + +func initialize_with_progress(levelFullName: String) -> void: + if !GlobalState.get_progress().has(levelFullName): + return + if !GlobalState.get_progress()[levelFullName].has("froggies"): + return + var froggies : Dictionary = GlobalState.get_progress()[levelFullName]["froggies"] + for key in froggies.keys(): + register_froggy(int(key), froggies[key]) + + +func register_froggy(var count : int = 0, var freed: bool = false) -> void: + var frogo: String = "FreedFroggy" + str(count + 1) + var test = self.get_children() + get_node(frogo).visible = true + get_node(frogo + "/ImprisionedFroggy").visible = !freed diff --git a/src/UserInterface/Screens/MainMenu/LevelCheckBox.tscn b/src/UserInterface/Screens/MainMenu/LevelCheckBox.tscn new file mode 100644 index 0000000..8795204 --- /dev/null +++ b/src/UserInterface/Screens/MainMenu/LevelCheckBox.tscn @@ -0,0 +1,152 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://assets/ui/froggy-freed-ui.png" type="Texture" id=1] +[ext_resource path="res://assets/ui/froggy-imprisoned-ui.png" type="Texture" id=2] +[ext_resource path="res://src/UserInterface/Screens/MainMenu/LevelCheckBox.gd" type="Script" id=3] +[ext_resource path="res://src/UserInterface/Buttons/AudibleCheckbox.gd" type="Script" id=4] + +[node name="LevelCheckBox" type="VBoxContainer"] +margin_right = 116.0 +margin_bottom = 56.0 +focus_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +script = ExtResource( 3 ) + +[node name="CheckBox" type="CheckBox" parent="."] +margin_right = 119.0 +margin_bottom = 24.0 +grow_horizontal = 0 +grow_vertical = 0 +text = "This is a level " +align = 1 +icon_align = 1 +expand_icon = true +script = ExtResource( 4 ) + +[node name="FreedFroggy1" type="TextureRect" parent="."] +unique_name_in_owner = true +visible = false +margin_top = 28.0 +margin_right = 119.0 +margin_bottom = 47.0 +grow_horizontal = 2 +grow_vertical = 2 +focus_mode = 2 +mouse_filter = 0 +texture = ExtResource( 1 ) +stretch_mode = 5 + +[node name="FreedFroggy2" type="TextureRect" parent="FreedFroggy1"] +unique_name_in_owner = true +visible = false +margin_left = 21.0 +margin_right = 140.0 +margin_bottom = 19.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +texture = ExtResource( 1 ) +stretch_mode = 5 + +[node name="ImprisionedFroggy" type="TextureRect" parent="FreedFroggy1/FreedFroggy2"] +margin_right = 38.0 +margin_bottom = 19.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +texture = ExtResource( 2 ) + +[node name="FreedFroggy3" type="TextureRect" parent="FreedFroggy1"] +unique_name_in_owner = true +visible = false +margin_left = 42.0 +margin_right = 161.0 +margin_bottom = 19.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +texture = ExtResource( 1 ) +stretch_mode = 5 + +[node name="ImprisionedFroggy" type="TextureRect" parent="FreedFroggy1/FreedFroggy3"] +margin_right = 38.0 +margin_bottom = 19.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +texture = ExtResource( 2 ) + +[node name="FreedFroggy4" type="TextureRect" parent="FreedFroggy1"] +unique_name_in_owner = true +visible = false +margin_left = 63.0 +margin_right = 182.0 +margin_bottom = 19.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +texture = ExtResource( 1 ) +stretch_mode = 5 + +[node name="ImprisionedFroggy" type="TextureRect" parent="FreedFroggy1/FreedFroggy4"] +margin_right = 38.0 +margin_bottom = 19.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +texture = ExtResource( 2 ) + +[node name="FreedFroggy5" type="TextureRect" parent="FreedFroggy1"] +unique_name_in_owner = true +visible = false +margin_left = 84.0 +margin_right = 203.0 +margin_bottom = 19.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +texture = ExtResource( 1 ) +stretch_mode = 5 + +[node name="ImprisionedFroggy" type="TextureRect" parent="FreedFroggy1/FreedFroggy5"] +margin_right = 38.0 +margin_bottom = 19.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +texture = ExtResource( 2 ) + +[node name="FreedFroggy6" type="TextureRect" parent="FreedFroggy1"] +unique_name_in_owner = true +visible = false +margin_left = 105.0 +margin_right = 224.0 +margin_bottom = 19.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +texture = ExtResource( 1 ) +stretch_mode = 5 + +[node name="ImprisionedFroggy" type="TextureRect" parent="FreedFroggy1/FreedFroggy6"] +margin_right = 38.0 +margin_bottom = 19.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +texture = ExtResource( 2 ) + +[node name="ImprisionedFroggy" type="TextureRect" parent="FreedFroggy1"] +margin_right = 38.0 +margin_bottom = 19.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +texture = ExtResource( 2 ) + +[node name="HSeparator" type="HSeparator" parent="."] +margin_top = 28.0 +margin_right = 119.0 +margin_bottom = 32.0 + +[connection signal="focus_entered" from="." to="." method="_on_LevelCheckBox_focus_entered"] diff --git a/src/UserInterface/Screens/MainMenu/LevelList.gd b/src/UserInterface/Screens/MainMenu/LevelList.gd index d9eca40..2b190b1 100644 --- a/src/UserInterface/Screens/MainMenu/LevelList.gd +++ b/src/UserInterface/Screens/MainMenu/LevelList.gd @@ -2,8 +2,11 @@ extends ScrollContainer onready var LEVELS_PATH = "res://src/Levels/" onready var BUTTON_GROUP : ButtonGroup = load("res://src/UserInterface/Screens/MainMenu/LevelSelectButtonGroup.tres") +onready var LEVEL_CHECK_BOX = load("res://src/UserInterface/Screens/MainMenu/LevelCheckBox.tscn") onready var vbox: VBoxContainer = $VBoxContainer +var prev_checkbox + func _ready() -> void: BUTTON_GROUP.connect("pressed", $"%PlayButton", "_level_selection_changed") _fill_level_list() @@ -26,19 +29,25 @@ func _fill_level_list(): func _spawn_level_options(levels: Array): var first = true for level in levels: - var check_box = AudibleCheckbox.new() + var level_check_box = LEVEL_CHECK_BOX.instance() + vbox.add_child(level_check_box) + level_check_box.initialize_with_progress(LEVELS_PATH + level) + var check_box = level_check_box.get_node("CheckBox") check_box.focus_mode = Control.FOCUS_ALL check_box.focus_neighbour_left = $"%PlayButton".get_path() check_box.text = level.trim_suffix(".tscn") check_box.set_button_group(BUTTON_GROUP) - vbox.add_child(check_box) if first: $"%PlayButton".focus_neighbour_right = check_box.get_path() $"%Controlls".focus_neighbour_right = check_box.get_path() $"%QuitButton".focus_neighbour_right = check_box.get_path() check_box.pressed = true + prev_checkbox = check_box first = false + else: + prev_checkbox.focus_neighbour_bottom = check_box.get_path() + check_box.focus_neighbour_top = prev_checkbox.get_path() + prev_checkbox = check_box if GlobalState.gsr.last_played_level.ends_with(level): check_box.pressed = true - return diff --git a/src/UserInterface/Screens/MainMenu/MainScreen.gd b/src/UserInterface/Screens/MainMenu/MainScreen.gd index 7b283be..c4181e4 100644 --- a/src/UserInterface/Screens/MainMenu/MainScreen.gd +++ b/src/UserInterface/Screens/MainMenu/MainScreen.gd @@ -3,3 +3,4 @@ extends Control func _ready() -> void: $"%PlayButton".grab_focus() + GlobalAudio.play_scene_independent("res://assets/sounds/Shopping For The Future (LOOP).wav","Music", -14, true) diff --git a/src/UserInterface/Screens/MainMenu/MainScreen.tscn b/src/UserInterface/Screens/MainMenu/MainScreen.tscn index d9bfd2e..a5a7e54 100644 --- a/src/UserInterface/Screens/MainMenu/MainScreen.tscn +++ b/src/UserInterface/Screens/MainMenu/MainScreen.tscn @@ -228,14 +228,13 @@ margin_right = 130.0 margin_bottom = 110.0 grow_horizontal = 2 grow_vertical = 2 -focus_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 [node name="InvisibleCunt" type="CheckBox" parent="MenuContainer/Panel/LevelList/VBoxContainer"] visible = false -margin_right = 154.0 -margin_bottom = 135.0 +margin_right = 130.0 +margin_bottom = 110.0 grow_horizontal = 2 grow_vertical = 2 focus_neighbour_left = NodePath("../../../../Buttons/PlayButton") diff --git a/src/UserInterface/TutorialThingy.gd b/src/UserInterface/TutorialThingy.gd index 5860224..b7b1c96 100644 --- a/src/UserInterface/TutorialThingy.gd +++ b/src/UserInterface/TutorialThingy.gd @@ -21,7 +21,6 @@ func _unhandled_input(event: InputEvent) -> void: if(event.is_action_pressed(action)): press_limit -= 1 if press_limit == 0 : - # Should delete itself from the progress dictionary when destroyed if visible: $Label.visible = false $TextureRect.visible = false @@ -76,6 +75,8 @@ func _physics_process(delta: float) -> void: func _on_Area_area_entered(area: Area2D) -> void: + if !area.get_parent().visible: + return var d = area.global_position - position print(d) if(abs(d.y) > tex_size.y * 2 - 1): diff --git a/src/UserInterface/TutorialThingy.tscn b/src/UserInterface/TutorialThingy.tscn index b44c724..1478920 100644 --- a/src/UserInterface/TutorialThingy.tscn +++ b/src/UserInterface/TutorialThingy.tscn @@ -146,6 +146,7 @@ z_index = 10 script = ExtResource( 2 ) action = "jump" tutorial_text = "Press to Jump:" +press_limit = 1 [node name="Button" type="Sprite" parent="."] physics_interpolation_mode = 2 diff --git a/src/Utilities/LevelState.gd b/src/Utilities/LevelState.gd index bd08715..29d9c62 100644 --- a/src/Utilities/LevelState.gd +++ b/src/Utilities/LevelState.gd @@ -6,8 +6,7 @@ onready var levelName := get_tree().current_scene.filename #TODO Easteregg pls var currency: = 0 setget set_currency var deaths: = 0 setget set_deaths -var kills: = 0 setget set_kills -var frees: = 0 setget set_frees +var freed_frogs := [] # TODO Rename probs var is_dead: = false setget set_dead @@ -19,9 +18,8 @@ func _ready() -> void: func reset() -> void: deaths = 0 - kills = 0 currency = 0 - frees = 0 + freed_frogs = [] # TODO Maybe not the place for this? if GlobalState.gsr.progress_dict.has(levelName): GlobalState.gsr.progress_dict[levelName].erase("savepoint") @@ -33,17 +31,18 @@ func set_currency(value: int) -> void: func set_deaths(value: int) -> void: deaths = value -func set_kills(value: int) -> void: - kills = value - signalManager.emit_signal("kills_updated") - -func set_frees(value: int) -> void: - frees = value - signalManager.emit_signal("frees_updated") - func set_dead(value: bool) -> void: is_dead = value +func register_frog(number: int, freed: bool = false) -> void: + update_global_state() + if(!GlobalState.gsr.progress_dict[levelName]["froggies"].has(number)): + GlobalState.gsr.progress_dict[levelName]["froggies"][number] = freed + GlobalState.save() + +func free_a_frog(number: int) -> void: + freed_frogs.append(number) + func needs_tutorial(lesson: String) -> bool: if(!GlobalState.gsr.tutorial_prompts.has(lesson)): return false @@ -64,6 +63,9 @@ func absolved_tutorial(lesson: String) -> void: # Spends the currency when enough is available # and returns true if so. Else it does not spend and return false. func spend_currency(cost: int) -> bool: + # TODO member that + if(OS.is_debug_build()): + return true if GlobalState.gsr.wallet + currency < cost: return false var remainder = currency - cost @@ -75,6 +77,8 @@ func spend_currency(cost: int) -> bool: return true func _on_level_completed(): + #if(OS.is_debug_build()): + # return update_global_state() reset() @@ -83,18 +87,20 @@ func update_global_state() -> void: var levelProgress : Dictionary = {} levelProgress["currency"] = currency - levelProgress["kills"] = kills levelProgress["deaths"] = deaths - levelProgress["frees"] = frees # TODO Doesnt account for multiple plays of same level if !progress_dict.has(levelName): progress_dict[levelName] = levelProgress else: progress_dict[levelName]["currency"] = GlobalState.get_property_value(levelName,"currency") + currency - progress_dict[levelName]["kills"] = GlobalState.get_property_value(levelName,"kills") + kills progress_dict[levelName]["deaths"] = GlobalState.get_property_value(levelName,"deaths") + deaths - progress_dict[levelName]["frees"] = GlobalState.get_property_value(levelName,"frees") + frees + if !progress_dict[levelName].has("froggies"): + progress_dict[levelName]["froggies"] = {} + else: + for frog_number in freed_frogs: + if progress_dict[levelName]["froggies"].has(frog_number): + progress_dict[levelName]["froggies"][frog_number] = true # TODO Wallet is independant from progress_dict because??? GlobalState.set_wallet(GlobalState.gsr.wallet + currency) @@ -102,9 +108,8 @@ func update_global_state() -> void: func player_dying(animation_number: int = 0) -> void: currency = 0 - kills = 0 - frees = 0 is_dead = true + freed_frogs = [] deaths += 1 update_global_state() deaths = 0 diff --git a/src/Utilities/SceneAudio.gd b/src/Utilities/SceneAudio.gd new file mode 100644 index 0000000..a3658b1 --- /dev/null +++ b/src/Utilities/SceneAudio.gd @@ -0,0 +1,25 @@ +extends Node +onready var players: Dictionary = {} +var disposable_player: AudioStreamPlayer + + +func play_scene_dependent(sound_name: String, bus: String = "Master", attenuation: float = 0.0, singleton = false) -> void: + if singleton && players.has(sound_name): + return + disposable_player = AudioStreamPlayer.new() + add_child(disposable_player) + disposable_player.stream = GlobalState.sound_library[sound_name] + disposable_player.volume_db = attenuation + disposable_player.bus = bus + disposable_player.play() + disposable_player.connect("finished", self, "dispose_player") + players[sound_name] = disposable_player + +func dispose_player(player: AudioStreamPlayer = disposable_player) -> void: + if player == null: return + player.queue_free() + +func stop_scene_dependent(sound_name: String): + if players.has(sound_name): + dispose_player(players[sound_name]) + players.erase(sound_name) diff --git a/src/Utilities/SceneAudio.tscn b/src/Utilities/SceneAudio.tscn new file mode 100644 index 0000000..30257c6 --- /dev/null +++ b/src/Utilities/SceneAudio.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://src/Utilities/SceneAudio.gd" type="Script" id=1] + +[node name="SceneAudio" type="Node"] +pause_mode = 2 +script = ExtResource( 1 )