Compare commits
12 Commits
e356078a9f
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2891fb6248 | ||
|
|
31a787a7f0 | ||
|
|
f332771153 | ||
|
|
2d74e15006 | ||
|
|
6d9d08d78c | ||
|
|
834d6a3a83 | ||
|
|
676c82c4e5 | ||
|
|
e2d23bec48 | ||
|
|
b01d8c6648 | ||
|
|
f6ac31b52e | ||
|
|
9b1d6e8c8f | ||
|
|
664c9694de |
BIN
assets/ui/SO008A.BMP
Normal file
BIN
assets/ui/SO008A.BMP
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.7 MiB |
40
assets/ui/SO008A.BMP.import
Normal file
40
assets/ui/SO008A.BMP.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cau61m1755dkn"
|
||||
path="res://.godot/imported/SO008A.BMP-dedc5f46caf0f66b50eed190cef6a3a9.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/ui/SO008A.BMP"
|
||||
dest_files=["res://.godot/imported/SO008A.BMP-dedc5f46caf0f66b50eed190cef6a3a9.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/SO008B.BMP
Normal file
BIN
assets/ui/SO008B.BMP
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.4 MiB |
40
assets/ui/SO008B.BMP.import
Normal file
40
assets/ui/SO008B.BMP.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cavpqnd0qqoou"
|
||||
path="res://.godot/imported/SO008B.BMP-57a2d92123e6b32a5ec6367855ebadf6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/ui/SO008B.BMP"
|
||||
dest_files=["res://.godot/imported/SO008B.BMP-57a2d92123e6b32a5ec6367855ebadf6.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/unit_faces.BMP
Normal file
BIN
assets/ui/unit_faces.BMP
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 173 KiB |
40
assets/ui/unit_faces.BMP.import
Normal file
40
assets/ui/unit_faces.BMP.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c7coajdu61crq"
|
||||
path="res://.godot/imported/unit_faces.BMP-4eb539ec6753a0109183a7c01fbbbf92.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/ui/unit_faces.BMP"
|
||||
dest_files=["res://.godot/imported/unit_faces.BMP-4eb539ec6753a0109183a7c01fbbbf92.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,9 +1,7 @@
|
||||
* Reogranize files
|
||||
* Singletons named 'XXXServer'
|
||||
* Dialogue scene command system (ShowText, ShowSprite, MoveSprite, PlaySound, ChangeBackground, etc)
|
||||
* Need to figure out more complicated systems like choices, script eval, conditionals, jumping, etc. Probably end up wanting a DialogueEditor or just making them gdscripts and being done with it
|
||||
* Finish Dialogue Scene (fast forward, auto, history functionality, etc)
|
||||
* Units have an AppearanceInfo component that has a dictionary of str, UnitAppearance. UnitAppearance stores idle sprite, walking sprite, back, front, portrait, etc. AppearanceInfo specifies the current UnitAppearance and has methods for getting that data
|
||||
* Finish main menu
|
||||
* Game Start screen
|
||||
* Load Data Screen
|
||||
@@ -12,6 +10,6 @@
|
||||
* Battle View
|
||||
* Fog of war
|
||||
* Basic map editor (test map data will be harder to craft the more we add)
|
||||
* Walking animations
|
||||
* Start plugging in the Himegari UI
|
||||
* Unit panel needs fixed width number boxes, difference between digits causes UI jumps now
|
||||
* Dialog boxes
|
||||
21
prefabs/chip_bar.tscn
Normal file
21
prefabs/chip_bar.tscn
Normal file
@@ -0,0 +1,21 @@
|
||||
[gd_scene format=3 uid="uid://8edgswcwdiwu"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cvmmsm13nyr62" path="res://scripts/ui/chip_bar.gd" id="1_3whrn"]
|
||||
|
||||
[node name="ChipBar" type="Control" unique_id=379110810]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_3whrn")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=185867767]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_constants/separation = 0
|
||||
@@ -2,47 +2,155 @@
|
||||
|
||||
[ext_resource type="Theme" uid="uid://dx26d6py3n8xi" path="res://resources/main_ui_theme.tres" id="1_2ro41"]
|
||||
[ext_resource type="Script" uid="uid://w2wh6gtv3u2l" path="res://scripts/battle/combat_ui.gd" id="2_ui_script"]
|
||||
[ext_resource type="Texture2D" uid="uid://cavpqnd0qqoou" path="res://assets/ui/SO008B.BMP" id="3_hadma"]
|
||||
[ext_resource type="Texture2D" uid="uid://cau61m1755dkn" path="res://assets/ui/SO008A.BMP" id="3_tfn3h"]
|
||||
[ext_resource type="PackedScene" uid="uid://bc5a7tb0my6n5" path="res://prefabs/stylized_number_display.tscn" id="5_55shj"]
|
||||
[ext_resource type="PackedScene" uid="uid://8edgswcwdiwu" path="res://prefabs/chip_bar.tscn" id="6_gqe5k"]
|
||||
|
||||
[node name="CombatUI" type="CanvasLayer" unique_id=1093388037]
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_hadma"]
|
||||
atlas = ExtResource("3_tfn3h")
|
||||
region = Rect2(0, 0, 800, 600)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_55shj"]
|
||||
atlas = ExtResource("3_hadma")
|
||||
region = Rect2(393, 280, 168, 77)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_gqe5k"]
|
||||
atlas = ExtResource("3_hadma")
|
||||
region = Rect2(141, 0, 513, 169)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_hr2yf"]
|
||||
atlas = ExtResource("3_hadma")
|
||||
region = Rect2(393, 169, 263, 111)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_3wejr"]
|
||||
atlas = ExtResource("3_hadma")
|
||||
region = Rect2(614, 711, 137, 26)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_uh1k2"]
|
||||
atlas = ExtResource("3_hadma")
|
||||
region = Rect2(614, 737, 55, 20)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_yayqj"]
|
||||
atlas = ExtResource("3_hadma")
|
||||
region = Rect2(547, 839, 270, 36)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_eskga"]
|
||||
atlas = ExtResource("3_hadma")
|
||||
region = Rect2(249, 272, 3, 14)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_14b7f"]
|
||||
atlas = ExtResource("3_hadma")
|
||||
region = Rect2(246, 272, 3, 14)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_manhy"]
|
||||
atlas = ExtResource("3_hadma")
|
||||
region = Rect2(1055, 151, 28, 19)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ox7qj"]
|
||||
atlas = ExtResource("3_hadma")
|
||||
region = Rect2(547, 824, 130, 15)
|
||||
|
||||
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_gqe5k"]
|
||||
load_path = "res://.godot/imported/SO008B.BMP-57a2d92123e6b32a5ec6367855ebadf6.ctex"
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_yhw6j"]
|
||||
atlas = SubResource("CompressedTexture2D_gqe5k")
|
||||
region = Rect2(261, 272, 3, 9)
|
||||
|
||||
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_icxrh"]
|
||||
load_path = "res://.godot/imported/SO008B.BMP-57a2d92123e6b32a5ec6367855ebadf6.ctex"
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_kdblo"]
|
||||
atlas = SubResource("CompressedTexture2D_icxrh")
|
||||
region = Rect2(255, 272, 3, 9)
|
||||
|
||||
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_ptl6p"]
|
||||
load_path = "res://.godot/imported/SO008B.BMP-57a2d92123e6b32a5ec6367855ebadf6.ctex"
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_vj7wc"]
|
||||
atlas = SubResource("CompressedTexture2D_ptl6p")
|
||||
region = Rect2(1056, 172, 27, 15)
|
||||
|
||||
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_5b4vf"]
|
||||
load_path = "res://.godot/imported/SO008B.BMP-57a2d92123e6b32a5ec6367855ebadf6.ctex"
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_kd55s"]
|
||||
atlas = SubResource("CompressedTexture2D_5b4vf")
|
||||
region = Rect2(261, 272, 3, 9)
|
||||
|
||||
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_4lqfr"]
|
||||
load_path = "res://.godot/imported/SO008B.BMP-57a2d92123e6b32a5ec6367855ebadf6.ctex"
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_alhr0"]
|
||||
atlas = SubResource("CompressedTexture2D_4lqfr")
|
||||
region = Rect2(258, 272, 3, 9)
|
||||
|
||||
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_eajv6"]
|
||||
load_path = "res://.godot/imported/SO008B.BMP-57a2d92123e6b32a5ec6367855ebadf6.ctex"
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_r8i3r"]
|
||||
atlas = SubResource("CompressedTexture2D_eajv6")
|
||||
region = Rect2(1056, 190, 26, 16)
|
||||
|
||||
[node name="BattleViewUI" type="CanvasLayer" unique_id=1093388037]
|
||||
script = ExtResource("2_ui_script")
|
||||
|
||||
[node name="UnitPanel" type="PanelContainer" parent="." unique_id=2000000001]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
anchors_preset = 2
|
||||
anchor_top = 1.0
|
||||
[node name="UIBase" type="Control" parent="." unique_id=7839209]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 8.0
|
||||
offset_top = -78.0
|
||||
offset_right = 208.0
|
||||
offset_bottom = -8.0
|
||||
grow_vertical = 0
|
||||
theme = ExtResource("1_2ro41")
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 1
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="UnitPanel" unique_id=899996785]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_left = 8
|
||||
theme_override_constants/margin_top = 8
|
||||
theme_override_constants/margin_right = 8
|
||||
theme_override_constants/margin_bottom = 8
|
||||
[node name="Overlay" type="Control" parent="UIBase" unique_id=114439631]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="UnitPanel/MarginContainer" unique_id=333573880]
|
||||
layout_mode = 2
|
||||
[node name="Background" type="TextureRect" parent="UIBase/Overlay" unique_id=1726665864]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = SubResource("AtlasTexture_hadma")
|
||||
|
||||
[node name="NameLabel" type="Label" parent="UnitPanel/MarginContainer/VBoxContainer" unique_id=2000000002]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Unit"
|
||||
[node name="HoverInfo" type="TextureRect" parent="UIBase/Overlay" unique_id=1180275113]
|
||||
layout_mode = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
texture = SubResource("AtlasTexture_55shj")
|
||||
|
||||
[node name="HPBar" type="ProgressBar" parent="UnitPanel/MarginContainer/VBoxContainer" unique_id=2000000003]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
value = 100.0
|
||||
show_percentage = false
|
||||
[node name="Bars" type="TextureRect" parent="UIBase/Overlay" unique_id=780801800]
|
||||
layout_mode = 1
|
||||
anchors_preset = 1
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
offset_left = -513.0
|
||||
offset_bottom = 169.0
|
||||
grow_horizontal = 0
|
||||
texture = SubResource("AtlasTexture_gqe5k")
|
||||
|
||||
[node name="BackgroundTint" type="ColorRect" parent="." unique_id=253893594]
|
||||
[node name="TextureRect" type="TextureRect" parent="UIBase/Overlay" unique_id=1469571203]
|
||||
layout_mode = 0
|
||||
offset_left = 536.0
|
||||
offset_top = 432.0
|
||||
offset_right = 799.0
|
||||
offset_bottom = 543.0
|
||||
texture = SubResource("AtlasTexture_hr2yf")
|
||||
|
||||
[node name="BackgroundTint" type="ColorRect" parent="UIBase" unique_id=253893594]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
@@ -50,121 +158,278 @@ grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0, 0, 0, 0.4)
|
||||
|
||||
[node name="CombatProposalPanel" type="PanelContainer" parent="." unique_id=2088533653]
|
||||
[node name="CombatProposalPanel" type="PanelContainer" parent="UIBase" unique_id=2088533653]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -88.0
|
||||
offset_top = -103.5
|
||||
offset_right = 88.0
|
||||
offset_bottom = 103.5
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme = ExtResource("1_2ro41")
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="CombatProposalPanel" unique_id=924522188]
|
||||
[node name="MarginContainer" type="MarginContainer" parent="UIBase/CombatProposalPanel" unique_id=924522188]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_left = 12
|
||||
theme_override_constants/margin_top = 12
|
||||
theme_override_constants/margin_right = 12
|
||||
theme_override_constants/margin_bottom = 12
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="CombatProposalPanel/MarginContainer" unique_id=666671196]
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="UIBase/CombatProposalPanel/MarginContainer" unique_id=666671196]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="TitleLabel" type="Label" parent="CombatProposalPanel/MarginContainer/VBoxContainer" unique_id=1520669125]
|
||||
[node name="TitleLabel" type="Label" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer" unique_id=1520669125]
|
||||
layout_mode = 2
|
||||
text = "COMBAT FORECAST"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="StatsContainer" type="HBoxContainer" parent="CombatProposalPanel/MarginContainer/VBoxContainer" unique_id=1101898616]
|
||||
[node name="StatsContainer" type="HBoxContainer" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer" unique_id=1101898616]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 24
|
||||
|
||||
[node name="AttackerStats" type="VBoxContainer" parent="CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer" unique_id=1193603706]
|
||||
[node name="AttackerStats" type="VBoxContainer" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer" unique_id=1193603706]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AttackerNameLabel" type="Label" parent="CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/AttackerStats" unique_id=1574861154]
|
||||
[node name="AttackerNameLabel" type="Label" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/AttackerStats" unique_id=1574861154]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Attacker"
|
||||
|
||||
[node name="AttackerTacticSelect" type="OptionButton" parent="CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/AttackerStats" unique_id=1466363800]
|
||||
[node name="AttackerTacticSelect" type="OptionButton" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/AttackerStats" unique_id=1466363800]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AttackerHPBar" type="ProgressBar" parent="CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/AttackerStats" unique_id=241886156]
|
||||
[node name="AttackerHPBar" type="ProgressBar" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/AttackerStats" unique_id=241886156]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
show_percentage = false
|
||||
|
||||
[node name="AttackerATKLabel" type="Label" parent="CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/AttackerStats" unique_id=1656041171]
|
||||
[node name="AttackerATKLabel" type="Label" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/AttackerStats" unique_id=1656041171]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "ATK: 0"
|
||||
|
||||
[node name="AttackerDEFLabel" type="Label" parent="CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/AttackerStats" unique_id=2145851939]
|
||||
[node name="AttackerDEFLabel" type="Label" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/AttackerStats" unique_id=2145851939]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "DEF: 0"
|
||||
|
||||
[node name="AttackerHITLabel" type="Label" parent="CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/AttackerStats" unique_id=1234331828]
|
||||
[node name="AttackerHITLabel" type="Label" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/AttackerStats" unique_id=1234331828]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "HIT: 0%"
|
||||
|
||||
[node name="AttackerSPDLabel" type="Label" parent="CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/AttackerStats" unique_id=1461624142]
|
||||
[node name="AttackerSPDLabel" type="Label" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/AttackerStats" unique_id=1461624142]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "SPD: 0"
|
||||
|
||||
[node name="DefenderStats" type="VBoxContainer" parent="CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer" unique_id=1747482540]
|
||||
[node name="DefenderStats" type="VBoxContainer" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer" unique_id=1747482540]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="DefenderNameLabel" type="Label" parent="CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/DefenderStats" unique_id=365769500]
|
||||
[node name="DefenderNameLabel" type="Label" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/DefenderStats" unique_id=365769500]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Defender"
|
||||
|
||||
[node name="DefenderTacticSelect" type="OptionButton" parent="CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/DefenderStats" unique_id=1226652499]
|
||||
[node name="DefenderTacticSelect" type="OptionButton" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/DefenderStats" unique_id=1226652499]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
|
||||
[node name="DefenderHPBar" type="ProgressBar" parent="CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/DefenderStats" unique_id=1878516243]
|
||||
[node name="DefenderHPBar" type="ProgressBar" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/DefenderStats" unique_id=1878516243]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
show_percentage = false
|
||||
|
||||
[node name="DefenderATKLabel" type="Label" parent="CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/DefenderStats" unique_id=1571527922]
|
||||
[node name="DefenderATKLabel" type="Label" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/DefenderStats" unique_id=1571527922]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "ATK: 0"
|
||||
|
||||
[node name="DefenderDEFLabel" type="Label" parent="CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/DefenderStats" unique_id=1755454849]
|
||||
[node name="DefenderDEFLabel" type="Label" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/DefenderStats" unique_id=1755454849]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "DEF: 0"
|
||||
|
||||
[node name="DefenderHITLabel" type="Label" parent="CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/DefenderStats" unique_id=717216786]
|
||||
[node name="DefenderHITLabel" type="Label" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/DefenderStats" unique_id=717216786]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "HIT: 0%"
|
||||
|
||||
[node name="DefenderSPDLabel" type="Label" parent="CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/DefenderStats" unique_id=132072292]
|
||||
[node name="DefenderSPDLabel" type="Label" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer/StatsContainer/DefenderStats" unique_id=132072292]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "SPD: 0"
|
||||
|
||||
[node name="ButtonContainer" type="HBoxContainer" parent="CombatProposalPanel/MarginContainer/VBoxContainer" unique_id=2145647565]
|
||||
[node name="ButtonContainer" type="HBoxContainer" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer" unique_id=2145647565]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="FightButton" type="Button" parent="CombatProposalPanel/MarginContainer/VBoxContainer/ButtonContainer" unique_id=2109262268]
|
||||
[node name="FightButton" type="Button" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer/ButtonContainer" unique_id=2109262268]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Fight"
|
||||
|
||||
[node name="CancelButton" type="Button" parent="CombatProposalPanel/MarginContainer/VBoxContainer/ButtonContainer" unique_id=238295206]
|
||||
[node name="CancelButton" type="Button" parent="UIBase/CombatProposalPanel/MarginContainer/VBoxContainer/ButtonContainer" unique_id=238295206]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Cancel"
|
||||
|
||||
[node name="UnitPanel" type="Control" parent="UIBase" unique_id=1823763147]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 1
|
||||
anchors_preset = 3
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -265.0
|
||||
offset_top = -194.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="UIBase/UnitPanel" unique_id=691752297]
|
||||
layout_mode = 0
|
||||
offset_left = 128.0
|
||||
offset_right = 265.0
|
||||
offset_bottom = 26.0
|
||||
size_flags_horizontal = 8
|
||||
texture = SubResource("AtlasTexture_3wejr")
|
||||
|
||||
[node name="UnitLevel" type="HBoxContainer" parent="UIBase/UnitPanel/TextureRect" unique_id=828992814]
|
||||
layout_mode = 1
|
||||
anchors_preset = 3
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -63.0
|
||||
offset_top = -20.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="Spacer" type="Control" parent="UIBase/UnitPanel/TextureRect/UnitLevel" unique_id=1068603879]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Label" type="TextureRect" parent="UIBase/UnitPanel/TextureRect/UnitLevel" unique_id=1299333906]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 8
|
||||
texture = SubResource("AtlasTexture_uh1k2")
|
||||
|
||||
[node name="LevelNumber" parent="UIBase/UnitPanel/TextureRect/UnitLevel" unique_id=702997768 instance=ExtResource("5_55shj")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
sprite_sheet = SubResource("AtlasTexture_yayqj")
|
||||
number_sprite_width = 27
|
||||
number_sprite_height = 39
|
||||
value = 12
|
||||
|
||||
[node name="UnitHealth" type="HBoxContainer" parent="UIBase/UnitPanel" unique_id=53239936]
|
||||
layout_mode = 0
|
||||
offset_left = -127.0
|
||||
offset_top = 103.0
|
||||
offset_right = 253.0
|
||||
offset_bottom = 131.0
|
||||
alignment = 2
|
||||
|
||||
[node name="HealthChipBar" parent="UIBase/UnitPanel/UnitHealth" unique_id=379110810 instance=ExtResource("6_gqe5k")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 4
|
||||
max_chips_per_row = 100
|
||||
empty_chip_texture = SubResource("AtlasTexture_eskga")
|
||||
filled_chip_texture = SubResource("AtlasTexture_14b7f")
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="UIBase/UnitPanel/UnitHealth" unique_id=668812970]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 0
|
||||
texture = SubResource("AtlasTexture_manhy")
|
||||
|
||||
[node name="HealthNumber" parent="UIBase/UnitPanel/UnitHealth" unique_id=1442983008 instance=ExtResource("5_55shj")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 4
|
||||
sprite_sheet = SubResource("AtlasTexture_ox7qj")
|
||||
number_sprite_width = 13
|
||||
number_sprite_height = 15
|
||||
|
||||
[node name="UnitSP" type="HBoxContainer" parent="UIBase/UnitPanel" unique_id=514403074]
|
||||
layout_mode = 0
|
||||
offset_left = 1.0
|
||||
offset_top = 133.0
|
||||
offset_right = 249.0
|
||||
offset_bottom = 151.0
|
||||
|
||||
[node name="SPChipBar" parent="UIBase/UnitPanel/UnitSP" unique_id=374103132 instance=ExtResource("6_gqe5k")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 4
|
||||
max_chips_per_row = 100
|
||||
empty_chip_texture = SubResource("AtlasTexture_yhw6j")
|
||||
filled_chip_texture = SubResource("AtlasTexture_kdblo")
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="UIBase/UnitPanel/UnitSP" unique_id=805168370]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 0
|
||||
texture = SubResource("AtlasTexture_vj7wc")
|
||||
|
||||
[node name="SPNumber" parent="UIBase/UnitPanel/UnitSP" unique_id=442319509 instance=ExtResource("5_55shj")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 4
|
||||
sprite_sheet = SubResource("AtlasTexture_ox7qj")
|
||||
number_sprite_width = 13
|
||||
number_sprite_height = 15
|
||||
|
||||
[node name="UnitFS" type="HBoxContainer" parent="UIBase/UnitPanel" unique_id=1209088756]
|
||||
layout_mode = 0
|
||||
offset_left = 1.0
|
||||
offset_top = 160.0
|
||||
offset_right = 249.0
|
||||
offset_bottom = 178.0
|
||||
|
||||
[node name="FSChipBar" parent="UIBase/UnitPanel/UnitFS" unique_id=1380843979 instance=ExtResource("6_gqe5k")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 4
|
||||
max_chips_per_row = 100
|
||||
empty_chip_texture = SubResource("AtlasTexture_kd55s")
|
||||
filled_chip_texture = SubResource("AtlasTexture_alhr0")
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="UIBase/UnitPanel/UnitFS" unique_id=1340673242]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 0
|
||||
texture = SubResource("AtlasTexture_r8i3r")
|
||||
|
||||
[node name="FSNumber" parent="UIBase/UnitPanel/UnitFS" unique_id=1558008542 instance=ExtResource("5_55shj")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 4
|
||||
sprite_sheet = SubResource("AtlasTexture_ox7qj")
|
||||
number_sprite_width = 13
|
||||
number_sprite_height = 15
|
||||
|
||||
[node name="UnitName" type="RichTextLabel" parent="UIBase/UnitPanel" unique_id=1945794101]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 0
|
||||
offset_left = 69.0
|
||||
offset_top = 51.0
|
||||
offset_right = 258.0
|
||||
offset_bottom = 66.0
|
||||
theme = ExtResource("1_2ro41")
|
||||
theme_override_font_sizes/normal_font_size = 16
|
||||
theme_override_font_sizes/bold_font_size = 16
|
||||
bbcode_enabled = true
|
||||
scroll_active = false
|
||||
text_direction = 2
|
||||
|
||||
52
prefabs/contiguous_bar.tscn
Normal file
52
prefabs/contiguous_bar.tscn
Normal file
@@ -0,0 +1,52 @@
|
||||
[gd_scene format=3 uid="uid://fw4ug70qd8nm"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://cavpqnd0qqoou" path="res://assets/ui/SO008B.BMP" id="1_nj0tn"]
|
||||
[ext_resource type="Script" uid="uid://cb32ywwuyi706" path="res://scripts/ui/contiguous_bar.gd" id="2_cbar"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_vkyrt"]
|
||||
atlas = ExtResource("1_nj0tn")
|
||||
region = Rect2(680, 557, 52, 7)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_3kyon"]
|
||||
atlas = ExtResource("1_nj0tn")
|
||||
region = Rect2(680, 564, 50, 5)
|
||||
|
||||
[node name="ContiguousBar" type="Control" unique_id=1119297666]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("2_cbar")
|
||||
|
||||
[node name="EmptyBar" type="NinePatchRect" parent="." unique_id=303722124]
|
||||
layout_mode = 1
|
||||
anchors_preset = 14
|
||||
anchor_top = 0.5
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.5
|
||||
offset_bottom = 7.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = SubResource("AtlasTexture_vkyrt")
|
||||
region_rect = Rect2(0, 0, 52, 7)
|
||||
patch_margin_left = 1
|
||||
patch_margin_top = 1
|
||||
patch_margin_right = 1
|
||||
patch_margin_bottom = 1
|
||||
|
||||
[node name="Fill" type="NinePatchRect" parent="EmptyBar" unique_id=1864372620]
|
||||
layout_mode = 1
|
||||
anchors_preset = 11
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -1.0
|
||||
offset_top = 1.0
|
||||
offset_right = -1.0
|
||||
offset_bottom = -1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = SubResource("AtlasTexture_3kyon")
|
||||
region_rect = Rect2(0, 0, 50, 5)
|
||||
@@ -3,6 +3,7 @@
|
||||
[ext_resource type="Script" uid="uid://cmh4lphvboggy" path="res://scripts/battle/deployed_units/deployed_unit.gd" id="1_cq4v0"]
|
||||
[ext_resource type="Texture2D" uid="uid://cw5su6lignryo" path="res://assets/sprites/flag.png" id="2_fhs1y"]
|
||||
[ext_resource type="Shader" uid="uid://bd8ki8xwym5nc" path="res://shaders/chroma_key.gdshader" id="3_fhs1y"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_on614"]
|
||||
resource_name = "UnitSelectorHandler"
|
||||
script/source = "extends ColorRect
|
||||
|
||||
186
prefabs/deployment_slot.tscn
Normal file
186
prefabs/deployment_slot.tscn
Normal file
@@ -0,0 +1,186 @@
|
||||
[gd_scene format=3 uid="uid://csu4xocsj71td"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://cavpqnd0qqoou" path="res://assets/ui/SO008B.BMP" id="1_vc35g"]
|
||||
[ext_resource type="Shader" uid="uid://bd8ki8xwym5nc" path="res://shaders/chroma_key.gdshader" id="2_mwfff"]
|
||||
[ext_resource type="Texture2D" uid="uid://c7coajdu61crq" path="res://assets/ui/unit_faces.BMP" id="3_q3r6y"]
|
||||
[ext_resource type="Script" uid="uid://cb32ywwuyi706" path="res://scripts/ui/contiguous_bar.gd" id="4_byj02"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_07lbo"]
|
||||
atlas = ExtResource("1_vc35g")
|
||||
region = Rect2(680, 522, 60, 35)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_scfqt"]
|
||||
atlas = ExtResource("1_vc35g")
|
||||
region = Rect2(680, 605, 50, 17)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_a8mo2"]
|
||||
shader = ExtResource("2_mwfff")
|
||||
shader_parameter/key_color = Color(0, 1, 0, 1)
|
||||
shader_parameter/threshold = 0.01
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ajsjv"]
|
||||
atlas = ExtResource("3_q3r6y")
|
||||
region = Rect2(40, 0, 40, 40)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_kqrkf"]
|
||||
atlas = ExtResource("1_vc35g")
|
||||
region = Rect2(708, 587, 28, 17)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_1c3gn"]
|
||||
atlas = ExtResource("1_vc35g")
|
||||
region = Rect2(264, 272, 52, 7)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_d4kxr"]
|
||||
atlas = ExtResource("1_vc35g")
|
||||
region = Rect2(264, 279, 50, 5)
|
||||
|
||||
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_vxtih"]
|
||||
blend_mode = 1
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_og56w"]
|
||||
atlas = ExtResource("1_vc35g")
|
||||
region = Rect2(740, 522, 45, 35)
|
||||
|
||||
[node name="DeploymentSlot" type="Control" unique_id=258677476]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Base" type="TextureRect" parent="." unique_id=1397025328]
|
||||
self_modulate = Color(0.85881317, 0.8389489, 0.60661924, 1)
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -30.0
|
||||
offset_top = -17.5
|
||||
offset_right = 30.0
|
||||
offset_bottom = 17.5
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = SubResource("AtlasTexture_07lbo")
|
||||
|
||||
[node name="Contents" type="Control" parent="Base" unique_id=1351926154]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Empty" type="Control" parent="Base/Contents" unique_id=1459198631]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Label" type="TextureRect" parent="Base/Contents/Empty" unique_id=460221998]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -25.0
|
||||
offset_top = -8.5
|
||||
offset_right = 25.0
|
||||
offset_bottom = 8.5
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = SubResource("AtlasTexture_scfqt")
|
||||
|
||||
[node name="Deployed" type="Control" parent="Base/Contents" unique_id=1502290289]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="UnitSprite" type="TextureRect" parent="Base/Contents/Deployed" unique_id=1617524406]
|
||||
material = SubResource("ShaderMaterial_a8mo2")
|
||||
layout_mode = 1
|
||||
anchors_preset = 2
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -45.0
|
||||
offset_right = 40.0
|
||||
offset_bottom = -5.0
|
||||
grow_vertical = 0
|
||||
texture = SubResource("AtlasTexture_ajsjv")
|
||||
|
||||
[node name="ReadyLabel" type="TextureRect" parent="Base/Contents/Deployed" unique_id=1608591044]
|
||||
layout_mode = 1
|
||||
anchors_preset = 6
|
||||
anchor_left = 1.0
|
||||
anchor_top = 0.5
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -30.0
|
||||
offset_top = -14.0
|
||||
offset_right = -2.0
|
||||
offset_bottom = 3.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 2
|
||||
texture = SubResource("AtlasTexture_kqrkf")
|
||||
|
||||
[node name="EmptyBar" type="NinePatchRect" parent="Base/Contents/Deployed" unique_id=855067973]
|
||||
layout_mode = 1
|
||||
anchors_preset = 14
|
||||
anchor_top = 0.5
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.5
|
||||
offset_left = 2.0
|
||||
offset_top = 7.0
|
||||
offset_right = -2.0
|
||||
offset_bottom = 14.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = SubResource("AtlasTexture_1c3gn")
|
||||
region_rect = Rect2(0, 0, 52, 7)
|
||||
patch_margin_left = 1
|
||||
patch_margin_top = 1
|
||||
patch_margin_right = 1
|
||||
patch_margin_bottom = 1
|
||||
script = ExtResource("4_byj02")
|
||||
value = 50
|
||||
max_value = 50
|
||||
|
||||
[node name="Fill" type="NinePatchRect" parent="Base/Contents/Deployed/EmptyBar" unique_id=318061429]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 1.0
|
||||
offset_top = 1.0
|
||||
offset_right = -1.0
|
||||
offset_bottom = -1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = SubResource("AtlasTexture_d4kxr")
|
||||
region_rect = Rect2(0, 0, 50, 5)
|
||||
|
||||
[node name="Hover" type="TextureRect" parent="." unique_id=1517469291]
|
||||
visible = false
|
||||
material = SubResource("CanvasItemMaterial_vxtih")
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -22.5
|
||||
offset_top = -17.5
|
||||
offset_right = 22.5
|
||||
offset_bottom = 17.5
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = SubResource("AtlasTexture_og56w")
|
||||
30
prefabs/stylized_number_display.tscn
Normal file
30
prefabs/stylized_number_display.tscn
Normal file
@@ -0,0 +1,30 @@
|
||||
[gd_scene format=3 uid="uid://bc5a7tb0my6n5"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://biud4ob4h0rrs" path="res://scripts/ui/stylized_number_display.gd" id="1_yn0fd"]
|
||||
[ext_resource type="Texture2D" uid="uid://cavpqnd0qqoou" path="res://assets/ui/SO008B.BMP" id="2_2wvj5"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_b1oqg"]
|
||||
atlas = ExtResource("2_2wvj5")
|
||||
region = Rect2(546, 839, 272, 39)
|
||||
|
||||
[node name="StylizedNumberDisplay" type="Control" unique_id=702997768]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_yn0fd")
|
||||
sprite_sheet = SubResource("AtlasTexture_b1oqg")
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="." unique_id=2089310026]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(60, 0)
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_constants/separation = 2
|
||||
alignment = 1
|
||||
@@ -25,7 +25,7 @@ func _on_unit_unit_allegiance_changed(_unit: Unit, allegiance: UnitAllegiance) -
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fhs1y"]
|
||||
shader = ExtResource("3_fhs1y")
|
||||
shader_parameter/key_color = Color(0, 1, 0, 1)
|
||||
shader_parameter/threshold = 0.01
|
||||
shader_parameter/threshold = 0.010000000475
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_fhs1y"]
|
||||
atlas = ExtResource("3_on614")
|
||||
|
||||
@@ -41,3 +41,4 @@ debug_toggle={
|
||||
textures/canvas_textures/default_texture_filter=0
|
||||
rendering_device/driver.windows="d3d12"
|
||||
renderer/rendering_method="mobile"
|
||||
environment/defaults/default_clear_color=Color(0, 0, 0, 1)
|
||||
|
||||
BIN
reference_images/chip.png
Normal file
BIN
reference_images/chip.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 463 KiB |
40
reference_images/chip.png.import
Normal file
40
reference_images/chip.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bhtnqu000slm2"
|
||||
path="res://.godot/imported/chip.png-5735088daa8f24a5994c25e597283774.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://reference_images/chip.png"
|
||||
dest_files=["res://.godot/imported/chip.png-5735088daa8f24a5994c25e597283774.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
|
||||
@@ -101,7 +101,7 @@ animations = [{
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"down",
|
||||
"speed": 8.0
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
@@ -118,7 +118,7 @@ animations = [{
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"idle",
|
||||
"speed": 8.0
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
@@ -135,7 +135,7 @@ animations = [{
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"left",
|
||||
"speed": 8.0
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
@@ -152,7 +152,7 @@ animations = [{
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"right",
|
||||
"speed": 8.0
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
@@ -169,7 +169,7 @@ animations = [{
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"up",
|
||||
"speed": 8.0
|
||||
"speed": 5.0
|
||||
}]
|
||||
|
||||
[resource]
|
||||
|
||||
@@ -22,7 +22,7 @@ metadata/_custom_type_script = "uid://d37ulss2k0bq5"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_nc6h6"]
|
||||
script = ExtResource("5_rqhbp")
|
||||
max_hp = 20
|
||||
max_hp = 156
|
||||
metadata/_custom_type_script = "uid://cydoey8a8nmb8"
|
||||
|
||||
[resource]
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
[ext_resource type="Shader" uid="uid://dakre5usldk6r" path="res://shaders/masked_palette_swap.gdshader" id="1_nd71p"]
|
||||
[ext_resource type="Texture2D" uid="uid://b8td6sv5re6r8" path="res://assets/sprites/grey_castle_spritesheet_mask.bmp" id="2_7ddre"]
|
||||
[ext_resource type="Texture2D" uid="uid://b20mhn7ca5xyo" path="res://assets/sprites/aux_terrain.BMP" id="5_qjeyg"]
|
||||
[ext_resource type="Script" uid="uid://csdcbi2gtwrly" path="res://scripts/battle/camera_controller.gd" id="6_wtsjf"]
|
||||
[ext_resource type="PackedScene" uid="uid://bc5a7tb0my6n5" path="res://prefabs/stylized_number_display.tscn" id="7_rnaij"]
|
||||
[ext_resource type="PackedScene" uid="uid://8edgswcwdiwu" path="res://prefabs/chip_bar.tscn" id="8_h3xc6"]
|
||||
[ext_resource type="Texture2D" uid="uid://cavpqnd0qqoou" path="res://assets/ui/SO008B.BMP" id="9_s36qc"]
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_qjeyg"]
|
||||
texture = ExtResource("1_7ddre")
|
||||
@@ -53,6 +57,14 @@ region = Rect2(0, 100, 100, 100)
|
||||
atlas = ExtResource("5_qjeyg")
|
||||
region = Rect2(210, 0, 41, 32)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_6qxox"]
|
||||
atlas = ExtResource("9_s36qc")
|
||||
region = Rect2(249, 272, 3, 14)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_gthg3"]
|
||||
atlas = ExtResource("9_s36qc")
|
||||
region = Rect2(246, 272, 3, 14)
|
||||
|
||||
[node name="TestScene" type="Node2D" unique_id=1687841395]
|
||||
|
||||
[node name="TileMapLayer" type="TileMapLayer" parent="." unique_id=265586128]
|
||||
@@ -66,3 +78,40 @@ texture = SubResource("AtlasTexture_j8ivh")
|
||||
|
||||
[node name="Sprite2D2" type="Sprite2D" parent="." unique_id=1517711877]
|
||||
texture = SubResource("AtlasTexture_3qnke")
|
||||
|
||||
[node name="CameraController" type="Camera2D" parent="." unique_id=1277373781]
|
||||
script = ExtResource("6_wtsjf")
|
||||
metadata/_custom_type_script = "uid://csdcbi2gtwrly"
|
||||
|
||||
[node name="Control" type="Control" parent="." unique_id=794632273]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="StylizedNumberDisplay" parent="Control" unique_id=702997768 instance=ExtResource("7_rnaij")]
|
||||
layout_mode = 0
|
||||
anchors_preset = 0
|
||||
anchor_right = 0.0
|
||||
anchor_bottom = 0.0
|
||||
offset_right = 50.0
|
||||
offset_bottom = 50.0
|
||||
grow_horizontal = 1
|
||||
grow_vertical = 1
|
||||
number_sprite_width = 27
|
||||
number_sprite_height = 36
|
||||
value = 1234567890
|
||||
|
||||
[node name="ChipBar" parent="Control" unique_id=379110810 instance=ExtResource("8_h3xc6")]
|
||||
layout_mode = 1
|
||||
offset_left = -87.0
|
||||
offset_top = -101.0
|
||||
offset_right = -37.0
|
||||
offset_bottom = -1.0
|
||||
value = 5
|
||||
max_value = 5
|
||||
max_chips_per_row = 10
|
||||
empty_chip_texture = SubResource("AtlasTexture_6qxox")
|
||||
filled_chip_texture = SubResource("AtlasTexture_gthg3")
|
||||
|
||||
@@ -87,6 +87,7 @@ func _pressed() -> void:
|
||||
|
||||
var player_unit: Unit = LILY_CHILD.duplicate(true)
|
||||
player_unit.allegiance = PLAYER_ALLEGIANCE
|
||||
player_unit.stats.level = 68
|
||||
combat_map.deploy_unit(player_unit, Vector2i(3, 3))
|
||||
|
||||
var enemy_unit: Unit = LILY_CHILD.duplicate(true)
|
||||
|
||||
@@ -3,9 +3,15 @@ class_name CombatUI extends CanvasLayer
|
||||
signal fight_confirmed(proposal: CombatProposal)
|
||||
signal fight_cancelled
|
||||
|
||||
@onready var unit_panel: PanelContainer = %UnitPanel
|
||||
@onready var name_label: Label = %NameLabel
|
||||
@onready var hp_bar: ProgressBar = %HPBar
|
||||
@onready var unit_panel: Control = %UnitPanel
|
||||
@onready var unit_name_label: RichTextLabel = %UnitName
|
||||
@onready var level_number: StylizedNumberDisplay = %LevelNumber
|
||||
@onready var health_chip_bar: ChipBar = %HealthChipBar
|
||||
@onready var health_number: StylizedNumberDisplay = %HealthNumber
|
||||
@onready var sp_chip_bar: ChipBar = %SPChipBar
|
||||
@onready var sp_number: StylizedNumberDisplay = %SPNumber
|
||||
@onready var fs_chip_bar: ChipBar = %FSChipBar
|
||||
@onready var fs_number: StylizedNumberDisplay = %FSNumber
|
||||
|
||||
@onready var background_tint: ColorRect = %BackgroundTint
|
||||
@onready var proposal_panel: PanelContainer = %CombatProposalPanel
|
||||
@@ -59,8 +65,7 @@ func _on_unit_died(deployed: DeployedUnit) -> void:
|
||||
|
||||
func _process(_delta: float) -> void:
|
||||
if _selected_unit and is_instance_valid(_selected_unit):
|
||||
hp_bar.max_value = _selected_unit.current_stats.max_hp
|
||||
hp_bar.value = _selected_unit.current_stats.current_hp
|
||||
_refresh_unit_panel()
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if proposal_panel.visible and event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_RIGHT:
|
||||
@@ -71,14 +76,26 @@ func _unhandled_input(event: InputEvent) -> void:
|
||||
func _on_unit_selected_changed(deployed: DeployedUnit, selected: bool) -> void:
|
||||
if selected:
|
||||
_selected_unit = deployed
|
||||
name_label.text = deployed.unit.info.name
|
||||
hp_bar.max_value = deployed.current_stats.max_hp
|
||||
hp_bar.value = deployed.current_stats.current_hp
|
||||
_refresh_unit_panel()
|
||||
unit_panel.visible = true
|
||||
else:
|
||||
_selected_unit = null
|
||||
unit_panel.visible = false
|
||||
|
||||
func _refresh_unit_panel() -> void:
|
||||
var stats := _selected_unit.current_stats
|
||||
unit_name_label.text = "[b]%s[/b]" % _selected_unit.unit.info.name
|
||||
level_number.value = stats.level
|
||||
health_chip_bar.max_value = stats.max_hp
|
||||
health_chip_bar.value = stats.current_hp
|
||||
health_number.value = stats.current_hp
|
||||
sp_chip_bar.max_value = stats.max_sp
|
||||
sp_chip_bar.value = stats.current_sp
|
||||
sp_number.value = stats.current_sp
|
||||
fs_chip_bar.max_value = stats.max_fs
|
||||
fs_chip_bar.value = stats.current_fs
|
||||
fs_number.value = stats.current_fs
|
||||
|
||||
func show_proposal(proposal: CombatProposal) -> void:
|
||||
_current_proposal = proposal
|
||||
_populate_tactic_select(atk_tactic_select, proposal.attacker)
|
||||
|
||||
@@ -33,6 +33,8 @@ var lck: int:
|
||||
get: return unit_stats.lck
|
||||
var mov: int:
|
||||
get: return unit_stats.mov
|
||||
var level: int:
|
||||
get: return unit_stats.level
|
||||
|
||||
static func from_unit_stats(source: UnitStats) -> DeployedUnitStats:
|
||||
var stats := DeployedUnitStats.new()
|
||||
|
||||
@@ -8,6 +8,7 @@ var scene_registry: Array = [
|
||||
{ "name": "Battle Test", "path": "res://scenes/views/battle_view.tscn" },
|
||||
{ "name": "Main Menu", "path": "res://scenes/views/main_menu_view.tscn" },
|
||||
{ "name": "Dialogue Test", "path": "res://scenes/dialogue_scene.tscn" },
|
||||
{ "name": "Test Scene", "path": "res://scenes/test_scene.tscn" },
|
||||
]
|
||||
|
||||
var commands: Array[ConsoleCommand] = []
|
||||
|
||||
68
scripts/ui/chip_bar.gd
Normal file
68
scripts/ui/chip_bar.gd
Normal file
@@ -0,0 +1,68 @@
|
||||
class_name ChipBar extends Control
|
||||
|
||||
# The value to represent in filled chips. In the future chips may be colored differently above certain thresholds to stop drawing too many
|
||||
@export var value: int:
|
||||
set(v):
|
||||
value = v
|
||||
if is_node_ready():
|
||||
_refresh()
|
||||
|
||||
# The total number of chips. If value is less than this, those chips should be empty.
|
||||
@export var max_value: int:
|
||||
set(v):
|
||||
max_value = v
|
||||
if is_node_ready():
|
||||
_refresh()
|
||||
|
||||
# Configures the size of the hflow based on the chip texture size.
|
||||
@export var max_chips_per_row: int
|
||||
|
||||
# The texture for an empty chip
|
||||
@export var empty_chip_texture: Texture2D
|
||||
|
||||
# The texture for a filled chip
|
||||
@export var filled_chip_texture: Texture2D
|
||||
|
||||
@onready var _container: VBoxContainer = $VBoxContainer
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
_refresh()
|
||||
|
||||
|
||||
func _refresh() -> void:
|
||||
for child in _container.get_children():
|
||||
child.queue_free()
|
||||
|
||||
if max_chips_per_row <= 0 or not filled_chip_texture:
|
||||
return
|
||||
|
||||
var chip_width := filled_chip_texture.get_width()
|
||||
var effective_per_row := max_chips_per_row
|
||||
if chip_width > 0 and _container.size.x > 0:
|
||||
effective_per_row = mini(effective_per_row, int(_container.size.x / chip_width))
|
||||
|
||||
var filled_remaining := value
|
||||
var chips_laid_out := 0
|
||||
while chips_laid_out < max_value:
|
||||
var row := HBoxContainer.new()
|
||||
row.alignment = BoxContainer.ALIGNMENT_END
|
||||
row.size_flags_horizontal = Control.SIZE_EXPAND_FILL
|
||||
row.add_theme_constant_override("separation", 0)
|
||||
|
||||
var chips_in_row := mini(effective_per_row, max_value - chips_laid_out)
|
||||
var filled_in_row := mini(filled_remaining, chips_in_row)
|
||||
var empty_in_row := chips_in_row - filled_in_row
|
||||
|
||||
for i in empty_in_row:
|
||||
var tex_rect := TextureRect.new()
|
||||
tex_rect.texture = empty_chip_texture
|
||||
row.add_child(tex_rect)
|
||||
for i in filled_in_row:
|
||||
var tex_rect := TextureRect.new()
|
||||
tex_rect.texture = filled_chip_texture
|
||||
row.add_child(tex_rect)
|
||||
|
||||
filled_remaining -= filled_in_row
|
||||
chips_laid_out += chips_in_row
|
||||
_container.add_child(row)
|
||||
1
scripts/ui/chip_bar.gd.uid
Normal file
1
scripts/ui/chip_bar.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://cvmmsm13nyr62
|
||||
34
scripts/ui/contiguous_bar.gd
Normal file
34
scripts/ui/contiguous_bar.gd
Normal file
@@ -0,0 +1,34 @@
|
||||
@tool
|
||||
class_name ContiguousBar extends Control
|
||||
|
||||
@onready var fill: NinePatchRect = $Fill
|
||||
|
||||
@export var value: int:
|
||||
set(v):
|
||||
value = v
|
||||
_refresh()
|
||||
|
||||
@export var max_value: int:
|
||||
set(v):
|
||||
max_value = v
|
||||
_refresh()
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
_refresh()
|
||||
|
||||
|
||||
func _refresh() -> void:
|
||||
if fill == null:
|
||||
return
|
||||
var ratio := 0.0
|
||||
if max_value > 0:
|
||||
ratio = clampf(float(value) / float(max_value), 0.0, 1.0)
|
||||
fill.anchor_top = 0.0
|
||||
fill.anchor_bottom = 1.0
|
||||
fill.anchor_right = 1.0
|
||||
fill.anchor_left = 1.0 - ratio
|
||||
fill.offset_top = 1.0
|
||||
fill.offset_bottom = -1.0
|
||||
fill.offset_right = -1.0
|
||||
fill.offset_left = 2.0 * ratio - 1.0
|
||||
1
scripts/ui/contiguous_bar.gd.uid
Normal file
1
scripts/ui/contiguous_bar.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://cb32ywwuyi706
|
||||
44
scripts/ui/stylized_number_display.gd
Normal file
44
scripts/ui/stylized_number_display.gd
Normal file
@@ -0,0 +1,44 @@
|
||||
class_name StylizedNumberDisplay extends Control
|
||||
|
||||
@export var sprite_sheet: AtlasTexture
|
||||
@export var number_sprite_width: int
|
||||
@export var number_sprite_height: int
|
||||
@export var value: int = 0:
|
||||
set(v):
|
||||
value = v
|
||||
if is_node_ready():
|
||||
_refresh()
|
||||
|
||||
@onready var _container: HBoxContainer = %HBoxContainer
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
_refresh()
|
||||
|
||||
|
||||
func _get_minimum_size() -> Vector2:
|
||||
var digit_count := str(absi(value)).length()
|
||||
var spacing: int = _container.get_theme_constant("separation") if is_node_ready() else 0
|
||||
var total_width: int = digit_count * number_sprite_width + maxi(digit_count - 1, 0) * spacing
|
||||
return Vector2(total_width, number_sprite_height)
|
||||
|
||||
|
||||
func _refresh() -> void:
|
||||
for child in _container.get_children():
|
||||
child.queue_free()
|
||||
|
||||
var digits := str(absi(value))
|
||||
for i in digits.length():
|
||||
var digit := digits[i].to_int()
|
||||
var atlas_tex := AtlasTexture.new()
|
||||
atlas_tex.atlas = sprite_sheet.atlas
|
||||
atlas_tex.region = Rect2(
|
||||
sprite_sheet.region.position.x + digit * number_sprite_width,
|
||||
sprite_sheet.region.position.y,
|
||||
number_sprite_width,
|
||||
number_sprite_height,
|
||||
)
|
||||
var tex_rect := TextureRect.new()
|
||||
tex_rect.texture = atlas_tex
|
||||
_container.add_child(tex_rect)
|
||||
update_minimum_size()
|
||||
1
scripts/ui/stylized_number_display.gd.uid
Normal file
1
scripts/ui/stylized_number_display.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://biud4ob4h0rrs
|
||||
@@ -13,3 +13,6 @@ class_name UnitStats extends Resource
|
||||
@export var eva: int = 1
|
||||
@export var lck: int = 1
|
||||
@export var mov: int = 3
|
||||
|
||||
@export var level: int = 1
|
||||
@export var experience: int = 0
|
||||
|
||||
Reference in New Issue
Block a user