Diona Nymphs & Splitting (#24630)
* Porting & implementation * Fix two stupid errors * Human not humans * fix audio path * Fix test fails & update cooldown * Work on reviews & test fail * Rework nymph organ system. * Make the nymph organs nospawn. * IsDeadIC
This commit is contained in:
@@ -131,4 +131,10 @@
|
||||
- files: ["dog_bark3.ogg"]
|
||||
license: "CC0-1.0"
|
||||
copyright: "Audio is recorded/created by KFerentchak 'FreeSound.org'. The original audio was trimmed and renamed"
|
||||
source: "https://freesound.org/people/KFerentchak/sounds/235912/"
|
||||
source: "https://freesound.org/people/KFerentchak/sounds/235912/"
|
||||
|
||||
- files: ["nymph_chirp.ogg"]
|
||||
license: "CC-BY-SA-3.0"
|
||||
copyright: "Taken from ParadiseSS13"
|
||||
source: "https://github.com/ParadiseSS13/Paradise/commit/a34f1054cef5a44a67fdac3b67b811137c6071dd"
|
||||
|
||||
BIN
Resources/Audio/Animals/nymph_chirp.ogg
Normal file
BIN
Resources/Audio/Animals/nymph_chirp.ogg
Normal file
Binary file not shown.
3
Resources/Locale/en-US/actions/actions/diona.ftl
Normal file
3
Resources/Locale/en-US/actions/actions/diona.ftl
Normal file
@@ -0,0 +1,3 @@
|
||||
diona-gib-action-use = {$name} splits apart in an instant!
|
||||
|
||||
diona-reform-attempt = {$name} attempts to reform!
|
||||
@@ -31,6 +31,7 @@ petting-success-bear = You reluctantly pet {THE($target)} on {POSS-ADJ($target)}
|
||||
petting-success-slimes = You pet {THE($target)} on {POSS-ADJ($target)} mucous surface.
|
||||
petting-success-snake = You pet {THE($target)} on {POSS-ADJ($target)} scaly large head.
|
||||
petting-success-monkey = You pet {THE($target)} on {POSS-ADJ($target)} mischevious little head.
|
||||
petting-success-nymph = You pet {THE($target)} on {POSS-ADJ($target)} wooden little head.
|
||||
|
||||
petting-failure-generic = You reach out to pet {THE($target)}, but {SUBJECT($target)} {CONJUGATE-BE($target)} aloof towards you.
|
||||
|
||||
@@ -51,6 +52,7 @@ petting-failure-dragon = You raise your hand, but as {THE($target)} roars, you d
|
||||
petting-failure-hamster = You reach out to pet {THE($target)}, but {SUBJECT($target)} attempts to bite your finger and only your quick reflexes save you from an almost fatal injury.
|
||||
petting-failure-bear = You reach out to pet {THE($target)}, but {SUBJECT($target)} growls, making you think twice.
|
||||
petting-failure-monkey = You reach out to pet {THE($target)}, but {SUBJECT($target)} almost bites your fingers!
|
||||
petting-failure-nymph = You reach out to pet {THE($target)}, but {POSS-ADJ($target)} moves their branches away.
|
||||
petting-failure-shadow = You're trying to pet {THE($target)}, but your hand passes through the cold darkness of his body.
|
||||
|
||||
## Petting silicons
|
||||
|
||||
21
Resources/Prototypes/Actions/diona.yml
Normal file
21
Resources/Prototypes/Actions/diona.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
- type: entity
|
||||
id: DionaGibAction
|
||||
name: Gib Yourself!
|
||||
description: Split apart into 3 nymphs.
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: InstantAction
|
||||
icon: Mobs/Species/Diona/organs.rsi/brain.png
|
||||
event: !type:GibActionEvent {}
|
||||
checkCanInteract: false
|
||||
|
||||
- type: entity
|
||||
id: DionaReformAction
|
||||
name: Reform
|
||||
description: Reform back into a whole Diona.
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: InstantAction
|
||||
icon: Mobs/Species/Diona/parts.rsi/full.png
|
||||
event: !type:ReformEvent {}
|
||||
useDelay: 300 # Once every 10 minutes. Keep them dead for a fair bit before reforming
|
||||
@@ -48,18 +48,6 @@
|
||||
reagents:
|
||||
- ReagentId: UncookedAnimalProteins
|
||||
Quantity: 5
|
||||
- type: Brain
|
||||
- type: InputMover
|
||||
- type: Examiner
|
||||
- type: Lung #lungs in they head. why they there tho?
|
||||
- type: Metabolizer
|
||||
removeEmpty: true
|
||||
solutionOnBody: false
|
||||
solution: "Lung"
|
||||
metabolizerTypes: [ Plant ]
|
||||
groups:
|
||||
- id: Gas
|
||||
rateModifier: 100.0
|
||||
|
||||
- type: entity
|
||||
id: OrganDionaEyes
|
||||
@@ -102,3 +90,104 @@
|
||||
- id: Narcotic
|
||||
- id: Alcohol
|
||||
rateModifier: 0.1
|
||||
|
||||
- type: entity
|
||||
id: OrganDionaLungs
|
||||
parent: BaseDionaOrgan
|
||||
name: lungs
|
||||
description: "Filters oxygen from an atmosphere, which is then sent into the bloodstream to be used as an electron carrier."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Mobs/Species/Human/organs.rsi
|
||||
layers:
|
||||
- state: lung-l
|
||||
- state: lung-r
|
||||
- type: Lung
|
||||
- type: Metabolizer
|
||||
removeEmpty: true
|
||||
solutionOnBody: false
|
||||
solution: "Lung"
|
||||
metabolizerTypes: [ Plant ]
|
||||
groups:
|
||||
- id: Gas
|
||||
rateModifier: 100.0
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
organ:
|
||||
maxVol: 10
|
||||
reagents:
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 10
|
||||
Lung:
|
||||
maxVol: 100
|
||||
canReact: False
|
||||
|
||||
# Organs that turn into nymphs on removal
|
||||
- type: entity
|
||||
id: OrganDionaBrainNymph
|
||||
parent: OrganDionaBrain
|
||||
noSpawn: true
|
||||
name: brain
|
||||
description: "The source of incredible, unending intelligence. Honk."
|
||||
components:
|
||||
- type: Brain
|
||||
- type: Nymph # This will make the organs turn into a nymph when they're removed.
|
||||
entityPrototype: OrganDionaNymphBrain
|
||||
transferMind: true
|
||||
|
||||
- type: entity
|
||||
id: OrganDionaStomachNymph
|
||||
parent: OrganDionaStomach
|
||||
noSpawn: true
|
||||
name: stomach
|
||||
description: "Gross. This is hard to stomach."
|
||||
components:
|
||||
- type: Nymph
|
||||
entityPrototype: OrganDionaNymphStomach
|
||||
|
||||
- type: entity
|
||||
id: OrganDionaLungsNymph
|
||||
parent: OrganDionaLungs
|
||||
noSpawn: true
|
||||
name: lungs
|
||||
description: "Filters oxygen from an atmosphere, which is then sent into the bloodstream to be used as an electron carrier."
|
||||
components:
|
||||
- type: Nymph
|
||||
entityPrototype: OrganDionaNymphLungs
|
||||
|
||||
# Nymphs that the organs will turn into
|
||||
- type: entity
|
||||
id: OrganDionaNymphBrain
|
||||
parent: MobDionaNymph
|
||||
noSpawn: true
|
||||
name: diona nymph
|
||||
suffix: Brain
|
||||
description: Contains the brain of a formerly fully-formed Diona. Killing this would kill the Diona forever. You monster.
|
||||
components:
|
||||
- type: IsDeadIC
|
||||
- type: Body
|
||||
prototype: AnimalNymphBrain
|
||||
|
||||
- type: entity
|
||||
id: OrganDionaNymphStomach
|
||||
parent: MobDionaNymph
|
||||
noSpawn: true
|
||||
name: diona nymph
|
||||
suffix: Stomach
|
||||
description: Contains the stomach of a formerly fully-formed Diona. It doesn't taste any better for it.
|
||||
components:
|
||||
- type: IsDeadIC
|
||||
- type: Body
|
||||
prototype: AnimalNymphStomach
|
||||
|
||||
- type: entity
|
||||
id: OrganDionaNymphLungs
|
||||
parent: MobDionaNymph
|
||||
noSpawn: true
|
||||
name: diona nymph
|
||||
suffix: Lungs
|
||||
description: Contains the lungs of a formerly fully-formed Diona. Breathtaking.
|
||||
components:
|
||||
- type: IsDeadIC
|
||||
- type: Body
|
||||
prototype: AnimalNymphLungs
|
||||
|
||||
66
Resources/Prototypes/Body/Prototypes/Animal/nymph.yml
Normal file
66
Resources/Prototypes/Body/Prototypes/Animal/nymph.yml
Normal file
@@ -0,0 +1,66 @@
|
||||
- type: body
|
||||
id: AnimalNymphBrain
|
||||
name: "nymph"
|
||||
root: torso
|
||||
slots:
|
||||
torso:
|
||||
part: TorsoAnimal
|
||||
connections:
|
||||
- legs
|
||||
organs:
|
||||
brain: OrganDionaBrain
|
||||
lungs: OrganAnimalLungs
|
||||
stomach: OrganAnimalStomach
|
||||
liver: OrganAnimalLiver
|
||||
heart: OrganAnimalHeart
|
||||
kidneys: OrganAnimalKidneys
|
||||
legs:
|
||||
part: LegsAnimal
|
||||
connections:
|
||||
- feet
|
||||
feet:
|
||||
part: FeetAnimal
|
||||
|
||||
- type: body
|
||||
id: AnimalNymphLungs
|
||||
name: "nymph"
|
||||
root: torso
|
||||
slots:
|
||||
torso:
|
||||
part: TorsoAnimal
|
||||
connections:
|
||||
- legs
|
||||
organs:
|
||||
lungs: OrganDionaLungs
|
||||
stomach: OrganAnimalStomach
|
||||
liver: OrganAnimalLiver
|
||||
heart: OrganAnimalHeart
|
||||
kidneys: OrganAnimalKidneys
|
||||
legs:
|
||||
part: LegsAnimal
|
||||
connections:
|
||||
- feet
|
||||
feet:
|
||||
part: FeetAnimal
|
||||
|
||||
- type: body
|
||||
id: AnimalNymphStomach
|
||||
name: "nymph"
|
||||
root: torso
|
||||
slots:
|
||||
torso:
|
||||
part: TorsoAnimal
|
||||
connections:
|
||||
- legs
|
||||
organs:
|
||||
lungs: OrganAnimalLungs
|
||||
stomach: OrganDionaStomach
|
||||
liver: OrganAnimalLiver
|
||||
heart: OrganAnimalHeart
|
||||
kidneys: OrganAnimalKidneys
|
||||
legs:
|
||||
part: LegsAnimal
|
||||
connections:
|
||||
- feet
|
||||
feet:
|
||||
part: FeetAnimal
|
||||
@@ -8,8 +8,7 @@
|
||||
connections:
|
||||
- torso
|
||||
organs:
|
||||
brain: OrganDionaBrain
|
||||
eyes: OrganDionaEyes
|
||||
brain: OrganDionaBrainNymph
|
||||
torso:
|
||||
part: TorsoDiona
|
||||
connections:
|
||||
@@ -18,7 +17,8 @@
|
||||
- right leg
|
||||
- left leg
|
||||
organs:
|
||||
stomach: OrganDionaStomach
|
||||
stomach: OrganDionaStomachNymph
|
||||
lungs: OrganDionaLungsNymph
|
||||
right arm:
|
||||
part: RightArmDiona
|
||||
connections:
|
||||
|
||||
@@ -3099,3 +3099,77 @@
|
||||
factions:
|
||||
- Passive
|
||||
|
||||
- type: entity
|
||||
name: diona nymph
|
||||
parent: SimpleMobBase
|
||||
id: MobDionaNymph
|
||||
description: It's like a cat, only.... branch-ier.
|
||||
components:
|
||||
- type: Sprite
|
||||
drawdepth: Mobs
|
||||
layers:
|
||||
- map: ["enum.DamageStateVisualLayers.Base"]
|
||||
state: nymph
|
||||
sprite: Mobs/Animals/nymph.rsi
|
||||
- type: Physics
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 0.35
|
||||
density: 100 # High, because wood is heavy.
|
||||
mask:
|
||||
- MobMask
|
||||
layer:
|
||||
- MobLayer
|
||||
- type: Inventory
|
||||
speciesId: cat
|
||||
templateId: pet
|
||||
- type: InventorySlots
|
||||
- type: Strippable
|
||||
- type: Bloodstream
|
||||
bloodReagent: Water
|
||||
bloodMaxVolume: 60
|
||||
- type: UserInterface
|
||||
interfaces:
|
||||
- key: enum.StrippingUiKey.Key
|
||||
type: StrippableBoundUserInterface
|
||||
- type: DamageStateVisuals
|
||||
states:
|
||||
Alive:
|
||||
Base: nymph
|
||||
Critical:
|
||||
Base: nymph_sleep
|
||||
Dead:
|
||||
Base: nymph_dead
|
||||
- type: Butcherable
|
||||
spawned:
|
||||
- id: MaterialWoodPlank1
|
||||
amount: 2
|
||||
- type: InteractionPopup
|
||||
successChance: 0.7
|
||||
interactSuccessString: petting-success-nymph
|
||||
interactFailureString: petting-failure-nymph
|
||||
interactSuccessSound:
|
||||
path: /Audio/Animals/nymph_chirp.ogg
|
||||
- type: MobThresholds
|
||||
thresholds:
|
||||
0: Alive
|
||||
30: Critical
|
||||
60: Dead
|
||||
- type: MovementSpeedModifier
|
||||
baseWalkSpeed : 2.5
|
||||
baseSprintSpeed : 4.5
|
||||
- type: Grammar
|
||||
attributes:
|
||||
gender: epicene
|
||||
- type: Speech
|
||||
- type: Tag
|
||||
tags:
|
||||
- VimPilot
|
||||
- type: Reform
|
||||
actionPrototype: DionaReformAction
|
||||
reformTime: 10
|
||||
popupText: diona-reform-attempt
|
||||
reformPrototype: MobDionaReformed
|
||||
|
||||
@@ -11,3 +11,13 @@
|
||||
damageRecovery:
|
||||
types:
|
||||
Asphyxiation: -1.0
|
||||
|
||||
# Reformed Diona
|
||||
- type: entity
|
||||
parent: MobDiona
|
||||
noSpawn: true
|
||||
id: MobDionaReformed
|
||||
name: Reformed Diona
|
||||
components:
|
||||
- type: IsDeadIC
|
||||
- type: RandomHumanoidAppearance
|
||||
@@ -94,6 +94,13 @@
|
||||
- type: BodyEmotes
|
||||
soundsId: DionaBodyEmotes
|
||||
- type: IgnoreKudzu
|
||||
- type: IgniteOnHeatDamage
|
||||
fireStacks: 1
|
||||
threshold: 12
|
||||
- type: GibAction
|
||||
actionPrototype: DionaGibAction
|
||||
allowedStates:
|
||||
- Dead
|
||||
|
||||
- type: entity
|
||||
parent: BaseSpeciesDummy
|
||||
|
||||
BIN
Resources/Textures/Mobs/Animals/nymph.rsi/icon.png
Normal file
BIN
Resources/Textures/Mobs/Animals/nymph.rsi/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 611 B |
63
Resources/Textures/Mobs/Animals/nymph.rsi/meta.json
Normal file
63
Resources/Textures/Mobs/Animals/nymph.rsi/meta.json
Normal file
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "https://github.com/ParadiseSS13/Paradise/commit/f367d7de199969a5fb5054de44faa5618092f487",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "nymph",
|
||||
"directions": 4,
|
||||
"delays": [
|
||||
[
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1
|
||||
],
|
||||
[
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1
|
||||
],
|
||||
[
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1
|
||||
],
|
||||
[
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "nymph_dead"
|
||||
},
|
||||
{
|
||||
"name": "nymph_sleep",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "icon"
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
Resources/Textures/Mobs/Animals/nymph.rsi/nymph.png
Normal file
BIN
Resources/Textures/Mobs/Animals/nymph.rsi/nymph.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.8 KiB |
BIN
Resources/Textures/Mobs/Animals/nymph.rsi/nymph_dead.png
Normal file
BIN
Resources/Textures/Mobs/Animals/nymph.rsi/nymph_dead.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 655 B |
BIN
Resources/Textures/Mobs/Animals/nymph.rsi/nymph_sleep.png
Normal file
BIN
Resources/Textures/Mobs/Animals/nymph.rsi/nymph_sleep.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
Reference in New Issue
Block a user