Fix crit calculation and bonus attack/def/luck

This commit is contained in:
2026-02-12 02:58:30 -08:00
parent b475df6f68
commit c246d8d654
7 changed files with 49 additions and 21 deletions

View File

@@ -158,7 +158,7 @@ public class EffectService
return;
var currentWeapon = (Weapon)_player.EquipmentComponent.EquippedWeapon.Value;
currentWeapon.IncreaseWeaponAttack(1);
currentWeapon.IncreaseAttack(1);
SfxDatabase.Instance.Play(SoundEffect.IncreaseStat);
}

View File

@@ -57,6 +57,18 @@ public partial class Accessory : EquipableItem
[Save("accessory_bonus_luck")]
private int _bonusLuck { get; set; } = 0;
public void IncreaseAttack(int bonus) => _bonusDamage += bonus;
public void SetAttack(int newBonus) => _bonusDamage = newBonus;
public void IncreaseDefense(int bonus) => _bonusDefense += bonus;
public void SetDefense(int newBonus) => _bonusDefense = newBonus;
public void IncreaseLuck(int bonus) => _bonusLuck += bonus;
public void SetLuck(int newBonus) => _bonusLuck = newBonus;
[Export]
[Save("accessory_stats")]
public AccessoryStats Stats { get; set; } = new AccessoryStats();

View File

@@ -38,6 +38,18 @@ public partial class Armor : EquipableItem
public override int BonusLuck { get => _bonusLuck; }
public void IncreaseAttack(int bonus) => _bonusDamage += bonus;
public void SetAttack(int newBonus) => _bonusDamage = newBonus;
public void IncreaseDefense(int bonus) => _bonusDefense += bonus;
public void SetDefense(int newBonus) => _bonusDefense = newBonus;
public void IncreaseLuck(int bonus) => _bonusLuck += bonus;
public void SetLuck(int newBonus) => _bonusLuck = newBonus;
[Save("armor_bonus_damage")]
private int _bonusDamage { get; set; } = 0;

View File

@@ -46,13 +46,17 @@ public partial class Weapon : EquipableItem
public override ElementalResistanceSet ElementalResistance => new ElementalResistanceSet(Stats.AeolicResistance, Stats.HydricResistance, Stats.IgneousResistance, Stats.FerrumResistance, Stats.TelluricResistance, Stats.HolyResistance, Stats.CurseResistance);
public void IncreaseWeaponAttack(int bonus) => _bonusDamage += bonus;
public void IncreaseAttack(int bonus) => _bonusDamage += bonus;
public void SetWeaponAttack(int newBonus) => _bonusDamage = newBonus;
public void SetAttack(int newBonus) => _bonusDamage = newBonus;
public void IncreaseWeaponDefense(int bonus) => _bonusDefense += bonus;
public void IncreaseDefense(int bonus) => _bonusDefense += bonus;
public void SetWeaponDefense(int newBonus) => _bonusDefense = newBonus;
public void SetDefense(int newBonus) => _bonusDefense = newBonus;
public void IncreaseLuck(int bonus) => _bonusLuck += bonus;
public void SetLuck(int newBonus) => _bonusLuck = newBonus;
public override int BonusAttack { get => _bonusDamage; }