summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Luevano Alvarado <david@luevano.xyz>2022-06-05 14:09:41 -0600
committerDavid Luevano Alvarado <david@luevano.xyz>2022-06-05 14:09:41 -0600
commit14538d486de312af41ce012836861468b8fb7897 (patch)
tree569d09c43fd7724a5fbb0898f5c1d1db3fd64b3d /src
parent4b42a8ba26f21e2c6c766fa747c8b93a115a53b2 (diff)
finish all necessary for playability
Diffstat (limited to 'src')
-rw-r--r--src/entities/actors/snake/scenes/Head.tscn4
-rw-r--r--src/entities/actors/snake/scripts/dash_state.gd1
-rw-r--r--src/entities/actors/snake/scripts/head.gd14
-rw-r--r--src/entities/actors/snake/scripts/jump_state.gd18
-rw-r--r--src/entities/actors/snake/scripts/normal_state.gd5
-rw-r--r--src/entities/actors/snake/scripts/slow_state.gd1
-rw-r--r--src/entities/actors/snake/scripts/state_machine.gd13
-rw-r--r--src/entities/food/scripts/food.gd3
-rw-r--r--src/entities/food/scripts/food_basic.gd4
-rw-r--r--src/entities/food/scripts/food_manager.gd7
-rw-r--r--src/entities/food/scripts/food_special.gd4
-rw-r--r--src/event.gd4
-rw-r--r--src/game.gd10
-rw-r--r--src/global.gd4
-rw-r--r--src/project.godot7
-rw-r--r--src/stats.gd8
-rw-r--r--src/tools/score_manager/scripts/score_label.gd14
-rw-r--r--src/tools/score_manager/scripts/score_manager.gd79
-rw-r--r--src/ui/hud/HUD.tscn50
-rw-r--r--src/ui/hud/actions/scenes/ActionsHUD.tscn78
-rw-r--r--src/ui/hud/actions/scripts/actions_hud.gd37
-rw-r--r--src/ui/hud/actions/sprites/a1.pngbin0 -> 201 bytes
-rw-r--r--src/ui/hud/actions/sprites/a1.png.import (renamed from src/ui/hud/progress_bars/sprites/grow_progress_icon.png.import)6
-rw-r--r--src/ui/hud/actions/sprites/a2.pngbin0 -> 204 bytes
-rw-r--r--src/ui/hud/actions/sprites/a2.png.import (renamed from src/ui/hud/progress_bars/sprites/grow_progress_over.png.import)6
-rw-r--r--src/ui/hud/actions/sprites/a3.pngbin0 -> 165 bytes
-rw-r--r--src/ui/hud/actions/sprites/a3.png.import (renamed from src/ui/hud/progress_bars/sprites/grow_progress_under.png.import)6
-rw-r--r--src/ui/hud/actions/sprites/a4.pngbin0 -> 183 bytes
-rw-r--r--src/ui/hud/actions/sprites/a4.png.import (renamed from src/ui/hud/progress_bars/sprites/grow_progress_progress.png.import)6
-rw-r--r--src/ui/hud/actions/sprites/d1.pngbin0 -> 197 bytes
-rw-r--r--src/ui/hud/actions/sprites/d1.png.import35
-rw-r--r--src/ui/hud/actions/sprites/d2.pngbin0 -> 212 bytes
-rw-r--r--src/ui/hud/actions/sprites/d2.png.import35
-rw-r--r--src/ui/hud/actions/sprites/d3.pngbin0 -> 179 bytes
-rw-r--r--src/ui/hud/actions/sprites/d3.png.import35
-rw-r--r--src/ui/hud/actions/sprites/d4.pngbin0 -> 196 bytes
-rw-r--r--src/ui/hud/actions/sprites/d4.png.import35
-rw-r--r--src/ui/hud/actions/sprites/s1.pngbin0 -> 199 bytes
-rw-r--r--src/ui/hud/actions/sprites/s1.png.import35
-rw-r--r--src/ui/hud/actions/sprites/s2.pngbin0 -> 216 bytes
-rw-r--r--src/ui/hud/actions/sprites/s2.png.import35
-rw-r--r--src/ui/hud/actions/sprites/s3.pngbin0 -> 177 bytes
-rw-r--r--src/ui/hud/actions/sprites/s3.png.import35
-rw-r--r--src/ui/hud/actions/sprites/s4.pngbin0 -> 194 bytes
-rw-r--r--src/ui/hud/actions/sprites/s4.png.import35
-rw-r--r--src/ui/hud/actions/sprites/space1.pngbin0 -> 188 bytes
-rw-r--r--src/ui/hud/actions/sprites/space1.png.import35
-rw-r--r--src/ui/hud/actions/sprites/space2.pngbin0 -> 189 bytes
-rw-r--r--src/ui/hud/actions/sprites/space2.png.import35
-rw-r--r--src/ui/hud/actions/sprites/space3.pngbin0 -> 168 bytes
-rw-r--r--src/ui/hud/actions/sprites/space3.png.import35
-rw-r--r--src/ui/hud/actions/sprites/space4.pngbin0 -> 180 bytes
-rw-r--r--src/ui/hud/actions/sprites/space4.png.import35
-rw-r--r--src/ui/hud/actions/sprites/w1.pngbin0 -> 201 bytes
-rw-r--r--src/ui/hud/actions/sprites/w1.png.import35
-rw-r--r--src/ui/hud/actions/sprites/w2.pngbin0 -> 205 bytes
-rw-r--r--src/ui/hud/actions/sprites/w2.png.import35
-rw-r--r--src/ui/hud/actions/sprites/w3.pngbin0 -> 165 bytes
-rw-r--r--src/ui/hud/actions/sprites/w3.png.import35
-rw-r--r--src/ui/hud/actions/sprites/w4.pngbin0 -> 190 bytes
-rw-r--r--src/ui/hud/actions/sprites/w4.png.import35
-rw-r--r--src/ui/hud/progress_bars/scenes/DashProgress.tscn24
-rw-r--r--src/ui/hud/progress_bars/scenes/GrowthProgress.tscn24
-rw-r--r--src/ui/hud/progress_bars/scenes/JumpProgress.tscn24
-rw-r--r--src/ui/hud/progress_bars/scenes/SlowProgress.tscn24
-rw-r--r--src/ui/hud/progress_bars/scripts/dash_progress.gd12
-rw-r--r--src/ui/hud/progress_bars/scripts/growth_progress.gd10
-rw-r--r--src/ui/hud/progress_bars/scripts/jump_progress.gd12
-rw-r--r--src/ui/hud/progress_bars/scripts/slow_progress.gd12
-rw-r--r--src/ui/hud/progress_bars/sprites/dash/dash_progress_icon.pngbin0 -> 144 bytes
-rw-r--r--src/ui/hud/progress_bars/sprites/dash/dash_progress_icon.png.import35
-rw-r--r--src/ui/hud/progress_bars/sprites/dash/dash_progress_over.pngbin0 -> 115 bytes
-rw-r--r--src/ui/hud/progress_bars/sprites/dash/dash_progress_over.png.import35
-rw-r--r--src/ui/hud/progress_bars/sprites/dash/dash_progress_progress.pngbin0 -> 104 bytes
-rw-r--r--src/ui/hud/progress_bars/sprites/dash/dash_progress_progress.png.import35
-rw-r--r--src/ui/hud/progress_bars/sprites/dash/dash_progress_under.pngbin0 -> 103 bytes
-rw-r--r--src/ui/hud/progress_bars/sprites/dash/dash_progress_under.png.import35
-rw-r--r--src/ui/hud/progress_bars/sprites/grow/grow_progress_icon.png (renamed from src/ui/hud/progress_bars/sprites/grow_progress_icon.png)bin152 -> 152 bytes
-rw-r--r--src/ui/hud/progress_bars/sprites/grow/grow_progress_icon.png.import35
-rw-r--r--src/ui/hud/progress_bars/sprites/grow/grow_progress_over.png (renamed from src/ui/hud/progress_bars/sprites/grow_progress_over.png)bin114 -> 114 bytes
-rw-r--r--src/ui/hud/progress_bars/sprites/grow/grow_progress_over.png.import35
-rw-r--r--src/ui/hud/progress_bars/sprites/grow/grow_progress_progress.png (renamed from src/ui/hud/progress_bars/sprites/grow_progress_progress.png)bin104 -> 104 bytes
-rw-r--r--src/ui/hud/progress_bars/sprites/grow/grow_progress_progress.png.import35
-rw-r--r--src/ui/hud/progress_bars/sprites/grow/grow_progress_under.png (renamed from src/ui/hud/progress_bars/sprites/grow_progress_under.png)bin104 -> 104 bytes
-rw-r--r--src/ui/hud/progress_bars/sprites/grow/grow_progress_under.png.import35
-rw-r--r--src/ui/hud/progress_bars/sprites/jump/jump_progress_icon.pngbin0 -> 142 bytes
-rw-r--r--src/ui/hud/progress_bars/sprites/jump/jump_progress_icon.png.import35
-rw-r--r--src/ui/hud/progress_bars/sprites/jump/jump_progress_over.pngbin0 -> 114 bytes
-rw-r--r--src/ui/hud/progress_bars/sprites/jump/jump_progress_over.png.import35
-rw-r--r--src/ui/hud/progress_bars/sprites/jump/jump_progress_progress.pngbin0 -> 104 bytes
-rw-r--r--src/ui/hud/progress_bars/sprites/jump/jump_progress_progress.png.import35
-rw-r--r--src/ui/hud/progress_bars/sprites/jump/jump_progress_under.pngbin0 -> 104 bytes
-rw-r--r--src/ui/hud/progress_bars/sprites/jump/jump_progress_under.png.import35
-rw-r--r--src/ui/hud/progress_bars/sprites/slow/slow_progress_icon.pngbin0 -> 154 bytes
-rw-r--r--src/ui/hud/progress_bars/sprites/slow/slow_progress_icon.png.import35
-rw-r--r--src/ui/hud/progress_bars/sprites/slow/slow_progress_over.pngbin0 -> 114 bytes
-rw-r--r--src/ui/hud/progress_bars/sprites/slow/slow_progress_over.png.import35
-rw-r--r--src/ui/hud/progress_bars/sprites/slow/slow_progress_progress.pngbin0 -> 104 bytes
-rw-r--r--src/ui/hud/progress_bars/sprites/slow/slow_progress_progress.png.import35
-rw-r--r--src/ui/hud/progress_bars/sprites/slow/slow_progress_under.pngbin0 -> 104 bytes
-rw-r--r--src/ui/hud/progress_bars/sprites/slow/slow_progress_under.png.import35
-rw-r--r--src/ui/main_menu/scenes/MainMenu.tscn73
-rw-r--r--src/ui/main_menu/scripts/main_menu.gd7
-rw-r--r--src/ui/stats_display/scenes/StatsDisplay.tscn43
-rw-r--r--src/ui/stats_display/scripts/progression_label.gd8
-rw-r--r--src/ui/stats_display/scripts/stats_display.gd20
106 files changed, 1678 insertions, 124 deletions
diff --git a/src/entities/actors/snake/scenes/Head.tscn b/src/entities/actors/snake/scenes/Head.tscn
index d69cbf8..b9180c3 100644
--- a/src/entities/actors/snake/scenes/Head.tscn
+++ b/src/entities/actors/snake/scenes/Head.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=14 format=2]
+[gd_scene load_steps=15 format=2]
[ext_resource path="res://entities/actors/snake/sprites/head.png" type="Texture" id=1]
[ext_resource path="res://entities/actors/snake/scripts/head.gd" type="Script" id=2]
@@ -7,6 +7,7 @@
[ext_resource path="res://entities/actors/snake/scripts/normal_state.gd" type="Script" id=5]
[ext_resource path="res://entities/actors/snake/scripts/dash_state.gd" type="Script" id=6]
[ext_resource path="res://entities/actors/snake/scripts/slow_state.gd" type="Script" id=7]
+[ext_resource path="res://entities/actors/snake/scripts/jump_state.gd" type="Script" id=8]
[sub_resource type="AtlasTexture" id=2]
atlas = ExtResource( 3 )
@@ -52,6 +53,7 @@ script = ExtResource( 6 )
script = ExtResource( 7 )
[node name="JumpState" type="Node" parent="StateMachine"]
+script = ExtResource( 8 )
[node name="Tongue" type="AnimatedSprite" parent="."]
position = Vector2( 0, -5 )
diff --git a/src/entities/actors/snake/scripts/dash_state.gd b/src/entities/actors/snake/scripts/dash_state.gd
index 3eb0bdf..a23b241 100644
--- a/src/entities/actors/snake/scripts/dash_state.gd
+++ b/src/entities/actors/snake/scripts/dash_state.gd
@@ -19,6 +19,7 @@ func exit():
func physics_process(delta: float) -> void:
+ fsm.rotate_on_input()
fsm.player.velocity = fsm.player.direction * Global.SNAKE_SPEED
fsm.player.velocity = fsm.player.move_and_slide(fsm.player.velocity)
diff --git a/src/entities/actors/snake/scripts/head.gd b/src/entities/actors/snake/scripts/head.gd
index e6824a7..2853d00 100644
--- a/src/entities/actors/snake/scripts/head.gd
+++ b/src/entities/actors/snake/scripts/head.gd
@@ -12,9 +12,11 @@ var velocity: Vector2 = Vector2.ZERO
var direction: Vector2 = Vector2.UP
var _time_elapsed: float = 0.0
-var can_dash: bool = true
-var can_slow: bool = true
-var can_jump: bool = true
+var stats: Stats = SaveData.get_stats()
+
+var can_dash: bool = false
+var can_slow: bool = false
+var can_jump: bool = false
func _ready() -> void:
@@ -22,6 +24,12 @@ func _ready() -> void:
Event.connect("snake_started_dash", self, "_on_snake_started_dash")
Event.connect("snake_started_slow", self, "_on_snake_started_slow")
Event.connect("snake_started_jump", self, "_on_snake_started_jump")
+
+ print(stats.get_stats())
+ can_dash = stats.trait_dash
+ can_slow = stats.trait_slow
+ can_jump = stats.trait_jump
+
tongue_sprite.visible = false
diff --git a/src/entities/actors/snake/scripts/jump_state.gd b/src/entities/actors/snake/scripts/jump_state.gd
index 396ceb4..329b426 100644
--- a/src/entities/actors/snake/scripts/jump_state.gd
+++ b/src/entities/actors/snake/scripts/jump_state.gd
@@ -6,22 +6,24 @@ var fsm: StateMachine
func enter():
if fsm.DEBUG:
print("Got inside %s." % name)
- Event.emit_signal("snake_started_dash")
- Global.SNAKE_SPEED = Global.SNAKE_DASH_SPEED
- yield(get_tree().create_timer(Global.SNAKE_DASH_TIME), "timeout")
+ Event.emit_signal("snake_started_jump")
+ fsm.player.set_collision_mask_bit(1, false)
+ fsm.player.set_collision_mask_bit(2, false)
+ Global.SNAKE_SPEED = Global.SNAKE_JUMP_SPEED
+ yield(get_tree().create_timer(Global.SNAKE_JUMP_TIME), "timeout")
exit()
func exit():
- Event.emit_signal("snake_finished_dash")
+ fsm.player.set_collision_mask_bit(1, true)
+ fsm.player.set_collision_mask_bit(2, true)
Global.SNAKE_SPEED = Global.SNAKE_SPEED_BACKUP
+ Event.emit_signal("snake_finished_jump")
fsm.back()
-func physics_process(delta: float) -> float:
+func physics_process(delta: float) -> void:
fsm.player.velocity = fsm.player.direction * Global.SNAKE_SPEED
fsm.player.velocity = fsm.player.move_and_slide(fsm.player.velocity)
- fsm.slow_down_on_collisions(Global.SNAKE_DASH_SPEED)
-
- return delta
+ fsm.slow_down_on_collisions(Global.SNAKE_JUMP_SPEED)
diff --git a/src/entities/actors/snake/scripts/normal_state.gd b/src/entities/actors/snake/scripts/normal_state.gd
index 11981a3..1a9c1b1 100644
--- a/src/entities/actors/snake/scripts/normal_state.gd
+++ b/src/entities/actors/snake/scripts/normal_state.gd
@@ -13,6 +13,7 @@ func exit(next_state):
func physics_process(delta: float) -> void:
+ fsm.rotate_on_input()
fsm.player.velocity = fsm.player.direction * Global.SNAKE_SPEED
fsm.player.velocity = fsm.player.move_and_slide(fsm.player.velocity)
@@ -24,5 +25,5 @@ func input(event: InputEvent) -> void:
exit("DashState")
if fsm.player.can_slow and event.is_action_pressed("slow"):
exit("SlowState")
- # if fsm.player.can_jump and event.is_action_pressed("jump"):
- # exit("JumpState")
+ if fsm.player.can_jump and event.is_action_pressed("jump"):
+ exit("JumpState")
diff --git a/src/entities/actors/snake/scripts/slow_state.gd b/src/entities/actors/snake/scripts/slow_state.gd
index 8d54bfb..3a2c94b 100644
--- a/src/entities/actors/snake/scripts/slow_state.gd
+++ b/src/entities/actors/snake/scripts/slow_state.gd
@@ -19,6 +19,7 @@ func exit():
func physics_process(delta: float) -> float:
+ fsm.rotate_on_input()
fsm.player.velocity = fsm.player.direction * Global.SNAKE_SPEED
fsm.player.velocity = fsm.player.move_and_slide(fsm.player.velocity)
diff --git a/src/entities/actors/snake/scripts/state_machine.gd b/src/entities/actors/snake/scripts/state_machine.gd
index b63f272..93e76b9 100644
--- a/src/entities/actors/snake/scripts/state_machine.gd
+++ b/src/entities/actors/snake/scripts/state_machine.gd
@@ -40,20 +40,21 @@ func _process(delta: float) -> void:
func _physics_process(delta: float) -> void:
- if Input.is_action_pressed("move_left"):
- player.rotate_to(player.LEFT)
- if Input.is_action_pressed("move_right"):
- player.rotate_to(player.RIGHT)
-
# state specific code, move_and_slide is called here
if state.has_method("physics_process"):
state.physics_process(delta)
handle_slow_speeds()
-
player.handle_time_elapsed(delta)
+func rotate_on_input() -> void:
+ if Input.is_action_pressed("move_left"):
+ player.rotate_to(player.LEFT)
+ if Input.is_action_pressed("move_right"):
+ player.rotate_to(player.RIGHT)
+
+
func slow_down_on_collisions(speed_backup: float):
if player.get_last_slide_collision():
Global.SNAKE_SPEED = player.velocity.length()
diff --git a/src/entities/food/scripts/food.gd b/src/entities/food/scripts/food.gd
index 386f0e5..e4bbc21 100644
--- a/src/entities/food/scripts/food.gd
+++ b/src/entities/food/scripts/food.gd
@@ -21,7 +21,7 @@ func update_texture() -> void:
_sprite.texture = texture[properties["type"]]
-func set_properties(pos: Vector2, loc: Vector2, special: bool, type: int, points: int=1, ttl: float = -1.0) -> void:
+func set_properties(pos: Vector2, loc: Vector2, special: bool, type: int, points: int=1, special_points: int=1, ttl: float = -1.0) -> void:
properties["global_position"] = pos
global_position = pos
properties["location"] = loc
@@ -29,6 +29,7 @@ func set_properties(pos: Vector2, loc: Vector2, special: bool, type: int, points
properties["type"] = type
properties["points"] = points
+ properties["special_points"] = special_points
properties["ttl"] = ttl
if properties["ttl"] != -1.0:
timer.wait_time = properties["ttl"]
diff --git a/src/entities/food/scripts/food_basic.gd b/src/entities/food/scripts/food_basic.gd
index 8090cdc..cfeec18 100644
--- a/src/entities/food/scripts/food_basic.gd
+++ b/src/entities/food/scripts/food_basic.gd
@@ -3,10 +3,12 @@ extends Food
enum Type {
APPLE,
- BANANA
+ BANANA,
+ RAT
}
func _ready():
texture[Type.APPLE] = preload("res://entities/food/sprites/apple.png")
texture[Type.BANANA] = preload("res://entities/food/sprites/banana.png")
+ texture[Type.RAT] = preload("res://entities/food/sprites/rat.png")
diff --git a/src/entities/food/scripts/food_manager.gd b/src/entities/food/scripts/food_manager.gd
index a605f9e..e6c7248 100644
--- a/src/entities/food/scripts/food_manager.gd
+++ b/src/entities/food/scripts/food_manager.gd
@@ -41,7 +41,10 @@ func _place_new_basic_food() -> void:
var loc: Vector2 = pos_loc[1]
# need to set the position first, else it will spawn on the middle and the moved
- food.set_properties(pos, loc, false, type)
+ if type == FoodBasic.Type.RAT:
+ food.set_properties(pos, loc, false, type, Global.POINTS_TO_GROW / 2)
+ else:
+ food.set_properties(pos, loc, false, type)
add_child(food)
food.update_texture()
current_basic_food.append(loc)
@@ -57,7 +60,7 @@ func _place_new_special_food() -> void:
var loc: Vector2 = pos_loc[1]
# need to set the position first, else it will spawn on the middle and the moved
- food.set_properties(pos, loc, true, type, Global.POINTS_TO_GROW)
+ food.set_properties(pos, loc, true, type, Global.POINTS_TO_GROW, Global.POINTS_TO_GROW / Global.POINTS_TO_GROW)
add_child(food)
food.update_texture()
current_special_food.append(loc)
diff --git a/src/entities/food/scripts/food_special.gd b/src/entities/food/scripts/food_special.gd
index c2fde78..45d0c56 100644
--- a/src/entities/food/scripts/food_special.gd
+++ b/src/entities/food/scripts/food_special.gd
@@ -3,9 +3,8 @@ extends Food
enum Type {
BUNNY,
- FROG,
TURTLE,
- RAT
+ FROG
}
@@ -13,4 +12,3 @@ func _ready():
texture[Type.BUNNY] = preload("res://entities/food/sprites/bunny.png")
texture[Type.FROG] = preload("res://entities/food/sprites/frog.png")
texture[Type.TURTLE] = preload("res://entities/food/sprites/turtle.png")
- texture[Type.RAT] = preload("res://entities/food/sprites/rat.png")
diff --git a/src/event.gd b/src/event.gd
index 6ef812c..b07a2d9 100644
--- a/src/event.gd
+++ b/src/event.gd
@@ -3,6 +3,7 @@ extends Node
signal game_start
signal game_restart
signal game_over
+signal game_to_main_menu
signal toggle_debug
signal snake_path_new_point(coordinates)
@@ -13,6 +14,9 @@ signal snake_added_initial_segments
signal snake_segment_body_entered(body)
signal snake_rotated
signal snake_growth_progress(progress)
+signal snake_dash_progress(progress)
+signal snake_slow_progress(progress)
+signal snake_jump_progress(progress)
signal snake_started_dash
signal snake_finished_dash
diff --git a/src/game.gd b/src/game.gd
index 0135b76..73a6a52 100644
--- a/src/game.gd
+++ b/src/game.gd
@@ -6,12 +6,15 @@ onready var _snake: Node2D = $Snake
func _ready() -> void:
Event.connect("game_over", self, "_on_game_over")
Event.connect("game_restart", self, "_on_game_restart")
+ Event.connect("game_to_main_menu", self, "_on_game_to_main_menu")
Event.connect("snake_segment_body_entered", self, "_on_snake_segment_body_entered")
func _input(event: InputEvent) -> void:
if event.is_action_pressed("restart"):
Event.emit_signal("game_restart")
+ if event.is_action_pressed("main_menu"):
+ Event.emit_signal("game_to_main_menu")
if event.is_action_pressed("debug"):
Event.emit_signal("toggle_debug")
@@ -36,4 +39,9 @@ func _on_game_over() -> void:
func _on_game_restart() -> void:
print("game_restart")
- get_tree().change_scene_to(Global.GAME_NODE) \ No newline at end of file
+ get_tree().change_scene_to(Global.GAME_NODE)
+
+
+func _on_game_to_main_menu() -> void:
+ print("game_to_main_menu")
+ get_tree().change_scene_to(Global.MAIN_MENU_NODE)
diff --git a/src/global.gd b/src/global.gd
index fc188d8..b9079bd 100644
--- a/src/global.gd
+++ b/src/global.gd
@@ -1,5 +1,6 @@
extends Node
+var MAIN_MENU_NODE: PackedScene = preload("res://ui/main_menu/scenes/MainMenu.tscn")
var GAME_NODE: PackedScene = preload("res://Game.tscn")
var GAME_SCALE: float = 2.0
var TILE_SIZE: int = 16
@@ -28,6 +29,9 @@ var SNAKE_JUMP_TIME: float = 0.5
var SNAKE_JUMP_COOLDOWN: float = 4.0
var POINTS_TO_GROW: int = 10
+var POINTS_TO_DASH: int = 10
+var POINTS_TO_SLOW: int = 10
+var POINTS_TO_JUMP: int = 10
# percentage of the available tiles
var MAX_BASIC_FOOD: float = 0.05
diff --git a/src/project.godot b/src/project.godot
index 4b8f008..430eba1 100644
--- a/src/project.godot
+++ b/src/project.godot
@@ -112,6 +112,8 @@ gdscript/warnings/return_value_discarded=false
window/size/width=320
window/size/height=180
+window/size/test_width=960
+window/size/test_height=540
window/stretch/mode="2d"
window/stretch/aspect="keep"
@@ -196,6 +198,11 @@ jump={
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
+main_menu={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777217,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
+ ]
+}
[layer_names]
diff --git a/src/stats.gd b/src/stats.gd
index d789341..c5f22cf 100644
--- a/src/stats.gd
+++ b/src/stats.gd
@@ -31,13 +31,13 @@ func get_stats() -> Dictionary:
"points": points,
"segments": segments,
"dash_points": dash_points,
- "slow_points": slow_points,
- "jump_points": jump_points,
"dash_segments": dash_segments,
- "slow_segments": slow_segments,
- "jump_segments": jump_segments,
"dash_percentage": dash_percentage,
+ "slow_points": slow_points,
+ "slow_segments": slow_segments,
"slow_percentage": slow_percentage,
+ "jump_points": jump_points,
+ "jump_segments": jump_segments,
"jump_lenght": jump_lenght,
"trait_dash": trait_dash,
"trait_slow": trait_slow,
diff --git a/src/tools/score_manager/scripts/score_label.gd b/src/tools/score_manager/scripts/score_label.gd
index 13a34c8..633ea0e 100644
--- a/src/tools/score_manager/scripts/score_label.gd
+++ b/src/tools/score_manager/scripts/score_label.gd
@@ -6,11 +6,17 @@ onready var timer: Timer = $Hbox/Label/Timer
onready var texture_rect: TextureRect = $Hbox/Center/VBox/TextureRect
enum Type {
- BODY_SEGMENT
+ BODY_SEGMENT,
+ DASH_SEGMENT,
+ SLOW_SEGMENT,
+ JUMP_SEGMENT
}
var texture: Dictionary = {
- Type.BODY_SEGMENT: preload("res://ui/hud/progress_bars/sprites/grow_progress_icon.png")
+ Type.BODY_SEGMENT: preload("res://ui/hud/progress_bars/sprites/grow/grow_progress_icon.png"),
+ Type.DASH_SEGMENT: preload("res://ui/hud/progress_bars/sprites/dash/dash_progress_icon.png"),
+ Type.SLOW_SEGMENT: preload("res://ui/hud/progress_bars/sprites/slow/slow_progress_icon.png"),
+ Type.JUMP_SEGMENT: preload("res://ui/hud/progress_bars/sprites/jump/jump_progress_icon.png")
}
var alive_time: float = 2.0
@@ -31,9 +37,7 @@ func set_properties(_points: int, color: Color, location: Vector2, type: int=-1)
set_global_position(location)
if type != -1:
texture_rect.visible = true
- match type:
- Type.BODY_SEGMENT:
- texture_rect.texture = texture[type]
+ texture_rect.texture = texture[type]
label.update()
diff --git a/src/tools/score_manager/scripts/score_manager.gd b/src/tools/score_manager/scripts/score_manager.gd
index 95fcfce..53df3ce 100644
--- a/src/tools/score_manager/scripts/score_manager.gd
+++ b/src/tools/score_manager/scripts/score_manager.gd
@@ -10,8 +10,15 @@ var mutation_stats: Array = [
Stats.new()
]
+var special_values: Dictionary = {
+ FoodSpecial.Type.BUNNY: [Global.POINTS_TO_DASH, Color.gray, ScoreLabel.Type.DASH_SEGMENT],
+ FoodSpecial.Type.TURTLE: [Global.POINTS_TO_SLOW, Color.green, ScoreLabel.Type.SLOW_SEGMENT],
+ FoodSpecial.Type.FROG: [Global.POINTS_TO_JUMP, Color.greenyellow, ScoreLabel.Type.JUMP_SEGMENT]
+}
+
var last_snake_pos: Vector2 = Vector2.ZERO
var snake_location_offset: Vector2 = Vector2(8.0, 8.0)
+var special_snake_location_offset: Vector2 = - snake_location_offset
func _ready():
@@ -21,12 +28,37 @@ func _ready():
func _on_food_eaten(properties: Dictionary) -> void:
+ var is_special: bool = properties["special"]
+ var type: int = properties["type"]
var points: int = properties["points"]
+ var special_points: int = properties["special_points"]
var location: Vector2 = properties["global_position"]
- var amount_to_grow: int = _process_points(points)
+ var amount_to_grow: int
+ var special_amount_to_grow: int
+
+ amount_to_grow = _process_points(points)
_spawn_added_score_text(points, location)
_spawn_added_segment_text(amount_to_grow)
+ if is_special:
+ special_amount_to_grow = _process_special_points(special_points, type)
+ # _spawn_added_score_text(points, location)
+ _spawn_added_special_segment_text(special_amount_to_grow, type)
+ _check_if_unlocked(type)
+
+
+func _check_if_unlocked(type: int) -> void:
+ match type:
+ FoodSpecial.Type.BUNNY:
+ if not stats.trait_dash and stats.dash_segments != 0:
+ stats.trait_dash = true
+ FoodSpecial.Type.TURTLE:
+ if not stats.trait_slow and stats.slow_segments != 0:
+ stats.trait_slow = true
+ FoodSpecial.Type.FROG:
+ if not stats.trait_jump and stats.jump_segments != 0:
+ stats.trait_jump = true
+
func _process_points(points: int) -> int:
var score_to_grow: int = (stats.segments + 1) * Global.POINTS_TO_GROW - stats.points
@@ -46,6 +78,44 @@ func _process_points(points: int) -> int:
return amount_to_grow
+func _process_special_points(points: int, type: int) -> int:
+ var score_to_grow: int
+ var amount_to_grow: int = 0
+ var growth_progress: int
+
+ match type:
+ FoodSpecial.Type.BUNNY:
+ score_to_grow = (stats.dash_segments + 1) * special_values[type][0] - stats.dash_points
+ stats.dash_points += points
+ FoodSpecial.Type.TURTLE:
+ score_to_grow = (stats.slow_segments + 1) * special_values[type][0] - stats.slow_points
+ stats.slow_points += points
+ FoodSpecial.Type.FROG:
+ score_to_grow = (stats.jump_segments + 1) * special_values[type][0] - stats.jump_points
+ stats.jump_points += points
+
+ if points >= score_to_grow:
+ amount_to_grow += 1
+ points -= score_to_grow
+ # maybe be careful with this
+ amount_to_grow += points / special_values[type][0]
+
+ match type:
+ FoodSpecial.Type.BUNNY:
+ stats.dash_segments += amount_to_grow
+ growth_progress = special_values[type][0] - ((stats.dash_segments + 1) * special_values[type][0] - stats.dash_points)
+ Event.emit_signal("snake_dash_progress", growth_progress)
+ FoodSpecial.Type.TURTLE:
+ stats.slow_segments += amount_to_grow
+ growth_progress = special_values[type][0] - ((stats.slow_segments + 1) * special_values[type][0] - stats.slow_points)
+ Event.emit_signal("snake_slow_progress", growth_progress)
+ FoodSpecial.Type.FROG:
+ stats.jump_segments += amount_to_grow
+ growth_progress = special_values[type][0] - ((stats.jump_segments + 1) * special_values[type][0] - stats.jump_points)
+ Event.emit_signal("snake_jump_progress", growth_progress)
+ return amount_to_grow
+
+
func _spawn_added_score_text(points: int, location: Vector2) -> void:
var label: ScoreLabel = SCORE_LABEL.instance()
add_child(label)
@@ -59,6 +129,13 @@ func _spawn_added_segment_text(amount: int) -> void:
label.set_properties(amount, Color.green, last_snake_pos + snake_location_offset, ScoreLabel.Type.BODY_SEGMENT)
+func _spawn_added_special_segment_text(amount: int, type: int)-> void:
+ if amount > 0:
+ var label: ScoreLabel = SCORE_LABEL.instance()
+ add_child(label)
+ label.set_properties(amount, special_values[type][1], last_snake_pos + special_snake_location_offset, special_values[type][2])
+
+
func _on_snake_path_new_point(coordinates: Vector2) -> void:
last_snake_pos = coordinates
diff --git a/src/ui/hud/HUD.tscn b/src/ui/hud/HUD.tscn
index d30f7f5..be5f773 100644
--- a/src/ui/hud/HUD.tscn
+++ b/src/ui/hud/HUD.tscn
@@ -1,8 +1,11 @@
-[gd_scene load_steps=4 format=2]
+[gd_scene load_steps=7 format=2]
-[ext_resource path="res://ui/hud/progress_bars/sprites/grow_progress_icon.png" type="Texture" id=2]
+[ext_resource path="res://ui/hud/progress_bars/scenes/DashProgress.tscn" type="PackedScene" id=1]
+[ext_resource path="res://ui/hud/progress_bars/scenes/SlowProgress.tscn" type="PackedScene" id=2]
[ext_resource path="res://ui/hud/snake/scenes/SnakeHUD.tscn" type="PackedScene" id=3]
[ext_resource path="res://ui/hud/progress_bars/scenes/GrowthProgress.tscn" type="PackedScene" id=4]
+[ext_resource path="res://ui/hud/progress_bars/scenes/JumpProgress.tscn" type="PackedScene" id=5]
+[ext_resource path="res://ui/hud/actions/scenes/ActionsHUD.tscn" type="PackedScene" id=6]
[node name="HUD" type="MarginContainer"]
anchor_right = 1.0
@@ -12,31 +15,50 @@ margin_top = 4.0
margin_right = -4.0
margin_bottom = -4.0
-[node name="StatsHUD" type="MarginContainer" parent="."]
+[node name="VBox" type="VBoxContainer" parent="."]
margin_right = 312.0
margin_bottom = 172.0
+custom_constants/separation = 100
-[node name="VBox" type="VBoxContainer" parent="StatsHUD"]
+[node name="StatsHUD" type="MarginContainer" parent="VBox"]
margin_right = 312.0
-margin_bottom = 172.0
+margin_bottom = 18.0
+
+[node name="VBox" type="VBoxContainer" parent="VBox/StatsHUD"]
+margin_right = 312.0
+margin_bottom = 18.0
custom_constants/separation = 2
-[node name="SnakeHUD" parent="StatsHUD/VBox" instance=ExtResource( 3 )]
+[node name="SnakeHUD" parent="VBox/StatsHUD/VBox" instance=ExtResource( 3 )]
margin_right = 312.0
margin_bottom = 8.0
-[node name="HBoxProgressBars" type="HBoxContainer" parent="StatsHUD/VBox"]
+[node name="HBoxProgressBars" type="HBoxContainer" parent="VBox/StatsHUD/VBox"]
margin_top = 10.0
margin_right = 312.0
margin_bottom = 18.0
-custom_constants/separation = 2
+custom_constants/separation = 4
+
+[node name="GrowthProgress" parent="VBox/StatsHUD/VBox/HBoxProgressBars" instance=ExtResource( 4 )]
+margin_right = 30.0
+margin_bottom = 8.0
-[node name="GrowthProgressIcon" type="TextureRect" parent="StatsHUD/VBox/HBoxProgressBars"]
-margin_right = 8.0
+[node name="DashProgress" parent="VBox/StatsHUD/VBox/HBoxProgressBars" instance=ExtResource( 1 )]
+margin_left = 34.0
+margin_right = 64.0
margin_bottom = 8.0
-texture = ExtResource( 2 )
-[node name="GrowthProgress" parent="StatsHUD/VBox/HBoxProgressBars" instance=ExtResource( 4 )]
-margin_left = 10.0
-margin_right = 30.0
+[node name="SlowProgress" parent="VBox/StatsHUD/VBox/HBoxProgressBars" instance=ExtResource( 2 )]
+margin_left = 68.0
+margin_right = 98.0
margin_bottom = 8.0
+
+[node name="JumpProgress" parent="VBox/StatsHUD/VBox/HBoxProgressBars" instance=ExtResource( 5 )]
+margin_left = 102.0
+margin_right = 132.0
+margin_bottom = 8.0
+
+[node name="ActionsHUD" parent="VBox" instance=ExtResource( 6 )]
+margin_top = 118.0
+margin_right = 312.0
+margin_bottom = 162.0
diff --git a/src/ui/hud/actions/scenes/ActionsHUD.tscn b/src/ui/hud/actions/scenes/ActionsHUD.tscn
new file mode 100644
index 0000000..520a5cb
--- /dev/null
+++ b/src/ui/hud/actions/scenes/ActionsHUD.tscn
@@ -0,0 +1,78 @@
+[gd_scene load_steps=9 format=2]
+
+[ext_resource path="res://themes/Theme.tres" type="Theme" id=1]
+[ext_resource path="res://ui/hud/actions/sprites/space2.png" type="Texture" id=3]
+[ext_resource path="res://ui/hud/actions/sprites/space3.png" type="Texture" id=4]
+[ext_resource path="res://ui/hud/actions/sprites/w3.png" type="Texture" id=5]
+[ext_resource path="res://ui/hud/actions/sprites/w2.png" type="Texture" id=6]
+[ext_resource path="res://ui/hud/actions/sprites/s3.png" type="Texture" id=7]
+[ext_resource path="res://ui/hud/actions/sprites/s2.png" type="Texture" id=8]
+[ext_resource path="res://ui/hud/actions/scripts/actions_hud.gd" type="Script" id=11]
+
+[node name="ActionsHUD" type="MarginContainer"]
+theme = ExtResource( 1 )
+script = ExtResource( 11 )
+
+[node name="VBox" type="VBoxContainer" parent="."]
+margin_right = 44.0
+margin_bottom = 44.0
+custom_constants/separation = -2
+
+[node name="WHBox" type="HBoxContainer" parent="VBox"]
+margin_right = 44.0
+margin_bottom = 16.0
+
+[node name="W" type="TextureButton" parent="VBox/WHBox"]
+margin_right = 16.0
+margin_bottom = 16.0
+disabled = true
+texture_normal = ExtResource( 6 )
+texture_disabled = ExtResource( 5 )
+
+[node name="Label" type="Label" parent="VBox/WHBox"]
+margin_left = 20.0
+margin_top = 1.0
+margin_right = 44.0
+margin_bottom = 14.0
+custom_colors/font_color_shadow = Color( 0, 0, 0, 1 )
+text = "Dash"
+
+[node name="SHBox" type="HBoxContainer" parent="VBox"]
+margin_top = 14.0
+margin_right = 44.0
+margin_bottom = 30.0
+
+[node name="S" type="TextureButton" parent="VBox/SHBox"]
+margin_right = 16.0
+margin_bottom = 16.0
+disabled = true
+texture_normal = ExtResource( 8 )
+texture_disabled = ExtResource( 7 )
+
+[node name="Label" type="Label" parent="VBox/SHBox"]
+margin_left = 20.0
+margin_top = 1.0
+margin_right = 44.0
+margin_bottom = 14.0
+custom_colors/font_color_shadow = Color( 0, 0, 0, 1 )
+text = "Slow"
+
+[node name="SpaceHBox" type="HBoxContainer" parent="VBox"]
+margin_top = 28.0
+margin_right = 44.0
+margin_bottom = 44.0
+
+[node name="Space" type="TextureButton" parent="VBox/SpaceHBox"]
+margin_right = 16.0
+margin_bottom = 16.0
+disabled = true
+texture_normal = ExtResource( 3 )
+texture_disabled = ExtResource( 4 )
+
+[node name="Label" type="Label" parent="VBox/SpaceHBox"]
+margin_left = 20.0
+margin_top = 1.0
+margin_right = 44.0
+margin_bottom = 14.0
+custom_colors/font_color_shadow = Color( 0, 0, 0, 1 )
+text = "Jump"
diff --git a/src/ui/hud/actions/scripts/actions_hud.gd b/src/ui/hud/actions/scripts/actions_hud.gd
new file mode 100644
index 0000000..b45acb5
--- /dev/null
+++ b/src/ui/hud/actions/scripts/actions_hud.gd
@@ -0,0 +1,37 @@
+extends MarginContainer
+
+onready var w: TextureButton = $VBox/WHBox/W
+onready var s: TextureButton = $VBox/SHBox/S
+onready var space: TextureButton = $VBox/SpaceHBox/Space
+
+var stats: Stats = SaveData.get_stats()
+
+
+func _ready():
+ Event.connect("snake_started_dash", self, "_on_snake_started_dash")
+ Event.connect("snake_started_slow", self, "_on_snake_started_slow")
+ Event.connect("snake_started_jump", self, "_on_snake_started_jump")
+ if stats.trait_dash:
+ w.disabled = false
+ if stats.trait_slow:
+ s.disabled = false
+ if stats.trait_jump:
+ space.disabled = false
+
+
+func _on_snake_started_dash() -> void:
+ w.disabled = true
+ yield(get_tree().create_timer(Global.SNAKE_DASH_COOLDOWN), "timeout")
+ w.disabled = false
+
+
+func _on_snake_started_slow() -> void:
+ s.disabled = true
+ yield(get_tree().create_timer(Global.SNAKE_SLOW_COOLDOWN), "timeout")
+ s.disabled = false
+
+
+func _on_snake_started_jump() -> void:
+ space.disabled = true
+ yield(get_tree().create_timer(Global.SNAKE_JUMP_COOLDOWN), "timeout")
+ space.disabled = false
diff --git a/src/ui/hud/actions/sprites/a1.png b/src/ui/hud/actions/sprites/a1.png
new file mode 100644
index 0000000..ac6d55f
--- /dev/null
+++ b/src/ui/hud/actions/sprites/a1.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/grow_progress_icon.png.import b/src/ui/hud/actions/sprites/a1.png.import
index 8d2488f..ebac2de 100644
--- a/src/ui/hud/progress_bars/sprites/grow_progress_icon.png.import
+++ b/src/ui/hud/actions/sprites/a1.png.import
@@ -2,15 +2,15 @@
importer="texture"
type="StreamTexture"
-path="res://.import/grow_progress_icon.png-3e4c84862319cfedeea45e4e79c3d47f.stex"
+path="res://.import/a1.png-6896a2ee4b31d15b1576ebe3ab855945.stex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://ui/hud/progress_bars/sprites/grow_progress_icon.png"
-dest_files=[ "res://.import/grow_progress_icon.png-3e4c84862319cfedeea45e4e79c3d47f.stex" ]
+source_file="res://ui/hud/actions/sprites/a1.png"
+dest_files=[ "res://.import/a1.png-6896a2ee4b31d15b1576ebe3ab855945.stex" ]
[params]
diff --git a/src/ui/hud/actions/sprites/a2.png b/src/ui/hud/actions/sprites/a2.png
new file mode 100644
index 0000000..73b5520
--- /dev/null
+++ b/src/ui/hud/actions/sprites/a2.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/grow_progress_over.png.import b/src/ui/hud/actions/sprites/a2.png.import
index f0d7eb9..a64f846 100644
--- a/src/ui/hud/progress_bars/sprites/grow_progress_over.png.import
+++ b/src/ui/hud/actions/sprites/a2.png.import
@@ -2,15 +2,15 @@
importer="texture"
type="StreamTexture"
-path="res://.import/grow_progress_over.png-6d8306b6318e040ab2863f474941ffab.stex"
+path="res://.import/a2.png-aa9af8dc79e327d10f593d39b156c660.stex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://ui/hud/progress_bars/sprites/grow_progress_over.png"
-dest_files=[ "res://.import/grow_progress_over.png-6d8306b6318e040ab2863f474941ffab.stex" ]
+source_file="res://ui/hud/actions/sprites/a2.png"
+dest_files=[ "res://.import/a2.png-aa9af8dc79e327d10f593d39b156c660.stex" ]
[params]
diff --git a/src/ui/hud/actions/sprites/a3.png b/src/ui/hud/actions/sprites/a3.png
new file mode 100644
index 0000000..136da8e
--- /dev/null
+++ b/src/ui/hud/actions/sprites/a3.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/grow_progress_under.png.import b/src/ui/hud/actions/sprites/a3.png.import
index 462f187..22b4a12 100644
--- a/src/ui/hud/progress_bars/sprites/grow_progress_under.png.import
+++ b/src/ui/hud/actions/sprites/a3.png.import
@@ -2,15 +2,15 @@
importer="texture"
type="StreamTexture"
-path="res://.import/grow_progress_under.png-c290c9f56bc4c33b22faafc5bd944210.stex"
+path="res://.import/a3.png-4ef5a1ad8c1848af7fdf8e42b6e57906.stex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://ui/hud/progress_bars/sprites/grow_progress_under.png"
-dest_files=[ "res://.import/grow_progress_under.png-c290c9f56bc4c33b22faafc5bd944210.stex" ]
+source_file="res://ui/hud/actions/sprites/a3.png"
+dest_files=[ "res://.import/a3.png-4ef5a1ad8c1848af7fdf8e42b6e57906.stex" ]
[params]
diff --git a/src/ui/hud/actions/sprites/a4.png b/src/ui/hud/actions/sprites/a4.png
new file mode 100644
index 0000000..5daf6a6
--- /dev/null
+++ b/src/ui/hud/actions/sprites/a4.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/grow_progress_progress.png.import b/src/ui/hud/actions/sprites/a4.png.import
index 77593c5..b5aadb8 100644
--- a/src/ui/hud/progress_bars/sprites/grow_progress_progress.png.import
+++ b/src/ui/hud/actions/sprites/a4.png.import
@@ -2,15 +2,15 @@
importer="texture"
type="StreamTexture"
-path="res://.import/grow_progress_progress.png-30487fff60fbbf02be101653c4371a7b.stex"
+path="res://.import/a4.png-95e9b6dc9b98e8028b64c52bf3d547e6.stex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://ui/hud/progress_bars/sprites/grow_progress_progress.png"
-dest_files=[ "res://.import/grow_progress_progress.png-30487fff60fbbf02be101653c4371a7b.stex" ]
+source_file="res://ui/hud/actions/sprites/a4.png"
+dest_files=[ "res://.import/a4.png-95e9b6dc9b98e8028b64c52bf3d547e6.stex" ]
[params]
diff --git a/src/ui/hud/actions/sprites/d1.png b/src/ui/hud/actions/sprites/d1.png
new file mode 100644
index 0000000..040b11d
--- /dev/null
+++ b/src/ui/hud/actions/sprites/d1.png
Binary files differ
diff --git a/src/ui/hud/actions/sprites/d1.png.import b/src/ui/hud/actions/sprites/d1.png.import
new file mode 100644
index 0000000..600618f
--- /dev/null
+++ b/src/ui/hud/actions/sprites/d1.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/d1.png-41909594eb60fb1aa3969561fd17deea.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/actions/sprites/d1.png"
+dest_files=[ "res://.import/d1.png-41909594eb60fb1aa3969561fd17deea.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/src/ui/hud/actions/sprites/d2.png b/src/ui/hud/actions/sprites/d2.png
new file mode 100644
index 0000000..46eece9
--- /dev/null
+++ b/src/ui/hud/actions/sprites/d2.png
Binary files differ
diff --git a/src/ui/hud/actions/sprites/d2.png.import b/src/ui/hud/actions/sprites/d2.png.import
new file mode 100644
index 0000000..6ff3c6d
--- /dev/null
+++ b/src/ui/hud/actions/sprites/d2.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/d2.png-90d05c8c582eb5ddb313d915ed28203f.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/actions/sprites/d2.png"
+dest_files=[ "res://.import/d2.png-90d05c8c582eb5ddb313d915ed28203f.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/src/ui/hud/actions/sprites/d3.png b/src/ui/hud/actions/sprites/d3.png
new file mode 100644
index 0000000..5e8fc6e
--- /dev/null
+++ b/src/ui/hud/actions/sprites/d3.png
Binary files differ
diff --git a/src/ui/hud/actions/sprites/d3.png.import b/src/ui/hud/actions/sprites/d3.png.import
new file mode 100644
index 0000000..cf4626d
--- /dev/null
+++ b/src/ui/hud/actions/sprites/d3.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/d3.png-c4bd7670bc74d2862b80b5e4260d96cd.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/actions/sprites/d3.png"
+dest_files=[ "res://.import/d3.png-c4bd7670bc74d2862b80b5e4260d96cd.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/src/ui/hud/actions/sprites/d4.png b/src/ui/hud/actions/sprites/d4.png
new file mode 100644
index 0000000..da42d0c
--- /dev/null
+++ b/src/ui/hud/actions/sprites/d4.png
Binary files differ
diff --git a/src/ui/hud/actions/sprites/d4.png.import b/src/ui/hud/actions/sprites/d4.png.import
new file mode 100644
index 0000000..bff81c8
--- /dev/null
+++ b/src/ui/hud/actions/sprites/d4.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/d4.png-526773f5b57d69d28ee49ac7d12a6465.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/actions/sprites/d4.png"
+dest_files=[ "res://.import/d4.png-526773f5b57d69d28ee49ac7d12a6465.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/src/ui/hud/actions/sprites/s1.png b/src/ui/hud/actions/sprites/s1.png
new file mode 100644
index 0000000..442c5de
--- /dev/null
+++ b/src/ui/hud/actions/sprites/s1.png
Binary files differ
diff --git a/src/ui/hud/actions/sprites/s1.png.import b/src/ui/hud/actions/sprites/s1.png.import
new file mode 100644
index 0000000..502e1d4
--- /dev/null
+++ b/src/ui/hud/actions/sprites/s1.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/s1.png-b5e4895ed057b0c14ca9c774f0ceee21.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/actions/sprites/s1.png"
+dest_files=[ "res://.import/s1.png-b5e4895ed057b0c14ca9c774f0ceee21.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/src/ui/hud/actions/sprites/s2.png b/src/ui/hud/actions/sprites/s2.png
new file mode 100644
index 0000000..8d363ee
--- /dev/null
+++ b/src/ui/hud/actions/sprites/s2.png
Binary files differ
diff --git a/src/ui/hud/actions/sprites/s2.png.import b/src/ui/hud/actions/sprites/s2.png.import
new file mode 100644
index 0000000..7c4dfb7
--- /dev/null
+++ b/src/ui/hud/actions/sprites/s2.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/s2.png-18df83fa9061dada63ef0af20f6432db.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/actions/sprites/s2.png"
+dest_files=[ "res://.import/s2.png-18df83fa9061dada63ef0af20f6432db.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/src/ui/hud/actions/sprites/s3.png b/src/ui/hud/actions/sprites/s3.png
new file mode 100644
index 0000000..5053163
--- /dev/null
+++ b/src/ui/hud/actions/sprites/s3.png
Binary files differ
diff --git a/src/ui/hud/actions/sprites/s3.png.import b/src/ui/hud/actions/sprites/s3.png.import
new file mode 100644
index 0000000..ffde17d
--- /dev/null
+++ b/src/ui/hud/actions/sprites/s3.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/s3.png-be47c4187ab7ba8a893d129ef1111f3c.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/actions/sprites/s3.png"
+dest_files=[ "res://.import/s3.png-be47c4187ab7ba8a893d129ef1111f3c.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/src/ui/hud/actions/sprites/s4.png b/src/ui/hud/actions/sprites/s4.png
new file mode 100644
index 0000000..ba9de54
--- /dev/null
+++ b/src/ui/hud/actions/sprites/s4.png
Binary files differ
diff --git a/src/ui/hud/actions/sprites/s4.png.import b/src/ui/hud/actions/sprites/s4.png.import
new file mode 100644
index 0000000..4c0d86d
--- /dev/null
+++ b/src/ui/hud/actions/sprites/s4.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/s4.png-e2422abcf74bf0767df5e6ad531a69b1.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/actions/sprites/s4.png"
+dest_files=[ "res://.import/s4.png-e2422abcf74bf0767df5e6ad531a69b1.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/src/ui/hud/actions/sprites/space1.png b/src/ui/hud/actions/sprites/space1.png
new file mode 100644
index 0000000..395ed1d
--- /dev/null
+++ b/src/ui/hud/actions/sprites/space1.png
Binary files differ
diff --git a/src/ui/hud/actions/sprites/space1.png.import b/src/ui/hud/actions/sprites/space1.png.import
new file mode 100644
index 0000000..f491424
--- /dev/null
+++ b/src/ui/hud/actions/sprites/space1.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/space1.png-a3f6d20bdacce395e6ae8e533ec12b26.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/actions/sprites/space1.png"
+dest_files=[ "res://.import/space1.png-a3f6d20bdacce395e6ae8e533ec12b26.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/src/ui/hud/actions/sprites/space2.png b/src/ui/hud/actions/sprites/space2.png
new file mode 100644
index 0000000..b564b76
--- /dev/null
+++ b/src/ui/hud/actions/sprites/space2.png
Binary files differ
diff --git a/src/ui/hud/actions/sprites/space2.png.import b/src/ui/hud/actions/sprites/space2.png.import
new file mode 100644
index 0000000..5cdf19a
--- /dev/null
+++ b/src/ui/hud/actions/sprites/space2.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/space2.png-12e63ee2bd6af9170cf5bb4711df6f67.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/actions/sprites/space2.png"
+dest_files=[ "res://.import/space2.png-12e63ee2bd6af9170cf5bb4711df6f67.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/src/ui/hud/actions/sprites/space3.png b/src/ui/hud/actions/sprites/space3.png
new file mode 100644
index 0000000..e98a680
--- /dev/null
+++ b/src/ui/hud/actions/sprites/space3.png
Binary files differ
diff --git a/src/ui/hud/actions/sprites/space3.png.import b/src/ui/hud/actions/sprites/space3.png.import
new file mode 100644
index 0000000..84c0fb8
--- /dev/null
+++ b/src/ui/hud/actions/sprites/space3.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/space3.png-32b629cb04027747b130034cddb5dfaf.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/actions/sprites/space3.png"
+dest_files=[ "res://.import/space3.png-32b629cb04027747b130034cddb5dfaf.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/src/ui/hud/actions/sprites/space4.png b/src/ui/hud/actions/sprites/space4.png
new file mode 100644
index 0000000..a05fc14
--- /dev/null
+++ b/src/ui/hud/actions/sprites/space4.png
Binary files differ
diff --git a/src/ui/hud/actions/sprites/space4.png.import b/src/ui/hud/actions/sprites/space4.png.import
new file mode 100644
index 0000000..70295cb
--- /dev/null
+++ b/src/ui/hud/actions/sprites/space4.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/space4.png-debeda8c5f2dd903a2a8104b78427088.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/actions/sprites/space4.png"
+dest_files=[ "res://.import/space4.png-debeda8c5f2dd903a2a8104b78427088.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/src/ui/hud/actions/sprites/w1.png b/src/ui/hud/actions/sprites/w1.png
new file mode 100644
index 0000000..7a70377
--- /dev/null
+++ b/src/ui/hud/actions/sprites/w1.png
Binary files differ
diff --git a/src/ui/hud/actions/sprites/w1.png.import b/src/ui/hud/actions/sprites/w1.png.import
new file mode 100644
index 0000000..bfd956a
--- /dev/null
+++ b/src/ui/hud/actions/sprites/w1.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/w1.png-481bfa433090e266b8488c7a4721d3fa.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/actions/sprites/w1.png"
+dest_files=[ "res://.import/w1.png-481bfa433090e266b8488c7a4721d3fa.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/src/ui/hud/actions/sprites/w2.png b/src/ui/hud/actions/sprites/w2.png
new file mode 100644
index 0000000..b4ea53e
--- /dev/null
+++ b/src/ui/hud/actions/sprites/w2.png
Binary files differ
diff --git a/src/ui/hud/actions/sprites/w2.png.import b/src/ui/hud/actions/sprites/w2.png.import
new file mode 100644
index 0000000..6408c12
--- /dev/null
+++ b/src/ui/hud/actions/sprites/w2.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/w2.png-f52b20e09adf1411403d6fee98127f44.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/actions/sprites/w2.png"
+dest_files=[ "res://.import/w2.png-f52b20e09adf1411403d6fee98127f44.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/src/ui/hud/actions/sprites/w3.png b/src/ui/hud/actions/sprites/w3.png
new file mode 100644
index 0000000..efbcbec
--- /dev/null
+++ b/src/ui/hud/actions/sprites/w3.png
Binary files differ
diff --git a/src/ui/hud/actions/sprites/w3.png.import b/src/ui/hud/actions/sprites/w3.png.import
new file mode 100644
index 0000000..d2da708
--- /dev/null
+++ b/src/ui/hud/actions/sprites/w3.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/w3.png-12f92137baed1118ede35fedb8113703.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/actions/sprites/w3.png"
+dest_files=[ "res://.import/w3.png-12f92137baed1118ede35fedb8113703.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/src/ui/hud/actions/sprites/w4.png b/src/ui/hud/actions/sprites/w4.png
new file mode 100644
index 0000000..e088d53
--- /dev/null
+++ b/src/ui/hud/actions/sprites/w4.png
Binary files differ
diff --git a/src/ui/hud/actions/sprites/w4.png.import b/src/ui/hud/actions/sprites/w4.png.import
new file mode 100644
index 0000000..fc771f6
--- /dev/null
+++ b/src/ui/hud/actions/sprites/w4.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/w4.png-ee777c638061cb56f29cefb9ab68aee0.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/actions/sprites/w4.png"
+dest_files=[ "res://.import/w4.png-ee777c638061cb56f29cefb9ab68aee0.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/src/ui/hud/progress_bars/scenes/DashProgress.tscn b/src/ui/hud/progress_bars/scenes/DashProgress.tscn
new file mode 100644
index 0000000..7b490cd
--- /dev/null
+++ b/src/ui/hud/progress_bars/scenes/DashProgress.tscn
@@ -0,0 +1,24 @@
+[gd_scene load_steps=6 format=2]
+
+[ext_resource path="res://ui/hud/progress_bars/sprites/dash/dash_progress_progress.png" type="Texture" id=1]
+[ext_resource path="res://ui/hud/progress_bars/sprites/dash/dash_progress_over.png" type="Texture" id=2]
+[ext_resource path="res://ui/hud/progress_bars/sprites/dash/dash_progress_under.png" type="Texture" id=3]
+[ext_resource path="res://ui/hud/progress_bars/scripts/dash_progress.gd" type="Script" id=4]
+[ext_resource path="res://ui/hud/progress_bars/sprites/dash/dash_progress_icon.png" type="Texture" id=5]
+
+[node name="DashProgress" type="HBoxContainer"]
+custom_constants/separation = 2
+script = ExtResource( 4 )
+
+[node name="Icon" type="TextureRect" parent="."]
+margin_right = 8.0
+margin_bottom = 8.0
+texture = ExtResource( 5 )
+
+[node name="Progress" type="TextureProgress" parent="."]
+margin_left = 10.0
+margin_right = 30.0
+margin_bottom = 8.0
+texture_under = ExtResource( 3 )
+texture_over = ExtResource( 2 )
+texture_progress = ExtResource( 1 )
diff --git a/src/ui/hud/progress_bars/scenes/GrowthProgress.tscn b/src/ui/hud/progress_bars/scenes/GrowthProgress.tscn
index a2478f1..624d05e 100644
--- a/src/ui/hud/progress_bars/scenes/GrowthProgress.tscn
+++ b/src/ui/hud/progress_bars/scenes/GrowthProgress.tscn
@@ -1,12 +1,24 @@
-[gd_scene load_steps=5 format=2]
+[gd_scene load_steps=6 format=2]
-[ext_resource path="res://ui/hud/progress_bars/sprites/grow_progress_over.png" type="Texture" id=1]
-[ext_resource path="res://ui/hud/progress_bars/sprites/grow_progress_under.png" type="Texture" id=2]
-[ext_resource path="res://ui/hud/progress_bars/sprites/grow_progress_progress.png" type="Texture" id=3]
+[ext_resource path="res://ui/hud/progress_bars/sprites/grow/grow_progress_over.png" type="Texture" id=1]
+[ext_resource path="res://ui/hud/progress_bars/sprites/grow/grow_progress_under.png" type="Texture" id=2]
+[ext_resource path="res://ui/hud/progress_bars/sprites/grow/grow_progress_progress.png" type="Texture" id=3]
[ext_resource path="res://ui/hud/progress_bars/scripts/growth_progress.gd" type="Script" id=4]
+[ext_resource path="res://ui/hud/progress_bars/sprites/grow/grow_progress_icon.png" type="Texture" id=5]
-[node name="GrowthProgress" type="TextureProgress"]
+[node name="GrowthProgress" type="HBoxContainer"]
+custom_constants/separation = 2
+script = ExtResource( 4 )
+
+[node name="Icon" type="TextureRect" parent="."]
+margin_right = 8.0
+margin_bottom = 8.0
+texture = ExtResource( 5 )
+
+[node name="Progress" type="TextureProgress" parent="."]
+margin_left = 10.0
+margin_right = 30.0
+margin_bottom = 8.0
texture_under = ExtResource( 2 )
texture_over = ExtResource( 1 )
texture_progress = ExtResource( 3 )
-script = ExtResource( 4 )
diff --git a/src/ui/hud/progress_bars/scenes/JumpProgress.tscn b/src/ui/hud/progress_bars/scenes/JumpProgress.tscn
new file mode 100644
index 0000000..57f3732
--- /dev/null
+++ b/src/ui/hud/progress_bars/scenes/JumpProgress.tscn
@@ -0,0 +1,24 @@
+[gd_scene load_steps=6 format=2]
+
+[ext_resource path="res://ui/hud/progress_bars/sprites/jump/jump_progress_progress.png" type="Texture" id=1]
+[ext_resource path="res://ui/hud/progress_bars/sprites/jump/jump_progress_over.png" type="Texture" id=2]
+[ext_resource path="res://ui/hud/progress_bars/sprites/jump/jump_progress_under.png" type="Texture" id=3]
+[ext_resource path="res://ui/hud/progress_bars/sprites/jump/jump_progress_icon.png" type="Texture" id=4]
+[ext_resource path="res://ui/hud/progress_bars/scripts/jump_progress.gd" type="Script" id=5]
+
+[node name="JumpProgress" type="HBoxContainer"]
+custom_constants/separation = 2
+script = ExtResource( 5 )
+
+[node name="Icon" type="TextureRect" parent="."]
+margin_right = 8.0
+margin_bottom = 8.0
+texture = ExtResource( 4 )
+
+[node name="Progress" type="TextureProgress" parent="."]
+margin_left = 10.0
+margin_right = 30.0
+margin_bottom = 8.0
+texture_under = ExtResource( 3 )
+texture_over = ExtResource( 2 )
+texture_progress = ExtResource( 1 )
diff --git a/src/ui/hud/progress_bars/scenes/SlowProgress.tscn b/src/ui/hud/progress_bars/scenes/SlowProgress.tscn
new file mode 100644
index 0000000..5705bb9
--- /dev/null
+++ b/src/ui/hud/progress_bars/scenes/SlowProgress.tscn
@@ -0,0 +1,24 @@
+[gd_scene load_steps=6 format=2]
+
+[ext_resource path="res://ui/hud/progress_bars/sprites/slow/slow_progress_icon.png" type="Texture" id=1]
+[ext_resource path="res://ui/hud/progress_bars/sprites/slow/slow_progress_over.png" type="Texture" id=2]
+[ext_resource path="res://ui/hud/progress_bars/sprites/slow/slow_progress_progress.png" type="Texture" id=3]
+[ext_resource path="res://ui/hud/progress_bars/sprites/slow/slow_progress_under.png" type="Texture" id=4]
+[ext_resource path="res://ui/hud/progress_bars/scripts/slow_progress.gd" type="Script" id=5]
+
+[node name="SlowProgress" type="HBoxContainer"]
+custom_constants/separation = 2
+script = ExtResource( 5 )
+
+[node name="Icon" type="TextureRect" parent="."]
+margin_right = 8.0
+margin_bottom = 8.0
+texture = ExtResource( 1 )
+
+[node name="Progress" type="TextureProgress" parent="."]
+margin_left = 10.0
+margin_right = 30.0
+margin_bottom = 8.0
+texture_under = ExtResource( 4 )
+texture_over = ExtResource( 2 )
+texture_progress = ExtResource( 3 )
diff --git a/src/ui/hud/progress_bars/scripts/dash_progress.gd b/src/ui/hud/progress_bars/scripts/dash_progress.gd
new file mode 100644
index 0000000..32fb91a
--- /dev/null
+++ b/src/ui/hud/progress_bars/scripts/dash_progress.gd
@@ -0,0 +1,12 @@
+extends HBoxContainer
+
+onready var progress: TextureProgress = $Progress
+
+
+func _ready():
+ Event.connect("snake_dash_progress", self, "_on_snake_dash_progress")
+ progress.max_value = Global.POINTS_TO_DASH
+
+
+func _on_snake_dash_progress(_progress: int) -> void:
+ progress.value = _progress
diff --git a/src/ui/hud/progress_bars/scripts/growth_progress.gd b/src/ui/hud/progress_bars/scripts/growth_progress.gd
index a9d455c..4efce10 100644
--- a/src/ui/hud/progress_bars/scripts/growth_progress.gd
+++ b/src/ui/hud/progress_bars/scripts/growth_progress.gd
@@ -1,10 +1,12 @@
-extends TextureProgress
+extends HBoxContainer
+
+onready var progress: TextureProgress = $Progress
func _ready():
Event.connect("snake_growth_progress", self, "_on_snake_growth_progress")
- max_value = Global.POINTS_TO_GROW
+ progress.max_value = Global.POINTS_TO_GROW
-func _on_snake_growth_progress(progress: int) -> void:
- value = progress
+func _on_snake_growth_progress(_progress: int) -> void:
+ progress.value = _progress
diff --git a/src/ui/hud/progress_bars/scripts/jump_progress.gd b/src/ui/hud/progress_bars/scripts/jump_progress.gd
new file mode 100644
index 0000000..367dd93
--- /dev/null
+++ b/src/ui/hud/progress_bars/scripts/jump_progress.gd
@@ -0,0 +1,12 @@
+extends HBoxContainer
+
+onready var progress: TextureProgress = $Progress
+
+
+func _ready():
+ Event.connect("snake_jump_progress", self, "_on_snake_jump_progress")
+ progress.max_value = Global.POINTS_TO_JUMP
+
+
+func _on_snake_jump_progress(_progress: int) -> void:
+ progress.value = _progress
diff --git a/src/ui/hud/progress_bars/scripts/slow_progress.gd b/src/ui/hud/progress_bars/scripts/slow_progress.gd
new file mode 100644
index 0000000..de1bccb
--- /dev/null
+++ b/src/ui/hud/progress_bars/scripts/slow_progress.gd
@@ -0,0 +1,12 @@
+extends HBoxContainer
+
+onready var progress: TextureProgress = $Progress
+
+
+func _ready():
+ Event.connect("snake_slow_progress", self, "_on_snake_slow_progress")
+ progress.max_value = Global.POINTS_TO_SLOW
+
+
+func _on_snake_slow_progress(_progress: int) -> void:
+ progress.value = _progress
diff --git a/src/ui/hud/progress_bars/sprites/dash/dash_progress_icon.png b/src/ui/hud/progress_bars/sprites/dash/dash_progress_icon.png
new file mode 100644
index 0000000..fb106f2
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/dash/dash_progress_icon.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/dash/dash_progress_icon.png.import b/src/ui/hud/progress_bars/sprites/dash/dash_progress_icon.png.import
new file mode 100644
index 0000000..49c33b3
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/dash/dash_progress_icon.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/dash_progress_icon.png-90a184131b40c1c377d5235a0d5ad63b.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/progress_bars/sprites/dash/dash_progress_icon.png"
+dest_files=[ "res://.import/dash_progress_icon.png-90a184131b40c1c377d5235a0d5ad63b.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/src/ui/hud/progress_bars/sprites/dash/dash_progress_over.png b/src/ui/hud/progress_bars/sprites/dash/dash_progress_over.png
new file mode 100644
index 0000000..ee4117a
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/dash/dash_progress_over.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/dash/dash_progress_over.png.import b/src/ui/hud/progress_bars/sprites/dash/dash_progress_over.png.import
new file mode 100644
index 0000000..d11fd99
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/dash/dash_progress_over.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/dash_progress_over.png-34456d47b2a17c8a3373493bc5deb96c.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/progress_bars/sprites/dash/dash_progress_over.png"
+dest_files=[ "res://.import/dash_progress_over.png-34456d47b2a17c8a3373493bc5deb96c.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/src/ui/hud/progress_bars/sprites/dash/dash_progress_progress.png b/src/ui/hud/progress_bars/sprites/dash/dash_progress_progress.png
new file mode 100644
index 0000000..b2a146c
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/dash/dash_progress_progress.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/dash/dash_progress_progress.png.import b/src/ui/hud/progress_bars/sprites/dash/dash_progress_progress.png.import
new file mode 100644
index 0000000..a94714c
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/dash/dash_progress_progress.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/dash_progress_progress.png-7321213d1cc9219434c89355200559e3.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/progress_bars/sprites/dash/dash_progress_progress.png"
+dest_files=[ "res://.import/dash_progress_progress.png-7321213d1cc9219434c89355200559e3.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/src/ui/hud/progress_bars/sprites/dash/dash_progress_under.png b/src/ui/hud/progress_bars/sprites/dash/dash_progress_under.png
new file mode 100644
index 0000000..a4a7cbc
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/dash/dash_progress_under.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/dash/dash_progress_under.png.import b/src/ui/hud/progress_bars/sprites/dash/dash_progress_under.png.import
new file mode 100644
index 0000000..2a3f5f6
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/dash/dash_progress_under.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/dash_progress_under.png-a63b1253ff95e05468f63c462479ab5c.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/progress_bars/sprites/dash/dash_progress_under.png"
+dest_files=[ "res://.import/dash_progress_under.png-a63b1253ff95e05468f63c462479ab5c.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/src/ui/hud/progress_bars/sprites/grow_progress_icon.png b/src/ui/hud/progress_bars/sprites/grow/grow_progress_icon.png
index 0d913c5..0d913c5 100644
--- a/src/ui/hud/progress_bars/sprites/grow_progress_icon.png
+++ b/src/ui/hud/progress_bars/sprites/grow/grow_progress_icon.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/grow/grow_progress_icon.png.import b/src/ui/hud/progress_bars/sprites/grow/grow_progress_icon.png.import
new file mode 100644
index 0000000..70004b8
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/grow/grow_progress_icon.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/grow_progress_icon.png-5e3b8195aca92bf12dd53f723f522448.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/progress_bars/sprites/grow/grow_progress_icon.png"
+dest_files=[ "res://.import/grow_progress_icon.png-5e3b8195aca92bf12dd53f723f522448.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/src/ui/hud/progress_bars/sprites/grow_progress_over.png b/src/ui/hud/progress_bars/sprites/grow/grow_progress_over.png
index ef2d175..ef2d175 100644
--- a/src/ui/hud/progress_bars/sprites/grow_progress_over.png
+++ b/src/ui/hud/progress_bars/sprites/grow/grow_progress_over.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/grow/grow_progress_over.png.import b/src/ui/hud/progress_bars/sprites/grow/grow_progress_over.png.import
new file mode 100644
index 0000000..b7ede21
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/grow/grow_progress_over.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/grow_progress_over.png-f0fd78c39d2a1ca91f6c15c788f1d442.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/progress_bars/sprites/grow/grow_progress_over.png"
+dest_files=[ "res://.import/grow_progress_over.png-f0fd78c39d2a1ca91f6c15c788f1d442.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/src/ui/hud/progress_bars/sprites/grow_progress_progress.png b/src/ui/hud/progress_bars/sprites/grow/grow_progress_progress.png
index 24c1a2a..24c1a2a 100644
--- a/src/ui/hud/progress_bars/sprites/grow_progress_progress.png
+++ b/src/ui/hud/progress_bars/sprites/grow/grow_progress_progress.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/grow/grow_progress_progress.png.import b/src/ui/hud/progress_bars/sprites/grow/grow_progress_progress.png.import
new file mode 100644
index 0000000..050b365
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/grow/grow_progress_progress.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/grow_progress_progress.png-5a6dcac7629c29f09000170a5765c75c.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/progress_bars/sprites/grow/grow_progress_progress.png"
+dest_files=[ "res://.import/grow_progress_progress.png-5a6dcac7629c29f09000170a5765c75c.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/src/ui/hud/progress_bars/sprites/grow_progress_under.png b/src/ui/hud/progress_bars/sprites/grow/grow_progress_under.png
index 4597575..4597575 100644
--- a/src/ui/hud/progress_bars/sprites/grow_progress_under.png
+++ b/src/ui/hud/progress_bars/sprites/grow/grow_progress_under.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/grow/grow_progress_under.png.import b/src/ui/hud/progress_bars/sprites/grow/grow_progress_under.png.import
new file mode 100644
index 0000000..1fcb154
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/grow/grow_progress_under.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/grow_progress_under.png-a8c1b8066bdc005f06ac6142a9a64ca3.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/progress_bars/sprites/grow/grow_progress_under.png"
+dest_files=[ "res://.import/grow_progress_under.png-a8c1b8066bdc005f06ac6142a9a64ca3.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/src/ui/hud/progress_bars/sprites/jump/jump_progress_icon.png b/src/ui/hud/progress_bars/sprites/jump/jump_progress_icon.png
new file mode 100644
index 0000000..cde7d3e
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/jump/jump_progress_icon.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/jump/jump_progress_icon.png.import b/src/ui/hud/progress_bars/sprites/jump/jump_progress_icon.png.import
new file mode 100644
index 0000000..89e6171
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/jump/jump_progress_icon.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/jump_progress_icon.png-52d75e82d988dcd82304de63654a0dfd.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/progress_bars/sprites/jump/jump_progress_icon.png"
+dest_files=[ "res://.import/jump_progress_icon.png-52d75e82d988dcd82304de63654a0dfd.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/src/ui/hud/progress_bars/sprites/jump/jump_progress_over.png b/src/ui/hud/progress_bars/sprites/jump/jump_progress_over.png
new file mode 100644
index 0000000..ef2d175
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/jump/jump_progress_over.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/jump/jump_progress_over.png.import b/src/ui/hud/progress_bars/sprites/jump/jump_progress_over.png.import
new file mode 100644
index 0000000..d7b153e
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/jump/jump_progress_over.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/jump_progress_over.png-243bc4f2f1052bdb6b66fa6cced9dfc9.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/progress_bars/sprites/jump/jump_progress_over.png"
+dest_files=[ "res://.import/jump_progress_over.png-243bc4f2f1052bdb6b66fa6cced9dfc9.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/src/ui/hud/progress_bars/sprites/jump/jump_progress_progress.png b/src/ui/hud/progress_bars/sprites/jump/jump_progress_progress.png
new file mode 100644
index 0000000..24c1a2a
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/jump/jump_progress_progress.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/jump/jump_progress_progress.png.import b/src/ui/hud/progress_bars/sprites/jump/jump_progress_progress.png.import
new file mode 100644
index 0000000..5fdf5ae
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/jump/jump_progress_progress.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/jump_progress_progress.png-b154085334ff213097865b0dd637d35b.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/progress_bars/sprites/jump/jump_progress_progress.png"
+dest_files=[ "res://.import/jump_progress_progress.png-b154085334ff213097865b0dd637d35b.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/src/ui/hud/progress_bars/sprites/jump/jump_progress_under.png b/src/ui/hud/progress_bars/sprites/jump/jump_progress_under.png
new file mode 100644
index 0000000..4597575
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/jump/jump_progress_under.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/jump/jump_progress_under.png.import b/src/ui/hud/progress_bars/sprites/jump/jump_progress_under.png.import
new file mode 100644
index 0000000..ab1a78f
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/jump/jump_progress_under.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/jump_progress_under.png-9aa00c5516f8a145006e856e3f11100b.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/progress_bars/sprites/jump/jump_progress_under.png"
+dest_files=[ "res://.import/jump_progress_under.png-9aa00c5516f8a145006e856e3f11100b.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/src/ui/hud/progress_bars/sprites/slow/slow_progress_icon.png b/src/ui/hud/progress_bars/sprites/slow/slow_progress_icon.png
new file mode 100644
index 0000000..d5dff51
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/slow/slow_progress_icon.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/slow/slow_progress_icon.png.import b/src/ui/hud/progress_bars/sprites/slow/slow_progress_icon.png.import
new file mode 100644
index 0000000..e56c974
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/slow/slow_progress_icon.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/slow_progress_icon.png-85573b2bebf34e50cdd2137bf4387fc2.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/progress_bars/sprites/slow/slow_progress_icon.png"
+dest_files=[ "res://.import/slow_progress_icon.png-85573b2bebf34e50cdd2137bf4387fc2.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/src/ui/hud/progress_bars/sprites/slow/slow_progress_over.png b/src/ui/hud/progress_bars/sprites/slow/slow_progress_over.png
new file mode 100644
index 0000000..ef2d175
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/slow/slow_progress_over.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/slow/slow_progress_over.png.import b/src/ui/hud/progress_bars/sprites/slow/slow_progress_over.png.import
new file mode 100644
index 0000000..0603984
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/slow/slow_progress_over.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/slow_progress_over.png-eb5971c21359c710cfb407c1bafaa57f.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/progress_bars/sprites/slow/slow_progress_over.png"
+dest_files=[ "res://.import/slow_progress_over.png-eb5971c21359c710cfb407c1bafaa57f.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/src/ui/hud/progress_bars/sprites/slow/slow_progress_progress.png b/src/ui/hud/progress_bars/sprites/slow/slow_progress_progress.png
new file mode 100644
index 0000000..c3ebf36
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/slow/slow_progress_progress.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/slow/slow_progress_progress.png.import b/src/ui/hud/progress_bars/sprites/slow/slow_progress_progress.png.import
new file mode 100644
index 0000000..e526759
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/slow/slow_progress_progress.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/slow_progress_progress.png-8df558212e95e7653973c0839472c905.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/progress_bars/sprites/slow/slow_progress_progress.png"
+dest_files=[ "res://.import/slow_progress_progress.png-8df558212e95e7653973c0839472c905.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/src/ui/hud/progress_bars/sprites/slow/slow_progress_under.png b/src/ui/hud/progress_bars/sprites/slow/slow_progress_under.png
new file mode 100644
index 0000000..24c1a2a
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/slow/slow_progress_under.png
Binary files differ
diff --git a/src/ui/hud/progress_bars/sprites/slow/slow_progress_under.png.import b/src/ui/hud/progress_bars/sprites/slow/slow_progress_under.png.import
new file mode 100644
index 0000000..609a150
--- /dev/null
+++ b/src/ui/hud/progress_bars/sprites/slow/slow_progress_under.png.import
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/slow_progress_under.png-7394c5ade1c7abb7e0ffd89436adcae8.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://ui/hud/progress_bars/sprites/slow/slow_progress_under.png"
+dest_files=[ "res://.import/slow_progress_under.png-7394c5ade1c7abb7e0ffd89436adcae8.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/src/ui/main_menu/scenes/MainMenu.tscn b/src/ui/main_menu/scenes/MainMenu.tscn
index 9bce7f0..ac9c666 100644
--- a/src/ui/main_menu/scenes/MainMenu.tscn
+++ b/src/ui/main_menu/scenes/MainMenu.tscn
@@ -1,66 +1,81 @@
-[gd_scene load_steps=5 format=2]
+[gd_scene load_steps=6 format=2]
[ext_resource path="res://ui/main_menu/scenes/MenuOption.tscn" type="PackedScene" id=1]
[ext_resource path="res://fonts/monogram_extended.ttf" type="DynamicFontData" id=2]
[ext_resource path="res://ui/main_menu/scripts/main_menu.gd" type="Script" id=3]
+[ext_resource path="res://themes/Theme.tres" type="Theme" id=4]
[sub_resource type="DynamicFont" id=1]
size = 64
font_data = ExtResource( 2 )
[node name="MainMenu" type="MarginContainer"]
-anchor_right = 1.0
anchor_bottom = 1.0
+margin_left = 4.0
+margin_top = 4.0
+margin_right = 120.0
+margin_bottom = -4.0
+theme = ExtResource( 4 )
script = ExtResource( 3 )
-START_OPTION_NP = NodePath("Center/VBox/Options/VBox/Start")
-SETTINGS_OPTION_NP = NodePath("Center/VBox/Options/VBox/Settings")
-EXIT_OPTION_NP = NodePath("Center/VBox/Options/VBox/Exit")
+START_OPTION_NP = NodePath("Center/Panel/VBox/Options/VBox/Start")
+EXIT_OPTION_NP = NodePath("Center/Panel/VBox/Options/VBox/Exit")
[node name="Center" type="CenterContainer" parent="."]
-margin_right = 320.0
-margin_bottom = 180.0
+margin_right = 122.0
+margin_bottom = 172.0
+
+[node name="Panel" type="PanelContainer" parent="Center"]
+margin_top = 32.0
+margin_right = 122.0
+margin_bottom = 139.0
-[node name="VBox" type="VBoxContainer" parent="Center"]
-margin_left = 100.0
-margin_top = 28.0
-margin_right = 220.0
-margin_bottom = 152.0
-custom_constants/separation = 16
+[node name="VBox" type="VBoxContainer" parent="Center/Panel"]
+margin_left = 1.0
+margin_top = 1.0
+margin_right = 121.0
+margin_bottom = 106.0
-[node name="Title" type="CenterContainer" parent="Center/VBox"]
+[node name="Title" type="CenterContainer" parent="Center/Panel/VBox"]
margin_right = 120.0
-margin_bottom = 52.0
+margin_bottom = 65.0
-[node name="Label" type="Label" parent="Center/VBox/Title"]
+[node name="HBox" type="VBoxContainer" parent="Center/Panel/VBox/Title"]
+margin_right = 120.0
+margin_bottom = 65.0
+custom_constants/separation = 0
+
+[node name="Label" type="Label" parent="Center/Panel/VBox/Title/HBox"]
margin_right = 120.0
margin_bottom = 52.0
custom_colors/font_color_shadow = Color( 0, 0, 0, 1 )
custom_fonts/font = SubResource( 1 )
text = "Snake"
-[node name="Options" type="CenterContainer" parent="Center/VBox"]
-margin_top = 68.0
+[node name="SubLabel" type="Label" parent="Center/Panel/VBox/Title/HBox"]
+margin_top = 52.0
margin_right = 120.0
-margin_bottom = 124.0
+margin_bottom = 65.0
+custom_colors/font_color_shadow = Color( 0, 0, 0, 1 )
+text = "-tronic"
+align = 2
-[node name="VBox" type="VBoxContainer" parent="Center/VBox/Options"]
+[node name="Options" type="CenterContainer" parent="Center/Panel/VBox"]
+margin_top = 69.0
+margin_right = 120.0
+margin_bottom = 105.0
+
+[node name="VBox" type="VBoxContainer" parent="Center/Panel/VBox/Options"]
margin_left = 20.0
margin_right = 100.0
-margin_bottom = 56.0
+margin_bottom = 36.0
-[node name="Start" parent="Center/VBox/Options/VBox" instance=ExtResource( 1 )]
+[node name="Start" parent="Center/Panel/VBox/Options/VBox" instance=ExtResource( 1 )]
margin_right = 80.0
label_text = "Start"
selected = true
-[node name="Settings" parent="Center/VBox/Options/VBox" instance=ExtResource( 1 )]
+[node name="Exit" parent="Center/Panel/VBox/Options/VBox" instance=ExtResource( 1 )]
margin_top = 20.0
margin_right = 80.0
margin_bottom = 36.0
-label_text = "Settings"
-
-[node name="Exit" parent="Center/VBox/Options/VBox" instance=ExtResource( 1 )]
-margin_top = 40.0
-margin_right = 80.0
-margin_bottom = 56.0
label_text = "Exit"
diff --git a/src/ui/main_menu/scripts/main_menu.gd b/src/ui/main_menu/scripts/main_menu.gd
index 7077b68..2d955dc 100644
--- a/src/ui/main_menu/scripts/main_menu.gd
+++ b/src/ui/main_menu/scripts/main_menu.gd
@@ -1,11 +1,9 @@
extends MarginContainer
export(NodePath) var START_OPTION_NP: NodePath
-export(NodePath) var SETTINGS_OPTION_NP: NodePath
export(NodePath) var EXIT_OPTION_NP: NodePath
onready var start_option: MenuOption = get_node(START_OPTION_NP)
-onready var settings_option: MenuOption = get_node(SETTINGS_OPTION_NP)
onready var exit_option: MenuOption = get_node(EXIT_OPTION_NP)
onready var main: Node2D = get_parent().get_parent()
@@ -13,7 +11,6 @@ onready var main: Node2D = get_parent().get_parent()
enum Option {
START,
- SETTINGS,
EXIT
}
@@ -24,7 +21,6 @@ enum {
onready var options: Dictionary = {
Option.START: start_option,
- Option.SETTINGS: settings_option,
Option.EXIT: exit_option
}
@@ -34,7 +30,6 @@ var current_selection: int = Option.START
func _ready():
Event.connect("game_start", self, "_on_game_start")
start_option.type = Option.START
- settings_option.type = Option.SETTINGS
exit_option.type = Option.EXIT
@@ -49,8 +44,6 @@ func _input(event: InputEvent) -> void:
match current_selection:
Option.START:
Event.emit_signal("game_start")
- Option.SETTINGS:
- print("Option TEST.")
Option.EXIT:
get_tree().quit()
diff --git a/src/ui/stats_display/scenes/StatsDisplay.tscn b/src/ui/stats_display/scenes/StatsDisplay.tscn
index 9b86a55..998cdd6 100644
--- a/src/ui/stats_display/scenes/StatsDisplay.tscn
+++ b/src/ui/stats_display/scenes/StatsDisplay.tscn
@@ -17,36 +17,55 @@ margin_right = 320.0
margin_bottom = 180.0
[node name="HBox" type="HBoxContainer" parent="Center"]
-margin_left = 126.0
-margin_top = 82.0
-margin_right = 194.0
-margin_bottom = 98.0
+margin_left = 96.0
+margin_top = 74.0
+margin_right = 224.0
+margin_bottom = 105.0
[node name="ProgressionPanel" type="PanelContainer" parent="Center/HBox"]
-margin_right = 68.0
-margin_bottom = 16.0
+margin_right = 62.0
+margin_bottom = 31.0
[node name="VBox" type="VBoxContainer" parent="Center/HBox/ProgressionPanel"]
margin_left = 1.0
margin_top = 1.0
-margin_right = 67.0
-margin_bottom = 15.0
+margin_right = 61.0
+margin_bottom = 30.0
custom_constants/separation = 0
[node name="Label" type="Label" parent="Center/HBox/ProgressionPanel/VBox"]
-margin_right = 66.0
+margin_right = 60.0
margin_bottom = 13.0
custom_colors/font_color_shadow = Color( 0, 0, 0, 1 )
custom_fonts/font = ExtResource( 1 )
-text = "Progression"
+text = "Highscores"
[node name="HSeparator" type="HSeparator" parent="Center/HBox/ProgressionPanel/VBox"]
margin_top = 13.0
-margin_right = 66.0
+margin_right = 60.0
margin_bottom = 14.0
[node name="VBox" type="VBoxContainer" parent="Center/HBox/ProgressionPanel/VBox"]
margin_top = 14.0
-margin_right = 66.0
+margin_right = 60.0
margin_bottom = 14.0
custom_constants/separation = 0
+
+[node name="Center" type="CenterContainer" parent="Center/HBox"]
+margin_left = 66.0
+margin_right = 128.0
+margin_bottom = 31.0
+
+[node name="Restart" type="PanelContainer" parent="Center/HBox/Center"]
+margin_right = 62.0
+margin_bottom = 31.0
+
+[node name="Label" type="Label" parent="Center/HBox/Center/Restart"]
+margin_left = 1.0
+margin_top = 1.0
+margin_right = 61.0
+margin_bottom = 30.0
+custom_colors/font_color_shadow = Color( 0, 0, 0, 1 )
+text = "Press \"R\"
+to restart"
+align = 1
diff --git a/src/ui/stats_display/scripts/progression_label.gd b/src/ui/stats_display/scripts/progression_label.gd
index d4a0da0..57db363 100644
--- a/src/ui/stats_display/scripts/progression_label.gd
+++ b/src/ui/stats_display/scripts/progression_label.gd
@@ -3,6 +3,9 @@ extends MarginContainer
enum Type {
BODY_SEGMENT,
+ DASH_SEGMENT,
+ SLOW_SEGMENT,
+ JUMP_SEGMENT,
EMPTY
}
@@ -17,7 +20,10 @@ onready var texture_rect: TextureRect = $HBox/Center/VBox/TextureRect
var textures: Dictionary = {
- Type.BODY_SEGMENT: preload("res://ui/hud/progress_bars/sprites/grow_progress_icon.png"),
+ Type.BODY_SEGMENT: preload("res://ui/hud/progress_bars/sprites/grow/grow_progress_icon.png"),
+ Type.DASH_SEGMENT: preload("res://ui/hud/progress_bars/sprites/dash/dash_progress_icon.png"),
+ Type.SLOW_SEGMENT: preload("res://ui/hud/progress_bars/sprites/slow/slow_progress_icon.png"),
+ Type.JUMP_SEGMENT: preload("res://ui/hud/progress_bars/sprites/jump/jump_progress_icon.png"),
Type.EMPTY: preload("res://ui/stats_display/sprites/sep_8x8.png")
}
diff --git a/src/ui/stats_display/scripts/stats_display.gd b/src/ui/stats_display/scripts/stats_display.gd
index f1f17e8..e9422b1 100644
--- a/src/ui/stats_display/scripts/stats_display.gd
+++ b/src/ui/stats_display/scripts/stats_display.gd
@@ -35,8 +35,14 @@ func _on_display_stats(old_stats: Stats, new_stats: Stats, mut_stats: Array) ->
func _get_type(stat_name: String) -> int:
var type: int
match stat_name:
- "segments":
+ "points", "segments":
type = ProgressionLabel.Type.BODY_SEGMENT
+ "dash_points", "dash_segments":
+ type = ProgressionLabel.Type.DASH_SEGMENT
+ "slow_points", "slow_segments":
+ type = ProgressionLabel.Type.SLOW_SEGMENT
+ "jump_points", "jump_segments":
+ type = ProgressionLabel.Type.JUMP_SEGMENT
_:
type = ProgressionLabel.Type.EMPTY
return type
@@ -47,6 +53,12 @@ func _get_prefix(stat_name: String) -> String:
match stat_name:
"points":
prefix = "points"
+ "dash_points":
+ prefix = "points"
+ "slow_points":
+ prefix = "points"
+ "jump_points":
+ prefix = "points"
_:
prefix = ""
return prefix
@@ -56,6 +68,12 @@ func _should_print(stat_name: String, stats: Dictionary) -> bool:
var to_print: Array = [
"points",
"segments",
+ "dash_points",
+ "dash_segments",
+ "slow_points",
+ "slow_segments",
+ "jump_points",
+ "jump_segments"
]
var to_print_check: Array = [
"dash_percentage",