Exemplo n.º 1
0
    public void EnemyCheck()
    {
        if (StepCount < 4)
        {
            return;
        }
        var enemyChance = Random.Range(0, 6);

        if (enemyChance == 1)
        {
            EnemyManager.SpawnEnemy();
            ScreenEffects.Flash(Color.white);
            StepCount     = 0;
            StrengthBonus = 0;
        }
    }
Exemplo n.º 2
0
    public void Attack(Enemy e)
    {
        var   EquippedWeapon = Player.EquippedWeapon;
        float dmg            = 1;
        // Roll for miss
        var hitChance = Random.Range(0, 100);

        if (hitChance > Stats.HitChance)
        {
            BattleText.SendText(PlayerStats.PlayerName + " missed!");
            turnTimer = 0;
            EnemyEffects.Dodge();
            return;
        }
        else
        {
            //Roll attack numbers
            if (EquippedWeapon == null)
            {
                dmg = Random.Range(1, 3);
                dmg = Mathf.CeilToInt(dmg) * Player.Stats.MeleeDamage;
                Debug.Log("Base Damage = " + dmg);
            }
            else
            {
                dmg = Random.Range(EquippedWeapon.MinDamage, (EquippedWeapon.MaxDamage));
                dmg = Mathf.Clamp(dmg, 1, 999);
                Debug.Log("Weapon Damage = " + dmg);

                if (EquippedWeapon.Type == Weapon.WeaponType.Magic)
                {
                    dmg *= Stats.MagicDamage;
                    Debug.Log("Weapon Multiply Damage = " + dmg);
                }
                else if (EquippedWeapon.Type == Weapon.WeaponType.Melee)
                {
                    dmg *= Stats.MeleeDamage;
                    Debug.Log("Weapon Multiply Damage = " + dmg);
                }
                else if (EquippedWeapon.Type == Weapon.WeaponType.Ranged)
                {
                    dmg *= Stats.RangeDamage;
                    Debug.Log("Weapon Multiply Damage = " + dmg);
                }
            }
        }
        dmg *= PlayerStats.StrengthBonus;
        Debug.Log(PlayerStats.StrengthBonus);
        Debug.Log("Strength Bonus Damage = " + dmg);

        float critChance = Random.Range(0, 20);

        if (critChance < 1 + Stats.CritBonus)
        {
            dmg *= 2.5f;
            dmg  = Mathf.CeilToInt(dmg);
            Debug.Log("Crit Damage = " + dmg);

            BattleText.SendText("Critical Hit!" + "\n" + PlayerStats.PlayerName + " dealt " + dmg + " damage to " + e.EnemyName + "!");
            if (e.HP > dmg)
            {
                turnTimer = 0;
            }
            else
            {
                turnTimer = -1;
            }
            e.TakeDamage(dmg, BattleText, Player);

            //turnTimer = 0;
        }
        else
        {
            dmg = Mathf.CeilToInt(dmg);
            Debug.Log("Rounded Up Damage = " + dmg);

            if (e.HP > dmg)
            {
                turnTimer = 0;
            }
            else
            {
                turnTimer = -1;
            }
            BattleText.SendText(PlayerStats.PlayerName + " dealt " + dmg + " damage to " + e.EnemyName + "!");
            e.TakeDamage(dmg, BattleText, Player);
            EnemyEffects.Flash(Color.red);
            //turnTimer = 0;
        }
    }