* 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>
This commit is contained in:
Swept
2021-03-11 00:06:57 +00:00
committed by GitHub
parent 1384debaef
commit 87aced8392
22 changed files with 222 additions and 170 deletions

View File

@@ -243,6 +243,8 @@ namespace Content.Client
"Shovel", "Shovel",
"ReagentTank", "ReagentTank",
"UtilityAI", "UtilityAI",
"MouseAccent",
"GhostTakeoverAvailable",
"GhostRoleMobSpawner", "GhostRoleMobSpawner",
}; };
} }

View File

@@ -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);
}
}
}

View File

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

View File

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

View File

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

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 B

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 B

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 B

View File

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

View File

Before

Width:  |  Height:  |  Size: 482 B

After

Width:  |  Height:  |  Size: 482 B

View File

Before

Width:  |  Height:  |  Size: 492 B

After

Width:  |  Height:  |  Size: 492 B

View File

Before

Width:  |  Height:  |  Size: 508 B

After

Width:  |  Height:  |  Size: 508 B

View File

Before

Width:  |  Height:  |  Size: 510 B

After

Width:  |  Height:  |  Size: 510 B

View File

Before

Width:  |  Height:  |  Size: 491 B

After

Width:  |  Height:  |  Size: 491 B

View File

Before

Width:  |  Height:  |  Size: 499 B

After

Width:  |  Height:  |  Size: 499 B

View File

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