/// <summary> /// /// </summary> /// <param name="buff"></param> public void AddState(AbstractSpellBuff buff) { buff.CastInfos.SubEffect = EffectEnum.AddState; if (buff.Caster.Fight.State == FightStateEnum.STATE_FIGHTING) { switch (buff.CastInfos.EffectType) { case EffectEnum.Stealth: if (HasState(FighterStateEnum.STATE_STEALTH)) return; m_fighter.Fight.Dispatch(WorldMessage.GAME_ACTION(EffectEnum.Stealth, m_fighter.Id, m_fighter.Id + "," + buff.Duration)); m_states.Add(FighterStateEnum.STATE_STEALTH, buff); return; default: m_fighter.Fight.Dispatch(WorldMessage.GAME_ACTION(EffectEnum.AddState, m_fighter.Id, m_fighter.Id + "," + buff.CastInfos.Value3 + ",1")); break; } if (HasState((FighterStateEnum)buff.CastInfos.Value3)) return; m_states.Add((FighterStateEnum)buff.CastInfos.Value3, buff); } }
/// <summary> /// /// </summary> /// <param name="Buff"></param> public void AddBuff(AbstractSpellBuff Buff) { ActiveBuffs[Buff.ActiveType].Add(Buff); DecrementBuffs[Buff.DecrementType].Add(Buff); }
/// <summary> /// /// </summary> /// <param name="buff"></param> public void RemoveState(AbstractSpellBuff buff) { if (buff.Caster.Fight.State == FightStateEnum.STATE_FIGHTING) { switch (buff.CastInfos.EffectType) { case EffectEnum.Stealth: m_fighter.Fight.Dispatch(WorldMessage.GAME_ACTION(EffectEnum.Stealth, m_fighter.Id, m_fighter.Id.ToString())); m_fighter.Fight.Dispatch(WorldMessage.GAME_ACTION(GameActionTypeEnum.MAP_TELEPORT, m_fighter.Id, m_fighter.Id + "," + m_fighter.Cell.Id)); m_states.Remove(FighterStateEnum.STATE_STEALTH); return; default: m_fighter.Fight.Dispatch(WorldMessage.GAME_ACTION(EffectEnum.AddState, m_fighter.Id, m_fighter.Id + "," + buff.CastInfos.Value3 + ",0")); break; } } m_states.Remove((FighterStateEnum)buff.CastInfos.Value3); }
/// <summary> /// /// </summary> /// <param name="buff"></param> public void RemoveBuff(AbstractSpellBuff buff) { ActiveBuffs[buff.ActiveType].Remove(buff); DecrementBuffs[buff.DecrementType].Remove(buff); }