Compare commits
4 Commits
834d6a3a83
...
31a787a7f0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
31a787a7f0 | ||
|
|
f332771153 | ||
|
|
2d74e15006 | ||
|
|
6d9d08d78c |
@@ -11,4 +11,5 @@
|
|||||||
* Fog of war
|
* Fog of war
|
||||||
* Basic map editor (test map data will be harder to craft the more we add)
|
* Basic map editor (test map data will be harder to craft the more we add)
|
||||||
* Start plugging in the Himegari UI
|
* Start plugging in the Himegari UI
|
||||||
|
* Unit panel needs fixed width number boxes, difference between digits causes UI jumps now
|
||||||
* Dialog boxes
|
* Dialog boxes
|
||||||
@@ -11,13 +11,11 @@ grow_horizontal = 2
|
|||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
script = ExtResource("1_3whrn")
|
script = ExtResource("1_3whrn")
|
||||||
|
|
||||||
[node name="HFlowContainer" type="HFlowContainer" parent="." unique_id=185867767]
|
[node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=185867767]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
theme_override_constants/h_separation = 0
|
theme_override_constants/separation = 0
|
||||||
theme_override_constants/v_separation = 0
|
|
||||||
alignment = 2
|
|
||||||
|
|||||||
@@ -303,7 +303,7 @@ offset_bottom = 26.0
|
|||||||
size_flags_horizontal = 8
|
size_flags_horizontal = 8
|
||||||
texture = SubResource("AtlasTexture_3wejr")
|
texture = SubResource("AtlasTexture_3wejr")
|
||||||
|
|
||||||
[node name="Items" type="HBoxContainer" parent="UIBase/UnitPanel/TextureRect" unique_id=828992814]
|
[node name="UnitLevel" type="HBoxContainer" parent="UIBase/UnitPanel/TextureRect" unique_id=828992814]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 3
|
anchors_preset = 3
|
||||||
anchor_left = 1.0
|
anchor_left = 1.0
|
||||||
@@ -315,16 +315,17 @@ offset_top = -20.0
|
|||||||
grow_horizontal = 0
|
grow_horizontal = 0
|
||||||
grow_vertical = 0
|
grow_vertical = 0
|
||||||
|
|
||||||
[node name="Spacer" type="Control" parent="UIBase/UnitPanel/TextureRect/Items" unique_id=1068603879]
|
[node name="Spacer" type="Control" parent="UIBase/UnitPanel/TextureRect/UnitLevel" unique_id=1068603879]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
[node name="Label" type="TextureRect" parent="UIBase/UnitPanel/TextureRect/Items" unique_id=1299333906]
|
[node name="Label" type="TextureRect" parent="UIBase/UnitPanel/TextureRect/UnitLevel" unique_id=1299333906]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_vertical = 8
|
size_flags_vertical = 8
|
||||||
texture = SubResource("AtlasTexture_uh1k2")
|
texture = SubResource("AtlasTexture_uh1k2")
|
||||||
|
|
||||||
[node name="StylizedNumberDisplay" parent="UIBase/UnitPanel/TextureRect/Items" unique_id=702997768 instance=ExtResource("5_55shj")]
|
[node name="LevelNumber" parent="UIBase/UnitPanel/TextureRect/UnitLevel" unique_id=702997768 instance=ExtResource("5_55shj")]
|
||||||
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
sprite_sheet = SubResource("AtlasTexture_yayqj")
|
sprite_sheet = SubResource("AtlasTexture_yayqj")
|
||||||
number_sprite_width = 27
|
number_sprite_width = 27
|
||||||
@@ -333,9 +334,9 @@ value = 12
|
|||||||
|
|
||||||
[node name="UnitHealth" type="HBoxContainer" parent="UIBase/UnitPanel" unique_id=53239936]
|
[node name="UnitHealth" type="HBoxContainer" parent="UIBase/UnitPanel" unique_id=53239936]
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
offset_left = 1.0
|
offset_left = -127.0
|
||||||
offset_top = 103.0
|
offset_top = 103.0
|
||||||
offset_right = 225.0
|
offset_right = 253.0
|
||||||
offset_bottom = 131.0
|
offset_bottom = 131.0
|
||||||
alignment = 2
|
alignment = 2
|
||||||
|
|
||||||
@@ -344,6 +345,7 @@ unique_name_in_owner = true
|
|||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 4
|
size_flags_vertical = 4
|
||||||
|
max_chips_per_row = 100
|
||||||
empty_chip_texture = SubResource("AtlasTexture_eskga")
|
empty_chip_texture = SubResource("AtlasTexture_eskga")
|
||||||
filled_chip_texture = SubResource("AtlasTexture_14b7f")
|
filled_chip_texture = SubResource("AtlasTexture_14b7f")
|
||||||
|
|
||||||
@@ -364,7 +366,7 @@ number_sprite_height = 15
|
|||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
offset_left = 1.0
|
offset_left = 1.0
|
||||||
offset_top = 133.0
|
offset_top = 133.0
|
||||||
offset_right = 225.0
|
offset_right = 249.0
|
||||||
offset_bottom = 151.0
|
offset_bottom = 151.0
|
||||||
|
|
||||||
[node name="SPChipBar" parent="UIBase/UnitPanel/UnitSP" unique_id=374103132 instance=ExtResource("6_gqe5k")]
|
[node name="SPChipBar" parent="UIBase/UnitPanel/UnitSP" unique_id=374103132 instance=ExtResource("6_gqe5k")]
|
||||||
@@ -372,6 +374,7 @@ unique_name_in_owner = true
|
|||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 4
|
size_flags_vertical = 4
|
||||||
|
max_chips_per_row = 100
|
||||||
empty_chip_texture = SubResource("AtlasTexture_yhw6j")
|
empty_chip_texture = SubResource("AtlasTexture_yhw6j")
|
||||||
filled_chip_texture = SubResource("AtlasTexture_kdblo")
|
filled_chip_texture = SubResource("AtlasTexture_kdblo")
|
||||||
|
|
||||||
@@ -392,7 +395,7 @@ number_sprite_height = 15
|
|||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
offset_left = 1.0
|
offset_left = 1.0
|
||||||
offset_top = 160.0
|
offset_top = 160.0
|
||||||
offset_right = 225.0
|
offset_right = 249.0
|
||||||
offset_bottom = 178.0
|
offset_bottom = 178.0
|
||||||
|
|
||||||
[node name="FSChipBar" parent="UIBase/UnitPanel/UnitFS" unique_id=1380843979 instance=ExtResource("6_gqe5k")]
|
[node name="FSChipBar" parent="UIBase/UnitPanel/UnitFS" unique_id=1380843979 instance=ExtResource("6_gqe5k")]
|
||||||
@@ -400,6 +403,7 @@ unique_name_in_owner = true
|
|||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 4
|
size_flags_vertical = 4
|
||||||
|
max_chips_per_row = 100
|
||||||
empty_chip_texture = SubResource("AtlasTexture_kd55s")
|
empty_chip_texture = SubResource("AtlasTexture_kd55s")
|
||||||
filled_chip_texture = SubResource("AtlasTexture_alhr0")
|
filled_chip_texture = SubResource("AtlasTexture_alhr0")
|
||||||
|
|
||||||
@@ -415,3 +419,17 @@ size_flags_vertical = 0
|
|||||||
sprite_sheet = SubResource("AtlasTexture_ox7qj")
|
sprite_sheet = SubResource("AtlasTexture_ox7qj")
|
||||||
number_sprite_width = 13
|
number_sprite_width = 13
|
||||||
number_sprite_height = 15
|
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
|
||||||
|
|||||||
@@ -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="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="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"]
|
[ext_resource type="Shader" uid="uid://bd8ki8xwym5nc" path="res://shaders/chroma_key.gdshader" id="3_fhs1y"]
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_on614"]
|
[sub_resource type="GDScript" id="GDScript_on614"]
|
||||||
resource_name = "UnitSelectorHandler"
|
resource_name = "UnitSelectorHandler"
|
||||||
script/source = "extends ColorRect
|
script/source = "extends ColorRect
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 463 KiB |
@@ -101,7 +101,7 @@ animations = [{
|
|||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": &"down",
|
"name": &"down",
|
||||||
"speed": 8.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
"duration": 1.0,
|
"duration": 1.0,
|
||||||
@@ -118,7 +118,7 @@ animations = [{
|
|||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": &"idle",
|
"name": &"idle",
|
||||||
"speed": 8.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
"duration": 1.0,
|
"duration": 1.0,
|
||||||
@@ -135,7 +135,7 @@ animations = [{
|
|||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": &"left",
|
"name": &"left",
|
||||||
"speed": 8.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
"duration": 1.0,
|
"duration": 1.0,
|
||||||
@@ -152,7 +152,7 @@ animations = [{
|
|||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": &"right",
|
"name": &"right",
|
||||||
"speed": 8.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
"duration": 1.0,
|
"duration": 1.0,
|
||||||
@@ -169,7 +169,7 @@ animations = [{
|
|||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": &"up",
|
"name": &"up",
|
||||||
"speed": 8.0
|
"speed": 5.0
|
||||||
}]
|
}]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ metadata/_custom_type_script = "uid://d37ulss2k0bq5"
|
|||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_nc6h6"]
|
[sub_resource type="Resource" id="Resource_nc6h6"]
|
||||||
script = ExtResource("5_rqhbp")
|
script = ExtResource("5_rqhbp")
|
||||||
max_hp = 20
|
max_hp = 156
|
||||||
metadata/_custom_type_script = "uid://cydoey8a8nmb8"
|
metadata/_custom_type_script = "uid://cydoey8a8nmb8"
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
|
|||||||
@@ -87,6 +87,7 @@ func _pressed() -> void:
|
|||||||
|
|
||||||
var player_unit: Unit = LILY_CHILD.duplicate(true)
|
var player_unit: Unit = LILY_CHILD.duplicate(true)
|
||||||
player_unit.allegiance = PLAYER_ALLEGIANCE
|
player_unit.allegiance = PLAYER_ALLEGIANCE
|
||||||
|
player_unit.stats.level = 68
|
||||||
combat_map.deploy_unit(player_unit, Vector2i(3, 3))
|
combat_map.deploy_unit(player_unit, Vector2i(3, 3))
|
||||||
|
|
||||||
var enemy_unit: Unit = LILY_CHILD.duplicate(true)
|
var enemy_unit: Unit = LILY_CHILD.duplicate(true)
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ signal fight_confirmed(proposal: CombatProposal)
|
|||||||
signal fight_cancelled
|
signal fight_cancelled
|
||||||
|
|
||||||
@onready var unit_panel: Control = %UnitPanel
|
@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_chip_bar: ChipBar = %HealthChipBar
|
||||||
@onready var health_number: StylizedNumberDisplay = %HealthNumber
|
@onready var health_number: StylizedNumberDisplay = %HealthNumber
|
||||||
@onready var sp_chip_bar: ChipBar = %SPChipBar
|
@onready var sp_chip_bar: ChipBar = %SPChipBar
|
||||||
@@ -82,6 +84,8 @@ func _on_unit_selected_changed(deployed: DeployedUnit, selected: bool) -> void:
|
|||||||
|
|
||||||
func _refresh_unit_panel() -> void:
|
func _refresh_unit_panel() -> void:
|
||||||
var stats := _selected_unit.current_stats
|
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.max_value = stats.max_hp
|
||||||
health_chip_bar.value = stats.current_hp
|
health_chip_bar.value = stats.current_hp
|
||||||
health_number.value = stats.current_hp
|
health_number.value = stats.current_hp
|
||||||
|
|||||||
@@ -33,6 +33,8 @@ var lck: int:
|
|||||||
get: return unit_stats.lck
|
get: return unit_stats.lck
|
||||||
var mov: int:
|
var mov: int:
|
||||||
get: return unit_stats.mov
|
get: return unit_stats.mov
|
||||||
|
var level: int:
|
||||||
|
get: return unit_stats.level
|
||||||
|
|
||||||
static func from_unit_stats(source: UnitStats) -> DeployedUnitStats:
|
static func from_unit_stats(source: UnitStats) -> DeployedUnitStats:
|
||||||
var stats := DeployedUnitStats.new()
|
var stats := DeployedUnitStats.new()
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ class_name ChipBar extends Control
|
|||||||
# The texture for a filled chip
|
# The texture for a filled chip
|
||||||
@export var filled_chip_texture: Texture2D
|
@export var filled_chip_texture: Texture2D
|
||||||
|
|
||||||
@onready var _container: HFlowContainer = $HFlowContainer
|
@onready var _container: VBoxContainer = $VBoxContainer
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
@@ -34,14 +34,35 @@ func _refresh() -> void:
|
|||||||
for child in _container.get_children():
|
for child in _container.get_children():
|
||||||
child.queue_free()
|
child.queue_free()
|
||||||
|
|
||||||
if filled_chip_texture and max_chips_per_row > 0:
|
if max_chips_per_row <= 0 or not filled_chip_texture:
|
||||||
var chip_width := filled_chip_texture.get_width()
|
return
|
||||||
_container.custom_minimum_size.x = chip_width * max_chips_per_row
|
|
||||||
|
|
||||||
for i in max_value:
|
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()
|
var tex_rect := TextureRect.new()
|
||||||
if i < value:
|
|
||||||
tex_rect.texture = filled_chip_texture
|
|
||||||
else:
|
|
||||||
tex_rect.texture = empty_chip_texture
|
tex_rect.texture = empty_chip_texture
|
||||||
_container.add_child(tex_rect)
|
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)
|
||||||
|
|||||||
@@ -13,3 +13,6 @@ class_name UnitStats extends Resource
|
|||||||
@export var eva: int = 1
|
@export var eva: int = 1
|
||||||
@export var lck: int = 1
|
@export var lck: int = 1
|
||||||
@export var mov: int = 3
|
@export var mov: int = 3
|
||||||
|
|
||||||
|
@export var level: int = 1
|
||||||
|
@export var experience: int = 0
|
||||||
|
|||||||
Reference in New Issue
Block a user