1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 06:51:54 +08:00
Files
Dog-Lynx-And-HCN/scripts/Tools/FieldStore.gd
T

95 lines
2.4 KiB
GDScript
Raw Normal View History

@tool
class_name FieldStore
enum DataType {
VALUE,
PERCENT,
ANGLE
}
enum Entity {
MAX_HEALTH,
DAMAGE_MULTIPILER,
MOVEMENT_SPEED,
ATTACK_SPEED,
CRIT_RATE,
CRIT_DAMAGE,
PENERATE,
OFFSET_SHOOT,
HEAL_ABILITY,
EXTRA_APPLE_MAX,
ENERGY_MULTIPILER,
PENARATION_RESISTANCE,
PRICE_REDUCTION,
EXTRA_BULLET_COUNT,
DROP_APPLE_RATE,
FEED_COUNT_SHOW,
FEED_COUNT_CAN_MADE,
MAX_ENERGY
}
static var entityMap = {
Entity.MAX_HEALTH: "生命上限",
Entity.DAMAGE_MULTIPILER: "伤害倍率",
Entity.MOVEMENT_SPEED: "移动速度",
Entity.ATTACK_SPEED: "攻击速度",
Entity.CRIT_RATE: "暴击率",
Entity.CRIT_DAMAGE: "暴击伤害",
Entity.PENERATE: "穿透",
Entity.OFFSET_SHOOT: "散射角",
Entity.HEAL_ABILITY: "治疗量",
Entity.EXTRA_APPLE_MAX: "苹果上限",
Entity.ENERGY_MULTIPILER: "能量倍率",
Entity.PENARATION_RESISTANCE: "穿透抗性",
Entity.PRICE_REDUCTION: "饲料降价",
Entity.EXTRA_BULLET_COUNT: "额外子弹",
Entity.DROP_APPLE_RATE: "苹果掉落率",
Entity.FEED_COUNT_SHOW: "可选饲料数量",
Entity.FEED_COUNT_CAN_MADE: "可制作饲料数量",
Entity.MAX_ENERGY: "能量上限"
}
static var entityMapType = {
Entity.MAX_HEALTH: DataType.VALUE,
Entity.DAMAGE_MULTIPILER: DataType.PERCENT,
Entity.MOVEMENT_SPEED: DataType.PERCENT,
Entity.ATTACK_SPEED: DataType.PERCENT,
Entity.CRIT_RATE: DataType.PERCENT,
Entity.CRIT_DAMAGE: DataType.PERCENT,
Entity.PENERATE: DataType.PERCENT,
Entity.OFFSET_SHOOT: DataType.ANGLE,
Entity.HEAL_ABILITY: DataType.PERCENT,
Entity.EXTRA_APPLE_MAX: DataType.VALUE,
Entity.ENERGY_MULTIPILER: DataType.PERCENT,
Entity.PENARATION_RESISTANCE: DataType.PERCENT,
Entity.PRICE_REDUCTION: DataType.PERCENT,
Entity.EXTRA_BULLET_COUNT: DataType.VALUE,
Entity.DROP_APPLE_RATE: DataType.PERCENT,
Entity.FEED_COUNT_SHOW: DataType.VALUE,
Entity.FEED_COUNT_CAN_MADE: DataType.VALUE,
Entity.MAX_ENERGY: DataType.VALUE
}
static var entityApplier = {
Entity.MAX_HEALTH: func(entity, value):
entity.health += value
,
Entity.EXTRA_APPLE_MAX: func(entity, value):
entity.inventoryMax[ItemStore.ItemType.APPLE] += value
,
Entity.EXTRA_BULLET_COUNT: func(entity, value):
2025-08-27 21:20:58 +08:00
entity.fields[Entity.OFFSET_SHOOT] += value * 2
,
}
enum Bullet {
SPEED,
DAMAGE,
PENERATE
}
static var bulletMap = {
Bullet.SPEED: "速度",
Bullet.DAMAGE: "伤害",
Bullet.PENERATE: "穿透"
}
static var bulletMapType = {
Bullet.SPEED: DataType.VALUE,
Bullet.DAMAGE: DataType.VALUE,
Bullet.PENERATE: DataType.PERCENT
}