mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-06-04 02:37:12 +08:00
feat: 更新饲料和面板逻辑,添加香蕉饲料,重构UI组件和状态管理
This commit is contained in:
@@ -74,7 +74,7 @@ func move(direction: Vector2, isSprinting: bool = false):
|
||||
lastDirection = currentDirection
|
||||
func takeDamage(bullet: BulletBase, crit: bool):
|
||||
hurtAnimator.play("hurt")
|
||||
var baseDamage: float = bullet.fields.get(FieldStore.Bullet.DAMAGE) * randf_range(1 - GameRule.damageOffset, 1 + GameRule.damageOffset)
|
||||
var baseDamage: float = bullet.fields.get(FieldStore.Bullet.DAMAGE) * bullet.launcher.fields.get(FieldStore.Entity.DAMAGE_MULTIPILER) * randf_range(1 - GameRule.damageOffset, 1 + GameRule.damageOffset)
|
||||
var damage = baseDamage + baseDamage * int(crit) * fields.get(FieldStore.Entity.CRIT_DAMAGE)
|
||||
if sprinting:
|
||||
playSound("miss")
|
||||
|
||||
@@ -8,7 +8,7 @@ class_name FieldShow
|
||||
@onready var nameLabel: Label = $"%name"
|
||||
@onready var valueLabel: Label = $"%value"
|
||||
|
||||
func _physics_process(_delta):
|
||||
func _ready():
|
||||
nameLabel.text = FieldStore.entityMap[field]
|
||||
var formattedValue: String
|
||||
var dataType = FieldStore.entityMapType[field]
|
||||
|
||||
@@ -1 +1,25 @@
|
||||
@tool
|
||||
extends Control
|
||||
class_name FullscreenPanelBase
|
||||
|
||||
@onready var animator = $"%animator"
|
||||
|
||||
func hidePanel():
|
||||
animator.play("hide")
|
||||
await animator.animation_finished
|
||||
visible = false
|
||||
afterClose()
|
||||
func showPanel():
|
||||
beforeOpen()
|
||||
visible = true
|
||||
animator.play("show")
|
||||
await animator.animation_finished
|
||||
|
||||
func _ready():
|
||||
visible = false
|
||||
|
||||
# 钩子
|
||||
func beforeOpen():
|
||||
pass
|
||||
func afterClose():
|
||||
pass
|
||||
|
||||
@@ -8,6 +8,6 @@ class_name ItemShow
|
||||
@onready var avatarTexture: TextureRect = $"%avatar"
|
||||
@onready var countLabel: Label = $"%count"
|
||||
|
||||
func _physics_process(_delta: float):
|
||||
func _ready():
|
||||
avatarTexture.texture = ItemStore.getTexture(type)
|
||||
countLabel.text = str(count)
|
||||
|
||||
@@ -6,12 +6,29 @@ class_name UIState
|
||||
|
||||
static var player: EntityBase = null
|
||||
static var bossbar: EntityStateBar
|
||||
static var currentPanel: FullscreenPanelBase = null
|
||||
static var panels: Control
|
||||
|
||||
func _ready():
|
||||
bossbar = $"%bossbar"
|
||||
panels = $"%panels"
|
||||
func _process(_delta):
|
||||
bossbar.visible = !!bossbar.entity
|
||||
func _physics_process(_delta):
|
||||
if is_instance_valid(player):
|
||||
baseball.count = player.inventory[ItemStore.ItemType.BASEBALL]
|
||||
basketball.count = player.inventory[ItemStore.ItemType.BASKETBALL]
|
||||
if currentPanel:
|
||||
WorldManager.rootNode.process_mode = Node.PROCESS_MODE_DISABLED
|
||||
else:
|
||||
WorldManager.rootNode.process_mode = Node.PROCESS_MODE_INHERIT
|
||||
|
||||
static func setPanel(targetName: String = ""):
|
||||
currentPanel = null
|
||||
for panel in panels.get_children():
|
||||
if panel is FullscreenPanelBase:
|
||||
if panel.name == targetName:
|
||||
currentPanel = panel
|
||||
panel.showPanel()
|
||||
else:
|
||||
panel.hidePanel()
|
||||
|
||||
Reference in New Issue
Block a user