Empty Implanter (#3212)
Co-authored-by: Vigers Ray <60344369+VigersRay@users.noreply.github.com>
This commit is contained in:
parent
02644be1ad
commit
5f1e4d604a
6 changed files with 104 additions and 18 deletions
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
BIN
Resources/Audio/_Starlight/Voice/gorilla.ogg
Normal file
BIN
Resources/Audio/_Starlight/Voice/gorilla.ogg
Normal file
Binary file not shown.
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -68,6 +68,12 @@
|
|||
coefficients:
|
||||
Heat: 1.15
|
||||
|
||||
- type: damageModifierSet
|
||||
id: GorillaRampaging
|
||||
coefficients:
|
||||
Blunt: 1.25
|
||||
Cellular: 0
|
||||
|
||||
- type: damageModifierSet
|
||||
id: Resomi
|
||||
coefficients:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue