Всякое разное (#181)
This commit is contained in:
@@ -3,7 +3,6 @@ using Content.Server._White.AspectsSystem.Aspects;
|
||||
using Content.Shared.Chat.Prototypes;
|
||||
using Content.Shared.Humanoid;
|
||||
using Robust.Shared.Audio;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Dictionary;
|
||||
|
||||
@@ -32,12 +31,6 @@ public sealed partial class VocalComponent : Component
|
||||
[DataField("wilhelmProbability")]
|
||||
public float WilhelmProbability = 0.0002f;
|
||||
|
||||
[DataField("screamAction", customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>))]
|
||||
public string ScreamAction = "ActionScream";
|
||||
|
||||
[DataField("screamActionEntity")]
|
||||
public EntityUid? ScreamActionEntity;
|
||||
|
||||
/// <summary>
|
||||
/// Currently loaded emote sounds prototype, based on entity sex.
|
||||
/// Null if no valid prototype for entity sex was found.
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
using Content.Server.Actions;
|
||||
using Content.Server.Chat.Systems;
|
||||
using Content.Server.Speech.Components;
|
||||
using Content.Shared.Chat.Prototypes;
|
||||
using Content.Shared.Humanoid;
|
||||
using Content.Shared.Speech;
|
||||
using Robust.Shared.Audio;
|
||||
using Robust.Shared.Audio.Systems;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Random;
|
||||
@@ -17,33 +15,13 @@ public sealed class VocalSystem : EntitySystem
|
||||
[Dependency] private readonly IPrototypeManager _proto = default!;
|
||||
[Dependency] private readonly SharedAudioSystem _audio = default!;
|
||||
[Dependency] private readonly ChatSystem _chat = default!;
|
||||
[Dependency] private readonly ActionsSystem _actions = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<VocalComponent, MapInitEvent>(OnMapInit);
|
||||
SubscribeLocalEvent<VocalComponent, ComponentShutdown>(OnShutdown);
|
||||
SubscribeLocalEvent<VocalComponent, SexChangedEvent>(OnSexChanged);
|
||||
SubscribeLocalEvent<VocalComponent, EmoteEvent>(OnEmote);
|
||||
SubscribeLocalEvent<VocalComponent, ScreamActionEvent>(OnScreamAction);
|
||||
}
|
||||
|
||||
private void OnMapInit(EntityUid uid, VocalComponent component, MapInitEvent args)
|
||||
{
|
||||
// try to add scream action when vocal comp added
|
||||
_actions.AddAction(uid, ref component.ScreamActionEntity, component.ScreamAction);
|
||||
LoadSounds(uid, component);
|
||||
}
|
||||
|
||||
private void OnShutdown(EntityUid uid, VocalComponent component, ComponentShutdown args)
|
||||
{
|
||||
// remove scream action when component removed
|
||||
if (component.ScreamActionEntity != null)
|
||||
{
|
||||
_actions.RemoveAction(uid, component.ScreamActionEntity);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnSexChanged(EntityUid uid, VocalComponent component, SexChangedEvent args)
|
||||
@@ -67,15 +45,6 @@ public sealed class VocalSystem : EntitySystem
|
||||
args.Handled = _chat.TryPlayEmoteSound(uid, component.EmoteSounds, args.Emote);
|
||||
}
|
||||
|
||||
private void OnScreamAction(EntityUid uid, VocalComponent component, ScreamActionEvent args)
|
||||
{
|
||||
if (args.Handled)
|
||||
return;
|
||||
|
||||
_chat.TryEmoteWithChat(uid, component.ScreamId);
|
||||
args.Handled = true;
|
||||
}
|
||||
|
||||
private bool TryPlayScreamSound(EntityUid uid, VocalComponent component)
|
||||
{
|
||||
if (_random.Prob(component.WilhelmProbability))
|
||||
|
||||
@@ -12,12 +12,12 @@ namespace Content.Server.Speech.Muting
|
||||
public sealed class MutingSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly PopupSystem _popupSystem = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
SubscribeLocalEvent<MutedComponent, SpeakAttemptEvent>(OnSpeakAttempt);
|
||||
SubscribeLocalEvent<MutedComponent, EmoteEvent>(OnEmote, before: new[] { typeof(VocalSystem) });
|
||||
SubscribeLocalEvent<MutedComponent, ScreamActionEvent>(OnScreamAction, before: new[] { typeof(VocalSystem) });
|
||||
}
|
||||
|
||||
private void OnEmote(EntityUid uid, MutedComponent component, ref EmoteEvent args)
|
||||
@@ -30,20 +30,6 @@ namespace Content.Server.Speech.Muting
|
||||
args.Handled = true;
|
||||
}
|
||||
|
||||
private void OnScreamAction(EntityUid uid, MutedComponent component, ScreamActionEvent args)
|
||||
{
|
||||
if (args.Handled)
|
||||
return;
|
||||
|
||||
if (HasComp<MimePowersComponent>(uid))
|
||||
_popupSystem.PopupEntity(Loc.GetString("mime-cant-speak"), uid, uid);
|
||||
|
||||
else
|
||||
_popupSystem.PopupEntity(Loc.GetString("speech-muted"), uid, uid);
|
||||
args.Handled = true;
|
||||
}
|
||||
|
||||
|
||||
private void OnSpeakAttempt(EntityUid uid, MutedComponent component, SpeakAttemptEvent args)
|
||||
{
|
||||
// TODO something better than this.
|
||||
@@ -58,4 +44,4 @@ namespace Content.Server.Speech.Muting
|
||||
args.Cancel();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -69,6 +69,11 @@ public sealed class MindslaveSystem : SharedMindslaveSystem
|
||||
|
||||
private void OnMindslaveRemoved(Entity<SubdermalImplantComponent> ent, ref SubdermalImplantRemoved args)
|
||||
{
|
||||
if (!Tag.HasTag(ent.Owner, MindslaveTag))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!TryComp(args.Target, out MindSlaveComponent? mindslave))
|
||||
{
|
||||
return;
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
using Content.Shared.Actions;
|
||||
|
||||
namespace Content.Shared.Speech;
|
||||
|
||||
public sealed partial class ScreamActionEvent : InstantActionEvent
|
||||
{
|
||||
}
|
||||
@@ -179,7 +179,7 @@ flavor-complex-rocksandstones = как скалы и камни
|
||||
|
||||
## Basic drinks
|
||||
flavor-complex-water = как вода
|
||||
flavor-complex-water = как вода
|
||||
flavor-complex-beer = как моча
|
||||
flavor-complex-cognac = как сухой пряный алкоголь
|
||||
flavor-complex-mead = как забродивший мёд
|
||||
flavor-complex-vermouth = как виноградная мякоть
|
||||
|
||||
@@ -5,3 +5,12 @@ pick-up-verb-get-data-text = Подобрать
|
||||
# "pick up" doesn't make sense if the item is already in their inventory
|
||||
|
||||
pick-up-verb-get-data-text-inventory = Взять в руку
|
||||
|
||||
item-component-on-examine-size = Это {INDEFINITE($size)} [bold]{$size}[/bold] предмет.
|
||||
|
||||
item-component-size-Tiny = крошечный
|
||||
item-component-size-Small = маленький
|
||||
item-component-size-Normal = средний
|
||||
item-component-size-Large = большой
|
||||
item-component-size-Huge = огромный
|
||||
item-component-size-Ginormous = гигантский
|
||||
@@ -1,5 +1,3 @@
|
||||
ent-ActionScream = Крикнуть
|
||||
.desc = ААААААААААААААААААААААААА
|
||||
ent-ActionTurnUndead = Обратиться в зомби
|
||||
.desc = Поддайтесь заражению и превратитесь в зомби.
|
||||
ent-ActionToggleLight = Переключить фонарь
|
||||
|
||||
@@ -1,16 +1,3 @@
|
||||
- type: entity
|
||||
id: ActionScream
|
||||
name: Scream
|
||||
description: AAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: InstantAction
|
||||
useDelay: 10
|
||||
icon: Interface/Actions/scream.png
|
||||
event: !type:ScreamActionEvent
|
||||
checkCanInteract: false
|
||||
- type: LesserFormRestricted
|
||||
|
||||
- type: entity
|
||||
id: ActionTurnUndead
|
||||
name: Turn Undead
|
||||
|
||||
@@ -24,16 +24,6 @@
|
||||
categories:
|
||||
- Debug
|
||||
|
||||
- type: listing
|
||||
id: DebugListing4
|
||||
name: debug name 4
|
||||
description: debug desc 4
|
||||
productAction: ActionScream
|
||||
categories:
|
||||
- Debug
|
||||
cost:
|
||||
DebugDollar: 1
|
||||
|
||||
- type: listing
|
||||
id: DebugListing2
|
||||
name: debug name 2
|
||||
|
||||
@@ -339,7 +339,7 @@
|
||||
- type: Storage
|
||||
whitelist:
|
||||
tags:
|
||||
# - PlantAnalyzer
|
||||
- PlantAnalyzer
|
||||
- PlantSampleTaker
|
||||
- BotanyShovel
|
||||
- BotanyHoe
|
||||
@@ -358,10 +358,10 @@
|
||||
whitelist:
|
||||
tags:
|
||||
- BotanyHatchet
|
||||
# hydro:
|
||||
# whitelist:
|
||||
# tags:
|
||||
# - PlantAnalyzer # Dunno what to put here, should be aight.
|
||||
hydro:
|
||||
whitelist:
|
||||
tags:
|
||||
- PlantAnalyzer # Dunno what to put here, should be aight.
|
||||
hoe:
|
||||
whitelist:
|
||||
tags:
|
||||
|
||||
@@ -19,6 +19,21 @@
|
||||
- type: InitialInfectedExempt
|
||||
|
||||
- type: randomHumanoidSettings
|
||||
id: Nanotrasen
|
||||
speciesBlacklist:
|
||||
- Arachnid
|
||||
- Diona
|
||||
- Moth
|
||||
- Reptilian
|
||||
- Skrell
|
||||
- SlimePerson
|
||||
- Vox
|
||||
- Harpy
|
||||
- Felinid
|
||||
- Dwarf
|
||||
|
||||
- type: randomHumanoidSettings
|
||||
parent: Nanotrasen
|
||||
id: DeathSquad
|
||||
randomizeName: false
|
||||
components:
|
||||
@@ -55,6 +70,7 @@
|
||||
- type: InitialInfectedExempt
|
||||
|
||||
- type: randomHumanoidSettings
|
||||
parent: Nanotrasen
|
||||
id: ERTLeader
|
||||
randomizeName: false
|
||||
components:
|
||||
@@ -395,6 +411,7 @@
|
||||
- type: InitialInfectedExempt
|
||||
|
||||
- type: randomHumanoidSettings
|
||||
parent: Nanotrasen
|
||||
id: CBURNAgent
|
||||
components:
|
||||
- type: MindShield
|
||||
@@ -423,6 +440,7 @@
|
||||
- type: InitialInfectedExempt
|
||||
|
||||
- type: randomHumanoidSettings
|
||||
parent: Nanotrasen
|
||||
id: CentcomOfficial
|
||||
components:
|
||||
- type: MindShield
|
||||
|
||||
@@ -40,9 +40,6 @@
|
||||
- type: Item
|
||||
sprite: Objects/Consumable/Smokeables/Cigars/case.rsi
|
||||
size: Normal
|
||||
shape:
|
||||
- 0,0,2,1
|
||||
storedRotation: 90
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: Cigar
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
sprite: Objects/Materials/Sheets/glass.rsi
|
||||
- type: Item
|
||||
sprite: Objects/Materials/Sheets/glass.rsi
|
||||
size: Normal
|
||||
size: Small
|
||||
- type: StaticPrice
|
||||
price: 0
|
||||
- type: Tag
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
sprite: Objects/Materials/Sheets/other.rsi
|
||||
- type: Item
|
||||
sprite: Objects/Materials/Sheets/other.rsi
|
||||
size: Normal
|
||||
size: Small
|
||||
- type: Tag
|
||||
tags:
|
||||
- Sheet
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
sprite: Objects/Materials/ingots.rsi
|
||||
- type: Item
|
||||
sprite: Objects/Materials/ingots.rsi
|
||||
size: Normal
|
||||
size: Small
|
||||
- type: StaticPrice
|
||||
price: 0
|
||||
- type: Tag
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
- state: rods_5
|
||||
map: ["base"]
|
||||
- type: Item
|
||||
size: Normal
|
||||
size: Small
|
||||
# heldPrefix: rods
|
||||
- type: Construction
|
||||
graph: MetalRod
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
- Body # no chair microbomb
|
||||
blacklist:
|
||||
components:
|
||||
- BorgChassis
|
||||
- Guardian # no holoparasite macrobomb wombo combo
|
||||
tags:
|
||||
- Unimplantable
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
path: "/Audio/Items/Medical/healthscanner.ogg"
|
||||
- type: Tag
|
||||
tags:
|
||||
- DiscreteHealthAnalyzer
|
||||
- PlantAnalyzer
|
||||
- type: Appearance
|
||||
|
||||
- type: entity
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
meltingPoint: -11.0
|
||||
tileReactions:
|
||||
- !type:CleanTileReaction {}
|
||||
- !type:CleanDecalsReaction {}
|
||||
- !type:SpillTileReaction
|
||||
paralyzeTime: 3
|
||||
launchForwardsMultiplier: 4
|
||||
|
||||
Reference in New Issue
Block a user