From 366d1b28568dd3614a805e4083cf8ab6cac55319 Mon Sep 17 00:00:00 2001 From: h0lybyte <5599058+h0lybyte@users.noreply.github.com> Date: Fri, 21 Feb 2025 12:43:29 -0500 Subject: [PATCH 1/2] feat(brackeys13): adding the exhaust and heat management, but for some reason the heat management is not working. --- .../frostwindz/battlecruiser_exhaust.png | Bin 0 -> 13701 bytes .../battlecruiser_exhaust.png.import | 34 +++ apps/gamejam/brackeys/13/scenes/game.tscn | 3 + .../gamejam/brackeys/13/scenes/spaceship.tscn | 227 +++++++++++++++++- apps/gamejam/brackeys/13/scripts/global.gd | 4 +- apps/gamejam/brackeys/13/scripts/hud.gd | 8 + apps/gamejam/brackeys/13/scripts/spaceship.gd | 15 +- 7 files changed, 287 insertions(+), 4 deletions(-) create mode 100644 apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_exhaust.png create mode 100644 apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_exhaust.png.import diff --git a/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_exhaust.png b/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_exhaust.png new file mode 100644 index 0000000000000000000000000000000000000000..e123b8010c69e2f12f3ff46ed6189938107e0b30 GIT binary patch literal 13701 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 literal 0 HcmV?d00001 diff --git a/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_exhaust.png.import b/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_exhaust.png.import new file mode 100644 index 000000000..0e8f9ade9 --- /dev/null +++ b/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_exhaust.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://buvmwoh578i7v" +path="res://.godot/imported/battlecruiser_exhaust.png-912cadbd57de55ee3ed43f6cbbf4e83c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/frostwindz/battlecruiser_exhaust.png" +dest_files=["res://.godot/imported/battlecruiser_exhaust.png-912cadbd57de55ee3ed43f6cbbf4e83c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/apps/gamejam/brackeys/13/scenes/game.tscn b/apps/gamejam/brackeys/13/scenes/game.tscn index 990865be6..64ddb1e85 100644 --- a/apps/gamejam/brackeys/13/scenes/game.tscn +++ b/apps/gamejam/brackeys/13/scenes/game.tscn @@ -71,6 +71,9 @@ layout_mode = 2 [node name="Label" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu/Nav"] layout_mode = 2 +[node name="StarshipHeat" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu/Nav"] +layout_mode = 2 + [node name="HSplitContainer" type="HSplitContainer" parent="CanvasLayer/UI/HUD/Panel/Menu"] layout_mode = 2 split_offset = 10 diff --git a/apps/gamejam/brackeys/13/scenes/spaceship.tscn b/apps/gamejam/brackeys/13/scenes/spaceship.tscn index 21d83ff97..3a3ddbb0d 100644 --- a/apps/gamejam/brackeys/13/scenes/spaceship.tscn +++ b/apps/gamejam/brackeys/13/scenes/spaceship.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=36 format=3 uid="uid://1s5v0llrjq3"] +[gd_scene load_steps=67 format=3 uid="uid://1s5v0llrjq3"] [ext_resource type="Script" path="res://scripts/spaceship.gd" id="1_uejed"] [ext_resource type="Texture2D" uid="uid://b5a5g0gqvormg" path="res://assets/frostwindz/battlecruiser.png" id="2_kvtre"] [ext_resource type="Texture2D" uid="uid://cj16mbdine6mk" path="res://assets/frostwindz/battlecruiser_engine.png" id="3_mwphh"] +[ext_resource type="Texture2D" uid="uid://buvmwoh578i7v" path="res://assets/frostwindz/battlecruiser_exhaust.png" id="4_e0b8n"] [ext_resource type="Texture2D" uid="uid://84n6013yietv" path="res://assets/frostwindz/battlecruiser_shield.png" id="4_yxx3w"] [sub_resource type="CircleShape2D" id="CircleShape2D_s734v"] @@ -100,6 +101,126 @@ animations = [{ "speed": 5.0 }] +[sub_resource type="AtlasTexture" id="AtlasTexture_f32dw"] +atlas = ExtResource("4_e0b8n") +region = Rect2(0, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_drtwp"] +atlas = ExtResource("4_e0b8n") +region = Rect2(128, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_11n8e"] +atlas = ExtResource("4_e0b8n") +region = Rect2(256, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_33tmt"] +atlas = ExtResource("4_e0b8n") +region = Rect2(384, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3c10b"] +atlas = ExtResource("4_e0b8n") +region = Rect2(512, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_03oc6"] +atlas = ExtResource("4_e0b8n") +region = Rect2(640, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qycyb"] +atlas = ExtResource("4_e0b8n") +region = Rect2(768, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2j20y"] +atlas = ExtResource("4_e0b8n") +region = Rect2(896, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6er2f"] +atlas = ExtResource("4_e0b8n") +region = Rect2(1024, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lrbnf"] +atlas = ExtResource("4_e0b8n") +region = Rect2(1152, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mk2ku"] +atlas = ExtResource("4_e0b8n") +region = Rect2(1280, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8clph"] +atlas = ExtResource("4_e0b8n") +region = Rect2(1408, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jguhh"] +atlas = ExtResource("4_e0b8n") +region = Rect2(1536, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2eblt"] +atlas = ExtResource("4_e0b8n") +region = Rect2(1664, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5ljpj"] +atlas = ExtResource("4_e0b8n") +region = Rect2(1792, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_sinc8"] +atlas = ExtResource("4_e0b8n") +region = Rect2(1920, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_in3rs"] +atlas = ExtResource("4_e0b8n") +region = Rect2(2048, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5warc"] +atlas = ExtResource("4_e0b8n") +region = Rect2(2176, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_d3nke"] +atlas = ExtResource("4_e0b8n") +region = Rect2(2304, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_iga1v"] +atlas = ExtResource("4_e0b8n") +region = Rect2(2432, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ax0db"] +atlas = ExtResource("4_e0b8n") +region = Rect2(2560, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_owh65"] +atlas = ExtResource("4_e0b8n") +region = Rect2(2688, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8njy1"] +atlas = ExtResource("4_e0b8n") +region = Rect2(2816, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_klpgg"] +atlas = ExtResource("4_e0b8n") +region = Rect2(2944, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_iq0e6"] +atlas = ExtResource("4_e0b8n") +region = Rect2(3072, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8mpjt"] +atlas = ExtResource("4_e0b8n") +region = Rect2(3200, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4wuqy"] +atlas = ExtResource("4_e0b8n") +region = Rect2(3328, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_u5pjl"] +atlas = ExtResource("4_e0b8n") +region = Rect2(3456, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lvinn"] +atlas = ExtResource("4_e0b8n") +region = Rect2(3584, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_i6iig"] +atlas = ExtResource("4_e0b8n") +region = Rect2(3712, 0, 128, 128) + [sub_resource type="AtlasTexture" id="AtlasTexture_srl8d"] atlas = ExtResource("4_yxx3w") region = Rect2(0, 0, 128, 128) @@ -166,6 +287,106 @@ region = Rect2(1920, 0, 128, 128) [sub_resource type="SpriteFrames" id="SpriteFrames_wdipm"] animations = [{ +"frames": [], +"loop": true, +"name": &"default", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_f32dw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_drtwp") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_11n8e") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_33tmt") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3c10b") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_03oc6") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qycyb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2j20y") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6er2f") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_lrbnf") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_mk2ku") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_8clph") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_jguhh") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2eblt") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_5ljpj") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_sinc8") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_in3rs") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_5warc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_d3nke") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_iga1v") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ax0db") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_owh65") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_8njy1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_klpgg") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_iq0e6") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_8mpjt") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4wuqy") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_u5pjl") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_lvinn") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_i6iig") +}], +"loop": false, +"name": &"exhaust", +"speed": 5.0 +}, { "frames": [{ "duration": 1.0, "texture": SubResource("AtlasTexture_srl8d") @@ -247,7 +468,9 @@ animation = &"engine" position = Vector2(-8.34465e-07, 1.75) scale = Vector2(0.84375, 0.832031) sprite_frames = SubResource("SpriteFrames_wdipm") -animation = &"shield" +animation = &"exhaust" +frame = 29 +frame_progress = 1.0 [node name="Camera2D" type="Camera2D" parent="."] position_smoothing_enabled = true diff --git a/apps/gamejam/brackeys/13/scripts/global.gd b/apps/gamejam/brackeys/13/scripts/global.gd index 411488753..06f473485 100644 --- a/apps/gamejam/brackeys/13/scripts/global.gd +++ b/apps/gamejam/brackeys/13/scripts/global.gd @@ -49,7 +49,8 @@ var starship_data := { "name": "Explorer-X", "emergency_rockets_used": false, "shield_active": false, - "coordinates": Vector2.ZERO + "coordinates": Vector2.ZERO, + "heat": 0.0 } func earn_random_resource(resource_name: String, min_value: int = 3, max_value: int = 15): @@ -115,6 +116,7 @@ func get_starship_data(data_name: String): func set_starship_data(data_name: String, new_value): starship_data[data_name] = new_value + print("Set", data_name, "to", new_value, "- Current stored value:", starship_data[data_name]) emit_signal("starship_data_changed", data_name, new_value) func get_environment_data(data_name: String): diff --git a/apps/gamejam/brackeys/13/scripts/hud.gd b/apps/gamejam/brackeys/13/scripts/hud.gd index 1995e8eab..66ee0a193 100644 --- a/apps/gamejam/brackeys/13/scripts/hud.gd +++ b/apps/gamejam/brackeys/13/scripts/hud.gd @@ -2,6 +2,7 @@ extends Control @onready var coordinates_label = $Panel/Menu/Nav/Label @onready var name_label = $Panel/Menu/Nav/StarshipName +@onready var heat_label = $Panel/Menu/Nav/StarshipHeat # Resources @@ -41,6 +42,11 @@ func _ready(): Global.connect("starship_data_changed", Callable(self, "_update_starship_data")) update_coordinates(Global.get_starship_coordinates()) + +func update_heat(heat: int): + if heat_label: + heat_label.text = "%d C" % [heat] + func update_coordinates(coords: Vector2): if coordinates_label: coordinates_label.text = "Coords X: %d, Y: %d" % [coords.x, coords.y] @@ -50,6 +56,8 @@ func update_coordinates(coords: Vector2): func _update_starship_data(data_name: String, value): if data_name == "coordinates": update_coordinates(value) + if data_name == "heat": + update_heat(value) # func _update_starship_resources(): # for resource in Global.resources_list: diff --git a/apps/gamejam/brackeys/13/scripts/spaceship.gd b/apps/gamejam/brackeys/13/scripts/spaceship.gd index acf8f8b8e..cbe1fa59f 100644 --- a/apps/gamejam/brackeys/13/scripts/spaceship.gd +++ b/apps/gamejam/brackeys/13/scripts/spaceship.gd @@ -14,16 +14,26 @@ func _ready(): position = get_viewport_rect().size / 2 func _process(delta): - call_deferred("defer_set_starship_coordinates") if Input.is_action_pressed("shoot"): shield.visible = false shoot_laser() + call_deferred("defer_set_starship_coordinates") + func _physics_process(delta): var acceleration = Global.get_starship_stat("acceleration") var max_speed = Global.get_starship_stat("max_speed") var rotation_speed = Global.get_starship_stat("rotation_speed") var input_vector := Vector2(0, Input.get_axis("thrust", "reverse")) + var heat = int(Global.get_starship_data("heat") or 0) + if input_vector.y != 0: + Global.set_starship_data("heat", heat + 1) + print("Heat increased:", heat + 1) + + if heat >= 100: + Global.emit_signal("notification_received", "heat_error", "Ship is Overheating!", "error") + input_vector = Vector2.ZERO + velocity += input_vector.rotated(rotation) * acceleration velocity = velocity.limit_length(max_speed) @@ -69,6 +79,9 @@ func shoot_laser(): emit_signal("laser_shot", scope.global_position, rotation) +func exhaust(): + shield.play("exhaust") + func activate_shield(): Global.emit_signal("notification_received", "shield_active", "Shield was deployed", "warning") shield.visible = true From a0a82eda8bae9637fefce64de50a390871bafce8 Mon Sep 17 00:00:00 2001 From: h0lybyte <5599058+h0lybyte@users.noreply.github.com> Date: Fri, 21 Feb 2025 13:28:40 -0500 Subject: [PATCH 2/2] fix(brackeys13): adjusting the exhaust values. --- .../gamejam/brackeys/13/scenes/spaceship.tscn | 221 +++++++++++++++++- apps/gamejam/brackeys/13/scripts/global.gd | 10 +- .../brackeys/13/scripts/projectiles.gd | 2 + apps/gamejam/brackeys/13/scripts/spaceship.gd | 35 ++- 4 files changed, 258 insertions(+), 10 deletions(-) diff --git a/apps/gamejam/brackeys/13/scenes/spaceship.tscn b/apps/gamejam/brackeys/13/scenes/spaceship.tscn index 3a3ddbb0d..17157b2ab 100644 --- a/apps/gamejam/brackeys/13/scenes/spaceship.tscn +++ b/apps/gamejam/brackeys/13/scenes/spaceship.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=67 format=3 uid="uid://1s5v0llrjq3"] +[gd_scene load_steps=97 format=3 uid="uid://1s5v0llrjq3"] [ext_resource type="Script" path="res://scripts/spaceship.gd" id="1_uejed"] [ext_resource type="Texture2D" uid="uid://b5a5g0gqvormg" path="res://assets/frostwindz/battlecruiser.png" id="2_kvtre"] @@ -285,6 +285,126 @@ region = Rect2(1792, 0, 128, 128) atlas = ExtResource("4_yxx3w") region = Rect2(1920, 0, 128, 128) +[sub_resource type="AtlasTexture" id="AtlasTexture_cviwk"] +atlas = ExtResource("4_e0b8n") +region = Rect2(640, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5mw6y"] +atlas = ExtResource("4_e0b8n") +region = Rect2(512, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6djsu"] +atlas = ExtResource("4_e0b8n") +region = Rect2(0, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_oqk2u"] +atlas = ExtResource("4_e0b8n") +region = Rect2(128, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gfm7b"] +atlas = ExtResource("4_e0b8n") +region = Rect2(256, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vrkc0"] +atlas = ExtResource("4_e0b8n") +region = Rect2(384, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_oa07c"] +atlas = ExtResource("4_e0b8n") +region = Rect2(768, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ssyf7"] +atlas = ExtResource("4_e0b8n") +region = Rect2(896, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_03kwu"] +atlas = ExtResource("4_e0b8n") +region = Rect2(1024, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_23q5p"] +atlas = ExtResource("4_e0b8n") +region = Rect2(1152, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_c87ie"] +atlas = ExtResource("4_e0b8n") +region = Rect2(1280, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_e5gjs"] +atlas = ExtResource("4_e0b8n") +region = Rect2(1408, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ivnxd"] +atlas = ExtResource("4_e0b8n") +region = Rect2(1536, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0ippd"] +atlas = ExtResource("4_e0b8n") +region = Rect2(1664, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_w1fox"] +atlas = ExtResource("4_e0b8n") +region = Rect2(1792, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fblp2"] +atlas = ExtResource("4_e0b8n") +region = Rect2(1920, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qmrr8"] +atlas = ExtResource("4_e0b8n") +region = Rect2(2048, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nxfyt"] +atlas = ExtResource("4_e0b8n") +region = Rect2(2176, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1k1xr"] +atlas = ExtResource("4_e0b8n") +region = Rect2(2304, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hqla1"] +atlas = ExtResource("4_e0b8n") +region = Rect2(2432, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xk5sp"] +atlas = ExtResource("4_e0b8n") +region = Rect2(2560, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0s88r"] +atlas = ExtResource("4_e0b8n") +region = Rect2(2688, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_y464m"] +atlas = ExtResource("4_e0b8n") +region = Rect2(2816, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1umyp"] +atlas = ExtResource("4_e0b8n") +region = Rect2(2944, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xntc1"] +atlas = ExtResource("4_e0b8n") +region = Rect2(3072, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4b4sa"] +atlas = ExtResource("4_e0b8n") +region = Rect2(3200, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0ffhj"] +atlas = ExtResource("4_e0b8n") +region = Rect2(3328, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ywsdr"] +atlas = ExtResource("4_e0b8n") +region = Rect2(3456, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6tfdc"] +atlas = ExtResource("4_e0b8n") +region = Rect2(3584, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_cnq7o"] +atlas = ExtResource("4_e0b8n") +region = Rect2(3712, 0, 128, 128) + [sub_resource type="SpriteFrames" id="SpriteFrames_wdipm"] animations = [{ "frames": [], @@ -439,6 +559,101 @@ animations = [{ "loop": true, "name": &"shield", "speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_cviwk") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_5mw6y") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6djsu") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_oqk2u") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gfm7b") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_vrkc0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_oa07c") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ssyf7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_03kwu") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_23q5p") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_c87ie") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_e5gjs") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ivnxd") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0ippd") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_w1fox") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fblp2") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qmrr8") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nxfyt") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1k1xr") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hqla1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xk5sp") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0s88r") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_y464m") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1umyp") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xntc1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4b4sa") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0ffhj") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ywsdr") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6tfdc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_cnq7o") +}], +"loop": false, +"name": &"short_exhaust", +"speed": 15.0 }] [node name="Spaceship" type="CharacterBody2D"] @@ -468,9 +683,7 @@ animation = &"engine" position = Vector2(-8.34465e-07, 1.75) scale = Vector2(0.84375, 0.832031) sprite_frames = SubResource("SpriteFrames_wdipm") -animation = &"exhaust" -frame = 29 -frame_progress = 1.0 +animation = &"short_exhaust" [node name="Camera2D" type="Camera2D" parent="."] position_smoothing_enabled = true diff --git a/apps/gamejam/brackeys/13/scripts/global.gd b/apps/gamejam/brackeys/13/scripts/global.gd index 06f473485..f6b09d816 100644 --- a/apps/gamejam/brackeys/13/scripts/global.gd +++ b/apps/gamejam/brackeys/13/scripts/global.gd @@ -112,13 +112,15 @@ func set_base_starship_stat(stat_name: String, new_value: float): emit_signal("starship_stat_changed", stat_name, get_starship_stat(stat_name)) func get_starship_data(data_name: String): - return starship_data.get(data_name, null) - + if not starship_data.has(data_name): + return null + return starship_data[data_name] + func set_starship_data(data_name: String, new_value): + print("set_starship_data called from:", get_stack()[1].source, "-> Setting", data_name, "to", new_value) starship_data[data_name] = new_value - print("Set", data_name, "to", new_value, "- Current stored value:", starship_data[data_name]) emit_signal("starship_data_changed", data_name, new_value) - + func get_environment_data(data_name: String): return environment_data.get(data_name, null) diff --git a/apps/gamejam/brackeys/13/scripts/projectiles.gd b/apps/gamejam/brackeys/13/scripts/projectiles.gd index bc1b31a52..7e45cde89 100644 --- a/apps/gamejam/brackeys/13/scripts/projectiles.gd +++ b/apps/gamejam/brackeys/13/scripts/projectiles.gd @@ -21,6 +21,8 @@ func shoot_laser(global_position: Vector2, rotation: float): active_lasers.append(laser) else: Global.emit_signal("notification_received","laser_low", "Laser Overheating", "error") + Global.set_starship_data("heat", (Global.get_starship_data("heat") as int) + 1) + #print("Out of laser energy shots") func _on_laser_exited(laser): diff --git a/apps/gamejam/brackeys/13/scripts/spaceship.gd b/apps/gamejam/brackeys/13/scripts/spaceship.gd index cbe1fa59f..9d8f779aa 100644 --- a/apps/gamejam/brackeys/13/scripts/spaceship.gd +++ b/apps/gamejam/brackeys/13/scripts/spaceship.gd @@ -7,11 +7,18 @@ signal laser_shot(laser) @onready var engine = $Engine @onready var shield = $Shield +# Heat +var last_heat_increase_time = 0.0 +var heat_increase_interval = 30.0 + var laser_scene = preload("res://scenes/laser.tscn") func _ready(): position = get_viewport_rect().size / 2 + shield.animation_finished.connect(_engine_cleanup) + engine.animation_finished.connect(_engine_buildup) + func _process(delta): if Input.is_action_pressed("shoot"): @@ -25,14 +32,21 @@ func _physics_process(delta): var max_speed = Global.get_starship_stat("max_speed") var rotation_speed = Global.get_starship_stat("rotation_speed") var input_vector := Vector2(0, Input.get_axis("thrust", "reverse")) - var heat = int(Global.get_starship_data("heat") or 0) - if input_vector.y != 0: + var heat = Global.get_starship_data("heat") as int + + if heat == null: + heat = 0 + + if input_vector.y != 0 and Time.get_ticks_msec() / 1000.0 - last_heat_increase_time >= heat_increase_interval: + last_heat_increase_time = Time.get_ticks_msec() / 1000.0 Global.set_starship_data("heat", heat + 1) print("Heat increased:", heat + 1) if heat >= 100: Global.emit_signal("notification_received", "heat_error", "Ship is Overheating!", "error") input_vector = Vector2.ZERO + exhaust() + velocity += input_vector.rotated(rotation) * acceleration velocity = velocity.limit_length(max_speed) @@ -53,11 +67,13 @@ func _physics_process(delta): if Input.is_action_pressed("drift_right"): #print("E Pressed - Thrust Right Detected") global_position = global_position.lerp(global_position + drift_direction * drift_force, delta * 5) + short_exhaust() if Input.is_action_pressed("drift_left"): #print("Q Pressed - Thrust Left Detected") global_position = global_position.lerp(global_position - drift_direction * drift_force, delta * 5) + short_exhaust() if input_vector.y == 0: velocity = velocity.move_toward(Vector2.ZERO, 3) @@ -78,12 +94,27 @@ func _physics_process(delta): func shoot_laser(): emit_signal("laser_shot", scope.global_position, rotation) +func _engine_cleanup(): + if shield.animation == "exhaust": + Global.emit_signal("notification_received", "engine_cleanup", "Engine bay is now cold.", "success") + Global.set_starship_data("heat", 1) + if shield.animation == "short_exhaust": + Global.emit_signal("notification_received", "engine_short", "Short Exhaust Engaged", "success") + Global.set_starship_data("heat", ((Global.get_starship_data("heat") as int) / 2) as int) + +func _engine_buildup(): + if engine.animation == "engine": + Global.set_starship_data("heat", (Global.get_starship_data("heat") as int) + 1) func exhaust(): shield.play("exhaust") +func short_exhaust(): + shield.play("short_exhaust") + func activate_shield(): Global.emit_signal("notification_received", "shield_active", "Shield was deployed", "warning") + Global.set_starship_data("heat", (Global.get_starship_data("heat") as int) + 1) shield.visible = true shield.play("shield")