Merge remote-tracking branch 'WD-core/master' into upstream-core
This commit is contained in:
@@ -5,4 +5,4 @@ namespace Content.Server.Speech.Components;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[RegisterComponent]
|
[RegisterComponent]
|
||||||
public sealed partial class GnomeAccentComponent : Component
|
public sealed partial class GnomeAccentComponent : Component
|
||||||
{}
|
{ }
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using Content.Server.Speech.Components;
|
using Content.Server.Speech.Components;
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
|
|
||||||
namespace Content.Server.Speech.EntitySystems;
|
namespace Content.Server.Speech.EntitySystems;
|
||||||
|
|
||||||
@@ -22,25 +21,6 @@ public sealed class GnomeAccentSystem : EntitySystem
|
|||||||
|
|
||||||
msg = _replacement.ApplyReplacements(msg, "gnome");
|
msg = _replacement.ApplyReplacements(msg, "gnome");
|
||||||
|
|
||||||
// Пиздец, а не код
|
|
||||||
|
|
||||||
msg = Regex.Replace(msg, @"(?<!\w)\bне", "ГНЕМ", RegexOptions.IgnoreCase);
|
|
||||||
msg = Regex.Replace(msg, @"(?<!\w)\bнет", "ГНЕМТ", RegexOptions.IgnoreCase);
|
|
||||||
|
|
||||||
msg = Regex.Replace(msg, @"(?<!\w)\bнахуй", "ГНАМХУЙ", RegexOptions.IgnoreCase);
|
|
||||||
msg = Regex.Replace(msg, @"(?<!\w)\bпидоры", "ГНОМЕРЫ", RegexOptions.IgnoreCase);
|
|
||||||
msg = Regex.Replace(msg, @"(?<!\w)\bхуесос", "ГНОХУСОМ", RegexOptions.IgnoreCase);
|
|
||||||
msg = Regex.Replace(msg, @"(?<!\w)\bебал", "ГНОМИЛ", RegexOptions.IgnoreCase);
|
|
||||||
msg = Regex.Replace(msg, @"(?<!\w)\bзаебал", "ЗАГНОМИЛ", RegexOptions.IgnoreCase);
|
|
||||||
msg = Regex.Replace(msg, @"(?<!\w)\bубил", "УГНОМИЛ", RegexOptions.IgnoreCase);
|
|
||||||
msg = Regex.Replace(msg, @"(?<!\w)\bубит", "УГНОМЛЕН", RegexOptions.IgnoreCase);
|
|
||||||
msg = Regex.Replace(msg, @"(?<!\w)\bебнул", "УГНОМЛЕН", RegexOptions.IgnoreCase);
|
|
||||||
msg = Regex.Replace(msg, @"(?<!\w)\bстрелял", "СТРЕГНОМИЛ", RegexOptions.IgnoreCase);
|
|
||||||
msg = Regex.Replace(msg, @"(?<!\w)\bзаколол", "СГНОМИЛ", RegexOptions.IgnoreCase);
|
|
||||||
|
|
||||||
msg = Regex.Replace(msg, @"(?<!\w)\bмой", "муй", RegexOptions.None);
|
|
||||||
msg = Regex.Replace(msg, @"(?<!\w)\bдруг", "бро", RegexOptions.None);
|
|
||||||
msg = Regex.Replace(msg, @"(?<!\w)\bдрузья", "друганы", RegexOptions.None);
|
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ public sealed class ERTRecruitmentRule : StationEventSystem<ERTRecruitmentRuleCo
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
_recruitment.StartRecruitment(ERTRecruitmentRuleComponent.EventName);
|
_recruitment.StartRecruitment(ERTRecruitmentRuleComponent.EventName, component.OverallPlaytime);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Ended(EntityUid uid, ERTRecruitmentRuleComponent component, GameRuleComponent gameRule, GameRuleEndedEvent args)
|
protected override void Ended(EntityUid uid, ERTRecruitmentRuleComponent component, GameRuleComponent gameRule, GameRuleEndedEvent args)
|
||||||
|
|||||||
@@ -16,6 +16,11 @@ public sealed partial class ERTRecruitmentRuleComponent : Component
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[DataField] public int MinPlayers = 3;
|
[DataField] public int MinPlayers = 3;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Minimal playtime to be eligible for recruitment.
|
||||||
|
/// </summary>
|
||||||
|
[DataField] public TimeSpan OverallPlaytime = TimeSpan.FromHours(10);
|
||||||
|
|
||||||
public static SoundSpecifier ERTYes = new SoundPathSpecifier("/Audio/Announcements/ert_yes.ogg");
|
public static SoundSpecifier ERTYes = new SoundPathSpecifier("/Audio/Announcements/ert_yes.ogg");
|
||||||
public static SoundSpecifier ERTNo = new SoundPathSpecifier("/Audio/Announcements/ert_no.ogg");
|
public static SoundSpecifier ERTNo = new SoundPathSpecifier("/Audio/Announcements/ert_no.ogg");
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,12 @@ using Robust.Server.GameObjects;
|
|||||||
using Robust.Server.Player;
|
using Robust.Server.Player;
|
||||||
using Robust.Shared.Player;
|
using Robust.Shared.Player;
|
||||||
using Robust.Shared.Random;
|
using Robust.Shared.Random;
|
||||||
|
using Content.Shared.Roles;
|
||||||
|
using Content.Server.Roles;
|
||||||
|
using Content.Shared.Roles.Jobs;
|
||||||
|
using Content.Server.Station.Systems;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
using Content.Server.Players.PlayTimeTracking;
|
||||||
|
|
||||||
namespace Content.Server._White.GhostRecruitment;
|
namespace Content.Server._White.GhostRecruitment;
|
||||||
|
|
||||||
@@ -23,18 +29,26 @@ public sealed class GhostRecruitmentSystem : EntitySystem
|
|||||||
[Dependency] private readonly MindSystem _mind = default!;
|
[Dependency] private readonly MindSystem _mind = default!;
|
||||||
[Dependency] private readonly IRobustRandom _random = default!;
|
[Dependency] private readonly IRobustRandom _random = default!;
|
||||||
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
||||||
|
[Dependency] private readonly SharedRoleSystem _roleSystem = default!;
|
||||||
|
[Dependency] private readonly StationSpawningSystem _spawningSystem = default!;
|
||||||
|
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||||
|
[Dependency] private readonly IPlayTimeTrackingManager _playTimeTracking = default!;
|
||||||
|
|
||||||
private readonly Dictionary<ICommonSession, GhostRecruitmentEuiAccept> _openUis = new();
|
private readonly Dictionary<ICommonSession, GhostRecruitmentEuiAccept> _openUis = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// starts recruiting ghosts, showing them a menu with a choice to recruit.
|
/// starts recruiting ghosts, showing them a menu with a choice to recruit.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="recruitmentName">name of recruitment. <see cref="GhostRecruitmentSpawnPointComponent"/></param>
|
/// <param name="recruitmentName">Name of recruitment. <see cref="GhostRecruitmentSpawnPointComponent"/></param>
|
||||||
public void StartRecruitment(string recruitmentName)
|
/// <param name="overallPlaytime">Minimal playtime to be eligible for recruitment.</param>
|
||||||
|
public void StartRecruitment(string recruitmentName, TimeSpan? overallPlaytime)
|
||||||
{
|
{
|
||||||
var query = EntityQueryEnumerator<GhostComponent, ActorComponent>();
|
var query = EntityQueryEnumerator<GhostComponent, ActorComponent>();
|
||||||
while (query.MoveNext(out var uid, out _, out var actorComponent))
|
while (query.MoveNext(out var uid, out _, out var actorComponent))
|
||||||
{
|
{
|
||||||
|
if (overallPlaytime != null && _playTimeTracking.GetOverallPlaytime(actorComponent.PlayerSession) < overallPlaytime)
|
||||||
|
continue;
|
||||||
|
|
||||||
OpenEui(uid, recruitmentName, actorComponent);
|
OpenEui(uid, recruitmentName, actorComponent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -121,13 +135,20 @@ public sealed class GhostRecruitmentSystem : EntitySystem
|
|||||||
if (!entityUid.HasValue)
|
if (!entityUid.HasValue)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var mind = actorComponent.PlayerSession.GetMind();
|
var userId = actorComponent.PlayerSession.UserId;
|
||||||
|
var entityName = EntityManager.GetComponent<MetaDataComponent>((EntityUid) entityUid).EntityName;
|
||||||
|
|
||||||
if (!mind.HasValue)
|
var newMind = _mind.CreateMind(userId, entityName);
|
||||||
return;
|
|
||||||
|
|
||||||
_mind.TransferTo(mind.Value, entityUid.Value);
|
var job = new JobComponent { Prototype = component.JobId };
|
||||||
_mind.UnVisit(mind.Value);
|
|
||||||
|
_roleSystem.MindAddRole(newMind, job);
|
||||||
|
_mind.SetUserId(newMind, userId);
|
||||||
|
_mind.TransferTo(newMind, entityUid);
|
||||||
|
|
||||||
|
_prototypeManager.TryIndex(job.Prototype, out var jobProto);
|
||||||
|
if (jobProto != null)
|
||||||
|
_spawningSystem.SetPdaAndIdCardData((EntityUid) entityUid, entityName, jobProto, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private EntityUid? Spawn(EntityUid spawnerUid, GhostRecruitmentSpawnPointComponent? component = null)
|
private EntityUid? Spawn(EntityUid spawnerUid, GhostRecruitmentSpawnPointComponent? component = null)
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ using Robust.Shared.Network;
|
|||||||
using Robust.Shared.Physics.Components;
|
using Robust.Shared.Physics.Components;
|
||||||
using Robust.Shared.Prototypes;
|
using Robust.Shared.Prototypes;
|
||||||
using Robust.Shared.Serialization.Manager;
|
using Robust.Shared.Serialization.Manager;
|
||||||
|
using Robust.Shared.Timing;
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
|
|
||||||
namespace Content.Shared.Polymorph.Systems;
|
namespace Content.Shared.Polymorph.Systems;
|
||||||
@@ -36,7 +37,6 @@ public abstract class SharedChameleonProjectorSystem : EntitySystem
|
|||||||
[Dependency] private readonly SharedContainerSystem _container = default!;
|
[Dependency] private readonly SharedContainerSystem _container = default!;
|
||||||
[Dependency] private readonly SharedPopupSystem _popup = default!;
|
[Dependency] private readonly SharedPopupSystem _popup = default!;
|
||||||
[Dependency] private readonly SharedTransformSystem _xform = default!;
|
[Dependency] private readonly SharedTransformSystem _xform = default!;
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
@@ -44,6 +44,7 @@ public abstract class SharedChameleonProjectorSystem : EntitySystem
|
|||||||
SubscribeLocalEvent<ChameleonDisguiseComponent, InteractHandEvent>(OnDisguiseInteractHand, before: [typeof(SharedItemSystem)]);
|
SubscribeLocalEvent<ChameleonDisguiseComponent, InteractHandEvent>(OnDisguiseInteractHand, before: [typeof(SharedItemSystem)]);
|
||||||
SubscribeLocalEvent<ChameleonDisguiseComponent, DamageChangedEvent>(OnDisguiseDamaged);
|
SubscribeLocalEvent<ChameleonDisguiseComponent, DamageChangedEvent>(OnDisguiseDamaged);
|
||||||
SubscribeLocalEvent<ChameleonDisguiseComponent, ComponentShutdown>(OnDisguiseShutdown);
|
SubscribeLocalEvent<ChameleonDisguiseComponent, ComponentShutdown>(OnDisguiseShutdown);
|
||||||
|
SubscribeLocalEvent<ChameleonDisguiseComponent, GotEquippedHandEvent>(OnPickup); // WD
|
||||||
|
|
||||||
SubscribeLocalEvent<ChameleonProjectorComponent, AfterInteractEvent>(OnInteract);
|
SubscribeLocalEvent<ChameleonProjectorComponent, AfterInteractEvent>(OnInteract);
|
||||||
SubscribeLocalEvent<ChameleonProjectorComponent, GetVerbsEvent<UtilityVerb>>(OnGetVerbs);
|
SubscribeLocalEvent<ChameleonProjectorComponent, GetVerbsEvent<UtilityVerb>>(OnGetVerbs);
|
||||||
@@ -62,11 +63,19 @@ public abstract class SharedChameleonProjectorSystem : EntitySystem
|
|||||||
args.Handled = true;
|
args.Handled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// WD. Horrible fix, but functional.
|
||||||
|
/// </summary>
|
||||||
|
private void OnPickup(Entity<ChameleonDisguiseComponent> ent, ref GotEquippedHandEvent args)
|
||||||
|
{
|
||||||
|
Timer.Spawn(100, () => TryReveal(ent.Comp.User));
|
||||||
|
}
|
||||||
|
|
||||||
private void OnDisguiseDamaged(Entity<ChameleonDisguiseComponent> ent, ref DamageChangedEvent args)
|
private void OnDisguiseDamaged(Entity<ChameleonDisguiseComponent> ent, ref DamageChangedEvent args)
|
||||||
{
|
{
|
||||||
// anything that would damage both like an explosion gets doubled
|
// anything that would damage both like an explosion gets doubled
|
||||||
// feature? projector makes your atoms weaker or some bs
|
// feature? projector makes your atoms weaker or some bs
|
||||||
if (args.DamageDelta is {} damage)
|
if (args.DamageDelta is { } damage)
|
||||||
_damageable.TryChangeDamage(ent.Comp.User, damage);
|
_damageable.TryChangeDamage(ent.Comp.User, damage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,7 +90,7 @@ public abstract class SharedChameleonProjectorSystem : EntitySystem
|
|||||||
|
|
||||||
private void OnInteract(Entity<ChameleonProjectorComponent> ent, ref AfterInteractEvent args)
|
private void OnInteract(Entity<ChameleonProjectorComponent> ent, ref AfterInteractEvent args)
|
||||||
{
|
{
|
||||||
if (args.Handled || !args.CanReach || args.Target is not {} target)
|
if (args.Handled || !args.CanReach || args.Target is not { } target)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
args.Handled = true;
|
args.Handled = true;
|
||||||
@@ -126,7 +135,7 @@ public abstract class SharedChameleonProjectorSystem : EntitySystem
|
|||||||
|
|
||||||
private void OnToggleNoRot(Entity<ChameleonProjectorComponent> ent, ref DisguiseToggleNoRotEvent args)
|
private void OnToggleNoRot(Entity<ChameleonProjectorComponent> ent, ref DisguiseToggleNoRotEvent args)
|
||||||
{
|
{
|
||||||
if (ent.Comp.Disguised is not {} uid)
|
if (ent.Comp.Disguised is not { } uid)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var xform = Transform(uid);
|
var xform = Transform(uid);
|
||||||
@@ -137,7 +146,7 @@ public abstract class SharedChameleonProjectorSystem : EntitySystem
|
|||||||
|
|
||||||
private void OnToggleAnchored(Entity<ChameleonProjectorComponent> ent, ref DisguiseToggleAnchoredEvent args)
|
private void OnToggleAnchored(Entity<ChameleonProjectorComponent> ent, ref DisguiseToggleAnchoredEvent args)
|
||||||
{
|
{
|
||||||
if (ent.Comp.Disguised is not {} uid)
|
if (ent.Comp.Disguised is not { } uid)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var xform = Transform(uid);
|
var xform = Transform(uid);
|
||||||
@@ -249,7 +258,7 @@ public abstract class SharedChameleonProjectorSystem : EntitySystem
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public void RevealProjector(Entity<ChameleonProjectorComponent> ent)
|
public void RevealProjector(Entity<ChameleonProjectorComponent> ent)
|
||||||
{
|
{
|
||||||
if (ent.Comp.Disguised is {} user)
|
if (ent.Comp.Disguised is { } user)
|
||||||
TryReveal(user);
|
TryReveal(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -261,7 +270,7 @@ public abstract class SharedChameleonProjectorSystem : EntitySystem
|
|||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// This would probably be a good thing to add to engine in the future.
|
/// This would probably be a good thing to add to engine in the future.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected bool CopyComp<T>(Entity<ChameleonDisguiseComponent> ent) where T: Component, new()
|
protected bool CopyComp<T>(Entity<ChameleonDisguiseComponent> ent) where T : Component, new()
|
||||||
{
|
{
|
||||||
if (!GetSrcComp<T>(ent.Comp, out var src))
|
if (!GetSrcComp<T>(ent.Comp, out var src))
|
||||||
return true;
|
return true;
|
||||||
@@ -277,13 +286,13 @@ public abstract class SharedChameleonProjectorSystem : EntitySystem
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Try to get a single component from the source entity/prototype.
|
/// Try to get a single component from the source entity/prototype.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private bool GetSrcComp<T>(ChameleonDisguiseComponent comp, [NotNullWhen(true)] out T? src) where T: Component
|
private bool GetSrcComp<T>(ChameleonDisguiseComponent comp, [NotNullWhen(true)] out T? src) where T : Component
|
||||||
{
|
{
|
||||||
src = null;
|
src = null;
|
||||||
if (TryComp(comp.SourceEntity, out src))
|
if (TryComp(comp.SourceEntity, out src))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (comp.SourceProto is not {} protoId)
|
if (comp.SourceProto is not { } protoId)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!_proto.TryIndex<EntityPrototype>(protoId, out var proto))
|
if (!_proto.TryIndex<EntityPrototype>(protoId, out var proto))
|
||||||
|
|||||||
@@ -6,11 +6,14 @@ namespace Content.Shared._White.GhostRecruitment;
|
|||||||
[RegisterComponent]
|
[RegisterComponent]
|
||||||
public sealed partial class GhostRecruitmentSpawnPointComponent : Component
|
public sealed partial class GhostRecruitmentSpawnPointComponent : Component
|
||||||
{
|
{
|
||||||
[DataField("prototype", customTypeSerializer:typeof(PrototypeIdSerializer<EntityPrototype>),required:true)]
|
[DataField("prototype", customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>), required: true)]
|
||||||
public string EntityPrototype = default!;
|
public string EntityPrototype = default!;
|
||||||
|
|
||||||
[DataField("recruitmentName")]
|
[DataField("recruitmentName")]
|
||||||
public string RecruitmentName = "default";
|
public string RecruitmentName = "default";
|
||||||
|
|
||||||
[DataField("priority")] public int Priority = 5;
|
[DataField("priority")] public int Priority = 5;
|
||||||
|
|
||||||
|
[DataField]
|
||||||
|
public string JobId = "Passenger";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,4 @@
|
|||||||
Entries:
|
Entries:
|
||||||
- author: RedFoxIV
|
|
||||||
changes:
|
|
||||||
- message: "\u041D\u0438\u0447\u0435\u0433\u043E. \u041C\u0435\u043D\u044C\u0448\
|
|
||||||
\u0435 \u0437\u043D\u0430\u0435\u0448\u044C, \u043A\u0440\u0435\u043F\u0447\u0435\
|
|
||||||
\ \u0441\u043F\u0438\u0448\u044C."
|
|
||||||
type: Add
|
|
||||||
id: 158
|
|
||||||
time: '2024-02-27T11:58:54.0000000+00:00'
|
|
||||||
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/133
|
|
||||||
- author: Aviu
|
- author: Aviu
|
||||||
changes:
|
changes:
|
||||||
- message: "\u0410\u043D\u0442\u0430\u0433\u043E\u043D\u0438\u0441\u0442\u0430\u043C\
|
- message: "\u0410\u043D\u0442\u0430\u0433\u043E\u043D\u0438\u0441\u0442\u0430\u043C\
|
||||||
@@ -8930,3 +8921,33 @@
|
|||||||
id: 657
|
id: 657
|
||||||
time: '2025-01-11T21:05:59.0000000+00:00'
|
time: '2025-01-11T21:05:59.0000000+00:00'
|
||||||
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/880
|
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/880
|
||||||
|
- author: BIG_Zi_348
|
||||||
|
changes:
|
||||||
|
- message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u043E\u0444\u0438\
|
||||||
|
\u0446\u0435\u0440\u0441\u043A\u0438\u0435 \u043F\u0435\u0440\u0447\u0430\u0442\
|
||||||
|
\u043A\u0438 \u0441\u043E \u0441\u0440\u0435\u0434\u043D\u0435\u0439 \u0437\u0430\
|
||||||
|
\u0449\u0438\u0442\u043E\u0439 \u043E\u0442 \u0442\u043E\u043A\u0430."
|
||||||
|
type: Add
|
||||||
|
- message: "\u0414\u043E\u0440\u0430\u0431\u043E\u0442\u0430\u043D \u0438\u0432\u0435\
|
||||||
|
\u043D\u0442 \u0432\u044B\u0437\u043E\u0432\u0430 \u041E\u0411\u0420."
|
||||||
|
type: Tweak
|
||||||
|
- message: "\u0422\u0435\u043F\u0435\u0440\u044C \u0434\u043B\u044F \u043F\u043E\
|
||||||
|
\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u043F\u0440\u0438\u0433\u043B\u0430\
|
||||||
|
\u0448\u0435\u043D\u0438\u044F \u0432 \u041E\u0411\u0420, \u0442\u0440\u0435\
|
||||||
|
\u0431\u0443\u0435\u0442\u0441\u044F \u043D\u0435 \u043C\u0435\u043D\u0435\u0435\
|
||||||
|
\ 10 \u0447\u0430\u0441\u043E\u0432 \u0438\u0433\u0440\u043E\u0432\u043E\u0433\
|
||||||
|
\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0438."
|
||||||
|
type: Tweak
|
||||||
|
- message: "\u041F\u0435\u0440\u0435\u0440\u0430\u0431\u043E\u0442\u0430\u043D \u0430\
|
||||||
|
\u043A\u0446\u0435\u043D\u0442 \u0433\u043D\u043E\u043C\u0430."
|
||||||
|
type: Tweak
|
||||||
|
- message: "\u041D\u0435\u0440\u0444 \u0432\u043E\u0440\u043E\u0432\u0430\u0442\u0435\
|
||||||
|
\u043B\u044C\u043D\u043E\u0439 \u0441\u043F\u043E\u0441\u043E\u0431\u043D\u043E\
|
||||||
|
\u0441\u0442\u0438 \u0433\u043D\u043E\u043C\u043E\u0432."
|
||||||
|
type: Tweak
|
||||||
|
- message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u044B \u043C\u0435\
|
||||||
|
\u043B\u043E\u0447\u0438."
|
||||||
|
type: Fix
|
||||||
|
id: 658
|
||||||
|
time: '2025-01-13T18:21:18.0000000+00:00'
|
||||||
|
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/883
|
||||||
|
|||||||
64
Resources/Locale/ru-RU/_white/accent/gnome.ftl
Normal file
64
Resources/Locale/ru-RU/_white/accent/gnome.ftl
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
accent-gnome-words-1 = не
|
||||||
|
accent-gnome-words-replace-1 = гнем
|
||||||
|
accent-gnome-words-2 = нет
|
||||||
|
accent-gnome-words-replace-2 = гнемт
|
||||||
|
accent-gnome-words-3 = нахуй
|
||||||
|
accent-gnome-words-replace-3 = гнамхуй
|
||||||
|
accent-gnome-words-4 = пидор
|
||||||
|
accent-gnome-words-replace-4 = гномер
|
||||||
|
accent-gnome-words-5 = пидоры
|
||||||
|
accent-gnome-words-replace-5 = гномеры
|
||||||
|
accent-gnome-words-6 = пидору
|
||||||
|
accent-gnome-words-replace-6 = гномеру
|
||||||
|
accent-gnome-words-7 = пидорам
|
||||||
|
accent-gnome-words-replace-7 = гномерам
|
||||||
|
accent-gnome-words-8 = хуесос
|
||||||
|
accent-gnome-words-replace-8 = гнохусос
|
||||||
|
accent-gnome-words-9 = хуесосы
|
||||||
|
accent-gnome-words-replace-9 = гнохусосы
|
||||||
|
accent-gnome-words-10 = хуесосу
|
||||||
|
accent-gnome-words-replace-10 = гнохусосу
|
||||||
|
accent-gnome-words-11 = хуесосам
|
||||||
|
accent-gnome-words-replace-11 = гнохусосам
|
||||||
|
accent-gnome-words-12 = ебал
|
||||||
|
accent-gnome-words-replace-12 = гномил
|
||||||
|
accent-gnome-words-13 = заебал
|
||||||
|
accent-gnome-words-replace-13 = загномил
|
||||||
|
accent-gnome-words-14 = убил
|
||||||
|
accent-gnome-words-replace-14 = угномил
|
||||||
|
accent-gnome-words-15 = убили
|
||||||
|
accent-gnome-words-replace-15 = угномили
|
||||||
|
accent-gnome-words-16 = убит
|
||||||
|
accent-gnome-words-replace-16 = угномлен
|
||||||
|
accent-gnome-words-17 = убиты
|
||||||
|
accent-gnome-words-replace-17 = угномлены
|
||||||
|
accent-gnome-words-18 = ебнул
|
||||||
|
accent-gnome-words-replace-18 = угномил
|
||||||
|
accent-gnome-words-19 = ебнули
|
||||||
|
accent-gnome-words-replace-19 = угномили
|
||||||
|
accent-gnome-words-20 = ёбнул
|
||||||
|
accent-gnome-words-replace-20 = угномил
|
||||||
|
accent-gnome-words-21 = ёбнули
|
||||||
|
accent-gnome-words-replace-21 = угномили
|
||||||
|
accent-gnome-words-22 = стрелял
|
||||||
|
accent-gnome-words-replace-22 = стрегномил
|
||||||
|
accent-gnome-words-23 = стреляли
|
||||||
|
accent-gnome-words-replace-23 = стрегномили
|
||||||
|
accent-gnome-words-24 = заколол
|
||||||
|
accent-gnome-words-replace-24 = сгномил
|
||||||
|
accent-gnome-words-25 = закололи
|
||||||
|
accent-gnome-words-replace-25 = сгномили
|
||||||
|
accent-gnome-words-26 = мой
|
||||||
|
accent-gnome-words-replace-26 = муй
|
||||||
|
accent-gnome-words-27 = мое
|
||||||
|
accent-gnome-words-replace-27 = муе
|
||||||
|
accent-gnome-words-28 = моё
|
||||||
|
accent-gnome-words-replace-28 = муё
|
||||||
|
accent-gnome-words-29 = друг
|
||||||
|
accent-gnome-words-replace-29 = бро
|
||||||
|
accent-gnome-words-30 = друзья
|
||||||
|
accent-gnome-words-replace-30 = друганы
|
||||||
|
accent-gnome-words-31 = пиздец
|
||||||
|
accent-gnome-words-replace-31 = гномздец
|
||||||
|
accent-gnome-words-32 = пизда
|
||||||
|
accent-gnome-words-replace-32 = гномзда
|
||||||
@@ -4,7 +4,7 @@ ent-ClothingUnderwearBottomBoxersWhite = боксеры
|
|||||||
.desc = Белые.
|
.desc = Белые.
|
||||||
ent-ClothingUnderwearBottomBoxersCap = капитанские боксеры
|
ent-ClothingUnderwearBottomBoxersCap = капитанские боксеры
|
||||||
.desc = Боксеры капитана.
|
.desc = Боксеры капитана.
|
||||||
ent-ClothingUnderwearBottomBoxersInspector = кожанные трусы инспектора
|
ent-ClothingUnderwearBottomBoxersInspector = кожаные трусы инспектора
|
||||||
.desc = Обтягивающие кожаные трусы инспектора на подтяжках, весьма экстравагантно... но зачем?
|
.desc = Обтягивающие кожаные трусы инспектора на подтяжках, весьма экстравагантно... но зачем?
|
||||||
ent-ClothingUnderwearBottomBoxersCE = боксеры старшего инженера
|
ent-ClothingUnderwearBottomBoxersCE = боксеры старшего инженера
|
||||||
.desc = Боксеры старшего инженера.
|
.desc = Боксеры старшего инженера.
|
||||||
|
|||||||
@@ -165,7 +165,7 @@
|
|||||||
- id: ClothingEyesGlassesSunglasses
|
- id: ClothingEyesGlassesSunglasses
|
||||||
- id: ClothingUniformJumpsuitCentcomOfficial
|
- id: ClothingUniformJumpsuitCentcomOfficial
|
||||||
- id: ClothingShoesBootsJack
|
- id: ClothingShoesBootsJack
|
||||||
- id: ClothingHandsGlovesColorBlack
|
- id: ClothingHandsGlovesColorBlackSecurity # WD
|
||||||
- id: ClothingHeadsetAltCentComFake
|
- id: ClothingHeadsetAltCentComFake
|
||||||
- id: Paper
|
- id: Paper
|
||||||
- id: Pen
|
- id: Pen
|
||||||
|
|||||||
@@ -65,7 +65,7 @@
|
|||||||
prob: 0.5
|
prob: 0.5
|
||||||
- id: ClothingEyesGlassesSecurity
|
- id: ClothingEyesGlassesSecurity
|
||||||
- id: ClothingHeadsetAltSecurity # WD
|
- id: ClothingHeadsetAltSecurity # WD
|
||||||
- id: ClothingHandsGlovesColorBlack
|
- id: ClothingHandsGlovesColorBlackSecurity # WD
|
||||||
- id: ClothingShoesBootsJack
|
- id: ClothingShoesBootsJack
|
||||||
- id: WeaponMeleeNeedle
|
- id: WeaponMeleeNeedle
|
||||||
prob: 0.1
|
prob: 0.1
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
ClothingNeckTieDet: 2
|
ClothingNeckTieDet: 2
|
||||||
ClothingShoesLeather: 2
|
ClothingShoesLeather: 2
|
||||||
ClothingShoesColorBrown: 2
|
ClothingShoesColorBrown: 2
|
||||||
ClothingHandsGlovesColorBlack: 2
|
ClothingHandsGlovesColorBlackSecurity: 2 # WD
|
||||||
ClothingHandsGlovesLatex: 2
|
ClothingHandsGlovesLatex: 2
|
||||||
CigPackGreen: 4
|
CigPackGreen: 4
|
||||||
SmokingPipeFilledTobacco: 1
|
SmokingPipeFilledTobacco: 1
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
ClothingUniformJumpskirtSec: 4
|
ClothingUniformJumpskirtSec: 4
|
||||||
ClothingUniformJumpsuitSecGrey: 4
|
ClothingUniformJumpsuitSecGrey: 4
|
||||||
ClothingUniformJumpsuitSecBlue: 4
|
ClothingUniformJumpsuitSecBlue: 4
|
||||||
ClothingHandsGlovesColorBlack: 4
|
ClothingHandsGlovesColorBlackSecurity: 4 # WD
|
||||||
ClothingShoesBootsJack: 4
|
ClothingShoesBootsJack: 4
|
||||||
ClothingShoesBootsCombat: 4
|
ClothingShoesBootsCombat: 4
|
||||||
ClothingHeadHatBeretSecurity: 3
|
ClothingHeadHatBeretSecurity: 3
|
||||||
|
|||||||
@@ -135,7 +135,7 @@
|
|||||||
- WeaponDisabler
|
- WeaponDisabler
|
||||||
- ClothingOuterArmorBulletproof
|
- ClothingOuterArmorBulletproof
|
||||||
- FlashlightSeclite
|
- FlashlightSeclite
|
||||||
- ClothingHandsGlovesColorBlack
|
- ClothingHandsGlovesColorBlackSecurity # WD
|
||||||
- ClothingHeadHelmetBasic
|
- ClothingHeadHelmetBasic
|
||||||
- Handcuffs
|
- Handcuffs
|
||||||
- Zipties
|
- Zipties
|
||||||
|
|||||||
@@ -822,6 +822,7 @@
|
|||||||
stealGroup: AnimalTropico
|
stealGroup: AnimalTropico
|
||||||
|
|
||||||
|
|
||||||
|
# WD
|
||||||
- type: entity #WHY MUST YOU THROW ERRORS HOW DARE YOU
|
- type: entity #WHY MUST YOU THROW ERRORS HOW DARE YOU
|
||||||
name: Gnome #this thing is covered in comments, its for my sanity, ignore them please.
|
name: Gnome #this thing is covered in comments, its for my sanity, ignore them please.
|
||||||
parent: [BaseSimpleMob, MobCombat, MobAtmosExposed]
|
parent: [BaseSimpleMob, MobCombat, MobAtmosExposed]
|
||||||
@@ -995,6 +996,5 @@
|
|||||||
collection: GnomesDeathCollection
|
collection: GnomesDeathCollection
|
||||||
canOtherHearDeathSound: True
|
canOtherHearDeathSound: True
|
||||||
- type: Thieving
|
- type: Thieving
|
||||||
stripTimeReduction: 4
|
stripTimeReduction: 2.5
|
||||||
- type: Pacified
|
- type: Pacified
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
- type: Fiber
|
- type: Fiber
|
||||||
fiberMaterial: fibers-nanomachines
|
fiberMaterial: fibers-nanomachines
|
||||||
- type: FingerprintMask
|
- type: FingerprintMask
|
||||||
|
- type: Insulated
|
||||||
- type: MagneticGloves
|
- type: MagneticGloves
|
||||||
glovesActiveTime: 60
|
glovesActiveTime: 60
|
||||||
glovesCooldown: 60
|
glovesCooldown: 60
|
||||||
|
|||||||
@@ -319,6 +319,16 @@
|
|||||||
equipment:
|
equipment:
|
||||||
gloves: ClothingHandsGlovesColorBlack
|
gloves: ClothingHandsGlovesColorBlack
|
||||||
|
|
||||||
|
|
||||||
|
- type: itemLoadout # WD
|
||||||
|
id: GlovesColorBlackSecurity
|
||||||
|
equipment: GlovesColorBlackSecurity
|
||||||
|
- type: startingGear
|
||||||
|
id: GlovesColorBlackSecurity
|
||||||
|
equipment:
|
||||||
|
gloves: ClothingHandsGlovesColorBlackSecurity
|
||||||
|
|
||||||
|
|
||||||
- type: itemLoadout
|
- type: itemLoadout
|
||||||
id: GlovesColorWhite
|
id: GlovesColorWhite
|
||||||
equipment: GlovesColorWhite
|
equipment: GlovesColorWhite
|
||||||
|
|||||||
@@ -745,6 +745,7 @@
|
|||||||
- GlovesColorBlack
|
- GlovesColorBlack
|
||||||
- GlovesFingerless
|
- GlovesFingerless
|
||||||
|
|
||||||
|
|
||||||
- type: loadoutGroup # Amour
|
- type: loadoutGroup # Amour
|
||||||
id: AssistentGloves
|
id: AssistentGloves
|
||||||
name: loadout-group-gloves
|
name: loadout-group-gloves
|
||||||
@@ -754,6 +755,15 @@
|
|||||||
- GlovesColorBlack
|
- GlovesColorBlack
|
||||||
- GlovesFingerless
|
- GlovesFingerless
|
||||||
|
|
||||||
|
|
||||||
|
- type: loadoutGroup # WD
|
||||||
|
id: CommonGlovesSecurity
|
||||||
|
name: loadout-group-gloves
|
||||||
|
minLimit: 0
|
||||||
|
loadouts:
|
||||||
|
- GlovesColorBlackSecurity
|
||||||
|
- GlovesFingerless
|
||||||
|
|
||||||
- type: loadoutGroup
|
- type: loadoutGroup
|
||||||
id: CommonShoes
|
id: CommonShoes
|
||||||
name: loadout-group-shoes
|
name: loadout-group-shoes
|
||||||
@@ -1593,7 +1603,7 @@
|
|||||||
minLimit: 0
|
minLimit: 0
|
||||||
loadouts:
|
loadouts:
|
||||||
- GlovesLatex
|
- GlovesLatex
|
||||||
- GlovesColorBlack
|
- GlovesColorBlackSecurity # WD
|
||||||
- GlovesForensic
|
- GlovesForensic
|
||||||
|
|
||||||
- type: loadoutGroup
|
- type: loadoutGroup
|
||||||
|
|||||||
@@ -506,7 +506,7 @@
|
|||||||
- HeadofSecurityNeck
|
- HeadofSecurityNeck
|
||||||
- HeadofSecurityJumpsuit
|
- HeadofSecurityJumpsuit
|
||||||
- CommonBottom # WD
|
- CommonBottom # WD
|
||||||
- CommonGloves # WD
|
- CommonGlovesSecurity # WD
|
||||||
- CommonSecurityBelt # WD
|
- CommonSecurityBelt # WD
|
||||||
- CommonSecurityBackpack
|
- CommonSecurityBackpack
|
||||||
- CommonSecurityShoes
|
- CommonSecurityShoes
|
||||||
@@ -528,7 +528,7 @@
|
|||||||
- WardenJumpsuit
|
- WardenJumpsuit
|
||||||
- CommonBottom # WD
|
- CommonBottom # WD
|
||||||
- CommonSecurityBackpack
|
- CommonSecurityBackpack
|
||||||
- CommonGloves # WD
|
- CommonGlovesSecurity # WD
|
||||||
- CommonSecurityBelt # WD
|
- CommonSecurityBelt # WD
|
||||||
- CommonSecurityShoes
|
- CommonSecurityShoes
|
||||||
- WardenPDA
|
- WardenPDA
|
||||||
@@ -550,7 +550,7 @@
|
|||||||
- CommonSecurityBackpack
|
- CommonSecurityBackpack
|
||||||
- SecurityOuterClothing
|
- SecurityOuterClothing
|
||||||
- CommonSecurityBelt # WD
|
- CommonSecurityBelt # WD
|
||||||
- CommonGloves # WD
|
- CommonGlovesSecurity # WD
|
||||||
- CommonSecurityShoes
|
- CommonSecurityShoes
|
||||||
- SeniorOfficerPDA
|
- SeniorOfficerPDA
|
||||||
- CommonSecurityJobTrinkets # WD
|
- CommonSecurityJobTrinkets # WD
|
||||||
@@ -588,7 +588,7 @@
|
|||||||
- CommonSecurityBackpack
|
- CommonSecurityBackpack
|
||||||
- SecurityOuterClothing
|
- SecurityOuterClothing
|
||||||
- CommonSecurityBelt # WD
|
- CommonSecurityBelt # WD
|
||||||
- CommonGloves # WD
|
- CommonGlovesSecurity # WD
|
||||||
- CommonSecurityShoes
|
- CommonSecurityShoes
|
||||||
- SecurityPDA
|
- SecurityPDA
|
||||||
- CommonSecurityJobTrinkets # WD
|
- CommonSecurityJobTrinkets # WD
|
||||||
@@ -628,7 +628,7 @@
|
|||||||
- SecurityCadetJumpsuit
|
- SecurityCadetJumpsuit
|
||||||
- CommonBottom # WD
|
- CommonBottom # WD
|
||||||
- CommonSecurityBackpack
|
- CommonSecurityBackpack
|
||||||
- CommonGloves # WD
|
- CommonGlovesSecurity # WD
|
||||||
- CommonSecurityShoes
|
- CommonSecurityShoes
|
||||||
- SecurityCadetPDA
|
- SecurityCadetPDA
|
||||||
- CommonSecurityJobTrinkets # WD
|
- CommonSecurityJobTrinkets # WD
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
shoes: ClothingShoesBootsCombatFilled
|
shoes: ClothingShoesBootsCombatFilled
|
||||||
head: ClothingHeadHatCentcom
|
head: ClothingHeadHatCentcom
|
||||||
eyes: ClothingEyesGlassesSunglasses
|
eyes: ClothingEyesGlassesSunglasses
|
||||||
gloves: ClothingHandsGlovesColorBlack
|
gloves: ClothingHandsGlovesColorBlackSecurity # WD
|
||||||
outerClothing: ClothingOuterArmorBasic
|
outerClothing: ClothingOuterArmorBasic
|
||||||
id: CentcomPDA
|
id: CentcomPDA
|
||||||
ears: ClothingHeadsetAltCentCom
|
ears: ClothingHeadsetAltCentCom
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
- type: cargoProduct
|
- type: cargoProduct
|
||||||
id: ArmoryKLMG
|
id: ArmoryKLMG
|
||||||
icon:
|
icon:
|
||||||
sprite: _Honk/Objects/Weapons/Guns/LMGs/klmg-icons.rsi
|
sprite: White/_Honk/Objects/Weapons/Guns/LMGs/klmg-icons.rsi
|
||||||
state: icon
|
state: icon
|
||||||
product: CrateArmoryKLMG
|
product: CrateArmoryKLMG
|
||||||
cost: 14000
|
cost: 14000
|
||||||
|
|||||||
@@ -133,3 +133,39 @@
|
|||||||
accent-bomzh-words-130: accent-bomzh-words-replace-130
|
accent-bomzh-words-130: accent-bomzh-words-replace-130
|
||||||
accent-bomzh-words-131: accent-bomzh-words-replace-131
|
accent-bomzh-words-131: accent-bomzh-words-replace-131
|
||||||
accent-bomzh-words-132: accent-bomzh-words-replace-132
|
accent-bomzh-words-132: accent-bomzh-words-replace-132
|
||||||
|
|
||||||
|
- type: accent
|
||||||
|
id: gnome
|
||||||
|
wordReplacements:
|
||||||
|
accent-gnome-words-1: accent-gnome-words-replace-1
|
||||||
|
accent-gnome-words-2: accent-gnome-words-replace-2
|
||||||
|
accent-gnome-words-3: accent-gnome-words-replace-3
|
||||||
|
accent-gnome-words-4: accent-gnome-words-replace-4
|
||||||
|
accent-gnome-words-5: accent-gnome-words-replace-5
|
||||||
|
accent-gnome-words-6: accent-gnome-words-replace-6
|
||||||
|
accent-gnome-words-7: accent-gnome-words-replace-7
|
||||||
|
accent-gnome-words-8: accent-gnome-words-replace-8
|
||||||
|
accent-gnome-words-9: accent-gnome-words-replace-9
|
||||||
|
accent-gnome-words-10: accent-gnome-words-replace-10
|
||||||
|
accent-gnome-words-11: accent-gnome-words-replace-11
|
||||||
|
accent-gnome-words-12: accent-gnome-words-replace-12
|
||||||
|
accent-gnome-words-13: accent-gnome-words-replace-13
|
||||||
|
accent-gnome-words-14: accent-gnome-words-replace-14
|
||||||
|
accent-gnome-words-15: accent-gnome-words-replace-15
|
||||||
|
accent-gnome-words-16: accent-gnome-words-replace-16
|
||||||
|
accent-gnome-words-17: accent-gnome-words-replace-17
|
||||||
|
accent-gnome-words-18: accent-gnome-words-replace-18
|
||||||
|
accent-gnome-words-19: accent-gnome-words-replace-19
|
||||||
|
accent-gnome-words-20: accent-gnome-words-replace-20
|
||||||
|
accent-gnome-words-21: accent-gnome-words-replace-21
|
||||||
|
accent-gnome-words-22: accent-gnome-words-replace-22
|
||||||
|
accent-gnome-words-23: accent-gnome-words-replace-23
|
||||||
|
accent-gnome-words-24: accent-gnome-words-replace-24
|
||||||
|
accent-gnome-words-25: accent-gnome-words-replace-25
|
||||||
|
accent-gnome-words-26: accent-gnome-words-replace-26
|
||||||
|
accent-gnome-words-27: accent-gnome-words-replace-27
|
||||||
|
accent-gnome-words-28: accent-gnome-words-replace-28
|
||||||
|
accent-gnome-words-29: accent-gnome-words-replace-29
|
||||||
|
accent-gnome-words-30: accent-gnome-words-replace-30
|
||||||
|
accent-gnome-words-31: accent-gnome-words-replace-31
|
||||||
|
accent-gnome-words-32: accent-gnome-words-replace-32
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
- type: entity
|
||||||
|
parent: ClothingHandsGlovesColorBlack
|
||||||
|
id: ClothingHandsGlovesColorBlackSecurity
|
||||||
|
name: офицерские перчатки
|
||||||
|
description: Кожаные чёрные перчатки, которые немного спасут вас от поджаривания.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: White/Clothing/Hands/Gloves/blacksecurity.rsi
|
||||||
|
- type: Clothing
|
||||||
|
sprite: White/Clothing/Hands/Gloves/blacksecurity.rsi
|
||||||
|
- type: Fiber
|
||||||
|
fiberMaterial: fibers-leather
|
||||||
|
fiberColor: fibers-black
|
||||||
|
- type: Item
|
||||||
|
sprite: White/Clothing/Hands/Gloves/blacksecurity.rsi
|
||||||
|
- type: Insulated
|
||||||
|
coefficient: 0.5
|
||||||
@@ -17,6 +17,7 @@
|
|||||||
prototype: RandomHumanoidSpawnerERTLeader
|
prototype: RandomHumanoidSpawnerERTLeader
|
||||||
recruitmentName: ERTRecruitment
|
recruitmentName: ERTRecruitment
|
||||||
priority: 1
|
priority: 1
|
||||||
|
jobId: ERTLeader
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
layers:
|
layers:
|
||||||
- state: green
|
- state: green
|
||||||
@@ -31,6 +32,7 @@
|
|||||||
prototype: RandomHumanoidSpawnerERTLeaderEVA
|
prototype: RandomHumanoidSpawnerERTLeaderEVA
|
||||||
recruitmentName: ERTRecruitment
|
recruitmentName: ERTRecruitment
|
||||||
priority: 1
|
priority: 1
|
||||||
|
jobId: ERTLeader
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
layers:
|
layers:
|
||||||
- state: green
|
- state: green
|
||||||
@@ -44,6 +46,7 @@
|
|||||||
- type: GhostRecruitmentSpawnPoint
|
- type: GhostRecruitmentSpawnPoint
|
||||||
prototype: RandomHumanoidSpawnerERTJanitor
|
prototype: RandomHumanoidSpawnerERTJanitor
|
||||||
recruitmentName: ERTRecruitment
|
recruitmentName: ERTRecruitment
|
||||||
|
jobId: ERTJanitor
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
layers:
|
layers:
|
||||||
- state: green
|
- state: green
|
||||||
@@ -57,6 +60,7 @@
|
|||||||
- type: GhostRecruitmentSpawnPoint
|
- type: GhostRecruitmentSpawnPoint
|
||||||
prototype: RandomHumanoidSpawnerERTJanitorEVA
|
prototype: RandomHumanoidSpawnerERTJanitorEVA
|
||||||
recruitmentName: ERTRecruitment
|
recruitmentName: ERTRecruitment
|
||||||
|
jobId: ERTJanitor
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
layers:
|
layers:
|
||||||
- state: green
|
- state: green
|
||||||
@@ -71,6 +75,7 @@
|
|||||||
prototype: RandomHumanoidSpawnerERTEngineer
|
prototype: RandomHumanoidSpawnerERTEngineer
|
||||||
recruitmentName: ERTRecruitment
|
recruitmentName: ERTRecruitment
|
||||||
priority: 2
|
priority: 2
|
||||||
|
jobId: ERTEngineer
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
layers:
|
layers:
|
||||||
- state: green
|
- state: green
|
||||||
@@ -85,6 +90,7 @@
|
|||||||
prototype: RandomHumanoidSpawnerERTEngineerEVA
|
prototype: RandomHumanoidSpawnerERTEngineerEVA
|
||||||
recruitmentName: ERTRecruitment
|
recruitmentName: ERTRecruitment
|
||||||
priority: 2
|
priority: 2
|
||||||
|
jobId: ERTEngineer
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
layers:
|
layers:
|
||||||
- state: green
|
- state: green
|
||||||
@@ -99,6 +105,7 @@
|
|||||||
prototype: RandomHumanoidSpawnerERTSecurity
|
prototype: RandomHumanoidSpawnerERTSecurity
|
||||||
recruitmentName: ERTRecruitment
|
recruitmentName: ERTRecruitment
|
||||||
priority: 2
|
priority: 2
|
||||||
|
jobId: ERTSecurity
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
layers:
|
layers:
|
||||||
- state: green
|
- state: green
|
||||||
@@ -113,6 +120,7 @@
|
|||||||
prototype: RandomHumanoidSpawnerERTSecurityEVA
|
prototype: RandomHumanoidSpawnerERTSecurityEVA
|
||||||
recruitmentName: ERTRecruitment
|
recruitmentName: ERTRecruitment
|
||||||
priority: 2
|
priority: 2
|
||||||
|
jobId: ERTSecurity
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
layers:
|
layers:
|
||||||
- state: green
|
- state: green
|
||||||
@@ -127,6 +135,7 @@
|
|||||||
prototype: RandomHumanoidSpawnerERTMedical
|
prototype: RandomHumanoidSpawnerERTMedical
|
||||||
recruitmentName: ERTRecruitment
|
recruitmentName: ERTRecruitment
|
||||||
priority: 2
|
priority: 2
|
||||||
|
jobId: ERTMedical
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
layers:
|
layers:
|
||||||
- state: green
|
- state: green
|
||||||
@@ -141,6 +150,7 @@
|
|||||||
prototype: RandomHumanoidSpawnerERTMedicalEVA
|
prototype: RandomHumanoidSpawnerERTMedicalEVA
|
||||||
recruitmentName: ERTRecruitment
|
recruitmentName: ERTRecruitment
|
||||||
priority: 2
|
priority: 2
|
||||||
|
jobId: ERTMedical
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
layers:
|
layers:
|
||||||
- state: green
|
- state: green
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
Piercing: 18
|
Piercing: 18
|
||||||
Heat: 18
|
Heat: 18
|
||||||
soundHit:
|
soundHit:
|
||||||
path: /Audio/Weapons/smash.ogg
|
path: /Audio/Weapons/eblade1.ogg
|
||||||
- type: DamageOtherOnHit
|
- type: DamageOtherOnHit
|
||||||
damage:
|
damage:
|
||||||
types:
|
types:
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
prob: 0.5
|
prob: 0.5
|
||||||
- id: ClothingEyesGlassesSecurity
|
- id: ClothingEyesGlassesSecurity
|
||||||
- id: ClothingHeadsetAltSecurity
|
- id: ClothingHeadsetAltSecurity
|
||||||
- id: ClothingHandsGlovesColorBlack
|
- id: ClothingHandsGlovesColorBlackSecurity # WD
|
||||||
- id: ClothingShoesBootsJack
|
- id: ClothingShoesBootsJack
|
||||||
- id: WeaponMeleeNeedle
|
- id: WeaponMeleeNeedle
|
||||||
prob: 0.1
|
prob: 0.1
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 1.9 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 360 B |
Binary file not shown.
|
After Width: | Height: | Size: 365 B |
Binary file not shown.
|
After Width: | Height: | Size: 205 B |
Binary file not shown.
|
After Width: | Height: | Size: 214 B |
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"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-HAND",
|
||||||
|
"directions": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "equipped-HAND-body-slim",
|
||||||
|
"directions": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "inhand-left",
|
||||||
|
"directions": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "inhand-right",
|
||||||
|
"directions": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
"states": [
|
"states": [
|
||||||
{
|
{
|
||||||
"name": "animated",
|
"name": "animated",
|
||||||
"directions": 4
|
"directions": 1
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user