Adds slime people (#3320)

This commit is contained in:
Vera Aguilera Puerto
2021-03-04 13:58:43 +01:00
committed by GitHub
parent 5109d1d853
commit 338d6fe704
19 changed files with 754 additions and 0 deletions

View File

@@ -0,0 +1,270 @@
# TODO BODY: Part damage
- type: entity
id: PartSlime
parent: BaseItem
name: "slime body part"
abstract: true
- type: entity
id: TorsoSlime
name: "slime torso"
parent: PartSlime
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Slime/parts.rsi
state: "torso_m"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "torso_m"
- type: BodyPart
partType: Torso
size: 14
compatibility: Biological
mechanisms:
- HeartHuman
- LungsHuman
- StomachHuman
- LiverHuman
- KidneysHuman
- type: BiologicalSurgeryData
- type: Damageable
# TODO BODY DettachableDamageableComponent?
damageContainer: biologicalDamageContainer
resistances: defaultResistances
# criticalThreshold: 100
# deadThreshold: 150
- type: entity
id: HeadSlime
name: "slime head"
parent: PartSlime
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Slime/parts.rsi
state: "head_m"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "head_m"
- type: BodyPart
partType: Head
size: 7
compatibility: Biological
isVital: true
mechanisms:
- BrainHuman
- EyesHuman
- type: BiologicalSurgeryData
- type: Damageable
damageContainer: biologicalDamageContainer
resistances: defaultResistances
# criticalThreshold: 50
# deadThreshold: 120
- type: Input
- type: entity
id: LeftArmSlime
name: "left slime arm"
parent: PartSlime
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Slime/parts.rsi
state: "l_arm"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "l_arm"
- type: BodyPart
partType: Arm
size: 5
compatibility: Biological
symmetry: Left
- type: BiologicalSurgeryData
- type: Damageable
damageContainer: biologicalDamageContainer
resistances: defaultResistances
# criticalThreshold: 40
# deadThreshold: 80
- type: Extension
distance: 2.4
- type: entity
id: RightArmSlime
name: "right slime arm"
parent: PartSlime
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Slime/parts.rsi
state: "r_arm"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "r_arm"
- type: BodyPart
partType: Arm
size: 5
compatibility: Biological
symmetry: Right
- type: BiologicalSurgeryData
- type: Damageable
damageContainer: biologicalDamageContainer
resistances: defaultResistances
# criticalThreshold: 40
# deadThreshold: 80
- type: Extension
distance: 2.4
- type: entity
id: LeftHandSlime
name: "left slime hand"
parent: PartSlime
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Slime/parts.rsi
state: "l_hand"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "l_hand"
- type: BodyPart
partType: Hand
size: 3
compatibility: Biological
symmetry: Left
- type: BiologicalSurgeryData
- type: Damageable
damageContainer: biologicalDamageContainer
resistances: defaultResistances
# criticalThreshold: 30
# deadThreshold: 60
- type: Grasp
- type: entity
id: RightHandSlime
name: "right slime hand"
parent: PartSlime
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Slime/parts.rsi
state: "r_hand"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "r_hand"
- type: BodyPart
partType: Hand
size: 3
compatibility: Biological
symmetry: Right
- type: BiologicalSurgeryData
- type: Damageable
damageContainer: biologicalDamageContainer
resistances: defaultResistances
# criticalThreshold: 30
# deadThreshold: 60
- type: Grasp
- type: entity
id: LeftLegSlime
name: "left slime leg"
parent: PartSlime
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Slime/parts.rsi
state: "l_leg"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "l_leg"
- type: BodyPart
partType: Leg
size: 6
compatibility: Biological
symmetry: Left
- type: BiologicalSurgeryData
- type: Damageable
damageContainer: biologicalDamageContainer
resistances: defaultResistances
# criticalThreshold: 45
# deadThreshold: 90
- type: Leg
speed: 2.6
- type: Extension
distance: 3.0
- type: entity
id: RightLegSlime
name: "right slime leg"
parent: PartSlime
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Slime/parts.rsi
state: "r_leg"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "r_leg"
- type: BodyPart
partType: Leg
size: 6
compatibility: Biological
symmetry: Right
- type: BiologicalSurgeryData
- type: Damageable
damageContainer: biologicalDamageContainer
resistances: defaultResistances
# criticalThreshold: 45
# deadThreshold: 90
- type: Leg
speed: 2.6
- type: Extension
distance: 3.0
- type: entity
id: LeftFootSlime
name: "left slime foot"
parent: PartSlime
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Slime/parts.rsi
state: "l_foot"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "l_foot"
- type: BodyPart
partType: Foot
size: 2
compatibility: Biological
symmetry: Left
- type: BiologicalSurgeryData
- type: Damageable
damageContainer: biologicalDamageContainer
resistances: defaultResistances
# criticalThreshold: 30
# deadThreshold: 60
- type: entity
id: RightFootSlime
name: "right slime foot"
parent: PartSlime
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Slime/parts.rsi
state: "r_foot"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "r_foot"
- type: BodyPart
partType: Foot
size: 2
compatibility: Biological
symmetry: Right
- type: BiologicalSurgeryData
- type: Damageable
damageContainer: biologicalDamageContainer
resistances: defaultResistances
# criticalThreshold: 30
# deadThreshold: 60

View File

@@ -0,0 +1,14 @@
- type: bodyPreset
name: "slime"
id: SlimePreset
partIDs:
head: HeadSlime
torso: TorsoSlime
right arm: RightArmSlime
left arm: LeftArmSlime
right hand: RightHandSlime
left hand: LeftHandSlime
right leg: RightLegSlime
left leg: LeftLegSlime
right foot: RightFootSlime
left foot: LeftFootSlime

View File

@@ -0,0 +1,25 @@
- type: entity
save: false
name: Slime Person
parent: BaseSlimeMob_Content
id: SlimeMob_Content
description: A miserable pile of slime
drawdepth: Mobs
components:
- type: Mind
showExamineInfo: true
- type: Input
context: "human"
- type: Alerts
- type: Actions
innateActions:
- HumanScream
- Disarm
- type: Eye
zoom: 0.5, 0.5
- type: CameraRecoil
- type: Examiner
- type: HumanInventoryController
- type: AiFactionTag
factions:
- NanoTrasen

View File

@@ -0,0 +1,214 @@
# Both slimes and NPCs inherit from this.
# Anything human specific (e.g. UI, input) goes under HumanMob_Content
- type: entity
save: false
name: Slime Person
id: BaseSlimeMob_Content
description: A miserable pile of slime.
drawdepth: Mobs
abstract: true
components:
- type: Tag
tags:
- Teleportable
- FootstepSound
- type: Flashable
- type: Hands
- type: MovementSpeedModifier
- type: MovedByPressure
- type: Barotrauma
- type: DamageOnHighSpeedImpact
soundHit: /Audio/Effects/hit_kick.ogg
- type: Hunger
- type: Thirst
# Organs
- type: SolutionContainer
maxVol: 250
caps: Injectable, Drawable
# StatusEffects
- type: Stunnable
# Other
- type: Inventory
- type: Clickable
- type: InteractionOutline
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: full
- type: Sprite
netsync: false
drawdepth: Mobs
layers:
- map: [ "enum.HumanoidVisualLayers.Chest" ]
color: "#e8b59b"
sprite: Mobs/Species/Slime/parts.rsi
state: torso_m
- map: [ "enum.HumanoidVisualLayers.Head" ]
color: "#e8b59b"
sprite: Mobs/Species/Slime/parts.rsi
state: head_m
- map: [ "enum.HumanoidVisualLayers.Eyes" ]
color: "#008800"
sprite: Mobs/Customization/eyes.rsi
state: eyes
- map: [ "enum.HumanoidVisualLayers.RArm" ]
color: "#e8b59b"
sprite: Mobs/Species/Slime/parts.rsi
state: r_arm
- map: [ "enum.HumanoidVisualLayers.LArm" ]
color: "#e8b59b"
sprite: Mobs/Species/Slime/parts.rsi
state: l_arm
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
color: "#e8b59b"
sprite: Mobs/Species/Slime/parts.rsi
state: r_leg
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
color: "#e8b59b"
sprite: Mobs/Species/Slime/parts.rsi
state: l_leg
- shader: StencilClear
sprite: Mobs/Species/Slime/parts.rsi
state: l_leg
- shader: StencilMask
map: [ "enum.HumanoidVisualLayers.StencilMask" ]
sprite: Mobs/Customization/masking_helpers.rsi
state: female_full
visible: false
- map: [ "enum.Slots.INNERCLOTHING" ]
shader: StencilDraw
- map: [ "enum.HumanoidVisualLayers.LHand" ]
color: "#e8b59b"
sprite: Mobs/Species/Slime/parts.rsi
state: l_hand
- map: [ "enum.HumanoidVisualLayers.RHand" ]
color: "#e8b59b"
sprite: Mobs/Species/Slime/parts.rsi
state: r_hand
- map: [ "enum.HumanoidVisualLayers.LFoot" ]
color: "#e8b59b"
sprite: Mobs/Species/Slime/parts.rsi
state: l_foot
- map: [ "enum.HumanoidVisualLayers.RFoot" ]
color: "#e8b59b"
sprite: Mobs/Species/Slime/parts.rsi
state: r_foot
- map: [ "enum.HumanoidVisualLayers.Handcuffs" ]
color: "#ffffff"
sprite: Objects/Misc/handcuffs.rsi
state: body-overlay-2
visible: false
- map: [ "enum.Slots.IDCARD" ]
- map: [ "enum.Slots.GLOVES" ]
- map: [ "enum.Slots.SHOES" ]
- map: [ "enum.Slots.EARS" ]
- map: [ "enum.Slots.OUTERCLOTHING" ]
- map: [ "enum.Slots.EYES" ]
- map: [ "enum.Slots.BELT" ]
- map: [ "enum.Slots.NECK" ]
- map: [ "enum.Slots.BACKPACK" ]
- map: [ "enum.HumanoidVisualLayers.FacialHair" ]
state: shaved
sprite: Mobs/Customization/human_facial_hair.rsi
- map: [ "enum.HumanoidVisualLayers.Hair" ]
state: bald
sprite: Mobs/Customization/human_hair.rsi
- map: [ "enum.Slots.MASK" ]
- map: [ "enum.Slots.HEAD" ]
- type: Physics
anchored: false
mass: 85
shapes:
- !type:PhysShapeAabb
bounds: "-0.35,-0.35,0.35,0.35"
mask:
- Impassable
- MobImpassable
- VaultImpassable
layer:
- Opaque
- MobImpassable
- type: PlayerInputMover
- type: AtmosExposed
- type: Flammable
fireSpread: true
canResistFire: true
- type: Temperature
heatDamageThreshold: 360
coldDamageThreshold: 260
currentTemperature: 310.15
specificHeat: 42
tempDamageCoefficient: 0.1
- type: HumanoidAppearance
- type: Body
template: HumanoidTemplate
preset: SlimePreset
centerSlot: torso
- type: Damageable
damageContainer: biologicalDamageContainer
- type: Metabolism
metabolismHeat: 5000
radiatedHeat: 400
implicitHeatRegulation: 5000
sweatHeatRegulation: 5000
shiveringHeatRegulation: 5000
normalBodyTemperature: 310.15
thermalRegulationTemperatureThreshold: 25
needsGases:
Oxygen: 0.00060763888
producesGases:
Oxygen: 0.00045572916
CarbonDioxide: 0.00015190972
- type: Internals
- type: MobState
thresholds:
0: !type:NormalMobState {}
100: !type:CriticalMobState {}
200: !type:DeadMobState {}
- type: Destructible
thresholds:
- trigger:
!type:DamageTypeTrigger
type: Blunt
damage: 400
behaviors:
- !type:GibBehavior { }
- type: HeatResistance
- type: Appearance
visuals:
- type: RotationVisualizer
- type: BuckleVisualizer
- type: FireVisualizer
sprite: Mobs/Effects/onfire.rsi
normalState: Generic_mob_burning
alternateState: Standing
fireStackAlternateState: 3
- type: CreamPiedVisualizer
state: creampie_human
- type: CombatMode
- type: Climbing
- type: Cuffable
- type: CharacterInfo
- type: AnimationPlayer
- type: Buckle
- type: UnarmedCombat
range: 0.8
arcwidth: 30
arc: fist
- type: Grammar
proper: true
- type: Pullable
- type: DoAfter
- type: CreamPied
- type: Stripping
- type: Strippable
- type: UserInterface
interfaces:
- key: enum.StrippingUiKey.Key
type: StrippableBoundUserInterface
- type: Puller
- type: Butcherable
meat: FoodMeat
- type: Recyclable
safe: false
- type: Speech
- type: Emoting

Binary file not shown.

After

Width:  |  Height:  |  Size: 819 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

View File

@@ -0,0 +1,231 @@
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "https://github.com/tgstation/tgstation/blob/8024397cc81c5f47f74cf4279e35728487d0a1a7/icons/mob/human_parts_greyscale.dmi and modified by Zumorica",
"states": [
{
"name": "full",
},
{
"name": "head_f",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "head_m",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "l_arm",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "l_foot",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "l_hand",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "l_leg",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "r_arm",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "r_foot",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "r_hand",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "r_leg",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "torso_f",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "torso_m",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 B