The Newest Furry Race [Skeletons] (#7825)

Co-authored-by: Moony <moonheart08@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
EmoGarbage404
2022-05-12 19:35:55 -04:00
committed by GitHub
parent 3467a83d97
commit 075eb0d982
36 changed files with 1093 additions and 37 deletions

View File

@@ -0,0 +1,231 @@
# TODO BODY: Part damage
- type: entity
id: PartSkeleton
parent: BaseItem
name: "skeleton body part"
abstract: true
components:
- type: Damageable
damageContainer: Biological
- type: entity
id: TorsoSkeleton
name: "skeleton torso"
parent: PartSkeleton
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skeleton/parts.rsi
state: "torso_m"
- type: Icon
sprite: Mobs/Species/Skeleton/parts.rsi
state: "torso_m"
- type: BodyPart
partType: Torso
size: 14
compatibility: Biological
# criticalThreshold: 100
# deadThreshold: 150
- type: entity
id: HeadSkeleton
name: "skull"
description: Alas poor Yorick...
parent: PartSkeleton
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skeleton/parts.rsi
state: "skull_icon"
- type: Icon
sprite: Mobs/Species/Skeleton/parts.rsi
state: "skull_icon"
- type: BodyPart
partType: Head
size: 7
compatibility: Biological
#Unique stuff the skull has for one a skelly gets "boned" nyeheheh
- type: BodyReassemble
action:
icon: Mobs/Species/Skeleton/parts.rsi/full.png
name: reassemble-action
description: reassemble-description
itemIconStyle: NoItem
event: !type:ReassembleActionEvent
- type: Input
context: "human"
- type: Speech
- type: Vocal
- type: Emoting
- type: Grammar
attributes:
proper: true
- type: Examiner
- type: GhostRadio
- type: DoAfter
- type: Actions
- type: MobState
thresholds:
0: !type:NormalMobState {}
# criticalThreshold: 50
# deadThreshold: 120
- type: entity
id: LeftArmSkeleton
name: "left skeleton arm"
parent: PartSkeleton
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skeleton/parts.rsi
state: "l_arm"
- type: Icon
sprite: Mobs/Species/Skeleton/parts.rsi
state: "l_arm"
- type: BodyPart
partType: Arm
size: 5
compatibility: Biological
symmetry: Left
# criticalThreshold: 40
# deadThreshold: 80
- type: entity
id: RightArmSkeleton
name: "right skeleton arm"
parent: PartSkeleton
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skeleton/parts.rsi
state: "r_arm"
- type: Icon
sprite: Mobs/Species/Skeleton/parts.rsi
state: "r_arm"
- type: BodyPart
partType: Arm
size: 5
compatibility: Biological
symmetry: Right
# criticalThreshold: 40
# deadThreshold: 80
- type: entity
id: LeftHandSkeleton
name: "left skeleton hand"
parent: PartSkeleton
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skeleton/parts.rsi
state: "l_hand"
- type: Icon
sprite: Mobs/Species/Skeleton/parts.rsi
state: "l_hand"
- type: BodyPart
partType: Hand
size: 3
compatibility: Biological
symmetry: Left
# criticalThreshold: 30
# deadThreshold: 60
- type: entity
id: RightHandSkeleton
name: "right skeleton hand"
parent: PartSkeleton
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skeleton/parts.rsi
state: "r_hand"
- type: Icon
sprite: Mobs/Species/Skeleton/parts.rsi
state: "r_hand"
- type: BodyPart
partType: Hand
size: 3
compatibility: Biological
symmetry: Right
# criticalThreshold: 30
# deadThreshold: 60
- type: entity
id: LeftLegSkeleton
name: "left skeleton leg"
parent: PartSkeleton
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skeleton/parts.rsi
state: "l_leg"
- type: Icon
sprite: Mobs/Species/Skeleton/parts.rsi
state: "l_leg"
- type: BodyPart
partType: Leg
size: 6
compatibility: Biological
symmetry: Left
- type: entity
id: RightLegSkeleton
name: "right skeleton leg"
parent: PartSkeleton
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skeleton/parts.rsi
state: "r_leg"
- type: Icon
sprite: Mobs/Species/Skeleton/parts.rsi
state: "r_leg"
- type: BodyPart
partType: Leg
size: 6
compatibility: Biological
symmetry: Right
# criticalThreshold: 45
# deadThreshold: 90
- type: entity
id: LeftFootSkeleton
name: "left skeleton foot"
parent: PartSkeleton
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skeleton/parts.rsi
state: "l_foot"
- type: Icon
sprite: Mobs/Species/Skeleton/parts.rsi
state: "l_foot"
- type: BodyPart
partType: Foot
size: 2
compatibility: Biological
symmetry: Left
# criticalThreshold: 30
# deadThreshold: 60
- type: entity
id: RightFootSkeleton
name: "right skeleton foot"
parent: PartSkeleton
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skeleton/parts.rsi
state: "r_foot"
- type: Icon
sprite: Mobs/Species/Skeleton/parts.rsi
state: "r_foot"
- type: BodyPart
partType: Foot
size: 2
compatibility: Biological
symmetry: Right
# criticalThreshold: 30
# deadThreshold: 60

View File

@@ -0,0 +1,14 @@
- type: bodyPreset
name: "skeleton"
id: SkeletonPreset
partIDs:
head: HeadSkeleton
torso: TorsoSkeleton
right arm: RightArmSkeleton
left arm: LeftArmSkeleton
right hand: RightHandSkeleton
left hand: LeftHandSkeleton
right leg: RightLegSkeleton
left leg: LeftLegSkeleton
right foot: RightFootSkeleton
left foot: LeftFootSkeleton

View File

@@ -118,6 +118,20 @@
Heat: 3.0
Poison: 0.0
# immune to everything except physical and heat damage
- type: damageModifierSet
id: Skeleton
coefficients:
Blunt: 2.5
Slash: 1.5
Piercing: 1.2
Cold: 0.0
Poison: 0.0
Radiation: 0.0
Asphyxiation: 0.0
Bloodloss: 0.0
Cellular: 0.0
# Represents which damage types should be modified
# in relation to how they cause bloodloss damage.
- type: damageModifierSet

View File

@@ -0,0 +1,28 @@
- type: entity
save: false
parent: MobSkeletonPersonBase
id: MobSkeletonPerson
components:
- type: InteractionPopup
successChance: 1
interactSuccessString: hugging-success-generic
interactSuccessSound: /Audio/Effects/hug.ogg
messagePerceivedByOthers: hugging-success-generic-others
- type: Mind
showExamineInfo: true
- type: Input
context: "human"
- type: PlayerMobMover
- type: PlayerInputMover
- type: Vocal
maleScream: /Audio/Voice/Skeleton/skeleton_scream.ogg
femaleScream: /Audio/Voice/Skeleton/skeleton_scream.ogg
- type: Alerts
- type: Actions
- type: Eye
- type: CameraRecoil
- type: Examiner
- type: CanHostGuardian
- type: AiFactionTag
factions:
- NanoTrasen

View File

@@ -0,0 +1,352 @@
- type: entity
save: false
name: Urist McSkelly
id: MobSkeletonPersonBase
description: A miserable pile of bones.
noSpawn: true
components:
- type: Tag
tags:
- CanPilot
- FootstepSound
- DoorBumpOpener
- type: Reactive
groups:
Flammable: [ Touch ]
Extinguish: [ Touch ]
Acidic: [Touch, Ingestion]
reactions:
- reagents: [Water, SpaceCleaner]
methods: [Touch]
effects:
- !type:WashCreamPieReaction
- type: Flashable
- type: Hands
- type: MovementSpeedModifier
- type: MovedByPressure
- type: Markings
- type: Barotrauma
damage:
types:
Blunt: 0.7 #per second, scales with pressure and other constants.
- type: DamageOnHighSpeedImpact
damage:
types:
Blunt: 5
soundHit:
path: /Audio/Effects/hit_kick.ogg
# Organs
- type: HealthExaminable
examinableTypes:
- Blunt
- Slash
- Piercing
- Heat
- Shock
- type: StatusEffects
allowed:
- Stun
- KnockedDown
- SlowedDown
- Stutter
- Electrocution
# Other
- type: Inventory
- type: Clickable
- type: InteractionOutline
- type: Icon
sprite: Mobs/Species/Skeleton/parts.rsi
state: full
- type: Sprite
netsync: false
noRot: true
drawdepth: Mobs
layers:
- map: [ "enum.HumanoidVisualLayers.Chest" ]
color: "#ffffff"
sprite: Mobs/Species/Skeleton/parts.rsi
state: torso_m
- map: [ "enum.HumanoidVisualLayers.Head" ]
color: "#ffffff"
sprite: Mobs/Species/Skeleton/parts.rsi
state: head_m
- map: [ "enum.HumanoidVisualLayers.Eyes" ]
color: "#008800"
sprite: Mobs/Customization/eyes.rsi
state: eyes
- map: [ "enum.HumanoidVisualLayers.RArm" ]
color: "#ffffff"
sprite: Mobs/Species/Skeleton/parts.rsi
state: r_arm
- map: [ "enum.HumanoidVisualLayers.LArm" ]
color: "#ffffff"
sprite: Mobs/Species/Skeleton/parts.rsi
state: l_arm
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
color: "#ffffff"
sprite: Mobs/Species/Skeleton/parts.rsi
state: r_leg
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
color: "#ffffff"
sprite: Mobs/Species/Skeleton/parts.rsi
state: l_leg
- shader: StencilClear
sprite: Mobs/Species/Skeleton/parts.rsi
state: l_leg
- shader: StencilMask
map: [ "enum.HumanoidVisualLayers.StencilMask" ]
sprite: Mobs/Customization/masking_helpers.rsi
state: female_full
visible: false
- map: [ "jumpsuit" ]
shader: StencilDraw
- map: [ "enum.HumanoidVisualLayers.LHand" ]
color: "#ffffff"
sprite: Mobs/Species/Skeleton/parts.rsi
state: l_hand
- map: [ "enum.HumanoidVisualLayers.RHand" ]
color: "#ffffff"
sprite: Mobs/Species/Skeleton/parts.rsi
state: r_hand
- map: [ "enum.HumanoidVisualLayers.LFoot" ]
color: "#ffffff"
sprite: Mobs/Species/Skeleton/parts.rsi
state: l_foot
- map: [ "enum.HumanoidVisualLayers.RFoot" ]
color: "#ffffff"
sprite: Mobs/Species/Skeleton/parts.rsi
state: r_foot
- 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: [ "mask" ]
- map: [ "head" ]
- map: [ "pocket1" ]
- map: [ "pocket2" ]
- type: Physics
bodyType: KinematicController
- type: Fixtures
fixtures: # TODO: This needs a second fixture just for mob collisions.
- shape:
!type:PhysShapeCircle
radius: 0.35
mass: 70
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 : 1 #per second, scales with temperature & other constants
heatDamage:
types:
Heat : 1 #per second, scales with temperature & other constants
- type: HumanoidAppearance
- type: Body
template: HumanoidTemplate
preset: SkeletonPreset
gibSound: /Audio/Effects/bone_rattle.ogg
- type: Damageable
damageContainer: Biological
damageModifierSet: Skeleton
- type: ThermalRegulator
metabolismHeat: 800
radiatedHeat: 100
implicitHeatRegulation: 500
sweatHeatRegulation: 2000
shiveringHeatRegulation: 2000
normalBodyTemperature: 310.15
thermalRegulationTemperatureThreshold: 25
- type: Internals
- type: MobState
thresholds:
0: !type:NormalMobState {}
100: !type:DeadMobState {}
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:GibBehavior { }
- type: SlowOnDamage #modified speeds because they're so weak
speedModifierThresholds:
60: 0.9
80: 0.7
90: 0.5
- 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: DamageVisualizer
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: "#8a8a8a"
Burn:
sprite: Mobs/Effects/burn_damage.rsi
- type: CombatMode
- type: Climbing
- type: Cuffable
- type: CharacterInfo
- type: AnimationPlayer
- type: Buckle
- type: UnarmedCombat
hitSound:
collection: Punch
range: 0.8
arcwidth: 30
arc: fist
damage:
types:
Blunt: 5
- type: Pullable
- type: DoAfter
- type: CreamPied
- type: Stripping
- type: Strippable
- type: UserInterface
interfaces:
- key: enum.StrippingUiKey.Key
type: StrippableBoundUserInterface
- type: Puller
- type: Speech
- type: Vocal
- type: Emoting
- type: Grammar
attributes:
proper: true
- type: StandingState
- type: entity
save: false
name: Urist McSkelly
parent: MobHumanDummy
id: MobSkeletonPersonDummy
noSpawn: true
description: A dummy skeleton meant to be used in character setup.
components:
- type: Sprite
netsync: false
drawdepth: Mobs
layers:
- map: [ "enum.HumanoidVisualLayers.Chest" ]
color: "#b8b8b8"
sprite: Mobs/Species/Skeleton/parts.rsi
state: torso_m
- map: [ "enum.HumanoidVisualLayers.Head" ]
color: "#b8b8b8"
sprite: Mobs/Species/Skeleton/parts.rsi
state: head_m
- map: [ "enum.HumanoidVisualLayers.Eyes" ]
color: "#008800"
sprite: Mobs/Customization/eyes.rsi
state: eyes
- map: [ "enum.HumanoidVisualLayers.RArm" ]
color: "#b8b8b8"
sprite: Mobs/Species/Skeleton/parts.rsi
state: r_arm
- map: [ "enum.HumanoidVisualLayers.LArm" ]
color: "#b8b8b8"
sprite: Mobs/Species/Skeleton/parts.rsi
state: l_arm
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
color: "#b8b8b8"
sprite: Mobs/Species/Skeleton/parts.rsi
state: r_leg
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
color: "#b8b8b8"
sprite: Mobs/Species/Skeleton/parts.rsi
state: l_leg
- shader: StencilClear
sprite: Mobs/Species/Skeleton/parts.rsi
state: l_leg
- shader: StencilMask
map: [ "enum.HumanoidVisualLayers.StencilMask" ]
sprite: Mobs/Customization/masking_helpers.rsi
state: female_full
visible: false
- map: [ "jumpsuit" ]
shader: StencilDraw
- map: [ "enum.HumanoidVisualLayers.LHand" ]
color: "#b8b8b8"
sprite: Mobs/Species/Skeleton/parts.rsi
state: l_hand
- map: [ "enum.HumanoidVisualLayers.RHand" ]
color: "#b8b8b8"
sprite: Mobs/Species/Skeleton/parts.rsi
state: r_hand
- map: [ "enum.HumanoidVisualLayers.LFoot" ]
color: "#b8b8b8"
sprite: Mobs/Species/Skeleton/parts.rsi
state: l_foot
- map: [ "enum.HumanoidVisualLayers.RFoot" ]
color: "#b8b8b8"
sprite: Mobs/Species/Skeleton/parts.rsi
state: r_foot
- 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" ]
state: shaved
sprite: Mobs/Customization/human_facial_hair.rsi
color: '#FFFFFF80'
- map: [ "enum.HumanoidVisualLayers.Hair" ]
state: bald
sprite: Mobs/Customization/human_hair.rsi
color: '#FFFFFF80'
- map: [ "mask" ]
- map: [ "head" ]
- map: [ "pocket1" ]
- map: [ "pocket2" ]

View File

@@ -30,6 +30,14 @@
dollPrototype: MobSlimePersonDummy
skinColoration: Hues
- type: species
id: Skeleton
name: Skeleton
roundStart: false #unspooky, change it in october
prototype: MobSkeletonPerson
dollPrototype: MobSkeletonPersonDummy
skinColoration: TintedHues
#- type: species
# id: Vox
# name: Vox
@@ -37,4 +45,3 @@
# prototype: MobVox
# dollPrototype: MobVoxDummy
# skinColoration: Hues