H.O.N.K. mech (#14670)

Co-authored-by: deltanedas <@deltanedas:kde.org>
This commit is contained in:
deltanedas
2023-05-05 13:21:13 +00:00
committed by GitHub
parent 19b313b218
commit bc101e1fb5
49 changed files with 822 additions and 8 deletions

View File

@@ -0,0 +1,36 @@
using Content.Client.UserInterface.Fragments;
using Content.Shared.Mech;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface;
namespace Content.Client.Mech.Ui.Equipment;
public sealed class MechSoundboardUi : UIFragment
{
private MechSoundboardUiFragment? _fragment;
public override Control GetUIFragmentRoot()
{
return _fragment!;
}
public override void Setup(BoundUserInterface userInterface, EntityUid? fragmentOwner)
{
if (fragmentOwner == null)
return;
_fragment = new MechSoundboardUiFragment();
_fragment.OnPlayAction += sound =>
{
userInterface.SendMessage(new MechSoundboardPlayMessage(fragmentOwner.Value, sound));
};
}
public override void UpdateState(BoundUserInterfaceState state)
{
if (state is not MechSoundboardUiState soundboardState)
return;
_fragment?.UpdateContents(soundboardState);
}
}

View File

@@ -0,0 +1,13 @@
<equipment:MechSoundboardUiFragment
xmlns:equipment="clr-namespace:Content.Client.Mech.Ui.Equipment"
xmlns="https://spacestation14.io" Margin="1 0 2 0" HorizontalExpand="True" VerticalExpand="True">
<BoxContainer Orientation="Vertical"
HorizontalExpand="True"
VerticalExpand="True">
<ItemList Name="Sounds"
VerticalExpand="True"
MinHeight="160"
HorizontalExpand="True"
SelectMode="Button"/>
</BoxContainer>
</equipment:MechSoundboardUiFragment>

View File

@@ -0,0 +1,28 @@
using Content.Shared.Mech;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
namespace Content.Client.Mech.Ui.Equipment;
[GenerateTypedNameReferences]
public sealed partial class MechSoundboardUiFragment : BoxContainer
{
public event Action<int>? OnPlayAction;
public MechSoundboardUiFragment()
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
}
public void UpdateContents(MechSoundboardUiState state)
{
foreach (var sound in state.Sounds)
{
Sounds.AddItem(Loc.GetString($"mech-soundboard-{sound}")).OnSelected += item => {
OnPlayAction?.Invoke(Sounds.IndexOf(item));
};
}
}
}

View File

@@ -62,7 +62,8 @@ public sealed class MechSystem : SharedMechSystem
SubscribeLocalEvent<MechPilotComponent, AtmosExposedGetAirEvent>(OnExpose); SubscribeLocalEvent<MechPilotComponent, AtmosExposedGetAirEvent>(OnExpose);
#region Equipment UI message relays #region Equipment UI message relays
SubscribeLocalEvent<MechComponent, MechGrabberEjectMessage>(RecieveEquipmentUiMesssages); SubscribeLocalEvent<MechComponent, MechGrabberEjectMessage>(ReceiveEquipmentUiMesssages);
SubscribeLocalEvent<MechComponent, MechSoundboardPlayMessage>(ReceiveEquipmentUiMesssages);
#endregion #endregion
} }
@@ -262,7 +263,7 @@ public sealed class MechSystem : SharedMechSystem
UpdateUserInterface(uid, component); UpdateUserInterface(uid, component);
} }
private void RecieveEquipmentUiMesssages<T>(EntityUid uid, MechComponent component, T args) where T : MechEquipmentUiMessage private void ReceiveEquipmentUiMesssages<T>(EntityUid uid, MechComponent component, T args) where T : MechEquipmentUiMessage
{ {
var ev = new MechEquipmentUiMessageRelayEvent(args); var ev = new MechEquipmentUiMessageRelayEvent(args);
var allEquipment = new List<EntityUid>(component.EquipmentContainer.ContainedEntities); var allEquipment = new List<EntityUid>(component.EquipmentContainer.ContainedEntities);

View File

@@ -0,0 +1,16 @@
using Content.Shared.Mech.Equipment.Systems;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
namespace Content.Shared.Mech.Equipment.Components;
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
[Access(typeof(MechSoundboardSystem))]
public sealed partial class MechSoundboardComponent : Component
{
/// <summary>
/// List of sounds that can be played
/// </summary>
[DataField("sounds"), ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
public List<SoundCollectionSpecifier> Sounds = new();
}

View File

@@ -0,0 +1,57 @@
using Content.Shared.Mech;
using Content.Shared.Mech.Equipment.Components;
using Content.Shared.Mech.Equipment.Systems;
using Content.Shared.Timing;
using Robust.Shared.Audio;
using System.Linq;
namespace Content.Shared.Mech.Equipment.Systems;
/// <summary>
/// Handles everything for mech soundboard.
/// </summary>
public sealed class MechSoundboardSystem : EntitySystem
{
[Dependency] private readonly SharedAudioSystem _audio = default!;
[Dependency] private readonly UseDelaySystem _useDelay = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<MechSoundboardComponent, MechEquipmentUiStateReadyEvent>(OnUiStateReady);
SubscribeLocalEvent<MechSoundboardComponent, MechEquipmentUiMessageRelayEvent>(OnSoundboardMessage);
}
private void OnUiStateReady(EntityUid uid, MechSoundboardComponent comp, MechEquipmentUiStateReadyEvent args)
{
// you have to specify a collection so it must exist probably
var sounds = comp.Sounds.Select(sound => sound.Collection!);
var state = new MechSoundboardUiState
{
Sounds = sounds.ToList()
};
args.States.Add(uid, state);
}
private void OnSoundboardMessage(EntityUid uid, MechSoundboardComponent comp, MechEquipmentUiMessageRelayEvent args)
{
if (args.Message is not MechSoundboardPlayMessage msg)
return;
if (!TryComp<MechEquipmentComponent>(uid, out var equipment) ||
equipment.EquipmentOwner == null)
return;
if (msg.Sound >= comp.Sounds.Count)
return;
if (_useDelay.ActiveDelay(uid))
return;
// honk!!!!!
var mech = equipment.EquipmentOwner.Value;
_useDelay.BeginDelay(uid);
_audio.PlayPvs(comp.Sounds[msg.Sound], uid);
}
}

View File

@@ -67,6 +67,21 @@ public sealed class MechGrabberEjectMessage : MechEquipmentUiMessage
} }
} }
/// <summary>
/// Event raised for the soundboard equipment to play a sound from its component
/// </summary>
[Serializable, NetSerializable]
public sealed class MechSoundboardPlayMessage : MechEquipmentUiMessage
{
public int Sound;
public MechSoundboardPlayMessage(EntityUid equipment, int sound)
{
Equipment = equipment;
Sound = sound;
}
}
/// <summary> /// <summary>
/// BUI state for mechs that also contains all equipment ui states. /// BUI state for mechs that also contains all equipment ui states.
/// </summary> /// </summary>
@@ -100,3 +115,12 @@ public sealed class MechGrabberUiState : BoundUserInterfaceState
public List<EntityUid> Contents = new(); public List<EntityUid> Contents = new();
public int MaxContents; public int MaxContents;
} }
/// <summary>
/// List of sound collection ids to be localized and displayed.
/// </summary>
[Serializable, NetSerializable]
public sealed class MechSoundboardUiState : BoundUserInterfaceState
{
public List<string> Sounds = new();
}

View File

@@ -0,0 +1,6 @@
mech-soundboard-BikeHorn = Honk!
mech-soundboard-CluwneHorn = !knoH
mech-soundboard-TrollAnimals = animal noises
mech-soundboard-TrollEsword = e-sword
mech-soundboard-TrollBeeping = Beep beep beep
mech-soundboard-TrollMeeting = red vented!!!!!

View File

@@ -88,6 +88,9 @@ technologies-archaeology-description = Advanced equipment for uncovering the sec
technologies-ripley-technology = Exosuit: Ripley technologies-ripley-technology = Exosuit: Ripley
technologies-ripley-technology-description = The latest and greatest in mechanized cargo construction. technologies-ripley-technology-description = The latest and greatest in mechanized cargo construction.
technologies-clown-technology = Exosuit: H.O.N.K.
technologies-clown-technology-description = Honk?!
technologies-adv-parts-technology-description = Like the previous ones, but better! technologies-adv-parts-technology-description = Like the previous ones, but better!
technologies-adv-parts-technology = Advanced parts technology technologies-adv-parts-technology = Advanced parts technology

View File

@@ -21,3 +21,6 @@ tool-quality-slicing-tool-name = Knife
tool-quality-sawing-name = Sawing tool-quality-sawing-name = Sawing
tool-quality-sawing-tool-name = Saw tool-quality-sawing-tool-name = Saw
tool-quality-honking-name = Honking
tool-quality-honking-tool-name = Bike Horn

View File

@@ -312,6 +312,27 @@
- RipleyLLeg - RipleyLLeg
- RipleyRLeg - RipleyRLeg
- type: technology
name: technologies-clown-technology
id: ClownTechnology
description: technologies-clown-technology-description
icon:
sprite: Objects/Specific/Mech/mecha.rsi
state: honker
requiredPoints: 15000
requiredTechnologies:
- RipleyTechnology
unlockedRecipes:
- HonkerCentralElectronics
- HonkerPeripheralsElectronics
- HonkerTargetingElectronics
- MechEquipmentHorn
- HonkerHarness
- HonkerLArm
- HonkerRArm
- HonkerLLeg
- HonkerRLeg
# Industrial Engineering Technology Tree # Industrial Engineering Technology Tree
- type: technology - type: technology

View File

@@ -172,6 +172,10 @@
sprite: Clothing/Mask/clown.rsi sprite: Clothing/Mask/clown.rsi
- type: BreathMask - type: BreathMask
- type: IdentityBlocker - type: IdentityBlocker
# for H.O.N.K. construction
- type: Tag
tags:
- ClownMask
- type: entity - type: entity
parent: ClothingMaskBase parent: ClothingMaskBase

View File

@@ -22,6 +22,10 @@
- type: FootstepModifier - type: FootstepModifier
footstepSoundCollection: footstepSoundCollection:
collection: FootstepClown collection: FootstepClown
# for H.O.N.K. construction
- type: Tag
tags:
- ClownShoes
- type: entity - type: entity
parent: ClothingShoesBaseButcherable parent: ClothingShoesBaseButcherable

View File

@@ -1,3 +1,5 @@
# Ripley
- type: entity - type: entity
id: RipleyCentralElectronics id: RipleyCentralElectronics
parent: BaseElectronics parent: BaseElectronics
@@ -22,4 +24,45 @@
state: id_mod state: id_mod
- type: Tag - type: Tag
tags: tags:
- RipleyPeripheralsControlModule - RipleyPeripheralsControlModule
# H.O.N.K.
- type: entity
id: HonkerCentralElectronics
parent: BaseElectronics
name: H.O.N.K. central control module
description: The electrical control center for the H.O.N.K. mech.
components:
- type: Sprite
sprite: Objects/Misc/module.rsi
state: mainboard
- type: Tag
tags:
- HonkerCentralControlModule
- type: entity
id: HonkerPeripheralsElectronics
parent: BaseElectronics
name: H.O.N.K. peripherals control module
description: The electrical peripherals control for the H.O.N.K. mech.
components:
- type: Sprite
sprite: Objects/Misc/module.rsi
state: id_mod
- type: Tag
tags:
- HonkerPeripheralsControlModule
- type: entity
id: HonkerTargetingElectronics
parent: BaseElectronics
name: H.O.N.K. weapon control and targeting module
description: The electrical targeting control for the H.O.N.K. mech.
components:
- type: Sprite
sprite: Objects/Misc/module.rsi
state: id_mod
- type: Tag
tags:
- HonkerTargetingControlModule

View File

@@ -39,6 +39,11 @@
damage: damage:
types: types:
Blunt: 0 Blunt: 0
- type: Tool
qualities:
- Honking
useSound:
collection: BikeHorn
- type: entity - type: entity
parent: BaseItem parent: BaseItem

View File

@@ -150,3 +150,132 @@
graph: Ripley graph: Ripley
node: start node: start
defaultTarget: ripley defaultTarget: ripley
# H.O.N.K.
- type: entity
id: BaseHonkerPart
parent: BaseMechPart
abstract: true
components:
- type: Sprite
drawdepth: Items
noRot: false
netsync: false
sprite: Objects/Specific/Mech/honker_construction.rsi
- type: entity
id: BaseHonkerPartItem
parent: BaseHonkerPart
abstract: true
components:
- type: Item
size: 50
- type: entity
parent: BaseHonkerPart
id: HonkerHarness
name: H.O.N.K. harness
description: The core of the H.O.N.K. mech
components:
- type: Appearance
- type: ItemMapper
mapLayers:
honker_l_arm+o:
whitelist:
tags:
- HonkerLArm
honker_r_arm+o:
whitelist:
tags:
- HonkerRArm
honker_l_leg+o:
whitelist:
tags:
- HonkerLLeg
honker_r_leg+o:
whitelist:
tags:
- HonkerRLeg
sprite: Objects/Specific/Mech/honker_construction.rsi
- type: ContainerContainer
containers:
mech-assembly-container: !type:Container
- type: MechAssembly
finishedPrototype: HonkerChassis
requiredParts:
HonkerLArm: false
HonkerRArm: false
HonkerLLeg: false
HonkerRLeg: false
- type: Sprite
state: honker_harness+o
noRot: true
- type: entity
parent: BaseHonkerPartItem
id: HonkerLArm
name: H.O.N.K. left arm
description: A H.O.N.K. left arm, with unique sockets that accept odd weaponry designed by clown scientists.
components:
- type: Sprite
state: honker_l_arm
- type: Tag
tags:
- HonkerLArm
- type: entity
parent: BaseHonkerPartItem
id: HonkerLLeg
name: H.O.N.K. left leg
description: A H.O.N.K. left leg. The foot appears just large enough to fully accommodate a clown shoe.
components:
- type: Sprite
state: honker_l_leg
- type: Tag
tags:
- HonkerLLeg
- type: entity
parent: BaseHonkerPartItem
id: HonkerRLeg
name: H.O.N.K. right leg
description: A H.O.N.K. right leg. The foot appears just large enough to fully accommodate a clown shoe.
components:
- type: Sprite
state: honker_r_leg
- type: Tag
tags:
- HonkerRLeg
- type: entity
parent: BaseHonkerPartItem
id: HonkerRArm
name: H.O.N.K. right arm
description: A H.O.N.K. right arm, with unique sockets that accept odd weaponry designed by clown scientists.
components:
- type: Sprite
state: honker_r_arm
- type: Tag
tags:
- HonkerRArm
- type: entity
id: HonkerChassis
parent: BaseHonkerPart
name: H.O.N.K. chassis
description: An in-progress construction of a H.O.N.K. mech. Contains chuckle unit, bananium core and honk support systems.
components:
- type: Appearance
- type: ContainerContainer
containers:
battery-container: !type:Container
- type: MechAssemblyVisuals
statePrefix: honker
- type: Sprite
noRot: true
state: honker0
- type: Construction
graph: Honker
node: start
defaultTarget: honker

View File

@@ -23,4 +23,27 @@
ui: !type:MechGrabberUi ui: !type:MechGrabberUi
- type: ContainerContainer - type: ContainerContainer
containers: containers:
item-container: !type:Container item-container: !type:Container
- type: entity
id: MechEquipmentHorn
parent: BaseMechEquipment
name: mech horn
description: An enhanced bike horn that plays a hilarious array of sounds for the enjoyment of the crew. HONK!
components:
- type: Sprite
# TODO: use own sprite
state: mecha_honker
- type: MechSoundboard
sounds:
- collection: BikeHorn
- collection: CluwneHorn
- collection: TrollAnimals
- collection: TrollBeeping
- collection: TrollEsword
- collection: TrollMeeting
- type: UIFragment
ui: !type:MechSoundboardUi
- type: UseDelay
delay: 0.5
# TODO: tag as being for H.O.N.K. only!!!

View File

@@ -103,3 +103,37 @@
containers: containers:
mech-battery-slot: mech-battery-slot:
- PowerCellHigh - PowerCellHigh
# TODO: have a whitelist for honker equipment
- type: entity
id: MechHonker
parent: BaseMech
name: H.O.N.K.
description: "Produced by \"Tyranny of Honk, INC\", this exosuit is designed as heavy clown-support. Used to spread the fun and joy of life. HONK!"
components:
- type: Sprite
netsync: false
drawdepth: Mobs
noRot: true
sprite: Objects/Specific/Mech/mecha.rsi
layers:
- map: [ "enum.MechVisualLayers.Base" ]
state: honker
- type: FootstepModifier
footstepSoundCollection:
collection: FootstepClown
- type: Mech
baseState: honker
openState: honker-open
brokenState: honker-broken
mechToPilotDamageMultiplier: 0.5
- type: entity
id: MechHonkerBattery
parent: MechHonker
suffix: Battery
components:
- type: ContainerFill
containers:
mech-battery-slot:
- PowerCellHigh

View File

@@ -313,6 +313,9 @@
- OreProcessorMachineCircuitboard - OreProcessorMachineCircuitboard
- RipleyCentralElectronics - RipleyCentralElectronics
- RipleyPeripheralsElectronics - RipleyPeripheralsElectronics
- HonkerCentralElectronics
- HonkerPeripheralsElectronics
- HonkerTargetingElectronics
- GeneratorPlasmaMachineCircuitboard - GeneratorPlasmaMachineCircuitboard
- GeneratorUraniumMachineCircuitboard - GeneratorUraniumMachineCircuitboard
- WallmountGeneratorElectronics - WallmountGeneratorElectronics
@@ -373,6 +376,12 @@
- RipleyLLeg - RipleyLLeg
- RipleyRLeg - RipleyRLeg
- MechEquipmentGrabber - MechEquipmentGrabber
- HonkerHarness
- HonkerLArm
- HonkerRArm
- HonkerLLeg
- HonkerRLeg
- MechEquipmentHorn
- type: MaterialStorage - type: MaterialStorage
whitelist: whitelist:
tags: tags:

View File

@@ -0,0 +1,116 @@
- type: constructionGraph
id: Honker
start: start
graph:
- node: start
edges:
- to: honker
steps:
- tool: Honking
doAfter: 1
completed:
- !type:VisualizerDataInt
key: "enum.MechAssemblyVisuals.State"
data: 1
- tag: HonkerCentralControlModule
name: H.O.N.K. central control module
icon:
sprite: "Objects/Misc/module.rsi"
state: "mainboard"
completed:
- !type:VisualizerDataInt
key: "enum.MechAssemblyVisuals.State"
data: 2
- tool: Honking
doAfter: 1
completed:
- !type:VisualizerDataInt
key: "enum.MechAssemblyVisuals.State"
data: 3
- tag: HonkerPeripheralsControlModule
name: H.O.N.K. peripherals control module
icon:
sprite: "Objects/Misc/module.rsi"
state: id_mod
completed:
- !type:VisualizerDataInt
key: "enum.MechAssemblyVisuals.State"
data: 4
- tool: Honking
doAfter: 1
completed:
- !type:VisualizerDataInt
key: "enum.MechAssemblyVisuals.State"
data: 5
- tag: HonkerTargetingControlModule
name: H.O.N.K. weapon control and targeting module
icon:
sprite: "Objects/Misc/module.rsi"
state: id_mod
completed:
- !type:VisualizerDataInt
key: "enum.MechAssemblyVisuals.State"
data: 6
- tool: Honking
doAfter: 1
completed:
- !type:VisualizerDataInt
key: "enum.MechAssemblyVisuals.State"
data: 7
#i omitted the steps involving inserting machine parts because
#currently mechs don't support upgrading. add them back in once that's squared away.
- component: PowerCell
name: power cell
store: battery-container
icon:
sprite: Objects/Power/power_cells.rsi
state: small
completed:
- !type:VisualizerDataInt
key: "enum.MechAssemblyVisuals.State"
data: 8
- tool: Honking
doAfter: 1
completed:
- !type:VisualizerDataInt
key: "enum.MechAssemblyVisuals.State"
data: 9
- tag: ClownMask
icon:
sprite: "Clothing/Mask/clown.rsi"
state: "icon"
name: "a clown's mask"
doAfter: 1
completed:
- !type:VisualizerDataInt
key: "enum.MechAssemblyVisuals.State"
data: 10
- tag: ClownShoes
icon:
sprite: "Clothing/Shoes/Specific/clown.rsi"
state: "icon"
name: "a clown's shoes"
doAfter: 1
completed:
- !type:VisualizerDataInt
key: "enum.MechAssemblyVisuals.State"
data: 11
- tool: Honking
doAfter: 1
- node: honker
actions:
- !type:BuildMech
mechPrototype: MechHonker

View File

@@ -327,6 +327,33 @@
Glass: 900 Glass: 900
Gold: 100 Gold: 100
- type: latheRecipe
id: HonkerCentralElectronics
result: HonkerCentralElectronics
completetime: 4
materials:
Steel: 100
Glass: 900
Bananium: 100
- type: latheRecipe
id: HonkerPeripheralsElectronics
result: HonkerPeripheralsElectronics
completetime: 4
materials:
Steel: 100
Glass: 900
Bananium: 100
- type: latheRecipe
id: HonkerTargetingElectronics
result: HonkerTargetingElectronics
completetime: 4
materials:
Steel: 100
Glass: 900
Bananium: 100
# Power # Power
- type: latheRecipe - type: latheRecipe
id: APCElectronics id: APCElectronics

View File

@@ -1,3 +1,4 @@
# Ripley
- type: latheRecipe - type: latheRecipe
id: RipleyHarness id: RipleyHarness
result: RipleyHarness result: RipleyHarness
@@ -45,3 +46,57 @@
materials: materials:
Steel: 500 Steel: 500
Plastic: 200 Plastic: 200
# H.O.N.K.
- type: latheRecipe
id: HonkerHarness
result: HonkerHarness
completetime: 10
materials:
Steel: 3000
Glass: 1200
Bananium: 500
- type: latheRecipe
id: HonkerLArm
result: HonkerLArm
completetime: 10
materials:
Steel: 3000
Glass: 1200
Bananium: 500
- type: latheRecipe
id: HonkerLLeg
result: HonkerLLeg
completetime: 10
materials:
Steel: 3000
Glass: 1200
Bananium: 500
- type: latheRecipe
id: HonkerRLeg
result: HonkerRLeg
completetime: 10
materials:
Steel: 3000
Glass: 1200
Bananium: 500
- type: latheRecipe
id: HonkerRArm
result: HonkerRArm
completetime: 10
materials:
Steel: 3000
Glass: 1200
Bananium: 500
- type: latheRecipe
id: MechEquipmentHorn
result: MechEquipmentHorn
completetime: 10
materials:
Steel: 500
Bananium: 200

View File

@@ -0,0 +1,43 @@
# various troll sounds for H.O.N.K.
- type: soundCollection
id: TrollAnimals
files:
- /Audio/Animals/bear.ogg
- /Audio/Animals/cat_hiss.ogg
- /Audio/Animals/cat_meow.ogg
- /Audio/Animals/chicken_cluck_happy.ogg
- /Audio/Animals/cow_moo.ogg
- /Audio/Animals/duck_quack_happy.ogg
- /Audio/Animals/ferret_happy.ogg
- /Audio/Animals/fox_squeak.ogg
- /Audio/Animals/frog_ribbit.ogg
- /Audio/Animals/goat_bah.ogg
- /Audio/Animals/goose_honk.ogg
- /Audio/Animals/lizard_happy.ogg
- /Audio/Animals/monkey_scream.ogg
- /Audio/Animals/mouse_squeak.ogg
- /Audio/Animals/parrot_raught.ogg
- /Audio/Animals/penguin_squawk.ogg
- /Audio/Animals/pig_oink.ogg
- /Audio/Animals/raccoon_chatter.ogg
- /Audio/Animals/sloth_squeak.ogg
- /Audio/Animals/small_dog_bark_happy.ogg
- /Audio/Animals/snake_hiss.ogg
- /Audio/Animals/space_dragon_roar.ogg
- type: soundCollection
id: TrollBeeping
files:
- /Audio/Effects/countdown.ogg
- type: soundCollection
id: TrollEsword
files:
- /Audio/Weapons/ebladeoff.ogg
- /Audio/Weapons/ebladeon.ogg
- /Audio/Weapons/eblade1.ogg
- type: soundCollection
id: TrollMeeting
files:
- /Audio/Misc/emergency_meeting.ogg

View File

@@ -141,10 +141,7 @@
id: CigPack id: CigPack
- type: Tag - type: Tag
id: HardsuitEVA id: ClownMask
- type: Tag
id: HelmetEVA
- type: Tag - type: Tag
id: ClownRecorder id: ClownRecorder
@@ -152,6 +149,9 @@
- type: Tag - type: Tag
id: ClownRubberStamp id: ClownRubberStamp
- type: Tag
id: ClownShoes
- type: Tag - type: Tag
id: CluwneHorn id: CluwneHorn
@@ -327,9 +327,15 @@
- type: Tag - type: Tag
id: Hardsuit # Prevent melee injectors that can't penetrate hardsuits from injecting the wearer (nettles) id: Hardsuit # Prevent melee injectors that can't penetrate hardsuits from injecting the wearer (nettles)
- type: Tag
id: HardsuitEVA
- type: Tag - type: Tag
id: Head id: Head
- type: Tag
id: HelmetEVA
- type: Tag - type: Tag
id: HideContextMenu id: HideContextMenu
@@ -348,6 +354,27 @@
- type: Tag - type: Tag
id: HolosignProjector id: HolosignProjector
- type: Tag
id: HonkerCentralControlModule
- type: Tag
id: HonkerPeripheralsControlModule
- type: Tag
id: HonkerTargetingControlModule
- type: Tag
id: HonkerLArm
- type: Tag
id: HonkerLLeg
- type: Tag
id: HonkerRLeg
- type: Tag
id: HonkerRArm
- type: Tag #Drop this innate tool instead of deleting it. - type: Tag #Drop this innate tool instead of deleting it.
id: InnateDontDelete id: InnateDontDelete

View File

@@ -53,3 +53,10 @@
toolName: tool-quality-sawing-tool-name toolName: tool-quality-sawing-tool-name
spawn: Saw spawn: Saw
icon: { sprite: Objects/Specific/Medical/Surgery/saw.rsi, state: saw } icon: { sprite: Objects/Specific/Medical/Surgery/saw.rsi, state: saw }
- type: tool
id: Honking
name: tool-quality-honking-name
toolName: tool-quality-honking-tool-name
spawn: BikeHorn
icon: { sprite: Objects/Fun/bikehorn.rsi, state: icon }

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 719 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 B

View File

@@ -0,0 +1,80 @@
{
"copyright" : "Taken from https://github.com/tgstation/tgstation at at https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a",
"license" : "CC-BY-SA-3.0",
"version": 1,
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "honker_chassis"
},
{
"name": "honker_harness"
},
{
"name": "honker_harness+o"
},
{
"name": "honker_r_arm"
},
{
"name": "honker_r_arm+o"
},
{
"name": "honker_l_arm"
},
{
"name": "honker_l_arm+o"
},
{
"name": "honker_r_leg"
},
{
"name": "honker_r_leg+o"
},
{
"name": "honker_l_leg"
},
{
"name": "honker_l_leg+o"
},
{
"name": "honker0"
},
{
"name": "honker1"
},
{
"name": "honker2"
},
{
"name": "honker3"
},
{
"name": "honker4"
},
{
"name": "honker5"
},
{
"name": "honker6"
},
{
"name": "honker7"
},
{
"name": "honker8"
},
{
"name": "honker9"
},
{
"name": "honker10"
},
{
"name": "honker11"
}
]
}