From 692d9fb9f9bbb0264f76818e443e9ae43ef210c1 Mon Sep 17 00:00:00 2001 From: Dvir Date: Fri, 11 Aug 2023 17:14:04 +0300 Subject: [PATCH 1/3] Emotional Support Animals --- .../_NF/ghost/roles/ghost-role-component.ftl | 2 + .../catalog/cargo/cargo-livestock.ftl | 2 + .../catalog/fills/crates/livestock-crates.ftl | 2 + .../Prototypes/Entities/Mobs/NPCs/animals.yml | 15 ++ .../_NF/Catalog/Cargo/cargo_livestock.yml | 9 + .../_NF/Catalog/Fills/Crates/npc.yml | 27 +++ .../Mobs/NPCs/emotionalsupportanimals.yml | 191 ++++++++++++++++++ .../Random/emotionalsupportanimals.yml | 24 +++ 8 files changed, 272 insertions(+) create mode 100644 Resources/Locale/en-US/_NF/ghost/roles/ghost-role-component.ftl create mode 100644 Resources/Locale/en-US/_NF/prototypes/catalog/cargo/cargo-livestock.ftl create mode 100644 Resources/Locale/en-US/_NF/prototypes/catalog/fills/crates/livestock-crates.ftl create mode 100644 Resources/Prototypes/_NF/Catalog/Cargo/cargo_livestock.yml create mode 100644 Resources/Prototypes/_NF/Catalog/Fills/Crates/npc.yml create mode 100644 Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml create mode 100644 Resources/Prototypes/_NF/Markers/Spawners/Random/emotionalsupportanimals.yml diff --git a/Resources/Locale/en-US/_NF/ghost/roles/ghost-role-component.ftl b/Resources/Locale/en-US/_NF/ghost/roles/ghost-role-component.ftl new file mode 100644 index 00000000000..3778460b564 --- /dev/null +++ b/Resources/Locale/en-US/_NF/ghost/roles/ghost-role-component.ftl @@ -0,0 +1,2 @@ +ghost-role-information-emotional-support-name = Emotional support pet +ghost-role-information-emotional-support-description = You're an emotional support pet! Loyal to your owner, make sure to cheer them up! diff --git a/Resources/Locale/en-US/_NF/prototypes/catalog/cargo/cargo-livestock.ftl b/Resources/Locale/en-US/_NF/prototypes/catalog/cargo/cargo-livestock.ftl new file mode 100644 index 00000000000..e9808e9575a --- /dev/null +++ b/Resources/Locale/en-US/_NF/prototypes/catalog/cargo/cargo-livestock.ftl @@ -0,0 +1,2 @@ +ent-LivestockEmotionalSupport = { ent-CrateNPCEmotionalSupport } + .desc = { ent-CrateNPCEmotionalSupport.desc } \ No newline at end of file diff --git a/Resources/Locale/en-US/_NF/prototypes/catalog/fills/crates/livestock-crates.ftl b/Resources/Locale/en-US/_NF/prototypes/catalog/fills/crates/livestock-crates.ftl new file mode 100644 index 00000000000..1449cf9dcdb --- /dev/null +++ b/Resources/Locale/en-US/_NF/prototypes/catalog/fills/crates/livestock-crates.ftl @@ -0,0 +1,2 @@ +ent-CrateNPCEmotionalSupport = Emotional support pet crate + .desc = A crate containing a single emotional support pet. diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 4290a95599c..fc60548fce4 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -2020,6 +2020,21 @@ interactFailureString: petting-failure-generic interactSuccessSound: path: /Audio/Animals/cat_meow.ogg + - type: Barotrauma + damage: + types: + Blunt: 0.0 #per second, scales with pressure and other constants. + - type: Temperature + heatDamageThreshold: 360 + coldDamageThreshold: 0 + currentTemperature: 310.15 + coldDamage: + types: + Cold : 0.1 #per second, scales with temperature & other constants + specificHeat: 42 + heatDamage: + types: + Heat : 0.1 #per second, scales with temperature & other constants - type: entity name: caracal cat diff --git a/Resources/Prototypes/_NF/Catalog/Cargo/cargo_livestock.yml b/Resources/Prototypes/_NF/Catalog/Cargo/cargo_livestock.yml new file mode 100644 index 00000000000..b0488cad7be --- /dev/null +++ b/Resources/Prototypes/_NF/Catalog/Cargo/cargo_livestock.yml @@ -0,0 +1,9 @@ +- type: cargoProduct + id: LivestockEmotionalSupport + icon: + sprite: Mobs/Pets/cat.rsi + state: cat + product: CrateNPCEmotionalSupport + cost: 10000 + category: Livestock + group: market \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Catalog/Fills/Crates/npc.yml b/Resources/Prototypes/_NF/Catalog/Fills/Crates/npc.yml new file mode 100644 index 00000000000..3ce83244347 --- /dev/null +++ b/Resources/Prototypes/_NF/Catalog/Fills/Crates/npc.yml @@ -0,0 +1,27 @@ +- type: entity + id: CrateNPCEmotionalSupport + parent: CrateLivestock + components: + - type: StorageFill + contents: + - id: MobCatGhost + prob: 1 + orGroup: MobCatGhost + - id: MobCatCalicoGhost + prob: 1 + orGroup: MobCatGhost + - id: MobCatCaracalGhost + prob: 0.15 + orGroup: MobCatGhost + - id: MobBingusGhost + prob: 0.15 + orGroup: MobCatGhost + - id: MobCatSpaceGhost + prob: 0.15 + orGroup: MobCatGhost + - id: MobCorgiGhost + prob: 1 + orGroup: MobCatGhost + - id: MobCorgiPuppyGhost + prob: 0.15 + orGroup: MobCatGhost \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml new file mode 100644 index 00000000000..3eab22f56cf --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml @@ -0,0 +1,191 @@ +- type: entity + name: cat + suffix: Ghost + parent: MobCat + id: MobCatGhost + description: Feline pet, very funny. + components: + - type: GhostRole + name: ghost-role-information-emotional-support-name + description: ghost-role-information-emotional-support-description + makeSentient: true + allowSpeech: true + allowMovement: true + - type: GhostTakeoverAvailable + - type: CombatMode + combatToggleAction: + enabled: false + autoPopulate: false + name: action-name-combat + - type: ReplacementAccent + accent: cat + - type: Grammar + attributes: + gender: epicene + - type: Tag + tags: + - CannotSuicide + - DoorBumpOpener + +- type: entity + name: calico cat + suffix: Ghost + id: MobCatCalicoGhost + parent: MobCatGhost + description: Feline pet, very funny. + components: + - type: Sprite + layers: + - map: ["enum.DamageStateVisualLayers.Base"] + state: cat2 + - type: DamageStateVisuals + states: + Alive: + Base: cat2 + Dead: + Base: cat2_dead + +- type: entity + name: caracal cat + suffix: Ghost + id: MobCatCaracalGhost + parent: MobCatGhost + description: Hilarious. + components: + - type: Sprite + sprite: Mobs/Pets/caracal.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base"] + state: caracal_flop + - type: DamageStateVisuals + states: + Alive: + Base: caracal_flop + Dead: + Base: caracal_dead + +- type: entity + name: space cat + suffix: Ghost + parent: MobCatGhost + id: MobCatSpaceGhost + description: Feline pet, prepared for the worst. + components: + - type: Sprite + layers: + - map: ["enum.DamageStateVisualLayers.Base"] + state: spacecat + - type: DamageStateVisuals + states: + Alive: + Base: spacecat + Dead: + Base: spacecat_dead + - type: InteractionPopup + successChance: 0.7 + interactSuccessString: petting-success-space-cat + interactFailureString: petting-failure-generic + interactSuccessSound: + path: /Audio/Animals/cat_meow.ogg + - type: Barotrauma + damage: + types: + Blunt: 0.0 #per second, scales with pressure and other constants. + - type: Temperature + heatDamageThreshold: 360 + coldDamageThreshold: 0 + currentTemperature: 310.15 + coldDamage: + types: + Cold : 0.1 #per second, scales with temperature & other constants + specificHeat: 42 + heatDamage: + types: + Heat : 0.1 #per second, scales with temperature & other constants + +- type: entity + name: bingus + suffix: Ghost + parent: MobBingus + id: MobBingusGhost + description: Bingus my beloved... + components: + - type: GhostRole + name: ghost-role-information-emotional-support-name + description: ghost-role-information-emotional-support-description + makeSentient: true + allowSpeech: true + allowMovement: true + - type: GhostTakeoverAvailable + - type: CombatMode + combatToggleAction: + enabled: false + autoPopulate: false + name: action-name-combat + - type: ReplacementAccent + accent: cat + - type: Grammar + attributes: + gender: epicene + - type: Tag + tags: + - CannotSuicide + - DoorBumpOpener + +- type: entity + name: corgi + suffix: Ghost + parent: MobCorgi + id: MobCorgiGhost + description: Finally, a space corgi! + components: + - type: GhostRole + name: ghost-role-information-emotional-support-name + description: ghost-role-information-emotional-support-description + makeSentient: true + allowSpeech: true + allowMovement: true + - type: GhostTakeoverAvailable + - type: CombatMode + combatToggleAction: + enabled: false + autoPopulate: false + name: action-name-combat + - type: ReplacementAccent + accent: dog + - type: Grammar + attributes: + gender: epicene + - type: Tag + tags: + - CannotSuicide + - DoorBumpOpener + +- type: entity + name: corgi puppy + suffix: Ghost + parent: MobCorgiGhost + id: MobCorgiPuppyGhost + description: A little corgi! Aww... + components: + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Pets/corgi.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base"] + state: puppy + - type: Inventory + speciesId: puppy + templateId: pet + - type: InventorySlots + - type: DamageStateVisuals + states: + Alive: + Base: puppy + Dead: + Base: puppy_dead + - type: ReplacementAccent + accent: dog + - type: Grammar + attributes: + gender: epicene diff --git a/Resources/Prototypes/_NF/Markers/Spawners/Random/emotionalsupportanimals.yml b/Resources/Prototypes/_NF/Markers/Spawners/Random/emotionalsupportanimals.yml new file mode 100644 index 00000000000..20f282ca07a --- /dev/null +++ b/Resources/Prototypes/_NF/Markers/Spawners/Random/emotionalsupportanimals.yml @@ -0,0 +1,24 @@ +- type: entity + name: Random Animal Spawner + suffix: Emotional Support + parent: MarkerBase + id: RandomAnimalSpawnerEmotionalSupport + components: + - type: Sprite + layers: + - state: red + - sprite: Mobs/Animals/chicken.rsi + state: icon-1 + - type: RandomSpawner + offset: 0 + prototypes: + - MobCatGhost + - MobCatCalicoGhost + - MobCatCaracalGhost + - MobCorgiGhost + chance: 1 + rarePrototypes: + - MobBingusGhost + - MobCatSpaceGhost + - MobCorgiPuppyGhost + rareChance: 0.15 From d2d0769fa4768928678d4a74fa4715a36a019211 Mon Sep 17 00:00:00 2001 From: Dvir Date: Fri, 11 Aug 2023 21:23:02 +0300 Subject: [PATCH 2/3] Chicken added --- .../_NF/Catalog/Fills/Crates/npc.yml | 3 ++ .../Mobs/NPCs/emotionalsupportanimals.yml | 29 +++++++++++++++++++ .../Random/emotionalsupportanimals.yml | 1 + 3 files changed, 33 insertions(+) diff --git a/Resources/Prototypes/_NF/Catalog/Fills/Crates/npc.yml b/Resources/Prototypes/_NF/Catalog/Fills/Crates/npc.yml index 3ce83244347..861dc74b49d 100644 --- a/Resources/Prototypes/_NF/Catalog/Fills/Crates/npc.yml +++ b/Resources/Prototypes/_NF/Catalog/Fills/Crates/npc.yml @@ -23,5 +23,8 @@ prob: 1 orGroup: MobCatGhost - id: MobCorgiPuppyGhost + prob: 0.15 + orGroup: MobCatGhost + - id: MobChickenGhost prob: 0.15 orGroup: MobCatGhost \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml index 3eab22f56cf..3d406ff138c 100644 --- a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml +++ b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml @@ -189,3 +189,32 @@ - type: Grammar attributes: gender: epicene + +- type: entity + name: chicken + suffix: Ghost + parent: MobChicken + id: MobChickenGhost + description: Comes before an egg, and IS a dinosaur! + components: + - type: GhostRole + name: ghost-role-information-emotional-support-name + description: ghost-role-information-emotional-support-description + makeSentient: true + allowSpeech: true + allowMovement: true + - type: GhostTakeoverAvailable + - type: CombatMode + combatToggleAction: + enabled: false + autoPopulate: false + name: action-name-combat + - type: ReplacementAccent + accent: chicken + - type: Grammar + attributes: + gender: epicene + - type: Tag + tags: + - CannotSuicide + - DoorBumpOpener \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Markers/Spawners/Random/emotionalsupportanimals.yml b/Resources/Prototypes/_NF/Markers/Spawners/Random/emotionalsupportanimals.yml index 20f282ca07a..95709c7fc5a 100644 --- a/Resources/Prototypes/_NF/Markers/Spawners/Random/emotionalsupportanimals.yml +++ b/Resources/Prototypes/_NF/Markers/Spawners/Random/emotionalsupportanimals.yml @@ -21,4 +21,5 @@ - MobBingusGhost - MobCatSpaceGhost - MobCorgiPuppyGhost + - MobChickenGhost rareChance: 0.15 From 917f021ff58dd0866322c5e0e3e36623ee144bcf Mon Sep 17 00:00:00 2001 From: Dvir Date: Fri, 11 Aug 2023 22:05:46 +0300 Subject: [PATCH 3/3] Added screams --- .../Mobs/NPCs/emotionalsupportanimals.yml | 29 +++++++++++++++---- .../_NF/Voice/speech_emote_sounds.yml | 23 ++++++++++++++- 2 files changed, 46 insertions(+), 6 deletions(-) diff --git a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml index 3d406ff138c..0e0aa42e227 100644 --- a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml +++ b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/emotionalsupportanimals.yml @@ -22,6 +22,12 @@ - type: Grammar attributes: gender: epicene + - type: Vocal + sounds: + Male: Cat + Female: Cat + Unsexed: Cat + wilhelmProbability: 0.001 - type: Tag tags: - CannotSuicide @@ -127,6 +133,12 @@ - type: Grammar attributes: gender: epicene + - type: Vocal + sounds: + Male: Cat + Female: Cat + Unsexed: Cat + wilhelmProbability: 0.001 - type: Tag tags: - CannotSuicide @@ -156,6 +168,12 @@ - type: Grammar attributes: gender: epicene + - type: Vocal + sounds: + Male: Dog + Female: Dog + Unsexed: Dog + wilhelmProbability: 0.001 - type: Tag tags: - CannotSuicide @@ -184,11 +202,6 @@ Base: puppy Dead: Base: puppy_dead - - type: ReplacementAccent - accent: dog - - type: Grammar - attributes: - gender: epicene - type: entity name: chicken @@ -214,6 +227,12 @@ - type: Grammar attributes: gender: epicene + - type: Vocal + sounds: + Male: Chicken + Female: Chicken + Unsexed: Chicken + wilhelmProbability: 0.001 - type: Tag tags: - CannotSuicide diff --git a/Resources/Prototypes/_NF/Voice/speech_emote_sounds.yml b/Resources/Prototypes/_NF/Voice/speech_emote_sounds.yml index 418bef7ece3..cf48d7f4c66 100644 --- a/Resources/Prototypes/_NF/Voice/speech_emote_sounds.yml +++ b/Resources/Prototypes/_NF/Voice/speech_emote_sounds.yml @@ -56,4 +56,25 @@ Scream: path: /Audio/Voice/Moth/scream_moth.ogg Laugh: - path: /Audio/Voice/Moth/laugh_moth.ogg \ No newline at end of file + path: /Audio/Voice/Moth/laugh_moth.ogg + +- type: emoteSounds + id: Cat + sound: + path: /Audio/Animals/cat_meow.ogg + params: + variation: 0.125 + +- type: emoteSounds + id: Dog + sound: + path: /Audio/Animals/small_dog_bark_happy.ogg + params: + variation: 0.125 + +- type: emoteSounds + id: Chicken + sound: + path: /Audio/Animals/chicken_cluck_happy.ogg + params: + variation: 0.125