Adds Silvia the snake, a pet for CMO (#1488)

* Adds Silvia the snake, a pet for CMO

* yeet extra line

* tweaks to attack rate and butcher products

* fix copy/paste typo

* Add Silvia meat

---------

Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
This commit is contained in:
Velcroboy
2024-07-30 12:55:45 -05:00
committed by GitHub
co-authored by Velcroboy
parent 889a25a303
commit 0d4d9cc292
11 changed files with 208 additions and 2 deletions
@@ -22,3 +22,7 @@ ghost-role-information-recruiter-rules =
Set up shop in maints or use your ship as a portable hiring office!
You are just a recruiter so do not act like a full-on antagonist, i.e. no killing people.
ghost-role-information-silvia-name = Silvia
ghost-role-information-silvia-description = You are Silvia the space snake and the CMO's charming companion.
ghost-role-information-silvia-rules = Keep the medical team company and help out in emergencies with your omnizine venom. Stick close to the CMO in case they need emergency healing.
@@ -64,3 +64,17 @@
- type: ConditionalSpawner
prototypes:
- MobCarpLegal
- type: entity
name: Silvia Spawner
id: SpawnMobCMOPetSilvia
parent: MarkerBase
components:
- type: Sprite
layers:
- state: green
- state: silvia
sprite: DeltaV/Mobs/Pets/silvia.rsi
- type: ConditionalSpawner
prototypes:
- MobCobraSilvia
@@ -78,3 +78,130 @@
department: Justice
time: 3600 # 1 hours
- type: GhostTakeoverAvailable
- type: entity
name: Silvia
id: MobCobraSilvia
parent: MobSpaceBasic
description: With needle-sharp fangs and an alluring gaze, will you let her bite you?
components:
- type: HTN
rootTask:
task: IdleCompound
- type: Sprite
drawdepth: Mobs
sprite: DeltaV/Mobs/Pets/silvia.rsi
layers:
- map: [ "enum.DamageStateVisualLayers.Base" ]
state: silvia
- map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ]
state: glow
shader: unshaded
- type: FootstepModifier
footstepSoundCollection:
collection: FootstepSnake
- type: MobThresholds
thresholds:
0: Alive
125: Dead
- type: DamageStateVisuals
states:
Alive:
Base: silvia
BaseUnshaded: glow
Dead:
Base: dead_silvia
- type: Butcherable
spawned:
- id: FoodMeatSnakeSilvia
maxAmount: 3
- id: ClothingShoesSnakeskinBoots #different version? wysi
amount: 1
prob: 0.2
- type: Bloodstream
bloodMaxVolume: 200
bloodReagent: Cryoxadone
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeCircle
radius: 0.40
density: 120
mask:
- MobMask
layer:
- MobLayer
- type: MeleeWeapon
attackRate: 1.75 #faster attack rate to compensate for healing in self defense situations
hidden: true
soundHit:
path: /Audio/Effects/bite.ogg
angle: 0
animation: WeaponArcBite
damage:
types:
Piercing: 6 #take dmg to heal dmg
- type: SolutionContainerManager
solutions:
melee:
maxVol: 30
reagents:
- ReagentId: Omnizine
Quantity: 30 #5 bites to heal 90hp/1 min
- type: MeleeChemicalInjector
solution: melee
transferAmount: 6 #heals 24 burn/brute/air/toxin in 12seconds/minus 6 brute per bite
- type: SolutionRegeneration
solution: melee
duration: 30 #regen 1u every 30 seconds. 15 mins to full
generated:
reagents:
- ReagentId: Omnizine
Quantity: 1
- type: ReplacementAccent
accent: xeno #Add cool snake accent later. wyci
- type: PointLight
radius: 1.1
energy: 0.25
color: "#00ff80"
- type: Stealth
enabledOnDeath: false
maxVisibility: 1.2
- type: StealthOnMove
passiveVisibilityRate: -0.15
movementVisibilityRate: 0.30
- type: GhostRole
makeSentient: true
allowSpeech: true
allowMovement: true
name: ghost-role-information-silvia-name
description: ghost-role-information-silvia-description
rules: ghost-role-information-silvia-rules
requirements: #No raiders
- !type:DepartmentTimeRequirement
department: Medical
time: 14400 #4 hours
- type: GhostTakeoverAvailable
- type: InteractionPopup
successChance: 0.65
interactSuccessString: petting-success-snake
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/snake_hiss.ogg
- type: NpcFactionMember
factions:
- PetsNT
- type: Grammar
attributes:
proper: true
gender: female
- type: Tag
tags:
- CannotSuicide
- VimPilot
- DoorBumpOpener
- FootstepSound
- type: StealTarget
stealGroup: AnimalSilvia
@@ -0,0 +1,12 @@
- type: entity
parent: FoodMeatSnake
id: FoodMeatSnakeSilvia
components:
- type: SolutionContainerManager
solutions:
food:
reagents:
- ReagentId: UncookedAnimalProteins
Quantity: 8
- ReagentId: Omnizine
Quantity: 8
@@ -26,4 +26,9 @@
sprite: DeltaV/Objects/Misc/stamps.rsi
state: stamp-notary
- type: stealTargetGroup
id: AnimalSilvia
name: Silvia
sprite:
sprite: DeltaV/Mobs/Pets/silvia.rsi
state: silvia
@@ -41,4 +41,13 @@
stealGroup: RubberStampNotary
owner: job-name-clerk
- type: entity
abstract: true
parent: BaseTraitorStealObjective
id: SilviaStealObjective
components:
- type: NotJobRequirement
job: ChiefMedicalOfficer
- type: StealCondition
stealGroup: AnimalSilvia
owner: job-name-cmo
@@ -120,6 +120,7 @@
RenaultStealObjective: 1
ShivaStealObjective: 1
TropicoStealObjective: 1
SilviaStealObjective: 1 #DeltaV - CMO steal objective, see Resources/Prototypes/DeltaV/Objectives/traitor.yml
- type: weightedRandom
id: ThiefObjectiveGroupEscape
Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

@@ -0,0 +1,34 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Sprited by Nimfar11 (Github) for Space Station 14, re-shaded by Velcroboy for Delta V ",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "silvia",
"directions": 4,
"delays": [
[0.3,0.2,0.2,0.4,0.2,0.2,0.3],
[0.3,0.2,0.2,0.4,0.2,0.2,0.3],
[0.3,0.2,0.2,0.4,0.2,0.2,0.3],
[0.3,0.2,0.2,0.4,0.2,0.2,0.3]
]
},
{
"name": "glow",
"directions": 4,
"delays": [
[0.3,0.2,0.2,0.4,0.2,0.2,0.3],
[0.3,0.2,0.2,0.4,0.2,0.2,0.3],
[0.3,0.2,0.2,0.4,0.2,0.2,0.3],
[0.3,0.2,0.2,0.4,0.2,0.2,0.3]
]
},
{
"name": "dead_silvia"
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB