private void RegisterTrigger(Buff_NOTIFY_TYPE triggerType, BuffDelegate buff_delegate) { BuffDelegate handler; if (m_BuffTriggerEventDic.TryGetValue(triggerType, out handler)) { handler += buff_delegate; } else { m_BuffTriggerEventDic[triggerType] = handler; } }
int CountBuffNum(BuffDelegate buffChange, int num) { if (buffChange != null) { System.Delegate[] delArray = buffChange.GetInvocationList(); foreach (System.Delegate del in delArray) { BuffDelegate method = (BuffDelegate)del; num = method(num); } } return(num); }
private void UnRegisterTrigger(Buff_NOTIFY_TYPE triggerType, BuffDelegate buff_delegate) { BuffDelegate handler; if (m_BuffTriggerEventDic.TryGetValue(triggerType, out handler)) { BuffDelegate finalHandler = handler - buff_delegate; if (finalHandler != null) { handler = finalHandler; } else { m_BuffTriggerEventDic.Remove(triggerType); } } }
public Debuff(BuffDelegate effect) { this.buffEffect = effect; }