Massive refactor (inventory menu still a little broken but its Good Enough)
This commit is contained in:
@@ -4,9 +4,8 @@ namespace GameJamDungeon
|
||||
{
|
||||
public static class DamageCalculator
|
||||
{
|
||||
public static double CalculatePlayerDamage(PlayerStatInfo playerStatInfo, EnemyStatInfo enemyStatInfo, WeaponInfo weapon, bool isCriticalHit)
|
||||
public static double CalculatePlayerDamage(int totalAttack, EnemyStatResource enemyStatInfo, WeaponStats weapon, bool isCriticalHit)
|
||||
{
|
||||
var baseDamage = playerStatInfo.CurrentAttack + playerStatInfo.BonusAttack;
|
||||
var hydricResistance = enemyStatInfo.HydricResistance;
|
||||
var igneousResistance = enemyStatInfo.IgneousResistance;
|
||||
var telluricResistance = enemyStatInfo.TelluricResistance;
|
||||
@@ -27,7 +26,7 @@ namespace GameJamDungeon
|
||||
var elementCDamage = (weapon.TelluricDamageBonus > 0 ? weapon.TelluricDamageBonus - telluricResistance : 0) / 100;
|
||||
var elementDDamage = (weapon.AeolicDamageBonus > 0 ? weapon.AeolicDamageBonus - aeolicResistance : 0) / 100;
|
||||
var elementEDamage = (weapon.FerrumDamageBonus > 0 ? weapon.FerrumDamageBonus - ferrumResistance : 0) / 100;
|
||||
var elementalBonusDamage = baseDamage + (baseDamage * elementADamage) + (baseDamage * elementBDamage) + (baseDamage * elementCDamage) + (baseDamage * elementDDamage) + (baseDamage * elementEDamage);
|
||||
var elementalBonusDamage = totalAttack + (totalAttack * elementADamage) + (totalAttack * elementBDamage) + (totalAttack * elementCDamage) + (totalAttack * elementDDamage) + (totalAttack * elementEDamage);
|
||||
var calculatedDamage = elementalBonusDamage - enemyStatInfo.CurrentDefense;
|
||||
|
||||
if (isCriticalHit)
|
||||
@@ -36,16 +35,16 @@ namespace GameJamDungeon
|
||||
return calculatedDamage;
|
||||
}
|
||||
|
||||
public static double CalculateEnemyDamage(PlayerStatInfo playerStatInfo, EnemyStatInfo enemyStatInfo, ArmorInfo armor, bool isCriticalHit)
|
||||
public static double CalculateEnemyDamage(int playerTotalDefense, EnemyStatResource enemyStatInfo, ArmorStats armor, bool isCriticalHit)
|
||||
{
|
||||
var baseDamage = enemyStatInfo.CurrentAttack;
|
||||
var totalAttack = enemyStatInfo.CurrentAttack;
|
||||
var elementADamage = (enemyStatInfo.BaseHydricDamageBonus > 0 ? enemyStatInfo.BaseHydricDamageBonus - armor.HydricResistance : 0) / 100;
|
||||
var elementBDamage = (enemyStatInfo.IgneousDamageBonus > 0 ? enemyStatInfo.IgneousDamageBonus - armor.IgneousResistance : 0) / 100;
|
||||
var elementCDamage = (enemyStatInfo.TelluricDamageBonus > 0 ? enemyStatInfo.TelluricDamageBonus - armor.TelluricResistance : 0) / 100;
|
||||
var elementDDamage = (enemyStatInfo.AeolicDamageBonus > 0 ? enemyStatInfo.AeolicDamageBonus - armor.AeolicResistance : 0) / 100;
|
||||
var elementEDamage = (enemyStatInfo.FerrumDamageBonus > 0 ? enemyStatInfo.FerrumDamageBonus - armor.FerrumResistance : 0) / 100;
|
||||
var elementalBonusDamage = baseDamage + (baseDamage * elementADamage) + (baseDamage * elementBDamage) + (baseDamage * elementCDamage) + (baseDamage * elementDDamage) + (baseDamage * elementEDamage);
|
||||
var calculatedDamage = elementalBonusDamage - playerStatInfo.CurrentDefense - (armor != null ? armor.Defense : 0);
|
||||
var elementalBonusDamage = totalAttack + (totalAttack * elementADamage) + (totalAttack * elementBDamage) + (totalAttack * elementCDamage) + (totalAttack * elementDDamage) + (totalAttack * elementEDamage);
|
||||
var calculatedDamage = elementalBonusDamage - playerTotalDefense - (armor != null ? armor.Defense : 0);
|
||||
|
||||
if (isCriticalHit)
|
||||
calculatedDamage *= 2;
|
||||
|
||||
@@ -1,19 +1,21 @@
|
||||
namespace GameJamDungeon
|
||||
using Chickensoft.Collections;
|
||||
|
||||
namespace GameJamDungeon
|
||||
{
|
||||
public interface ICharacterStats
|
||||
{
|
||||
public double CurrentHP { get; }
|
||||
public IAutoProp<double> CurrentHP { get; }
|
||||
|
||||
public double MaximumHP { get; }
|
||||
public IAutoProp<double> MaximumHP { get; }
|
||||
|
||||
public int CurrentAttack { get; }
|
||||
public IAutoProp<int> CurrentAttack { get; }
|
||||
|
||||
public int CurrentDefense { get; }
|
||||
public IAutoProp<int> CurrentDefense { get; }
|
||||
|
||||
public int MaxAttack { get; }
|
||||
public IAutoProp<int> MaxAttack { get; }
|
||||
|
||||
public int MaxDefense { get; }
|
||||
public IAutoProp<int> MaxDefense { get; }
|
||||
|
||||
public double Luck { get; }
|
||||
public IAutoProp<double> Luck { get; }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user