Try and fix mob prototypes (#19859)
Co-authored-by: DrSmugleaf <drsmugleaf@gmail.com>
This commit is contained in:
parent
19fd6b42f8
commit
cd82d16121
|
|
@ -1,4 +1,5 @@
|
|||
using Content.Server.Administration.Logs;
|
||||
using Content.Server.Clothing.Components;
|
||||
using Content.Server.DeviceNetwork;
|
||||
using Content.Server.DeviceNetwork.Systems;
|
||||
using Content.Server.Ghost;
|
||||
|
|
@ -22,6 +23,7 @@ using Content.Shared.DoAfter;
|
|||
using Content.Server.Emp;
|
||||
using Content.Server.DeviceLinking.Events;
|
||||
using Content.Server.DeviceLinking.Systems;
|
||||
using Content.Shared.Inventory;
|
||||
|
||||
namespace Content.Server.Light.EntitySystems
|
||||
{
|
||||
|
|
@ -43,6 +45,7 @@ namespace Content.Server.Light.EntitySystems
|
|||
[Dependency] private readonly SharedAudioSystem _audio = default!;
|
||||
[Dependency] private readonly PointLightSystem _pointLight = default!;
|
||||
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
|
||||
[Dependency] private readonly InventorySystem _inventory = default!;
|
||||
|
||||
private static readonly TimeSpan ThunkDelay = TimeSpan.FromSeconds(2);
|
||||
public const string LightBulbContainer = "light_bulb";
|
||||
|
|
@ -105,11 +108,15 @@ namespace Content.Server.Light.EntitySystems
|
|||
|
||||
// check if it's possible to apply burn damage to user
|
||||
var userUid = args.User;
|
||||
if (EntityManager.TryGetComponent(userUid, out HeatResistanceComponent? heatResist) &&
|
||||
EntityManager.TryGetComponent(bulbUid.Value, out LightBulbComponent? lightBulb))
|
||||
if (EntityManager.TryGetComponent(bulbUid.Value, out LightBulbComponent? lightBulb))
|
||||
{
|
||||
// get users heat resistance
|
||||
var res = heatResist.GetHeatResistance();
|
||||
var res = int.MinValue;
|
||||
if (_inventory.TryGetSlotEntity(userUid, "gloves", out var slotEntity) &&
|
||||
TryComp<GloveHeatResistanceComponent>(slotEntity, out var gloves))
|
||||
{
|
||||
res = gloves.HeatResistance;
|
||||
}
|
||||
|
||||
// check heat resistance against user
|
||||
var burnedHand = light.CurrentLit && res < lightBulb.BurningTemperature;
|
||||
|
|
|
|||
|
|
@ -1,21 +0,0 @@
|
|||
using Content.Server.Clothing.Components;
|
||||
using Content.Shared.Inventory;
|
||||
|
||||
namespace Content.Server.Temperature.Components
|
||||
{
|
||||
[RegisterComponent]
|
||||
public sealed partial class HeatResistanceComponent : Component
|
||||
{
|
||||
public int GetHeatResistance()
|
||||
{
|
||||
// TODO: When making into system: Any animal that touches bulb that has no
|
||||
// InventoryComponent but still would have default heat resistance in the future (maybe)
|
||||
if (EntitySystem.Get<InventorySystem>().TryGetSlotEntity(Owner, "gloves", out var slotEntity) &&
|
||||
IoCManager.Resolve<IEntityManager>().TryGetComponent<GloveHeatResistanceComponent>(slotEntity, out var gloves))
|
||||
{
|
||||
return gloves.HeatResistance;
|
||||
}
|
||||
return int.MinValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -47,7 +47,7 @@
|
|||
- type: MeleeWeapon
|
||||
hidden: true
|
||||
soundHit:
|
||||
path: /Audio/Weapons/Xeno/alien_claw_flesh3.ogg
|
||||
path: /Audio/Weapons/Xeno/alien_claw_flesh3.ogg
|
||||
angle: 0
|
||||
animation: WeaponArcClaw
|
||||
damage:
|
||||
|
|
|
|||
|
|
@ -34,7 +34,6 @@
|
|||
density: 80
|
||||
mask:
|
||||
- GhostImpassable
|
||||
- type: HeatResistance
|
||||
- type: MovementIgnoreGravity
|
||||
- type: Damageable
|
||||
damageContainer: Biological
|
||||
|
|
|
|||
|
|
@ -1,98 +1,22 @@
|
|||
- type: entity
|
||||
save: false
|
||||
parent:
|
||||
- BaseMob
|
||||
- MobDamageable
|
||||
- MobAtmosExposed
|
||||
id: BaseSimpleMob
|
||||
suffix: AI
|
||||
abstract: true
|
||||
components:
|
||||
- type: LagCompensation
|
||||
- type: Tag
|
||||
tags:
|
||||
- DoorBumpOpener
|
||||
- type: Reactive
|
||||
groups:
|
||||
Flammable: [Touch]
|
||||
Extinguish: [Touch]
|
||||
Acidic: [Touch, Ingestion]
|
||||
- type: InputMover
|
||||
- type: MobMover
|
||||
- type: Input
|
||||
context: "human"
|
||||
- type: Internals
|
||||
- type: MovementSpeedModifier
|
||||
baseWalkSpeed : 4
|
||||
baseSprintSpeed : 4
|
||||
- type: HealthExaminable
|
||||
examinableTypes:
|
||||
- Blunt
|
||||
- Slash
|
||||
- Piercing
|
||||
- Heat
|
||||
- Shock
|
||||
- type: MovedByPressure
|
||||
- type: DamageOnHighSpeedImpact
|
||||
damage:
|
||||
types:
|
||||
Blunt: 5
|
||||
soundHit:
|
||||
path: /Audio/Effects/hit_kick.ogg
|
||||
- type: Sprite
|
||||
noRot: true
|
||||
drawdepth: Mobs
|
||||
- type: Clickable
|
||||
- type: InteractionOutline
|
||||
- type: Physics
|
||||
bodyType: KinematicController # Same for all inheritors
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
shape:
|
||||
# Circles, cuz rotation of rectangles looks very bad
|
||||
!type:PhysShapeCircle
|
||||
radius: 0.35
|
||||
density: 50
|
||||
mask:
|
||||
- MobMask
|
||||
layer:
|
||||
- MobLayer
|
||||
- type: Damageable
|
||||
damageContainer: Biological
|
||||
- type: RadiationReceiver
|
||||
- type: AtmosExposed
|
||||
- type: Temperature
|
||||
heatDamageThreshold: 360
|
||||
coldDamageThreshold: 0
|
||||
currentTemperature: 310.15
|
||||
coldDamage:
|
||||
types:
|
||||
Cold : 0.1 #per second, scales with temperature & other constants
|
||||
specificHeat: 42
|
||||
heatDamage:
|
||||
types:
|
||||
Heat : 0.1 #per second, scales with temperature & other constants
|
||||
- type: MobState
|
||||
- type: Deathgasp
|
||||
- type: MobStateActions
|
||||
actions:
|
||||
Critical:
|
||||
- ActionCritSuccumb
|
||||
- ActionCritFakeDeath
|
||||
- ActionCritLastWords
|
||||
- type: MobThresholds
|
||||
thresholds:
|
||||
0: Alive
|
||||
50: Critical
|
||||
100: Dead
|
||||
- type: Stamina
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTypeTrigger
|
||||
damageType: Blunt
|
||||
damage: 400
|
||||
behaviors:
|
||||
- !type:GibBehavior { }
|
||||
- type: HeatResistance
|
||||
- type: Internals
|
||||
- type: StatusIcon
|
||||
- type: StatusEffects
|
||||
allowed:
|
||||
- SlowedDown
|
||||
|
|
@ -101,25 +25,19 @@
|
|||
- ForcedSleep
|
||||
- TemporaryBlindness
|
||||
- Pacified
|
||||
- type: InjectableSolution
|
||||
solution: chemicals
|
||||
- type: Examiner
|
||||
- type: Appearance
|
||||
- type: RotationVisuals
|
||||
defaultRotation: 0
|
||||
horizontalRotation: 0
|
||||
- type: Actions
|
||||
- type: DoAfter
|
||||
- type: Polymorphable
|
||||
- type: Pullable
|
||||
- type: Buckle
|
||||
- type: StandingState
|
||||
- type: Alerts
|
||||
- type: Tag
|
||||
tags:
|
||||
- DoorBumpOpener
|
||||
|
||||
- type: entity
|
||||
save: false
|
||||
abstract: true
|
||||
parent: BaseSimpleMob
|
||||
parent:
|
||||
- BaseSimpleMob
|
||||
- MobCombat
|
||||
- MobBloodstream
|
||||
- MobFlammable
|
||||
id: SimpleSpaceMobBase # Mob without barotrauma, freezing and asphyxiation (for space carps!?)
|
||||
suffix: AI
|
||||
components:
|
||||
|
|
@ -129,35 +47,11 @@
|
|||
- type: HTN
|
||||
rootTask:
|
||||
task: IdleCompound
|
||||
- type: SolutionContainerManager
|
||||
- type: Bloodstream
|
||||
bloodlossDamage:
|
||||
types:
|
||||
Bloodloss:
|
||||
1
|
||||
bloodlossHealDamage:
|
||||
types:
|
||||
Bloodloss:
|
||||
-1
|
||||
- type: CombatMode
|
||||
- type: MeleeWeapon
|
||||
hidden: true
|
||||
angle: 0
|
||||
animation: WeaponArcBite
|
||||
damage:
|
||||
groups:
|
||||
Brute: 5
|
||||
- type: Body
|
||||
prototype: Animal
|
||||
- type: Flammable
|
||||
fireSpread: true
|
||||
canResistFire: true
|
||||
damage:
|
||||
types:
|
||||
Heat: 1 #per second, scales with number of fire 'stacks'
|
||||
- type: FireVisuals
|
||||
sprite: Mobs/Effects/onfire.rsi
|
||||
normalState: Generic_mob_burning
|
||||
- type: Climbing
|
||||
- type: Flashable
|
||||
- type: NameIdentifier
|
||||
|
|
@ -171,14 +65,14 @@
|
|||
- type: Perishable
|
||||
|
||||
- type: entity
|
||||
save: false
|
||||
abstract: true
|
||||
parent:
|
||||
- MobRespirator
|
||||
- MobAtmosStandard
|
||||
- SimpleSpaceMobBase
|
||||
id: SimpleMobBase # for air breathers
|
||||
parent: SimpleSpaceMobBase
|
||||
suffix: AI
|
||||
abstract: true
|
||||
components:
|
||||
- type: InputMover
|
||||
- type: MobMover
|
||||
- type: Hunger
|
||||
thresholds: # only animals and rats are derived from this prototype so let's override it here and in rats' proto
|
||||
Overfed: 100
|
||||
|
|
@ -195,10 +89,6 @@
|
|||
Parched: 50
|
||||
Dead: 0
|
||||
baseDecayRate: 0.04
|
||||
- type: Barotrauma
|
||||
damage:
|
||||
types:
|
||||
Blunt: 0.15 #per second, scales with pressure and other constants.
|
||||
- type: StatusEffects
|
||||
allowed:
|
||||
- Stun
|
||||
|
|
@ -210,32 +100,6 @@
|
|||
- TemporaryBlindness
|
||||
- Pacified
|
||||
- StaminaModifier
|
||||
- type: ThermalRegulator
|
||||
metabolismHeat: 800
|
||||
radiatedHeat: 100
|
||||
implicitHeatRegulation: 250
|
||||
sweatHeatRegulation: 500
|
||||
shiveringHeatRegulation: 500
|
||||
normalBodyTemperature: 310.15
|
||||
thermalRegulationTemperatureThreshold: 25
|
||||
- type: Respirator
|
||||
damage:
|
||||
types:
|
||||
Asphyxiation: 2
|
||||
damageRecovery:
|
||||
types:
|
||||
Asphyxiation: -1.0
|
||||
- type: Temperature
|
||||
heatDamageThreshold: 360
|
||||
coldDamageThreshold: 260
|
||||
currentTemperature: 310.15
|
||||
specificHeat: 42
|
||||
coldDamage:
|
||||
types:
|
||||
Cold : 1 #per second, scales with temperature & other constants
|
||||
heatDamage:
|
||||
types:
|
||||
Heat : 1 #per second, scales with temperature & other constants
|
||||
- type: Bloodstream
|
||||
bloodMaxVolume: 150
|
||||
- type: MobPrice
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
- type: entity
|
||||
parent: MobObserver
|
||||
save: false
|
||||
id: AdminObserver
|
||||
name: admin observer
|
||||
noSpawn: true
|
||||
|
|
@ -18,10 +17,7 @@
|
|||
canInteract: true
|
||||
- type: Hands
|
||||
- type: Puller
|
||||
- type: DoAfter
|
||||
- type: CombatMode
|
||||
- type: Actions
|
||||
- type: InputMover
|
||||
- type: Physics
|
||||
ignorePaused: true
|
||||
bodyType: Kinematic
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
- type: entity
|
||||
save: false
|
||||
name: Urist McWeb
|
||||
parent: [BaseMobArachnid, BaseMob]
|
||||
parent: BaseMobArachnid
|
||||
id: MobArachnid
|
||||
components:
|
||||
- type: Respirator
|
||||
|
|
|
|||
|
|
@ -1,35 +0,0 @@
|
|||
- type: entity
|
||||
save: false
|
||||
name: BaseMob
|
||||
id: BaseMob
|
||||
abstract: true
|
||||
components:
|
||||
- type: CombatMode
|
||||
canDisarm: true
|
||||
- type: InteractionPopup
|
||||
successChance: 1
|
||||
interactSuccessString: hugging-success-generic
|
||||
interactSuccessSound: /Audio/Effects/thudswoosh.ogg
|
||||
messagePerceivedByOthers: hugging-success-generic-others
|
||||
- type: MindContainer
|
||||
showExamineInfo: true
|
||||
- type: Input
|
||||
context: "human"
|
||||
- type: MobMover
|
||||
- type: InputMover
|
||||
- type: Respirator
|
||||
damage:
|
||||
types:
|
||||
Asphyxiation: 1.0
|
||||
damageRecovery:
|
||||
types:
|
||||
Asphyxiation: -1.0
|
||||
- type: Alerts
|
||||
- type: Actions
|
||||
- type: Eye
|
||||
- type: CameraRecoil
|
||||
- type: Examiner
|
||||
- type: CanHostGuardian
|
||||
- type: NpcFactionMember
|
||||
factions:
|
||||
- NanoTrasen
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
- type: entity
|
||||
save: false
|
||||
name: Urist McPlants
|
||||
parent: [BaseMobDiona, BaseMob]
|
||||
parent: BaseMobDiona
|
||||
id: MobDiona
|
||||
components:
|
||||
- type: Respirator
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
- type: entity
|
||||
save: false
|
||||
name: Urist McHands The Dwarf
|
||||
parent: [BaseMobDwarf, BaseMob]
|
||||
id: MobDwarf
|
||||
parent: BaseMobDwarf
|
||||
id: MobDwarf
|
||||
|
|
|
|||
|
|
@ -72,7 +72,6 @@
|
|||
- type: MobState
|
||||
allowedStates:
|
||||
- Alive
|
||||
- type: HeatResistance
|
||||
- type: CombatMode
|
||||
- type: Internals
|
||||
- type: Examiner
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
- type: entity
|
||||
save: false
|
||||
name: Urist McHands
|
||||
parent: [BaseMobHuman, BaseMob]
|
||||
parent: BaseMobHuman
|
||||
id: MobHuman
|
||||
|
||||
#Syndie
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
- type: entity
|
||||
save: false
|
||||
name: Urist McFluff
|
||||
parent: [BaseMobMoth, BaseMob]
|
||||
id: MobMoth
|
||||
parent: BaseMobMoth
|
||||
id: MobMoth
|
||||
|
|
|
|||
|
|
@ -1,15 +1,20 @@
|
|||
- type: entity
|
||||
parent: BaseMob
|
||||
id: MobObserver
|
||||
name: observer
|
||||
noSpawn: true
|
||||
save: false
|
||||
description: Boo!
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: Sprite
|
||||
overrideContainerOcclusion: true # Ghosts always show up regardless of where they're contained.
|
||||
drawdepth: Ghosts
|
||||
sprite: Mobs/Ghosts/ghost_human.rsi
|
||||
color: "#fff8"
|
||||
layers:
|
||||
- state: animated
|
||||
shader: unshaded
|
||||
- type: ContentEye
|
||||
maxZoom: 1.44,1.44
|
||||
- type: MindContainer
|
||||
- type: Clickable
|
||||
- type: InteractionOutline
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
|
|
@ -19,8 +24,6 @@
|
|||
density: 15
|
||||
mask:
|
||||
- GhostImpassable
|
||||
- type: InputMover
|
||||
- type: Appearance
|
||||
- type: Eye
|
||||
drawFov: false
|
||||
- type: Input
|
||||
|
|
@ -28,6 +31,10 @@
|
|||
- type: Examiner
|
||||
skipChecks: true
|
||||
- type: Ghost
|
||||
- type: MovementSpeedModifier
|
||||
baseSprintSpeed: 12
|
||||
baseWalkSpeed: 8
|
||||
- type: MovementIgnoreGravity
|
||||
- type: IntrinsicRadioReceiver
|
||||
- type: ActiveRadio
|
||||
channels:
|
||||
|
|
@ -43,27 +50,13 @@
|
|||
- Supply
|
||||
- Syndicate
|
||||
globalReceive: true
|
||||
- type: Sprite
|
||||
overrideContainerOcclusion: true # Ghosts always show up regardless of where they're contained.
|
||||
noRot: true
|
||||
drawdepth: Ghosts
|
||||
sprite: Mobs/Ghosts/ghost_human.rsi
|
||||
state: animated
|
||||
color: "#fff8"
|
||||
layers:
|
||||
- state: animated
|
||||
shader: unshaded
|
||||
- type: MovementSpeedModifier
|
||||
baseSprintSpeed: 12
|
||||
baseWalkSpeed: 8
|
||||
- type: MovementIgnoreGravity
|
||||
- type: Physics
|
||||
bodyType: KinematicController
|
||||
bodyStatus: InAir
|
||||
- type: CanMoveInAir
|
||||
- type: Tag
|
||||
tags:
|
||||
- BypassInteractionRangeChecks
|
||||
- BypassInteractionRangeChecks
|
||||
|
||||
- type: entity
|
||||
id: ActionGhostBoo
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
- type: entity
|
||||
save: false
|
||||
name: Urisst' Mzhand
|
||||
parent: [BaseMobReptilian, BaseMob]
|
||||
parent: BaseMobReptilian
|
||||
id: MobReptilian
|
||||
|
||||
#Weh
|
||||
|
|
|
|||
|
|
@ -8,8 +8,6 @@
|
|||
interactSuccessString: hugging-success-generic
|
||||
interactSuccessSound: /Audio/Effects/thudswoosh.ogg
|
||||
messagePerceivedByOthers: hugging-success-generic-others
|
||||
- type: MindContainer
|
||||
showExamineInfo: true
|
||||
- type: Input
|
||||
context: "human"
|
||||
- type: MobMover
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
- type: entity
|
||||
save: false
|
||||
parent: [BaseMobSlimePerson, BaseMob]
|
||||
id: MobSlimePerson
|
||||
parent: BaseMobSlimePerson
|
||||
id: MobSlimePerson
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
- type: entity
|
||||
save: false
|
||||
name: Vox
|
||||
parent: [BaseMobVox, BaseMob]
|
||||
parent: BaseMobVox
|
||||
id: MobVox
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
- type: entity
|
||||
save: false
|
||||
name: Urist McWebs
|
||||
parent: BaseMobOrganic
|
||||
parent: BaseMobSpeciesOrganic
|
||||
id: BaseMobArachnid
|
||||
abstract: true
|
||||
components:
|
||||
|
|
@ -28,7 +28,7 @@
|
|||
soundHit:
|
||||
collection: AlienClaw
|
||||
damage:
|
||||
types: # Realisically this is more like 5 slash. You can figure out the logistics if slash is better than blunt/pierce yourself.
|
||||
types: # Realisically this is more like 5 slash
|
||||
Slash: 4
|
||||
# Fun
|
||||
- type: Sericulture
|
||||
|
|
@ -46,10 +46,10 @@
|
|||
damageOverlayGroups:
|
||||
Brute:
|
||||
sprite: Mobs/Effects/brute_damage.rsi
|
||||
color: "#162581" # Why so blue?
|
||||
color: "#162581"
|
||||
- type: Speech
|
||||
speechVerb: Arachnid
|
||||
speechSounds: Arachnid # TODO: Abuse my mic more. Do that in a later PR.
|
||||
speechSounds: Arachnid
|
||||
- type: Vocal
|
||||
sounds:
|
||||
Male: UnisexArachnid
|
||||
|
|
@ -111,12 +111,9 @@
|
|||
visible: false
|
||||
|
||||
- type: entity
|
||||
save: false
|
||||
name: Urist McFluff
|
||||
parent: MobHumanDummy
|
||||
parent: BaseSpeciesDummy
|
||||
id: MobArachnidDummy
|
||||
noSpawn: true
|
||||
description: A dummy arachnid meant to be used in character setup. # Hey! It's not dumb :(
|
||||
components:
|
||||
- type: HumanoidAppearance
|
||||
species: Arachnid
|
||||
|
|
|
|||
|
|
@ -1,12 +1,107 @@
|
|||
# Anything human specific (e.g. UI, input) goes under MobHuman
|
||||
- type: entity
|
||||
save: false
|
||||
name: Urist McHands
|
||||
id: BaseMobOrganic
|
||||
noSpawn: true
|
||||
parent:
|
||||
- BaseMob
|
||||
- MobDamageable
|
||||
- MobCombat
|
||||
id: BaseMobSpecies
|
||||
abstract: true
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- map: [ "enum.HumanoidVisualLayers.Chest" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Head" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Snout" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Eyes" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.RArm" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LArm" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
|
||||
- shader: StencilClear
|
||||
sprite: Mobs/Species/Human/parts.rsi #PJB on stencil clear being on the left leg: "...this is 'fine'" -https://github.com/space-wizards/space-station-14/pull/12217#issuecomment-1291677115
|
||||
# its fine, but its still very stupid that it has to be done like this instead of allowing sprites to just directly insert a stencil clear.
|
||||
# sprite refactor when
|
||||
state: l_leg
|
||||
- shader: StencilMask
|
||||
map: ["enum.HumanoidVisualLayers.StencilMask"]
|
||||
sprite: Mobs/Customization/masking_helpers.rsi
|
||||
state: unisex_full
|
||||
visible: false
|
||||
- map: ["jumpsuit"]
|
||||
- map: ["enum.HumanoidVisualLayers.LFoot"]
|
||||
- map: ["enum.HumanoidVisualLayers.RFoot"]
|
||||
- map: ["enum.HumanoidVisualLayers.LHand"]
|
||||
- map: ["enum.HumanoidVisualLayers.RHand"]
|
||||
- map: [ "id" ]
|
||||
- map: [ "gloves" ]
|
||||
- map: [ "shoes" ]
|
||||
- map: [ "ears" ]
|
||||
- map: [ "outerClothing" ]
|
||||
- map: [ "eyes" ]
|
||||
- map: [ "belt" ]
|
||||
- map: [ "neck" ]
|
||||
- map: [ "back" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.FacialHair" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Hair" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.HeadSide" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.HeadTop" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Tail" ]
|
||||
- map: [ "mask" ]
|
||||
- map: [ "head" ]
|
||||
- map: [ "pocket1" ]
|
||||
- map: [ "pocket2" ]
|
||||
- map: ["enum.HumanoidVisualLayers.Handcuffs"]
|
||||
color: "#ffffff"
|
||||
sprite: Objects/Misc/handcuffs.rsi
|
||||
state: body-overlay-2
|
||||
visible: false
|
||||
- map: [ "clownedon" ] # Dynamically generated
|
||||
sprite: "Effects/creampie.rsi"
|
||||
state: "creampie_human"
|
||||
visible: false
|
||||
- type: DamageVisuals
|
||||
thresholds: [ 20, 40, 100 ]
|
||||
targetLayers:
|
||||
- "enum.HumanoidVisualLayers.Chest"
|
||||
- "enum.HumanoidVisualLayers.Head"
|
||||
- "enum.HumanoidVisualLayers.LArm"
|
||||
- "enum.HumanoidVisualLayers.LLeg"
|
||||
- "enum.HumanoidVisualLayers.RArm"
|
||||
- "enum.HumanoidVisualLayers.RLeg"
|
||||
damageOverlayGroups:
|
||||
Brute:
|
||||
sprite: Mobs/Effects/brute_damage.rsi
|
||||
color: "#FF0000"
|
||||
Burn:
|
||||
sprite: Mobs/Effects/burn_damage.rsi
|
||||
- type: GenericVisualizer
|
||||
visuals:
|
||||
enum.CreamPiedVisuals.Creamed:
|
||||
clownedon: # Not 'creampied' bc I can already see Skyrat complaining about conflicts.
|
||||
True: {visible: true}
|
||||
False: {visible: false}
|
||||
- type: RotationVisuals
|
||||
defaultRotation: 90
|
||||
horizontalRotation: 90
|
||||
- type: HumanoidAppearance
|
||||
species: Human
|
||||
- type: SlowOnDamage
|
||||
speedModifierThresholds:
|
||||
60: 0.7
|
||||
80: 0.5
|
||||
- type: Fixtures
|
||||
fixtures: # TODO: This needs a second fixture just for mob collisions.
|
||||
fix1:
|
||||
shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 0.35
|
||||
density: 185
|
||||
restitution: 0.0
|
||||
mask:
|
||||
- MobMask
|
||||
layer:
|
||||
- MobLayer
|
||||
- type: FloorOcclusion
|
||||
- type: LagCompensation
|
||||
- type: RangedDamageSound
|
||||
soundGroups:
|
||||
Brute:
|
||||
|
|
@ -16,11 +111,6 @@
|
|||
Heat:
|
||||
collection:
|
||||
MeatLaserImpact
|
||||
- type: Tag
|
||||
tags:
|
||||
- CanPilot
|
||||
- FootstepSound
|
||||
- DoorBumpOpener
|
||||
- type: Reactive
|
||||
groups:
|
||||
Flammable: [ Touch ]
|
||||
|
|
@ -31,230 +121,36 @@
|
|||
methods: [Touch]
|
||||
effects:
|
||||
- !type:WashCreamPieReaction
|
||||
- type: Flashable
|
||||
- type: Polymorphable
|
||||
- type: Identity
|
||||
- type: Hands
|
||||
- type: MovementSpeedModifier
|
||||
- type: MovedByPressure
|
||||
- type: Barotrauma
|
||||
damage:
|
||||
types:
|
||||
Blunt: 0.35 #per second, scales with pressure and other constants.
|
||||
- type: DamageOnHighSpeedImpact
|
||||
damage:
|
||||
types:
|
||||
Blunt: 5
|
||||
soundHit:
|
||||
path: /Audio/Effects/hit_kick.ogg
|
||||
# Organs
|
||||
- type: InjectableSolution
|
||||
solution: chemicals
|
||||
- type: IdExaminable
|
||||
- type: HealthExaminable
|
||||
examinableTypes:
|
||||
- Blunt
|
||||
- Slash
|
||||
- Piercing
|
||||
- Heat
|
||||
- Shock
|
||||
- type: Bloodstream
|
||||
bloodlossDamage:
|
||||
types:
|
||||
Bloodloss:
|
||||
1
|
||||
bloodlossHealDamage:
|
||||
types:
|
||||
Bloodloss:
|
||||
-1
|
||||
- type: Stamina
|
||||
- type: StatusIcon
|
||||
- type: StatusEffects
|
||||
allowed:
|
||||
- Stun
|
||||
- KnockedDown
|
||||
- SlowedDown
|
||||
- Stutter
|
||||
- SeeingRainbows
|
||||
- Electrocution
|
||||
- Drunk
|
||||
- SlurredSpeech
|
||||
- RatvarianLanguage
|
||||
- PressureImmunity
|
||||
- Muted
|
||||
- ForcedSleep
|
||||
- TemporaryBlindness
|
||||
- Pacified
|
||||
- StaminaModifier
|
||||
- type: Blindable
|
||||
# Other
|
||||
- type: Inventory
|
||||
- type: InventorySlots
|
||||
- type: Clickable
|
||||
- type: InteractionOutline
|
||||
- type: Sprite
|
||||
noRot: true
|
||||
drawdepth: Mobs
|
||||
layers:
|
||||
- map: [ "enum.HumanoidVisualLayers.Chest" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Head" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Snout" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Eyes" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.RArm" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LArm" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
|
||||
- shader: StencilClear
|
||||
sprite: Mobs/Species/Human/parts.rsi #PJB on stencil clear being on the left leg: "...this is 'fine'" -https://github.com/space-wizards/space-station-14/pull/12217#issuecomment-1291677115
|
||||
# its fine, but its still very stupid that it has to be done like this instead of allowing sprites to just directly insert a stencil clear.
|
||||
# sprite refactor when
|
||||
state: l_leg
|
||||
- shader: StencilMask
|
||||
map: ["enum.HumanoidVisualLayers.StencilMask"]
|
||||
sprite: Mobs/Customization/masking_helpers.rsi
|
||||
state: unisex_full
|
||||
visible: false
|
||||
- map: ["jumpsuit"]
|
||||
- map: ["enum.HumanoidVisualLayers.LFoot"]
|
||||
- map: ["enum.HumanoidVisualLayers.RFoot"]
|
||||
- map: ["enum.HumanoidVisualLayers.LHand"]
|
||||
- map: ["enum.HumanoidVisualLayers.RHand"]
|
||||
- map: [ "id" ]
|
||||
- map: [ "gloves" ]
|
||||
- map: [ "shoes" ]
|
||||
- map: [ "ears" ]
|
||||
- map: [ "outerClothing" ]
|
||||
- map: [ "eyes" ]
|
||||
- map: [ "belt" ]
|
||||
- map: [ "neck" ]
|
||||
- map: [ "back" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.FacialHair" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Hair" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.HeadSide" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.HeadTop" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Tail" ]
|
||||
- map: [ "mask" ]
|
||||
- map: [ "head" ]
|
||||
- map: [ "pocket1" ]
|
||||
- map: [ "pocket2" ]
|
||||
- map: ["enum.HumanoidVisualLayers.Handcuffs"]
|
||||
color: "#ffffff"
|
||||
sprite: Objects/Misc/handcuffs.rsi
|
||||
state: body-overlay-2
|
||||
visible: false
|
||||
- map: [ "clownedon" ] # Dynamically generated
|
||||
sprite: "Effects/creampie.rsi"
|
||||
state: "creampie_human"
|
||||
visible: false
|
||||
- type: Physics
|
||||
bodyType: KinematicController
|
||||
- Stun
|
||||
- KnockedDown
|
||||
- SlowedDown
|
||||
- Stutter
|
||||
- SeeingRainbows
|
||||
- Electrocution
|
||||
- Drunk
|
||||
- SlurredSpeech
|
||||
- RatvarianLanguage
|
||||
- PressureImmunity
|
||||
- Muted
|
||||
- ForcedSleep
|
||||
- TemporaryBlindness
|
||||
- Pacified
|
||||
- StaminaModifier
|
||||
- type: Reflect
|
||||
enabled: false
|
||||
reflectProb: 0
|
||||
- type: Fixtures
|
||||
fixtures: # TODO: This needs a second fixture just for mob collisions.
|
||||
fix1:
|
||||
shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 0.35
|
||||
density: 185
|
||||
restitution: 0.0
|
||||
mask:
|
||||
- MobMask
|
||||
layer:
|
||||
- MobLayer
|
||||
- type: AtmosExposed
|
||||
- type: Flammable
|
||||
fireSpread: true
|
||||
canResistFire: true
|
||||
damage:
|
||||
types:
|
||||
Heat: 1 #per second, scales with number of fire 'stacks'
|
||||
- type: Temperature
|
||||
heatDamageThreshold: 360
|
||||
coldDamageThreshold: 260
|
||||
currentTemperature: 310.15
|
||||
specificHeat: 42
|
||||
coldDamage:
|
||||
types:
|
||||
Cold: 0.1 #per second, scales with temperature & other constants
|
||||
heatDamage:
|
||||
types:
|
||||
Heat: 0.1 #per second, scales with temperature & other constants
|
||||
- type: HumanoidAppearance
|
||||
species: Human
|
||||
- type: Body
|
||||
prototype: Human
|
||||
requiredLegs: 2
|
||||
- type: Damageable
|
||||
damageContainer: Biological
|
||||
- type: RadiationReceiver
|
||||
- type: ThermalRegulator
|
||||
metabolismHeat: 800
|
||||
radiatedHeat: 100
|
||||
implicitHeatRegulation: 500
|
||||
sweatHeatRegulation: 2000
|
||||
shiveringHeatRegulation: 2000
|
||||
normalBodyTemperature: 310.15
|
||||
thermalRegulationTemperatureThreshold: 25
|
||||
- type: Identity
|
||||
- type: IdExaminable
|
||||
- type: Hands
|
||||
- type: Internals
|
||||
- type: MobState
|
||||
- type: Deathgasp
|
||||
- type: MobStateActions
|
||||
actions:
|
||||
Critical:
|
||||
- ActionCritSuccumb
|
||||
- ActionCritFakeDeath
|
||||
- ActionCritLastWords
|
||||
- type: MobThresholds
|
||||
thresholds:
|
||||
0: Alive
|
||||
100: Critical
|
||||
200: Dead
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTypeTrigger
|
||||
damageType: Blunt
|
||||
damage: 400
|
||||
behaviors:
|
||||
- !type:GibBehavior { }
|
||||
- type: SlowOnDamage
|
||||
speedModifierThresholds:
|
||||
60: 0.7
|
||||
80: 0.5
|
||||
- type: HeatResistance
|
||||
- type: DamageVisuals
|
||||
thresholds: [ 20, 40, 100 ]
|
||||
targetLayers:
|
||||
- "enum.HumanoidVisualLayers.Chest"
|
||||
- "enum.HumanoidVisualLayers.Head"
|
||||
- "enum.HumanoidVisualLayers.LArm"
|
||||
- "enum.HumanoidVisualLayers.LLeg"
|
||||
- "enum.HumanoidVisualLayers.RArm"
|
||||
- "enum.HumanoidVisualLayers.RLeg"
|
||||
damageOverlayGroups:
|
||||
Brute:
|
||||
sprite: Mobs/Effects/brute_damage.rsi
|
||||
color: "#FF0000"
|
||||
Burn:
|
||||
sprite: Mobs/Effects/burn_damage.rsi
|
||||
- type: Appearance
|
||||
- type: GenericVisualizer
|
||||
visuals:
|
||||
enum.CreamPiedVisuals.Creamed:
|
||||
clownedon: # Not 'creampied' bc I can already see Skyrat complaining about conflicts.
|
||||
True: {visible: true}
|
||||
False: {visible: false}
|
||||
- type: RotationVisuals
|
||||
- type: Inventory
|
||||
- type: InventorySlots
|
||||
- type: FloatingVisuals
|
||||
- type: FireVisuals
|
||||
sprite: Mobs/Effects/onfire.rsi
|
||||
normalState: Generic_mob_burning
|
||||
alternateState: Standing
|
||||
fireStackAlternateState: 3
|
||||
- type: CombatMode
|
||||
canDisarm: true
|
||||
- type: Climbing
|
||||
- type: Cuffable
|
||||
- type: Ensnareable
|
||||
|
|
@ -262,6 +158,8 @@
|
|||
state: icon
|
||||
- type: AnimationPlayer
|
||||
- type: Buckle
|
||||
- type: CombatMode
|
||||
canDisarm: true
|
||||
- type: MeleeWeapon
|
||||
hidden: true
|
||||
soundHit:
|
||||
|
|
@ -272,8 +170,22 @@
|
|||
damage:
|
||||
types:
|
||||
Blunt: 5
|
||||
- type: Pullable
|
||||
- type: DoAfter
|
||||
- type: SleepEmitSound
|
||||
- type: SSDIndicator
|
||||
- type: StandingState
|
||||
- type: Fingerprint
|
||||
- type: Dna
|
||||
- type: MindContainer
|
||||
showExamineInfo: true
|
||||
- type: InteractionPopup
|
||||
successChance: 1
|
||||
interactSuccessString: hugging-success-generic
|
||||
interactSuccessSound: /Audio/Effects/thudswoosh.ogg
|
||||
messagePerceivedByOthers: hugging-success-generic-others
|
||||
- type: CanHostGuardian
|
||||
- type: NpcFactionMember
|
||||
factions:
|
||||
- NanoTrasen
|
||||
- type: CreamPied
|
||||
- type: Stripping
|
||||
- type: Strippable
|
||||
|
|
@ -286,11 +198,6 @@
|
|||
- key: enum.StrippingUiKey.Key
|
||||
type: StrippableBoundUserInterface
|
||||
- type: Puller
|
||||
- type: Butcherable
|
||||
butcheringType: Spike # TODO human.
|
||||
spawned:
|
||||
- id: FoodMeat
|
||||
amount: 5
|
||||
- type: Speech
|
||||
speechSounds: Alto
|
||||
- type: Vocal
|
||||
|
|
@ -304,107 +211,147 @@
|
|||
- type: Grammar
|
||||
attributes:
|
||||
proper: true
|
||||
- type: StandingState
|
||||
- type: Fingerprint
|
||||
- type: Dna
|
||||
- type: MobPrice
|
||||
price: 1500 # Kidnapping a living person and selling them for cred is a good move.
|
||||
deathPenalty: 0.01 # However they really ought to be living and intact, otherwise they're worth 100x less.
|
||||
- type: ContentEye
|
||||
- type: SleepEmitSound
|
||||
- type: SSDIndicator
|
||||
|
||||
- type: entity
|
||||
save: false
|
||||
name: Urist McHands
|
||||
id: BaseMobOrganicDummy
|
||||
parent:
|
||||
- MobBloodstream
|
||||
- MobRespirator
|
||||
- MobAtmosStandard
|
||||
- MobFlammable
|
||||
- BaseMobSpecies
|
||||
id: BaseMobSpeciesOrganic
|
||||
abstract: true
|
||||
description: A dummy human meant to be used in character setup.
|
||||
components:
|
||||
- type: Hands
|
||||
- type: Inventory
|
||||
- type: InventorySlots
|
||||
- type: ContainerContainer
|
||||
- type: Icon
|
||||
- type: Flashable
|
||||
- type: Barotrauma
|
||||
damage:
|
||||
types:
|
||||
Blunt: 0.35 #per second, scales with pressure and other constants.
|
||||
# Organs
|
||||
- type: StatusEffects
|
||||
allowed:
|
||||
- Stun
|
||||
- KnockedDown
|
||||
- SlowedDown
|
||||
- Stutter
|
||||
- SeeingRainbows
|
||||
- Electrocution
|
||||
- Drunk
|
||||
- SlurredSpeech
|
||||
- RatvarianLanguage
|
||||
- PressureImmunity
|
||||
- Muted
|
||||
- ForcedSleep
|
||||
- TemporaryBlindness
|
||||
- Pacified
|
||||
- StaminaModifier
|
||||
- type: Blindable
|
||||
# Other
|
||||
- type: Temperature
|
||||
heatDamageThreshold: 360
|
||||
coldDamageThreshold: 260
|
||||
currentTemperature: 310.15
|
||||
specificHeat: 42
|
||||
coldDamage:
|
||||
types:
|
||||
Cold: 0.1 #per second, scales with temperature & other constants
|
||||
heatDamage:
|
||||
types:
|
||||
Heat: 0.1 #per second, scales with temperature & other constants
|
||||
- type: ThermalRegulator
|
||||
metabolismHeat: 800
|
||||
radiatedHeat: 100
|
||||
implicitHeatRegulation: 500
|
||||
sweatHeatRegulation: 2000
|
||||
shiveringHeatRegulation: 2000
|
||||
normalBodyTemperature: 310.15
|
||||
thermalRegulationTemperatureThreshold: 25
|
||||
- type: Perishable
|
||||
- type: Butcherable
|
||||
butcheringType: Spike # TODO human.
|
||||
spawned:
|
||||
- id: FoodMeat
|
||||
amount: 5
|
||||
- type: Respirator
|
||||
damage:
|
||||
types:
|
||||
Asphyxiation: 1.0
|
||||
damageRecovery:
|
||||
types:
|
||||
Asphyxiation: -1.0
|
||||
|
||||
- type: entity
|
||||
save: false
|
||||
id: BaseSpeciesDummy
|
||||
abstract: true
|
||||
components:
|
||||
- type: Hands
|
||||
- type: Inventory
|
||||
- type: InventorySlots
|
||||
- type: ContainerContainer
|
||||
- type: Icon
|
||||
sprite: Mobs/Species/Human/parts.rsi
|
||||
state: full
|
||||
- type: Sprite
|
||||
drawdepth: Mobs
|
||||
noRot: true
|
||||
# TODO BODY Turn these into individual body parts?
|
||||
layers:
|
||||
- map: [ "enum.HumanoidVisualLayers.Chest" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Head" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Snout" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Eyes" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.RArm" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LArm" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
|
||||
- shader: StencilClear
|
||||
sprite: Mobs/Species/Human/parts.rsi
|
||||
state: full
|
||||
- type: Sprite
|
||||
drawdepth: Mobs
|
||||
noRot: true
|
||||
# TODO BODY Turn these into individual body parts?
|
||||
layers:
|
||||
- map: [ "enum.HumanoidVisualLayers.Chest" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Head" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Snout" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Eyes" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.RArm" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LArm" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
|
||||
- shader: StencilClear
|
||||
sprite: Mobs/Species/Human/parts.rsi
|
||||
state: l_leg
|
||||
- shader: StencilMask
|
||||
map: ["enum.HumanoidVisualLayers.StencilMask"]
|
||||
sprite: Mobs/Customization/masking_helpers.rsi
|
||||
state: unisex_full
|
||||
visible: false
|
||||
- map: ["jumpsuit"]
|
||||
- map: ["enum.HumanoidVisualLayers.LFoot"]
|
||||
- map: ["enum.HumanoidVisualLayers.RFoot"]
|
||||
- map: ["enum.HumanoidVisualLayers.LHand"]
|
||||
- map: ["enum.HumanoidVisualLayers.RHand"]
|
||||
- map: ["enum.HumanoidVisualLayers.Handcuffs"]
|
||||
color: "#ffffff"
|
||||
sprite: Objects/Misc/handcuffs.rsi
|
||||
state: body-overlay-2
|
||||
visible: false
|
||||
- map: [ "id" ]
|
||||
- map: [ "gloves" ]
|
||||
- map: [ "shoes" ]
|
||||
- map: [ "ears" ]
|
||||
- map: [ "outerClothing" ]
|
||||
- map: [ "eyes" ]
|
||||
- map: [ "belt" ]
|
||||
- map: [ "neck" ]
|
||||
- map: [ "back" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.FacialHair" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Hair" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.HeadSide" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.HeadTop" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Tail" ]
|
||||
- map: [ "mask" ]
|
||||
- map: [ "head" ]
|
||||
- map: [ "pocket1" ]
|
||||
- map: [ "pocket2" ]
|
||||
- type: Physics
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
shape:
|
||||
!type:PhysShapeAabb
|
||||
bounds: "-0.35,-0.35,0.35,0.35"
|
||||
density: 185
|
||||
restitution: 0.0
|
||||
mask:
|
||||
- MobMask
|
||||
layer:
|
||||
- MobLayer
|
||||
- type: HumanoidAppearance
|
||||
species: Human
|
||||
- type: Body
|
||||
prototype: Human
|
||||
requiredLegs: 2
|
||||
- type: Appearance
|
||||
- type: Damageable
|
||||
damageContainer: Biological
|
||||
- type: MobState
|
||||
- type: MobThresholds
|
||||
thresholds:
|
||||
0: Alive
|
||||
100: Critical
|
||||
200: Dead
|
||||
- type: UserInterface
|
||||
interfaces:
|
||||
- key: enum.HumanoidMarkingModifierKey.Key # sure, this can go here too
|
||||
type: HumanoidMarkingModifierBoundUserInterface
|
||||
state: l_leg
|
||||
- shader: StencilMask
|
||||
map: ["enum.HumanoidVisualLayers.StencilMask"]
|
||||
sprite: Mobs/Customization/masking_helpers.rsi
|
||||
state: unisex_full
|
||||
visible: false
|
||||
- map: ["jumpsuit"]
|
||||
- map: ["enum.HumanoidVisualLayers.LFoot"]
|
||||
- map: ["enum.HumanoidVisualLayers.RFoot"]
|
||||
- map: ["enum.HumanoidVisualLayers.LHand"]
|
||||
- map: ["enum.HumanoidVisualLayers.RHand"]
|
||||
- map: ["enum.HumanoidVisualLayers.Handcuffs"]
|
||||
color: "#ffffff"
|
||||
sprite: Objects/Misc/handcuffs.rsi
|
||||
state: body-overlay-2
|
||||
visible: false
|
||||
- map: [ "id" ]
|
||||
- map: [ "gloves" ]
|
||||
- map: [ "shoes" ]
|
||||
- map: [ "ears" ]
|
||||
- map: [ "outerClothing" ]
|
||||
- map: [ "eyes" ]
|
||||
- map: [ "belt" ]
|
||||
- map: [ "neck" ]
|
||||
- map: [ "back" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.FacialHair" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Hair" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.HeadSide" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.HeadTop" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Tail" ]
|
||||
- map: [ "mask" ]
|
||||
- map: [ "head" ]
|
||||
- map: [ "pocket1" ]
|
||||
- map: [ "pocket2" ]
|
||||
- type: Appearance
|
||||
- type: HumanoidAppearance
|
||||
species: Human
|
||||
- type: Body
|
||||
prototype: Human
|
||||
requiredLegs: 2
|
||||
- type: UserInterface
|
||||
interfaces:
|
||||
- key: enum.HumanoidMarkingModifierKey.Key # sure, this can go here too
|
||||
type: HumanoidMarkingModifierBoundUserInterface
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
- type: entity
|
||||
save: false
|
||||
name: Urist McPlants
|
||||
parent: BaseMobOrganic
|
||||
parent: BaseMobSpeciesOrganic
|
||||
id: BaseMobDiona
|
||||
abstract: true
|
||||
components:
|
||||
|
|
@ -87,7 +87,6 @@
|
|||
- MobLayer
|
||||
- type: Inventory
|
||||
templateId: diona
|
||||
- type: InventorySlots
|
||||
- type: MovementSpeedModifier
|
||||
baseWalkSpeed : 1.5
|
||||
baseSprintSpeed : 3.5
|
||||
|
|
@ -103,15 +102,11 @@
|
|||
- type: IgnoreKudzu
|
||||
|
||||
- type: entity
|
||||
save: false
|
||||
name: Urist McHands
|
||||
parent: MobHumanDummy
|
||||
parent: BaseSpeciesDummy
|
||||
id: MobDionaDummy
|
||||
noSpawn: true
|
||||
description: A dummy diona meant to be used in character setup.
|
||||
components:
|
||||
- type: Inventory
|
||||
templateId: diona
|
||||
- type: InventorySlots
|
||||
- type: HumanoidAppearance
|
||||
species: Diona
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
- type: entity
|
||||
save: false
|
||||
name: Urist McHands The Dwarf
|
||||
parent: BaseMobOrganic
|
||||
parent: BaseMobSpeciesOrganic
|
||||
id: BaseMobDwarf
|
||||
abstract: true
|
||||
components:
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
Bloodloss: 0.5
|
||||
- type: Thirst
|
||||
- type: Icon
|
||||
sprite: Mobs/Species/Slime/parts.rsi # It was like this beforehand, no idea why.
|
||||
sprite: Mobs/Species/Slime/parts.rsi # It was like this beforehand, no idea why.
|
||||
state: full
|
||||
- type: Respirator
|
||||
damage:
|
||||
|
|
@ -58,14 +58,9 @@
|
|||
- type: Perishable
|
||||
|
||||
- type: entity
|
||||
save: false
|
||||
name: Urist McHands
|
||||
parent: MobHumanDummy
|
||||
parent: BaseSpeciesDummy
|
||||
id: MobDwarfDummy
|
||||
noSpawn: true
|
||||
description: A dummy human meant to be used in character setup.
|
||||
components:
|
||||
- type: Sprite
|
||||
noRot: true
|
||||
drawdepth: Mobs
|
||||
scale: 1, 0.8
|
||||
|
|
|
|||
|
|
@ -1,15 +1,15 @@
|
|||
# Anything human specific (e.g. UI, input) goes under MobHuman
|
||||
- type: entity
|
||||
name: Urist McHands
|
||||
parent: BaseMobOrganic
|
||||
parent: BaseMobSpeciesOrganic
|
||||
id: BaseMobHuman
|
||||
name: Urist McHands
|
||||
abstract: true
|
||||
components:
|
||||
- type: Hunger
|
||||
starvationDamage:
|
||||
types:
|
||||
Cold: 0.5
|
||||
Bloodloss: 0.5
|
||||
Bloodloss: 0.5
|
||||
- type: Icon # It will not have an icon in the adminspawn menu without this. Body parts seem fine for whatever reason.
|
||||
sprite: Mobs/Species/Human/parts.rsi
|
||||
state: full
|
||||
|
|
@ -22,7 +22,6 @@
|
|||
amount: 5
|
||||
|
||||
- type: entity
|
||||
name: Urist McHands
|
||||
parent: BaseSpeciesDummy
|
||||
id: MobHumanDummy
|
||||
parent: BaseMobOrganicDummy
|
||||
noSpawn: true
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
- type: entity
|
||||
save: false
|
||||
name: Urist McFluff
|
||||
parent: BaseMobOrganic
|
||||
parent: BaseMobSpeciesOrganic
|
||||
id: BaseMobMoth
|
||||
abstract: true
|
||||
components:
|
||||
|
|
@ -113,12 +113,9 @@
|
|||
visible: false
|
||||
|
||||
- type: entity
|
||||
save: false
|
||||
name: Urist McFluff
|
||||
parent: MobHumanDummy
|
||||
parent: BaseSpeciesDummy
|
||||
id: MobMothDummy
|
||||
noSpawn: true
|
||||
description: A dummy moth meant to be used in character setup.
|
||||
components:
|
||||
- type: HumanoidAppearance
|
||||
species: Moth
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
- type: entity
|
||||
save: false
|
||||
name: Urisst' Mzhand
|
||||
parent: BaseMobOrganic
|
||||
parent: BaseMobSpeciesOrganic
|
||||
id: BaseMobReptilian
|
||||
abstract: true
|
||||
components:
|
||||
|
|
@ -61,9 +61,7 @@
|
|||
- type: Perishable
|
||||
|
||||
- type: entity
|
||||
save: false
|
||||
name: Urist McHands
|
||||
parent: MobHumanDummy
|
||||
parent: BaseSpeciesDummy
|
||||
id: MobReptilianDummy
|
||||
noSpawn: true
|
||||
description: A dummy reptilian meant to be used in character setup.
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
- type: entity
|
||||
save: false
|
||||
name: Urist McSkelly
|
||||
parent: BaseMobOrganic
|
||||
parent: BaseMobSpeciesOrganic
|
||||
id: BaseMobSkeletonPerson
|
||||
abstract: true
|
||||
components:
|
||||
|
|
@ -70,12 +70,9 @@
|
|||
- MobLayer
|
||||
|
||||
- type: entity
|
||||
save: false
|
||||
name: Urist McSkelly
|
||||
parent: BaseMobOrganicDummy
|
||||
parent: BaseSpeciesDummy
|
||||
id: MobSkeletonPersonDummy
|
||||
noSpawn: true
|
||||
description: A dummy skeleton meant to be used in character setup.
|
||||
components:
|
||||
- type: HumanoidAppearance
|
||||
species: Skeleton
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
- type: entity
|
||||
name: Urist McSlime
|
||||
parent: BaseMobOrganic
|
||||
parent: BaseMobSpeciesOrganic
|
||||
id: BaseMobSlimePerson
|
||||
abstract: true
|
||||
components:
|
||||
|
|
@ -76,12 +76,9 @@
|
|||
maxSaturation: 15
|
||||
|
||||
- type: entity
|
||||
save: false
|
||||
name: Urist McHands
|
||||
parent: MobHumanDummy
|
||||
id: MobSlimePersonDummy
|
||||
noSpawn: true
|
||||
description: A dummy slime meant to be used in character setup.
|
||||
components:
|
||||
- type: HumanoidAppearance
|
||||
species: SlimePerson
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
- type: entity
|
||||
parent: BaseMobOrganic
|
||||
parent: BaseMobSpeciesOrganic
|
||||
id: BaseMobVox
|
||||
abstract: true
|
||||
components:
|
||||
|
|
@ -109,13 +109,12 @@
|
|||
Unsexed: UnisexVox
|
||||
|
||||
- type: entity
|
||||
parent: BaseSpeciesDummy
|
||||
id: MobVoxDummy
|
||||
parent: MobHumanDummy
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: HumanoidAppearance
|
||||
species: Vox
|
||||
- type: Body
|
||||
prototype: Vox
|
||||
requiredLegs: 2
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,210 @@
|
|||
# The progenitor. This should only container the most basic components possible.
|
||||
# Only put things on here if every mob *must* have it. This includes ghosts.
|
||||
- type: entity
|
||||
save: false
|
||||
id: BaseMob
|
||||
abstract: true
|
||||
components:
|
||||
- type: Sprite
|
||||
noRot: true
|
||||
drawdepth: Mobs
|
||||
- type: Physics
|
||||
bodyType: KinematicController
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 0.35
|
||||
density: 50
|
||||
mask:
|
||||
- MobMask
|
||||
layer:
|
||||
- MobLayer
|
||||
- type: Clickable
|
||||
- type: InteractionOutline
|
||||
- type: InputMover
|
||||
- type: Input
|
||||
context: "human"
|
||||
- type: LagCompensation
|
||||
- type: MobMover
|
||||
- type: Actions
|
||||
- type: Alerts
|
||||
- type: Appearance
|
||||
- type: RotationVisuals
|
||||
defaultRotation: 0
|
||||
horizontalRotation: 0
|
||||
- type: DoAfter
|
||||
- type: Examiner
|
||||
- type: Eye
|
||||
- type: ContentEye
|
||||
- type: CameraRecoil
|
||||
- type: MindContainer
|
||||
- type: MovementSpeedModifier
|
||||
- type: Polymorphable
|
||||
- type: StatusIcon
|
||||
|
||||
# Used for mobs that have health and can take damage.
|
||||
- type: entity
|
||||
save: false
|
||||
id: MobDamageable
|
||||
abstract: true
|
||||
components:
|
||||
- type: Damageable
|
||||
damageContainer: Biological
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTypeTrigger
|
||||
damageType: Blunt
|
||||
damage: 400
|
||||
behaviors:
|
||||
- !type:GibBehavior { }
|
||||
- type: RadiationReceiver
|
||||
- type: Stamina
|
||||
- type: MobState
|
||||
- type: MobThresholds
|
||||
thresholds:
|
||||
0: Alive
|
||||
100: Critical
|
||||
200: Dead
|
||||
- type: MobStateActions
|
||||
actions:
|
||||
Critical:
|
||||
- CritSuccumb
|
||||
- CritFakeDeath
|
||||
- CritLastWords
|
||||
- type: Deathgasp
|
||||
- type: HealthExaminable
|
||||
examinableTypes:
|
||||
- Blunt
|
||||
- Slash
|
||||
- Piercing
|
||||
- Heat
|
||||
- Shock
|
||||
- type: DamageOnHighSpeedImpact
|
||||
damage:
|
||||
types:
|
||||
Blunt: 5
|
||||
soundHit:
|
||||
path: /Audio/Effects/hit_kick.ogg
|
||||
- type: Pullable
|
||||
|
||||
# Used for mobs that can enter combat mode and can attack.
|
||||
- type: entity
|
||||
save: false
|
||||
id: MobCombat
|
||||
abstract: true
|
||||
components:
|
||||
- type: CombatMode
|
||||
- type: MeleeWeapon
|
||||
hidden: true
|
||||
damage:
|
||||
groups:
|
||||
Brute: 5
|
||||
|
||||
# Used for mobs that are affected by atmospherics, pressure, and heat
|
||||
- type: entity
|
||||
save: false
|
||||
id: MobAtmosExposed
|
||||
abstract: true
|
||||
components:
|
||||
- type: AtmosExposed
|
||||
- type: Temperature
|
||||
heatDamageThreshold: 360
|
||||
coldDamageThreshold: 0
|
||||
currentTemperature: 310.15
|
||||
coldDamage: #per second, scales with temperature & other constants
|
||||
types:
|
||||
Cold : 0.1
|
||||
specificHeat: 42
|
||||
heatDamage: #per second, scales with temperature & other constants
|
||||
types:
|
||||
Heat : 0.1
|
||||
- type: ThermalRegulator
|
||||
metabolismHeat: 800
|
||||
radiatedHeat: 100
|
||||
implicitHeatRegulation: 500
|
||||
sweatHeatRegulation: 2000
|
||||
shiveringHeatRegulation: 2000
|
||||
normalBodyTemperature: 310.15
|
||||
thermalRegulationTemperatureThreshold: 25
|
||||
- type: MovedByPressure
|
||||
|
||||
# Used for mobs that require regular atmospheric conditions.
|
||||
- type: entity
|
||||
parent: MobAtmosExposed
|
||||
id: MobAtmosStandard
|
||||
abstract: true
|
||||
components:
|
||||
- type: ThermalRegulator
|
||||
metabolismHeat: 800
|
||||
radiatedHeat: 100
|
||||
implicitHeatRegulation: 250
|
||||
sweatHeatRegulation: 500
|
||||
shiveringHeatRegulation: 500
|
||||
normalBodyTemperature: 310.15
|
||||
thermalRegulationTemperatureThreshold: 25
|
||||
- type: Temperature
|
||||
heatDamageThreshold: 360
|
||||
coldDamageThreshold: 260
|
||||
currentTemperature: 310.15
|
||||
specificHeat: 42
|
||||
coldDamage:
|
||||
types:
|
||||
Cold: 1 #per second, scales with temperature & other constants
|
||||
heatDamage:
|
||||
types:
|
||||
Heat: 1 #per second, scales with temperature & other constants
|
||||
- type: Barotrauma
|
||||
damage:
|
||||
types:
|
||||
Blunt: 0.15 #per second, scales with pressure and other constants.
|
||||
|
||||
# Used for mobs that can be set on fire
|
||||
- type: entity
|
||||
save: false
|
||||
id: MobFlammable
|
||||
abstract: true
|
||||
components:
|
||||
- type: Flammable
|
||||
fireSpread: true
|
||||
canResistFire: true
|
||||
damage: #per second, scales with number of fire 'stacks'
|
||||
types:
|
||||
Heat: 1
|
||||
- type: FireVisuals
|
||||
sprite: Mobs/Effects/onfire.rsi
|
||||
normalState: Generic_mob_burning
|
||||
|
||||
# Used for mobs that need to breathe
|
||||
- type: entity
|
||||
save: false
|
||||
id: MobRespirator
|
||||
abstract: true
|
||||
components:
|
||||
- type: Internals
|
||||
- type: Respirator
|
||||
damage:
|
||||
types:
|
||||
Asphyxiation: 2
|
||||
damageRecovery:
|
||||
types:
|
||||
Asphyxiation: -1.0
|
||||
|
||||
# Used for mobs that have a bloodstream
|
||||
- type: entity
|
||||
save: false
|
||||
id: MobBloodstream
|
||||
abstract: true
|
||||
components:
|
||||
- type: SolutionContainerManager
|
||||
- type: InjectableSolution
|
||||
solution: chemicals
|
||||
- type: Bloodstream
|
||||
bloodlossDamage:
|
||||
types:
|
||||
Bloodloss: 1
|
||||
bloodlossHealDamage:
|
||||
types:
|
||||
Bloodloss: -1
|
||||
Loading…
Reference in New Issue