private void ResolveHP(PawnStatistics _src, PawnStatistics _target, ResolveResult _result) { float weaponBonus = 0; if (_src.m_EquippedWeapon != null) { Weapon wpn = _src.m_EquippedWeapon; weaponBonus = wpn.m_Atk + UnityEngine.Random.Range(-wpn.m_AtkR, wpn.m_AtkR); } float dmg = (_src.m_Atk * m_DamageFactor) + weaponBonus - _target.m_Def; if (dmg < 0) { dmg = 0; } int realDamage = (int)dmg; _result.m_Damage = realDamage; _target.m_HP -= realDamage; if (_target.m_HP <= 0) { _target.m_HP = 0; PawnBehavior behavior = _target.GetComponent <PawnBehavior>(); behavior.SetDeadState(); } }
public void Resolve(ResolveResult _result) { PawnStatistics pawnStats = m_Pawn.GetComponent <PawnStatistics>(); PawnStatistics targetStats = m_Target.GetComponent <PawnStatistics>(); float weaponBonus = 0; if (pawnStats.m_EquippedWeapon != null) { Weapon wpn = pawnStats.m_EquippedWeapon; weaponBonus = wpn.m_Atk + Random.Range(-wpn.m_AtkR, wpn.m_AtkR); } float dmg = pawnStats.m_Atk + weaponBonus - targetStats.m_Def; if (dmg < 0) { dmg = 0; } int realDamage = (int)dmg; targetStats.m_HP -= realDamage; if (targetStats.m_HP <= 0) { targetStats.m_HP = 0; PawnBehavior behavior = m_Target.GetComponent <PawnBehavior>(); behavior.SetDeadState(); } _result.m_Damage = realDamage; }