diff --git a/CLAUDE.md b/CLAUDE.md index 6296567..e584d9d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -20,10 +20,10 @@ 2. **Main menu** — CASUAL / RANKED (disabled) buttons, callsign input, rank badge, QUIT; clears player state on load 3. **In-game pause menu** — ESC / controller Start button toggles overlay; game keeps running; RESUME, SETTINGS (stub), SELECT TEAM (stub), QUIT TO MENU, QUIT TO DESKTOP 4. **Team & ship selection** — shows on world load before player spawns; 2 races randomly offered per match; ship grid with sprites; player spawns with chosen ship after selection +5. **Real race art wired in** — Terran Republic, Mechanos Sovereignty, and Vorg Swarm each have their own 5-ship roster (Interceptor/Gunship/Bomber/Support/Heavy) with real sprites cropped from uploaded concept sheets (`assets/images/ships//`); placeholder `example_ships` removed ## Current Tasks -- [ ] Replace placeholder race names + ship sprites with the 3 chosen races (see `racesclasses.md`) - [ ] Asteroids and environment hazards - [ ] Bot fill for casual (minimum 7v7, bots fill empty slots — see `bots.md`) - [ ] Sound effects (thrust, shoot, explosion, UI) diff --git a/spacewar/assets/images/ships/example_ships/1.png b/spacewar/assets/images/ships/example_ships/1.png deleted file mode 100644 index 4479042..0000000 Binary files a/spacewar/assets/images/ships/example_ships/1.png and /dev/null differ diff --git a/spacewar/assets/images/ships/example_ships/1B.png b/spacewar/assets/images/ships/example_ships/1B.png deleted file mode 100644 index e9091ec..0000000 Binary files a/spacewar/assets/images/ships/example_ships/1B.png and /dev/null differ diff --git a/spacewar/assets/images/ships/example_ships/2a.png b/spacewar/assets/images/ships/example_ships/2a.png deleted file mode 100644 index edee698..0000000 Binary files a/spacewar/assets/images/ships/example_ships/2a.png and /dev/null differ diff --git a/spacewar/assets/images/ships/example_ships/3b.png b/spacewar/assets/images/ships/example_ships/3b.png deleted file mode 100644 index 4a04e37..0000000 Binary files a/spacewar/assets/images/ships/example_ships/3b.png and /dev/null differ diff --git a/spacewar/assets/images/ships/mech/aegis.png b/spacewar/assets/images/ships/mech/aegis.png new file mode 100644 index 0000000..c4fed87 Binary files /dev/null and b/spacewar/assets/images/ships/mech/aegis.png differ diff --git a/spacewar/assets/images/ships/example_ships/2a.png.import b/spacewar/assets/images/ships/mech/aegis.png.import similarity index 74% rename from spacewar/assets/images/ships/example_ships/2a.png.import rename to spacewar/assets/images/ships/mech/aegis.png.import index cb8ace5..2955a17 100644 --- a/spacewar/assets/images/ships/example_ships/2a.png.import +++ b/spacewar/assets/images/ships/mech/aegis.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://wnrdhn33ce50" -path="res://.godot/imported/2a.png-9fa51336ca7f78060a7eadc36c632e13.ctex" +uid="uid://esgvr7ifliqv" +path="res://.godot/imported/aegis.png-eaf77a51a993783e3afbc24524f7be3e.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/images/ships/example_ships/2a.png" -dest_files=["res://.godot/imported/2a.png-9fa51336ca7f78060a7eadc36c632e13.ctex"] +source_file="res://assets/images/ships/mech/aegis.png" +dest_files=["res://.godot/imported/aegis.png-eaf77a51a993783e3afbc24524f7be3e.ctex"] [params] diff --git a/spacewar/assets/images/ships/mech/colossus.png b/spacewar/assets/images/ships/mech/colossus.png new file mode 100644 index 0000000..c7b7a61 Binary files /dev/null and b/spacewar/assets/images/ships/mech/colossus.png differ diff --git a/spacewar/assets/images/ships/mech/colossus.png.import b/spacewar/assets/images/ships/mech/colossus.png.import new file mode 100644 index 0000000..c4db125 --- /dev/null +++ b/spacewar/assets/images/ships/mech/colossus.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ct7akogqjrpkn" +path="res://.godot/imported/colossus.png-2785d8aaec789772346e960e27ca68a2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/ships/mech/colossus.png" +dest_files=["res://.godot/imported/colossus.png-2785d8aaec789772346e960e27ca68a2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/spacewar/assets/images/ships/mech/ravager.png b/spacewar/assets/images/ships/mech/ravager.png new file mode 100644 index 0000000..09f3b8d Binary files /dev/null and b/spacewar/assets/images/ships/mech/ravager.png differ diff --git a/spacewar/assets/images/ships/example_ships/3b.png.import b/spacewar/assets/images/ships/mech/ravager.png.import similarity index 73% rename from spacewar/assets/images/ships/example_ships/3b.png.import rename to spacewar/assets/images/ships/mech/ravager.png.import index f191cc8..e6fdb17 100644 --- a/spacewar/assets/images/ships/example_ships/3b.png.import +++ b/spacewar/assets/images/ships/mech/ravager.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b6xkpyy1rg74v" -path="res://.godot/imported/3b.png-272e2c2803a6a3a9dfb46c9672f6a0fe.ctex" +uid="uid://2un2khrogg67" +path="res://.godot/imported/ravager.png-b7114fbc1a43e32c3bd94c10d1c2ac00.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/images/ships/example_ships/3b.png" -dest_files=["res://.godot/imported/3b.png-272e2c2803a6a3a9dfb46c9672f6a0fe.ctex"] +source_file="res://assets/images/ships/mech/ravager.png" +dest_files=["res://.godot/imported/ravager.png-b7114fbc1a43e32c3bd94c10d1c2ac00.ctex"] [params] diff --git a/spacewar/assets/images/ships/mech/sentinel.png b/spacewar/assets/images/ships/mech/sentinel.png new file mode 100644 index 0000000..0c57676 Binary files /dev/null and b/spacewar/assets/images/ships/mech/sentinel.png differ diff --git a/spacewar/assets/images/ships/mech/sentinel.png.import b/spacewar/assets/images/ships/mech/sentinel.png.import new file mode 100644 index 0000000..a8b664d --- /dev/null +++ b/spacewar/assets/images/ships/mech/sentinel.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3a7umrckb4ne" +path="res://.godot/imported/sentinel.png-53e9f738f54ac31e5a1ec17d4b21a320.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/ships/mech/sentinel.png" +dest_files=["res://.godot/imported/sentinel.png-53e9f738f54ac31e5a1ec17d4b21a320.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/spacewar/assets/images/ships/mech/source/mech_ships.jpeg b/spacewar/assets/images/ships/mech/source/mech_ships.jpeg new file mode 100644 index 0000000..8c22ff6 Binary files /dev/null and b/spacewar/assets/images/ships/mech/source/mech_ships.jpeg differ diff --git a/spacewar/assets/images/ships/mech/source/mech_ships.jpeg.import b/spacewar/assets/images/ships/mech/source/mech_ships.jpeg.import new file mode 100644 index 0000000..ad5e91c --- /dev/null +++ b/spacewar/assets/images/ships/mech/source/mech_ships.jpeg.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://hbshohij363k" +path="res://.godot/imported/mech_ships.jpeg-e540f5053d353c4f4c0f8f1768ba4bec.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/ships/mech/source/mech_ships.jpeg" +dest_files=["res://.godot/imported/mech_ships.jpeg-e540f5053d353c4f4c0f8f1768ba4bec.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/spacewar/assets/images/ships/mech/vanguard.png b/spacewar/assets/images/ships/mech/vanguard.png new file mode 100644 index 0000000..3438a10 Binary files /dev/null and b/spacewar/assets/images/ships/mech/vanguard.png differ diff --git a/spacewar/assets/images/ships/mech/vanguard.png.import b/spacewar/assets/images/ships/mech/vanguard.png.import new file mode 100644 index 0000000..6df22cb --- /dev/null +++ b/spacewar/assets/images/ships/mech/vanguard.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://btbq6p2wk4w6l" +path="res://.godot/imported/vanguard.png-832fa658c909a6aa5756b84a895aee74.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/ships/mech/vanguard.png" +dest_files=["res://.godot/imported/vanguard.png-832fa658c909a6aa5756b84a895aee74.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/spacewar/assets/images/ships/terran/bastion.png b/spacewar/assets/images/ships/terran/bastion.png new file mode 100644 index 0000000..b1abf06 Binary files /dev/null and b/spacewar/assets/images/ships/terran/bastion.png differ diff --git a/spacewar/assets/images/ships/terran/bastion.png.import b/spacewar/assets/images/ships/terran/bastion.png.import new file mode 100644 index 0000000..941677c --- /dev/null +++ b/spacewar/assets/images/ships/terran/bastion.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b0h5vrcjd7avn" +path="res://.godot/imported/bastion.png-4ea0a7fbf43bbeea216931d31c11acde.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/ships/terran/bastion.png" +dest_files=["res://.godot/imported/bastion.png-4ea0a7fbf43bbeea216931d31c11acde.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/spacewar/assets/images/ships/terran/deployer.png b/spacewar/assets/images/ships/terran/deployer.png new file mode 100644 index 0000000..09dea43 Binary files /dev/null and b/spacewar/assets/images/ships/terran/deployer.png differ diff --git a/spacewar/assets/images/ships/terran/deployer.png.import b/spacewar/assets/images/ships/terran/deployer.png.import new file mode 100644 index 0000000..4a52799 --- /dev/null +++ b/spacewar/assets/images/ships/terran/deployer.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cckcbrwvxhwim" +path="res://.godot/imported/deployer.png-d677783e889816463be911e1dd698d1a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/ships/terran/deployer.png" +dest_files=["res://.godot/imported/deployer.png-d677783e889816463be911e1dd698d1a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/spacewar/assets/images/ships/terran/link_node.png b/spacewar/assets/images/ships/terran/link_node.png new file mode 100644 index 0000000..72c2d96 Binary files /dev/null and b/spacewar/assets/images/ships/terran/link_node.png differ diff --git a/spacewar/assets/images/ships/terran/link_node.png.import b/spacewar/assets/images/ships/terran/link_node.png.import new file mode 100644 index 0000000..9c928c7 --- /dev/null +++ b/spacewar/assets/images/ships/terran/link_node.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d2pdhy75ms4p6" +path="res://.godot/imported/link_node.png-da0c45227750e3b30b7f1f23421c813f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/ships/terran/link_node.png" +dest_files=["res://.godot/imported/link_node.png-da0c45227750e3b30b7f1f23421c813f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/spacewar/assets/images/ships/terran/source/terran_ships.jpg b/spacewar/assets/images/ships/terran/source/terran_ships.jpg new file mode 100644 index 0000000..ed57df0 Binary files /dev/null and b/spacewar/assets/images/ships/terran/source/terran_ships.jpg differ diff --git a/spacewar/assets/images/ships/terran/source/terran_ships.jpg.import b/spacewar/assets/images/ships/terran/source/terran_ships.jpg.import new file mode 100644 index 0000000..40d0a5e --- /dev/null +++ b/spacewar/assets/images/ships/terran/source/terran_ships.jpg.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bvqlvcjgu22qu" +path="res://.godot/imported/terran_ships.jpg-ab98c8b5608d41e2bbf157582fcafc51.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/ships/terran/source/terran_ships.jpg" +dest_files=["res://.godot/imported/terran_ships.jpg-ab98c8b5608d41e2bbf157582fcafc51.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/spacewar/assets/images/ships/terran/striker.png b/spacewar/assets/images/ships/terran/striker.png new file mode 100644 index 0000000..aa6df5c Binary files /dev/null and b/spacewar/assets/images/ships/terran/striker.png differ diff --git a/spacewar/assets/images/ships/terran/striker.png.import b/spacewar/assets/images/ships/terran/striker.png.import new file mode 100644 index 0000000..cbac4e5 --- /dev/null +++ b/spacewar/assets/images/ships/terran/striker.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bs1d1civ8ic34" +path="res://.godot/imported/striker.png-f728cebf6fd27e7041e19ed7e381cda9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/ships/terran/striker.png" +dest_files=["res://.godot/imported/striker.png-f728cebf6fd27e7041e19ed7e381cda9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/spacewar/assets/images/ships/terran/warframe.png b/spacewar/assets/images/ships/terran/warframe.png new file mode 100644 index 0000000..d85fb5e Binary files /dev/null and b/spacewar/assets/images/ships/terran/warframe.png differ diff --git a/spacewar/assets/images/ships/terran/warframe.png.import b/spacewar/assets/images/ships/terran/warframe.png.import new file mode 100644 index 0000000..4dc9cbe --- /dev/null +++ b/spacewar/assets/images/ships/terran/warframe.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://m3hn8ib7ago1" +path="res://.godot/imported/warframe.png-37bb97568f9efb73031907e854797ddf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/ships/terran/warframe.png" +dest_files=["res://.godot/imported/warframe.png-37bb97568f9efb73031907e854797ddf.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/spacewar/assets/images/ships/vorg/behemoth.png b/spacewar/assets/images/ships/vorg/behemoth.png new file mode 100644 index 0000000..f8732bf Binary files /dev/null and b/spacewar/assets/images/ships/vorg/behemoth.png differ diff --git a/spacewar/assets/images/ships/vorg/behemoth.png.import b/spacewar/assets/images/ships/vorg/behemoth.png.import new file mode 100644 index 0000000..03ac84b --- /dev/null +++ b/spacewar/assets/images/ships/vorg/behemoth.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c54u1evbyak8f" +path="res://.godot/imported/behemoth.png-606de821a53b815eb05f01022ba1da43.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/ships/vorg/behemoth.png" +dest_files=["res://.godot/imported/behemoth.png-606de821a53b815eb05f01022ba1da43.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/spacewar/assets/images/ships/vorg/broodling.png b/spacewar/assets/images/ships/vorg/broodling.png new file mode 100644 index 0000000..a6eb953 Binary files /dev/null and b/spacewar/assets/images/ships/vorg/broodling.png differ diff --git a/spacewar/assets/images/ships/vorg/broodling.png.import b/spacewar/assets/images/ships/vorg/broodling.png.import new file mode 100644 index 0000000..5856c1e --- /dev/null +++ b/spacewar/assets/images/ships/vorg/broodling.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3jy8vp77hwpo" +path="res://.godot/imported/broodling.png-3147cdec851b8208532752678949ade2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/ships/vorg/broodling.png" +dest_files=["res://.godot/imported/broodling.png-3147cdec851b8208532752678949ade2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/spacewar/assets/images/ships/vorg/nurse.png b/spacewar/assets/images/ships/vorg/nurse.png new file mode 100644 index 0000000..51c696f Binary files /dev/null and b/spacewar/assets/images/ships/vorg/nurse.png differ diff --git a/spacewar/assets/images/ships/example_ships/1.png.import b/spacewar/assets/images/ships/vorg/nurse.png.import similarity index 74% rename from spacewar/assets/images/ships/example_ships/1.png.import rename to spacewar/assets/images/ships/vorg/nurse.png.import index 7657a9f..813991d 100644 --- a/spacewar/assets/images/ships/example_ships/1.png.import +++ b/spacewar/assets/images/ships/vorg/nurse.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://td2tbmkm3r6u" -path="res://.godot/imported/1.png-362339079d92758f46be17d4e359799c.ctex" +uid="uid://mibc47xooehs" +path="res://.godot/imported/nurse.png-fe96f0cad5b4cd8f75f67ad47e301bdc.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/images/ships/example_ships/1.png" -dest_files=["res://.godot/imported/1.png-362339079d92758f46be17d4e359799c.ctex"] +source_file="res://assets/images/ships/vorg/nurse.png" +dest_files=["res://.godot/imported/nurse.png-fe96f0cad5b4cd8f75f67ad47e301bdc.ctex"] [params] diff --git a/spacewar/assets/images/ships/vorg/source/vorg_ships.jpeg b/spacewar/assets/images/ships/vorg/source/vorg_ships.jpeg new file mode 100644 index 0000000..662ab4c Binary files /dev/null and b/spacewar/assets/images/ships/vorg/source/vorg_ships.jpeg differ diff --git a/spacewar/assets/images/ships/vorg/source/vorg_ships.jpeg.import b/spacewar/assets/images/ships/vorg/source/vorg_ships.jpeg.import new file mode 100644 index 0000000..c0b3519 --- /dev/null +++ b/spacewar/assets/images/ships/vorg/source/vorg_ships.jpeg.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://tna1vxtik1j" +path="res://.godot/imported/vorg_ships.jpeg-5e020d362feb0e40b43cfff9c646c059.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/ships/vorg/source/vorg_ships.jpeg" +dest_files=["res://.godot/imported/vorg_ships.jpeg-5e020d362feb0e40b43cfff9c646c059.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/spacewar/assets/images/ships/vorg/spitter.png b/spacewar/assets/images/ships/vorg/spitter.png new file mode 100644 index 0000000..67af156 Binary files /dev/null and b/spacewar/assets/images/ships/vorg/spitter.png differ diff --git a/spacewar/assets/images/ships/example_ships/1B.png.import b/spacewar/assets/images/ships/vorg/spitter.png.import similarity index 73% rename from spacewar/assets/images/ships/example_ships/1B.png.import rename to spacewar/assets/images/ships/vorg/spitter.png.import index da9f0e0..b5bd601 100644 --- a/spacewar/assets/images/ships/example_ships/1B.png.import +++ b/spacewar/assets/images/ships/vorg/spitter.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cgfd5fboa45dn" -path="res://.godot/imported/1B.png-4ca6f2d74cf902792fc79e84bac00b83.ctex" +uid="uid://dvjgmvs1nn4li" +path="res://.godot/imported/spitter.png-de6f6d2a6838599ffa18abd37c34f49f.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/images/ships/example_ships/1B.png" -dest_files=["res://.godot/imported/1B.png-4ca6f2d74cf902792fc79e84bac00b83.ctex"] +source_file="res://assets/images/ships/vorg/spitter.png" +dest_files=["res://.godot/imported/spitter.png-de6f6d2a6838599ffa18abd37c34f49f.ctex"] [params] diff --git a/spacewar/assets/images/ships/vorg/stinger.png b/spacewar/assets/images/ships/vorg/stinger.png new file mode 100644 index 0000000..195c9f9 Binary files /dev/null and b/spacewar/assets/images/ships/vorg/stinger.png differ diff --git a/spacewar/assets/images/ships/vorg/stinger.png.import b/spacewar/assets/images/ships/vorg/stinger.png.import new file mode 100644 index 0000000..cbb65ef --- /dev/null +++ b/spacewar/assets/images/ships/vorg/stinger.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bn26mqnn8sroh" +path="res://.godot/imported/stinger.png-16e27a83289e4c658a0cff29cdc74d71.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/images/ships/vorg/stinger.png" +dest_files=["res://.godot/imported/stinger.png-16e27a83289e4c658a0cff29cdc74d71.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/spacewar/menu/team_select.gd b/spacewar/menu/team_select.gd index 6904154..cb48e52 100644 --- a/spacewar/menu/team_select.gd +++ b/spacewar/menu/team_select.gd @@ -1,45 +1,107 @@ extends CanvasLayer const RACES := [ - {"id": 1, "name": "TERRAN FEDERATION", "sub": "Speed and balanced firepower", "color": Color(0.30, 0.55, 1.00)}, - {"id": 2, "name": "THE COLLECTIVE", "sub": "Heavy armor, brute force", "color": Color(1.00, 0.45, 0.18)}, - {"id": 3, "name": "IRON ORDER", "sub": "Precision strike force", "color": Color(0.28, 0.90, 0.42)}, -] - -const SHIPS := [ { - "name": "WARBIRD", - "role": "All-Round Fighter", - "desc": "The most versatile ship in the fleet. Solid speed, reliable firepower, and enough armor to stay in the fight. Forgiving to fly and effective in any situation — the go-to choice when you're not sure what you're up against.", - "path": "res://assets/images/ships/example_ships/1.png", + "id": 1, "name": "TERRAN REPUBLIC", "sub": "Angular gray-blue military ships, standard balanced fighters", + "color": Color(0.40, 0.60, 0.85), + "ships": [ + { + "name": "WARFRAME", "role": "Interceptor", + "desc": "Very fast, rapid weak laser bursts. Built to close distance instantly and chip away at anything in range. Low individual hit strength but a relentless rate of fire punishes anyone who stands still.", + "path": "res://assets/images/ships/terran/warframe.png", + }, + { + "name": "STRIKER", "role": "Gunship", + "desc": "Super fast fire rate, very low damage lasers. Trades hitting power for volume — the more shots in the air, the more that connect. Best flown aggressively, applying constant pressure rather than picking single shots.", + "path": "res://assets/images/ships/terran/striker.png", + }, + { + "name": "DEPLOYER", "role": "Bomber", + "desc": "Fast lasers plus an EMP mine dropped in your wake. Punishes anyone chasing too closely and disables systems on contact. Strong for area denial and covering a retreat.", + "path": "res://assets/images/ships/terran/deployer.png", + }, + { + "name": "LINK NODE", "role": "Support", + "desc": "Standard lasers plus a small repair pack dropped for allies to pick up. Keeps a team topped off in prolonged fights. Not built to duel alone — stay near the fight, not in the middle of it.", + "path": "res://assets/images/ships/terran/link_node.png", + }, + { + "name": "BASTION", "role": "Heavy", + "desc": "Tankier and slower, but its laser hits harder than anything else in the fleet. Built to anchor a push and absorb damage while dealing it back. Discourages anyone from engaging head-on.", + "path": "res://assets/images/ships/terran/bastion.png", + }, + ], }, { - "name": "JAVELIN", - "role": "Fast Interceptor", - "desc": "Built for speed above everything else. Light armor means you have to pick your fights carefully, but nothing can outrun you. Best used for hit-and-run strikes, hunting weakened targets, and escaping when things go wrong.", - "path": "res://assets/images/ships/example_ships/1B.png", + "id": 2, "name": "MECHANOS SOVEREIGNTY", "sub": "Industrial war machines built for brute-force firepower", + "color": Color(0.85, 0.28, 0.28), + "ships": [ + { + "name": "SENTINEL", "role": "Interceptor", + "desc": "A light scout mech with twin rapid cannons. Fast and maneuverable for a Mechanos hull, built to screen the front line and harass before the heavier machines arrive.", + "path": "res://assets/images/ships/mech/sentinel.png", + }, + { + "name": "VANGUARD", "role": "Gunship", + "desc": "Dual autocannons built for sustained fire. Sits between the light scouts and the heavy machines — durable enough to hold a line, fast enough to reposition when it breaks.", + "path": "res://assets/images/ships/mech/vanguard.png", + }, + { + "name": "RAVAGER", "role": "Bomber", + "desc": "Drops heavy ordnance and mines from its cargo pods. Slow to turn but devastating to anything caught in the blast radius. Best used to seal off a chokepoint.", + "path": "res://assets/images/ships/mech/ravager.png", + }, + { + "name": "AEGIS", "role": "Support", + "desc": "Projects a short-range shield and deploys a repair drone for nearby allies. Doesn't hit hard on its own — its job is keeping everyone else alive long enough to win the fight.", + "path": "res://assets/images/ships/mech/aegis.png", + }, + { + "name": "COLOSSUS", "role": "Heavy", + "desc": "A walking fortress bristling with cannons. Slow and telegraphed, but absorbs enormous damage and returns it with interest. Usually the last thing standing in an engagement.", + "path": "res://assets/images/ships/mech/colossus.png", + }, + ], }, { - "name": "SPIDER", - "role": "Heavy Support", - "desc": "Slow but extremely durable. High-volume fire makes it devastating in sustained engagements. Anchors a team by holding zones and suppressing enemy movements. Stay near allies — alone you're a target, together you're a wall.", - "path": "res://assets/images/ships/example_ships/2a.png", - }, - { - "name": "LANCASTER", - "role": "Stealth Bomber", - "desc": "Medium speed with high burst damage potential. Built for patience — get into position, strike hard, and fade before the enemy can respond. Excels at flanking and ambushes. Requires discipline to play but punishes mistakes severely.", - "path": "res://assets/images/ships/example_ships/3b.png", + "id": 3, "name": "VORG SWARM", "sub": "Organic swarm built for chaotic damage-over-time", + "color": Color(0.45, 0.80, 0.35), + "ships": [ + { + "name": "STINGER", "role": "Interceptor", + "desc": "Fast, acid shots with light damage-over-time. Built to swarm a target from range, applying just enough acid to wear an enemy down before backing off.", + "path": "res://assets/images/ships/vorg/stinger.png", + }, + { + "name": "SPITTER", "role": "Gunship", + "desc": "Faster-firing acid with a stronger damage-over-time effect. Trades some speed for sustained corrosive pressure — anything it tags keeps taking damage long after contact.", + "path": "res://assets/images/ships/vorg/spitter.png", + }, + { + "name": "BROODLING", "role": "Bomber", + "desc": "Normal acid shots that also spawn a small slowing swarm cloud. The cloud lingers, fouling movement for anyone caught inside it — ideal for locking down a retreat or a chokepoint.", + "path": "res://assets/images/ships/vorg/broodling.png", + }, + { + "name": "NURSE", "role": "Support", + "desc": "Acid shots plus a small health/regeneration pack dropped for allies. Keeps the swarm alive in extended fights, at the cost of raw offensive power.", + "path": "res://assets/images/ships/vorg/nurse.png", + }, + { + "name": "BEHEMOTH", "role": "Heavy", + "desc": "Tankier and slower, with heavy acid shots that carry a large damage-over-time effect. The swarm's apex predator — absorbs punishment while its acid keeps eating away at anyone nearby.", + "path": "res://assets/images/ships/vorg/behemoth.png", + }, + ], }, ] # Row layout constants (screen is 1280×800) const ROW_X1 := 120.0 const ROW_X2 := 1160.0 -const ROW_H := 130.0 -const ROW_GAP := 10.0 +const ROW_H := 100.0 +const ROW_GAP := 8.0 const ROW_START := 195.0 -const IMG_W := 130.0 var _root: Control var _content: Control @@ -120,11 +182,12 @@ func _show_ship_selection() -> void: _label(c, "Playing as — " + _chosen_race.name, 14, _chosen_race.color, 0, 155, 1280, 185, HORIZONTAL_ALIGNMENT_CENTER) - for i in SHIPS.size(): + var ships: Array = _chosen_race.ships + for i in ships.size(): var y := ROW_START + i * (ROW_H + ROW_GAP) - var btn := _make_ship_row(SHIPS[i], _chosen_race.color) + var btn := _make_ship_row(ships[i], _chosen_race.color) _place(btn, ROW_X1, y, ROW_X2, y + ROW_H) - btn.pressed.connect(_on_ship_chosen.bind(SHIPS[i])) + btn.pressed.connect(_on_ship_chosen.bind(ships[i])) c.add_child(btn) diff --git a/spacewar/ships/ship.tscn b/spacewar/ships/ship.tscn index 4a39352..9c44229 100644 --- a/spacewar/ships/ship.tscn +++ b/spacewar/ships/ship.tscn @@ -1,7 +1,7 @@ [gd_scene format=3 uid="uid://dygtdlkvo6ofl"] [ext_resource type="Script" uid="uid://c4kj3i73wjdcj" path="res://ships/ship_movement.gd" id="1_0e48y"] -[ext_resource type="Texture2D" uid="uid://td2tbmkm3r6u" path="res://assets/images/ships/example_ships/1.png" id="2_epypp"] +[ext_resource type="Texture2D" path="res://assets/images/ships/terran/warframe.png" id="2_epypp"] [sub_resource type="CircleShape2D" id="CircleShape2D_2uxl3"]