diff --git a/assets/environment/background/Spaceship-Wall-Lampsl.png b/assets/environment/background/Spaceship-Wall-Lampsl.png index 3dbdeb8..cd6df7b 100644 Binary files a/assets/environment/background/Spaceship-Wall-Lampsl.png and b/assets/environment/background/Spaceship-Wall-Lampsl.png differ diff --git a/assets/environment/background/Spaceship-Wall.png b/assets/environment/background/Spaceship-Wall.png index 8cc75a1..fcbeff1 100644 Binary files a/assets/environment/background/Spaceship-Wall.png and b/assets/environment/background/Spaceship-Wall.png differ diff --git a/assets/environment/blocks/BasicTileSet.aseprite b/assets/environment/blocks/BasicTileSet.aseprite index 34ef8ef..b50b896 100644 Binary files a/assets/environment/blocks/BasicTileSet.aseprite and b/assets/environment/blocks/BasicTileSet.aseprite differ diff --git a/assets/ui/fonts/kenny_space.tres b/assets/ui/fonts/kenny_space.tres index 404f131..468164d 100644 --- a/assets/ui/fonts/kenny_space.tres +++ b/assets/ui/fonts/kenny_space.tres @@ -1,4 +1,7 @@ -[gd_resource type="DynamicFont" format=2] +[gd_resource type="DynamicFont" load_steps=2 format=2] + +[ext_resource path="res://assets/ui/fonts/Kenney Space.ttf" type="DynamicFontData" id=1] [resource] -size = 20 +size = 9 +font_data = ExtResource( 1 ) diff --git a/src/Actors/Blobby/Blobby.gd b/src/Actors/Blobby/Blobby.gd index c03a663..9c37e87 100644 --- a/src/Actors/Blobby/Blobby.gd +++ b/src/Actors/Blobby/Blobby.gd @@ -169,6 +169,7 @@ func calculate_grounded_velocity( # Jumping when grounded or jump is buffered if Input.is_action_just_pressed("jump") || (jump_buffer_filled && is_on_floor()) || stomping: snap_possible = false + #velocity += get_floor_velocity() * 0.5 return calculate_jump_velocity(velocity, delta, direction) elif player_state_machine.coyote_hanging: diff --git a/src/Actors/Blobby/Blobby.tscn b/src/Actors/Blobby/Blobby.tscn index 07575a8..043cc79 100644 --- a/src/Actors/Blobby/Blobby.tscn +++ b/src/Actors/Blobby/Blobby.tscn @@ -4385,7 +4385,7 @@ texture = SubResource( 62 ) offset = Vector2( 1, 0 ) hframes = 6 vframes = 6 -frame = 6 +frame = 8 __meta__ = { "_editor_description_": "YXNlcHJpdGVfd2l6YXJkX2NvbmZpZwpwbGF5ZXJ8PUJsb2JieVNwcml0ZS9CbG9iYnltYXRpb25QbGF5ZXIKc291cmNlfD1yZXM6Ly9hc3NldHMvYmxvYmJ5L2Jsb2JieS1zcHJpdGVzaGVldHQuYXNlcHJpdGUKbGF5ZXJ8PUJsb2JieQpvcF9leHB8PUZhbHNlCm9fZm9sZGVyfD0Kb19uYW1lfD0Kb25seV92aXNpYmxlfD1GYWxzZQpvX2V4X3B8PQo=" } @@ -4572,5 +4572,5 @@ one_shot = true [connection signal="got_grounded" from="BlobbyStateMachine" to="." method="_on_Blobby_got_grounded"] [connection signal="timeout" from="BlobbyStateMachine/JumpBufferTimer" to="BlobbyStateMachine" method="_on_JumpBufferTimer_timeout"] [connection signal="timeout" from="InvincibilityTimer" to="." method="_on_InvincibilityTimer_timeout"] -[connection signal="timeout" from="PitfallTimer" to="." method="_on_PitfallTimer_timeout"] [connection signal="timeout" from="PitfallTimer" to="." method="die_for_real"] +[connection signal="timeout" from="PitfallTimer" to="." method="_on_PitfallTimer_timeout"] diff --git a/src/BenefitialObjects/Coin.gd b/src/BenefitialObjects/Coin.gd index b35b2f4..e175393 100644 --- a/src/BenefitialObjects/Coin.gd +++ b/src/BenefitialObjects/Coin.gd @@ -6,13 +6,13 @@ onready var level_state := $"%LevelState" export var currencyValue: = 1 func _on_body_entered(_body: Node) -> void: - if $AudioStreamPlayer.playing: - return - level_state.currency += currencyValue - $CollisionShape2D.disabled = true - set_deferred("monitoring", false) - $AudioStreamPlayer.play() - anim_player.play("fade_out") + if $AudioStreamPlayer.playing: + return + level_state.currency += currencyValue + $CollisionShape2D.disabled = true + set_deferred("monitoring", false) + $AudioStreamPlayer.play() + anim_player.play("fade_out") func collected() -> void: - queue_free() + queue_free() diff --git a/src/BenefitialObjects/Coin.tscn b/src/BenefitialObjects/Coin.tscn index 38f939a..b8d5359 100644 --- a/src/BenefitialObjects/Coin.tscn +++ b/src/BenefitialObjects/Coin.tscn @@ -1,320 +1,7 @@ -[gd_scene load_steps=324 format=2] +[gd_scene load_steps=11 format=2] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0020 (Klein)-fs8.png" type="Texture" id=1] [ext_resource path="res://src/BenefitialObjects/Coin.gd" type="Script" id=2] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0021 (Klein)-fs8.png" type="Texture" id=3] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0023 (Klein)-fs8.png" type="Texture" id=4] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0025 (Klein)-fs8.png" type="Texture" id=5] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0027 (Klein)-fs8.png" type="Texture" id=6] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0017 (Klein)-fs8.png" type="Texture" id=7] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0005 (Klein)-fs8.png" type="Texture" id=8] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0013 (Klein)-fs8.png" type="Texture" id=9] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0022 (Klein)-fs8.png" type="Texture" id=10] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0028 (Klein)-fs8.png" type="Texture" id=11] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0001 (Klein)-fs8.png" type="Texture" id=12] [ext_resource path="res://assets/neutral object/whitegold orbicle/0000 (Klein)-fs8.png" type="Texture" id=13] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0026 (Klein)-fs8.png" type="Texture" id=14] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0030 (Klein)-fs8.png" type="Texture" id=15] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0007 (Klein)-fs8.png" type="Texture" id=16] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0003 (Klein)-fs8.png" type="Texture" id=17] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0008 (Klein)-fs8.png" type="Texture" id=18] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0009 (Klein)-fs8.png" type="Texture" id=19] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0010 (Klein)-fs8.png" type="Texture" id=20] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0012 (Klein)-fs8.png" type="Texture" id=21] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0014 (Klein)-fs8.png" type="Texture" id=22] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0024 (Klein)-fs8.png" type="Texture" id=23] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0029 (Klein)-fs8.png" type="Texture" id=24] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0031 (Klein)-fs8.png" type="Texture" id=25] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0032 (Klein)-fs8.png" type="Texture" id=26] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0033 (Klein)-fs8.png" type="Texture" id=27] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0034 (Klein)-fs8.png" type="Texture" id=28] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0035 (Klein)-fs8.png" type="Texture" id=29] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0006 (Klein)-fs8.png" type="Texture" id=30] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0011 (Klein)-fs8.png" type="Texture" id=31] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0015 (Klein)-fs8.png" type="Texture" id=32] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0018 (Klein)-fs8.png" type="Texture" id=33] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0019 (Klein)-fs8.png" type="Texture" id=34] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0004 (Klein)-fs8.png" type="Texture" id=35] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0002 (Klein)-fs8.png" type="Texture" id=36] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0016 (Klein)-fs8.png" type="Texture" id=37] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0039 (Klein)-fs8.png" type="Texture" id=38] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0041 (Klein)-fs8.png" type="Texture" id=39] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0037 (Klein)-fs8.png" type="Texture" id=40] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0040 (Klein)-fs8.png" type="Texture" id=41] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0036 (Klein)-fs8.png" type="Texture" id=42] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0038 (Klein)-fs8.png" type="Texture" id=43] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0045 (Klein)-fs8.png" type="Texture" id=44] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0080 (Klein)-fs8.png" type="Texture" id=45] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0083 (Klein)-fs8.png" type="Texture" id=46] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0082 (Klein)-fs8.png" type="Texture" id=47] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0089 (Klein)-fs8.png" type="Texture" id=48] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0085 (Klein)-fs8.png" type="Texture" id=49] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0092 (Klein)-fs8.png" type="Texture" id=50] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0093 (Klein)-fs8.png" type="Texture" id=51] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0094 (Klein)-fs8.png" type="Texture" id=52] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0060 (Klein)-fs8.png" type="Texture" id=53] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0078 (Klein)-fs8.png" type="Texture" id=54] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0057 (Klein)-fs8.png" type="Texture" id=55] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0097 (Klein)-fs8.png" type="Texture" id=56] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0043 (Klein)-fs8.png" type="Texture" id=57] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0064 (Klein)-fs8.png" type="Texture" id=58] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0084 (Klein)-fs8.png" type="Texture" id=59] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0090 (Klein)-fs8.png" type="Texture" id=60] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0050 (Klein)-fs8.png" type="Texture" id=61] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0055 (Klein)-fs8.png" type="Texture" id=62] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0079 (Klein)-fs8.png" type="Texture" id=63] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0096 (Klein)-fs8.png" type="Texture" id=64] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0101 (Klein)-fs8.png" type="Texture" id=65] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0102 (Klein)-fs8.png" type="Texture" id=66] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0054 (Klein)-fs8.png" type="Texture" id=67] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0053 (Klein)-fs8.png" type="Texture" id=68] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0056 (Klein)-fs8.png" type="Texture" id=69] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0074 (Klein)-fs8.png" type="Texture" id=70] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0052 (Klein)-fs8.png" type="Texture" id=71] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0058 (Klein)-fs8.png" type="Texture" id=72] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0091 (Klein)-fs8.png" type="Texture" id=73] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0095 (Klein)-fs8.png" type="Texture" id=74] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0099 (Klein)-fs8.png" type="Texture" id=75] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0103 (Klein)-fs8.png" type="Texture" id=76] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0042 (Klein)-fs8.png" type="Texture" id=77] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0049 (Klein)-fs8.png" type="Texture" id=78] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0098 (Klein)-fs8.png" type="Texture" id=79] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0104 (Klein)-fs8.png" type="Texture" id=80] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0100 (Klein)-fs8.png" type="Texture" id=81] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0086 (Klein)-fs8.png" type="Texture" id=82] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0076 (Klein)-fs8.png" type="Texture" id=83] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0105 (Klein)-fs8.png" type="Texture" id=84] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0046 (Klein)-fs8.png" type="Texture" id=85] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0044 (Klein)-fs8.png" type="Texture" id=86] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0075 (Klein)-fs8.png" type="Texture" id=87] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0067 (Klein)-fs8.png" type="Texture" id=88] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0047 (Klein)-fs8.png" type="Texture" id=89] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0059 (Klein)-fs8.png" type="Texture" id=90] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0061 (Klein)-fs8.png" type="Texture" id=91] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0065 (Klein)-fs8.png" type="Texture" id=92] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0063 (Klein)-fs8.png" type="Texture" id=93] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0048 (Klein)-fs8.png" type="Texture" id=94] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0068 (Klein)-fs8.png" type="Texture" id=95] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0069 (Klein)-fs8.png" type="Texture" id=96] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0070 (Klein)-fs8.png" type="Texture" id=97] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0071 (Klein)-fs8.png" type="Texture" id=98] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0062 (Klein)-fs8.png" type="Texture" id=99] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0072 (Klein)-fs8.png" type="Texture" id=100] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0073 (Klein)-fs8.png" type="Texture" id=101] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0051 (Klein)-fs8.png" type="Texture" id=102] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0066 (Klein)-fs8.png" type="Texture" id=103] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0077 (Klein)-fs8.png" type="Texture" id=104] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0081 (Klein)-fs8.png" type="Texture" id=105] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0087 (Klein)-fs8.png" type="Texture" id=106] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0088 (Klein)-fs8.png" type="Texture" id=107] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0110 (Klein)-fs8.png" type="Texture" id=108] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0111 (Klein)-fs8.png" type="Texture" id=109] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0106 (Klein)-fs8.png" type="Texture" id=110] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0108 (Klein)-fs8.png" type="Texture" id=111] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0109 (Klein)-fs8.png" type="Texture" id=112] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0107 (Klein)-fs8.png" type="Texture" id=113] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0162 (Klein)-fs8.png" type="Texture" id=114] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0166 (Klein)-fs8.png" type="Texture" id=115] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0167 (Klein)-fs8.png" type="Texture" id=116] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0129 (Klein)-fs8.png" type="Texture" id=117] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0130 (Klein)-fs8.png" type="Texture" id=118] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0170 (Klein)-fs8.png" type="Texture" id=119] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0171 (Klein)-fs8.png" type="Texture" id=120] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0115 (Klein)-fs8.png" type="Texture" id=121] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0127 (Klein)-fs8.png" type="Texture" id=122] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0136 (Klein)-fs8.png" type="Texture" id=123] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0135 (Klein)-fs8.png" type="Texture" id=124] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0146 (Klein)-fs8.png" type="Texture" id=125] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0143 (Klein)-fs8.png" type="Texture" id=126] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0132 (Klein)-fs8.png" type="Texture" id=127] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0131 (Klein)-fs8.png" type="Texture" id=128] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0144 (Klein)-fs8.png" type="Texture" id=129] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0149 (Klein)-fs8.png" type="Texture" id=130] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0123 (Klein)-fs8.png" type="Texture" id=131] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0145 (Klein)-fs8.png" type="Texture" id=132] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0148 (Klein)-fs8.png" type="Texture" id=133] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0139 (Klein)-fs8.png" type="Texture" id=134] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0152 (Klein)-fs8.png" type="Texture" id=135] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0116 (Klein)-fs8.png" type="Texture" id=136] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0154 (Klein)-fs8.png" type="Texture" id=137] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0155 (Klein)-fs8.png" type="Texture" id=138] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0161 (Klein)-fs8.png" type="Texture" id=139] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0128 (Klein)-fs8.png" type="Texture" id=140] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0141 (Klein)-fs8.png" type="Texture" id=141] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0140 (Klein)-fs8.png" type="Texture" id=142] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0157 (Klein)-fs8.png" type="Texture" id=143] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0165 (Klein)-fs8.png" type="Texture" id=144] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0168 (Klein)-fs8.png" type="Texture" id=145] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0121 (Klein)-fs8.png" type="Texture" id=146] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0169 (Klein)-fs8.png" type="Texture" id=147] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0173 (Klein)-fs8.png" type="Texture" id=148] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0112 (Klein)-fs8.png" type="Texture" id=149] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0174 (Klein)-fs8.png" type="Texture" id=150] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0114 (Klein)-fs8.png" type="Texture" id=151] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0120 (Klein)-fs8.png" type="Texture" id=152] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0119 (Klein)-fs8.png" type="Texture" id=153] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0172 (Klein)-fs8.png" type="Texture" id=154] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0113 (Klein)-fs8.png" type="Texture" id=155] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0118 (Klein)-fs8.png" type="Texture" id=156] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0164 (Klein)-fs8.png" type="Texture" id=157] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0175 (Klein)-fs8.png" type="Texture" id=158] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0117 (Klein)-fs8.png" type="Texture" id=159] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0150 (Klein)-fs8.png" type="Texture" id=160] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0151 (Klein)-fs8.png" type="Texture" id=161] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0160 (Klein)-fs8.png" type="Texture" id=162] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0163 (Klein)-fs8.png" type="Texture" id=163] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0142 (Klein)-fs8.png" type="Texture" id=164] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0156 (Klein)-fs8.png" type="Texture" id=165] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0122 (Klein)-fs8.png" type="Texture" id=166] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0134 (Klein)-fs8.png" type="Texture" id=167] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0124 (Klein)-fs8.png" type="Texture" id=168] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0137 (Klein)-fs8.png" type="Texture" id=169] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0147 (Klein)-fs8.png" type="Texture" id=170] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0126 (Klein)-fs8.png" type="Texture" id=171] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0158 (Klein)-fs8.png" type="Texture" id=172] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0159 (Klein)-fs8.png" type="Texture" id=173] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0133 (Klein)-fs8.png" type="Texture" id=174] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0138 (Klein)-fs8.png" type="Texture" id=175] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0125 (Klein)-fs8.png" type="Texture" id=176] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0153 (Klein)-fs8.png" type="Texture" id=177] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0203 (Klein)-fs8.png" type="Texture" id=178] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0222 (Klein)-fs8.png" type="Texture" id=179] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0232 (Klein)-fs8.png" type="Texture" id=180] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0185 (Klein)-fs8.png" type="Texture" id=181] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0206 (Klein)-fs8.png" type="Texture" id=182] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0234 (Klein)-fs8.png" type="Texture" id=183] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0236 (Klein)-fs8.png" type="Texture" id=184] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0191 (Klein)-fs8.png" type="Texture" id=185] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0192 (Klein)-fs8.png" type="Texture" id=186] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0209 (Klein)-fs8.png" type="Texture" id=187] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0214 (Klein)-fs8.png" type="Texture" id=188] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0227 (Klein)-fs8.png" type="Texture" id=189] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0238 (Klein)-fs8.png" type="Texture" id=190] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0179 (Klein)-fs8.png" type="Texture" id=191] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0180 (Klein)-fs8.png" type="Texture" id=192] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0201 (Klein)-fs8.png" type="Texture" id=193] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0210 (Klein)-fs8.png" type="Texture" id=194] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0178 (Klein)-fs8.png" type="Texture" id=195] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0211 (Klein)-fs8.png" type="Texture" id=196] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0225 (Klein)-fs8.png" type="Texture" id=197] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0229 (Klein)-fs8.png" type="Texture" id=198] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0230 (Klein)-fs8.png" type="Texture" id=199] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0184 (Klein)-fs8.png" type="Texture" id=200] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0235 (Klein)-fs8.png" type="Texture" id=201] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0195 (Klein)-fs8.png" type="Texture" id=202] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0231 (Klein)-fs8.png" type="Texture" id=203] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0200 (Klein)-fs8.png" type="Texture" id=204] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0202 (Klein)-fs8.png" type="Texture" id=205] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0218 (Klein)-fs8.png" type="Texture" id=206] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0207 (Klein)-fs8.png" type="Texture" id=207] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0221 (Klein)-fs8.png" type="Texture" id=208] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0181 (Klein)-fs8.png" type="Texture" id=209] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0190 (Klein)-fs8.png" type="Texture" id=210] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0197 (Klein)-fs8.png" type="Texture" id=211] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0199 (Klein)-fs8.png" type="Texture" id=212] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0215 (Klein)-fs8.png" type="Texture" id=213] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0183 (Klein)-fs8.png" type="Texture" id=214] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0187 (Klein)-fs8.png" type="Texture" id=215] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0217 (Klein)-fs8.png" type="Texture" id=216] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0223 (Klein)-fs8.png" type="Texture" id=217] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0205 (Klein)-fs8.png" type="Texture" id=218] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0213 (Klein)-fs8.png" type="Texture" id=219] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0198 (Klein)-fs8.png" type="Texture" id=220] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0219 (Klein)-fs8.png" type="Texture" id=221] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0176 (Klein)-fs8.png" type="Texture" id=222] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0196 (Klein)-fs8.png" type="Texture" id=223] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0224 (Klein)-fs8.png" type="Texture" id=224] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0228 (Klein)-fs8.png" type="Texture" id=225] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0212 (Klein)-fs8.png" type="Texture" id=226] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0233 (Klein)-fs8.png" type="Texture" id=227] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0237 (Klein)-fs8.png" type="Texture" id=228] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0189 (Klein)-fs8.png" type="Texture" id=229] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0204 (Klein)-fs8.png" type="Texture" id=230] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0216 (Klein)-fs8.png" type="Texture" id=231] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0226 (Klein)-fs8.png" type="Texture" id=232] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0194 (Klein)-fs8.png" type="Texture" id=233] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0220 (Klein)-fs8.png" type="Texture" id=234] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0239 (Klein)-fs8.png" type="Texture" id=235] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0193 (Klein)-fs8.png" type="Texture" id=236] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0177 (Klein)-fs8.png" type="Texture" id=237] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0186 (Klein)-fs8.png" type="Texture" id=238] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0208 (Klein)-fs8.png" type="Texture" id=239] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0182 (Klein)-fs8.png" type="Texture" id=240] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0188 (Klein)-fs8.png" type="Texture" id=241] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0245 (Klein)-fs8.png" type="Texture" id=242] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0240 (Klein)-fs8.png" type="Texture" id=243] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0247 (Klein)-fs8.png" type="Texture" id=244] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0243 (Klein)-fs8.png" type="Texture" id=245] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0248 (Klein)-fs8.png" type="Texture" id=246] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0246 (Klein)-fs8.png" type="Texture" id=247] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0249 (Klein)-fs8.png" type="Texture" id=248] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0242 (Klein)-fs8.png" type="Texture" id=249] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0250 (Klein)-fs8.png" type="Texture" id=250] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0244 (Klein)-fs8.png" type="Texture" id=251] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0241 (Klein)-fs8.png" type="Texture" id=252] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0251 (Klein)-fs8.png" type="Texture" id=253] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0252 (Klein)-fs8.png" type="Texture" id=254] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0289 (Klein)-fs8.png" type="Texture" id=255] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0296 (Klein)-fs8.png" type="Texture" id=256] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0291 (Klein)-fs8.png" type="Texture" id=257] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0304 (Klein)-fs8.png" type="Texture" id=258] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0256 (Klein)-fs8.png" type="Texture" id=259] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0258 (Klein)-fs8.png" type="Texture" id=260] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0263 (Klein)-fs8.png" type="Texture" id=261] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0268 (Klein)-fs8.png" type="Texture" id=262] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0260 (Klein)-fs8.png" type="Texture" id=263] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0254 (Klein)-fs8.png" type="Texture" id=264] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0265 (Klein)-fs8.png" type="Texture" id=265] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0271 (Klein)-fs8.png" type="Texture" id=266] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0275 (Klein)-fs8.png" type="Texture" id=267] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0276 (Klein)-fs8.png" type="Texture" id=268] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0272 (Klein)-fs8.png" type="Texture" id=269] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0281 (Klein)-fs8.png" type="Texture" id=270] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0269 (Klein)-fs8.png" type="Texture" id=271] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0280 (Klein)-fs8.png" type="Texture" id=272] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0290 (Klein)-fs8.png" type="Texture" id=273] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0255 (Klein)-fs8.png" type="Texture" id=274] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0277 (Klein)-fs8.png" type="Texture" id=275] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0286 (Klein)-fs8.png" type="Texture" id=276] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0297 (Klein)-fs8.png" type="Texture" id=277] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0257 (Klein)-fs8.png" type="Texture" id=278] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0300 (Klein)-fs8.png" type="Texture" id=279] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0305 (Klein)-fs8.png" type="Texture" id=280] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0284 (Klein)-fs8.png" type="Texture" id=281] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0292 (Klein)-fs8.png" type="Texture" id=282] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0295 (Klein)-fs8.png" type="Texture" id=283] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0261 (Klein)-fs8.png" type="Texture" id=284] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0273 (Klein)-fs8.png" type="Texture" id=285] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0267 (Klein)-fs8.png" type="Texture" id=286] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0293 (Klein)-fs8.png" type="Texture" id=287] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0303 (Klein)-fs8.png" type="Texture" id=288] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0288 (Klein)-fs8.png" type="Texture" id=289] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0307 (Klein)-fs8.png" type="Texture" id=290] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0308 (Klein)-fs8.png" type="Texture" id=291] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0283 (Klein)-fs8.png" type="Texture" id=292] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0309 (Klein)-fs8.png" type="Texture" id=293] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0262 (Klein)-fs8.png" type="Texture" id=294] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0311 (Klein)-fs8.png" type="Texture" id=295] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0313 (Klein)-fs8.png" type="Texture" id=296] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0270 (Klein)-fs8.png" type="Texture" id=297] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0274 (Klein)-fs8.png" type="Texture" id=298] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0279 (Klein)-fs8.png" type="Texture" id=299] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0259 (Klein)-fs8.png" type="Texture" id=300] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0282 (Klein)-fs8.png" type="Texture" id=301] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0294 (Klein)-fs8.png" type="Texture" id=302] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0298 (Klein)-fs8.png" type="Texture" id=303] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0299 (Klein)-fs8.png" type="Texture" id=304] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0301 (Klein)-fs8.png" type="Texture" id=305] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0302 (Klein)-fs8.png" type="Texture" id=306] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0253 (Klein)-fs8.png" type="Texture" id=307] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0264 (Klein)-fs8.png" type="Texture" id=308] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0266 (Klein)-fs8.png" type="Texture" id=309] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0278 (Klein)-fs8.png" type="Texture" id=310] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0306 (Klein)-fs8.png" type="Texture" id=311] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0310 (Klein)-fs8.png" type="Texture" id=312] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0285 (Klein)-fs8.png" type="Texture" id=313] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0312 (Klein)-fs8.png" type="Texture" id=314] -[ext_resource path="res://assets/neutral object/whitegold orbicle/0287 (Klein)-fs8.png" type="Texture" id=315] [ext_resource path="res://assets/sounds/MAGIC_SPELL_Attacking_Climbing_Bells_stereo.wav" type="AudioStream" id=316] [ext_resource path="res://assets/environment/blocks/Empty-Navigation-Tile.png" type="Texture" id=317] @@ -394,10 +81,10 @@ tracks/2/keys = { [sub_resource type="SpriteFrames" id=4] animations = [ { -"frames": [ ExtResource( 13 ), ExtResource( 12 ), ExtResource( 36 ), ExtResource( 17 ), ExtResource( 35 ), ExtResource( 8 ), ExtResource( 30 ), ExtResource( 16 ), ExtResource( 18 ), ExtResource( 19 ), ExtResource( 20 ), ExtResource( 31 ), ExtResource( 21 ), ExtResource( 9 ), ExtResource( 22 ), ExtResource( 32 ), ExtResource( 37 ), ExtResource( 7 ), ExtResource( 33 ), ExtResource( 34 ), ExtResource( 1 ), ExtResource( 3 ), ExtResource( 10 ), ExtResource( 4 ), ExtResource( 23 ), ExtResource( 5 ), ExtResource( 14 ), ExtResource( 6 ), ExtResource( 11 ), ExtResource( 24 ), ExtResource( 15 ), ExtResource( 25 ), ExtResource( 26 ), ExtResource( 27 ), ExtResource( 28 ), ExtResource( 29 ), ExtResource( 42 ), ExtResource( 40 ), ExtResource( 43 ), ExtResource( 38 ), ExtResource( 41 ), ExtResource( 39 ), ExtResource( 77 ), ExtResource( 57 ), ExtResource( 86 ), ExtResource( 44 ), ExtResource( 85 ), ExtResource( 89 ), ExtResource( 94 ), ExtResource( 78 ), ExtResource( 61 ), ExtResource( 102 ), ExtResource( 71 ), ExtResource( 68 ), ExtResource( 67 ), ExtResource( 62 ), ExtResource( 69 ), ExtResource( 55 ), ExtResource( 72 ), ExtResource( 90 ), ExtResource( 53 ), ExtResource( 91 ), ExtResource( 99 ), ExtResource( 93 ), ExtResource( 58 ), ExtResource( 92 ), ExtResource( 103 ), ExtResource( 88 ), ExtResource( 95 ), ExtResource( 96 ), ExtResource( 97 ), ExtResource( 98 ), ExtResource( 100 ), ExtResource( 101 ), ExtResource( 70 ), ExtResource( 87 ), ExtResource( 83 ), ExtResource( 104 ), ExtResource( 54 ), ExtResource( 63 ), ExtResource( 45 ), ExtResource( 105 ), ExtResource( 47 ), ExtResource( 46 ), ExtResource( 59 ), ExtResource( 49 ), ExtResource( 82 ), ExtResource( 106 ), ExtResource( 107 ), ExtResource( 48 ), ExtResource( 60 ), ExtResource( 73 ), ExtResource( 50 ), ExtResource( 51 ), ExtResource( 52 ), ExtResource( 74 ), ExtResource( 64 ), ExtResource( 56 ), ExtResource( 79 ), ExtResource( 75 ), ExtResource( 81 ), ExtResource( 65 ), ExtResource( 66 ), ExtResource( 76 ), ExtResource( 80 ), ExtResource( 84 ), ExtResource( 110 ), ExtResource( 113 ), ExtResource( 111 ), ExtResource( 112 ), ExtResource( 108 ), ExtResource( 109 ), ExtResource( 149 ), ExtResource( 155 ), ExtResource( 151 ), ExtResource( 121 ), ExtResource( 136 ), ExtResource( 159 ), ExtResource( 156 ), ExtResource( 153 ), ExtResource( 152 ), ExtResource( 146 ), ExtResource( 166 ), ExtResource( 131 ), ExtResource( 168 ), ExtResource( 176 ), ExtResource( 171 ), ExtResource( 122 ), ExtResource( 140 ), ExtResource( 117 ), ExtResource( 118 ), ExtResource( 128 ), ExtResource( 127 ), ExtResource( 174 ), ExtResource( 167 ), ExtResource( 124 ), ExtResource( 123 ), ExtResource( 169 ), ExtResource( 175 ), ExtResource( 134 ), ExtResource( 142 ), ExtResource( 141 ), ExtResource( 164 ), ExtResource( 126 ), ExtResource( 129 ), ExtResource( 132 ), ExtResource( 125 ), ExtResource( 170 ), ExtResource( 133 ), ExtResource( 130 ), ExtResource( 160 ), ExtResource( 161 ), ExtResource( 135 ), ExtResource( 177 ), ExtResource( 137 ), ExtResource( 138 ), ExtResource( 165 ), ExtResource( 143 ), ExtResource( 172 ), ExtResource( 173 ), ExtResource( 162 ), ExtResource( 139 ), ExtResource( 114 ), ExtResource( 163 ), ExtResource( 157 ), ExtResource( 144 ), ExtResource( 115 ), ExtResource( 116 ), ExtResource( 145 ), ExtResource( 147 ), ExtResource( 119 ), ExtResource( 120 ), ExtResource( 154 ), ExtResource( 148 ), ExtResource( 150 ), ExtResource( 158 ), ExtResource( 222 ), ExtResource( 237 ), ExtResource( 195 ), ExtResource( 191 ), ExtResource( 192 ), ExtResource( 209 ), ExtResource( 240 ), ExtResource( 214 ), ExtResource( 200 ), ExtResource( 181 ), ExtResource( 238 ), ExtResource( 215 ), ExtResource( 241 ), ExtResource( 229 ), ExtResource( 210 ), ExtResource( 185 ), ExtResource( 186 ), ExtResource( 236 ), ExtResource( 233 ), ExtResource( 202 ), ExtResource( 223 ), ExtResource( 211 ), ExtResource( 220 ), ExtResource( 212 ), ExtResource( 204 ), ExtResource( 193 ), ExtResource( 205 ), ExtResource( 178 ), ExtResource( 230 ), ExtResource( 218 ), ExtResource( 182 ), ExtResource( 207 ), ExtResource( 239 ), ExtResource( 187 ), ExtResource( 194 ), ExtResource( 196 ), ExtResource( 226 ), ExtResource( 219 ), ExtResource( 188 ), ExtResource( 213 ), ExtResource( 231 ), ExtResource( 216 ), ExtResource( 206 ), ExtResource( 221 ), ExtResource( 234 ), ExtResource( 208 ), ExtResource( 179 ), ExtResource( 217 ), ExtResource( 224 ), ExtResource( 197 ), ExtResource( 232 ), ExtResource( 189 ), ExtResource( 225 ), ExtResource( 198 ), ExtResource( 199 ), ExtResource( 203 ), ExtResource( 180 ), ExtResource( 227 ), ExtResource( 183 ), ExtResource( 201 ), ExtResource( 184 ), ExtResource( 228 ), ExtResource( 190 ), ExtResource( 235 ), ExtResource( 243 ), ExtResource( 252 ), ExtResource( 249 ), ExtResource( 245 ), ExtResource( 251 ), ExtResource( 242 ), ExtResource( 247 ), ExtResource( 244 ), ExtResource( 246 ), ExtResource( 248 ), ExtResource( 250 ), ExtResource( 253 ), ExtResource( 254 ), ExtResource( 307 ), ExtResource( 264 ), ExtResource( 274 ), ExtResource( 259 ), ExtResource( 278 ), ExtResource( 260 ), ExtResource( 300 ), ExtResource( 263 ), ExtResource( 284 ), ExtResource( 294 ), ExtResource( 261 ), ExtResource( 308 ), ExtResource( 265 ), ExtResource( 309 ), ExtResource( 286 ), ExtResource( 262 ), ExtResource( 271 ), ExtResource( 297 ), ExtResource( 266 ), ExtResource( 269 ), ExtResource( 285 ), ExtResource( 298 ), ExtResource( 267 ), ExtResource( 268 ), ExtResource( 275 ), ExtResource( 310 ), ExtResource( 299 ), ExtResource( 272 ), ExtResource( 270 ), ExtResource( 301 ), ExtResource( 292 ), ExtResource( 281 ), ExtResource( 313 ), ExtResource( 276 ), ExtResource( 315 ), ExtResource( 289 ), ExtResource( 255 ), ExtResource( 273 ), ExtResource( 257 ), ExtResource( 282 ), ExtResource( 287 ), ExtResource( 302 ), ExtResource( 283 ), ExtResource( 256 ), ExtResource( 277 ), ExtResource( 303 ), ExtResource( 304 ), ExtResource( 279 ), ExtResource( 305 ), ExtResource( 306 ), ExtResource( 288 ), ExtResource( 258 ), ExtResource( 280 ), ExtResource( 311 ), ExtResource( 290 ), ExtResource( 291 ), ExtResource( 293 ), ExtResource( 312 ), ExtResource( 295 ), ExtResource( 314 ), ExtResource( 296 ) ], +"frames": [ ExtResource( 13 ) ], "loop": true, -"name": "rotate", -"speed": 24.0 +"name": "still", +"speed": 5.0 } ] [sub_resource type="Shader" id=5] @@ -452,7 +139,7 @@ monitorable = false script = ExtResource( 2 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] -position = Vector2( 0, 3 ) +position = Vector2( 0, 2.62987 ) scale = Vector2( 0.18, 0.18 ) shape = SubResource( 1 ) @@ -461,12 +148,11 @@ anims/fade_out = SubResource( 2 ) anims/oscilating = SubResource( 3 ) [node name="AnimatedSprite" type="AnimatedSprite" parent="."] -position = Vector2( 0, 3 ) -rotation = -0.235619 +position = Vector2( 0, 2.62987 ) +rotation = -0.220349 scale = Vector2( 0.036, 0.036 ) frames = SubResource( 4 ) -animation = "rotate" -frame = 155 +animation = "still" playing = true [node name="Sprite" type="Sprite" parent="."] diff --git a/src/Cinematics/FreedFrogCorridor.tscn b/src/Cinematics/FreedFrogCorridor Level.tscn similarity index 73% rename from src/Cinematics/FreedFrogCorridor.tscn rename to src/Cinematics/FreedFrogCorridor Level.tscn index fe7b9cc..9991613 100644 --- a/src/Cinematics/FreedFrogCorridor.tscn +++ b/src/Cinematics/FreedFrogCorridor Level.tscn @@ -1,21 +1,21 @@ [gd_scene load_steps=14 format=2] -[ext_resource path="res://src/Actors/Friendlies/WhatAreFrog.tscn" type="PackedScene" id=1] -[ext_resource path="res://assets/ui/sci-fi-godot-theme/sci-fi-pixel.tres" type="DynamicFont" id=2] -[ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=5] -[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=8] -[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=9] -[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=11] -[ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=12] -[ext_resource path="res://src/Utilities/SceneAudio.tscn" type="PackedScene" id=13] -[ext_resource path="res://src/Environment/DropThroughPlatforms.tres" type="TileSet" id=14] -[ext_resource path="res://src/Environment/GreenHouseTiles.tres" type="TileSet" 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://assets/environment/decor/platform-plants.png" type="Texture" id=17] +[ext_resource path="res://src/Environment/GreenHouseTiles.tres" type="TileSet" id=1] +[ext_resource path="res://src/Environment/DropThroughPlatforms.tres" type="TileSet" id=2] +[ext_resource path="res://assets/environment/decor/platform-plants.png" type="Texture" id=3] +[ext_resource path="res://src/Actors/Friendlies/WhatAreFrog.tscn" type="PackedScene" id=4] +[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=5] +[ext_resource path="res://src/Utilities/SceneAudio.tscn" type="PackedScene" id=6] +[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=7] +[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=8] +[ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=9] +[ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=10] +[ext_resource path="res://assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav" type="AudioStream" id=11] +[ext_resource path="res://assets/ui/fonts/kenny_space.tres" type="DynamicFont" id=12] [sub_resource type="TileSet" id=5] 0/name = "platform-plants.png 0" -0/texture = ExtResource( 17 ) +0/texture = ExtResource( 3 ) 0/tex_offset = Vector2( 0, 0 ) 0/modulate = Color( 1, 1, 1, 1 ) 0/region = Rect2( 16, 0, 256, 16 ) @@ -37,54 +37,47 @@ 0/z_index = 0 [node name="LevelTemplate" type="Node2D"] -script = ExtResource( 5 ) +script = ExtResource( 10 ) __meta__ = { "_edit_horizontal_guides_": [ 464.0 ], "_edit_vertical_guides_": [ 2880.0 ] } -[node name="SignalManager" parent="." instance=ExtResource( 8 )] +[node name="SignalManager" parent="." instance=ExtResource( 7 )] -[node name="SceneAudio" parent="." instance=ExtResource( 13 )] +[node name="SceneAudio" parent="." instance=ExtResource( 6 )] -[node name="LevelState" parent="." instance=ExtResource( 12 )] +[node name="LevelState" parent="." instance=ExtResource( 9 )] unique_name_in_owner = true -[node name="UserInterface" parent="." instance=ExtResource( 11 )] +[node name="Label" type="Label" parent="."] +margin_left = -100.0 +margin_top = 21.0 +margin_right = 109.0 +margin_bottom = 62.0 +custom_fonts/font = ExtResource( 12 ) +text = "< = Rescue Pod +0/10 sests occupied" +align = 1 + +[node name="UserInterface" parent="." instance=ExtResource( 8 )] unique_name_in_owner = true +visible = false [node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"] wait_time = 20.0 -[node name="Label" type="Label" parent="."] -margin_left = -61.0 -margin_top = 20.0 -margin_right = 62.0 -margin_bottom = 53.0 -custom_fonts/font = ExtResource( 2 ) -text = "<= Escape Pods -0/10 Seats occupied -" -align = 1 -valign = 1 - -[node name="WhatAreFrog" parent="." instance=ExtResource( 1 )] +[node name="WhatAreFrog" parent="." instance=ExtResource( 4 )] position = Vector2( 121, 103 ) -[node name="BlobbyCam" parent="." instance=ExtResource( 9 )] +[node name="BlobbyCam" parent="." instance=ExtResource( 5 )] unique_name_in_owner = true drag_margin_bottom = 0.3 fixed_position = true -[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 1 - -[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 0 - [node name="TileMap" type="TileMap" parent="."] unique_name_in_owner = true -tile_set = ExtResource( 15 ) +tile_set = ExtResource( 1 ) cell_size = Vector2( 16, 16 ) cell_quadrant_size = 3 cell_custom_transform = Transform2D( 24, 0, 0, 24, 0, 0 ) @@ -95,7 +88,7 @@ format = 1 tile_data = PoolIntArray( 65522, 5, 65540, 65523, 5, 10, 65524, 5, 10, 65525, 5, 10, 65526, 5, 10, 65527, 5, 10, 65528, 5, 10, 65529, 5, 10, 65530, 5, 10, 65531, 5, 10, 65532, 5, 10, 65533, 5, 10, 65534, 5, 10, 65535, 5, 10, 0, 5, 10, 1, 5, 10, 2, 5, 10, 3, 5, 10, 4, 5, 10, 5, 5, 10, 6, 5, 10, 7, 5, 10, 8, 5, 10, 9, 5, 10, 10, 5, 10, 11, 5, 10, 12, 5, 10, 13, 5, 10, 14, 5, 10, 15, 5, 10, 16, 5, 10, 17, 5, 10, 18, 5, 10, 19, 5, 10, 131058, 5, 7, 196594, 5, 7, 262130, 5, 7, 327666, 5, 7, 393202, 5, 7, 458738, 5, 7, 524274, 5, 65538, 524275, 5, 2, 524276, 5, 2, 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, 2, 458759, 5, 2, 458760, 5, 2, 458761, 5, 2, 458762, 5, 2, 458763, 5, 2, 458764, 5, 2, 458765, 5, 2, 458766, 5, 2, 458767, 5, 2, 458768, 5, 2, 458769, 5, 2, 458770, 5, 2, 458771, 5, 3 ) [node name="DropThroughPlatforms" type="TileMap" parent="."] -tile_set = ExtResource( 14 ) +tile_set = ExtResource( 2 ) cell_size = Vector2( 16, 16 ) format = 1 @@ -106,7 +99,7 @@ format = 1 [node name="LevelAmbiance" type="AudioStreamPlayer" parent="."] unique_name_in_owner = true -stream = ExtResource( 16 ) +stream = ExtResource( 11 ) volume_db = -14.994 autoplay = true bus = "Music" diff --git a/src/Contraptions/Triggers/ElevatorButton.gd b/src/Contraptions/Triggers/ElevatorButton.gd index ed49cd4..961e0d6 100644 --- a/src/Contraptions/Triggers/ElevatorButton.gd +++ b/src/Contraptions/Triggers/ElevatorButton.gd @@ -16,7 +16,7 @@ func _ready() -> void: elevator.get_node("./portal").frame = 1 elevator.monitoring = false -func _process(delta): +func _input(event: InputEvent) -> void: if activatable && Input.is_action_just_released("interact"): selfActivate() signal_manager.emit_signal("terminal_activated", elevator_time) @@ -42,7 +42,10 @@ func _on_ActivatorArea_area_entered(area:Area2D) -> void: func _on_ActivatorArea_area_exited(area:Area2D) -> void: unactivatable_timer.start() -func _on_Timer_timeout(): +func _on_Timer_timeout() -> void: + for body in activatorArea.get_overlapping_bodies(): + if body.is_in_group("player"): + return $Label.visible = false $Highlight.visible = false activatable = false diff --git a/src/Contraptions/Triggers/FrogFreeButton.gd b/src/Contraptions/Triggers/FrogFreeButton.gd index 6df667d..8db2fc4 100644 --- a/src/Contraptions/Triggers/FrogFreeButton.gd +++ b/src/Contraptions/Triggers/FrogFreeButton.gd @@ -11,29 +11,32 @@ export(int) var frog_number := 0 var activatable = false func _ready() -> void: - $Digit.frame = frog_number + $Digit.frame = frog_number -func _process(delta): - if activatable && Input.is_action_just_released("interact"): - selfActivate() - self.emit_signal("button_pushed") +func _input(event: InputEvent) -> void: + if activatable && Input.is_action_just_released("interact"): + selfActivate() + self.emit_signal("button_pushed") func selfActivate(): - indicatorPlayer.play("onning") - #TODO dis importante - activatorArea.set_deferred("monitoring", false) + indicatorPlayer.play("onning") + #TODO dis importante + activatorArea.set_deferred("monitoring", false) func _on_ActivatorArea_area_entered(area:Area2D) -> void: - $Label.visible = true - $Highlight.visible = true - activatable = true + $Label.visible = true + $Highlight.visible = true + activatable = true func _on_ActivatorArea_area_exited(area:Area2D) -> void: - unactivatable_timer.start() + unactivatable_timer.start() func _on_Timer_timeout(): - $Label.visible = false - $Highlight.visible = false - activatable = false + for body in activatorArea.get_overlapping_bodies(): + if body.is_in_group("player"): + return + $Label.visible = false + $Highlight.visible = false + activatable = false diff --git a/src/Contraptions/Triggers/GateButton.gd b/src/Contraptions/Triggers/GateButton.gd index 1f4ae94..e03abfc 100644 --- a/src/Contraptions/Triggers/GateButton.gd +++ b/src/Contraptions/Triggers/GateButton.gd @@ -7,31 +7,34 @@ onready var unactivatable_timer := $Timer var activatable = false -func _process(delta): - if activatable && Input.is_action_just_released("interact"): - selfActivate() - +func _input(event: InputEvent) -> void: + if activatable && Input.is_action_just_released("interact"): + selfActivate() + func selfActivate(): - indicatorPlayer.play("onning") - #TODO dis importante - activatorArea.set_deferred("monitoring", false) - #TODO Close gate again? - signal_manager.emit_signal("unlocked", "gateblock") - activatable = false + indicatorPlayer.play("onning") + #TODO dis importante + activatorArea.set_deferred("monitoring", false) + #TODO Close gate again? + signal_manager.emit_signal("unlocked", "gateblock") + activatable = false func _on_ActivatorArea_area_entered(area:Area2D) -> void: - $Label.visible = true - $Highlight.visible = true - activatable = true - if(area.get_parent().name == "WhatAreFrog"): - selfActivate() + $Label.visible = true + $Highlight.visible = true + activatable = true + if(area.get_parent().name == "WhatAreFrog"): + selfActivate() func _on_ActivatorArea_area_exited(area:Area2D) -> void: - unactivatable_timer.start() + unactivatable_timer.start() func _on_Timer_timeout(): - $Label.visible = false - $Highlight.visible = false - activatable = false + for body in activatorArea.get_overlapping_bodies(): + if body.is_in_group("player"): + return + $Label.visible = false + $Highlight.visible = false + activatable = false diff --git a/src/Levels/1 Tutorial Level.tscn b/src/Levels/1 Tutorial Level.tscn index 4760f82..e4ee5f7 100644 --- a/src/Levels/1 Tutorial Level.tscn +++ b/src/Levels/1 Tutorial Level.tscn @@ -165,20 +165,20 @@ wait_time = 20.0 position = Vector2( 0, -2.27374e-13 ) [node name="JumpTut" parent="Tutorials" instance=ExtResource( 15 )] -position = Vector2( 1, 0 ) +position = Vector2( 659, -76 ) tutorial_text = "Press to jump:" [node name="Button" parent="Tutorials/JumpTut" index="0"] material = SubResource( 11 ) [node name="StartTutorialArea" parent="Tutorials/JumpTut" index="5"] -position = Vector2( 562, -19 ) +position = Vector2( -55, 74 ) [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 ) +position = Vector2( -91, -80 ) action = "move_left" tutorial_text = "Press to move left:" initial_wait_time = 4.0 @@ -190,11 +190,14 @@ material = SubResource( 12 ) anims/RESET = SubResource( 7 ) anims/cease_4_exist = SubResource( 8 ) +[node name="StartTutorialArea" parent="Tutorials/LeftTut" index="5"] +position = Vector2( 25, 39 ) + [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 ) +position = Vector2( 82, -78 ) action = "move_right" tutorial_text = "Press to move right:" initial_wait_time = 2.0 @@ -206,6 +209,9 @@ material = SubResource( 13 ) anims/RESET = SubResource( 9 ) anims/cease_4_exist = SubResource( 10 ) +[node name="StartTutorialArea" parent="Tutorials/RightTut" index="5"] +position = Vector2( -114, 43 ) + [node name="CollisionShape2D" parent="Tutorials/RightTut/StartTutorialArea" index="0"] position = Vector2( -24.5, 0 ) @@ -219,7 +225,7 @@ position = Vector2( -70, 1 ) scale = Vector2( 0.878906, 0.936025 ) [node name="BlobbySprite" parent="Blobby" index="5"] -frame = 7 +frame = 5 [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 14 ) diff --git a/src/Levels/2 Tutorial Level.tscn b/src/Levels/2 Tutorial Level.tscn index 8184cf5..555c638 100644 --- a/src/Levels/2 Tutorial Level.tscn +++ b/src/Levels/2 Tutorial Level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=59 format=2] +[gd_scene load_steps=61 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] @@ -47,7 +47,63 @@ 0/shapes = [ ] 0/z_index = 0 -[sub_resource type="Shader" id=13] +[sub_resource type="Shader" id=15] +code = "shader_type canvas_item; + +uniform sampler2D noise_tex_normal; +uniform sampler2D noise_tex; +uniform float progress : hint_range(0.0, 1.0); +uniform float scale : hint_range(0.0, 100.0); +uniform float strength = 1.0; + +// If your sprite doesn't have enough space and the explosion gets clipped, +// you can uncomment this and adjust the scale +void vertex() { + VERTEX *= scale; + + UV *= scale; + UV -= (scale - 1.0) / 2.0; +} + +void fragment() { + vec2 direction = texture(noise_tex_normal, UV).xy; // We're using normal map as direction + direction -= 0.5; // Since our normal map is a texture, it ranges from 0.0 to 1.0... + direction *= 2.0; // ...so we're going to make it range from -1.0 to 1.0. + direction = direction * strength * progress; + + // UV for exploded texture + vec2 tex_size = 1.0 / TEXTURE_PIXEL_SIZE; // Real texture size in pixels + vec2 uv = floor(UV * tex_size) / (tex_size - 1.0); // Pixelate UV to snap pixels + uv = uv - direction; // Distort UV + + // Texture with exploded UV + vec4 tex = texture(TEXTURE, uv); + + // Dissolve alpha + float dissolve = texture(noise_tex, UV).x; + dissolve = step(progress, dissolve); + tex.a *= dissolve; + + // Border (in case the edge of your sprite stretches, otherwise you can remove this block) + vec2 border_uv = uv * 2.0 - 1.0; + border_uv = clamp(abs(border_uv), 0.0, 1.0); + float border = max(border_uv.x, border_uv.y); + border = ceil(1.0 - border); + tex.a *= border; + + COLOR = tex; +}" + +[sub_resource type="ShaderMaterial" id=48] +resource_local_to_scene = true +shader = SubResource( 15 ) +shader_param/progress = 0.0 +shader_param/scale = 1.0 +shader_param/strength = 0.1 +shader_param/noise_tex_normal = ExtResource( 17 ) +shader_param/noise_tex = ExtResource( 17 ) + +[sub_resource type="Shader" id=49] code = "shader_type canvas_item; uniform sampler2D noise_tex_normal; @@ -96,14 +152,14 @@ void fragment() { [sub_resource type="ShaderMaterial" id=14] resource_local_to_scene = true -shader = SubResource( 13 ) +shader = SubResource( 49 ) shader_param/progress = 0.0 shader_param/scale = 1.0 shader_param/strength = 0.1 shader_param/noise_tex_normal = ExtResource( 17 ) shader_param/noise_tex = ExtResource( 17 ) -[sub_resource type="Animation" id=15] +[sub_resource type="Animation" id=50] length = 0.001 tracks/0/type = "value" tracks/0/path = NodePath(".:frame") @@ -1043,7 +1099,7 @@ position = Vector2( -156, -51 ) scale = Vector2( 0.878906, 0.936025 ) [node name="BlobbySprite" parent="Blobby" index="5"] -frame = 5 +frame = 8 [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 6 ) @@ -1128,19 +1184,34 @@ position = Vector2( 6, -6 ) [node name="TutorialComboThingy" parent="." instance=ExtResource( 15 )] visible = false -position = Vector2( 1104, -86 ) +position = Vector2( 1115, 4 ) action1 = "boost_move" action2 = "move_right" press_limit = 2 +[node name="Button1" parent="TutorialComboThingy" index="1"] +material = SubResource( 48 ) + +[node name="Button2" parent="TutorialComboThingy" index="2"] +material = SubResource( 48 ) + +[node name="StartTutorialArea" parent="TutorialComboThingy" index="9"] +position = Vector2( -44, -83 ) + [node name="TutorialThingy" parent="." instance=ExtResource( 16 )] -position = Vector2( 1440, -90 ) +position = Vector2( 1441, -4 ) action = "interact" tutorial_text = "Press to interact:" [node name="Button" parent="TutorialThingy" index="0"] material = SubResource( 14 ) +[node name="StartTutorialArea" parent="TutorialThingy" index="5"] +position = Vector2( -2, -87 ) + +[node name="CollisionShape2D" parent="TutorialThingy/StartTutorialArea" index="0"] +position = Vector2( 0, 9 ) + [node name="SavePoint" parent="." instance=ExtResource( 18 )] position = Vector2( 1168, -88 ) @@ -1169,7 +1240,7 @@ hframes = 30 [node name="AnimationPlayer" type="AnimationPlayer" parent="Mine13/Sprite"] autoplay = "armed" -anims/RESET = SubResource( 15 ) +anims/RESET = SubResource( 50 ) anims/armed = SubResource( 16 ) anims/arming = SubResource( 17 ) anims/unarmed = SubResource( 18 ) @@ -1397,4 +1468,5 @@ position = Vector2( 360, 24 ) [editable path="UserInterface/HUD"] [editable path="BlobbyCam"] [editable path="Blobby"] +[editable path="TutorialComboThingy"] [editable path="TutorialThingy"] diff --git a/src/Levels/3 Tutorial Level.tscn b/src/Levels/3 Tutorial Level.tscn index aff0927..57e7152 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=26 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] @@ -101,6 +101,62 @@ shader_param/strength = 0.1 shader_param/noise_tex_normal = ExtResource( 19 ) shader_param/noise_tex = ExtResource( 19 ) +[sub_resource type="Shader" id=15] +code = "shader_type canvas_item; + +uniform sampler2D noise_tex_normal; +uniform sampler2D noise_tex; +uniform float progress : hint_range(0.0, 1.0); +uniform float scale : hint_range(0.0, 100.0); +uniform float strength = 1.0; + +// If your sprite doesn't have enough space and the explosion gets clipped, +// you can uncomment this and adjust the scale +void vertex() { + VERTEX *= scale; + + UV *= scale; + UV -= (scale - 1.0) / 2.0; +} + +void fragment() { + vec2 direction = texture(noise_tex_normal, UV).xy; // We're using normal map as direction + direction -= 0.5; // Since our normal map is a texture, it ranges from 0.0 to 1.0... + direction *= 2.0; // ...so we're going to make it range from -1.0 to 1.0. + direction = direction * strength * progress; + + // UV for exploded texture + vec2 tex_size = 1.0 / TEXTURE_PIXEL_SIZE; // Real texture size in pixels + vec2 uv = floor(UV * tex_size) / (tex_size - 1.0); // Pixelate UV to snap pixels + uv = uv - direction; // Distort UV + + // Texture with exploded UV + vec4 tex = texture(TEXTURE, uv); + + // Dissolve alpha + float dissolve = texture(noise_tex, UV).x; + dissolve = step(progress, dissolve); + tex.a *= dissolve; + + // Border (in case the edge of your sprite stretches, otherwise you can remove this block) + vec2 border_uv = uv * 2.0 - 1.0; + border_uv = clamp(abs(border_uv), 0.0, 1.0); + float border = max(border_uv.x, border_uv.y); + border = ceil(1.0 - border); + tex.a *= border; + + COLOR = tex; +}" + +[sub_resource type="ShaderMaterial" id=16] +resource_local_to_scene = true +shader = SubResource( 15 ) +shader_param/progress = 0.0 +shader_param/scale = 1.0 +shader_param/strength = 0.1 +shader_param/noise_tex_normal = ExtResource( 19 ) +shader_param/noise_tex = ExtResource( 19 ) + [node name="LevelTemplate" type="Node2D"] script = ExtResource( 11 ) __meta__ = { @@ -132,7 +188,7 @@ position = Vector2( -180, 113 ) scale = Vector2( 0.878906, 0.936025 ) [node name="BlobbySprite" parent="Blobby" index="5"] -frame = 7 +frame = 10 [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 6 ) @@ -197,7 +253,7 @@ y_target = 112 [node name="TutorialComboThingy" parent="." instance=ExtResource( 18 )] visible = false -position = Vector2( 177, 8 ) +position = Vector2( 276, -35 ) action1 = "boost_move" action2 = "jump" goal_state = "runToJump" @@ -211,17 +267,26 @@ material = SubResource( 14 ) material = SubResource( 14 ) [node name="CollisionShape2D" parent="TutorialComboThingy/StartTutorialArea" index="0"] -position = Vector2( 118, 31 ) +position = Vector2( -10, 75 ) [node name="TutorialComboThingy2" parent="." instance=ExtResource( 18 )] visible = false -position = Vector2( 518, -187 ) +position = Vector2( 381, -230 ) action1 = "boost_move" action2 = "jump" goal_state = "runToJump" tutorial_text = "Move and press to runjump:" press_limit = 1 +[node name="Button1" parent="TutorialComboThingy2" index="1"] +material = SubResource( 16 ) + +[node name="Button2" parent="TutorialComboThingy2" index="2"] +material = SubResource( 16 ) + +[node name="StartTutorialArea" parent="TutorialComboThingy2" index="9"] +position = Vector2( 111, 76 ) + [node name="Decor" type="Node2D" parent="."] [node name="ShaderGrass" parent="Decor" instance=ExtResource( 3 )] @@ -597,3 +662,4 @@ position = Vector2( 110, 100 ) [editable path="Blobby"] [editable path="FlyingPlatform2"] [editable path="TutorialComboThingy"] +[editable path="TutorialComboThingy2"] diff --git a/src/Levels/5 Tutorial Level.tscn b/src/Levels/5 Tutorial Level.tscn index 139f1b4..bcedc24 100644 --- a/src/Levels/5 Tutorial Level.tscn +++ b/src/Levels/5 Tutorial Level.tscn @@ -74,6 +74,9 @@ unique_name_in_owner = true position = Vector2( -186, 113 ) scale = Vector2( 0.878906, 0.936025 ) +[node name="BlobbySprite" parent="Blobby" index="5"] +frame = 7 + [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 7 ) diff --git a/src/Levels/Actual Level 1.tscn b/src/Levels/Actual Level 1.tscn index e30004c..94885af 100644 --- a/src/Levels/Actual Level 1.tscn +++ b/src/Levels/Actual Level 1.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=23 format=2] +[gd_scene load_steps=26 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] @@ -21,9 +21,66 @@ [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] +[ext_resource path="res://assets/effects/noise.png" type="Texture" id=22] [sub_resource type="AnimationNodeStateMachinePlayback" id=1] +[sub_resource type="Shader" id=15] +code = "shader_type canvas_item; + +uniform sampler2D noise_tex_normal; +uniform sampler2D noise_tex; +uniform float progress : hint_range(0.0, 1.0); +uniform float scale : hint_range(0.0, 100.0); +uniform float strength = 1.0; + +// If your sprite doesn't have enough space and the explosion gets clipped, +// you can uncomment this and adjust the scale +void vertex() { + VERTEX *= scale; + + UV *= scale; + UV -= (scale - 1.0) / 2.0; +} + +void fragment() { + vec2 direction = texture(noise_tex_normal, UV).xy; // We're using normal map as direction + direction -= 0.5; // Since our normal map is a texture, it ranges from 0.0 to 1.0... + direction *= 2.0; // ...so we're going to make it range from -1.0 to 1.0. + direction = direction * strength * progress; + + // UV for exploded texture + vec2 tex_size = 1.0 / TEXTURE_PIXEL_SIZE; // Real texture size in pixels + vec2 uv = floor(UV * tex_size) / (tex_size - 1.0); // Pixelate UV to snap pixels + uv = uv - direction; // Distort UV + + // Texture with exploded UV + vec4 tex = texture(TEXTURE, uv); + + // Dissolve alpha + float dissolve = texture(noise_tex, UV).x; + dissolve = step(progress, dissolve); + tex.a *= dissolve; + + // Border (in case the edge of your sprite stretches, otherwise you can remove this block) + vec2 border_uv = uv * 2.0 - 1.0; + border_uv = clamp(abs(border_uv), 0.0, 1.0); + float border = max(border_uv.x, border_uv.y); + border = ceil(1.0 - border); + tex.a *= border; + + COLOR = tex; +}" + +[sub_resource type="ShaderMaterial" id=16] +resource_local_to_scene = true +shader = SubResource( 15 ) +shader_param/progress = 0.0 +shader_param/scale = 1.0 +shader_param/strength = 0.1 +shader_param/noise_tex_normal = ExtResource( 22 ) +shader_param/noise_tex = ExtResource( 22 ) + [node name="LevelTemplate" type="Node2D"] script = ExtResource( 19 ) __meta__ = { @@ -55,7 +112,7 @@ position = Vector2( 251, -24 ) scale = Vector2( 0.878906, 0.936025 ) [node name="BlobbySprite" parent="Blobby" index="5"] -frame = 5 +frame = 10 [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 1 ) @@ -85,12 +142,21 @@ max_speed = 110 [node name="TutorialComboThingy" parent="." instance=ExtResource( 16 )] visible = false -position = Vector2( 432, 135 ) +position = Vector2( 429, 87 ) action1 = "duck" action2 = "jump" goal_state = "ducking" tutorial_text = "duck and jump to fall through" +[node name="Button1" parent="TutorialComboThingy" index="1"] +material = SubResource( 16 ) + +[node name="Button2" parent="TutorialComboThingy" index="2"] +material = SubResource( 16 ) + +[node name="StartTutorialArea" parent="TutorialComboThingy" index="9"] +position = Vector2( 6, 48 ) + [node name="DropThroughPlatform" parent="." instance=ExtResource( 7 )] tile_data = PoolIntArray( 786466, 1, 0, 786467, 0, 0, 786469, 2, 0 ) @@ -475,6 +541,7 @@ scale = Vector2( 1, 1.5 ) [editable path="UserInterface/PauseScreen"] [editable path="BlobbyCam"] [editable path="Blobby"] +[editable path="TutorialComboThingy"] [editable path="DartingEnemy"] [editable path="TileMap"] [editable path="BoundFrog"] diff --git a/src/Levels/Templates/LevelTemplate.gd b/src/Levels/Templates/LevelTemplate.gd index 82224d1..71dd4c1 100644 --- a/src/Levels/Templates/LevelTemplate.gd +++ b/src/Levels/Templates/LevelTemplate.gd @@ -15,7 +15,7 @@ func _ready() -> void: signal_manager.connect("terminal_activated", self, "stop_level_music") signal_manager.emit_signal("level_loaded") get_tree().paused = false - $SceneAudio.play_parallel_sound(level_music, level_music_attenuation) + $SceneAudio.play_parallel_sound(level_music, level_music_attenuation, false, 1.0, 0, "Music") $SceneAudio.play_parallel_sound(level_ambiance, level_ambiance_attenuation) diff --git a/src/Platforms/FlyingPlatform.tscn b/src/Platforms/FlyingPlatform.tscn index 96499ef..804b46a 100644 --- a/src/Platforms/FlyingPlatform.tscn +++ b/src/Platforms/FlyingPlatform.tscn @@ -58,9 +58,9 @@ script = ExtResource( 1 ) [node name="PlatformBody" type="KinematicBody2D" parent="."] collision_layer = 16 -collision_mask = 0 -collision/safe_margin = 0.001 +collision_mask = 3 motion/sync_to_physics = true +moving_platform_apply_velocity_on_leave = 2 [node name="FlyingSound" type="AudioStreamPlayer2D" parent="PlatformBody"] stream = ExtResource( 3 ) diff --git a/src/Platforms/FlyingPlatformSmol.tscn b/src/Platforms/FlyingPlatformSmol.tscn index 8557f85..18eca6d 100644 --- a/src/Platforms/FlyingPlatformSmol.tscn +++ b/src/Platforms/FlyingPlatformSmol.tscn @@ -70,9 +70,9 @@ script = ExtResource( 1 ) [node name="PlatformBody" type="KinematicBody2D" parent="."] collision_layer = 16 -collision_mask = 0 -collision/safe_margin = 0.001 +collision_mask = 3 motion/sync_to_physics = true +moving_platform_apply_velocity_on_leave = 2 [node name="Sprite" type="Sprite" parent="PlatformBody"] position = Vector2( 0, 8 ) diff --git a/src/Sounds/default_bus_layout.tres b/src/Sounds/default_bus_layout.tres index 073c153..4b29418 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 = -13.9794 +bus/0/volume_db = -14.4249 bus/1/name = "Music" bus/1/solo = false bus/1/mute = false bus/1/bypass_fx = false -bus/1/volume_db = -16.4782 +bus/1/volume_db = -7.9588 bus/1/send = "Master" bus/1/effect/0/effect = SubResource( 1 ) bus/1/effect/0/enabled = false @@ -56,7 +56,7 @@ bus/2/name = "Effects" bus/2/solo = false bus/2/mute = false bus/2/bypass_fx = false -bus/2/volume_db = -6.0206 +bus/2/volume_db = -1.9382 bus/2/send = "Master" bus/2/effect/0/effect = SubResource( 3 ) bus/2/effect/0/enabled = false diff --git a/src/UserInterface/TutorialComboThingy.gd b/src/UserInterface/TutorialComboThingy.gd index e4a6557..bf95278 100644 --- a/src/UserInterface/TutorialComboThingy.gd +++ b/src/UserInterface/TutorialComboThingy.gd @@ -6,6 +6,7 @@ export var tutorial_text = "" export var velocity = Vector2(0.309,0.309) export var press_limit = 3 export var initial_wait_time:float = 0.0 +export var start_moving_time: float = 30.0 onready var level_state := get_tree().root.get_child(4).get_node("%LevelState") onready var cam = null @@ -62,6 +63,7 @@ func _ready() -> void: button2.scale.y = 0.5 tex_size = Vector2(button1.texture.get_width(), button1.texture.get_height()/2) * button1.scale * 0.75 $Area/CollisionShape2D.shape.extents = tex_size + $Area.monitorable = false set_physics_process(true) func finished_waiting() -> void: @@ -112,8 +114,8 @@ func _lesson_learned(animation_name: String) -> void: func start_tutorial(): rng.randomize() - position.x += rng.randf_range(-100, 100) - position.y += rng.randf_range(-100, 100) + #position.x += rng.randf_range(-100, 100) + #position.y += rng.randf_range(-100, 100) velocity.x = velocity.x * sign(rng.randf_range(-1,1)) velocity.y = velocity.y * sign(rng.randf_range(-1,1)) tutorial_begun = true @@ -123,6 +125,17 @@ func start_tutorial(): timer.one_shot = true timer.connect("timeout", self, "enable_visibility") timer.start() + + var start_moving_timer = Timer.new() + add_child(start_moving_timer) + start_moving_timer.wait_time = start_moving_time + start_moving_timer.one_shot = true + start_moving_timer.connect("timeout", self, "start_moving") + start_moving_timer.start() + + +func start_moving() -> void: + $Area.monitorable = true moving = true func enable_visibility() -> void: diff --git a/src/UserInterface/TutorialComboThingy.tscn b/src/UserInterface/TutorialComboThingy.tscn index 5d91eb3..f65595c 100644 --- a/src/UserInterface/TutorialComboThingy.tscn +++ b/src/UserInterface/TutorialComboThingy.tscn @@ -9,7 +9,7 @@ [ext_resource path="res://assets/sounds/vibing.wav" type="AudioStream" id=7] [ext_resource path="res://assets/effects/noise.png" type="Texture" id=8] -[sub_resource type="Shader" id=13] +[sub_resource type="Shader" id=15] code = "shader_type canvas_item; uniform sampler2D noise_tex_normal; @@ -58,7 +58,7 @@ void fragment() { [sub_resource type="ShaderMaterial" id=12] resource_local_to_scene = true -shader = SubResource( 13 ) +shader = SubResource( 15 ) shader_param/progress = 0.0 shader_param/scale = 1.0 shader_param/strength = 0.1 @@ -81,12 +81,12 @@ fill_to = Vector2( 0.155994, 0.791965 ) size = 14 font_data = ExtResource( 2 ) -[sub_resource type="Gradient" id=15] +[sub_resource type="Gradient" id=16] interpolation_mode = 2 colors = PoolColorArray( 1, 1, 1, 1, 0, 0, 0, 0 ) [sub_resource type="GradientTexture2D" id=11] -gradient = SubResource( 15 ) +gradient = SubResource( 16 ) width = 100 height = 100 use_hdr = true diff --git a/src/UserInterface/TutorialThingy.gd b/src/UserInterface/TutorialThingy.gd index c6d57bb..52cf0ad 100644 --- a/src/UserInterface/TutorialThingy.gd +++ b/src/UserInterface/TutorialThingy.gd @@ -4,6 +4,7 @@ export var tutorial_text = "" export var velocity = Vector2(0.309, 0.309) export var press_limit = 3 export var initial_wait_time: float = 0.0 +export var start_moving_time: float = 30.0 var screen_size: Vector2 var tex_size: Vector2 @@ -53,6 +54,7 @@ func _ready() -> void: * 0.75 ) $Area/CollisionShape2D.shape.extents = tex_size + $Area.monitorable = false func finished_waiting() -> void: @@ -115,10 +117,10 @@ func _lesson_learned(animation_name: String) -> void: func start_tutorial() -> void: var rng = RandomNumberGenerator.new() rng.randomize() - position = cam.get_global_transform() * position - position.x += rng.randf_range(-50, 50) - position.y += rng.randf_range(-50, 50) - print(position) + #position = cam.get_global_transform() * position + #position.x += prev_spawn_position.x + rng.randf_range(-40, 40) + #position.y += prev_spawn_position.y + rng.randf_range(-40, 40) + #prev_spawn_position = position velocity.x = velocity.x * sign(rng.randf_range(-1, 1)) velocity.y = velocity.y * sign(rng.randf_range(-1, 1)) tutorial_begun = true @@ -128,6 +130,16 @@ func start_tutorial() -> void: timer.one_shot = true timer.connect("timeout", self, "enable_visibility") timer.start() + + var start_moving_timer = Timer.new() + add_child(start_moving_timer) + start_moving_timer.wait_time = start_moving_time + start_moving_timer.one_shot = true + start_moving_timer.connect("timeout", self, "start_moving") + start_moving_timer.start() + +func start_moving() -> void: + $Area.monitorable = true moving = true func enable_visibility() -> void: diff --git a/src/UserInterface/TutorialThingy.tscn b/src/UserInterface/TutorialThingy.tscn index 371f15c..e8162cf 100644 --- a/src/UserInterface/TutorialThingy.tscn +++ b/src/UserInterface/TutorialThingy.tscn @@ -136,7 +136,7 @@ tracks/1/keys = { } [sub_resource type="RectangleShape2D" id=6] -extents = Vector2( 62, 71 ) +extents = Vector2( 29, 39 ) [node name="TutorialThingy" type="Node2D"] physics_interpolation_mode = 1