| using System; |
| using System; |
| using System.Collections.Generic; |
| using System.Collections.Generic; |
| using System.Runtime.CompilerServices; |
| using System.Runtime.CompilerServices; |
| . | |
| using System.Text; |
| using UnityEngine; |
| using UnityEngine; |
| |
| |
| public class HitData |
| public class HitData |
| { |
| { |
| . | |
| public HitData() |
| |
| { |
| |
| } |
| |
| |
| |
| public HitData(float damage) |
| |
| { |
| |
| this.m_damage.m_damage = damage; |
| |
| } |
| |
| |
| public HitData Clone() |
| public HitData Clone() |
| { |
| { |
| return (HitData)base.MemberwiseClone(); |
| return (HitData)base.MemberwiseClone(); |
| } |
| } |
| |
| |
| public void Serialize(ref ZPackage pkg) |
| public void Serialize(ref ZPackage pkg) |
| { |
| { |
| HitData.HitDefaults.SerializeFlags serializeFlags = HitData.HitDefaults.SerializeFlags.None; |
| HitData.HitDefaults.SerializeFlags serializeFlags = HitData.HitDefaults.SerializeFlags.None; |
| serializeFlags |= ((!this.m_damage.m_damage.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.Damage : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_damage.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.Damage : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_blunt.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamageBlunt : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_blunt.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamageBlunt : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_slash.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamageSlash : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_slash.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamageSlash : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_pierce.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamagePierce : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_pierce.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamagePierce : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_chop.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamageChop : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_chop.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamageChop : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_pickaxe.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamagePickaxe : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_pickaxe.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamagePickaxe : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_fire.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamageFire : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_fire.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamageFire : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_frost.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamageFrost : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_frost.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamageFrost : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_lightning.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamageLightning : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_lightning.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamageLightning : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_poison.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamagePoison : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_poison.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamagePoison : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_spirit.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamageSpirit : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_damage.m_spirit.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.DamageSpirit : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_pushForce.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.PushForce : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_pushForce.Equals(0f)) ? HitData.HitDefaults.SerializeFlags.PushForce : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_backstabBonus.Equals(1f)) ? HitData.HitDefaults.SerializeFlags.BackstabBonus : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_backstabBonus.Equals(1f)) ? HitData.HitDefaults.SerializeFlags.BackstabBonus : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_staggerMultiplier.Equals(1f)) ? HitData.HitDefaults.SerializeFlags.StaggerMultiplier : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_staggerMultiplier.Equals(1f)) ? HitData.HitDefaults.SerializeFlags.StaggerMultiplier : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((this.m_attacker != ZDOID.None) ? HitData.HitDefaults.SerializeFlags.Attacker : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((this.m_attacker != ZDOID.None) ? HitData.HitDefaults.SerializeFlags.Attacker : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_skillRaiseAmount.Equals(1f)) ? HitData.HitDefaults.SerializeFlags.SkillRaiseAmount : HitData.HitDefaults.SerializeFlags.None); |
| serializeFlags |= ((!this.m_skillRaiseAmount.Equals(1f)) ? HitData.HitDefaults.SerializeFlags.SkillRaiseAmount : HitData.HitDefaults.SerializeFlags.None); |
| pkg.Write((ushort)serializeFlags); |
| pkg.Write((ushort)serializeFlags); |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.Damage) != HitData.HitDefaults.SerializeFlags.None) |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.Damage) != HitData.HitDefaults.SerializeFlags.None) |
| { |
| { |
| pkg.Write(this.m_damage.m_damage); |
| pkg.Write(this.m_damage.m_damage); |
| } |
| } |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageBlunt) != HitData.HitDefaults.SerializeFlags.None) |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageBlunt) != HitData.HitDefaults.SerializeFlags.None) |
| { |
| { |
| pkg.Write(this.m_damage.m_blunt); |
| pkg.Write(this.m_damage.m_blunt); |
| } |
| } |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageSlash) != HitData.HitDefaults.SerializeFlags.None) |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageSlash) != HitData.HitDefaults.SerializeFlags.None) |
| { |
| { |
| pkg.Write(this.m_damage.m_slash); |
| pkg.Write(this.m_damage.m_slash); |
| } |
| } |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamagePierce) != HitData.HitDefaults.SerializeFlags.None) |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamagePierce) != HitData.HitDefaults.SerializeFlags.None) |
| { |
| { |
| pkg.Write(this.m_damage.m_pierce); |
| pkg.Write(this.m_damage.m_pierce); |
| } |
| } |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageChop) != HitData.HitDefaults.SerializeFlags.None) |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageChop) != HitData.HitDefaults.SerializeFlags.None) |
| { |
| { |
| pkg.Write(this.m_damage.m_chop); |
| pkg.Write(this.m_damage.m_chop); |
| } |
| } |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamagePickaxe) != HitData.HitDefaults.SerializeFlags.None) |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamagePickaxe) != HitData.HitDefaults.SerializeFlags.None) |
| { |
| { |
| pkg.Write(this.m_damage.m_pickaxe); |
| pkg.Write(this.m_damage.m_pickaxe); |
| } |
| } |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageFire) != HitData.HitDefaults.SerializeFlags.None) |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageFire) != HitData.HitDefaults.SerializeFlags.None) |
| { |
| { |
| pkg.Write(this.m_damage.m_fire); |
| pkg.Write(this.m_damage.m_fire); |
| } |
| } |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageFrost) != HitData.HitDefaults.SerializeFlags.None) |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageFrost) != HitData.HitDefaults.SerializeFlags.None) |
| { |
| { |
| pkg.Write(this.m_damage.m_frost); |
| pkg.Write(this.m_damage.m_frost); |
| } |
| } |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageLightning) != HitData.HitDefaults.SerializeFlags.None) |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageLightning) != HitData.HitDefaults.SerializeFlags.None) |
| { |
| { |
| pkg.Write(this.m_damage.m_lightning); |
| pkg.Write(this.m_damage.m_lightning); |
| } |
| } |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamagePoison) != HitData.HitDefaults.SerializeFlags.None) |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamagePoison) != HitData.HitDefaults.SerializeFlags.None) |
| { |
| { |
| pkg.Write(this.m_damage.m_poison); |
| pkg.Write(this.m_damage.m_poison); |
| } |
| } |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageSpirit) != HitData.HitDefaults.SerializeFlags.None) |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageSpirit) != HitData.HitDefaults.SerializeFlags.None) |
| { |
| { |
| pkg.Write(this.m_damage.m_spirit); |
| pkg.Write(this.m_damage.m_spirit); |
| } |
| } |
| pkg.Write(this.m_toolTier); |
| pkg.Write(this.m_toolTier); |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.PushForce) != HitData.HitDefaults.SerializeFlags.None) |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.PushForce) != HitData.HitDefaults.SerializeFlags.None) |
| { |
| { |
| pkg.Write(this.m_pushForce); |
| pkg.Write(this.m_pushForce); |
| } |
| } |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.BackstabBonus) != HitData.HitDefaults.SerializeFlags.None) |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.BackstabBonus) != HitData.HitDefaults.SerializeFlags.None) |
| { |
| { |
| pkg.Write(this.m_backstabBonus); |
| pkg.Write(this.m_backstabBonus); |
| } |
| } |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.StaggerMultiplier) != HitData.HitDefaults.SerializeFlags.None) |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.StaggerMultiplier) != HitData.HitDefaults.SerializeFlags.None) |
| { |
| { |
| pkg.Write(this.m_staggerMultiplier); |
| pkg.Write(this.m_staggerMultiplier); |
| } |
| } |
| byte b = 0; |
| byte b = 0; |
| if (this.m_dodgeable) |
| if (this.m_dodgeable) |
| { |
| { |
| b |= 1; |
| b |= 1; |
| } |
| } |
| if (this.m_blockable) |
| if (this.m_blockable) |
| { |
| { |
| b |= 2; |
| b |= 2; |
| } |
| } |
| if (this.m_ranged) |
| if (this.m_ranged) |
| { |
| { |
| b |= 4; |
| b |= 4; |
| } |
| } |
| if (this.m_ignorePVP) |
| if (this.m_ignorePVP) |
| { |
| { |
| b |= 8; |
| b |= 8; |
| } |
| } |
| pkg.Write(b); |
| pkg.Write(b); |
| pkg.Write(this.m_point); |
| pkg.Write(this.m_point); |
| pkg.Write(this.m_dir); |
| pkg.Write(this.m_dir); |
| pkg.Write(this.m_statusEffectHash); |
| pkg.Write(this.m_statusEffectHash); |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.Attacker) != HitData.HitDefaults.SerializeFlags.None) |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.Attacker) != HitData.HitDefaults.SerializeFlags.None) |
| { |
| { |
| pkg.Write(this.m_attacker); |
| pkg.Write(this.m_attacker); |
| } |
| } |
| pkg.Write((short)this.m_skill); |
| pkg.Write((short)this.m_skill); |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.SkillRaiseAmount) != HitData.HitDefaults.SerializeFlags.None) |
| if ((serializeFlags & HitData.HitDefaults.SerializeFlags.SkillRaiseAmount) != HitData.HitDefaults.SerializeFlags.None) |
| { |
| { |
| pkg.Write(this.m_skillRaiseAmount); |
| pkg.Write(this.m_skillRaiseAmount); |
| } |
| } |
| pkg.Write((char)this.m_weakSpot); |
| pkg.Write((char)this.m_weakSpot); |
| pkg.Write(this.m_skillLevel); |
| pkg.Write(this.m_skillLevel); |
| pkg.Write(this.m_itemLevel); |
| pkg.Write(this.m_itemLevel); |
| pkg.Write(this.m_itemWorldLevel); |
| pkg.Write(this.m_itemWorldLevel); |
| pkg.Write((byte)this.m_hitType); |
| pkg.Write((byte)this.m_hitType); |
| . | |
| pkg.Write(this.m_healthReturn); |
| |
| pkg.Write(this.m_radius); |
| } |
| } |
| |
| |
| public void Deserialize(ref ZPackage pkg) |
| public void Deserialize(ref ZPackage pkg) |
| { |
| { |
| HitData.HitDefaults.SerializeFlags serializeFlags = (HitData.HitDefaults.SerializeFlags)pkg.ReadUShort(); |
| HitData.HitDefaults.SerializeFlags serializeFlags = (HitData.HitDefaults.SerializeFlags)pkg.ReadUShort(); |
| this.m_damage.m_damage = (((serializeFlags & HitData.HitDefaults.SerializeFlags.Damage) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_damage = (((serializeFlags & HitData.HitDefaults.SerializeFlags.Damage) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_blunt = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageBlunt) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_blunt = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageBlunt) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_slash = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageSlash) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_slash = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageSlash) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_pierce = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamagePierce) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_pierce = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamagePierce) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_chop = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageChop) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_chop = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageChop) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_pickaxe = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamagePickaxe) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_pickaxe = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamagePickaxe) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_fire = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageFire) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_fire = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageFire) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_frost = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageFrost) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_frost = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageFrost) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_lightning = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageLightning) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_lightning = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageLightning) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_poison = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamagePoison) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_poison = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamagePoison) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_spirit = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageSpirit) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_damage.m_spirit = (((serializeFlags & HitData.HitDefaults.SerializeFlags.DamageSpirit) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_toolTier = pkg.ReadShort(); |
| this.m_toolTier = pkg.ReadShort(); |
| this.m_pushForce = (((serializeFlags & HitData.HitDefaults.SerializeFlags.PushForce) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_pushForce = (((serializeFlags & HitData.HitDefaults.SerializeFlags.PushForce) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 0f); |
| this.m_backstabBonus = (((serializeFlags & HitData.HitDefaults.SerializeFlags.BackstabBonus) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 1f); |
| this.m_backstabBonus = (((serializeFlags & HitData.HitDefaults.SerializeFlags.BackstabBonus) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 1f); |
| this.m_staggerMultiplier = (((serializeFlags & HitData.HitDefaults.SerializeFlags.StaggerMultiplier) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 1f); |
| this.m_staggerMultiplier = (((serializeFlags & HitData.HitDefaults.SerializeFlags.StaggerMultiplier) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 1f); |
| byte b = pkg.ReadByte(); |
| byte b = pkg.ReadByte(); |
| this.m_dodgeable = (b & 1) > 0; |
| this.m_dodgeable = (b & 1) > 0; |
| this.m_blockable = (b & 2) > 0; |
| this.m_blockable = (b & 2) > 0; |
| this.m_ranged = (b & 4) > 0; |
| this.m_ranged = (b & 4) > 0; |
| this.m_ignorePVP = (b & 8) > 0; |
| this.m_ignorePVP = (b & 8) > 0; |
| this.m_point = pkg.ReadVector3(); |
| this.m_point = pkg.ReadVector3(); |
| this.m_dir = pkg.ReadVector3(); |
| this.m_dir = pkg.ReadVector3(); |
| this.m_statusEffectHash = pkg.ReadInt(); |
| this.m_statusEffectHash = pkg.ReadInt(); |
| this.m_attacker = (((serializeFlags & HitData.HitDefaults.SerializeFlags.Attacker) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadZDOID() : HitData.HitDefaults.s_attackerDefault); |
| this.m_attacker = (((serializeFlags & HitData.HitDefaults.SerializeFlags.Attacker) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadZDOID() : HitData.HitDefaults.s_attackerDefault); |
| this.m_skill = (Skills.SkillType)pkg.ReadShort(); |
| this.m_skill = (Skills.SkillType)pkg.ReadShort(); |
| this.m_skillRaiseAmount = (((serializeFlags & HitData.HitDefaults.SerializeFlags.SkillRaiseAmount) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 1f); |
| this.m_skillRaiseAmount = (((serializeFlags & HitData.HitDefaults.SerializeFlags.SkillRaiseAmount) != HitData.HitDefaults.SerializeFlags.None) ? pkg.ReadSingle() : 1f); |
| this.m_weakSpot = (short)pkg.ReadChar(); |
| this.m_weakSpot = (short)pkg.ReadChar(); |
| this.m_skillLevel = pkg.ReadSingle(); |
| this.m_skillLevel = pkg.ReadSingle(); |
| this.m_itemLevel = pkg.ReadShort(); |
| this.m_itemLevel = pkg.ReadShort(); |
| this.m_itemWorldLevel = pkg.ReadByte(); |
| this.m_itemWorldLevel = pkg.ReadByte(); |
| this.m_hitType = (HitData.HitType)pkg.ReadByte(); |
| this.m_hitType = (HitData.HitType)pkg.ReadByte(); |
| . | |
| this.m_healthReturn = pkg.ReadSingle(); |
| |
| this.m_radius = pkg.ReadSingle(); |
| } |
| } |
| |
| |
| public float GetTotalPhysicalDamage() |
| public float GetTotalPhysicalDamage() |
| { |
| { |
| return this.m_damage.GetTotalPhysicalDamage(); |
| return this.m_damage.GetTotalPhysicalDamage(); |
| } |
| } |
| |
| |
| public float GetTotalElementalDamage() |
| public float GetTotalElementalDamage() |
| { |
| { |
| return this.m_damage.GetTotalElementalDamage(); |
| return this.m_damage.GetTotalElementalDamage(); |
| } |
| } |
| |
| |
| public float GetTotalDamage() |
| public float GetTotalDamage() |
| { |
| { |
| . | |
| Character attacker = this.GetAttacker(); |
| |
| if (attacker != null && Game.m_worldLevel > 0 && !attacker.IsPlayer()) |
| |
| { |
| |
| return this.m_damage.GetTotalDamage() + (float)(Game.m_worldLevel * Game.instance.m_worldLevelEnemyBaseDamage); |
| |
| } |
| return this.m_damage.GetTotalDamage(); |
| return this.m_damage.GetTotalDamage(); |
| } |
| } |
| |
| |
| private float ApplyModifier(float baseDamage, HitData.DamageModifier mod, ref float normalDmg, ref float resistantDmg, ref float weakDmg, ref float immuneDmg) |
| private float ApplyModifier(float baseDamage, HitData.DamageModifier mod, ref float normalDmg, ref float resistantDmg, ref float weakDmg, ref float immuneDmg) |
| { |
| { |
| if (mod == HitData.DamageModifier.Ignore) |
| if (mod == HitData.DamageModifier.Ignore) |
| { |
| { |
| return 0f; |
| return 0f; |
| } |
| } |
| float num = baseDamage; |
| float num = baseDamage; |
| switch (mod) |
| switch (mod) |
| { |
| { |
| case HitData.DamageModifier.Resistant: |
| case HitData.DamageModifier.Resistant: |
| num /= 2f; |
| num /= 2f; |
| resistantDmg += baseDamage; |
| resistantDmg += baseDamage; |
| return num; |
| return num; |
| case HitData.DamageModifier.Weak: |
| case HitData.DamageModifier.Weak: |
| num *= 1.5f; |
| num *= 1.5f; |
| weakDmg += baseDamage; |
| weakDmg += baseDamage; |
| return num; |
| return num; |
| case HitData.DamageModifier.Immune: |
| case HitData.DamageModifier.Immune: |
| num = 0f; |
| num = 0f; |
| immuneDmg += baseDamage; |
| immuneDmg += baseDamage; |
| return num; |
| return num; |
| case HitData.DamageModifier.VeryResistant: |
| case HitData.DamageModifier.VeryResistant: |
| num /= 4f; |
| num /= 4f; |
| resistantDmg += baseDamage; |
| resistantDmg += baseDamage; |
| return num; |
| return num; |
| case HitData.DamageModifier.VeryWeak: |
| case HitData.DamageModifier.VeryWeak: |
| num *= 2f; |
| num *= 2f; |
| weakDmg += baseDamage; |
| weakDmg += baseDamage; |
| return num; |
| return num; |
| } |
| } |
| normalDmg += baseDamage; |
| normalDmg += baseDamage; |
| return num; |
| return num; |
| } |
| } |
| |
| |
| public void ApplyResistance(HitData.DamageModifiers modifiers, out HitData.DamageModifier significantModifier) |
| public void ApplyResistance(HitData.DamageModifiers modifiers, out HitData.DamageModifier significantModifier) |
| { |
| { |
| float damage = this.m_damage.m_damage; |
| float damage = this.m_damage.m_damage; |
| float num = 0f; |
| float num = 0f; |
| float num2 = 0f; |
| float num2 = 0f; |
| float num3 = 0f; |
| float num3 = 0f; |
| this.m_damage.m_blunt = this.ApplyModifier(this.m_damage.m_blunt, modifiers.m_blunt, ref damage, ref num, ref num2, ref num3); |
| this.m_damage.m_blunt = this.ApplyModifier(this.m_damage.m_blunt, modifiers.m_blunt, ref damage, ref num, ref num2, ref num3); |
| this.m_damage.m_slash = this.ApplyModifier(this.m_damage.m_slash, modifiers.m_slash, ref damage, ref num, ref num2, ref num3); |
| this.m_damage.m_slash = this.ApplyModifier(this.m_damage.m_slash, modifiers.m_slash, ref damage, ref num, ref num2, ref num3); |
| this.m_damage.m_pierce = this.ApplyModifier(this.m_damage.m_pierce, modifiers.m_pierce, ref damage, ref num, ref num2, ref num3); |
| this.m_damage.m_pierce = this.ApplyModifier(this.m_damage.m_pierce, modifiers.m_pierce, ref damage, ref num, ref num2, ref num3); |
| this.m_damage.m_chop = this.ApplyModifier(this.m_damage.m_chop, modifiers.m_chop, ref damage, ref num, ref num2, ref num3); |
| this.m_damage.m_chop = this.ApplyModifier(this.m_damage.m_chop, modifiers.m_chop, ref damage, ref num, ref num2, ref num3); |
| this.m_damage.m_pickaxe = this.ApplyModifier(this.m_damage.m_pickaxe, modifiers.m_pickaxe, ref damage, ref num, ref num2, ref num3); |
| this.m_damage.m_pickaxe = this.ApplyModifier(this.m_damage.m_pickaxe, modifiers.m_pickaxe, ref damage, ref num, ref num2, ref num3); |
| this.m_damage.m_fire = this.ApplyModifier(this.m_damage.m_fire, modifiers.m_fire, ref damage, ref num, ref num2, ref num3); |
| this.m_damage.m_fire = this.ApplyModifier(this.m_damage.m_fire, modifiers.m_fire, ref damage, ref num, ref num2, ref num3); |
| this.m_damage.m_frost = this.ApplyModifier(this.m_damage.m_frost, modifiers.m_frost, ref damage, ref num, ref num2, ref num3); |
| this.m_damage.m_frost = this.ApplyModifier(this.m_damage.m_frost, modifiers.m_frost, ref damage, ref num, ref num2, ref num3); |
| this.m_damage.m_lightning = this.ApplyModifier(this.m_damage.m_lightning, modifiers.m_lightning, ref damage, ref num, ref num2, ref num3); |
| this.m_damage.m_lightning = this.ApplyModifier(this.m_damage.m_lightning, modifiers.m_lightning, ref damage, ref num, ref num2, ref num3); |
| this.m_damage.m_poison = this.ApplyModifier(this.m_damage.m_poison, modifiers.m_poison, ref damage, ref num, ref num2, ref num3); |
| this.m_damage.m_poison = this.ApplyModifier(this.m_damage.m_poison, modifiers.m_poison, ref damage, ref num, ref num2, ref num3); |
| this.m_damage.m_spirit = this.ApplyModifier(this.m_damage.m_spirit, modifiers.m_spirit, ref damage, ref num, ref num2, ref num3); |
| this.m_damage.m_spirit = this.ApplyModifier(this.m_damage.m_spirit, modifiers.m_spirit, ref damage, ref num, ref num2, ref num3); |
| significantModifier = HitData.DamageModifier.Immune; |
| significantModifier = HitData.DamageModifier.Immune; |
| if (num3 >= num && num3 >= num2 && num3 >= damage) |
| if (num3 >= num && num3 >= num2 && num3 >= damage) |
| { |
| { |
| significantModifier = HitData.DamageModifier.Immune; |
| significantModifier = HitData.DamageModifier.Immune; |
| } |
| } |
| if (damage >= num && damage >= num2 && damage >= num3) |
| if (damage >= num && damage >= num2 && damage >= num3) |
| { |
| { |
| significantModifier = HitData.DamageModifier.Normal; |
| significantModifier = HitData.DamageModifier.Normal; |
| } |
| } |
| if (num >= num2 && num >= num3 && num >= damage) |
| if (num >= num2 && num >= num3 && num >= damage) |
| { |
| { |
| significantModifier = HitData.DamageModifier.Resistant; |
| significantModifier = HitData.DamageModifier.Resistant; |
| } |
| } |
| if (num2 >= num && num2 >= num3 && num2 >= damage) |
| if (num2 >= num && num2 >= num3 && num2 >= damage) |
| { |
| { |
| significantModifier = HitData.DamageModifier.Weak; |
| significantModifier = HitData.DamageModifier.Weak; |
| } |
| } |
| } |
| } |
| |
| |
| public void ApplyArmor(float ac) |
| public void ApplyArmor(float ac) |
| { |
| { |
| this.m_damage.ApplyArmor(ac); |
| this.m_damage.ApplyArmor(ac); |
| } |
| } |
| |
| |
| public void ApplyModifier(float multiplier) |
| public void ApplyModifier(float multiplier) |
| { |
| { |
| this.m_damage.m_blunt = this.m_damage.m_blunt * multiplier; |
| this.m_damage.m_blunt = this.m_damage.m_blunt * multiplier; |
| this.m_damage.m_slash = this.m_damage.m_slash * multiplier; |
| this.m_damage.m_slash = this.m_damage.m_slash * multiplier; |
| this.m_damage.m_pierce = this.m_damage.m_pierce * multiplier; |
| this.m_damage.m_pierce = this.m_damage.m_pierce * multiplier; |
| this.m_damage.m_chop = this.m_damage.m_chop * multiplier; |
| this.m_damage.m_chop = this.m_damage.m_chop * multiplier; |
| this.m_damage.m_pickaxe = this.m_damage.m_pickaxe * multiplier; |
| this.m_damage.m_pickaxe = this.m_damage.m_pickaxe * multiplier; |
| this.m_damage.m_fire = this.m_damage.m_fire * multiplier; |
| this.m_damage.m_fire = this.m_damage.m_fire * multiplier; |
| this.m_damage.m_frost = this.m_damage.m_frost * multiplier; |
| this.m_damage.m_frost = this.m_damage.m_frost * multiplier; |
| this.m_damage.m_lightning = this.m_damage.m_lightning * multiplier; |
| this.m_damage.m_lightning = this.m_damage.m_lightning * multiplier; |
| this.m_damage.m_poison = this.m_damage.m_poison * multiplier; |
| this.m_damage.m_poison = this.m_damage.m_poison * multiplier; |
| this.m_damage.m_spirit = this.m_damage.m_spirit * multiplier; |
| this.m_damage.m_spirit = this.m_damage.m_spirit * multiplier; |
| } |
| } |
| |
| |
| public float GetTotalBlockableDamage() |
| public float GetTotalBlockableDamage() |
| { |
| { |
| return this.m_damage.GetTotalBlockableDamage(); |
| return this.m_damage.GetTotalBlockableDamage(); |
| } |
| } |
| |
| |
| public void BlockDamage(float damage) |
| public void BlockDamage(float damage) |
| { |
| { |
| float totalBlockableDamage = this.GetTotalBlockableDamage(); |
| float totalBlockableDamage = this.GetTotalBlockableDamage(); |
| float num = Mathf.Max(0f, totalBlockableDamage - damage); |
| float num = Mathf.Max(0f, totalBlockableDamage - damage); |
| if (totalBlockableDamage <= 0f) |
| if (totalBlockableDamage <= 0f) |
| { |
| { |
| return; |
| return; |
| } |
| } |
| float num2 = num / totalBlockableDamage; |
| float num2 = num / totalBlockableDamage; |
| this.m_damage.m_blunt = this.m_damage.m_blunt * num2; |
| this.m_damage.m_blunt = this.m_damage.m_blunt * num2; |
| this.m_damage.m_slash = this.m_damage.m_slash * num2; |
| this.m_damage.m_slash = this.m_damage.m_slash * num2; |
| this.m_damage.m_pierce = this.m_damage.m_pierce * num2; |
| this.m_damage.m_pierce = this.m_damage.m_pierce * num2; |
| this.m_damage.m_fire = this.m_damage.m_fire * num2; |
| this.m_damage.m_fire = this.m_damage.m_fire * num2; |
| this.m_damage.m_frost = this.m_damage.m_frost * num2; |
| this.m_damage.m_frost = this.m_damage.m_frost * num2; |
| this.m_damage.m_lightning = this.m_damage.m_lightning * num2; |
| this.m_damage.m_lightning = this.m_damage.m_lightning * num2; |
| this.m_damage.m_poison = this.m_damage.m_poison * num2; |
| this.m_damage.m_poison = this.m_damage.m_poison * num2; |
| this.m_damage.m_spirit = this.m_damage.m_spirit * num2; |
| this.m_damage.m_spirit = this.m_damage.m_spirit * num2; |
| } |
| } |
| |
| |
| public bool HaveAttacker() |
| public bool HaveAttacker() |
| { |
| { |
| return !this.m_attacker.IsNone(); |
| return !this.m_attacker.IsNone(); |
| } |
| } |
| |
| |
| public Character GetAttacker() |
| public Character GetAttacker() |
| { |
| { |
| if (this.m_attacker.IsNone()) |
| if (this.m_attacker.IsNone()) |
| { |
| { |
| return null; |
| return null; |
| } |
| } |
| if (ZNetScene.instance == null) |
| if (ZNetScene.instance == null) |
| { |
| { |
| return null; |
| return null; |
| } |
| } |
| GameObject gameObject = ZNetScene.instance.FindInstance(this.m_attacker); |
| GameObject gameObject = ZNetScene.instance.FindInstance(this.m_attacker); |
| if (gameObject == null) |
| if (gameObject == null) |
| { |
| { |
| return null; |
| return null; |
| } |
| } |
| return gameObject.GetComponent<Character>(); |
| return gameObject.GetComponent<Character>(); |
| } |
| } |
| |
| |
| public void SetAttacker(Character attacker) |
| public void SetAttacker(Character attacker) |
| { |
| { |
| if (attacker) |
| if (attacker) |
| { |
| { |
| this.m_attacker = attacker.GetZDOID(); |
| this.m_attacker = attacker.GetZDOID(); |
| return; |
| return; |
| } |
| } |
| this.m_attacker = ZDOID.None; |
| this.m_attacker = ZDOID.None; |
| } |
| } |
| |
| |
| . | |
| public bool CheckToolTier(int minToolTier, bool alwaysAllowTierZero = false) |
| |
| { |
| |
| return ((int)this.m_itemWorldLevel >= Game.m_worldLevel || !ZoneSystem.instance.GetGlobalKey(GlobalKeys.WorldLevelLockedTools) || (minToolTier <= 0 && alwaysAllowTierZero)) && (int)this.m_toolTier >= minToolTier; |
| |
| } |
| |
| |
| |
| public override string ToString() |
| |
| { |
| |
| HitData.m_sb.Clear(); |
| |
| HitData.m_sb.Append(string.Format("Hit: {0}, {1}", this.m_hitType, this.m_damage)); |
| |
| if (this.m_toolTier > 0) |
| |
| { |
| |
| HitData.m_sb.Append(string.Format(", Tooltier: {0}", this.m_toolTier)); |
| |
| } |
| |
| if (this.m_itemLevel > 0) |
| |
| { |
| |
| HitData.m_sb.Append(string.Format(", ItemLevel: {0}", this.m_itemLevel)); |
| |
| } |
| |
| if (this.m_skill != Skills.SkillType.None) |
| |
| { |
| |
| HitData.m_sb.Append(string.Format(", Skill: {0}", this.m_skill)); |
| |
| } |
| |
| if (this.m_statusEffectHash > 0) |
| |
| { |
| |
| HitData.m_sb.Append(string.Format(", Statushash: {0}", this.m_statusEffectHash)); |
| |
| } |
| |
| Character attacker = this.GetAttacker(); |
| |
| if (attacker != null) |
| |
| { |
| |
| HitData.m_sb.Append(", Attacker: " + attacker.m_name); |
| |
| } |
| |
| return HitData.m_sb.ToString(); |
| |
| } |
| |
| |
| |
| private static StringBuilder m_sb = new StringBuilder(); |
| |
| |
| public HitData.DamageTypes m_damage; |
| public HitData.DamageTypes m_damage; |
| |
| |
| public bool m_dodgeable; |
| public bool m_dodgeable; |
| |
| |
| public bool m_blockable; |
| public bool m_blockable; |
| |
| |
| public bool m_ranged; |
| public bool m_ranged; |
| |
| |
| public bool m_ignorePVP; |
| public bool m_ignorePVP; |
| |
| |
| public short m_toolTier; |
| public short m_toolTier; |
| |
| |
| public float m_pushForce; |
| public float m_pushForce; |
| |
| |
| public float m_backstabBonus = 1f; |
| public float m_backstabBonus = 1f; |
| |
| |
| public float m_staggerMultiplier = 1f; |
| public float m_staggerMultiplier = 1f; |
| |
| |
| public Vector3 m_point = Vector3.zero; |
| public Vector3 m_point = Vector3.zero; |
| |
| |
| public Vector3 m_dir = Vector3.zero; |
| public Vector3 m_dir = Vector3.zero; |
| |
| |
| public int m_statusEffectHash; |
| public int m_statusEffectHash; |
| |
| |
| public ZDOID m_attacker = ZDOID.None; |
| public ZDOID m_attacker = ZDOID.None; |
| |
| |
| public Skills.SkillType m_skill; |
| public Skills.SkillType m_skill; |
| |
| |
| public float m_skillRaiseAmount = 1f; |
| public float m_skillRaiseAmount = 1f; |
| |
| |
| public float m_skillLevel; |
| public float m_skillLevel; |
| |
| |
| public short m_itemLevel; |
| public short m_itemLevel; |
| |
| |
| public byte m_itemWorldLevel; |
| public byte m_itemWorldLevel; |
| |
| |
| public HitData.HitType m_hitType; |
| public HitData.HitType m_hitType; |
| |
| |
| . | |
| public float m_healthReturn; |
| |
| |
| |
| public float m_radius; |
| |
| |
| public short m_weakSpot = -1; |
| public short m_weakSpot = -1; |
| |
| |
| public Collider m_hitCollider; |
| public Collider m_hitCollider; |
| |
| |
| private struct HitDefaults |
| private struct HitDefaults |
| { |
| { |
| public const float c_DamageDefault = 0f; |
| public const float c_DamageDefault = 0f; |
| |
| |
| public const float c_PushForceDefault = 0f; |
| public const float c_PushForceDefault = 0f; |
| |
| |
| public const float c_BackstabBonusDefault = 1f; |
| public const float c_BackstabBonusDefault = 1f; |
| |
| |
| public const float c_StaggerMultiplierDefault = 1f; |
| public const float c_StaggerMultiplierDefault = 1f; |
| |
| |
| public static readonly ZDOID s_attackerDefault = ZDOID.None; |
| public static readonly ZDOID s_attackerDefault = ZDOID.None; |
| |
| |
| public const float c_SkillRaiseAmountDefault = 1f; |
| public const float c_SkillRaiseAmountDefault = 1f; |
| |
| |
| [Flags] |
| [Flags] |
| public enum SerializeFlags |
| public enum SerializeFlags |
| { |
| { |
| None = 0, |
| None = 0, |
| Damage = 1, |
| Damage = 1, |
| DamageBlunt = 2, |
| DamageBlunt = 2, |
| DamageSlash = 4, |
| DamageSlash = 4, |
| DamagePierce = 8, |
| DamagePierce = 8, |
| DamageChop = 16, |
| DamageChop = 16, |
| DamagePickaxe = 32, |
| DamagePickaxe = 32, |
| DamageFire = 64, |
| DamageFire = 64, |
| DamageFrost = 128, |
| DamageFrost = 128, |
| DamageLightning = 256, |
| DamageLightning = 256, |
| DamagePoison = 512, |
| DamagePoison = 512, |
| DamageSpirit = 1024, |
| DamageSpirit = 1024, |
| PushForce = 2048, |
| PushForce = 2048, |
| BackstabBonus = 4096, |
| BackstabBonus = 4096, |
| StaggerMultiplier = 8192, |
| StaggerMultiplier = 8192, |
| Attacker = 16384, |
| Attacker = 16384, |
| SkillRaiseAmount = 32768 |
| SkillRaiseAmount = 32768 |
| } |
| } |
| } |
| } |
| |
| |
| [Flags] |
| [Flags] |
| public enum DamageType |
| public enum DamageType |
| { |
| { |
| Blunt = 1, |
| Blunt = 1, |
| Slash = 2, |
| Slash = 2, |
| Pierce = 4, |
| Pierce = 4, |
| Chop = 8, |
| Chop = 8, |
| Pickaxe = 16, |
| Pickaxe = 16, |
| Fire = 32, |
| Fire = 32, |
| Frost = 64, |
| Frost = 64, |
| Lightning = 128, |
| Lightning = 128, |
| Poison = 256, |
| Poison = 256, |
| Spirit = 512, |
| Spirit = 512, |
| . | |
| Damage = 1024, |
| Physical = 31, |
| Physical = 31, |
| Elemental = 224 |
| Elemental = 224 |
| } |
| } |
| |
| |
| public enum DamageModifier |
| public enum DamageModifier |
| { |
| { |
| Normal, |
| Normal, |
| Resistant, |
| Resistant, |
| Weak, |
| Weak, |
| Immune, |
| Immune, |
| Ignore, |
| Ignore, |
| VeryResistant, |
| VeryResistant, |
| VeryWeak |
| VeryWeak |
| } |
| } |
| |
| |
| public enum HitType : byte |
| public enum HitType : byte |
| { |
| { |
| Undefined, |
| Undefined, |
| EnemyHit, |
| EnemyHit, |
| PlayerHit, |
| PlayerHit, |
| Fall, |
| Fall, |
| Drowning, |
| Drowning, |
| Burning, |
| Burning, |
| Freezing, |
| Freezing, |
| Poisoned, |
| Poisoned, |
| Water, |
| Water, |
| Smoke, |
| Smoke, |
| EdgeOfWorld, |
| EdgeOfWorld, |
| Impact, |
| Impact, |
| Cart, |
| Cart, |
| Tree, |
| Tree, |
| Self, |
| Self, |
| Structural, |
| Structural, |
| Turret, |
| Turret, |
| Boat, |
| Boat, |
| . | Stalagtite |
| Stalagtite, |
| |
| Catapult, |
| |
| CinderFire, |
| |
| AshlandsOcean |
| } |
| } |
| |
| |
| [Serializable] |
| [Serializable] |
| public struct DamageModPair |
| public struct DamageModPair |
| { |
| { |
| public HitData.DamageType m_type; |
| public HitData.DamageType m_type; |
| |
| |
| public HitData.DamageModifier m_modifier; |
| public HitData.DamageModifier m_modifier; |
| } |
| } |
| |
| |
| [Serializable] |
| [Serializable] |
| public struct DamageModifiers |
| public struct DamageModifiers |
| { |
| { |
| public HitData.DamageModifiers Clone() |
| public HitData.DamageModifiers Clone() |
| { |
| { |
| return (HitData.DamageModifiers)base.MemberwiseClone(); |
| return (HitData.DamageModifiers)base.MemberwiseClone(); |
| } |
| } |
| |
| |
| public void Apply(List<HitData.DamageModPair> modifiers) |
| public void Apply(List<HitData.DamageModPair> modifiers) |
| { |
| { |
| foreach (HitData.DamageModPair damageModPair in modifiers) |
| foreach (HitData.DamageModPair damageModPair in modifiers) |
| { |
| { |
| HitData.DamageType type = damageModPair.m_type; |
| HitData.DamageType type = damageModPair.m_type; |
| if (type <= HitData.DamageType.Fire) |
| if (type <= HitData.DamageType.Fire) |
| { |
| { |
| if (type <= HitData.DamageType.Chop) |
| if (type <= HitData.DamageType.Chop) |
| { |
| { |
| switch (type) |
| switch (type) |
| { |
| { |
| case HitData.DamageType.Blunt: |
| case HitData.DamageType.Blunt: |
| this.ApplyIfBetter(ref this.m_blunt, damageModPair.m_modifier); |
| this.ApplyIfBetter(ref this.m_blunt, damageModPair.m_modifier); |
| break; |
| break; |
| case HitData.DamageType.Slash: |
| case HitData.DamageType.Slash: |
| this.ApplyIfBetter(ref this.m_slash, damageModPair.m_modifier); |
| this.ApplyIfBetter(ref this.m_slash, damageModPair.m_modifier); |
| break; |
| break; |
| case HitData.DamageType.Blunt | HitData.DamageType.Slash: |
| case HitData.DamageType.Blunt | HitData.DamageType.Slash: |
| break; |
| break; |
| case HitData.DamageType.Pierce: |
| case HitData.DamageType.Pierce: |
| this.ApplyIfBetter(ref this.m_pierce, damageModPair.m_modifier); |
| this.ApplyIfBetter(ref this.m_pierce, damageModPair.m_modifier); |
| break; |
| break; |
| default: |
| default: |
| if (type == HitData.DamageType.Chop) |
| if (type == HitData.DamageType.Chop) |
| { |
| { |
| this.ApplyIfBetter(ref this.m_chop, damageModPair.m_modifier); |
| this.ApplyIfBetter(ref this.m_chop, damageModPair.m_modifier); |
| } |
| } |
| break; |
| break; |
| } |
| } |
| } |
| } |
| else if (type != HitData.DamageType.Pickaxe) |
| else if (type != HitData.DamageType.Pickaxe) |
| { |
| { |
| if (type == HitData.DamageType.Fire) |
| if (type == HitData.DamageType.Fire) |
| { |
| { |
| this.ApplyIfBetter(ref this.m_fire, damageModPair.m_modifier); |
| this.ApplyIfBetter(ref this.m_fire, damageModPair.m_modifier); |
| } |
| } |
| } |
| } |
| else |
| else |
| { |
| { |
| this.ApplyIfBetter(ref this.m_pickaxe, damageModPair.m_modifier); |
| this.ApplyIfBetter(ref this.m_pickaxe, damageModPair.m_modifier); |
| } |
| } |
| } |
| } |
| else if (type <= HitData.DamageType.Lightning) |
| else if (type <= HitData.DamageType.Lightning) |
| { |
| { |
| if (type != HitData.DamageType.Frost) |
| if (type != HitData.DamageType.Frost) |
| { |
| { |
| if (type == HitData.DamageType.Lightning) |
| if (type == HitData.DamageType.Lightning) |
| { |
| { |
| this.ApplyIfBetter(ref this.m_lightning, damageModPair.m_modifier); |
| this.ApplyIfBetter(ref this.m_lightning, damageModPair.m_modifier); |
| } |
| } |
| } |
| } |
| else |
| else |
| { |
| { |
| this.ApplyIfBetter(ref this.m_frost, damageModPair.m_modifier); |
| this.ApplyIfBetter(ref this.m_frost, damageModPair.m_modifier); |
| } |
| } |
| } |
| } |
| else if (type != HitData.DamageType.Poison) |
| else if (type != HitData.DamageType.Poison) |
| { |
| { |
| if (type == HitData.DamageType.Spirit) |
| if (type == HitData.DamageType.Spirit) |
| { |
| { |
| this.ApplyIfBetter(ref this.m_spirit, damageModPair.m_modifier); |
| this.ApplyIfBetter(ref this.m_spirit, damageModPair.m_modifier); |
| } |
| } |
| } |
| } |
| else |
| else |
| { |
| { |
| this.ApplyIfBetter(ref this.m_poison, damageModPair.m_modifier); |
| this.ApplyIfBetter(ref this.m_poison, damageModPair.m_modifier); |
| } |
| } |
| } |
| } |
| } |
| } |
| |
| |
| public HitData.DamageModifier GetModifier(HitData.DamageType type) |
| public HitData.DamageModifier GetModifier(HitData.DamageType type) |
| { |
| { |
| if (type <= HitData.DamageType.Fire) |
| if (type <= HitData.DamageType.Fire) |
| { |
| { |
| if (type <= HitData.DamageType.Chop) |
| if (type <= HitData.DamageType.Chop) |
| { |
| { |
| switch (type) |
| switch (type) |
| { |
| { |
| case HitData.DamageType.Blunt: |
| case HitData.DamageType.Blunt: |
| return this.m_blunt; |
| return this.m_blunt; |
| case HitData.DamageType.Slash: |
| case HitData.DamageType.Slash: |
| return this.m_slash; |
| return this.m_slash; |
| case HitData.DamageType.Blunt | HitData.DamageType.Slash: |
| case HitData.DamageType.Blunt | HitData.DamageType.Slash: |
| break; |
| break; |
| case HitData.DamageType.Pierce: |
| case HitData.DamageType.Pierce: |
| return this.m_pierce; |
| return this.m_pierce; |
| default: |
| default: |
| if (type == HitData.DamageType.Chop) |
| if (type == HitData.DamageType.Chop) |
| { |
| { |
| return this.m_chop; |
| return this.m_chop; |
| } |
| } |
| break; |
| break; |
| } |
| } |
| } |
| } |
| else |
| else |
| { |
| { |
| if (type == HitData.DamageType.Pickaxe) |
| if (type == HitData.DamageType.Pickaxe) |
| { |
| { |
| return this.m_pickaxe; |
| return this.m_pickaxe; |
| } |
| } |
| if (type == HitData.DamageType.Fire) |
| if (type == HitData.DamageType.Fire) |
| { |
| { |
| return this.m_fire; |
| return this.m_fire; |
| } |
| } |
| } |
| } |
| } |
| } |
| else if (type <= HitData.DamageType.Lightning) |
| else if (type <= HitData.DamageType.Lightning) |
| { |
| { |
| if (type == HitData.DamageType.Frost) |
| if (type == HitData.DamageType.Frost) |
| { |
| { |
| return this.m_frost; |
| return this.m_frost; |
| } |
| } |
| if (type == HitData.DamageType.Lightning) |
| if (type == HitData.DamageType.Lightning) |
| { |
| { |
| return this.m_lightning; |
| return this.m_lightning; |
| } |
| } |
| } |
| } |
| else |
| else |
| { |
| { |
| if (type == HitData.DamageType.Poison) |
| if (type == HitData.DamageType.Poison) |
| { |
| { |
| return this.m_poison; |
| return this.m_poison; |
| } |
| } |
| if (type == HitData.DamageType.Spirit) |
| if (type == HitData.DamageType.Spirit) |
| { |
| { |
| return this.m_spirit; |
| return this.m_spirit; |
| } |
| } |
| } |
| } |
| return HitData.DamageModifier.Normal; |
| return HitData.DamageModifier.Normal; |
| } |
| } |
| |
| |
| private void ApplyIfBetter(ref HitData.DamageModifier original, HitData.DamageModifier mod) |
| private void ApplyIfBetter(ref HitData.DamageModifier original, HitData.DamageModifier mod) |
| { |
| { |
| if (this.ShouldOverride(original, mod)) |
| if (this.ShouldOverride(original, mod)) |
| { |
| { |
| original = mod; |
| original = mod; |
| } |
| } |
| } |
| } |
| |
| |
| private bool ShouldOverride(HitData.DamageModifier a, HitData.DamageModifier b) |
| private bool ShouldOverride(HitData.DamageModifier a, HitData.DamageModifier b) |
| { |
| { |
| return a != HitData.DamageModifier.Ignore && (b == HitData.DamageModifier.Immune || ((a != HitData.DamageModifier.VeryResistant || b != HitData.DamageModifier.Resistant) && (a != HitData.DamageModifier.VeryWeak || b != HitData.DamageModifier.Weak) && ((a != HitData.DamageModifier.Resistant && a != HitData.DamageModifier.VeryResistant && a != HitData.DamageModifier.Immune) || (b != HitData.DamageModifier.Weak && b != HitData.DamageModifier.VeryWeak)))); |
| return a != HitData.DamageModifier.Ignore && (b == HitData.DamageModifier.Immune || ((a != HitData.DamageModifier.VeryResistant || b != HitData.DamageModifier.Resistant) && (a != HitData.DamageModifier.VeryWeak || b != HitData.DamageModifier.Weak) && ((a != HitData.DamageModifier.Resistant && a != HitData.DamageModifier.VeryResistant && a != HitData.DamageModifier.Immune) || (b != HitData.DamageModifier.Weak && b != HitData.DamageModifier.VeryWeak)))); |
| } |
| } |
| |
| |
| public void Print() |
| public void Print() |
| { |
| { |
| ZLog.Log("m_blunt " + this.m_blunt.ToString()); |
| ZLog.Log("m_blunt " + this.m_blunt.ToString()); |
| ZLog.Log("m_slash " + this.m_slash.ToString()); |
| ZLog.Log("m_slash " + this.m_slash.ToString()); |
| ZLog.Log("m_pierce " + this.m_pierce.ToString()); |
| ZLog.Log("m_pierce " + this.m_pierce.ToString()); |
| ZLog.Log("m_chop " + this.m_chop.ToString()); |
| ZLog.Log("m_chop " + this.m_chop.ToString()); |
| ZLog.Log("m_pickaxe " + this.m_pickaxe.ToString()); |
| ZLog.Log("m_pickaxe " + this.m_pickaxe.ToString()); |
| ZLog.Log("m_fire " + this.m_fire.ToString()); |
| ZLog.Log("m_fire " + this.m_fire.ToString()); |
| ZLog.Log("m_frost " + this.m_frost.ToString()); |
| ZLog.Log("m_frost " + this.m_frost.ToString()); |
| ZLog.Log("m_lightning " + this.m_lightning.ToString()); |
| ZLog.Log("m_lightning " + this.m_lightning.ToString()); |
| ZLog.Log("m_poison " + this.m_poison.ToString()); |
| ZLog.Log("m_poison " + this.m_poison.ToString()); |
| ZLog.Log("m_spirit " + this.m_spirit.ToString()); |
| ZLog.Log("m_spirit " + this.m_spirit.ToString()); |
| } |
| } |
| |
| |
| public HitData.DamageModifier m_blunt; |
| public HitData.DamageModifier m_blunt; |
| |
| |
| public HitData.DamageModifier m_slash; |
| public HitData.DamageModifier m_slash; |
| |
| |
| public HitData.DamageModifier m_pierce; |
| public HitData.DamageModifier m_pierce; |
| |
| |
| public HitData.DamageModifier m_chop; |
| public HitData.DamageModifier m_chop; |
| |
| |
| public HitData.DamageModifier m_pickaxe; |
| public HitData.DamageModifier m_pickaxe; |
| |
| |
| public HitData.DamageModifier m_fire; |
| public HitData.DamageModifier m_fire; |
| |
| |
| public HitData.DamageModifier m_frost; |
| public HitData.DamageModifier m_frost; |
| |
| |
| public HitData.DamageModifier m_lightning; |
| public HitData.DamageModifier m_lightning; |
| |
| |
| public HitData.DamageModifier m_poison; |
| public HitData.DamageModifier m_poison; |
| |
| |
| public HitData.DamageModifier m_spirit; |
| public HitData.DamageModifier m_spirit; |
| } |
| } |
| |
| |
| [Serializable] |
| [Serializable] |
| public struct DamageTypes |
| public struct DamageTypes |
| { |
| { |
| public bool HaveDamage() |
| public bool HaveDamage() |
| { |
| { |
| return this.m_damage > 0f || this.m_blunt > 0f || this.m_slash > 0f || this.m_pierce > 0f || this.m_chop > 0f || this.m_pickaxe > 0f || this.m_fire > 0f || this.m_frost > 0f || this.m_lightning > 0f || this.m_poison > 0f || this.m_spirit > 0f; |
| return this.m_damage > 0f || this.m_blunt > 0f || this.m_slash > 0f || this.m_pierce > 0f || this.m_chop > 0f || this.m_pickaxe > 0f || this.m_fire > 0f || this.m_frost > 0f || this.m_lightning > 0f || this.m_poison > 0f || this.m_spirit > 0f; |
| } |
| } |
| |
| |
| public float GetTotalPhysicalDamage() |
| public float GetTotalPhysicalDamage() |
| { |
| { |
| return this.m_blunt + this.m_slash + this.m_pierce; |
| return this.m_blunt + this.m_slash + this.m_pierce; |
| } |
| } |
| |
| |
| public float GetTotalStaggerDamage() |
| public float GetTotalStaggerDamage() |
| { |
| { |
| return this.m_blunt + this.m_slash + this.m_pierce + this.m_lightning; |
| return this.m_blunt + this.m_slash + this.m_pierce + this.m_lightning; |
| } |
| } |
| |
| |
| public float GetTotalBlockableDamage() |
| public float GetTotalBlockableDamage() |
| { |
| { |
| return this.m_blunt + this.m_slash + this.m_pierce + this.m_fire + this.m_frost + this.m_lightning + this.m_poison + this.m_spirit; |
| return this.m_blunt + this.m_slash + this.m_pierce + this.m_fire + this.m_frost + this.m_lightning + this.m_poison + this.m_spirit; |
| } |
| } |
| |
| |
| public float GetTotalElementalDamage() |
| public float GetTotalElementalDamage() |
| { |
| { |
| return this.m_fire + this.m_frost + this.m_lightning; |
| return this.m_fire + this.m_frost + this.m_lightning; |
| } |
| } |
| |
| |
| public float GetTotalDamage() |
| public float GetTotalDamage() |
| { |
| { |
| return this.m_damage + this.m_blunt + this.m_slash + this.m_pierce + this.m_chop + this.m_pickaxe + this.m_fire + this.m_frost + this.m_lightning + this.m_poison + this.m_spirit; |
| return this.m_damage + this.m_blunt + this.m_slash + this.m_pierce + this.m_chop + this.m_pickaxe + this.m_fire + this.m_frost + this.m_lightning + this.m_poison + this.m_spirit; |
| } |
| } |
| |
| |
| public HitData.DamageTypes Clone() |
| public HitData.DamageTypes Clone() |
| { |
| { |
| return (HitData.DamageTypes)base.MemberwiseClone(); |
| return (HitData.DamageTypes)base.MemberwiseClone(); |
| } |
| } |
| |
| |
| public void Add(HitData.DamageTypes other, int multiplier = 1) |
| public void Add(HitData.DamageTypes other, int multiplier = 1) |
| { |
| { |
| this.m_damage += other.m_damage * (float)multiplier; |
| this.m_damage += other.m_damage * (float)multiplier; |
| this.m_blunt += other.m_blunt * (float)multiplier; |
| this.m_blunt += other.m_blunt * (float)multiplier; |
| this.m_slash += other.m_slash * (float)multiplier; |
| this.m_slash += other.m_slash * (float)multiplier; |
| this.m_pierce += other.m_pierce * (float)multiplier; |
| this.m_pierce += other.m_pierce * (float)multiplier; |
| this.m_chop += other.m_chop * (float)multiplier; |
| this.m_chop += other.m_chop * (float)multiplier; |
| this.m_pickaxe += other.m_pickaxe * (float)multiplier; |
| this.m_pickaxe += other.m_pickaxe * (float)multiplier; |
| this.m_fire += other.m_fire * (float)multiplier; |
| this.m_fire += other.m_fire * (float)multiplier; |
| this.m_frost += other.m_frost * (float)multiplier; |
| this.m_frost += other.m_frost * (float)multiplier; |
| this.m_lightning += other.m_lightning * (float)multiplier; |
| this.m_lightning += other.m_lightning * (float)multiplier; |
| this.m_poison += other.m_poison * (float)multiplier; |
| this.m_poison += other.m_poison * (float)multiplier; |
| this.m_spirit += other.m_spirit * (float)multiplier; |
| this.m_spirit += other.m_spirit * (float)multiplier; |
| } |
| } |
| |
| |
| public void Modify(float multiplier) |
| public void Modify(float multiplier) |
| { |
| { |
| this.m_damage *= multiplier; |
| this.m_damage *= multiplier; |
| this.m_blunt *= multiplier; |
| this.m_blunt *= multiplier; |
| this.m_slash *= multiplier; |
| this.m_slash *= multiplier; |
| this.m_pierce *= multiplier; |
| this.m_pierce *= multiplier; |
| this.m_chop *= multiplier; |
| this.m_chop *= multiplier; |
| this.m_pickaxe *= multiplier; |
| this.m_pickaxe *= multiplier; |
| this.m_fire *= multiplier; |
| this.m_fire *= multiplier; |
| this.m_frost *= multiplier; |
| this.m_frost *= multiplier; |
| this.m_lightning *= multiplier; |
| this.m_lightning *= multiplier; |
| this.m_poison *= multiplier; |
| this.m_poison *= multiplier; |
| this.m_spirit *= multiplier; |
| this.m_spirit *= multiplier; |
| } |
| } |
| |
| |
| . | |
| public void Modify(HitData.DamageTypes multipliers) |
| |
| { |
| |
| this.m_damage *= 1f + multipliers.m_damage; |
| |
| this.m_blunt *= 1f + multipliers.m_blunt; |
| |
| this.m_slash *= 1f + multipliers.m_slash; |
| |
| this.m_pierce *= 1f + multipliers.m_pierce; |
| |
| this.m_chop *= 1f + multipliers.m_chop; |
| |
| this.m_pickaxe *= 1f + multipliers.m_pickaxe; |
| |
| this.m_fire *= 1f + multipliers.m_fire; |
| |
| this.m_frost *= 1f + multipliers.m_frost; |
| |
| this.m_lightning *= 1f + multipliers.m_lightning; |
| |
| this.m_poison *= 1f + multipliers.m_poison; |
| |
| this.m_spirit *= 1f + multipliers.m_spirit; |
| |
| } |
| |
| |
| public void IncreaseEqually(float totalDamageIncrease, bool seperateUtilityDamage = false) |
| public void IncreaseEqually(float totalDamageIncrease, bool seperateUtilityDamage = false) |
| { |
| { |
| . | HitData.DamageTypes.<>c__DisplayClass20_0 CS$<>8__locals1; |
| HitData.DamageTypes.<>c__DisplayClass21_0 CS$<>8__locals1; |
| CS$<>8__locals1.totalDamageIncrease = totalDamageIncrease; |
| CS$<>8__locals1.totalDamageIncrease = totalDamageIncrease; |
| CS$<>8__locals1.total = this.GetTotalDamage(); |
| CS$<>8__locals1.total = this.GetTotalDamage(); |
| if (CS$<>8__locals1.total <= 0f) |
| if (CS$<>8__locals1.total <= 0f) |
| { |
| { |
| return; |
| return; |
| } |
| } |
| if (seperateUtilityDamage) |
| if (seperateUtilityDamage) |
| { |
| { |
| float chop = this.m_chop; |
| float chop = this.m_chop; |
| this.m_chop += this.m_chop / CS$<>8__locals1.total * CS$<>8__locals1.totalDamageIncrease; |
| this.m_chop += this.m_chop / CS$<>8__locals1.total * CS$<>8__locals1.totalDamageIncrease; |
| CS$<>8__locals1.total -= chop; |
| CS$<>8__locals1.total -= chop; |
| } |
| } |
| else |
| else |
| { |
| { |
| . | HitData.DamageTypes.<IncreaseEqually>g__increase|20_0(ref this.m_chop, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|21_0(ref this.m_chop, ref CS$<>8__locals1); |
| } |
| } |
| . | HitData.DamageTypes.<IncreaseEqually>g__increase|20_0(ref this.m_damage, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|21_0(ref this.m_damage, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|20_0(ref this.m_blunt, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|21_0(ref this.m_blunt, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|20_0(ref this.m_slash, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|21_0(ref this.m_slash, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|20_0(ref this.m_pierce, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|21_0(ref this.m_pierce, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|20_0(ref this.m_pickaxe, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|21_0(ref this.m_pickaxe, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|20_0(ref this.m_fire, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|21_0(ref this.m_fire, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|20_0(ref this.m_frost, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|21_0(ref this.m_frost, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|20_0(ref this.m_lightning, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|21_0(ref this.m_lightning, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|20_0(ref this.m_poison, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|21_0(ref this.m_poison, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|20_0(ref this.m_spirit, ref CS$<>8__locals1); |
| HitData.DamageTypes.<IncreaseEqually>g__increase|21_0(ref this.m_spirit, ref CS$<>8__locals1); |
| } |
| } |
| |
| |
| public static float ApplyArmor(float dmg, float ac) |
| public static float ApplyArmor(float dmg, float ac) |
| { |
| { |
| float num = Mathf.Clamp01(dmg / (ac * 4f)) * dmg; |
| float num = Mathf.Clamp01(dmg / (ac * 4f)) * dmg; |
| if (ac < dmg / 2f) |
| if (ac < dmg / 2f) |
| { |
| { |
| num = dmg - ac; |
| num = dmg - ac; |
| } |
| } |
| return num; |
| return num; |
| } |
| } |
| |
| |
| public void ApplyArmor(float ac) |
| public void ApplyArmor(float ac) |
| { |
| { |
| if (ac <= 0f) |
| if (ac <= 0f) |
| { |
| { |
| return; |
| return; |
| } |
| } |
| float num = this.m_blunt + this.m_slash + this.m_pierce + this.m_fire + this.m_frost + this.m_lightning + this.m_poison + this.m_spirit; |
| float num = this.m_blunt + this.m_slash + this.m_pierce + this.m_fire + this.m_frost + this.m_lightning + this.m_poison + this.m_spirit; |
| if (num <= 0f) |
| if (num <= 0f) |
| { |
| { |
| return; |
| return; |
| } |
| } |
| float num2 = HitData.DamageTypes.ApplyArmor(num, ac) / num; |
| float num2 = HitData.DamageTypes.ApplyArmor(num, ac) / num; |
| this.m_blunt *= num2; |
| this.m_blunt *= num2; |
| this.m_slash *= num2; |
| this.m_slash *= num2; |
| this.m_pierce *= num2; |
| this.m_pierce *= num2; |
| this.m_fire *= num2; |
| this.m_fire *= num2; |
| this.m_frost *= num2; |
| this.m_frost *= num2; |
| this.m_lightning *= num2; |
| this.m_lightning *= num2; |
| this.m_poison *= num2; |
| this.m_poison *= num2; |
| this.m_spirit *= num2; |
| this.m_spirit *= num2; |
| } |
| } |
| |
| |
| . | private string DamageRange(float damage, float minFactor, float maxFactor) |
| public HitData.DamageType GetMajorityDamageType() |
| { |
| { |
| . | int num = Mathf.RoundToInt(damage * minFactor); |
| float num; |
| int num2 = Mathf.RoundToInt(damage * maxFactor); |
| return this.GetMajorityDamageType(out num); |
| return string.Concat(new string[] |
| } |
| { |
| |
| "<color=orange>", |
| public HitData.DamageType GetMajorityDamageType(out float damage) |
| Mathf.RoundToInt(damage).ToString(), |
| { |
| "</color> <color=yellow>(", |
| damage = this.m_damage; |
| num.ToString(), |
| HitData.DamageType damageType = HitData.DamageType.Damage; |
| "-", |
| if (this.m_slash > damage) |
| num2.ToString(), |
| { |
| ") </color>" |
| damage = this.m_slash; |
| }); |
| damageType = HitData.DamageType.Slash; |
| |
| } |
| |
| if (this.m_pierce > damage) |
| |
| { |
| |
| damage = this.m_pierce; |
| |
| damageType = HitData.DamageType.Pierce; |
| |
| } |
| |
| if (this.m_chop > damage) |
| |
| { |
| |
| damage = this.m_chop; |
| |
| damageType = HitData.DamageType.Chop; |
| |
| } |
| |
| if (this.m_pickaxe > damage) |
| |
| { |
| |
| damage = this.m_pickaxe; |
| |
| damageType = HitData.DamageType.Pickaxe; |
| |
| } |
| |
| if (this.m_fire > damage) |
| |
| { |
| |
| damage = this.m_fire; |
| |
| damageType = HitData.DamageType.Fire; |
| |
| } |
| |
| if (this.m_frost > damage) |
| |
| { |
| |
| damage = this.m_frost; |
| |
| damageType = HitData.DamageType.Frost; |
| |
| } |
| |
| if (this.m_lightning > damage) |
| |
| { |
| |
| damage = this.m_lightning; |
| |
| damageType = HitData.DamageType.Lightning; |
| |
| } |
| |
| if (this.m_poison > damage) |
| |
| { |
| |
| damage = this.m_poison; |
| |
| damageType = HitData.DamageType.Poison; |
| |
| } |
| |
| if (this.m_spirit > damage) |
| |
| { |
| |
| damage = this.m_spirit; |
| |
| damageType = HitData.DamageType.Spirit; |
| |
| } |
| |
| return damageType; |
| } |
| } |
| |
| |
| public string GetTooltipString(Skills.SkillType skillType = Skills.SkillType.None) |
| public string GetTooltipString(Skills.SkillType skillType = Skills.SkillType.None) |
| { |
| { |
| if (Player.m_localPlayer == null) |
| if (Player.m_localPlayer == null) |
| { |
| { |
| return ""; |
| return ""; |
| } |
| } |
| float num; |
| float num; |
| float num2; |
| float num2; |
| Player.m_localPlayer.GetSkills().GetRandomSkillRange(out num, out num2, skillType); |
| Player.m_localPlayer.GetSkills().GetRandomSkillRange(out num, out num2, skillType); |
| . | string text = ""; |
| HitData.DamageTypes.m_sb.Clear(); |
| if (this.m_damage != 0f) |
| if (this.m_damage != 0f) |
| { |
| { |
| . | text = text + "\n$inventory_damage: " + this.DamageRange(this.m_damage, num, num2); |
| HitData.DamageTypes.m_sb.Append(string.Format("\n$inventory_damage: <color=orange>{0}</color> <color=yellow>({1}-{2}) </color>", Mathf.RoundToInt(this.m_damage), Mathf.RoundToInt(this.m_damage * num), Mathf.RoundToInt(this.m_damage * num2))); |
| } |
| } |
| if (this.m_blunt != 0f) |
| if (this.m_blunt != 0f) |
| { |
| { |
| . | text = text + "\n$inventory_blunt: " + this.DamageRange(this.m_blunt, num, num2); |
| HitData.DamageTypes.m_sb.Append(string.Format("\n$inventory_blunt: <color=orange>{0}</color> <color=yellow>({1}-{2}) </color>", Mathf.RoundToInt(this.m_blunt), Mathf.RoundToInt(this.m_blunt * num), Mathf.RoundToInt(this.m_blunt * num2))); |
| } |
| } |
| if (this.m_slash != 0f) |
| if (this.m_slash != 0f) |
| { |
| { |
| . | text = text + "\n$inventory_slash: " + this.DamageRange(this.m_slash, num, num2); |
| HitData.DamageTypes.m_sb.Append(string.Format("\n$inventory_slash: <color=orange>{0}</color> <color=yellow>({1}-{2}) </color>", Mathf.RoundToInt(this.m_slash), Mathf.RoundToInt(this.m_slash * num), Mathf.RoundToInt(this.m_slash * num2))); |
| } |
| } |
| if (this.m_pierce != 0f) |
| if (this.m_pierce != 0f) |
| { |
| { |
| . | text = text + "\n$inventory_pierce: " + this.DamageRange(this.m_pierce, num, num2); |
| HitData.DamageTypes.m_sb.Append(string.Format("\n$inventory_pierce: <color=orange>{0}</color> <color=yellow>({1}-{2}) </color>", Mathf.RoundToInt(this.m_pierce), Mathf.RoundToInt(this.m_pierce * num), Mathf.RoundToInt(this.m_pierce * num2))); |
| } |
| } |
| if (this.m_fire != 0f) |
| if (this.m_fire != 0f) |
| { |
| { |
| . | text = text + "\n$inventory_fire: " + this.DamageRange(this.m_fire, num, num2); |
| HitData.DamageTypes.m_sb.Append(string.Format("\n$inventory_fire: <color=orange>{0}</color> <color=yellow>({1}-{2}) </color>", Mathf.RoundToInt(this.m_fire), Mathf.RoundToInt(this.m_fire * num), Mathf.RoundToInt(this.m_fire * num2))); |
| } |
| } |
| if (this.m_frost != 0f) |
| if (this.m_frost != 0f) |
| { |
| { |
| . | text = text + "\n$inventory_frost: " + this.DamageRange(this.m_frost, num, num2); |
| HitData.DamageTypes.m_sb.Append(string.Format("\n$inventory_frost: <color=orange>{0}</color> <color=yellow>({1}-{2}) </color>", Mathf.RoundToInt(this.m_frost), Mathf.RoundToInt(this.m_frost * num), Mathf.RoundToInt(this.m_frost * num2))); |
| } |
| } |
| if (this.m_lightning != 0f) |
| if (this.m_lightning != 0f) |
| { |
| { |
| . | text = text + "\n$inventory_lightning: " + this.DamageRange(this.m_lightning, num, num2); |
| HitData.DamageTypes.m_sb.Append(string.Format("\n$inventory_lightning: <color=orange>{0}</color> <color=yellow>({1}-{2}) </color>", Mathf.RoundToInt(this.m_lightning), Mathf.RoundToInt(this.m_lightning * num), Mathf.RoundToInt(this.m_lightning * num2))); |
| } |
| } |
| if (this.m_poison != 0f) |
| if (this.m_poison != 0f) |
| { |
| { |
| . | text = text + "\n$inventory_poison: " + this.DamageRange(this.m_poison, num, num2); |
| HitData.DamageTypes.m_sb.Append(string.Format("\n$inventory_poison: <color=orange>{0}</color> <color=yellow>({1}-{2}) </color>", Mathf.RoundToInt(this.m_poison), Mathf.RoundToInt(this.m_poison * num), Mathf.RoundToInt(this.m_poison * num2))); |
| } |
| } |
| if (this.m_spirit != 0f) |
| if (this.m_spirit != 0f) |
| { |
| { |
| . | text = text + "\n$inventory_spirit: " + this.DamageRange(this.m_spirit, num, num2); |
| HitData.DamageTypes.m_sb.Append(string.Format("\n$inventory_spirit: <color=orange>{0}</color> <color=yellow>({1}-{2}) </color>", Mathf.RoundToInt(this.m_spirit), Mathf.RoundToInt(this.m_spirit * num), Mathf.RoundToInt(this.m_spirit * num2))); |
| } |
| } |
| . | return text; |
| return HitData.DamageTypes.m_sb.ToString(); |
| } |
| } |
| |
| |
| public string GetTooltipString() |
| public string GetTooltipString() |
| { |
| { |
| . | string text = ""; |
| HitData.DamageTypes.m_sb.Clear(); |
| if (this.m_damage != 0f) |
| if (this.m_damage != 0f) |
| { |
| { |
| . | text = text + "\n$inventory_damage: <color=yellow>" + this.m_damage.ToString() + "</color>"; |
| HitData.DamageTypes.m_sb.Append(string.Format("\n$inventory_damage: <color=yellow>{0}</color>", this.m_damage)); |
| } |
| } |
| if (this.m_blunt != 0f) |
| if (this.m_blunt != 0f) |
| { |
| { |
| . | text = text + "\n$inventory_blunt: <color=yellow>" + this.m_blunt.ToString() + "</color>"; |
| HitData.DamageTypes.m_sb.Append(string.Format("\n$inventory_blunt: <color=yellow>{0}</color>", this.m_blunt)); |
| } |
| } |
| if (this.m_slash != 0f) |
| if (this.m_slash != 0f) |
| { |
| { |
| . | text = text + "\n$inventory_slash: <color=yellow>" + this.m_slash.ToString() + "</color>"; |
| HitData.DamageTypes.m_sb.Append(string.Format("\n$inventory_slash: <color=yellow>{0}</color>", this.m_slash)); |
| } |
| } |
| if (this.m_pierce != 0f) |
| if (this.m_pierce != 0f) |
| { |
| { |
| . | text = text + "\n$inventory_pierce: <color=yellow>" + this.m_pierce.ToString() + "</color>"; |
| HitData.DamageTypes.m_sb.Append(string.Format("\n$inventory_pierce: <color=yellow>{0}</color>", this.m_pierce)); |
| } |
| } |
| if (this.m_fire != 0f) |
| if (this.m_fire != 0f) |
| { |
| { |
| . | text = text + "\n$inventory_fire: <color=yellow>" + this.m_fire.ToString() + "</color>"; |
| HitData.DamageTypes.m_sb.Append(string.Format("\n$inventory_fire: <color=yellow>{0}</color>", this.m_fire)); |
| } |
| } |
| if (this.m_frost != 0f) |
| if (this.m_frost != 0f) |
| { |
| { |
| . | text = text + "\n$inventory_frost: <color=yellow>" + this.m_frost.ToString() + "</color>"; |
| HitData.DamageTypes.m_sb.Append(string.Format("\n$inventory_frost: <color=yellow>{0}</color>", this.m_frost)); |
| } |
| } |
| if (this.m_lightning != 0f) |
| if (this.m_lightning != 0f) |
| { |
| { |
| . | text = text + "\n$inventory_lightning: <color=yellow>" + this.m_frost.ToString() + "</color>"; |
| HitData.DamageTypes.m_sb.Append(string.Format("\n$inventory_lightning: <color=yellow>{0}</color>", this.m_frost)); |
| } |
| } |
| if (this.m_poison != 0f) |
| if (this.m_poison != 0f) |
| { |
| { |
| . | text = text + "\n$inventory_poison: <color=yellow>" + this.m_poison.ToString() + "</color>"; |
| HitData.DamageTypes.m_sb.Append(string.Format("\n$inventory_poison: <color=yellow>{0}</color>", this.m_poison)); |
| } |
| } |
| if (this.m_spirit != 0f) |
| if (this.m_spirit != 0f) |
| { |
| { |
| . | text = text + "\n$inventory_spirit: <color=yellow>" + this.m_spirit.ToString() + "</color>"; |
| HitData.DamageTypes.m_sb.Append(string.Format("\n$inventory_spirit: <color=yellow>{0}</color>", this.m_spirit)); |
| } |
| } |
| . | return text; |
| return HitData.DamageTypes.m_sb.ToString(); |
| |
| } |
| |
| |
| |
| public override string ToString() |
| |
| { |
| |
| HitData.DamageTypes.m_sb.Clear(); |
| |
| if (this.m_damage != 0f) |
| |
| { |
| |
| HitData.DamageTypes.m_sb.Append(string.Format("Damage: {0} ", this.m_damage)); |
| |
| } |
| |
| if (this.m_blunt != 0f) |
| |
| { |
| |
| HitData.DamageTypes.m_sb.Append(string.Format("Blunt: {0} ", this.m_blunt)); |
| |
| } |
| |
| if (this.m_slash != 0f) |
| |
| { |
| |
| HitData.DamageTypes.m_sb.Append(string.Format("Slash: {0} ", this.m_slash)); |
| |
| } |
| |
| if (this.m_pierce != 0f) |
| |
| { |
| |
| HitData.DamageTypes.m_sb.Append(string.Format("Pierce: {0} ", this.m_pierce)); |
| |
| } |
| |
| if (this.m_fire != 0f) |
| |
| { |
| |
| HitData.DamageTypes.m_sb.Append(string.Format("Fire: {0} ", this.m_fire)); |
| |
| } |
| |
| if (this.m_frost != 0f) |
| |
| { |
| |
| HitData.DamageTypes.m_sb.Append(string.Format("Frost: {0} ", this.m_frost)); |
| |
| } |
| |
| if (this.m_lightning != 0f) |
| |
| { |
| |
| HitData.DamageTypes.m_sb.Append(string.Format("Lightning: {0} ", this.m_frost)); |
| |
| } |
| |
| if (this.m_poison != 0f) |
| |
| { |
| |
| HitData.DamageTypes.m_sb.Append(string.Format("Poison: {0} ", this.m_poison)); |
| |
| } |
| |
| if (this.m_spirit != 0f) |
| |
| { |
| |
| HitData.DamageTypes.m_sb.Append(string.Format("Spirit: {0} ", this.m_spirit)); |
| |
| } |
| |
| if (this.m_chop != 0f) |
| |
| { |
| |
| HitData.DamageTypes.m_sb.Append(string.Format("Chop: {0} ", this.m_chop)); |
| |
| } |
| |
| if (this.m_pickaxe != 0f) |
| |
| { |
| |
| HitData.DamageTypes.m_sb.Append(string.Format("Pickaxe: {0} ", this.m_pickaxe)); |
| |
| } |
| |
| return HitData.DamageTypes.m_sb.ToString(); |
| } |
| } |
| |
| |
| [CompilerGenerated] |
| [CompilerGenerated] |
| . | internal static void <IncreaseEqually>g__increase|20_0(ref float damage, ref HitData.DamageTypes.<>c__DisplayClass20_0 A_1) |
| internal static void <IncreaseEqually>g__increase|21_0(ref float damage, ref HitData.DamageTypes.<>c__DisplayClass21_0 A_1) |
| { |
| { |
| damage += damage / A_1.total * A_1.totalDamageIncrease; |
| damage += damage / A_1.total * A_1.totalDamageIncrease; |
| } |
| } |
| |
| |
| public float m_damage; |
| public float m_damage; |
| |
| |
| public float m_blunt; |
| public float m_blunt; |
| |
| |
| public float m_slash; |
| public float m_slash; |
| |
| |
| public float m_pierce; |
| public float m_pierce; |
| |
| |
| public float m_chop; |
| public float m_chop; |
| |
| |
| public float m_pickaxe; |
| public float m_pickaxe; |
| |
| |
| public float m_fire; |
| public float m_fire; |
| |
| |
| public float m_frost; |
| public float m_frost; |
| |
| |
| public float m_lightning; |
| public float m_lightning; |
| |
| |
| public float m_poison; |
| public float m_poison; |
| |
| |
| public float m_spirit; |
| public float m_spirit; |
| . | |
| |
| |
| private static StringBuilder m_sb = new StringBuilder(); |
| } |
| } |
| } |
| } |
| |
| |