1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-27 22:41:56 +08:00

feat(UI): 添加技能图标显示功能

在UI中添加技能图标容器,并为每个武器创建对应的技能图标
初始化武器冷却计时器,修复武器冷却时间未设置的问题
This commit is contained in:
2025-09-06 15:24:50 +08:00
parent e4d04ff599
commit 4d8969c47d
5 changed files with 30 additions and 3 deletions
+20 -1
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=19 format=3 uid="uid://dfwg750a47ggx"]
[gd_scene load_steps=20 format=3 uid="uid://dfwg750a47ggx"]
[ext_resource type="PackedScene" uid="uid://ofpg5s3j7esv" path="res://components/UI/BossBar.tscn" id="1_2pe58"]
[ext_resource type="Script" path="res://scripts/Statemachine/UIState.gd" id="1_f00a6"]
@@ -106,6 +106,9 @@ _data = {
"show": SubResource("Animation_2xajo")
}
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_12otr"]
content_margin_right = 10.0
[node name="UI" type="CanvasLayer"]
process_mode = 3
script = ExtResource("1_f00a6")
@@ -239,6 +242,22 @@ libraries = {
"": SubResource("AnimationLibrary_37e4s")
}
[node name="skills" type="PanelContainer" parent="root"]
layout_mode = 1
anchors_preset = 6
anchor_left = 1.0
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
offset_left = -10.0
grow_horizontal = 0
grow_vertical = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_12otr")
[node name="skillContainer" type="VBoxContainer" parent="root/skills"]
unique_name_in_owner = true
layout_mode = 2
[node name="itemCollect" type="VBoxContainer" parent="root"]
unique_name_in_owner = true
layout_mode = 1
+4
View File
@@ -111,6 +111,10 @@ func _ready():
else:
UIState.energyPercent.setCurrent(newEnergy)
)
for i in weapons:
var icon: SkillIcon = preload("res://components/Abstracts/SkillIconBase.tscn").instantiate()
icon.weapon = i
UIState.skillIconContainer.add_child(icon)
else:
currentFocusedBoss = get_tree().get_nodes_in_group("players")[0]
applyLevel()
+1
View File
@@ -1,4 +1,5 @@
extends PanelContainer
class_name SkillIcon
@export var weapon: Weapon = null;
+2
View File
@@ -13,12 +13,14 @@ static var currentPanel: FullscreenPanelBase = null
static var panels: Control
static var energyPercent: ColorBar
static var itemCollect: VBoxContainer
static var skillIconContainer: VBoxContainer
func _ready():
bossbar = $"%bossbar"
panels = $"%panels"
energyPercent = $"%percent"
itemCollect = $"%itemCollect"
skillIconContainer = $"%skillContainer"
func _process(_delta):
bossbar.visible = !!bossbar.entity
func _physics_process(_delta):
+3 -2
View File
@@ -27,16 +27,17 @@ class_name Weapon
@onready var updateButton: Button = $"%updateBtn"
@onready var sounds: Node2D = $"%sounds"
var cooldownTimer = CooldownTimer.new()
var cooldownTimer: CooldownTimer = null
var originalStore: Dictionary = {}
func _ready():
cooldownTimer = CooldownTimer.new()
cooldownTimer.cooldown = cooldown
originalStore = store
updateButton.pressed.connect(
func():
apply(UIState.player)
)
cooldownTimer.cooldown = cooldown
for i in sounds.get_children():
i.process_mode = ProcessMode.PROCESS_MODE_ALWAYS
rebuildInfo()