summaryrefslogtreecommitdiff
path: root/Client/Assets/Scripts/XMainClient/Buff/XBuffTriggerByLife.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Client/Assets/Scripts/XMainClient/Buff/XBuffTriggerByLife.cs')
-rw-r--r--Client/Assets/Scripts/XMainClient/Buff/XBuffTriggerByLife.cs35
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();
+ }
+ }
+ }
+}