Улучшение системы заточки (#2428)

This commit is contained in:
Shiranuy 2025-07-18 01:28:36 +03:00 committed by GitHub
parent c394d8e4be
commit d4ed0f148d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 29 additions and 6 deletions

View file

@ -5,9 +5,16 @@ namespace Content.Server._Sunrise.SharpeningSystem;
[RegisterComponent]
public sealed partial class SharpenerComponent : Component
{
/// <summary>
/// Sunrise - Edit
/// </summary>
[ViewVariables(VVAccess.ReadWrite)]
[DataField]
public DamageSpecifier DamageBonus;
public DamageSpecifier SlashDamageBonus = new();
[ViewVariables(VVAccess.ReadWrite)]
[DataField]
public DamageSpecifier PiercingDamageBonus = new();
[ViewVariables(VVAccess.ReadWrite)]
[DataField]

View file

@ -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<SharpenedComponent>(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<SharpenedComponent>(target).DamageBonus = damageBonus;
component.Usages -= 1;

View file

@ -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: