1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-30 07:51:54 +08:00
Files
Dog-Lynx-And-HCN/scripts/Statemachine/FeedName.gd
T
fallingshrimp 2ec3d535c7 feat(饲料系统): 实现基于品质权重的饲料卡牌生成逻辑
添加 ArrayTool 工具类用于数组操作
在 FeedName 中增加 weight 方法获取品质权重
修改 MakeFeed 的卡牌生成逻辑,根据品质权重进行随机选择
2025-08-28 09:36:01 +08:00

49 lines
1.1 KiB
GDScript

@tool
extends HBoxContainer
class_name FeedName
enum Quality {
WASTE,
COMMON,
RARE,
EPIC,
LEGENDARY,
}
@export var displayName: String = "未命名饲料"
@export var quality: Quality = Quality.COMMON
@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: 5,
Quality.COMMON: 50,
Quality.RARE: 10,
Quality.EPIC: 5,
Quality.LEGENDARY: 1
}
@onready var qualityLabel: Label = $"%quality"
@onready var nameLabel: RichTextLabel = $"%label"
func _ready():
qualityLabel.label_settings = qualityLabel.label_settings.duplicate()
func _physics_process(_delta):
qualityLabel.text = "[%s]" % qualityNameMap[quality]
qualityLabel.label_settings.font_color = color()
nameLabel.text = "[b]%s[/b]" % displayName
func color():
return qualityColorMap[quality] as Color
func weight() -> float:
return qualityRandomWeight[quality]