public void Attacked(UpgradeStats stats, BaseBullet.damageTypes damageType) { TakeDamage(stats.damage, damageType); EffectCheck(stats); Armor += stats.armorReduce; HPReg += stats.hpRegReduce; }
private void TakeDamage(float damage, BaseBullet.damageTypes damageType) { float calcDamage = 0; damage *= curseAmount; switch (damageType) { case BaseBullet.damageTypes.heavy: switch (myArmorType) { case ArmorTypes.light: calcDamage = damage * highDamage - Armor; break; case ArmorTypes.medium: calcDamage = damage * lowDamage - Armor; break; case ArmorTypes.heavy: calcDamage = damage * normalDamage - Armor; break; } break; case BaseBullet.damageTypes.light: switch (myArmorType) { case ArmorTypes.light: calcDamage = damage * normalDamage - Armor; break; case ArmorTypes.medium: calcDamage = damage * highDamage - Armor; break; case ArmorTypes.heavy: calcDamage = damage * lowDamage - Armor; break; } break; case BaseBullet.damageTypes.medium: switch (myArmorType) { case ArmorTypes.light: calcDamage = damage * lowDamage - Armor; break; case ArmorTypes.medium: calcDamage = damage * normalDamage - Armor; break; case ArmorTypes.heavy: calcDamage = damage * highDamage - Armor; break; } break; case BaseBullet.damageTypes.special1: switch (myArmorType) { case ArmorTypes.light: case ArmorTypes.medium: case ArmorTypes.heavy: break; } break; case BaseBullet.damageTypes.special2: switch (myArmorType) { case ArmorTypes.light: case ArmorTypes.medium: case ArmorTypes.heavy: break; } break; case BaseBullet.damageTypes.special3: switch (myArmorType) { case ArmorTypes.light: case ArmorTypes.medium: case ArmorTypes.heavy: break; } break; } calcDamage = Mathf.Max(calcDamage, 0); health -= calcDamage; }