- add: Add advanced implanter. (#171)

* - add: Add advanced implanter.

* - tweak: All implants are single use now.
This commit is contained in:
Aviu00
2024-03-06 03:42:07 +09:00
committed by GitHub
parent b256c6aff2
commit fef46680fb
6 changed files with 39 additions and 1 deletions

View File

@@ -57,6 +57,11 @@ public sealed partial class ImplanterComponent : Component
[DataField, AutoNetworkedField] [DataField, AutoNetworkedField]
public bool ImplantOnly; public bool ImplantOnly;
// WD START
[DataField]
public bool SingleUse = true;
// WD END
/// <summary> /// <summary>
/// The current mode of the implanter /// The current mode of the implanter
/// Mode is changed automatically depending if it implants or draws /// Mode is changed automatically depending if it implants or draws

View File

@@ -117,6 +117,9 @@ public abstract class SharedImplanterSystem : EntitySystem
_container.Insert(implant.Value, implantContainer); _container.Insert(implant.Value, implantContainer);
RaiseLocalEvent(implant.Value, new SubdermalImplantInserted(user, target, implantComp)); //WD EDIT RaiseLocalEvent(implant.Value, new SubdermalImplantInserted(user, target, implantComp)); //WD EDIT
if (component.CurrentMode == ImplanterToggleMode.Inject && component.SingleUse) // WD EDIT
component.ImplantOnly = true;
if (component.CurrentMode == ImplanterToggleMode.Inject && !component.ImplantOnly) if (component.CurrentMode == ImplanterToggleMode.Inject && !component.ImplantOnly)
DrawMode(implanter, component); DrawMode(implanter, component);
else else
@@ -205,7 +208,8 @@ public abstract class SharedImplanterSystem : EntitySystem
break; break;
} }
if (component.CurrentMode == ImplanterToggleMode.Draw && !component.ImplantOnly && !permanentFound) if (component.CurrentMode == ImplanterToggleMode.Draw && !component.ImplantOnly && !permanentFound &&
implanterContainer.Count > 0) // WD EDIT
ImplantMode(implanter, component); ImplantMode(implanter, component);
Dirty(implanter, component); Dirty(implanter, component);

View File

@@ -52,3 +52,5 @@ ent-DeathAcidifierImplanter = { ent-BaseImplanter }
ent-ImplanterAdmeme = { ent-BaseImplanter } ent-ImplanterAdmeme = { ent-BaseImplanter }
.desc = {""} .desc = {""}
.suffix = адмемы .suffix = адмемы
ent-ImplanterSyndi = { ent-BaseImplanter }
.desc = { ent-BaseImplanter.desc }

View File

@@ -72,6 +72,7 @@
# go wild with sentient chairs with macrobombs # go wild with sentient chairs with macrobombs
whitelist: null whitelist: null
blacklist: null blacklist: null
singleUse: false
- type: entity - type: entity
id: BaseImplantOnlyImplanter id: BaseImplantOnlyImplanter
@@ -119,6 +120,9 @@
implantOnly: implantOnly:
True: {state: broken} True: {state: broken}
False: {state: implanter1} False: {state: implanter1}
- type: Implanter
implantTime: 2
drawTime: 2
#Fun implanters #Fun implanters

View File

@@ -214,3 +214,13 @@
Telecrystal: 6 Telecrystal: 6
categories: categories:
- UplinkImplants - UplinkImplants
- type: listing
id: UplinkImplanterSyndi
name: Имплантер
description: Продвинутый имплантер, позволяющий быстро вкалывать и вытаскивать импланты.
productEntity: ImplanterSyndi
cost:
Telecrystal: 1
categories:
- UplinkImplants

View File

@@ -21,3 +21,16 @@
components: components:
- type: Implanter - type: Implanter
implant: MindslaveImplant implant: MindslaveImplant
- type: entity
id: ImplanterSyndi
parent: Implanter
description: A compact disposable syringe exclusively designed for the injection and extraction of subdermal implants.
components:
- type: Item
sprite: Objects/Specific/Medical/syndi_implanter.rsi
- type: Sprite
sprite: Objects/Specific/Medical/syndi_implanter.rsi
- type: Implanter
drawTime: 2
implantTime: 2