This commit is contained in:
LankLTE
2023-08-03 22:21:28 -07:00
committed by GitHub
parent 94e2c7a4b0
commit 70545f4873
71 changed files with 982 additions and 659 deletions

View File

@@ -36,14 +36,11 @@ namespace Content.Server.Nutrition.Components
public bool UtensilRequired = false;
/// <summary>
/// If this is set to true, eating this food will require you to have a stomach with a
/// If this is set to true, food can only be eaten if you have a stomach with a
/// <see cref="StomachComponent.SpecialDigestible"/> that includes this entity in its whitelist,
/// rather than just being digestible by anything that can eat food.
/// Whitelist the food component to allow eating of normal food.
/// </summary>
/// <remarks>
/// TODO think about making this a little more complex, right now you cant disallow mobs from eating stuff
/// that everyone else can eat
/// </remarks>
[DataField("requiresSpecialDigestion")]
public bool RequiresSpecialDigestion = false;

View File

@@ -27,6 +27,7 @@ using Content.Shared.Stacks;
using Robust.Shared.Audio;
using Robust.Shared.Player;
using Robust.Shared.Utility;
using Content.Shared.Tag;
namespace Content.Server.Nutrition.EntitySystems
{
@@ -50,6 +51,7 @@ namespace Content.Server.Nutrition.EntitySystems
[Dependency] private readonly ReactiveSystem _reaction = default!;
[Dependency] private readonly SharedAudioSystem _audio = default!;
[Dependency] private readonly StackSystem _stack = default!;
[Dependency] private readonly TagSystem _tags = default!;
public const float MaxFeedDistance = 1.0f;
@@ -107,6 +109,7 @@ namespace Content.Server.Nutrition.EntitySystems
var forceFeed = user != target;
// Check for special digestibles
if (!IsDigestibleBy(food, foodComp, stomachs))
{
_popupSystem.PopupEntity(
@@ -367,28 +370,33 @@ namespace Content.Server.Nutrition.EntitySystems
}
/// <summary>
/// Returns true if <paramref name="stomachs"/> has a <see cref="StomachComponent"/> that is capable of
/// digesting this <paramref name="food"/> (or if they even have enough stomachs in the first place).
/// Returns true if <paramref name="stomachs"/> has a <see cref="StomachComponent.SpecialDigestible"/> that whitelists
/// this <paramref name="food"/> (or if they even have enough stomachs in the first place).
/// </summary>
private bool IsDigestibleBy(EntityUid food, FoodComponent component, List<(StomachComponent, OrganComponent)> stomachs)
{
var digestible = true;
// Does the mob have enough stomachs?
if (stomachs.Count < component.RequiredStomachs)
return false;
if (!component.RequiresSpecialDigestion)
return true;
// Run through the mobs' stomachs
foreach (var (comp, _) in stomachs)
{
// Find a stomach with a SpecialDigestible
if (comp.SpecialDigestible == null)
continue;
if (!comp.SpecialDigestible.IsValid(food, EntityManager))
return false;
// Check if the food is in the whitelist
if (comp.SpecialDigestible.IsValid(food, EntityManager))
return true;
// They can only eat whitelist food and the food isn't in the whitelist. It's not edible.
return false;
}
if (component.RequiresSpecialDigestion)
return false;
return digestible;
}

View File

@@ -0,0 +1,9 @@
- files: ["moth_scream.ogg"]
license: "CC-BY-SA-3.0"
copyright: "Taken from https://github.com/tgstation/tgstation/commit/31c19654e0f641166ecd80c672ea05362fd19488"
source: "https://github.com/tgstation/tgstation/commits/master/sound/voice/moth/scream_moth.ogg"
- files: ["moth_laugh.ogg, moth_chitter.ogg"]
license: "CC-BY-SA-3.0"
copyright: "Taken from https://github.com/BeeStation/BeeStation-Hornet/commit/11ba3fa04105c93dd96a63ad4afaef4b20c02d0d"
source: "https://github.com/BeeStation/BeeStation-Hornet/blob/11ba3fa04105c93dd96a63ad4afaef4b20c02d0d/sound/emotes/"

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,5 @@
marking-MothAntennasDefault = Antennas (Default)
marking-MothWingsDefault = Wings (Default)
marking-MothWingsLook1 = Wings (Pointy)
marking-MothWingsLook2 = Wings (Swirly)
marking-MothWingsLook3 = Wings (Dotted)

View File

@@ -6,6 +6,7 @@ food-you-need-to-hold-utensil = You need to be holding a {$utensil} to eat that!
food-nom = Nom. {$flavors}
food-swallow = You swallow the {$food}. {$flavors}
food-repulsing = This looks repulsing.
food-system-remove-mask = You need to take off the {$entity} first.

View File

@@ -6,3 +6,4 @@ species-name-reptilian = Reptilian
species-name-slime = Slime Person
species-name-diona = Diona
species-name-arachnid = Arachnid
species-name-moth = Moth Person

View File

@@ -45,7 +45,6 @@
layers:
- state: lung-l
- state: lung-r
- type: Organ
- type: Lung
- type: Metabolizer
updateFrequency: 1.5
@@ -74,7 +73,6 @@
components:
- type: Sprite
state: heart-on
- type: Organ
- type: Metabolizer
updateFrequency: 1.5
maxReagents: 2
@@ -93,7 +91,6 @@
components:
- type: Sprite
state: liver
- type: Organ
- type: Metabolizer # The liver metabolizes certain chemicals only, like alcohol.
updateFrequency: 1.5
maxReagents: 1
@@ -113,7 +110,6 @@
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
@@ -131,7 +127,6 @@
layers:
- state: eyeball-l
- state: eyeball-r
- type: Organ
- type: entity
id: OrganArachnidTongue
@@ -141,4 +136,3 @@
components:
- type: Sprite
state: tongue
- type: Organ

View File

@@ -19,16 +19,12 @@
- type: entity
id: OrganDionaBrain
parent: BaseDionaOrgan
parent: [BaseDionaOrgan, OrganHumanBrain]
name: brain
description: "The source of incredible, unending intelligence. Honk."
components:
- type: Sprite
state: brain
- type: Organ
- type: Input
context: "ghost"
- type: InputMover
- type: SolutionContainerManager
solutions:
organ:
@@ -60,7 +56,6 @@
layers:
- state: eyeball-l
- state: eyeball-r
- type: Organ
- type: entity
id: OrganDionaStomach
@@ -70,7 +65,6 @@
components:
- type: Sprite
state: stomach
- type: Organ
- type: SolutionContainerManager
solutions:
stomach:

View File

@@ -40,7 +40,6 @@
layers:
- state: eyeball-l
- state: eyeball-r
- type: Organ
- type: entity
id: OrganHumanTongue
@@ -50,7 +49,6 @@
components:
- type: Sprite
state: tongue
- type: Organ
- type: entity
id: OrganHumanAppendix
@@ -62,7 +60,6 @@
- state: appendix
- state: appendix-inflamed
visible: false
- type: Organ
- type: entity
id: OrganHumanEars
@@ -72,7 +69,6 @@
components:
- type: Sprite
state: ears
- type: Organ
- type: entity
id: OrganHumanLungs
@@ -84,7 +80,6 @@
layers:
- state: lung-l
- state: lung-r
- type: Organ
- type: Lung
- type: Metabolizer
removeEmpty: true
@@ -112,7 +107,6 @@
components:
- type: Sprite
state: heart-on
- type: Organ
# The heart 'metabolizes' medicines and poisons that aren't filtered out by other organs.
# This is done because these chemicals need to have some effect even if they aren't being filtered out of your body.
# You're technically 'immune to poison' without a heart, but.. uhh, you'll have bigger problems on your hands.
@@ -132,7 +126,6 @@
components:
- type: Sprite
state: stomach
- type: Organ
- type: SolutionContainerManager
solutions:
stomach:
@@ -157,7 +150,6 @@
components:
- type: Sprite
state: liver
- type: Organ
- type: Metabolizer # The liver metabolizes certain chemicals only, like alcohol.
maxReagents: 1
metabolizerTypes: [Human]
@@ -175,7 +167,6 @@
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
maxReagents: 5

View File

@@ -0,0 +1,20 @@
- type: entity
id: OrganMothStomach
parent: [OrganAnimalStomach, OrganHumanStomach]
noSpawn: true
components:
- type: Stomach
specialDigestible:
tags:
- ClothMade
- type: SolutionContainerManager
solutions:
stomach:
maxVol: 50
- type: Metabolizer
maxReagents: 6
metabolizerTypes: [ Plant ]
removeEmpty: true
groups:
- id: Food
- id: Drink

View File

@@ -1,14 +1,9 @@
- type: entity
id: SentientSlimeCore
parent: BaseItem
parent: [BaseItem, OrganHumanBrain]
name: sentient slime core
description: "The source of incredible, unending gooeyness."
components:
- type: Sprite
sprite: Mobs/Species/Human/organs.rsi
state: brain
- type: Organ
- type: Brain
- type: Stomach
- type: Metabolizer
maxReagents: 6
@@ -38,7 +33,6 @@
layers:
- state: lung-l
- state: lung-r
- type: Organ
- type: Lung
- type: Metabolizer
removeEmpty: true

View File

@@ -2,17 +2,10 @@
# TODO BODY: Part damage
- type: entity
id: PartArachnid
parent: BaseItem
parent: [BaseItem, BasePart]
name: "arachnid body part"
abstract: true
components:
- type: Damageable
damageContainer: Biological
- type: BodyPart
- type: ContainerContainer
containers:
bodypart: !type:Container
ents: []
- type: Extractable
juiceSolution:
reagents:
@@ -24,16 +17,11 @@
- type: entity
id: TorsoArachnid
name: "arachnid torso"
parent: PartArachnid
parent: [PartArachnid, BaseTorso]
components:
- type: Sprite
sprite: Mobs/Species/Arachnid/parts.rsi
state: "torso_m"
- type: Icon
sprite: Mobs/Species/Arachnid/parts.rsi
state: "torso_m"
- type: BodyPart
partType: Torso
- type: Extractable
juiceSolution:
reagents:
@@ -45,27 +33,11 @@
- type: entity
id: HeadArachnid
name: "arachnid head"
parent: PartArachnid
parent: [PartArachnid, BaseHead]
components:
- type: Sprite
sprite: Mobs/Species/Arachnid/parts.rsi
state: "head_m"
- type: Icon
sprite: Mobs/Species/Arachnid/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: Extractable
juiceSolution:
reagents:
@@ -77,77 +49,47 @@
- type: entity
id: LeftArmArachnid
name: "left arachnid arm"
parent: PartArachnid
parent: [PartArachnid, BaseLeftArm]
components:
- type: Sprite
sprite: Mobs/Species/Arachnid/parts.rsi
state: "l_arm"
- type: Icon
sprite: Mobs/Species/Arachnid/parts.rsi
state: "l_arm"
- type: BodyPart
partType: Arm
symmetry: Left
- type: entity
id: RightArmArachnid
name: "right arachnid arm"
parent: PartArachnid
parent: [PartArachnid, BaseRightArm]
components:
- type: Sprite
sprite: Mobs/Species/Arachnid/parts.rsi
state: "r_arm"
- type: Icon
sprite: Mobs/Species/Arachnid/parts.rsi
state: "r_arm"
- type: BodyPart
partType: Arm
symmetry: Right
- type: entity
id: LeftHandArachnid
name: "left arachnid hand"
parent: PartArachnid
parent: [PartArachnid, BaseLeftHand]
components:
- type: Sprite
sprite: Mobs/Species/Arachnid/parts.rsi
state: "l_hand"
- type: Icon
sprite: Mobs/Species/Arachnid/parts.rsi
state: "l_hand"
- type: BodyPart
partType: Hand
symmetry: Left
- type: entity
id: RightHandArachnid
name: "right arachnid hand"
parent: PartArachnid
parent: [PartArachnid, BaseRightHand]
components:
- type: Sprite
sprite: Mobs/Species/Arachnid/parts.rsi
state: "r_hand"
- type: Icon
sprite: Mobs/Species/Arachnid/parts.rsi
state: "r_hand"
- type: BodyPart
partType: Hand
symmetry: Right
- type: entity
id: LeftLegArachnid
name: "left arachnid leg"
parent: PartArachnid
parent: [PartArachnid, BaseLeftLeg]
components:
- type: Sprite
sprite: Mobs/Species/Arachnid/parts.rsi
state: "l_leg"
- type: Icon
sprite: Mobs/Species/Arachnid/parts.rsi
state: "l_leg"
- type: BodyPart
partType: Leg
symmetry: Left
- type: MovementBodyPart
walkSpeed: 3.0
sprintSpeed: 5.0
@@ -155,17 +97,11 @@
- type: entity
id: RightLegArachnid
name: "right arachnid leg"
parent: PartArachnid
parent: [PartArachnid, BaseRightLeg]
components:
- type: Sprite
sprite: Mobs/Species/Arachnid/parts.rsi
state: "r_leg"
- type: Icon
sprite: Mobs/Species/Arachnid/parts.rsi
state: "r_leg"
- type: BodyPart
partType: Leg
symmetry: Right
- type: MovementBodyPart
walkSpeed: 3.0
sprintSpeed: 5.0
@@ -173,29 +109,17 @@
- type: entity
id: LeftFootArachnid
name: "left arachnid foot"
parent: PartArachnid
parent: [PartArachnid, BaseLeftFoot]
components:
- type: Sprite
sprite: Mobs/Species/Arachnid/parts.rsi
state: "l_foot"
- type: Icon
sprite: Mobs/Species/Arachnid/parts.rsi
state: "l_foot"
- type: BodyPart
partType: Foot
symmetry: Left
- type: entity
id: RightFootArachnid
name: "right arachnid foot"
parent: PartArachnid
parent: [PartArachnid, BaseRightFoot]
components:
- type: Sprite
sprite: Mobs/Species/Arachnid/parts.rsi
state: "r_foot"
- type: Icon
sprite: Mobs/Species/Arachnid/parts.rsi
state: "r_foot"
- type: BodyPart
partType: Foot
symmetry: Right

View File

@@ -0,0 +1,116 @@
# TODO: Add descriptions (many)
# TODO BODY: Part damage
- type: entity
id: BasePart
parent: BaseItem
name: "body part"
abstract: true
components:
- type: Damageable
damageContainer: Biological
- type: BodyPart
- type: ContainerContainer
containers:
bodypart: !type:Container
ents: []
- type: StaticPrice
price: 100
- type: Tag
tags:
- Trash
- type: entity
id: BaseTorso
name: "torso"
parent: BasePart
components:
- type: BodyPart
partType: Torso
- type: entity
id: BaseHead
name: "head"
parent: BasePart
components:
- type: BodyPart
partType: Head
vital: true
- type: Input
context: "ghost"
- type: Tag
tags:
- Head
- type: entity
id: BaseLeftArm
name: "left arm"
parent: BasePart
components:
- type: BodyPart
partType: Arm
symmetry: Left
- type: entity
id: BaseRightArm
name: "right arm"
parent: BasePart
components:
- type: BodyPart
partType: Arm
symmetry: Right
- type: entity
id: BaseLeftHand
name: "left hand"
parent: BasePart
components:
- type: BodyPart
partType: Hand
symmetry: Left
- type: entity
id: BaseRightHand
name: "right hand"
parent: BasePart
components:
- type: BodyPart
partType: Hand
symmetry: Right
- type: entity
id: BaseLeftLeg
name: "left leg"
parent: BasePart
components:
- type: BodyPart
partType: Leg
symmetry: Left
- type: MovementBodyPart
- type: entity
id: BaseRightLeg
name: "right leg"
parent: BasePart
components:
- type: BodyPart
partType: Leg
symmetry: Right
- type: MovementBodyPart
- type: entity
id: BaseLeftFoot
name: "left foot"
parent: BasePart
components:
- type: BodyPart
partType: Foot
symmetry: Left
- type: entity
id: BaseRightFoot
name: "right foot"
parent: BasePart
components:
- type: BodyPart
partType: Foot
symmetry: Right

View File

@@ -1,120 +1,67 @@
- type: entity
id: PartDiona
parent: BaseItem
parent: [BaseItem, BasePart]
name: "diona body part"
abstract: true
components:
- type: Damageable
damageContainer: Biological
- type: BodyPart
- type: ContainerContainer
containers:
bodypart: !type:Container
ents: []
- type: Sprite
sprite: Mobs/Species/Diona/parts.rsi
- type: Icon
sprite: Mobs/Species/Diona/parts.rsi
- type: StaticPrice
price: 100
- type: Tag
tags:
- Trash
- type: entity
id: TorsoDiona
name: "diona torso"
parent: PartDiona
parent: [PartDiona, BaseTorso]
components:
- type: Sprite
state: "torso_m"
- type: Icon
state: "torso_m"
- type: BodyPart
partType: Torso
- type: entity
id: HeadDiona
name: "diona head"
parent: PartDiona
parent: [PartDiona, BaseHead]
components:
- type: Sprite
state: "head_m"
- type: Icon
state: "head_m"
- type: BodyPart
partType: Head
vital: true
- type: Input
context: "ghost"
- type: Tag
tags:
- Head
- type: entity
id: LeftArmDiona
name: "left diona arm"
parent: PartDiona
parent: [PartDiona, BaseLeftArm]
components:
- type: Sprite
state: "l_arm"
- type: Icon
state: "l_arm"
- type: BodyPart
partType: Arm
symmetry: Left
- type: entity
id: RightArmDiona
name: "right diona arm"
parent: PartDiona
parent: [PartDiona, BaseRightArm]
components:
- type: Sprite
state: "r_arm"
- type: Icon
state: "r_arm"
- type: BodyPart
partType: Arm
symmetry: Right
- type: entity
id: LeftHandDiona
name: "left diona hand"
parent: PartDiona
parent: [PartDiona, BaseLeftHand]
components:
- type: Sprite
state: "l_hand"
- type: Icon
state: "l_hand"
- type: BodyPart
partType: Hand
symmetry: Left
- type: entity
id: RightHandDiona
name: "right diona hand"
parent: PartDiona
parent: [PartDiona, BaseRightHand]
components:
- type: Sprite
state: "r_hand"
- type: Icon
state: "r_hand"
- type: BodyPart
partType: Hand
symmetry: Right
- type: entity
id: LeftLegDiona
name: "left diona leg"
parent: PartDiona
parent: [PartDiona, BaseLeftLeg]
components:
- type: Sprite
state: "l_leg"
- type: Icon
state: "l_leg"
- type: BodyPart
partType: Leg
symmetry: Left
- type: MovementBodyPart
walkSpeed : 1.5
sprintSpeed : 3.5
@@ -122,12 +69,10 @@
- type: entity
id: RightLegDiona
name: "right diona leg"
parent: PartDiona
parent: [PartDiona, BaseRightLeg]
components:
- type: Sprite
state: "r_leg"
- type: Icon
state: "r_leg"
- type: BodyPart
partType: Leg
symmetry: Right
@@ -138,12 +83,10 @@
- type: entity
id: LeftFootDiona
name: "left diona foot"
parent: PartDiona
parent: [PartDiona, BaseLeftFoot]
components:
- type: Sprite
state: "l_foot"
- type: Icon
state: "l_foot"
- type: BodyPart
partType: Foot
symmetry: Left
@@ -151,12 +94,10 @@
- type: entity
id: RightFootDiona
name: "right diona foot"
parent: PartDiona
parent: [PartDiona, BaseRightFoot]
components:
- type: Sprite
state: "r_foot"
- type: Icon
state: "r_foot"
- type: BodyPart
partType: Foot
symmetry: Right

View File

@@ -2,22 +2,10 @@
# TODO BODY: Part damage
- type: entity
id: PartHuman
parent: BaseItem
parent: [BaseItem, BasePart]
name: "human body part"
abstract: true
components:
- type: Damageable
damageContainer: Biological
- type: BodyPart
- type: ContainerContainer
containers:
bodypart: !type:Container
ents: []
- type: StaticPrice
price: 100
- type: Tag
tags:
- Trash
- type: Extractable
juiceSolution:
reagents:
@@ -29,16 +17,11 @@
- type: entity
id: TorsoHuman
name: "human torso"
parent: PartHuman
parent: [PartHuman, BaseTorso]
components:
- type: Sprite
sprite: Mobs/Species/Human/parts.rsi
state: "torso_m"
- type: Icon
sprite: Mobs/Species/Human/parts.rsi
state: "torso_m"
- type: BodyPart
partType: Torso
- type: Extractable
juiceSolution:
reagents:
@@ -50,22 +33,11 @@
- type: entity
id: HeadHuman
name: "human head"
parent: PartHuman
parent: [PartHuman, BaseHead]
components:
- type: Sprite
sprite: Mobs/Species/Human/parts.rsi
state: "head_m"
- type: Icon
sprite: Mobs/Species/Human/parts.rsi
state: "head_m"
- type: BodyPart
partType: Head
vital: true
- type: Input
context: "ghost"
- type: Tag
tags:
- Head
- type: Extractable
juiceSolution:
reagents:
@@ -77,121 +49,71 @@
- type: entity
id: LeftArmHuman
name: "left human arm"
parent: PartHuman
parent: [PartHuman, BaseLeftArm]
components:
- type: Sprite
sprite: Mobs/Species/Human/parts.rsi
state: "l_arm"
- type: Icon
sprite: Mobs/Species/Human/parts.rsi
state: "l_arm"
- type: BodyPart
partType: Arm
symmetry: Left
- type: entity
id: RightArmHuman
name: "right human arm"
parent: PartHuman
parent: [PartHuman, BaseRightArm]
components:
- type: Sprite
sprite: Mobs/Species/Human/parts.rsi
state: "r_arm"
- type: Icon
sprite: Mobs/Species/Human/parts.rsi
state: "r_arm"
- type: BodyPart
partType: Arm
symmetry: Right
- type: entity
id: LeftHandHuman
name: "left human hand"
parent: PartHuman
parent: [PartHuman, BaseLeftHand]
components:
- type: Sprite
sprite: Mobs/Species/Human/parts.rsi
state: "l_hand"
- type: Icon
sprite: Mobs/Species/Human/parts.rsi
state: "l_hand"
- type: BodyPart
partType: Hand
symmetry: Left
- type: entity
id: RightHandHuman
name: "right human hand"
parent: PartHuman
parent: [PartHuman, BaseRightHand]
components:
- type: Sprite
sprite: Mobs/Species/Human/parts.rsi
state: "r_hand"
- type: Icon
sprite: Mobs/Species/Human/parts.rsi
state: "r_hand"
- type: BodyPart
partType: Hand
symmetry: Right
- type: entity
id: LeftLegHuman
name: "left human leg"
parent: PartHuman
parent: [PartHuman, BaseLeftLeg]
components:
- type: Sprite
sprite: Mobs/Species/Human/parts.rsi
state: "l_leg"
- type: Icon
sprite: Mobs/Species/Human/parts.rsi
state: "l_leg"
- type: BodyPart
partType: Leg
symmetry: Left
- type: MovementBodyPart
- type: entity
id: RightLegHuman
name: "right human leg"
parent: PartHuman
parent: [PartHuman, BaseRightLeg]
components:
- type: Sprite
sprite: Mobs/Species/Human/parts.rsi
state: "r_leg"
- type: Icon
sprite: Mobs/Species/Human/parts.rsi
state: "r_leg"
- type: BodyPart
partType: Leg
symmetry: Right
- type: MovementBodyPart
- type: entity
id: LeftFootHuman
name: "left human foot"
parent: PartHuman
parent: [PartHuman, BaseLeftFoot]
components:
- type: Sprite
sprite: Mobs/Species/Human/parts.rsi
state: "l_foot"
- type: Icon
sprite: Mobs/Species/Human/parts.rsi
state: "l_foot"
- type: BodyPart
partType: Foot
symmetry: Left
- type: entity
id: RightFootHuman
name: "right human foot"
parent: PartHuman
parent: [PartHuman, BaseRightFoot]
components:
- type: Sprite
sprite: Mobs/Species/Human/parts.rsi
state: "r_foot"
- type: Icon
sprite: Mobs/Species/Human/parts.rsi
state: "r_foot"
- type: BodyPart
partType: Foot
symmetry: Right

View File

@@ -0,0 +1,120 @@
# TODO: Add descriptions (many)
# TODO BODY: Part damage
- type: entity
id: PartMoth
parent: [BaseItem, BasePart]
name: "moth body part"
abstract: true
components:
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 3
- ReagentId: Blood
Quantity: 10
- type: entity
id: TorsoMoth
name: "moth torso"
parent: [PartMoth, BaseTorso]
components:
- type: Sprite
sprite: Mobs/Species/Moth/parts.rsi
state: "torso_m"
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 10
- ReagentId: Blood
Quantity: 20
- type: entity
id: HeadMoth
name: "moth head"
parent: [PartMoth, BaseHead]
components:
- type: Sprite
sprite: Mobs/Species/Moth/parts.rsi
state: "head_m"
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 5
- ReagentId: Blood
Quantity: 10
- type: entity
id: LeftArmMoth
name: "left moth arm"
parent: [PartMoth, BaseLeftArm]
components:
- type: Sprite
sprite: Mobs/Species/Moth/parts.rsi
state: "l_arm"
- type: entity
id: RightArmMoth
name: "right moth arm"
parent: [PartMoth, BaseRightArm]
components:
- type: Sprite
sprite: Mobs/Species/Moth/parts.rsi
state: "r_arm"
- type: entity
id: LeftHandMoth
name: "left moth hand"
parent: [PartMoth, BaseLeftHand]
components:
- type: Sprite
sprite: Mobs/Species/Moth/parts.rsi
state: "l_hand"
- type: entity
id: RightHandMoth
name: "right moth hand"
parent: [PartMoth, BaseRightHand]
components:
- type: Sprite
sprite: Mobs/Species/Moth/parts.rsi
state: "r_hand"
- type: entity
id: LeftLegMoth
name: "left moth leg"
parent: [PartMoth, BaseLeftLeg]
components:
- type: Sprite
sprite: Mobs/Species/Moth/parts.rsi
state: "l_leg"
- type: entity
id: RightLegMoth
name: "right moth leg"
parent: [PartMoth, BaseRightLeg]
components:
- type: Sprite
sprite: Mobs/Species/Moth/parts.rsi
state: "r_leg"
- type: entity
id: LeftFootMoth
name: "left moth foot"
parent: [PartMoth, BaseLeftFoot]
components:
- type: Sprite
sprite: Mobs/Species/Moth/parts.rsi
state: "l_foot"
- type: entity
id: RightFootMoth
name: "right moth foot"
parent: [PartMoth, BaseRightFoot]
components:
- type: Sprite
sprite: Mobs/Species/Moth/parts.rsi
state: "r_foot"

View File

@@ -2,20 +2,10 @@
# TODO BODY: Part damage
- type: entity
id: PartReptilian
parent: BaseItem
parent: [BaseItem, BasePart]
name: "reptilian body part"
abstract: true
components:
- type: Damageable
damageContainer: Biological
- type: BodyPart
- type: ContainerContainer
containers:
bodypart: !type:Container
ents: []
- type: Tag
tags:
- Trash
- type: Extractable
juiceSolution:
reagents:
@@ -27,16 +17,11 @@
- type: entity
id: TorsoReptilian
name: "reptilian torso"
parent: PartReptilian
parent: [PartReptilian, BaseTorso]
components:
- type: Sprite
sprite: Mobs/Species/Reptilian/parts.rsi
state: "torso_m"
- type: Icon
sprite: Mobs/Species/Reptilian/parts.rsi
state: "torso_m"
- type: BodyPart
partType: Torso
- type: Extractable
juiceSolution:
reagents:
@@ -48,22 +33,11 @@
- type: entity
id: HeadReptilian
name: "reptilian head"
parent: PartReptilian
parent: [PartReptilian, BaseHead]
components:
- type: Sprite
sprite: Mobs/Species/Reptilian/parts.rsi
state: "head_m"
- type: Icon
sprite: Mobs/Species/Reptilian/parts.rsi
state: "head_m"
- type: BodyPart
partType: Head
vital: true
- type: Input
context: "ghost"
- type: Tag
tags:
- Head
- type: Extractable
juiceSolution:
reagents:
@@ -75,77 +49,47 @@
- type: entity
id: LeftArmReptilian
name: "left reptilian arm"
parent: PartReptilian
parent: [PartReptilian, BaseLeftArm]
components:
- type: Sprite
sprite: Mobs/Species/Reptilian/parts.rsi
state: "l_arm"
- type: Icon
sprite: Mobs/Species/Reptilian/parts.rsi
state: "l_arm"
- type: BodyPart
partType: Arm
symmetry: Left
- type: entity
id: RightArmReptilian
name: "right reptilian arm"
parent: PartReptilian
parent: [PartReptilian, BaseRightArm]
components:
- type: Sprite
sprite: Mobs/Species/Reptilian/parts.rsi
state: "r_arm"
- type: Icon
sprite: Mobs/Species/Reptilian/parts.rsi
state: "r_arm"
- type: BodyPart
partType: Arm
symmetry: Right
- type: entity
id: LeftHandReptilian
name: "left reptilian hand"
parent: PartReptilian
parent: [PartReptilian, BaseLeftHand]
components:
- type: Sprite
sprite: Mobs/Species/Reptilian/parts.rsi
state: "l_hand"
- type: Icon
sprite: Mobs/Species/Reptilian/parts.rsi
state: "l_hand"
- type: BodyPart
partType: Hand
symmetry: Left
- type: entity
id: RightHandReptilian
name: "right reptilian hand"
parent: PartReptilian
parent: [PartReptilian, BaseRightHand]
components:
- type: Sprite
sprite: Mobs/Species/Reptilian/parts.rsi
state: "r_hand"
- type: Icon
sprite: Mobs/Species/Reptilian/parts.rsi
state: "r_hand"
- type: BodyPart
partType: Hand
symmetry: Right
- type: entity
id: LeftLegReptilian
name: "left reptilian leg"
parent: PartReptilian
parent: [PartReptilian, BaseLeftLeg]
components:
- type: Sprite
sprite: Mobs/Species/Reptilian/parts.rsi
state: "l_leg"
- type: Icon
sprite: Mobs/Species/Reptilian/parts.rsi
state: "l_leg"
- type: BodyPart
partType: Leg
symmetry: Left
- type: MovementBodyPart
walkSpeed : 2.7
sprintSpeed : 4.5
@@ -153,17 +97,11 @@
- type: entity
id: RightLegReptilian
name: "right reptilian leg"
parent: PartReptilian
parent: [PartReptilian, BaseRightLeg]
components:
- type: Sprite
sprite: Mobs/Species/Reptilian/parts.rsi
state: "r_leg"
- type: Icon
sprite: Mobs/Species/Reptilian/parts.rsi
state: "r_leg"
- type: BodyPart
partType: Leg
symmetry: Right
- type: MovementBodyPart
walkSpeed : 2.7
sprintSpeed : 4.5
@@ -171,29 +109,17 @@
- type: entity
id: LeftFootReptilian
name: "left reptilian foot"
parent: PartReptilian
parent: [PartReptilian, BaseLeftFoot]
components:
- type: Sprite
sprite: Mobs/Species/Reptilian/parts.rsi
state: "l_foot"
- type: Icon
sprite: Mobs/Species/Reptilian/parts.rsi
state: "l_foot"
- type: BodyPart
partType: Foot
symmetry: Left
- type: entity
id: RightFootReptilian
name: "right reptilian foot"
parent: PartReptilian
parent: [PartReptilian, BaseRightFoot]
components:
- type: Sprite
sprite: Mobs/Species/Reptilian/parts.rsi
state: "r_foot"
- type: Icon
sprite: Mobs/Species/Reptilian/parts.rsi
state: "r_foot"
- type: BodyPart
partType: Foot
symmetry: Right
state: "r_foot"

View File

@@ -1,175 +1,96 @@
# TODO BODY: Part damage
- type: entity
id: PartSlime
parent: BaseItem
parent: [BaseItem, PartBase]
name: "slime body part"
abstract: true
components:
- type: Damageable
damageContainer: Biological
- type: BodyPart
- type: ContainerContainer
containers:
bodypart: !type:Container
ents: []
- type: StaticPrice
price: 100
- type: Tag
tags:
- Trash
- type: entity
id: TorsoSlime
name: "slime torso"
parent: PartSlime
parent: [PartSlime, BaseTorso]
components:
- type: Sprite
sprite: Mobs/Species/Slime/parts.rsi
state: "torso_m"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "torso_m"
- type: BodyPart
partType: Torso
- type: entity
id: HeadSlime
name: "slime head"
parent: PartSlime
parent: [PartSlime, BaseHead]
components:
- type: Sprite
sprite: Mobs/Species/Slime/parts.rsi
state: "head_m"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "head_m"
- type: BodyPart
partType: Head
vital: true
- type: Input
context: "ghost"
- type: Tag
tags:
- Head
- type: entity
id: LeftArmSlime
name: "left slime arm"
parent: PartSlime
parent: [PartSlime, BaseLeftArm]
components:
- type: Sprite
sprite: Mobs/Species/Slime/parts.rsi
state: "l_arm"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "l_arm"
- type: BodyPart
partType: Arm
symmetry: Left
- type: entity
id: RightArmSlime
name: "right slime arm"
parent: PartSlime
parent: [PartSlime, BaseRightArm]
components:
- type: Sprite
sprite: Mobs/Species/Slime/parts.rsi
state: "r_arm"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "r_arm"
- type: BodyPart
partType: Arm
symmetry: Right
- type: entity
id: LeftHandSlime
name: "left slime hand"
parent: PartSlime
parent: [PartSlime, BaseLeftHand]
components:
- type: Sprite
sprite: Mobs/Species/Slime/parts.rsi
state: "l_hand"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "l_hand"
- type: BodyPart
partType: Hand
symmetry: Left
- type: entity
id: RightHandSlime
name: "right slime hand"
parent: PartSlime
parent: [PartSlime, BaseRightHand]
components:
- type: Sprite
sprite: Mobs/Species/Slime/parts.rsi
state: "r_hand"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "r_hand"
- type: BodyPart
partType: Hand
symmetry: Right
- type: entity
id: LeftLegSlime
name: "left slime leg"
parent: PartSlime
parent: [PartSlime, BaseLeftLeg]
components:
- type: Sprite
sprite: Mobs/Species/Slime/parts.rsi
state: "l_leg"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "l_leg"
- type: BodyPart
partType: Leg
symmetry: Left
- type: MovementBodyPart
- type: entity
id: RightLegSlime
name: "right slime leg"
parent: PartSlime
parent: [PartSlime, BaseRightLeg]
components:
- type: Sprite
sprite: Mobs/Species/Slime/parts.rsi
state: "r_leg"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "r_leg"
- type: BodyPart
partType: Leg
symmetry: Right
- type: MovementBodyPart
- type: entity
id: LeftFootSlime
name: "left slime foot"
parent: PartSlime
parent: [PartSlime, BaseLeftFoot]
components:
- type: Sprite
sprite: Mobs/Species/Slime/parts.rsi
state: "l_foot"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "l_foot"
- type: BodyPart
partType: Foot
symmetry: Left
- type: entity
id: RightFootSlime
name: "right slime foot"
parent: PartSlime
parent: [PartSlime, BaseRightFoot]
components:
- type: Sprite
sprite: Mobs/Species/Slime/parts.rsi
state: "r_foot"
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
state: "r_foot"
- type: BodyPart
partType: Foot
symmetry: Right

View File

@@ -0,0 +1,49 @@
- type: body
id: Moth
name: "Moth"
root: torso
slots:
head:
part: HeadMoth
connections:
- torso
organs:
brain: OrganHumanBrain
eyes: OrganHumanEyes
torso:
part: TorsoMoth
organs:
heart: OrganAnimalHeart
lungs: OrganHumanLungs
stomach: OrganMothStomach
liver: OrganAnimalLiver
kidneys: OrganHumanKidneys
connections:
- left arm
- right arm
- left leg
- right leg
right arm:
part: RightArmMoth
connections:
- right hand
left arm:
part: LeftArmMoth
connections:
- left hand
right hand:
part: RightHandMoth
left hand:
part: LeftHandMoth
right leg:
part: RightLegMoth
connections:
- right foot
left leg:
part: LeftLegMoth
connections:
- left foot
right foot:
part: RightFootMoth
left foot:
part: LeftFootMoth

View File

@@ -32,3 +32,7 @@
- type: metabolizerType
id: Dwarf
name: dwarf
- type: metabolizerType
id: Moth
name: moth

View File

@@ -137,7 +137,17 @@
Piercing: 1.15
Slash: 0.85
Heat: 1.25
Poison: 0.8
Poison: 0.8
- type: damageModifierSet
id: Moth # Slightly worse at everything but cold
coefficients:
Blunt: 1
Piercing: 1.15
Slash: 1.15
Cold: 0.7
Heat: 1.3
Poison: 1.1
- type: damageModifierSet
id: Zombie #Blunt resistant and immune to biological threats, but can be hacked apart and burned

View File

@@ -7,3 +7,15 @@
state: icon
- type: Clothing
slots: [gloves]
- type: Food
requiresSpecialDigestion: true
- type: SolutionContainerManager
solutions:
food:
maxVol: 10
reagents:
- ReagentId: Fiber
Quantity: 10
- type: Tag
tags:
- ClothMade

View File

@@ -7,6 +7,18 @@
state: icon
- type: Clothing
slots: [mask]
- type: Food
requiresSpecialDigestion: true
- type: SolutionContainerManager
solutions:
food:
maxVol: 10
reagents:
- ReagentId: Fiber
Quantity: 10
- type: Tag
tags:
- ClothMade
- type: entity
abstract: true

View File

@@ -16,3 +16,15 @@
spawned:
- id: MaterialCloth1
amount: 2
- type: Food
requiresSpecialDigestion: true
- type: SolutionContainerManager
solutions:
food:
maxVol: 10
reagents:
- ReagentId: Fiber
Quantity: 10
- type: Tag
tags:
- ClothMade

View File

@@ -17,6 +17,18 @@
coefficients:
Slash: 0.95
Heat: 0.90
- type: Food
requiresSpecialDigestion: true
- type: SolutionContainerManager
solutions:
food:
maxVol: 30
reagents:
- ReagentId: Fiber
Quantity: 30
- type: Tag
tags:
- ClothMade
- type: entity
parent: ClothingOuterWinterCoat

View File

@@ -8,6 +8,18 @@
- FEET
- type: Sprite
state: icon
- type: Food
requiresSpecialDigestion: true
- type: SolutionContainerManager
solutions:
food:
maxVol: 10
reagents:
- ReagentId: Fiber
Quantity: 10
- type: Tag
tags:
- ClothMade
- type: entity
abstract: true

View File

@@ -14,6 +14,18 @@
spawned:
- id: MaterialCloth1
amount: 3
- type: Food
requiresSpecialDigestion: true
- type: SolutionContainerManager
solutions:
food:
maxVol: 30
reagents:
- ReagentId: Fiber
Quantity: 30
- type: Tag
tags:
- ClothMade
- type: entity
abstract: true

View File

@@ -0,0 +1,49 @@
# Antennas
- type: marking
id: MothAntennasDefault
bodyPart: HeadTop
markingCategory: HeadTop
speciesRestriction: [Moth]
sprites:
- sprite: Mobs/Customization/moth_parts.rsi
state: antenna_default
# Wings
- type: marking
id: MothWingsDefault
bodyPart: Tail
markingCategory: Tail
speciesRestriction: [Moth]
sprites:
- sprite: Mobs/Customization/moth_parts.rsi
state: wings_default
- type: marking
id: MothWingsLook1
bodyPart: Tail
markingCategory: Tail
speciesRestriction: [Moth]
sprites:
- sprite: Mobs/Customization/moth_parts.rsi
state: wings_look1
- type: marking
id: MothWingsLook2
bodyPart: Tail
markingCategory: Tail
speciesRestriction: [Moth]
sprites:
- sprite: Mobs/Customization/moth_parts.rsi
state: wings_look2
- type: marking
id: MothWingsLook3
bodyPart: Tail
markingCategory: Tail
speciesRestriction: [Moth]
sprites:
- sprite: Mobs/Customization/moth_parts.rsi
state: wings_look3
# Other markings

View File

@@ -1,35 +1,13 @@
- type: entity
save: false
name: Urist McWeb
parent: BaseMobArachnid
parent: [BaseMobArachnid, BaseMob]
id: MobArachnid
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: 2 # Make sure you have O2 on you at all times
damageRecovery:
types:
Asphyxiation: -0.5 # Recovery will suck without chems
- type: Alerts
- type: Actions
- type: Eye
- type: CameraRecoil
- type: Examiner
- type: CanHostGuardian
- type: NpcFactionMember
factions:
- NanoTrasen
Asphyxiation: -0.5 # Recovery will suck without chems

View File

@@ -0,0 +1,34 @@
- type: entity
save: false
name: BaseMob
id: BaseMob
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

View File

@@ -1,20 +1,9 @@
- type: entity
save: false
name: Urist McPlants
parent: BaseMobDiona
parent: [BaseMobDiona, BaseMob]
id: MobDiona
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: Respirator
damage:
types:
@@ -22,13 +11,3 @@
damageRecovery:
types:
Asphyxiation: -1.0
- type: MobMover
- type: InputMover
- type: Alerts
- type: Eye
- type: CameraRecoil
- type: Examiner
- type: CanHostGuardian
- type: NpcFactionMember
factions:
- NanoTrasen

View File

@@ -1,27 +1,5 @@
- type: entity
save: false
name: Urist McHands The Dwarf
parent: BaseMobDwarf
id: MobDwarf
components:
- type: CombatMode
- 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: Alerts
- type: Actions
- type: Eye
- type: CameraRecoil
- type: Examiner
- type: CanHostGuardian
- type: NpcFactionMember
factions:
- NanoTrasen
parent: [BaseMobDwarf, BaseMob]
id: MobDwarf

View File

@@ -1,37 +1,8 @@
- type: entity
save: false
name: Urist McHands
parent: BaseMobHuman
parent: [BaseMobHuman, BaseMob]
id: MobHuman
components:
- type: CombatMode
- 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
#Syndie
- type: entity

View File

@@ -0,0 +1,5 @@
- type: entity
save: false
name: Urist McFluff
parent: [BaseMobMoth, BaseMob]
id: MobMoth

View File

@@ -1,34 +1,7 @@
- type: entity
save: false
name: Urisst' Mzhand
parent: BaseMobReptilian
parent: [BaseMobReptilian, BaseMob]
id: MobReptilian
components:
- type: CombatMode
- 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: Alerts
- type: Eye
- type: CameraRecoil
- type: Examiner
- type: CanHostGuardian
- type: NpcFactionMember
factions:
- NanoTrasen
- type: Respirator
damage:
types:
Asphyxiation: 1.0
damageRecovery:
types:
Asphyxiation: -1.0
#Weh

View File

@@ -1,26 +1,4 @@
- type: entity
save: false
parent: BaseMobSlimePerson
id: MobSlimePerson
components:
- type: CombatMode
- 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: Alerts
- type: Actions
- type: Eye
- type: CameraRecoil
- type: Examiner
- type: CanHostGuardian
- type: NpcFactionMember
factions:
- NanoTrasen
parent: [BaseMobSlimePerson, BaseMob]
id: MobSlimePerson

View File

@@ -1,33 +1,5 @@
- type: entity
save: false
name: Vox
parent: BaseMobVox
parent: [BaseMobVox, BaseMob]
id: MobVox
components:
- type: CombatMode
- 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: Alerts
- type: Eye
- type: CameraRecoil
- type: Examiner
- type: CanHostGuardian
- type: NpcFactionMember
factions:
- NanoTrasen
- type: Respirator
damage:
types:
Asphyxiation: 1.0
damageRecovery:
types:
Asphyxiation: -1.0

View File

@@ -18,15 +18,15 @@
- type: Damageable
damageContainer: Biological
damageModifierSet: Arachnid # spooder
- type: Icon
sprite: Mobs/Species/Arachnid/parts.rsi
state: full
- type: Hunger
starvationDamage:
types:
Cold: 0.5
Bloodloss: 0.5
- type: Thirst
- type: Icon
sprite: Mobs/Species/Arachnid/parts.rsi
state: full
# Damage and speed
- type: Bloodstream
bloodReagent: SpiderBlood

View File

@@ -12,7 +12,7 @@
Bloodloss: 0.5
- type: Thirst
- type: Icon
sprite: Mobs/Species/Slime/parts.rsi
sprite: Mobs/Species/Slime/parts.rsi # It was like this beforehand, no idea why.
state: full
- type: Respirator
damage:

View File

@@ -9,7 +9,10 @@
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
- type: Thirst
- type: Perishable
- type: Butcherable

View File

@@ -0,0 +1,66 @@
- type: entity
save: false
name: Urist McFluff
parent: BaseMobOrganic
id: BaseMobMoth
abstract: true
components:
- type: HumanoidAppearance
species: Moth
- type: Hunger
starvationDamage:
types:
Cold: 0.5
Bloodloss: 0.5
- type: Thirst
- type: Icon
sprite: Mobs/Species/Moth/parts.rsi
state: full
- type: Body
prototype: Moth
requiredLegs: 2
- type: Damageable
damageContainer: Biological
damageModifierSet: Moth
- type: Butcherable
butcheringType: Spike
spawned:
- id: FoodMeat
amount: 5
- type: Vocal
sounds:
Male: UnisexMoth
Female: UnisexMoth
Unsexed: UnisexMoth
- type: MovementSpeedModifier
baseWalkSpeed : 2.5
baseSprintSpeed : 4.5
weightlessAcceleration: 1.5 # Move around more easily in space.
weightlessFriction: 1
weightlessModifier: 1
- type: Flammable
damage:
types:
Heat: 1.5 # moths burn more easily
- type: Temperature # Moths hate the heat and thrive in the cold.
heatDamageThreshold: 335
coldDamageThreshold: 230
currentTemperature: 310.15
specificHeat: 46
coldDamage:
types:
Cold : 0.05 #per second, scales with temperature & other constants
heatDamage:
types:
Heat : 0.2 #per second, scales with temperature & other constants
- type: entity
save: false
name: Urist McFluff
parent: MobHumanDummy
id: MobMothDummy
noSpawn: true
description: A dummy moth meant to be used in character setup.
components:
- type: HumanoidAppearance
species: Moth

View File

@@ -12,8 +12,8 @@
- type: ItemStatus
- type: Tag
tags:
- RawMaterial
- DroneUsable
- RawMaterial
- type: Damageable
damageContainer: Inorganic
- type: Destructible
@@ -69,11 +69,6 @@
name: cloth
suffix: Full
components:
- type: Tag
tags:
- RawMaterial
- DroneUsable
- Gauze
- type: Healing
damageContainers:
- Biological
@@ -110,6 +105,22 @@
- type: Appearance
- type: Item
size: 30
- type: Food
requiresSpecialDigestion: true
- type: SolutionContainerManager
solutions:
food:
maxVol: 5
reagents:
- ReagentId: Fiber
Quantity: 5
- type: Tag
tags:
- ClothMade
- DroneUsable
- Gauze
- RawMaterial
- type: entity
parent: MaterialCloth
@@ -149,6 +160,20 @@
- type: Construction
graph: Durathread
node: MaterialDurathread
- type: Food
requiresSpecialDigestion: true
- type: SolutionContainerManager
solutions:
food:
maxVol: 5
reagents:
- ReagentId: Fiber
Quantity: 5
- type: Tag
tags:
- ClothMade
- DroneUsable
- RawMaterial
- type: entity
parent: MaterialDurathread
@@ -304,6 +329,20 @@
- type: Appearance
- type: Item
size: 30
- type: Food
requiresSpecialDigestion: true
- type: SolutionContainerManager
solutions:
food:
maxVol: 5
reagents:
- ReagentId: Fiber
Quantity: 5
- type: Tag
tags:
- ClothMade
- DroneUsable
- RawMaterial
- type: entity

View File

@@ -34,6 +34,14 @@
physicalDesc: reagent-physical-desc-fibrous
flavor: fiber
color: "#808080"
metabolisms:
Food:
effects:
- !type:SatiateHunger
conditions:
- !type:OrganType
type: Moth
- type: reagent
id: BuzzochloricBees

View File

@@ -0,0 +1,144 @@
- type: species
id: Moth
name: species-name-moth
roundStart: true
prototype: MobMoth
sprites: MobMothSprites
defaultSkinTone: "#ffda93"
markingLimits: MobMothMarkingLimits
dollPrototype: MobMothDummy
skinColoration: Hues
- type: speciesBaseSprites
id: MobMothSprites
sprites:
Head: MobMothHead
Snout: MobHumanoidAnyMarking
Chest: MobMothTorso
HeadTop: MobHumanoidAnyMarking
HeadSide: MobHumanoidAnyMarking
Tail: MobHumanoidAnyMarking
Eyes: MobMothEyes
LArm: MobMothLArm
RArm: MobMothRArm
LHand: MobMothLHand
RHand: MobMothRHand
LLeg: MobMothLLeg
RLeg: MobMothRLeg
LFoot: MobMothLFoot
RFoot: MobMothRFoot
- type: humanoidBaseSprite
id: MobMothEyes
baseSprite:
sprite: Mobs/Species/Moth/parts.rsi
state: eyes
- type: markingPoints
id: MobMothMarkingLimits
onlyWhitelisted: true
points:
Hair:
points: 0
required: false
FacialHair:
points: 0
required: false
Tail:
points: 1
required: true
defaultMarkings: [ MothWingsDefault ]
Snout:
points: 1
required: false
HeadTop:
points: 1
required: true
defaultMarkings: [ MothAntennasDefault ]
HeadSide:
points: 1
required: false
- type: humanoidBaseSprite
id: MobMothHead
baseSprite:
sprite: Mobs/Species/Moth/parts.rsi
state: head_m
- type: humanoidBaseSprite
id: MobMothHeadMale
baseSprite:
sprite: Mobs/Species/Moth/parts.rsi
state: head_m
- type: humanoidBaseSprite
id: MobMothHeadFemale
baseSprite:
sprite: Mobs/Species/Moth/parts.rsi
state: head_f
- type: humanoidBaseSprite
id: MobMothTorso
baseSprite:
sprite: Mobs/Species/Moth/parts.rsi
state: torso_m
- type: humanoidBaseSprite
id: MobMothTorsoMale
baseSprite:
sprite: Mobs/Species/Moth/parts.rsi
state: torso_m
- type: humanoidBaseSprite
id: MobMothTorsoFemale
baseSprite:
sprite: Mobs/Species/Moth/parts.rsi
state: torso_f
- type: humanoidBaseSprite
id: MobMothLLeg
baseSprite:
sprite: Mobs/Species/Moth/parts.rsi
state: l_leg
- type: humanoidBaseSprite
id: MobMothLHand
baseSprite:
sprite: Mobs/Species/Moth/parts.rsi
state: l_hand
- type: humanoidBaseSprite
id: MobMothLArm
baseSprite:
sprite: Mobs/Species/Moth/parts.rsi
state: l_arm
- type: humanoidBaseSprite
id: MobMothLFoot
baseSprite:
sprite: Mobs/Species/Moth/parts.rsi
state: l_foot
- type: humanoidBaseSprite
id: MobMothRLeg
baseSprite:
sprite: Mobs/Species/Moth/parts.rsi
state: r_leg
- type: humanoidBaseSprite
id: MobMothRHand
baseSprite:
sprite: Mobs/Species/Moth/parts.rsi
state: r_hand
- type: humanoidBaseSprite
id: MobMothRArm
baseSprite:
sprite: Mobs/Species/Moth/parts.rsi
state: r_arm
- type: humanoidBaseSprite
id: MobMothRFoot
baseSprite:
sprite: Mobs/Species/Moth/parts.rsi
state: r_foot

View File

@@ -255,6 +255,18 @@
variation: 0.125
pitchscale: 0.75
- type: emoteSounds
id: UnisexMoth
params:
variation: 0.125
sounds:
Scream:
path: /Audio/Voice/Moth/moth_scream.ogg
Laugh:
path: /Audio/Voice/Moth/moth_laugh.ogg
Chitter:
path: /Audio/Voice/Moth/moth_chitter.ogg
# body emotes
- type: emoteSounds
id: GeneralBodyEmotes

View File

@@ -110,6 +110,21 @@
- squishes.
- squishes!
- type: emote
id: Chitter
category: Vocal
chatMessages: [chitters.]
chatTriggers:
- chitter
- chitter.
- chitter!
- chitters
- chitters.
- chitters!
- chittered
- chittered.
- chittered!
# hand emotes
- type: emote
id: Clap

View File

@@ -167,6 +167,9 @@
- type: Tag
id: CigPack
- type: Tag
id: ClothMade
- type: Tag
id: ClownMask

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 B

View File

@@ -0,0 +1,31 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "https://github.com/tgstation/tgstation/commit/1d0eadcb126fc3581eed33490f4be2a88157af58#diff-69bd499bf0bc772862b15c2c9209e2eb5804a1bf72162b2ec4e75158cacb6109, modified by https://github.com/PixelTheKermit",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "wings_default",
"directions": 4
},
{
"name": "wings_look1",
"directions": 4
},
{
"name": "wings_look2",
"directions": 4
},
{
"name": "wings_look3",
"directions": 4
},
{
"name": "antenna_default",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 976 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 850 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 887 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 878 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 B

View File

@@ -0,0 +1,66 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "https://github.com/tgstation/tgstation/commit/1d0eadcb126fc3581eed33490f4be2a88157af58, modified by https://github.com/PixelTheKermit",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "full"
},
{
"name": "head_f",
"directions": 4
},
{
"name": "head_m",
"directions": 4
},
{
"name": "l_arm",
"directions": 4
},
{
"name": "l_foot",
"directions": 4
},
{
"name": "l_hand",
"directions": 4
},
{
"name": "l_leg",
"directions": 4
},
{
"name": "r_arm",
"directions": 4
},
{
"name": "r_foot",
"directions": 4
},
{
"name": "r_hand",
"directions": 4
},
{
"name": "r_leg",
"directions": 4
},
{
"name": "torso_f",
"directions": 4
},
{
"name": "torso_m",
"directions": 4
},
{
"name": "eyes",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 619 B