public void FullTurn() => tp.FullTurn();
private void ReduceBar(ProgressBar bar, int index, Skill skill, TextBox e_box) { Enemy target = d.enemies[index]; // generalize this for boss battle bool critWeak = false; int damage = SkillManager.CalculateDamage(skill.Damage, skill.Multiplier) + p.stats[Stat.ATTACK]; if (p.elementalAttackModifier[skill.Element] == 1) { damage += (int)(damage * .25); } int c = r.Next(0, 100); if (c < 25) { damage = (damage * 2) + p.stats[Stat.CRITS]; // crit damge + critboost CombatLog.AppendText("A critical was hit."); CombatLog.AppendText(Environment.NewLine); critWeak = true; } if (d.enemies[index].weakness.Contains(skill.Element)) { damage = (damage * 2) + p.stats[Stat.CRITS]; // treated like crits too CombatLog.AppendText($"A weakness was hit! {target.name} was weak to {SkillManager.ElementToString(skill.Element)}!"); if (d.IsNewWeakness(target.image, skill.Element)) { d.NewWeaknessFound(target, skill.Element); e_box.Text = target.weakName; UpdateTextBoxes(); } CombatLog.AppendText(Environment.NewLine); critWeak = true; } if (d.isBoss) { DamageBoss(target, damage); CombatLog.AppendText($"It hit for {damage} damage."); CombatLog.AppendText(Environment.NewLine); CombatLog.AppendText(Environment.NewLine); } else { DamageEnemy(target, bar, damage, index); } if (critWeak) { tp.HalfTurn(); } else { tp.FullTurn(); } if (!d.isBoss) { CheckHP(); } CheckTurnPlayer(); }