Adds mice (#3594)
* Initial * Mmm * Adds them to map * Makes mice grindable * meta.json looking nice * Mice go squeak * Ye * E * Review * Update Content.Server/GameObjects/Components/Mobs/Speech/MouseAccentComponent.cs Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
@@ -243,6 +243,8 @@ namespace Content.Client
|
|||||||
"Shovel",
|
"Shovel",
|
||||||
"ReagentTank",
|
"ReagentTank",
|
||||||
"UtilityAI",
|
"UtilityAI",
|
||||||
|
"MouseAccent",
|
||||||
|
"GhostTakeoverAvailable",
|
||||||
"GhostRoleMobSpawner",
|
"GhostRoleMobSpawner",
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
using System;
|
||||||
|
using Robust.Shared.GameObjects;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Robust.Shared.Random;
|
||||||
|
using Robust.Shared.IoC;
|
||||||
|
|
||||||
|
namespace Content.Server.GameObjects.Components.Mobs.Speech
|
||||||
|
{
|
||||||
|
[RegisterComponent]
|
||||||
|
public class MouseAccentComponent : Component, IAccentComponent
|
||||||
|
{
|
||||||
|
[Dependency] private readonly IRobustRandom _random = default!;
|
||||||
|
public override string Name => "MouseAccent";
|
||||||
|
|
||||||
|
private static readonly IReadOnlyList<string> Squeek = new List<string>{
|
||||||
|
"Squeak!", "Piep!", "Chuu!"
|
||||||
|
}.AsReadOnly();
|
||||||
|
|
||||||
|
public string Accentuate(string message)
|
||||||
|
{
|
||||||
|
return _random.Pick(Squeek);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -40729,4 +40729,34 @@ entities:
|
|||||||
- pos: -36.5,4.5
|
- pos: -36.5,4.5
|
||||||
parent: 853
|
parent: 853
|
||||||
type: Transform
|
type: Transform
|
||||||
|
- uid: 4724
|
||||||
|
type: MouseAITimedSpawner
|
||||||
|
components:
|
||||||
|
- pos: -15.5,25.5
|
||||||
|
parent: 853
|
||||||
|
type: Transform
|
||||||
|
- uid: 4725
|
||||||
|
type: MouseAITimedSpawner
|
||||||
|
components:
|
||||||
|
- pos: 13.5,18.5
|
||||||
|
parent: 853
|
||||||
|
type: Transform
|
||||||
|
- uid: 4726
|
||||||
|
type: MouseAITimedSpawner
|
||||||
|
components:
|
||||||
|
- pos: 27.5,-1.5
|
||||||
|
parent: 853
|
||||||
|
type: Transform
|
||||||
|
- uid: 4727
|
||||||
|
type: MouseAITimedSpawner
|
||||||
|
components:
|
||||||
|
- pos: -9.5,-25.5
|
||||||
|
parent: 853
|
||||||
|
type: Transform
|
||||||
|
- uid: 4728
|
||||||
|
type: MouseAITimedSpawner
|
||||||
|
components:
|
||||||
|
- pos: -33.5,-11.5
|
||||||
|
parent: 853
|
||||||
|
type: Transform
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -52,36 +52,3 @@
|
|||||||
sprite: Clothing/Head/Animals/monkey.rsi
|
sprite: Clothing/Head/Animals/monkey.rsi
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
sprite: Clothing/Head/Animals/monkey.rsi
|
sprite: Clothing/Head/Animals/monkey.rsi
|
||||||
|
|
||||||
- type: entity
|
|
||||||
parent: ClothingHeadBase
|
|
||||||
id: ClothingHeadHatAnimalMouseBrown
|
|
||||||
name: mouse brown
|
|
||||||
description: This is a head of a brown mouse. Squeak!
|
|
||||||
components:
|
|
||||||
- type: Sprite
|
|
||||||
sprite: Clothing/Head/Animals/mouse_brown.rsi
|
|
||||||
- type: Clothing
|
|
||||||
sprite: Clothing/Head/Animals/mouse_brown.rsi
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
parent: ClothingHeadBase
|
|
||||||
id: ClothingHeadHatAnimalMouseGray
|
|
||||||
name: mouse gray
|
|
||||||
description: This is a head of a grey mouse. Squeak!
|
|
||||||
components:
|
|
||||||
- type: Sprite
|
|
||||||
sprite: Clothing/Head/Animals/mouse_gray.rsi
|
|
||||||
- type: Clothing
|
|
||||||
sprite: Clothing/Head/Animals/mouse_gray.rsi
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
parent: ClothingHeadBase
|
|
||||||
id: ClothingHeadHatAnimalMouseWhite
|
|
||||||
name: mouse white
|
|
||||||
description: This is a head of a white mouse. Squeak!
|
|
||||||
components:
|
|
||||||
- type: Sprite
|
|
||||||
sprite: Clothing/Head/Animals/mouse_white.rsi
|
|
||||||
- type: Clothing
|
|
||||||
sprite: Clothing/Head/Animals/mouse_white.rsi
|
|
||||||
|
|||||||
@@ -8,7 +8,6 @@
|
|||||||
visible: false
|
visible: false
|
||||||
sprite: Interface/Misc/markers.rsi
|
sprite: Interface/Misc/markers.rsi
|
||||||
state: cross_blue
|
state: cross_blue
|
||||||
|
|
||||||
- type: Marker
|
- type: Marker
|
||||||
- type: Clickable
|
- type: Clickable
|
||||||
- type: InteractionOutline
|
- type: InteractionOutline
|
||||||
@@ -27,7 +26,6 @@
|
|||||||
visible: false
|
visible: false
|
||||||
sprite: Interface/Misc/markers.rsi
|
sprite: Interface/Misc/markers.rsi
|
||||||
state: spawner_ai
|
state: spawner_ai
|
||||||
|
|
||||||
- type: TimedSpawner
|
- type: TimedSpawner
|
||||||
prototypes:
|
prototypes:
|
||||||
- HumanMob_Spirate
|
- HumanMob_Spirate
|
||||||
@@ -47,7 +45,6 @@
|
|||||||
visible: false
|
visible: false
|
||||||
sprite: Interface/Misc/markers.rsi
|
sprite: Interface/Misc/markers.rsi
|
||||||
state: spawner_xenoai
|
state: spawner_xenoai
|
||||||
|
|
||||||
- type: TimedSpawner
|
- type: TimedSpawner
|
||||||
prototypes:
|
prototypes:
|
||||||
- XenoMob_Content
|
- XenoMob_Content
|
||||||
@@ -55,3 +52,23 @@
|
|||||||
intervalSeconds: 30
|
intervalSeconds: 30
|
||||||
minimumEntitiesSpawned: 2
|
minimumEntitiesSpawned: 2
|
||||||
maximumEntitiesSpawned: 4
|
maximumEntitiesSpawned: 4
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
name: Mouse AI Timed Spawner
|
||||||
|
id: MouseAITimedSpawner
|
||||||
|
parent: BaseTimedSpawner
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
netsync: false
|
||||||
|
visible: false
|
||||||
|
sprite: Mobs/Animals/mouse.rsi
|
||||||
|
state: icon-2
|
||||||
|
- type: TimedSpawner
|
||||||
|
prototypes:
|
||||||
|
- MouseMob_Content
|
||||||
|
- MouseMob1_Content
|
||||||
|
- MouseMob2_Content
|
||||||
|
chance: 0.75
|
||||||
|
intervalSeconds: 100
|
||||||
|
minimumEntitiesSpawned: 1
|
||||||
|
maximumEntitiesSpawned: 1
|
||||||
|
|||||||
@@ -434,3 +434,102 @@
|
|||||||
- type: DamageStateVisualizer
|
- type: DamageStateVisualizer
|
||||||
normal: penguin
|
normal: penguin
|
||||||
dead: penguin_dead
|
dead: penguin_dead
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
name: mouse
|
||||||
|
parent: SimpleMobBase
|
||||||
|
id: MouseMob_Content
|
||||||
|
description: Squeak!
|
||||||
|
components:
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- Grindable
|
||||||
|
- type: GhostTakeoverAvailable
|
||||||
|
makeSentient: true
|
||||||
|
name: mouse
|
||||||
|
description: A mouse in maint.
|
||||||
|
- type: Sprite
|
||||||
|
drawdepth: Mobs
|
||||||
|
layers:
|
||||||
|
- map: ["enum.DamageStateVisualLayers.Base"]
|
||||||
|
state: mouse-0
|
||||||
|
sprite: Mobs/Animals/mouse.rsi
|
||||||
|
- type: Clothing
|
||||||
|
QuickEquip: false
|
||||||
|
sprite: Mobs/Animals/mouse.rsi
|
||||||
|
HeldPrefix: 0
|
||||||
|
ClothingPrefix: 0
|
||||||
|
Slots:
|
||||||
|
- Helmet
|
||||||
|
- type: Physics
|
||||||
|
bodyType: Dynamic
|
||||||
|
mass: 10
|
||||||
|
fixtures:
|
||||||
|
- shape:
|
||||||
|
!type:PhysShapeAabb
|
||||||
|
bounds: "-0.50,-0.30,0.35,0.30"
|
||||||
|
mask:
|
||||||
|
- Impassable
|
||||||
|
- VaultImpassable
|
||||||
|
- SmallImpassable
|
||||||
|
layer:
|
||||||
|
- Opaque
|
||||||
|
- type: MovementSpeedModifier
|
||||||
|
baseWalkSpeed : 5
|
||||||
|
baseSprintSpeed : 5
|
||||||
|
- type: Appearance
|
||||||
|
visuals:
|
||||||
|
- type: DamageStateVisualizer
|
||||||
|
normal: mouse-0
|
||||||
|
crit: dead-0
|
||||||
|
dead: splat-0
|
||||||
|
# Eek! You can eat them alive for now until someone makes something that detects when
|
||||||
|
# a mob is dead or something idk
|
||||||
|
- type: Food
|
||||||
|
- type: LoopingSound
|
||||||
|
- type: SolutionContainer
|
||||||
|
contents:
|
||||||
|
reagents:
|
||||||
|
- ReagentId: chem.Nutriment
|
||||||
|
Quantity: 5
|
||||||
|
- type: MouseAccent
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: MouseMob_Content
|
||||||
|
id: MouseMob1_Content
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
drawdepth: Mobs
|
||||||
|
layers:
|
||||||
|
- map: ["enum.DamageStateVisualLayers.Base"]
|
||||||
|
state: mouse-1
|
||||||
|
sprite: Mobs/Animals/mouse.rsi
|
||||||
|
- type: Clothing
|
||||||
|
HeldPrefix: 1
|
||||||
|
ClothingPrefix: 1
|
||||||
|
- type: Appearance
|
||||||
|
visuals:
|
||||||
|
- type: DamageStateVisualizer
|
||||||
|
normal: mouse-1
|
||||||
|
crit: dead-1
|
||||||
|
dead: splat-1
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: MouseMob_Content
|
||||||
|
id: MouseMob2_Content
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
drawdepth: Mobs
|
||||||
|
layers:
|
||||||
|
- map: ["enum.DamageStateVisualLayers.Base"]
|
||||||
|
state: mouse-2
|
||||||
|
sprite: Mobs/Animals/mouse.rsi
|
||||||
|
- type: Clothing
|
||||||
|
HeldPrefix: 1
|
||||||
|
ClothingPrefix: 2
|
||||||
|
- type: Appearance
|
||||||
|
visuals:
|
||||||
|
- type: DamageStateVisualizer
|
||||||
|
normal: mouse-2
|
||||||
|
crit: dead-2
|
||||||
|
dead: splat-2
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 236 B |
@@ -1,26 +0,0 @@
|
|||||||
{
|
|
||||||
"version": 1,
|
|
||||||
"license": "CC-BY-SA-3.0",
|
|
||||||
"copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e",
|
|
||||||
"size": {
|
|
||||||
"x": 32,
|
|
||||||
"y": 32
|
|
||||||
},
|
|
||||||
"states": [
|
|
||||||
{
|
|
||||||
"name": "icon"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "equipped-HELMET",
|
|
||||||
"directions": 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "inhand-left",
|
|
||||||
"directions": 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "inhand-right",
|
|
||||||
"directions": 4
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 229 B |
@@ -1,26 +0,0 @@
|
|||||||
{
|
|
||||||
"version": 1,
|
|
||||||
"license": "CC-BY-SA-3.0",
|
|
||||||
"copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e",
|
|
||||||
"size": {
|
|
||||||
"x": 32,
|
|
||||||
"y": 32
|
|
||||||
},
|
|
||||||
"states": [
|
|
||||||
{
|
|
||||||
"name": "icon"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "equipped-HELMET",
|
|
||||||
"directions": 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "inhand-left",
|
|
||||||
"directions": 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "inhand-right",
|
|
||||||
"directions": 4
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 232 B |
@@ -1,26 +0,0 @@
|
|||||||
{
|
|
||||||
"version": 1,
|
|
||||||
"license": "CC-BY-SA-3.0",
|
|
||||||
"copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e",
|
|
||||||
"size": {
|
|
||||||
"x": 32,
|
|
||||||
"y": 32
|
|
||||||
},
|
|
||||||
"states": [
|
|
||||||
{
|
|
||||||
"name": "icon"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "equipped-HELMET",
|
|
||||||
"directions": 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "inhand-left",
|
|
||||||
"directions": 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "inhand-right",
|
|
||||||
"directions": 4
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 566 B After Width: | Height: | Size: 566 B |
|
Before Width: | Height: | Size: 482 B After Width: | Height: | Size: 482 B |
|
Before Width: | Height: | Size: 492 B After Width: | Height: | Size: 492 B |
|
Before Width: | Height: | Size: 587 B After Width: | Height: | Size: 587 B |
|
Before Width: | Height: | Size: 508 B After Width: | Height: | Size: 508 B |
|
Before Width: | Height: | Size: 510 B After Width: | Height: | Size: 510 B |
|
Before Width: | Height: | Size: 564 B After Width: | Height: | Size: 564 B |
|
Before Width: | Height: | Size: 491 B After Width: | Height: | Size: 491 B |
|
Before Width: | Height: | Size: 499 B After Width: | Height: | Size: 499 B |
@@ -1,35 +1,20 @@
|
|||||||
{
|
{
|
||||||
"version": 1,
|
"version": 1,
|
||||||
|
"license": "CC-BY-SA-3.0",
|
||||||
|
"copyright": "Taken from https://github.com/tgstation/tgstation/commit/e15c63d100db65eaaa5231133b8a2662ff439131#diff-8dd94e19fdb2ff341b57e31bce101298",
|
||||||
"size": {
|
"size": {
|
||||||
"x": 32,
|
"x": 32,
|
||||||
"y": 32
|
"y": 32
|
||||||
},
|
},
|
||||||
"license": "CC-BY-SA-3.0",
|
|
||||||
"copyright": "Taken from https://github.com/tgstation/tgstation/commit/e15c63d100db65eaaa5231133b8a2662ff439131#diff-8dd94e19fdb2ff341b57e31bce101298",
|
|
||||||
"states": [
|
"states": [
|
||||||
{
|
{
|
||||||
"name": "icon-0",
|
"name": "icon-0"
|
||||||
"delays": [
|
|
||||||
[
|
|
||||||
1
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "icon-1",
|
"name": "icon-1"
|
||||||
"delays": [
|
|
||||||
[
|
|
||||||
1
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "icon-2",
|
"name": "icon-2"
|
||||||
"delays": [
|
|
||||||
[
|
|
||||||
1
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "mouse-0",
|
"name": "mouse-0",
|
||||||
@@ -110,52 +95,58 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "dead-0",
|
"name": "dead-0"
|
||||||
"delays": [
|
|
||||||
[
|
|
||||||
1
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "dead-1",
|
"name": "dead-1"
|
||||||
"delays": [
|
|
||||||
[
|
|
||||||
1
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "dead-2",
|
"name": "dead-2"
|
||||||
"delays": [
|
|
||||||
[
|
|
||||||
1
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "splat-0",
|
"name": "splat-0"
|
||||||
"delays": [
|
|
||||||
[
|
|
||||||
1
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "splat-1",
|
"name": "splat-1"
|
||||||
"delays": [
|
|
||||||
[
|
|
||||||
1
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "splat-2",
|
"name": "splat-2"
|
||||||
"delays": [
|
},
|
||||||
[
|
{
|
||||||
1
|
"name": "0-equipped-HELMET",
|
||||||
]
|
"directions": 4
|
||||||
]
|
},
|
||||||
|
{
|
||||||
|
"name": "1-equipped-HELMET",
|
||||||
|
"directions": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "2-equipped-HELMET",
|
||||||
|
"directions": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "0-inhand-left",
|
||||||
|
"directions": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "1-inhand-left",
|
||||||
|
"directions": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "2-inhand-left",
|
||||||
|
"directions": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "0-inhand-right",
|
||||||
|
"directions": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "1-inhand-right",
|
||||||
|
"directions": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "2-inhand-right",
|
||||||
|
"directions": 4
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||