1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-31 00:11:54 +08:00

feat(武器系统): 调整武器升级逻辑并添加等级显示

- 修改PurpleCrystal和LGBT武器的属性增长系数
- 武器升级时增加等级并调整消耗计算
- 在UI中添加武器等级显示
- 升级后自动更新武器信息
This commit is contained in:
2025-09-06 11:59:24 +08:00
parent 4e158006c6
commit 6d39f19ea4
5 changed files with 26 additions and 9 deletions
+3 -3
View File
@@ -3,11 +3,11 @@ extends Weapon
class_name LGBTWeapon
func update(to: int, origin: Dictionary, _entity: EntityBase):
origin["atk"] += 5 * to
origin["atk"] += 2 * to
origin["count"] += 1
origin["power"] += 0.05
origin["power"] += 0.03
origin["trace"] += 0.25
origin["angle"] /= 1.1
origin["angle"] -= 0.1
return origin
func attack(entity: EntityBase):
var weaponPos = entity.findWeaponAnchor("normal")
+1 -1
View File
@@ -3,7 +3,7 @@ extends Weapon
class_name PurpleCrystalWeapon
func update(to: int, origin: Dictionary, _entity: EntityBase):
origin["atk"] += 5 * to
origin["atk"] += 2 * to
return origin
func attack(entity: EntityBase):
var weaponPos = entity.findWeaponAnchor("normal")
+3
View File
@@ -19,6 +19,7 @@ enum TypeTopic {
@export var displayName: String = "未命名武器"
@export var quality: Quality = Quality.COMMON
@export var typeTopic: TypeTopic = TypeTopic.IMPACT
@export var level: int = 0
@export var qualityColorMap = {
Quality.WASTE: Color(),
Quality.COMMON: Color(),
@@ -63,6 +64,7 @@ enum TypeTopic {
@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()
@@ -73,6 +75,7 @@ func _physics_process(_delta):
typeTopicLabel.text = "[%s]" % typeTopicNameMap[typeTopic]
typeTopicLabel.label_settings.font_color = typeTopicColor()
nameLabel.text = "[b]%s[/b]" % displayName
levelLabel.text = "[b]Lv.%d[/b]" % (level + 1)
func qualityColor():
return qualityColorMap[quality] as Color
func typeTopicColor():
+5 -1
View File
@@ -50,8 +50,11 @@ func allHad(entity: EntityBase) -> bool:
func apply(entity: EntityBase):
var allHave = allHad(entity)
if allHave:
level += 1
entity.inventory[ItemStore.ItemType.BEACHBALL] -= costBeachball
store = update(level + 1, originalStore.duplicate(), entity)
store = update(level, originalStore.duplicate(), entity)
costBeachball *= 2
rebuildInfo()
return allHave
func multipiler() -> float:
if is_instance_valid(UIState.player):
@@ -63,6 +66,7 @@ func rebuildInfo():
nameLabel.displayName = displayName
nameLabel.quality = quality
nameLabel.typeTopic = typeTopic
nameLabel.level = level
energyLabel.text = "%.1f" % needEnergy
beachballLabel.text = str(costBeachball)
descriptionLabel.text = buildDescription()