Wire in real ship art for the 3 chosen races
Crop the uploaded terran/mech/vorg concept sheets into 15 individual transparent PNGs (5 ships per race) using a background-removal pass tuned to preserve translucent detail (e.g. vorg wing membranes) while still cutting out the baked-in checkerboard backdrop. Keep each raw sheet under a source/ subfolder for reference. Give team_select.gd a per-race ship roster (Interceptor/Gunship/ Bomber/Support/Heavy) instead of one shared ship list, using real names/roles from racesclasses.md for Terran and Vorg and new placeholder names for Mechanos (undocumented there). Update race names/colors to match. Point ship.tscn's default sprite at the new Terran art now that example_ships is gone. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@@ -20,10 +20,10 @@
|
|||||||
2. **Main menu** — CASUAL / RANKED (disabled) buttons, callsign input, rank badge, QUIT; clears player state on load
|
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
|
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
|
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/<race>/`); placeholder `example_ships` removed
|
||||||
|
|
||||||
## Current Tasks
|
## Current Tasks
|
||||||
|
|
||||||
- [ ] Replace placeholder race names + ship sprites with the 3 chosen races (see `racesclasses.md`)
|
|
||||||
- [ ] Asteroids and environment hazards
|
- [ ] Asteroids and environment hazards
|
||||||
- [ ] Bot fill for casual (minimum 7v7, bots fill empty slots — see `bots.md`)
|
- [ ] Bot fill for casual (minimum 7v7, bots fill empty slots — see `bots.md`)
|
||||||
- [ ] Sound effects (thrust, shoot, explosion, UI)
|
- [ ] Sound effects (thrust, shoot, explosion, UI)
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 109 KiB |
@@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://wnrdhn33ce50"
|
uid="uid://esgvr7ifliqv"
|
||||||
path="res://.godot/imported/2a.png-9fa51336ca7f78060a7eadc36c632e13.ctex"
|
path="res://.godot/imported/aegis.png-eaf77a51a993783e3afbc24524f7be3e.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://assets/images/ships/example_ships/2a.png"
|
source_file="res://assets/images/ships/mech/aegis.png"
|
||||||
dest_files=["res://.godot/imported/2a.png-9fa51336ca7f78060a7eadc36c632e13.ctex"]
|
dest_files=["res://.godot/imported/aegis.png-eaf77a51a993783e3afbc24524f7be3e.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
After Width: | Height: | Size: 134 KiB |
@@ -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
|
||||||
|
After Width: | Height: | Size: 92 KiB |
@@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://b6xkpyy1rg74v"
|
uid="uid://2un2khrogg67"
|
||||||
path="res://.godot/imported/3b.png-272e2c2803a6a3a9dfb46c9672f6a0fe.ctex"
|
path="res://.godot/imported/ravager.png-b7114fbc1a43e32c3bd94c10d1c2ac00.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://assets/images/ships/example_ships/3b.png"
|
source_file="res://assets/images/ships/mech/ravager.png"
|
||||||
dest_files=["res://.godot/imported/3b.png-272e2c2803a6a3a9dfb46c9672f6a0fe.ctex"]
|
dest_files=["res://.godot/imported/ravager.png-b7114fbc1a43e32c3bd94c10d1c2ac00.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
After Width: | Height: | Size: 85 KiB |
@@ -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
|
||||||
|
After Width: | Height: | Size: 141 KiB |
@@ -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
|
||||||
|
After Width: | Height: | Size: 90 KiB |
@@ -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
|
||||||
|
After Width: | Height: | Size: 108 KiB |
@@ -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
|
||||||
|
After Width: | Height: | Size: 71 KiB |
@@ -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
|
||||||
|
After Width: | Height: | Size: 67 KiB |
@@ -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
|
||||||
|
After Width: | Height: | Size: 117 KiB |
@@ -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
|
||||||
|
After Width: | Height: | Size: 80 KiB |
@@ -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
|
||||||
|
After Width: | Height: | Size: 62 KiB |
@@ -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
|
||||||
|
After Width: | Height: | Size: 284 KiB |
@@ -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
|
||||||
|
After Width: | Height: | Size: 90 KiB |
@@ -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
|
||||||
|
After Width: | Height: | Size: 135 KiB |
@@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://td2tbmkm3r6u"
|
uid="uid://mibc47xooehs"
|
||||||
path="res://.godot/imported/1.png-362339079d92758f46be17d4e359799c.ctex"
|
path="res://.godot/imported/nurse.png-fe96f0cad5b4cd8f75f67ad47e301bdc.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://assets/images/ships/example_ships/1.png"
|
source_file="res://assets/images/ships/vorg/nurse.png"
|
||||||
dest_files=["res://.godot/imported/1.png-362339079d92758f46be17d4e359799c.ctex"]
|
dest_files=["res://.godot/imported/nurse.png-fe96f0cad5b4cd8f75f67ad47e301bdc.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
After Width: | Height: | Size: 199 KiB |
@@ -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
|
||||||
|
After Width: | Height: | Size: 134 KiB |
@@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://cgfd5fboa45dn"
|
uid="uid://dvjgmvs1nn4li"
|
||||||
path="res://.godot/imported/1B.png-4ca6f2d74cf902792fc79e84bac00b83.ctex"
|
path="res://.godot/imported/spitter.png-de6f6d2a6838599ffa18abd37c34f49f.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://assets/images/ships/example_ships/1B.png"
|
source_file="res://assets/images/ships/vorg/spitter.png"
|
||||||
dest_files=["res://.godot/imported/1B.png-4ca6f2d74cf902792fc79e84bac00b83.ctex"]
|
dest_files=["res://.godot/imported/spitter.png-de6f6d2a6838599ffa18abd37c34f49f.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
After Width: | Height: | Size: 106 KiB |
@@ -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
|
||||||
@@ -1,45 +1,107 @@
|
|||||||
extends CanvasLayer
|
extends CanvasLayer
|
||||||
|
|
||||||
const RACES := [
|
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",
|
"id": 1, "name": "TERRAN REPUBLIC", "sub": "Angular gray-blue military ships, standard balanced fighters",
|
||||||
"role": "All-Round Fighter",
|
"color": Color(0.40, 0.60, 0.85),
|
||||||
"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.",
|
"ships": [
|
||||||
"path": "res://assets/images/ships/example_ships/1.png",
|
{
|
||||||
|
"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": "JAVELIN",
|
"name": "STRIKER", "role": "Gunship",
|
||||||
"role": "Fast Interceptor",
|
"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.",
|
||||||
"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/terran/striker.png",
|
||||||
"path": "res://assets/images/ships/example_ships/1B.png",
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "SPIDER",
|
"name": "DEPLOYER", "role": "Bomber",
|
||||||
"role": "Heavy Support",
|
"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.",
|
||||||
"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/terran/deployer.png",
|
||||||
"path": "res://assets/images/ships/example_ships/2a.png",
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "LANCASTER",
|
"name": "LINK NODE", "role": "Support",
|
||||||
"role": "Stealth Bomber",
|
"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.",
|
||||||
"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/terran/link_node.png",
|
||||||
"path": "res://assets/images/ships/example_ships/3b.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",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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)
|
# Row layout constants (screen is 1280×800)
|
||||||
const ROW_X1 := 120.0
|
const ROW_X1 := 120.0
|
||||||
const ROW_X2 := 1160.0
|
const ROW_X2 := 1160.0
|
||||||
const ROW_H := 130.0
|
const ROW_H := 100.0
|
||||||
const ROW_GAP := 10.0
|
const ROW_GAP := 8.0
|
||||||
const ROW_START := 195.0
|
const ROW_START := 195.0
|
||||||
const IMG_W := 130.0
|
|
||||||
|
|
||||||
var _root: Control
|
var _root: Control
|
||||||
var _content: Control
|
var _content: Control
|
||||||
@@ -120,11 +182,12 @@ func _show_ship_selection() -> void:
|
|||||||
_label(c, "Playing as — " + _chosen_race.name, 14, _chosen_race.color,
|
_label(c, "Playing as — " + _chosen_race.name, 14, _chosen_race.color,
|
||||||
0, 155, 1280, 185, HORIZONTAL_ALIGNMENT_CENTER)
|
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 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)
|
_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)
|
c.add_child(btn)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
[gd_scene format=3 uid="uid://dygtdlkvo6ofl"]
|
[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="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"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_2uxl3"]
|
||||||
|
|
||||||
|
|||||||