mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-27 22:41:56 +08:00
f13468bc0a
- 修改HJM和LGBTFlag的吸引力数值 - 为武器类型枚举添加SUMMON选项 - 优化召唤逻辑,当达到上限时移除最早召唤物 - 调整Shield武器的属性和描述 - 更新Rooster角色的武器配置 - 修复LGBTFlag攻击角度计算问题
112 lines
2.9 KiB
GDScript
112 lines
2.9 KiB
GDScript
@tool
|
|
extends HBoxContainer
|
|
class_name WeaponName
|
|
|
|
enum Quality {
|
|
WASTE,
|
|
COMMON,
|
|
RARE,
|
|
EPIC,
|
|
LEGENDARY,
|
|
}
|
|
enum TypeTopic {
|
|
IMPACT,
|
|
ENERGY,
|
|
TEMPERATURE,
|
|
MAGIC,
|
|
SUMMON
|
|
}
|
|
enum SoulLevel {
|
|
NORMALIZE = 1,
|
|
ADD = 2,
|
|
MULTIPLY = 3,
|
|
EXPONENT = 4,
|
|
INFINITY = 5,
|
|
}
|
|
|
|
@export var displayName: String = "未命名武器"
|
|
@export var quality: Quality = Quality.COMMON
|
|
@export var typeTopic: TypeTopic = TypeTopic.IMPACT
|
|
@export var soulLevel: int = SoulLevel.NORMALIZE
|
|
@export var level: int = 0
|
|
@export var qualityColorMap = {
|
|
Quality.WASTE: Color(),
|
|
Quality.COMMON: Color(),
|
|
Quality.RARE: Color(),
|
|
Quality.EPIC: Color(),
|
|
Quality.LEGENDARY: Color()
|
|
}
|
|
@export var qualityNameMap = {
|
|
Quality.WASTE: "常见",
|
|
Quality.COMMON: "普通",
|
|
Quality.RARE: "稀有",
|
|
Quality.EPIC: "史诗",
|
|
Quality.LEGENDARY: "传说"
|
|
}
|
|
@export var qualityRandomWeight = {
|
|
Quality.WASTE: 20,
|
|
Quality.COMMON: 100,
|
|
Quality.RARE: 30,
|
|
Quality.EPIC: 10,
|
|
Quality.LEGENDARY: 5
|
|
}
|
|
@export var luckInfluence = {
|
|
Quality.WASTE: - 0.5,
|
|
Quality.COMMON: - 1,
|
|
Quality.RARE: 0,
|
|
Quality.EPIC: 1,
|
|
Quality.LEGENDARY: 2,
|
|
}
|
|
@export var typeTopicNameMap = {
|
|
TypeTopic.IMPACT: "冲击",
|
|
TypeTopic.ENERGY: "能量",
|
|
TypeTopic.TEMPERATURE: "熔融",
|
|
TypeTopic.MAGIC: "魔法",
|
|
TypeTopic.SUMMON: "召唤",
|
|
}
|
|
@export var typeTopicColorMap = {
|
|
TypeTopic.IMPACT: Color(),
|
|
TypeTopic.ENERGY: Color(),
|
|
TypeTopic.TEMPERATURE: Color(),
|
|
TypeTopic.MAGIC: Color(),
|
|
TypeTopic.SUMMON: 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"
|
|
@onready var nameLabel: RichTextLabel = $"%label"
|
|
@onready var levelLabel: RichTextLabel = $"%level"
|
|
|
|
func _ready():
|
|
qualityLabel.label_settings = qualityLabel.label_settings.duplicate()
|
|
typeTopicLabel.label_settings = typeTopicLabel.label_settings.duplicate()
|
|
func _physics_process(_delta):
|
|
qualityLabel.text = "[%s]" % qualityNameMap[quality]
|
|
qualityLabel.label_settings.font_color = qualityColor()
|
|
typeTopicLabel.text = "[%s]" % typeTopicNameMap[typeTopic]
|
|
typeTopicLabel.label_settings.font_color = typeTopicColor()
|
|
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))
|