using System; using XUtliPoolLib; namespace XMainClient { internal class XBuffTriggerAlways : XBuffTrigger { private uint _TimeToken = 0u; private XTimerMgr.ElapsedEventHandler _timeCb = null; public XBuffTriggerAlways(XBuff buff) : base(buff) { this._timeCb = new XTimerMgr.ElapsedEventHandler(this.OnTimer); } public override void OnAdd(XEntity entity, CombatEffectHelper pEffectHelper) { base.OnAdd(entity, pEffectHelper); this.OnTimer(null); } public override void OnRemove(XEntity entity, bool IsReplaced) { base.OnRemove(entity, IsReplaced); XSingleton.singleton.KillTimer(this._TimeToken); } public void OnTimer(object o) { base.Trigger(); this._TimeToken = XSingleton.singleton.SetTimer(1f, this._timeCb, o); } } }