combined MeleeHitEvent and ItemMeleeDamageEvent (#11628)
Co-authored-by: CommieFlowers <rasmus.cedergren@hotmail.com>
This commit is contained in:
@@ -68,7 +68,8 @@ public sealed class MeleeWeaponSystem : SharedMeleeWeaponSystem
|
||||
if (!args.CanInteract || !args.CanAccess || component.HideFromExamine)
|
||||
return;
|
||||
|
||||
var getDamage = new ItemMeleeDamageEvent(component.Damage);
|
||||
var getDamage = new MeleeHitEvent(new List<EntityUid>(), args.User, component.Damage);
|
||||
getDamage.IsHit = false;
|
||||
RaiseLocalEvent(uid, getDamage);
|
||||
|
||||
var damageSpec = GetDamage(component);
|
||||
@@ -140,11 +141,6 @@ public sealed class MeleeWeaponSystem : SharedMeleeWeaponSystem
|
||||
if (hitEvent.Handled)
|
||||
return;
|
||||
|
||||
var itemDamage = new ItemMeleeDamageEvent(damage);
|
||||
RaiseLocalEvent(component.Owner, itemDamage);
|
||||
var modifiers = itemDamage.ModifiersList;
|
||||
modifiers.AddRange(hitEvent.ModifiersList);
|
||||
|
||||
var targets = new List<EntityUid>(1)
|
||||
{
|
||||
ev.Target.Value
|
||||
@@ -160,7 +156,7 @@ public sealed class MeleeWeaponSystem : SharedMeleeWeaponSystem
|
||||
// For stuff that cares about it being attacked.
|
||||
RaiseLocalEvent(ev.Target.Value, new AttackedEvent(component.Owner, user, targetXform.Coordinates));
|
||||
|
||||
var modifiedDamage = DamageSpecifier.ApplyModifierSets(damage + hitEvent.BonusDamage + itemDamage.BonusDamage, hitEvent.ModifiersList);
|
||||
var modifiedDamage = DamageSpecifier.ApplyModifierSets(damage + hitEvent.BonusDamage, hitEvent.ModifiersList);
|
||||
var damageResult = _damageable.TryChangeDamage(ev.Target, modifiedDamage, origin:user);
|
||||
|
||||
if (damageResult != null && damageResult.Total > FixedPoint2.Zero)
|
||||
@@ -251,11 +247,6 @@ public sealed class MeleeWeaponSystem : SharedMeleeWeaponSystem
|
||||
if (hitEvent.Handled)
|
||||
return;
|
||||
|
||||
var itemDamage = new ItemMeleeDamageEvent(damage);
|
||||
RaiseLocalEvent(component.Owner, itemDamage);
|
||||
var modifiers = itemDamage.ModifiersList;
|
||||
modifiers.AddRange(hitEvent.ModifiersList);
|
||||
|
||||
_interaction.DoContactInteraction(user, ev.Weapon);
|
||||
|
||||
// For stuff that cares about it being attacked.
|
||||
@@ -270,7 +261,7 @@ public sealed class MeleeWeaponSystem : SharedMeleeWeaponSystem
|
||||
RaiseLocalEvent(target, new AttackedEvent(component.Owner, user, Transform(target).Coordinates));
|
||||
}
|
||||
|
||||
var modifiedDamage = DamageSpecifier.ApplyModifierSets(damage + hitEvent.BonusDamage + itemDamage.BonusDamage, hitEvent.ModifiersList);
|
||||
var modifiedDamage = DamageSpecifier.ApplyModifierSets(damage + hitEvent.BonusDamage, hitEvent.ModifiersList);
|
||||
var appliedDamage = new DamageSpecifier();
|
||||
|
||||
foreach (var entity in targets)
|
||||
@@ -555,6 +546,9 @@ public sealed class MeleeWeaponSystem : SharedMeleeWeaponSystem
|
||||
|
||||
private void OnChemicalInjectorHit(EntityUid owner, MeleeChemicalInjectorComponent comp, MeleeHitEvent args)
|
||||
{
|
||||
if (!args.IsHit)
|
||||
return;
|
||||
|
||||
if (!_solutions.TryGetSolution(owner, comp.Solution, out var solutionContainer))
|
||||
return;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user