This commit is contained in:
Ed
2025-03-19 14:04:35 +03:00
3 changed files with 21 additions and 5 deletions

View File

@@ -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<CP14SharpenedComponent>(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<CP14SharpenedComponent>(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

View File

@@ -127,7 +127,12 @@ public sealed class CP14SharpeningSystem : EntitySystem
private void OnGetMeleeDamage(Entity<CP14SharpenedComponent> 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);
}
}

View File

@@ -59,7 +59,7 @@
- type: entity
id: CP14FoodBreadSlice
parent: CP14FoodBread
parent: CP14FoodDoughMedium
name: bread slice
components:
- type: Sprite