stage adjustments, damage VFX adjustments

This commit is contained in:
Pal
2026-05-02 03:47:34 -07:00
parent 4460fd28f5
commit 88e7c04e2d
12 changed files with 760 additions and 48 deletions
+9 -9
View File
@@ -170,7 +170,7 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
LuckComponent = new LuckComponent(InitialLuck);
EquipmentComponent = new EquipmentComponent();
StatusEffectComponent = new StatusEffectComponent(RustDuration);
SigilComponent = new SigilComponent();
SigilComponent = new SigilComponent();
_itemReroller = new ItemReroller(ItemDatabase.Instance);
_playerEffectService = new PlayerEffectService(this);
@@ -204,7 +204,7 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
ExperiencePointsComponent.Reset();
LuckComponent.Reset();
EquipmentComponent.Reset();
SigilComponent.Reset();
SigilComponent.Reset();
HealthTimer.Timeout += OnHealthTimerTimeout;
}
@@ -297,7 +297,7 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
_camera3D.AddShake(1.0f);
TakeDamageAnimationPlayer.Play("take_damage");
var defense = TotalDefense * SigilComponent.Sigil.DefenseModifier;
var defense = TotalDefense * SigilComponent.Sigil.DefenseModifier;
var damageReceived = DamageCalculator.CalculateDamage(damage, defense, EquipmentComponent.ElementalResistance);
HealthComponent.Damage(damageReceived, damage.ElementType);
SfxDatabase.Instance.Play(SoundEffect.TakeDamage);
@@ -311,7 +311,7 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
public void SetSigil(ISigil sigil)
{
SigilComponent.Sigil = sigil;
SigilComponent.Sigil = sigil;
}
public void Knockback(float impulse)
@@ -910,12 +910,12 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
var isCriticalHit = BattleExtensions.IsCriticalHit(TotalLuck);
var totalDamage = TotalAttack;
if (SigilComponent.Sigil.ElementType == weapon.WeaponElement)
totalDamage = Mathf.RoundToInt(totalDamage * 1.15f);
if (SigilComponent.Sigil.ElementType == weapon.WeaponElement)
totalDamage = Mathf.RoundToInt(totalDamage * 1.15f);
totalDamage = Mathf.RoundToInt(totalDamage * SigilComponent.Sigil.AttackModifier);
totalDamage = Mathf.RoundToInt(totalDamage * SigilComponent.Sigil.AttackModifier);
if (isCriticalHit)
if (isCriticalHit)
{
totalDamage += (int)(totalDamage * 0.5f);
SfxDatabase.Instance.Play(SoundEffect.Crit);
@@ -923,7 +923,7 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
var baseAttack = new AttackData(totalDamage, weapon.WeaponElement, weapon.WeaponTag == WeaponTag.IgnoreDefense, weapon.WeaponTag == WeaponTag.IgnoreAffinity);
var damageDealt = DamageCalculator.CalculateDamage(baseAttack, enemy.DefenseComponent.CurrentDefense.Value, enemy.ElementalResistanceSet);
var damageDealt = DamageCalculator.CalculateDamage(baseAttack, enemy.DefenseComponent.CurrentDefense.Value, enemy.ElementalResistanceSet);
enemy.HealthComponent.Damage(damageDealt, weapon.WeaponElement);
if (weapon.WeaponTag == WeaponTag.Knockback && enemy is IKnockbackable knockbackable)