mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-07-03 16:52:13 +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="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"]
|
[ext_resource type="Script" path="res://scripts/Statemachine/UIState.gd" id="1_f00a6"]
|
||||||
@@ -106,6 +106,9 @@ _data = {
|
|||||||
"show": SubResource("Animation_2xajo")
|
"show": SubResource("Animation_2xajo")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_12otr"]
|
||||||
|
content_margin_right = 10.0
|
||||||
|
|
||||||
[node name="UI" type="CanvasLayer"]
|
[node name="UI" type="CanvasLayer"]
|
||||||
process_mode = 3
|
process_mode = 3
|
||||||
script = ExtResource("1_f00a6")
|
script = ExtResource("1_f00a6")
|
||||||
@@ -239,6 +242,22 @@ libraries = {
|
|||||||
"": SubResource("AnimationLibrary_37e4s")
|
"": 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"]
|
[node name="itemCollect" type="VBoxContainer" parent="root"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
|
|||||||
@@ -111,6 +111,10 @@ func _ready():
|
|||||||
else:
|
else:
|
||||||
UIState.energyPercent.setCurrent(newEnergy)
|
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:
|
else:
|
||||||
currentFocusedBoss = get_tree().get_nodes_in_group("players")[0]
|
currentFocusedBoss = get_tree().get_nodes_in_group("players")[0]
|
||||||
applyLevel()
|
applyLevel()
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
extends PanelContainer
|
extends PanelContainer
|
||||||
|
class_name SkillIcon
|
||||||
|
|
||||||
@export var weapon: Weapon = null;
|
@export var weapon: Weapon = null;
|
||||||
|
|
||||||
|
|||||||
@@ -13,12 +13,14 @@ static var currentPanel: FullscreenPanelBase = null
|
|||||||
static var panels: Control
|
static var panels: Control
|
||||||
static var energyPercent: ColorBar
|
static var energyPercent: ColorBar
|
||||||
static var itemCollect: VBoxContainer
|
static var itemCollect: VBoxContainer
|
||||||
|
static var skillIconContainer: VBoxContainer
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
bossbar = $"%bossbar"
|
bossbar = $"%bossbar"
|
||||||
panels = $"%panels"
|
panels = $"%panels"
|
||||||
energyPercent = $"%percent"
|
energyPercent = $"%percent"
|
||||||
itemCollect = $"%itemCollect"
|
itemCollect = $"%itemCollect"
|
||||||
|
skillIconContainer = $"%skillContainer"
|
||||||
func _process(_delta):
|
func _process(_delta):
|
||||||
bossbar.visible = !!bossbar.entity
|
bossbar.visible = !!bossbar.entity
|
||||||
func _physics_process(_delta):
|
func _physics_process(_delta):
|
||||||
|
|||||||
@@ -27,16 +27,17 @@ class_name Weapon
|
|||||||
@onready var updateButton: Button = $"%updateBtn"
|
@onready var updateButton: Button = $"%updateBtn"
|
||||||
@onready var sounds: Node2D = $"%sounds"
|
@onready var sounds: Node2D = $"%sounds"
|
||||||
|
|
||||||
var cooldownTimer = CooldownTimer.new()
|
var cooldownTimer: CooldownTimer = null
|
||||||
var originalStore: Dictionary = {}
|
var originalStore: Dictionary = {}
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
|
cooldownTimer = CooldownTimer.new()
|
||||||
|
cooldownTimer.cooldown = cooldown
|
||||||
originalStore = store
|
originalStore = store
|
||||||
updateButton.pressed.connect(
|
updateButton.pressed.connect(
|
||||||
func():
|
func():
|
||||||
apply(UIState.player)
|
apply(UIState.player)
|
||||||
)
|
)
|
||||||
cooldownTimer.cooldown = cooldown
|
|
||||||
for i in sounds.get_children():
|
for i in sounds.get_children():
|
||||||
i.process_mode = ProcessMode.PROCESS_MODE_ALWAYS
|
i.process_mode = ProcessMode.PROCESS_MODE_ALWAYS
|
||||||
rebuildInfo()
|
rebuildInfo()
|
||||||
|
|||||||
Reference in New Issue
Block a user