diff options
Diffstat (limited to 'Client/Assets/Scripts/XMainClient/Buff/XBuffTriggerByLife.cs')
-rw-r--r-- | Client/Assets/Scripts/XMainClient/Buff/XBuffTriggerByLife.cs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/Client/Assets/Scripts/XMainClient/Buff/XBuffTriggerByLife.cs b/Client/Assets/Scripts/XMainClient/Buff/XBuffTriggerByLife.cs new file mode 100644 index 00000000..f54a6aa6 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/Buff/XBuffTriggerByLife.cs @@ -0,0 +1,35 @@ +using System;
+
+namespace XMainClient
+{
+ internal class XBuffTriggerByLife : XBuffTrigger
+ {
+ private float _hpTriggerPercent = 0f;
+
+ public XBuffTriggerByLife(XBuff buff) : base(buff)
+ {
+ this._hpTriggerPercent = base._GetTriggerParam(buff.BuffInfo, 0);
+ }
+
+ public override bool CheckTriggerCondition()
+ {
+ bool isDummy = base.Entity.IsDummy;
+ return !isDummy && base.Entity.Attributes.HPPercent <= (double)this._hpTriggerPercent;
+ }
+
+ public override void OnAdd(XEntity entity, CombatEffectHelper pEffectHelper)
+ {
+ base.OnAdd(entity, pEffectHelper);
+ base.Trigger();
+ }
+
+ public override void OnAttributeChanged(XAttrChangeEventArgs e)
+ {
+ bool flag = e.AttrKey == XAttributeDefine.XAttr_CurrentHP_Basic;
+ if (flag)
+ {
+ base.Trigger();
+ }
+ }
+ }
+}
|