Новый аспект
Все будут говорить ежжи брат
This commit is contained in:
46
Content.Server/_Honk/Aspects/CaucasianAccentAspect.cs
Normal file
46
Content.Server/_Honk/Aspects/CaucasianAccentAspect.cs
Normal file
@@ -0,0 +1,46 @@
|
||||
using Content.Server.GameTicking;
|
||||
using Content.Server.GameTicking.Components;
|
||||
using Content.Server._Honk.Speech.Components;
|
||||
using Content.Server._Honk.AspectsSystem.Aspects.Components;
|
||||
using Content.Server._White.AspectsSystem.Base;
|
||||
using Content.Shared.Mind.Components;
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Server._Honk.Aspects;
|
||||
|
||||
public sealed class CaucasianAccentAspect : AspectSystem<CaucasianAccentAspectComponent>
|
||||
{
|
||||
[Dependency] private readonly IRobustRandom _random = default!;
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
SubscribeLocalEvent<PlayerSpawnCompleteEvent>(HandleLateJoin);
|
||||
}
|
||||
|
||||
protected override void Started(EntityUid uid, CaucasianAccentAspectComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args)
|
||||
{
|
||||
base.Started(uid, component, gameRule, args);
|
||||
var query = EntityQueryEnumerator<MindContainerComponent>();
|
||||
|
||||
while (query.MoveNext(out var ent, out _))
|
||||
{
|
||||
EntityManager.EnsureComponent<CaucasianAccentComponent>(ent);
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleLateJoin(PlayerSpawnCompleteEvent ev)
|
||||
{
|
||||
var query = EntityQueryEnumerator<CaucasianAccentAspectComponent, GameRuleComponent>();
|
||||
while (query.MoveNext(out var ruleEntity, out _, out var gameRule))
|
||||
{
|
||||
if (!GameTicker.IsGameRuleAdded(ruleEntity, gameRule))
|
||||
continue;
|
||||
|
||||
if (!ev.LateJoin)
|
||||
return;
|
||||
|
||||
var mob = ev.Mob;
|
||||
EntityManager.EnsureComponent<CaucasianAccentComponent>(mob);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Content.Server._Honk.AspectsSystem.Aspects.Components;
|
||||
|
||||
[RegisterComponent]
|
||||
public sealed partial class CaucasianAccentAspectComponent : Component
|
||||
{
|
||||
}
|
||||
12
Resources/Prototypes/_Honk/Aspects/Aspects.yml
Normal file
12
Resources/Prototypes/_Honk/Aspects/Aspects.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
- type: entity
|
||||
id: CaucasianAccentAspect
|
||||
parent: BaseGameRule
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: Aspect
|
||||
name: "Ежжи брат"
|
||||
description: "Всэгда интэрэсно, какой ежжи брат вы услишитэ слэдующим."
|
||||
weight: 3
|
||||
startAudio:
|
||||
path: /Audio/White/Aspects/accent.ogg
|
||||
- type: CaucasianAccentAspect
|
||||
Reference in New Issue
Block a user