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; } }
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; } }