Cleanup subdermal implant code (#39755)

This commit is contained in:
slarticodefast
2025-08-20 13:52:03 +02:00
committed by GitHub
parent db84d766e9
commit 2bbff7f8c0
20 changed files with 462 additions and 368 deletions

View File

@@ -376,6 +376,7 @@
iconOn: { sprite: Interface/Actions/actions_fakemindshield.rsi, state: icon-on }
itemIconStyle: NoItem
useDelay: 1
raiseOnUser: true
- type: InstantAction
event: !type:FakeMindShieldToggleEvent
- type: Tag

View File

@@ -6,89 +6,89 @@
parent: BaseItem
abstract: true
components:
- type: ItemSlots
- type: ContainerContainer
containers:
implanter_slot: !type:ContainerSlot { }
- type: Implanter
- type: ItemSlots
- type: ContainerContainer
containers:
implanter_slot: !type:ContainerSlot { }
- type: Implanter
whitelist:
components:
- MobState # no chair microbomb
blacklist:
components:
- Guardian # no holoparasite macrobomb wombo combo
tags:
- Unimplantable
currentMode: Draw
implanterSlot:
name: Implant
locked: True
priority: 0
whitelist:
components:
- MobState # no chair microbomb
blacklist:
components:
- Guardian # no holoparasite macrobomb wombo combo
tags:
- Unimplantable
currentMode: Draw
implanterSlot:
name: Implant
locked: True
priority: 0
whitelist:
tags:
- SubdermalImplant
allowDeimplantAll: false
deimplantWhitelist:
- SadTromboneImplant
- LightImplant
- BikeHornImplant
- TrackingImplant
- StorageImplant
- FreedomImplant
- UplinkImplant
- EmpImplant
- ScramImplant
- DnaScramblerImplant
- MicroBombImplant
- MacroBombImplant
- DeathAcidifierImplant
- DeathRattleImplant
- MindShieldImplant
- FakeMindShieldImplant
- RadioImplant
- ChameleonControllerImplant
deimplantFailureDamage:
types:
Cellular: 50
Heat: 10
- type: Sprite
sprite: Objects/Specific/Medical/implanter.rsi
state: implanter0
layers:
- state: implanter0
map: [ "implantOnly" ]
visible: true
- state: implanter1
map: [ "implantFull" ]
visible: false
- type: Item
sprite: Objects/Specific/Medical/implanter.rsi
heldPrefix: implanter
size: Small
- type: Appearance
- type: GenericVisualizer
visuals:
enum.ImplanterVisuals.Full:
implantFull:
True: {visible: true}
False: {visible: false}
enum.ImplanterImplantOnlyVisuals.ImplantOnly:
implantOnly:
True: {state: broken}
False: {state: implanter0}
- type: UserInterface
interfaces:
enum.DeimplantUiKey.Key:
type: DeimplantBoundUserInterface
- SubdermalImplant
allowDeimplantAll: false
deimplantWhitelist:
- SadTromboneImplant
- LightImplant
- BikeHornImplant
- TrackingImplant
- StorageImplant
- FreedomImplant
- UplinkImplant
- EmpImplant
- ScramImplant
- DnaScramblerImplant
- MicroBombImplant
- MacroBombImplant
- DeathAcidifierImplant
- DeathRattleImplant
- MindShieldImplant
- FakeMindShieldImplant
- RadioImplant
- ChameleonControllerImplant
deimplantFailureDamage:
types:
Cellular: 50
Heat: 10
- type: Sprite
sprite: Objects/Specific/Medical/implanter.rsi
state: implanter0
layers:
- state: implanter0
map: [ "implantOnly" ]
visible: true
- state: implanter1
map: [ "implantFull" ]
visible: false
- type: Item
sprite: Objects/Specific/Medical/implanter.rsi
heldPrefix: implanter
size: Small
- type: Appearance
- type: GenericVisualizer
visuals:
enum.ImplanterVisuals.Full:
implantFull:
True: {visible: true}
False: {visible: false}
enum.ImplanterImplantOnlyVisuals.ImplantOnly:
implantOnly:
True: {state: broken}
False: {state: implanter0}
- type: UserInterface
interfaces:
enum.DeimplantUiKey.Key:
type: DeimplantBoundUserInterface
- type: entity
id: Implanter
parent: BaseImplanter
description: A disposable syringe exclusively designed for the injection and extraction of subdermal implants.
components:
- type: Tag
tags:
- Trash
- type: Tag
tags:
- Trash
- type: entity
parent: Implanter
@@ -108,18 +108,18 @@
description: A disposable syringe exclusively designed for the injection of subdermal implants.
abstract: true
components:
- type: Sprite
sprite: Objects/Specific/Medical/implanter.rsi
state: implanter0
layers:
- state: implanter1
map: [ "implantFull" ]
visible: true
- state: implanter0
map: [ "implantOnly" ]
- type: Implanter
currentMode: Inject
implantOnly: true
- type: Sprite
sprite: Objects/Specific/Medical/implanter.rsi
state: implanter0
layers:
- state: implanter1
map: [ "implantFull" ]
visible: true
- state: implanter0
map: [ "implantOnly" ]
- type: Implanter
currentMode: Inject
implantOnly: true
- type: entity
id: BaseImplantOnlyImplanterSyndi
@@ -128,30 +128,30 @@
description: A compact disposable syringe exclusively designed for the injection of subdermal implants. Make sure to scrub it with soap or a rag to remove residual DNA after use!
abstract: true
components:
- type: Item
sprite: Objects/Specific/Medical/syndi_implanter.rsi
heldPrefix: implanter
- type: Sprite
sprite: Objects/Specific/Medical/syndi_implanter.rsi
state: implanter1
layers:
- state: implanter0
map: [ "implantFull" ]
visible: true
- state: implanter1
map: [ "implantOnly" ]
- type: GenericVisualizer
visuals:
enum.ImplanterVisuals.Full:
implantFull:
True: {visible: true}
False: {visible: false}
enum.ImplanterImplantOnlyVisuals.ImplantOnly:
implantOnly:
True: {state: broken}
False: {state: implanter1}
- type: Tag
tags: []
- type: Item
sprite: Objects/Specific/Medical/syndi_implanter.rsi
heldPrefix: implanter
- type: Sprite
sprite: Objects/Specific/Medical/syndi_implanter.rsi
state: implanter1
layers:
- state: implanter0
map: [ "implantFull" ]
visible: true
- state: implanter1
map: [ "implantOnly" ]
- type: GenericVisualizer
visuals:
enum.ImplanterVisuals.Full:
implantFull:
True: {visible: true}
False: {visible: false}
enum.ImplanterImplantOnlyVisuals.ImplantOnly:
implantOnly:
True: {state: broken}
False: {state: implanter1}
- type: Tag
tags: []
#Fun implanters
@@ -160,24 +160,24 @@
name: sad trombone implanter
parent: BaseImplantOnlyImplanter
components:
- type: Implanter
implant: SadTromboneImplant
- type: Implanter
implant: SadTromboneImplant
- type: entity
id: LightImplanter
name: light implanter
parent: BaseImplantOnlyImplanter
components:
- type: Implanter
implant: LightImplant
- type: Implanter
implant: LightImplant
- type: entity
id: BikeHornImplanter
name: bike horn implanter
parent: BaseImplantOnlyImplanter
components:
- type: Implanter
implant: BikeHornImplant
- type: Implanter
implant: BikeHornImplant
#Security implanters
@@ -186,8 +186,8 @@
name: tracking implanter
parent: BaseImplantOnlyImplanter
components:
- type: Implanter
implant: TrackingImplant
- type: Implanter
implant: TrackingImplant
#Traitor implanters
@@ -196,16 +196,16 @@
name: storage implanter
parent: BaseImplantOnlyImplanterSyndi
components:
- type: Implanter
implant: StorageImplant
- type: Implanter
implant: StorageImplant
- type: entity
id: FreedomImplanter
name: freedom implanter
parent: BaseImplantOnlyImplanterSyndi
components:
- type: Implanter
implant: FreedomImplant
- type: Implanter
implant: FreedomImplant
- type: entity
id: RadioImplanter
@@ -228,24 +228,24 @@
name: EMP implanter
parent: BaseImplantOnlyImplanterSyndi
components:
- type: Implanter
implant: EmpImplant
- type: Implanter
implant: EmpImplant
- type: entity
id: ScramImplanter
name: scram implanter
parent: BaseImplantOnlyImplanterSyndi
components:
- type: Implanter
implant: ScramImplant
- type: Implanter
implant: ScramImplant
- type: entity
id: DnaScramblerImplanter
name: DNA scrambler implanter
parent: BaseImplantOnlyImplanterSyndi
components:
- type: Implanter
implant: DnaScramblerImplant
- type: Implanter
implant: DnaScramblerImplant
- type: entity
id: ChameleonControllerImplanter
@@ -262,24 +262,24 @@
name: micro-bomb implanter
parent: BaseImplantOnlyImplanterSyndi
components:
- type: Implanter
implant: MicroBombImplant
- type: Implanter
implant: MicroBombImplant
- type: entity
id: MacroBombImplanter
name: macro-bomb implanter
parent: BaseImplantOnlyImplanterSyndi
components:
- type: Implanter
implant: MacroBombImplant
- type: Implanter
implant: MacroBombImplant
- type: entity
id: DeathRattleImplanter
name: death rattle implanter
parent: BaseImplantOnlyImplanterSyndi
components:
- type: Implanter
implant: DeathRattleImplant
- type: Implanter
implant: DeathRattleImplant
- type: entity
id: DeathAcidifierImplanter
@@ -304,8 +304,8 @@
name: mindshield implanter
parent: BaseImplantOnlyImplanter
components:
- type: Implanter
implant: MindShieldImplant
- type: Implanter
implant: MindShieldImplant
# Centcomm implanters

View File

@@ -19,18 +19,18 @@
description: This implant plays a sad tune when the user dies.
categories: [ HideSpawnMenu ]
components:
- type: SubdermalImplant
whitelist:
components:
- MobState # admeme implanting a chair with trombone implant needs to give the chair mobstate so it can die first
- type: TriggerOnMobstateChange
mobState:
- Dead
- type: EmitSoundOnTrigger
sound:
collection: SadTrombone
params:
variation: 0.125
- type: SubdermalImplant
whitelist:
components:
- MobState # admeme implanting a chair with trombone implant needs to give the chair mobstate so it can die first
- type: TriggerOnMobstateChange
mobState:
- Dead
- type: EmitSoundOnTrigger
sound:
collection: SadTrombone
params:
variation: 0.125
- type: entity
parent: BaseSubdermalImplant
@@ -39,20 +39,20 @@
description: This implant emits light from the user's skin on activation.
categories: [ HideSpawnMenu ]
components:
- type: SubdermalImplant
implantAction: ActionToggleLight
- type: PointLight
enabled: false
radius: 2.5
softness: 5
mask: /Textures/Effects/LightMasks/cone.png
autoRot: true
- type: Tag
tags:
- SubdermalImplant
- HideContextMenu
- Flashlight
- type: UnpoweredFlashlight
- type: SubdermalImplant
implantAction: ActionToggleLight
- type: PointLight
enabled: false
radius: 2.5
softness: 5
mask: /Textures/Effects/LightMasks/cone.png
autoRot: true
- type: Tag
tags:
- SubdermalImplant
- HideContextMenu
- Flashlight
- type: UnpoweredFlashlight
- type: entity
parent: BaseSubdermalImplant
@@ -108,6 +108,7 @@
description: This implant grants hidden storage within a person's body using bluespace technology.
categories: [ HideSpawnMenu ]
components:
- type: StorageImplant
- type: SubdermalImplant
implantAction: ActionOpenStorageImplant
whitelist:
@@ -280,6 +281,10 @@
components:
- type: SubdermalImplant
permanent: true
- type: ReplacementImplant
whitelist:
tags:
- MicroBomb # replace microbomb implant with macrobomb
- type: TriggerOnMobstateChange #activates the timer
mobState:
- Dead
@@ -306,9 +311,9 @@
canCreateVacuum: true
- type: Tag
tags:
- SubdermalImplant
- HideContextMenu
- MacroBomb
- SubdermalImplant
- HideContextMenu
- MacroBomb
- type: entity
parent: BaseSubdermalImplant
@@ -362,9 +367,11 @@
description: This implant allows the implanter to produce a fake signal that NT security huds use to identify individuals implanted with a mindshield.
categories: [ HideSpawnMenu ]
components:
- type: SubdermalImplant
implantAction: FakeMindShieldToggleAction
- type: FakeMindShieldImplant
- type: SubdermalImplant
implantAction: FakeMindShieldToggleAction
implantComponents:
- type: FakeMindShield # TODO: put the component on the implant and use implant relay events for the status icon
- type: FakeMindShieldImplant
# Sec and Command implants