Empty Implanter (#3212)

Co-authored-by: Vigers Ray <60344369+VigersRay@users.noreply.github.com>
This commit is contained in:
Sidzaru 2025-09-27 00:22:52 +03:00 committed by GitHub
parent 02644be1ad
commit 5f1e4d604a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 104 additions and 18 deletions

View file

@ -5,17 +5,26 @@ using Content.Shared.Interaction;
using Content.Shared.Popups;
using Content.Shared.Store.Components;
using Content.Shared.Implants.Components; // Starlight
using Content.Server.Polymorph.Systems; // Starlight
using Content.Shared.Zombies; // Starlight
using Robust.Shared.Player; // Starlight
namespace Content.Server.Implants;
public sealed class SubdermalImplantSystem : SharedSubdermalImplantSystem
{
[Dependency] private readonly StoreSystem _store = default!;
[Dependency] private readonly SharedPopupSystem _popup = default!;
[Dependency] private readonly PolymorphSystem _polymorphSystem = default!; // Starlight
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<StoreComponent, ImplantRelayEvent<AfterInteractUsingEvent>>(OnStoreRelay);
SubscribeLocalEvent<SubdermalImplantComponent, UseMagillitisSerumImplantEvent>(OnMagillitisSerumImplantImplant); // Starlight
}
// TODO: This shouldn't be in the SubdermalImplantSystem
@ -41,4 +50,26 @@ public sealed class SubdermalImplantSystem : SharedSubdermalImplantSystem
var msg = Loc.GetString("store-currency-inserted-implant", ("used", args.Used));
_popup.PopupEntity(msg, args.User, args.User);
}
// Starlight-start
private void OnMagillitisSerumImplantImplant(EntityUid uid, SubdermalImplantComponent component, UseMagillitisSerumImplantEvent args)
{
if (component.ImplantedEntity is not { } ent)
return;
if (HasComp<ZombieComponent>(ent))
return;
var polymorph = _polymorphSystem.PolymorphEntity(ent, "RampagingGorilla");
if (!polymorph.HasValue)
return;
_popup.PopupEntity(Loc.GetString("magillitisserum-implant-activated-others", ("entity", polymorph.Value)), polymorph.Value, Filter.PvsExcept(polymorph.Value), true);
_popup.PopupEntity(Loc.GetString("magillitisserum-implant-activated-user"), polymorph.Value, polymorph.Value);
args.Handled = true;
QueueDel(uid);
}
// Starlight-end
}

Binary file not shown.

View file

@ -4095,3 +4095,37 @@
- type: NpcFactionMember
factions:
- NanoTrasen
# Starlight-start
- type: entity
name: Rampaging Gorilla
parent: MobGorilla
id: MobGorillaRampaging
description: A gorilla that has gone wild. Run!
components:
- type: Sprite
drawdepth: Mobs
layers:
- map: ["enum.DamageStateVisualLayers.Base"]
state: crawling
sprite: Mobs/Animals/gorilla.rsi
color: "#FF0000"
- type: MobThresholds
thresholds:
0: Alive
350: Critical
400: Dead
- type: MeleeWeapon
soundHit:
collection: Punch
damage:
types:
Blunt: 35
Structural: 20
- type: MovementSpeedModifier
baseWalkSpeed: 2
baseSprintSpeed: 4
- type: Damageable
damageContainer: Biological
damageModifierSet: GorillaRampaging
# Starlight-end

View file

@ -13,3 +13,18 @@
path: /Audio/Magic/forcewall.ogg
exitPolymorphSound: !type:SoundPathSpecifier
path: /Audio/Magic/forcewall.ogg
# Starlight-start
- type: polymorph
id: RampagingGorilla
configuration:
entity: MobGorillaRampaging
forced: true
transferName: true
transferHumanoidAppearance: false
inventory: Drop
transferDamage: true
revertOnDeath: true
revertOnCrit: false
polymorphSound: /Audio/_Starlight/Voice/gorilla.ogg
# Starlight-end

View file

@ -1856,24 +1856,24 @@
categories:
- UplinkCybernetics
# - type: listing
# id: UplinkMagillitisSerumImplant
# name: uplink-magillitis-serum-implanter-name
# description: uplink-magillitis-serum-implanter-desc
# icon: { sprite: _Starlight/Actions/implants.rsi, state: gorilla_rampage }
# productEntity: MagillitisSerumImplanter # Sunrise-TODO: FIX this Shit!
# discountDownTo:
# Telecrystal: 4
# cost:
# Telecrystal: 6
# categories:
# - UplinkJob
# conditions:
# - !type:BuyerJobCondition
# whitelist:
# - ResearchAssistant
# - Scientist
# - ResearchDirector
- type: listing
id: UplinkMagillitisSerumImplant
name: uplink-magillitis-serum-implanter-name
description: uplink-magillitis-serum-implanter-desc
icon: { sprite: _Starlight/Actions/implants.rsi, state: gorilla_rampage }
productEntity: MagillitisSerumImplanter
discountDownTo:
Telecrystal: 4
cost:
Telecrystal: 6
categories:
- UplinkJob
conditions:
- !type:BuyerJobCondition
whitelist:
- ResearchAssistant
- Scientist
- ResearchDirector
- type: listing
id: UplinkCaneShotgun

View file

@ -68,6 +68,12 @@
coefficients:
Heat: 1.15
- type: damageModifierSet
id: GorillaRampaging
coefficients:
Blunt: 1.25
Cellular: 0
- type: damageModifierSet
id: Resomi
coefficients: