Weapon tags, change

This commit is contained in:
2024-09-07 19:55:13 -07:00
parent c308fadb87
commit c6eaf19eb0
11 changed files with 94 additions and 15 deletions

View File

@@ -177,7 +177,13 @@ public partial class Enemy : CharacterBody3D, IEnemy, IProvide<IEnemyLogic>
{
if (CurrentHP.Value > 0)
{
var damage = DamageCalculator.CalculatePlayerDamage(hitBox.Damage, hitBox.GetParent<IPlayer>().PlayerStatInfo, EnemyStatInfo, GameRepo.EquippedWeapon);
var isCriticalHit = false;
var rng = new RandomNumberGenerator();
rng.Randomize();
var roll = rng.Randf();
if (roll <= GameRepo.EquippedWeapon.WeaponInfo.Luck)
isCriticalHit = true;
var damage = DamageCalculator.CalculatePlayerDamage(hitBox.Damage, hitBox.GetParent<IPlayer>().PlayerStatInfo, EnemyStatInfo, GameRepo.EquippedWeapon, isCriticalHit);
GD.Print($"Enemy Hit for {damage} damage.");
EnemyLogic.Input(new EnemyLogic.Input.HitByPlayer(damage));
}
@@ -204,3 +210,11 @@ public partial class Enemy : CharacterBody3D, IEnemy, IProvide<IEnemyLogic>
EnemyBinding.Dispose();
}
}
public enum WeaponTag
{
SelfDamage,
IgnoreAffinity,
Knockback,
BreaksOnChange
}