Improve implanter descriptions (#18403)
* Rewrite all implanter and implant descriptions * Make implanter status control resemble syringe's * Add implant description to implanter examine * Remove unused usings
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
using Content.Client.Message;
|
using Content.Client.Message;
|
||||||
using Content.Client.Stylesheets;
|
using Content.Client.Stylesheets;
|
||||||
using Content.Shared.Implants.Components;
|
using Content.Shared.Implants.Components;
|
||||||
using Robust.Client.UserInterface;
|
using Robust.Client.UserInterface;
|
||||||
@@ -16,6 +16,7 @@ public sealed class ImplanterStatusControl : Control
|
|||||||
{
|
{
|
||||||
_parent = parent;
|
_parent = parent;
|
||||||
_label = new RichTextLabel { StyleClasses = { StyleNano.StyleClassItemStatus } };
|
_label = new RichTextLabel { StyleClasses = { StyleNano.StyleClassItemStatus } };
|
||||||
|
_label.MaxWidth = 350;
|
||||||
AddChild(_label);
|
AddChild(_label);
|
||||||
|
|
||||||
Update();
|
Update();
|
||||||
@@ -41,13 +42,17 @@ public sealed class ImplanterStatusControl : Control
|
|||||||
_ => Loc.GetString("injector-invalid-injector-toggle-mode")
|
_ => Loc.GetString("injector-invalid-injector-toggle-mode")
|
||||||
};
|
};
|
||||||
|
|
||||||
var entitiesStringLocalized = _parent.ImplanterSlot.HasItem switch
|
var (implantName, implantDescription) = _parent.ImplanterSlot.HasItem switch
|
||||||
{
|
{
|
||||||
false => Loc.GetString("implanter-empty-text"),
|
false => (Loc.GetString("implanter-empty-text"), ""),
|
||||||
true => Loc.GetString("implanter-implant-text", ("implantName", _parent.ImplantData.Item1), ("implantDescription", _parent.ImplantData.Item2), ("lineBreak", "\n")),
|
true => (_parent.ImplantData.Item1, _parent.ImplantData.Item2),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
_label.SetMarkup(Loc.GetString("implanter-label", ("currentEntities", entitiesStringLocalized), ("modeString", modeStringLocalized), ("lineBreak", "\n")));
|
_label.SetMarkup(Loc.GetString("implanter-label",
|
||||||
|
("implantName", implantName),
|
||||||
|
("implantDescription", implantDescription),
|
||||||
|
("modeString", modeStringLocalized),
|
||||||
|
("lineBreak", "\n")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Content.Shared.Containers.ItemSlots;
|
using Content.Shared.Containers.ItemSlots;
|
||||||
using Content.Shared.DoAfter;
|
using Content.Shared.DoAfter;
|
||||||
|
using Content.Shared.Examine;
|
||||||
using Content.Shared.IdentityManagement;
|
using Content.Shared.IdentityManagement;
|
||||||
using Content.Shared.Implants.Components;
|
using Content.Shared.Implants.Components;
|
||||||
using Content.Shared.Popups;
|
using Content.Shared.Popups;
|
||||||
using Robust.Shared.Containers;
|
using Robust.Shared.Containers;
|
||||||
using Robust.Shared.Player;
|
|
||||||
using Robust.Shared.Serialization;
|
using Robust.Shared.Serialization;
|
||||||
|
|
||||||
namespace Content.Shared.Implants;
|
namespace Content.Shared.Implants;
|
||||||
@@ -25,6 +24,7 @@ public abstract class SharedImplanterSystem : EntitySystem
|
|||||||
|
|
||||||
SubscribeLocalEvent<ImplanterComponent, ComponentInit>(OnImplanterInit);
|
SubscribeLocalEvent<ImplanterComponent, ComponentInit>(OnImplanterInit);
|
||||||
SubscribeLocalEvent<ImplanterComponent, EntInsertedIntoContainerMessage>(OnEntInserted);
|
SubscribeLocalEvent<ImplanterComponent, EntInsertedIntoContainerMessage>(OnEntInserted);
|
||||||
|
SubscribeLocalEvent<ImplanterComponent, ExaminedEvent>(OnExamine);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnImplanterInit(EntityUid uid, ImplanterComponent component, ComponentInit args)
|
private void OnImplanterInit(EntityUid uid, ImplanterComponent component, ComponentInit args)
|
||||||
@@ -41,6 +41,13 @@ public abstract class SharedImplanterSystem : EntitySystem
|
|||||||
component.ImplantData = (implantData.EntityName, implantData.EntityDescription);
|
component.ImplantData = (implantData.EntityName, implantData.EntityDescription);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnExamine(EntityUid uid, ImplanterComponent component, ExaminedEvent args)
|
||||||
|
{
|
||||||
|
if (!component.ImplanterSlot.HasItem || !args.IsInDetailsRange)
|
||||||
|
return;
|
||||||
|
|
||||||
|
args.PushMarkup(Loc.GetString("implanter-contained-implant-text", ("desc", component.ImplantData.Item2)));
|
||||||
|
}
|
||||||
|
|
||||||
//Instantly implant something and add all necessary components and containers.
|
//Instantly implant something and add all necessary components and containers.
|
||||||
//Set to draw mode if not implant only
|
//Set to draw mode if not implant only
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
## Implanter Attempt Messages
|
## Implanter Attempt Messages
|
||||||
|
|
||||||
implanter-component-implanting-target = {$user} is trying to implant you with something!
|
implanter-component-implanting-target = {$user} is trying to implant you with something!
|
||||||
implanter-draw-failed-permanent = The {$implant} in {$target} is fused with them and cannot be removed!
|
implanter-draw-failed-permanent = The {$implant} in {$target} is fused with them and cannot be removed!
|
||||||
@@ -9,9 +9,10 @@ implanter-draw-text = Draw
|
|||||||
implanter-inject-text = Inject
|
implanter-inject-text = Inject
|
||||||
|
|
||||||
implanter-empty-text = None
|
implanter-empty-text = None
|
||||||
implanter-implant-text = {$implantName}{$lineBreak}{$implantDescription}
|
|
||||||
|
|
||||||
implanter-label = [color=white]Implant: {$currentEntities}{$lineBreak}Mode: {$modeString}[/color]
|
implanter-label = Implant: [color=green]{$implantName}[/color] | [color=white]{$modeString}[/color]{$lineBreak}{$implantDescription}
|
||||||
|
|
||||||
|
implanter-contained-implant-text = [color=green]{$desc}[/color]
|
||||||
|
|
||||||
## Implanter Actions
|
## Implanter Actions
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# Implanters
|
# Implanters
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: implanter
|
name: implanter
|
||||||
description: a syringe fitted to be used exclusively with implants
|
description: A syringe exclusively designed for the injection and extraction of subdermal implants.
|
||||||
id: BaseImplanter
|
id: BaseImplanter
|
||||||
parent: BaseItem
|
parent: BaseItem
|
||||||
abstract: true
|
abstract: true
|
||||||
@@ -48,6 +48,7 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
id: Implanter
|
id: Implanter
|
||||||
parent: BaseImplanter
|
parent: BaseImplanter
|
||||||
|
description: A disposable syringe exclusively designed for the injection and extraction of subdermal implants.
|
||||||
components:
|
components:
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
@@ -56,7 +57,7 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
id: BaseImplantOnlyImplanter
|
id: BaseImplantOnlyImplanter
|
||||||
parent: Implanter
|
parent: Implanter
|
||||||
description: a single use implanter
|
description: A disposable syringe exclusively designed for the injection of subdermal implants.
|
||||||
abstract: true
|
abstract: true
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
@@ -78,7 +79,6 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
id: SadTromboneImplanter
|
id: SadTromboneImplanter
|
||||||
name: sad trombone implanter
|
name: sad trombone implanter
|
||||||
description: a single use implanter, the implant plays a sad tune on death
|
|
||||||
parent: BaseImplantOnlyImplanter
|
parent: BaseImplantOnlyImplanter
|
||||||
components:
|
components:
|
||||||
- type: Implanter
|
- type: Implanter
|
||||||
@@ -87,7 +87,6 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
id: LightImplanter
|
id: LightImplanter
|
||||||
name: light implanter
|
name: light implanter
|
||||||
description: a single use implanter, the implant emits light on activation
|
|
||||||
parent: BaseImplantOnlyImplanter
|
parent: BaseImplantOnlyImplanter
|
||||||
components:
|
components:
|
||||||
- type: Implanter
|
- type: Implanter
|
||||||
@@ -96,7 +95,6 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
id: BikeHornImplanter
|
id: BikeHornImplanter
|
||||||
name: bike horn implanter
|
name: bike horn implanter
|
||||||
description: a single use implanter, the implant makes you able to honk anywhere at any time
|
|
||||||
parent: BaseImplantOnlyImplanter
|
parent: BaseImplantOnlyImplanter
|
||||||
components:
|
components:
|
||||||
- type: Implanter
|
- type: Implanter
|
||||||
@@ -107,7 +105,6 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
id: TrackingImplanter
|
id: TrackingImplanter
|
||||||
name: tracking implanter
|
name: tracking implanter
|
||||||
description: a single use implanter, the implant tracks
|
|
||||||
parent: BaseImplantOnlyImplanter
|
parent: BaseImplantOnlyImplanter
|
||||||
components:
|
components:
|
||||||
- type: Implanter
|
- type: Implanter
|
||||||
@@ -118,7 +115,6 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
id: StorageImplanter
|
id: StorageImplanter
|
||||||
name: storage implanter
|
name: storage implanter
|
||||||
description: a single use implanter, the implant grants hidden storage
|
|
||||||
parent: BaseImplantOnlyImplanter
|
parent: BaseImplantOnlyImplanter
|
||||||
components:
|
components:
|
||||||
- type: Implanter
|
- type: Implanter
|
||||||
@@ -127,7 +123,6 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
id: FreedomImplanter
|
id: FreedomImplanter
|
||||||
name: freedom implanter
|
name: freedom implanter
|
||||||
description: a single use implanter, the implant lets the user break out of hand restraints three times
|
|
||||||
parent: BaseImplantOnlyImplanter
|
parent: BaseImplantOnlyImplanter
|
||||||
components:
|
components:
|
||||||
- type: Implanter
|
- type: Implanter
|
||||||
@@ -136,7 +131,6 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
id: UplinkImplanter
|
id: UplinkImplanter
|
||||||
name: uplink implanter
|
name: uplink implanter
|
||||||
description: a single use implanter, the implant lets the user access a syndicate uplink at will
|
|
||||||
parent: BaseImplantOnlyImplanter
|
parent: BaseImplantOnlyImplanter
|
||||||
components:
|
components:
|
||||||
- type: Implanter
|
- type: Implanter
|
||||||
@@ -145,7 +139,6 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
id: EmpImplanter
|
id: EmpImplanter
|
||||||
name: EMP implanter
|
name: EMP implanter
|
||||||
description: a single use implanter, the implant creates an EMP pulse when you activate it.
|
|
||||||
parent: BaseImplantOnlyImplanter
|
parent: BaseImplantOnlyImplanter
|
||||||
components:
|
components:
|
||||||
- type: Implanter
|
- type: Implanter
|
||||||
@@ -153,8 +146,7 @@
|
|||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: DnaScramblerImplanter
|
id: DnaScramblerImplanter
|
||||||
name: dna scrambler implanter
|
name: DNA scrambler implanter
|
||||||
description: a single use implanter, the implant allows you to randomly change your appearance and name once.
|
|
||||||
parent: BaseImplantOnlyImplanter
|
parent: BaseImplantOnlyImplanter
|
||||||
components:
|
components:
|
||||||
- type: Implanter
|
- type: Implanter
|
||||||
@@ -166,8 +158,7 @@
|
|||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: MicroBombImplanter
|
id: MicroBombImplanter
|
||||||
name: micro bomb implanter
|
name: micro-bomb implanter
|
||||||
description: a single use implanter, the implant is permanent and blows the user up on death
|
|
||||||
parent: BaseImplantOnlyImplanter
|
parent: BaseImplantOnlyImplanter
|
||||||
components:
|
components:
|
||||||
- type: Implanter
|
- type: Implanter
|
||||||
@@ -175,8 +166,7 @@
|
|||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: MacroBombImplanter
|
id: MacroBombImplanter
|
||||||
name: macro bomb implanter
|
name: macro-bomb implanter
|
||||||
description: a single use implanter, the implant creates a large explosion on death after the alloted time
|
|
||||||
parent: BaseImplantOnlyImplanter
|
parent: BaseImplantOnlyImplanter
|
||||||
components:
|
components:
|
||||||
- type: Implanter
|
- type: Implanter
|
||||||
@@ -184,8 +174,7 @@
|
|||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: DeathRattleImplanter
|
id: DeathRattleImplanter
|
||||||
name: Deathrattle implanter
|
name: death rattle implanter
|
||||||
description: a single use implanter, the implant will inform anyone with access to the syndicate radio channel of your death.
|
|
||||||
parent: BaseImplantOnlyImplanter
|
parent: BaseImplantOnlyImplanter
|
||||||
components:
|
components:
|
||||||
- type: Implanter
|
- type: Implanter
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
parent: BaseItem
|
parent: BaseItem
|
||||||
id: BaseSubdermalImplant
|
id: BaseSubdermalImplant
|
||||||
name: implant
|
name: implant
|
||||||
description: a microscopic chip that's injected under the skin
|
description: A microscopic chip that's injected under the skin.
|
||||||
abstract: true
|
abstract: true
|
||||||
components:
|
components:
|
||||||
- type: SubdermalImplant
|
- type: SubdermalImplant
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
parent: BaseSubdermalImplant
|
parent: BaseSubdermalImplant
|
||||||
id: SadTromboneImplant
|
id: SadTromboneImplant
|
||||||
name: sad trombone implant
|
name: sad trombone implant
|
||||||
description: plays a sad tune when the user dies
|
description: This implant plays a sad tune when the user dies.
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: SubdermalImplant
|
- type: SubdermalImplant
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
parent: BaseSubdermalImplant
|
parent: BaseSubdermalImplant
|
||||||
id: LightImplant
|
id: LightImplant
|
||||||
name: light implant
|
name: light implant
|
||||||
description: makes your skin emit a faint light
|
description: This implant emits light from the user's skin on activation.
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: SubdermalImplant
|
- type: SubdermalImplant
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
parent: BaseSubdermalImplant
|
parent: BaseSubdermalImplant
|
||||||
id: BikeHornImplant
|
id: BikeHornImplant
|
||||||
name: bike horn implant
|
name: bike horn implant
|
||||||
description: Makes you honk
|
description: This implant lets the user honk anywhere at any time.
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: SubdermalImplant
|
- type: SubdermalImplant
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
parent: BaseSubdermalImplant
|
parent: BaseSubdermalImplant
|
||||||
id: TrackingImplant
|
id: TrackingImplant
|
||||||
name: tracking implant
|
name: tracking implant
|
||||||
description: tracks whoever was implanted via the suit sensor network
|
description: This implant has a tracking device attached to the suit sensor network, as well as a condition monitor for the Security radio channel.
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: SubdermalImplant
|
- type: SubdermalImplant
|
||||||
@@ -110,7 +110,7 @@
|
|||||||
parent: BaseSubdermalImplant
|
parent: BaseSubdermalImplant
|
||||||
id: StorageImplant
|
id: StorageImplant
|
||||||
name: storage implant
|
name: storage implant
|
||||||
description: made with bluespace technology, allows the user to fit a few items in hidden storage
|
description: This implant grants hidden storage within a person's body using bluespace technology.
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: SubdermalImplant
|
- type: SubdermalImplant
|
||||||
@@ -132,7 +132,7 @@
|
|||||||
parent: BaseSubdermalImplant
|
parent: BaseSubdermalImplant
|
||||||
id: FreedomImplant
|
id: FreedomImplant
|
||||||
name: freedom implant
|
name: freedom implant
|
||||||
description: you can break these cuffs
|
description: This implant lets the user break out of hand restraints up to three times before ceasing to function anymore.
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: SubdermalImplant
|
- type: SubdermalImplant
|
||||||
@@ -142,7 +142,7 @@
|
|||||||
parent: BaseSubdermalImplant
|
parent: BaseSubdermalImplant
|
||||||
id: UplinkImplant
|
id: UplinkImplant
|
||||||
name: uplink implant
|
name: uplink implant
|
||||||
description: allows the user to open a hidden uplink at will
|
description: This implant lets the user access a hidden Syndicate uplink at will.
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: SubdermalImplant
|
- type: SubdermalImplant
|
||||||
@@ -160,7 +160,7 @@
|
|||||||
parent: BaseSubdermalImplant
|
parent: BaseSubdermalImplant
|
||||||
id: EmpImplant
|
id: EmpImplant
|
||||||
name: EMP implant
|
name: EMP implant
|
||||||
description: allows the user to release a small EMP pulse
|
description: This implant creates an electromagnetic pulse when activated.
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: SubdermalImplant
|
- type: SubdermalImplant
|
||||||
@@ -175,7 +175,7 @@
|
|||||||
parent: BaseSubdermalImplant
|
parent: BaseSubdermalImplant
|
||||||
id: DnaScramblerImplant
|
id: DnaScramblerImplant
|
||||||
name: DNA scrambler implant
|
name: DNA scrambler implant
|
||||||
description: allows the user to change their appearance and name
|
description: This implant lets the user randomly change their appearance and name once.
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: SubdermalImplant
|
- type: SubdermalImplant
|
||||||
@@ -186,8 +186,8 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
parent: BaseSubdermalImplant
|
parent: BaseSubdermalImplant
|
||||||
id: MicroBombImplant
|
id: MicroBombImplant
|
||||||
name: micro bomb implant
|
name: micro-bomb implant
|
||||||
description: mission failed, user blows up on death to prevent company equipment from being stolen
|
description: This implant detonates the user upon death.
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: SubdermalImplant
|
- type: SubdermalImplant
|
||||||
@@ -216,8 +216,8 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
parent: BaseSubdermalImplant
|
parent: BaseSubdermalImplant
|
||||||
id: MacroBombImplant
|
id: MacroBombImplant
|
||||||
name: macro bomb implant
|
name: macro-bomb implant
|
||||||
description: a large explosion packed into a small implant, be warned as this could be dangerous for your teammates
|
description: This implant creates a large explosion on death after a preprogrammed countdown.
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: SubdermalImplant
|
- type: SubdermalImplant
|
||||||
@@ -250,8 +250,8 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
parent: BaseSubdermalImplant
|
parent: BaseSubdermalImplant
|
||||||
id: DeathRattleImplant
|
id: DeathRattleImplant
|
||||||
name: deathrattle implant
|
name: death rattle implant
|
||||||
description: sends a message with your location to the syndicate radio channel when you fall into a critical state or die.
|
description: This implant will inform the Syndicate radio channel should the user fall into critical condition or die.
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: SubdermalImplant
|
- type: SubdermalImplant
|
||||||
|
|||||||
Reference in New Issue
Block a user