mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 06:51:54 +08:00
feat: 添加武器升华系统及相关UI组件
实现武器升华功能,包括: - 新增SublimateOption类处理升华选项 - 添加SublimateOptionHandler UI组件 - 在武器卡片中集成升华界面 - 重构武器描述生成逻辑 - 新增钻石资源消耗机制 - 优化UI布局和样式 - 修复多处类型引用错误
This commit is contained in:
@@ -68,7 +68,7 @@ var inventory = {
|
||||
ItemStore.ItemType.BEACHBALL: 0,
|
||||
ItemStore.ItemType.SOUL: 0,
|
||||
ItemStore.ItemType.CRYSTAL: 0,
|
||||
ItemStore.ItemType.DIAMOND: 0
|
||||
ItemStore.ItemType.DIAMOND: 10
|
||||
}
|
||||
var inventoryMax = {
|
||||
ItemStore.ItemType.BASEBALL: INF, # 无限
|
||||
|
||||
@@ -2,80 +2,60 @@
|
||||
extends HBoxContainer
|
||||
class_name FeedName
|
||||
|
||||
enum Quality {
|
||||
WASTE,
|
||||
COMMON,
|
||||
RARE,
|
||||
EPIC,
|
||||
LEGENDARY,
|
||||
}
|
||||
enum Topic {
|
||||
SURVIVAL,
|
||||
ENERGY,
|
||||
BULLET,
|
||||
SPEED,
|
||||
DAMAGE,
|
||||
PROBABILITY,
|
||||
FEED,
|
||||
DROP,
|
||||
WEAPON,
|
||||
SUMMON,
|
||||
}
|
||||
|
||||
@export var displayName: String = "未命名饲料"
|
||||
@export var quality: Quality = Quality.COMMON
|
||||
@export var topic: Topic = Topic.SURVIVAL
|
||||
@export var quality: CategoryStore.Quality = CategoryStore.Quality.COMMON
|
||||
@export var topic: CategoryStore.Topic = CategoryStore.Topic.SURVIVAL
|
||||
@export var qualityColorMap = {
|
||||
Quality.WASTE: Color(),
|
||||
Quality.COMMON: Color(),
|
||||
Quality.RARE: Color(),
|
||||
Quality.EPIC: Color(),
|
||||
Quality.LEGENDARY: Color()
|
||||
CategoryStore.Quality.WASTE: Color(),
|
||||
CategoryStore.Quality.COMMON: Color(),
|
||||
CategoryStore.Quality.RARE: Color(),
|
||||
CategoryStore.Quality.EPIC: Color(),
|
||||
CategoryStore.Quality.LEGENDARY: Color()
|
||||
}
|
||||
@export var qualityNameMap = {
|
||||
Quality.WASTE: "常见",
|
||||
Quality.COMMON: "普通",
|
||||
Quality.RARE: "稀有",
|
||||
Quality.EPIC: "史诗",
|
||||
Quality.LEGENDARY: "传说"
|
||||
CategoryStore.Quality.WASTE: "常见",
|
||||
CategoryStore.Quality.COMMON: "普通",
|
||||
CategoryStore.Quality.RARE: "稀有",
|
||||
CategoryStore.Quality.EPIC: "史诗",
|
||||
CategoryStore.Quality.LEGENDARY: "传说"
|
||||
}
|
||||
@export var qualityRandomWeight = {
|
||||
Quality.WASTE: 20,
|
||||
Quality.COMMON: 100,
|
||||
Quality.RARE: 30,
|
||||
Quality.EPIC: 10,
|
||||
Quality.LEGENDARY: 5
|
||||
CategoryStore.Quality.WASTE: 20,
|
||||
CategoryStore.Quality.COMMON: 100,
|
||||
CategoryStore.Quality.RARE: 30,
|
||||
CategoryStore.Quality.EPIC: 10,
|
||||
CategoryStore.Quality.LEGENDARY: 5
|
||||
}
|
||||
@export var luckInfluence = {
|
||||
Quality.WASTE: - 0.5,
|
||||
Quality.COMMON: - 1,
|
||||
Quality.RARE: 0,
|
||||
Quality.EPIC: 1,
|
||||
Quality.LEGENDARY: 2,
|
||||
CategoryStore.Quality.WASTE: - 0.5,
|
||||
CategoryStore.Quality.COMMON: - 1,
|
||||
CategoryStore.Quality.RARE: 0,
|
||||
CategoryStore.Quality.EPIC: 1,
|
||||
CategoryStore.Quality.LEGENDARY: 2,
|
||||
}
|
||||
@export var topicNameMap = {
|
||||
Topic.SURVIVAL: "生存",
|
||||
Topic.ENERGY: "能量",
|
||||
Topic.BULLET: "子弹",
|
||||
Topic.SPEED: "速度",
|
||||
Topic.DAMAGE: "伤害",
|
||||
Topic.PROBABILITY: "幸运",
|
||||
Topic.FEED: "饲料",
|
||||
Topic.DROP: "掉落物",
|
||||
Topic.WEAPON: "武器",
|
||||
Topic.SUMMON: "召唤",
|
||||
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 = {
|
||||
Topic.SURVIVAL: Color(),
|
||||
Topic.ENERGY: Color(),
|
||||
Topic.BULLET: Color(),
|
||||
Topic.SPEED: Color(),
|
||||
Topic.DAMAGE: Color(),
|
||||
Topic.PROBABILITY: Color(),
|
||||
Topic.FEED: Color(),
|
||||
Topic.DROP: Color(),
|
||||
Topic.WEAPON: Color(),
|
||||
Topic.SUMMON: Color(),
|
||||
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"
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
@tool
|
||||
extends Control
|
||||
class_name SublimateOptionHandler
|
||||
|
||||
signal apply()
|
||||
|
||||
@onready var nameLabel: Label = $%name
|
||||
@onready var applyBtn: Button = $%applyBtn
|
||||
@onready var costItemShow: ItemShow = $%costItem
|
||||
|
||||
var use: SublimateOption;
|
||||
|
||||
func _ready():
|
||||
nameLabel.label_settings = nameLabel.label_settings.duplicate()
|
||||
applyBtn.pressed.connect(
|
||||
func():
|
||||
if UIState.player.useItem({ItemStore.ItemType.DIAMOND: use.cost}):
|
||||
apply.emit()
|
||||
else:
|
||||
UIState.showTip("钻石数量不足!", TipBox.MessageType.ERROR)
|
||||
)
|
||||
rebuildInfo()
|
||||
|
||||
func rebuildInfo():
|
||||
if is_instance_valid(use):
|
||||
nameLabel.label_settings.font_color = CategoryStore.qualityColorMap[use.quality]
|
||||
nameLabel.label_settings.outline_color = CategoryStore.qualityColorMap[use.quality]
|
||||
nameLabel.text = use.displayName
|
||||
applyBtn.text = use.description
|
||||
costItemShow.count = use.cost
|
||||
@@ -0,0 +1 @@
|
||||
uid://qpx600iiwgae
|
||||
@@ -0,0 +1,13 @@
|
||||
@tool
|
||||
extends Button
|
||||
class_name TextSwitchButton
|
||||
|
||||
@export var pressedText: String = "已按下"
|
||||
@export var unpressedText: String = "未按下"
|
||||
|
||||
func _ready():
|
||||
updateText()
|
||||
toggled.connect(updateText)
|
||||
|
||||
func updateText():
|
||||
text = [unpressedText, pressedText][int(button_pressed)]
|
||||
@@ -0,0 +1 @@
|
||||
uid://5r8mvbag4m0q
|
||||
Reference in New Issue
Block a user