示例#1
0
 /// <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);
 }
示例#2
0
 public override void DealEnvironmentalDamage(EnviromentalDamageType dmgType, int amount)
 {
     base.DealEnvironmentalDamage(dmgType, amount);
     if (!IsAlive)
     {
         Achievements.CheckPossibleAchievementUpdates(AchievementCriteriaType.DeathsFrom, (uint)dmgType, 1);
     }
 }
示例#3
0
        /// <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);
            }
        }
示例#4
0
        /// <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);
        }
示例#5
0
 /// <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?());
     }
 }
示例#6
0
		public override void DoEnvironmentalDamage(EnviromentalDamageType dmgType, int amount)
		{
			base.DoEnvironmentalDamage(dmgType, amount);
			if(!IsAlive)
			{
				Achievements.CheckPossibleAchievementUpdates(AchievementCriteriaType.DeathsFrom, (uint)dmgType, 1);
			}
		}
示例#7
0
		/// <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);
		}
示例#8
0
		/// <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);
			}
		}