From 9a862ae9b565ad5c38ede085a32dd577bfdf1d75 Mon Sep 17 00:00:00 2001 From: h0lybyte <5599058+h0lybyte@users.noreply.github.com> Date: Thu, 20 Feb 2025 18:45:32 -0500 Subject: [PATCH 01/15] docs(brackeys): updating the Entity notes. --- .../src/content/docs/project/brackeys.mdx | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/apps/kbve/kbve.com/src/content/docs/project/brackeys.mdx b/apps/kbve/kbve.com/src/content/docs/project/brackeys.mdx index 367823408..4381cdf4c 100644 --- a/apps/kbve/kbve.com/src/content/docs/project/brackeys.mdx +++ b/apps/kbve/kbve.com/src/content/docs/project/brackeys.mdx @@ -236,6 +236,37 @@ Current List of Resources: +#### Entity + +``` +Asteroid +Meteor +Comet + +``` + + + +1. Asteroid + - Large entity that spawns meteors upon destruction. + - Drops stone resources. + - Poolable Entity, can be expanded from the spaceport upgrade. + +2. Meteor + - Medium entity that gets created after an asteroid is hit by laser. + - Drops metal resources. + - Moves slowly but despawns after leaving the scene. + - Poolable Entity, increase from 1-3 drop to 5+ as an upgrade from the spaceport. + +3. Comet + - Small entity that has a chance to spawn after a meteor is hit by a laser. + - Rare drops like gold and gems but always drops metal. + - Moves quickly and despawns after leaving the scene. + - Poolable Entity, but limited to only max of 5 that drop on the screen, % of drop increases via upgrades from the spaceport. + + + + #### Resource Examples ``` @@ -272,6 +303,14 @@ func _on_resource_receipt(resource_name, amount, new_value, invoice): ``` +#### Drop Rate + +The default drop rate of resources like stone will be 3 to 15, then we can use the space port to transfer the stone into metal. +Furthermore, we could add special asteroids that spawn into the game with bonus resources like gold, gems and metals. + +When an asteroid is hit initially, it should break into smaller ones that will include the chance to spawn a rare comet. + + ### Weapons The first weapon that we will introduce is the laser for the spaceship, later on we will include a couple more guns, maybe a machine gun type weapon. From 68f649e2427be64ebc629d1342ce07305753f5d1 Mon Sep 17 00:00:00 2001 From: h0lybyte <5599058+h0lybyte@users.noreply.github.com> Date: Thu, 20 Feb 2025 18:58:57 -0500 Subject: [PATCH 02/15] feat(brackeys13): updated the hud with a hexgrid bg. --- apps/gamejam/brackeys/13/assets/kbve/.gitkeep | 0 .../brackeys/13/assets/kbve/png/hud_bg.png | Bin 0 -> 39755 bytes .../13/assets/kbve/png/hud_bg.png.import | 34 ++++++++++++++++++ apps/gamejam/brackeys/13/scenes/game.tscn | 13 +++---- 4 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 apps/gamejam/brackeys/13/assets/kbve/.gitkeep create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/hud_bg.png create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/hud_bg.png.import diff --git a/apps/gamejam/brackeys/13/assets/kbve/.gitkeep b/apps/gamejam/brackeys/13/assets/kbve/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/apps/gamejam/brackeys/13/assets/kbve/png/hud_bg.png b/apps/gamejam/brackeys/13/assets/kbve/png/hud_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..bcf92a6781c3d640da52d67051fc7efa672227b5 GIT binary patch literal 39755 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 z Date: Thu, 20 Feb 2025 20:28:20 -0500 Subject: [PATCH 03/15] feat(brackeys13): updated hud with new icons. --- .../brackeys/13/assets/kbve/png/gems_icon.png | Bin 0 -> 865 bytes .../13/assets/kbve/png/gems_icon.png.import | 34 +++++++++ .../brackeys/13/assets/kbve/png/gold_icon.png | Bin 0 -> 1639 bytes .../13/assets/kbve/png/gold_icon.png.import | 34 +++++++++ .../13/assets/kbve/png/metal_icon.png | Bin 0 -> 1371 bytes .../13/assets/kbve/png/metal_icon.png.import | 34 +++++++++ .../13/assets/kbve/png/stone_icon.png | Bin 0 -> 873 bytes .../13/assets/kbve/png/stone_icon.png.import | 34 +++++++++ apps/gamejam/brackeys/13/scenes/game.tscn | 67 ++++++++++++++++-- apps/gamejam/brackeys/13/scripts/hud.gd | 36 +++++++--- 10 files changed, 224 insertions(+), 15 deletions(-) create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/gems_icon.png create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/gems_icon.png.import create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/gold_icon.png create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/gold_icon.png.import create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/metal_icon.png create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/metal_icon.png.import create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/stone_icon.png create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/stone_icon.png.import diff --git a/apps/gamejam/brackeys/13/assets/kbve/png/gems_icon.png b/apps/gamejam/brackeys/13/assets/kbve/png/gems_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ea50f8b4a3944b2bd97e8aa9f4acaf7892545836 GIT binary patch literal 865 zcmV-n1D^beP)5T@Ptz7eHMURb&=HUJzzx6i;CmNn;Fm zXcbgt4RdD^V`dUuW*13h6Io>xI#m}-WfE3m4sT}?USt$iWDjO!6-8bUXJ!#zWED_j z7D! zd1(=4XA6624R&Y{XlD$0Xb@^=35aS7erXPJXbOUA4{T@+b7&J=W)5*^4{m4@U}p!8 zY6g>P6jo*lglQH~We{g)3w>!5US|l4Y6GQg1e$9XN@XxOb%6i?05)_|PE!Ck5D69o z4E`cs8qPAYO~spM@XPJx&UNi8RZ!BqYo$H!h<&C(^7xPUz~9)c=7&a_*!%bSm|zyV z0005xNklw;;JNHMz^o0WYe4JKpwy>!r<=VD-@_8}$r}tqRp}71Y=gvxR@A5AtiRtdd&X7IpkY{^k zdvA#)Mpa4|BuY<@kYEze+6;d|UZz{8rsgCxuJ$>#-EK>#pZ_vZ3OrzHtDM?=oh_C( z$IcY1(AIp%BdH$LGYx_Q%Pt%d@&@5ZGcX`n*A-!Y@W4j!i{M{$13TCvzKtz7&yG## zMd{Y~M{pGqAlD#UQ^N)s2}^)+lmJ(&uzvxek)L4_zQq{$a3gc;Ab1=#)47QY^ej?0tf-eaZTfkV0fu?H}%CeCogmY zAlMNi9wvT79PE59u9iZ>)~ToYNRPn>Fsbt2hV!jSwn!`yYYAG$i=5A4~jZag?Hq#xQ4r+C!I4Y?( r(pd`Gaq+34vJxj;i54$pe;W4R6(~}=;C5Mt00000NkvXXu0mjfMzv#& literal 0 HcmV?d00001 diff --git a/apps/gamejam/brackeys/13/assets/kbve/png/gems_icon.png.import b/apps/gamejam/brackeys/13/assets/kbve/png/gems_icon.png.import new file mode 100644 index 000000000..5d0380f3d --- /dev/null +++ b/apps/gamejam/brackeys/13/assets/kbve/png/gems_icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cmoqerarvgxal" +path="res://.godot/imported/gems_icon.png-2c43757b375060158720fc06747de2a9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/kbve/png/gems_icon.png" +dest_files=["res://.godot/imported/gems_icon.png-2c43757b375060158720fc06747de2a9.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/assets/kbve/png/gold_icon.png b/apps/gamejam/brackeys/13/assets/kbve/png/gold_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ed5aec3933d9ae76b91efd13fcf4c14cc55b8801 GIT binary patch literal 1639 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 literal 0 HcmV?d00001 diff --git a/apps/gamejam/brackeys/13/assets/kbve/png/metal_icon.png.import b/apps/gamejam/brackeys/13/assets/kbve/png/metal_icon.png.import new file mode 100644 index 000000000..4d8bfd638 --- /dev/null +++ b/apps/gamejam/brackeys/13/assets/kbve/png/metal_icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://yjanqqiiiwdo" +path="res://.godot/imported/metal_icon.png-092e7f45ed22c04511d8e8578501cffc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/kbve/png/metal_icon.png" +dest_files=["res://.godot/imported/metal_icon.png-092e7f45ed22c04511d8e8578501cffc.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/assets/kbve/png/stone_icon.png b/apps/gamejam/brackeys/13/assets/kbve/png/stone_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d80ca55e4882924f9be0fd936e4e04c267b8654d GIT binary patch literal 873 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0VB`+)32}8V@Ue+c(Q|NiDJ%GBGmcKonmIqIrO_}V)+i#@F1OgRsKO{RKBT$BJUKJCrPCrk*DNN4j*HgxVkmNacna7&k0bz@}rgz%1D_sV*p)eZ$^(Y=#>>RQZ_ zGHh~+YBuloZ)i)HJS%_M`m6;joJ*@?Crm3}x2=BLzS1?DQ)Vn^-F>J_-60AXIsqj? ze!&c!OcE7>r`Z`R6ua_f^}1Yp7NmRUfzkJP1BWwPo_yYWi0{2u$m(So``^nwz5aed z_mberuN6Pbp0_jmj}82b>EU<*4D!96E{-7->P z6H)fN?)^}i@@89VSFHvQg>1?PocFbNz!Fx8Q7OJ|2ks?J--j@o7x73tK<#3TIQ zg^$hPRV=YGbWG65>1%l|W~};L^p`W=x3FWzHcM>Zw9RbXEor{zXJN|)*H{;$g9i)M zUX-SqFuzo4Nn!U|_?XW+CgZ12LVIz`)1PuBPJTa^?YWzH>XhseJ*Rbh8r1p@AMdfz z|MbPig)`~ifvK`gvk&?4D8+{8<=mYVQy^sh;PxX%3;pM_gQmN%ToL5V(VK8WK)1}j zI$+gKhg`juiSH`s#pU(XGj841`$URK?@LYL-?-YuR|jLRZo9s5#=@=jyNUz#u804t xy7lVV`lFYAo_w6RaYg2>Gt<|L{PVA6xV^YoUwXeqAuy3Jc)I$ztaD0e0sv9|oD%>5 literal 0 HcmV?d00001 diff --git a/apps/gamejam/brackeys/13/assets/kbve/png/stone_icon.png.import b/apps/gamejam/brackeys/13/assets/kbve/png/stone_icon.png.import new file mode 100644 index 000000000..67a3c9b95 --- /dev/null +++ b/apps/gamejam/brackeys/13/assets/kbve/png/stone_icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://rbsla3vwolru" +path="res://.godot/imported/stone_icon.png-6f860c6ff08d7acc7d8543982f5c7aec.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/kbve/png/stone_icon.png" +dest_files=["res://.godot/imported/stone_icon.png-6f860c6ff08d7acc7d8543982f5c7aec.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 e4f94aa4b..ba9a59d6b 100644 --- a/apps/gamejam/brackeys/13/scenes/game.tscn +++ b/apps/gamejam/brackeys/13/scenes/game.tscn @@ -1,12 +1,16 @@ -[gd_scene load_steps=15 format=3 uid="uid://cbrda40vq26pj"] +[gd_scene load_steps=19 format=3 uid="uid://cbrda40vq26pj"] [ext_resource type="Script" path="res://scripts/game.gd" id="1_oyaqx"] [ext_resource type="PackedScene" uid="uid://1s5v0llrjq3" path="res://scenes/spaceship.tscn" id="1_rlyye"] [ext_resource type="Script" path="res://scripts/projectiles.gd" id="3_hgajf"] [ext_resource type="Script" path="res://scripts/background.gd" id="4_8k503"] [ext_resource type="Texture2D" uid="uid://hprhaqdtcn8j" path="res://assets/kbve/png/hud_bg.png" id="4_e6jc8"] +[ext_resource type="Texture2D" uid="uid://cmoqerarvgxal" path="res://assets/kbve/png/gems_icon.png" id="5_hfl3j"] [ext_resource type="Script" path="res://scripts/timespace_layer.gd" id="5_jsdqu"] +[ext_resource type="Texture2D" uid="uid://rbsla3vwolru" path="res://assets/kbve/png/stone_icon.png" id="5_yiayc"] [ext_resource type="Script" path="res://scripts/universe_layer.gd" id="6_1rkq4"] +[ext_resource type="Texture2D" uid="uid://ckdgs4480fqfn" path="res://assets/kbve/png/gold_icon.png" id="6_be8e0"] +[ext_resource type="Texture2D" uid="uid://yjanqqiiiwdo" path="res://assets/kbve/png/metal_icon.png" id="7_h47ne"] [ext_resource type="Script" path="res://scripts/galaxy_layer.gd" id="7_hvh2v"] [ext_resource type="Script" path="res://scripts/environment_layer.gd" id="8_rakg7"] [ext_resource type="Script" path="res://scripts/toast_manager.gd" id="9_tiuga"] @@ -57,22 +61,71 @@ theme_override_styles/panel = SubResource("StyleBoxTexture_ekd6t") layout_mode = 2 alignment = 1 -[node name="Stone" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu"] +[node name="Nav" type="HBoxContainer" parent="CanvasLayer/UI/HUD/Panel/Menu"] layout_mode = 2 -[node name="Metal" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu"] +[node name="StarshipName" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu/Nav"] layout_mode = 2 -[node name="Gems" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu"] +[node name="Label" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu/Nav"] layout_mode = 2 -[node name="Gold" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu"] +[node name="HSplitContainer" type="HSplitContainer" parent="CanvasLayer/UI/HUD/Panel/Menu"] layout_mode = 2 +split_offset = 10 -[node name="StarshipName" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu"] +[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer/UI/HUD/Panel/Menu"] +custom_minimum_size = Vector2(200, 50) layout_mode = 2 -[node name="Label" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu"] +[node name="ResourceBar" type="HBoxContainer" parent="CanvasLayer/UI/HUD/Panel/Menu"] +layout_mode = 2 +alignment = 2 + +[node name="StoneBox" type="HBoxContainer" parent="CanvasLayer/UI/HUD/Panel/Menu/ResourceBar"] +layout_mode = 2 + +[node name="StoneIcon" type="TextureRect" parent="CanvasLayer/UI/HUD/Panel/Menu/ResourceBar/StoneBox"] +layout_mode = 2 +size_flags_vertical = 4 +texture = ExtResource("5_yiayc") +stretch_mode = 2 + +[node name="StoneLabel" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu/ResourceBar/StoneBox"] +layout_mode = 2 + +[node name="GoldBox" type="HBoxContainer" parent="CanvasLayer/UI/HUD/Panel/Menu/ResourceBar"] +layout_mode = 2 + +[node name="GoldIcon" type="TextureRect" parent="CanvasLayer/UI/HUD/Panel/Menu/ResourceBar/GoldBox"] +layout_mode = 2 +size_flags_vertical = 4 +texture = ExtResource("6_be8e0") + +[node name="GoldLabel" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu/ResourceBar/GoldBox"] +layout_mode = 2 + +[node name="MetalBox" type="HBoxContainer" parent="CanvasLayer/UI/HUD/Panel/Menu/ResourceBar"] +layout_mode = 2 + +[node name="MetalIcon" type="TextureRect" parent="CanvasLayer/UI/HUD/Panel/Menu/ResourceBar/MetalBox"] +layout_mode = 2 +size_flags_vertical = 4 +texture = ExtResource("7_h47ne") + +[node name="MetalLabel" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu/ResourceBar/MetalBox"] +layout_mode = 2 + +[node name="GemsBox" type="HBoxContainer" parent="CanvasLayer/UI/HUD/Panel/Menu/ResourceBar"] +layout_mode = 2 + +[node name="GemsIcon" type="TextureRect" parent="CanvasLayer/UI/HUD/Panel/Menu/ResourceBar/GemsBox"] +layout_mode = 2 +size_flags_vertical = 4 +texture = ExtResource("5_hfl3j") +stretch_mode = 2 + +[node name="GemsLabel" type="Label" parent="CanvasLayer/UI/HUD/Panel/Menu/ResourceBar/GemsBox"] layout_mode = 2 [node name="Bottom" type="Control" parent="CanvasLayer"] diff --git a/apps/gamejam/brackeys/13/scripts/hud.gd b/apps/gamejam/brackeys/13/scripts/hud.gd index 4606717fd..96306d760 100644 --- a/apps/gamejam/brackeys/13/scripts/hud.gd +++ b/apps/gamejam/brackeys/13/scripts/hud.gd @@ -1,13 +1,24 @@ extends Control -@onready var score_label = $Panel/Menu/Label -@onready var name_label = $Panel/Menu/StarshipName -@onready var stone_label = $Panel/Menu/Stone -@onready var metal_label = $Panel/Menu/Metal -@onready var gems_label = $Panel/Menu/Gems -@onready var gold_label = $Panel/Menu/Gold +@onready var score_label = $Panel/Menu/Nav/Label +@onready var name_label = $Panel/Menu/Nav/StarshipName + +# Resources + +@onready var gold_label = $Panel/Menu/ResourceBar/GoldBox/GoldLabel +@onready var stone_label = $Panel/Menu/ResourceBar/StoneBox/StoneLabel +@onready var metal_label = $Panel/Menu/ResourceBar/MetalBox/MetalLabel +@onready var gems_label = $Panel/Menu/ResourceBar/GemsBox/GemsLabel + +@onready var gold_icon = $Panel/Menu/ResourceBar/GoldBox/GoldIcon +@onready var stone_icon = $Panel/Menu/ResourceBar/StoneBox/StoneIcon +@onready var metal_icon = $Panel/Menu/ResourceBar/MetalBox/MetalIcon +@onready var gems_icon = $Panel/Menu/ResourceBar/GemsBox/GemsIcon + var resource_labels = {} +var resource_icons = {} + func _ready(): resource_labels = { @@ -16,6 +27,13 @@ func _ready(): "metal": metal_label, "gems": gems_label } + + resource_icons = { + "gold": gold_icon, + "stone": stone_icon, + "metal": metal_icon, + "gems": gems_icon + } call_deferred("_update_starship_name") call_deferred("_update_starship_resources") @@ -32,11 +50,13 @@ func _update_starship_resources(): for resource in Global.resources_list: var amount = Global.get_resource(resource) if resource_labels.has(resource) and resource_labels[resource]: - resource_labels[resource].text = "%s: %d" % [resource.capitalize(), amount] + #resource_labels[resource].text = "%s: %d" % [resource.capitalize(), amount] + resource_labels[resource].text = "%d" % [amount] func _on_resource_changed(resource_name: String, new_value: int): if resource_labels.has(resource_name) and resource_labels[resource_name]: - resource_labels[resource_name].text = "%s: %d" % [resource_name.capitalize(), new_value] + #resource_labels[resource_name].text = "%s: %d" % [resource_name.capitalize(), new_value] + resource_labels[resource_name].text = "%d" % [new_value] func _update_starship_name(): var starship_name = Global.get_starship_data("name") From 805640a1f04bd30356caa0b515ea78397fb9aa8b Mon Sep 17 00:00:00 2001 From: Al Justin Date: Fri, 21 Feb 2025 09:28:49 +0800 Subject: [PATCH 04/15] feat: added shop --- .../13/scenes/shop/flicker_box_lights.gd | 15 + .../gamejam/brackeys/13/scenes/shop/shop.tscn | 380 ++++++++++++++++++ .../13/scripts/flicker_progress_bar.gd | 11 + apps/gamejam/brackeys/13/scripts/shop.gd | 43 ++ apps/gamejam/brackeys/13/theme/Theme.tres | 52 ++- apps/gamejam/brackeys/13/theme/empty.stylebox | Bin 0 -> 215 bytes 6 files changed, 500 insertions(+), 1 deletion(-) create mode 100644 apps/gamejam/brackeys/13/scenes/shop/flicker_box_lights.gd create mode 100644 apps/gamejam/brackeys/13/scenes/shop/shop.tscn create mode 100644 apps/gamejam/brackeys/13/scripts/flicker_progress_bar.gd create mode 100644 apps/gamejam/brackeys/13/scripts/shop.gd create mode 100644 apps/gamejam/brackeys/13/theme/empty.stylebox diff --git a/apps/gamejam/brackeys/13/scenes/shop/flicker_box_lights.gd b/apps/gamejam/brackeys/13/scenes/shop/flicker_box_lights.gd new file mode 100644 index 000000000..95f89512e --- /dev/null +++ b/apps/gamejam/brackeys/13/scenes/shop/flicker_box_lights.gd @@ -0,0 +1,15 @@ +extends TextureRect + +@export var lights_on : CompressedTexture2D +@export var lights_off : CompressedTexture2D + +@onready var light : Array[CompressedTexture2D] = [lights_on, lights_off] + +var flicker := 0.5 + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + if flicker <= 0: + flicker = randf_range(0.3,0.8) + texture = light[randi_range(0,1)] + flicker -= 1 * delta diff --git a/apps/gamejam/brackeys/13/scenes/shop/shop.tscn b/apps/gamejam/brackeys/13/scenes/shop/shop.tscn new file mode 100644 index 000000000..a024bcb69 --- /dev/null +++ b/apps/gamejam/brackeys/13/scenes/shop/shop.tscn @@ -0,0 +1,380 @@ +[gd_scene load_steps=20 format=3 uid="uid://dafbmqoy3qcy3"] + +[ext_resource type="Script" path="res://scripts/shop.gd" id="1_3omsn"] +[ext_resource type="Texture2D" uid="uid://d07qbaay5wanp" path="res://assets/audioknobs-ui/audioknobs/panel2.png" id="1_x5466"] +[ext_resource type="Texture2D" uid="uid://sgs4hcughaca" path="res://assets/audioknobs-ui/audioknobs/metaltile1.png" id="2_3j53l"] +[ext_resource type="Texture2D" uid="uid://b0owywtbixr6b" path="res://assets/audioknobs-ui/audioknobs/screen-panel.png" id="3_pd5pr"] +[ext_resource type="Texture2D" uid="uid://pnucsbsdbg23" path="res://assets/audioknobs-ui/audioknobs/panel.png" id="4_atpsb"] +[ext_resource type="Theme" uid="uid://bkt3waoihtb6j" path="res://theme/Theme.tres" id="5_lsrhg"] +[ext_resource type="Texture2D" uid="uid://dcrqllgsdaexs" path="res://assets/audioknobs-ui/audioknobs/green-light-off.png" id="6_75t5l"] +[ext_resource type="Script" path="res://scripts/flicker_progress_bar.gd" id="6_lok5i"] +[ext_resource type="Texture2D" uid="uid://bc8nwvte2yhis" path="res://assets/audioknobs-ui/audioknobs/yellow-light-off.png" id="7_xbhgy"] +[ext_resource type="Texture2D" uid="uid://biq68ip5epeqt" path="res://assets/audioknobs-ui/audioknobs/red-light-on.png" id="8_dlq7y"] +[ext_resource type="Texture2D" uid="uid://2liukuvfgr4v" path="res://assets/audioknobs-ui/audioknobs/red-light-off.png" id="9_f5tfu"] +[ext_resource type="Texture2D" uid="uid://kfwtoid8jdk5" path="res://assets/audioknobs-ui/audioknobs/yellow-light-on.png" id="10_c5p2i"] +[ext_resource type="Texture2D" uid="uid://fs6ow7sk8icp" path="res://assets/audioknobs-ui/audioknobs/green-light-on.png" id="11_jcbtr"] +[ext_resource type="Texture2D" uid="uid://c3v31w8acyyn0" path="res://assets/audioknobs-ui/audioknobs/box-green-light-off.png" id="12_2lry1"] +[ext_resource type="Texture2D" uid="uid://chemwe16wbpdg" path="res://assets/audioknobs-ui/audioknobs/box-yellow-light-off.png" id="13_swidh"] +[ext_resource type="Script" path="res://scenes/shop/flicker_box_lights.gd" id="14_mhgll"] +[ext_resource type="Texture2D" uid="uid://c1pcq6r81csym" path="res://assets/audioknobs-ui/audioknobs/box-green-light-on.png" id="15_dyc2a"] +[ext_resource type="Texture2D" uid="uid://ccyvse33p3bm1" path="res://assets/audioknobs-ui/audioknobs/box-yellow-light-on.png" id="17_2kql4"] + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_mr6sy"] +texture = ExtResource("1_x5466") +expand_margin_left = 20.0 +expand_margin_top = 10.0 +expand_margin_right = 20.0 +expand_margin_bottom = 10.0 + +[node name="Shop" type="ColorRect"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.201527, 0.201527, 0.201527, 1) +script = ExtResource("1_3omsn") + +[node name="HBoxContainer" type="HBoxContainer" parent="."] +layout_mode = 0 +offset_left = 81.0 +offset_top = 27.0 +offset_right = 1071.0 +offset_bottom = 104.0 +theme_override_constants/separation = 105 + +[node name="Label" type="Label" parent="HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 56 +theme_override_styles/normal = SubResource("StyleBoxTexture_mr6sy") +horizontal_alignment = 1 + +[node name="ShopTitle" type="Label" parent="HBoxContainer"] +layout_mode = 2 +size_flags_vertical = 1 +theme_override_font_sizes/font_size = 56 +theme_override_styles/normal = SubResource("StyleBoxTexture_mr6sy") +text = "Shop" +horizontal_alignment = 1 + +[node name="Label3" type="Label" parent="HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 56 +theme_override_styles/normal = SubResource("StyleBoxTexture_mr6sy") +horizontal_alignment = 1 + +[node name="Button" type="Button" parent="HBoxContainer/Label3"] +layout_mode = 0 +offset_left = 7.0 +offset_top = 4.0 +offset_right = 322.0 +offset_bottom = 70.0 +theme = ExtResource("5_lsrhg") +theme_type_variation = &"SpaceBar" + +[node name="MainBG" type="TextureRect" parent="."] +layout_mode = 0 +offset_left = 37.0 +offset_top = 148.0 +offset_right = 1114.0 +offset_bottom = 613.0 +theme = ExtResource("5_lsrhg") +texture = ExtResource("2_3j53l") + +[node name="CenterScreen" type="TextureRect" parent="MainBG"] +layout_mode = 0 +offset_left = 436.0 +offset_top = 10.0 +offset_right = 798.0 +offset_bottom = 324.0 +texture = ExtResource("3_pd5pr") + +[node name="HBoxContainer" type="HBoxContainer" parent="MainBG/CenterScreen"] +layout_mode = 0 +offset_left = 31.0 +offset_top = 55.0 +offset_right = 335.0 +offset_bottom = 150.0 + +[node name="Left" type="Label" parent="MainBG/CenterScreen/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 1 +text = "dada +dada" +vertical_alignment = 3 + +[node name="Right" type="Label" parent="MainBG/CenterScreen/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 1 +text = "dad +sdsd" +horizontal_alignment = 2 +vertical_alignment = 3 + +[node name="Label" type="Label" parent="MainBG/CenterScreen"] +layout_mode = 0 +offset_left = 30.0 +offset_top = 201.0 +offset_right = 332.0 +offset_bottom = 224.0 +text = "Left Right" +horizontal_alignment = 3 + +[node name="LeftPanel" type="TextureRect" parent="MainBG"] +layout_mode = 0 +offset_left = 20.0 +offset_top = 15.0 +offset_right = 323.0 +offset_bottom = 351.0 +texture = ExtResource("1_x5466") + +[node name="ScreenPanel" type="TextureRect" parent="MainBG/LeftPanel"] +offset_left = 32.0 +offset_top = 34.0 +offset_right = 264.0 +offset_bottom = 177.0 +texture = ExtResource("3_pd5pr") + +[node name="Title" type="Label" parent="MainBG/LeftPanel/ScreenPanel"] +layout_mode = 0 +offset_left = 77.0 +offset_top = 21.0 +offset_right = 160.0 +offset_bottom = 44.0 +text = "Categories" +horizontal_alignment = 1 + +[node name="Label" type="Label" parent="MainBG/LeftPanel/ScreenPanel"] +layout_mode = 0 +offset_left = 51.0 +offset_top = 73.0 +offset_right = 183.0 +offset_bottom = 96.0 +text = "Weapons" +horizontal_alignment = 1 + +[node name="HBoxContainer" type="HBoxContainer" parent="MainBG/LeftPanel"] +layout_mode = 0 +offset_left = 32.0 +offset_top = 206.0 +offset_right = 267.0 +offset_bottom = 269.0 +theme = ExtResource("5_lsrhg") +metadata/_edit_group_ = true + +[node name="LeftButton" type="Button" parent="MainBG/LeftPanel/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +theme = ExtResource("5_lsrhg") +theme_type_variation = &"LeftButton" + +[node name="EnterButton" type="Button" parent="MainBG/LeftPanel/HBoxContainer"] +custom_minimum_size = Vector2(120, 0) +layout_mode = 2 +size_flags_horizontal = 3 +theme = ExtResource("5_lsrhg") +theme_type_variation = &"SpaceBar" + +[node name="RightButton" type="Button" parent="MainBG/LeftPanel/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +theme = ExtResource("5_lsrhg") +theme_type_variation = &"RightButton" + +[node name="LeftButtons" type="TextureRect" parent="MainBG"] +layout_mode = 0 +offset_left = 339.0 +offset_top = 33.0 +offset_right = 424.0 +offset_bottom = 284.0 +texture = ExtResource("4_atpsb") +metadata/_edit_group_ = true + +[node name="VBoxContainer" type="VBoxContainer" parent="MainBG/LeftButtons"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 12.0 +offset_top = 23.0 +offset_right = -13.0 +offset_bottom = -25.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("5_lsrhg") + +[node name="Button" type="Button" parent="MainBG/LeftButtons/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +theme_type_variation = &"RightButton" + +[node name="Button2" type="Button" parent="MainBG/LeftButtons/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +theme_type_variation = &"RightButton" + +[node name="Button3" type="Button" parent="MainBG/LeftButtons/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +theme_type_variation = &"RightButton" + +[node name="RightButtons" type="TextureRect" parent="MainBG"] +layout_mode = 0 +offset_left = 816.0 +offset_top = 33.0 +offset_right = 901.0 +offset_bottom = 284.0 +texture = ExtResource("4_atpsb") +metadata/_edit_group_ = true + +[node name="VBoxContainer" type="VBoxContainer" parent="MainBG/RightButtons"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 12.0 +offset_top = 23.0 +offset_right = -13.0 +offset_bottom = -25.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("5_lsrhg") +metadata/_edit_group_ = true + +[node name="Button" type="Button" parent="MainBG/RightButtons/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +theme_type_variation = &"LeftButton" + +[node name="Button2" type="Button" parent="MainBG/RightButtons/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +theme_type_variation = &"LeftButton" + +[node name="Button3" type="Button" parent="MainBG/RightButtons/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +theme_type_variation = &"LeftButton" + +[node name="NonInteractable" type="Control" parent="MainBG"] +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="BottomScreen" type="TextureRect" parent="MainBG/NonInteractable"] +layout_mode = 0 +offset_left = 44.0 +offset_top = 366.0 +offset_right = 1034.0 +offset_bottom = 449.0 +texture = ExtResource("3_pd5pr") + +[node name="VSlider" type="VSlider" parent="MainBG/NonInteractable"] +layout_mode = 0 +offset_left = 901.0 +offset_top = 35.0 +offset_right = 991.0 +offset_bottom = 166.0 +value = 24.0 +editable = false +scrollable = false + +[node name="VSlider2" type="VSlider" parent="MainBG/NonInteractable"] +layout_mode = 0 +offset_left = 947.0 +offset_top = 35.0 +offset_right = 1037.0 +offset_bottom = 166.0 +value = 79.0 +editable = false +scrollable = false + +[node name="ProgressBar" type="ProgressBar" parent="MainBG/NonInteractable"] +layout_mode = 0 +offset_left = 937.0 +offset_top = 179.0 +offset_right = 962.0 +offset_bottom = 271.0 +fill_mode = 3 +show_percentage = false +script = ExtResource("6_lok5i") + +[node name="ProgressBar2" type="ProgressBar" parent="MainBG/NonInteractable"] +layout_mode = 0 +offset_left = 980.0 +offset_top = 178.0 +offset_right = 1005.0 +offset_bottom = 270.0 +fill_mode = 3 +show_percentage = false +script = ExtResource("6_lok5i") + +[node name="GridContainer" type="GridContainer" parent="MainBG/NonInteractable"] +layout_mode = 0 +offset_left = 351.0 +offset_top = 299.0 +offset_right = 415.0 +offset_bottom = 340.0 +columns = 4 + +[node name="TextureRect" type="TextureRect" parent="MainBG/NonInteractable/GridContainer"] +layout_mode = 2 +texture = ExtResource("6_75t5l") + +[node name="TextureRect5" type="TextureRect" parent="MainBG/NonInteractable/GridContainer"] +layout_mode = 2 +texture = ExtResource("7_xbhgy") + +[node name="TextureRect6" type="TextureRect" parent="MainBG/NonInteractable/GridContainer"] +layout_mode = 2 +texture = ExtResource("8_dlq7y") + +[node name="TextureRect7" type="TextureRect" parent="MainBG/NonInteractable/GridContainer"] +layout_mode = 2 +texture = ExtResource("9_f5tfu") + +[node name="TextureRect8" type="TextureRect" parent="MainBG/NonInteractable/GridContainer"] +layout_mode = 2 +texture = ExtResource("10_c5p2i") + +[node name="TextureRect2" type="TextureRect" parent="MainBG/NonInteractable/GridContainer"] +layout_mode = 2 +texture = ExtResource("11_jcbtr") + +[node name="TextureRect3" type="TextureRect" parent="MainBG/NonInteractable/GridContainer"] +layout_mode = 2 +texture = ExtResource("6_75t5l") + +[node name="TextureRect4" type="TextureRect" parent="MainBG/NonInteractable/GridContainer"] +layout_mode = 2 +texture = ExtResource("8_dlq7y") + +[node name="TextureRect" type="TextureRect" parent="MainBG/NonInteractable"] +layout_mode = 0 +offset_left = 812.0 +offset_top = 300.0 +offset_right = 852.0 +offset_bottom = 340.0 +texture = ExtResource("12_2lry1") +script = ExtResource("14_mhgll") +lights_on = ExtResource("15_dyc2a") +lights_off = ExtResource("12_2lry1") + +[node name="TextureRect2" type="TextureRect" parent="MainBG/NonInteractable"] +layout_mode = 0 +offset_left = 860.0 +offset_top = 300.0 +offset_right = 900.0 +offset_bottom = 340.0 +texture = ExtResource("13_swidh") +script = ExtResource("14_mhgll") +lights_on = ExtResource("17_2kql4") +lights_off = ExtResource("13_swidh") + +[connection signal="pressed" from="MainBG/LeftPanel/HBoxContainer/LeftButton" to="." method="_on_left_button_pressed_left_panel"] +[connection signal="pressed" from="MainBG/LeftPanel/HBoxContainer/EnterButton" to="." method="_on_enter_button_pressed_left_panel"] +[connection signal="pressed" from="MainBG/LeftPanel/HBoxContainer/RightButton" to="." method="_on_right_button_pressed_left_panel"] diff --git a/apps/gamejam/brackeys/13/scripts/flicker_progress_bar.gd b/apps/gamejam/brackeys/13/scripts/flicker_progress_bar.gd new file mode 100644 index 000000000..895a4b6c7 --- /dev/null +++ b/apps/gamejam/brackeys/13/scripts/flicker_progress_bar.gd @@ -0,0 +1,11 @@ +extends ProgressBar + +var flicker := 0.3 + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta) -> void: + if flicker <= 0: + flicker = randf_range(0.1,0.5) + value = randi_range(0,100) + flicker -= 1 * delta diff --git a/apps/gamejam/brackeys/13/scripts/shop.gd b/apps/gamejam/brackeys/13/scripts/shop.gd new file mode 100644 index 000000000..32371b2bc --- /dev/null +++ b/apps/gamejam/brackeys/13/scripts/shop.gd @@ -0,0 +1,43 @@ +extends ColorRect + +@onready var categories_label := $MainBG/LeftPanel/ScreenPanel/Label + +var categories : Array[StringName]= ["Weapons", "Shield", "Power", "Thrusters"] +var n = 0 +@onready var cate_selected:= categories[n] + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + pass + + +#region LeftPanelRegion + +func _on_left_button_pressed_left_panel() -> void: + if cate_selected == categories[0]: + pass + else: + n -= 1 + update_categories() + +func _on_right_button_pressed_left_panel() -> void: + if cate_selected == categories[3]: + pass + else: + n += 1 + update_categories() + +func _on_enter_button_pressed_left_panel() -> void: + pass + +func update_categories() -> void: + cate_selected = categories[n] + categories_label.text = cate_selected + +#endregion diff --git a/apps/gamejam/brackeys/13/theme/Theme.tres b/apps/gamejam/brackeys/13/theme/Theme.tres index 2bec68d76..69e620b2e 100644 --- a/apps/gamejam/brackeys/13/theme/Theme.tres +++ b/apps/gamejam/brackeys/13/theme/Theme.tres @@ -1,14 +1,21 @@ -[gd_resource type="Theme" load_steps=18 format=3 uid="uid://bkt3waoihtb6j"] +[gd_resource type="Theme" load_steps=34 format=3 uid="uid://bkt3waoihtb6j"] [ext_resource type="Texture2D" uid="uid://c73g314v1aohm" path="res://assets/audioknobs-ui/audioknobs/slider.png" id="1_4ho6j"] [ext_resource type="Texture2D" uid="uid://wwlxthw1p5px" path="res://assets/audioknobs-ui/audioknobs/button-toggle-off.png" id="1_467wl"] [ext_resource type="Texture2D" uid="uid://bwhtv183g5vma" path="res://assets/audioknobs-ui/audioknobs/button-toggle-on.png" id="2_dcdwy"] +[ext_resource type="StyleBox" uid="uid://i2i5a12n6yo3" path="res://theme/empty.stylebox" id="2_ma0tk"] [ext_resource type="Texture2D" uid="uid://7h4qiorvtq3q" path="res://assets/audioknobs-ui/audioknobs/metalbackground1.png" id="2_wr8kl"] [ext_resource type="Texture2D" uid="uid://byxtqi4hn1crh" path="res://assets/audioknobs-ui/audioknobs/v-slider-small.png" id="3_j3fil"] [ext_resource type="Texture2D" uid="uid://bt4me1jtt6j6a" path="res://assets/audioknobs-ui/audioknobs/slider-bg.png" id="4_4s0nj"] +[ext_resource type="Texture2D" uid="uid://dubr2ajqrqvy2" path="res://assets/audioknobs-ui/audioknobs/left-button-normal.png" id="6_oemoe"] [ext_resource type="Texture2D" uid="uid://cn2g0hmq78i57" path="res://assets/audioknobs-ui/audioknobs/progress-bar-bg.png" id="6_v1is8"] [ext_resource type="Texture2D" uid="uid://b5ctfdi4s4nsl" path="res://assets/audioknobs-ui/audioknobs/progress-bar-fill.png" id="7_f3kbi"] [ext_resource type="Texture2D" uid="uid://dlhr1icsocw1m" path="res://assets/audioknobs-ui/audioknobs/v-slider-bg.png" id="7_r6trc"] +[ext_resource type="Texture2D" uid="uid://bvo7ee608kv83" path="res://assets/audioknobs-ui/audioknobs/left-button-pressed.png" id="7_s6l0y"] +[ext_resource type="Texture2D" uid="uid://ep2c61uet76y" path="res://assets/audioknobs-ui/audioknobs/right-button-normal.png" id="9_0vmdh"] +[ext_resource type="Texture2D" uid="uid://dp35x2t2w2sfg" path="res://assets/audioknobs-ui/audioknobs/right-button-pressed.png" id="12_0ebru"] +[ext_resource type="Texture2D" uid="uid://dy6dpwidpm373" path="res://assets/audioknobs-ui/audioknobs/space-bar-normal.png" id="12_r2h7j"] +[ext_resource type="Texture2D" uid="uid://dvp04700ktun" path="res://assets/audioknobs-ui/audioknobs/space-bar-pressed.png" id="13_1unmg"] [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_0jei3"] texture = ExtResource("1_467wl") @@ -23,6 +30,14 @@ bg_color = Color(0.6, 0.6, 0.6, 0) texture = ExtResource("4_4s0nj") texture_margin_top = 20.0 +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_2n2so"] + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_nfv2t"] +texture = ExtResource("6_oemoe") + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_bnh2f"] +texture = ExtResource("7_s6l0y") + [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_umxe3"] texture = ExtResource("6_v1is8") axis_stretch_vertical = 1 @@ -31,6 +46,22 @@ axis_stretch_vertical = 1 texture = ExtResource("7_f3kbi") axis_stretch_vertical = 1 +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_xiin7"] + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_0f342"] +texture = ExtResource("9_0vmdh") + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_4rt04"] +texture = ExtResource("12_0ebru") + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_306ml"] + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_qsi1w"] +texture = ExtResource("12_r2h7j") + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_6risy"] +texture = ExtResource("13_1unmg") + [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xdt0a"] bg_color = Color(0.6, 0.6, 0.6, 0) @@ -40,6 +71,7 @@ texture_margin_left = 20.0 [resource] Button/styles/disabled = SubResource("StyleBoxTexture_0jei3") +Button/styles/focus = ExtResource("2_ma0tk") Button/styles/hover = SubResource("StyleBoxTexture_0jei3") Button/styles/hover_pressed = SubResource("StyleBoxTexture_60gn8") Button/styles/normal = SubResource("StyleBoxTexture_0jei3") @@ -50,9 +82,27 @@ HSlider/icons/grabber_highlight = ExtResource("1_4ho6j") HSlider/styles/grabber_area = SubResource("StyleBoxFlat_64pwo") HSlider/styles/grabber_area_highlight = SubResource("StyleBoxFlat_64pwo") HSlider/styles/slider = SubResource("StyleBoxTexture_upa0w") +LeftButton/base_type = &"Button" +LeftButton/styles/focus = SubResource("StyleBoxEmpty_2n2so") +LeftButton/styles/hover = SubResource("StyleBoxTexture_nfv2t") +LeftButton/styles/hover_pressed = SubResource("StyleBoxTexture_bnh2f") +LeftButton/styles/normal = SubResource("StyleBoxTexture_nfv2t") +LeftButton/styles/pressed = SubResource("StyleBoxTexture_bnh2f") MarginContainer/icons/texture = ExtResource("2_wr8kl") ProgressBar/styles/background = SubResource("StyleBoxTexture_umxe3") ProgressBar/styles/fill = SubResource("StyleBoxTexture_es6xy") +RightButton/base_type = &"Button" +RightButton/styles/focus = SubResource("StyleBoxEmpty_xiin7") +RightButton/styles/hover = SubResource("StyleBoxTexture_0f342") +RightButton/styles/hover_pressed = SubResource("StyleBoxTexture_4rt04") +RightButton/styles/normal = SubResource("StyleBoxTexture_0f342") +RightButton/styles/pressed = SubResource("StyleBoxTexture_4rt04") +SpaceBar/base_type = &"Button" +SpaceBar/styles/focus = SubResource("StyleBoxEmpty_306ml") +SpaceBar/styles/hover = SubResource("StyleBoxTexture_qsi1w") +SpaceBar/styles/hover_pressed = SubResource("StyleBoxTexture_6risy") +SpaceBar/styles/normal = SubResource("StyleBoxTexture_qsi1w") +SpaceBar/styles/pressed = SubResource("StyleBoxTexture_6risy") VSlider/icons/grabber = ExtResource("3_j3fil") VSlider/icons/grabber_disabled = ExtResource("3_j3fil") VSlider/icons/grabber_highlight = ExtResource("3_j3fil") diff --git a/apps/gamejam/brackeys/13/theme/empty.stylebox b/apps/gamejam/brackeys/13/theme/empty.stylebox new file mode 100644 index 0000000000000000000000000000000000000000..fd187beb8c8efa2352d0f2c725dfafd1eb680d27 GIT binary patch literal 215 zcmV;|04V=bQ$s@n000005C8yI0RRBM0000ewJ-f(R{*UA0CEW-DS*Xk3^OnTb4Jb- z^dV&1*yR2WMN($9V&FS8h6feZD1sgtrD4vOmI4(hf*K}rd;}f{a~#S4_?fq&VzZv^ z>ZS1pOjKlC=_+1;bPQ5clpb4{3$^`=^GPsaHjC*pCpC2}TO3d; Date: Thu, 20 Feb 2025 21:15:57 -0500 Subject: [PATCH 05/15] docs(journal): daily journal update. --- .../kbve.com/src/content/journal/02-20.mdx | 36 ++++++++++++++++--- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/apps/kbve/kbve.com/src/content/journal/02-20.mdx b/apps/kbve/kbve.com/src/content/journal/02-20.mdx index 7c778771b..ad53782f2 100644 --- a/apps/kbve/kbve.com/src/content/journal/02-20.mdx +++ b/apps/kbve/kbve.com/src/content/journal/02-20.mdx @@ -16,9 +16,35 @@ Testing out the journal entries for 2024! I will have to make this section a bit more unique later on but for now it seems great. -### 2024 +## 2025 -#### NX +### Post Office + +- 04:30PM + + Had to quickly run to the post office and make a money order but now I am thinking about it. + Could we deposit those money orders through a mobile app? + Hmm, I am going to do a bit more research on it, because it feels annoying at first but as I am selling stuff, I need a way to handle the money. + I rather not have to count the cash. + +### HUD + +- 08:57PM + + Updated the icons for the HUD and now we have two major parts to finish up for tonight. + The first will be the game's background and the second will be saving the games state. + Hmm, let me break down the order of things that need to be done. + + - Game's background. + - Saving and loading of the player stats. + - Replacing the spaceship sprite. + - Fixing the asteroid splitting and replacing those assets with better ones. + + + +## 2024 + +### NX I spent a decent amount of time rebuilding the NX Smartrepo pipeline, we were able to get updated to version 18 but it seems that the Rust plugin was throwing errors. We had to downgrade the Rust plugin from the version of 1.3.3 back to version 1.2.X, which was able to then build and run without any problems. @@ -26,7 +52,7 @@ The plugin upgrade was causing a null point error within nodejs, thus causing th It seems that I can never get away from null point errors, even in RUST! just kidding, it was all nodejs bullypoopy. -#### KBVE +### KBVE Going to update the template a bit more while the pipelines are building. @@ -39,7 +65,7 @@ I decided to make an extraction engine that would help with the default informat There are a couple things that I still need to resolve but this should help with creating abstracted content throughout the application. -#### PackageHell +### PackageHell It seems that I had entered package hell because of the amount of dependencies were all over the place, some of them not published, causing a weird vendor loop. @@ -48,7 +74,7 @@ Nx Graph kept looking for version 0.1.2 of `holy` but the workspace had a versio We will downgrade the Rust NX integration back to a working state for now, so we can move on. -#### RustWASM +### RustWASM Running the Rust WASM is currently with this command: From 8a4791da9eb6af2c33f107d29006343a2352b172 Mon Sep 17 00:00:00 2001 From: h0lybyte <5599058+h0lybyte@users.noreply.github.com> Date: Thu, 20 Feb 2025 23:01:47 -0500 Subject: [PATCH 06/15] feat(brackeys13): added objects to the universe layer. --- .../13/assets/kbve/png/universe/.gitkeep | 0 .../13/assets/kbve/png/universe/object1.png | Bin 0 -> 28245 bytes .../kbve/png/universe/object1.png.import | 34 +++++++++ .../13/assets/kbve/png/universe/object2.png | Bin 0 -> 18477 bytes .../kbve/png/universe/object2.png.import | 34 +++++++++ .../13/assets/kbve/png/universe/object3.png | Bin 0 -> 19239 bytes .../kbve/png/universe/object3.png.import | 34 +++++++++ apps/gamejam/brackeys/13/scripts/global.gd | 1 + apps/gamejam/brackeys/13/scripts/shop.gd | 2 +- .../brackeys/13/scripts/universe_layer.gd | 72 ++++++++++++++++-- apps/gamejam/brackeys/13/theme/Theme.tres | 2 +- .../src/content/docs/project/brackeys.mdx | 6 +- .../kbve.com/src/content/journal/02-20.mdx | 6 +- 13 files changed, 179 insertions(+), 12 deletions(-) create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/universe/.gitkeep create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/universe/object1.png create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/universe/object1.png.import create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/universe/object2.png create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/universe/object2.png.import create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/universe/object3.png create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/universe/object3.png.import diff --git a/apps/gamejam/brackeys/13/assets/kbve/png/universe/.gitkeep b/apps/gamejam/brackeys/13/assets/kbve/png/universe/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/apps/gamejam/brackeys/13/assets/kbve/png/universe/object1.png b/apps/gamejam/brackeys/13/assets/kbve/png/universe/object1.png new file mode 100644 index 0000000000000000000000000000000000000000..838e2f2c69dabd9ffd49e497e2760f570de5d6e2 GIT binary patch literal 28245 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 literal 0 HcmV?d00001 diff --git a/apps/gamejam/brackeys/13/assets/kbve/png/universe/object1.png.import b/apps/gamejam/brackeys/13/assets/kbve/png/universe/object1.png.import new file mode 100644 index 000000000..026c16d5d --- /dev/null +++ b/apps/gamejam/brackeys/13/assets/kbve/png/universe/object1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dob5nb16tjgrc" +path="res://.godot/imported/object1.png-e7931f33dec8ff0e2092905c364429fe.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/kbve/png/universe/object1.png" +dest_files=["res://.godot/imported/object1.png-e7931f33dec8ff0e2092905c364429fe.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/assets/kbve/png/universe/object2.png b/apps/gamejam/brackeys/13/assets/kbve/png/universe/object2.png new file mode 100644 index 0000000000000000000000000000000000000000..e3799eb4e32cf0a0aca2d6217eb56212fd77ee1a GIT binary patch literal 18477 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 literal 0 HcmV?d00001 diff --git a/apps/gamejam/brackeys/13/assets/kbve/png/universe/object2.png.import b/apps/gamejam/brackeys/13/assets/kbve/png/universe/object2.png.import new file mode 100644 index 000000000..4afab0dd7 --- /dev/null +++ b/apps/gamejam/brackeys/13/assets/kbve/png/universe/object2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dv8b0ewt6a6bm" +path="res://.godot/imported/object2.png-e11b749b26fe9a1c8ed8eba7241e54af.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/kbve/png/universe/object2.png" +dest_files=["res://.godot/imported/object2.png-e11b749b26fe9a1c8ed8eba7241e54af.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/assets/kbve/png/universe/object3.png b/apps/gamejam/brackeys/13/assets/kbve/png/universe/object3.png new file mode 100644 index 0000000000000000000000000000000000000000..60f409ff53bf40d184fffae3613dd8f46f66384f GIT binary patch literal 19239 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 O0000 void: cate_selected = categories[n] categories_label.text = cate_selected -#endregion \ No newline at end of file +#endregion diff --git a/apps/gamejam/brackeys/13/scripts/universe_layer.gd b/apps/gamejam/brackeys/13/scripts/universe_layer.gd index 0db733bde..728d7fb67 100644 --- a/apps/gamejam/brackeys/13/scripts/universe_layer.gd +++ b/apps/gamejam/brackeys/13/scripts/universe_layer.gd @@ -1,11 +1,71 @@ extends Parallax2D -# Called when the node enters the scene tree for the first time. -func _ready() -> void: - pass # Replace with function body. +@export var pool_size: int = 2 +@export var scroll_speed: float = 10.0 +# Screen bounds +var screen_width: float +var screen_height: float -# Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta: float) -> void: - pass +# Sprite pools +var active_sprites: Array[Sprite2D] = [] +var inactive_sprites: Array[Sprite2D] = [] + +const BASE_PATH: String = "res://assets/kbve/png/universe/object" + +func _ready(): + var viewport = get_viewport() + screen_width = viewport.get_visible_rect().size.x + screen_height = viewport.get_visible_rect().size.y + ignore_camera_scroll = true + repeat_size = Vector2(screen_width * 2, screen_height * 2) + scroll_scale = Vector2(1.0, 1.0) + _initialize_pool() + _spawn_initial_sprites() + +func _initialize_pool(): + for i in range(1, pool_size + 1): + var sprite = Sprite2D.new() + var texture_path = BASE_PATH + str(i) + ".png" + if ResourceLoader.exists(texture_path): + sprite.texture = load(texture_path) as Texture2D + else: + print("Warning: Texture not found at ", texture_path) + continue + + var scale = randf_range(0.5, 1.5) + sprite.scale = Vector2(scale, scale) + var notifier = VisibleOnScreenNotifier2D.new() + notifier.rect = Rect2(-sprite.get_rect().size * scale / 2, sprite.get_rect().size * scale) + sprite.add_child(notifier) + notifier.connect("screen_exited", Callable(self, "_return_to_pool").bind(sprite)) + inactive_sprites.append(sprite) + add_child(sprite) + sprite.hide() + +func _spawn_initial_sprites(): + var spawn_area_width = screen_width * 2 + for i in range(pool_size): + _spawn_sprite(Vector2(randf_range(0, spawn_area_width), randf_range(0, screen_height))) + +func _spawn_sprite(position: Vector2): + if inactive_sprites.size() == 0: + return + + var sprite = inactive_sprites.pop_back() + sprite.position = position + sprite.scale = Vector2(randf_range(0.5, 1.5), randf_range(0.5, 1.5)) + sprite.show() + active_sprites.append(sprite) + +func _return_to_pool(sprite: Sprite2D): + if sprite in active_sprites: + active_sprites.erase(sprite) + inactive_sprites.append(sprite) + sprite.hide() + var spawn_x = screen_width + scroll_offset.x + randf_range(0, screen_width) + _spawn_sprite(Vector2(spawn_x, randf_range(0, screen_height))) + +func _process(delta: float): + scroll_offset.x -= scroll_speed * delta diff --git a/apps/gamejam/brackeys/13/theme/Theme.tres b/apps/gamejam/brackeys/13/theme/Theme.tres index 69e620b2e..7bb2b0328 100644 --- a/apps/gamejam/brackeys/13/theme/Theme.tres +++ b/apps/gamejam/brackeys/13/theme/Theme.tres @@ -3,7 +3,7 @@ [ext_resource type="Texture2D" uid="uid://c73g314v1aohm" path="res://assets/audioknobs-ui/audioknobs/slider.png" id="1_4ho6j"] [ext_resource type="Texture2D" uid="uid://wwlxthw1p5px" path="res://assets/audioknobs-ui/audioknobs/button-toggle-off.png" id="1_467wl"] [ext_resource type="Texture2D" uid="uid://bwhtv183g5vma" path="res://assets/audioknobs-ui/audioknobs/button-toggle-on.png" id="2_dcdwy"] -[ext_resource type="StyleBox" uid="uid://i2i5a12n6yo3" path="res://theme/empty.stylebox" id="2_ma0tk"] +[ext_resource type="StyleBox" path="res://theme/empty.stylebox" id="2_ma0tk"] [ext_resource type="Texture2D" uid="uid://7h4qiorvtq3q" path="res://assets/audioknobs-ui/audioknobs/metalbackground1.png" id="2_wr8kl"] [ext_resource type="Texture2D" uid="uid://byxtqi4hn1crh" path="res://assets/audioknobs-ui/audioknobs/v-slider-small.png" id="3_j3fil"] [ext_resource type="Texture2D" uid="uid://bt4me1jtt6j6a" path="res://assets/audioknobs-ui/audioknobs/slider-bg.png" id="4_4s0nj"] diff --git a/apps/kbve/kbve.com/src/content/docs/project/brackeys.mdx b/apps/kbve/kbve.com/src/content/docs/project/brackeys.mdx index 4381cdf4c..ac4b2a489 100644 --- a/apps/kbve/kbve.com/src/content/docs/project/brackeys.mdx +++ b/apps/kbve/kbve.com/src/content/docs/project/brackeys.mdx @@ -144,10 +144,14 @@ The spaceship asset pack that we will be using is from [Kenny Space Shooter Redu There are two folders, `_space-shooter-redux` and `space-shooter-redux`, all of the assets from the pack are under the `_space-shooter-redux` and objects that we will use will be copied over to `space-shooter-redux`. Without having to dump a bunch of assets, I will try to use as many as needed and then going to delete the `_space-shooter-redux` folder. -### auidioknobs +#### auidioknobs This asset will be used as UI panel that players will interact with in the world. [auidioknobs](https://opengameart.org/node/7969), released as CC-BY-3.0. Credited to ville.seppanen@gmail.com +#### Galaxy Pixel Art + +The first three objects for the universe layer were made by Iftikhar Alam from Vecteezy / IftiStock.com. + ### Layers These are the layers that I am thinking we will be operating in: diff --git a/apps/kbve/kbve.com/src/content/journal/02-20.mdx b/apps/kbve/kbve.com/src/content/journal/02-20.mdx index ad53782f2..f0ca9baef 100644 --- a/apps/kbve/kbve.com/src/content/journal/02-20.mdx +++ b/apps/kbve/kbve.com/src/content/journal/02-20.mdx @@ -1,10 +1,10 @@ --- title: 'February: 20' category: Daily -date: 2024-02-20 12:00:00 +date: 2025-02-20 12:00:00 client: Self -unsplash: 1561478908-1ceb3bcc74b6 -img: https://images.unsplash.com/photo-1561478908-1ceb3bcc74b6?crop=entropy&cs=srgb&fm=jpg&ixid=MnwzNjM5Nzd8MHwxfHJhbmRvbXx8fHx8fHx8fDE2ODE3NDg2ODY&ixlib=rb-4.0.3&q=85 +unsplash: 1537963447914-dbc04b81de27 +img: https://images.unsplash.com/photo-1537963447914-dbc04b81de27?crop=entropy&cs=srgb&fm=jpg&ixid=MnwzNjM5Nzd8MHwxfHJhbmRvbXx8fHx8fHx8fDE2ODE3NDg2ODY&ixlib=rb-4.0.3&q=85 description: Daily Log for February 20th for each year! tags: - daily From 41032e334225ec44e2de395a2c1c497a1853a050 Mon Sep 17 00:00:00 2001 From: h0lybyte <5599058+h0lybyte@users.noreply.github.com> Date: Fri, 21 Feb 2025 01:38:28 -0500 Subject: [PATCH 07/15] feat(brackeys13): adjusted the background and the spaceship with animation. --- .../13/assets/frostwindz/battlecruiser.png | Bin 0 -> 2116 bytes .../frostwindz/battlecruiser.png.import | 34 ++++++ .../frostwindz/battlecruiser_engine.png | Bin 0 -> 1401 bytes .../battlecruiser_engine.png.import | 34 ++++++ .../frostwindz/battlecruiser_shield.png | Bin 0 -> 5476 bytes .../13/assets/kbve/png/universe/object2.png | Bin 18477 -> 64042 bytes .../13/assets/kbve/png/universe/object3.png | Bin 19239 -> 64822 bytes .../assets/kbve/png/universe/timespace_bg.png | Bin 0 -> 17700 bytes .../kbve/png/universe/timespace_bg.png.import | 34 ++++++ apps/gamejam/brackeys/13/scenes/game.tscn | 6 +- .../gamejam/brackeys/13/scenes/spaceship.tscn | 113 ++++++++++++++++-- apps/gamejam/brackeys/13/scripts/spaceship.gd | 4 + .../brackeys/13/scripts/timespace_layer.gd | 18 ++- .../src/content/docs/project/brackeys.mdx | 13 ++ 14 files changed, 242 insertions(+), 14 deletions(-) create mode 100644 apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser.png create mode 100644 apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser.png.import create mode 100644 apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_engine.png create mode 100644 apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_engine.png.import create mode 100644 apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_shield.png create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/universe/timespace_bg.png create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/universe/timespace_bg.png.import diff --git a/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser.png b/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser.png new file mode 100644 index 0000000000000000000000000000000000000000..5399e0d7edd8535d1cbaf44aba0d1506c3f4486f GIT binary patch literal 2116 zcma)8c{tR27yr%-X0k73WF1SA=`s`E2%}+86S76NNs8PoDcQv@hVEo9BvDDkR3wun zW=xh*S>nD?l9;SnZgwNvo&J6QdY|W<^ZD;QXZ@T*v$wMr6P6bS0EitwMsnmM^jlFv zeA_}e+rbA|sH3$xsOVPw0RVFQIEm;SSuj_4(qF-PH^(d|nc9=t`i6GzbNXet$Cb=S zkk^Xj@NBm9r~PY`#9+(Mca|Md*D3iY5~gfNzRoylYrVP_DsCI(uckys%irdRp9=J8 zXXIromLmUjDPFnAycKQ`zq-YaWV%OPSi832H^IE?24PSM|0B3u>MZ8sc7q(Dm&1t^Xav+(G z_WnL>)Zx=+lOJT8_R>eQYcoB^<(JMpYZgwjjbc&@d|_a*Mrq2p%|;&J)_KRzk2@x< zokwFX1~0D|4H|WP4<5R`82t`UfRclp@DvbCBGz&5tJ$^M0g}1~lxG3|%SclM8k(9( z3|l;Jz4N$V2UmkFs|L1E^ZUwI0Pl zsRoS0oTI1j68o!cH3OIC(fIq^7HSsxgb%X zyDSs7_qi!MjYaURBhXH=@~*CKEn49J4waRS3pD(M9M3uS0d1fe3EHO|6q*Jnr-iIg zPz>mm$qT6n_NIcj2u6k!93#;~a6b%3WA}I$LF-8g)s_8@8L6|&lgQPy0NE{>UUy(1 z|7(0nL{P{%231&^0Q25lzRZ4^dB&sp{g*dO#HEUdQm3F4ErfxU;C0Yt!e0BZ!*R7x zd9Rbazljx%1gF0Z-SNED-$Mo|IXA1H=S$Xc6T40A1q%f-0n|petUnSF6>&zt(WQ@S z2OrVePt9L=b;!ip8W!SQ&!uM<|6wyLDBu?rp)$N(wZB2mv3CG*mCCGjz2vNYr2B=l(a#vqd#jLz`EZ{*K z5oIO94&oK~8oZ7}Bl`vaBKCPR0I8)m!2?C_wnQOh1lbUM!PuanovbRFAF=T@PZP4& zq`u~wmsxJ6N?)g62I^K{g|%W#>ARrHk$nw{Md~(su4EJ)#m2`XLub@3@2HJF$%tT3 z*!>^NuISNxYhiLdr`tKO96#xf-2m(NcNP9M+FZlYy~Qy{8_E>eg_&q|2ifAe!>DYb zlEkO{yl#{vMkVTtyB$qG0QZgy05=N7yWMi}s%M=9Mrecc@3_0ew+G%#tR_z`#Ga*@ z#FvvqIf8NrfNl$7-b-7#tjSix&Kze4d`7#2cr8NIv4bM~n9eO$HA&huYr%MXS$n2O zL1U7)<4bZbXzt`0A&&lvLH2|`dJ@#qupr&cU#863Lb^tF^21K6l4)hOu3IxicW~*? z?HM+Py5__JgD+9HsjrhV743=|Dc>gvj8yI7XW&Y1QvB_6U^;Z$l4mX%PuLLwFY1|6 zU-CiM$UE#CgyHx+w)j1kb^r^qFf-fhZ7@S0Oxa%Igy2Wd@D`R2yN**|0lm>JpyhPiWi<~dyYkj(aD@S;C zC|u?b0nBS>*3dg!ikn9>vsM>?YHK6_G}0q=DXJGIxX4!F;htG0vlJiS%af?EQ49N_ z4Iq57@!BON!~3-e8>L2i5^}`tNLGi%H*CVqhAIrt`5o81sbl#(JIH@1w;)B#kzcxR=;F|8nY9c+pHd4Z@Q2nJ_4KOAfb(&C=tPVJE3uT zR|!)_DqS-(d(Tm^rZLn`D(z(K2b%IE-6IHI1C$)Yi5!DN+vDOsK^Ket(bF7bXEyTG?ES~Lv( zK+(>Kq6u#J5t`Pg9y44&(*J?EHy4Tp%5I=7*$XqUNMD5Q8x$o-p07_5BFhPBlsp6T#|0^chB1*<8wa>L&i-!$ba zI#5o0!r9VN&4S|eW1>BH75KHTJP|3w<>LWucx3nWwn0qJu3rO|INB{r; literal 0 HcmV?d00001 diff --git a/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser.png.import b/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser.png.import new file mode 100644 index 000000000..a1a2d86b3 --- /dev/null +++ b/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b5a5g0gqvormg" +path="res://.godot/imported/battlecruiser.png-fa404bf0d548509aeb9af09f428bdb7c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/frostwindz/battlecruiser.png" +dest_files=["res://.godot/imported/battlecruiser.png-fa404bf0d548509aeb9af09f428bdb7c.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/assets/frostwindz/battlecruiser_engine.png b/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_engine.png new file mode 100644 index 0000000000000000000000000000000000000000..5ef37556a3ae89f1664203f26717e786d3438b5a GIT binary patch literal 1401 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 nl9uL13?wtDxr-?-+4!6x^gJ=ZhW1s(qvC%Ll? literal 0 HcmV?d00001 diff --git a/apps/gamejam/brackeys/13/assets/kbve/png/universe/object2.png b/apps/gamejam/brackeys/13/assets/kbve/png/universe/object2.png index e3799eb4e32cf0a0aca2d6217eb56212fd77ee1a..024d27db9817591ea71ce1044932d8e15a15ee78 100644 GIT binary patch literal 64042 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

    pwJK0t47lhC(O^!-7G=QlUcNYj9gRRnbB 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 literal 18477 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 diff --git a/apps/gamejam/brackeys/13/assets/kbve/png/universe/object3.png b/apps/gamejam/brackeys/13/assets/kbve/png/universe/object3.png index 60f409ff53bf40d184fffae3613dd8f46f66384f..7e02c1b718b89c82ba41572fd663f571b5014b88 100644 GIT binary patch literal 64822 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

    ^}> z5x)@ASf~?JmC#{Zwuaonoj?u zO;e)2-w+w56!Wf$D3N+5&r#n}LA7_Bl5)H;9X(4%z!R_D6egU~cv8vVF77PNXU@eS z+k&rgv&|$?c4{oh_S|M2V$IW4X*{uxoSnCD>&ucyDtL?wLdsd(KYjW%_#$EZoJSgE z#w+yA z$rNhsoV3NNbSbomHeB5WM`zy2>>8pX^K|bi~IXBZLHPBZ1uBf*hNA z%_CZ&SnT={eO{14D}T_TJu>Cg2Yl>I{E7DY83kSbaSTB5Ne>rU`~dxrh_3bM2S=?HtRq9?NmV8j_oQG3i^59^6*S1S8cyEP;+t*0z1IKR?-ycJqjA z>pGF%%*Mj=4W@i}@`-Qt{E8jk&&#KlD@}NPe}a#Hk|#ZR0KT&mrhHTT41Wre+Tk=7>Oi zI9}hOdiBS|-^3$R*nVl@9!O&TU$A_0M+2t=zXY~1d(WY6p(F+be2&L$XK}gV0{He^ z7tz^XG%b#gQbnDV9^9J(yq+iuiwDlaP(7#t?`Mc4Rf6ipvE^5X)a4U0Xxsv^iQ}e5eJZKw-a5~H z#?p9I3gNN08mER&HnMOBHyz5D^nSU>p`l@+0yM?OxI-_rE^Z&$A|9xudkJh^!IIW<33l%9`+A0fp@bav{>tZ8eQ^rzw(@3XGg>f?s@g6Xz-Kry%ZtS2gQiD zy0Zg_?jPF;TQ9%~nXIB5(d zT{w4sF9t|zwOsEBZ36rcdnQTTdv+$Xx#`uYj!_kOR?Q1Gm8D|#vY_S9X!5Pf%^~UJ z1ve4dKK6o)MaXo6YPyOV&NZZkA|53Yu)bk6V156kD|=k--zU_2EWh$LBQ%qnqd<`c zBT`Er;Zm0~I+cpsOJ9XY8l$habiW+1dI1F2=Ae7DV1JZLT{1GshhHSO=g=hwr0hqQ zt8q`A_Do$=BkY;!sGnosFz_LB;geC!BUsgNdfyoL9$6%_VD!-On#BwblbJX^b$GsxGaDrSOaPbo|Yh5jUE(OVUud`Rfm z79lsFI3#P7q2lGepoTNr{$bmSX3mP+#2di5Z7rT)mF?Z7@{Qec(Za?R!A_lOLsK== z&wLtd7S5JYu17Ba7|vZZ8aGU#fL#z9hsV>oEHzm4m2Ok9h-fi#Rp+HFyf%gZPezvn z^$lzYhM|%V<_X1ZIFS-dy1^Q6L%(PDTOp*d?Ck&_L=aKUHkwps7s#ntK0G`qL<%@d zm2}U$Jq=0ua2JAq=dEXmKtA7T>VB~xsoAraggKgeG zR8QQ;GlV6HFGxSt^W&KPGA7tPwQ*R~C}?D?0g}bmRgn`fFr}L3M&IP_6NE{)Qg6n6 zCS*9Y`T21TrpZ+T(zJ_ndskalW2l&+RGnSZIWCML3D|$T{B;n|NI-b+_sSTy$~SEF z8YLN;n<9b;i=p|^C6sU06j!!*t(>`>E8T-X?IYclO*X9M?5zA{B^Ck6ZG?_)5SR^J zvSWj517eR3#;-RQ+v^L&L>h}+*TO8r7l(YzW{DP zk-sIPss^GY6%s*GR~{HY`N_SC^bG-qO2@G)2h6jODVfa#w90=*JXk=hYNszK0iQPoaR73NsCtKJgQOnn zhERGo18kELlcRSvSI0F;Bfl}5@aDYc?c)*6-c?+g!%WiVDHb=V4A6{rfusQ#=tIw) zMaNm&a~gWSbACZe8~Scb5|=ds+a8>QqJlDC1&9d?4mUr*`H5ro*@yV5w*Ir9i61wF zvuBbnFNqgVS$%Xzx{EF6-~9vWE;i;S6R{8}=2PjOU1kN6g?#6L&*7qiqvC zlW6I3Z(=;Ugyr)8{TzJof$+7jDc|~*@WBW9=jKhJuCsLfMg6hY^U(leg!_*e-uRN# zzBQKunZKP(EJt?aV{CQ{nn@ZY(h!72_Pq5X~ z4AfA8`EkCh_ge@n;^jTqEV9@&1*k^(3b1#)3kcQx;*|w5-p4i=r@SMXgDRe91pPJLT9L2NF5&BQkv@yBfved`UH(l9HgK zgM17sXH1Sx#P5}otZh@LCF%T()o0J}m2mOBKO(hjDQ0uJvzQV>bv)PYy~o-=yQF=( zu-LYUs#uB{!hndlGJ_b%CPEX#TSQXKO`*4b{?fmC3K)-tzww``ytSv3a;4MiQfqze zM#W0>aFBFzRqRXe2}6Wu&%S^M^cT0Dj|Kp+T7iz}UV4>z2-q-~K*|k3%uEdx$#xu^ zgtnK|_1d4E+2rO+R-GJa8degQ4=t9jr^|E2IYd11>@y+sRC@=6%^GR5!Nz=<`GMUg zLqlT9=AbxaU42pHuVztWq0d&^9ITCu#>o6COb&AE{SfDf1~MCy z$}!D&kK6MbRMm*jmS?n+a{X||m+1LBj~~+wYbuRQ3Sql^L|J%ZRbwHiB`;vY(jA$n($+dZJyql zMQqp-mRsEP#H_e!{mOJS4pKGV+74pKhW5VCQebuYjvr(Gl3U7aLZ`bdLCv1}W(-a< zm%nUsV`#=%LVWWrteB8ug4tD=y@AAlqz)~boIPOKL?ojMt81!*12$&-@?nk8@pOC1 ztBvrDNy&j4w~r6-lSBG$$xlAL!*Abv#NYY&EQ6RPDoA3lD~SRB9-aWPr$du5^hcE)9<# z$npn2qF;5g{^?!ae)bq~f$M+u-`4e=J8V9AXl_1t!?TP0p-+gJ?1U03lH;09+(>pv zF~mZ08pI@2gQhMGDUMIz+BM-@-_mCGM31-PhZH=H67wZOVd4t4qFEXk>|)73x>#_h>v?V5 zaD6)B_O#(kb>!2{z@iJJRI$G|=Z(XfY1wkISmkx*@&eV!_5HD|w&3>0u5zIps0xbx zi7r37OX@}1XP1O^E8DxDnjaOi{OMym{M8Snd;E;l_BQ+A>(br-%(SdT)mwFVO~Pg^ zq#g)j5_a2wUXWm#V(YsUZoUtfm&j4j!`S-JN#RwhC{j7G+Qe0ARwUFpQ;7tM7_7Go z3*#HcPk;KwKBvDR_53ve$OEE>=k%|=&BP6usQDNLH4)LAVTtAQxHxZSm88{E%K4n} zwOe?%)zNtCXEQHSRF4bUvgzr9h!joa(&bH%c>w(5sTrLKDa7gcQ>xga=u1}PGq>BZFg1Z+zZqwrX073EI z(^sCwdLTH@d)G(YUkVW~#e6DZxkXa+$o>_|8MxYM`{rld`O~rH~S_n2oiCvIkc_Cn^!|H>H4C@O-doyVr(&L69XiS@;H=2bUu0#XoRkboK zgA{x@3MX$~lf{!>MYGf@X%Z!RTxwmgXj6MJ3;5Ts=eGeso(asZNIaRaA03@frb!LN zL`f=UhNf)K%N`fEzVoT!EAz+iiAusX`__hoxM`gmrBM5-y#93c%NLqzda znq0qT)&5l4$4_|Up|KZ*_-+wx=de-B%k{%=Wg5&nh6P6;3%7S|2W$1HqsuZIpm7^f-*(vqO zOt$wtpK#Cr#2jq`5D85BOxCXm8m zrWiTVN7Z2n)^BjG;2w!WmEXEL;))-5>&6~*=Y(fZ_-NVk-#)tJ&;QDw<hQ&d|DJS1}PZuBGlWJPCd9utoBKCRSpyl)uBLC71 z0O-Y}HC z%#WcOqao&Nfn)(*>IErk%3JSY{R&GtG8~JT3Rg~!S+q;0DC;5c>tB7J^4d#4%Wr>j z%DxTUzI?!^ckc4veY)h)dE(b^AF=2n-8$tRzX+*5B5f|QeoKmZj*+y=Hoc@oDUo`H zjE_nEhS;u2F`}+yz3NDPBqayIh?}LvAqo^u^l)EBH;z&>uS8sw^}W+<4_0OU@G=ik zRChXPMN~}8#8Nrs~fE+1i=%dAdJI~-Wt#dixis;jCq zKt#Y*4Wo+# z*?X*PpqzrMvCxsa_UD|yl=9#+Nr}AvKCv~@c8Qsa`5JNFq@J2|XHVJx9U?M?DF(IiLygjX#9JMnN$;@mg zC6;Jj10n-hFV6btd|!#iv!)911hDDg!LL;{eVzCX0|CM_^6mV z!Ag)ykQ$W=tP(;*C4jH3o*#%W#yXw4wCO5~3EB%G@~35 z^xTh;u)5^dlMhkXbITj!D`R?B@ZsZ@pI&zCMQHm(?L6(}h7==otNbx^HK|);DPm}r zJs>{O7X#Ogg#5RiHo(ijmx5;tyyq3xtTIWpfqN;Y(Q@#Dwf z1?Ppy%Lg*7wo)HXWms$>K^g-6#X^c{L27s1hM4sL1Tl$*rV35T#Lj0u)8I{#S@bC- z)95q=l{7@tL816mY>s!LNzYVXwCg=m14pFP9 z8h!ARTp?YnQPui>-Aimt!%TZY_&k@2KucK1GE>}HK>Ah zYb>@PicYU%-2xkWB<_-TQrfK~1$>E8;oOAeYBocWvjnBefDU3#{lPGo83SSok-*Jq z;%|QSB~EJNkCuVIeEWp{@{+piIr+vnk#@-+eRRgk;P)OZdG@T&vxYv=wV7UQaex#s z*Fb1VXhxm89;*4z1xuE?oy!`C8@xBn5{4%wgD{X%pt*JhDaM54@;|A{KvfUA-BwoJ zc#YUE?Al-aHe#1H{qj2!HiJzLOHwfE>-$V!za^qErRZe1SOSJ>LQBbX5{*cT!CM+7 zpU%szE%&fwW}~4vV9;OAZp739N z@25OC+hUu94N4pm4p1!_x&aEGWy-OIYLpX(98iw{(CJ}rVqu%D&z87xRM0Lj8HNaD znX%%N>%^hRzeh0^aU*b(s+dj27MqczvxjN_^*6LzTp}d%hsTVr9O(MfyI72N@>_pJ z&c5@z(m&fsSgs%?o4)lj>Vgc*wTKNOmO!HzNm5L8ENv~7^~*h5PSh?3vqdqa%g(3E zQ584kjTAp#B>wyV37$N80TlUTtmnG{+`1+Fm9Oc3_t+f`of{8$B2KpA`o^3PJvgsW zBQ#<*2F6nOio_T#t5h8wY4`A+xuZ9&Pd8;UxzKV1n+uWBDgD;yR;t!BstV~=>)rj| zGD#=o_%JEP8M!@lc@6-1?bfwe*JeKe5wyq%F)fI;8zLH6HCQx+l(K2a5>}QZt@+M>Vwu}FlW!<g&lm#1?VUK4 zLC*i#AGovM`y;Ea95T9gVAcLq`pXL&-FJ-5`5RoKG60;PXrco~z zO0%K3ZuAq7Y2x=kF&=M>`%B|HzhnI12Vdlq_zPRlcLVrO{zKi5r*1X`*D5{{3)NI; zm7FB+C8`%FGD@7rM8+WFWaUdDAyU+1YffI3?(B(%^Sey<$BgQyS{GZ3!{9^;J)HK< zbl#{yxLnGx-R3WMjCrRoSs_U1vJhy80K=6?(IDPop+_y{twAx)LL8}}ZZOT%A+g-5 zl5ZGIYx>O^7qd%`(laU`wk=`PakVPAIV-6*TQ1Je&~C-wJMDQE65D0YC!mMeXDr#R z8xytzM2lDwOpB~g#IVgd(j1aj&oT!=C7)hg0nHp!pFIw)f}-9LQwqctSrTpJeTRaX zik4-RqCZdV+N`MCwYqi;i+yQC&Y`cy=jTd5k2aXb{Cn zhC~r8q?E?N+ctET?wuKb>u(tkAM*2`7a^nn#_IWP0N?($xTCEegu%5g6<$+Ga)lv< z1qxE~;>6>uuqZWH12zUmDj|x9m(&IAo;(n1Td_EZ^mkQR%liJuY47R;*Br9$XZ_iw z8!j#wHd`SDtj}2hKt2gTjuR{E9P;6^C&0h@byB-P-7Zfc8r9xaX7d>vO9-R9MJUEt z=(2Dq^mM*P@i}BP2b%Kg(Gh277r2l(n>M^TttjRbZoTvtYkIza*0ZV#%BBGC=vINy z`JemCnzY-Z-S&CXga)1w;Uc zAB{3MI%Z?Ph@fgt2489!I@|W%v_5p_-}%QjI-IA`$xJW4|8bgq{g>nTSN<*L@BWhX zr;j9VItlAGADJwXSu6P@U@4ipWGR>%ZLK|e)%e37Sf(+*sDIP-{5F8U^p|w*pSof& z2d*G$sY+!~;M4;S!I8|PQX1 zlH?9-bs@IdV$O+meWnKksN1awD`dRCBmTIY_%lAj2E#-_D@286?<$9Tdz?LaoFmD6 zO>!P-CZv7e~qQ=p|9^brmg+Dm!xx4Q9WEr_#mHhSBZ}R2C zhCgU~E*~sOL%@ba3H;!5xZ_zDS|Jorm}KCy^E3b#xiDM?YZp^|xgCdw)oh!Se4{ zGMt^!+&q@;r%!RClHI1CeBMZkBypCiSf;KxwRqzL_~8#<-1Ywi>iKN|@4Y9JaHi6$ zSC<1rO({aFx5QE>Sy?Mi#TgVr2IXQlMsXtI0Y7xr`#?}{8ylb8#FZln+lBPu*t+4m z$Z)A*SWFEusJK#WyXJEN5Y8j6$uE#dhJgwYBX;o+wwDlw-89|NTjK1|U8KFlEMP+i zeoXw_f!JO`HOW+7SMP4cfe?1_<$aG#X8Z^5e}l3+-vX3vf`EZtQZ%twreS_e)Np7H=1(9 z)AK-bWrmfgAjhxa4`0R2k8x^9zrec7eEl%XEJ5cmGj#tpR!%_2h$}PC!*Wi7R+9`5 zb@`-247jvq|G=?bB~sst#VwY43Cp2Gib`}e)#2iap8mb>gvqaeJEd}t9$!-~o-%s% zC4Kzczhl+jSh~jx3ELi5dMt)~63`?PBj!_xF--`ze*HD$&Ld;J{sJGuU;KK08^G7T zCQZH8LQE~0B)mG3s$&fj#c7hyGr#jjtU#zN+8EOsq)ds4C=n1t9A;`-?OU+M>GmUv zs+ZJ$lD6S6oL-DlKXCn5|AMR@KgdC$$#yS!W(j8JU=8&F;*9JkPU!SXK3WsOG>dN3 z?@kZp&MpjEAL3@$(9s+dM?$e`3fpt6UqW+?HrEgp&R1J}dCb}AImczmPdek{(-psU zYs!z8aI|-oJEsHOd>=W!ojnUz-bN+z_BG}3pn-nLcCpANzJ80V#vH!>4%>_K`~jZc z#9eubwB4Zc`H5Q)KLWBNQc{mugmTJu+vM#<>afj1NJ-q`o=6ulLb`L@Bu>*ipRP9$7oExjf5AV2OzLxPzNm>Je9EmtX9&y3hVaT$pvM ze-XlA0WrhM3EIpuJFs6PTID~FAmbV{2OiR93H=IU3*vV<1%`$Ws}Hc%1y6+g?-LMGoa2Y74SNO}n`s;ku&f($?tRHc5GVtloKI824l6KP(hmhwJMF|AfPaoyk zfGbGJR!5>_e*|j4{tJ5^T zbxkxGakZATTubPU>g3q!{jps9@KfTp&ta?~WGkmcHA{xKq?i+9lzP^0?!oAKhJp6| z7xgs$!q)TK06zVc^v&M{Ib+fry*f-%5+iyIks_s(G>In6a0sQK6(W_0Innr71c#O* z)6o&GoZ9S_e@Cpli>t~odhIV+jGo}%vJl4B$1-i(LM)<9Ooj-iE+3>i0Ezj~Yh`Y-+(fBT>QAB^G|Q{VFB!-vE^5V}Yl zU&F>n$lKq_P%g{#V)H&T7F~%I)7*HR%TZ_IAdy8yS^(sabkksM%tAiVOiCI$tnbjm zP+yAQKY+Zg?dl%dH#D1|3S>>-ZR}=lVACg@MnMisXmgwjOTAI0Hg#L8;0{&h1tMz zFc-tTmYk-LQw~|d$s!^I5v@gN5T7B^3RI3nB)01P1_YU|e`2$<7kvH7SJhMN-6q)6 ztFQQOXtj;k7?rfG0J6UQ0{ycm!nB3W2LJva9<1*jY$}|9&>n2V%gn&iSiTnmGVSob zL$;TAJoMSc*cPXuG@zcDH52V>$=8pCRbyn&OjAL-Hdfq! z_<;Z6+ux>t@-deWui1@(YyrF;O9P|dKkD8oMi_l#66VYXzpjEtKN@vV38u|c&# zs~RUBHVG|OhyaKe88f*UqF^Nv3CqlunQ=ejX(HY{Qt#`V=w;hDpN}~Lwr<6gR2)$sz%V(@!2%azlnyH`si(&zwj+= zx^QidMQmGYRTUq0y|~xbO(#sFxcfq9%_g3oT(IA-r_HX|d0$)zo2RARZE6Z5CL!%9 zv~%?61>94i(N;}i<+&Urzv*YBA*K#Og~t||t+4BT;qZqRX=YfTi(L458J-ii+cI2V zaJkv?Y{=|;L#U`0GbCk_kK}$w=$xs&f!+BUKJJUZVZFdZ!0Q!ya<{xuVi0R=n(&lJ zwCH?=J$(#uhF5C{EreJ?O-|>aHRv4A6OzY64#GsJ=V-G=9HyzJI-O%(7VQRc?~z;| zNt-Uk<_nLDns_w#`I}!R-dM`;;1SK)S~owqC%gOi@iB?SfQz~~TGZWQ0>QH60IM8m zrVabIzT$lNaj}vA{QP^Lzu5o)g$efV`>+c>j;(LbU-C^AJkrsoAjzVN{Qb3W6ApmYW-HG{l;C7Y)H4%Hh<deC=%R)oU-4%>44hr#^q_RT)2i!tCam4x2&pZsYCQu~=Vzz@kGe zs~2}wL7mcyBsFUAnRV=LzwG?r-9l6R{QP^Jzxe|i?K^up;z|2!#DK?lc?uzYxTxJ2y2~&54O0pr(tFZl39ASAhbMqK$K9E>fOe~nP zAkuh0;bz5#H058|2$c1oXoS~)n}76=f14kDJmF7%1jGJ7P>2Np!mPw~FOQ2zr}~Aq zAsAZ4;w}_hs23%7FoB$$;W=W}47EKj!s^CN7In)^mH*@3eZKqn8F9Ac;z=gyjO=wO z)7u%G-9?&H(8$|w+@uS0#(o6v5ARJb)ye$$KmaOLj7vlpkyy8dYHT3$n)*wpOqV4L zRi^Q<8g=x12Ge1M=#B(K>os|EMdnJ)9!t7i8{jJutr?Z;}n`z5O`G$H2eF|WUc_)cPbLbZ62*v_=} z`!b(RjQQC6vB6!)2THJtNL`mFGFIir%mWM?K6sY!%a7pVUeOU)Mvh-cmM5@zP?&-? z!RjWmyopojzod+~92A5Nx||bMEh1GhJ)bSn^(kqyMW#JNKhjOGn?`P&toX)@xA>%U zhz;2qUi6@k#~2zNuRqzAjq@wkM# zMl>L%_&x&_+O%lhBF(A{3`Z;J#bm-P6sbhlL!KlP1uKxfDy@Ns2^MOt7URne@+(q_dK6X z0H|yD+Lv@Cd&Q=Rg&LKX0|0=up<(Y(sbHeG`{8NCQfBofP22Y+HfQSFABznSoUkCo zEXK;m>9)4*fe3`^tbu95Qx*x;q1VqyU8CJ4>GFOlvBy2cqRD5xhGA2v!wwP`<)2UQ z{M^}`=Qd-f2ZmvFpy5aGh&BNs;#5d|RIJOU32hsG|LxcL!v}EO3|wtSs21$)gel&D z#cfO%=;{cq0%S$BLgoP*46oNnHOEyCJw9bSkft)>k1e`90u6*&z|HV(LZ*>W)r8do zMlV9Bsi+_|1oD2scDpho35HDrZdq*C6YC(_tQ&2EQ{y&%{0Y^p@k)YTfAC25_a93C z@Ue>~PTu}|>^^?KSQ)E;n+T@3BWgKiTQK_W3okoi4Ih5^DLsgv{qxxefILNVtPxtn zXHrZ-W{6atY=IL+HH%%F7wRmMwqIdiIG)Aik;(_^$bwIRIDy!nJ=s*CxE1f-p9 zY`d9>2%fVPCt)j~;2BxmENHPXq1= zOBoFnB*l`Io?9GMLA50wEg^L%J>UP}6D%3qal}T$XD=`|H_6n{v@lO>K zX6W*WaJC@t1`x$_F7C+g=+O(*=P%>bNF``h;m<3eoB$`xYeE}Q2}srg0{NgA%u@lc zoQjd^aEOz{f^{$)yl#!rC z6*pUymj}m(ZMnJgSVBb(N#@jTA<~E!P|&JeX#F!>g=TfmZ+-1e?mc)6(+SJlrCJAczVy1n+x5(8Z;EvnAmS%)ydmTDGo)UK^}B;t zpo!ynaMO|?KM&@+7hiGKXYj!XpXy`zSv;Rj01$z{^`;!>q$8qesuZamX+?+#6=fh8 zQ575WT7pgzBwONGNt+PtD#z8i+Wx7djif0Fh*wPzWh7gxwY}$AU+{~IBj5Mc^5jgW zTs#4N7!IB3fg2!R$UtsLtdZpneEY0Oh&>-B|ANnMKz|9lOD1zZ+Lhs%Sr4kXXC7US zMU`hm0hQqzPaD`>K;D&=Ts6bO9GTxj@4ij2hHBYh*$C|%a=;vJ9?fZ1Yxdh6k_r~q z^9jZcHU=zI$odSKt#64}_x#gBP)sAASuH zAN%5ngo6Z9KVXE$v#987;lzcACuebjZ-X&=Lwt8nr_D}J-uf!dN@a8JL;2YZK-`N= z(}SyLbr0e!^2qKBw;h{(J`?zNJfBSf$QfRG9gg-|y9Mq?CH@_e@Ub)VXT-ukE?qg!T1R@-LJ^1Cf-E^6sc3+wvK5HzQ4%;1a zbRwZ`uyI7Hx?J^c;3g$;xVZm#zb!m~oQjEP&?3=oj$!EVVT0^0@!iw%qI&`#(cBdk zUfLpQ2jd2@0lE!BNj8=$;<`Z3-yqCyW6L9s&zHo-oT-PC7iV;PEheUUWY}Jk_FF;( zriuLI0bG4hB*0ps%^ccDwW`tVxNVTUNA}l*MTKv-kambScowt@XcNnPP6CRQAQS}4 zxrmP}A(m)XC2!G&QM3|~wx&5-lKT|3wjIr)*5JKwFKL4VULK|>1%IOuWpD+uej*=^as?ZZ(4ohx21pf19bMfjj3fy zGu!reY}eNkv@`EBCKoTJmz@>;q}$tQ3`Ys9VCi61}#v$FH=w@B3#wO}5Q zVOJD{7!s>eO^52RDR5-!A??e<-yN!e{RU>ocykl4SKK(B^Y*R4!*PyF#V%Dy3Is_E zyGv5PMLeTn!n&T&RtI}9EqG}e@d_KAboH#P_bP{J!1g;d7K?LvE_PZsrK>ttd}D|j zAqqA*H*N~ss}he^vJYxbCkUUizTKlc9VGqEY@)nEL8 z?(v0(rWG3}p0g_)M4zt)oZuWbD$eO-q~)IJx4sUyUxiT1=d8iM`h0c)z@7Z1*JL$z zVv4Fr#Hj>ofx7Je1t6N!s*v5NJ)5czPZ_QsGQaaCVRj_b_K`KGZ_57JJ*9u_o;O;> z>{E8z4_)32x1TfoM3peBA!@SiR@YzrGQ)n4?YHt=Qi~6VU4ID=kr0c$c&QZ1z|g() z;Z-Ot0$%L8LRo$j8dL-!6??C-L&oA)=%GQ|vtp%j=Ow!8gip4S@w!8NAT%|8xDjH$|A9t#%CY-JbQ!aS{meAm6sL)Vj-8EuU(F=G+V~w^og5Z}Uwx3{h zR3ZX&yNpj=u~4%K8#*M9cp3^td7O#^v$#kI0b-O@wPEw#4`qDzM4R(>7_T48@boDX zqlidBUbEz9e<0p{AO(v>4}fa|u9f7Fn2##UsnameGQD;O|LV7d`}a$@%;)F-bw0ZQ zu-(F!eog9mCo!iWND$G=uv+Bc9OP0Vt|FMb%vBjQ$mEtsQfis{BsN@-r=91Fj2HLZ z9p-o5q*}j&(@jsdZ~HXWB>_iVXZ2X!x%oJ(<{Mof&AU%N65DUZT>zDEa$XdE^#amZ zeDy4s8@xQnU~a&m(=Gurwmm9_g-21(2uWM>xMpSl=dZ z6S+@lH6xE5b~PeZfOUgRCH_pSiuP>9ayds4avlhIK${AiS4>h-QHFk^5vd&8ZE;s{ z!*|b+dWQGc&|O0}VV4=tMFeHzNOP2#wuV`TVTTXJC`D|9)WJbk9NIaa$09y9*U-+@ zhqzF`e1>-&X>(u4>k%xw#HHk}m>Y(w6^0K~&B~ZT#2q;#6N$Qs6UD{UVv;6{tb8Je zj_J*};HMuSLRvmQzj!{o003p(b$cm`EMnMm7oZBLU8*C~`4@<*7ktbs4f!cjr11id z+aS4rLhhc5kDXfgSX3qv5zp~uPtzpkg2a_~{XDD}o3L!Vc-Haeg&6&_l^%MCtk zi@Q)xFphX%0zjmD0{bWA++w3c)u8(h?TmP5!IzH>(Sd!M*i1rIXKd_BE8Rv;7tVkF z)l)tggeg@JYBbDX8cJ!M51RxHCEGv(h*RHKV>`o=p%R(4>EM}Q&e*)NW z@Kdp3QRZGMCW1)qlbJQ*DTmFEf6VaY2^tj<5gP|IR#?gf$5C7x^Dr0jlI)78ph55; z5Y&Pqre@CCl+4T z`vC4zmGvGbB1uHDln_flFwR1;t4y7x$wQsqqiM2MVTQ1mklwG>^@R=chV92AAEzc= z^=nUA!faNQeaS>(RoH^h2V#eQzWfTfVb7ixO0k!U05h0+$c9WkviSs^2K49@zj}lW z+k;~d$nr&`J;isA0EPA(4MoPQ$4h*e(ESCr-EcdOoW(6_BPR{~w_iEt|Gc=Ob45J! z&t7WyUq9UObO6v2U|J~{-$N@7z&o5nFg5OEO^Hx*0e zhbI)akOvncBB96#T?i^;bYBnZ-6DC`)6Wxy|I+zv13=%y-7m^)HAxAxLq!PXxFa>ey#gda-FH3j*49xlZ-}$>dx_=*n7ViC_H4v4<%TWwF zHIy|PV~1QmM#YLXSG_8p18FE8g$8o;3Q|=_tO<)_@^)X+fen0r&BJZx+4h>9Cz?vR zp(94-QJ3gl_@hhbA_bFsqD^EDxWGReCWysVeE=ws6=FT0{bV(;+*)(SFnAL%ufm^OamGkWVWI@ zT9Zd14T-cjwq52ApAEdeRQ~B}XZ*?24b5!9@86koYZ5}8to9oG;`g>xVW35Ljsr9_-nAc!(To<#EFpGvxX zNT{TE35=syg0wrNt@=S1kS7tXKr7c~Eo4IoXoz0VTTm5GSp+jQL&%GL^vmVm@T1SU z0>5xR`v7qNKKUEJL9DNdULj^>FD>FCo}tiyMaV$bD3_>=a=5EF@YoK$q?8*)#3pWP zulM|dVQ^xcH0LJW|p#$ zQ)vS%ql=rx!FSx2iz*F}y5fmpMYGS?BXtXTLYrAhBp$X!jTnlC08hnQY~14G4(XmE zHZeOtCglaPKEa1vn0&4ruaC$>=E2_iUmkWOlxkM-J1ga%o!5MMQDHIi-Zo?A%p*)w zp(N)aqrtf9t@s&EWo@b2z!XbDIF6VxYn*PMIG@AO%-D{OPYH=Fs(RQAbcg@GN1K)+ zDXeaJbFvnj9+9#kxQtg@G-wH5$aZL>#H-~Rt!8+dBqx(wUw-k6|KPv)gJJ0NaQll( zdHC*ABqV{PX2~1L*ESjt2LBuYettgt0N@U*Q-KqLRLp)LS-Qj!U+T5|DJ9l)re&SQEv2jbYT-cP>+Uh;2)@wJ9;du5T zK06f|f8=#|#%i_ozH2aT$pe)36~^nLBozJGP)$l+2K919-fwU(#v2mr(h7(pRaHK! zYT*}<@!gX`eHix$xoGG2Bjz>U8G(-2I5|g}7f$KTp&N2;JfBJK2g&_Vq{E`^ z>)-m)m%sLVzqe1`ZT{k4e%GtkH0}2SqvbG?$=lN*b1!`k0KafP`v3rN?;gIs!{)Ba z@jkj>Ztf;3CWy)NUf-Xmec<7(|M-Xw7v z($%}fruH0Pk&0^}7}KyOXdg~bH(oW!e6>+c&or)H(KK|rSZAFtoN;PN1I*Uq*@}6H zHb@mw^>W*%Otn~%-C;afc~4{664Y}TdR#-{1GJ~W2=!@c5xOTZO$EQKC)6{-B9nFl z$qOqmmncOnM${{?A{tsB&G;vGDsEJPmzOQ~CgJ;2#3n_uLWsl=k+ue@U|AP+VI3hy zG{(}}7;K&lhPQ<=eLXvhG>FmQyh}g79Y20U32>C9a0X0Y4j#Mb+;tdD`&F% z<3AGBio6?qcJl`FTkFIBMHTBuf9ZGrmZbfD8n&BVy$YKrAKlCQrJY=2@K|p z3TZpfp98>OI=>tM0Pz0%uzbb0cVD2At+x0>qp>$ zu)OI$K9%L|JN4N~6%Ep`7o8pB-S)tiOVBP#-=8yS81ZQ;Ey5vKRGS&rZ}BuD)4>@x z_sHrFl6&;V%Vn78CH&JZBXxs!Bh{=biCh*D3Di}@sz_>ULRKV4wxQ+&6aLOg#dkVm zRad;1BTwrZc@7rTB|mW8KoS@Q(TWf&WLYCqpjv{DRz9;swh>Dcp{j~)nvIb5Wfl-B z#CouSaB@O_wG-svPL$PMXET-Vny`C@C;aH`FAAxb&Am@NG!4s_@9OTO2Nrcoul?3* z`pNh1@8A8y?~PXvp2)D@cpA2dbmG!`)-hDovcVr z&`~Kvuc-h+I=$Q5wjp>tZu?^T{Z*QRI&@7dkp$iL{C<_E%BjL1#O+Z z(yi_{E2^eJ>N7|kX}{Hr_wEZ-!Cfyw8F-n?4R5xk#+gzt1M6F zan(@OjZ7cB3w3*-2xmC#%f$}T;dTaTL~<(SbAFyqG!<%X3?+FeHi(Y}rSeqfnDq>a z4SMt{vfn=y29yd=Qsdyk*&ph^|p~J^L z8k2^gE^!v!rX9jSj0(f1SQUpxw(tE|v~6Ya>TlxRhtfZN2AC9UBE#)x0N~<1=%k|Q zTJz^yfWLHpc>w_6;sRvF@WKgeT+B^SL~t#9)Sm_7nIn@p19JFsMv!!14mw6HN)opO z1fQM0N*V|C{;430vzLA+rt5nyal!u4hs@4zu()*sVJb!z={mCvxjH#E4Ps9}C{uJx z#N(S~E0A-!9YcV)K-ag6o<5C-Php4ewS}G=DrlGJ>IVKiTofsWAYOiy5r5k~NdKP(S5ts+%W+kW!gA0FWuKfKY<-8SMSqQJKBVRj> z{N9=JBnay{geH(9jLFFo(M3}XPYK09#0^gww?h0WGU^ctPMj~vE->v8%bdM<)MYS{ zk(5$w#roz&=lkFPoD6h0zuW)-@bDq_m2XOHFC`{KL;`4VC%9*^IFsuFCHYPJH)VR-T*@o6j8U(-Fi7SEH{CpW^= zKl;;Y{?=Er&W^NFxcpFjdj)Q22u0O49zsTAi!5KnyA9r56ks?E1Pj|agMhY2UCW1CerQT?y+)xF_rm7;~5SS@Ta z{Od{iQF0V$9M%yU6*jKiso+)+ZdXEQ!kXf^GB@Xz6dvx~TDbSfhai;Us)_5YtnM%LeN%MXD1Cgp<{=B<{=6egDc49!}t+&qGIl`2hf6zZZVv8!Ylp zvYLjHKqDd|YTXm@X^;3Q=l~1?qeD`c>?H`mikm2glSF(Hp$8kphi5A3O575$J@;x+ zV`FbeU;JIu`HRx5@zoc<3DW3vsq7vsJn(6Ij-4P6=$vT!~@q& zpbknc!YwVf%HmL~u!u@j;YKYq3ZppzLOkS_&tPA|gZ)ssIOxU%^6EdV}`|=o~(p;0rbUxX*lVZ!|G-a}jWd z<0y<$kvCnTJm(Rg_IUra*r$&dxVBio!N)yrNkl-Km1@0G`mKsKE2DcKC23sTMDot7 z#X`m>4;Xhz^W@mD6}R%2g%m2W7Y&G0KDUbDqxg9i`X-aU@|({0zt69#h1jnK000al zpgt}Z<68U(OuhF(eq~+|TQ<$~*w$LJMGEQHN zT=vRh5%5|`2>);i?=(V)imDI})kWb_Jts~(L7Yv7KknfNqw{X({EKVj!C>qS7OnE| zD)DGLp%~unQJacSKpODe6$jxo!0@Dmr-Z7o46B7mjA*kEPn(^XFFodaB5_83_C3rR zjk7P%u1}fWdPA;%`W?w*LPGHN=va!>u-J&Hy9g2h)8cI~)Xwo>jJ_wm^G)YF-}yA3 z&QI<9>HxsS1>Aar{n?Uw+Tmp22zENJ&Eg_GA(Tz)Bb_rEW0?)8n=&1Zi*jE}!VPM5i#Zpz|BBu!wW z6r&F-7UIu+14K$vo*#S#r7jcnqHFy5#J~7tmp(sKMOmndXiZq0AbCVWO{iDI(-q6R zE&auaYjGXC?uFyyidWWw-DsQy;U6!BJCzWW!=C{M`<=rnyAeg$BDj<>$`>cJ&auega3gRq86DekoN% zv~G#bk%rluRJDlb(PjEXEKg|NVnfg3&O5AMd{cIh?g`n7wULS!))el7X7Q;uKT6rh znR{w){7Tx2|LOn$6mCF$MtA2`-*HWx1yd&zC116kFK27pwXYa|de8a4{=`|m=)2o@ zu)OmHW@t2X$?7DK|( z0T)wC*?exJZ(h9tKY8T8YTkjrS^zLjC0FoI{>**$f_Jl*d>2oB$B|F@#QpmpIsfDT z1Rs3hY`5_4yYS-=n9g2fbA0U1U<)(D%nUVAKiE{c<5HG|hkJ%lE%M1b-;(a}13X9F zefX!Ex0jN4k3yv%_^>^eP#slA$E54agOLp-XD?RIt?tSS&<(%*7~fvP(3O@THi%`U znjQT13~7$bi@7*1-hNXDAt3W5>NRp}1_VSMAC%k%s`G{yP9xjov@vkI7QWa(1Kh2Y zF++H6$^E?im*){nFbmE_0!tJB;u=2KCH~DP*ZlaZ<8qgHVI^!HJT1RJci6PWhfVQj zYv=eh;a=hW74(nFinF^eG3SQ?sLof&(P`yZ&syJKRqQt>67BmkUcMKG{YosYNxLhi z?Swp&7?DE;|Q`S zFJ?6>A*9s|$*BN@L%4YkyvvCi-z#Ja*fMbUH1g6sFc-KUi)7NgSSzno z7!BG(8&Gb2KZqsE=UR#J-p=`hdFE?#=YN0NbML{Hdg{5j?zq_qCL?Lwm-2qv7u|x_ z;APOrbPdx5bWeWnplk+d5>b$PHW9-UO~XnS^N*yCd-^9owy2|C-TQ%#n`b^df7P|U zLkK2Fwxch+E;qjXP4BO^KD)7&@oG~97`PyrAQ_dMGqxDiHaE|mpM3NywH5f)1c1NJ z*>2%SKZ5(u7+?9C4|DP3oamzyR8>I1147i2OjLC7j%q<_0_O#G{k8hTje|HJ> z8c%vy9VVzEs*wl#8e7-I(~2*g)%@4D1AlKJ{Ll9%mN-vG=WZ*!UBe5tFgeT*o&`2J zo*fC#g;j>)+!o`9d*iky7E{M}t_QZ;Yhr&*KXs(t6?wSC%t34XV819DX-;pG(*)ij z-BUa+%9_wpF-WnDE*2)oM-QcK-J1C>WNvy0liD=M{^=8M&%dVKqaRAzJ<+t^Vkzmg zAJ{+oM5g^l#?4O4aD{_s`vgpwBqUFwVw+ho{^Ap7xBGOSu}|TA4gmkIXS;>(eUJ3p zzb9EA$gDF>A*wi0T_Q+bt~RL=f-)JFTy2=J|S{#YVU`SO;a3oPH82htZuza(OYuU@~w=-I(W*Z(j_2 zaJ}W;cgzP&+h5n@bB`=dik|xt|aT zPCXMzNpd%OeR@ND=)FC^<;0+j?-J)P#o4k-7njATs3c#oTF)8Bsi^+4mtoY-u@%^3i zu?6OhawEWyoh2E|nKov+J`+;Lv$5Z2q8s}$^X_)!Utf>x31q4GhcBOFQMuUf2~237 zNO>al*XXnb-!lyHP!&wDJj1WO=iI$3eDe*xvEA#WAx69wp~0m^Xa!o(HdvpWxI!cfIhig`2zAUyU-}1g^Nr+UdH?loU&F<&HLi7RRSdKN($eW;v4_l9hJh z$&jf@NJ{+Q*NK01?ff?{&iKK;=Zv1G`yG$^;s0UpO=2|5t~RT zi>#5PC{ZG*R;#U6tJRR)fD9XrR>OeN=#>F)3~#(J40vb2I|JT(XD__+MnHRLK@zQz z#i8aYE30ydIlk#lcQ{_$Anm0^l~q(J|3CndtBm;KzVq%m=RZ(Swg@2dU4d~`g$R<&3ub-)PefBBHH-XV_=V}t z9_F43)nYuA)Ssqc=Sk}wWBemA(t&nTZU;8+ton2sLR%~M?tO7*>u(uP3c$~T-~C;w z%M&vhl1qjXOqmiRjMk`(1ZqJ_&9eXpS9YT$FQzEd^v<`_{OOw#+hb-=zb3=tzHZ%p zUi|95t?L8zJ*jOVCTZ4f9=w_V*Ykh1hZl2|MW`ve?HYp?V{l_+{|>BAbEv2@NK%Zg zu=Oar1DPE2ZBjz|$akKbGN~L#ryT?sO$&MzZcl`>LBT5~C2FI5=7n`k91n^Q5t}?0 zKJpjqz;|cxWAAvciKuU&U-HI9L+xrrEnnH+V}E;_vvq^^EsDcd6Vmz-G$%P!)pwb} z8}k-G${Lw$gYPiL6t*r$s_P#xTppW#aUtE=J1U5zn9}&!Ut_fYw8Y^;!g8T@=c|wg zN$r{1!dd#q#`s4-CrYPE2Scy8;ES02$|OGg`?CpnQUHDyeEV0-?r?4ubtd=vwJ0O3 z9fOPzselr}$rYtXrKm)Mhm?}{7%_vETSk^2zA0hwNZOEmBjWZ5y~nspV-zzQW5+Y% zW_`sG;EMfM<#|@#Y-f9J0V!snii8d$EgA+WDhLsg5>sSnUdj>4)<50te|FY$)CIIG zskcjpX!*udH5UO63-a4v4g00gYvO(z`Ct>6h%hSPZf)2dSNusB^W#Ne83LDG&qcH} zW{Pzq!rEhE;C`o6D8aYb(TwDK((+TZz2NtM`?q=H&F^DenN3hsvoUJ7M2Z?aogkxX z&1kDoS9a9ilGArkY12h486i2 zgjnO^`rwxG{{6ocqdZDafckZ}d zM;=B4Jk@>*Y+AWnT_LeVN=thG36}16v1AJeoPkIATF!y ze20tU$CRX{lQ>y4WC=#D_fp-?3*mOKM4g9l%5lip+%d-U+s|}(C z9U?Qg;^^cYON$Jb#LXqN9aQ5SLl$FpIxeT#9Z3{M6Qf((=Ome`p)(YF8aHPWLZX_F zQd{TF#BASd)w~B&(>Ae&wZK_acSO%W^}eyrpdAn{x@07}Yd> z_AYi@n*MA-Xf7l(WCn)Sv8l%swFcB~lR^+{3qr``d{w^joBxRf&)&>soNssjNKh@*HPZ_}<~_EyD5$SC1(tJ4ii~{`4~> zHPT(4Nm!i&DFxX=B#EID(TEaBB#cC3qN>_7Z=E*t8G3XHtJN2F)c!W`qyYRZc=1&k z*+Ht1M6DWC3z9^#!h$)?P506A*lH|R{{$s@WE?A7E%P5=kj! z6VATFX^#m#=8An+TV=1F;?qFa4U7pqw_EXWIWUC8+C!U^H!lX9z@C90U9{Y96WdNG zHSuZFvsXEO{jlawP6z&URd6_;@yW8|Ru%Y<4=shP_-MJoXe9Ikw!~Ev()p)Z1=;mz z-y>y}FHR|eEhP*MiaLlb(FfIVfvb_`!3WfbudBpCmJc3^BsHYFUS28O#*(yE>s$i2^R8msw8tq0{9$h+uL+mbtPv{K@y`CxV?UAI8;4wZ)ygceuPOkx+&I<)x<}l)qx5vrkaT5tE|=-*`BrmeS( z`YwNVawV^nB$}gD>r|k!V)*(ul}{djX^X&<0`Rlo;sRdy2Az1e3(=UOX7dS&s&eHx zmeZ_pW2deHB+0N?i7nI;5yEl|@tLD#&CTId~o(e*}KW z?8ul9X9`lBXi;_|#SE!$nXoxA?a{m9Mx``I$9n6Z{ARlLORt*qH-4PV>?zUqLhWdW zYW^&tzYx)=7%NIJ5D`f#PD7D&=A9gKa}{~>nyfa z#}c&klDrkQ0Zn4m2>I$-ObV@bYH80dB{Unri%7Z}2#O{dYc-o8C|j@ohD>gMOUr3c zH%>Zv=4Fg-h_ZuU4|Xyu%e{SPr!y2Q<=wB4gAD{RHQFpdYLPESthj6w-`hAI zZF)*EeA-)naM^Jw1^@lMi1!KU&qxpd3Rynj?DB#Um$b2`O#$N+tr8{<&u$})b^#9(Vgpj*#?783c$~bEG<^n zmgc2bHRw6pz0o0Lr<@!^rmCUoZF6)XvF}hFP`NS@0Yr?NYNC^;eobQNsIEPqqHarf zcHdt7@c+`SyK~=9UWjeGRoeDVjWQ2y7)@{8K_**h2&AqTyobIg`wA49M?ac?@AJiW ze1OIdqUXl5HyPF!q+tWT$vlB8wIMstVtjw4`Wp~UIOmWwP`i>qK}?a9ppA)kv&3JV zlPK7)3yxO}@3+E1Rq`)y%!w5I;>{iY^$WY4t&XYEC!B4Tu-G6mp*Bz!j-6S_H=cQl zroW_Xa(c2UYa}kRv_in>fFzG5%>*c8L?$CxZwys!j5DO^>{OrWfhbDsZRq97_JspwUrqy_Pjxq6n@_TaOVFI7A6 zqyYR)FbwecG5qj7_0Rt@y>#q2bO?$ORW*_%5mizUje}rv)_@^h4GFF2;7$ABU5quj zQ81Tp{U6dk`Y08XxxIY*J!W6ocRR1_7!%iVhzHs?(Q9}ZyD-=B1Z{(eb6GJs^jR20 z76dWd%Nd0BO1|$V45=VS1F6kCg5<%CA#K11wBCWuLnL{O5j6IY5~*9{Bp(vd_jnxZ zKA^UOqztVmc!wAGqzl}tOD_7Jce}`c{`wyO;d8e*oFDRUKYlCE^G16Ng8|cWvAN`T zp1Diu0w10ANZTUa8RNrS_*P+l7sCcySW-V+c_n}`R&)qL*T8fu8r2{wQwwu-rL&uR ze;}#rM3W$eQ&nfuuu&=MwEM!h=r14Rn+r+4&+%|*&Q=sbk{A> z=36;%`b&T(1>p0*Fu?u$gs**vK5m$sq~0bqDJ2ZihzSxUAnLF7Zz@-dd?6Vv_x2>V zeX6d%F8$F*jIPZPG2$01(|`K0Zf`Ym@#foDyOPE-;(r*Ik@U(jW4fF0Fn95CZ8kb)Qj3>!>YV8=5=T#n?@h;ZdLlr(QFHLL!N-(cbfql(0c z5v9j4Eyfh0c!g;V*LO-5n+|6UpR|#W+70htJm8gS!JmG3kN@ub|Bkk67*$(rmIJa` zlll!NDt~(KV?J6ek!p;w1#|;`6LZeN_8p{O|odhNt)QQoQQc{r+MWV4GAd-w4O{j=! z4(8K{=n$koeiTMey=41GpK5(@O*9N?_iMjsPk;EXmOJ}0+21zW95KH&x8t!dx3)_& zzb3wIjjk^cl3?;yK(L4?sqL~`aNmHb^IFZXm_Pj#TJ93NAu9#TZ6vOopxj|PYUv6?G(AZZRt*w8AQ<1l(1PY)QHlb?Po7&S4iB-e zwyJTRQhOw7tlIHhOgUF^Gvelfg!P4pHN<{_-+UzNM;}QXx}3e1r+Xbs zX*j!>h$caUxZMM6=}_O3x*=}_i%ISQVxJ8{cX#O?Js`9jG_;s!3f+xdbVjbxMqxs%sq4RP^17_VNU2PhnUi?FnTy#U;mEk50K>Pnf!a%`h-F${&Ar z#=9pgQf!!6$FOPfXAe<-iJfd?y`k}*y=xPKD6E#4v_#qk#cWL6v`|)A3t<)Q14!cO z8+XjvVo{{Jyfm>t72hl*EI*a@_+v<3!unj$kW?ln4VTg{&qc!^+0->9H@l@u_~x(w z%U^r`TmSr@J_znY&pv#7wH*is@!k|6m^Sr8k$CI9FZ#57E_hM^K5q;|_7ZF?o-NwZ zzFuxwy|gYBA?i3OK8Q+@W4=(y2N}eM^^u5i7-zMbPtXV{DaIHb9qy|e8|hCL_~nAh ztT!$_K%*z7k+D*jv$2@z7L%>HbeETTE)adT3ah6e2K6iO1DaCy-J4#^L%+}=dk09L zZM&o>P`}QFK}#6U^LjB3h?H0g#&wO+L=hV5VS}_s$Z)~XEEw0@v@uc`>ITr1d+dJwF0XBBG+vgQ-Ml5mNN!tK#GWQX>#FnF4FN zuYT)ye(}ZI&%E~d;`qnw<=Kh$ixnyZ$@myem}!+3l9V5P@TJ%XJ}ChIf8po|KKMX+ z<44L-qlB9F;3@4#t!~GtLjfilMDjc^8;eWsKa)=(x;r*3PbGOpTp?l8qAAJbV1^V< zy33$id_{({Po%!KXMd-!1>Ghm6!}YBS!D81$ce-nu7Y+_gt#GfYcK^GIy89*8zgxowDjGQ6g-iFq>+1T zgE12pe#5Um{S<%n$uVJALr7@oX`6x3_L$e6-s6Wq_>8{k__#^vWQvR@q|`$QnO$K8 zAseG$9ck!9Lwm*PONQCxQx)~bZ_Z?P>qW|I&oEp(K-?U0R*0>b_(()Iz#!0zgfmHD zb?==&`O8Pk<$D+J{qY-N@$giX4xtyDJSO?J3bAcU<<0k>6o4oA|A@r`KKTSbd#K@+ z?-FdoR<8_Y!bGxFRyM12Wb;2~(`J!9236ElwIJ5?rz@-z%GpTWWIIuR&DiwFnC^kF zIq|-}Tkdb$t(!L)x>k1n!Ee%>oFUbW(;t5y=`J(j&38z(1F6eBe;P2=F4yipPu#jm zJim{2E7A~wF_aT@*nnT6q0ilN^7(66A+bgLGCOUxr-)x=YO!z8D0nfvFh68ePPsPS z<@=vKVqYru_nzhO)^nUaet?uhGal2AuCr;^lx2ykA&kbzbk20P!}ivk4GAp;r;4p= zQr94oNNtOxjuZx!@gzz$(Nyo;QjM3%mCg*yle~F}Yas;@29yDjUPM}uR*ZCLY&J(9 z-3#qJ~$L&uY2EmMzN(>21&zXsdndtSWxfZ&~jv}?K_k0>6oxt z$>y>}k|K7L2i&$s*Jt@E?@9y9jc>r_1pET^n=H*u z8_ev0)U8ok@L%zPI!s%R_2-kq1|F3o5gV~j^!#q#omMNz(5F8PU$btGLdLlLUkSOmZ+Ef*7pj& z!6cWNiDGHgpyim~eEJ%{xj*CGvlYA3U8b`w)@z|uN55IIK0haEBCc0RKOlX+sMN0D zEJY+Xs9L-zo5c}D(;zWHjEoB_CPuLhNCv)7C%*URiuYgiN%~yyqyT&oXd1X^=wEw@ zNxwv`h)LKhnth>4DMk(AYSkcV`t+fQ7!zAfo5wBcMsfP`H)Xh3iC;Wsdgma7AnCHX zlQzqhV(RYf($ZXts)5xJcD7GiA7hL{%n!U7?;_eF^>#KGt@jXhnL{vK0v5Fv!U7}8 zOZz1!tDYDnr)^Q7Lx=V&v_80UD=MJ7Kw|>mV|<4x#*{Z+We~;4jCanLTy$$r&X1v4 z;lwf2JE*Y;8_Z;v>1YH)Ah@U{;!Dy0!;=E=#o^)tM*9>ywUpkQ0_g90!CJXF*%xvP6@&+MY zsCS?eUBIW>_C%cfT8} z5fIn-=2%E;kWNI0l++tcOje>%l8S0dCKZCN%b1d%D{sH2d1d-{A5RLv7YS>nd+xUE zsFx&aj2fd!9U_H3xFUJ4O&EE z65RA`{crcXf*NvR|ZHSHQPMu;l9I?eQ75|VnT zCkP#Ox{sY5pv_~%SPYtzg^~xq!VKq_^)a+(ltoK_@&LM=?4t;A_bZsyJ*c*_X=%Lr z3N55QZych}fu+S3A}M>9I0wayXX}0br}YU(vEj@&{1-3p^Jt~K^xPqTwwmzozw`_* zAMWzn)|6MKV{TZ>pFjGDU1urB*XWmzQ9B3ic<~#*!D4xVE|1Z259uz^atqy@8TzJD zah;Cs_fdZ?v0q3SHfS7dfBEoAk{#uzVTZ^SJ=1|WRIF+eQKL4YUQC*HCM~K_;;j#_ zf>!=+<4FPdqOn|(e(6_aN+VIC5iu5}KqytIM5IIC~4mh{O&pce7BZUxOPV>T^P|t8!vdF~ZmqsSb(O@yH1O<+CsG z=K6w1-IAk?@cn+nXY0Uo*Ph~)y)FLD^Ck3&Nq`?MRxIeac>FGDa}2&k`XyEqXOBNa z`vz7E=oWxMhP6=CNa2*(C{fi>-6&D-+@z>yW>_AfBrrw(VRN>7e)x?|ibGtH?EFBq zU5lV9nxl|P6ITBN3?;Dz;yE73&Hu=UXQE zA&g%Chq$dfM%q*ANiDuBb@8|r!dS*zs$uYMwq?`$LO^h{Ei??6vL^X~us+3_}|M_2a)5LfWhFa1Nx?Hx9q z!t5>*dTcSmrCdmUba}){bH?jiW5iCF)D_Q;clhVG?(pia@Y>99`Y7-Rk1lz0ea!un z4=DRfLcam^1e0)4a%6h5M2$tu{T!8M4U|)Xh@@l*I>PFORNHqL&fgZ_tWk}b=bSTJ zt_rV_OvJKEIZoxRZ@F;v4wztYUaSvRtI&?il>XvL0eFJX3zMl7&tI2O+nZ#>VWdE{ z!bqi3&2{J1f27E6-o4ohjXiezMRaI&v^^t^u2Yqr`ZyPBp;_m&;_T$)GK6b>R=U&rt8uC!@fj4Z|*I2felQYlv&RPy6;E8N( z$uW*uPj7RaY$4h z-`W?y>JSVGgwUCI^0tT#AVV_Ai>L?U!j2Q)|L{oxc!JLfA`GwGm6;AEMQerhlNO)` zJ5@Wo3+|d}?*E7|1T&nRF}{Xdz42#SZco8FqFSnPsm>|h8*MIyI3Pt0s)UOZA#~WC z>$wO_cF>rw`q>gZhY~dg>Mh2TZFDrfy2dNT)()5vhtq9ddFDDpG#rJVhfPO9`K@iZJ+ArKj`_~P z9`7H0jExOxXfiozdL#ee0*v+$DcE`HB^mGErVpKH><8-N1dX-U+fG8eloUHu!5E`% zI!Uv;w=mXHOs3+Omw6*#hP)n3y{PGfI&UGabe4GI9li`?peF_3=K;>aE6>YrJD6Am zD=K*v2&E8>@fWAko!%FXh@>PM0>i4ofEK&Ern>Qp+PEZ9+SELfaxy0cPZ}JyQZwHd zDQjG9N$pZ}=#g%5wX3&CQD#>l-=l4xdwXjz<1NhoP10&ZvXeXq;L3S8TLhxU=Coo` z9{QfERulP0*izOmq4`;^G3a#;I`=qp8&Kd@XM5 z@auC_3lU?r-n-81sTahQBWWIdB+)nglp;*4BAqC`)#NvoiTyE&AO84DK?X8k^bha^ zWUupEb^S|l+NK!X_ZAYL^N>QgD|J7T+5L?vw+LLcq=-M8sK_(Q2C$aq(o%qj`z z52P|jW;{(|<3<=Lu0Iu0>~WL1N@(+&eKfkt7Id&aL(@PC4asj%VYgJi>=gx5XZfwKPxu%6V{Gb4Wx-h&Fs8!p+|C31n7}~%@K5-SUwVf5 z;U499gqv*%qcH-ao7RequO*D&+m`XI>!hwV{qkI@TQ5p;{#blF{KU{%NJ&MKNhGx~ zxuQx&YbAYo9-AjOfS(ua?ol0VN##2ejaX4}0;Ocv?LwR;1P8b{$lO?hs6sWX32htg z%@=jkOhlWtrg}@=c#2OYlYJ29(&>F8^@!ALFm*+7?P*EP3S%H~<@_U6e!JTOV-)}R z6O_pQv(Hn{c4!wTXg?svu>bOF%=Y%!T%03DQ4HF*h%q^!bTmhb5mIl#utEA`k_zi# zMO`OCx5gek$8Uc7bw0kd+?`xwR_!vUq{A(^c&!gibXg6rrs_gB7t1o49|IZ}_FR@wYo09jm zM;}Xb|1(4)ssqr0^di!UFeu`Unm8b-YwQz8peOj8v9%@rt!>#$YNCx<6{u2>xd0VH zg;J`@D0p|<7P?TxNZ51|HjS2h`?0roHS}X+{NuFgwkVC7(k@I4wW?19-^+C6O2qdV65;R#`l=#S69!Y_w)R;pDlUWa-yA%{KdJZV)p8sXSS4uUsj;JR ziU0Oq!+A>l?t$h0FmQqA-+XhA_s=$jHiEO5pIpjaPA0&2}A1y{j{gBG*wN;&Fd&=7%eklY&PYS@# z3l0v1*Y3!*3vXJhR#XdPQ>97;)IbH4B4TV2S8~;iM|b_%IDPTkuD}0%O4m_Lw#}sM zQy*r=jw|E(50L(XYCe^z;GZEck|ac|i;% zso9_aKJeh-r@Z^l+b|4BQDO=U#VF4bLW2wq*b?I}k(c z8e!xNna>mmJ`jdL?0RGvNHKGKXj)-dm(2H_#ML`8EEi&&pgxE=r-&vq`>KhHk3fQm zcp#{ls3tq1R8pxgHyWSHWSV6sRRX{3FoPH}x-D z7cP^Uv6j=hMlCdY_|b)#+DeDtQ7?3Nlww@sxFsj61$y{A*(7iLtQnW$SS4N1G! z+u2@eW>c9S+(6w7+K#xoKz%mZ1kE`Ee#rZOXVJFF-&+IDp+O;OzJBlBMVbptQ2-_n z7wdU8AL-7KavKv{K5Z=To_6SH!gor`N!;c4_hzhO;FG0CgYaQ&*^m(N92Cl%o1P&K zyt-H7V&uR2wY%I^_;)9t65@c3O6Vi$C&Hv^jJOFh+D2r6q(U{#Y{l)p#Aw=RRdwvV z{3h>y4lN-vtdtcj92bV>K3@a~Xo{Km69%L#u2P3G zA3%x{FlY)$y97XekJt(ki>!~Jzr=`UgOT9zVTo)WV#0uiOCEHm3?cGwn{ys%;E$S) zA9PDDyr)Wr)sXngB=Kg`@t-_D#`GO;U7T_tEjL}@jrE$>Z{Fr!a<~+zCYIDiv>rio zo&!b&@PiOTPCMG(>7>}ICG<;Tvqpm_^v0ysks|2ih2KWIV@bXhL6edbgG@?-#E7PG z3c9{|O?me-rSHGMgY!4TlLGMbf?xer*_yW24ue&(B}fg75ypa!MHv}~AY`FXo)H)% zMb(%@j7r?BNj~7*g>(<^7ceTKoPxM^H2jYO|$v%*||UbNW4Y~Lkm zg1$w@TM%2IM2CF9T~$zzOZ-m)L6mIHS&g!6_bRgwXTcVkBM{mgT3QvDdJZl^vw-%D z<>mtK8{XWUa%qH*mZy9avoXT&?eFr&a1~;LYk7><-89JuZg3zpCvWJ8Yx4lOiT8tAxgG#qPpr}S_)DzmJ85YMmvthEM zljr^wl1{W+HG&3I5Q7I3C20~dsf@%PG`Jn*lTW_Llk+#ilLGMbg4bU$RlPJ;io&Uu z2sOwE)v>@xp%$S699+%2j4gzeL{ufTt=j2CQrDX9_*}xWG2Pikxb@wynfBqQGMt|? zJ>1g1^LU+!GpeRY+HDM`puX`H!6@b zR(yK#fYL^MYKZ*_Mwk5FP2n3mC2yTJe3UFVobV6!rcCy4vs;ZhU7q1hO*OkgIR6Y% z#9e<8O+!vY^1f6JP`d}jzF@SyV}{H7G0k2#y1p-A@h|=Wm231>olezw)e9vav;&SkY7}QmQawbnT`V(`yno5jPsA*^AG} zaJCc>5hFrM$y5`ug^}2Hppx8lqQ!i!*IxSu31`+1P8i+#B@Nz+`ZcZ|nMu8r!bJ6h zq2E~5K~mo$ySLHf4@glnfhYDziuvD#g-8w~wP3eq5Ijmk{g5>U+c%KDg<+G8L={Y3 zVcm#&_mGejHm6tqgvSK+ynb`e$B!OhV?eZ^SRY~fB@7LggmgK?H1%sX{ffUhKVqjC zcxGPn2gjFuearIi?OFct;R$b_Jf>eRnN|~;^#yENNIA5ft`|hajYiC_-;w_8WRKSG zOX85xv@xl@hjW(E?dMFqcwdt55r(`PGznupB3_dEpf*l@5f?jS<=s#J&b9$h3c$|` zUVL5ZQ72BZR<#h(GACmuE2)PRB~^Pn;l{83Q+xT=TM$$LHEI6bS2e~)sO&-~(A7B_BU0A6-?s)x z*wT=aASq%-6=}W7L?9fdnjm$JuFi67`REWKi+|9DB#xW6?yz3mLxVw0fl12I=^E4b z7%8&D@UX$Tg3^wNSm>76Az}OiGb|Z=#~(g;%#W5A6xQR|@H=;R`P$g>za2kjwd{zt z#B@FQ1OnQwa}cUVjFW6x9uh=Vk{Vn&RX1{4ZB36U7=-9Y&mJ6f^)>QseFVgAc?v zJ)i=ak4p?lQDdA7<-tp$pyfCx-HmVFOs)j{g7)N8s-4>s2Pa7nwVrvYCQ;Wbn+7iu zy~uD$TpW`w&Jio5wg=~OTwX|MwT)GOCAul{fH0+O4JIbf04CQ_KcJfm;8Ndna_hjzy`#9f3KkYWc-Tgcc!x*jn^{NUsZU z`_k$H&I`b^g6$Ug=6^=3PuPqAXfQE|0i>7_#@Kho=?A|Apaj%>BX;!45sO8M;cS;X zZ>0M99My8}x|228T(WSsg}?9ui-VWU##<!ej~b_c9NmZxQ;3;BboNwFP|X5QczJ6%m41mH6fH3Kj_iAu$5o z0L_sLK;@wYAxU%TtSZ55t}cjdn$1_%Wpt?fCIoDU{BLtXrp-xLm70a zFDZWZp&`aE?5p#ig7X6KtRMv7!6S^XeFX~+Kv2tSJ1PJLsmzqsL?RiH?BW}j?3M5T zQ{4OcdknjFiWo9#7_B(^s4Fsq7FzZ1X%otLXwCqbgD{IBa_jBIEmk{R#;90`i86XSv&p(GfjIhy61PZ#m zcX>94`PAn?9|aDlSrDHpVHT^u+!8S z1Y2VLU5*StBzLyXH~~3{mWzBMXn=+_CGyw6;bIO5aYWie`3jkQek22^7<|&ggm!w* zu*w2m+Oci0K}dDqV*lgqG>q`pxgHD8Oq+Sumi|abU4D;7n zm>&y&IyC&^$TWLoZ~GTSo5eX3$`CEj+aJ=Jf!=4;c>3c6Kof9T!U6hE3UaF5N;E(m z@yoTxviXs^qq1pTRh5xqMEn$a5MD1>fma5RjAgvlw!vhZBD4fiEx4S9(YZ?8YV$jF9$!ewmghkXo{~E7}01Q&$+D~7IV05y%BZgtTFxzAj z5l$_v0c_%XQ_kEx0i+8~Vyn)`hRhyQG?8G+WdIyj8|wIb46FxsTC7D9=uVM!3a&Zu zSAbkILa(H(_>|a*mB+1xSh9_S7qNH0Y$PV2n{r`EuOTVd7mo?wQrYZSXc?i_x}-V|+xcvO zLn#mKF{UeiUuhDA#nhQ^jJ?l*9$fMXc)~?C?$ysK`8G~Ip{)fy_`G&EG$ViuLF=Z$ zrRIGirE1VQqI=|RXxw$rTDPFzb_PkZ6~yjkUmwCxHq#zo^5@whs=E2~ng$^K+{QDe z4{rxZjA$dR`b|Lbc_nUIu}WrQWO8~c(ecw%W!{L`e!Aq<#k|Ai-abI6Tg<6+f>||? zbO!H36Iag6qS$)+j@QvXE*37|u;$36T{*PP<&LH7zAa_R)2+bg+{woiYMQZX9@fZ# zdH9@VU>ON^U#!6-TfdBncAzMnAFrK2a@u%Rnfc2osRn*goGNAHpTarTK!d2hu)48W ziR*k^Vn6L=fnZ)E)ci^SA!NTN4elVabOj~WiRuj#G3YU0*Cqtb3(h|QTwxg?x)i?* zZaN_8eZD&TJCbJbo~=j=79D95j!N+wFR=JxHVqZVPKxoPgU*PPp?CG;FP1!iytT|V zvRB&}fz9Z_Lvzx_dX8Ia7G0WtWKW7sDr#MzWrLHP5IqE_A@ch`b}lw9g@m%3MH-sF zJqypIy5Dj;UXslpW~Aj8KP=`^@*f|+_t^5m{>$W_m3XC|7OIA8NGsWj(T8^@>k83< zrDuJ@MPUpLr(XODV6#nxWisQ)4BHj5ZLZZJmhU9R*1-Ouc?M*A-F-r-M~ooe)wFCl zFc!x}$(I^R-Znspu$-oq2cyt3qXLr=7jE)VQ$#$&2h~uh#l^rxfs5-?`KXn|Zj!X& zQPX$_yv*ToLht8oJOKU66|oC&VxHi2zL=-?wX=G10Els|EgMGoC?k4E;wRGCw-ac! z-e+n$h_9xRfkX!w9PGBgDX@4VIE2R7(uyWf9`wnAGf~565fw>anTxiGSPJ{61da5U z0?w%)P;kDBh&6T?ezo>{kZ*0nSYe+d5g=@@l8y^Kj&!wmU5a%QjDmVqd7dx3kx0Oe_`+x0`!>fVcIQ%?Mxpuys+mxm3>y%f^A8clB80 zge@wzs=Ah=&eT-zQW}@yo7c0MB2%r6ySxa<2?XUm8af30jvlxrewM3{m)2RD@#lU8 ztPsEH0#m%JWrg9E{gXcb49;XhYAnkF`5d4`0fnj{M~>qtxEUA7?UA8yj-XS?$Az^Q z=Hu#wv#aK{?(ctDTB5EfAi0};zg)5bMxS)vDg+q)>w3zt7}Sz(!C^}P6Gt6k-#rr4 zQ3)9xA6eGmFTXcI#WIWy(=zP7TEaVCZpo=(qpNL)0tB(FoWC2h|GH<0v!~FF%l@=` zyq30pNl0AS;$%0s^*S!m%q4;pRfkkR#zDwC=PzW%!()-+r4PD;{dI1y`#+(q|0ded z>Ks<^->s0Rp+w&?%ASsuvn;hL&YI2zTNV~O3f=OOK8?mKrTp8^OefTy{QSA)j-G4n zzG-I6USLnO%d;oqD9$lTy97(}!)`rZmhsoO#i)!(w)+U`-+9tCxUth=703gxz9i|+ zTq-Ry#P%}_5@A)!df7=w;@p$p&yUSW*ye~EnP`e56yU=PWu6FAKny6HMV}$?dHsU} zO8)!cS_Grs1(e#!5cS=52qBJd4^5XhLNoPOx@r{v>plB?vf?W6$(U^4`KcF$0u^_nH(Ig#%OF92?t-ss?DtTkxMNb!$9)e)MBAz8vbuE#uF5OXd{O$bb*%J zW9{9-v%)c_@SpF2s>f-A@g9HM=Odr@`utd_s(BD`si z!X~Hh(;G?fwt(#Vf<$NE+MkFt->^iUMm` zl$<($n(H$`u{e!wd3~BT1AH47OFQ;wqeJbg3-slZ@6Q}I66OY_4Ic_R&XHpFO;Wx4 zFbOs@ikLWOi5X7)!=+gg(coaB&LNF#pSDFSt>q6za%A+B&0rYbC^|M#kr%0Ctu*N0 zD*9Q87iOM+guRB4|9_&mUA@`-=0wHm+pVfr&Dcn<({nVYfWi+BSGU5~Ncxr%X2+QP z>ycKG4OKg5$EACMT|eVG=?`_FYeN5lD_ek$z_YoXH0X zAQXGszP2+`sxv1ii7&)19{~nPQxl;mU;{e#RS}Nv<42BR@~r-ht9F9-Gh9k;j|Aj% z;+oYNBwElqMW5~>aGKu}mzOQ(rzR%X??dLH_0lsdgeYNU`+ow}xYkK1Iktz2U9~y;?~}ErEh)8mjA@1>}P<(K9BJaM!_mvFLB3{RmJ5GykCz1TuZCZealt}OBV~!C#@GE z!>(HeJ0&0>Gm*43%BrCF=tfi6kLnQq*`8ew{vwUX(uK3QhQgf&BON7~0fE#}zpN~J ztb0bzqJZZxr?M2?NWat>rjCbkMNti>*UpEF2TknnD=go-K8xpcL9ymmG1Gk=+7!fA zcDJOTxjQm%r(2$4B@bGa^rSB%BU#sOOY4kDbu)W=F>!}mLNyR>@rfBAc+M3nY^dG7 zKiyJuc5Tt-1(TXYKeBq(UNI~l^Ep3}x~z7O<)N5;nThV#z>rX*h9GCz%itX_8F9kC z)m982+i=ze{o_)eg5SF*7!FdmF3F~4E_giV%_ zi{lW-%F`t)LjOZNVhovB()5RY^^&zSL$6c!%FEFj=p9gqr4I2YY~W9d5c4~q_=Ha6!dV?;y5Z`)1+5`be2S}qy3JM4R zObG`B0V9Kc_?{shhUUM18rwbrM3XNNSAhcIV>N&kK6*;$#lmbn9NF%(P%a1T$j%;- z%iRdF=XS88}2ePmVckdu8+A&3lLZ_?M+Np zy?eG7T%pb;i^ZArsidFfLsaxV%A-@}l}gs997II#=(|+3-2UfjpFW1g1}k+y5%)&( z#aO4X7*l!`@TgMg2m@lUDmMYKY~;BNfZ_F`ZOeU!Xhx3xNo$dn$pJ8xxB^r0AdOC-wGv{CmxPZzQfB92=-}zW`T@q&TdByHtWJ|^#5n!b z%E0-WV3EQV&!1lP5t%Zw-M&|-bu_fYFx<1+liRaU6o}+|ucvLzL(POGNngz5uthAf zwtG-ae@ejtBuX+Yc$RBkGwINAj!+B@g@raN{ zT7n0#bDP+=$98qqT>gy7FVa!x_im9CWQuO6|+F0t1u_X7mdJkNKC^R8^$zwHKnbAX$_21ZH5q5t~ zur|oidJf6b=9_XR-Lp`gEMuk>4oQV_{|zg0wG@6KZo0>evedo)ENUr&dFQrj%kI`& zGj$4#1G1tUVcv<+rp!fGEOlu&C~Txw$_8Qrc6!`0g&e{4ad=;`xBL@!aIjat^f;9q zkw%VJ9Msgcc}2RoIb7^mltl-D@gEwo2uw7=YL& z2LjJ|2u67~hZ&D|H z^pzIeE^ez+>$9^s&}ZDZauTH>MpKIcI(P z)w%I&Fe2}H7J4Uk-#Qprm?>|Mi$aT%n8E}L5tEOq%$Gxq4H1irYr}R#E!Ck*n9YBs zz|XL{PWM^04S+fXu*As$0fDclZvXbq^5#}2jY(Q3;HM5B&H!32LA+h)RW#~tej(wA z@u}k$f;k~gCSlcM!qIgTT{uXUw#;NDh^6IItSK)CrmJ@v9*1|EdSE(V4(Q1`L-D7a zJQg<2rmSXwj4?MEr>sIB{2F}m?&yTilO^Ro_>ULNn;z#eDT0d?iR%i00Hd~1Dnx2w zSj^5x;`5eUyr;*)89hzSli+vidBq8B`(IIzleMtYlJJd~57;idr6QB37k(AO3lTvN zBoQ}jD4LqERD%8H&ftD1vmGuuWmHH6DD6*iCRr>}z}^vj%S-$CC`-J(_iT!fOW_^* zBwe>4R?HI9#mG*9QEioPM4f8R%x|9b%#K^Zh*T3;+Ff>47NWe{owxKz#i$v=it~5XE8BNP$B90vBl9=_f%RvN`Z$DBC8Lz3=3EkL2#4VhMaC> z#2b2n;Lv!empO>-BjAYaAWMpj3M=IN_B2plbE8A3Gs3>t^S-9RqKXKly5z>&BT&T*T}Vw^Wsfpx(@=`X@8)%GT#{q^r@YPM%WLXrId!-zxAViI_mH zt*JD#C&C1?ZJLVnOFRk1k&uGd&5qq`q=9j#h9q&tb1^|E0S3EgTtmJ&|9%PBRl|U% zqxhBvxM9_XqSm!e03E1XlG(j3&aRF8KC>Zh&gL+IUX~n+_pqn6!R|kCFtG}dH|ipj ziW0I|mCU(K-|K%LRfe-(fuF8Qlhcu zB_IR{97vvo(D$&Yi0`CQ-9$`C`PqF6f=p%?C}kh*h_c;cH%|lnXIG4IYLC=<0{qUa2e_6J8JThfX3z8 zUk7#7;?^fXMhP1HmAr0qxuYhu0F2t+fIW|+;P6}#PMCx5uCnI_p+QrDl~XEi+itFAUpV^NJ<(w~og-og zy;?X@7*oOll`>K?MA?TaR>|WG_HPfpc(df2Qx(ZfSvcKHzHjI39 zLL){VRilL@f1KfmJpgew6CAIY+m+uA{g4t}}|IKl-mins}2QKNn~ZjUY$tuL&$ zIUILL|7MBO3If9*Vbfq|nNPBxw5jx&ocBMF3lE{mPLRH$Ehhxy<4NZJpI3BZLuGK0 zhSceG@S{Cbk3?qrc!e@U%5iEDH;d^}=suin=h1zT7Ci3KTxnNI=5M{b5b_NFM3sdp zgbCK0xyRErXvs3vhxZsPo-2NOB#RjRH`o|uTSzpRMAArb`}?0(*Na8Im!J>}&YNGg ztSmUa?fd<0Wx}YSrG{U?4MN8N(0)=GVs4{a_W2wDq`8n{gZAWtF$3uRrhrzO%&ICU znB!RIZ=Um{Mk(wCuaE>prz0n!bwl!HoYnFf7PFS}q1Kml@d4$xcS;kcK#>K|qg25G zjOKYU#81uZ07PHz#M3 zyPv1=K#(6BPM-N%|FumfsYnQU`pjE=o{3o~3#xKpPS$CXinP#c*?TuU?!~ESC5+i@R6e)<;p39k+u zKcj?=j&W7z1EFgCw=-QvLXN2|u>5Xmxeem??NkOKC{SBOe?5$V1 zW$f&C2Qk^XR3Y*wsmiCChS~>h&XsVvR16Z|EaCS7?b*i72-J@;iVO^Jya=ynBNxm_R#2mN*m`R#TwH(Fj-=^&vPwH1h z1%}C@%XBO&Wsh|i()I$Pz7gBXcOj8VfmIo};-Q)j#9)fd8lYsfW@ZhbG*De3?q9V) zyPr8={HzMnfh=`DtNU$|+U$pj-h0w9%xzLjdaZBgy;a*JTsRgbsp;#7LLW`bbEtY3 zNTQyBuwiHzpwXI+D`~#kyi@h$_}3YqRgjf+s}}BIRVs6=btNt$L3i%R3mf}GEHh$yj=B4W? zE(jx+1h!@$23YRE@b{kS4bS-Cp;9{um;vdRB!jwx2?;Fz#=bmu4Q|{C|9rk3)HZmx zh${yEfdaW}<>r_5np{sCpM&moRQ+Qav$5R1wwdqN#g*cl%sNNniYxYjF;ty=eS=bx zWv}9v9Dwq)YVN`s0!z)Mm*1qU7ajqZ;ZQIBSNqK2bZE@;JekiC0hRp|0alaA`3P{~{fTR){;TP~ z?TNP{9_aKLrCU5GgprDvkFRB~NuAEakmL8#V9?lHq;$w0>N+YkY>)TD7k~p}$nQhs z@>iZ%YCSJ{H!lh||55js4`-%5!}DC}7+He*+a3xrcx-l}7Qe|@azP1SDVHq47v~hH z_GRC0c<35U)R7U4QNWtAMJ%pJSr7pYs^w=jBmV=Ub~kSzj;7({92u_rW=k|e1Qvwv zhHyw-AbVWOTml?AL%Qc0@Z7 zZ*Q$**Pgj6E;G47+epZC!H1lf7`zlo6y^x9BttCs^cEh9Om?nghw^5t6NA)k-1(JA zfehM1&if$w9=P2z-L8`{w>t3^gIKw;$bGg}m{iv9kuoLEBjH*;x~9K-SXvT+_@2~r za~a94A3M=$Eyzsw=rpio64@C|1NRJG@k_JCJu{=<{}i1N`@kBaS4IGdWIRI;BXR(L zFWM*xOd0D$(ZSg=s@miwime)aiTEysYDhD`D4ws_iumFC;(wc^hImWBJXP<=gtfGM z+$t@zVrFj=CZ+&I!!8no14B3Jn;rxH%Jc=?X?5IV1YM_qvmE)C@?tlHMb_ODU2kOJ zHpo#zm49R4qV+m5aesc!)##t}^j^k)&1IUhFLzzHB;J>ByaDdAXB%0aV>E5b?okHb z?MpfsWbc)e+*d_MInj)@_5*uZ&I!Z!w@W?V?t&5Q-_VV@FQOgriPu#?$x&P+4?;~j zz2Sk5s}^r|=J8wq;x@a=kiY^J3nL4eimiJA@qFnGv#xjQ#4r!ONzp(88h^-o&f4t5 zh(@cJH>LqEqnZF3^i=s0kQ+_JOI$ox`mOw_dr=zj6R;b1_JyfV(_<^?#$>bpYf+;RuKO>P&Zf`2wOLl4#sA1_Cls*A#OM|PN_oJ*h8;|ilR&b8$uZ_ zt*OXJbpQTV(A6vKg&wb2hogcz3%KazJX|h z;x2o0c8N>41he&=Qqo3E37rH60kqm=Kt-77_skRk)hMF;&k46D1czk+DJnC1>#+4B z^YGH+T+2(yVdDrC-E$Iq3ip$m~xTTE6EjLI`C`X z{qlnEHTy3pMJWZ$T8ggV2PY=^oS|hJUHqbO`whoKF5RW`Yl52lZ%qNUJ5rcSkfgTb zIYi;Z*yqv*v#cucG@;%blGiz}%20fnSONKI5Ny1jv#HD&hu(q+^LN?zmtuK;o2#A? z=G}Z}qgkxVKL?9Fv-tr^4!s^col%+iy&`s8;Ms}rn1nl3+R-pt+C22%ViW-)!HOeD za>+G+U?R(|&~*nK94$=q~ ze`=-qPNQLlWEQ7g@@*Jh+w3z$FJSpZ^;d?&ig*}D>KM^ zyLh9DPWjXW=Loc$*UmDcE{i`-#q(8%>or9F1%sI(c`5Jp1jNCTW`(290Lq zMi3b|0Wl4k-ao)YW=1WkD1ji570dfH@(_-mi8YrS%1_<_rWbG8aP zJ|O=w3eAR*ahoj|F)CgF5tLkvugE~fHM$l4Q7o_-tspNiDO@^)kssn;x$e*lnR#S+9)T1xSdlJ+b%#rNpH$X+H#d(g~*lcJf1SXP7CT0NfwS^#S#`d&7oa8^PG}XkN{3SY~Levon z36b(EDq?$_{f@|?7uAv+jyx=mo#cpRFI*JEaR+isdKiyOk;MyX8bY=U(8h~E zwk4>j>HWze*(2o07gv$$r+)iGCC?$l$*sQmw-!Kb3;<(9*+dU`w3B zMqQ9x@&B#E9gQ>0ub?pfD|a*lJa_tF6~k{lWg^mni0eyI7(kImBYYS#1%rqkZ%q9? zf#F-C)-7a_VUjm-2B^jwcA{fYaPb^oz{7=?x6~+tj`sOTFfK^ALky6Xq!AC8h0%_p zF|**0?yHZn0fcL}J4vCj`8?g0SmSm+C?p{INvq&Hnn%Ohego25ffW&knb3k%6I|Zp zNJ4Pm%hd&q9HP8>ST>1VeI|E>{#ttPv8-{gyAy@Oc$ff8>>>+v7Wcm}=GC)fvAnnM z%($-mXnB(zE`Q>QDagd3V%#$+M zC3Yq8*`Bu%X41V2)ZCXHIUZnM5?mo{88#Axz1Fz=XKc7YK3Lh~@BnEz<*n#wr*`hApx{QrBHdnH&cu)Gg{+mDe}pq-?-(u{6B=(%wY%w537Ts zlObA`C_Th_p2RRbFfTDt%pDzUb7QaLwdvk{Z`>kEi>1m5wrb;ww-Qgm5UZ;r(k&`y zMpl44R#3o8yW&IA8W`nF55LH@5KMevOpTuWAsVtwn8eI8TiW@?tw8e$12jmTn zXR!L)JMaoDiy&r-eB<#AS0EFX&KpG|=l$W``>;h2b8aJlj=A2B=AE!c{g(@R#}tRc zfHUf$U#Q)USc=QU)zhD;uZvK+I_eDFR(+#9nrxGq8y>APoiWo65K&`A`llI@`gbOA zPA!OJ68yI#(fuXL)(wvjomPkaWpO~n-k2o?Mo`b{L8~Ge`eDLd{-rO1AdHiL-KNqBoc}Zk60mQmH8P|HVQN_4?)U@a<>{H0A zlaTBVN)`|t6$iu4cj+UF<>PM1+ANe0U8hI|-14l16@DUp7tA-jV(6Q0!inkf5n}y+ z0gK`-2mG_wB=fa7e<34;AXV>uexmb7SI0H`s0NuEs-q zj#fbLGXw6sOm0M#h99@Ris%W#`r%{&a(Nb4+ILpL`wf3ZD|eKY-jG z%0c`|yw{Q7V-X41r@zy7Q9UXyIqd}XPzbb~Pz4nE;{bk6PJC5whlC1cfyNhjs0GHB z5VTT&q3FDtO!IS}Vh1*=h{a{xyQ#9j(E2&*8ioPc2fU%nWtLv){BLitepVIy!{+3u z{U+m^b(SG zH(el--sva-^8$IAEh+W z-{+T6S^&aJ(D+1f^D6$TFUIXA1p4b*D44JGAR^XIBisQ>){*Jj(O7ih$8qn@wN4*Z zOw-3tZi+`}TC6i5<4$wSvpr4L0R_N+kJuD70Qr1Pat zrU1|1@#^z`EMaZ%0Ov&iRKV=_`|9r5D^bLLy0FfU{Nm?Z*HrUjY}5s2)=J{9rg6xh z&_D=QKNGJn?R5jbI8R6|nTr5olJilFr$F7u{9XE8@$1A8_#X6#{OpQ?vSwVP2O-Qs z8xi;Ss-df;z<1Fgf9KM1m}V_;DRC?6LhTQ-`6uf}LUHYK>Ex56P+*o@z;5>HTWmkn zc|c4>A;AF-D|zK)deO`Wp8{Rr?}3iB4lS&T2O+qVE6vtpqqJZCy-eY=aE}H)9%7oo z!UX+KYyT^;6u|G{r8z(v|K`nkufyJ z2IgpuI8>3>K1Y{bS%dEe(jKx@L-MQIXPfL~p;>Fh9iAd?e5Vakx%$^%vWB+VK(MIr zW9=~2`q#4q^x`WwJ*G8mj!4y*L4Zi)FGoRjf&|xb_B;-n1?Ui914Dxpa(H;?ru6<% zTOvL-@8s!z)dj7@njj2v9?=mi^uju*-YJ0tS&x{AxIEJ^LEJF@n|^0`A@7v3Lt^x3 zdf7DE>$2x3TCgBkuq^4$O*EM>ji2Vv#j1FJch(5rEK-^m8m`~7Zd`hi+K%wYQNA22}LE5Iv>T(Jt+)wtsAkwvNglh3kmHL&_!|Y zEXUjjNc?@IuD5c!&bOXCEUGCi;;S7ET0S)}piFNf#wBzH!)*CZW*!lZ&G;uKLNo(` zgCR{H8}c?CaZs63_|s&WPP*1tf?f%8=+{@pk-|~mVGTdHSzQ6~aW6J!A>8X2-OS4|!vPl-TsFcJgw}Ou zz}Z|jWKdbET%vdev%;3ntEZe7H%}-{2zu=N7cU$ZiU5ZLZs7>8#N%79wca}ns%F)6 z3de9*^x@6cp=1Z`HxoQtU|+t-if!OI_wTz%QnR2rC#h?pBUnNGp20V>scg43pab%} zNdTj96@b)8%P$z!;6$u%F%~vCL7h(mdP_8vY5dSt^ruaM>jeED39cemo!FsxUI$V# zDl@Kegs$IdlX2x?7jyg5b&1(m836KEZZ@Fwi|DCCaO2BIE=3-v7U4Pf)}sFVY_FBk zGc8wC>HB18;IqZcDwX$*nZpZ3H!&X@Hc}a`pR1)z`|izWbh=2d12_v!QPqUU*G}h| zr<||7hH5zjRfT#;?BPORL9~nNzJm}3xF)RQW^F(k7a6sH2RkBAce2z37h#lj_KY=Q zT1&LeP2+0Lq^eAOyX!SUhcvezmVe4TZsjdXX^rU`wishUZK~@+3BY;)0z&5zK5GS;3K;?2 zAE{^kUF^|3wO`dGigphlV`}(+ecmgi{F=aaa)5wLKMNjC5t5VtDpU;z#n+Z5>!Ku( z^S;|~CLwh-aP#xsH#4kq8L->&f_$V(c)4;d@I*Z&93W`bBs`>KA4&RdrqB09q5}Q- znTETBR^;$ixRMulFHaP%QYc?JYkiM$7KhQ4RbaWO+%BWS50?dfFu`unwdfkMR!9w5 z1<|0P-Rh?$!<9G?O6(r#;t>_hoW#Zm%qmr{C;T=WGSLM!yPe9>vMqlRMh24J z9@ZLx8{Uho1>vnyI&#FfS1yOPArv@swloZ3v%`%tl;g>hY$W{_%^r7M@2d>Qzz@v=sX+3r&kwvOoQsn=e(DqL*KRYSY!{=lW zD&G`&6WzERN6U0+SAb@vXbI$6KBi@7@svKfm` zhmQ1X-#fe6;v&J+2r1_$h`o0fJMq1m`1hg2O=U4N`-Xzjk1~6T!Yu(ur5gK*yem|G z+{p%`^8!GF&mZ24M}En2=;`%b?q512EU5S(rb4MfHZTKtPyapl%@~c-&Q=Y;h?Z+R z%nOl9H${7NlF!IKy@7rN)c-UT?sxO`E(N>c^}8frc@(-H>@ECva28kEE4cisO24=F z>Dqi%=Npmym8n9M6t2%a^whHvi5N1dDnr$``*IR`ufBafI=W(LCpT$3EU!;#e!73%iCJ)&sm%LH-__ z%K0?@5y|w?OEDR?dOW8|CFXc4pm{bhL4CRrIxK^f#71rFk%f8&f_M z2>dZv{ByRy{ocj!C0E0&YW!qz|Cy@zLe@f3M$8ZJS+h#z8@L5Qo0gE2Qa0TPJgQ*| zdxvTYc!yLkxwtwOxKq@LvO&g=+TFbqX=uUpd@EF@VQ+Ze`$j^xidI0t0DoU97g0w( zpA=CZtOM4_PnpDZhS2x@4)DeJ%r!=`LtS&opr~s*d{q<)Wx#w&D>MQWYtYrh+=p_Z zB*t)6L=&C&_#9$}njf(bsKY6cf}Vr}$<&1YdtdB#F8Fn`L)QyZ+cfo(=kTOrjXVY& zYwv?=Ai&aElbluo_BpKLgzA3)PSJ_r8}r)-e0q3CA`l&hNiR1VaF(1^7kvCD*cK7!xMsZ zPyR~P_l~zQ{|~4Ue_EbTI#*MTT{!F{$U=EfH~sx05Ys=fC6MZ8K#sR#lFao6E`=L*iSz5$^d> z1{2u$7L2Fw=XpaornUcl`u^j(-y=(oX|bbs;>7 zEptglpR+_c8H}4C!A#0MAW7xmltmV5G|%8*`g-`bf@kcKTD9c2kAIX6#$8IL+s%94 z7cOLddmCX8wO@O5dxp~McY;<{meDHkUpixv)M2=$#sh420cvRY|HFtHiCh+JuF#0< zsqzeWaY` F{2ykTBzFJ+ literal 19239 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 O00009iC^okW{6q6{0G?#LESZnMSIsZ%P{+!e7R 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

  1. 3;l?*w-X=%3}JLpun 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 literal 0 HcmV?d00001 diff --git a/apps/gamejam/brackeys/13/assets/kbve/png/universe/timespace_bg.png.import b/apps/gamejam/brackeys/13/assets/kbve/png/universe/timespace_bg.png.import new file mode 100644 index 000000000..4d1ac5138 --- /dev/null +++ b/apps/gamejam/brackeys/13/assets/kbve/png/universe/timespace_bg.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3ugpxqaf4oud" +path="res://.godot/imported/timespace_bg.png-15c7ee9b98957523650924aa41d65dbf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/kbve/png/universe/timespace_bg.png" +dest_files=["res://.godot/imported/timespace_bg.png-15c7ee9b98957523650924aa41d65dbf.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 ba9a59d6b..6846b5dc7 100644 --- a/apps/gamejam/brackeys/13/scenes/game.tscn +++ b/apps/gamejam/brackeys/13/scenes/game.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=19 format=3 uid="uid://cbrda40vq26pj"] +[gd_scene load_steps=20 format=3 uid="uid://cbrda40vq26pj"] [ext_resource type="Script" path="res://scripts/game.gd" id="1_oyaqx"] [ext_resource type="PackedScene" uid="uid://1s5v0llrjq3" path="res://scenes/spaceship.tscn" id="1_rlyye"] @@ -17,6 +17,7 @@ [ext_resource type="Script" path="res://scripts/entity.gd" id="10_1liq3"] [ext_resource type="Script" path="res://scripts/hud.gd" id="11_e1u8f"] [ext_resource type="Theme" uid="uid://bkt3waoihtb6j" path="res://theme/Theme.tres" id="11_je1f8"] +[ext_resource type="Texture2D" uid="uid://c3ugpxqaf4oud" path="res://assets/kbve/png/universe/timespace_bg.png" id="14_72ru8"] [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_ekd6t"] texture = ExtResource("4_e6jc8") @@ -164,6 +165,9 @@ script = ExtResource("5_jsdqu") offset_right = 40.0 offset_bottom = 40.0 +[node name="BackgroundSprite" type="Sprite2D" parent="Background/TimespaceLayer"] +texture = ExtResource("14_72ru8") + [node name="UniverseLayer" type="Parallax2D" parent="Background"] script = ExtResource("6_1rkq4") diff --git a/apps/gamejam/brackeys/13/scenes/spaceship.tscn b/apps/gamejam/brackeys/13/scenes/spaceship.tscn index a0248d97b..ed569221c 100644 --- a/apps/gamejam/brackeys/13/scenes/spaceship.tscn +++ b/apps/gamejam/brackeys/13/scenes/spaceship.tscn @@ -1,10 +1,103 @@ -[gd_scene load_steps=4 format=3 uid="uid://1s5v0llrjq3"] +[gd_scene load_steps=18 format=3 uid="uid://1s5v0llrjq3"] -[ext_resource type="Texture2D" uid="uid://c0kmvkwygg0ox" path="res://assets/kenny/space-shooter-redux/png/playerShip3_red.png" id="1_8hcjj"] [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"] [sub_resource type="CircleShape2D" id="CircleShape2D_s734v"] -radius = 20.91 +radius = 36.0139 + +[sub_resource type="AtlasTexture" id="AtlasTexture_i8esx"] +atlas = ExtResource("3_mwphh") +region = Rect2(0, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xxjg1"] +atlas = ExtResource("3_mwphh") +region = Rect2(128, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_e38ga"] +atlas = ExtResource("3_mwphh") +region = Rect2(256, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_arb2s"] +atlas = ExtResource("3_mwphh") +region = Rect2(384, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kmfdv"] +atlas = ExtResource("3_mwphh") +region = Rect2(512, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_myowg"] +atlas = ExtResource("3_mwphh") +region = Rect2(640, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_cfde1"] +atlas = ExtResource("3_mwphh") +region = Rect2(768, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_x611k"] +atlas = ExtResource("3_mwphh") +region = Rect2(896, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_e4egj"] +atlas = ExtResource("3_mwphh") +region = Rect2(1024, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_bjncr"] +atlas = ExtResource("3_mwphh") +region = Rect2(1152, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_pj545"] +atlas = ExtResource("3_mwphh") +region = Rect2(1280, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_h15yl"] +atlas = ExtResource("3_mwphh") +region = Rect2(1408, 0, 128, 128) + +[sub_resource type="SpriteFrames" id="SpriteFrames_0gnt7"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_i8esx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xxjg1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_e38ga") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_arb2s") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kmfdv") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_myowg") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_cfde1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_x611k") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_e4egj") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bjncr") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_pj545") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_h15yl") +}], +"loop": true, +"name": &"engine", +"speed": 5.0 +}] [node name="Spaceship" type="CharacterBody2D"] collision_layer = 32 @@ -12,13 +105,19 @@ collision_mask = 472 script = ExtResource("1_uejed") [node name="Sprite2D" type="Sprite2D" parent="."] -position = Vector2(0, -1) -scale = Vector2(0.4, 0.4) -texture = ExtResource("1_8hcjj") +position = Vector2(0, 1) +scale = Vector2(0.8, 0.8) +texture = ExtResource("2_kvtre") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] -position = Vector2(0, 4) rotation = -0.0497135 shape = SubResource("CircleShape2D_s734v") [node name="OmniScope" type="Node2D" parent="."] +position = Vector2(0, -46) + +[node name="Engine" type="AnimatedSprite2D" parent="."] +position = Vector2(0, -4) +scale = Vector2(0.804688, 0.9375) +sprite_frames = SubResource("SpriteFrames_0gnt7") +animation = &"engine" diff --git a/apps/gamejam/brackeys/13/scripts/spaceship.gd b/apps/gamejam/brackeys/13/scripts/spaceship.gd index 372bf9aa7..5805d2873 100644 --- a/apps/gamejam/brackeys/13/scripts/spaceship.gd +++ b/apps/gamejam/brackeys/13/scripts/spaceship.gd @@ -1,8 +1,11 @@ class_name Spaceship extends CharacterBody2D + signal laser_shot(laser) @onready var scope = $OmniScope +@onready var engine = $Engine + var laser_scene = preload("res://scenes/laser.tscn") @@ -20,6 +23,7 @@ func _physics_process(delta): var input_vector := Vector2(0, Input.get_axis("thrust", "reverse")) velocity += input_vector.rotated(rotation) * acceleration velocity = velocity.limit_length(max_speed) + engine.play("engine") if Input.is_action_pressed("pan_right"): rotate(deg_to_rad(rotation_speed*delta)) diff --git a/apps/gamejam/brackeys/13/scripts/timespace_layer.gd b/apps/gamejam/brackeys/13/scripts/timespace_layer.gd index 37074d3db..b059197fa 100644 --- a/apps/gamejam/brackeys/13/scripts/timespace_layer.gd +++ b/apps/gamejam/brackeys/13/scripts/timespace_layer.gd @@ -1,19 +1,25 @@ extends Node2D @onready var color_rect := $ColorRect - +@onready var background_sprite := $BackgroundSprite func _ready() -> void: color_rect.color = Color(0,0,0) + background_sprite.centered = false update_background_size() get_viewport().connect("size_changed", Callable(self, "_on_viewport_resized")) - func update_background_size(): - color_rect.size = get_viewport_rect().size + var viewport_size: Vector2 = get_viewport().get_visible_rect().size + + if background_sprite and background_sprite.texture: + var texture_size: Vector2 = background_sprite.texture.get_size() + var scale_x: float = viewport_size.x / texture_size.x + var scale_y: float = viewport_size.y / texture_size.y + background_sprite.scale = Vector2(scale_x, scale_y) + background_sprite.position = Vector2.ZERO + + color_rect.size = viewport_size func _on_viewport_resized(): update_background_size() - -func _process(delta: float) -> void: - pass diff --git a/apps/kbve/kbve.com/src/content/docs/project/brackeys.mdx b/apps/kbve/kbve.com/src/content/docs/project/brackeys.mdx index ac4b2a489..9a4b5ddbc 100644 --- a/apps/kbve/kbve.com/src/content/docs/project/brackeys.mdx +++ b/apps/kbve/kbve.com/src/content/docs/project/brackeys.mdx @@ -152,6 +152,19 @@ Credited to ville.seppanen@gmail.com The first three objects for the universe layer were made by Iftikhar Alam from Vecteezy / IftiStock.com. +#### Pixel Space Background + +The main background of the `timespace` layer comes from the [Space Backgorund Pixel Art Pack](https://norma-2d.itch.io/space-backgrounds-pack). + +#### Void Fleet Pack + +The spaceship will come from the [Void Fleet Pack 3](https://foozlecc.itch.io/void-fleet-pack-3) , which is released as a CC0 license. +Then there is the [Void Fleet Pack 1](https://foozlecc.itch.io/void-fleet-pack-1), that we will be using for the main ship. + +#### Pixel Art Sci Fi Spaceships + +This is the spaceship asset pack from FrostWindz, [Pixel Art Sci Fi Spacepack](https://frostwindz.itch.io/pixel-art-sci-fi-spaceships). + ### Layers These are the layers that I am thinking we will be operating in: From 70a7c8cd87d454c7e93f98979088faa8979075f9 Mon Sep 17 00:00:00 2001 From: h0lybyte <5599058+h0lybyte@users.noreply.github.com> Date: Fri, 21 Feb 2025 03:37:52 -0500 Subject: [PATCH 08/15] fix(brackeys13): better toast notification. --- .../battlecruiser_shield.png.import | 34 +++++++++++++++ .../brackeys/13/assets/kbve/png/ui/toast.png | Bin 0 -> 8425 bytes .../13/assets/kbve/png/ui/toast.png.import | 34 +++++++++++++++ apps/gamejam/brackeys/13/scenes/game.tscn | 29 ++++++------- apps/gamejam/brackeys/13/scenes/ui/toast.tscn | 39 +++++++++++++----- apps/gamejam/brackeys/13/scripts/toast.gd | 10 ++--- apps/gamejam/brackeys/13/theme/Theme.tres | 2 +- 7 files changed, 118 insertions(+), 30 deletions(-) create mode 100644 apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_shield.png.import create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/ui/toast.png create mode 100644 apps/gamejam/brackeys/13/assets/kbve/png/ui/toast.png.import diff --git a/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_shield.png.import b/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_shield.png.import new file mode 100644 index 000000000..523583894 --- /dev/null +++ b/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_shield.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://84n6013yietv" +path="res://.godot/imported/battlecruiser_shield.png-110b0f711e7703fa8190e8aa62f8df04.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/frostwindz/battlecruiser_shield.png" +dest_files=["res://.godot/imported/battlecruiser_shield.png-110b0f711e7703fa8190e8aa62f8df04.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/assets/kbve/png/ui/toast.png b/apps/gamejam/brackeys/13/assets/kbve/png/ui/toast.png new file mode 100644 index 0000000000000000000000000000000000000000..e04e670dcde8087c5d637880b0f18a49322856e6 GIT binary patch literal 8425 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 KwMsSY!v6~$jncmW literal 0 HcmV?d00001 diff --git a/apps/gamejam/brackeys/13/assets/kbve/png/ui/toast.png.import b/apps/gamejam/brackeys/13/assets/kbve/png/ui/toast.png.import new file mode 100644 index 000000000..4723e0375 --- /dev/null +++ b/apps/gamejam/brackeys/13/assets/kbve/png/ui/toast.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://drs50j6we2385" +path="res://.godot/imported/toast.png-8784c0da260ab43e065bf62437db83ad.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/kbve/png/ui/toast.png" +dest_files=["res://.godot/imported/toast.png-8784c0da260ab43e065bf62437db83ad.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 6846b5dc7..096df737e 100644 --- a/apps/gamejam/brackeys/13/scenes/game.tscn +++ b/apps/gamejam/brackeys/13/scenes/game.tscn @@ -131,22 +131,23 @@ layout_mode = 2 [node name="Bottom" type="Control" parent="CanvasLayer"] layout_mode = 3 -anchors_preset = 12 -anchor_top = 1.0 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 0 +anchors_preset = 4 +anchor_top = 0.5 +anchor_bottom = 0.5 +grow_vertical = 2 +size_flags_horizontal = 3 -[node name="ToastManager" type="Control" parent="CanvasLayer/Bottom"] -layout_mode = 1 -anchors_preset = 2 -anchor_top = 1.0 -anchor_bottom = 1.0 -offset_top = -80.0 +[node name="Note" type="HBoxContainer" parent="CanvasLayer/Bottom"] +layout_mode = 0 offset_right = 40.0 -offset_bottom = -40.0 -grow_vertical = 0 +offset_bottom = 40.0 +alignment = 2 + +[node name="PanelContainer" type="PanelContainer" parent="CanvasLayer/Bottom/Note"] +layout_mode = 2 + +[node name="ToastManager" type="Control" parent="CanvasLayer/Bottom/Note/PanelContainer"] +layout_mode = 2 script = ExtResource("9_tiuga") [node name="Spaceship" parent="." instance=ExtResource("1_rlyye")] diff --git a/apps/gamejam/brackeys/13/scenes/ui/toast.tscn b/apps/gamejam/brackeys/13/scenes/ui/toast.tscn index fd61fbd66..ba8bd826e 100644 --- a/apps/gamejam/brackeys/13/scenes/ui/toast.tscn +++ b/apps/gamejam/brackeys/13/scenes/ui/toast.tscn @@ -1,7 +1,11 @@ -[gd_scene load_steps=3 format=3 uid="uid://cuap8jmc5xla2"] +[gd_scene load_steps=5 format=3 uid="uid://cuap8jmc5xla2"] [ext_resource type="Script" path="res://scripts/toast.gd" id="1_jpci1"] [ext_resource type="Theme" uid="uid://bkt3waoihtb6j" path="res://theme/Theme.tres" id="2_7g1or"] +[ext_resource type="Texture2D" uid="uid://drs50j6we2385" path="res://assets/kbve/png/ui/toast.png" id="3_qoe8p"] + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_5fx1v"] +texture = ExtResource("3_qoe8p") [node name="Toast" type="Control"] layout_mode = 3 @@ -11,16 +15,31 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 0 +size_flags_horizontal = 3 script = ExtResource("1_jpci1") -[node name="Panel" type="Panel" parent="."] -layout_mode = 0 -offset_right = 40.0 -offset_bottom = 40.0 -theme = ExtResource("2_7g1or") +[node name="CanvasGroup" type="CanvasGroup" parent="."] +position = Vector2(6, 48) -[node name="Label" type="Label" parent="Panel"] -layout_mode = 0 -offset_right = 40.0 -offset_bottom = 23.0 +[node name="Panel" type="Panel" parent="CanvasGroup"] +custom_minimum_size = Vector2(100, 0) +offset_right = 297.0 +offset_bottom = 195.0 +theme_override_styles/panel = SubResource("StyleBoxTexture_5fx1v") +metadata/_edit_use_anchors_ = true + +[node name="Label" type="Label" parent="CanvasGroup/Panel"] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.172 +anchor_top = 0.444 +anchor_right = 0.172 +anchor_bottom = 0.444 +offset_left = -15.084 +offset_top = -11.58 +offset_right = 121.916 +offset_bottom = 11.42 +grow_horizontal = 2 theme = ExtResource("2_7g1or") +vertical_alignment = 2 +metadata/_edit_use_anchors_ = true diff --git a/apps/gamejam/brackeys/13/scripts/toast.gd b/apps/gamejam/brackeys/13/scripts/toast.gd index 33e45f27d..375b36432 100644 --- a/apps/gamejam/brackeys/13/scripts/toast.gd +++ b/apps/gamejam/brackeys/13/scripts/toast.gd @@ -2,7 +2,7 @@ extends Control signal toast_fade_out -@onready var label = $Panel/Label +@onready var label = $CanvasGroup/Panel/Label var toast_lifetime := 3.0 var fade_duration := 0.5 @@ -28,10 +28,10 @@ func _ready(): func show_notification(text: String, type: String = "info"): label.text = text match type: - "success": $Panel.modulate = Color(0.2, 1.0, 0.2, 1) # Green - "error": $Panel.modulate = Color(1.0, 0.2, 0.2, 1) # Red - "warning": $Panel.modulate = Color(1.0, 0.5, 0.2, 1) # Orange - _ : $Panel.modulate = Color(0.2, 0.2, 1.0, 1) # Default: Blue (info) + "success": $CanvasGroup/Panel.modulate = Color(0.2, 1.0, 0.2, 1) # Green + "error": $CanvasGroup/Panel.modulate = Color(1.0, 0.2, 0.2, 1) # Red + "warning": $CanvasGroup/Panel.modulate = Color(1.0, 0.5, 0.2, 1) # Orange + _ : $CanvasGroup/Panel.modulate = Color(0.2, 0.2, 1.0, 1) # Default: Blue (info) self.modulate.a = 0 var tween = get_tree().create_tween() diff --git a/apps/gamejam/brackeys/13/theme/Theme.tres b/apps/gamejam/brackeys/13/theme/Theme.tres index 7bb2b0328..69e620b2e 100644 --- a/apps/gamejam/brackeys/13/theme/Theme.tres +++ b/apps/gamejam/brackeys/13/theme/Theme.tres @@ -3,7 +3,7 @@ [ext_resource type="Texture2D" uid="uid://c73g314v1aohm" path="res://assets/audioknobs-ui/audioknobs/slider.png" id="1_4ho6j"] [ext_resource type="Texture2D" uid="uid://wwlxthw1p5px" path="res://assets/audioknobs-ui/audioknobs/button-toggle-off.png" id="1_467wl"] [ext_resource type="Texture2D" uid="uid://bwhtv183g5vma" path="res://assets/audioknobs-ui/audioknobs/button-toggle-on.png" id="2_dcdwy"] -[ext_resource type="StyleBox" path="res://theme/empty.stylebox" id="2_ma0tk"] +[ext_resource type="StyleBox" uid="uid://i2i5a12n6yo3" path="res://theme/empty.stylebox" id="2_ma0tk"] [ext_resource type="Texture2D" uid="uid://7h4qiorvtq3q" path="res://assets/audioknobs-ui/audioknobs/metalbackground1.png" id="2_wr8kl"] [ext_resource type="Texture2D" uid="uid://byxtqi4hn1crh" path="res://assets/audioknobs-ui/audioknobs/v-slider-small.png" id="3_j3fil"] [ext_resource type="Texture2D" uid="uid://bt4me1jtt6j6a" path="res://assets/audioknobs-ui/audioknobs/slider-bg.png" id="4_4s0nj"] From 323cb379fdbf13b1e948ba1fc66cf1fc637fa8ab Mon Sep 17 00:00:00 2001 From: h0lybyte <5599058+h0lybyte@users.noreply.github.com> Date: Fri, 21 Feb 2025 05:02:30 -0500 Subject: [PATCH 09/15] feat(brackeys13): better entity management. --- apps/gamejam/brackeys/13/scripts/asteroid.gd | 27 ++++++----- apps/gamejam/brackeys/13/scripts/entity.gd | 47 ++++++++++++------- apps/gamejam/brackeys/13/scripts/game.gd | 5 +- apps/gamejam/brackeys/13/scripts/global.gd | 3 +- apps/gamejam/brackeys/13/scripts/laser.gd | 1 - .../brackeys/13/scripts/projectiles.gd | 2 - 6 files changed, 53 insertions(+), 32 deletions(-) diff --git a/apps/gamejam/brackeys/13/scripts/asteroid.gd b/apps/gamejam/brackeys/13/scripts/asteroid.gd index a44c6ec59..720bccb99 100644 --- a/apps/gamejam/brackeys/13/scripts/asteroid.gd +++ b/apps/gamejam/brackeys/13/scripts/asteroid.gd @@ -2,27 +2,32 @@ class_name Asteroid extends Area2D var movement_vector := Vector2(0, -1) @onready var cshape = $CollisionShape2D +const WRAP_MARGIN := 30 func _ready() -> void: rotation = randf_range(0, 2*PI) - func _physics_process(delta): + if not visible: + return + var speed = Global.get_environment_data("asteroid_speed") global_position += movement_vector.rotated(rotation) * speed * delta - + var radius = cshape.shape.radius var screen_size = get_viewport_rect().size - if (global_position.y+radius) < 0: - global_position.y = (screen_size.y+radius) - elif (global_position.y-radius) > screen_size.y: - global_position.y = -radius - if (global_position.x+radius) < 0: - global_position.x = (screen_size.x+radius) - elif (global_position.x-radius) > screen_size.x: - global_position.x = -radius + if global_position.y + radius < -WRAP_MARGIN: + global_position.y = screen_size.y + WRAP_MARGIN + elif global_position.y - radius > screen_size.y + WRAP_MARGIN: + global_position.y = -WRAP_MARGIN + + if global_position.x + radius < -WRAP_MARGIN: + global_position.x = screen_size.x + WRAP_MARGIN + elif global_position.x - radius > screen_size.x + WRAP_MARGIN: + global_position.x = -WRAP_MARGIN func destroy(): visible = false - get_parent()._on_asteroid_destroyed(self) + print("Asteroid Destroyed") + Global.emit_signal("entity_destroyed", "asteroid", get_instance_id(), {"position": global_position}) diff --git a/apps/gamejam/brackeys/13/scripts/entity.gd b/apps/gamejam/brackeys/13/scripts/entity.gd index d0336b35d..0e882fe7d 100644 --- a/apps/gamejam/brackeys/13/scripts/entity.gd +++ b/apps/gamejam/brackeys/13/scripts/entity.gd @@ -3,41 +3,56 @@ extends Node2D const ASTEROID_SCENE = preload("res://scenes/asteroid.tscn") var asteroid_pool: Array = [] -var active_asteroids: Array = [] var max_asteroids := int(Global.get_environment_data("asteroids")) var spawn_timer: Timer - -func _ready(): +func start_spawn(): spawn_timer = Timer.new() spawn_timer.wait_time = 2.0 spawn_timer.one_shot = false add_child(spawn_timer) spawn_timer.connect("timeout", Callable(self, "_spawn_asteroid")) spawn_timer.start() - initialize_pool(max_asteroids) + Global.connect("entity_destroyed", Callable(self, "_on_entity_destroyed")) func initialize_pool(size: int): for i in range(size): var asteroid = ASTEROID_SCENE.instantiate() - asteroid.connect("tree_exited", Callable(self, "_on_asteroid_destroyed").bind(asteroid)) asteroid.visible = false asteroid_pool.append(asteroid) add_child(asteroid) func _spawn_asteroid(): - if asteroid_pool.size() > 0: - var asteroid = asteroid_pool.pop_back() - var screen_size = get_viewport().get_visible_rect().size - asteroid.global_position = Vector2(randf_range(0, screen_size.x), randf_range(0, screen_size.y)) - asteroid.visible = true - active_asteroids.append(asteroid) - else: - #Global.emit_signal("notification_received", "asteroids_gone", "Radar says no asteroids", "info") - print("No asteroids available in pool!") + for asteroid in asteroid_pool: + if not asteroid.visible: + var screen_size = get_viewport().get_visible_rect().size + var spawn_margin = 50 + + var spawn_side = randi_range(0, 3) + var spawn_position = Vector2() + + match spawn_side: + 0: spawn_position = Vector2(randf_range(0, screen_size.x), -spawn_margin) # Top + 1: spawn_position = Vector2(randf_range(0, screen_size.x), screen_size.y + spawn_margin) # Bottom + 2: spawn_position = Vector2(-spawn_margin, randf_range(0, screen_size.y)) # Left + 3: spawn_position = Vector2(screen_size.x + spawn_margin, randf_range(0, screen_size.y)) # Right + + var target_position = screen_size / 2.0 + Vector2(randf_range(-100, 100), randf_range(-100, 100)) + asteroid.movement_vector = (target_position - spawn_position).normalized() + + asteroid.global_position = spawn_position + asteroid.visible = true + return + + print("No inactive asteroids available!") func _on_asteroid_destroyed(asteroid): asteroid.visible = false asteroid.global_position = Vector2(-1000, -1000) - active_asteroids.erase(asteroid) - asteroid_pool.append(asteroid) + print("Asteroid returned to pool") + +func _on_entity_destroyed(entity_type: String, entity_id: int, additional_data: Dictionary): + if entity_type == "asteroid": + var asteroid = instance_from_id(entity_id) + if asteroid: + _on_asteroid_destroyed(asteroid) diff --git a/apps/gamejam/brackeys/13/scripts/game.gd b/apps/gamejam/brackeys/13/scripts/game.gd index fea0d7731..45d720255 100644 --- a/apps/gamejam/brackeys/13/scripts/game.gd +++ b/apps/gamejam/brackeys/13/scripts/game.gd @@ -3,13 +3,16 @@ extends Node2D @onready var spaceship = $Spaceship @onready var projectiles = $Projectiles @onready var background = $Background -#@onready var tm = $ToastManager +@onready var entity = $Entity const LASER_POOL_SIZE = 10 func _ready(): spaceship.connect("laser_shot", _on_spaceship_laser_shot) projectiles.initialize_pool(LASER_POOL_SIZE) + entity.initialize_pool(int(Global.get_environment_data("asteroids"))) + entity.start_spawn() + Global.emit_signal("notification_received", "game_start", "Game Started! Ready for launch.", "info") func _on_spaceship_laser_shot(scope_position: Vector2, rotation: float): diff --git a/apps/gamejam/brackeys/13/scripts/global.gd b/apps/gamejam/brackeys/13/scripts/global.gd index 5cd0d6480..4efc2411b 100644 --- a/apps/gamejam/brackeys/13/scripts/global.gd +++ b/apps/gamejam/brackeys/13/scripts/global.gd @@ -7,11 +7,12 @@ signal starship_stat_changed(stat_name, new_value) signal starship_data_changed(data_name, new_value) signal environment_data_changed(data_name, new_value) signal notification_received(message_id: String, message: String, type: String) +signal entity_destroyed(entity_type: String, entity_id: int, additional_data: Dictionary) @export var resources_list: Array[String] = ["gold", "stone", "metal", "gems"] var environment_data := { - "asteroids": 10, + "asteroids": 20, "universe_objects":15, "asteroid_speed": 200, "asteroid_belt": false diff --git a/apps/gamejam/brackeys/13/scripts/laser.gd b/apps/gamejam/brackeys/13/scripts/laser.gd index 60df8a274..8a469463a 100644 --- a/apps/gamejam/brackeys/13/scripts/laser.gd +++ b/apps/gamejam/brackeys/13/scripts/laser.gd @@ -19,6 +19,5 @@ func _on_area_entered(area): asteroid.destroy() Global.emit_signal("notification_received", "asteroid_hit", "Asteroid was destoried!", "success") Global.earn_random_resource("stone") - visible = false if get_parent(): get_parent()._on_laser_exited(self) diff --git a/apps/gamejam/brackeys/13/scripts/projectiles.gd b/apps/gamejam/brackeys/13/scripts/projectiles.gd index bf7a0f6c5..bc1b31a52 100644 --- a/apps/gamejam/brackeys/13/scripts/projectiles.gd +++ b/apps/gamejam/brackeys/13/scripts/projectiles.gd @@ -1,8 +1,6 @@ extends Node const LASER_SCENE = preload("res://scenes/laser.tscn") -# @onready var tm = get_parent().get_node("ToastManager") -# Shift these to the Q crate later on. var laser_pool: Array = [] var active_lasers: Array = [] From 488b3a9831c5d29bafc7a009ba1f1b657151c482 Mon Sep 17 00:00:00 2001 From: h0lybyte <5599058+h0lybyte@users.noreply.github.com> Date: Fri, 21 Feb 2025 06:15:33 -0500 Subject: [PATCH 10/15] feat(brackeys13): added shield support. --- apps/gamejam/brackeys/13/scenes/asteroid.tscn | 2 + .../gamejam/brackeys/13/scenes/spaceship.tscn | 133 +++++++++++++++++- apps/gamejam/brackeys/13/scripts/asteroid.gd | 5 + apps/gamejam/brackeys/13/scripts/spaceship.gd | 18 ++- 4 files changed, 152 insertions(+), 6 deletions(-) diff --git a/apps/gamejam/brackeys/13/scenes/asteroid.tscn b/apps/gamejam/brackeys/13/scenes/asteroid.tscn index d55366ffd..b8f4c1213 100644 --- a/apps/gamejam/brackeys/13/scenes/asteroid.tscn +++ b/apps/gamejam/brackeys/13/scenes/asteroid.tscn @@ -16,3 +16,5 @@ texture = ExtResource("1_bra2q") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("CircleShape2D_qw1xp") + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/apps/gamejam/brackeys/13/scenes/spaceship.tscn b/apps/gamejam/brackeys/13/scenes/spaceship.tscn index ed569221c..6ca26baa9 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=18 format=3 uid="uid://1s5v0llrjq3"] +[gd_scene load_steps=36 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://84n6013yietv" path="res://assets/frostwindz/battlecruiser_shield.png" id="4_yxx3w"] [sub_resource type="CircleShape2D" id="CircleShape2D_s734v"] radius = 36.0139 @@ -99,6 +100,126 @@ animations = [{ "speed": 5.0 }] +[sub_resource type="AtlasTexture" id="AtlasTexture_srl8d"] +atlas = ExtResource("4_yxx3w") +region = Rect2(0, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_miugn"] +atlas = ExtResource("4_yxx3w") +region = Rect2(128, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_aacb1"] +atlas = ExtResource("4_yxx3w") +region = Rect2(256, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jr7jx"] +atlas = ExtResource("4_yxx3w") +region = Rect2(384, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4r5u6"] +atlas = ExtResource("4_yxx3w") +region = Rect2(512, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2g3gh"] +atlas = ExtResource("4_yxx3w") +region = Rect2(640, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dxcam"] +atlas = ExtResource("4_yxx3w") +region = Rect2(768, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_s3bim"] +atlas = ExtResource("4_yxx3w") +region = Rect2(896, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_frb3p"] +atlas = ExtResource("4_yxx3w") +region = Rect2(1024, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0ccj1"] +atlas = ExtResource("4_yxx3w") +region = Rect2(1152, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kl5ol"] +atlas = ExtResource("4_yxx3w") +region = Rect2(1280, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gpumw"] +atlas = ExtResource("4_yxx3w") +region = Rect2(1408, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ogmnx"] +atlas = ExtResource("4_yxx3w") +region = Rect2(1536, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5mjgc"] +atlas = ExtResource("4_yxx3w") +region = Rect2(1664, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_pcyl7"] +atlas = ExtResource("4_yxx3w") +region = Rect2(1792, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4l5jx"] +atlas = ExtResource("4_yxx3w") +region = Rect2(1920, 0, 128, 128) + +[sub_resource type="SpriteFrames" id="SpriteFrames_wdipm"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_srl8d") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_miugn") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_aacb1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_jr7jx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4r5u6") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2g3gh") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_dxcam") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_s3bim") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_frb3p") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0ccj1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kl5ol") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gpumw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ogmnx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_5mjgc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_pcyl7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4l5jx") +}], +"loop": true, +"name": &"shield", +"speed": 5.0 +}] + [node name="Spaceship" type="CharacterBody2D"] collision_layer = 32 collision_mask = 472 @@ -117,7 +238,13 @@ shape = SubResource("CircleShape2D_s734v") position = Vector2(0, -46) [node name="Engine" type="AnimatedSprite2D" parent="."] -position = Vector2(0, -4) -scale = Vector2(0.804688, 0.9375) +position = Vector2(-0.125006, 1.5) +scale = Vector2(0.798828, 0.820312) sprite_frames = SubResource("SpriteFrames_0gnt7") animation = &"engine" + +[node name="Shield" type="AnimatedSprite2D" parent="."] +position = Vector2(-8.34465e-07, 1.75) +scale = Vector2(0.84375, 0.832031) +sprite_frames = SubResource("SpriteFrames_wdipm") +animation = &"shield" diff --git a/apps/gamejam/brackeys/13/scripts/asteroid.gd b/apps/gamejam/brackeys/13/scripts/asteroid.gd index 720bccb99..e95cc9d20 100644 --- a/apps/gamejam/brackeys/13/scripts/asteroid.gd +++ b/apps/gamejam/brackeys/13/scripts/asteroid.gd @@ -31,3 +31,8 @@ func destroy(): visible = false print("Asteroid Destroyed") Global.emit_signal("entity_destroyed", "asteroid", get_instance_id(), {"position": global_position}) + +func _on_body_entered(body): + if body is Spaceship: + var starship = body + starship.activate_shield() diff --git a/apps/gamejam/brackeys/13/scripts/spaceship.gd b/apps/gamejam/brackeys/13/scripts/spaceship.gd index 5805d2873..47ec41ec1 100644 --- a/apps/gamejam/brackeys/13/scripts/spaceship.gd +++ b/apps/gamejam/brackeys/13/scripts/spaceship.gd @@ -5,6 +5,7 @@ signal laser_shot(laser) @onready var scope = $OmniScope @onready var engine = $Engine +@onready var shield = $Shield var laser_scene = preload("res://scenes/laser.tscn") @@ -14,6 +15,7 @@ func _ready(): func _process(delta): if Input.is_action_pressed("shoot"): + shield.visible = false shoot_laser() func _physics_process(delta): @@ -23,7 +25,11 @@ func _physics_process(delta): var input_vector := Vector2(0, Input.get_axis("thrust", "reverse")) velocity += input_vector.rotated(rotation) * acceleration velocity = velocity.limit_length(max_speed) - engine.play("engine") + + if input_vector or velocity.length() > 0.1: + engine.play("engine") + else: + engine.stop() if Input.is_action_pressed("pan_right"): rotate(deg_to_rad(rotation_speed*delta)) @@ -34,12 +40,12 @@ func _physics_process(delta): var drift_direction = Vector2.RIGHT.rotated(rotation) if Input.is_action_pressed("drift_right"): - print("E Pressed - Thrust Right Detected") + #print("E Pressed - Thrust Right Detected") global_position = global_position.lerp(global_position + drift_direction * drift_force, delta * 5) if Input.is_action_pressed("drift_left"): - print("Q Pressed - Thrust Left Detected") + #print("Q Pressed - Thrust Left Detected") global_position = global_position.lerp(global_position - drift_direction * drift_force, delta * 5) if input_vector.y == 0: @@ -60,3 +66,9 @@ func _physics_process(delta): func shoot_laser(): emit_signal("laser_shot", scope.global_position, rotation) + + +func activate_shield(): + Global.emit_signal("notification_received", "shield_active", "Shield was deployed", "warning") + shield.visible = true + shield.play("shield") From 12e1b4eb7e3b606139e6e05d5d5646727ed29361 Mon Sep 17 00:00:00 2001 From: h0lybyte <5599058+h0lybyte@users.noreply.github.com> Date: Fri, 21 Feb 2025 07:33:26 -0500 Subject: [PATCH 11/15] feat(brackeys13): unlocked map. --- .../13/assets/frostwindz/asteroid_base.png | Bin 0 -> 1095 bytes .../frostwindz/asteroid_base.png.import | 34 ++++++++ .../13/assets/frostwindz/asteroid_explode.png | Bin 0 -> 6009 bytes .../frostwindz/asteroid_explode.png.import | 34 ++++++++ apps/gamejam/brackeys/13/project.godot | 1 + apps/gamejam/brackeys/13/scenes/asteroid.tscn | 79 +++++++++++++++++- apps/gamejam/brackeys/13/scenes/game.tscn | 3 +- .../gamejam/brackeys/13/scenes/spaceship.tscn | 5 ++ apps/gamejam/brackeys/13/scripts/global.gd | 10 ++- apps/gamejam/brackeys/13/scripts/hud.gd | 17 ++-- apps/gamejam/brackeys/13/scripts/spaceship.gd | 22 +++-- .../brackeys/13/scripts/timespace_layer.gd | 10 +-- .../brackeys/13/scripts/universe_layer.gd | 58 ++++++------- 13 files changed, 216 insertions(+), 57 deletions(-) create mode 100644 apps/gamejam/brackeys/13/assets/frostwindz/asteroid_base.png create mode 100644 apps/gamejam/brackeys/13/assets/frostwindz/asteroid_base.png.import create mode 100644 apps/gamejam/brackeys/13/assets/frostwindz/asteroid_explode.png create mode 100644 apps/gamejam/brackeys/13/assets/frostwindz/asteroid_explode.png.import diff --git a/apps/gamejam/brackeys/13/assets/frostwindz/asteroid_base.png b/apps/gamejam/brackeys/13/assets/frostwindz/asteroid_base.png new file mode 100644 index 0000000000000000000000000000000000000000..044cfd9e275657fcd309e3777e22f778cf73440e GIT binary patch literal 1095 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-HD>U}5xhaSW-L z^LCc4w|1aF+x-~5C89w&GZhlObA`5f&#YHiB9?PxzHpv$1p6QMX=MjZqS_QZXF6^0 z-Man887phc*}eDrZ$9|lupr(3&fM>3j?di8px7ed#DRheV)(od9LIU zdSjL7IynX7pC4Z;+FIKl_te%pQ-E%>CVM;ED{7v*)e{+7PpON9eR;Dzbduck zmde;9H{Tw0iNUn`P3Vw!nX;ALBpouQ7qdU(!WagGw&#&jv^+oETFc^j6l z;SH4AQRQ%xXPb6Hw#8dkt1BIjYmZM+yq*$uRjI@Ai_SIEIt~4ZlD-wMmQ_8DV|_X4wJFMmCHpNqirtrBZ6-bxmC~ZG(+sprh^FqMf zlT23IUI&D1{c!0z)5Ehef6HS(HD_B#ZBuNm73~yr5ZdvrW&IQW2fw!|HLPV|_|~b+!m8<;~Zp-i3vm-0Vwcuc`s?7_2=}pSt{%t#VJT+foOA)W+)izOvgJrIU zEpPAL=Dw~1QlP*7JcE(`g?R#8;$pc+Ho0ggomj5jbmrgw?`H9bOZ_7*%wHNJDD>pQ zO`Un)KK+U@__v+MQHs;OIc$gP+V4H~**T|AzcvP@Tj%Fu{&!ez)c*8gQTW_v#N2j) ziSyI;ef<*uyZit6uV`gwQ1VEV5p=5GAZk=J)x+uu!-}~d8>MO_7wn(3?V)Q6LswEr z;iaxG>KcxR*{?C_?cn~vX?J_Q{jzdpeA)3|%YA_~KdIQm?)!ix1B0ilpUXO@geCx7 CHsb;S literal 0 HcmV?d00001 diff --git a/apps/gamejam/brackeys/13/assets/frostwindz/asteroid_base.png.import b/apps/gamejam/brackeys/13/assets/frostwindz/asteroid_base.png.import new file mode 100644 index 000000000..8a6b3481f --- /dev/null +++ b/apps/gamejam/brackeys/13/assets/frostwindz/asteroid_base.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dbx7yu6wgjtfs" +path="res://.godot/imported/asteroid_base.png-a79e53537b060ae8f2520d13eccbd8d0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/frostwindz/asteroid_base.png" +dest_files=["res://.godot/imported/asteroid_base.png-a79e53537b060ae8f2520d13eccbd8d0.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/assets/frostwindz/asteroid_explode.png b/apps/gamejam/brackeys/13/assets/frostwindz/asteroid_explode.png new file mode 100644 index 0000000000000000000000000000000000000000..c741ea1e98c6e2d14921a4f474d3cc4f2569584c GIT binary patch literal 6009 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 Vector2: + return starship_data.get("coordinates", Vector2.ZERO) + +func set_starship_coordinates(new_position: Vector2): + starship_data["coordinates"] = new_position + call_deferred("emit_signal", "starship_data_changed", "coordinates", new_position) diff --git a/apps/gamejam/brackeys/13/scripts/hud.gd b/apps/gamejam/brackeys/13/scripts/hud.gd index 96306d760..e749cc63b 100644 --- a/apps/gamejam/brackeys/13/scripts/hud.gd +++ b/apps/gamejam/brackeys/13/scripts/hud.gd @@ -1,6 +1,6 @@ extends Control -@onready var score_label = $Panel/Menu/Nav/Label +@onready var coordinates_label = $Panel/Menu/Nav/Label @onready var name_label = $Panel/Menu/Nav/StarshipName # Resources @@ -38,13 +38,18 @@ func _ready(): call_deferred("_update_starship_name") call_deferred("_update_starship_resources") Global.connect("resource_changed", Callable(self, "_on_resource_changed")) - update_score(0) + Global.connect("starship_data_changed", Callable(self, "_update_starship_data")) + update_coordinates(Global.get_starship_coordinates()) -func update_score(new_score): - if score_label: - score_label.text = "Score: %d" % new_score +func update_coordinates(coords: Vector2): + if coordinates_label: + coordinates_label.text = "Coords X: %d, Y: %d" % [coords.x, coords.y] else: - push_warning("Score label not found!") + push_warning("Coordinates label not found!") + +func _update_starship_data(data_name: String, value): + if data_name == "coordinates": + update_coordinates(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 47ec41ec1..acf8f8b8e 100644 --- a/apps/gamejam/brackeys/13/scripts/spaceship.gd +++ b/apps/gamejam/brackeys/13/scripts/spaceship.gd @@ -14,6 +14,7 @@ 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() @@ -54,15 +55,15 @@ func _physics_process(delta): move_and_slide() - var screen_size = get_viewport_rect().size - if global_position.y < 0: - global_position.y = screen_size.y - elif global_position.y > screen_size.y: - global_position.y = 0 - if global_position.x < 0: - global_position.x = screen_size.x - elif global_position.x > screen_size.x: - global_position.x = 0 + #var screen_size = get_viewport_rect().size + #if global_position.y < 0: + #global_position.y = screen_size.y + #elif global_position.y > screen_size.y: + #global_position.y = 0 + #if global_position.x < 0: + #global_position.x = screen_size.x + #elif global_position.x > screen_size.x: + #global_position.x = 0 func shoot_laser(): emit_signal("laser_shot", scope.global_position, rotation) @@ -72,3 +73,6 @@ func activate_shield(): Global.emit_signal("notification_received", "shield_active", "Shield was deployed", "warning") shield.visible = true shield.play("shield") + +func defer_set_starship_coordinates(): + Global.set_starship_coordinates(global_position) diff --git a/apps/gamejam/brackeys/13/scripts/timespace_layer.gd b/apps/gamejam/brackeys/13/scripts/timespace_layer.gd index b059197fa..e8be56ff0 100644 --- a/apps/gamejam/brackeys/13/scripts/timespace_layer.gd +++ b/apps/gamejam/brackeys/13/scripts/timespace_layer.gd @@ -1,11 +1,11 @@ -extends Node2D +extends CanvasLayer @onready var color_rect := $ColorRect @onready var background_sprite := $BackgroundSprite func _ready() -> void: - color_rect.color = Color(0,0,0) - background_sprite.centered = false + color_rect.color = Color.BLACK + background_sprite.centered = true update_background_size() get_viewport().connect("size_changed", Callable(self, "_on_viewport_resized")) @@ -17,9 +17,9 @@ func update_background_size(): var scale_x: float = viewport_size.x / texture_size.x var scale_y: float = viewport_size.y / texture_size.y background_sprite.scale = Vector2(scale_x, scale_y) - background_sprite.position = Vector2.ZERO + background_sprite.position = viewport_size / 2 # Keep centered - color_rect.size = viewport_size + color_rect.size = viewport_size # Make sure the color rect covers the screen func _on_viewport_resized(): update_background_size() diff --git a/apps/gamejam/brackeys/13/scripts/universe_layer.gd b/apps/gamejam/brackeys/13/scripts/universe_layer.gd index 728d7fb67..b2eb77812 100644 --- a/apps/gamejam/brackeys/13/scripts/universe_layer.gd +++ b/apps/gamejam/brackeys/13/scripts/universe_layer.gd @@ -1,26 +1,17 @@ extends Parallax2D - @export var pool_size: int = 2 -@export var scroll_speed: float = 10.0 - -# Screen bounds -var screen_width: float -var screen_height: float +@export var despawn_distance: float = 2000 -# Sprite pools var active_sprites: Array[Sprite2D] = [] var inactive_sprites: Array[Sprite2D] = [] const BASE_PATH: String = "res://assets/kbve/png/universe/object" +var spaceship: Node2D + func _ready(): - var viewport = get_viewport() - screen_width = viewport.get_visible_rect().size.x - screen_height = viewport.get_visible_rect().size.y - ignore_camera_scroll = true - repeat_size = Vector2(screen_width * 2, screen_height * 2) - scroll_scale = Vector2(1.0, 1.0) + spaceship = get_tree().get_root().find_child("Spaceship", true, false) _initialize_pool() _spawn_initial_sprites() @@ -36,36 +27,41 @@ func _initialize_pool(): var scale = randf_range(0.5, 1.5) sprite.scale = Vector2(scale, scale) - var notifier = VisibleOnScreenNotifier2D.new() - notifier.rect = Rect2(-sprite.get_rect().size * scale / 2, sprite.get_rect().size * scale) - sprite.add_child(notifier) - notifier.connect("screen_exited", Callable(self, "_return_to_pool").bind(sprite)) inactive_sprites.append(sprite) add_child(sprite) sprite.hide() func _spawn_initial_sprites(): - var spawn_area_width = screen_width * 2 for i in range(pool_size): - _spawn_sprite(Vector2(randf_range(0, spawn_area_width), randf_range(0, screen_height))) + _spawn_sprite_near_ship() -func _spawn_sprite(position: Vector2): - if inactive_sprites.size() == 0: +func _spawn_sprite_near_ship(): + if inactive_sprites.is_empty() or spaceship == null: return var sprite = inactive_sprites.pop_back() - sprite.position = position + + var offset_distance = randf_range(500, 1500) + var angle = randf_range(0, TAU) + var spawn_position = spaceship.global_position + Vector2(offset_distance, 0).rotated(angle) + + sprite.position = spawn_position sprite.scale = Vector2(randf_range(0.5, 1.5), randf_range(0.5, 1.5)) sprite.show() active_sprites.append(sprite) -func _return_to_pool(sprite: Sprite2D): - if sprite in active_sprites: - active_sprites.erase(sprite) - inactive_sprites.append(sprite) - sprite.hide() - var spawn_x = screen_width + scroll_offset.x + randf_range(0, screen_width) - _spawn_sprite(Vector2(spawn_x, randf_range(0, screen_height))) - func _process(delta: float): - scroll_offset.x -= scroll_speed * delta + if spaceship == null: + return + + for sprite in active_sprites.duplicate(): + if spaceship.global_position.distance_to(sprite.global_position) > despawn_distance: + _return_to_pool(sprite) + + while active_sprites.size() < pool_size: + _spawn_sprite_near_ship() + +func _return_to_pool(sprite: Sprite2D): + active_sprites.erase(sprite) + inactive_sprites.append(sprite) + sprite.hide() From 88256f8cb25ee16414345520d78c76a5e2859ab8 Mon Sep 17 00:00:00 2001 From: h0lybyte <5599058+h0lybyte@users.noreply.github.com> Date: Fri, 21 Feb 2025 07:57:36 -0500 Subject: [PATCH 12/15] feat(brackeys13): asteroid explosion added but its bugged out. --- apps/gamejam/brackeys/13/scenes/asteroid.tscn | 4 +--- apps/gamejam/brackeys/13/scenes/spaceship.tscn | 2 +- apps/gamejam/brackeys/13/scripts/asteroid.gd | 8 ++++++++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/apps/gamejam/brackeys/13/scenes/asteroid.tscn b/apps/gamejam/brackeys/13/scenes/asteroid.tscn index 102e6c76c..ab3e2746e 100644 --- a/apps/gamejam/brackeys/13/scenes/asteroid.tscn +++ b/apps/gamejam/brackeys/13/scenes/asteroid.tscn @@ -82,10 +82,8 @@ texture = ExtResource("2_dvxfl") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("CircleShape2D_qw1xp") -[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +[node name="Explosion" type="AnimatedSprite2D" parent="."] visible = false sprite_frames = SubResource("SpriteFrames_30yq2") -frame = 6 -frame_progress = 0.643016 [connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/apps/gamejam/brackeys/13/scenes/spaceship.tscn b/apps/gamejam/brackeys/13/scenes/spaceship.tscn index c6f10aff5..21d83ff97 100644 --- a/apps/gamejam/brackeys/13/scenes/spaceship.tscn +++ b/apps/gamejam/brackeys/13/scenes/spaceship.tscn @@ -235,7 +235,7 @@ rotation = -0.0497135 shape = SubResource("CircleShape2D_s734v") [node name="OmniScope" type="Node2D" parent="."] -position = Vector2(0, -46) +position = Vector2(0, -49) [node name="Engine" type="AnimatedSprite2D" parent="."] position = Vector2(-0.125006, 1.5) diff --git a/apps/gamejam/brackeys/13/scripts/asteroid.gd b/apps/gamejam/brackeys/13/scripts/asteroid.gd index e95cc9d20..5259c3443 100644 --- a/apps/gamejam/brackeys/13/scripts/asteroid.gd +++ b/apps/gamejam/brackeys/13/scripts/asteroid.gd @@ -1,11 +1,16 @@ class_name Asteroid extends Area2D + var movement_vector := Vector2(0, -1) @onready var cshape = $CollisionShape2D +@onready var explosion = $Explosion + const WRAP_MARGIN := 30 func _ready() -> void: rotation = randf_range(0, 2*PI) + explosion.visible = false + explosion.stop() func _physics_process(delta): if not visible: @@ -28,6 +33,9 @@ func _physics_process(delta): global_position.x = -WRAP_MARGIN func destroy(): + + explosion.visible = true + explosion.play() visible = false print("Asteroid Destroyed") Global.emit_signal("entity_destroyed", "asteroid", get_instance_id(), {"position": global_position}) From 687e995f92f5a3a2f7a80c68339b72ca7e46dce6 Mon Sep 17 00:00:00 2001 From: h0lybyte <5599058+h0lybyte@users.noreply.github.com> Date: Fri, 21 Feb 2025 08:16:20 -0500 Subject: [PATCH 13/15] feat(brackeys13): added saving and loading for the player. --- apps/gamejam/brackeys/13/scenes/game.tscn | 2 + apps/gamejam/brackeys/13/scripts/game.gd | 22 +++++++++- apps/gamejam/brackeys/13/scripts/global.gd | 47 ++++++++++++++++++++++ 3 files changed, 70 insertions(+), 1 deletion(-) diff --git a/apps/gamejam/brackeys/13/scenes/game.tscn b/apps/gamejam/brackeys/13/scenes/game.tscn index 5fc593c62..990865be6 100644 --- a/apps/gamejam/brackeys/13/scenes/game.tscn +++ b/apps/gamejam/brackeys/13/scenes/game.tscn @@ -181,3 +181,5 @@ script = ExtResource("8_rakg7") [node name="Entity" type="Node2D" parent="."] script = ExtResource("10_1liq3") + +[node name="AutoSaveTimer" type="Timer" parent="."] diff --git a/apps/gamejam/brackeys/13/scripts/game.gd b/apps/gamejam/brackeys/13/scripts/game.gd index 45d720255..763b273a7 100644 --- a/apps/gamejam/brackeys/13/scripts/game.gd +++ b/apps/gamejam/brackeys/13/scripts/game.gd @@ -4,16 +4,36 @@ extends Node2D @onready var projectiles = $Projectiles @onready var background = $Background @onready var entity = $Entity +@onready var auto_save_timer = $AutoSaveTimer const LASER_POOL_SIZE = 10 +const AUTO_SAVE_INTERVAL = 30.0 func _ready(): spaceship.connect("laser_shot", _on_spaceship_laser_shot) projectiles.initialize_pool(LASER_POOL_SIZE) entity.initialize_pool(int(Global.get_environment_data("asteroids"))) entity.start_spawn() - Global.emit_signal("notification_received", "game_start", "Game Started! Ready for launch.", "info") + if not Global.load_player_data(): + print("No save file found. Initializing new player data.") + Global.emit_signal("notification_received", "no_save", "Creating new save file.", "warning") + Global.save_player_data() + else: + projectiles.dynamic_pool_adjustment() + Global.emit_signal("notification_received", "return_player", "Welcome back to Asteroids & Droids.", "info") + auto_save_timer.wait_time = AUTO_SAVE_INTERVAL + auto_save_timer.connect("timeout", _on_auto_save_timer_timeout) + auto_save_timer.start() + func _on_spaceship_laser_shot(scope_position: Vector2, rotation: float): projectiles.shoot_laser(scope_position, rotation) + + +func _on_auto_save_timer_timeout(): + if Global.save_player_data(): + Global.emit_signal("notification_received", "saved_game", "Game process has been saved.", "success") + else: + Global.emit_signal("notification_received", "save_failed", "Failed to save game.", "error") + print("Auto-save failed.") diff --git a/apps/gamejam/brackeys/13/scripts/global.gd b/apps/gamejam/brackeys/13/scripts/global.gd index 16b5ed5b9..411488753 100644 --- a/apps/gamejam/brackeys/13/scripts/global.gd +++ b/apps/gamejam/brackeys/13/scripts/global.gd @@ -1,5 +1,7 @@ extends Node +const SAVE_PATH = "user://player_save.json" + ## Signals signal resource_changed(resource_name, new_value) signal resource_receipt(resource_name, amount, new_value, invoice) @@ -128,3 +130,48 @@ func get_starship_coordinates() -> Vector2: func set_starship_coordinates(new_position: Vector2): starship_data["coordinates"] = new_position call_deferred("emit_signal", "starship_data_changed", "coordinates", new_position) + + +func save_player_data() -> bool: + var save_data = { + "resources": resources, + "base_starship_stats": base_starship_stats, + "starship_bonuses": starship_bonuses, + "starship_data": starship_data, + "environment_data": environment_data + } + + var file = FileAccess.open(SAVE_PATH, FileAccess.WRITE) + if file: + file.store_string(JSON.stringify(save_data, "\t")) + file.close() + print("Player data saved successfully.") + return true + else: + print("Failed to save player data.") + return false + +func load_player_data() -> bool: + if not FileAccess.file_exists(SAVE_PATH): + print("No save file found.") + return false + + var file = FileAccess.open(SAVE_PATH, FileAccess.READ) + if file: + var content = file.get_as_text() + file.close() + + var parsed_data = JSON.parse_string(content) + if parsed_data is Dictionary: + resources = parsed_data.get("resources", resources) + base_starship_stats = parsed_data.get("base_starship_stats", base_starship_stats) + starship_bonuses = parsed_data.get("starship_bonuses", starship_bonuses) + starship_data = parsed_data.get("starship_data", starship_data) + environment_data = parsed_data.get("environment_data", environment_data) + print("Player data loaded successfully.") + return true + else: + print("Failed to parse save file.") + return false + + return false From 15a7e42610cdb962ee1889939ecf891891c8a270 Mon Sep 17 00:00:00 2001 From: h0lybyte <5599058+h0lybyte@users.noreply.github.com> Date: Fri, 21 Feb 2025 08:21:34 -0500 Subject: [PATCH 14/15] fix(brackeys13): updated laser pool. --- apps/gamejam/brackeys/13/scripts/game.gd | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/gamejam/brackeys/13/scripts/game.gd b/apps/gamejam/brackeys/13/scripts/game.gd index 763b273a7..a694b6c56 100644 --- a/apps/gamejam/brackeys/13/scripts/game.gd +++ b/apps/gamejam/brackeys/13/scripts/game.gd @@ -6,12 +6,11 @@ extends Node2D @onready var entity = $Entity @onready var auto_save_timer = $AutoSaveTimer -const LASER_POOL_SIZE = 10 const AUTO_SAVE_INTERVAL = 30.0 func _ready(): spaceship.connect("laser_shot", _on_spaceship_laser_shot) - projectiles.initialize_pool(LASER_POOL_SIZE) + projectiles.initialize_pool(int(Global.get_starship_stat("laser_ammo"))) entity.initialize_pool(int(Global.get_environment_data("asteroids"))) entity.start_spawn() Global.emit_signal("notification_received", "game_start", "Game Started! Ready for launch.", "info") From f8c43bace2a53eafd3386c92c0be6c7b1d2c1860 Mon Sep 17 00:00:00 2001 From: h0lybyte <5599058+h0lybyte@users.noreply.github.com> Date: Fri, 21 Feb 2025 08:37:19 -0500 Subject: [PATCH 15/15] fix(brackeys13): updated the hud --- apps/gamejam/brackeys/13/scripts/hud.gd | 29 ++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/apps/gamejam/brackeys/13/scripts/hud.gd b/apps/gamejam/brackeys/13/scripts/hud.gd index e749cc63b..1995e8eab 100644 --- a/apps/gamejam/brackeys/13/scripts/hud.gd +++ b/apps/gamejam/brackeys/13/scripts/hud.gd @@ -51,17 +51,28 @@ func _update_starship_data(data_name: String, value): if data_name == "coordinates": update_coordinates(value) +# func _update_starship_resources(): +# for resource in Global.resources_list: +# var amount = Global.get_resource(resource) +# if resource_labels.has(resource) and resource_labels[resource]: +# resource_labels[resource].text = "%d" % [amount] + +# func _on_resource_changed(resource_name: String, new_value: int): +# if resource_labels.has(resource_name) and resource_labels[resource_name]: +# resource_labels[resource_name].text = "%d" % [new_value] + + func _update_starship_resources(): for resource in Global.resources_list: var amount = Global.get_resource(resource) if resource_labels.has(resource) and resource_labels[resource]: - #resource_labels[resource].text = "%s: %d" % [resource.capitalize(), amount] - resource_labels[resource].text = "%d" % [amount] + resource_labels[resource].text = _format_resource_amount(amount) + func _on_resource_changed(resource_name: String, new_value: int): - if resource_labels.has(resource_name) and resource_labels[resource_name]: - #resource_labels[resource_name].text = "%s: %d" % [resource_name.capitalize(), new_value] - resource_labels[resource_name].text = "%d" % [new_value] + if resource_labels.has(resource_name) and resource_labels[resource_name]: + resource_labels[resource_name].text = _format_resource_amount(new_value) + func _update_starship_name(): var starship_name = Global.get_starship_data("name") @@ -72,3 +83,11 @@ func _update_starship_name(): name_label.text = "Starship: Unknown" else: push_warning("Starship name label not found!") + +func _format_resource_amount(amount: int) -> String: + if amount >= 1_000_000: # 1M or more + return "%dM" % (amount / 1_000_000) + elif amount >= 10_000: # 10K or more + return "%dK" % (amount / 1_000) + else: + return "%d" % amount