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 000000000..044cfd9e2 Binary files /dev/null and b/apps/gamejam/brackeys/13/assets/frostwindz/asteroid_base.png differ 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 000000000..c741ea1e9 Binary files /dev/null and b/apps/gamejam/brackeys/13/assets/frostwindz/asteroid_explode.png differ diff --git a/apps/gamejam/brackeys/13/assets/frostwindz/asteroid_explode.png.import b/apps/gamejam/brackeys/13/assets/frostwindz/asteroid_explode.png.import new file mode 100644 index 000000000..fb0d2294e --- /dev/null +++ b/apps/gamejam/brackeys/13/assets/frostwindz/asteroid_explode.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bf5iwehj5at6t" +path="res://.godot/imported/asteroid_explode.png-3be1e81ddede01303c41100b4d04a0ee.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/frostwindz/asteroid_explode.png" +dest_files=["res://.godot/imported/asteroid_explode.png-3be1e81ddede01303c41100b4d04a0ee.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.png b/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser.png new file mode 100644 index 000000000..5399e0d7e Binary files /dev/null and b/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser.png differ 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 000000000..5ef37556a Binary files /dev/null and b/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_engine.png differ diff --git a/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_engine.png.import b/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_engine.png.import new file mode 100644 index 000000000..fe19692dc --- /dev/null +++ b/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_engine.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cj16mbdine6mk" +path="res://.godot/imported/battlecruiser_engine.png-ee217aef6848a3180e04481f9ed2acac.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/frostwindz/battlecruiser_engine.png" +dest_files=["res://.godot/imported/battlecruiser_engine.png-ee217aef6848a3180e04481f9ed2acac.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_shield.png b/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_shield.png new file mode 100644 index 000000000..e63f1d981 Binary files /dev/null and b/apps/gamejam/brackeys/13/assets/frostwindz/battlecruiser_shield.png differ 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/.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/gems_icon.png b/apps/gamejam/brackeys/13/assets/kbve/png/gems_icon.png new file mode 100644 index 000000000..ea50f8b4a Binary files /dev/null and b/apps/gamejam/brackeys/13/assets/kbve/png/gems_icon.png differ 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 000000000..ed5aec393 Binary files /dev/null and b/apps/gamejam/brackeys/13/assets/kbve/png/gold_icon.png differ diff --git a/apps/gamejam/brackeys/13/assets/kbve/png/gold_icon.png.import b/apps/gamejam/brackeys/13/assets/kbve/png/gold_icon.png.import new file mode 100644 index 000000000..e0f03ddb5 --- /dev/null +++ b/apps/gamejam/brackeys/13/assets/kbve/png/gold_icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ckdgs4480fqfn" +path="res://.godot/imported/gold_icon.png-652811489b14c9e7d010783f74ffd231.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/kbve/png/gold_icon.png" +dest_files=["res://.godot/imported/gold_icon.png-652811489b14c9e7d010783f74ffd231.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/hud_bg.png b/apps/gamejam/brackeys/13/assets/kbve/png/hud_bg.png new file mode 100644 index 000000000..bcf92a678 Binary files /dev/null and b/apps/gamejam/brackeys/13/assets/kbve/png/hud_bg.png differ diff --git a/apps/gamejam/brackeys/13/assets/kbve/png/hud_bg.png.import b/apps/gamejam/brackeys/13/assets/kbve/png/hud_bg.png.import new file mode 100644 index 000000000..b24f462c6 --- /dev/null +++ b/apps/gamejam/brackeys/13/assets/kbve/png/hud_bg.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://hprhaqdtcn8j" +path="res://.godot/imported/hud_bg.png-2526dccc4848aec6915f98635ec1945a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/kbve/png/hud_bg.png" +dest_files=["res://.godot/imported/hud_bg.png-2526dccc4848aec6915f98635ec1945a.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/metal_icon.png b/apps/gamejam/brackeys/13/assets/kbve/png/metal_icon.png new file mode 100644 index 000000000..dd1b316ec Binary files /dev/null and b/apps/gamejam/brackeys/13/assets/kbve/png/metal_icon.png differ 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 000000000..d80ca55e4 Binary files /dev/null and b/apps/gamejam/brackeys/13/assets/kbve/png/stone_icon.png differ 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/assets/kbve/png/ui/toast.png b/apps/gamejam/brackeys/13/assets/kbve/png/ui/toast.png new file mode 100644 index 000000000..e04e670dc Binary files /dev/null and b/apps/gamejam/brackeys/13/assets/kbve/png/ui/toast.png differ 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/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 000000000..838e2f2c6 Binary files /dev/null and b/apps/gamejam/brackeys/13/assets/kbve/png/universe/object1.png differ 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 000000000..024d27db9 Binary files /dev/null and b/apps/gamejam/brackeys/13/assets/kbve/png/universe/object2.png differ 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 000000000..7e02c1b71 Binary files /dev/null and b/apps/gamejam/brackeys/13/assets/kbve/png/universe/object3.png differ diff --git a/apps/gamejam/brackeys/13/assets/kbve/png/universe/object3.png.import b/apps/gamejam/brackeys/13/assets/kbve/png/universe/object3.png.import new file mode 100644 index 000000000..ba4af3aec --- /dev/null +++ b/apps/gamejam/brackeys/13/assets/kbve/png/universe/object3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cslhjsonhatit" +path="res://.godot/imported/object3.png-50a036f8b3f63f5ef2eb4a7b274a74db.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/kbve/png/universe/object3.png" +dest_files=["res://.godot/imported/object3.png-50a036f8b3f63f5ef2eb4a7b274a74db.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/timespace_bg.png b/apps/gamejam/brackeys/13/assets/kbve/png/universe/timespace_bg.png new file mode 100644 index 000000000..7d7c58993 Binary files /dev/null and b/apps/gamejam/brackeys/13/assets/kbve/png/universe/timespace_bg.png differ 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/project.godot b/apps/gamejam/brackeys/13/project.godot index 31bf58283..f52732c3e 100644 --- a/apps/gamejam/brackeys/13/project.godot +++ b/apps/gamejam/brackeys/13/project.godot @@ -82,3 +82,4 @@ shoot={ renderer/rendering_method="gl_compatibility" renderer/rendering_method.mobile="gl_compatibility" +environment/defaults/default_clear_color=Color(0, 0, 0, 1) diff --git a/apps/gamejam/brackeys/13/scenes/asteroid.tscn b/apps/gamejam/brackeys/13/scenes/asteroid.tscn index d55366ffd..ab3e2746e 100644 --- a/apps/gamejam/brackeys/13/scenes/asteroid.tscn +++ b/apps/gamejam/brackeys/13/scenes/asteroid.tscn @@ -1,10 +1,75 @@ -[gd_scene load_steps=4 format=3 uid="uid://c4tfp7xjvfd2t"] +[gd_scene load_steps=14 format=3 uid="uid://c4tfp7xjvfd2t"] -[ext_resource type="Texture2D" uid="uid://ct1megp1rctxi" path="res://assets/kenny/space-shooter-redux/png/meteorGrey_big3.png" id="1_bra2q"] [ext_resource type="Script" path="res://scripts/asteroid.gd" id="1_luuic"] +[ext_resource type="Texture2D" uid="uid://dbx7yu6wgjtfs" path="res://assets/frostwindz/asteroid_base.png" id="2_dvxfl"] +[ext_resource type="Texture2D" uid="uid://bf5iwehj5at6t" path="res://assets/frostwindz/asteroid_explode.png" id="3_t8m0d"] [sub_resource type="CircleShape2D" id="CircleShape2D_qw1xp"] -radius = 44.6542 +radius = 18.2483 + +[sub_resource type="AtlasTexture" id="AtlasTexture_faa0d"] +atlas = ExtResource("3_t8m0d") +region = Rect2(0, 0, 96, 96) + +[sub_resource type="AtlasTexture" id="AtlasTexture_54mr3"] +atlas = ExtResource("3_t8m0d") +region = Rect2(96, 0, 96, 96) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4ntrw"] +atlas = ExtResource("3_t8m0d") +region = Rect2(192, 0, 96, 96) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lsyjt"] +atlas = ExtResource("3_t8m0d") +region = Rect2(288, 0, 96, 96) + +[sub_resource type="AtlasTexture" id="AtlasTexture_p1u3t"] +atlas = ExtResource("3_t8m0d") +region = Rect2(384, 0, 96, 96) + +[sub_resource type="AtlasTexture" id="AtlasTexture_oxqmb"] +atlas = ExtResource("3_t8m0d") +region = Rect2(480, 0, 96, 96) + +[sub_resource type="AtlasTexture" id="AtlasTexture_o4oup"] +atlas = ExtResource("3_t8m0d") +region = Rect2(576, 0, 96, 96) + +[sub_resource type="AtlasTexture" id="AtlasTexture_c77nx"] +atlas = ExtResource("3_t8m0d") +region = Rect2(672, 0, 96, 96) + +[sub_resource type="SpriteFrames" id="SpriteFrames_30yq2"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_faa0d") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_54mr3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4ntrw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_lsyjt") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_p1u3t") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_oxqmb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_o4oup") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_c77nx") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] [node name="Asteroid" type="Area2D"] collision_layer = 128 @@ -12,7 +77,13 @@ collision_mask = 288 script = ExtResource("1_luuic") [node name="Sprite2D" type="Sprite2D" parent="."] -texture = ExtResource("1_bra2q") +texture = ExtResource("2_dvxfl") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("CircleShape2D_qw1xp") + +[node name="Explosion" type="AnimatedSprite2D" parent="."] +visible = false +sprite_frames = SubResource("SpriteFrames_30yq2") + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/apps/gamejam/brackeys/13/scenes/game.tscn b/apps/gamejam/brackeys/13/scenes/game.tscn index 203df8e97..990865be6 100644 --- a/apps/gamejam/brackeys/13/scenes/game.tscn +++ b/apps/gamejam/brackeys/13/scenes/game.tscn @@ -1,22 +1,28 @@ -[gd_scene load_steps=14 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"] [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"] [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="StyleBoxFlat" id="StyleBoxFlat_4vpul"] -bg_color = Color(0.6, 0.6, 0.6, 0.5) -expand_margin_left = 20.0 -expand_margin_right = 20.0 +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_ekd6t"] +texture = ExtResource("4_e6jc8") +axis_stretch_horizontal = 1 +axis_stretch_vertical = 1 [node name="Game" type="Node2D"] script = ExtResource("1_oyaqx") @@ -50,48 +56,98 @@ anchors_preset = 10 anchor_right = 1.0 offset_bottom = 23.0 grow_horizontal = 2 -theme_override_styles/panel = SubResource("StyleBoxFlat_4vpul") +theme_override_styles/panel = SubResource("StyleBoxTexture_ekd6t") [node name="Menu" type="HBoxContainer" parent="CanvasLayer/UI/HUD/Panel"] 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"] 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")] @@ -103,13 +159,17 @@ script = ExtResource("3_hgajf") [node name="Background" type="Node2D" parent="."] script = ExtResource("4_8k503") -[node name="TimespaceLayer" type="Node2D" parent="Background"] +[node name="TimespaceLayer" type="CanvasLayer" parent="Background"] +layer = -2 script = ExtResource("5_jsdqu") [node name="ColorRect" type="ColorRect" parent="Background/TimespaceLayer"] 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") @@ -121,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/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/scenes/spaceship.tscn b/apps/gamejam/brackeys/13/scenes/spaceship.tscn index a0248d97b..21d83ff97 100644 --- a/apps/gamejam/brackeys/13/scenes/spaceship.tscn +++ b/apps/gamejam/brackeys/13/scenes/spaceship.tscn @@ -1,10 +1,224 @@ -[gd_scene load_steps=4 format=3 uid="uid://1s5v0llrjq3"] +[gd_scene load_steps=36 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"] +[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 = 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 +}] + +[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 @@ -12,13 +226,30 @@ 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, -49) + +[node name="Engine" type="AnimatedSprite2D" parent="."] +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" + +[node name="Camera2D" type="Camera2D" parent="."] +position_smoothing_enabled = true +drag_horizontal_enabled = true +drag_vertical_enabled = true 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/asteroid.gd b/apps/gamejam/brackeys/13/scripts/asteroid.gd index a44c6ec59..5259c3443 100644 --- a/apps/gamejam/brackeys/13/scripts/asteroid.gd +++ b/apps/gamejam/brackeys/13/scripts/asteroid.gd @@ -1,28 +1,46 @@ 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: + 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(): + + explosion.visible = true + explosion.play() visible = false - get_parent()._on_asteroid_destroyed(self) + 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/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/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/game.gd b/apps/gamejam/brackeys/13/scripts/game.gd index fea0d7731..a694b6c56 100644 --- a/apps/gamejam/brackeys/13/scripts/game.gd +++ b/apps/gamejam/brackeys/13/scripts/game.gd @@ -3,14 +3,36 @@ extends Node2D @onready var spaceship = $Spaceship @onready var projectiles = $Projectiles @onready var background = $Background -#@onready var tm = $ToastManager +@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") + 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 7e826f3d0..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) @@ -7,11 +9,13 @@ 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 } @@ -44,7 +48,8 @@ var starship_bonuses := { var starship_data := { "name": "Explorer-X", "emergency_rockets_used": false, - "shield_active": false + "shield_active": false, + "coordinates": Vector2.ZERO } func earn_random_resource(resource_name: String, min_value: int = 3, max_value: int = 15): @@ -118,3 +123,55 @@ func get_environment_data(data_name: String): func set_environment_data(data_name: String, new_value): environment_data[data_name] = new_value emit_signal("environment_data_changed", data_name, new_value) + +func get_starship_coordinates() -> 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) + + +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 diff --git a/apps/gamejam/brackeys/13/scripts/hud.gd b/apps/gamejam/brackeys/13/scripts/hud.gd index 4606717fd..1995e8eab 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 coordinates_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,27 +27,52 @@ 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") 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: +# 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 = _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] + 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") @@ -47,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 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 = [] diff --git a/apps/gamejam/brackeys/13/scripts/shop.gd b/apps/gamejam/brackeys/13/scripts/shop.gd index a1d4176a6..09fcc1bc4 100644 --- a/apps/gamejam/brackeys/13/scripts/shop.gd +++ b/apps/gamejam/brackeys/13/scripts/shop.gd @@ -1,11 +1,44 @@ -extends Control +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() -> void: +func _ready(): + pass # Replace with function body. # Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta: float) -> void: +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/scripts/spaceship.gd b/apps/gamejam/brackeys/13/scripts/spaceship.gd index 372bf9aa7..acf8f8b8e 100644 --- a/apps/gamejam/brackeys/13/scripts/spaceship.gd +++ b/apps/gamejam/brackeys/13/scripts/spaceship.gd @@ -1,8 +1,12 @@ class_name Spaceship extends CharacterBody2D + signal laser_shot(laser) @onready var scope = $OmniScope +@onready var engine = $Engine +@onready var shield = $Shield + var laser_scene = preload("res://scenes/laser.tscn") @@ -10,7 +14,9 @@ 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() func _physics_process(delta): @@ -21,6 +27,11 @@ func _physics_process(delta): velocity += input_vector.rotated(rotation) * acceleration velocity = velocity.limit_length(max_speed) + 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)) if Input.is_action_pressed("pan_left"): @@ -30,12 +41,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: @@ -44,15 +55,24 @@ 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) + + +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 37074d3db..e8be56ff0 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 +extends CanvasLayer @onready var color_rect := $ColorRect - +@onready var background_sprite := $BackgroundSprite func _ready() -> void: - color_rect.color = Color(0,0,0) + color_rect.color = Color.BLACK + background_sprite.centered = true 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 = viewport_size / 2 # Keep centered + + color_rect.size = viewport_size # Make sure the color rect covers the screen func _on_viewport_resized(): update_background_size() - -func _process(delta: float) -> void: - pass 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/scripts/universe_layer.gd b/apps/gamejam/brackeys/13/scripts/universe_layer.gd index 0db733bde..b2eb77812 100644 --- a/apps/gamejam/brackeys/13/scripts/universe_layer.gd +++ b/apps/gamejam/brackeys/13/scripts/universe_layer.gd @@ -1,11 +1,67 @@ extends Parallax2D +@export var pool_size: int = 2 +@export var despawn_distance: float = 2000 -# Called when the node enters the scene tree for the first time. -func _ready() -> void: - pass # Replace with function body. +var active_sprites: Array[Sprite2D] = [] +var inactive_sprites: Array[Sprite2D] = [] +const BASE_PATH: String = "res://assets/kbve/png/universe/object" -# Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta: float) -> void: - pass +var spaceship: Node2D + +func _ready(): + spaceship = get_tree().get_root().find_child("Spaceship", true, false) + _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) + inactive_sprites.append(sprite) + add_child(sprite) + sprite.hide() + +func _spawn_initial_sprites(): + for i in range(pool_size): + _spawn_sprite_near_ship() + +func _spawn_sprite_near_ship(): + if inactive_sprites.is_empty() or spaceship == null: + return + + var sprite = inactive_sprites.pop_back() + + 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 _process(delta: float): + 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() 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 000000000..fd187beb8 Binary files /dev/null and b/apps/gamejam/brackeys/13/theme/empty.stylebox differ 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..9a4b5ddbc 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,27 @@ 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. + +#### 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: @@ -236,6 +253,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 +320,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. 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..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 @@ -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: