diff --git a/Content.Server/Damage/Systems/DamageOtherOnHitSystem.cs b/Content.Server/Damage/Systems/DamageOtherOnHitSystem.cs index 2e4c30d697..19f6ff0b5e 100644 --- a/Content.Server/Damage/Systems/DamageOtherOnHitSystem.cs +++ b/Content.Server/Damage/Systems/DamageOtherOnHitSystem.cs @@ -39,9 +39,15 @@ namespace Content.Server.Damage.Systems { //CrystallEdge Melee upgrade var damage = component.Damage; + var slashDamage = damage.DamageDict.GetValueOrDefault("Slash"); + var piercingDamage = damage.DamageDict.GetValueOrDefault("Piercing"); if (TryComp(uid, out var sharp)) - damage *= sharp.Sharpness; + { + damage.DamageDict["Slash"] = slashDamage * sharp.Sharpness; + damage.DamageDict["Piercing"] = piercingDamage * sharp.Sharpness; + damage.DamageDict["Blunt"] = (slashDamage + piercingDamage) / 2 * (1f - sharp.Sharpness); + } var dmg = _damageable.TryChangeDamage(args.Target, damage * _damageable.UniversalThrownDamageModifier, component.IgnoreResistances, origin: args.Component.Thrower); //CrystallEdge Melee upgrade end @@ -66,11 +72,16 @@ namespace Content.Server.Damage.Systems private void OnDamageExamine(EntityUid uid, DamageOtherOnHitComponent component, ref DamageExamineEvent args) { - //CP14 Sharpening damage apply var damage = component.Damage * _damageable.UniversalThrownDamageModifier; + var slashDamage = damage.DamageDict.GetValueOrDefault("Slash"); + var piercingDamage = damage.DamageDict.GetValueOrDefault("Piercing"); if (TryComp(uid, out var sharp)) - damage *= sharp.Sharpness; + { + damage.DamageDict["Slash"] = slashDamage * sharp.Sharpness; + damage.DamageDict["Piercing"] = piercingDamage * sharp.Sharpness; + damage.DamageDict["Blunt"] = (slashDamage + piercingDamage) / 2 * (1f - sharp.Sharpness); + } _damageExamine.AddDamageExamine(args.Message, damage, Loc.GetString("damage-throw")); //CP14 Sharpening damage apply end diff --git a/Content.Shared/_CP14/MeleeWeapon/EntitySystems/CP14SharpeningSystem.cs b/Content.Shared/_CP14/MeleeWeapon/EntitySystems/CP14SharpeningSystem.cs index dae5c81745..e5d58aeca3 100644 --- a/Content.Shared/_CP14/MeleeWeapon/EntitySystems/CP14SharpeningSystem.cs +++ b/Content.Shared/_CP14/MeleeWeapon/EntitySystems/CP14SharpeningSystem.cs @@ -127,7 +127,12 @@ public sealed class CP14SharpeningSystem : EntitySystem private void OnGetMeleeDamage(Entity sharpened, ref GetMeleeDamageEvent args) { - args.Damage *= sharpened.Comp.Sharpness; + var slashDamage = args.Damage.DamageDict.GetValueOrDefault("Slash"); + var piercingDamage = args.Damage.DamageDict.GetValueOrDefault("Piercing"); + + args.Damage.DamageDict["Slash"] = slashDamage * sharpened.Comp.Sharpness; + args.Damage.DamageDict["Piercing"] = piercingDamage * sharpened.Comp.Sharpness; + args.Damage.DamageDict["Blunt"] = (slashDamage + piercingDamage) / 2 * (1f - sharpened.Comp.Sharpness); } } diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/dough.yml b/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/dough.yml index 933f03d169..33d2416c0f 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/dough.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/dough.yml @@ -59,7 +59,7 @@ - type: entity id: CP14FoodBreadSlice - parent: CP14FoodBread + parent: CP14FoodDoughMedium name: bread slice components: - type: Sprite