1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-31 08:21: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
+14 -4
View File
@@ -3,10 +3,10 @@
[ext_resource type="Theme" uid="uid://bje5cd08dyok7" path="res://themes/bigTextAndBold.tres" id="2_y8dft"]
[ext_resource type="Script" path="res://scripts/Statemachine/WeaponName.gd" id="3_g750e"]
[sub_resource type="LabelSettings" id="LabelSettings_k3i20"]
[sub_resource type="LabelSettings" id="LabelSettings_1vypy"]
font_size = 12
[sub_resource type="LabelSettings" id="LabelSettings_07pas"]
[sub_resource type="LabelSettings" id="LabelSettings_pyxdw"]
font_size = 12
[node name="WeaponName" type="HBoxContainer"]
@@ -34,7 +34,7 @@ unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 0
text = "[普通]"
label_settings = SubResource("LabelSettings_k3i20")
label_settings = SubResource("LabelSettings_1vypy")
[node name="label" type="RichTextLabel" parent="."]
unique_name_in_owner = true
@@ -45,9 +45,19 @@ text = "[b]未命名武器[/b]"
fit_content = true
autowrap_mode = 0
[node name="level" type="RichTextLabel" parent="."]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 8
theme = ExtResource("2_y8dft")
bbcode_enabled = true
text = "[b]Lv.1[/b]"
fit_content = true
autowrap_mode = 0
[node name="typeTopic" type="Label" parent="."]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 8
text = "[冲击]"
label_settings = SubResource("LabelSettings_07pas")
label_settings = SubResource("LabelSettings_pyxdw")
+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()