* Import bird sprites and define basic mob.

* SKREEEEEEEEE

* Move hair styles to new sprite accessory prototypes.

Basic stuff, no multi-species stuff yet.

* Vox hair styles and clothes

* Make HumanoidCharacterProfile.Default() a static default to fix tests.

Usages that wanted the previous random behavior now call Random().

* Remove names from hair style prototypes.

(They're in localization files)

* Update Content.Shared/Actions/ActionType.cs

(sk)reeee github

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
This commit is contained in:
Pieter-Jan Briers
2021-03-28 08:26:32 +02:00
committed by GitHub
parent 5ed935f30a
commit 0ac4c0e85c
101 changed files with 2440 additions and 505 deletions

View File

@@ -43,6 +43,21 @@
- /Audio/Voice/Human/femalescream_5.ogg
wilhelm: /Audio/Voice/Human/wilhelm_scream.ogg
- type: action
actionType: VoxScream
icon: Interface/Actions/scream.png
name: "Scream"
filters:
- vox
behaviorType: Instant
behavior: !type:ScreamAction
cooldown: 10
male:
- /Audio/Voice/Vox/shriek1.ogg
female:
- /Audio/Voice/Vox/shriek1.ogg
wilhelm: /Audio/Voice/Human/wilhelm_scream.ogg
- type: action
actionType: GhostBoo
icon: Interface/Actions/scream.png

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,274 @@
# TODO: Add descriptions (many)
# TODO BODY: Part damage
- type: entity
id: PartVox
parent: BaseItem
name: "vox body part"
abstract: true
- type: entity
id: TorsoVox
name: "vox torso"
parent: PartVox
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Vox/parts.rsi
state: "torso_m"
- type: Icon
sprite: Mobs/Species/Vox/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: HeadVox
name: "vox head"
parent: PartVox
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Vox/parts.rsi
state: "head_m"
- type: Icon
sprite: Mobs/Species/Vox/parts.rsi
state: "head_m"
- type: BodyPart
partType: Head
size: 7
compatibility: Biological
vital: true
mechanisms:
- BrainHuman
- EyesHuman
- type: BiologicalSurgeryData
- type: Damageable
damageContainer: biologicalDamageContainer
resistances: defaultResistances
# criticalThreshold: 50
# deadThreshold: 120
- type: Input
context: "ghost"
- type: DummyInputMover
- type: GhostOnMove
- type: entity
id: LeftArmVox
name: "left vox arm"
parent: PartVox
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Vox/parts.rsi
state: "l_arm"
- type: Icon
sprite: Mobs/Species/Vox/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: RightArmVox
name: "right vox arm"
parent: PartVox
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Vox/parts.rsi
state: "r_arm"
- type: Icon
sprite: Mobs/Species/Vox/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: LeftHandVox
name: "left vox hand"
parent: PartVox
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Vox/parts.rsi
state: "l_hand"
- type: Icon
sprite: Mobs/Species/Vox/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: RightHandVox
name: "right vox hand"
parent: PartVox
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Vox/parts.rsi
state: "r_hand"
- type: Icon
sprite: Mobs/Species/Vox/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: LeftLegVox
name: "left vox leg"
parent: PartVox
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Vox/parts.rsi
state: "l_leg"
- type: Icon
sprite: Mobs/Species/Vox/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: RightLegVox
name: "right vox leg"
parent: PartVox
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Vox/parts.rsi
state: "r_leg"
- type: Icon
sprite: Mobs/Species/Vox/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: LeftFootVox
name: "left vox foot"
parent: PartVox
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Vox/parts.rsi
state: "l_foot"
- type: Icon
sprite: Mobs/Species/Vox/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: RightFootVox
name: "right vox foot"
parent: PartVox
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Vox/parts.rsi
state: "r_foot"
- type: Icon
sprite: Mobs/Species/Vox/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: "vox"
id: VoxPreset
partIDs:
head: HeadVox
torso: TorsoVox
right arm: RightArmVox
left arm: LeftArmVox
right hand: RightHandVox
left hand: LeftHandVox
right leg: RightLegVox
left leg: LeftLegVox
right foot: RightFootVox
left foot: LeftFootVox

View File

@@ -0,0 +1,23 @@
- type: entity
save: false
name: Vox
parent: BaseVox
id: Vox
components:
- type: Mind
showExamineInfo: true
- type: Input
context: "human"
- type: Alerts
- type: Actions
innateActions:
- VoxScream
- Disarm
- type: Eye
zoom: 0.5, 0.5
- type: CameraRecoil
- type: Examiner
- type: HumanInventoryController
- type: AiFactionTag
factions:
- NanoTrasen

View File

@@ -0,0 +1,109 @@
# SKREEEEEEEEEEE
- type: entity
parent: HumanMob_Content
abstract: True
id: BaseVox
components:
- type: Icon
sprite: Mobs/Species/Vox/parts.rsi
state: vox_m
- type: Sprite
netsync: false
noRot: true
drawdepth: Mobs
layers:
- map: [ "enum.HumanoidVisualLayers.Chest" ]
sprite: Mobs/Species/Vox/parts.rsi
state: torso_m
- map: [ "enum.HumanoidVisualLayers.Head" ]
sprite: Mobs/Species/Vox/parts.rsi
state: head_m
- map: [ "enum.HumanoidVisualLayers.Eyes" ]
color: "#008800"
sprite: Mobs/Customization/eyes.rsi
state: vox_eyes_s
- map: [ "enum.HumanoidVisualLayers.RArm" ]
sprite: Mobs/Species/Vox/parts.rsi
state: r_arm
- map: [ "enum.HumanoidVisualLayers.LArm" ]
sprite: Mobs/Species/Vox/parts.rsi
state: l_arm
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
sprite: Mobs/Species/Vox/parts.rsi
state: r_leg
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
sprite: Mobs/Species/Vox/parts.rsi
state: l_leg
# Vox don't have female clothing masks.
#- shader: StencilClear
# sprite: Mobs/Species/Vox/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" ]
sprite: Mobs/Species/Vox/parts.rsi
state: l_hand
- map: [ "enum.HumanoidVisualLayers.RHand" ]
sprite: Mobs/Species/Vox/parts.rsi
state: r_hand
- map: [ "enum.HumanoidVisualLayers.LFoot" ]
sprite: Mobs/Species/Vox/parts.rsi
state: l_foot
- map: [ "enum.HumanoidVisualLayers.RFoot" ]
sprite: Mobs/Species/Vox/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: Body
template: HumanoidTemplate
preset: VoxPreset
centerSlot: torso
- type: Metabolism
needsGases:
Nitrogen: 0.00060763888
producesGases:
Nitrogen: 0.00045572916
CarbonDioxide: 0.00015190972
# - 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: HumanoidAppearance
canColorHair: false
canColorFacialHair: false
categoriesHair: VoxHair
categoriesFacialHair: VoxFacialHair
- type: Inventory
speciesId: vox

View File

@@ -0,0 +1,19 @@
# Bald and shaved are used for multiple species.
- categories: [HumanHair, VoxHair]
id: HairBald
# Bald is always on top
priority: 1
sprite:
sprite: Mobs/Customization/human_hair.rsi
state: bald
type: spriteAccessory
- categories: [HumanFacialHair, VoxFacialHair]
id: FacialHairShaved
# Shaved is always on top
priority: 1
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: shaved
type: spriteAccessory

View File

@@ -0,0 +1,210 @@
- categories: HumanFacialHair
id: HumanFacialHairAbe
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: abe
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairBrokenman
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: brokenman
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairChin
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: chin
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairDwarf
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: dwarf
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairFullbeard
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: fullbeard
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairCroppedfullbeard
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: croppedfullbeard
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairGt
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: gt
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairHip
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: hip
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairJensen
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: jensen
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairNeckbeard
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: neckbeard
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairWise
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: wise
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairMuttonmus
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: muttonmus
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairMartialartist
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: martialartist
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairChinlessbeard
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: chinlessbeard
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairMoonshiner
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: moonshiner
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairLongbeard
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: longbeard
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairVolaju
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: volaju
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHair3oclock
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: 3oclock
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairFiveoclock
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: fiveoclock
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHair5oclockmoustache
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: 5oclockmoustache
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHair7oclock
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: 7oclock
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHair7oclockmoustache
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: 7oclockmoustache
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairMoustache
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: moustache
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairPencilstache
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: pencilstache
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairSmallstache
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: smallstache
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairWalrus
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: walrus
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairFumanchu
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: fumanchu
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairHogan
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: hogan
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairSelleck
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: selleck
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairChaplin
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: chaplin
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairVandyke
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: vandyke
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairWatson
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: watson
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairElvis
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: elvis
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairMutton
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: mutton
type: spriteAccessory
- categories: HumanFacialHair
id: HumanFacialHairSideburn
sprite:
sprite: Mobs/Customization/human_facial_hair.rsi
state: sideburn
type: spriteAccessory

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,34 @@
- type: spriteAccessory
id: VoxFacialHairColonel
categories: VoxFacialHair
sprite:
sprite: Mobs/Customization/vox_facial_hair.rsi
state: vox_colonel_s
- type: spriteAccessory
id: VoxFacialHairFu
categories: VoxFacialHair
sprite:
sprite: Mobs/Customization/vox_facial_hair.rsi
state: vox_fu_s
- type: spriteAccessory
id: VoxFacialHairNeck
categories: VoxFacialHair
sprite:
sprite: Mobs/Customization/vox_facial_hair.rsi
state: vox_neck_s
- type: spriteAccessory
id: VoxFacialHairBeard
categories: VoxFacialHair
sprite:
sprite: Mobs/Customization/vox_facial_hair.rsi
state: vox_beard_s
- type: spriteAccessory
id: VoxFacialHairRuffBeard
categories: VoxFacialHair
sprite:
sprite: Mobs/Customization/vox_facial_hair.rsi
state: vox_ruff_beard_s

View File

@@ -0,0 +1,91 @@
- type: spriteAccessory
id: VoxHairShortQuills
categories: VoxHair
sprite:
sprite: Mobs/Customization/vox_hair.rsi
state: vox_shortquills_s
- type: spriteAccessory
id: VoxHairKingly
categories: VoxHair
sprite:
sprite: Mobs/Customization/vox_hair.rsi
state: vox_kingly_s
- type: spriteAccessory
id: VoxHairAfro
categories: VoxHair
sprite:
sprite: Mobs/Customization/vox_hair.rsi
state: vox_afro_s
- type: spriteAccessory
id: VoxHairMohawk
categories: VoxHair
sprite:
sprite: Mobs/Customization/vox_hair.rsi
state: vox_mohawk_s
- type: spriteAccessory
id: VoxHairYasuhiro
categories: VoxHair
sprite:
sprite: Mobs/Customization/vox_hair.rsi
state: vox_yasu_s
- type: spriteAccessory
id: VoxHairHorns
categories: VoxHair
sprite:
sprite: Mobs/Customization/vox_hair.rsi
state: vox_horns_s
- type: spriteAccessory
id: VoxHairNights
categories: VoxHair
sprite:
sprite: Mobs/Customization/vox_hair.rsi
state: vox_nights_s
- type: spriteAccessory
id: VoxHairSurf
categories: VoxHair
sprite:
sprite: Mobs/Customization/vox_hair.rsi
state: vox_surf_s
- type: spriteAccessory
id: VoxHairCropped
categories: VoxHair
sprite:
sprite: Mobs/Customization/vox_hair.rsi
state: vox_cropped_s
- type: spriteAccessory
id: VoxHairRuffhawk
categories: VoxHair
sprite:
sprite: Mobs/Customization/vox_hair.rsi
state: vox_ruff_hawk_s
- type: spriteAccessory
id: VoxHairRows
categories: VoxHair
sprite:
sprite: Mobs/Customization/vox_hair.rsi
state: vox_rows_s
- type: spriteAccessory
id: VoxHairMange
categories: VoxHair
sprite:
sprite: Mobs/Customization/vox_hair.rsi
state: vox_mange_s
- type: spriteAccessory
id: VoxHairPony
categories: VoxHair
sprite:
sprite: Mobs/Customization/vox_hair.rsi
state: vox_pony_s