Hamster Pet (GhostRoleMob) (#12813)
@@ -10,3 +10,9 @@ ghost-role-information-giant-spider-name = Giant spider
|
|||||||
ghost-role-information-giant-spider-description = Wreak havoc on the station's inhabitants!
|
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.
|
||||||
@@ -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-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-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-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.
|
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-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-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-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
|
## Petting silicons
|
||||||
|
|
||||||
|
|||||||
@@ -147,3 +147,13 @@
|
|||||||
cost: 2000
|
cost: 2000
|
||||||
category: Livestock
|
category: Livestock
|
||||||
group: market
|
group: market
|
||||||
|
|
||||||
|
- type: cargoProduct
|
||||||
|
id: LivestockHamster
|
||||||
|
icon:
|
||||||
|
sprite: Mobs/Animals/hamster.rsi
|
||||||
|
state: icon-0
|
||||||
|
product: CrateNPCHamster
|
||||||
|
cost: 2800
|
||||||
|
category: Livestock
|
||||||
|
group: market
|
||||||
|
|||||||
@@ -147,3 +147,19 @@
|
|||||||
contents:
|
contents:
|
||||||
- id: MobSnake
|
- id: MobSnake
|
||||||
amount: 3
|
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
|
||||||
|
|||||||
@@ -217,3 +217,17 @@
|
|||||||
- type: ConditionalSpawner
|
- type: ConditionalSpawner
|
||||||
prototypes:
|
prototypes:
|
||||||
- MobBearSpace
|
- 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
|
||||||
|
|||||||
@@ -1890,3 +1890,117 @@
|
|||||||
- type: Grammar
|
- type: Grammar
|
||||||
attributes:
|
attributes:
|
||||||
gender: epicene
|
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
|
||||||
|
|||||||
@@ -379,3 +379,29 @@
|
|||||||
attributes:
|
attributes:
|
||||||
proper: true
|
proper: true
|
||||||
gender: female
|
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
|
||||||
|
|
||||||
|
|||||||
@@ -281,3 +281,45 @@
|
|||||||
containers:
|
containers:
|
||||||
- entity_storage
|
- 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
|
||||||
|
|
||||||
|
|||||||
BIN
Resources/Textures/Mobs/Animals/hamster.rsi/0-inhand-left.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
Resources/Textures/Mobs/Animals/hamster.rsi/0-inhand-right.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
Resources/Textures/Mobs/Animals/hamster.rsi/dead-0.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
Resources/Textures/Mobs/Animals/hamster.rsi/hamster-0.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
Resources/Textures/Mobs/Animals/hamster.rsi/icon-0.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
54
Resources/Textures/Mobs/Animals/hamster.rsi/meta.json
Normal 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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
Resources/Textures/Mobs/Animals/hamster.rsi/splat-0.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
Resources/Textures/Structures/Storage/Crates/cage.rsi/base.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
Resources/Textures/Structures/Storage/Crates/cage.rsi/closed.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
Resources/Textures/Structures/Storage/Crates/cage.rsi/icon.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
@@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
Resources/Textures/Structures/Storage/Crates/cage.rsi/open.png
Normal file
|
After Width: | Height: | Size: 19 KiB |