Hamster Pet (GhostRoleMob) (#12813)

This commit is contained in:
brainfood1183
2022-12-06 23:28:05 +00:00
committed by GitHub
parent cc8b90dc44
commit 375ca1e22b
20 changed files with 308 additions and 1 deletions

View File

@@ -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.
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.

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -0,0 +1,54 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Created by brainfood# 7460",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "icon-0"
},
{
"name": "hamster-0",
"directions": 4,
"delays": [
[
0.2,
0.2,
0.2
],
[
0.2,
0.2,
0.2
],
[
0.2,
0.2,
0.2
],
[
0.2,
0.2,
0.2
]
]
},
{
"name": "dead-0"
},
{
"name": "splat-0"
},
{
"name": "0-inhand-left",
"directions": 4
},
{
"name": "0-inhand-right",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -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"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB