1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-06-04 18:57:13 +08:00

feat(武器): 为弓武器添加生命汲取和升华选项

添加生命汲取效果,使箭矢命中时回复生命值
实现弓武器的升华系统,包含5种不同品质的强化选项
调整攻击逻辑以支持升华效果和生命值相关的伤害加成
This commit is contained in:
2026-05-10 15:31:40 +08:00
parent 848a878992
commit 31d344e50a
3 changed files with 60 additions and 10 deletions
+50 -4
View File
@@ -1,6 +1,50 @@
@tool
extends Weapon
func sublimateOptions() -> Array[SublimateOption]:
return [
SublimateOption.new(
"破风之翎",
"伤害+15%",
func(w: Weapon, _e):
w.addStoreExtra("atk", 0.15),
1,
CategoryStore.Quality.COMMON
),
SublimateOption.new(
"嗜血",
"伤害倍率+40%,但额外消耗1点生命值",
func(w: Weapon, _e):
w.addStoreExtra("atk", 0.4)
w.addStoreExtra("self", 1),
2,
CategoryStore.Quality.LEGENDARY
),
SublimateOption.new(
"风行者",
"鸡毛箭出手速度+5%",
func(w: Weapon, _e):
w.addStoreExtra("initSpeed", 0.05),
1,
CategoryStore.Quality.RARE
),
SublimateOption.new(
"破釜沉舟",
"每失去5%生命值,伤害+6%",
func(w: Weapon, _e):
w.addStoreExtra("missAtk", 0.06),
2,
CategoryStore.Quality.EPIC
),
SublimateOption.new(
"生命汲取",
"鸡毛箭命中时回复0.2点生命值",
func(w: Weapon, _e):
w.addStoreExtra("lifesteal", 0.2),
1,
CategoryStore.Quality.COMMON
),
]
func update(to: int, origin: Dictionary, _entity: EntityBase):
origin["atk"] += 0.1 * to * soulLevel
origin["count"] = 1 * soulLevel
@@ -9,13 +53,15 @@ func update(to: int, origin: Dictionary, _entity: EntityBase):
func attack(entity: EntityBase):
entity.takeDamage(readStore("self"))
var weaponPos = entity.findWeaponAnchor("normal")
for i in BulletBase.generate(
for bullet in BulletBase.generate(
ComponentManager.getBullet("Bow"),
entity,
weaponPos,
weaponPos.angle_to_point(get_global_mouse_position())
):
var bullet: Bow = i
bullet.count = readStore("count")
bullet.atk = readStore("atk")
if bullet is Bow:
bullet.count = readStore("count")
bullet.atk = readStore("atk") * (1 + (1 - entity.getHealthPercent()) * readStoreExtra("missAtk"))
bullet.speed *= 1 + readStoreExtra("initSpeed")
bullet.lifesteal = readStoreExtra("lifesteal")
return true