Files
Cielonos/Assets/Scripts/MainGame/Items/PassiveEquipments/VipersFang.cs
SoulliesOfficial 6d7ebc5825 Passion & UI
2026-06-12 17:11:39 -04:00

31 lines
1.2 KiB
C#

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