public void Reset() { Creatures.Clear(); Targets.Clear(); DamageDone.Clear(); DamageTaken.Clear(); Deads.Clear(); CombatCreatureGuid.Reset(); CombatDamageDoneGuid.Reset(); CombatDamageTakenGuid.Reset(); CombatDeadGuid.Reset(); }
public void Update(int targetGuid, int targetHealthPercent) { Update(targetGuid, targetHealthPercent, Targets); if (CombatCreatureGuid.Updated(reader)) { Update(CombatCreatureGuid.Value, 100f, Creatures); } if (CombatDamageTakenGuid.Updated(reader)) { Update(CombatDamageTakenGuid.Value, 100f, DamageTaken); } if (CombatDamageDoneGuid.Updated(reader)) { Update(CombatDamageDoneGuid.Value, 100f, DamageDone); } if (CombatDeadGuid.Updated(reader)) { Update(CombatDeadGuid.Value, 0, Creatures); Update(CombatDeadGuid.Value, 0, Deads); if (DamageTaken.Exists(x => x.Guid == CombatDeadGuid.Value)) { Update(CombatDeadGuid.Value, 0, DamageTaken); } if (DamageDone.Exists(x => x.Guid == CombatDeadGuid.Value)) { Update(CombatDeadGuid.Value, 0, DamageDone); } if (Targets.Exists(x => x.Guid == CombatDeadGuid.Value)) { Update(CombatDeadGuid.Value, 0, Targets); } if (Targets.Exists(x => x.Guid == CombatDeadGuid.Value) && (DamageDone.Exists(x => x.Guid == CombatDeadGuid.Value) || DamageTaken.Exists(x => x.Guid == CombatDeadGuid.Value))) { KillCredit?.Invoke(this, EventArgs.Empty); } } }
public void NotifyDamageDone(IAttackableUnit source, IAttackableUnit target, float amount, GameServerCore.Enums.DamageType type, DamageText damagetext, bool isGlobal = true, int sourceId = 0, int targetId = 0) { var dd = new DamageDone(source, target, amount, type, damagetext); if (isGlobal) { _packetHandlerManager.BroadcastPacket(dd, Channel.CHL_S2C); } else { if (sourceId != 0) { _packetHandlerManager.SendPacket(sourceId, dd, Channel.CHL_S2C); } if (targetId != 0) { _packetHandlerManager.SendPacket(targetId, dd, Channel.CHL_S2C); } } }
public void notifyDamageDone(Unit source, Unit target, float amount, DamageType type, DamageText damagetext) { var dd = new DamageDone(source, target, amount, type, damagetext); _game.PacketHandlerManager.broadcastPacket(dd, Channel.CHL_S2C); }
public static void notifyDamageDone(Unit source, Unit target, float amount, DamageType type) { var dd = new DamageDone(source, target, amount, type); PacketHandlerManager.getInstace().broadcastPacket(dd, Channel.CHL_S2C); }