1
1
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:
2025-08-26 22:31:28 +08:00
parent 51fc904a6a
commit 739be888f3
15 changed files with 103 additions and 22 deletions
+1 -1
View File
@@ -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")
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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)
+17
View File
@@ -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()