mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-27 22:41:56 +08:00
0fe8daabb2
修改多处代码和文档中的"饲料"为"增益",包括UI显示、类别存储、实体属性和游戏详情说明,保持术语一致性
80 lines
2.8 KiB
GDScript
80 lines
2.8 KiB
GDScript
@tool
|
|
extends HBoxContainer
|
|
class_name FeedName
|
|
|
|
@export var displayName: String = "未命名"
|
|
@export var quality: CategoryStore.Quality = CategoryStore.Quality.COMMON
|
|
@export var topic: CategoryStore.Topic = CategoryStore.Topic.SURVIVAL
|
|
@export var qualityColorMap = {
|
|
CategoryStore.Quality.WASTE: Color(),
|
|
CategoryStore.Quality.COMMON: Color(),
|
|
CategoryStore.Quality.RARE: Color(),
|
|
CategoryStore.Quality.EPIC: Color(),
|
|
CategoryStore.Quality.LEGENDARY: Color()
|
|
}
|
|
@export var qualityNameMap = {
|
|
CategoryStore.Quality.WASTE: "常见",
|
|
CategoryStore.Quality.COMMON: "普通",
|
|
CategoryStore.Quality.RARE: "稀有",
|
|
CategoryStore.Quality.EPIC: "史诗",
|
|
CategoryStore.Quality.LEGENDARY: "传说"
|
|
}
|
|
@export var qualityRandomWeight = {
|
|
CategoryStore.Quality.WASTE: 20,
|
|
CategoryStore.Quality.COMMON: 100,
|
|
CategoryStore.Quality.RARE: 30,
|
|
CategoryStore.Quality.EPIC: 10,
|
|
CategoryStore.Quality.LEGENDARY: 5
|
|
}
|
|
@export var luckInfluence = {
|
|
CategoryStore.Quality.WASTE: - 0.5,
|
|
CategoryStore.Quality.COMMON: - 1,
|
|
CategoryStore.Quality.RARE: 0,
|
|
CategoryStore.Quality.EPIC: 1,
|
|
CategoryStore.Quality.LEGENDARY: 2,
|
|
}
|
|
@export var topicNameMap = {
|
|
CategoryStore.Topic.SURVIVAL: "生存",
|
|
CategoryStore.Topic.ENERGY: "能量",
|
|
CategoryStore.Topic.BULLET: "子弹",
|
|
CategoryStore.Topic.SPEED: "速度",
|
|
CategoryStore.Topic.DAMAGE: "伤害",
|
|
CategoryStore.Topic.PROBABILITY: "幸运",
|
|
CategoryStore.Topic.FEED: "增益",
|
|
CategoryStore.Topic.DROP: "掉落物",
|
|
CategoryStore.Topic.WEAPON: "武器",
|
|
CategoryStore.Topic.SUMMON: "召唤",
|
|
}
|
|
@export var topicColorMap = {
|
|
CategoryStore.Topic.SURVIVAL: Color(),
|
|
CategoryStore.Topic.ENERGY: Color(),
|
|
CategoryStore.Topic.BULLET: Color(),
|
|
CategoryStore.Topic.SPEED: Color(),
|
|
CategoryStore.Topic.DAMAGE: Color(),
|
|
CategoryStore.Topic.PROBABILITY: Color(),
|
|
CategoryStore.Topic.FEED: Color(),
|
|
CategoryStore.Topic.DROP: Color(),
|
|
CategoryStore.Topic.WEAPON: Color(),
|
|
CategoryStore.Topic.SUMMON: Color(),
|
|
}
|
|
|
|
@onready var qualityLabel: Label = $"%quality"
|
|
@onready var topicLabel: Label = $"%topic"
|
|
@onready var nameLabel: RichTextLabel = $"%label"
|
|
|
|
func _ready():
|
|
qualityLabel.label_settings = qualityLabel.label_settings.duplicate()
|
|
topicLabel.label_settings = topicLabel.label_settings.duplicate()
|
|
func _physics_process(_delta):
|
|
qualityLabel.text = "[%s]" % qualityNameMap[quality]
|
|
qualityLabel.label_settings.font_color = qualityColor()
|
|
topicLabel.text = "[%s]" % topicNameMap[topic]
|
|
topicLabel.label_settings.font_color = topicColor()
|
|
nameLabel.text = "[b]%s[/b]" % displayName
|
|
func qualityColor():
|
|
return qualityColorMap[quality] as Color
|
|
func topicColor():
|
|
return topicColorMap[topic] as Color
|
|
func weight(player: EntityBase) -> int:
|
|
return floor(clamp(qualityRandomWeight[quality] + luckInfluence[quality] * player.fields[FieldStore.Entity.LUCK_VALUE], 1, INF))
|