diff --git a/Content.Server/_Sunrise/SharpeningSystem/SharpenerComponent.cs b/Content.Server/_Sunrise/SharpeningSystem/SharpenerComponent.cs index 2a0bf0f668..27eab67e2b 100644 --- a/Content.Server/_Sunrise/SharpeningSystem/SharpenerComponent.cs +++ b/Content.Server/_Sunrise/SharpeningSystem/SharpenerComponent.cs @@ -5,9 +5,16 @@ namespace Content.Server._Sunrise.SharpeningSystem; [RegisterComponent] public sealed partial class SharpenerComponent : Component { + /// + /// Sunrise - Edit + /// [ViewVariables(VVAccess.ReadWrite)] [DataField] - public DamageSpecifier DamageBonus; + public DamageSpecifier SlashDamageBonus = new(); + + [ViewVariables(VVAccess.ReadWrite)] + [DataField] + public DamageSpecifier PiercingDamageBonus = new(); [ViewVariables(VVAccess.ReadWrite)] [DataField] diff --git a/Content.Server/_Sunrise/SharpeningSystem/SharpeningSystem.cs b/Content.Server/_Sunrise/SharpeningSystem/SharpeningSystem.cs index 4701e22d2e..638fa33d8a 100644 --- a/Content.Server/_Sunrise/SharpeningSystem/SharpeningSystem.cs +++ b/Content.Server/_Sunrise/SharpeningSystem/SharpeningSystem.cs @@ -4,6 +4,7 @@ using Content.Shared.Item; using Content.Shared.Popups; using Content.Shared.Weapons.Melee; using Content.Shared.Weapons.Melee.Events; +using Content.Shared.Damage; namespace Content.Server._Sunrise.SharpeningSystem; @@ -39,8 +40,8 @@ public sealed class SharpeningSystem : EntitySystem _popupSystem.PopupEntity(Loc.GetString("sharpening-failed"), target, args.User); return; } - - if (!meleeWeaponComponent.Damage.DamageDict.ContainsKey("Slash")) + /// Sunrise - Edit + if (!meleeWeaponComponent.Damage.DamageDict.ContainsKey("Slash") && !meleeWeaponComponent.Damage.DamageDict.ContainsKey("Piercing")) { _popupSystem.PopupEntity(Loc.GetString("sharpening-failed-blade"), target, args.User); return; @@ -58,7 +59,15 @@ public sealed class SharpeningSystem : EntitySystem return; } - EnsureComp(target).DamageBonus = component.DamageBonus; + /// Sunrise - Edit + var damageBonus = new DamageSpecifier(); + + if (meleeWeaponComponent.Damage.DamageDict.ContainsKey("Piercing")) + damageBonus = component.PiercingDamageBonus; + else if (meleeWeaponComponent.Damage.DamageDict.ContainsKey("Slash")) + damageBonus = component.SlashDamageBonus; + + EnsureComp(target).DamageBonus = damageBonus; component.Usages -= 1; diff --git a/Resources/Prototypes/_Sunrise/BloodCult/Object/wetstone.yml b/Resources/Prototypes/_Sunrise/BloodCult/Object/wetstone.yml index b69808dede..ec01b6d007 100644 --- a/Resources/Prototypes/_Sunrise/BloodCult/Object/wetstone.yml +++ b/Resources/Prototypes/_Sunrise/BloodCult/Object/wetstone.yml @@ -3,9 +3,13 @@ parent: BaseItem components: - type: Sharpener - damageBonus: + # Sunrise - Edit + slashDamageBonus: types: Slash: 5 + piercingDamageBonus: + types: + Piercing: 3 - type: Sprite sprite: _Sunrise/BloodCult/Entities/wetstone.rsi layers: @@ -26,9 +30,12 @@ id: CultSharpener components: - type: Sharpener - damageBonus: + slashDamageBonus: types: Slash: 15 + piercingDamageBonus: + types: + Piercing: 8 - type: Sprite sprite: _Sunrise/BloodCult/Entities/wetstone.rsi layers: