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:
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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():
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user