// Dealing damage to the current enemy facing us private void DealDamage() { bool isCrit = IsCritPossible(); float completeDamage = 0f; // Using weapon argument as a modification for damage if (ComboType == ComboType.Idle && playerAction == PlayerAction.Tap) { damageType = DamageIdicator.Raw; completeDamage += PlayerStats.PhysicalTapDamage; if (isCrit) { completeDamage += PlayerStats.CritDamage; damageType = DamageIdicator.Crit; } completeDamage -= LocationManager.CurrentEnemy.PhysicalResistance * completeDamage; CombatTextManager.Instance.Show(completeDamage, damageType); LocationManager.CurrentEnemy.CurrentHealth -= completeDamage; } if (ComboType == ComboType.Idle) { return; } switch (ComboType) { case ComboType.BloodOcean: // PlayerAnimationFunc break; case ComboType.LeftRightSlash: // PlayerAnimationFunc break; case ComboType.UpDownSlash: // PlayerAnimationFunc break; case ComboType.ClockwiseSlash: // PlayerAnimationFunc break; default: break; } CombatTextManager.Instance.Show(comboDmg, DamageIdicator.Ability); LocationManager.CurrentEnemy.CurrentHealth -= comboDmg; combo.ResetCombo(); }
public void Show(float damage, DamageIdicator indicator) { // Getting slot CombatText cmb = GetCombatText(); // Assinging incoming damage, and rounding to 0.00 format cmb.Txt.text = damage.ToString("0.00"); // Test code // Will be deleted in the future // TODO switch (indicator) { case DamageIdicator.Raw: cmb.GO.transform.position = combatTextContainer.transform.position + textRawOffset; cmb.Txt.color = Color.white; cmb.Motion = rawMotion; break; case DamageIdicator.Ability: cmb.GO.transform.position = combatTextContainer.transform.position + textAbilityOffset; cmb.Txt.color = Color.magenta; cmb.Motion = abilityMotion; break; case DamageIdicator.Crit: cmb.GO.transform.position = combatTextContainer.transform.position + textCritOffset; cmb.Txt.color = Color.red; cmb.Motion = critMotion; break; default: throw new ArgumentOutOfRangeException(); } cmb.Show(); }