From 375ca1e22b76743c901290e722f702eb9a4c9ff1 Mon Sep 17 00:00:00 2001 From: brainfood1183 <113240905+brainfood1183@users.noreply.github.com> Date: Tue, 6 Dec 2022 23:28:05 +0000 Subject: [PATCH] Hamster Pet (GhostRoleMob) (#12813) --- .../ghost/roles/ghost-role-component.ftl | 8 +- .../interaction-popup-component.ftl | 2 + .../Catalog/Cargo/cargo_livestock.yml | 10 ++ .../Prototypes/Catalog/Fills/Crates/npc.yml | 16 +++ .../Entities/Markers/Spawners/mobs.yml | 14 +++ .../Prototypes/Entities/Mobs/NPCs/animals.yml | 114 ++++++++++++++++++ .../Prototypes/Entities/Mobs/NPCs/pets.yml | 26 ++++ .../Structures/Storage/Crates/crates.yml | 42 +++++++ .../Animals/hamster.rsi/0-inhand-left.png | Bin 0 -> 15202 bytes .../Animals/hamster.rsi/0-inhand-right.png | Bin 0 -> 15185 bytes .../Mobs/Animals/hamster.rsi/dead-0.png | Bin 0 -> 15530 bytes .../Mobs/Animals/hamster.rsi/hamster-0.png | Bin 0 -> 17309 bytes .../Mobs/Animals/hamster.rsi/icon-0.png | Bin 0 -> 18686 bytes .../Mobs/Animals/hamster.rsi/meta.json | 54 +++++++++ .../Mobs/Animals/hamster.rsi/splat-0.png | Bin 0 -> 15658 bytes .../Storage/Crates/cage.rsi/base.png | Bin 0 -> 20212 bytes .../Storage/Crates/cage.rsi/closed.png | Bin 0 -> 20375 bytes .../Storage/Crates/cage.rsi/icon.png | Bin 0 -> 19889 bytes .../Storage/Crates/cage.rsi/meta.json | 23 ++++ .../Storage/Crates/cage.rsi/open.png | Bin 0 -> 19869 bytes 20 files changed, 308 insertions(+), 1 deletion(-) create mode 100644 Resources/Textures/Mobs/Animals/hamster.rsi/0-inhand-left.png create mode 100644 Resources/Textures/Mobs/Animals/hamster.rsi/0-inhand-right.png create mode 100644 Resources/Textures/Mobs/Animals/hamster.rsi/dead-0.png create mode 100644 Resources/Textures/Mobs/Animals/hamster.rsi/hamster-0.png create mode 100644 Resources/Textures/Mobs/Animals/hamster.rsi/icon-0.png create mode 100644 Resources/Textures/Mobs/Animals/hamster.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/hamster.rsi/splat-0.png create mode 100644 Resources/Textures/Structures/Storage/Crates/cage.rsi/base.png create mode 100644 Resources/Textures/Structures/Storage/Crates/cage.rsi/closed.png create mode 100644 Resources/Textures/Structures/Storage/Crates/cage.rsi/icon.png create mode 100644 Resources/Textures/Structures/Storage/Crates/cage.rsi/meta.json create mode 100644 Resources/Textures/Structures/Storage/Crates/cage.rsi/open.png diff --git a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl index b15222c5bd..9466d91c5e 100644 --- a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl @@ -9,4 +9,10 @@ ghost-role-information-mouse-description = A hungry and mischievous mouse. ghost-role-information-giant-spider-name = Giant spider ghost-role-information-giant-spider-description = Wreak havoc on the station's inhabitants! -ghost-role-information-cognizine-description = Made conscious with the magic of cognizine. \ No newline at end of file +ghost-role-information-cognizine-description = Made conscious with the magic of cognizine. + +ghost-role-information-hamster-name = Hamster +ghost-role-information-hamster-description = A grumpy little ball of fluff. + +ghost-role-information-hamlet-name = Hamlet the hamster. +ghost-role-information-hamlet-description = Lives in the station bridge, has a bit of a temper and is always hungry. \ No newline at end of file diff --git a/Resources/Locale/en-US/interaction/interaction-popup-component.ftl b/Resources/Locale/en-US/interaction/interaction-popup-component.ftl index c0e0f12849..0e007569f1 100644 --- a/Resources/Locale/en-US/interaction/interaction-popup-component.ftl +++ b/Resources/Locale/en-US/interaction/interaction-popup-component.ftl @@ -20,6 +20,7 @@ petting-success-space-cat = You pet {THE($target)} on {POSS-ADJ($target)} glass petting-success-tarantula = You pet {THE($target)} on {POSS-ADJ($target)} hairy little head. petting-success-holo = You pet {THE($target)} on {POSS-ADJ($target)} metallic spiky head. petting-success-dragon = Dodging teeth, claws, and flames, you pet {THE($target)} on {POSS-ADJ($target)} massive scaled head. +petting-success-hamster = You pet {THE($target)} on {POSS-ADJ($target)} fluffy little head. petting-failure-generic = You reach out to pet {THE($target)}, but {SUBJECT($target)} {CONJUGATE-BE($target)} aloof towards you. @@ -32,6 +33,7 @@ petting-failure-possum = You reach out to pet {THE($target)}, but are met with h petting-failure-sloth = You reach out to pet {THE($target)}, but {SUBJECT($target)} somehow dodge with ludicrous speed! petting-failure-holo = You reach out to pet {THE($target)}, but {POSS-ADJ($target)} spikes almost impale your hand! petting-failure-dragon = You raise your hand, but as {THE($target)} roars, you decide you'd rather not be toasty carp food. +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 silicons diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_livestock.yml b/Resources/Prototypes/Catalog/Cargo/cargo_livestock.yml index 667d847f3e..797429a0c2 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_livestock.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_livestock.yml @@ -147,3 +147,13 @@ cost: 2000 category: Livestock group: market + +- type: cargoProduct + id: LivestockHamster + icon: + sprite: Mobs/Animals/hamster.rsi + state: icon-0 + product: CrateNPCHamster + cost: 2800 + category: Livestock + group: market diff --git a/Resources/Prototypes/Catalog/Fills/Crates/npc.yml b/Resources/Prototypes/Catalog/Fills/Crates/npc.yml index 827766d097..ad623ae507 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/npc.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/npc.yml @@ -147,3 +147,19 @@ contents: - id: MobSnake amount: 3 + +- type: entity + id: CrateNPCHamster + parent: CrateRodentCage + components: + - type: StorageFill + contents: + - id: MobHamster + +- type: entity + id: CrateNPCHamlet + parent: CrateRodentCage + components: + - type: StorageFill + contents: + - id: MobHamsterHamlet diff --git a/Resources/Prototypes/Entities/Markers/Spawners/mobs.yml b/Resources/Prototypes/Entities/Markers/Spawners/mobs.yml index f9d61c0953..87df0b7f32 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/mobs.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/mobs.yml @@ -217,3 +217,17 @@ - type: ConditionalSpawner prototypes: - MobBearSpace + +- type: entity + name: Hamster Hamlet Spawner + id: SpawnMobHamsterHamlet + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - texture: Mobs/Animals/hamster.rsi/icon-0.png + - state: ai + - type: ConditionalSpawner + prototypes: + - CrateNPCHamlet diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 59ac3988f9..6a361cf23a 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -1890,3 +1890,117 @@ - type: Grammar attributes: gender: epicene + +- type: entity + name: hamster + parent: SimpleMobBase + id: MobHamster + description: A cute, fluffy, robust hamster. + components: + - type: GhostTakeoverAvailable + makeSentient: true + allowSpeech: true + allowMovement: true + name: ghost-role-information-hamster-name + description: ghost-role-information-hamster-description + - type: Speech + speechSounds: Squeak + - type: Sprite + drawdepth: SmallMobs + sprite: Mobs/Animals/hamster.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base"] + state: hamster-0 + - type: Item + size: 5 + - type: Physics + - type: Fixtures + fixtures: + - shape: + !type:PhysShapeCircle + radius: 0.2 + density: 120 + mask: + - SmallMobMask + layer: + - SmallMobLayer + - type: MobState + thresholds: + 0: Alive + 40: Critical + 60: Dead + - type: MovementSpeedModifier + baseWalkSpeed : 4 + baseSprintSpeed : 4 + - type: Appearance + - type: DamageStateVisuals + states: + Alive: + Base: hamster-0 + Critical: + Base: dead-0 + Dead: + Base: splat-0 + - type: Food + - type: Hunger + baseDecayRate: 0.3 + - type: Extractable + grindableSolutionName: food + - type: SolutionContainerManager + solutions: + food: + reagents: + - ReagentId: Nutriment + Quantity: 10 + - ReagentId: Blood + Quantity: 60 + - type: Butcherable + spawned: + - id: FoodMeat + amount: 1 + - type: ReplacementAccent + accent: mouse + - type: Tag + tags: + - Trash + - CannotSuicide + - type: Recyclable + - type: Respirator + damage: + types: + Asphyxiation: 0.25 + damageRecovery: + types: + Asphyxiation: -0.25 + - type: Barotrauma + damage: + types: + Blunt: 0.1 + - type: Vocal + maleScream: /Audio/Animals/mouse_squeak.ogg + femaleScream: /Audio/Animals/mouse_squeak.ogg + unsexedScream: /Audio/Animals/mouse_squeak.ogg + wilhelmProbability: 0.001 + - type: CombatMode + disarmAction: + enabled: false + autoPopulate: false + name: action-name-disarm + - type: MeleeWeapon + hidden: true + angle: 0 + animation: WeaponArcBite + damage: + types: + Piercing: 2 + - type: InteractionPopup + successChance: 0.4 + interactSuccessString: petting-success-hamster + interactFailureString: petting-failure-hamster + interactSuccessSound: + path: /Audio/Animals/fox_squeak.ogg + - type: Bloodstream + bloodMaxVolume: 60 + - type: CanEscapeInventory + - type: MobPrice + price: 60 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml index 63b5566f33..f1455bb848 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml @@ -379,3 +379,29 @@ attributes: proper: true gender: female + +- type: entity + name: Hamlet + parent: MobHamster + id: MobHamsterHamlet + description: A grumpy, cute and fluffy hamster. + components: + - type: GhostTakeoverAvailable + makeSentient: true + allowSpeech: true + allowMovement: true + name: ghost-role-information-hamlet-name + description: ghost-role-information-hamlet-description + - type: InteractionPopup + successChance: 1 + - type: Puller + needsHands: false + - type: Butcherable + spawned: + - id: FoodMeat + amount: 1 + - type: Grammar + attributes: + proper: true + gender: male + diff --git a/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml b/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml index bf4ff926f5..3876b77ee3 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml @@ -281,3 +281,45 @@ containers: - entity_storage +- type: entity + parent: CrateGeneric + id: CrateRodentCage + name: hamster cage + components: + - type: Sprite + sprite: Structures/Storage/Crates/cage.rsi + layers: + - state: base + - state: closed + map: ["enum.StorageVisualLayers.Door"] + - type: Icon + sprite: Structures/Storage/Crates/cage.rsi + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 15 + behaviors: + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/woodhit.ogg + - !type:SpawnEntitiesBehavior + spawn: + SheetPlastic: + min: 1 + max: 2 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Physics + bodyType: Dynamic + - type: Fixtures + fixtures: + - shape: + !type:PhysShapeAabb + bounds: "-0.4,-0.4,0.4,0.29" + density: 80 + mask: + - SmallMobMask + layer: + - SmallMobLayer + diff --git a/Resources/Textures/Mobs/Animals/hamster.rsi/0-inhand-left.png b/Resources/Textures/Mobs/Animals/hamster.rsi/0-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..c8a6e78f16aff80ab8f662c08b691bea1475969a GIT binary patch literal 15202 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/hamster.rsi/dead-0.png b/Resources/Textures/Mobs/Animals/hamster.rsi/dead-0.png new file mode 100644 index 0000000000000000000000000000000000000000..279401902f392bf6aef801249a5d2a9db805610c GIT binary patch literal 15530 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Storage/Crates/cage.rsi/base.png b/Resources/Textures/Structures/Storage/Crates/cage.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..0abb868d1162958f008cfbd286d0171bfe1e6506 GIT binary patch literal 20212 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Storage/Crates/cage.rsi/meta.json b/Resources/Textures/Structures/Storage/Crates/cage.rsi/meta.json new file mode 100644 index 0000000000..30b7e4ce87 --- /dev/null +++ b/Resources/Textures/Structures/Storage/Crates/cage.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by brainfood# 7460", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + }, + { + "name": "closed" + }, + { + "name": "icon" + }, + { + "name": "open" + } + ] +} diff --git a/Resources/Textures/Structures/Storage/Crates/cage.rsi/open.png b/Resources/Textures/Structures/Storage/Crates/cage.rsi/open.png new file mode 100644 index 0000000000000000000000000000000000000000..74bc281484fb1a981374cf1e98a9062d21070ca8 GIT binary patch literal 19869 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