#region ToxicFog if (client.Entity.ToxicFogLeft > 0) { if (Now >= client.Entity.ToxicFogStamp.AddSeconds(2)) { float Percent = client.Entity.ToxicFogPercent; if (client.Entity.Detoxication != 0) { float immu = 1 - client.Entity.Detoxication / 100F; Percent = Percent * immu; } client.Entity.ToxicFogLeft--; if (client.Entity.ToxicFogLeft == 0) { client.Entity.RemoveFlag(Update.Flags.Poisoned); return; } client.Entity.ToxicFogStamp = Now; if (client.Entity.Hitpoints > 1) { uint damage = Game.Attacking.Calculate.Percent(client.Entity, Percent); if (client.Entity.ContainsFlag2(Network.GamePackets.Update.Flags2.AzureShield)) { if (damage > client.Entity.AzureShieldDefence) { damage -= client.Entity.AzureShieldDefence; Game.Attacking.Calculate.CreateAzureDMG(client.Entity.AzureShieldDefence, client.Entity, client.Entity); client.Entity.RemoveFlag2(Network.GamePackets.Update.Flags2.AzureShield); } else { Game.Attacking.Calculate.CreateAzureDMG((uint)damage, client.Entity, client.Entity); client.Entity.AzureShieldDefence -= (ushort)damage; client.Entity.AzureShieldPacket(); damage = 1; } } else client.Entity.Hitpoints -= damage; Network.GamePackets.SpellUse suse = new Network.GamePackets.SpellUse(true); suse.Attacker = client.Entity.UID; suse.SpellID = 10010; suse.AddTarget(client.Entity, damage, null); client.SendScreen(suse, true); if (client != null) client.UpdateQualifier(damage, true); } } } else { if (client.Entity.ContainsFlag(Update.Flags.Poisoned)) client.Entity.RemoveFlag(Update.Flags.Poisoned); } #endregion