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:
@@ -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
|
||||
|
||||
@@ -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,4 +1,5 @@
|
||||
extends PanelContainer
|
||||
class_name SkillIcon
|
||||
|
||||
@export var weapon: Weapon = null;
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user