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/Statemachine/WeaponName.gd
T
fallingshrimp d4501ae45d feat: 添加新武器彩虹旗和紫水晶簇,调整饲料属性和数值
refactor: 重构子弹生成逻辑,支持分裂和折射效果

fix: 修复掉落物拾取范围和碰撞检测问题

style: 优化UI显示,添加武器品质和类型标签

docs: 更新字段描述,调整部分饲料名称和分类

perf: 优化数学工具函数,添加随机数处理工具

test: 调整波次生成逻辑,添加新敌人类型

build: 添加新资源文件和相关导入配置
2025-09-05 22:23:41 +08:00

79 lines
2.0 KiB
GDScript

@tool
extends HBoxContainer
class_name WeaponName
enum Quality {
WASTE,
COMMON,
RARE,
EPIC,
LEGENDARY,
}
enum TypeTopic {
IMPACT,
ENERGY,
TEMPERATURE,
}
@export var displayName: String = "未命名武器"
@export var quality: Quality = Quality.COMMON
@export var typeTopic: TypeTopic = TypeTopic.IMPACT
@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: "熔融",
}
@export var typeTopicColorMap = {
TypeTopic.IMPACT: Color(),
TypeTopic.ENERGY: Color(),
TypeTopic.TEMPERATURE: Color(),
}
@onready var qualityLabel: Label = $"%quality"
@onready var typeTopicLabel: Label = $"%typeTopic"
@onready var nameLabel: RichTextLabel = $"%label"
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]%s[/b]" % displayName
func qualityColor():
return qualityColorMap[quality] as Color
func typeTopicColor():
return typeTopicColorMap[typeTopic] as Color
func weight(player: EntityBase) -> int:
return floor(clamp(qualityRandomWeight[quality] + luckInfluence[quality] * player.fields[FieldStore.Entity.LUCK_VALUE], 1, INF))