public void RemoveStatusEffect(MonsterBuff effect) { lock (Buffs) { Buffs.Remove(effect); } }
public void ApplyStatusEffect(int sourceSkillId, BuffStat buffStat, int buffValue, int durationMS, MapleCharacter applicant) { lock (Buffs) { List <MonsterBuff> toRemove = new List <MonsterBuff>(); foreach (MonsterBuff buff in Buffs) { if (buff.BuffStat == buffStat) //Mob already has this buff { toRemove.Add(buff); } } foreach (var buff in toRemove) { buff.Dispose(true); } MonsterBuff newEffect = new MonsterBuff(applicant.Id, sourceSkillId, durationMS, buffStat, buffValue, this); Buffs.Add(newEffect); Map.BroadcastPacket(newEffect.GetApplicationPacket()); } }