コード例 #1
0
ファイル: Combat.cs プロジェクト: Kane96/IdleMon
    void Update()
    {
        playerSpeed = (float)player.GetActive().GetSpeed() / 1000;

        if (opponent.GetCurrentHitPoints() > 0)
        {
            count += Time.deltaTime;
        }
        if (count > cooldown - playerSpeed * 4)
        {
            AttackTarget(player, opponent);
            count = 0;
        }
    }
コード例 #2
0
ファイル: Combat.cs プロジェクト: Kane96/IdleMon
    private void AttackTarget(ActivePokemon attacker, ActivePokemon target)
    {
        UniquePokemon pokemonAttacker    = attacker.GetActive();
        UniquePokemon pokemonTarget      = target.GetActive();
        int           attackerLevel      = pokemonAttacker.GetLevel();
        int           attackerAttackStat = pokemonAttacker.GetAttack();
        int           targetDefenceStat  = pokemonTarget.GetDefence();

        int damage = CalculateDamage(attackerLevel, attackerAttackStat, targetDefenceStat);

        target.TakeDamage(damage);
        if (target.GetCurrentHitPoints() == 0)
        {
            target.Faint();
            if (attacker.IsPlayer())
            {
                pokemonAttacker.GainExp(pokemonTarget.CalculateExperienceReward());
                attacker.UpdateText();
            }
        }
    }