示例#1
0
        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();
            }
        }
示例#2
0
        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;
        }