CatStation/Content.Server/Armor/ArmorSystem.cs
deltanedas cf7fde3d62
Big prototype and datafield cleanup (#45202)
* giant protoid cleanup

* yml changes

* !

---------

Co-authored-by: deltanedas <@deltanedas:goida.zip>
2026-08-12 02:07:22 +00:00

31 lines
1 KiB
C#

using Content.Shared.Armor;
using Content.Shared.Cargo;
using Content.Shared.Damage.Prototypes;
namespace Content.Server.Armor;
/// <inheritdoc/>
public sealed partial class ArmorSystem : SharedArmorSystem
{
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<ArmorComponent, PriceCalculationEvent>(GetArmorPrice);
}
private void GetArmorPrice(EntityUid uid, ArmorComponent component, ref PriceCalculationEvent args)
{
foreach (var modifier in component.Modifiers.Coefficients)
{
var damageType = ProtoMan.Index<DamageTypePrototype>(modifier.Key);
args.Price += component.PriceMultiplier * damageType.ArmorPriceCoefficient * 100 * (1 - modifier.Value);
}
foreach (var modifier in component.Modifiers.FlatReductions)
{
var damageType = ProtoMan.Index<DamageTypePrototype>(modifier.Key);
args.Price += component.PriceMultiplier * damageType.ArmorPriceFlat * modifier.Value;
}
}
}