From ce208a18cd1d1f45ac3e20e4454c7255949a575f Mon Sep 17 00:00:00 2001 From: Nim <128169402+Nimfar11@users.noreply.github.com> Date: Sat, 13 May 2023 17:51:02 +0300 Subject: [PATCH] Pet slime for RND (#15980) --- .../events/random-sentience.ftl | 1 + Resources/Prototypes/Damage/modifier_sets.yml | 12 +++ .../Entities/Markers/Spawners/mobs.yml | 13 +++ .../Prototypes/Entities/Mobs/NPCs/pets.yml | 75 ++++++++++++++++++ .../Prototypes/Entities/Mobs/NPCs/slimes.yml | 19 ++++- .../Entities/Objects/Consumable/Food/meat.yml | 32 ++++++++ .../Mobs/Aliens/slimes.rsi/aslime-_3.png | Bin 0 -> 272 bytes .../Textures/Mobs/Aliens/slimes.rsi/meta.json | 67 ++++++++++++++++ .../Aliens/slimes.rsi/rainbow_baby_slime.png | Bin 0 -> 10153 bytes .../slimes.rsi/rainbow_baby_slime_dead.png | Bin 0 -> 4028 bytes .../slimes.rsi/rainbow_slime_extract.png | Bin 0 -> 3356 bytes 11 files changed, 215 insertions(+), 4 deletions(-) create mode 100644 Resources/Textures/Mobs/Aliens/slimes.rsi/aslime-_3.png create mode 100644 Resources/Textures/Mobs/Aliens/slimes.rsi/rainbow_baby_slime.png create mode 100644 Resources/Textures/Mobs/Aliens/slimes.rsi/rainbow_baby_slime_dead.png create mode 100644 Resources/Textures/Mobs/Aliens/slimes.rsi/rainbow_slime_extract.png diff --git a/Resources/Locale/en-US/station-events/events/random-sentience.ftl b/Resources/Locale/en-US/station-events/events/random-sentience.ftl index 515ea22f0d..1dbc18ef61 100644 --- a/Resources/Locale/en-US/station-events/events/random-sentience.ftl +++ b/Resources/Locale/en-US/station-events/events/random-sentience.ftl @@ -34,3 +34,4 @@ station-event-random-sentience-flavor-mechanical = mechanical station-event-random-sentience-flavor-organic = organic station-event-random-sentience-flavor-corgi = corgi station-event-random-sentience-flavor-primate = primate +station-event-random-sentience-flavor-slime = slime diff --git a/Resources/Prototypes/Damage/modifier_sets.yml b/Resources/Prototypes/Damage/modifier_sets.yml index 5e3ff41fdc..3d73235b8f 100644 --- a/Resources/Prototypes/Damage/modifier_sets.yml +++ b/Resources/Prototypes/Damage/modifier_sets.yml @@ -173,6 +173,18 @@ Cellular: 0.0 Caustic: 0.0 +- type: damageModifierSet + id: SlimePet # Very survivable slimes + coefficients: + Blunt: 0.5 + Slash: 0.8 + Piercing: 0.8 + Cold: 1.0 + Poison: 0.2 + Cellular: 0.0 + Radiation: 0.2 + Caustic: 0.0 + # Represents what a riot shield should block passively # Each shield will probably have their own passive and active modifier sets # Honestly it should not be too high diff --git a/Resources/Prototypes/Entities/Markers/Spawners/mobs.yml b/Resources/Prototypes/Entities/Markers/Spawners/mobs.yml index 02dbc4e705..224aa528fa 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/mobs.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/mobs.yml @@ -436,6 +436,19 @@ prototypes: - MobAdultSlimesYellowAngry +- type: entity + name: Smile Spawner + id: SpawnMobSmile + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - state: ai + - type: ConditionalSpawner + prototypes: + - MobSlimesPet + - type: entity name: Pun Pun Spawner id: SpawnMobMonkeyPunpun diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml index d4bb45dbe5..2e24a8ec2c 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml @@ -582,6 +582,81 @@ - type: Loadout prototypes: [ BoxingKangarooGear ] +- type: entity + name: Smile + id: MobSlimesPet + parent: MobAdultSlimes + description: This masterpiece has gone through thousands of experiments. But it is the sweetest creature in the world. Smile Slime! + components: + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Aliens/slimes.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: rainbow_baby_slime + - map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ] + state: aslime-_3 + shader: unshaded + - type: MobThresholds + thresholds: + 0: Alive + 200: Dead + - type: FootstepModifier + footstepSoundCollection: + path: /Audio/Effects/Footsteps/slime1.ogg + params: + volume: -6 + - type: Tag + tags: + - FootstepSound + - DoorBumpOpener + - CannotSuicide + - type: DamageStateVisuals + states: + Alive: + Base: rainbow_baby_slime + BaseUnshaded: aslime-_3 + Dead: + Base: rainbow_baby_slime_dead + - type: Butcherable + butcheringType: Knife + spawned: + - id: FoodMeatSlime + amount: 1 + - id: MaterialSmileExtract + amount: 1 + - type: Damageable + damageContainer: Biological + damageModifierSet: SlimePet + - type: Bloodstream + bloodMaxVolume: 150 + bloodReagent: Slime + bloodlossDamage: + types: + Bloodloss: + 1 + bloodlossHealDamage: + types: + Bloodloss: + -0.8 + - type: Temperature + heatDamageThreshold: 800 + coldDamageThreshold: 0 + - type: MeleeWeapon + hidden: true + soundHit: + path: /Audio/Weapons/punch3.ogg + angle: 0 + animation: WeaponArcPunch + damage: + types: + Blunt: 1 + Caustic: 1 + - type: SentienceTarget + flavorKind: station-event-random-sentience-flavor-slime + - type: MobPrice + price: 3000 # it is a truly valuable creature + - type: entity name: Pun Pun parent: MobMonkey diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml index cee3826563..3f377312e7 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml @@ -112,10 +112,6 @@ interactFailureString: petting-failure-generic - type: ReplacementAccent accent: slimes - - type: GhostRole - makeSentient: true - name: ghost-role-information-slimes-name - description: ghost-role-information-slimes-description - type: GhostTakeoverAvailable - type: entity @@ -131,6 +127,7 @@ Base: blue_adult_slime_dead - type: GhostRole makeSentient: true + name: ghost-role-information-slimes-name description: ghost-role-information-slimes-description - type: entity @@ -148,6 +145,10 @@ Base: blue_adult_slime Dead: Base: blue_adult_slime_dead + - type: GhostRole + makeSentient: true + name: ghost-role-information-slimes-name + description: ghost-role-information-angry-slimes-description - type: entity name: green slime @@ -173,6 +174,7 @@ Poison: 4 - type: GhostRole makeSentient: true + name: ghost-role-information-slimes-name description: ghost-role-information-slimes-description - type: entity @@ -201,6 +203,10 @@ Structural: 4 Caustic: 1 Poison: 4 + - type: GhostRole + makeSentient: true + name: ghost-role-information-slimes-name + description: ghost-role-information-angry-slimes-description - type: entity name: yellow slime @@ -226,6 +232,7 @@ Cellular: 3 - type: GhostRole makeSentient: true + name: ghost-role-information-slimes-name description: ghost-role-information-slimes-description - type: entity @@ -254,3 +261,7 @@ Structural: 4 Caustic: 1 Cellular: 3 + - type: GhostRole + makeSentient: true + name: ghost-role-information-slimes-name + description: ghost-role-information-angry-slimes-description diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/meat.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/meat.yml index 61f3e2c292..5df2eb75f0 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/meat.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/meat.yml @@ -550,6 +550,38 @@ # Cooked +- type: entity + parent: BaseItem + id: MaterialSmileExtract + name: extract smile + description: It's a real panacea. But at what cost? + components: + - type: Food + - type: Extractable + grindableSolutionName: food + - type: FlavorProfile + flavors: + - sweet + - type: Sprite + sprite: Mobs/Aliens/slimes.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: rainbow_slime_extract + - type: SolutionContainerManager + solutions: + food: + reagents: + - ReagentId: Omnizine + Quantity: 30 + - ReagentId: Nutriment + Quantity: 10 + - ReagentId: Iron + Quantity: 10 + - type: Item + size: 5 + - type: StaticPrice + price: 3000 #It has so much Omnizin in it + - type: entity name: steak parent: FoodMeatBase diff --git a/Resources/Textures/Mobs/Aliens/slimes.rsi/aslime-_3.png b/Resources/Textures/Mobs/Aliens/slimes.rsi/aslime-_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c5667beba53358eedaeed50d25e2f126bfdd83f6 GIT binary patch literal 272 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 pTrKQIDeHoI$mISXZ9HJ|WuMgxYc;-m+rTv4 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 L5oR?e=-7V&h@~VL literal 0 HcmV?d00001 -- 2.51.2