Merge remote-tracking branch 'upstream/master' into ups

This commit is contained in:
Jabak
2024-08-11 18:33:08 +03:00
202 changed files with 2224 additions and 756 deletions

View File

@@ -1,21 +1,23 @@
<!-- Текст между стрелками - это комментарии - они не будут видны в вашем PR. -->
# Описание PR <!-- Опишите здесь ваш Pull Request. Что он изменяет? На что еще это может повлиять? -->
# Описание PR
<!-- Опишите здесь ваш Pull Request (PR). Что он изменяет? На что еще это может повлиять? -->
## Скриншоты
<!-- Если приемлемо, добавьте скриншоты для демонстрации вашего PR. Если ваш PR представляет собой визуальное изменение, добавьте
скриншоты, иначе он может быть закрыт. -->
## Медиа
<!-- Добавьте скриншоты/видео, для демонстрации вашего PR. Если ваш PR представляет собой визуальное изменение, добавьте скриншоты, иначе он может быть закрыт. -->
## Чек-лист:
- [ ] Rechecked all my code
## typo:
<!--## Чек-лист
Место для вашего чек-листа, здесь можно составить список, к примеру того, что вы хотите сделать. -->
## Тип PR
<!-- Подходите ответственно к пометке этих пунктов, для этого необходимо поставить английскую "X" между квадратных скобок -->
- [ ] Feature
- [ ] Fix
- [ ] Tweak
- [ ] Balance
- [ ] Refactor
- [ ] Translate
- [ ] Resprite
**Изменения**
<!--
@@ -23,23 +25,19 @@
Для записей в списке изменений есть 4 значка: add, remove, tweak, fix. Думаю, вы сможете разобраться с остальным.
Вы можете поставить свое имя после символа :cl:, чтобы изменить имя, которое будет отображаться в журнале изменений (в противном случае будет использоваться ваше имя пользователя GitHub)
Например: :cl: PJB
Например: ":cl: DVOniksWyvern".
Как правило, в журналы изменений следует помещать только то, что действительно важно игрокам. Вещи вроде "Переработана система X, изменения не должны быть видны" не должны быть в журнале изменений.
Как правило, в журналы изменений следует помещать только то, что действительно важно игрокам. Вещи вроде "Рефактор системы X, но изменений вы не увидите" - не должны быть в журнале изменений, эти изменения обычные игроки не смогут заметить.
При написании списка изменений не считайте суффикс типа записи (например, add) "частью" предложения:
плохо: - add: новый инструмент для инженеров
хорошо: - add: добавлен новый инструмент для инженеров
При написании списка изменений НЕ считайте суффикс типа записи (например, add) "частью" предложения:
Плохо: - add: Хирургия может вырезать яйца.
Хорошо: - add: Добавлена хирургическая операция, которая позволяет вырезать яйца.
-->
**Changelog**
<!--
Make players aware of new features and changes that could affect how they play the game by adding a Changelog entry. Please read the Changelog guidelines located at: https://docs.spacestation14.io/en/getting-started/pr-guideline#changelog
-->
<!--
Make sure to take this Changelog template out of the comment block in order for it to show up.
<!-- Не забудьте убрать стрелки, что-бы changelog отображался, если вы считаете, что он нужен.
:cl:
- add: Добавлено веселье!
- remove: Убрано веселье!
- add: Добавлено веселье.
- remove: Убрано веселье.
- tweak: Изменено веселье.
- fix: Исправлено веселье.
-->

View File

@@ -1,5 +1,4 @@
using Content.Client.Eui;
using Content.Client.Ghost.UI;
using Content.Shared._White.Cult.UI;
using JetBrains.Annotations;
using Robust.Client.Graphics;

View File

@@ -4,7 +4,7 @@ using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using static Robust.Client.UserInterface.Controls.BoxContainer;
namespace Content.Client.Ghost.UI;
namespace Content.Client._White.Cult.UI.ApocalypseRuneEui;
public sealed class ApocalypseRuneMenu : DefaultWindow
{

View File

@@ -0,0 +1,57 @@
using Content.Client.Eui;
using Content.Shared._White.Cult.UI;
using JetBrains.Annotations;
using Robust.Client.Graphics;
namespace Content.Client._White.Cult.UI.CultBloodSpellsEui;
[UsedImplicitly]
public sealed class CultBloodSpellsEui : BaseEui
{
private readonly CultBloodSpellsMenu _menu;
private bool _messageSent;
public CultBloodSpellsEui()
{
_menu = new CultBloodSpellsMenu();
_menu.OnClose += () =>
{
if (_messageSent)
return;
SendMessage(new BloodSpellMessage(BloodSpellMessageState.Cancel));
_messageSent = true;
};
_menu.RemoveButton.OnPressed += _ =>
{
Send(BloodSpellMessageState.Remove);
};
_menu.CreateButton.OnPressed += _ =>
{
Send(BloodSpellMessageState.Create);
};
}
private void Send(BloodSpellMessageState state)
{
SendMessage(new BloodSpellMessage(state));
_messageSent = true;
_menu.Close();
}
public override void Opened()
{
IoCManager.Resolve<IClyde>().RequestWindowAttention();
_menu.OpenCentered();
}
public override void Closed()
{
base.Closed();
_menu.Close();
}
}

View File

@@ -0,0 +1,60 @@
using System.Numerics;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using static Robust.Client.UserInterface.Controls.BoxContainer;
namespace Content.Client._White.Cult.UI.CultBloodSpellsEui;
public sealed class CultBloodSpellsMenu : DefaultWindow
{
public readonly Button RemoveButton;
public readonly Button CreateButton;
public CultBloodSpellsMenu()
{
Title = Loc.GetString("blood-spells-title");
Contents.AddChild(new BoxContainer
{
Orientation = LayoutOrientation.Vertical,
Children =
{
new BoxContainer
{
Orientation = LayoutOrientation.Vertical,
Children =
{
(new Label()
{
Text = Loc.GetString("blood-spells-text")
}),
new BoxContainer
{
Orientation = LayoutOrientation.Horizontal,
Align = AlignMode.Center,
Children =
{
(CreateButton = new Button
{
Text = Loc.GetString("blood-spells-create-button"),
}),
(new Control()
{
MinSize = new Vector2(20, 0)
}),
(RemoveButton = new Button
{
Text = Loc.GetString("blood-spells-remove-button"),
})
}
},
}
},
}
});
}
}

View File

@@ -29,6 +29,7 @@ namespace Content.Server.Construction
public sealed partial class ConstructionSystem
{
[Dependency] private readonly IAdminLogManager _adminLogger = default!;
[Dependency] private readonly IEntityManager _entityManager = default!; // WD
#if EXCEPTION_TOLERANCE
[Dependency] private readonly IRuntimeLog _runtimeLog = default!;
#endif
@@ -95,9 +96,6 @@ namespace Content.Server.Construction
if (!Resolve(uid, ref construction))
return HandleResult.False;
if (TryComp(uid, out StackComponent? stack) && stack.Count > 1) // WD
return HandleResult.False;
// Let's make extra sure this is zero...
construction.StepIndex = 0;
@@ -209,7 +207,7 @@ namespace Content.Server.Construction
// We can only perform the rest of our logic if it returns true.
var handle = HandleInteraction(uid, ev, step, validation, out user, construction);
if (step.CultistOnly && !(HasComp<CultistComponent>(user) || HasComp<GhostComponent>(user))) // WD
if (user != null && step.UserWhitelist?.IsValid(user.Value, _entityManager) is false) // WD
return HandleResult.False;
if (handle is not HandleResult.True)

View File

@@ -170,7 +170,7 @@ public sealed class MessagesCartridgeSystem : EntitySystem
/// <summary>
/// Updates the user's name in the storage component.
/// </summary>
private void SendName(EntityUid uid, MessagesCartridgeComponent component, CartridgeComponent cartComponent, string? address)
public void SendName(EntityUid uid, MessagesCartridgeComponent component, CartridgeComponent cartComponent, string? address)
{
TryGetMessagesUser(component, cartComponent, out var messagesUser);

View File

@@ -28,6 +28,7 @@ using Content.Shared._White.Antag;
using Content.Shared._White.Cult.Components;
using Content.Shared._White.Cult.Systems;
using Content.Shared._White.Mood;
using Content.Shared.Alert;
using Content.Shared.Cloning;
using Content.Shared.Mind;
using Content.Shared.NPC.Systems;
@@ -55,6 +56,7 @@ public sealed class CultRuleSystem : GameRuleSystem<CultRuleComponent>
[Dependency] private readonly BloodSpearSystem _bloodSpear = default!;
[Dependency] private readonly ContainerSystem _container = default!;
[Dependency] private readonly HandsSystem _hands = default!;
[Dependency] private readonly AlertsSystem _alertsSystem = default!;
private const int PlayerPerCultist = 10;
private int _minStartingCultists;
@@ -95,7 +97,6 @@ public sealed class CultRuleSystem : GameRuleSystem<CultRuleComponent>
private void OnGetBriefing(Entity<CultistRoleComponent> ent, ref GetBriefingEvent args)
{
args.Append(Loc.GetString("cult-role-briefing-short"));
args.Append(Loc.GetString("cult-role-briefing-hint"));
}
private void OnStartAttempt(RoundStartAttemptEvent ev)
@@ -166,6 +167,7 @@ public sealed class CultRuleSystem : GameRuleSystem<CultRuleComponent>
private void OnCultistComponentInit(EntityUid uid, CultistComponent component, ComponentInit args)
{
RaiseLocalEvent(uid, new MoodEffectEvent("CultFocused"));
_alertsSystem.ShowAlert(uid, AlertType.BloodSpells);
var query = QueryActiveRules();
while (query.MoveNext(out _, out var cult, out _))
@@ -213,6 +215,7 @@ public sealed class CultRuleSystem : GameRuleSystem<CultRuleComponent>
RemoveAllCultistItems(uid);
RemoveCultistAppearance(uid);
RaiseLocalEvent(uid, new MoodRemoveEffectEvent("CultFocused"));
_alertsSystem.ClearAlert(uid, AlertType.BloodSpells);
}
_bloodSpear.DetachSpearFromUser((uid, component));

View File

@@ -6,12 +6,9 @@ public sealed partial class CultStunHandComponent : BaseMagicHandComponent
[DataField]
public TimeSpan Duration = TimeSpan.FromSeconds(16);
[DataField]
public TimeSpan HaloDuration = TimeSpan.FromSeconds(1.5);
[DataField]
public TimeSpan MuteDuration = TimeSpan.FromSeconds(12);
[DataField]
public TimeSpan HaloMuteDuration = TimeSpan.FromSeconds(1);
public float PentagramDurationMultiplier = 0.1f;
}

View File

@@ -245,11 +245,18 @@ public sealed class MagicHandSystem : EntitySystem
return;
}
var halo = HasComp<PentagramComponent>(args.User);
var stunDuration = comp.Duration;
var muteDuration = comp.MuteDuration;
_statusEffects.TryAddStatusEffect(target, "Muted", halo ? comp.HaloMuteDuration : comp.MuteDuration, true,
"Muted", status);
_stun.TryParalyze(target, halo ? comp.HaloDuration : comp.Duration, true, status);
if (HasComp<PentagramComponent>(args.User))
{
var multiplier = comp.PentagramDurationMultiplier;
stunDuration *= multiplier;
muteDuration *= multiplier;
}
_statusEffects.TryAddStatusEffect(target, "Muted", muteDuration, true, "Muted", status);
_stun.TryParalyze(target, stunDuration, true, status);
}
private void Popup(string msg, EntityUid user, PopupType type = PopupType.Small)

View File

@@ -3,16 +3,14 @@ using Content.Server.Body.Components;
using Content.Shared._White.Cult;
using Content.Shared._White.Cult.Components;
using Content.Shared.DoAfter;
using Content.Shared.Verbs;
using Robust.Shared.Player;
namespace Content.Server._White.Cult.Runes.Systems;
public sealed partial class CultSystem
{
public void InitializeVerb()
public void InitializeSpells()
{
SubscribeLocalEvent<CultistComponent, GetVerbsEvent<Verb>>(OnGetVerbs);
SubscribeLocalEvent<CultistComponent, CultEmpowerSelectedBuiMessage>(OnCultistEmpowerSelected);
SubscribeLocalEvent<CultistComponent, CultEmpowerRemoveBuiMessage>(OnCultistEmpowerRemove);
SubscribeLocalEvent<CultistComponent, SpellCreatedEvent>(OnSpellCreated);
@@ -57,7 +55,7 @@ public sealed partial class CultSystem
if (comp.SelectedEmpowers.Count >= 2)
{
_popupSystem.PopupEntity(Loc.GetString("verb-spell-create-too-much"), ent, ent);
_popupSystem.PopupEntity(Loc.GetString("blood-spell-create-too-much"), ent, ent);
return;
}
@@ -71,42 +69,16 @@ public sealed partial class CultSystem
});
}
private void OnGetVerbs(Entity<CultistComponent> ent, ref GetVerbsEvent<Verb> args)
public void CreateSpell(Entity<CultistComponent> ent, ICommonSession session)
{
if (ent.Owner != args.User || !TryComp<ActorComponent>(args.User, out var actor))
return;
var createSpellVerb = new Verb
{
Text = Loc.GetString("verb-spell-create-text"),
Message = Loc.GetString("verb-spell-create-message"),
Category = VerbCategory.Cult,
Act = () =>
{
_ui.TryOpen(ent, CultEmpowerUiKey.Key, actor.PlayerSession);
}
};
var removeSpellVerb = new Verb
{
Text = Loc.GetString("verb-spell-remove-text"),
Message = Loc.GetString("verb-spell-remove-message"),
Category = VerbCategory.Cult,
Act = () =>
{
RemoveSpell(ent, actor.PlayerSession);
}
};
args.Verbs.Add(createSpellVerb);
args.Verbs.Add(removeSpellVerb);
_ui.TryOpen(ent, CultEmpowerUiKey.Key, session);
}
private void RemoveSpell(Entity<CultistComponent> ent, ICommonSession session)
public void RemoveSpell(Entity<CultistComponent> ent, ICommonSession session)
{
if (ent.Comp.SelectedEmpowers.Count == 0)
{
_popupSystem.PopupEntity(Loc.GetString("verb-spell-remove-no-spells"), ent, ent);
_popupSystem.PopupEntity(Loc.GetString("blood-spell-remove-no-spells"), ent, ent);
return;
}

View File

@@ -127,7 +127,7 @@ public sealed partial class CultSystem : EntitySystem
InitializeBarrierSystem();
InitializeConstructsAbilities();
InitializeActions();
InitializeVerb();
InitializeSpells();
}
private float _timeToDraw;

View File

@@ -0,0 +1,53 @@
using Content.Server.EUI;
using Content.Server.Popups;
using Content.Server._White.Cult.Runes.Comps;
using Content.Server._White.Cult.Runes.Systems;
using Content.Shared._White.Cult.Components;
using Content.Shared.Eui;
using Content.Shared.Popups;
using Content.Shared._White.Cult.UI;
using Content.Shared.Movement.Pulling.Components;
using Content.Shared.Movement.Pulling.Systems;
using Robust.Shared.Player;
using Robust.Shared.Timing;
namespace Content.Server._White.Cult.UI;
public sealed class CultBloodSpellsEui : BaseEui
{
private readonly IEntityManager _entityManager;
private readonly CultSystem _cult;
private readonly EntityUid _performer;
public CultBloodSpellsEui(EntityUid performer, IEntityManager entityManager)
{
_entityManager = entityManager;
_cult = _entityManager.System<CultSystem>();
_performer = performer;
}
public override void HandleMessage(EuiMessageBase msg)
{
base.HandleMessage(msg);
if (msg is not BloodSpellMessage cast || cast.State == BloodSpellMessageState.Cancel)
{
Close();
return;
}
if (!_entityManager.TryGetComponent(_performer, out CultistComponent? cultist))
{
Close();
return;
}
if (cast.State == BloodSpellMessageState.Create)
_cult.CreateSpell((_performer, cultist), Player);
else if (cast.State == BloodSpellMessageState.Remove)
_cult.RemoveSpell((_performer, cultist), Player);
Close();
}
}

View File

@@ -0,0 +1,21 @@
using Content.Server.EUI;
using Content.Shared.Alert;
using JetBrains.Annotations;
using Robust.Shared.Player;
namespace Content.Server._White.Cult.UI;
[UsedImplicitly, DataDefinition]
public sealed partial class OpenBloodSpellsUi : IAlertClick
{
public void AlertClicked(EntityUid player)
{
var euiManager = IoCManager.Resolve<EuiManager>();
var entManager = IoCManager.Resolve<IEntityManager>();
if (!entManager.TryGetComponent(player, out ActorComponent? actor))
return;
euiManager.OpenEui(new CultBloodSpellsEui(player, entManager), actor.PlayerSession);
}
}

View File

@@ -4,6 +4,7 @@ using Content.Server._White.Radio.Components;
using Content.Server.Administration.Logs;
using Content.Server.Chat.Systems;
using Content.Server.DeviceNetwork.Systems;
using Content.Server.Station.Systems;
using Content.Shared._White.CartridgeLoader.Cartridges;
using Content.Shared.CartridgeLoader;
using Content.Shared.Database;
@@ -19,6 +20,7 @@ public sealed class MessagesServerSystem : EntitySystem
[Dependency] private readonly MessagesCartridgeSystem _messagesSystem = default!;
[Dependency] private readonly IAdminLogManager _adminLogger = default!;
[Dependency] private readonly ChatSystem _chat = default!;
[Dependency] private readonly StationSystem _stationSystem = default!;
public override void Initialize()
{
@@ -30,19 +32,12 @@ public sealed class MessagesServerSystem : EntitySystem
private void OnInit(EntityUid uid, MessagesServerComponent component, ComponentInit args)
{
var query = EntityQueryEnumerator<MessagesCartridgeComponent>();
var stationId = _stationSystem.GetOwningStation(uid);
while (query.MoveNext(out var entityUid, out var cartridge))
{
if (!TryComp(entityUid, out CartridgeComponent? cartComponent))
continue;
_messagesSystem.TryGetMessagesUser(cartridge, cartComponent, out var messagesUser);
if (cartridge.UserUid == null || messagesUser.Name == Loc.GetString("messages-pda-unknown-name"))
continue;
component.Dictionary[cartridge.UserUid.Value] = messagesUser;
cartridge.LastServer = uid;
if (stationId.HasValue && _singletonServerSystem.TryGetActiveServerAddress<MessagesServerComponent>(stationId.Value, out var address) && TryComp(entityUid, out CartridgeComponent? cartComponent))
_messagesSystem.SendName(entityUid, cartridge, cartComponent, address);
}
}

View File

@@ -1,4 +1,4 @@
using System.Diagnostics.CodeAnalysis;
using System.Diagnostics.CodeAnalysis;
using Content.Shared._White.Telescope;
using Content.Shared._White.WeaponModules;
using Content.Shared.Weapons.Ranged.Components;
@@ -128,7 +128,7 @@ public sealed class WeaponModulesSystem : EntitySystem
return;
weaponModulesComponent.WeaponFireEffect = true;
Dirty(module, weaponModulesComponent);
Dirty(weapon, weaponModulesComponent);
}
private void SilencerModuleOnInsert(EntityUid module, SilencerModuleComponent component, EntGotInsertedIntoContainerMessage args)
@@ -145,7 +145,7 @@ public sealed class WeaponModulesSystem : EntitySystem
weaponModulesComponent.WeaponFireEffect = true;
_gunSystem.SetSound(weapon, component.NewSoundGunshot);
Dirty(module, weaponModulesComponent);
Dirty(weapon, weaponModulesComponent);
}
private void AcceleratorModuleOnInsert(EntityUid module, AcceleratorModuleComponent component, EntGotInsertedIntoContainerMessage args)
@@ -224,7 +224,7 @@ public sealed class WeaponModulesSystem : EntitySystem
return;
weaponModulesComponent.WeaponFireEffect = false;
Dirty(module, weaponModulesComponent);
Dirty(weapon, weaponModulesComponent);
}
private void SilencerModuleOnEject(EntityUid module, SilencerModuleComponent component, EntGotRemovedFromContainerMessage args)
@@ -236,7 +236,7 @@ public sealed class WeaponModulesSystem : EntitySystem
weaponModulesComponent.WeaponFireEffect = false;
_gunSystem.SetSound(weapon, component.OldSoundGunshot!);
Dirty(module, weaponModulesComponent);
Dirty(weapon, weaponModulesComponent);
}
private void AcceleratorModuleOnEject(EntityUid module, AcceleratorModuleComponent component, EntGotRemovedFromContainerMessage args)

View File

@@ -17,6 +17,7 @@ using Content.Server.EUI;
using Content.Server.Lightning;
using Content.Server.Magic;
using Content.Server.Mind;
using Content.Server.Polymorph.Systems;
using Content.Server.Singularity.EntitySystems;
using Content.Server.Standing;
using Content.Server.Weapons.Ranged.Systems;
@@ -33,6 +34,7 @@ using Content.Shared.Cluwne;
using Content.Shared.Coordinates.Helpers;
using Content.Shared.Damage;
using Content.Shared.Damage.Prototypes;
using Content.Shared.Eye.Blinding.Components;
using Content.Shared.Hands.Components;
using Content.Shared.Hands.EntitySystems;
using Content.Shared.Humanoid;
@@ -44,7 +46,10 @@ using Content.Shared.Magic;
using Content.Shared.Maps;
using Content.Shared.Mobs;
using Content.Shared.Mobs.Components;
using Content.Shared.Mobs.Systems;
using Content.Shared.Movement.Components;
using Content.Shared.Physics;
using Content.Shared.Polymorph;
using Content.Shared.Popups;
using Content.Shared.Revolutionary.Components;
using Content.Shared.StatusEffect;
@@ -90,6 +95,8 @@ public sealed class WizardSpellsSystem : EntitySystem
[Dependency] private readonly ActionContainerSystem _actionContainer = default!;
[Dependency] private readonly ChargingSystem _charging = default!;
[Dependency] private readonly SharedStunSystem _stun = default!;
[Dependency] private readonly PolymorphSystem _polymorph = default!;
[Dependency] private readonly MobStateSystem _mobState = default!;
#endregion
@@ -113,6 +120,9 @@ public sealed class WizardSpellsSystem : EntitySystem
SubscribeLocalEvent<FireballSpellEvent>(OnFireballSpell);
SubscribeLocalEvent<ForceSpellEvent>(OnForceSpell);
SubscribeLocalEvent<ArcSpellEvent>(OnArcSpell);
SubscribeLocalEvent<RodFormSpellEvent>(OnRodFormSpell);
SubscribeLocalEvent<BlindSpellEvent>(OnBlindSpell);
SubscribeAllEvent<MutateSpellEvent>(OnMutateSpell);
SubscribeLocalEvent<MagicComponent, BeforeCastSpellEvent>(OnBeforeCastSpell);
}
@@ -838,6 +848,86 @@ public sealed class WizardSpellsSystem : EntitySystem
#endregion
#region Rod Form
private void OnRodFormSpell(RodFormSpellEvent msg)
{
if (!CanCast(msg))
return;
var config = new PolymorphConfiguration
{
Entity = "ImmovableRodWizard",
Duration = 2,
Forced = true,
TransferDamage = true
};
var rod = _polymorph.PolymorphEntity(msg.Performer, config);
var angle = _transformSystem.GetWorldRotation(msg.Performer).ToWorldVec();
if (rod.HasValue)
{
RemComp<InputMoverComponent>(rod.Value);
_throwingSystem.TryThrow(rod.Value, angle, 20, msg.Performer);
}
Cast(msg);
}
#endregion
#region Blind
private void OnBlindSpell(BlindSpellEvent msg)
{
if (!CanCast(msg))
return;
foreach (var e in _lookup.GetEntitiesInRange(msg.Performer, 8))
{
var wizardQuery = GetEntityQuery<WizardComponent>();
var humanoidQuery = GetEntityQuery<HumanoidAppearanceComponent>();
if (!humanoidQuery.HasComponent(e) || !_mobState.IsAlive(e) ||
wizardQuery.HasComponent(e))
continue;
_statusEffectsSystem.TryAddStatusEffect<TemporaryBlindnessComponent>(e, "TemporaryBlindness",
TimeSpan.FromSeconds(5), false);
_chat.TryEmoteWithChat(e, "Scream");
}
Cast(msg);
}
#endregion
#region Mutate
private void OnMutateSpell(MutateSpellEvent msg)
{
if (!CanCast(msg))
return;
var config = new PolymorphConfiguration
{
Entity = "MobHulk",
Duration = 30,
Forced = true,
TransferDamage = true
};
_polymorph.PolymorphEntity(msg.Performer, config);
Cast(msg);
}
#endregion
#region Helpers
private void TurnOffShield(EntityUid uid)

View File

@@ -97,7 +97,7 @@ public sealed partial class IdCardConsoleComponent : Component
[DataField("jobIcons")]
public List<List<string>> JobIcons = new()
{
new List<string> {"Captain", "HeadOfPersonnel", "HeadOfSecurity", "ChiefMedicalOfficer", "ChiefEngineer", "ResearchDirector", "QuarterMaster", "Inspector"},
new List<string> {"Captain", "HeadOfPersonnel", "HeadOfSecurity", "ChiefMedicalOfficer", "ChiefEngineer", "ResearchDirector", "QuarterMaster", "Inspector", "Maid"},
new List<string> {"HeadOfPersonnel", "Lawyer", "Clown", "Bartender", "Reporter", "Chef", "Botanist", "ServiceWorker", "Zookeeper", "Musician", "Librarian", "Janitor", "Chaplain", "Mime", "Boxer", "Passenger", "Visitor", "Borg", "CustomId"},
new List<string> {"HeadOfSecurity", "Warden", "SeniorOfficer", "SecurityOfficer", "Detective", "SecurityCadet", "Brigmedic", "Lawyer"},
new List<string> {"ChiefMedicalOfficer", "SeniorPhysician", "Paramedic", "Chemist", "MedicalDoctor", "Virologist", "Geneticist", "MedicalIntern", "Psychologist"},

View File

@@ -40,6 +40,7 @@ namespace Content.Shared.Alert
MoodDead,
Arousal, //AMOUR
CultBuffed,
BloodSpells,
Knockdown,
RecentlyBlocked,
//WD end

View File

@@ -1,4 +1,5 @@
using Content.Shared.Examine;
using Content.Shared.Whitelist;
namespace Content.Shared.Construction.Steps
{
@@ -11,7 +12,7 @@ namespace Content.Shared.Construction.Steps
[DataField("doAfter")] public float DoAfter { get; private set; }
[DataField]
public bool CultistOnly { get; private set; } // WD
public EntityWhitelist? UserWhitelist { get; private set; } // WD
public IReadOnlyList<IGraphAction> Completed => _completed;

View File

@@ -0,0 +1,22 @@
using Content.Shared.Eui;
using Robust.Shared.Serialization;
namespace Content.Shared._White.Cult.UI;
public enum BloodSpellMessageState : byte
{
Create,
Remove,
Cancel
}
[Serializable, NetSerializable]
public sealed class BloodSpellMessage : EuiMessageBase
{
public readonly BloodSpellMessageState State;
public BloodSpellMessage(BloodSpellMessageState state)
{
State = state;
}
}

View File

@@ -140,7 +140,7 @@ public sealed class WhiteCVars
public static readonly CVarDef<bool> StalinEnabled =
CVarDef.Create("stalin.enabled", true, CVar.SERVERONLY | CVar.ARCHIVE);
public static readonly CVarDef<float> StalinDiscordMinimumAge =
CVarDef.Create("stalin.minimal_discord_age_minutes", 10080.0f, CVar.SERVERONLY | CVar.ARCHIVE);
CVarDef.Create("stalin.minimal_discord_age_minutes", 604800.0f, CVar.SERVERONLY | CVar.ARCHIVE);
/*

View File

@@ -202,4 +202,22 @@ public sealed partial class ArcaneBarrageSpellEvent : InstantActionEvent, ISpeak
public string? Speech { get; private set; }
}
public sealed partial class RodFormSpellEvent : InstantActionEvent, ISpeakSpell
{
[DataField("speech")]
public string? Speech { get; private set; }
}
public sealed partial class BlindSpellEvent : InstantActionEvent, ISpeakSpell
{
[DataField("speech")]
public string? Speech { get; private set; }
}
public sealed partial class MutateSpellEvent : InstantActionEvent, ISpeakSpell
{
[DataField("speech")]
public string? Speech { get; private set; }
}
#endregion

Binary file not shown.

Binary file not shown.

View File

@@ -7998,3 +7998,102 @@
id: 474
time: '2024-08-09T11:24:17.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/594
- author: Aviu
changes:
- message: "\u0421\u043F\u0440\u0430\u0439\u0442\u044B \u043C\u043E\u0434\u0443\u043B\
\u0435\u0439 \u043D\u0430 \u043E\u0440\u0443\u0436\u0438\u044F\u0445 \u0442\u0435\
\u043F\u0435\u0440\u044C \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u044E\
\u0442\u0441\u044F \u043D\u043E\u0440\u043C\u0430\u043B\u044C\u043D\u043E."
type: Add
- message: "\u0422\u0435\u043B\u0435\u0441\u043A\u043E\u043F\u0438\u0447\u0435\u0441\
\u043A\u0438\u0439 \u043F\u0440\u0438\u0446\u0435\u043B."
type: Add
- message: "\u041E\u0442\u0434\u0435\u043B\u044C\u043D\u0430\u044F \u043A\u0430\u0442\
\u0435\u0433\u043E\u0440\u0438\u044F \u0434\u043B\u044F \u043C\u043E\u0434\u0443\
\u043B\u0435\u0439 \u0432 \u043F\u0440\u043E\u0442\u043E\u043B\u0430\u0442\u0435\
."
type: Add
- message: "\u0411\u043E\u043B\u044C\u0448\u0438\u043D\u0441\u0442\u0432\u043E \u043C\
\u043E\u0434\u0443\u043B\u0435\u0439 \u043F\u0435\u0440\u0435\u043D\u0435\u0441\
\u0435\u043D\u043E \u0432 \u04421 \u0438 \u04422 \u0442\u0435\u0445\u043D\u043E\
\u043B\u043E\u0433\u0438\u0438 \u0430\u0440\u0441\u0435\u043D\u0430\u043B\u0430\
."
type: Tweak
- message: "\u0423\u043C\u0435\u043D\u044C\u0448\u0435\u043D\u0430 \u0441\u0442\u043E\
\u0438\u043C\u043E\u0441\u0442\u044C \u043D\u0435\u043A\u043E\u0442\u043E\u0440\
\u044B\u0445 \u043C\u043E\u0434\u0443\u043B\u0435\u0439."
type: Tweak
id: 475
time: '2024-08-09T12:36:35.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/596
- author: ThereDrD0
changes:
- message: "\u041E\u0442\u043A\u0430\u0442 \u043E\u0442\u043A\u0430\u0442\u0430"
type: Remove
id: 476
time: '2024-08-09T18:08:34.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/601
- author: RinKeeper
changes:
- message: "\u043D\u043E\u0432\u044B\u0435 \u0437\u0430\u043A\u043B\u0438\u043D\u0430\
\u043D\u0438\u044F \u0434\u043B\u044F \u043C\u0430\u0433\u0430"
type: Add
id: 477
time: '2024-08-09T19:10:42.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/599
- author: keslik
changes:
- message: "\u0440\u0430\u0437\u0434\u0435\u043B \u0445\u0438\u043C\u0438\u0438\
\ \u0441\u043D\u043E\u0432\u0430 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\
\u0435\u0442\u0441\u044F \u0432 \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0441\
\u0442\u0432\u0435"
type: Fix
id: 478
time: '2024-08-10T18:41:14.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/604
- author: Spatison
changes:
- message: "\u0421\u0435\u0440\u0432\u0435\u0440 \u0441\u043E\u043E\u0431\u0449\u0435\
\u043D\u0438\u0439 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0440\
\u0430\u0437\u043C\u0435\u0448\u0435\u043D \u043D\u0430 \u043A\u0430\u0440\u0442\
\u0435"
type: Fix
id: 479
time: '2024-08-11T10:54:50.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/606
- author: Aviu
changes:
- message: "\u0422\u0435\u043F\u0435\u0440\u044C \u0437\u0430\u043A\u043B\u0438\u043D\
\u0430\u043D\u0438\u044F \u043A\u0440\u043E\u0432\u0438 \u0441\u043E\u0437\u0434\
\u0430\u044E\u0442\u0441\u044F \u0438 \u0443\u0434\u0430\u043B\u044F\u044E\u0442\
\u0441\u044F \u0447\u0435\u0440\u0435\u0437 \u0430\u043B\u0451\u0440\u0442,\
\ \u0430 \u043D\u0435 \u0432\u0435\u0440\u0431. \u0422\u0430\u043A \u043D\u0430\
\u043C\u043D\u043E\u0433\u043E \u0443\u0434\u043E\u0431\u043D\u0435\u0439 \u0438\
\ \u043F\u043E\u043D\u044F\u0442\u043D\u0435\u0439."
type: Add
id: 480
time: '2024-08-11T10:55:01.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/607
- author: Warete
changes:
- message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u041C\
\u0443\u0441\u0430, \u0442\u0435\u043F\u0435\u0440\u044C \u043E\u043D \u0441\
\u043D\u043E\u0432\u0430 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442."
type: Fix
id: 481
time: '2024-08-11T11:24:52.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/608
- author: PointPNG
changes:
- message: "\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0422\u0440\
\u0438\u0443\u043C\u0444\u0430."
type: Add
- message: "\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0412\u0430\
\u043D\u0434\u0435\u0440\u0411\u043E\u043A\u0441\u0430."
type: Add
- message: "\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0414\u0440\
\u0430\u0439\u0434\u043E\u043A\u0430."
type: Add
id: 482
time: '2024-08-11T14:52:30.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/609

View File

@@ -2,3 +2,14 @@ apocalypse-rune-title = Вы готовы к финальной битве?
apocalypse-rune-text = Это последний шаг к вызову Нар'Си; это долгий, болезненный ритуал, и экипаж будет предупрежден о вашем присутствии.
apocalypse-rune-accept-button = Жизнь за Нар'Си!
apocalypse-rune-deny-button = Нет
blood-spells-title = Кровавые заклинания
blood-spells-text = Заклинания крови - важнейший козырь в рукаве культиста.
Вы можете создать до двух заклинаний без руны могущества.
С помощью руны могущества можно создать до пяти заклинаний.
Каждое созданное заклинание отнимает у вас большое количество крови;
расход крови и время создания заклинаний уменьшается под воздействием усиления культа.
Заклинания, созданные на руне могущества не требуют крови и создаются мгновенно.
Удаление заклинаний не отнимает кровь и происходит мгновенно.
blood-spells-create-button = Создать заклинание
blood-spells-remove-button = Удалить заклинание

View File

@@ -1,4 +1,4 @@
cult-title = Культ
cult-title = Культ
cult-description = Страх — самое древнее и сильное из человеческих чувств, а самый древний и самый сильный страх — страх неведомого
cult-role-greeting =
Вы - член культа!
@@ -12,7 +12,6 @@ cult-condition-failure = Экипаж уничтожил культ
cult-condition-draw = Ничейный исход
cult-role-briefing-short = Используйте '^' для связи с другими членами культа.
cult-role-briefing-hint = Нажмите правой кнопкой мыши по своему персонажу и выберите меню 'Культ' для действий, связанных с культом.
cultists-list-start = Культистами были:
cultists-list-name = - [color=White]{ $name }[/color] ([color=gray]{ $user }[/color])

View File

@@ -0,0 +1,2 @@
blood-spell-remove-no-spells = Заклинания крови отсутствуют.
blood-spell-create-too-much = Начертите руну могущества, чтобы создать больше двух заклинаний крови.

View File

@@ -1,9 +0,0 @@
verb-categories-cult = Культ
verb-spell-create-text = Создать заклинание крови
verb-spell-create-message = Вы можете создать два заклинания крови без руны могущества.
verb-spell-create-too-much = Начертите руну могущества, чтобы создать больше двух заклинаний крови.
verb-spell-remove-text = Удалить заклинание крови
verb-spell-remove-message = Убрать любое из созданных заклинаний крови.
verb-spell-remove-no-spells = Заклинания крови отсутствуют.

View File

@@ -22,6 +22,9 @@ carry-start = { $carrier } пытается взять вас на руки!
alerts-knockdown-name = Лежу
alerts-knockdown-desc = Не могу встать.
alerts-blood-spells-name = Заклинания крови
alerts-blood-spells-desc = Нажмите, чтобы создать или удалить заклинания крови.
melee-block-event-blocked = заблокировал!
alerts-blocked-name = Атака заблокирована
alerts-blocked-desc = Невозможно блокировать некоторое время.

View File

@@ -19,6 +19,9 @@ scroll-component-smite = кару
scroll-component-mindswap = подмену сознания
scroll-component-timestop = остановку времени
scroll-component-barrage = магический залп
scroll-component-rodform = форму стержня
scroll-component-blind = ослепление
scroll-component-mutate = мутацию
ent-BaseScroll = магический свиток
.desc = Этот древний пергамент, ставший реликвией в арканных преданиях, хранит в себе бесчисленные мистические заклятия и забытые заклинания.
@@ -58,3 +61,7 @@ ent-ScrollTimestop = свиток остановки времени
.desc = { ent-BaseScroll.desc }
ent-ScrollArcaneBarrage = свиток магического залпа
.desc = { ent-BaseScroll.desc }
ent-ScrollRodForm = свиток формы стержня
.desc = { ent-BaseScroll.desc }
ent-ScrollBlind = свиток ослепления
.desc = { ent-BaseScroll.desc }

View File

@@ -49,6 +49,15 @@ spellbook-timestop-desc = { ent-ActionTimestopSpell.desc }
spellbook-barrage-name = { ent-ActionArcaneBarrageSpell }
spellbook-barrage-desc = { ent-ActionArcaneBarrageSpell.desc }
spellbook-rod-name = {ent-ActionRodFormSpell}
spellbook-rod-desc = {ent-ActionRodFormSpell.desc}
spellbook-blind-name = {ent-ActionBlindSpell}
spellbook-blind-desc = {ent-ActionBlindSpell.desc}
spellbook-mutate-name = {ent-ActionMutateSpell}
spellbook-mutate-desc = {ent-ActionMutateSpell.desc}
spellbook-hardsuit-name = Скафандр волшебника
spellbook-hardsuit-desc = Украшенный магическими драгоценными камнями скафандр, функционирующий так же, как и обычная мантия волшебника, но в то же время является пригодным для использования в космосе и бронированным. Небольшое замедление. Теперь вы можете произносить заклинания в космосе и местах с низкой температурой! Имеет функцию энергетического щита,который защищает от всех снарядов. Щит разряжается при получении урона и автоматически заряжается.

View File

@@ -51,3 +51,12 @@ ent-ActionTimestopSpell = Остановка времени
ent-ActionArcaneBarrageSpell = Магический залп
.desc = Выстрелите потоком магической энергии в ваших врагов с помощью этого мощного заклинания. Для использования требуются обе свободные руки. Не работает без волшебной мантии и шляпы.
ent-ActionRodFormSpell = Форма стержня
.desc = Превращает вас в неостановимый стержень, который разрушает все на своем пути и наносит тяжёлые повреждения любым живым существам. Будьте осторожны с ипользованием, вы не сможете поменять направление движения до окончания заклинания.
ent-ActionBlindSpell = Ослепление
.desc = Ослепляет всех живых существ в небольшом радиусе от вас. Не действует на других магов.
ent-ActionMutateSpell = Мутация
.desc = Ненадолго преврашает вас в халка, который может стрелять лазерами из глаз.

View File

@@ -42,6 +42,8 @@ ent-ClothingUnderwearStockingsLightPurple = чулки
.desc = Светло-фиолетовые.
ent-ClothingUnderwearStockingsLightYellow = чулки
.desc = Желтые.
ent-ClothingUnderwearStockingsLightWhite = чулки
.desc = Белые.
ent-ClothingUnderwearSocksStripedKnee = носки
.desc = Черно-белые.
ent-ClothingUnderwearSocksStripedThigh = носки

View File

@@ -50,3 +50,5 @@ job-description-senior-researcher = Обучайте новых ученых о
job-description-senior-physician = Научите новых медиков основам ухода за ранеными, химии, диагностике больных и избавлению от мертвых.
job-description-senior-officer = Научите новых офицеров основам обысков, предварительных арестов, тюремного заключения и тому, как правильно стрелять из огнестрельного оружия.
job-description-senior-salvage-specialist = Покажите всем коллегам как профессионалы обчищают обломки и выполняют экспедиции.
job-description-maid = Поддерживайте чистоту и порядок, параллельно приглядывая за Капитаном.
job-description-bomzh = Доживайте свою жизнь, не в самых лучших для этого условиях.

View File

@@ -50,6 +50,8 @@ job-name-senior-researcher = ведущий исследователь
job-name-senior-physician = медицинский офицер
job-name-senior-officer = ветеран СБ
job-name-senior-salvage-specialist = охотник карго
job-name-maid = прислуга
job-name-bomzh = бомж
# Role timers - Make these alphabetical or I cut you
JobAtmosphericTechnician = атмосферный техник

View File

@@ -8,4 +8,11 @@ ent-SilencerModule = глушитель
.desc = Скрывает пламя огня и приглушает звук во время выстрела.
ent-AcceleratorModule = продвинутый модуль
.desc = Разработка NanoTrasen специально для отдела Службы Безопасности. Меняет затворную раму без видимых изменений, за счет этого увеличивает скорострельность оружия.
ent-HolographicSightModule = голографической прицел
.desc = Позоляет целиться, небольшое приближение.
ent-TelescopicSightModule = телескопический прицел
.desc = Позоляет целиться, большое приближение.
gun-modules = Установленные модули: [color=cyan]{ $modules }[/color].
research-technology-modules-basic = Базовые модули
research-technology-modules-advanced = Продвинутые модули
lathe-category-modules = Модули

View File

@@ -38,3 +38,7 @@ ent-ClothingUniformJumpskirtGenetics = юбка генетика
.desc = Она изготовлена из специального волокна, которое обеспечивает особую защиту от биологической опасности. На ней нашивка с присвоением звания генетика.
ent-ClothingUniformJumpskirtBrigmedic = юбка бригмедика
.desc = Данная униформа выдается квалифицированному персоналу, прошедшему обучение. Никого не волнует, что тренировка заняла полдня.
ent-ClothingUniformJumpskirtMaid = платье прислуги
.desc = Элегантное платье горничной. Позволяет чувствовать себя комфортно, безопасно и чисто вокруг.
ent-ClothingUniformJumpskirtMaidMini = платье прислуги
.desc = Элегантное укороченное платье служанки. Создает ощущение комфорта, безопасности и чистоты вокруг вас. Этот вид расширяет горизонт в ваших глазах.

View File

@@ -61,3 +61,6 @@ ent-ClothingOuterJacketInspector = китель инспектора
ent-ClothingOuterOverCoatInspector = шинель инспектора
.desc = Строгая офицерская шинель инспектора. Пусть экипаж боится вас!
.suffix = { "" }
ent-ClothingOuterOverCoatBomzh = потрёпанная куртка
.desc = Куртка прошедшая через многое, время не сохранило её и оставило свои шрамы.
.suffix = { "" }

View File

@@ -19,3 +19,6 @@ ent-ClothingShoesBootsLaceup = шнурованные туфли
ent-ClothingShoesBootsInspector = сапоги инспектора
.desc = Высокие, тяжёлые кожаные сапоги инспектора. Выглядят блестяще и мордонабивательно!
.suffix = { "" }
ent-ClothingShoesMaid = туфли прислуги
.desc = Туфли прислуги. Блестят от чистоты.
.suffix = { "" }

View File

@@ -262,3 +262,6 @@ ent-ClothingUniformJumpsuitWhiteInspector = свободная форма инс
ent-ClothingUniformJumpsuitWhiteInspectorFormal = cтрогая форма инспектора
.desc = Рубашка, жилетка, штаны со стрелками и яркий красный галстук. Это комплект строгой официальной формы возможно самого ужасающего человека на станции - инспектора.
.suffix = { "" }
ent-ClothingUniformJumpsuitWhiteBomzh = обноски
.desc = Потрепанная форма человека, который прошел через многое. Вас поражают не столько дыры во всех местах, сколько ее запах.
.suffix = { "" }

View File

@@ -133,3 +133,9 @@ ent-CluwnePDA = ПДА клувна
ent-ResearchAssistantPDA = ПДА научного ассистента
.desc = Почему он не фиолетовый?
.suffix = { "" }
ent-MaidPDA = ПДА прислуги
.desc = Сияет от собственной чистоты.
.suffix = { "" }
ent-BomzhPDA = убитый ПДА
.desc = Жизнь прошла, и все что остаётся делать - это двигаться вперед.
.suffix = { "" }

View File

@@ -139,3 +139,9 @@ ent-CluwneIDCard = ID карта клувна
ent-ResearchAssistantIDCard = ID карта научного ассистента
.desc = { ent-IDCardStandard.desc }
.suffix = { "" }
ent-MaidIDCard = ID карта прислуги
.desc = { ent-IDCardStandard.desc }
.suffix = { "" }
ent-BomzhIDCard = грязная ID карта
.desc = Старая и грязная карта дожившая до нашего времени.
.suffix = { "" }

View File

@@ -12418,8 +12418,6 @@ entities:
pos: 0.5,18.5
parent: 2
- type: DeviceNetwork
configurators:
- invalid
- type: AtmosPipeColor
color: '#1E90FFFF'
- proto: GasVentScrubber
@@ -12687,8 +12685,6 @@ entities:
pos: 0.5,19.5
parent: 2
- type: DeviceNetwork
configurators:
- invalid
- type: AtmosPipeColor
color: '#B22222FF'
- proto: GeneratorBasic15kW

View File

@@ -39121,6 +39121,14 @@ entities:
- type: Transform
pos: -8.5,71.5
parent: 2
- proto: BlackComfyChair
entities:
- uid: 19449
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: -25.5,133.5
parent: 2
- proto: BlastDoor
entities:
- uid: 2599
@@ -43231,23 +43239,6 @@ entities:
- type: Transform
pos: 58.41194,49.740475
parent: 2
- proto: BoxTrashbag
entities:
- uid: 3180
components:
- type: Transform
pos: -0.6503968,110.77614
parent: 2
- uid: 3181
components:
- type: Transform
pos: -66.12088,110.63351
parent: 2
- uid: 3182
components:
- type: Transform
pos: 88.4097,115.58307
parent: 2
- proto: BoxVial
entities:
- uid: 3183
@@ -43336,6 +43327,14 @@ entities:
rot: 1.5707963267948966 rad
pos: -8.5,20.5
parent: 2
- proto: BrownComfyChair
entities:
- uid: 19450
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: 4.5,81.5
parent: 2
- proto: BruteAutoInjector
entities:
- uid: 3196
@@ -77998,6 +77997,8 @@ entities:
components:
- type: Transform
parent: 3032
- type: RCDAmmo
charges: 6
- type: Physics
canCollide: False
- type: InsideEntityStorage
@@ -78006,20 +78007,28 @@ entities:
- type: Transform
pos: -49.556313,-20.729687
parent: 2
- type: RCDAmmo
charges: 6
- uid: 9963
components:
- type: Transform
pos: -13.190808,85.237595
parent: 2
- type: RCDAmmo
charges: 6
- uid: 9964
components:
- type: Transform
pos: -77.70585,79.564644
parent: 2
- type: RCDAmmo
charges: 6
- uid: 9966
components:
- type: Transform
parent: 9965
- type: RCDAmmo
charges: 6
- type: Physics
canCollide: False
- uid: 9967
@@ -78027,41 +78036,57 @@ entities:
- type: Transform
pos: -64.43138,0.9170437
parent: 2
- type: RCDAmmo
charges: 6
- uid: 9968
components:
- type: Transform
pos: -38.37072,33.583824
parent: 2
- type: RCDAmmo
charges: 6
- uid: 9969
components:
- type: Transform
pos: -66.70834,40.585205
parent: 2
- type: RCDAmmo
charges: 6
- uid: 9970
components:
- type: Transform
pos: 3.4988148,95.52045
parent: 2
- type: RCDAmmo
charges: 6
- uid: 9971
components:
- type: Transform
pos: -89.55062,110.68889
parent: 2
- type: RCDAmmo
charges: 6
- uid: 9972
components:
- type: Transform
pos: -20.568096,126.62993
parent: 2
- type: RCDAmmo
charges: 6
- uid: 9973
components:
- type: Transform
pos: -37.499958,186.68517
parent: 2
- type: RCDAmmo
charges: 6
- uid: 9974
components:
- type: Transform
pos: -113.38121,73.4664
parent: 2
- type: RCDAmmo
charges: 6
- proto: CableApcStack1
entities:
- uid: 9975
@@ -78070,92 +78095,124 @@ entities:
rot: -1.5707963267948966 rad
pos: -23.034021,11.740404
parent: 2
- type: RCDAmmo
charges: 0
- uid: 9976
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: -14.94465,-88.64652
parent: 2
- type: RCDAmmo
charges: 0
- uid: 9977
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -12.180534,-87.606926
parent: 2
- type: RCDAmmo
charges: 0
- uid: 9978
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: -12.547452,-87.82708
parent: 2
- type: RCDAmmo
charges: 0
- uid: 9979
components:
- type: Transform
pos: -58.41682,-60.87189
parent: 2
- type: RCDAmmo
charges: 0
- uid: 9980
components:
- type: Transform
pos: -57.316067,-60.349033
parent: 2
- type: RCDAmmo
charges: 0
- uid: 9981
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: -60.233063,-59.688583
parent: 2
- type: RCDAmmo
charges: 0
- uid: 9982
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 24.570454,-34.66062
parent: 2
- type: RCDAmmo
charges: 0
- uid: 9983
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 29.472628,-34.42788
parent: 2
- type: RCDAmmo
charges: 0
- uid: 9984
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: 30.610075,-33.74908
parent: 2
- type: RCDAmmo
charges: 0
- uid: 9985
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: 24.460377,-35.467842
parent: 2
- type: RCDAmmo
charges: 0
- uid: 9986
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 39.556858,-33.49965
parent: 2
- type: RCDAmmo
charges: 0
- uid: 9987
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 16.62627,-33.320583
parent: 2
- type: RCDAmmo
charges: 0
- uid: 9988
components:
- type: Transform
pos: 16.565117,-32.488903
parent: 2
- type: RCDAmmo
charges: 0
- uid: 9989
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 23.561428,-35.449497
parent: 2
- type: RCDAmmo
charges: 0
- uid: 59504
components:
- type: Transform
pos: 76.85164,62.512146
parent: 2
- type: RCDAmmo
charges: 0
- proto: CableApcStack10
entities:
- uid: 9990
@@ -78164,17 +78221,23 @@ entities:
rot: -1.5707963267948966 rad
pos: -74.97286,84.567825
parent: 2
- type: RCDAmmo
charges: 2
- uid: 9991
components:
- type: Transform
pos: -30.388348,-60.313786
parent: 2
- type: RCDAmmo
charges: 2
- uid: 9992
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -103.81444,103.330605
parent: 2
- type: RCDAmmo
charges: 2
- proto: CableHV
entities:
- uid: 9993
@@ -93079,16 +93142,22 @@ entities:
- type: Transform
pos: -21.64435,115.74267
parent: 2
- type: RCDAmmo
charges: 6
- uid: 12952
components:
- type: Transform
pos: -89.440544,110.24859
parent: 2
- type: RCDAmmo
charges: 6
- uid: 12953
components:
- type: Transform
pos: -113.546326,73.57648
parent: 2
- type: RCDAmmo
charges: 6
- proto: CableHVStack1
entities:
- uid: 12954
@@ -93097,6 +93166,8 @@ entities:
rot: 3.141592653589793 rad
pos: -101.94316,107.64189
parent: 2
- type: RCDAmmo
charges: 0
- proto: CableHVStack10
entities:
- uid: 12955
@@ -93104,12 +93175,16 @@ entities:
- type: Transform
pos: -51.122883,-19.838013
parent: 2
- type: RCDAmmo
charges: 2
- uid: 12956
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -32.441956,-94.69375
parent: 2
- type: RCDAmmo
charges: 2
- proto: CableMV
entities:
- uid: 12957
@@ -109509,41 +109584,57 @@ entities:
- type: Transform
pos: -21.545202,115.584145
parent: 2
- type: RCDAmmo
charges: 6
- uid: 16197
components:
- type: Transform
pos: -66.46985,40.43844
parent: 2
- type: RCDAmmo
charges: 6
- uid: 16198
components:
- type: Transform
pos: 3.3483546,95.75718
parent: 2
- type: RCDAmmo
charges: 6
- uid: 16199
components:
- type: Transform
pos: -89.53227,110.432045
parent: 2
- type: RCDAmmo
charges: 6
- uid: 16200
components:
- type: Transform
pos: -20.42133,126.46481
parent: 2
- type: RCDAmmo
charges: 6
- uid: 16201
components:
- type: Transform
pos: -37.199036,186.53453
parent: 2
- type: RCDAmmo
charges: 6
- uid: 16202
components:
- type: Transform
pos: -33.667137,-93.23034
parent: 2
- type: RCDAmmo
charges: 6
- uid: 16203
components:
- type: Transform
pos: -113.638596,73.631516
parent: 2
- type: RCDAmmo
charges: 6
- proto: CableMVStack1
entities:
- uid: 16204
@@ -109552,27 +109643,37 @@ entities:
rot: 1.5707963267948966 rad
pos: -57.55402,-60.57499
parent: 2
- type: RCDAmmo
charges: 0
- uid: 16205
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: -59.73718,-59.95123
parent: 2
- type: RCDAmmo
charges: 0
- uid: 16206
components:
- type: Transform
pos: -155.60562,46.636147
parent: 2
- type: RCDAmmo
charges: 0
- uid: 16207
components:
- type: Transform
pos: -157.72458,46.25088
parent: 2
- type: RCDAmmo
charges: 0
- uid: 16208
components:
- type: Transform
pos: -157.3118,46.608627
parent: 2
- type: RCDAmmo
charges: 0
- proto: CableMVStack10
entities:
- uid: 59502
@@ -109580,6 +109681,8 @@ entities:
- type: Transform
pos: 78.28262,61.50924
parent: 2
- type: RCDAmmo
charges: 2
- proto: CableTerminal
entities:
- uid: 16209
@@ -128449,30 +128552,6 @@ entities:
rot: 1.5707963267948966 rad
pos: -30.5,-70.5
parent: 2
- proto: ComfyChairBlack
entities:
- uid: 19449
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: -25.5,133.5
parent: 2
- proto: ComfyChairBrown
entities:
- uid: 19450
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: 4.5,81.5
parent: 2
- proto: ComfyChairEngineering
entities:
- uid: 19451
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -130.5,63.5
parent: 2
- proto: ComisarHampter
entities:
- uid: 69208
@@ -128480,6 +128559,9 @@ entities:
- type: Transform
pos: -28.52722,-66.546715
parent: 2
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- proto: ComplexXenoArtifact
entities:
- uid: 19453
@@ -161724,6 +161806,15 @@ entities:
- type: Transform
pos: 0.5,4.5
parent: 69257
- uid: 70066
components:
- type: Transform
anchored: False
pos: 5.5,7.5
parent: 1
- type: Physics
canCollide: True
bodyType: Dynamic
- proto: GasPipeStraight
entities:
- uid: 24286
@@ -208507,11 +208598,17 @@ entities:
- type: Transform
pos: 14.483872,121.043564
parent: 2
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- uid: 30106
components:
- type: Transform
pos: 87.943825,111.7361
parent: 2
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- proto: GoldOre
entities:
- uid: 1907
@@ -208674,6 +208771,9 @@ entities:
- type: Transform
pos: -28.529352,-60.655407
parent: 2
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- proto: Grille
entities:
- uid: 30111
@@ -220113,6 +220213,9 @@ entities:
- type: Transform
pos: -30.633062,118.64446
parent: 2
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- proto: Handcuffs
entities:
- uid: 32031
@@ -222055,12 +222158,12 @@ entities:
- type: Transform
pos: 48.679012,100.4741
parent: 2
- proto: Jukebox
- proto: JudgeHammer
entities:
- uid: 70064
- uid: 33060
components:
- type: Transform
pos: -27.5,23.5
pos: -84.3367,101.64872
parent: 2
- proto: KitchenElectricGrill
entities:
@@ -227032,13 +227135,6 @@ entities:
- type: Transform
pos: -10.052265,-83.296524
parent: 2
- proto: JudgeHammer
entities:
- uid: 33060
components:
- type: Transform
pos: -84.3367,101.64872
parent: 2
- proto: OnionRedSeeds
entities:
- uid: 1493
@@ -227075,6 +227171,14 @@ entities:
- type: Transform
pos: -8.5,73.5
parent: 2
- proto: OrangeComfyChair
entities:
- uid: 19451
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -130.5,63.5
parent: 2
- proto: OrangeSeeds
entities:
- uid: 1494
@@ -228861,10 +228965,14 @@ entities:
- type: Transform
pos: -57.620483,-16.370438
parent: 2
- type: RCDAmmo
charges: 15
- uid: 33284
components:
- type: Transform
parent: 33283
- type: RCDAmmo
charges: 15
- type: Physics
canCollide: False
- uid: 33285
@@ -228872,32 +228980,44 @@ entities:
- type: Transform
pos: -25.597921,127.37408
parent: 2
- type: RCDAmmo
charges: 15
- uid: 33286
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -26.553905,35.55454
parent: 2
- type: RCDAmmo
charges: 15
- uid: 33287
components:
- type: Transform
pos: 3.4932368,44.51775
parent: 2
- type: RCDAmmo
charges: 15
- uid: 33288
components:
- type: Transform
pos: 17.52216,-31.405308
parent: 2
- type: RCDAmmo
charges: 15
- uid: 33289
components:
- type: Transform
pos: -47.50064,147.55281
parent: 2
- type: RCDAmmo
charges: 15
- uid: 69660
components:
- type: Transform
pos: -5.5219536,4.607445
parent: 69550
- type: RCDAmmo
charges: 15
- proto: PartRodMetal1
entities:
- uid: 33290
@@ -228905,47 +229025,63 @@ entities:
- type: Transform
pos: -62.207596,-7.4599667
parent: 2
- type: RCDAmmo
charges: 0
- uid: 33291
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 25.079866,-43.574112
parent: 2
- type: RCDAmmo
charges: 0
- uid: 33292
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 22.726233,-40.86249
parent: 2
- type: RCDAmmo
charges: 0
- uid: 33293
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 29.174543,-36.988743
parent: 2
- type: RCDAmmo
charges: 0
- uid: 33294
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 27.046602,-35.406967
parent: 2
- type: RCDAmmo
charges: 0
- uid: 33295
components:
- type: Transform
pos: 24.91866,-36.79506
parent: 2
- type: RCDAmmo
charges: 0
- uid: 33296
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 26.434011,-40.28143
parent: 2
- type: RCDAmmo
charges: 0
- uid: 33297
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 34.687847,-40.08774
parent: 2
- type: RCDAmmo
charges: 0
- proto: Pen
entities:
- uid: 2966
@@ -230263,6 +230399,9 @@ entities:
- type: Transform
pos: -51.48786,62.72632
parent: 2
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- proto: PlushieDiona
entities:
- uid: 33512
@@ -230270,6 +230409,9 @@ entities:
- type: Transform
pos: -17.725948,167.44673
parent: 2
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- proto: PlushieHuman
entities:
- uid: 33513
@@ -230277,6 +230419,9 @@ entities:
- type: Transform
pos: 13.506058,80.49194
parent: 2
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- proto: PlushieMoth
entities:
- uid: 33514
@@ -230284,6 +230429,9 @@ entities:
- type: Transform
pos: -16.6093,11.6583185
parent: 2
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- proto: PlushieNar
entities:
- uid: 33515
@@ -230291,11 +230439,17 @@ entities:
- type: Transform
pos: -51.529022,116.54536
parent: 2
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- uid: 33516
components:
- type: Transform
pos: -37.477978,-66.72124
parent: 2
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- proto: PlushiePenguin
entities:
- uid: 33517
@@ -230303,6 +230457,9 @@ entities:
- type: Transform
pos: -22.402647,11.665074
parent: 2
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- proto: PlushieRouny
entities:
- uid: 33518
@@ -230310,6 +230467,9 @@ entities:
- type: Transform
pos: -42.644043,159.44803
parent: 2
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- proto: PlushieSharkBlue
entities:
- uid: 32926
@@ -230318,6 +230478,9 @@ entities:
parent: 32925
- type: Physics
canCollide: False
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- proto: PlushieSnake
entities:
- uid: 33519
@@ -230325,6 +230488,9 @@ entities:
- type: Transform
pos: -45.676407,-28.610764
parent: 2
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- proto: PonderingOrb
entities:
- uid: 33520
@@ -254674,6 +254840,8 @@ entities:
- type: Transform
pos: 73.32567,123.56291
parent: 2
- type: RCDAmmo
charges: 60
- proto: SheetPlastic
entities:
- uid: 37938
@@ -254681,46 +254849,64 @@ entities:
- type: Transform
pos: 16.478594,57.53977
parent: 2
- type: RCDAmmo
charges: 15
- uid: 37939
components:
- type: Transform
pos: -23.45443,64.262726
parent: 2
- type: RCDAmmo
charges: 15
- uid: 37940
components:
- type: Transform
pos: -4.528126,86.514656
parent: 2
- type: RCDAmmo
charges: 15
- uid: 37941
components:
- type: Transform
pos: -27.513552,130.57838
parent: 2
- type: RCDAmmo
charges: 15
- uid: 37942
components:
- type: Transform
pos: -37.5099,30.453205
parent: 2
- type: RCDAmmo
charges: 15
- uid: 37943
components:
- type: Transform
pos: -33.536163,42.51737
parent: 2
- type: RCDAmmo
charges: 15
- uid: 37944
components:
- type: Transform
pos: -66.521996,37.51328
parent: 2
- type: RCDAmmo
charges: 15
- uid: 37945
components:
- type: Transform
pos: 44.516968,-32.511047
parent: 2
- type: RCDAmmo
charges: 15
- uid: 69194
components:
- type: Transform
pos: -185.5524,87.41397
parent: 2
- type: RCDAmmo
charges: 15
- proto: SheetRGlass
entities:
- uid: 37946
@@ -254728,21 +254914,29 @@ entities:
- type: Transform
pos: -62.516766,59.543755
parent: 2
- type: RCDAmmo
charges: 60
- uid: 37947
components:
- type: Transform
pos: -103.62098,59.72208
parent: 2
- type: RCDAmmo
charges: 60
- uid: 37948
components:
- type: Transform
pos: -103.422676,59.583378
parent: 2
- type: RCDAmmo
charges: 60
- uid: 37949
components:
- type: Transform
pos: 4.5308485,96.54514
parent: 2
- type: RCDAmmo
charges: 60
- proto: SheetRPGlass
entities:
- uid: 37950
@@ -254750,6 +254944,8 @@ entities:
- type: Transform
pos: -102.49067,59.60319
parent: 2
- type: RCDAmmo
charges: 90
- proto: SheetSteel
entities:
- uid: 18943
@@ -254799,6 +254995,8 @@ entities:
parent: 2
- type: Stack
count: 15
- type: RCDAmmo
charges: 15
- uid: 37959
components:
- type: Transform
@@ -262740,6 +262938,13 @@ entities:
- type: Transform
pos: -32.5,32.5
parent: 2
- proto: SpawnPointBomzh
entities:
- uid: 70064
components:
- type: Transform
pos: 4.5,-1.5
parent: 2
- proto: SpawnPointBorg
entities:
- uid: 39024
@@ -263173,6 +263378,13 @@ entities:
- type: Transform
pos: -39.5,-14.5
parent: 2
- proto: SpawnPointMaid
entities:
- uid: 70065
components:
- type: Transform
pos: 8.5,105.5
parent: 2
- proto: SpawnPointMedicalDoctor
entities:
- uid: 39103
@@ -274145,11 +274357,17 @@ entities:
- type: Transform
pos: -193.65602,56.712452
parent: 2
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- uid: 40856
components:
- type: Transform
pos: -193.3121,56.561806
parent: 2
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- proto: ToyFigurineChiefEngineer
entities:
- uid: 40857
@@ -274298,11 +274516,17 @@ entities:
- type: Transform
pos: -31.47967,93.605835
parent: 2
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- uid: 40879
components:
- type: Transform
pos: -37.69655,98.55777
parent: 2
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- proto: ToySpawner
entities:
- uid: 40880
@@ -274324,6 +274548,21 @@ entities:
parent: 2
- proto: TrashBag
entities:
- uid: 3180
components:
- type: Transform
pos: -0.6503968,110.77614
parent: 2
- uid: 3181
components:
- type: Transform
pos: -66.12088,110.63351
parent: 2
- uid: 3182
components:
- type: Transform
pos: 88.4097,115.58307
parent: 2
- uid: 40883
components:
- type: Transform
@@ -275727,6 +275966,9 @@ entities:
- type: Transform
pos: 12.430514,83.66318
parent: 2
- type: ContainerContainer
containers:
item: !type:ContainerSlot {}
- proto: VoiceRecorder
entities:
- uid: 41081

File diff suppressed because it is too large Load Diff

View File

@@ -121083,6 +121083,14 @@ entities:
- type: Transform
pos: -12.5,22.5
parent: 2
- proto: JudgeHammer
entities:
- uid: 16255
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: 11.43972,52.48155
parent: 2
- proto: Jukebox
entities:
- uid: 8701
@@ -124303,14 +124311,6 @@ entities:
- type: Transform
pos: 23.41431,32.61994
parent: 2
- proto: JudgeHammer
entities:
- uid: 16255
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: 11.43972,52.48155
parent: 2
- proto: OperatingTable
entities:
- uid: 9308
@@ -132930,49 +132930,49 @@ entities:
pos: 6.7808495,-46.50002
parent: 2
- type: RCDAmmo
charges: 45
charges: 67
- uid: 24069
components:
- type: Transform
pos: 6.7808495,-46.030556
parent: 2
- type: RCDAmmo
charges: 45
charges: 67
- uid: 24070
components:
- type: Transform
pos: 6.7808495,-45.564182
parent: 2
- type: RCDAmmo
charges: 45
charges: 67
- uid: 24071
components:
- type: Transform
pos: 6.4999847,-46.441338
parent: 2
- type: RCDAmmo
charges: 45
charges: 67
- uid: 24072
components:
- type: Transform
pos: 6.4999847,-45.968784
parent: 2
- type: RCDAmmo
charges: 45
charges: 67
- uid: 24073
components:
- type: Transform
pos: 6.4999847,-45.502415
parent: 2
- type: RCDAmmo
charges: 45
charges: 67
- uid: 24203
components:
- type: Transform
pos: 4.636591,-46.013115
parent: 2
- type: RCDAmmo
charges: 45
charges: 67
- proto: ReagentContainerFlour
entities:
- uid: 17280
@@ -144456,6 +144456,13 @@ entities:
- type: Transform
pos: 34.5,-6.5
parent: 2
- proto: SpawnPointBomzh
entities:
- uid: 19061
components:
- type: Transform
pos: -58.5,-0.5
parent: 2
- proto: SpawnPointBotanist
entities:
- uid: 18934
@@ -144755,6 +144762,13 @@ entities:
- type: Transform
pos: 28.5,15.5
parent: 2
- proto: SpawnPointMaid
entities:
- uid: 19032
components:
- type: Transform
pos: 0.5,10.5
parent: 2
- proto: SpawnPointMedicalDoctor
entities:
- uid: 18967

View File

@@ -5,6 +5,7 @@
id: BaseAlertOrder
order:
- category: Health
- alertType: BloodSpells
- alertType: Bleeding
- category: Mood # WD edit
- category: Arousal # Amour edit
@@ -519,3 +520,13 @@
state: offer_item
name: alerts-offer-name
description: alerts-offer-desc
# WD-EDIT
- type: alert
id: BloodSpells
onClick: !type:OpenBloodSpellsUi {}
icons:
- sprite: /Textures/White/Cult/actions_cult.rsi
state: blood_spells
name: alerts-blood-spells-name
description: alerts-blood-spells-desc

View File

@@ -287,7 +287,6 @@
- id: MagazinePistol
- id: BoxMindshield
- id: TagillaHammer
- id: EightAimModule
- type: entity
id: LockerFreezerVaultFilled
suffix: Vault, Locked

View File

@@ -18,7 +18,6 @@
- id: BoxMindshield
- id: ClothingOuterHardsuitWarden
- id: OxygenTankFilled
- id: LightModule
- id: WeaponLauncherShinano
- id: BoxShinanoGrenadeFlash
- id: BoxShinanoGrenadeSmoke
@@ -43,7 +42,6 @@
- id: WeaponPistolMk58Nonlethal
- id: MagazinePistol
- id: BoxMindshield
- id: LightModule
- id: WeaponLauncherShinano
- id: BoxShinanoGrenadeFlash
- id: BoxShinanoGrenadeSmoke
@@ -77,7 +75,6 @@
- id: WeaponPistolMk58Nonlethal
- id: SurveillanceBodyCamera
- id: MagazinePistol
- id: LightModule
- type: entity
id: LockerBrigmedicFilled
@@ -141,7 +138,6 @@
- id: VoiceRecorder
- id: ClothingEyesGlassesSecurity
- id: BoxZipLocks
- id: LightModule
- type: entity
id: ClosetBombFilled

View File

@@ -481,6 +481,7 @@
- type: Clothing
sprite: Clothing/OuterClothing/Coats/expensive_coat.rsi
#WHITE START
- type: entity
parent: ClothingOuterStorageBase
id: ClothingOuterTrenchCoatInspector
@@ -543,3 +544,26 @@
Slash: 0.80
Piercing: 0.80
Heat: 0.90
- type: entity
parent: ClothingOuterStorageBase
id: ClothingOuterOverCoatBomzh
name: bomzh's overcoat
description: The jacket has been through a lot, time has not been tolerant of it and has left its scars.
components:
- type: Sprite
sprite: White/Clothing/OuterClothing/Coats/jacket.rsi
- type: Clothing
sprite: White/Clothing/OuterClothing/Coats/jacket.rsi
- type: StorageFill
contents:
- id: SmokingPipeFilledTobacco
- type: Armor
modifiers:
coefficients:
Blunt: 0.90
Slash: 0.90
Piercing: 0.90
Heat: 0.75
#WHITE END

View File

@@ -272,3 +272,17 @@
- type: FootstepModifier
footstepSoundCollection:
collection: FootstepSkates
#WHITE START
- type: entity
parent: ClothingShoesBaseButcherable
id: ClothingShoesMaid
name: maid shoes
description: The maid's shoes. Shiny.
components:
- type: Sprite
sprite: White/Clothing/Shoes/maidshoes.rsi
- type: Clothing
sprite: White/Clothing/Shoes/maidshoes.rsi
#WHITE END

View File

@@ -767,6 +767,8 @@
- state: equipped-INNERCLOTHING-shirt
color: "#b30000"
#WHITE START
- type: entity
parent: ClothingUniformSkirtBase
id: ClothingUniformJumpskirtInspector
@@ -789,6 +791,30 @@
- type: Clothing
sprite: Clothing/Uniforms/Jumpskirt/inspectorformal.rsi
- type: entity
parent: ClothingUniformSkirtBase
id: ClothingUniformJumpskirtMaid
name: maid's jumpskirt
description: Elegant maid's dress. Makes you feel comfortable, safe and clean around you.
components:
- type: Sprite
sprite: White/Clothing/Uniforms/Jumpskirt/maid.rsi
- type: Clothing
sprite: White/Clothing/Uniforms/Jumpskirt/maid.rsi
- type: entity
parent: ClothingUniformSkirtBase
id: ClothingUniformJumpskirtMaidMini
name: maid's mini jumpskirt
description: Elegant shortened maid's servant's dress. Makes you feel comfortable, safe and clean around you. This view expands your horizon in your eyes.
components:
- type: Sprite
sprite: White/Clothing/Uniforms/Jumpskirt/maidmini.rsi
- type: Clothing
sprite: White/Clothing/Uniforms/Jumpskirt/maidmini.rsi
#WHITE END
- type: entity
parent: ClothingUniformSkirtBase
id: ClothingUniformJumpskirtMusician

View File

@@ -1301,6 +1301,7 @@
- type: Clothing
sprite: Clothing/Uniforms/Jumpsuit/familiar_garbs.rsi
#WHITE START
- type: entity
parent: ClothingUniformBase
id: ClothingUniformJumpsuitWhiteInspector
@@ -1322,3 +1323,16 @@
sprite: Clothing/Uniforms/Jumpsuit/inspectorformal.rsi
- type: Clothing
sprite: Clothing/Uniforms/Jumpsuit/inspectorformal.rsi
- type: entity
parent: ClothingUniformBase
id: ClothingUniformJumpsuitWhiteBomzh
name: bomzh uniform
description: The ragged form of a man who has been through a lot. It's not so much the holes in all the places that strike you as the smell of her.
components:
- type: Sprite
sprite: White/Clothing/Uniforms/Jumpsuit/bomzh.rsi
- type: Clothing
sprite: White/Clothing/Uniforms/Jumpsuit/bomzh.rsi
#WHITE END

View File

@@ -247,7 +247,7 @@
- state: green
- state: lawyer
# WHITE INSPECTOR
#WHITE START
- type: entity
id: SpawnPointInspector
parent: SpawnPointJobBase
@@ -260,6 +260,32 @@
- state: green
- state: lawyer
- type: entity
id: SpawnPointBomzh
parent: SpawnPointJobBase
name: bomzh
components:
- type: SpawnPoint
job_id: Bomzh
- type: Sprite
layers:
- state: green
- state: bomzh
- type: entity
id: SpawnPointMaid
parent: SpawnPointJobBase
name: maid
components:
- type: SpawnPoint
job_id: Maid
- type: Sprite
layers:
- state: green
- state: maid
#WHITE END
- type: entity
id: SpawnPointJanitor
parent: SpawnPointJobBase

View File

@@ -149,7 +149,7 @@
- type: Lock
locked: true
breakOnEmag: false
unlockOnClick: false
lockOnClick: false
- type: ActivatableUIRequiresLock
- type: LockedWiresPanel
- type: Damageable

View File

@@ -414,7 +414,7 @@
- type: Icon
state: pda-lawyer
#WHITE
#WHITE START
- type: entity
parent: BasePDA
id: InspectorPDA
@@ -425,6 +425,28 @@
id: InspectorIDCard
state: pda-inspector
- type: entity
parent: BasePDA
id: BomzhPDA
name: bomzh PDA
description: Life has passed and all that's left to do is move forward.
components:
- type: Pda
id: BomzhIDCard
state: pda-bomzh
- type: entity
parent: BasePDA
id: MaidPDA
name: maid PDA
description: Shining from her own purity.
components:
- type: Pda
id: MaidIDCard
state: pda-maid
#WHITE END
- type: entity
parent: BasePDA
id: JanitorPDA

View File

@@ -417,7 +417,7 @@
- type: PresetIdCard
job: Lawyer
#WHITE
#WHITE START
- type: entity
parent: IDCardStandard
id: InspectorIDCard
@@ -430,6 +430,32 @@
- type: PresetIdCard
job: Inspector
- type: entity
parent: IDCardStandard
id: BomzhIDCard
name: Bomzh ID card
components:
- type: Sprite
layers:
- state: silver
- state: idbomzh
- type: PresetIdCard
job: Passenger
- type: entity
parent: IDCardStandard
id: MaidIDCard
name: Maid ID card
components:
- type: Sprite
layers:
- state: silver
- state: idmaid
- type: PresetIdCard
job: Maid
#WHITE END
- type: entity
parent: IDCardStandard
id: HoPIDCard

View File

@@ -76,11 +76,9 @@
map: [ "enum.GunVisualLayers.Mag" ]
- state: barrel_module
visible: false
sprite: White/Objects/Weapons/modulesOnWeapon.rsi
map: [ "enum.ModuleVisualState.BarrelModule" ]
- state: handguard_module
visible: false
sprite: White/Objects/Weapons/modulesOnWeapon.rsi
map: [ "enum.ModuleVisualState.HandGuardModule" ]
- state: aim_module
visible: false
@@ -214,11 +212,9 @@
map: [ "enum.GunVisualLayers.Mag" ]
- state: barrel_module
visible: false
sprite: White/Objects/Weapons/modulesOnWeapon.rsi
map: [ "enum.ModuleVisualState.BarrelModule" ]
- state: handguard_module
visible: false
sprite: White/Objects/Weapons/modulesOnWeapon.rsi
map: [ "enum.ModuleVisualState.HandGuardModule" ]
- state: aim_module
visible: false

View File

@@ -106,11 +106,9 @@
map: ["enum.GunVisualLayers.Mag"]
- state: barrel_module
visible: false
sprite: White/Objects/Weapons/modulesOnSMGs.rsi
map: [ "enum.ModuleVisualState.BarrelModule" ]
- state: handguard_module
visible: false
sprite: White/Objects/Weapons/modulesOnSMGs.rsi
map: [ "enum.ModuleVisualState.HandGuardModule" ]
- state: aim_module
visible: false
@@ -204,15 +202,13 @@
map: ["enum.GunVisualLayers.Mag"]
- state: barrel_module
visible: false
sprite: White/Objects/Weapons/modulesOnWeapon.rsi
map: [ "enum.ModuleVisualState.BarrelModule" ]
- state: handguard_module
visible: false
sprite: White/Objects/Weapons/modulesOnWeapon.rsi
map: [ "enum.ModuleVisualState.HandGuardModule" ]
- state: aim_module
visible: false
sprite: White/Objects/Weapons/modulesOnWeapon.rsi
sprite: White/Objects/Weapons/modulesOnSMGs.rsi
map: [ "enum.ModuleVisualState.AimModule" ]
- type: Clothing
sprite: White/Objects/Weapons/Guns/SMG/drozd-inhands.rsi
@@ -352,15 +348,13 @@
shader: unshaded
- state: barrel_module
visible: false
sprite: White/Objects/Weapons/modulesOnWeapon.rsi
map: [ "enum.ModuleVisualState.BarrelModule" ]
- state: handguard_module
visible: false
sprite: White/Objects/Weapons/modulesOnWeapon.rsi
map: [ "enum.ModuleVisualState.HandGuardModule" ]
- state: aim_module
visible: false
sprite: White/Objects/Weapons/modulesOnWeapon.rsi
sprite: White/Objects/Weapons/modulesOnSMGs.rsi
map: [ "enum.ModuleVisualState.AimModule" ]
- type: Clothing
sprite: White/Objects/Weapons/Guns/SMG/wt550-inhands.rsi

View File

@@ -86,4 +86,5 @@
walkSpeed: 0.6
sprintSpeed: 0.6
- type: EmitSoundOnLand
sound:
collection: sparks

View File

@@ -197,11 +197,8 @@
- MagazineBoxRifle
- MagazineBoxLightRifle
- GrenadeBlast
- LightModuleRecipe
- LaserModuleRecipe
- FlameHiderModuleRecipe
- SilencerModuleRecipe
- AcceleratorModuleRecipe
- LightModule
- FlameHiderModule
- ShinanoGrenadeBeanbagRecipe
emagDynamicRecipes:
- CartridgePistolRubber
@@ -236,6 +233,11 @@
- MagazineGrenadeEmpty
- GrenadeEMP
- GrenadeFlash
- SilencerModule
- LaserModule
- AcceleratorModule
- HolographicSightModule
- TelescopicSightModule
- type: BluespaceStorage
- type: entity
@@ -735,11 +737,8 @@
- ShellShotgunPractice
- WeaponLaserCarbinePractice
- WeaponDisablerPractice
- LightModuleRecipe
- LaserModuleRecipe
- FlameHiderModuleRecipe
- SilencerModuleRecipe
- AcceleratorModuleRecipe
- LightModule
- FlameHiderModule
- ShinanoGrenadeBeanbagRecipe
dynamicRecipes:
- CartridgeLightRifleIncendiary
@@ -800,6 +799,11 @@
- ShinanoGrenadeFlashRecipe
- ShinanoGrenadeSmokeRecipe
- ShinanoGrenadeStingerRecipe
- SilencerModule
- LaserModule
- AcceleratorModule
- HolographicSightModule
- TelescopicSightModule
- type: EmagLatheRecipes
emagStaticRecipes:
- MagazineLightRifleBox

View File

@@ -51,12 +51,9 @@
uiWindowPos: 2,0
strippingWindowPos: 1,3
dependsOn: outerClothing
dependsOnComponents:
- type: AllowSuitStorage
displayName: Suit Storage
- name: back
slotTexture: back
fullTextureName: template_small
slotFlags: BACK
stripTime: 3
uiWindowPos: 3,0

View File

@@ -0,0 +1,51 @@
# Jumpsuit
- type: itemLoadout # WD
id: BomzhJumpsuit
equipment: BomzhJumpsuit
- type: startingGear
id: BomzhJumpsuit
equipment:
jumpsuit: ClothingUniformJumpsuitWhiteBomzh
# PDA
- type: itemLoadout # WD
id: BomzhPDA
equipment: BomzhPDA
- type: startingGear
id: BomzhPDA
equipment:
id: BomzhPDA
# Outer clothing
- type: itemLoadout
id: BomzhOverCoat
equipment: BomzhOverCoat
- type: startingGear
id: BomzhOverCoat
equipment:
outerClothing: ClothingOuterOverCoatBomzh
# Job Trinkets
- type: itemLoadout # WD
id: BomzhTrashBag
equipment: BomzhTrashBag
- type: startingGear
id: BomzhTrashBag
inhand:
- TrashBag
- type: itemLoadout # WD
id: BomzhScalpelShiv
equipment: BomzhScalpelShiv
- type: startingGear
id: BomzhScalpelShiv
equipment:
pocket1: ScalpelShiv
- type: itemLoadout # WD
id: BomzhLantern
equipment: BomzhLantern
- type: startingGear
id: BomzhLantern
equipment:
belt: Lantern

View File

@@ -0,0 +1,97 @@
# Jumpsuit
- type: itemLoadout # WD
id: MaidJumpskirt
equipment: MaidJumpskirt
- type: startingGear
id: MaidJumpskirt
equipment:
jumpsuit: ClothingUniformJumpskirtMaid
- type: itemLoadout # WD
id: MaidJumpskirtMini
equipment: MaidJumpskirtMini
- type: startingGear
id: MaidJumpskirtMini
equipment:
jumpsuit: ClothingUniformJumpskirtMaidMini
# Back
- type: itemLoadout # WD
id: MaidSatchel
equipment: MaidSatchel
- type: startingGear
id: MaidSatchel
equipment:
back: ClothingBackpackSatchelFilled
# Gloves
- type: itemLoadout # WD
id: MaidGloves
equipment: MaidGloves
- type: startingGear
id: MaidGloves
equipment:
gloves: ClothingHandsGlovesColorWhite
# PDA
- type: itemLoadout # WD
id: MaidPDA
equipment: MaidPDA
- type: startingGear
id: MaidPDA
equipment:
id: MaidPDA
# Ears
- type: itemLoadout # WD
id: MaidEars
equipment: MaidEars
- type: startingGear
id: MaidEars
equipment:
id: ClothingHeadsetCommand
# Shoes
- type: itemLoadout # WD
id: MaidShoes
equipment: MaidShoes
- type: startingGear
id: MaidShoes
equipment:
shoes: ClothingShoesMaid
# Glasses
- type: itemLoadout # WD
id: MaidGlasses
equipment: MaidGlasses
- type: startingGear
id: MaidGlasses
equipment:
eyes: ClothingEyesGlassesSecurity
# Job Trinkets
- type: itemLoadout # WD
id: MaidSpray
equipment: MaidSpray
- type: startingGear
id: MaidSpray
storage:
back:
- SprayBottleWater
- type: itemLoadout # WD
id: MaidSoap
equipment: MaidSoap
- type: startingGear
id: MaidSoap
storage:
back:
- Soap
- type: itemLoadout # WD
id: MaidMop
equipment: MaidMop
- type: startingGear
id: MaidMop
inhand:
- MopItem

View File

@@ -2173,6 +2173,86 @@
loadouts:
- InspectorBriefcaseInhand
# Maid
- type: loadoutGroup # WD
id: MaidGlasses
name: loadout-group-eyes
minLimit: 0
loadouts:
- MaidGlasses
- type: loadoutGroup # WD
id: MaidJumpsuit
name: loadout-group-jumpsuit
loadouts:
- MaidJumpskirt
- MaidJumpskirtMini
- type: loadoutGroup # WD
id: MaidBackpack
name: loadout-group-backpack
loadouts:
- MaidSatchel
- type: loadoutGroup # WD
id: MaidGloves
name: loadout-group-gloves
minLimit: 0
loadouts:
- MaidGloves
- type: loadoutGroup # WD
id: MaidShoes
name: loadout-group-shoes
loadouts:
- MaidShoes
- type: loadoutGroup # WD
id: MaidPDA
name: loadout-group-pda
loadouts:
- MaidPDA
- type: loadoutGroup # WD
id: MaidJobTrinkets
name: loadout-group-job-trinkets
minLimit: 0
maxLimit: 2
loadouts:
- MaidSpray
- MaidSoap
- MaidMop
# Bomzh
- type: loadoutGroup # WD
id: BomzhJumpsuit
name: loadout-group-jumpsuit
loadouts:
- BomzhJumpsuit
- type: loadoutGroup # WD
id: BomzhPDA
name: loadout-group-pda
loadouts:
- BomzhPDA
- type: loadoutGroup # WD
id: BomzhOuterclothing
name: loadout-group-outerclothing
minLimit: 0
loadouts:
- BomzhOverCoat
- type: loadoutGroup # WD
id: BomzhJobTrinkets
name: loadout-group-job-trinkets
minLimit: 0
maxLimit: 3
loadouts:
- BomzhTrashBag
- BomzhScalpelShiv
- BomzhLantern
# Wildcards
- type: loadoutGroup
id: ReporterHat

View File

@@ -40,6 +40,22 @@
- CommonUnderwearBraHOP
- CommonUnderwearSocks
- type: roleLoadout
id: JobMaid
groups:
- MaidGlasses # WD
- CommonCommandHeadset # WD
- MaidJumpsuit
- MaidGloves # WD
- MaidBackpack
- MaidShoes
- MaidPDA # WD
- SelfDefenceDevices # WD
- MaidJobTrinkets
- CommonUnderwearBottom
- CommonUnderwearBra
- CommonUnderwearSocks
# Civilian
- type: roleLoadout
id: JobPassenger
@@ -245,6 +261,16 @@
- CommonUnderwearBra
- CommonUnderwearSocks
- type: roleLoadout
id: JobBomzh
groups:
- BomzhJumpsuit
- BomzhPDA
- BomzhOuterclothing
- BomzhJobTrinkets
- CommonUnderwearBottom
- CommonUnderwearBra
# Cargo
- type: roleLoadout
id: JobQuartermaster

View File

@@ -383,3 +383,54 @@
state: arcane_barrage
event: !type:ArcaneBarrageSpellEvent
prototype: ArcaneBarrage
- type: entity
id: ActionRodFormSpell
name: Rod Form
noSpawn: true
components:
- type: Magic
requiresClothes: true
- type: InstantAction
useDelay: 60
itemIconStyle: BigAction
checkCanInteract: false
icon:
sprite: Objects/Magic/magicactions.rsi
state: rod_form
event: !type:RodFormSpellEvent
speech: "CLANG!"
- type: entity
id: ActionBlindSpell
name: Blind
noSpawn: true
components:
- type: Magic
requiresClothes: true
- type: InstantAction
useDelay: 30
itemIconStyle: BigAction
checkCanInteract: false
icon:
sprite: Objects/Magic/magicactions.rsi
state: blind
event: !type:BlindSpellEvent
speech: "STI KALY!"
- type: entity
id: ActionMutateSpell
name: Mutate
noSpawn: true
components:
- type: Magic
requiresClothes: true
- type: InstantAction
useDelay: 120
itemIconStyle: BigAction
checkCanInteract: false
icon:
sprite: Objects/Magic/magicactions.rsi
state: mutate
event: !type:MutateSpellEvent
speech: "BIRUZ BENNAR!!"

View File

@@ -67,3 +67,5 @@
Boxer: [ 0, 0 ]
Borg: [ 1, 2 ]
Passenger: [ -1, -1 ]
Maid: [ 1, 1 ]
Bomzh: [ 1, 0 ]

View File

@@ -61,3 +61,5 @@
SeniorEngineer: [ 1, 1 ]
Inspector: [ 1, 1]
Borg: [ 3, 2 ]
Maid: [ 1, 1 ]
Bomzh: [ 1, 0 ]

View File

@@ -26,6 +26,7 @@
ChiefMedicalOfficer: [ 1, 1 ]
ResearchDirector: [ 1, 1 ]
Quartermaster: [ 1, 1 ]
Maid: [ 1, 1 ]
#Security
Warden: [ 1, 1 ]
SeniorOfficer: [ 1, 1 ]
@@ -67,4 +68,4 @@
Boxer: [ 1, 1 ]
Borg: [ 1, 1 ]
Passenger: [ -1, -1 ]
Bomzh: [ 1, 0 ]

View File

@@ -60,4 +60,7 @@
SeniorPhysician: [ 1, 1 ]
SeniorEngineer: [ 1, 1 ]
Borg: [ 2, 2 ]
Maid: [ 1, 1 ]
Bomzh: [ 1, 0 ]

View File

@@ -21,6 +21,7 @@
#service
Captain: [ 1, 1 ]
HeadOfPersonnel: [ 1, 1 ]
Maid: [ 1, 1 ]
Bartender: [ 2, 2 ]
Botanist: [ 3, 3 ]
Chef: [ 2, 2 ]
@@ -28,6 +29,7 @@
Chaplain: [ 1, 1 ]
Librarian: [ 1, 1 ]
ServiceWorker: [ 2, 2 ]
Bomzh: [ 1, 0 ]
#engineering
ChiefEngineer: [ 1, 1 ]
SeniorEngineer: [ 1, 1 ]

View File

@@ -200,12 +200,16 @@
cost: 3
- proto: LaserModule
cost: 8
- proto: HolographicSightModule
cost: 8
- proto: FlameHiderModule
cost: 3
- proto: SilencerModule
cost: 5
- proto: AcceleratorModule
cost: 12
- proto: TelescopicSightModule
cost: 12
- proto: MedkitFilled
cost: 3
- proto: MedkitRadiationFilled

View File

@@ -29,3 +29,8 @@
- type: latheCategory
id: Weapons
name: lathe-category-weapons
# WD
- type: latheCategory
id: Modules
name: lathe-category-modules

View File

@@ -659,43 +659,48 @@
Silver: 50
- type: latheRecipe
id: LightModuleRecipe
id: LightModule
result: LightModule
completetime: 5
completetime: 3
category: Modules
materials:
Steel: 700
Plastic: 700
Glass: 500
Steel: 200
Plastic: 100
Glass: 200
- type: latheRecipe
id: LaserModuleRecipe
id: LaserModule
result: LaserModule
completetime: 10
completetime: 6
category: Modules
materials:
Steel: 1500
Plastic: 1000
Glass: 300
- type: latheRecipe
id: FlameHiderModuleRecipe
id: FlameHiderModule
result: FlameHiderModule
completetime: 15
completetime: 3
category: Modules
materials:
Steel: 1000
Plastic: 1000
Steel: 200
Plastic: 200
- type: latheRecipe
id: SilencerModuleRecipe
id: SilencerModule
result: SilencerModule
completetime: 15
completetime: 6
category: Modules
materials:
Steel: 1000
Plastic: 1000
Steel: 400
Plastic: 300
- type: latheRecipe
id: AcceleratorModuleRecipe
id: AcceleratorModule
result: AcceleratorModule
completetime: 30
completetime: 12
category: Modules
materials:
Steel: 3500
Plastic: 1000
@@ -703,10 +708,22 @@
Gold: 1000
- type: latheRecipe
id: EightAimRecipe
result: EightAimModule
completetime: 15
id: HolographicSightModule
result: HolographicSightModule
completetime: 6
category: Modules
materials:
Steel: 500
Plastic: 700
Glass: 300
- type: latheRecipe
id: TelescopicSightModule
result: TelescopicSightModule
completetime: 12
category: Modules
materials:
Steel: 1000
Plastic: 1400
Glass: 600
Silver: 800

View File

@@ -0,0 +1,35 @@
- type: job
id: Bomzh
name: job-name-bomzh
description: job-description-bomzh
playTimeTracker: JobBomzh
requirements:
- !type:DepartmentTimeRequirement
department: Civilian
time: 72000 # 20 ch
- !type:AgeRequirement
requiredAge: 60
- !type:GenderRequirement
requiredGenders:
- Male
- !type:SexRequirement
requiredSex:
- Male
- !type:SpeciesRequirement
species:
- Human
weight: 20
icon: "JobIconBomzh"
supervisors: job-supervisors-hop
whitelistedSpecies:
- Human
canBeAntag: true
accessGroups:
- Maintenance
- type: startingGear
id: BomzhGear
equipment:
jumpsuit: ClothingUniformJumpsuitCaptain
outerClothing: ClothingOuterOverCoatBomzh
id: BomzhPDA

View File

@@ -0,0 +1,50 @@
- type: job
id: Maid
name: job-name-maid
description: job-description-maid
playTimeTracker: JobMaid
requirements:
- !type:DepartmentTimeRequirement
department: Medical
time: 72000 # 20 ch
- !type:DepartmentTimeRequirement
department: Command
time: 72000 # 20 ch
- !type:AgeRequirement
requiredAge: 20
- !type:GenderRequirement
requiredGenders:
- Female
- !type:SexRequirement
requiredSex:
- Female
- !type:SpeciesRequirement
species:
- Human
- Felinid
- Harpy
weight: 20
icon: "JobIconMaid"
supervisors: job-supervisors-hop
whitelistedSpecies:
- Human
- Felinid
- Harpy
canBeAntag: false
accessGroups:
- Maintenance
- Command
- Service
special:
- !type:AddImplantSpecial
implants: [ MindShieldImplant ]
- type: startingGear
id: MaidGear
equipment:
jumpsuit: ClothingUniformJumpskirtMaid
back: ClothingBackpackSatchelFilled
socks: ClothingUnderwearStockingsLightWhite
shoes: ClothingShoesMaid
ears: ClothingHeadsetCommand
id: MaidPDA

View File

@@ -14,6 +14,7 @@
- ResearchDirector
- Quartermaster
- Inspector
- Maid
primary: false
buttonStyle: ButtonColorCommandDepartment
@@ -122,6 +123,7 @@
- Visitor
- Zookeeper
- Passenger
- Bomzh
buttonStyle: ButtonColorCivilianDepartment
- type: department

View File

@@ -160,3 +160,9 @@
# WHITE
- type: playTimeTracker
id: JobInspector
- type: playTimeTracker
id: JobBomzh
- type: playTimeTracker
id: JobMaid

View File

@@ -4,7 +4,6 @@
icon: { sprite: /Textures/Objects/Misc/monkeycube.rsi, state: cube }
spawn: MaterialBiomass1
maxCount: 100
itemSize: 1
- type: stack
id: WoodPlank
@@ -12,7 +11,6 @@
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: wood }
spawn: MaterialWoodPlank1
maxCount: 30
itemSize: 1
- type: stack
id: Cardboard
@@ -20,7 +18,6 @@
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: cardboard }
spawn: MaterialCardboard1
maxCount: 30
itemSize: 1
- type: stack
id: Cloth
@@ -28,7 +25,6 @@
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: cloth }
spawn: MaterialCloth1
maxCount: 30
itemSize: 1
- type: stack
id: Durathread
@@ -36,7 +32,6 @@
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: durathread }
spawn: MaterialDurathread1
maxCount: 30
itemSize: 1
- type: stack
id: Diamond
@@ -44,7 +39,6 @@
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: diamond }
spawn: MaterialDiamond1
maxCount: 30
itemSize: 2
- type: stack
id: Cotton
@@ -52,7 +46,6 @@
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: cotton }
spawn: MaterialCotton1
maxCount: 30
itemSize: 1
- type: stack
id: Pyrotton
@@ -67,7 +60,6 @@
icon: { sprite: /Textures/White/Objects/Materials/materials.rsi, state: bananium }
spawn: MaterialBananium1
maxCount: 10
itemSize: 2
- type: stack
id: MeatSheets
@@ -75,7 +67,6 @@
icon: { sprite: /Textures/Objects/Materials/Sheets/meaterial.rsi, state: meat }
spawn: MaterialSheetMeat1
maxCount: 30
itemSize: 1
- type: stack
id: WebSilk
@@ -83,7 +74,6 @@
icon: { sprite: /Textures/Objects/Materials/silk.rsi, state: icon }
spawn: MaterialWebSilk1
maxCount: 50
itemSize: 1
- type: stack
id: Bones
@@ -91,7 +81,6 @@
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: bones}
spawn: MaterialBones1
maxCount: 30
itemSize: 1
- type: stack
id: RunicMetalSheets
@@ -106,4 +95,3 @@
icon: { sprite: /Textures/Objects/Misc/reagent_fillings.rsi, state: powderpile }
spawn: MaterialGunpowder
maxCount: 60
itemSize: 1

View File

@@ -43,15 +43,14 @@
name: ground cannabis
icon: { sprite: /Textures/Objects/Misc/reagent_fillings.rsi, state: powderpile }
spawn: GroundCannabis
maxCount:
maxCount: 5
- type: stack
id: GroundCannabisRainbow
name: ground rainbow cannabis
icon: { sprite: /Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi, state: powderpile_rainbow }
spawn: GroundCannabisRainbow
maxCount:
itemSize: 1
maxCount: 5
- type: stack
id: LeavesTobaccoDried
@@ -73,4 +72,3 @@
icon: { sprite: /Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi, state: dried }
spawn: LeavesCannabisRainbowDried
maxCount: 5
itemSize: 5

View File

@@ -39,7 +39,6 @@
icon: { sprite: "/Textures/Objects/Specific/Medical/medical.rsi", state: tourniquet }
spawn: Tourniquet
maxCount: 3 # WD
itemSize: 1
- type: stack
id: MedicatedSuture

View File

@@ -369,6 +369,7 @@
sprite: /Textures/Interface/Misc/job_icons.rsi
state: SeniorResearcher
#WHITE START
- type: statusIcon
parent: JobIcon
id: JobIconInspector
@@ -376,6 +377,22 @@
sprite: /Textures/Interface/Misc/job_icons.rsi
state: Inspector
- type: statusIcon
parent: JobIcon
id: JobIconBomzh
icon:
sprite: /Textures/Interface/Misc/job_icons.rsi
state: Bomzh
- type: statusIcon
parent: JobIcon
id: JobIconMaid
icon:
sprite: /Textures/Interface/Misc/job_icons.rsi
state: Maid
#WHITE END
- type: statusIcon
parent: JobIcon
id: JobIconVisitor

View File

@@ -7,8 +7,8 @@
- type: EntityTargetAction
canTargetSelf: false
icon:
sprite: /Textures/Objects/Materials/Sheets/metal.rsi
state: steel
sprite: /Textures/White/Cult/actions_cult.rsi
state: transmute
event: !type:CultTwistedConstructionActionEvent
speech: "Ethra p'ni dedol!"
itemIconStyle: BigAction
@@ -168,4 +168,4 @@
state: gone
revealIcon:
sprite: /Textures/White/Cult/actions_cult.rsi
state: telerune
state: back

View File

@@ -184,7 +184,7 @@
description: проверенная временем автоматическая винтовка.
id: cargoCV47
icon:
sprite: White/Objects/Weapons/Guns/Rifles/ak.rsi
sprite: White/Objects/Weapons/Guns/Rifles/ak-icons.rsi
state: icon
product: CrateCV47
cost: 10000

View File

@@ -25,7 +25,10 @@
- !type:EntityAnchored
steps:
- tool: Dagger
cultistOnly: true
userWhitelist:
components:
- Cultist
- Ghost
- to: wall
completed:
- !type:SnapToGrid
@@ -46,7 +49,10 @@
amount: 1
steps:
- tool: Dagger
cultistOnly: true
userWhitelist:
components:
- Cultist
- Ghost
- type: constructionGraph
id: AirlockGlassCult
@@ -75,7 +81,10 @@
- !type:EntityAnchored
steps:
- tool: Dagger
cultistOnly: true
userWhitelist:
components:
- Cultist
- Ghost
- type: constructionGraph
id: CultPylon

View File

@@ -44,3 +44,4 @@
Scientist: 300
ResearchAssistant: 200
SeniorResearcher: 400
Maid: 300

View File

@@ -205,6 +205,15 @@
- type: Sprite
sprite: White/Clothing/Underwear/Socks/stockings_yellow.rsi
- type: entity
parent: ClothingUnderwearSocksBase
id: ClothingUnderwearStockingsLightWhite
name: stockings
description: Standard Nanotrasen stockings for station employees. Dyed yellow.
components:
- type: Sprite
sprite: White/Clothing/Underwear/Socks/stockings_white.rsi
- type: entity
parent: ClothingUnderwearSocksBase
id: ClothingUnderwearSocksStripedKnee

View File

@@ -7,3 +7,74 @@
- type: NpcFactionMember
factions:
- Changeling
- type: entity
name: Hulk
id: MobHulk
parent: SimpleSpaceMobBase
description: Green
components:
- type: NpcFactionMember
factions:
- Wizard
- type: Speech
speechVerb: LargeMob
- type: Sprite
drawdepth: Mobs
sprite: White/Mobs/Aliens/hulk.rsi
state: hulk
noRot: true
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeCircle
radius: 0.45
density: 100
mask:
- MobMask
layer:
- MobLayer
- type: MobThresholds
thresholds:
0: Alive
350: Dead
- type: MovementSpeedModifier
baseWalkSpeed: 2
baseSprintSpeed: 5
- type: Tag
tags:
- FootstepSound
- type: ProjectileBatteryAmmoProvider
proto: BulletTrailLaserLight
fireCost: 50
- type: BatterySelfRecharger
autoRecharge: true
autoRechargeRate: 50
- type: Battery
maxCharge: 1000
startingCharge: 1000
- type: Gun
projectileSpeed: 48
fireRate: 1
ShotsPerBurst: 2
useKey: false
selectedMode: Burst
availableModes:
- Burst
soundGunshot: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg
- type: CombatMode
- type: MeleeWeapon
angle: 0
animation: WeaponArcSmash
soundHit:
path: /Audio/Effects/hulk_attack.ogg
soundNoDamage:
path: /Audio/Effects/hulk_attack.ogg
damage:
types:
Blunt: 40
Structural: 40
- type: FootstepModifier
footstepSoundCollection:
path: /Audio/Effects/hulk_step.ogg

View File

@@ -20,7 +20,7 @@
map: [ "enum.DamageStateVisualLayers.Base" ]
color: "#6e4e40"
- state: gondola_moustache_large_short
map: [ "enum.DamageStateVisualLayers.Base" ]
map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ]
- type: RandomSprite
available:
- enum.DamageStateVisualLayers.Base:

View File

@@ -24,7 +24,6 @@
fireRate: 1
selectedMode: SemiAuto
projectileSpeed: 15
projectileSpeedModified: 15
availableModes:
- SemiAuto
soundGunshot:

View File

@@ -1,70 +1,50 @@
- type: entity
parent: BaseItem
id: BaseModule
abstract: true
components:
- type: Sprite
sprite: White/Objects/Weapons/modules.rsi
- type: Item
sprite: White/Objects/Weapons/modules.rsi
size: Tiny
- type: Appearance
- type: entity
parent: BaseModule
id: BaseHandGuardModule
abstract: true
components:
- type: Sprite
sprite: White/Objects/Weapons/modules.rsi
- type: Tag
tags:
- BaseHandGuardModule
- type: Item
sprite: White/Objects/Weapons/modules.rsi
size: Small
shape:
- 0,0,0,0
- type: Appearance
- type: entity
parent: BaseItem
parent: BaseModule
id: BaseBarrelModule
abstract: true
components:
- type: Sprite
sprite: White/Objects/Weapons/modules.rsi
- type: Tag
tags:
- BaseBarrelModule
- type: Item
sprite: White/Objects/Weapons/modules.rsi
size: Small
shape:
- 0,0,0,0
- type: Appearance
- type: entity
parent: BaseItem
parent: BaseModule
id: BaseAimModule
abstract: true
components:
- type: Sprite
sprite: White/Objects/Weapons/modules.rsi
- type: Tag
tags:
- BaseAimModule
- type: Item
sprite: White/Objects/Weapons/modules.rsi
size: Small
shape:
- 0,0,0,0
- type: Appearance
- type: entity
parent: BaseItem
parent: BaseModule
id: BaseShutterModule
abstract: true
components:
- type: Sprite
sprite: White/Objects/Weapons/modules.rsi
- type: Tag
tags:
- BaseShutterModule
- type: Item
sprite: White/Objects/Weapons/modules.rsi
size: Small
shape:
- 0,0,0,0
- type: Appearance
# modules
- type: entity
@@ -78,7 +58,6 @@
module_type: "handguard_module"
- type: Sprite
state: light
- type: Appearance
- type: entity
parent: BaseHandGuardModule
@@ -91,7 +70,6 @@
module_type: "handguard_module"
- type: Sprite
state: laser
- type: Appearance
- type: entity
parent: BaseBarrelModule
@@ -104,7 +82,6 @@
module_type: "barrel_module"
- type: Sprite
state: flamehider
- type: Appearance
- type: entity
parent: BaseBarrelModule
@@ -117,7 +94,6 @@
module_type: "barrel_module"
- type: Sprite
state: silencer
- type: Appearance
- type: entity
parent: BaseHandGuardModule
@@ -130,20 +106,31 @@
module_type: "handguard_module"
- type: Sprite
state: accelerator
- type: Appearance
- type: entity
parent: BaseAimModule
id: EightAimModule
name: "aim module"
description: 8X Aim Module for rifles.
id: HolographicSightModule
name: "holographic sight"
description: Holographic sight for rifles (lecter, CV, drozd, WT).
components:
- type: AimModule
value: "eightaim"
value: "holographic"
module_type: "aim_module"
- type: Sprite
state: eightaim
- type: Appearance
state: holographic
- type: entity
parent: BaseAimModule
id: TelescopicSightModule
name: "telescopic sight"
description: Telescopic sight for rifles (lecter, CV, drozd, WT).
components:
- type: AimModule
divisor: 0.15
value: "telescopic"
module_type: "aim_module"
- type: Sprite
state: telescopic
- type: entity
parent: BaseShutterModule

View File

@@ -73,55 +73,55 @@
# id: LeerBootsLoadout
# entity: LeerBoots
# sponsorOnly: true
# whitelistedJobs: [HeadOfSecurity]
# whitelistJobs: [HeadOfSecurity]
- type: sponsorLoadout
id: LeerCapLoadout
entity: LeerCap
sponsorOnly: true
whitelistedJobs: [HeadOfSecurity]
whitelistJobs: [HeadOfSecurity]
- type: sponsorLoadout
id: LeerCloakLoadout
entity: LeerCloak
sponsorOnly: true
whitelistedJobs: [HeadOfSecurity]
whitelistJobs: [HeadOfSecurity]
#- type: sponsorLoadout
# id: LeerGlovesLoadout
# entity: LeerGloves
# sponsorOnly: true
# whitelistedJobs: [HeadOfSecurity]
# whitelistJobs: [HeadOfSecurity]
- type: sponsorLoadout
id: LeerHardsuitLoadout
entity: LeerHardsuit
sponsorOnly: true
whitelistedJobs: [HeadOfSecurity]
whitelistJobs: [HeadOfSecurity]
- type: sponsorLoadout
id: LeerHelmetLoadout
entity: LeerHelmet
sponsorOnly: true
whitelistedJobs: [HeadOfSecurity]
whitelistJobs: [HeadOfSecurity]
- type: sponsorLoadout
id: LeerJumpsuitLoadout
entity: LeerJumpsuit
sponsorOnly: true
whitelistedJobs: [HeadOfSecurity]
whitelistJobs: [HeadOfSecurity]
- type: sponsorLoadout
id: LeerMaskLoadout
entity: LeerMask
sponsorOnly: true
whitelistedJobs: [HeadOfSecurity]
whitelistJobs: [HeadOfSecurity]
- type: sponsorLoadout
id: LeerTrenchLoadout
entity: LeerTrench
sponsorOnly: true
whitelistedJobs: [HeadOfSecurity]
whitelistJobs: [HeadOfSecurity]
# мурка
- type: sponsorLoadout

View File

@@ -178,3 +178,30 @@
- type: Scroll
actionId: ActionArcaneBarrageSpell
learnPopup: scroll-component-barrage
- type: entity
id: ScrollRodForm
parent: BaseScroll
name: "Rod form scroll"
components:
- type: Scroll
actionId: ActionRodFormSpell
learnPopup: scroll-component-rodform
- type: entity
id: ScrollBlind
parent: BaseScroll
name: "Blind scroll"
components:
- type: Scroll
actionId: ActionBlindSpell
learnPopup: scroll-component-blind
- type: entity
id: ScrollMutate
parent: BaseScroll
name: "Mutate scroll"
components:
- type: Scroll
actionId: ActionMutateSpell
learnPopup: scroll-component-mutate

View File

@@ -9,3 +9,30 @@
cost: 7500
recipeUnlocks:
- WeaponTempGun
- type: technology
id: BasicModules
name: research-technology-modules-basic
icon:
sprite: White/Objects/Weapons/modules.rsi
state: laser
discipline: Arsenal
tier: 1
cost: 5000
recipeUnlocks:
- LaserModule
- SilencerModule
- HolographicSightModule
- type: technology
id: AdvancedModules
name: research-technology-modules-advanced
icon:
sprite: White/Objects/Weapons/modules.rsi
state: accelerator
discipline: Arsenal
tier: 2
cost: 15000
recipeUnlocks:
- AcceleratorModule
- TelescopicSightModule

View File

@@ -63,14 +63,24 @@
- type: soundCollection
id: HarpyCry
files:
- /Audio/Voice/Human/cry_male_1.ogg
- /Audio/Voice/Human/cry_male_2.ogg
- /Audio/Voice/Human/cry_male_3.ogg
- /Audio/Voice/Human/cry_male_4.ogg
- /Audio/Voice/Human/cry_female_1.ogg
- /Audio/Voice/Human/cry_female_2.ogg
- /Audio/Voice/Human/cry_female_3.ogg
- /Audio/Voice/Human/cry_female_4.ogg
- /Audio/White/Voice/Human/Male/crying1.ogg
- /Audio/White/Voice/Human/Male/crying2.ogg
- /Audio/White/Voice/Human/Male/crying3.ogg
- /Audio/White/Voice/Human/Male/crying4.ogg
- /Audio/White/Voice/Human/Male/crying5.ogg
- /Audio/White/Voice/Human/Male/crying6.ogg
- /Audio/White/Voice/Human/Female/crying1.ogg
- /Audio/White/Voice/Human/Female/crying2.ogg
- /Audio/White/Voice/Human/Female/crying3.ogg
- /Audio/White/Voice/Human/Female/crying4.ogg
- /Audio/White/Voice/Human/Female/crying5.ogg
- /Audio/White/Voice/Human/Female/crying6.ogg
- /Audio/White/Voice/Human/Female/crying7.ogg
- /Audio/White/Voice/Human/Female/crying8.ogg
- /Audio/White/Voice/Human/Female/crying9.ogg
- /Audio/White/Voice/Human/Female/crying10.ogg
- /Audio/White/Voice/Human/Female/crying11.ogg
- /Audio/White/Voice/Human/Female/crying12.ogg
- type: soundCollection
id: HarpyMeows

View File

@@ -321,3 +321,51 @@
conditions:
- !type:ListingLimitedStockCondition
stock: 1
- type: listing
id: SpellBookRodForm
name: spellbook-rod-name
description: spellbook-rod-desc
productEntity: ScrollRodForm
icon:
sprite: Objects/Magic/magicactions.rsi
state: rod_form
cost:
SpellPoint: 4
categories:
- UtilitySpells
conditions:
- !type:ListingLimitedStockCondition
stock: 1
- type: listing
id: SpellBookBlind
name: spellbook-blind-name
description: spellbook-blind-desc
productEntity: ScrollBlind
icon:
sprite: Objects/Magic/magicactions.rsi
state: blind
cost:
SpellPoint: 1
categories:
- UtilitySpells
conditions:
- !type:ListingLimitedStockCondition
stock: 1
- type: listing
id: SpellBookMutate
name: spellbook-mutate-name
description: spellbook-mutate-desc
productEntity: ScrollMutate
icon:
sprite: Objects/Magic/magicactions.rsi
state: mutate
cost:
SpellPoint: 3
categories:
- AttackSpells
conditions:
- !type:ListingLimitedStockCondition
stock: 1

Some files were not shown because too many files have changed in this diff Show More