2026-02-13 09:22:11 -05:00
|
|
|
using System;
|
|
|
|
|
using Cielonos.MainGame.Characters;
|
|
|
|
|
using SLSUtilities.General;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
2026-05-23 08:27:50 -04:00
|
|
|
namespace Cielonos.MainGame.Inventory.Collections
|
2026-02-13 09:22:11 -05:00
|
|
|
{
|
2026-06-12 17:11:39 -04:00
|
|
|
/// <summary>
|
|
|
|
|
/// 蝮蛇之牙 / Viper's Fang
|
|
|
|
|
/// 每次攻击根据敌人当前已经损失的生命百分比,增加额外伤害(最大增加 20 伤害)
|
|
|
|
|
/// </summary>
|
2026-02-13 09:22:11 -05:00
|
|
|
public partial class VipersFang : PassiveEquipmentBase
|
|
|
|
|
{
|
|
|
|
|
public override void OnObtained()
|
|
|
|
|
{
|
|
|
|
|
base.OnObtained();
|
2026-05-23 08:27:50 -04:00
|
|
|
Action<AttackAreaBase, CharacterBase, Attack.Context> onStartAttack = OnStartAttack;
|
2026-02-13 09:22:11 -05:00
|
|
|
player.eventSm.onStartAttack.Add("VipersFang", onStartAttack.ToPrioritized());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public partial class VipersFang
|
|
|
|
|
{
|
2026-05-23 08:27:50 -04:00
|
|
|
private void OnStartAttack(AttackAreaBase attackArea, CharacterBase target, Attack.Context attackContext)
|
2026-02-13 09:22:11 -05:00
|
|
|
{
|
2026-05-23 08:27:50 -04:00
|
|
|
float targetHealthPercentage = target.attributeSm[CharacterAttribute.Health] / target.attributeSm[CharacterAttribute.MaximumHealth];
|
2026-02-13 09:22:11 -05:00
|
|
|
float extraDamage = passiveAttributeData.itemAttributes["ExtraDamage"] * (1 - targetHealthPercentage);
|
2026-05-23 08:27:50 -04:00
|
|
|
attackContext.value.additionalFlatDamage += extraDamage;
|
2026-02-13 09:22:11 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|