Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding Custom Species: Skrell #172

Draft
wants to merge 14 commits into
base: master
Choose a base branch
from
1 change: 1 addition & 0 deletions Resources/Locale/en-US/species/species.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ species-name-arachnid = Arachnid
species-name-moth = Moth Person
species-name-skeleton = Skeleton
species-name-vox = Vox
species-name-skrell = Skrell
110 changes: 110 additions & 0 deletions Resources/Prototypes/Body/Organs/skrell.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
- type: entity
id: BaseSkrellOrgan
parent: BaseItem
abstract: true
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skrell/organs.rsi
- type: Organ
- type: Food
- type: Extractable
grindableSolutionName: organ
- type: SolutionContainerManager
solutions:
organ:
maxVol: 10
reagents:
- ReagentId: Nutriment
Quantity: 10

- type: entity
id: OrganSkrellStomach
parent: OrganAnimalStomach
name: Stomach
description: "Gross. This is hard to stomach."
noSpawn: true
components:
- type: Stomach
maxVolume: 50
updateInterval: 1.5
- type: Metabolizer
updateFrequency: 1.5

- type: entity
id: OrganSkrellHeart
parent: BaseHumanOrgan
name: heart
description: "I feel bad for the heartless bastard who lost this."
noSpawn: true
components:
- type: Sprite
state: heart-on
- type: Organ
- type: Metabolizer
updateFrequency: 1.5
maxReagents: 2
metabolizerTypes: [Animal]
groups:
- id: Medicine
- id: Poison
- id: Narcotic

- type: entity
id: OrganSkrellLiver
parent: BaseHumanOrgan
name: liver
description: "Pairing suggestion: chianti and fava beans."
noSpawn: true
components:
- type: Sprite
state: liver
- type: Organ
- type: Metabolizer # The liver metabolizes certain chemicals only, like alcohol.
updateFrequency: 1.5
maxReagents: 1
metabolizerTypes: [Animal]
groups:
- id: Alcohol
rateModifier: 0.1 # removes alcohol very slowly along with the stomach removing it as a drink

- type: entity
id: OrganSkrellKidneys
parent: BaseHumanOrgan
name: kidneys
description: "Filters toxins from the bloodstream."
noSpawn: true
components:
- type: Sprite
layers:
- state: kidney-l
- state: kidney-r
- type: Organ
# The kidneys just remove anything that doesn't currently have any metabolisms, as a stopgap.
- type: Metabolizer
updateFrequency: 1.5
maxReagents: 5
metabolizerTypes: [Animal]
removeEmpty: true

- type: entity
id: OrganSkrellEyes
parent: BaseSkrellOrgan
name: eyes
description: "Eyes see you!"
components:
- type: Sprite
layers:
- state: eyeball-l
- state: eyeball-r
- type: Organ

- type: entity
id: OrganSkrellTongue
parent: BaseSkrellOrgan
name: tongue
description: "A fleshy muscle mostly used for lying."
components:
- type: Sprite
state: tongue
- type: Organ
190 changes: 190 additions & 0 deletions Resources/Prototypes/Body/Parts/skrell.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,190 @@
# TODO: Add descriptions (many)
# TODO BODY: Part damage
- type: entity
id: PartSkrell
parent: BaseItem
name: "skrell body part"
abstract: true
components:
- type: Damageable
damageContainer: Biological
- type: BodyPart
- type: ContainerContainer
containers:
bodypart: !type:Container
ents: []

- type: entity
id: TorsoSkrell
name: "skrell torso"
parent: PartSkrell
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skrell/parts.rsi
state: "torso_m"
- type: Icon
sprite: Mobs/Species/Skrell/parts.rsi
state: "torso_m"
- type: BodyPart
partType: Torso

- type: entity
id: HeadSkrell
name: "skrell head"
parent: PartSkrell
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skrell/parts.rsi
state: "head_m"
- type: Icon
sprite: Mobs/Species/Skrell/parts.rsi
state: "head_m"
- type: BodyPart
partType: Head
vital: true
- type: Input
context: "ghost"
- type: MovementSpeedModifier
baseWalkSpeed: 0
baseSprintSpeed: 0
- type: InputMover
- type: GhostOnMove
- type: Tag
tags:
- Head

- type: entity
id: LeftArmSkrell
name: "left skrell arm"
parent: PartSkrell
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skrell/parts.rsi
state: "l_arm"
- type: Icon
sprite: Mobs/Species/Skrell/parts.rsi
state: "l_arm"
- type: BodyPart
partType: Arm
symmetry: Left

- type: entity
id: RightArmSkrell
name: "right skrell arm"
parent: PartSkrell
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skrell/parts.rsi
state: "r_arm"
- type: Icon
sprite: Mobs/Species/Skrell/parts.rsi
state: "r_arm"
- type: BodyPart
partType: Arm
symmetry: Right

- type: entity
id: LeftHandSkrell
name: "left skrell hand"
parent: PartSkrell
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skrell/parts.rsi
state: "l_hand"
- type: Icon
sprite: Mobs/Species/Skrell/parts.rsi
state: "l_hand"
- type: BodyPart
partType: Hand
symmetry: Left

- type: entity
id: RightHandSkrell
name: "right skrell hand"
parent: PartSkrell
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skrell/parts.rsi
state: "r_hand"
- type: Icon
sprite: Mobs/Species/Skrell/parts.rsi
state: "r_hand"
- type: BodyPart
partType: Hand
symmetry: Right

- type: entity
id: LeftLegSkrell
name: "left skrell leg"
parent: PartSkrell
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skrell/parts.rsi
state: "l_leg"
- type: Icon
sprite: Mobs/Species/Skrell/parts.rsi
state: "l_leg"
- type: BodyPart
partType: Leg
symmetry: Left
- type: MovementBodyPart
walkSpeed: 3.0
sprintSpeed: 5.0

- type: entity
id: RightLegSkrell
name: "right skrell leg"
parent: PartSkrell
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skrell/parts.rsi
state: "r_leg"
- type: Icon
sprite: Mobs/Species/Skrell/parts.rsi
state: "r_leg"
- type: BodyPart
partType: Leg
symmetry: Right
- type: MovementBodyPart
walkSpeed: 3.0
sprintSpeed: 5.0

- type: entity
id: LeftFootSkrell
name: "left skrell foot"
parent: PartSkrell
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skrell/parts.rsi
state: "l_foot"
- type: Icon
sprite: Mobs/Species/Skrell/parts.rsi
state: "l_foot"
- type: BodyPart
partType: Foot
symmetry: Left

- type: entity
id: RightFootSkrell
name: "right skrell foot"
parent: PartSkrell
components:
- type: Sprite
netsync: false
sprite: Mobs/Species/Skrell/parts.rsi
state: "r_foot"
- type: Icon
sprite: Mobs/Species/Skrell/parts.rsi
state: "r_foot"
- type: BodyPart
partType: Foot
symmetry: Right
49 changes: 49 additions & 0 deletions Resources/Prototypes/Body/Prototypes/skrell.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
- type: body
id: Skrell
name: "Skrell"
root: torso
slots:
head:
part: HeadSkrell
connections:
- torso
organs:
brain: OrganHumanBrain
eyes: OrganSkrellEyes
torso:
part: TorsoSkrell
organs:
heart: OrganSkrellHeart
lungs: OrganAnimalLungs
stomach: OrganSkrellStomach
liver: OrganSkrellLiver
kidneys: OrganSkrellKidneys
connections:
- left arm
- right arm
- left leg
- right leg
right arm:
part: RightArmSkrell
connections:
- right hand
left arm:
part: LeftArmSkrell
connections:
- left hand
right hand:
part: RightHandSkrell
left hand:
part: LeftHandSkrell
right leg:
part: RightLegSkrell
connections:
- right foot
left leg:
part: LeftLegSkrell
connections:
- left foot
right foot:
part: RightFootSkrell
left foot:
part: LeftFootSkrell
8 changes: 8 additions & 0 deletions Resources/Prototypes/Damage/modifier_sets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,14 @@
Heat: 1.5
Shock: 1.2

- type: damageModifierSet
id: Skrell # Come from colder climates and oceans
coefficients:
Blunt: 0.9
Slash: 1.3
Piercing: 1.3
Cold: 0.5

- type: damageModifierSet
id: Moth # Slightly worse at everything but cold
coefficients:
Expand Down
Loading