Zmiany
BIN
artifacts/alien_research.png
Normal file
|
After Width: | Height: | Size: 797 KiB |
40
artifacts/alien_research.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://yaanw684l0dn"
|
||||||
|
path="res://.godot/imported/alien_research.png-c2267e9526abcbb04057176fbe27db67.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/alien_research.png"
|
||||||
|
dest_files=["res://.godot/imported/alien_research.png-c2267e9526abcbb04057176fbe27db67.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
|
||||||
BIN
artifacts/alien_research_hover.png
Normal file
|
After Width: | Height: | Size: 785 KiB |
40
artifacts/alien_research_hover.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://mer8ums08nx6"
|
||||||
|
path="res://.godot/imported/alien_research_hover.png-4de51699f2d0fe2e1497f484fc622833.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/alien_research_hover.png"
|
||||||
|
dest_files=["res://.godot/imported/alien_research_hover.png-4de51699f2d0fe2e1497f484fc622833.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
|
||||||
BIN
artifacts/captain_ring_hud.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
40
artifacts/captain_ring_hud.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bemu3i86nj77c"
|
||||||
|
path="res://.godot/imported/captain_ring_hud.png-35fde23680f1e2d0ff8ec4cbe1858433.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/captain_ring_hud.png"
|
||||||
|
dest_files=["res://.godot/imported/captain_ring_hud.png-35fde23680f1e2d0ff8ec4cbe1858433.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
|
||||||
BIN
artifacts/captain_ring_panel.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
40
artifacts/captain_ring_panel.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://q1m5u45ej5t2"
|
||||||
|
path="res://.godot/imported/captain_ring_panel.png-6c4e3257af40d53e47acf7e173bddb3a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/captain_ring_panel.png"
|
||||||
|
dest_files=["res://.godot/imported/captain_ring_panel.png-6c4e3257af40d53e47acf7e173bddb3a.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
|
||||||
BIN
artifacts/cockpit_console_1280x720.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
40
artifacts/cockpit_console_1280x720.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://jwmwu6gevn8j"
|
||||||
|
path="res://.godot/imported/cockpit_console_1280x720.png-4159f616d7b3d83d1955aedf8eedd32a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/cockpit_console_1280x720.png"
|
||||||
|
dest_files=["res://.godot/imported/cockpit_console_1280x720.png-4159f616d7b3d83d1955aedf8eedd32a.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
|
||||||
BIN
artifacts/cockpit_console_800x600.png
Normal file
|
After Width: | Height: | Size: 633 KiB |
40
artifacts/cockpit_console_800x600.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c38plrli4ya25"
|
||||||
|
path="res://.godot/imported/cockpit_console_800x600.png-33aefb0a6fac6f21b0d22c38af5a3e7d.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/cockpit_console_800x600.png"
|
||||||
|
dest_files=["res://.godot/imported/cockpit_console_800x600.png-33aefb0a6fac6f21b0d22c38af5a3e7d.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
|
||||||
BIN
artifacts/cockpit_console_960x540.png
Normal file
|
After Width: | Height: | Size: 696 KiB |
40
artifacts/cockpit_console_960x540.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b0bfcmpc4srcs"
|
||||||
|
path="res://.godot/imported/cockpit_console_960x540.png-d012e49e82ff0ca3dc072545b6ac39be.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/cockpit_console_960x540.png"
|
||||||
|
dest_files=["res://.godot/imported/cockpit_console_960x540.png-d012e49e82ff0ca3dc072545b6ac39be.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
|
||||||
BIN
artifacts/cockpit_console_review.png
Normal file
|
After Width: | Height: | Size: 141 KiB |
40
artifacts/cockpit_console_review.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dgj1s0l4v8j8i"
|
||||||
|
path="res://.godot/imported/cockpit_console_review.png-46f00c5f242ff57946c4788f05de278c.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/cockpit_console_review.png"
|
||||||
|
dest_files=["res://.godot/imported/cockpit_console_review.png-46f00c5f242ff57946c4788f05de278c.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
|
||||||
BIN
artifacts/cockpit_frame_review.png
Normal file
|
After Width: | Height: | Size: 139 KiB |
40
artifacts/cockpit_frame_review.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bj748ga2lns7g"
|
||||||
|
path="res://.godot/imported/cockpit_frame_review.png-6fb52f5726eaf410eb48ac602d5fe727.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/cockpit_frame_review.png"
|
||||||
|
dest_files=["res://.godot/imported/cockpit_frame_review.png-6fb52f5726eaf410eb48ac602d5fe727.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
|
||||||
BIN
artifacts/compact_interface_freighter.png
Normal file
|
After Width: | Height: | Size: 896 KiB |
40
artifacts/compact_interface_freighter.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://04ftf2um02y8"
|
||||||
|
path="res://.godot/imported/compact_interface_freighter.png-63e4282514047b8948ebb564b5646054.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/compact_interface_freighter.png"
|
||||||
|
dest_files=["res://.godot/imported/compact_interface_freighter.png-63e4282514047b8948ebb564b5646054.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
|
||||||
BIN
artifacts/compact_interface_hud.png
Normal file
|
After Width: | Height: | Size: 1016 KiB |
40
artifacts/compact_interface_hud.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bci3mu5kg4351"
|
||||||
|
path="res://.godot/imported/compact_interface_hud.png-ea1968de19ced1671f28f4a62a6a4760.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/compact_interface_hud.png"
|
||||||
|
dest_files=["res://.godot/imported/compact_interface_hud.png-ea1968de19ced1671f28f4a62a6a4760.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
|
||||||
BIN
artifacts/compact_interface_research.png
Normal file
|
After Width: | Height: | Size: 896 KiB |
40
artifacts/compact_interface_research.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cemfvsvogbbaq"
|
||||||
|
path="res://.godot/imported/compact_interface_research.png-0ef8d849edcfaca3c9c65149cd695b1f.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/compact_interface_research.png"
|
||||||
|
dest_files=["res://.godot/imported/compact_interface_research.png-0ef8d849edcfaca3c9c65149cd695b1f.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
|
||||||
BIN
artifacts/compact_interface_skills.png
Normal file
|
After Width: | Height: | Size: 862 KiB |
40
artifacts/compact_interface_skills.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dmt818jkr2vvl"
|
||||||
|
path="res://.godot/imported/compact_interface_skills.png-1a40c0e58cdcf846826c1e074eae7d87.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/compact_interface_skills.png"
|
||||||
|
dest_files=["res://.godot/imported/compact_interface_skills.png-1a40c0e58cdcf846826c1e074eae7d87.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
|
||||||
BIN
artifacts/construction_layout_fixed.png
Normal file
|
After Width: | Height: | Size: 881 KiB |
40
artifacts/construction_layout_fixed.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dijaq6dht4obx"
|
||||||
|
path="res://.godot/imported/construction_layout_fixed.png-d148f2716c8d2dbd431b6294b6c5e3d1.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/construction_layout_fixed.png"
|
||||||
|
dest_files=["res://.godot/imported/construction_layout_fixed.png-d148f2716c8d2dbd431b6294b6c5e3d1.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
|
||||||
|
Before Width: | Height: | Size: 956 KiB After Width: | Height: | Size: 854 KiB |
BIN
artifacts/ship_hud.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
40
artifacts/ship_hud.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://0ucpvf7esi88"
|
||||||
|
path="res://.godot/imported/ship_hud.png-f68d075fba20b3f70ef34f129a94d9e2.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/ship_hud.png"
|
||||||
|
dest_files=["res://.godot/imported/ship_hud.png-f68d075fba20b3f70ef34f129a94d9e2.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
|
||||||
BIN
artifacts/ship_ring_panel.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
40
artifacts/ship_ring_panel.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dhwqqvn3wjn0l"
|
||||||
|
path="res://.godot/imported/ship_ring_panel.png-434b4e9ab6edb953c2f703fa5c7c90d2.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/ship_ring_panel.png"
|
||||||
|
dest_files=["res://.godot/imported/ship_ring_panel.png-434b4e9ab6edb953c2f703fa5c7c90d2.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
|
||||||
BIN
artifacts/ship_statistics_parameters.png
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
40
artifacts/ship_statistics_parameters.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c8u0n52jkd8ft"
|
||||||
|
path="res://.godot/imported/ship_statistics_parameters.png-33c84b9c0fb769b343bfb66d8987e370.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/ship_statistics_parameters.png"
|
||||||
|
dest_files=["res://.godot/imported/ship_statistics_parameters.png-33c84b9c0fb769b343bfb66d8987e370.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
|
||||||
BIN
artifacts/ship_statistics_systems.png
Normal file
|
After Width: | Height: | Size: 1021 KiB |
40
artifacts/ship_statistics_systems.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://caq1xtutwj5sj"
|
||||||
|
path="res://.godot/imported/ship_statistics_systems.png-d708e0872dfc181522107a8c5a97a3a2.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/ship_statistics_systems.png"
|
||||||
|
dest_files=["res://.godot/imported/ship_statistics_systems.png-d708e0872dfc181522107a8c5a97a3a2.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
|
||||||
BIN
artifacts/ship_statistics_weapons.png
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
40
artifacts/ship_statistics_weapons.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b8glniut4pkvv"
|
||||||
|
path="res://.godot/imported/ship_statistics_weapons.png-1cadf69d9d627a4573b6e7c8826b0144.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/ship_statistics_weapons.png"
|
||||||
|
dest_files=["res://.godot/imported/ship_statistics_weapons.png-1cadf69d9d627a4573b6e7c8826b0144.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
|
||||||
BIN
artifacts/ship_status_frame_review.png
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
40
artifacts/ship_status_frame_review.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bqnftyve0ob42"
|
||||||
|
path="res://.godot/imported/ship_status_frame_review.png-b310039c865b152de525bcf598d930e9.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/ship_status_frame_review.png"
|
||||||
|
dest_files=["res://.godot/imported/ship_status_frame_review.png-b310039c865b152de525bcf598d930e9.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
|
||||||
BIN
artifacts/weather_condition_blizzard.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
40
artifacts/weather_condition_blizzard.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://nxg6odgt1nct"
|
||||||
|
path="res://.godot/imported/weather_condition_blizzard.png-5a2e079ff8ef2f240d3fd9f382e0bb3c.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/weather_condition_blizzard.png"
|
||||||
|
dest_files=["res://.godot/imported/weather_condition_blizzard.png-5a2e079ff8ef2f240d3fd9f382e0bb3c.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
|
||||||
BIN
artifacts/weather_condition_clear.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
40
artifacts/weather_condition_clear.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://po6k1mi1l88v"
|
||||||
|
path="res://.godot/imported/weather_condition_clear.png-442ce1ce92b5588777307fba12c6f7a4.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/weather_condition_clear.png"
|
||||||
|
dest_files=["res://.godot/imported/weather_condition_clear.png-442ce1ce92b5588777307fba12c6f7a4.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
|
||||||
BIN
artifacts/weather_condition_cloudy.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
40
artifacts/weather_condition_cloudy.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://p6413fvq1165"
|
||||||
|
path="res://.godot/imported/weather_condition_cloudy.png-09ef77e56bff84e3873fefc1fcb536d5.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/weather_condition_cloudy.png"
|
||||||
|
dest_files=["res://.godot/imported/weather_condition_cloudy.png-09ef77e56bff84e3873fefc1fcb536d5.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
|
||||||
BIN
artifacts/weather_condition_dust_storm.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
40
artifacts/weather_condition_dust_storm.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://crtykmxtfw0ls"
|
||||||
|
path="res://.godot/imported/weather_condition_dust_storm.png-cd593b6234ba283f042805ff46e91dbb.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/weather_condition_dust_storm.png"
|
||||||
|
dest_files=["res://.godot/imported/weather_condition_dust_storm.png-cd593b6234ba283f042805ff46e91dbb.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
|
||||||
BIN
artifacts/weather_condition_fog.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
40
artifacts/weather_condition_fog.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://iuxgw4bqk8kh"
|
||||||
|
path="res://.godot/imported/weather_condition_fog.png-0c94c5dc380f0056245c595c7217825c.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/weather_condition_fog.png"
|
||||||
|
dest_files=["res://.godot/imported/weather_condition_fog.png-0c94c5dc380f0056245c595c7217825c.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
|
||||||
BIN
artifacts/weather_condition_overcast.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
40
artifacts/weather_condition_overcast.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://byljypcneg24r"
|
||||||
|
path="res://.godot/imported/weather_condition_overcast.png-a64472efc3e7dc5213e96d4f03f6b641.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/weather_condition_overcast.png"
|
||||||
|
dest_files=["res://.godot/imported/weather_condition_overcast.png-a64472efc3e7dc5213e96d4f03f6b641.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
|
||||||
BIN
artifacts/weather_condition_rain.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
40
artifacts/weather_condition_rain.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://brcug5gbejyy0"
|
||||||
|
path="res://.godot/imported/weather_condition_rain.png-0153c99b79715b7df54f07b0bc60996b.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/weather_condition_rain.png"
|
||||||
|
dest_files=["res://.godot/imported/weather_condition_rain.png-0153c99b79715b7df54f07b0bc60996b.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
|
||||||
BIN
artifacts/weather_condition_snow.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
40
artifacts/weather_condition_snow.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dic4rrua8i7pm"
|
||||||
|
path="res://.godot/imported/weather_condition_snow.png-2e06d06d4528d22977c549398ed2c082.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/weather_condition_snow.png"
|
||||||
|
dest_files=["res://.godot/imported/weather_condition_snow.png-2e06d06d4528d22977c549398ed2c082.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
|
||||||
BIN
artifacts/weather_condition_storm.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
40
artifacts/weather_condition_storm.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bma7pwvovri0e"
|
||||||
|
path="res://.godot/imported/weather_condition_storm.png-d042e690c08fae4b3b638d7439ce1349.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/weather_condition_storm.png"
|
||||||
|
dest_files=["res://.godot/imported/weather_condition_storm.png-d042e690c08fae4b3b638d7439ce1349.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
|
||||||
BIN
artifacts/weather_conditions_review.png
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
40
artifacts/weather_conditions_review.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bqwwaitp40aoo"
|
||||||
|
path="res://.godot/imported/weather_conditions_review.png-da82db891609dafef041eb57dfebbbe0.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://artifacts/weather_conditions_review.png"
|
||||||
|
dest_files=["res://.godot/imported/weather_conditions_review.png-da82db891609dafef041eb57dfebbbe0.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
|
||||||
12
assets/freighter/research/PROMPTS.txt
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
Research icons
|
||||||
|
==============
|
||||||
|
Generated with the built-in image_gen tool; transparent PNG assets.
|
||||||
|
|
||||||
|
Shared prompt:
|
||||||
|
Use case: stylized-concept. Asset type: a single polished sci-fi research skill icon for a compact spaceship game UI. Subject: [subject]. Painterly realistic 3D game inventory illustration, crisp strong silhouette readable at 48 pixels. Centered object fills 75 percent of square canvas, isolated on a completely transparent background. Industrial worn metal, subtle edge highlights, elegant restrained glow. No text, no letters, no border, no card, no scenery.
|
||||||
|
|
||||||
|
Subjects:
|
||||||
|
- general.png: a luminous amber alien DNA helix suspended within a scientific scanning ring
|
||||||
|
- weapons.png: a compact alien plasma cannon, dark gunmetal with restrained copper orange energy core
|
||||||
|
- hull.png: three overlapping angular alien spacecraft armor plates, brushed dark titanium with sage green illuminated seams
|
||||||
|
- shields.png: an alien energy shield emitter, a small metallic core projecting a translucent icy cyan shield
|
||||||
BIN
assets/freighter/research/general.png
Normal file
|
After Width: | Height: | Size: 2.4 MiB |
40
assets/freighter/research/general.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b1b35q555n78k"
|
||||||
|
path="res://.godot/imported/general.png-9899f4cbd8b1d7fd9d9e5c4dc5af5a1d.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/freighter/research/general.png"
|
||||||
|
dest_files=["res://.godot/imported/general.png-9899f4cbd8b1d7fd9d9e5c4dc5af5a1d.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
|
||||||
BIN
assets/freighter/research/hull.png
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
40
assets/freighter/research/hull.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://duttf5uohucra"
|
||||||
|
path="res://.godot/imported/hull.png-be89bd87a1ff670817920fd7b1abca3e.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/freighter/research/hull.png"
|
||||||
|
dest_files=["res://.godot/imported/hull.png-be89bd87a1ff670817920fd7b1abca3e.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
|
||||||
BIN
assets/freighter/research/shields.png
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
40
assets/freighter/research/shields.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://d0h62slv8erwu"
|
||||||
|
path="res://.godot/imported/shields.png-5eef00a7dbe9cbe3e3bf615da34e9c38.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/freighter/research/shields.png"
|
||||||
|
dest_files=["res://.godot/imported/shields.png-5eef00a7dbe9cbe3e3bf615da34e9c38.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
|
||||||
BIN
assets/freighter/research/weapons.png
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
40
assets/freighter/research/weapons.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://orumcop8k4v8"
|
||||||
|
path="res://.godot/imported/weapons.png-635208432e6f1db62ed8924b096f700f.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/freighter/research/weapons.png"
|
||||||
|
dest_files=["res://.godot/imported/weapons.png-635208432e6f1db62ed8924b096f700f.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
|
||||||
4
assets/ui/frames/PROMPT.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Generated asset: ship_ornament.png
|
||||||
|
Tool: built-in image_gen, transparent background.
|
||||||
|
Prompt:
|
||||||
|
Use case: stylized-concept. Asset type: production game UI frame texture. A single elegant horizontal rectangular spacecraft HUD frame, aspect ratio about 3:1, front view perfectly flat and axis-aligned. Thin dark gunmetal and brushed titanium rim, precision machined beveled edges, restrained teal luminous seams, tiny warm brass corner clamps. Outer frame occupies nearly entire canvas, generous completely empty transparent rectangular opening covering 85 percent of the interior. Transparent outside too. Uniform narrow border, no central crossbars, no panels inside the opening, no contents. Sophisticated industrial spaceship cockpit aesthetic, clean and readable at small UI scale. No text, no letters, no numbers, no icons, no scenery, no perspective, no drop shadow outside frame. Real transparent alpha. It will be stretched with nine-patch corners to surround live text and progress bars.
|
||||||
1
assets/ui/frames/captain_ring_frame.PROMPT.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
Use case: stylized-concept. Reference image: existing spaceship HUD asset, match its circular bezel and metal style exactly. Generate a companion CAPTAIN HUD asset with NO TEXT. Transparent production PNG, flat orthographic game UI. One circular portrait bezel on the LEFT, same brushed silver gunmetal, cyan light strips and tiny brass fasteners as reference. From its RIGHT side extends ONE horizontal rectangular information frame with empty fully transparent interior, replacing the three separate bars of the reference. Overall aspect ratio 3.4:1. Left circle diameter about 90 percent of total image height, circular opening clear and empty. Circle center x15 percent y50 percent. Rectangular information frame extends from x26 percent to x97 percent, top at y13 percent bottom y87 percent; its thin metallic rim physically joined to circle, no vertical rail through circular opening. Empty rectangle interior to hold runtime level, credits and XP. Restrained elegant fine trim, rounded beveled corners, matching the reference circle faithfully. Fully transparent interior and exterior, small outer margins. No portrait, no text, no numbers, no labels, no icons, no bars, no solid panel fill, no background, no perspective. One single connected asset, usable at 244x72 pixels.
|
||||||
BIN
assets/ui/frames/captain_ring_frame.png
Normal file
|
After Width: | Height: | Size: 771 KiB |
40
assets/ui/frames/captain_ring_frame.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cfgrqurr1lobg"
|
||||||
|
path="res://.godot/imported/captain_ring_frame.png-e4969ca664ff0ddff79942c085a55717.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/ui/frames/captain_ring_frame.png"
|
||||||
|
dest_files=["res://.godot/imported/captain_ring_frame.png-e4969ca664ff0ddff79942c085a55717.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
assets/ui/frames/cockpit_console.PROMPT.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
Use case: stylized-concept. Production transparent PNG game HUD asset. A REAL SPACESHIP COCKPIT INSTRUMENT CONSOLE viewed straight on, orthographic front elevation, wide low dashboard silhouette aspect ratio 6:1, designed for an 850x144 pixel bottom HUD. This is NOT a decorative picture frame. Substantial functional matte charcoal titanium console body, beveled raised end pods, recessed instrument bays, screws, narrow vent grilles, small physical amber and cool white indicator lamps and tactile switches along the very bottom lip. Restrained worn industrial spacecraft realism, clean legible high quality hard-surface rendering, subtle cool blue edge lighting, no ornate brass or medieval trim. THREE clearly separated large EMPTY rectangular display openings across the dashboard: left bay from x4%-26%, center bay x29%-68%, right bay x72%-96%; all bays from y14%-83%. The screen openings must be fully transparent, as must the entire exterior around console silhouette. Keep structural separators narrow and usable openings broad. Thin top brow and bottom instrument lip with small buttons; do not obstruct openings with decorative objects. Center bay flat and wide, right and left console shoulders slightly raised. Full console visible and centered, tiny transparent margins; if canvas is taller leave transparent padding above and below the wide console. NO text, NO numbers, NO symbols, NO graphs, NO filled screens, NO holograms, NO spaceship scene, NO steering wheel, NO portrait circles, NO perspective. One polished functional cockpit dashboard sprite, all runtime information will be drawn later inside transparent display openings.
|
||||||
BIN
assets/ui/frames/cockpit_console.png
Normal file
|
After Width: | Height: | Size: 950 KiB |
40
assets/ui/frames/cockpit_console.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ub0pj5k7o4c8"
|
||||||
|
path="res://.godot/imported/cockpit_console.png-dbfc4ecba01fbaf2005767e07de7627a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/ui/frames/cockpit_console.png"
|
||||||
|
dest_files=["res://.godot/imported/cockpit_console.png-dbfc4ecba01fbaf2005767e07de7627a.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
assets/ui/frames/cockpit_frame.PROMPT.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
Use case: stylized-concept. Reference image is the existing captain HUD frame: match its brushed gunmetal/silver material, tiny brass fasteners and thin cyan illuminated trim. Create a production transparent PNG asset for the BOTTOM spaceship cockpit HUD in the same space RPG. ONE very wide low horizontal metallic border frame, outline aspect ratio 7:1, intended to display at 850x120 pixels. It may occupy the middle band of a wider canvas with transparent padding above and below. Straight horizontal top and bottom rails, clipped beveled outer corners, small layered mechanical brackets near both ends, tiny restrained brass rivets, subtle cyan light strips. Border thickness only 4 percent of frame height on straight rails; slightly larger corners but mostly usable empty interior. Symmetrical, flat orthographic front view, crisp professional game UI sprite. ALL interior must be empty and fully transparent, ALL exterior fully transparent. No opaque panel fill, no screens, no text, no numbers, no buttons, no bars, no icons, no circles or portraits, no mockup scene, no shadows. One single continuous wide frame, not multiple frames. Elegant thin detailing that remains legible at small size.
|
||||||
BIN
assets/ui/frames/cockpit_frame.png
Normal file
|
After Width: | Height: | Size: 440 KiB |
40
assets/ui/frames/cockpit_frame.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dyc8u3xrjsyq0"
|
||||||
|
path="res://.godot/imported/cockpit_frame.png-8481b8724221896ba87e5cab3660a708.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/ui/frames/cockpit_frame.png"
|
||||||
|
dest_files=["res://.godot/imported/cockpit_frame.png-8481b8724221896ba87e5cab3660a708.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
|
||||||
BIN
assets/ui/frames/ship_ornament.png
Normal file
|
After Width: | Height: | Size: 537 KiB |
40
assets/ui/frames/ship_ornament.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c48q3lbcqdj5w"
|
||||||
|
path="res://.godot/imported/ship_ornament.png-f5630c8e09c9fea8d8da68371c867e67.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/ui/frames/ship_ornament.png"
|
||||||
|
dest_files=["res://.godot/imported/ship_ornament.png-f5630c8e09c9fea8d8da68371c867e67.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
assets/ui/frames/ship_ring_bars.PROMPT.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
Use case: stylized-concept. Production game HUD sprite, transparent PNG. One compact spaceship status instrument: a circular portrait bezel on the RIGHT, and THREE separate slender horizontal empty status-bar housings extending from the circle to the LEFT, physically joined to its left edge. No outer rectangular frame. Flat orthographic front view, no perspective. Overall silhouette 3.1:1 width to height. Circle outer diameter 90 percent of total height, centered at x84 percent y50 percent; its inner opening fully transparent. Three bars extend from x3 percent to x74 percent at y25,50,75 percent, each housing only 9 percent of total height; dark thin metal rail borders, empty transparent interiors, generous transparent gaps between bars for runtime captions. Elegant gunmetal, brushed silver, restrained cyan illuminated lines, tiny antique brass fasteners, detailed but legible at 221x72 pixels. Rounded bar left ends, articulated metal joins into ring. Circle must remain clearly circular. Whole image exterior and all openings fully transparent. No text, no letters, no numbers, no spaceship, no icons, no filled colored meters, no solid background, no rectangular panel. One single connected game interface component, centered with small transparent margin.
|
||||||
BIN
assets/ui/frames/ship_ring_bars.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
40
assets/ui/frames/ship_ring_bars.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://p5lst48is8ab"
|
||||||
|
path="res://.godot/imported/ship_ring_bars.png-6b2a16d61f0a9f468696422dd565135e.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/ui/frames/ship_ring_bars.png"
|
||||||
|
dest_files=["res://.godot/imported/ship_ring_bars.png-6b2a16d61f0a9f468696422dd565135e.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
assets/ui/frames/ship_status_frame.PROMPT.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
Use case: stylized-concept. Asset type: production transparent PNG frame for a compact spaceship status HUD in a dark space RPG. Create ONE horizontal rectangular frame, aspect ratio 3:1, straight-on flat orthographic UI asset, centered filling canvas with only a tiny outer transparent margin. Extremely thin refined gunmetal and aged silver rim with restrained pale cyan illuminated seams and tiny brass corner fittings. Beveled angular corners, subtle mechanical detailing, polished professional space game UI, crisp readable silhouette at 221 by 72 pixels. All interior area must be fully transparent and empty, as must the exterior. Border thickness about 3 percent of image height, corner fittings no larger than 10 percent of image height. Simple uninterrupted straight top and bottom rails, no large central ornaments. No text, no letters, no numbers, no bars, no ship, no background, no opaque glass, no drop shadow, no extra icons. This is a usable frame asset, not a mockup.
|
||||||
BIN
assets/ui/frames/ship_status_frame.png
Normal file
|
After Width: | Height: | Size: 532 KiB |
40
assets/ui/frames/ship_status_frame.png.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dk24h1mt14ljs"
|
||||||
|
path="res://.godot/imported/ship_status_frame.png-2014504a9e60843ef2215bafbeaa6fdb.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/ui/frames/ship_status_frame.png"
|
||||||
|
dest_files=["res://.godot/imported/ship_status_frame.png-2014504a9e60843ef2215bafbeaa6fdb.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
|
||||||
@ -21,15 +21,15 @@ bg_color = Color(0.055, 0.11, 0.16, 1)
|
|||||||
bg_color = Color(0.25, 0.68, 0.85, 1)
|
bg_color = Color(0.25, 0.68, 0.85, 1)
|
||||||
|
|
||||||
[node name="CaptainPanel" type="PanelContainer"]
|
[node name="CaptainPanel" type="PanelContainer"]
|
||||||
custom_minimum_size = Vector2(260, 210)
|
custom_minimum_size = Vector2(317.2, 93.6)
|
||||||
theme_override_styles/panel = SubResource("PanelStyle")
|
theme_override_styles/panel = SubResource("PanelStyle")
|
||||||
script = ExtResource("1_panel")
|
script = ExtResource("1_panel")
|
||||||
|
|
||||||
[node name="Contents" type="VBoxContainer" parent="."]
|
[node name="Contents" type="Control" parent="."]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_constants/separation = 4
|
theme_override_constants/separation = 4
|
||||||
|
|
||||||
[node name="Header" type="HBoxContainer" parent="Contents"]
|
[node name="Header" type="Control" parent="Contents"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="Title" type="Label" parent="Contents/Header"]
|
[node name="Title" type="Label" parent="Contents/Header"]
|
||||||
@ -56,7 +56,7 @@ theme_override_styles/background = SubResource("XPBackground")
|
|||||||
theme_override_styles/fill = SubResource("XPFill")
|
theme_override_styles/fill = SubResource("XPFill")
|
||||||
show_percentage = false
|
show_percentage = false
|
||||||
|
|
||||||
[node name="Wallet" type="HBoxContainer" parent="Contents"]
|
[node name="Wallet" type="Control" parent="Contents"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="Credits" type="Label" parent="Contents/Wallet"]
|
[node name="Credits" type="Label" parent="Contents/Wallet"]
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
[ext_resource type="Script" path="res://scripts/ui/planet_services_menu.gd" id="1_services"]
|
[ext_resource type="Script" path="res://scripts/ui/planet_services_menu.gd" id="1_services"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="PanelStyle"]
|
[sub_resource type="StyleBoxFlat" id="PanelStyle"]
|
||||||
bg_color = Color(0.025, 0.045, 0.065, 0.94)
|
bg_color = Color(0.025, 0.045, 0.065, 0.48)
|
||||||
border_width_left = 1
|
border_width_left = 1
|
||||||
border_width_top = 1
|
border_width_top = 1
|
||||||
border_width_right = 1
|
border_width_right = 1
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
[ext_resource type="PackedScene" path="res://scenes/ui/inventory_slot_view.tscn" id="2_slot"]
|
[ext_resource type="PackedScene" path="res://scenes/ui/inventory_slot_view.tscn" id="2_slot"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="EquipmentPanelStyle"]
|
[sub_resource type="StyleBoxFlat" id="EquipmentPanelStyle"]
|
||||||
bg_color = Color(0.018, 0.028, 0.043, 0.96)
|
bg_color = Color(0.018, 0.028, 0.043, 0.48)
|
||||||
border_width_left = 1
|
border_width_left = 1
|
||||||
border_width_top = 1
|
border_width_top = 1
|
||||||
border_width_right = 1
|
border_width_right = 1
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
[ext_resource type="Script" path="res://scripts/ui/ship_inventory_panel.gd" id="1_inventory"]
|
[ext_resource type="Script" path="res://scripts/ui/ship_inventory_panel.gd" id="1_inventory"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="InventoryStyle"]
|
[sub_resource type="StyleBoxFlat" id="InventoryStyle"]
|
||||||
bg_color = Color(0.018, 0.045, 0.085, 0.98)
|
bg_color = Color(0.018, 0.045, 0.085, 0.48)
|
||||||
border_width_left = 1
|
border_width_left = 1
|
||||||
border_width_top = 1
|
border_width_top = 1
|
||||||
border_width_right = 1
|
border_width_right = 1
|
||||||
|
|||||||
@ -10,7 +10,7 @@ const DATA := {
|
|||||||
"lucky": {"name": "Farciarz", "active": false, "values": [0.05, 0.10, 0.25], "color": "e8c76f"},
|
"lucky": {"name": "Farciarz", "active": false, "values": [0.05, 0.10, 0.25], "color": "e8c76f"},
|
||||||
"explorer": {"name": "Eksplorator", "active": false, "values": [1, 3, 6], "color": "76d9cc"},
|
"explorer": {"name": "Eksplorator", "active": false, "values": [1, 3, 6], "color": "76d9cc"},
|
||||||
"business_shark": {"name": "Rekin biznesu", "active": false, "values": [0.10, 0.30, 0.60], "color": "efb568"},
|
"business_shark": {"name": "Rekin biznesu", "active": false, "values": [0.10, 0.30, 0.60], "color": "efb568"},
|
||||||
"reactor_overload": {"name": "Przeciążenie reaktora", "active": true, "values": [0.20, 0.50, 1.00], "color": "63d9f5"},
|
"reactor_overload": {"name": "Przeciążenie reaktora", "active": true, "values": [0.28, 0.70, 1.40], "color": "63d9f5"},
|
||||||
"tactical_maneuver": {"name": "Manewr taktyczny", "active": true, "values": [0.30, 0.60, 1.00], "color": "b9a0ef"},
|
"tactical_maneuver": {"name": "Manewr taktyczny", "active": true, "values": [0.30, 0.60, 1.00], "color": "b9a0ef"},
|
||||||
"efficient_magazine": {"name": "Oszczędny magazynek", "active": false, "values": [0.10, 0.20, 0.50], "color": "a9d69a"},
|
"efficient_magazine": {"name": "Oszczędny magazynek", "active": false, "values": [0.10, 0.20, 0.50], "color": "a9d69a"},
|
||||||
"miner": {"name": "Górnik", "active": false, "values": [3, 6, 10], "color": "e5ac76"},
|
"miner": {"name": "Górnik", "active": false, "values": [3, 6, 10], "color": "e5ac76"},
|
||||||
|
|||||||
@ -21,7 +21,7 @@ static func enemy_profile(level: int, seed_value: int) -> Dictionary:
|
|||||||
var rng := RandomNumberGenerator.new()
|
var rng := RandomNumberGenerator.new()
|
||||||
rng.seed = seed_value
|
rng.seed = seed_value
|
||||||
var weights := Vector3(rng.randf_range(0.1, 1.0), rng.randf_range(0.1, 1.0), rng.randf_range(0.1, 1.0))
|
var weights := Vector3(rng.randf_range(0.1, 1.0), rng.randf_range(0.1, 1.0), rng.randf_range(0.1, 1.0))
|
||||||
var total := lerpf(2.0, 60.0, pow(float(clampi(level, 1, 1000) - 1) / 999.0, 1.25))
|
var total := preload("res://scripts/levels/level_balance.gd").enemy_absorption_total(level)
|
||||||
return {"kind": rng.randi_range(0, 4), "absorption": weights * total / (weights.x + weights.y + weights.z)}
|
return {"kind": rng.randi_range(0, 4), "absorption": weights * total / (weights.x + weights.y + weights.z)}
|
||||||
|
|
||||||
static func describe(values: Vector3) -> String:
|
static func describe(values: Vector3) -> String:
|
||||||
|
|||||||
@ -44,7 +44,7 @@ func get_health_ratio() -> float:
|
|||||||
return clampf(enemy.hull / maxf(enemy.max_hull, 0.001), 0.0, 1.0)
|
return clampf(enemy.hull / maxf(enemy.max_hull, 0.001), 0.0, 1.0)
|
||||||
|
|
||||||
func _draw() -> void:
|
func _draw() -> void:
|
||||||
if not is_instance_valid(enemy) or enemy.hull <= 0.0:
|
if not is_instance_valid(enemy) or enemy.hull <= 0.0 or not GameState.captain.expedition.alien_skills.get("general", false):
|
||||||
return
|
return
|
||||||
var width := 72.0 if enemy.loot_tier == 2 else (56.0 if enemy.loot_tier == 1 else 44.0)
|
var width := 72.0 if enemy.loot_tier == 2 else (56.0 if enemy.loot_tier == 1 else 44.0)
|
||||||
var background := Rect2(-width * 0.5, -3.0, width, 6.0)
|
var background := Rect2(-width * 0.5, -3.0, width, 6.0)
|
||||||
|
|||||||
@ -43,6 +43,7 @@ var _slow_remaining := 0.0
|
|||||||
var _combat_target: Node2D
|
var _combat_target: Node2D
|
||||||
var virus_controlled := false
|
var virus_controlled := false
|
||||||
var _virus_infection_attempted := false
|
var _virus_infection_attempted := false
|
||||||
|
var _research_player_hit := false
|
||||||
var _reward_claimed := false
|
var _reward_claimed := false
|
||||||
|
|
||||||
func roll_virus_infection() -> bool:
|
func roll_virus_infection() -> bool:
|
||||||
@ -101,7 +102,7 @@ func _ready() -> void:
|
|||||||
func apply_level_settings(level: int, tier: int) -> void:
|
func apply_level_settings(level: int, tier: int) -> void:
|
||||||
loot_tier = tier
|
loot_tier = tier
|
||||||
$Sprite2D.modulate = get_tier_tint()
|
$Sprite2D.modulate = get_tier_tint()
|
||||||
var power := LEVEL_BALANCE.power_scale(level)
|
var power := LEVEL_BALANCE.enemy_stat_scale(level)
|
||||||
var combat_multiplier := 2.0 if tier == 2 else 1.25
|
var combat_multiplier := 2.0 if tier == 2 else 1.25
|
||||||
var boss_multiplier := 2.0 if tier == 2 else 1.0
|
var boss_multiplier := 2.0 if tier == 2 else 1.0
|
||||||
var hull_multiplier := 4.0 if tier == 2 else (2.0 if tier == 1 else 1.0)
|
var hull_multiplier := 4.0 if tier == 2 else (2.0 if tier == 1 else 1.0)
|
||||||
@ -114,12 +115,12 @@ func apply_level_settings(level: int, tier: int) -> void:
|
|||||||
weapon_kind = int(profile["kind"])
|
weapon_kind = int(profile["kind"])
|
||||||
absorption = profile["absorption"]
|
absorption = profile["absorption"]
|
||||||
weapon_damage = 8.0 * power * damage_bonus * combat_multiplier
|
weapon_damage = 8.0 * power * damage_bonus * combat_multiplier
|
||||||
approach_speed = 62.0 * (1.0 + 0.0005 * (clampi(level, 1, 1000) - 1)) * boss_multiplier
|
approach_speed = 62.0 * (1.0 + 0.0005 * (clampi(level, 1, LEVEL_BALANCE.MAX_LEVEL) - 1)) * boss_multiplier
|
||||||
approach_acceleration = 85.0 * boss_multiplier
|
approach_acceleration = 85.0 * boss_multiplier
|
||||||
turn_speed = 1.8 * boss_multiplier
|
turn_speed = 1.8 * boss_multiplier
|
||||||
activation_range = 760.0 * boss_multiplier
|
activation_range = 760.0 * boss_multiplier
|
||||||
weapon_range = 680.0 * boss_multiplier
|
weapon_range = 680.0 * boss_multiplier * (0.5 if weapon_kind == ItemDefinition.WeaponKind.GAMMA else 1.0)
|
||||||
weapon_cooldown = maxf(0.55, 1.5 / (1.0 + 0.001 * (clampi(level, 1, 1000) - 1))) / boss_multiplier
|
weapon_cooldown = maxf(0.55, 1.5 / (1.0 + 0.001 * (clampi(level, 1, LEVEL_BALANCE.MAX_LEVEL) - 1))) / boss_multiplier
|
||||||
if tier == 2:
|
if tier == 2:
|
||||||
# Ease the first encounter, returning smoothly to standard bosses at level 6.
|
# Ease the first encounter, returning smoothly to standard bosses at level 6.
|
||||||
var intro := clampf(float(level - 1) / 5.0, 0.0, 1.0)
|
var intro := clampf(float(level - 1) / 5.0, 0.0, 1.0)
|
||||||
@ -130,6 +131,16 @@ func apply_level_settings(level: int, tier: int) -> void:
|
|||||||
weapon_damage *= lerpf(0.5, 1.0, intro)
|
weapon_damage *= lerpf(0.5, 1.0, intro)
|
||||||
weapon_cooldown *= lerpf(1.25, 1.0, intro)
|
weapon_cooldown *= lerpf(1.25, 1.0, intro)
|
||||||
approach_speed *= lerpf(0.8, 1.0, intro)
|
approach_speed *= lerpf(0.8, 1.0, intro)
|
||||||
|
if tier == 2:
|
||||||
|
# Independent multipliers preserve the existing intro and shield/hull ratio changes.
|
||||||
|
max_hull *= LEVEL_BALANCE.BOSS_HULL_MULTIPLIER
|
||||||
|
hull = max_hull
|
||||||
|
max_shields *= LEVEL_BALANCE.BOSS_SHIELD_MULTIPLIER
|
||||||
|
shields = max_shields
|
||||||
|
weapon_damage *= LEVEL_BALANCE.BOSS_DAMAGE_MULTIPLIER
|
||||||
|
if level == 1:
|
||||||
|
weapon_damage *= LEVEL_BALANCE.FIRST_BOSS_DAMAGE_MULTIPLIER
|
||||||
|
weapon_cooldown *= LEVEL_BALANCE.FIRST_BOSS_FIRE_INTERVAL_MULTIPLIER
|
||||||
$CollisionShape2D.scale = Vector2.ONE * boss_multiplier
|
$CollisionShape2D.scale = Vector2.ONE * boss_multiplier
|
||||||
if is_instance_valid(_shield_visual):
|
if is_instance_valid(_shield_visual):
|
||||||
_shield_visual.scale = Vector2.ONE * get_visual_size() / 64.0
|
_shield_visual.scale = Vector2.ONE * get_visual_size() / 64.0
|
||||||
@ -152,7 +163,7 @@ func get_visual_size() -> float:
|
|||||||
return 112.0 if loot_tier == 2 else (68.0 if loot_tier == 1 else 56.0)
|
return 112.0 if loot_tier == 2 else (68.0 if loot_tier == 1 else 56.0)
|
||||||
|
|
||||||
func regenerate_defenses(delta: float) -> void:
|
func regenerate_defenses(delta: float) -> void:
|
||||||
if hull <= 0.0 or is_queued_for_deletion():
|
if loot_tier == 2 or hull <= 0.0 or is_queued_for_deletion():
|
||||||
return
|
return
|
||||||
hull = minf(max_hull, hull + max_hull * 0.01 * delta)
|
hull = minf(max_hull, hull + max_hull * 0.01 * delta)
|
||||||
shields = minf(max_shields, shields + max_shields * 0.01 * delta)
|
shields = minf(max_shields, shields + max_shields * 0.01 * delta)
|
||||||
@ -312,7 +323,7 @@ func _fire_plasma(direction: Vector2) -> void:
|
|||||||
projectile.collision_mask = shot_mask
|
projectile.collision_mask = shot_mask
|
||||||
projectile.missile_homing = false
|
projectile.missile_homing = false
|
||||||
var speed := 430.0 if weapon_kind == ItemDefinition.WeaponKind.GAMMA else (950.0 if weapon_kind == ItemDefinition.WeaponKind.MACHINE_GUN else 600.0)
|
var speed := 430.0 if weapon_kind == ItemDefinition.WeaponKind.GAMMA else (950.0 if weapon_kind == ItemDefinition.WeaponKind.MACHINE_GUN else 600.0)
|
||||||
projectile.configure(muzzle, direction, weapon_kind, speed, weapon_damage, weapon_range)
|
projectile.configure(muzzle, direction, weapon_kind, speed, get_shot_damage(), weapon_range)
|
||||||
get_parent().add_child(projectile)
|
get_parent().add_child(projectile)
|
||||||
WEAPON_AUDIO_SCRIPT.play(get_parent(), global_position, weapon_kind, -4.0)
|
WEAPON_AUDIO_SCRIPT.play(get_parent(), global_position, weapon_kind, -4.0)
|
||||||
|
|
||||||
@ -320,7 +331,9 @@ func take_weapon_hit(amount: float, critical: bool, damage_type: int = DamageTyp
|
|||||||
if is_queued_for_deletion() or hull <= 0.0:
|
if is_queued_for_deletion() or hull <= 0.0:
|
||||||
return
|
return
|
||||||
var before := hull + shields
|
var before := hull + shields
|
||||||
|
_research_player_hit = true
|
||||||
take_damage(amount, critical, damage_type)
|
take_damage(amount, critical, damage_type)
|
||||||
|
_research_player_hit = false
|
||||||
if is_instance_valid(_player):
|
if is_instance_valid(_player):
|
||||||
_player.call("restore_shields_from_damage", maxf(0.0, before - hull - shields))
|
_player.call("restore_shields_from_damage", maxf(0.0, before - hull - shields))
|
||||||
|
|
||||||
@ -328,9 +341,16 @@ func take_damage(amount: float, critical: bool = false, damage_type: int = Damag
|
|||||||
if is_queued_for_deletion() or hull <= 0.0:
|
if is_queued_for_deletion() or hull <= 0.0:
|
||||||
return
|
return
|
||||||
var actual := maxf(0.0, amount) * (1.0 if bypass_absorption else 1.0 - absorption[damage_type] / 100.0)
|
var actual := maxf(0.0, amount) * (1.0 if bypass_absorption else 1.0 - absorption[damage_type] / 100.0)
|
||||||
var shield_damage := minf(shields, actual)
|
var research := preload("res://scripts/planets/alien_research.gd")
|
||||||
|
var progress: Resource = GameState.captain.expedition
|
||||||
|
var shield_multiplier := 1.0 + (research.bonus(progress, "shields") if _research_player_hit else 0.0)
|
||||||
|
var hull_multiplier := 1.0 + (research.bonus(progress, "hull") if _research_player_hit else 0.0)
|
||||||
|
var shield_damage := minf(shields, actual * shield_multiplier)
|
||||||
|
var remaining := maxf(0.0, actual - shield_damage / shield_multiplier)
|
||||||
shields -= shield_damage
|
shields -= shield_damage
|
||||||
hull = maxf(0.0, hull - actual + shield_damage)
|
var hull_damage := minf(hull, remaining * hull_multiplier)
|
||||||
|
hull = maxf(0.0, hull - hull_damage)
|
||||||
|
actual = shield_damage + hull_damage
|
||||||
if is_instance_valid(_shield_visual):
|
if is_instance_valid(_shield_visual):
|
||||||
_shield_visual.set_shield_values(shields, max_shields)
|
_shield_visual.set_shield_values(shields, max_shields)
|
||||||
if shield_damage > 0.0:
|
if shield_damage > 0.0:
|
||||||
@ -358,7 +378,7 @@ func _laser_aim_direction(direction: Vector2) -> Vector2:
|
|||||||
return direction.rotated(randf_range(-0.02, 0.02))
|
return direction.rotated(randf_range(-0.02, 0.02))
|
||||||
|
|
||||||
func get_shot_damage() -> float:
|
func get_shot_damage() -> float:
|
||||||
return weapon_damage * (LASER_DAMAGE_MULTIPLIER if weapon_kind == ItemDefinition.WeaponKind.LASER else 1.0)
|
return weapon_damage * (LASER_DAMAGE_MULTIPLIER if weapon_kind == ItemDefinition.WeaponKind.LASER else 1.0) * (1.0 - preload("res://scripts/planets/alien_research.gd").bonus(GameState.captain.expedition, "weapons"))
|
||||||
|
|
||||||
func get_weapon_dps() -> float:
|
func get_weapon_dps() -> float:
|
||||||
var interval := get_fire_interval()
|
var interval := get_fire_interval()
|
||||||
|
|||||||
@ -33,6 +33,10 @@ var _debug_item_status: Label
|
|||||||
var _captain_panel: PanelContainer
|
var _captain_panel: PanelContainer
|
||||||
var _cockpit: Control
|
var _cockpit: Control
|
||||||
var _captain_skills_ui: CanvasLayer
|
var _captain_skills_ui: CanvasLayer
|
||||||
|
var _system_badge: PanelContainer
|
||||||
|
var _system_title: Label
|
||||||
|
var _system_mode: Label
|
||||||
|
var _ship_statistics: PanelContainer
|
||||||
|
|
||||||
func _create_navigation() -> void:
|
func _create_navigation() -> void:
|
||||||
var navigation := HBoxContainer.new()
|
var navigation := HBoxContainer.new()
|
||||||
@ -85,6 +89,7 @@ func _ready() -> void:
|
|||||||
$HUDRoot.add_child(_window_manager)
|
$HUDRoot.add_child(_window_manager)
|
||||||
_window_manager.connect("interaction_started", player.get_node("WeaponController").call.bind("block_ui_mouse_input"))
|
_window_manager.connect("interaction_started", player.get_node("WeaponController").call.bind("block_ui_mouse_input"))
|
||||||
_create_sidebar()
|
_create_sidebar()
|
||||||
|
_create_ship_statistics()
|
||||||
_inventory_clip = Control.new()
|
_inventory_clip = Control.new()
|
||||||
_inventory_clip.name = "InventoryDrawer"
|
_inventory_clip.name = "InventoryDrawer"
|
||||||
_inventory_clip.clip_contents = false
|
_inventory_clip.clip_contents = false
|
||||||
@ -115,8 +120,9 @@ func _create_sidebar() -> void:
|
|||||||
_captain_panel = $HUDRoot/CaptainPanel
|
_captain_panel = $HUDRoot/CaptainPanel
|
||||||
_captain_panel.set_anchors_and_offsets_preset(Control.PRESET_TOP_LEFT)
|
_captain_panel.set_anchors_and_offsets_preset(Control.PRESET_TOP_LEFT)
|
||||||
_captain_panel.position = Vector2(12, 12)
|
_captain_panel.position = Vector2(12, 12)
|
||||||
_captain_panel.size = Vector2(244, _captain_panel.get_combined_minimum_size().y)
|
_captain_panel.size = _captain_panel.get_combined_minimum_size()
|
||||||
_captain_panel.resized.connect(_layout_debug)
|
_captain_panel.resized.connect(_layout_debug)
|
||||||
|
_create_system_badge()
|
||||||
var captain_gear := PanelContainer.new()
|
var captain_gear := PanelContainer.new()
|
||||||
captain_gear.name = "CaptainEquipment"
|
captain_gear.name = "CaptainEquipment"
|
||||||
captain_gear.set_script(preload("res://scripts/ui/captain_equipment_panel.gd"))
|
captain_gear.set_script(preload("res://scripts/ui/captain_equipment_panel.gd"))
|
||||||
@ -140,6 +146,14 @@ func _create_sidebar() -> void:
|
|||||||
preload("res://scripts/ui/hud_button_style.gd").apply(_debug_item_button, Color("a9ef83"))
|
preload("res://scripts/ui/hud_button_style.gd").apply(_debug_item_button, Color("a9ef83"))
|
||||||
_debug_item_button.pressed.connect(_give_debug_item)
|
_debug_item_button.pressed.connect(_give_debug_item)
|
||||||
_debug_actions.add_child(_debug_item_button)
|
_debug_actions.add_child(_debug_item_button)
|
||||||
|
var resources_button := Button.new()
|
||||||
|
resources_button.name = "AddResources"
|
||||||
|
resources_button.text = "Dodaj surowce"
|
||||||
|
resources_button.tooltip_text = "+100 każdego surowca kosmicznego i planetarnego, +100 próbek i +100 części"
|
||||||
|
resources_button.custom_minimum_size.y = 36
|
||||||
|
preload("res://scripts/ui/hud_button_style.gd").apply(resources_button, Color("79cba8"))
|
||||||
|
resources_button.pressed.connect(_give_debug_resources)
|
||||||
|
_debug_actions.add_child(resources_button)
|
||||||
var ammunition_button := Button.new()
|
var ammunition_button := Button.new()
|
||||||
ammunition_button.name = "AddAmmunition"
|
ammunition_button.name = "AddAmmunition"
|
||||||
ammunition_button.text = "Dodaj amunicję"
|
ammunition_button.text = "Dodaj amunicję"
|
||||||
@ -166,7 +180,7 @@ func _create_sidebar() -> void:
|
|||||||
_sidebar = PanelContainer.new()
|
_sidebar = PanelContainer.new()
|
||||||
_sidebar.name = "ShipDrawer"
|
_sidebar.name = "ShipDrawer"
|
||||||
var style := StyleBoxFlat.new()
|
var style := StyleBoxFlat.new()
|
||||||
style.bg_color = Color(0.025, 0.042, 0.064, 1.0)
|
style.bg_color = Color(0.025, 0.042, 0.064, 0.48)
|
||||||
style.border_color = Color("376779")
|
style.border_color = Color("376779")
|
||||||
style.set_border_width_all(1)
|
style.set_border_width_all(1)
|
||||||
style.set_corner_radius_all(8)
|
style.set_corner_radius_all(8)
|
||||||
@ -197,10 +211,10 @@ func _create_sidebar() -> void:
|
|||||||
preload("res://scripts/ui/hud_button_style.gd").apply(inventory_button, Color("b9a0ef"))
|
preload("res://scripts/ui/hud_button_style.gd").apply(inventory_button, Color("b9a0ef"))
|
||||||
$HUDRoot.add_child(_sidebar_toggle)
|
$HUDRoot.add_child(_sidebar_toggle)
|
||||||
_sidebar_toggle.set_anchors_and_offsets_preset(Control.PRESET_TOP_RIGHT)
|
_sidebar_toggle.set_anchors_and_offsets_preset(Control.PRESET_TOP_RIGHT)
|
||||||
_sidebar_toggle.offset_left = -352
|
_sidebar_toggle.offset_left = -233
|
||||||
_sidebar_toggle.offset_right = -12
|
_sidebar_toggle.offset_right = -12
|
||||||
_sidebar_toggle.offset_top = 12
|
_sidebar_toggle.offset_top = 12
|
||||||
_sidebar_toggle.offset_bottom = 122
|
_sidebar_toggle.offset_bottom = 83.5
|
||||||
_sidebar_toggle.pressed.connect(_toggle_sidebar)
|
_sidebar_toggle.pressed.connect(_toggle_sidebar)
|
||||||
_cockpit = Control.new()
|
_cockpit = Control.new()
|
||||||
_cockpit.name = "Cockpit"
|
_cockpit.name = "Cockpit"
|
||||||
@ -280,9 +294,10 @@ func _layout_sidebar() -> void:
|
|||||||
var panel_scale := minf(EQUIPMENT_UI_SCALE, available_height / content_height)
|
var panel_scale := minf(EQUIPMENT_UI_SCALE, available_height / content_height)
|
||||||
_sidebar.scale = Vector2.ONE * panel_scale
|
_sidebar.scale = Vector2.ONE * panel_scale
|
||||||
_sidebar.size = Vector2(maxf(SIDEBAR_WIDTH, _sidebar.get_combined_minimum_size().x), content_height)
|
_sidebar.size = Vector2(maxf(SIDEBAR_WIDTH, _sidebar.get_combined_minimum_size().x), content_height)
|
||||||
_cockpit.scale = Vector2.ONE * 0.85
|
var cockpit_scale := minf(0.85, ($HUDRoot.size.x - 24.0) / 850.0)
|
||||||
_cockpit.size = Vector2(minf(850.0, ($HUDRoot.size.x - 24) / 0.85), 120)
|
_cockpit.scale = Vector2.ONE * cockpit_scale
|
||||||
_cockpit.position = Vector2(($HUDRoot.size.x - _cockpit.size.x * 0.85) * 0.5, $HUDRoot.size.y - _cockpit.size.y * 0.85 - 12)
|
_cockpit.size = Vector2(850, 144)
|
||||||
|
_cockpit.position = Vector2(($HUDRoot.size.x - 850.0 * cockpit_scale) * 0.5, $HUDRoot.size.y - 144.0 * cockpit_scale - 12)
|
||||||
if _ability_bar != null:
|
if _ability_bar != null:
|
||||||
var abilities := _ability_bar.get_parent() as Control
|
var abilities := _ability_bar.get_parent() as Control
|
||||||
abilities.set_anchors_and_offsets_preset(Control.PRESET_TOP_LEFT)
|
abilities.set_anchors_and_offsets_preset(Control.PRESET_TOP_LEFT)
|
||||||
@ -352,6 +367,7 @@ func _update_energy_bank_button() -> void:
|
|||||||
|
|
||||||
func _process(_delta: float) -> void:
|
func _process(_delta: float) -> void:
|
||||||
_update_energy_bank_button()
|
_update_energy_bank_button()
|
||||||
|
_update_system_badge()
|
||||||
_layout_inventory()
|
_layout_inventory()
|
||||||
_update_ability_bar()
|
_update_ability_bar()
|
||||||
_layout_passive_panels()
|
_layout_passive_panels()
|
||||||
@ -363,7 +379,7 @@ func _process(_delta: float) -> void:
|
|||||||
_debug_item_button.disabled = inventory.get_cargo_used() >= inventory.get_cargo_capacity()
|
_debug_item_button.disabled = inventory.get_cargo_used() >= inventory.get_cargo_capacity()
|
||||||
_debug_item_button.tooltip_text = "Magazyn jest pełny — zwolnij miejsce." if _debug_item_button.disabled else "Losuje przedmiot i addony dla poziomu aktualnego układu."
|
_debug_item_button.tooltip_text = "Magazyn jest pełny — zwolnij miejsce." if _debug_item_button.disabled else "Losuje przedmiot i addony dla poziomu aktualnego układu."
|
||||||
var game := get_parent()
|
var game := get_parent()
|
||||||
debug_info.text = """POZIOM UKŁADU: %d
|
debug_info.text = """POZIOM UKŁADU: %d / 120 · %s
|
||||||
WROGOWIE: %d
|
WROGOWIE: %d
|
||||||
PRĘDKOŚĆ: %.1f px/s
|
PRĘDKOŚĆ: %.1f px/s
|
||||||
|
|
||||||
@ -373,6 +389,7 @@ Tarcze: %.1f pkt/s
|
|||||||
|
|
||||||
%s""".replace("\r", "") % [
|
%s""".replace("\r", "") % [
|
||||||
GameState.system_level,
|
GameState.system_level,
|
||||||
|
"HARD" if preload("res://scripts/levels/level_balance.gd").is_hard(GameState.system_level) else "NORMALNY",
|
||||||
int(game.call("get_remaining_enemies")),
|
int(game.call("get_remaining_enemies")),
|
||||||
player.velocity.length(),
|
player.velocity.length(),
|
||||||
float(player.call("get_energy_regeneration")),
|
float(player.call("get_energy_regeneration")),
|
||||||
@ -389,6 +406,16 @@ func _toggle_debug() -> void:
|
|||||||
_update_debug_toggle()
|
_update_debug_toggle()
|
||||||
_layout_debug()
|
_layout_debug()
|
||||||
|
|
||||||
|
func _give_debug_resources() -> void:
|
||||||
|
var captain: Resource = GameState.captain
|
||||||
|
for material in preload("res://scripts/planets/planet_rewards.gd").MATERIAL_KEYS:
|
||||||
|
if material == "parts": continue
|
||||||
|
captain.minerals[material] = int(captain.minerals.get(material, 0)) + 100
|
||||||
|
captain.parts += 100
|
||||||
|
captain.expedition.analysis_samples += 100
|
||||||
|
captain.expedition.emit_changed()
|
||||||
|
captain.emit_changed()
|
||||||
|
|
||||||
func _give_debug_ammunition() -> void:
|
func _give_debug_ammunition() -> void:
|
||||||
var inventory := player.get_node("ShipInventory") as ShipInventory
|
var inventory := player.get_node("ShipInventory") as ShipInventory
|
||||||
inventory.ammunition += 10
|
inventory.ammunition += 10
|
||||||
@ -574,3 +601,48 @@ func _refresh_passive_skills() -> void:
|
|||||||
_passive_captain_panel.visible = _passive_skills.get_child_count() > 0
|
_passive_captain_panel.visible = _passive_skills.get_child_count() > 0
|
||||||
_layout_passive_panels.call_deferred()
|
_layout_passive_panels.call_deferred()
|
||||||
_layout_debug.call_deferred()
|
_layout_debug.call_deferred()
|
||||||
|
|
||||||
|
func _create_system_badge() -> void:
|
||||||
|
var ui := preload("res://scripts/planets/freighter_menu.gd")
|
||||||
|
_system_badge = PanelContainer.new()
|
||||||
|
_system_badge.name = "SystemIndicator"
|
||||||
|
_system_badge.custom_minimum_size.x = 86
|
||||||
|
ui.style(_system_badge, 6, 0.30)
|
||||||
|
_system_badge.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||||
|
$HUDRoot.add_child(_system_badge)
|
||||||
|
var stack := VBoxContainer.new()
|
||||||
|
stack.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||||
|
stack.add_theme_constant_override("separation", 0)
|
||||||
|
_system_badge.add_child(stack)
|
||||||
|
_system_title = ui.label(stack, "", 13, ui.GOLD)
|
||||||
|
_system_mode = ui.label(stack, "", 11, ui.MUTED)
|
||||||
|
_system_title.autowrap_mode = TextServer.AUTOWRAP_OFF
|
||||||
|
_system_mode.autowrap_mode = TextServer.AUTOWRAP_OFF
|
||||||
|
_system_mode.add_theme_font_size_override("font_size", 8)
|
||||||
|
_system_title.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||||
|
_system_mode.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||||
|
_update_system_badge()
|
||||||
|
|
||||||
|
func _update_system_badge() -> void:
|
||||||
|
if not is_instance_valid(_system_badge): return
|
||||||
|
_system_badge.position = Vector2(_captain_panel.position.x + _captain_panel.size.x + 10, _captain_panel.position.y)
|
||||||
|
_system_title.text = "System %d" % GameState.system_level
|
||||||
|
_system_mode.text = "HARD" if GameState.system_level > 60 else "NORMALNY"
|
||||||
|
_system_mode.add_theme_color_override("font_color", Color("e88972") if GameState.system_level > 60 else Color("88a7ae"))
|
||||||
|
|
||||||
|
func _create_ship_statistics() -> void:
|
||||||
|
_ship_statistics = preload("res://scripts/ui/ship_statistics.gd").new()
|
||||||
|
_ship_statistics.player = player
|
||||||
|
_ship_statistics.inventory = player.get_node("ShipInventory")
|
||||||
|
$HUDRoot.add_child(_ship_statistics)
|
||||||
|
_window_manager.register_window(_ship_statistics, _ship_statistics, _ship_statistics._header)
|
||||||
|
var contents := _sidebar.get_node("Scroll/Contents/ShipEquipmentPanel/Contents")
|
||||||
|
var button := Button.new()
|
||||||
|
button.name = "StatisticsButton"
|
||||||
|
button.text = "Statystyki"
|
||||||
|
button.custom_minimum_size.y = 36
|
||||||
|
button.tooltip_text = "Parametry statku, uzbrojenie, pancerz i systemy"
|
||||||
|
preload("res://scripts/ui/hud_button_style.gd").apply(button, Color("83c7e6"))
|
||||||
|
contents.add_child(button)
|
||||||
|
contents.move_child(button, inventory_button.get_index() + 1)
|
||||||
|
button.pressed.connect(_ship_statistics.open)
|
||||||
|
|||||||
@ -7,15 +7,16 @@ signal ammunition_changed
|
|||||||
const RECIPES := preload("res://scripts/items/crafting_recipes.gd")
|
const RECIPES := preload("res://scripts/items/crafting_recipes.gd")
|
||||||
const CARGO_SIZE := 20
|
const CARGO_SIZE := 20
|
||||||
const CARGO_ROW_SIZE := 5
|
const CARGO_ROW_SIZE := 5
|
||||||
const CARGO_ROW_COUNT := CARGO_SIZE / CARGO_ROW_SIZE
|
var unlocked_cargo_slots := CARGO_ROW_SIZE
|
||||||
var unlocked_cargo_rows := 1
|
|
||||||
const WEAPON_SLOT_COUNT := 3
|
const WEAPON_SLOT_COUNT := 3
|
||||||
const STARTING_MISSILE_AMMUNITION := 2
|
const STARTING_MISSILE_AMMUNITION := 2
|
||||||
const MISSILE_BUY_BASE_COST := 30
|
const MISSILE_BUY_BASE_COST := 30
|
||||||
const MISSILE_DEFINITIONS := [preload("res://resources/items/missile_launcher.tres"), preload("res://resources/items/unguided_missile.tres")]
|
const MISSILE_DEFINITIONS := [preload("res://resources/items/missile_launcher.tres"), preload("res://resources/items/unguided_missile.tres")]
|
||||||
const MODULE_SLOT_COUNT := 5
|
const MODULE_SLOT_COUNT := 5
|
||||||
const EXTENSION_SLOT_COUNT := 5
|
const EXTENSION_SLOT_COUNT := 5
|
||||||
const SLOT_UNLOCK_IRON_COST := 10
|
const CARGO_SLOT_COST := {"iron": 100, "aluminium": 50}
|
||||||
|
const WEAPON_UNLOCK_COSTS := [100, 500]
|
||||||
|
const EXTENSION_UNLOCK_BASE_COST := 40
|
||||||
var unlocked_weapon_slots := 1
|
var unlocked_weapon_slots := 1
|
||||||
var unlocked_extension_slots := 1
|
var unlocked_extension_slots := 1
|
||||||
const MODULE_CATEGORIES := [ItemDefinition.Category.SHIELD, ItemDefinition.Category.ARMOR, ItemDefinition.Category.ENGINE, ItemDefinition.Category.REACTOR, ItemDefinition.Category.COMPUTER]
|
const MODULE_CATEGORIES := [ItemDefinition.Category.SHIELD, ItemDefinition.Category.ARMOR, ItemDefinition.Category.ENGINE, ItemDefinition.Category.REACTOR, ItemDefinition.Category.COMPUTER]
|
||||||
@ -49,7 +50,7 @@ func _ready() -> void:
|
|||||||
if GameState.restart_inventory.is_empty():
|
if GameState.restart_inventory.is_empty():
|
||||||
_add_starter_items()
|
_add_starter_items()
|
||||||
else:
|
else:
|
||||||
unlocked_cargo_rows = clampi(int(GameState.restart_inventory.get("unlocked_cargo_rows",1)),1,CARGO_ROW_COUNT)
|
unlocked_cargo_slots = clampi(int(GameState.restart_inventory.get("unlocked_cargo_slots", int(GameState.restart_inventory.get("unlocked_cargo_rows", 1)) * CARGO_ROW_SIZE)), CARGO_ROW_SIZE, CARGO_SIZE)
|
||||||
unlocked_weapon_slots = clampi(int(GameState.restart_inventory.get("unlocked_weapon_slots",1)),1,WEAPON_SLOT_COUNT)
|
unlocked_weapon_slots = clampi(int(GameState.restart_inventory.get("unlocked_weapon_slots",1)),1,WEAPON_SLOT_COUNT)
|
||||||
unlocked_extension_slots = clampi(int(GameState.restart_inventory.get("unlocked_extension_slots",1)),1,EXTENSION_SLOT_COUNT)
|
unlocked_extension_slots = clampi(int(GameState.restart_inventory.get("unlocked_extension_slots",1)),1,EXTENSION_SLOT_COUNT)
|
||||||
cargo.assign(GameState.restart_inventory["cargo"])
|
cargo.assign(GameState.restart_inventory["cargo"])
|
||||||
@ -76,7 +77,7 @@ func get_cargo_used() -> int:
|
|||||||
func preserve_for_restart() -> void:
|
func preserve_for_restart() -> void:
|
||||||
# Copy the slot arrays; resources retain levels and individual modifiers.
|
# Copy the slot arrays; resources retain levels and individual modifiers.
|
||||||
GameState.restart_inventory = {
|
GameState.restart_inventory = {
|
||||||
"unlocked_cargo_rows": unlocked_cargo_rows,
|
"unlocked_cargo_slots": unlocked_cargo_slots,
|
||||||
"unlocked_weapon_slots": unlocked_weapon_slots,
|
"unlocked_weapon_slots": unlocked_weapon_slots,
|
||||||
"unlocked_extension_slots": unlocked_extension_slots,
|
"unlocked_extension_slots": unlocked_extension_slots,
|
||||||
"cargo": cargo.duplicate(),
|
"cargo": cargo.duplicate(),
|
||||||
@ -258,18 +259,7 @@ func is_slot_unlocked(kind: String, index: int) -> bool:
|
|||||||
return true
|
return true
|
||||||
|
|
||||||
func get_cargo_capacity() -> int:
|
func get_cargo_capacity() -> int:
|
||||||
return unlocked_cargo_rows * CARGO_ROW_SIZE
|
return unlocked_cargo_slots
|
||||||
|
|
||||||
func can_unlock_cargo_row(captain: Resource) -> bool:
|
|
||||||
return bool(ship.get("is_docked")) and unlocked_cargo_rows < CARGO_ROW_COUNT and int(captain.minerals.get("iron",0)) >= SLOT_UNLOCK_IRON_COST
|
|
||||||
|
|
||||||
func unlock_cargo_row(captain: Resource) -> bool:
|
|
||||||
if not can_unlock_cargo_row(captain): return false
|
|
||||||
captain.minerals["iron"] = int(captain.minerals.get("iron",0)) - SLOT_UNLOCK_IRON_COST
|
|
||||||
unlocked_cargo_rows += 1
|
|
||||||
captain.emit_changed()
|
|
||||||
inventory_changed.emit()
|
|
||||||
return true
|
|
||||||
|
|
||||||
func can_use_freighter_storage(captain: Resource) -> bool:
|
func can_use_freighter_storage(captain: Resource) -> bool:
|
||||||
return bool(ship.get("is_docked")) and captain.expedition.freighter_rooms.get("expansion_3","") == "module_storage"
|
return bool(ship.get("is_docked")) and captain.expedition.freighter_rooms.get("expansion_3","") == "module_storage"
|
||||||
@ -300,18 +290,42 @@ func retrieve_from_freighter(index: int, expected: ItemInstance, captain: Resour
|
|||||||
inventory_changed.emit()
|
inventory_changed.emit()
|
||||||
return true
|
return true
|
||||||
|
|
||||||
|
func get_slot_unlock_cost(kind: String) -> Dictionary:
|
||||||
|
match kind:
|
||||||
|
"cargo":
|
||||||
|
return CARGO_SLOT_COST.duplicate() if unlocked_cargo_slots < CARGO_SIZE else {}
|
||||||
|
"weapon":
|
||||||
|
return {"titanium": WEAPON_UNLOCK_COSTS[unlocked_weapon_slots - 1]} if unlocked_weapon_slots < WEAPON_SLOT_COUNT else {}
|
||||||
|
"extension":
|
||||||
|
if unlocked_extension_slots >= EXTENSION_SLOT_COUNT: return {}
|
||||||
|
var amount := EXTENSION_UNLOCK_BASE_COST * (1 << (unlocked_extension_slots - 1))
|
||||||
|
return {"iron": amount, "aluminium": amount, "titanium": amount}
|
||||||
|
return {}
|
||||||
|
|
||||||
|
func get_slot_unlock_cost_text(kind: String) -> String:
|
||||||
|
var descriptions := PackedStringArray()
|
||||||
|
var cost := get_slot_unlock_cost(kind)
|
||||||
|
for mineral in cost:
|
||||||
|
descriptions.append("%d %s" % [cost[mineral], RECIPES.NAMES[mineral]])
|
||||||
|
return " + ".join(descriptions)
|
||||||
|
|
||||||
func can_unlock_slot(kind: String, captain: Resource) -> bool:
|
func can_unlock_slot(kind: String, captain: Resource) -> bool:
|
||||||
if not bool(ship.get("is_docked")): return false
|
if not bool(ship.get("is_docked")): return false
|
||||||
if kind not in ["weapon","extension"]: return false
|
var cost := get_slot_unlock_cost(kind)
|
||||||
var count := unlocked_weapon_slots if kind == "weapon" else unlocked_extension_slots
|
if cost.is_empty(): return false
|
||||||
var limit := WEAPON_SLOT_COUNT if kind == "weapon" else EXTENSION_SLOT_COUNT
|
for mineral in cost:
|
||||||
return count < limit and int(captain.minerals.get("iron",0)) >= SLOT_UNLOCK_IRON_COST
|
if int(captain.minerals.get(mineral, 0)) < int(cost[mineral]): return false
|
||||||
|
return true
|
||||||
|
|
||||||
func unlock_slot(kind: String, captain: Resource) -> bool:
|
func unlock_slot(kind: String, captain: Resource) -> bool:
|
||||||
if not can_unlock_slot(kind,captain): return false
|
if not can_unlock_slot(kind, captain): return false
|
||||||
captain.minerals["iron"] = int(captain.minerals.get("iron",0)) - SLOT_UNLOCK_IRON_COST
|
var cost := get_slot_unlock_cost(kind)
|
||||||
if kind == "weapon": unlocked_weapon_slots += 1
|
for mineral in cost:
|
||||||
else: unlocked_extension_slots += 1
|
captain.minerals[mineral] = int(captain.minerals.get(mineral, 0)) - int(cost[mineral])
|
||||||
|
match kind:
|
||||||
|
"cargo": unlocked_cargo_slots += 1
|
||||||
|
"weapon": unlocked_weapon_slots += 1
|
||||||
|
"extension": unlocked_extension_slots += 1
|
||||||
captain.emit_changed()
|
captain.emit_changed()
|
||||||
inventory_changed.emit()
|
inventory_changed.emit()
|
||||||
return true
|
return true
|
||||||
@ -521,12 +535,16 @@ func buy_irradiated_ammunition() -> bool:
|
|||||||
ammunition_changed.emit()
|
ammunition_changed.emit()
|
||||||
return true
|
return true
|
||||||
|
|
||||||
|
func get_weapon_dps(slot_index: int) -> float:
|
||||||
|
if not is_slot_unlocked("weapon", slot_index): return 0.0
|
||||||
|
var item := get_item("weapon", slot_index)
|
||||||
|
var value := _weapon_dps(item, _comparison_bonuses())
|
||||||
|
if item != null and item.definition.weapon_kind == ItemDefinition.WeaponKind.GAMMA:
|
||||||
|
value *= 1.0 + 0.25 * minf(preload("res://scripts/game/radiation_status.gd").DURATION, item.definition.fire_interval)
|
||||||
|
return value
|
||||||
|
|
||||||
func get_total_dps() -> float:
|
func get_total_dps() -> float:
|
||||||
var total := 0.0
|
var total := 0.0
|
||||||
var bonuses := _comparison_bonuses()
|
for index in range(unlocked_weapon_slots):
|
||||||
for item in weapon_slots.slice(0,unlocked_weapon_slots):
|
total += get_weapon_dps(index)
|
||||||
var value := _weapon_dps(item, bonuses)
|
|
||||||
if item != null and item.definition.weapon_kind == ItemDefinition.WeaponKind.GAMMA:
|
|
||||||
value *= 1.0 + 0.25 * minf(preload("res://scripts/game/radiation_status.gd").DURATION, item.definition.fire_interval)
|
|
||||||
total += value
|
|
||||||
return total
|
return total
|
||||||
|
|||||||
@ -1,7 +1,14 @@
|
|||||||
extends RefCounted
|
extends RefCounted
|
||||||
|
|
||||||
const MAX_LEVEL := 1000
|
const NORMAL_MAX_LEVEL := 60
|
||||||
const COUNT_POINTS := [Vector2(1, 11), Vector2(10, 11), Vector2(15, 11), Vector2(50, 18), Vector2(100, 23), Vector2(250, 29), Vector2(500, 34), Vector2(1000, 40)]
|
const MAX_LEVEL := 120
|
||||||
|
const HARD_STAT_MULTIPLIER := 2.0
|
||||||
|
const BOSS_HULL_MULTIPLIER := 5.0
|
||||||
|
const BOSS_SHIELD_MULTIPLIER := 3.0
|
||||||
|
const BOSS_DAMAGE_MULTIPLIER := 0.5
|
||||||
|
const FIRST_BOSS_DAMAGE_MULTIPLIER := 0.25
|
||||||
|
const FIRST_BOSS_FIRE_INTERVAL_MULTIPLIER := 2.0
|
||||||
|
const COUNT_POINTS := [Vector2(1, 11), Vector2(10, 11), Vector2(15, 11), Vector2(50, 18), Vector2(100, 23), Vector2(120, 24)]
|
||||||
const ELITES_PER_LEVEL := 2
|
const ELITES_PER_LEVEL := 2
|
||||||
|
|
||||||
static func enemy_count(level: int) -> int:
|
static func enemy_count(level: int) -> int:
|
||||||
@ -11,7 +18,7 @@ static func enemy_count(level: int) -> int:
|
|||||||
var after: Vector2 = COUNT_POINTS[index]
|
var after: Vector2 = COUNT_POINTS[index]
|
||||||
if clamped_level <= after.x:
|
if clamped_level <= after.x:
|
||||||
return roundi(lerpf(before.y, after.y, inverse_lerp(before.x, after.x, clamped_level)))
|
return roundi(lerpf(before.y, after.y, inverse_lerp(before.x, after.x, clamped_level)))
|
||||||
return 40
|
return 24
|
||||||
|
|
||||||
static func enemy_tiers(level: int) -> Array[int]:
|
static func enemy_tiers(level: int) -> Array[int]:
|
||||||
var count := enemy_count(level)
|
var count := enemy_count(level)
|
||||||
@ -27,3 +34,15 @@ static func enemy_tiers(level: int) -> Array[int]:
|
|||||||
|
|
||||||
static func power_scale(level: int) -> float:
|
static func power_scale(level: int) -> float:
|
||||||
return 1.0 + 0.05 * (clampi(level, 1, MAX_LEVEL) - 1)
|
return 1.0 + 0.05 * (clampi(level, 1, MAX_LEVEL) - 1)
|
||||||
|
|
||||||
|
static func is_hard(level: int) -> bool:
|
||||||
|
return level > NORMAL_MAX_LEVEL
|
||||||
|
|
||||||
|
static func enemy_stat_scale(level: int) -> float:
|
||||||
|
return power_scale(level) * (HARD_STAT_MULTIPLIER if is_hard(level) else 1.0)
|
||||||
|
|
||||||
|
static func enemy_absorption_total(level: int) -> float:
|
||||||
|
var clamped_level := clampi(level, 1, MAX_LEVEL)
|
||||||
|
if clamped_level <= NORMAL_MAX_LEVEL:
|
||||||
|
return lerpf(2.0, 30.0, pow(float(clamped_level - 1) / float(NORMAL_MAX_LEVEL - 1), 1.25))
|
||||||
|
return lerpf(30.0, 60.0, float(clamped_level - NORMAL_MAX_LEVEL) / float(MAX_LEVEL - NORMAL_MAX_LEVEL))
|
||||||
|
|||||||
44
scripts/planets/alien_research.gd
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
extends RefCounted
|
||||||
|
const ACTIVE_IDS := ["general", "weapons", "hull", "shields"]
|
||||||
|
const BRANCHES := ["weapons", "hull", "shields"]
|
||||||
|
const TITLES := {"general":"Ogólna wiedza", "weapons":"Wiedza o broni", "hull":"Wiedza o kadłubie", "shields":"Wiedza o tarczach"}
|
||||||
|
|
||||||
|
static func parent(id: String) -> String:
|
||||||
|
if id == "general": return ""
|
||||||
|
return id.split("_")[0] if "_" in id else "general"
|
||||||
|
|
||||||
|
static func cost(id: String) -> int:
|
||||||
|
var depth := 2 if "_" in id else (0 if id == "general" else 1)
|
||||||
|
return 10 + depth * (depth + 3)
|
||||||
|
|
||||||
|
static func title(id: String) -> String:
|
||||||
|
return str(TITLES.get(id, "Pusty slot"))
|
||||||
|
|
||||||
|
static func description(id: String) -> String:
|
||||||
|
match id:
|
||||||
|
"general": return "Ujawnia paski HP i tarcz wrogów."
|
||||||
|
"weapons": return "Broń obcych zadaje o 10% mniej obrażeń."
|
||||||
|
"hull": return "Twoja broń zadaje o 10% więcej obrażeń kadłubom obcych."
|
||||||
|
"shields": return "Twoja broń zadaje o 10% więcej obrażeń tarczom obcych."
|
||||||
|
return "Miejsce na przyszłe badanie."
|
||||||
|
|
||||||
|
static func learned_count(progress: Resource) -> int:
|
||||||
|
var count := 0
|
||||||
|
for id in ACTIVE_IDS:
|
||||||
|
if progress.alien_skills.get(id, false): count += 1
|
||||||
|
return count
|
||||||
|
|
||||||
|
static func bonus(progress: Resource, branch: String) -> float:
|
||||||
|
var learned: Dictionary = progress.alien_skills
|
||||||
|
return 0.1 if branch in BRANCHES and learned.get(branch, false) else 0.0
|
||||||
|
|
||||||
|
static func purchase(progress: Resource, id: String) -> bool:
|
||||||
|
if id not in ACTIVE_IDS: return false
|
||||||
|
if progress.alien_skills.get(id, false): return false
|
||||||
|
var prerequisite := parent(id)
|
||||||
|
if prerequisite != "" and not progress.alien_skills.get(prerequisite, false): return false
|
||||||
|
if progress.analysis_samples < cost(id): return false
|
||||||
|
progress.analysis_samples -= cost(id)
|
||||||
|
progress.alien_skills[id] = true
|
||||||
|
progress.emit_changed()
|
||||||
|
return true
|
||||||