1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-06-10 13:47:12 +08:00

feat: 添加团子猫饲料和能量系统改进

- 新增团子猫饲料资源及配置
- 扩展FieldStore枚举添加节能和能量再生效率
- 改进EntityBase能量存储和使用逻辑
- 添加WorldManager运行时间追踪功能
This commit is contained in:
2025-08-29 10:26:41 +08:00
parent 7c863402bb
commit 506f0b0924
6 changed files with 80 additions and 6 deletions
+9 -4
View File
@@ -26,13 +26,17 @@ var fields = {
FieldStore.Entity.DROP_APPLE_RATE: 0,
FieldStore.Entity.PENARATION_RESISTANCE: 0,
FieldStore.Entity.LUCK_VALUE: 1,
# 倍率
# 治疗
FieldStore.Entity.HEAL_ABILITY: 1,
FieldStore.Entity.ENERGY_MULTIPILER: 1,
# 价格减免
FieldStore.Entity.PRICE_REDUCTION: 0,
# 饲料
FieldStore.Entity.FEED_COUNT_SHOW: 3,
FieldStore.Entity.FEED_COUNT_CAN_MADE: 1,
# 储能
FieldStore.Entity.ENERGY_MULTIPILER: 1,
FieldStore.Entity.SAVE_ENERGY: 1,
FieldStore.Entity.ENERGY_REGENERATION: 1,
}
var inventory = {
ItemStore.ItemType.BASEBALL: 100,
@@ -42,7 +46,7 @@ var inventory = {
var inventoryMax = {
ItemStore.ItemType.BASEBALL: INF, # 无限
ItemStore.ItemType.BASKETBALL: INF,
ItemStore.ItemType.APPLE: 10, # 最多10个苹果
ItemStore.ItemType.APPLE: 5, # 最多5个苹果
}
@export var cooldownUnit: float = 100 # 100毫秒每次攻击
@@ -121,7 +125,7 @@ func _physics_process(_delta: float) -> void:
if isPlayer() or is_instance_valid(currentFocusedBoss):
ai()
move_and_slide()
storeEnergy(0.01)
storeEnergy(0.01 * fields.get(FieldStore.Entity.ENERGY_REGENERATION))
# 通用方法
func applyLevel():
@@ -165,6 +169,7 @@ func storeEnergy(value: float):
energy += value * fields.get(FieldStore.Entity.ENERGY_MULTIPILER)
energyChanged.emit(energy)
func useEnergy(value: float):
value /= fields.get(FieldStore.Entity.SAVE_ENERGY)
var state = energy >= value
if state:
energy -= value
+7 -1
View File
@@ -26,6 +26,8 @@ enum Entity {
FEED_COUNT_CAN_MADE,
MAX_ENERGY,
LUCK_VALUE,
SAVE_ENERGY,
ENERGY_REGENERATION,
}
static var entityMap = {
Entity.MAX_HEALTH: "生命上限",
@@ -38,7 +40,7 @@ static var entityMap = {
Entity.OFFSET_SHOOT: "散射角",
Entity.HEAL_ABILITY: "治疗量",
Entity.EXTRA_APPLE_MAX: "苹果上限",
Entity.ENERGY_MULTIPILER: "倍率",
Entity.ENERGY_MULTIPILER: "能倍率",
Entity.PENARATION_RESISTANCE: "穿透抗性",
Entity.PRICE_REDUCTION: "饲料降价",
Entity.EXTRA_BULLET_COUNT: "额外子弹",
@@ -47,6 +49,8 @@ static var entityMap = {
Entity.FEED_COUNT_CAN_MADE: "可制作饲料",
Entity.MAX_ENERGY: "能量上限",
Entity.LUCK_VALUE: "幸运值",
Entity.SAVE_ENERGY: "节能",
Entity.ENERGY_REGENERATION: "能量再生效率",
}
static var entityMapType = {
Entity.MAX_HEALTH: DataType.VALUE,
@@ -68,6 +72,8 @@ static var entityMapType = {
Entity.FEED_COUNT_CAN_MADE: DataType.VALUE,
Entity.MAX_ENERGY: DataType.VALUE,
Entity.LUCK_VALUE: DataType.VALUE,
Entity.SAVE_ENERGY: DataType.PERCENT,
Entity.ENERGY_REGENERATION: DataType.PERCENT,
}
static var entityMaxValueMap = {
Entity.CRIT_RATE: 1,
+6 -1
View File
@@ -3,10 +3,15 @@ class_name WorldManager
static var rootNode: Node2D
static var tree: SceneTree
static var runningTime: float = 0
func _ready():
tree = get_tree()
rootNode = self
func _physics_process(_delta):
func _physics_process(delta):
runningTime += delta
if EntityBase.mobCount() == 0:
UIState.setPanel("MakeFeed")
static func getTime():
return runningTime