Files
OldThink/Content.Server/Changeling/ChangelingSystem.Shop.cs
Aviu00 c05a1d09c2 Ling update (#183)
* - add: Augmented Eyesight.

* - add: Dissonant Shriek.

* - tweak: Nuke use delays.

* - tweak: Tweak chemical regeneration and chemical costs.

* - add: Add chitinous helmet.

* - fix: Fix chem regeneration while dead.

* - tweak: Faster fleshmend.

* - add: Void Adaptation.

* - tweak: No lesser form delay.

* - tweak: Lesser form tweaks.

* - tweak: Stasis doafter is hidden now.

* - add: Refund after absorbing.

* - tweak: Some tweaks.
2024-03-13 19:19:30 +03:00

54 lines
1.8 KiB
C#

using Content.Server.Flash.Components;
using Content.Server.Store.Components;
using Content.Shared._White.Overlays;
using Content.Shared.Changeling;
using Content.Shared.Eye.Blinding.Components;
using Content.Shared.Implants.Components;
using Content.Shared.Inventory;
namespace Content.Server.Changeling;
public sealed partial class ChangelingSystem
{
private void InitializeShop()
{
SubscribeLocalEvent<SubdermalImplantComponent, ChangelingShopActionEvent>(OnShop);
SubscribeLocalEvent<ChangelingComponent, ChangelingRefundEvent>(OnChangelingRefund);
SubscribeLocalEvent<DeleteOnChangelingRefundComponent, InventoryRelayedEvent<ChangelingRefundEvent>>(OnRefund);
}
private void OnRefund(Entity<DeleteOnChangelingRefundComponent> ent,
ref InventoryRelayedEvent<ChangelingRefundEvent> args)
{
QueueDel(ent);
}
private void OnChangelingRefund(Entity<ChangelingComponent> ent, ref ChangelingRefundEvent args)
{
RemComp<EyeProtectionComponent>(ent);
RemComp<FlashImmunityComponent>(ent);
RemComp<TemporaryNightVisionComponent>(ent);
RemComp<VoidAdaptationComponent>(ent);
foreach (var hand in _handsSystem.EnumerateHands(ent))
{
if (hand.HeldEntity != null && HasComp<DeleteOnChangelingRefundComponent>(hand.HeldEntity.Value))
QueueDel(hand.HeldEntity.Value);
}
if (!TryComp(args.Store, out StoreComponent? storeComponent))
return;
storeComponent.Refunds = false;
_storeSystem.DisableRefund(args.Store, storeComponent);
}
private void OnShop(EntityUid uid, SubdermalImplantComponent component, ChangelingShopActionEvent args)
{
if(!TryComp<StoreComponent>(uid, out var store))
return;
_storeSystem.ToggleUi(args.Performer, uid, store);
}
}