protected void PlayerDisbandedGroup(DOLEvent e, object sender, EventArgs args) { MemberDisbandedEventArgs pdargs = args as MemberDisbandedEventArgs; if (pdargs == null) { return; } m_affected.Remove(pdargs.Member); GameEventMgr.RemoveHandler(pdargs.Member, GamePlayerEvent.TakeDamage, new DOLEventHandler(TakeDamage)); if (pdargs.Member is GamePlayer) { ((GamePlayer)pdargs.Member).Out.SendMessage("You are no longer protected by a pool of healing!", eChatType.CT_SpellExpires, eChatLoc.CL_SystemWindow); if (((GamePlayer)pdargs.Member).CharacterClass.ID == (int)eCharacterClass.Necromancer) { if (((GamePlayer)pdargs.Member).ControlledBrain != null) { m_affected.Remove(((GamePlayer)pdargs.Member).ControlledBrain.Body); GameEventMgr.RemoveHandler(((GamePlayer)pdargs.Member).ControlledBrain.Body, GameLivingEvent.TakeDamage, new DOLEventHandler(TakeDamageNPC)); } } } if (m_group == null) { Cancel(false); } }
/// <summary> /// Cancels guard if one of players disbands /// </summary> /// <param name="e"></param> /// <param name="sender">The group</param> /// <param name="args"></param> protected void GroupDisbandCallback(DOLEvent e, object sender, EventArgs args) { MemberDisbandedEventArgs eArgs = args as MemberDisbandedEventArgs; if (eArgs == null) { return; } if (eArgs.Member == GuardTarget || eArgs.Member == GuardSource) { Cancel(false); } }
/// <summary> /// Cancels effect if one of players disbands /// </summary> /// <param name="e"></param> /// <param name="sender">The group</param> /// <param name="args"></param> protected void GroupDisbandCallback(DOLEvent e, object sender, EventArgs args) { MemberDisbandedEventArgs eArgs = args as MemberDisbandedEventArgs; if (eArgs == null) { return; } if (eArgs.Member == EffectOwner) { Cancel(false); } }