/// <summary> /// Deals environmental damage to this Unit (cannot be resisted) /// </summary> public virtual void DealEnvironmentalDamage(EnviromentalDamageType dmgType, int amount) { DoRawDamage(new SimpleDamageAction { Damage = amount, Victim = this }); CombatLogHandler.SendEnvironmentalDamage(this, dmgType, (uint)amount); }
public override void DealEnvironmentalDamage(EnviromentalDamageType dmgType, int amount) { base.DealEnvironmentalDamage(dmgType, amount); if (!IsAlive) { Achievements.CheckPossibleAchievementUpdates(AchievementCriteriaType.DeathsFrom, (uint)dmgType, 1); } }
/// <summary> /// Usually caused by jumping too high, diving too long, standing too close to fire etc /// </summary> public static void SendEnvironmentDamage(WorldObject target, EnviromentalDamageType type, uint totalDamage) { using (RealmPacketOut packet = new RealmPacketOut(RealmServerOpCode.SMSG_ENVIRONMENTALDAMAGELOG, 21)) { target.EntityId.WritePacked(packet); packet.WriteByte((byte)type); packet.WriteUInt(totalDamage); packet.WriteULong(0); target.PushPacketToSurroundingArea(packet, true, false); } }
/// <summary> /// Deals environmental damage to this Unit (cannot be resisted) /// </summary> public virtual void DealEnvironmentalDamage(EnviromentalDamageType dmgType, int amount) { //if (dmgType == EnviromentalDamageType.Fall) //{ // amount -= (int)(SafeFall * (amount / 100f)); //} DoRawDamage(new SimpleDamageAction { Damage = amount, Victim = this }); CombatLogHandler.SendEnvironmentalDamage(this, dmgType, (uint)amount); }
/// <summary> /// Usually caused by jumping too high, diving too long, standing too close to fire etc /// </summary> public static void SendEnvironmentalDamage(WorldObject target, EnviromentalDamageType type, uint totalDamage) { using (RealmPacketOut packet = new RealmPacketOut((PacketId)RealmServerOpCode.SMSG_ENVIRONMENTALDAMAGELOG, 21)) { target.EntityId.WritePacked((BinaryWriter)packet); packet.WriteByte((byte)type); packet.WriteUInt(totalDamage); packet.WriteULong(0); target.SendPacketToArea(packet, true, false, Locale.Any, new float?()); } }
public override void DoEnvironmentalDamage(EnviromentalDamageType dmgType, int amount) { base.DoEnvironmentalDamage(dmgType, amount); if(!IsAlive) { Achievements.CheckPossibleAchievementUpdates(AchievementCriteriaType.DeathsFrom, (uint)dmgType, 1); } }