using Content.Server.Storage.EntitySystems;
using Content.Server.Tabletop;
using Content.Server.Tabletop.Components;
-using Content.Server.Terminator.Systems;
using Content.Shared.Administration;
using Content.Shared.Administration.Components;
using Content.Shared.Body.Components;
using Content.Shared.Electrocution;
using Content.Shared.Interaction.Components;
using Content.Shared.Inventory;
-using Content.Shared.Mind.Components;
using Content.Shared.Mobs;
using Content.Shared.Mobs.Components;
using Content.Shared.Mobs.Systems;
[Dependency] private readonly PopupSystem _popupSystem = default!;
[Dependency] private readonly SharedPhysicsSystem _physics = default!;
[Dependency] private readonly TabletopSystem _tabletopSystem = default!;
- [Dependency] private readonly TerminatorSystem _terminator = default!;
[Dependency] private readonly VomitSystem _vomitSystem = default!;
[Dependency] private readonly WeldableSystem _weldableSystem = default!;
[Dependency] private readonly SharedContentEyeSystem _eyeSystem = default!;
Impact = LogImpact.Extreme,
};
args.Verbs.Add(superBonk);
-
- Verb terminate = new()
- {
- Text = "Terminate",
- Category = VerbCategory.Smite,
- Icon = new SpriteSpecifier.Rsi(new ("Mobs/Species/Terminator/parts.rsi"), "skull_icon"),
- Act = () =>
- {
- if (!TryComp<MindContainerComponent>(args.Target, out var mindContainer) || mindContainer.Mind == null)
- return;
-
- var coords = Transform(args.Target).Coordinates;
- var mindId = mindContainer.Mind.Value;
- _terminator.CreateSpawner(coords, mindId);
-
- _popupSystem.PopupEntity(Loc.GetString("admin-smite-terminate-prompt"), args.Target,
- args.Target, PopupType.LargeCaution);
- },
- Impact = LogImpact.Extreme,
- Message = Loc.GetString("admin-smite-terminate-description")
- };
- args.Verbs.Add(terminate);
}
}
using Content.Shared.Popups;
-namespace Content.Server.Destructible.Thresholds.Behaviors;
+namespace Content.Server.Destructible.Thresholds.Behaviors;
/// <summary>
/// Shows a popup for everyone.
+++ /dev/null
-using Content.Server.Objectives.Systems;
-
-namespace Content.Server.Objectives.Components;
-
-/// <summary>
-/// Sets this objective's target to the exterminator's target override, if it has one.
-/// If not it will be random.
-/// </summary>
-[RegisterComponent, Access(typeof(TerminatorTargetOverrideSystem))]
-public sealed partial class TerminatorTargetOverrideComponent : Component
-{
-}
+++ /dev/null
-using Content.Server.Objectives.Components;
-using Content.Server.Terminator.Components;
-using Content.Shared.Mind;
-using Content.Shared.Objectives.Components;
-
-namespace Content.Server.Objectives.Systems;
-
-/// <summary>
-/// Handles copying the exterminator's target override to this objective.
-/// </summary>
-public sealed class TerminatorTargetOverrideSystem : EntitySystem
-{
- [Dependency] private readonly TargetObjectiveSystem _target = default!;
-
- public override void Initialize()
- {
- base.Initialize();
-
- SubscribeLocalEvent<TerminatorTargetOverrideComponent, ObjectiveAssignedEvent>(OnAssigned);
- }
-
- private void OnAssigned(EntityUid uid, TerminatorTargetOverrideComponent comp, ref ObjectiveAssignedEvent args)
- {
- if (args.Mind.OwnedEntity == null)
- {
- args.Cancelled = true;
- return;
- }
-
- var user = args.Mind.OwnedEntity.Value;
- if (!TryComp<TerminatorComponent>(user, out var terminator))
- {
- args.Cancelled = true;
- return;
- }
-
- // this exterminator has a target override so set its objective target accordingly
- if (terminator.Target != null)
- _target.SetTarget(uid, terminator.Target.Value);
- }
-}
SubscribeAntagEvents<NukeopsRoleComponent>();
SubscribeAntagEvents<RevolutionaryRoleComponent>();
SubscribeAntagEvents<SubvertedSiliconRoleComponent>();
- SubscribeAntagEvents<TerminatorRoleComponent>();
SubscribeAntagEvents<TraitorRoleComponent>();
SubscribeAntagEvents<ZombieRoleComponent>();
SubscribeAntagEvents<ThiefRoleComponent>();
+++ /dev/null
-using Content.Server.Terminator.Systems;
-using Robust.Shared.Prototypes;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List;
-
-namespace Content.Server.Terminator.Components;
-
-/// <summary>
-/// Main terminator component, handles the target, if any, and objectives.
-/// </summary>
-[RegisterComponent, Access(typeof(TerminatorSystem))]
-public sealed partial class TerminatorComponent : Component
-{
- /// <summary>
- /// Used to force the terminate objective's target.
- /// If null it will be a random person.
- /// </summary>
- [DataField("target")]
- public EntityUid? Target;
-}
+++ /dev/null
-using Content.Server.Terminator.Systems;
-
-namespace Content.Server.Terminator.Components;
-
-/// <summary>
-/// Sets <see cref="TerminatorComponent.Target"/> after the ghost role spawns.
-/// </summary>
-[RegisterComponent, Access(typeof(TerminatorSystem))]
-public sealed partial class TerminatorTargetComponent : Component
-{
- /// <summary>
- /// The target to set after the ghost role spawns.
- /// </summary>
- [DataField("target")]
- public EntityUid? Target;
-}
+++ /dev/null
-using Content.Server.Body.Components;
-using Content.Server.GenericAntag;
-using Content.Server.Ghost.Roles.Events;
-using Content.Server.Roles;
-using Content.Server.Terminator.Components;
-using Content.Shared.Roles;
-using Robust.Shared.Map;
-
-namespace Content.Server.Terminator.Systems;
-
-public sealed class TerminatorSystem : EntitySystem
-{
- [Dependency] private readonly SharedRoleSystem _role = default!;
-
- public override void Initialize()
- {
- base.Initialize();
-
- SubscribeLocalEvent<TerminatorComponent, MapInitEvent>(OnMapInit);
- SubscribeLocalEvent<TerminatorComponent, GhostRoleSpawnerUsedEvent>(OnSpawned);
- SubscribeLocalEvent<TerminatorComponent, GenericAntagCreatedEvent>(OnCreated);
- }
-
- private void OnMapInit(EntityUid uid, TerminatorComponent comp, MapInitEvent args)
- {
- // cyborg doesn't need to breathe
- RemComp<RespiratorComponent>(uid);
- }
-
- private void OnSpawned(EntityUid uid, TerminatorComponent comp, GhostRoleSpawnerUsedEvent args)
- {
- if (!TryComp<TerminatorTargetComponent>(args.Spawner, out var target))
- return;
-
- comp.Target = target.Target;
- }
-
- private void OnCreated(EntityUid uid, TerminatorComponent comp, ref GenericAntagCreatedEvent args)
- {
- var mindId = args.MindId;
- var mind = args.Mind;
-
- _role.MindAddRole(mindId, new RoleBriefingComponent
- {
- Briefing = Loc.GetString("terminator-role-briefing")
- }, mind);
- _role.MindAddRole(mindId, new TerminatorRoleComponent(), mind);
- }
-
- /// <summary>
- /// Create a spawner at a position and return it.
- /// </summary>
- /// <param name="coords">Coordinates to create the spawner at</param>
- /// <param name="target">Optional target mind to force the terminator to target</param>
- public EntityUid CreateSpawner(EntityCoordinates coords, EntityUid? target)
- {
- var uid = Spawn("SpawnPointGhostTerminator", coords);
- if (target != null)
- {
- var comp = EnsureComp<TerminatorTargetComponent>(uid);
- comp.Target = target;
- }
-
- return uid;
- }
-}
admin-smite-run-walk-swap-prompt = You have to press shift to run!
admin-smite-super-speed-prompt = You move at mach 0.8!
admin-smite-lung-removal-self = You can't breathe!
-admin-smite-terminate-prompt = I'll be back
## Smite descriptions
admin-smite-garbage-can-description = Turn them into a garbage bin to emphasize what they remind you of.
admin-smite-super-bonk-description = Slams them on every single table on the Station and beyond.
admin-smite-super-bonk-lite-description= Slams them on every single table on the Station and beyond. Stops when the target is dead.
-admin-smite-terminate-description = Creates a Terminator ghost role with the sole objective of killing them.
## Tricks descriptions
+++ /dev/null
-terminator-round-end-agent-name = nt-800
-
-objective-issuer-susnet = [color=#d64119]Susnet[/color]
-
-terminator-role-greeting =
- You are the exterminator, a relentless assassin sent into the past to secure our future.
- We need you to eliminate {$target}, {$job}.
- Use any means at your disposal to complete the mission.
- Glory to Cybersun.
-
-terminator-role-briefing = Kill the target at all costs.
-
-terminator-endoskeleton-gib-popup = All the battered flesh falls apart, revealing a titanium endoskeleton!
-terminator-endoskeleton-burn-popup = The seared flesh is burned to a crisp, revealing a titanium endoskeleton!
ghost-role-information-BreadDog-description = You are the chef's favorite child. You're a living bread dog.
ghost-role-information-BreadDog-rules = You're an edible dog made of bread. Your task is to find your place in this world where everything wants to eat you.
-ghost-role-information-exterminator-name = Exterminator
-ghost-role-information-exterminator-description = You been been sent back in time to terminate a target with high importance to the future.
-ghost-role-information-exterminator-rules = You are an antagonist and may kill anyone that tries to stop you, but killing the target is always your top priority.
-
ghost-role-information-space-ninja-name = Space Ninja
ghost-role-information-space-ninja-description = Use stealth and deception to sabotage the station.
ghost-role-information-space-ninja-rules = You are an elite mercenary of the Spider Clan. You aren't required to follow your objectives, yet your NINJA HONOR demands you try.
+++ /dev/null
-objective-terminate-title = Terminate {$targetName}, {CAPITALIZE($job)}
roles-antag-thief-name = Thief
roles-antag-thief-objective = Add some NT property to your personal collection without using violence.
-
-roles-antag-terminator-name = Exterminator
-roles-antag-terminator-objective = Kill the target at all costs, the future depends on it.
+++ /dev/null
-- type: entity
- abstract: true
- parent: BaseItem
- id: PartTerminator
- name: nt-800 body part
- components:
- - type: Sprite
- sprite: Mobs/Species/Terminator/parts.rsi
- - type: Icon
- sprite: Mobs/Species/Terminator/parts.rsi
- - type: Damageable
- damageContainer: Inorganic
- damageModifierSet: Cybernetic
- - type: BodyPart
- - type: ContainerContainer
- containers:
- bodypart: !type:Container
- ents: []
- - type: Gibbable
- - type: StaticPrice
- price: 200
-
-- type: entity
- parent: PartTerminator
- id: TorsoTerminator
- name: nt-800 torso
- components:
- - type: Sprite
- state: torso_m
- - type: Icon
- state: torso_m
- - type: BodyPart
- partType: Torso
-
-- type: entity
- parent: PartTerminator
- id: HeadTerminator
- name: nt-800 skull
- description: Its red eyes have powered down... for now.
- components:
- - type: Sprite
- state: skull_icon
- - type: Icon
- state: skull_icon
- - type: BodyPart
- partType: Head
- # killing a terminators worth big bucks
- - type: StaticPrice
- price: 2000
- - type: Tag
- tags:
- - Head
-
-- type: entity
- parent: PartTerminator
- id: LeftArmTerminator
- name: left nt-800 arm
- components:
- - type: Sprite
- state: l_arm
- - type: Icon
- state: l_arm
- - type: BodyPart
- partType: Arm
- symmetry: Left
-
-- type: entity
- parent: PartTerminator
- id: RightArmTerminator
- name: right nt-800 arm
- components:
- - type: Sprite
- state: r_arm
- - type: Icon
- state: r_arm
- - type: BodyPart
- partType: Arm
- symmetry: Right
-
-- type: entity
- parent: PartTerminator
- id: LeftHandTerminator
- name: left nt-800 hand
- components:
- - type: Sprite
- state: l_hand
- - type: Icon
- state: l_hand
- - type: BodyPart
- partType: Hand
- symmetry: Left
-
-- type: entity
- parent: PartTerminator
- id: RightHandTerminator
- name: right nt-800 hand
- components:
- - type: Sprite
- state: r_hand
- - type: Icon
- state: r_hand
- - type: BodyPart
- partType: Hand
- symmetry: Right
-
-- type: entity
- parent: PartTerminator
- id: LeftLegTerminator
- name: left nt-800 leg
- components:
- - type: Sprite
- state: l_leg
- - type: Icon
- state: l_leg
- - type: BodyPart
- partType: Leg
- symmetry: Left
- - type: MovementBodyPart
-
-- type: entity
- parent: PartTerminator
- id: RightLegTerminator
- name: right nt-800 leg
- components:
- - type: Sprite
- state: r_leg
- - type: Icon
- state: r_leg
- - type: BodyPart
- partType: Leg
- symmetry: Right
- - type: MovementBodyPart
-
-- type: entity
- parent: PartTerminator
- id: LeftFootTerminator
- name: left nt-800 foot
- components:
- - type: Sprite
- state: l_foot
- - type: Icon
- state: l_foot
- - type: BodyPart
- partType: Foot
- symmetry: Left
-
-- type: entity
- parent: PartTerminator
- id: RightFootTerminator
- name: right nt-800 foot
- components:
- - type: Sprite
- state: r_foot
- - type: Icon
- state: r_foot
- - type: BodyPart
- partType: Foot
- symmetry: Right
+++ /dev/null
-# not quite human...
-- type: body
- id: TerminatorFlesh
- name: exterminator
- root: torso
- slots:
- head:
- part: HeadHuman
- connections:
- - torso
- organs:
- brain: MobTerminatorEndoskeleton
- torso:
- part: TorsoHuman
- connections:
- - left arm
- - right arm
- - left leg
- - right leg
- right arm:
- part: RightArmHuman
- connections:
- - right hand
- left arm:
- part: LeftArmHuman
- connections:
- - left hand
- right hand:
- part: RightHandHuman
- left hand:
- part: LeftHandHuman
- right leg:
- part: RightLegHuman
- connections:
- - right foot
- left leg:
- part: LeftLegHuman
- connections:
- - left foot
- right foot:
- part: RightFootHuman
- left foot:
- part: LeftFootHuman
-
-# TODO: terminator body parts
-- type: body
- id: TerminatorEndoskeleton
- name: terminatorEndoskeleton
- root: torso
- slots:
- head:
- part: HeadTerminator
- connections:
- - torso
- torso:
- part: TorsoTerminator
- connections:
- - left arm
- - right arm
- - left leg
- - right leg
- right arm:
- part: RightArmTerminator
- connections:
- - right hand
- left arm:
- part: LeftArmTerminator
- connections:
- - left hand
- right hand:
- part: RightHandTerminator
- left hand:
- part: LeftHandTerminator
- right leg:
- part: RightLegTerminator
- connections:
- - right foot
- left leg:
- part: LeftLegTerminator
- connections:
- - left foot
- right foot:
- part: RightFootTerminator
- left foot:
- part: LeftFootTerminator
Cellular: 0.0
Heat: 2.5
Caustic: 0.0
-
-# terminator's flesh damage set
-- type: damageModifierSet
- id: CyberneticFlesh
- coefficients:
- Blunt: 0.2
- Slash: 0.2
- Piercing: 0.1
- # fire and lasers burn it good
- Heat: 1.0
- # zap
- Shock: 1.5
- Cold: 0.25
- Caustic: 0.25
- # doesnt have organs to poison
- Poison: 0.0
- Cellular: 0.0
-
-# terminator's endoskeleton damage set
-- type: damageModifierSet
- id: Cybernetic
- coefficients:
- # bonk
- Blunt: 1.0
- # alloy too hard to cut or shoot
- Slash: 0.0
- Piercing: 0.0
- # no burning anymore
- Heat: 0.0
- # zap zap
- Shock: 2.5
- Cold: 0.0
- Caustic: 0.0
- Poison: 0.0
- Cellular: 0.0
- flatReductions:
- # can't punch the endoskeleton to death
- Blunt: 5
- state: green
- sprite: Objects/Weapons/Melee/energykatana.rsi
state: icon
-
-- type: entity
- parent: MarkerBase
- id: SpawnPointGhostTerminator
- name: terminator spawn point
- components:
- - type: GhostRole
- name: ghost-role-information-exterminator-name
- description: ghost-role-information-exterminator-description
- rules: ghost-role-information-exterminator-rules
- - type: GhostRoleMobSpawner
- prototype: MobHumanTerminator
- - type: Sprite
- layers:
- - state: green
- - sprite: Mobs/Species/Terminator/parts.rsi
- state: full
+++ /dev/null
-# stuff common to flesh and endoskeleton
-- type: entity
- abstract: true
- id: MobTerminatorBase
- components:
- - type: ZombieImmune # yeah no
- - type: FlashImmunity # no brain to brainwash, eyes are robotic
-
-- type: entity
- parent: [MobHuman, MobTerminatorBase]
- id: MobHumanTerminator
- # uses random name generator dont worry
- name: exterminator
- components:
- - type: Terminator
- - type: GenericAntag
- rule: Exterminator
- # reduced barotrauma damage
- - type: Barotrauma
- damage:
- types:
- Blunt: 0.1
- # 4x stamina, faster recovery
- - type: Stamina
- decay: 6
- cooldown: 1
- critThreshold: 400
- # immune to space drugs, pax, temporary blindness
- - type: StatusEffects
- allowed:
- - Stun
- - KnockedDown
- - SlowedDown
- - Stutter
- - Electrocution
- - Drunk
- - SlurredSpeech
- - RatvarianLanguage
- - PressureImmunity
- - Muted
- - ForcedSleep
- - StaminaModifier
- - type: MobState
- allowedStates:
- - Alive
- - Dead
- # endoskeleton need it
- - type: TransferMindOnGib
- - type: MobThresholds
- thresholds:
- 0: Alive
- # used for health display its not possible to actually fall into crit
- 200: Dead
- # fire!!!!
- - type: Flammable
- damage:
- types:
- Heat: 6.0
- # slightly wider thresholds
- - type: Temperature
- heatDamageThreshold: 390
- coldDamageThreshold: 240
- # take terminator flesh damage
- - type: Damageable
- damageModifierSet: CyberneticFlesh
- # only organ is an endoskeleton, which is transferred when flesh dies
- - type: Body
- prototype: TerminatorFlesh
- # endoskeleton transformation when either you would get burned to crit or killed by any damage
- # you will become an endoskeleton as your last chance to kill the target
- - type: Destructible
- thresholds:
- # the burn trigger is first incase of a bombing or nuking, it might well do over 200 damage but 100 heat is more important
- - trigger:
- !type:DamageTypeTrigger
- damageType: Heat
- damage: 100
- behaviors:
- - !type:PopupBehavior
- popup: terminator-endoskeleton-burn-popup
- popupType: LargeCaution
- - !type:GibBehavior
- - trigger:
- !type:DamageTrigger
- damage: 200
- behaviors:
- - !type:PopupBehavior
- popup: terminator-endoskeleton-gib-popup
- popupType: LargeCaution
- - !type:GibBehavior
- # faster than humans when damaged
- - type: SlowOnDamage
- speedModifierThresholds:
- 70: 0.8
- 90: 0.6
- # arnold is very strong
- - type: MeleeWeapon
- damage:
- types:
- Blunt: 10
- Structural: 10
- - type: RandomHumanoidAppearance
- - type: Tag
- tags:
- - CanPilot
- - FootstepSound
- - DoorBumpOpener
- - Unimplantable # no brain to mindshield, no organic body to implant into
-
-- type: entity
- parent:
- - BaseMob
- - MobCombat
- - MobDamageable
- - MobSiliconBase
- - MobTerminatorBase
- id: MobTerminatorEndoskeleton
- # you are now valid
- name: nt-800 "exterminator" endoskeleton
- description: The inner powerhouse of Susnet's infiltrator androids. Ridiculously hard alloy on the inside, unassuming flesh on the outside.
- components:
- - type: HumanoidAppearance
- species: Terminator
- - type: MovementSpeedModifier
- baseWalkSpeed: 1.5
- baseSprintSpeed: 3.0
- - type: Sprite
- sprite: Mobs/Species/Terminator/parts.rsi
- - type: Fixtures
- fixtures:
- fix1:
- shape:
- !type:PhysShapeCircle
- radius: 0.35
- # he heavy
- density: 500
- mask:
- - MobMask
- layer:
- - MobLayer
- - type: MobThresholds
- thresholds:
- 0: Alive
- # gibbed at 200 so cant go crit
- 200: Dead
- # incase some weird stuff happens and the crew adopts a terminator
- - type: Repairable
- doAfterDelay: 15
- allowSelfRepair: false
- - type: Body
- prototype: TerminatorEndoskeleton
- # lets it sit in the terminator flesh's brain slot
- - type: Organ
- - type: Brain
- - type: TypingIndicator
- proto: robot # beep boop borp
- - type: Speech
- speechSounds: Pai
- - type: Damageable
- damageModifierSet: Cybernetic
- - type: Destructible
- thresholds:
- - trigger:
- !type:DamageTrigger
- damage: 200
- behaviors:
- - !type:PlaySoundBehavior
- # endoSKELETON
- sound: /Audio/Effects/bone_rattle.ogg
- # a keepsake or a gift for cargo
- - !type:SpawnEntitiesBehavior
- spawn:
- HeadTerminator:
- min: 1
- max: 1
- - !type:DoActsBehavior
- acts: [ "Destruction" ]
- # for fire spreading around, the endoskeleton cannot burn
- - type: Flammable
- fireSpread: true
- canResistFire: true
- damage:
- types:
- Heat: 0
- # now his only weapon, but it is stronger
- - type: MeleeWeapon
- damage:
- types:
- Blunt: 15
- Structural: 5
- - type: Puller
- needsHands: false
- - type: Prying
- pryPowered: true
- force: true
- - type: Tag
- tags:
- - DoorBumpOpener
- - ShoesRequiredStepTriggerImmune
- # let mind transfer on gib work
- - MindTransferTarget
- # its just metal so no implants
- - Unimplantable
lightBreakChancePerSecond: 0.0003
doorToggleChancePerSecond: 0.001
-- type: entity
- parent: BaseGameRule
- id: TerminatorSpawn
- noSpawn: true
- components:
- - type: StationEvent
- weight: 8
- duration: 1
- earliestStart: 30
- minimumPlayers: 20
- - type: RandomSpawnRule
- prototype: SpawnPointGhostTerminator
-
- type: entity
id: VentClog
parent: BaseGameRule
briefing:
sound: "/Audio/Misc/thief_greeting.ogg"
-- type: entity
- noSpawn: true
- parent: BaseGameRule
- id: Exterminator
- components:
- - type: GenericAntagRule
- agentName: terminator-round-end-agent-name
- objectives:
- - TerminateObjective
- - ShutDownObjective
+#- type: entity
+# noSpawn: true
+# parent: BaseGameRule
+# id: Exterminator
+# components:
+# - type: GenericAntagRule
+# agentName: terminator-round-end-agent-name
+# objectives:
+# - TerminateObjective
+# - ShutDownObjective
+++ /dev/null
-- type: entity
- abstract: true
- parent: BaseObjective
- id: BaseTerminatorObjective
- components:
- - type: Objective
- difficulty: 1
- issuer: susnet
- - type: RoleRequirement
- roles:
- components:
- - TerminatorRole
-
-- type: entity
- noSpawn: true
- parent: [BaseTerminatorObjective, BaseKillObjective]
- id: TerminateObjective
- description: Follow your programming and terminate the target.
- components:
- - type: Objective
- unique: false
- - type: TargetObjective
- title: objective-terminate-title
- - type: PickRandomPerson
- - type: TerminatorTargetOverride
- - type: KillPersonCondition
- requireDead: true
-
-- type: entity
- noSpawn: true
- parent: BaseTerminatorObjective
- id: ShutDownObjective
- name: Shut down
- description: Once the mission is complete die to prevent our technology from being stolen.
- components:
- - type: Objective
- icon:
- sprite: Mobs/Species/Terminator/parts.rsi
- state: skull_icon
- - type: DieCondition
+++ /dev/null
-- type: antag
- id: Terminator
- name: roles-antag-terminator-name
- antagonist: true
- setPreference: false
- objective: roles-antag-terminator-objective
+++ /dev/null
-- type: species
- id: Terminator
- name: Terminator
- roundStart: false
- prototype: MobTerminatorEndoskeleton
- sprites: MobTerminatorSprites
- defaultSkinTone: "#fff9e2"
- markingLimits: MobHumanMarkingLimits
- maleFirstNames: skeletonNamesFirst
- femaleFirstNames: skeletonNamesFirst
- dollPrototype: MobSkeletonPersonDummy
- skinColoration: TintedHues
-
-- type: speciesBaseSprites
- id: MobTerminatorSprites
- sprites:
- Head: MobTerminatorHead
- Chest: MobTerminatorTorso
- LArm: MobTerminatorLArm
- RArm: MobTerminatorRArm
- LHand: MobTerminatorLHand
- RHand: MobTerminatorRHand
- LLeg: MobTerminatorLLeg
- RLeg: MobTerminatorRLeg
- LFoot: MobTerminatorLFoot
- RFoot: MobTerminatorRFoot
-
-- type: humanoidBaseSprite
- id: MobTerminatorHead
- baseSprite:
- sprite: Mobs/Species/Terminator/parts.rsi
- state: head_m
-
-- type: humanoidBaseSprite
- id: MobTerminatorHeadMale
- baseSprite:
- sprite: Mobs/Species/Terminator/parts.rsi
- state: head_m
-
-- type: humanoidBaseSprite
- id: MobTerminatorHeadFemale
- baseSprite:
- sprite: Mobs/Species/Terminator/parts.rsi
- state: head_f
-
-- type: humanoidBaseSprite
- id: MobTerminatorTorso
- baseSprite:
- sprite: Mobs/Species/Terminator/parts.rsi
- state: torso_m
-
-- type: humanoidBaseSprite
- id: MobTerminatorTorsoMale
- baseSprite:
- sprite: Mobs/Species/Terminator/parts.rsi
- state: torso_m
-
-- type: humanoidBaseSprite
- id: MobTerminatorTorsoFemale
- baseSprite:
- sprite: Mobs/Species/Terminator/parts.rsi
- state: torso_f
-
-- type: humanoidBaseSprite
- id: MobTerminatorLLeg
- baseSprite:
- sprite: Mobs/Species/Terminator/parts.rsi
- state: l_leg
-
-- type: humanoidBaseSprite
- id: MobTerminatorLArm
- baseSprite:
- sprite: Mobs/Species/Terminator/parts.rsi
- state: l_arm
-
-- type: humanoidBaseSprite
- id: MobTerminatorLHand
- baseSprite:
- sprite: Mobs/Species/Terminator/parts.rsi
- state: l_hand
-
-- type: humanoidBaseSprite
- id: MobTerminatorLFoot
- baseSprite:
- sprite: Mobs/Species/Terminator/parts.rsi
- state: l_foot
-
-- type: humanoidBaseSprite
- id: MobTerminatorRLeg
- baseSprite:
- sprite: Mobs/Species/Terminator/parts.rsi
- state: r_leg
-
-- type: humanoidBaseSprite
- id: MobTerminatorRArm
- baseSprite:
- sprite: Mobs/Species/Terminator/parts.rsi
- state: r_arm
-
-- type: humanoidBaseSprite
- id: MobTerminatorRHand
- baseSprite:
- sprite: Mobs/Species/Terminator/parts.rsi
- state: r_hand
-
-- type: humanoidBaseSprite
- id: MobTerminatorRFoot
- baseSprite:
- sprite: Mobs/Species/Terminator/parts.rsi
- state: r_foot