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

feat(武器系统): 添加武器灵魂等级功能

- 在Weapon结构体中新增soulLevel属性
- 为WeaponName添加灵魂等级枚举和颜色映射
- 修改武器名称显示格式,加入灵魂等级前缀和颜色
- 移除WeaponCardBase的debugRebuild标志
This commit is contained in:
2025-09-19 22:21:32 +08:00
parent ec795e534e
commit be558bac02
4 changed files with 39 additions and 7 deletions
+25 -1
View File
@@ -15,10 +15,18 @@ enum TypeTopic {
TEMPERATURE,
MAGIC,
}
enum SoulLevel {
NORMALIZE,
ADD,
MULTIPLY,
EXPONENT,
INFINITY,
}
@export var displayName: String = "未命名武器"
@export var quality: Quality = Quality.COMMON
@export var typeTopic: TypeTopic = TypeTopic.IMPACT
@export var soulLevel: SoulLevel = SoulLevel.NORMALIZE
@export var level: int = 0
@export var qualityColorMap = {
Quality.WASTE: Color(),
@@ -60,6 +68,20 @@ enum TypeTopic {
TypeTopic.TEMPERATURE: Color(),
TypeTopic.MAGIC: Color(),
}
@export var soulLevelNameMap = {
SoulLevel.NORMALIZE: "归一",
SoulLevel.ADD: "数增",
SoulLevel.MULTIPLY: "倍乘",
SoulLevel.EXPONENT: "幂指",
SoulLevel.INFINITY: "无量",
}
@export var soulLevelColorMap = {
SoulLevel.NORMALIZE: Color(),
SoulLevel.ADD: Color(),
SoulLevel.MULTIPLY: Color(),
SoulLevel.EXPONENT: Color(),
SoulLevel.INFINITY: Color(),
}
@onready var qualityLabel: Label = $"%quality"
@onready var typeTopicLabel: Label = $"%typeTopic"
@@ -74,11 +96,13 @@ func _physics_process(_delta):
qualityLabel.label_settings.font_color = qualityColor()
typeTopicLabel.text = "[%s]" % typeTopicNameMap[typeTopic]
typeTopicLabel.label_settings.font_color = typeTopicColor()
nameLabel.text = "[b]%s[/b]" % displayName
nameLabel.text = "[b][color=%s]%s[/color] · %s[/b]" % [soulLevelColor().to_html(), soulLevelNameMap[soulLevel], displayName]
levelLabel.text = "[b]Lv.%d[/b]" % (level + 1)
func qualityColor():
return qualityColorMap[quality] as Color
func typeTopicColor():
return typeTopicColorMap[typeTopic] as Color
func soulLevelColor():
return soulLevelColorMap[soulLevel] as Color
func weight(player: EntityBase) -> int:
return floor(clamp(qualityRandomWeight[quality] + luckInfluence[quality] * player.fields[FieldStore.Entity.LUCK_VALUE], 1, INF))