diff --git a/Content.Client/ADT/ApathySystem.cs b/Content.Client/ADT/ApathySystem.cs new file mode 100644 index 00000000000..b6e7a2ecfa0 --- /dev/null +++ b/Content.Client/ADT/ApathySystem.cs @@ -0,0 +1,49 @@ +using Content.Shared.Drugs; +using Robust.Client.Graphics; +using Robust.Client.Player; +using Robust.Shared.Player; +using Content.Shared.Alert; +using Content.Client.UserInterface.Systems.DamageOverlays; +using Content.Shared.ADT; + +namespace Content.Client.ADT; + +public sealed class ApathySystem : EntitySystem +{ + [Dependency] private readonly IPlayerManager _player = default!; + [Dependency] private readonly AlertsSystem _alertsSystem = default!; + public static string ApathyKey = "Apathy"; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnInit); + SubscribeLocalEvent(OnShutdown); + SubscribeLocalEvent(OnPlayerAttached); + SubscribeLocalEvent(OnPlayerDetached); + + } + + private void OnInit(EntityUid uid, ApathyComponent component, ComponentInit args) + { + if (_player.LocalPlayer?.ControlledEntity == uid) + _alertsSystem.ShowAlert(uid, AlertType.ADTAlertApathy); + } + + private void OnShutdown(EntityUid uid, ApathyComponent component, ComponentShutdown args) + { + if (_player.LocalPlayer?.ControlledEntity == uid) + _alertsSystem.ClearAlert(uid, AlertType.ADTAlertApathy); + } + + private void OnPlayerAttached(EntityUid uid, ApathyComponent component, LocalPlayerAttachedEvent args) + { + _alertsSystem.ShowAlert(uid, AlertType.ADTAlertApathy); + } + + private void OnPlayerDetached(EntityUid uid, ApathyComponent component, LocalPlayerDetachedEvent args) + { + _alertsSystem.ClearAlert(uid, AlertType.ADTAlertApathy); + } +} \ No newline at end of file diff --git a/Content.Client/ADT/SlimeHair/SlimeHairBoundUserInterface.cs b/Content.Client/ADT/SlimeHair/SlimeHairBoundUserInterface.cs new file mode 100644 index 00000000000..72f4d47a27e --- /dev/null +++ b/Content.Client/ADT/SlimeHair/SlimeHairBoundUserInterface.cs @@ -0,0 +1,81 @@ +using Content.Shared.Humanoid.Markings; +using Content.Shared.SlimeHair; +using Robust.Client.GameObjects; + +namespace Content.Client.ADT.SlimeHair; + +public sealed class SlimeHairBoundUserInterface : BoundUserInterface +{ + [ViewVariables] + private SlimeHairWindow? _window; + + public SlimeHairBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) + { + } + + protected override void Open() + { + base.Open(); + + _window = new(); + + _window.OnHairSelected += tuple => SelectHair(SlimeHairCategory.Hair, tuple.id, tuple.slot); + _window.OnHairColorChanged += args => ChangeColor(SlimeHairCategory.Hair, args.marking, args.slot); + _window.OnHairSlotAdded += delegate () { AddSlot(SlimeHairCategory.Hair); }; + _window.OnHairSlotRemoved += args => RemoveSlot(SlimeHairCategory.Hair, args); + + _window.OnFacialHairSelected += tuple => SelectHair(SlimeHairCategory.FacialHair, tuple.id, tuple.slot); + _window.OnFacialHairColorChanged += + args => ChangeColor(SlimeHairCategory.FacialHair, args.marking, args.slot); + _window.OnFacialHairSlotAdded += delegate () { AddSlot(SlimeHairCategory.FacialHair); }; + _window.OnFacialHairSlotRemoved += args => RemoveSlot(SlimeHairCategory.FacialHair, args); + + _window.OnClose += Close; + _window.OpenCentered(); + } + + private void SelectHair(SlimeHairCategory category, string marking, int slot) + { + SendMessage(new SlimeHairSelectMessage(category, marking, slot)); + } + + private void ChangeColor(SlimeHairCategory category, Marking marking, int slot) + { + SendMessage(new SlimeHairChangeColorMessage(category, new(marking.MarkingColors), slot)); + } + + private void RemoveSlot(SlimeHairCategory category, int slot) + { + SendMessage(new SlimeHairRemoveSlotMessage(category, slot)); + } + + private void AddSlot(SlimeHairCategory category) + { + SendMessage(new SlimeHairAddSlotMessage(category)); + } + + protected override void UpdateState(BoundUserInterfaceState state) + { + base.UpdateState(state); + + if (state is not SlimeHairUiState data || _window == null) + { + return; + } + + _window.UpdateState(data); + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + if (!disposing) + return; + + if (_window != null) + _window.OnClose -= Close; + + _window?.Dispose(); + } +} + diff --git a/Content.Client/ADT/SlimeHair/SlimeHairWindow.xaml b/Content.Client/ADT/SlimeHair/SlimeHairWindow.xaml new file mode 100644 index 00000000000..580d4509365 --- /dev/null +++ b/Content.Client/ADT/SlimeHair/SlimeHairWindow.xaml @@ -0,0 +1,9 @@ + + + + + + diff --git a/Content.Client/ADT/SlimeHair/SlimeHairWindow.xaml.cs b/Content.Client/ADT/SlimeHair/SlimeHairWindow.xaml.cs new file mode 100644 index 00000000000..0df4321f7a5 --- /dev/null +++ b/Content.Client/ADT/SlimeHair/SlimeHairWindow.xaml.cs @@ -0,0 +1,49 @@ +using Content.Shared.Humanoid.Markings; +using Content.Shared.SlimeHair; +using Robust.Client.AutoGenerated; +using Robust.Client.UserInterface.Controls; +using Robust.Client.UserInterface.CustomControls; +using Robust.Client.UserInterface.XAML; + +namespace Content.Client.ADT.SlimeHair; + +[GenerateTypedNameReferences] +public sealed partial class SlimeHairWindow : DefaultWindow +{ + // MMMMMMM + public Action<(int slot, string id)>? OnHairSelected; + public Action<(int slot, Marking marking)>? OnHairColorChanged; + public Action? OnHairSlotRemoved; + public Action? OnHairSlotAdded; + + public Action<(int slot, string id)>? OnFacialHairSelected; + public Action<(int slot, Marking marking)>? OnFacialHairColorChanged; + public Action? OnFacialHairSlotRemoved; + public Action? OnFacialHairSlotAdded; + + public SlimeHairWindow() + { + RobustXamlLoader.Load(this); + + HairPicker.OnMarkingSelect += args => OnHairSelected!(args); + HairPicker.OnColorChanged += args => OnHairColorChanged!(args); + HairPicker.OnSlotRemove += args => OnHairSlotRemoved!(args); + HairPicker.OnSlotAdd += delegate { OnHairSlotAdded!(); }; + + FacialHairPicker.OnMarkingSelect += args => OnFacialHairSelected!(args); + FacialHairPicker.OnColorChanged += args => OnFacialHairColorChanged!(args); + FacialHairPicker.OnSlotRemove += args => OnFacialHairSlotRemoved!(args); + FacialHairPicker.OnSlotAdd += delegate { OnFacialHairSlotAdded!(); }; + } + + public void UpdateState(SlimeHairUiState state) + { + HairPicker.UpdateData(state.Hair, state.Species, state.HairSlotTotal); + FacialHairPicker.UpdateData(state.FacialHair, state.Species, state.FacialHairSlotTotal); + + if (!HairPicker.Visible && !FacialHairPicker.Visible) + { + AddChild(new Label { Text = Loc.GetString("magic-mirror-component-activate-user-has-no-hair") }); + } + } +} diff --git a/Content.Server/ADT/Changeling/EntitySystems/ChangelingEggSystem.cs b/Content.Server/ADT/Changeling/EntitySystems/ChangelingEggSystem.cs new file mode 100644 index 00000000000..b4fcd7a761b --- /dev/null +++ b/Content.Server/ADT/Changeling/EntitySystems/ChangelingEggSystem.cs @@ -0,0 +1,43 @@ +using Content.Shared.Changeling.Components; +using Content.Server.Actions; +using Content.Shared.Damage; +using Content.Shared.Damage.Prototypes; +using Content.Shared.Popups; +using Robust.Shared.Prototypes; + +namespace Content.Server.Changeling.EntitySystems; + +public sealed partial class ChangelingEggSystem : EntitySystem +{ + [Dependency] private readonly ActionsSystem _action = default!; + [Dependency] private readonly MetaDataSystem _metaData = default!; + [Dependency] private readonly EntityManager _entityManager = default!; + [Dependency] private readonly DamageableSystem _damageableSystem = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly IPrototypeManager _proto = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnInit); + SubscribeLocalEvent(OnShutdown); + + } + public ProtoId BruteDamageGroup = "Brute"; + private void OnInit(EntityUid uid, LingEggsHolderComponent component, MapInitEvent args) + { + var damage_burn = new DamageSpecifier(_proto.Index(BruteDamageGroup), component.DamageAmount); + _damageableSystem.TryChangeDamage(uid, damage_burn); /// To be sure that target is dead + var newLing = EnsureComp(uid); + newLing.EggedBody = true; /// To make egged person into a ling + var selfMessage = Loc.GetString("changeling-eggs-inform"); + _popup.PopupEntity(selfMessage, uid, uid, PopupType.LargeCaution); /// Popup + _action.AddAction(uid, ref component.ChangelingHatchActionEntity, component.ChangelingHatchAction); + } + private void OnShutdown(EntityUid uid, LingEggsHolderComponent component, ComponentShutdown args) + { + RemComp(uid); + _action.RemoveAction(uid, component.ChangelingHatchActionEntity); + } +} diff --git a/Content.Server/ADT/Changeling/EntitySystems/ChangelingSlugSystem.Abilities.cs b/Content.Server/ADT/Changeling/EntitySystems/ChangelingSlugSystem.Abilities.cs new file mode 100644 index 00000000000..d276f80566c --- /dev/null +++ b/Content.Server/ADT/Changeling/EntitySystems/ChangelingSlugSystem.Abilities.cs @@ -0,0 +1,107 @@ +using Content.Shared.Changeling.Components; +using Content.Shared.Changeling; +using Content.Shared.Inventory; +using Content.Server.Hands.Systems; +using Robust.Shared.Prototypes; +using Content.Server.Body.Systems; +using Content.Shared.Popups; +using Content.Shared.IdentityManagement; +using Robust.Shared.Audio.Systems; +using Content.Server.Emp; +using Content.Shared.DoAfter; +using Content.Shared.Humanoid; +using Content.Server.Fluids.EntitySystems; + +namespace Content.Server.Changeling.EntitySystems; + +public sealed partial class LingSlugSystem +{ + [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly BloodstreamSystem _bloodstreamSystem = default!; + [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + [Dependency] private readonly EntityManager _entityManager = default!; + + private void InitializeLingAbilities() + { + SubscribeLocalEvent(OnLayEggs); + SubscribeLocalEvent(OnLayEggsDoAfter); + } + + private void OnLayEggs(EntityUid uid, LingSlugComponent component, LingEggActionEvent args) /// TODO: Заменить на кладку яиц при ударе. + { + if (args.Handled) + return; + + var target = args.Target; + + if (!HasComp(target)) + { + var selfMessage = Loc.GetString("changeling-dna-fail-nohuman", ("target", Identity.Entity(target, EntityManager))); + _popup.PopupEntity(selfMessage, uid, uid); + return; + } + + if (!_mobState.IsIncapacitated(target)) // if target isn't crit or dead dont let absorb + { + var selfMessage = Loc.GetString("changeling-dna-fail-notdead", ("target", Identity.Entity(target, EntityManager))); + _popup.PopupEntity(selfMessage, uid, uid); + return; + } + + if (HasComp(target)) + { + var selfMessage = Loc.GetString("changeling-dna-alreadyabsorbed", ("target", Identity.Entity(target, EntityManager))); + _popup.PopupEntity(selfMessage, uid, uid); + return; + } + + if (_tagSystem.HasTag(target, "ChangelingBlacklist")) + { + var selfMessage = Loc.GetString("changeling-dna-sting-fail-nodna", ("target", Identity.Entity(target, EntityManager))); + _popup.PopupEntity(selfMessage, uid, uid); + return; + } + + if (LayEggs(uid, target, component)) + { + args.Handled = true; + + var selfMessage = Loc.GetString("changeling-eggs-self-start", ("target", Identity.Entity(target, EntityManager))); + _popup.PopupEntity(selfMessage, uid, uid, PopupType.MediumCaution); + } + + } + + private void OnLayEggsDoAfter(EntityUid uid, LingSlugComponent component, LingEggDoAfterEvent args) + { + if (args.Handled || args.Args.Target == null) + return; + + args.Handled = true; + var target = args.Args.Target.Value; + + if (args.Cancelled || !_mobState.IsIncapacitated(target) || HasComp(target)) + { + var selfMessage = Loc.GetString("changeling-eggs-interrupted"); + _popup.PopupEntity(selfMessage, uid, uid); + return; + } + + else + { + var holderComp = EnsureComp(target); + + var selfMessage = Loc.GetString("changeling-eggs-self-success", ("target", Identity.Entity(target, EntityManager))); + _popup.PopupEntity(selfMessage, uid, uid, PopupType.MediumCaution); + + component.EggsLaid = true; + component.EggLing = target; + + holderComp.ChangelingHatchAction = component.HatchAction; + + _action.RemoveAction(uid, component.LayEggsActionEntity); /// Яйца откладываются только один раз + + return; + } + } +} diff --git a/Content.Server/ADT/Changeling/EntitySystems/ChangelingSlugSystem.cs b/Content.Server/ADT/Changeling/EntitySystems/ChangelingSlugSystem.cs new file mode 100644 index 00000000000..30364905650 --- /dev/null +++ b/Content.Server/ADT/Changeling/EntitySystems/ChangelingSlugSystem.cs @@ -0,0 +1,131 @@ +using Content.Server.Actions; +using Content.Server.Store.Systems; +using Content.Shared.Changeling; +using Content.Shared.Changeling.Components; +using Content.Shared.Popups; +using Content.Server.Traitor.Uplink; +using Content.Server.Body.Components; +using Content.Shared.Mobs.Systems; +using Content.Shared.Humanoid; +using Content.Shared.IdentityManagement; +using Content.Server.Polymorph.Systems; +using Content.Shared.Actions; +using Robust.Shared.Serialization.Manager; +using Content.Shared.Alert; +using Content.Shared.Tag; +using Content.Shared.StatusEffect; +using Content.Shared.Chemistry.Components; +using Content.Shared.Damage.Prototypes; +using Content.Shared.Movement.Systems; +using Content.Shared.Damage.Systems; +using Content.Shared.Damage; +using Content.Shared.Gibbing.Systems; +using Content.Shared.Mind; +using Content.Shared.DoAfter; +using Robust.Shared.Prototypes; +using Content.Shared.Nutrition.Components; + +namespace Content.Server.Changeling.EntitySystems; + +public sealed partial class LingSlugSystem : EntitySystem +{ + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly ActionsSystem _action = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + [Dependency] private readonly PolymorphSystem _polymorph = default!; + [Dependency] private readonly ActionContainerSystem _actionContainer = default!; + [Dependency] private readonly TagSystem _tagSystem = default!; + [Dependency] private readonly DamageableSystem _damageableSystem = default!; + [Dependency] private readonly SharedMindSystem _mindSystem = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnStartup); + SubscribeLocalEvent(OnMapInit); + + InitializeLingAbilities(); + } + private void OnStartup(EntityUid uid, LingSlugComponent component, ComponentStartup args) + { + RemComp(uid); + RemComp(uid); + } + private void OnMapInit(EntityUid uid, LingSlugComponent component, MapInitEvent args) + { + _action.AddAction(uid, ref component.LayEggsActionEntity, component.LayEggsAction); + } + + public ProtoId BruteDamageGroup = "Brute"; + + public override void Update(float frameTime) + { + base.Update(frameTime); + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var ling)) + { + if (ling.EggsLaid) /// TODO: Зачем я вообще сделал это через Update? + { + if (ling.EggLing != null) + { + var oldUid = uid; + + if (ling.Spread == false) + { + if (_mindSystem.TryGetMind(uid, out var mindId, out var mind)) + _mindSystem.TransferTo(mindId, ling.EggLing.Value, mind: mind); + } + else + { + continue; + } + + if (!_entityManager.TryGetComponent(oldUid, out var bloodstream)) + return; + + var toxinInjection = new Solution(ling.ChemicalToxin, ling.ToxinAmount); + _bloodstreamSystem.TryAddToChemicals(oldUid, toxinInjection, bloodstream); + + ling.EggsLaid = false; + + return; + } + } + } + } + + + private bool LayEggs(EntityUid uid, EntityUid target, LingSlugComponent component) + { + if (!TryComp(target, out var metaData)) + return false; + if (!TryComp(target, out var humanoidappearance)) + { + return false; + } + + if (HasComp(target)) + { + var selfMessage = Loc.GetString("changeling-sting-fail-self", ("target", Identity.Entity(target, EntityManager))); + _popup.PopupEntity(selfMessage, uid, uid); + + var targetMessage = Loc.GetString("changeling-sting-fail-target"); + _popup.PopupEntity(targetMessage, target, target); + return false; + } + + var doAfter = new DoAfterArgs(EntityManager, uid, component.LayingDuration, new LingEggDoAfterEvent(), uid, target: target) + { + DistanceThreshold = 2, + BreakOnUserMove = true, + BreakOnTargetMove = true, + BreakOnDamage = true, + AttemptFrequency = AttemptFrequency.StartAndEnd + }; + + _doAfter.TryStartDoAfter(doAfter); + return true; + } +} diff --git a/Content.Server/ADT/Changeling/EntitySystems/ChangelingSystem.Abilities.cs b/Content.Server/ADT/Changeling/EntitySystems/ChangelingSystem.Abilities.cs index fd95f0482ae..95b8b67065b 100644 --- a/Content.Server/ADT/Changeling/EntitySystems/ChangelingSystem.Abilities.cs +++ b/Content.Server/ADT/Changeling/EntitySystems/ChangelingSystem.Abilities.cs @@ -27,6 +27,9 @@ using Content.Shared.Mobs.Systems; using Content.Shared.Eye.Blinding.Components; using Content.Shared.Eye.Blinding.Systems; +using Content.Server.Destructible; +using Content.Shared.Polymorph; +using Content.Server.Ghost.Components; namespace Content.Server.Changeling.EntitySystems; @@ -36,7 +39,6 @@ public sealed partial class ChangelingSystem [Dependency] private readonly HandsSystem _handsSystem = default!; [Dependency] private readonly InventorySystem _inventorySystem = default!; [Dependency] private readonly BloodstreamSystem _bloodstreamSystem = default!; - [Dependency] private readonly DamageableSystem _damageableSystem = default!; [Dependency] private readonly SharedAudioSystem _audioSystem = default!; [Dependency] private readonly EmpSystem _emp = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; @@ -61,6 +63,12 @@ private void InitializeLingAbilities() SubscribeLocalEvent(OnRefresh); SubscribeLocalEvent(OnOmniHeal); SubscribeLocalEvent(OnMuteSting); + SubscribeLocalEvent(OnDrugSting); + SubscribeLocalEvent(OnMuscles); + SubscribeLocalEvent(OnLesserForm); + SubscribeLocalEvent(OnArmShieldAction); + SubscribeLocalEvent(OnLastResort); + SubscribeLocalEvent(OnHatch); } @@ -69,6 +77,13 @@ private void StartAbsorbing(EntityUid uid, ChangelingComponent component, LingAb if (args.Handled) return; + if (component.LesserFormActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-lesser-form"); + _popup.PopupEntity(selfMessage, uid, uid); + return; + } + var target = args.Target; if (!HasComp(target)) { @@ -219,6 +234,13 @@ private void OnRegenerate(EntityUid uid, ChangelingComponent component, LingRege if (args.Handled) return; + if (component.LesserFormActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-lesser-form"); + _popup.PopupEntity(selfMessage, uid, uid); + return; + } + if (_mobState.IsDead(uid)) { _popup.PopupEntity(Loc.GetString("changeling-regenerate-fail-dead"), uid, uid); @@ -268,6 +290,13 @@ private void OnArmBladeAction(EntityUid uid, ChangelingComponent component, ArmB if (handContainer == null) return; + if (component.LesserFormActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-lesser-form"); + _popup.PopupEntity(selfMessage, uid, uid); + return; + } + if (!TryUseAbility(uid, component, component.ChemicalsCostTwenty, !component.ArmBladeActive)) return; @@ -317,6 +346,78 @@ private void OnArmBladeAction(EntityUid uid, ChangelingComponent component, ArmB } } + public const string ArmShieldId = "ArmShield"; + private void OnArmShieldAction(EntityUid uid, ChangelingComponent component, ArmShieldActionEvent args) + { + if (args.Handled) + return; + + if (!TryComp(uid, out HandsComponent? handsComponent)) + return; + if (handsComponent.ActiveHand == null) + return; + + var handContainer = handsComponent.ActiveHand.Container; + + if (handContainer == null) + return; + + if (component.LesserFormActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-lesser-form"); + _popup.PopupEntity(selfMessage, uid, uid); + return; + } + + if (!TryUseAbility(uid, component, component.ChemicalsCostTwenty, !component.ArmShieldActive)) + return; + + args.Handled = true; + + if (!component.ArmShieldActive) + { + if (SpawnArmShield(uid)) + { + component.ArmShieldActive = true; + _audioSystem.PlayPvs(component.SoundFlesh, uid); + + var othersMessage = Loc.GetString("changeling-armshield-success-others", ("user", Identity.Entity(uid, EntityManager))); + _popup.PopupEntity(othersMessage, uid, Filter.PvsExcept(uid), true, PopupType.MediumCaution); + + var selfMessage = Loc.GetString("changeling-armshield-success-self"); + _popup.PopupEntity(selfMessage, uid, uid, PopupType.MediumCaution); + } + else + { + _popup.PopupEntity(Loc.GetString("changeling-armshield-fail"), uid, uid); + } + } + else + { + if (handContainer.ContainedEntity != null) + { + if (TryComp(handContainer.ContainedEntity.Value, out var targetMeta)) + { + if (TryPrototype(handContainer.ContainedEntity.Value, out var prototype, targetMeta)) + { + if (prototype.ID == ArmShieldId) + { + component.ArmShieldActive = false; + QueueDel(handContainer.ContainedEntity.Value); + _audioSystem.PlayPvs(component.SoundFlesh, uid); + + var othersMessage = Loc.GetString("changeling-armshield-retract-others", ("user", Identity.Entity(uid, EntityManager))); + _popup.PopupEntity(othersMessage, uid, Filter.PvsExcept(uid), true, PopupType.MediumCaution); + + var selfMessage = Loc.GetString("changeling-armshield-retract-self"); + _popup.PopupEntity(selfMessage, uid, uid, PopupType.MediumCaution); + } + } + } + } + } + } + public void SpawnLingArmor(EntityUid uid, InventoryComponent inventory) { var helmet = Spawn(LingHelmetId, Transform(uid).Coordinates); @@ -346,6 +447,24 @@ public bool SpawnArmBlade(EntityUid uid) } } + public bool SpawnArmShield(EntityUid uid) + { + var armshield = Spawn(ArmShieldId, Transform(uid).Coordinates); + EnsureComp(armshield); // armblade is apart of your body.. cant remove it.. + RemComp(armshield); + + if (_handsSystem.TryPickupAnyHand(uid, armshield)) + { + return true; + } + else + { + QueueDel(armshield); + return false; + } + } + + public const string LingHelmetId = "ClothingHeadHelmetLing"; public const string LingArmorId = "ClothingOuterArmorChangeling"; public const string HeadId = "head"; @@ -359,6 +478,13 @@ private void OnLingArmorAction(EntityUid uid, ChangelingComponent component, Lin if (!TryComp(uid, out InventoryComponent? inventory)) return; + if (component.LesserFormActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-lesser-form"); + _popup.PopupEntity(selfMessage, uid, uid); + return; + } + if (!TryUseAbility(uid, component, component.ChemicalsCostTwenty, !component.LingArmorActive, component.LingArmorRegenCost)) return; @@ -425,6 +551,13 @@ private void OnLingInvisible(EntityUid uid, ChangelingComponent component, LingI if (!TryComp(uid, out InventoryComponent? inventory)) return; + if (component.LesserFormActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-lesser-form"); + _popup.PopupEntity(selfMessage, uid, uid); + return; + } + if (!TryUseAbility(uid, component, component.ChemicalsCostTwentyFive, !component.ChameleonSkinActive)) return; @@ -455,6 +588,13 @@ private void OnLingEmp(EntityUid uid, ChangelingComponent component, LingEMPActi if (args.Handled) return; + if (component.LesserFormActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-lesser-form"); + _popup.PopupEntity(selfMessage, uid, uid); + return; + } + if (!TryUseAbility(uid, component, component.ChemicalsCostTwenty)) return; @@ -539,6 +679,13 @@ private void OnStasisDeathAction(EntityUid uid, ChangelingComponent component, S if (args.Handled) return; + if (component.LesserFormActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-lesser-form"); + _popup.PopupEntity(selfMessage, uid, uid); + return; + } + if (!component.StasisDeathActive) { if (!_mobState.IsDead(uid)) @@ -548,6 +695,8 @@ private void OnStasisDeathAction(EntityUid uid, ChangelingComponent component, S args.Handled = true; + RemComp(uid); + var damage_burn = new DamageSpecifier(_proto.Index(BurnDamageGroup), component.StasisDeathDamageAmount); _damageableSystem.TryChangeDamage(uid, damage_burn); /// Самоопиздюливание @@ -577,6 +726,9 @@ private void OnStasisDeathAction(EntityUid uid, ChangelingComponent component, S _mobState.ChangeMobState(uid, MobState.Critical); /// Переходим в крит, если повреждений окажется меньше нужных для крита, поднимемся в MobState.Alive сами _damageableSystem.TryChangeDamage(uid, damage_burn); component.StasisDeathActive = false; + EnsureComp(uid); + var ghostOnMove = EnsureComp(uid); + ghostOnMove.MustBeDead = true; } } @@ -612,7 +764,7 @@ private void OnBlindSting(EntityUid uid, ChangelingComponent component, BlindSti { args.Handled = true; - var selfMessageSuccess = Loc.GetString("changeling-blind-sting", ("target", Identity.Entity(target, EntityManager))); + var selfMessageSuccess = Loc.GetString("changeling-success-sting", ("target", Identity.Entity(target, EntityManager))); _popup.PopupEntity(selfMessageSuccess, uid, uid); } @@ -649,18 +801,61 @@ private void OnMuteSting(EntityUid uid, ChangelingComponent component, MuteSting { args.Handled = true; - var selfMessageSuccess = Loc.GetString("changeling-mute-sting", ("target", Identity.Entity(target, EntityManager))); + var selfMessageSuccess = Loc.GetString("changeling-success-sting", ("target", Identity.Entity(target, EntityManager))); _popup.PopupEntity(selfMessageSuccess, uid, uid); } } + private void OnDrugSting(EntityUid uid, ChangelingComponent component, DrugStingEvent args) + { + if (args.Handled) + return; + + var target = args.Target; + + if (!TryStingTarget(uid, target, component)) + return; + + if (!HasComp(target)) + { + var selfMessageFailNoHuman = Loc.GetString("changeling-dna-sting-fail-nodna", ("target", Identity.Entity(target, EntityManager))); + _popup.PopupEntity(selfMessageFailNoHuman, uid, uid); + return; + } + + if (_tagSystem.HasTag(target, "ChangelingBlacklist")) + { + var selfMessage = Loc.GetString("changeling-dna-sting-fail-nodna", ("target", Identity.Entity(target, EntityManager))); + _popup.PopupEntity(selfMessage, uid, uid); + return; + } + + if (!TryUseAbility(uid, component, component.ChemicalsCostTwenty)) + return; + + if (DrugSting(uid, target, component)) + { + args.Handled = true; + + var selfMessageSuccess = Loc.GetString("changeling-success-sting", ("target", Identity.Entity(target, EntityManager))); + _popup.PopupEntity(selfMessageSuccess, uid, uid); + } + + } private void OnAdrenaline(EntityUid uid, ChangelingComponent component, AdrenalineActionEvent args) { if (args.Handled) return; + if (component.LesserFormActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-lesser-form"); + _popup.PopupEntity(selfMessage, uid, uid); + return; + } + if (!TryUseAbility(uid, component, component.ChemicalsCostTen)) return; @@ -679,6 +874,13 @@ private void OnOmniHeal(EntityUid uid, ChangelingComponent component, OmniHealAc if (args.Handled) return; + if (component.LesserFormActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-lesser-form"); + _popup.PopupEntity(selfMessage, uid, uid); + return; + } + if (!TryUseAbility(uid, component, component.ChemicalsCostTwentyFive)) return; @@ -697,6 +899,13 @@ private void OnRefresh(EntityUid uid, ChangelingComponent component, ChangelingR if (args.Handled) return; + if (component.LesserFormActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-lesser-form"); + _popup.PopupEntity(selfMessage, uid, uid); + return; + } + if (!TryUseAbility(uid, component, component.ChemicalsCostFree)) return; @@ -710,4 +919,100 @@ private void OnRefresh(EntityUid uid, ChangelingComponent component, ChangelingR } + private void OnMuscles(EntityUid uid, ChangelingComponent component, ChangelingMusclesActionEvent args) + { + if (args.Handled) + return; + + if (component.LesserFormActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-lesser-form"); + _popup.PopupEntity(selfMessage, uid, uid); + return; + } + + if (!TryUseAbility(uid, component, component.ChemicalsCostTwenty)) + return; + + if (Muscles(uid, component)) + { + args.Handled = true; + + var message = Loc.GetString("changeling-muscles"); + _popup.PopupEntity(message, uid, uid); + } + + } + + private void OnLesserForm(EntityUid uid, ChangelingComponent component, ChangelingLesserFormActionEvent args) + { + if (args.Handled) + return; + + if (!TryUseAbility(uid, component, component.ChemicalsCostTwenty)) + return; + + if (LesserForm(uid, component)) + { + args.Handled = true; + } + + } + + private void OnLastResort(EntityUid uid, ChangelingComponent component, LastResortActionEvent args) + { + if (args.Handled) + return; + + if (!TryUseAbility(uid, component, component.ChemicalsCostFree)) + return; + + if (SpawnLingSlug(uid, component)) + { + var damage_brute = new DamageSpecifier(_proto.Index(BruteDamageGroup), component.GibDamage); + _damageableSystem.TryChangeDamage(uid, damage_brute); + + args.Handled = true; + } + } + + private void OnHatch(EntityUid uid, ChangelingComponent component, LingHatchActionEvent args) /// TODO: Сделать из акшона автоматическую систему! + { + if (args.Handled) + return; + + if (!component.EggedBody) + return; + if (!TryUseAbility(uid, component, component.ChemicalsCostFree)) + return; + + if (!component.EggsReady) + { + ///_mobState.ChangeMobState(uid, MobState.Critical); + + var othersMessage = Loc.GetString("changeling-egg-others", ("user", Identity.Entity(uid, EntityManager))); + _popup.PopupEntity(othersMessage, uid, Filter.PvsExcept(uid), true, PopupType.MediumCaution); + + var selfMessage = Loc.GetString("changeling-egg-self"); + _popup.PopupEntity(selfMessage, uid, uid, PopupType.MediumCaution); + + component.EggsReady = !component.EggsReady; + + args.Handled = true; + } + + else + { + RemComp(uid); + + if (SpawnLingMonkey(uid, component)) + { + + var damage_brute = new DamageSpecifier(_proto.Index(BruteDamageGroup), component.GibDamage); + _damageableSystem.TryChangeDamage(uid, damage_brute); + + args.Handled = true; + } + } + } } diff --git a/Content.Server/ADT/Changeling/EntitySystems/ChangelingSystem.cs b/Content.Server/ADT/Changeling/EntitySystems/ChangelingSystem.cs index c7f4a4578fe..35fecb58ac2 100644 --- a/Content.Server/ADT/Changeling/EntitySystems/ChangelingSystem.cs +++ b/Content.Server/ADT/Changeling/EntitySystems/ChangelingSystem.cs @@ -5,7 +5,6 @@ using Content.Shared.Changeling; using Content.Shared.Changeling.Components; using Content.Shared.Popups; -using Robust.Shared.Prototypes; using Content.Shared.Store; using Content.Server.Traitor.Uplink; using Content.Server.Body.Components; @@ -27,6 +26,16 @@ using Content.Shared.Eye.Blinding.Components; using Content.Shared.Eye.Blinding.Systems; using Content.Shared.Chemistry.Components; +using Content.Shared.Movement.Components; +using Content.Shared.Movement.Systems; +using Content.Shared.Damage.Systems; +using Content.Shared.Damage; +using Content.Shared.Gibbing.Systems; +using Content.Shared.Mind; +using Content.Shared.Sirena.NightVision.Components; +using Content.Shared.CombatMode; +using Content.Server.UserInterface; +using Content.Server.SlimeHair; namespace Content.Server.Changeling.EntitySystems; @@ -45,6 +54,12 @@ public sealed partial class ChangelingSystem : EntitySystem [Dependency] private readonly TagSystem _tagSystem = default!; [Dependency] private readonly StatusEffectsSystem _status = default!; [Dependency] private readonly EntityManager _entityManager = default!; + [Dependency] private readonly MovementSpeedModifierSystem _movementSpeedModifierSystem = default!; + [Dependency] private readonly StaminaSystem _stamina = default!; + [Dependency] private readonly DamageableSystem _damageableSystem = default!; + [Dependency] private readonly GibbingSystem _gibbingSystem = default!; + [Dependency] private readonly SharedMindSystem _mindSystem = default!; + [Dependency] private readonly SharedCombatModeSystem _combat = default!; public override void Initialize() { @@ -52,6 +67,7 @@ public override void Initialize() SubscribeLocalEvent(OnStartup); SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnShutdown); SubscribeLocalEvent(OnShop); SubscribeLocalEvent(OnCycleDNA); @@ -62,6 +78,9 @@ public override void Initialize() private void OnStartup(EntityUid uid, ChangelingComponent component, ComponentStartup args) { + //RemComp(uid); // TODO: Исправить проблему с волосами слаймов + //RemComp(uid); + //RemComp(uid); _uplink.AddUplink(uid, FixedPoint2.New(10), ChangelingShopPresetPrototype, uid, EvolutionPointsCurrencyPrototype); // not really an 'uplink', but it's there to add the evolution menu StealDNA(uid, component); @@ -136,6 +155,17 @@ private void OnMapInit(EntityUid uid, ChangelingComponent component, MapInitEven _action.AddAction(uid, ref component.ChangelingTransformActionEntity, component.ChangelingTransformAction); _action.AddAction(uid, ref component.ChangelingRefreshActionEntity, component.ChangelingRefreshAction); } + + private void OnShutdown(EntityUid uid, ChangelingComponent component, ComponentShutdown args) + { + _action.RemoveAction(uid, component.ChangelingEvolutionMenuActionEntity); + _action.RemoveAction(uid, component.ChangelingRegenActionEntity); + _action.RemoveAction(uid, component.ChangelingAbsorbActionEntity); + _action.RemoveAction(uid, component.ChangelingDNAStingActionEntity); + _action.RemoveAction(uid, component.ChangelingDNACycleActionEntity); + _action.RemoveAction(uid, component.ChangelingTransformActionEntity); + _action.RemoveAction(uid, component.ChangelingRefreshActionEntity); + } private void OnShop(EntityUid uid, ChangelingComponent component, ChangelingEvolutionMenuActionEvent args) { _store.OnInternalShop(uid); @@ -161,6 +191,11 @@ public override void Update(float frameTime) { ChangeChemicalsAmount(uid, ling.ChemicalsPerSecond, ling, regenCap: true); } + + if (ling.MusclesActive) + { + _stamina.TakeStaminaDamage(uid, ling.MusclesStaminaDamage, null, null, null, false); + } } } @@ -219,7 +254,11 @@ public void OnCycleDNA(EntityUid uid, ChangelingComponent component, ChangelingC var selectedHumanoidData = component.StoredDNA[component.SelectedDNA]; if (selectedHumanoidData.MetaDataComponent == null) + { + var selfFailMessage = Loc.GetString("changeling-nodna-saved"); + _popup.PopupEntity(selfFailMessage, uid, uid); return; + } var selfMessage = Loc.GetString("changeling-dna-switchdna", ("target", selectedHumanoidData.MetaDataComponent.EntityName)); _popup.PopupEntity(selfMessage, uid, uid); @@ -234,19 +273,62 @@ public void OnTransform(EntityUid uid, ChangelingComponent component, Changeling var dnaComp = EnsureComp(uid); if (selectedHumanoidData.EntityPrototype == null) + { + var selfFailMessage = Loc.GetString("changeling-nodna-saved"); + _popup.PopupEntity(selfFailMessage, uid, uid); return; + } if (selectedHumanoidData.HumanoidAppearanceComponent == null) + { + var selfFailMessage = Loc.GetString("changeling-nodna-saved"); + _popup.PopupEntity(selfFailMessage, uid, uid); return; + } if (selectedHumanoidData.MetaDataComponent == null) + { + var selfFailMessage = Loc.GetString("changeling-nodna-saved"); + _popup.PopupEntity(selfFailMessage, uid, uid); return; + } if (selectedHumanoidData.DNA == null) + { + var selfFailMessage = Loc.GetString("changeling-nodna-saved"); + _popup.PopupEntity(selfFailMessage, uid, uid); return; + } if (selectedHumanoidData.DNA == dnaComp.DNA) { - var selfMessage = Loc.GetString("changeling-transform-fail", ("target", selectedHumanoidData.MetaDataComponent.EntityName)); + var selfMessage = Loc.GetString("changeling-transform-fail-already", ("target", selectedHumanoidData.MetaDataComponent.EntityName)); + _popup.PopupEntity(selfMessage, uid, uid); + } + + else if (component.ArmBladeActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-mutation"); + _popup.PopupEntity(selfMessage, uid, uid); + } + else if (component.LingArmorActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-mutation"); + _popup.PopupEntity(selfMessage, uid, uid); + } + else if (component.ChameleonSkinActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-mutation"); + _popup.PopupEntity(selfMessage, uid, uid); + } + else if (component.MusclesActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-mutation"); _popup.PopupEntity(selfMessage, uid, uid); } + else if (component.LesserFormActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-lesser-form"); + _popup.PopupEntity(selfMessage, uid, uid); + } + else { if (!TryUseAbility(uid, component, component.ChemicalsCostFive)) @@ -359,6 +441,34 @@ public bool MuteSting(EntityUid uid, EntityUid target, ChangelingComponent compo return true; } + public bool DrugSting(EntityUid uid, EntityUid target, ChangelingComponent component) /// чел ты в муте + { + if (!TryComp(target, out var metaData)) + return false; + if (!TryComp(target, out var humanoidappearance)) + { + return false; + } + + if (HasComp(target)) + { + var selfMessage = Loc.GetString("changeling-sting-fail-self", ("target", Identity.Entity(target, EntityManager))); + _popup.PopupEntity(selfMessage, uid, uid); + + var targetMessage = Loc.GetString("changeling-sting-fail-target"); + _popup.PopupEntity(targetMessage, target, target); + return false; + } + + if (!_entityManager.TryGetComponent(target, out var bloodstream)) + return false; + + var drugInjection = new Solution(component.ChemicalSpaceDrugs, component.SpaceDrugsAmount); + _bloodstreamSystem.TryAddToChemicals(target, drugInjection, bloodstream); + + return true; + } + public bool Adrenaline(EntityUid uid, ChangelingComponent component) /// Адреналин { @@ -397,11 +507,15 @@ public bool OmniHeal(EntityUid uid, ChangelingComponent component) /// Омн { return false; } - if (!_entityManager.TryGetComponent(uid, out var bloodstream)) - return false; - var omnizineInjection = new Solution(component.ChemicalOmni, component.OmnizineAmount); - _bloodstreamSystem.TryAddToChemicals(uid, omnizineInjection, bloodstream); - + var damage_brute = new DamageSpecifier(_proto.Index(BruteDamageGroup), component.RegenerateBruteHealAmount); + var damage_burn = new DamageSpecifier(_proto.Index(BurnDamageGroup), component.RegenerateBurnHealAmount); + _damageableSystem.TryChangeDamage(uid, damage_brute); + _damageableSystem.TryChangeDamage(uid, damage_burn); + _bloodstreamSystem.TryModifyBloodLevel(uid, component.RegenerateBloodVolumeHealAmount); // give back blood and remove bleeding + _bloodstreamSystem.TryModifyBleedAmount(uid, component.RegenerateBleedReduceAmount); + _audioSystem.PlayPvs(component.SoundFleshQuiet, uid); + /// Думали тут будет омнизин??? ХРЕН ВАМ! + /// :3 return true; } @@ -444,4 +558,218 @@ public bool Refresh(EntityUid uid, ChangelingComponent component) /// Очис } } + + public bool Muscles(EntityUid uid, ChangelingComponent component) + { + if (!TryComp(uid, out var metaData)) + return false; + if (!TryComp(uid, out var humanoidappearance)) + { + return false; + } + + if (!component.MusclesActive) + { + var movementSpeed = EnsureComp(uid); + var sprintSpeed = movementSpeed.BaseSprintSpeed + component.MusclesModifier; + var walkSpeed = movementSpeed.BaseWalkSpeed + component.MusclesModifier; + _movementSpeedModifierSystem?.ChangeBaseSpeed(uid, walkSpeed, sprintSpeed, movementSpeed.Acceleration, movementSpeed); + } + + if (component.MusclesActive) + { + var movementSpeed = EnsureComp(uid); + var sprintSpeed = movementSpeed.BaseSprintSpeed - component.MusclesModifier; + var walkSpeed = movementSpeed.BaseWalkSpeed - component.MusclesModifier; + _movementSpeedModifierSystem?.ChangeBaseSpeed(uid, walkSpeed, sprintSpeed, movementSpeed.Acceleration, movementSpeed); + } + component.MusclesActive = !component.MusclesActive; + return true; + } + + public bool LesserForm(EntityUid uid, ChangelingComponent component) + { + + if (component.ArmBladeActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-mutation"); + _popup.PopupEntity(selfMessage, uid, uid); + } + else if (component.LingArmorActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-mutation"); + _popup.PopupEntity(selfMessage, uid, uid); + } + else if (component.ChameleonSkinActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-mutation"); + _popup.PopupEntity(selfMessage, uid, uid); + } + else if (component.MusclesActive) + { + var selfMessage = Loc.GetString("changeling-transform-fail-mutation"); + _popup.PopupEntity(selfMessage, uid, uid); + } + + else + { + if (!component.LesserFormActive) + { + var transformedUid = _polymorph.PolymorphEntity(uid, component.LesserFormMob); + if (transformedUid == null) + return false; + + var selfMessage = Loc.GetString("changeling-lesser-form-activate-monkey"); + _popup.PopupEntity(selfMessage, transformedUid.Value, transformedUid.Value); + + var newLingComponent = EnsureComp(transformedUid.Value); + newLingComponent.Chemicals = component.Chemicals; + newLingComponent.ChemicalsPerSecond = component.ChemicalsPerSecond; + newLingComponent.StoredDNA = component.StoredDNA; + newLingComponent.SelectedDNA = component.SelectedDNA; + newLingComponent.ArmBladeActive = component.ArmBladeActive; + newLingComponent.ChameleonSkinActive = component.ChameleonSkinActive; + newLingComponent.LingArmorActive = component.LingArmorActive; + newLingComponent.CanRefresh = component.CanRefresh; + newLingComponent.LesserFormActive = !component.LesserFormActive; + RemComp(uid, component); + + if (TryComp(uid, out StoreComponent? storeComp)) + { + var copiedStoreComponent = (Component) _serialization.CreateCopy(storeComp, notNullableOverride: true); + RemComp(transformedUid.Value); + EntityManager.AddComponent(transformedUid.Value, copiedStoreComponent); + } + + if (TryComp(uid, out StealthComponent? stealthComp)) // copy over stealth status + { + if (TryComp(uid, out StealthOnMoveComponent? stealthOnMoveComp)) + { + var copiedStealthComponent = (Component) _serialization.CreateCopy(stealthComp, notNullableOverride: true); + EntityManager.AddComponent(transformedUid.Value, copiedStealthComponent); + RemComp(uid, stealthComp); + + var copiedStealthOnMoveComponent = (Component) _serialization.CreateCopy(stealthOnMoveComp, notNullableOverride: true); + EntityManager.AddComponent(transformedUid.Value, copiedStealthOnMoveComponent); + RemComp(uid, stealthOnMoveComp); + } + } + + _actionContainer.TransferAllActionsWithNewAttached(uid, transformedUid.Value, transformedUid.Value); + + if (!TryComp(transformedUid.Value, out InventoryComponent? inventory)) + return false; + } + if (component.LesserFormActive) + { + var selectedHumanoidData = component.StoredDNA[component.SelectedDNA]; + + var transformedUid = _polymorph.PolymorphEntityAsHumanoid(uid, selectedHumanoidData); + if (transformedUid == null) + return false; + + if (selectedHumanoidData.EntityPrototype == null) + return false; + if (selectedHumanoidData.HumanoidAppearanceComponent == null) + return false; + if (selectedHumanoidData.MetaDataComponent == null) + return false; + if (selectedHumanoidData.DNA == null) + return false; + + var selfMessage = Loc.GetString("changeling-transform-activate", ("target", selectedHumanoidData.MetaDataComponent.EntityName)); + _popup.PopupEntity(selfMessage, transformedUid.Value, transformedUid.Value); + + var newLingComponent = EnsureComp(transformedUid.Value); + newLingComponent.Chemicals = component.Chemicals; + newLingComponent.ChemicalsPerSecond = component.ChemicalsPerSecond; + newLingComponent.StoredDNA = component.StoredDNA; + newLingComponent.SelectedDNA = component.SelectedDNA; + newLingComponent.ArmBladeActive = component.ArmBladeActive; + newLingComponent.ChameleonSkinActive = component.ChameleonSkinActive; + newLingComponent.LingArmorActive = component.LingArmorActive; + newLingComponent.CanRefresh = component.CanRefresh; + newLingComponent.LesserFormActive = !component.LesserFormActive; + RemComp(uid, component); + + if (TryComp(uid, out StoreComponent? storeComp)) + { + var copiedStoreComponent = (Component) _serialization.CreateCopy(storeComp, notNullableOverride: true); + RemComp(transformedUid.Value); + EntityManager.AddComponent(transformedUid.Value, copiedStoreComponent); + } + + if (TryComp(uid, out StealthComponent? stealthComp)) // copy over stealth status + { + if (TryComp(uid, out StealthOnMoveComponent? stealthOnMoveComp)) + { + var copiedStealthComponent = (Component) _serialization.CreateCopy(stealthComp, notNullableOverride: true); + EntityManager.AddComponent(transformedUid.Value, copiedStealthComponent); + RemComp(uid, stealthComp); + + var copiedStealthOnMoveComponent = (Component) _serialization.CreateCopy(stealthOnMoveComp, notNullableOverride: true); + EntityManager.AddComponent(transformedUid.Value, copiedStealthOnMoveComponent); + RemComp(uid, stealthOnMoveComp); + } + } + + _actionContainer.TransferAllActionsWithNewAttached(uid, transformedUid.Value, transformedUid.Value); + + if (!TryComp(transformedUid.Value, out InventoryComponent? inventory)) + return false; + } + + } + return true; + } + + public const string LingSlugId = "ChangelingHeadslug"; + + public bool SpawnLingSlug(EntityUid uid, ChangelingComponent component) + { + var slug = Spawn(LingSlugId, Transform(uid).Coordinates); + + if (_mindSystem.TryGetMind(uid, out var mindId, out var mind)) + _mindSystem.TransferTo(mindId, slug, mind: mind); + return true; + } + + public const string LingMonkeyId = "MobMonkeyChangeling"; + + public bool SpawnLingMonkey(EntityUid uid, ChangelingComponent component) + { + var slug = Spawn(LingMonkeyId, Transform(uid).Coordinates); + + var newLingComponent = EnsureComp(slug); + newLingComponent.Chemicals = component.Chemicals; + newLingComponent.ChemicalsPerSecond = component.ChemicalsPerSecond; + newLingComponent.StoredDNA = component.StoredDNA; + newLingComponent.SelectedDNA = component.SelectedDNA; + newLingComponent.ArmBladeActive = component.ArmBladeActive; + newLingComponent.ChameleonSkinActive = component.ChameleonSkinActive; + newLingComponent.LingArmorActive = component.LingArmorActive; + newLingComponent.CanRefresh = component.CanRefresh; + newLingComponent.LesserFormActive = !component.LesserFormActive; + + + RemComp(uid, component); + + _action.AddAction(slug, ref component.ChangelingLesserFormActionEntity, component.ChangelingLesserFormAction); + + + newLingComponent.StoredDNA = new List(); /// Создание нового ДНК списка + var newHumanoidData = _polymorph.TryRegisterPolymorphHumanoidData(uid); + if (newHumanoidData == null) + return false; + + else + { + newLingComponent.StoredDNA.Add(newHumanoidData.Value); + } + + if (_mindSystem.TryGetMind(uid, out var mindId, out var mind)) + _mindSystem.TransferTo(mindId, slug, mind: mind); + + return true; + } } diff --git a/Content.Server/ADT/ComponentalActions/EntitySystems/ComponentalActions.Abilities.cs b/Content.Server/ADT/ComponentalActions/EntitySystems/ComponentalActions.Abilities.cs new file mode 100644 index 00000000000..d80cb1c4b68 --- /dev/null +++ b/Content.Server/ADT/ComponentalActions/EntitySystems/ComponentalActions.Abilities.cs @@ -0,0 +1,306 @@ +using Content.Shared.ComponentalActions.Components; +using Content.Shared.ComponentalActions; +using Content.Shared.Inventory; +using Content.Shared.Interaction.Components; +using Content.Shared.Hands.Components; +using Content.Server.Hands.Systems; +using Robust.Shared.Prototypes; +using Content.Shared.Damage; +using Content.Shared.Damage.Prototypes; +using Content.Server.Body.Systems; +using Content.Shared.Popups; +using Robust.Shared.Player; +using Content.Shared.IdentityManagement; +using Robust.Shared.Audio.Systems; +using Content.Shared.Stealth.Components; +using Content.Server.Emp; +using Content.Shared.DoAfter; +using Content.Shared.Humanoid; +using Content.Server.Forensics; +using Content.Shared.FixedPoint; +using Content.Server.Store.Components; +using Content.Shared.Chemistry.Components; +using Content.Server.Fluids.EntitySystems; +using Content.Shared.Tag; +using Content.Shared.Mobs; +using Content.Shared.Mobs.Components; +using Content.Shared.Mobs.Systems; +using Content.Shared.Eye.Blinding.Components; +using Content.Shared.Eye.Blinding.Systems; +using Content.Server.Destructible; +using Content.Shared.Polymorph; +using Robust.Shared.Serialization; +using Robust.Shared.Map; +using Robust.Shared.Random; +using Content.Shared.Doors; +using Robust.Shared.Audio; +using System.Numerics; +using Content.Server.Body.Components; +using Content.Server.Chat.Systems; +using Content.Server.Doors.Systems; +using Content.Server.Magic.Components; +using Content.Server.Weapons.Ranged.Systems; +using Content.Shared.Actions; +using Content.Shared.Body.Components; +using Content.Shared.Coordinates.Helpers; +using Content.Shared.Doors.Components; +using Content.Shared.Doors.Systems; +using Content.Shared.Interaction.Events; +using Content.Shared.Maps; +using Content.Shared.Physics; +using Content.Shared.Storage; +using Robust.Server.GameObjects; +using Content.Shared.Movement.Components; +using Content.Shared.Movement.Systems; +using Content.Shared.Throwing; + +namespace Content.Server.ComponentalActions.EntitySystems; + +public sealed partial class ComponentalActionsSystem +{ + [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly HandsSystem _handsSystem = default!; + [Dependency] private readonly InventorySystem _inventorySystem = default!; + [Dependency] private readonly BloodstreamSystem _bloodstreamSystem = default!; + [Dependency] private readonly SharedAudioSystem _audioSystem = default!; + [Dependency] private readonly EmpSystem _emp = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; + [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + [Dependency] private readonly PuddleSystem _puddle = default!; + [Dependency] private readonly IComponentFactory _compFact = default!; + [Dependency] private readonly IMapManager _mapManager = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly BodySystem _bodySystem = default!; + [Dependency] private readonly EntityLookupSystem _lookup = default!; + [Dependency] private readonly SharedTransformSystem _transformSystem = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly PhysicsSystem _physics = default!; + [Dependency] private readonly GunSystem _gunSystem = default!; + [Dependency] private readonly ThrowingSystem _throwing = default!; + private void InitializeCompAbilities() + { + SubscribeLocalEvent(OnTeleport); + SubscribeLocalEvent(OnProjectile); + SubscribeLocalEvent(OnHeal); + SubscribeLocalEvent(OnJump); + SubscribeLocalEvent(OnStasisHeal); + SubscribeLocalEvent(OnInvisibility); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var stasis)) + { + if (stasis.Active) + { + var damage_brute = new DamageSpecifier(_proto.Index(BruteDamageGroup), stasis.RegenerateBruteHealAmount); + var damage_burn = new DamageSpecifier(_proto.Index(BurnDamageGroup), stasis.RegenerateBurnHealAmount); + var damage_airloss = new DamageSpecifier(_proto.Index(AirlossDamageGroup), stasis.RegenerateBurnHealAmount); + var damage_toxin = new DamageSpecifier(_proto.Index(ToxinDamageGroup), stasis.RegenerateBurnHealAmount); + var damage_genetic = new DamageSpecifier(_proto.Index(GeneticDamageGroup), stasis.RegenerateBurnHealAmount); + _damageableSystem.TryChangeDamage(uid, damage_brute); + _damageableSystem.TryChangeDamage(uid, damage_burn); + _damageableSystem.TryChangeDamage(uid, damage_airloss); + _damageableSystem.TryChangeDamage(uid, damage_toxin); + _damageableSystem.TryChangeDamage(uid, damage_genetic); + _bloodstreamSystem.TryModifyBloodLevel(uid, stasis.RegenerateBloodVolumeHealAmount); // give back blood and remove bleeding + _bloodstreamSystem.TryModifyBleedAmount(uid, stasis.RegenerateBleedReduceAmount); + } + } + } + private List GetSpawnPositions(TransformComponent casterXform, ComponentalActionsSpawnData data) + { + switch (data) + { + case TargetCasterPos: + return new List(1) { casterXform.Coordinates }; + case TargetInFront: + { + // This is shit but you get the idea. + var directionPos = casterXform.Coordinates.Offset(casterXform.LocalRotation.ToWorldVec().Normalized()); + + if (!_mapManager.TryGetGrid(casterXform.GridUid, out var mapGrid)) + return new List(); + + if (!directionPos.TryGetTileRef(out var tileReference, EntityManager, _mapManager)) + return new List(); + + var tileIndex = tileReference.Value.GridIndices; + var coords = mapGrid.GridTileToLocal(tileIndex); + EntityCoordinates coordsPlus; + EntityCoordinates coordsMinus; + + var dir = casterXform.LocalRotation.GetCardinalDir(); + switch (dir) + { + case Direction.North: + case Direction.South: + { + coordsPlus = mapGrid.GridTileToLocal(tileIndex + (1, 0)); + coordsMinus = mapGrid.GridTileToLocal(tileIndex + (-1, 0)); + return new List(3) + { + coords, + coordsPlus, + coordsMinus, + }; + } + case Direction.East: + case Direction.West: + { + coordsPlus = mapGrid.GridTileToLocal(tileIndex + (0, 1)); + coordsMinus = mapGrid.GridTileToLocal(tileIndex + (0, -1)); + return new List(3) + { + coords, + coordsPlus, + coordsMinus, + }; + } + } + + return new List(); + } + default: + throw new ArgumentOutOfRangeException(); + } + } + + + private void OnTeleport(EntityUid uid, TeleportActComponent component, CompTeleportActionEvent args) + { + if (args.Handled) + return; + + var transform = Transform(uid); + + if (transform.MapID != args.Target.GetMapId(EntityManager)) + return; + + _transformSystem.SetCoordinates(uid, args.Target); + transform.AttachToGridOrMap(); + _audio.PlayPvs(component.BlinkSound, uid, AudioParams.Default.WithVolume(component.BlinkVolume)); + args.Handled = true; + } + + private void OnProjectile(EntityUid uid, ProjectileActComponent component, CompProjectileActionEvent args) + { + if (args.Handled) + return; + + args.Handled = true; + + var xform = Transform(uid); + var userVelocity = _physics.GetMapLinearVelocity(uid); + + foreach (var pos in GetSpawnPositions(xform, component.Pos)) + { + // If applicable, this ensures the projectile is parented to grid on spawn, instead of the map. + var mapPos = pos.ToMap(EntityManager); + var spawnCoords = _mapManager.TryFindGridAt(mapPos, out var gridUid, out _) + ? pos.WithEntityId(gridUid, EntityManager) + : new(_mapManager.GetMapEntityId(mapPos.MapId), mapPos.Position); + + var ent = Spawn(component.Prototype, spawnCoords); + var direction = args.Target.ToMapPos(EntityManager, _transformSystem) - + spawnCoords.ToMapPos(EntityManager, _transformSystem); + _gunSystem.ShootProjectile(ent, direction, userVelocity, uid, uid); + _audio.PlayPvs(component.ShootSound, uid, AudioParams.Default.WithVolume(component.ShootVolume)); + } + } + + public ProtoId BruteDamageGroup = "Brute"; + public ProtoId BurnDamageGroup = "Burn"; + public ProtoId AirlossDamageGroup = "Airloss"; + public ProtoId ToxinDamageGroup = "Toxin"; + public ProtoId GeneticDamageGroup = "Genetic"; + + private void OnHeal(EntityUid uid, HealActComponent component, CompHealActionEvent args) + { + if (args.Handled) + return; + + var damage_brute = new DamageSpecifier(_proto.Index(BruteDamageGroup), component.RegenerateBruteHealAmount); + var damage_burn = new DamageSpecifier(_proto.Index(BurnDamageGroup), component.RegenerateBurnHealAmount); + _damageableSystem.TryChangeDamage(uid, damage_brute); + _damageableSystem.TryChangeDamage(uid, damage_burn); + _bloodstreamSystem.TryModifyBloodLevel(uid, component.RegenerateBloodVolumeHealAmount); // give back blood and remove bleeding + _bloodstreamSystem.TryModifyBleedAmount(uid, component.RegenerateBleedReduceAmount); + _audioSystem.PlayPvs(component.HealSound, uid, AudioParams.Default.WithVolume(component.HealVolume)); + + args.Handled = true; + } + + private void OnJump(EntityUid uid, JumpActComponent component, CompJumpActionEvent args) + { + if (args.Handled) + return; + + var transform = Transform(uid); + + if (transform.MapID != args.Target.GetMapId(EntityManager)) + return; + + _throwing.TryThrow(uid, args.Target, component.Strength); + _audio.PlayPvs(component.Sound, uid, AudioParams.Default.WithVolume(component.Volume)); + args.Handled = true; + } + + private void OnStasisHeal(EntityUid uid, StasisHealActComponent component, CompStasisHealActionEvent args) + { + if (args.Handled) + return; + + if (component.Active) + { + var movementSpeed = EnsureComp(uid); + var sprintSpeed = component.BaseSprintSpeed; + var walkSpeed = component.BaseWalkSpeed; + _movementSpeedModifierSystem?.ChangeBaseSpeed(uid, walkSpeed, sprintSpeed, movementSpeed.Acceleration, movementSpeed); + } + + if (!component.Active) + { + var movementSpeed = EnsureComp(uid); + var sprintSpeed = component.SpeedModifier; + var walkSpeed = component.SpeedModifier; + _movementSpeedModifierSystem?.ChangeBaseSpeed(uid, walkSpeed, sprintSpeed, movementSpeed.Acceleration, movementSpeed); + } + + component.Active = !component.Active; + + args.Handled = true; + } + + private void OnInvisibility(EntityUid uid, InvisibilityActComponent component, CompInvisibilityActionEvent args) + { + if (args.Handled) + return; + + var stealth = EnsureComp(uid); // cant remove the armor + var stealthonmove = EnsureComp(uid); // cant remove the armor + + var message = Loc.GetString(!component.Active ? "changeling-chameleon-toggle-on" : "changeling-chameleon-toggle-off"); + _popup.PopupEntity(message, uid, uid); + + if (!component.Active) + { + stealthonmove.PassiveVisibilityRate = component.PassiveVisibilityRate; + stealthonmove.MovementVisibilityRate = component.MovementVisibilityRate; + stealth.MinVisibility = component.MinVisibility; + stealth.MaxVisibility = component.MaxVisibility; + } + else + { + RemCompDeferred(uid, stealth); + RemCompDeferred(uid, stealthonmove); + } + + component.Active = !component.Active; + + args.Handled = true; + } +} diff --git a/Content.Server/ADT/ComponentalActions/EntitySystems/ComponentalActions.cs b/Content.Server/ADT/ComponentalActions/EntitySystems/ComponentalActions.cs new file mode 100644 index 00000000000..b99b8eb9523 --- /dev/null +++ b/Content.Server/ADT/ComponentalActions/EntitySystems/ComponentalActions.cs @@ -0,0 +1,140 @@ +using Content.Server.Actions; +using Content.Shared.Inventory; +using Content.Server.Store.Components; +using Content.Server.Store.Systems; +using Content.Shared.ComponentalActions; +using Content.Shared.ComponentalActions.Components; +using Content.Shared.Popups; +using Content.Shared.Store; +using Content.Server.Traitor.Uplink; +using Content.Server.Body.Components; +using Content.Shared.Mobs.Systems; +using Content.Shared.FixedPoint; +using Content.Shared.Humanoid; +using Content.Shared.IdentityManagement; +using Content.Server.Polymorph.Systems; +using System.Linq; +using Content.Shared.Polymorph; +using Content.Server.Forensics; +using Content.Shared.Actions; +using Robust.Shared.Serialization.Manager; +using Content.Shared.Alert; +using Content.Shared.Stealth.Components; +using Content.Shared.Nutrition.Components; +using Content.Shared.Tag; +using Content.Shared.StatusEffect; +using Content.Shared.Eye.Blinding.Components; +using Content.Shared.Eye.Blinding.Systems; +using Content.Shared.Chemistry.Components; +using Content.Shared.Movement.Components; +using Content.Shared.Movement.Systems; +using Content.Shared.Damage.Systems; +using Content.Shared.Damage; +using Content.Shared.Gibbing.Systems; +using Content.Shared.Mind; +using Robust.Shared.Audio; + +namespace Content.Server.ComponentalActions.EntitySystems; + +public sealed partial class ComponentalActionsSystem : EntitySystem +{ + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly StoreSystem _store = default!; + [Dependency] private readonly ActionsSystem _action = default!; + [Dependency] private readonly UplinkSystem _uplink = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + [Dependency] private readonly PolymorphSystem _polymorph = default!; + [Dependency] private readonly MetaDataSystem _metaData = default!; + [Dependency] private readonly ISerializationManager _serialization = default!; + [Dependency] private readonly ActionContainerSystem _actionContainer = default!; + [Dependency] private readonly AlertsSystem _alerts = default!; + [Dependency] private readonly TagSystem _tagSystem = default!; + [Dependency] private readonly StatusEffectsSystem _status = default!; + [Dependency] private readonly EntityManager _entityManager = default!; + [Dependency] private readonly MovementSpeedModifierSystem _movementSpeedModifierSystem = default!; + [Dependency] private readonly StaminaSystem _stamina = default!; + [Dependency] private readonly DamageableSystem _damageableSystem = default!; + [Dependency] private readonly GibbingSystem _gibbingSystem = default!; + [Dependency] private readonly SharedMindSystem _mindSystem = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnTeleportInit); + SubscribeLocalEvent(OnTeleportShutdown); + + SubscribeLocalEvent(OnProjectileInit); + SubscribeLocalEvent(OnProjectileShutdown); + + SubscribeLocalEvent(OnHealInit); + SubscribeLocalEvent(OnHealShutdown); + + SubscribeLocalEvent(OnJumpInit); + SubscribeLocalEvent(OnJumpShutdown); + + SubscribeLocalEvent(OnStasisHealInit); + SubscribeLocalEvent(OnStasisHealShutdown); + + SubscribeLocalEvent(OnStealthInit); + SubscribeLocalEvent(OnStealthShutdown); + + InitializeCompAbilities(); + } + + private void OnTeleportInit(EntityUid uid, TeleportActComponent component, MapInitEvent args) + { + _action.AddAction(uid, ref component.ActionEntity, component.Action); + } + private void OnTeleportShutdown(EntityUid uid, TeleportActComponent component, ComponentShutdown args) + { + _action.RemoveAction(uid, component.ActionEntity); + } + + private void OnProjectileInit(EntityUid uid, ProjectileActComponent component, MapInitEvent args) + { + _action.AddAction(uid, ref component.ActionEntity, component.Action); + } + private void OnProjectileShutdown(EntityUid uid, ProjectileActComponent component, ComponentShutdown args) + { + _action.RemoveAction(uid, component.ActionEntity); + } + private void OnHealInit(EntityUid uid, HealActComponent component, MapInitEvent args) + { + _action.AddAction(uid, ref component.ActionEntity, component.Action); + } + private void OnHealShutdown(EntityUid uid, HealActComponent component, ComponentShutdown args) + { + _action.RemoveAction(uid, component.ActionEntity); + } + + private void OnJumpInit(EntityUid uid, JumpActComponent component, MapInitEvent args) + { + _action.AddAction(uid, ref component.ActionEntity, component.Action); + } + private void OnJumpShutdown(EntityUid uid, JumpActComponent component, ComponentShutdown args) + { + _action.RemoveAction(uid, component.ActionEntity); + } + + private void OnStasisHealInit(EntityUid uid, StasisHealActComponent component, MapInitEvent args) + { + var movementSpeed = EnsureComp(uid); + component.BaseSprintSpeed = movementSpeed.BaseSprintSpeed; + component.BaseWalkSpeed = movementSpeed.BaseWalkSpeed; + _action.AddAction(uid, ref component.ActionEntity, component.Action); + } + private void OnStasisHealShutdown(EntityUid uid, StasisHealActComponent component, ComponentShutdown args) + { + _action.RemoveAction(uid, component.ActionEntity); + } + + private void OnStealthInit(EntityUid uid, InvisibilityActComponent component, MapInitEvent args) + { + _action.AddAction(uid, ref component.ActionEntity, component.Action); + } + private void OnStealthShutdown(EntityUid uid, InvisibilityActComponent component, ComponentShutdown args) + { + _action.RemoveAction(uid, component.ActionEntity); + } + +} diff --git a/Content.Server/ADT/Jumpboots/JumpbootsSystem.cs b/Content.Server/ADT/Jumpboots/JumpbootsSystem.cs new file mode 100644 index 00000000000..e8d4ac5a1bf --- /dev/null +++ b/Content.Server/ADT/Jumpboots/JumpbootsSystem.cs @@ -0,0 +1,84 @@ +using Content.Shared.ComponentalActions.Components; +using Content.Shared.ComponentalActions; +using Content.Shared.Inventory; +using Content.Shared.Clothing; +using Content.Server.Hands.Systems; +using Robust.Shared.Prototypes; +using Content.Server.Body.Systems; +using Robust.Shared.Audio.Systems; +using Content.Server.Emp; +using Content.Shared.DoAfter; +using Content.Server.Fluids.EntitySystems; +using Robust.Shared.Map; +using Robust.Shared.Random; +using Robust.Shared.Audio; +using Content.Server.Weapons.Ranged.Systems; +using Robust.Server.GameObjects; +using Content.Shared.Actions; +using Content.Shared.Throwing; +using Content.Shared.Inventory.Events; +using Content.Server.Actions; + +namespace Content.Server.Clothing.EntitySystems; + +public sealed partial class JumpbootsSystem : SharedJumpbootsSystem +{ + [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly HandsSystem _handsSystem = default!; + [Dependency] private readonly InventorySystem _inventorySystem = default!; + [Dependency] private readonly BloodstreamSystem _bloodstreamSystem = default!; + [Dependency] private readonly SharedAudioSystem _audioSystem = default!; + [Dependency] private readonly EmpSystem _emp = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; + [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + [Dependency] private readonly PuddleSystem _puddle = default!; + [Dependency] private readonly IComponentFactory _compFact = default!; + [Dependency] private readonly IMapManager _mapManager = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly BodySystem _bodySystem = default!; + [Dependency] private readonly EntityLookupSystem _lookup = default!; + [Dependency] private readonly SharedTransformSystem _transformSystem = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly PhysicsSystem _physics = default!; + [Dependency] private readonly GunSystem _gunSystem = default!; + [Dependency] private readonly ThrowingSystem _throwing = default!; + [Dependency] private readonly ActionsSystem _action = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnGotEquipped); + SubscribeLocalEvent(OnGotUnequipped); + + SubscribeLocalEvent(OnJump); + } + + private void OnGotUnequipped(EntityUid uid, JumpbootsComponent component, GotUnequippedEvent args) + { + if (args.Slot == "shoes") + { + _action.AddAction(uid, ref component.ActionEntity, component.Action); + } + } + + private void OnGotEquipped(EntityUid uid, JumpbootsComponent component, GotEquippedEvent args) + { + if (args.Slot == "shoes") + { + } + } + private void OnJump(EntityUid uid, JumpbootsComponent component, JumpbootsActionEvent args) + { + if (args.Handled) + return; + + var transform = Transform(uid); + + if (transform.MapID != args.Target.GetMapId(EntityManager)) + return; + + _throwing.TryThrow(args.Performer, args.Target, component.Strength); + _audio.PlayPvs(args.Sound, uid, AudioParams.Default.WithVolume(component.Volume)); + args.Handled = true; + } +} diff --git a/Content.Server/ADT/Language/LanguageSystem.cs b/Content.Server/ADT/Language/LanguageSystem.cs index 1654f2ddfbf..e76ce23cd36 100644 --- a/Content.Server/ADT/Language/LanguageSystem.cs +++ b/Content.Server/ADT/Language/LanguageSystem.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System.Linq; using System.Text; using Content.Shared.GameTicking; using Content.Shared.Language; @@ -23,6 +23,7 @@ public override void Initialize() SubscribeLocalEvent(OnInitLanguageSpeaker); SubscribeAllEvent(it => RandomRoundSeed = _random.Next()); + SubscribeLocalEvent(OnUnknow); InitializeWindows(); } @@ -35,6 +36,21 @@ private void OnInitLanguageSpeaker(EntityUid uid, LanguageSpeakerComponent compo } } + private void OnUnknow(EntityUid uid, UnknowLanguageComponent unknow, MapInitEvent args) + { + TryComp(uid, out var component); + + if (component != null) + { + component.SpokenLanguages.Remove(unknow.LanguageToForgot); + component.UnderstoodLanguages.Remove(unknow.LanguageToForgot); + component.CurrentLanguage = component.SpokenLanguages.FirstOrDefault(UniversalPrototype); + } + else + return; + + } + /// /// Obfuscate speech of the given entity, or using the given language. /// diff --git a/Content.Server/ADT/SlimeHair/SlimeHairComponent.cs b/Content.Server/ADT/SlimeHair/SlimeHairComponent.cs new file mode 100644 index 00000000000..0a66cc51e2b --- /dev/null +++ b/Content.Server/ADT/SlimeHair/SlimeHairComponent.cs @@ -0,0 +1,61 @@ +using Content.Shared.DoAfter; +using Robust.Shared.Prototypes; +using Robust.Shared.Audio; + +namespace Content.Server.SlimeHair; + +/// +/// Allows humanoids to change their appearance mid-round. +/// +[RegisterComponent] +public sealed partial class SlimeHairComponent : Component +{ + [DataField] + public DoAfterId? DoAfter; + + /// + /// Magic mirror target, used for validating UI messages. + /// + [DataField] + public EntityUid? Target; + + /// + /// doafter time required to add a new slot + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public TimeSpan AddSlotTime = TimeSpan.FromSeconds(2); + + /// + /// doafter time required to remove a existing slot + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public TimeSpan RemoveSlotTime = TimeSpan.FromSeconds(2); + + /// + /// doafter time required to change slot + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public TimeSpan SelectSlotTime = TimeSpan.FromSeconds(2); + + /// + /// doafter time required to recolor slot + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public TimeSpan ChangeSlotTime = TimeSpan.FromSeconds(1); + + /// + /// Sound emitted when slots are changed + /// + [DataField] + public SoundSpecifier ChangeHairSound = new SoundPathSpecifier("/Audio/ADT/slime-hair.ogg") // ;) + { + Params = AudioParams.Default.WithVolume(-1f), + }; + +[DataField("hairAction")] + public EntProtoId Action = "ActionSlimeHair"; + + [DataField, AutoNetworkedField] + public EntityUid? ActionEntity; + +} diff --git a/Content.Server/ADT/SlimeHair/SlimeHairSystem.Abilities.cs b/Content.Server/ADT/SlimeHair/SlimeHairSystem.Abilities.cs new file mode 100644 index 00000000000..4125c1a1c25 --- /dev/null +++ b/Content.Server/ADT/SlimeHair/SlimeHairSystem.Abilities.cs @@ -0,0 +1,41 @@ +using System.Linq; +using Content.Server.DoAfter; +using Content.Server.Humanoid; +using Content.Shared.UserInterface; +using Content.Shared.DoAfter; +using Content.Shared.Humanoid; +using Content.Shared.Humanoid.Markings; +using Content.Shared.Interaction; +using Content.Shared.SlimeHair; +using Robust.Server.GameObjects; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Player; +using Content.Server.Actions; + +namespace Content.Server.SlimeHair; + +/// +/// Allows humanoids to change their appearance mid-round. +/// +public sealed partial class SlimeHairSystem +{ + private void InitializeSlimeAbilities() + { + SubscribeLocalEvent(SlimeHairAction); + } + + private void SlimeHairAction(EntityUid uid, SlimeHairComponent comp, SlimeHairActionEvent args) + { + if (args.Handled) + return; + + if (!TryComp(uid, out var actor)) + return; + + _uiSystem.TryOpen(uid, SlimeHairUiKey.Key, actor.PlayerSession); + + UpdateInterface(uid, comp); + + args.Handled = true; + } +} diff --git a/Content.Server/ADT/SlimeHair/SlimeHairSystem.cs b/Content.Server/ADT/SlimeHair/SlimeHairSystem.cs new file mode 100644 index 00000000000..b4e54b8f426 --- /dev/null +++ b/Content.Server/ADT/SlimeHair/SlimeHairSystem.cs @@ -0,0 +1,327 @@ +using System.Linq; +using Content.Server.DoAfter; +using Content.Server.Humanoid; +using Content.Shared.UserInterface; +using Content.Shared.DoAfter; +using Content.Shared.Humanoid; +using Content.Shared.Humanoid.Markings; +using Content.Shared.Interaction; +using Content.Shared.SlimeHair; +using Robust.Server.GameObjects; +using Robust.Shared.Audio.Systems; +using Content.Server.UserInterface; +using Content.Server.SlimeHair; +using Content.Server.Actions; + +namespace Content.Server.SlimeHair; + +/// +/// Allows humanoids to change their appearance mid-round. +/// + +// TODO: Исправить проблему с генокрадом +public sealed partial class SlimeHairSystem : EntitySystem +{ + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly DoAfterSystem _doAfterSystem = default!; + [Dependency] private readonly MarkingManager _markings = default!; + [Dependency] private readonly HumanoidAppearanceSystem _humanoid = default!; + [Dependency] private readonly SharedInteractionSystem _interaction = default!; + [Dependency] private readonly UserInterfaceSystem _uiSystem = default!; + [Dependency] private readonly ActionsSystem _action = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnOpenUIAttempt); + + Subs.BuiEvents(SlimeHairUiKey.Key, subs => + { + subs.Event(OnUIClosed); + subs.Event(OnSlimeHairSelect); + subs.Event(OnTrySlimeHairChangeColor); + subs.Event(OnTrySlimeHairAddSlot); + subs.Event(OnTrySlimeHairRemoveSlot); + }); + + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnShutdown); + + SubscribeLocalEvent(OnSelectSlotDoAfter); + SubscribeLocalEvent(OnChangeColorDoAfter); + SubscribeLocalEvent(OnRemoveSlotDoAfter); + SubscribeLocalEvent(OnAddSlotDoAfter); + + InitializeSlimeAbilities(); + + } + + private void OnOpenUIAttempt(EntityUid uid, SlimeHairComponent mirror, ActivatableUIOpenAttemptEvent args) + { + if (!HasComp(uid)) + args.Cancel(); + } + + private void OnSlimeHairSelect(EntityUid uid, SlimeHairComponent component, SlimeHairSelectMessage message) + { + if (component.Target is not { } target || message.Session.AttachedEntity is not { } user) + return; + + _doAfterSystem.Cancel(component.DoAfter); + component.DoAfter = null; + + var doAfter = new SlimeHairSelectDoAfterEvent() + { + Category = message.Category, + Slot = message.Slot, + Marking = message.Marking, + }; + + _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, user, component.SelectSlotTime, doAfter, uid, target: target, used: uid) + { + DistanceThreshold = SharedInteractionSystem.InteractionRange, + BreakOnTargetMove = false, + BreakOnDamage = true, + BreakOnHandChange = false, + BreakOnUserMove = false, + BreakOnWeightlessMove = false, + NeedHand = false + }, out var doAfterId); + + component.DoAfter = doAfterId; + } + + private void OnSelectSlotDoAfter(EntityUid uid, SlimeHairComponent component, SlimeHairSelectDoAfterEvent args) + { + if (args.Handled || args.Target == null || args.Cancelled) + return; + + if (component.Target != args.Target) + return; + + MarkingCategories category; + + switch (args.Category) + { + case SlimeHairCategory.Hair: + category = MarkingCategories.Hair; + break; + case SlimeHairCategory.FacialHair: + category = MarkingCategories.FacialHair; + break; + default: + return; + } + + _humanoid.SetMarkingId(uid, category, args.Slot, args.Marking); + _audio.PlayPvs(component.ChangeHairSound, uid); + UpdateInterface(uid, component); + } + + private void OnTrySlimeHairChangeColor(EntityUid uid, SlimeHairComponent component, SlimeHairChangeColorMessage message) + { + if (component.Target is not { } target || message.Session.AttachedEntity is not { } user) + return; + + _doAfterSystem.Cancel(component.DoAfter); + component.DoAfter = null; + + var doAfter = new SlimeHairChangeColorDoAfterEvent() + { + Category = message.Category, + Slot = message.Slot, + Colors = message.Colors, + }; + + _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, user, component.ChangeSlotTime, doAfter, uid, target: target, used: uid) + { + BreakOnTargetMove = false, + BreakOnDamage = true, + BreakOnHandChange = false, + BreakOnUserMove = false, + BreakOnWeightlessMove = false, + NeedHand = false + }, out var doAfterId); + + component.DoAfter = doAfterId; + } + private void OnChangeColorDoAfter(EntityUid uid, SlimeHairComponent component, SlimeHairChangeColorDoAfterEvent args) + { + if (args.Handled || args.Target == null || args.Cancelled) + return; + + if (component.Target != args.Target) + return; + + MarkingCategories category; + switch (args.Category) + { + case SlimeHairCategory.Hair: + category = MarkingCategories.Hair; + break; + case SlimeHairCategory.FacialHair: + category = MarkingCategories.FacialHair; + break; + default: + return; + } + + _humanoid.SetMarkingColor(uid, category, args.Slot, args.Colors); + + // using this makes the UI feel like total ass + // que + // UpdateInterface(uid, component.Target, message.Session); + } + + private void OnTrySlimeHairRemoveSlot(EntityUid uid, SlimeHairComponent component, SlimeHairRemoveSlotMessage message) + { + if (component.Target is not { } target || message.Session.AttachedEntity is not { } user) + return; + + _doAfterSystem.Cancel(component.DoAfter); + component.DoAfter = null; + + var doAfter = new SlimeHairRemoveSlotDoAfterEvent() + { + Category = message.Category, + Slot = message.Slot, + }; + + _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, user, component.RemoveSlotTime, doAfter, uid, target: target, used: uid) + { + DistanceThreshold = SharedInteractionSystem.InteractionRange, + BreakOnTargetMove = false, + BreakOnDamage = true, + BreakOnHandChange = false, + BreakOnUserMove = false, + BreakOnWeightlessMove = false, + NeedHand = false + }, out var doAfterId); + + component.DoAfter = doAfterId; + } + + private void OnRemoveSlotDoAfter(EntityUid uid, SlimeHairComponent component, SlimeHairRemoveSlotDoAfterEvent args) + { + if (args.Handled || args.Target == null || args.Cancelled) + return; + + if (component.Target != args.Target) + return; + + MarkingCategories category; + + switch (args.Category) + { + case SlimeHairCategory.Hair: + category = MarkingCategories.Hair; + break; + case SlimeHairCategory.FacialHair: + category = MarkingCategories.FacialHair; + break; + default: + return; + } + + _humanoid.RemoveMarking(component.Target.Value, category, args.Slot); + _audio.PlayPvs(component.ChangeHairSound, uid); + UpdateInterface(uid, component); + } + + private void OnTrySlimeHairAddSlot(EntityUid uid, SlimeHairComponent component, SlimeHairAddSlotMessage message) + { + if (component.Target == null) + return; + + if (message.Session.AttachedEntity == null) + return; + + _doAfterSystem.Cancel(component.DoAfter); + component.DoAfter = null; + + var doAfter = new SlimeHairAddSlotDoAfterEvent() + { + Category = message.Category, + }; + + _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, message.Session.AttachedEntity.Value, component.AddSlotTime, doAfter, uid, target: component.Target.Value, used: uid) + { + BreakOnTargetMove = false, + BreakOnDamage = true, + BreakOnHandChange = false, + BreakOnUserMove = false, + BreakOnWeightlessMove = false, + NeedHand = false + }, out var doAfterId); + + component.DoAfter = doAfterId; + } + private void OnAddSlotDoAfter(EntityUid uid, SlimeHairComponent component, SlimeHairAddSlotDoAfterEvent args) + { + if (args.Handled || args.Target == null || args.Cancelled || !TryComp(component.Target, out HumanoidAppearanceComponent? humanoid)) + return; + + MarkingCategories category; + + switch (args.Category) + { + case SlimeHairCategory.Hair: + category = MarkingCategories.Hair; + break; + case SlimeHairCategory.FacialHair: + category = MarkingCategories.FacialHair; + break; + default: + return; + } + + var marking = _markings.MarkingsByCategoryAndSpecies(category, humanoid.Species).Keys.FirstOrDefault(); + + if (string.IsNullOrEmpty(marking)) + return; + + _humanoid.AddMarking(uid, marking, Color.Black); + _audio.PlayPvs(component.ChangeHairSound, uid); + UpdateInterface(uid, component); + + } + + private void UpdateInterface(EntityUid uid, SlimeHairComponent component) + { + if (!TryComp(uid, out var humanoid)) + return; + + var hair = humanoid.MarkingSet.TryGetCategory(MarkingCategories.Hair, out var hairMarkings) + ? new List(hairMarkings) + : new(); + + var facialHair = humanoid.MarkingSet.TryGetCategory(MarkingCategories.FacialHair, out var facialHairMarkings) + ? new List(facialHairMarkings) + : new(); + + var state = new SlimeHairUiState( + humanoid.Species, + hair, + humanoid.MarkingSet.PointsLeft(MarkingCategories.Hair) + hair.Count, + facialHair, + humanoid.MarkingSet.PointsLeft(MarkingCategories.FacialHair) + facialHair.Count); + + component.Target = uid; + _uiSystem.TrySetUiState(uid, SlimeHairUiKey.Key, state); + } + + private void OnUIClosed(Entity ent, ref BoundUIClosedEvent args) + { + ent.Comp.Target = null; + } + + private void OnMapInit(EntityUid uid, SlimeHairComponent component, MapInitEvent args) + { + _action.AddAction(uid, ref component.ActionEntity, component.Action); + } + private void OnShutdown(EntityUid uid, SlimeHairComponent component, ComponentShutdown args) + { + _action.RemoveAction(uid, component.ActionEntity); + } + +} diff --git a/Content.Server/ADT/Wizard/WizardSystem.Abilities.cs b/Content.Server/ADT/Wizard/WizardSystem.Abilities.cs new file mode 100644 index 00000000000..ceb33b73725 --- /dev/null +++ b/Content.Server/ADT/Wizard/WizardSystem.Abilities.cs @@ -0,0 +1,209 @@ +using Content.Shared.Wizard; +using Content.Shared.Inventory; +using Content.Shared.Interaction.Components; +using Content.Shared.Hands.Components; +using Content.Server.Hands.Systems; +using Robust.Shared.Prototypes; +using Content.Shared.Damage; +using Content.Shared.Damage.Prototypes; +using Content.Server.Body.Systems; +using Content.Shared.Popups; +using Robust.Shared.Player; +using Content.Shared.IdentityManagement; +using Robust.Shared.Audio.Systems; +using Content.Shared.Stealth.Components; +using Content.Server.Emp; +using Content.Shared.DoAfter; +using Content.Shared.Humanoid; +using Content.Server.Forensics; +using Content.Shared.FixedPoint; +using Content.Server.Store.Components; +using Content.Shared.Chemistry.Components; +using Content.Server.Fluids.EntitySystems; +using Content.Shared.Tag; +using Content.Shared.Mobs; +using Content.Shared.Mobs.Components; +using Content.Shared.Mobs.Systems; +using Content.Shared.Eye.Blinding.Components; +using Content.Shared.Eye.Blinding.Systems; +using Content.Server.Destructible; +using Content.Shared.Polymorph; +using Robust.Shared.Serialization; +using Robust.Shared.Map; +using Robust.Shared.Random; +using Content.Shared.Doors; +using Robust.Shared.Audio; +using System.Numerics; +using Content.Server.Body.Components; +using Content.Server.Chat.Systems; +using Content.Server.Doors.Systems; +using Content.Server.Magic.Components; +using Content.Server.Weapons.Ranged.Systems; +using Content.Shared.Actions; +using Content.Shared.Body.Components; +using Content.Shared.Coordinates.Helpers; +using Content.Shared.Doors.Components; +using Content.Shared.Doors.Systems; +using Content.Shared.Interaction.Events; +using Content.Shared.Maps; +using Content.Shared.Physics; +using Content.Shared.Storage; +using Robust.Server.GameObjects; +using Robust.Shared.Serialization.Manager; +using Robust.Shared.Spawners; + + +namespace Content.Server.Wizard.EntitySystems; + +public sealed partial class WizardSystem +{ + [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly HandsSystem _handsSystem = default!; + [Dependency] private readonly InventorySystem _inventorySystem = default!; + [Dependency] private readonly BloodstreamSystem _bloodstreamSystem = default!; + [Dependency] private readonly SharedAudioSystem _audioSystem = default!; + [Dependency] private readonly EmpSystem _emp = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; + [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + [Dependency] private readonly PuddleSystem _puddle = default!; + [Dependency] private readonly IComponentFactory _compFact = default!; + [Dependency] private readonly IMapManager _mapManager = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly BodySystem _bodySystem = default!; + [Dependency] private readonly EntityLookupSystem _lookup = default!; + [Dependency] private readonly SharedTransformSystem _transformSystem = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly PhysicsSystem _physics = default!; + [Dependency] private readonly GunSystem _gunSystem = default!; + + private void InitializeWizardAbilities() + { + base.Initialize(); + + SubscribeLocalEvent(OnTeleport); + SubscribeLocalEvent(OnProjectile); + SubscribeLocalEvent(OnHeal); + } + + private List GetSpawnPositions(TransformComponent casterXform, WizardSpawnData data) + { + switch (data) + { + case TargetCasterPos: + return new List(1) { casterXform.Coordinates }; + case TargetInFront: + { + // This is shit but you get the idea. + var directionPos = casterXform.Coordinates.Offset(casterXform.LocalRotation.ToWorldVec().Normalized()); + + if (!_mapManager.TryGetGrid(casterXform.GridUid, out var mapGrid)) + return new List(); + + if (!directionPos.TryGetTileRef(out var tileReference, EntityManager, _mapManager)) + return new List(); + + var tileIndex = tileReference.Value.GridIndices; + var coords = mapGrid.GridTileToLocal(tileIndex); + EntityCoordinates coordsPlus; + EntityCoordinates coordsMinus; + + var dir = casterXform.LocalRotation.GetCardinalDir(); + switch (dir) + { + case Direction.North: + case Direction.South: + { + coordsPlus = mapGrid.GridTileToLocal(tileIndex + (1, 0)); + coordsMinus = mapGrid.GridTileToLocal(tileIndex + (-1, 0)); + return new List(3) + { + coords, + coordsPlus, + coordsMinus, + }; + } + case Direction.East: + case Direction.West: + { + coordsPlus = mapGrid.GridTileToLocal(tileIndex + (0, 1)); + coordsMinus = mapGrid.GridTileToLocal(tileIndex + (0, -1)); + return new List(3) + { + coords, + coordsPlus, + coordsMinus, + }; + } + } + + return new List(); + } + default: + throw new ArgumentOutOfRangeException(); + } + } + + + private void OnTeleport(WizardTeleportActionEvent args) + { + if (args.Handled) + return; + + var transform = Transform(args.Performer); + + if (transform.MapID != args.Target.GetMapId(EntityManager)) + return; + + _transformSystem.SetCoordinates(args.Performer, args.Target); + transform.AttachToGridOrMap(); + _audio.PlayPvs(args.BlinkSound, args.Performer, AudioParams.Default.WithVolume(args.BlinkVolume)); + args.Handled = true; + } + + private void OnProjectile(WizardProjectileActionEvent args) + { + if (args.Handled) + return; + + args.Handled = true; + + var xform = Transform(args.Performer); + var userVelocity = _physics.GetMapLinearVelocity(args.Performer); + + foreach (var pos in GetSpawnPositions(xform, args.Pos)) + { + // If applicable, this ensures the projectile is parented to grid on spawn, instead of the map. + var mapPos = pos.ToMap(EntityManager); + var spawnCoords = _mapManager.TryFindGridAt(mapPos, out var gridUid, out _) + ? pos.WithEntityId(gridUid, EntityManager) + : new(_mapManager.GetMapEntityId(mapPos.MapId), mapPos.Position); + + var ent = Spawn(args.Prototype, spawnCoords); + var direction = args.Target.ToMapPos(EntityManager, _transformSystem) - + spawnCoords.ToMapPos(EntityManager, _transformSystem); + _gunSystem.ShootProjectile(ent, direction, userVelocity, args.Performer, args.Performer); + _audio.PlayPvs(args.ShootSound, args.Performer, AudioParams.Default.WithVolume(args.ShootVolume)); + } + } + + public ProtoId BruteDamageGroup = "Brute"; + public ProtoId BurnDamageGroup = "Burn"; + + private void OnHeal(WizardHealActionEvent args) + { + if (args.Handled) + return; + + var damage_brute = new DamageSpecifier(_proto.Index(BruteDamageGroup), args.RegenerateBruteHealAmount); + var damage_burn = new DamageSpecifier(_proto.Index(BurnDamageGroup), args.RegenerateBurnHealAmount); + _damageableSystem.TryChangeDamage(args.Performer, damage_brute); + _damageableSystem.TryChangeDamage(args.Performer, damage_burn); + _bloodstreamSystem.TryModifyBloodLevel(args.Performer, args.RegenerateBloodVolumeHealAmount); // give back blood and remove bleeding + _bloodstreamSystem.TryModifyBleedAmount(args.Performer, args.RegenerateBleedReduceAmount); + _audioSystem.PlayPvs(args.HealSound, args.Performer, AudioParams.Default.WithVolume(args.HealVolume)); + + args.Handled = true; + } + +} + diff --git a/Content.Server/ADT/Wizard/WizardSystem.cs b/Content.Server/ADT/Wizard/WizardSystem.cs new file mode 100644 index 00000000000..878a64054f4 --- /dev/null +++ b/Content.Server/ADT/Wizard/WizardSystem.cs @@ -0,0 +1,65 @@ +using Content.Server.Actions; +using Content.Shared.Inventory; +using Content.Server.Store.Components; +using Content.Server.Store.Systems; +using Content.Shared.ComponentalActions; +using Content.Shared.ComponentalActions.Components; +using Content.Shared.Popups; +using Content.Shared.Store; +using Content.Server.Traitor.Uplink; +using Content.Server.Body.Components; +using Content.Shared.Mobs.Systems; +using Content.Shared.FixedPoint; +using Content.Shared.Humanoid; +using Content.Shared.IdentityManagement; +using Content.Server.Polymorph.Systems; +using System.Linq; +using Content.Shared.Polymorph; +using Content.Server.Forensics; +using Content.Shared.Actions; +using Robust.Shared.Serialization.Manager; +using Content.Shared.Alert; +using Content.Shared.Stealth.Components; +using Content.Shared.Nutrition.Components; +using Content.Shared.Tag; +using Content.Shared.StatusEffect; +using Content.Shared.Eye.Blinding.Components; +using Content.Shared.Eye.Blinding.Systems; +using Content.Shared.Chemistry.Components; +using Content.Shared.Movement.Components; +using Content.Shared.Movement.Systems; +using Content.Shared.Damage.Systems; +using Content.Shared.Damage; +using Content.Shared.Gibbing.Systems; +using Content.Shared.Mind; +using Robust.Shared.Audio; + +namespace Content.Server.Wizard.EntitySystems; + +public sealed partial class WizardSystem : EntitySystem +{ + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly StoreSystem _store = default!; + [Dependency] private readonly ActionsSystem _action = default!; + [Dependency] private readonly UplinkSystem _uplink = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + [Dependency] private readonly PolymorphSystem _polymorph = default!; + [Dependency] private readonly MetaDataSystem _metaData = default!; + [Dependency] private readonly ISerializationManager _serialization = default!; + [Dependency] private readonly ActionContainerSystem _actionContainer = default!; + [Dependency] private readonly AlertsSystem _alerts = default!; + [Dependency] private readonly TagSystem _tagSystem = default!; + [Dependency] private readonly StatusEffectsSystem _status = default!; + [Dependency] private readonly EntityManager _entityManager = default!; + [Dependency] private readonly MovementSpeedModifierSystem _movementSpeedModifierSystem = default!; + [Dependency] private readonly StaminaSystem _stamina = default!; + [Dependency] private readonly DamageableSystem _damageableSystem = default!; + [Dependency] private readonly GibbingSystem _gibbingSystem = default!; + [Dependency] private readonly SharedMindSystem _mindSystem = default!; + public override void Initialize() + { + base.Initialize(); + + InitializeWizardAbilities(); + } +} diff --git a/Content.Server/Atmos/Rotting/LingEggsHoldingSystem.cs b/Content.Server/Atmos/Rotting/LingEggsHoldingSystem.cs new file mode 100644 index 00000000000..3508d85b662 --- /dev/null +++ b/Content.Server/Atmos/Rotting/LingEggsHoldingSystem.cs @@ -0,0 +1,22 @@ +using Content.Shared.Changeling.Components; +using Content.Shared.Examine; +using Content.Shared.Mobs.Systems; + +namespace Content.Server.Atmos.Rotting; + +public sealed partial class LingEggsHoldingSystem : EntitySystem +{ + [Dependency] private readonly MobStateSystem _mobState = default!; + public override void Initialize() + { + SubscribeLocalEvent(OnExamine); + base.Initialize(); + } + + private void OnExamine(EntityUid uid, LingEggsHolderComponent component, ExaminedEvent args) + { + if (!_mobState.IsDead(uid)) + return; + args.PushMarkup(Loc.GetString("adt-rotting-ling-eggs")); + } +} diff --git a/Content.Server/Chat/Managers/ChatSanitizationManager.cs b/Content.Server/Chat/Managers/ChatSanitizationManager.cs index e635e6df67d..708749ec6f0 100644 --- a/Content.Server/Chat/Managers/ChatSanitizationManager.cs +++ b/Content.Server/Chat/Managers/ChatSanitizationManager.cs @@ -2,12 +2,14 @@ using System.Globalization; using Content.Shared.CCVar; using Robust.Shared.Configuration; +using Content.Shared.ADT; namespace Content.Server.Chat.Managers; public sealed class ChatSanitizationManager : IChatSanitizationManager { [Dependency] private readonly IConfigurationManager _configurationManager = default!; + [Dependency] private readonly IEntityManager _entityManager = default!; private static readonly Dictionary SmileyToEmote = new() { @@ -122,7 +124,12 @@ public bool TrySanitizeOutSmilies(string input, EntityUid speaker, out string sa if (input.EndsWith(smiley, true, CultureInfo.InvariantCulture)) { sanitized = input.Remove(input.Length - smiley.Length).TrimEnd(); - emote = Loc.GetString(replacement, ("ent", speaker)); + if (_entityManager.HasComponent(speaker)) + { + emote = Loc.GetString(replacement + "-apathy", ("ent", speaker)); + } + else + emote = Loc.GetString(replacement, ("ent", speaker)); return true; } } @@ -131,4 +138,4 @@ public bool TrySanitizeOutSmilies(string input, EntityUid speaker, out string sa emote = null; return false; } -} +} \ No newline at end of file diff --git a/Content.Server/Chat/Systems/ChatSystem.cs b/Content.Server/Chat/Systems/ChatSystem.cs index 9a622974cc8..018e41360c3 100644 --- a/Content.Server/Chat/Systems/ChatSystem.cs +++ b/Content.Server/Chat/Systems/ChatSystem.cs @@ -36,6 +36,8 @@ using Content.Server.Language; using Content.Server.Speech; using Content.Shared.Language; +using Content.Shared.ADT; +using Content.Shared.Chat.Prototypes; namespace Content.Server.Chat.Systems; @@ -265,7 +267,7 @@ public void TrySendInGameICMessage( case InGameICChatType.Whisper: SendEntityWhisper(source, message, range, null, nameOverride, hideLog, ignoreActionBlocker, languageOverride: languageOverride); break; - case InGameICChatType.Emote: + case InGameICChatType.Emote: SendEntityEmote(source, message, range, nameOverride, hideLog: hideLog, ignoreActionBlocker: ignoreActionBlocker); break; } @@ -601,6 +603,22 @@ private void SendEntityEmote( NetUserId? author = null ) { + // ADT-ApathyEmotionChanges-block-start + if (HasComp(source)) + { + var actionLower = action.ToLower(); + if (_wordEmoteDict.TryGetValue(actionLower, out var emote)) + { + _prototypeManager.TryIndex(emote.ID + "-apathy", out var protoApathy); + if (protoApathy != null) + { + action = protoApathy.ChatTriggers.First(); + } + } + } + // ADT-ApathyEmotionChanges-block-end + + if (!_actionBlocker.CanEmote(source) && !ignoreActionBlocker) return; @@ -1071,4 +1089,4 @@ public enum ChatTransmitRange : byte HideChat, /// Ghosts can't hear or see it at all. Regular players can if in-range. NoGhosts -} +} \ No newline at end of file diff --git a/Content.Server/Chemistry/ReagentEffects/LingEggs.cs b/Content.Server/Chemistry/ReagentEffects/LingEggs.cs new file mode 100644 index 00000000000..66cabf71c7e --- /dev/null +++ b/Content.Server/Chemistry/ReagentEffects/LingEggs.cs @@ -0,0 +1,19 @@ +using Content.Shared.Chemistry.Reagent; +using Robust.Shared.Prototypes; +using Content.Shared.Atmos.Miasma; +using Content.Shared.Changeling.Components; + +namespace Content.Server.Chemistry.ReagentEffects; + +public sealed partial class LingEggs : ReagentEffect +{ + protected override string? ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys) + => Loc.GetString("reagent-effect-guidebook-missing", ("chance", Probability)); + + // Gives the entity a component that turns it into a f#cking changeling + public override void Effect(ReagentEffectArgs args) + { + var entityManager = args.EntityManager; + entityManager.EnsureComponent(args.SolutionEntity); + } +} diff --git a/Content.Server/Medical/DefibrillatorSystem.cs b/Content.Server/Medical/DefibrillatorSystem.cs index b4b96f33167..73d6074547e 100644 --- a/Content.Server/Medical/DefibrillatorSystem.cs +++ b/Content.Server/Medical/DefibrillatorSystem.cs @@ -24,6 +24,7 @@ using Robust.Shared.Player; using Robust.Shared.Timing; using Content.Shared.Atmos.Miasma; +using Content.Shared.Changeling.Components; namespace Content.Server.Medical; @@ -224,8 +225,12 @@ public void Zap(EntityUid uid, EntityUid target, EntityUid user, DefibrillatorCo _chatManager.TrySendInGameICMessage(uid, Loc.GetString("defibrillator-embalmed"), InGameICChatType.Speak, true); } - else - if (_rotting.IsRotten(target)) + else if (HasComp(target)) + { + _chatManager.TrySendInGameICMessage(uid, Loc.GetString("defibrillator-changeling"), + InGameICChatType.Speak, true); + } + else if (_rotting.IsRotten(target)) { _chatManager.TrySendInGameICMessage(uid, Loc.GetString("defibrillator-rotten"), InGameICChatType.Speak, true); diff --git a/Content.Server/Store/Components/StoreComponent.cs b/Content.Server/Store/Components/StoreComponent.cs index 063e25fbf9f..188d151d4a9 100644 --- a/Content.Server/Store/Components/StoreComponent.cs +++ b/Content.Server/Store/Components/StoreComponent.cs @@ -78,6 +78,9 @@ public sealed partial class StoreComponent : Component [ViewVariables, DataField] public bool RefundAllowed; + [ViewVariables, DataField("refundPossible")] + public bool RefundPossible; + /// /// The map the store was originally from, used to block refunds if the map is changed /// diff --git a/Content.Server/Store/Systems/StoreSystem.Ui.cs b/Content.Server/Store/Systems/StoreSystem.Ui.cs index 5ea1004ae4e..c052c164fb7 100644 --- a/Content.Server/Store/Systems/StoreSystem.Ui.cs +++ b/Content.Server/Store/Systems/StoreSystem.Ui.cs @@ -1,6 +1,7 @@ using System.Linq; using Content.Server.Actions; using Content.Server.Administration.Logs; +using Content.Server.Botany.Components; using Content.Server.PDA.Ringer; using Content.Server.Stack; using Content.Server.Store.Components; @@ -206,7 +207,7 @@ private void OnBuyRequest(EntityUid uid, StoreComponent component, StoreBuyListi if (!_mind.TryGetMind(buyer, out var mind, out _)) actionId = _actions.AddAction(buyer, listing.ProductAction); else - actionId = _actionContainer.AddAction(mind, listing.ProductAction); + actionId = _actions.AddAction(buyer, listing.ProductAction); // Add the newly bought action entity to the list of bought entities // And then add that action entity to the relevant product upgrade listing, if applicable @@ -228,7 +229,7 @@ private void OnBuyRequest(EntityUid uid, StoreComponent component, StoreBuyListi } } - if (listing is { ProductUpgradeID: not null, ProductActionEntity: not null }) + if (listing is { ProductUpgradeID: not null, ProductActionEntity: not null }) { if (listing.ProductActionEntity != null) { @@ -319,6 +320,9 @@ private void OnRequestRefund(EntityUid uid, StoreComponent component, StoreReque UpdateUserInterface(buyer, uid, component); } + if (!component.RefundPossible) + return; + if (!component.RefundAllowed || component.BoughtEntities.Count == 0) return; diff --git a/Content.Shared/ADT/ApathyComponent.cs b/Content.Shared/ADT/ApathyComponent.cs new file mode 100644 index 00000000000..951c40af5d5 --- /dev/null +++ b/Content.Shared/ADT/ApathyComponent.cs @@ -0,0 +1,9 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.ADT; + +/// +/// Just an RP feature. Could be used for more in future. For example, something like a virus. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class ApathyComponent : Component { } \ No newline at end of file diff --git a/Content.Shared/ADT/Changeling/Components/ChangelingComponent.cs b/Content.Shared/ADT/Changeling/Components/ChangelingComponent.cs index 7b5667c6299..20b1491fc4a 100644 --- a/Content.Shared/ADT/Changeling/Components/ChangelingComponent.cs +++ b/Content.Shared/ADT/Changeling/Components/ChangelingComponent.cs @@ -59,6 +59,15 @@ public sealed partial class ChangelingComponent : Component Params = AudioParams.Default.WithVolume(-3f), }; + /// + /// Flesh sound + /// + [DataField] + public SoundSpecifier? SoundFleshQuiet = new SoundPathSpecifier("/Audio/Effects/blobattack.ogg") + { + Params = AudioParams.Default.WithVolume(-1f), + }; + /// /// Blind sting duration /// @@ -115,6 +124,18 @@ public sealed partial class ChangelingComponent : Component [DataField, AutoNetworkedField] public EntityUid? ChangelingDNAStingActionEntity; + [DataField] + public EntProtoId ChangelingLesserFormAction = "ActionLingLesserForm"; + + [DataField, AutoNetworkedField] + public EntityUid? ChangelingLesserFormActionEntity; + + [DataField] + public EntProtoId ChangelingLastResortAction = "ActionLingLastResort"; + + [DataField, AutoNetworkedField] + public EntityUid? ChangelingLastResortActionEntity; + ///[DataField] ///public EntProtoId ChangelingArmBladeAction = "ActionArmBlade"; @@ -327,13 +348,26 @@ public sealed partial class ChangelingComponent : Component #region Stasis Death Ability [DataField] - public float StasisDeathDamageAmount = 300f; /// Сколько пиздюлей генокрад получит от себя + public float StasisDeathDamageAmount = 300f; /// Damage gain to die [DataField] - public float StasisDeathHealAmount = -300f; /// Сколько пиздюлей генокрад восстановит когда вейк апнется + public float StasisDeathHealAmount = -300f; /// Damage restore to get up [DataField] - public bool StasisDeathActive = false; /// Получать или восстанавливать пиздюли? + public bool StasisDeathActive = false; /// Is ling dead or alive + + #endregion + + #region Muscles Ability + + [DataField] + public bool MusclesActive = false; + + [DataField] + public float MusclesModifier = 2f; + + [DataField] + public float MusclesStaminaDamage = 3f; #endregion @@ -351,6 +385,9 @@ public sealed partial class ChangelingComponent : Component [DataField("chemicalMute", customTypeSerializer: typeof(PrototypeIdSerializer))] public string ChemicalMute = "MuteToxin"; + [DataField("chemicalDrug", customTypeSerializer: typeof(PrototypeIdSerializer))] + public string ChemicalSpaceDrugs = "SpaceDrugs"; + #endregion #region Changeling Chemicals Amount @@ -361,9 +398,37 @@ public sealed partial class ChangelingComponent : Component [ViewVariables(VVAccess.ReadWrite), DataField("muteAmount")] public float MuteAmount = 20f; - [ViewVariables(VVAccess.ReadWrite), DataField("omnizineAmount")] - public float OmnizineAmount = 25f; + [ViewVariables(VVAccess.ReadWrite), DataField("drugAmount")] + public float SpaceDrugsAmount = 20f; + + #endregion + + #region Lesser Form Ability + + [DataField] + public bool LesserFormActive = false; + + [DataField] + public string LesserFormMob = "ChangelingLesserForm"; + + + #endregion + #region Armshield Ability + /// + /// If the ling has an active armblade or not. + /// + [DataField] + public bool ArmShieldActive = false; #endregion + [DataField] + public float GibDamage = 5000f; + + [DataField] + public bool EggedBody = false; + + [DataField] + public bool EggsReady = false; + } diff --git a/Content.Shared/ADT/Changeling/Components/LingEggsHolder.cs b/Content.Shared/ADT/Changeling/Components/LingEggsHolder.cs new file mode 100644 index 00000000000..6e81fd4825f --- /dev/null +++ b/Content.Shared/ADT/Changeling/Components/LingEggsHolder.cs @@ -0,0 +1,17 @@ +using Robust.Shared.Prototypes; + +namespace Content.Shared.Changeling.Components; + +[RegisterComponent] +[AutoGenerateComponentState(true)] +public sealed partial class LingEggsHolderComponent : Component +{ + [DataField] + public EntProtoId ChangelingHatchAction = "ActionLingHatch"; + + [DataField, AutoNetworkedField] + public EntityUid? ChangelingHatchActionEntity; + + [DataField] + public float DamageAmount = 500f; /// Damage gain to die +} diff --git a/Content.Shared/ADT/Changeling/Components/LingSlugComponent.cs b/Content.Shared/ADT/Changeling/Components/LingSlugComponent.cs new file mode 100644 index 00000000000..500b6bcca0c --- /dev/null +++ b/Content.Shared/ADT/Changeling/Components/LingSlugComponent.cs @@ -0,0 +1,40 @@ +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; +using Content.Shared.Chemistry.Reagent; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Changeling.Components; + +[RegisterComponent] +[AutoGenerateComponentState(true)] +public sealed partial class LingSlugComponent : Component +{ + [DataField, ViewVariables(VVAccess.ReadWrite)] + public TimeSpan LayingDuration = TimeSpan.FromSeconds(15); + + [DataField] + public bool EggsLaid = false; + + [DataField("chemicalToxin", customTypeSerializer: typeof(PrototypeIdSerializer))] + public string ChemicalToxin = "Toxin"; + + [ViewVariables(VVAccess.ReadWrite), DataField("toxinAmount")] + public float ToxinAmount = 50f; + + [DataField] + public EntProtoId LayEggsAction = "ActionLingEggs"; + + [DataField, AutoNetworkedField] + public EntityUid? LayEggsActionEntity; + + [DataField, AutoNetworkedField] + public EntityUid? EggLing; + + [DataField] + public float LayedDamage = 70; + + [DataField("spread")] + public bool Spread = false; + + [DataField("eggsAction")] + public EntProtoId HatchAction = "ActionLingHatch"; +} diff --git a/Content.Shared/ADT/Changeling/SharedChangeling.cs b/Content.Shared/ADT/Changeling/SharedChangeling.cs index c91956dd914..2e3da07f0f9 100644 --- a/Content.Shared/ADT/Changeling/SharedChangeling.cs +++ b/Content.Shared/ADT/Changeling/SharedChangeling.cs @@ -20,11 +20,23 @@ public sealed partial class MuteStingEvent : EntityTargetActionEvent { } +public sealed partial class DrugStingEvent : EntityTargetActionEvent +{ +} +public sealed partial class LingEggActionEvent : EntityTargetActionEvent +{ +} [Serializable, NetSerializable] public sealed partial class AbsorbDoAfterEvent : SimpleDoAfterEvent { } + +[Serializable, NetSerializable] +public sealed partial class LingEggDoAfterEvent : SimpleDoAfterEvent +{ +} + public sealed partial class ChangelingEvolutionMenuActionEvent : InstantActionEvent { } @@ -72,3 +84,27 @@ public sealed partial class OmniHealActionEvent : InstantActionEvent public sealed partial class ChangelingRefreshActionEvent : InstantActionEvent { } + +public sealed partial class ChangelingMusclesActionEvent : InstantActionEvent +{ +} + +public sealed partial class ChangelingLesserFormActionEvent : InstantActionEvent +{ +} + +public sealed partial class ArmShieldActionEvent : InstantActionEvent +{ +} + +public sealed partial class LastResortActionEvent : InstantActionEvent +{ +} + +public sealed partial class LingEggSpawnActionEvent : InstantActionEvent +{ +} + +public sealed partial class LingHatchActionEvent : InstantActionEvent +{ +} diff --git a/Content.Shared/ADT/ComponentalActions/Components/ComponentActionSpawnData.cs b/Content.Shared/ADT/ComponentalActions/Components/ComponentActionSpawnData.cs new file mode 100644 index 00000000000..b6ac09bb013 --- /dev/null +++ b/Content.Shared/ADT/ComponentalActions/Components/ComponentActionSpawnData.cs @@ -0,0 +1,20 @@ +namespace Content.Shared.ComponentalActions; + +[ImplicitDataDefinitionForInheritors] +public abstract partial class ComponentalActionsSpawnData +{ + +} + +/// +/// Spawns 1 at the caster's feet. +/// +public sealed partial class TargetCasterPos : ComponentalActionsSpawnData { } + +/// +/// Targets the 3 tiles in front of the caster. +/// +public sealed partial class TargetInFront : ComponentalActionsSpawnData +{ + [DataField("width")] public int Width = 3; +} diff --git a/Content.Shared/ADT/ComponentalActions/Components/HealActComponent.cs b/Content.Shared/ADT/ComponentalActions/Components/HealActComponent.cs new file mode 100644 index 00000000000..2e78a139a4c --- /dev/null +++ b/Content.Shared/ADT/ComponentalActions/Components/HealActComponent.cs @@ -0,0 +1,37 @@ +using Robust.Shared.Audio; +using Robust.Shared.Prototypes; + +namespace Content.Shared.ComponentalActions.Components; + +[RegisterComponent] +[AutoGenerateComponentState(true)] +public sealed partial class HealActComponent : Component +{ + [DataField("healSound")] + public SoundSpecifier HealSound = new SoundPathSpecifier("/Audio/Effects/blobattack.ogg"); + + /// + /// Volume control for the spell. + /// + [DataField("healVolume")] + public float HealVolume = 1f; + + [DataField] + public float RegenerateBurnHealAmount = -50f; + + [DataField] + public float RegenerateBruteHealAmount = -75f; + + [DataField] + public float RegenerateBloodVolumeHealAmount = 100f; + + [DataField] + public float RegenerateBleedReduceAmount = -100f; + + [DataField("healAction")] + public EntProtoId Action = "CompActionHeal"; + + [DataField, AutoNetworkedField] + public EntityUid? ActionEntity; + +} diff --git a/Content.Shared/ADT/ComponentalActions/Components/InvisibilityActComponent.cs b/Content.Shared/ADT/ComponentalActions/Components/InvisibilityActComponent.cs new file mode 100644 index 00000000000..7a6a9da97d9 --- /dev/null +++ b/Content.Shared/ADT/ComponentalActions/Components/InvisibilityActComponent.cs @@ -0,0 +1,30 @@ +using Robust.Shared.Audio; +using Robust.Shared.Prototypes; + +namespace Content.Shared.ComponentalActions.Components; + +[RegisterComponent] +[AutoGenerateComponentState(true)] +public sealed partial class InvisibilityActComponent : Component +{ + [DataField] + public bool Active = false; + + [DataField("passiveVisibilityRate")] + public float PassiveVisibilityRate = -0.10f; + + [DataField("movementVisibilityRate")] + public float MovementVisibilityRate = 0.10f; + + [DataField("minVisibility")] + public float MinVisibility = -1f; + + [DataField("maxVisibility")] + public float MaxVisibility = 1.5f; + + [DataField("stealthAction")] + public EntProtoId Action = "CompActionStealth"; + + [DataField, AutoNetworkedField] + public EntityUid? ActionEntity; +} diff --git a/Content.Shared/ADT/ComponentalActions/Components/JumpActComponent.cs b/Content.Shared/ADT/ComponentalActions/Components/JumpActComponent.cs new file mode 100644 index 00000000000..3e2ec5adbaa --- /dev/null +++ b/Content.Shared/ADT/ComponentalActions/Components/JumpActComponent.cs @@ -0,0 +1,28 @@ +using Robust.Shared.Audio; +using Robust.Shared.Prototypes; + +namespace Content.Shared.ComponentalActions.Components; + +[RegisterComponent] +[AutoGenerateComponentState(true)] +public sealed partial class JumpActComponent : Component +{ + [DataField("jumpSound")] + public SoundSpecifier Sound = new SoundPathSpecifier("/Audio/Effects/Footsteps/suitstep2.ogg"); + + /// + /// Volume control for the spell. + /// + [DataField("jumpVolume")] + public float Volume = 1f; + + [DataField("jumpStrength")] + public float Strength = 13f; + + [DataField("jumpAction")] + public EntProtoId Action = "CompActionJump"; + + [DataField, AutoNetworkedField] + public EntityUid? ActionEntity; + +} diff --git a/Content.Shared/ADT/ComponentalActions/Components/ProjectileActComponent.cs b/Content.Shared/ADT/ComponentalActions/Components/ProjectileActComponent.cs new file mode 100644 index 00000000000..7e268354e2e --- /dev/null +++ b/Content.Shared/ADT/ComponentalActions/Components/ProjectileActComponent.cs @@ -0,0 +1,35 @@ +using Robust.Shared.Audio; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; + +namespace Content.Shared.ComponentalActions.Components; + +[RegisterComponent] +[AutoGenerateComponentState(true)] +public sealed partial class ProjectileActComponent : Component +{ + /// + /// What entity should be spawned. + /// + [DataField("prototype", required: true, customTypeSerializer: typeof(PrototypeIdSerializer))] + public string Prototype = "BulletKinetic"; + + /// + /// Gets the targeted spawn positions; may lead to multiple entities being spawned. + /// + [DataField("posData")] + public ComponentalActionsSpawnData Pos = new TargetCasterPos(); + + [DataField] + public SoundSpecifier ShootSound = new SoundPathSpecifier("/Audio/Weapons/Xeno/alien_spitacid.ogg"); + + [DataField("shootVolume")] + public float ShootVolume = 5f; + + [DataField("projAction")] + public EntProtoId Action = "CompActionShoot"; + + [DataField, AutoNetworkedField] + public EntityUid? ActionEntity; + +} diff --git a/Content.Shared/ADT/ComponentalActions/Components/StasisHealActComponent.cs b/Content.Shared/ADT/ComponentalActions/Components/StasisHealActComponent.cs new file mode 100644 index 00000000000..06f2fd45ae6 --- /dev/null +++ b/Content.Shared/ADT/ComponentalActions/Components/StasisHealActComponent.cs @@ -0,0 +1,40 @@ +using Robust.Shared.Audio; +using Robust.Shared.Prototypes; + +namespace Content.Shared.ComponentalActions.Components; + +[RegisterComponent] +[AutoGenerateComponentState(true)] +public sealed partial class StasisHealActComponent : Component +{ + [DataField] + public bool Active = false; + + [DataField] + public float SpeedModifier = 1f; + + [DataField] + public float BaseSprintSpeed = 3f; + + [DataField] + public float BaseWalkSpeed = 3f; + + [DataField] + public float RegenerateBurnHealAmount = -0.05f; + + [DataField] + public float RegenerateBruteHealAmount = -0.1f; + + [DataField] + public float RegenerateBloodVolumeHealAmount = 0.25f; + + [DataField] + public float RegenerateBleedReduceAmount = -0.01f; + + [DataField("healAction")] + public EntProtoId Action = "CompActionStasisHeal"; + + [DataField, AutoNetworkedField] + public EntityUid? ActionEntity; + +} diff --git a/Content.Shared/ADT/ComponentalActions/Components/TeleportActComponent.cs b/Content.Shared/ADT/ComponentalActions/Components/TeleportActComponent.cs new file mode 100644 index 00000000000..2b8a0a7bcdf --- /dev/null +++ b/Content.Shared/ADT/ComponentalActions/Components/TeleportActComponent.cs @@ -0,0 +1,25 @@ +using Robust.Shared.Audio; +using Robust.Shared.Prototypes; + +namespace Content.Shared.ComponentalActions.Components; + +[RegisterComponent] +[AutoGenerateComponentState(true)] +public sealed partial class TeleportActComponent : Component +{ + [DataField("blinkSound")] + public SoundSpecifier BlinkSound = new SoundPathSpecifier("/Audio/Magic/blink.ogg"); + + /// + /// Volume control for the spell. + /// + [DataField("blinkVolume")] + public float BlinkVolume = 5f; + + [DataField("blinkAction")] + public EntProtoId Action = "CompActionTeleport"; + + [DataField, AutoNetworkedField] + public EntityUid? ActionEntity; + +} diff --git a/Content.Shared/ADT/ComponentalActions/SharedComponentalActions.cs b/Content.Shared/ADT/ComponentalActions/SharedComponentalActions.cs new file mode 100644 index 00000000000..d88dc86744a --- /dev/null +++ b/Content.Shared/ADT/ComponentalActions/SharedComponentalActions.cs @@ -0,0 +1,30 @@ +using Content.Shared.Actions; +using Content.Shared.DoAfter; +using Robust.Shared.Serialization; +using Robust.Shared.Audio; + +namespace Content.Shared.ComponentalActions; + +public sealed partial class CompTeleportActionEvent : WorldTargetActionEvent +{ +} + +public sealed partial class CompProjectileActionEvent : WorldTargetActionEvent +{ +} + +public sealed partial class CompJumpActionEvent : WorldTargetActionEvent +{ +} + +public sealed partial class CompHealActionEvent : InstantActionEvent +{ +} + +public sealed partial class CompStasisHealActionEvent : InstantActionEvent +{ +} + +public sealed partial class CompInvisibilityActionEvent : InstantActionEvent +{ +} diff --git a/Content.Shared/ADT/Jumpboots/JumpbootsComponent.cs b/Content.Shared/ADT/Jumpboots/JumpbootsComponent.cs new file mode 100644 index 00000000000..261287b62df --- /dev/null +++ b/Content.Shared/ADT/Jumpboots/JumpbootsComponent.cs @@ -0,0 +1,32 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Audio; +using Content.Shared.Inventory; +using Content.Shared.Inventory.Events; +using Robust.Shared.Map; +using Robust.Shared.Serialization; + + +namespace Content.Shared.Clothing; + +[RegisterComponent, NetworkedComponent(), AutoGenerateComponentState] +[Access(typeof(SharedMagbootsSystem))] +public sealed partial class JumpbootsComponent : Component +{ + /// + /// Volume control for the spell. + /// + [DataField("jumpVolume")] + public float Volume = 1f; + + [DataField("jumpStrength")] + public float Strength = 13f; + + public SlotFlags AllowedSlots = SlotFlags.FEET; + + [DataField("jumpAction")] + public EntProtoId Action = "ActionJumpboots"; + + [DataField, AutoNetworkedField] + public EntityUid? ActionEntity; +} diff --git a/Content.Shared/ADT/Jumpboots/SharedJumpbootsSystem.cs b/Content.Shared/ADT/Jumpboots/SharedJumpbootsSystem.cs new file mode 100644 index 00000000000..1e125105e92 --- /dev/null +++ b/Content.Shared/ADT/Jumpboots/SharedJumpbootsSystem.cs @@ -0,0 +1,45 @@ +using Content.Shared.Actions; +using Content.Shared.Clothing.EntitySystems; +using Content.Shared.Inventory; +using Content.Shared.Item; +using Robust.Shared.Audio; +using Robust.Shared.Containers; + +namespace Content.Shared.Clothing; + +public abstract class SharedJumpbootsSystem : EntitySystem +{ + [Dependency] private readonly ClothingSpeedModifierSystem _clothingSpeedModifier = default!; + [Dependency] private readonly ClothingSystem _clothing = default!; + [Dependency] private readonly InventorySystem _inventory = default!; + [Dependency] private readonly SharedActionsSystem _sharedActions = default!; + [Dependency] private readonly SharedActionsSystem _actionContainer = default!; + [Dependency] private readonly SharedAppearanceSystem _appearance = default!; + [Dependency] private readonly SharedContainerSystem _sharedContainer = default!; + [Dependency] private readonly SharedItemSystem _item = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnGetActions); + SubscribeLocalEvent(OnMapInit); + } + + private void OnMapInit(EntityUid uid, JumpbootsComponent component, MapInitEvent args) + { + _actionContainer.AddAction(uid, ref component.ActionEntity, component.Action); + Dirty(uid, component); + } + + private void OnGetActions(EntityUid uid, JumpbootsComponent component, GetItemActionsEvent args) + { + args.AddAction(ref component.ActionEntity, component.Action); + } +} + +public sealed partial class JumpbootsActionEvent : WorldTargetActionEvent +{ + [DataField] + public SoundSpecifier Sound = new SoundPathSpecifier("/Audio/Effects/Footsteps/suitstep2.ogg"); +} diff --git a/Content.Shared/ADT/Language/Components/CommonLangUnknown.cs b/Content.Shared/ADT/Language/Components/CommonLangUnknown.cs new file mode 100644 index 00000000000..bac1230704f --- /dev/null +++ b/Content.Shared/ADT/Language/Components/CommonLangUnknown.cs @@ -0,0 +1,14 @@ +using Content.Shared.Actions; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; + +namespace Content.Shared.Language; + +[RegisterComponent] +public sealed partial class UnknowLanguageComponent : Component +{ + [DataField("language")] + public string LanguageToForgot = "GalacticCommon"; +} diff --git a/Content.Shared/ADT/SlimeHair/SharedSlimeHairSystem.cs b/Content.Shared/ADT/SlimeHair/SharedSlimeHairSystem.cs new file mode 100644 index 00000000000..88a41820a88 --- /dev/null +++ b/Content.Shared/ADT/SlimeHair/SharedSlimeHairSystem.cs @@ -0,0 +1,148 @@ +using Content.Shared.DoAfter; +using Content.Shared.Humanoid.Markings; +using Robust.Shared.Player; +using Robust.Shared.Serialization; +using Content.Shared.Actions; + +namespace Content.Shared.SlimeHair; + +[Serializable, NetSerializable] +public enum SlimeHairUiKey : byte +{ + Key +} + +[Serializable, NetSerializable] +public enum SlimeHairCategory : byte +{ + Hair, + FacialHair +} + +[Serializable, NetSerializable] +public sealed class SlimeHairSelectMessage : BoundUserInterfaceMessage +{ + public SlimeHairSelectMessage(SlimeHairCategory category, string marking, int slot) + { + Category = category; + Marking = marking; + Slot = slot; + } + + public SlimeHairCategory Category { get; } + public string Marking { get; } + public int Slot { get; } +} + +[Serializable, NetSerializable] +public sealed class SlimeHairChangeColorMessage : BoundUserInterfaceMessage +{ + public SlimeHairChangeColorMessage(SlimeHairCategory category, List colors, int slot) + { + Category = category; + Colors = colors; + Slot = slot; + } + + public SlimeHairCategory Category { get; } + public List Colors { get; } + public int Slot { get; } +} + +[Serializable, NetSerializable] +public sealed class SlimeHairRemoveSlotMessage : BoundUserInterfaceMessage +{ + public SlimeHairRemoveSlotMessage(SlimeHairCategory category, int slot) + { + Category = category; + Slot = slot; + } + + public SlimeHairCategory Category { get; } + public int Slot { get; } +} + +[Serializable, NetSerializable] +public sealed class SlimeHairSelectSlotMessage : BoundUserInterfaceMessage +{ + public SlimeHairSelectSlotMessage(SlimeHairCategory category, int slot) + { + Category = category; + Slot = slot; + } + + public SlimeHairCategory Category { get; } + public int Slot { get; } +} + +[Serializable, NetSerializable] +public sealed class SlimeHairAddSlotMessage : BoundUserInterfaceMessage +{ + public SlimeHairAddSlotMessage(SlimeHairCategory category) + { + Category = category; + } + + public SlimeHairCategory Category { get; } +} + +[Serializable, NetSerializable] +public sealed class SlimeHairUiState : BoundUserInterfaceState +{ + public SlimeHairUiState(string species, List hair, int hairSlotTotal, List facialHair, int facialHairSlotTotal) + { + Species = species; + Hair = hair; + HairSlotTotal = hairSlotTotal; + FacialHair = facialHair; + FacialHairSlotTotal = facialHairSlotTotal; + } + + public NetEntity Target; + + public string Species; + + public List Hair; + public int HairSlotTotal; + + public List FacialHair; + public int FacialHairSlotTotal; +} + +[Serializable, NetSerializable] +public sealed partial class SlimeHairRemoveSlotDoAfterEvent : DoAfterEvent +{ + public override DoAfterEvent Clone() => this; + public SlimeHairCategory Category; + public int Slot; +} + +[Serializable, NetSerializable] +public sealed partial class SlimeHairAddSlotDoAfterEvent : DoAfterEvent +{ + public override DoAfterEvent Clone() => this; + public SlimeHairCategory Category; +} + +[Serializable, NetSerializable] +public sealed partial class SlimeHairSelectDoAfterEvent : DoAfterEvent +{ + public SlimeHairCategory Category; + public int Slot; + public string Marking = string.Empty; + + public override DoAfterEvent Clone() => this; +} + +[Serializable, NetSerializable] +public sealed partial class SlimeHairChangeColorDoAfterEvent : DoAfterEvent +{ + public override DoAfterEvent Clone() => this; + public SlimeHairCategory Category; + public int Slot; + public List Colors = new List(); +} + +public sealed partial class SlimeHairActionEvent : InstantActionEvent +{ +} diff --git a/Content.Shared/ADT/Wizard/Components/WizardSpawnData.cs b/Content.Shared/ADT/Wizard/Components/WizardSpawnData.cs new file mode 100644 index 00000000000..9b70faa80fe --- /dev/null +++ b/Content.Shared/ADT/Wizard/Components/WizardSpawnData.cs @@ -0,0 +1,20 @@ +namespace Content.Shared.Wizard; + +[ImplicitDataDefinitionForInheritors] +public abstract partial class WizardSpawnData +{ + +} + +/// +/// Spawns 1 at the caster's feet. +/// +public sealed partial class TargetCasterPos : WizardSpawnData { } + +/// +/// Targets the 3 tiles in front of the caster. +/// +public sealed partial class TargetInFront : WizardSpawnData +{ + [DataField("width")] public int Width = 3; +} diff --git a/Content.Shared/ADT/Wizard/SharedWizard.cs b/Content.Shared/ADT/Wizard/SharedWizard.cs new file mode 100644 index 00000000000..de6d8372b39 --- /dev/null +++ b/Content.Shared/ADT/Wizard/SharedWizard.cs @@ -0,0 +1,65 @@ +using Content.Shared.Actions; +using Content.Shared.DoAfter; +using Robust.Shared.Serialization; +using Robust.Shared.Audio; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; + +namespace Content.Shared.Wizard; + +public sealed partial class WizardTeleportActionEvent : WorldTargetActionEvent +{ + [DataField("blinkSound")] + public SoundSpecifier BlinkSound = new SoundPathSpecifier("/Audio/Magic/blink.ogg"); + + /// + /// Volume control for the spell. + /// + [DataField("blinkVolume")] + public float BlinkVolume = 5f; +} + +public sealed partial class WizardProjectileActionEvent : WorldTargetActionEvent +{ + /// + /// What entity should be spawned. + /// + [DataField("prototype", required: true, customTypeSerializer: typeof(PrototypeIdSerializer))] + public string Prototype = "BulletKinetic"; + + /// + /// Gets the targeted spawn positions; may lead to multiple entities being spawned. + /// + [DataField("posData")] + public WizardSpawnData Pos = new TargetCasterPos(); + + [DataField] + public SoundSpecifier ShootSound = new SoundPathSpecifier("/Audio/Weapons/Xeno/alien_spitacid.ogg"); + + [DataField("shootVolume")] + public float ShootVolume = 5f; +} + +public sealed partial class WizardHealActionEvent : InstantActionEvent +{ + [DataField("healSound")] + public SoundSpecifier HealSound = new SoundPathSpecifier("/Audio/Effects/blobattack.ogg"); + + /// + /// Volume control for the spell. + /// + [DataField("healVolume")] + public float HealVolume = 1f; + + [DataField] + public float RegenerateBurnHealAmount = -50f; + + [DataField] + public float RegenerateBruteHealAmount = -75f; + + [DataField] + public float RegenerateBloodVolumeHealAmount = 100f; + + [DataField] + public float RegenerateBleedReduceAmount = -100f; +} diff --git a/Content.Shared/Alert/AlertType.cs b/Content.Shared/Alert/AlertType.cs index e11f9e76646..0505236db48 100644 --- a/Content.Shared/Alert/AlertType.cs +++ b/Content.Shared/Alert/AlertType.cs @@ -56,7 +56,9 @@ public enum AlertType : byte BorgCrit, BorgDead, Chemicals, - PainKiller + PainKiller, + ADTAlertPolymorph, + ADTAlertApathy } } diff --git a/Content.Shared/Stealth/Components/StealthComponent.cs b/Content.Shared/Stealth/Components/StealthComponent.cs index 1a8a647768a..74f210d75de 100644 --- a/Content.Shared/Stealth/Components/StealthComponent.cs +++ b/Content.Shared/Stealth/Components/StealthComponent.cs @@ -10,7 +10,6 @@ namespace Content.Shared.Stealth.Components; /// Use other components (like StealthOnMove) to modify this component's visibility based on certain conditions. /// [RegisterComponent, NetworkedComponent] -[Access(typeof(SharedStealthSystem))] public sealed partial class StealthComponent : Component { /// diff --git a/Content.Shared/Store/ListingPrototype.cs b/Content.Shared/Store/ListingPrototype.cs index 2f067afbeeb..edccb788211 100644 --- a/Content.Shared/Store/ListingPrototype.cs +++ b/Content.Shared/Store/ListingPrototype.cs @@ -78,6 +78,10 @@ public partial class ListingData : IEquatable, ICloneable [DataField("productAction", customTypeSerializer: typeof(PrototypeIdSerializer))] public string? ProductAction; + [DataField("mindAction")] + public bool MindAction = true; + + /// /// The listing ID of the related upgrade listing. Can be used to link a to an /// upgrade or to use standalone as an upgrade diff --git a/Resources/Audio/ADT/slime-hair.ogg b/Resources/Audio/ADT/slime-hair.ogg new file mode 100644 index 00000000000..b41cbf52bc3 Binary files /dev/null and b/Resources/Audio/ADT/slime-hair.ogg differ diff --git a/Resources/Audio/BoomBox/redsuninthesky.ogg b/Resources/Audio/BoomBox/redsuninthesky.ogg new file mode 100644 index 00000000000..f255f7b1df8 Binary files /dev/null and b/Resources/Audio/BoomBox/redsuninthesky.ogg differ diff --git a/Resources/Changelog/ChangelogADT.yml b/Resources/Changelog/ChangelogADT.yml index e3f27ac01e9..8ea4067af7a 100644 --- a/Resources/Changelog/ChangelogADT.yml +++ b/Resources/Changelog/ChangelogADT.yml @@ -1441,4 +1441,56 @@ Entries: - {message: "Исправлено то, что секрет запускался только при 20 игроках. Режим ядерных и зомби получил чуть больше шанса в секрете", type: Tweak} - {message: "Добавлены кассеты с музыкой", type: Add} id: 55705 #костыль отображения в Обновлениях - time: '2024-03-09T08:20:00.0000000+00:00' \ No newline at end of file + time: '2024-03-09T08:20:00.0000000+00:00' + +- author: Котя + changes: + - {message: "Добавлена способность 'Низшая форма' генокраду.", type: Add} + - {message: "Добавлена способность 'Последний шанс' генокраду.", type: Add} + - {message: "Добавлена способность 'Галлюциногенное жало' генокраду.", type: Add} + - {message: "Добавлена способность 'Органический щит' генокраду.", type: Add} + - {message: "Добавлены прыжковые ботинки.", type: Add} + - {message: "Добавлены монстры скверны на экспедиции.", type: Add} + - {message: "Мобы на экспедициях получили гост роли и некоторые способности.", type: Add} + - {message: "Добавлен данж 'Ботаника' на экспедиции. За карту спасибо Illumy и JustKekc.", type: Add} + - {message: "Добавлены базовые действия, привязанные к компонентам. Адмемы, возрадуйтесь.", type: Add} + - {message: "Респрайт руки-клинка на версию из tg station.", type: Tweak} + id: 55706 #костыль отображения в Обновлениях + time: '2024-03-12T12:00:00.0000000+00:00' + +- author: JustKekc + changes: + - {message: Парамедики догадались брать деньги за свои услуги. Теперь они появляются с 500 кредитами как и остальные профессии., type: Fix} + - {message: Исправлен размер бутылочек и упаковок таблеток., type: Fix} + - {message: Бирки для ног теперь одеваются на слот носков., type: Tweak} + - {message: ЦК оснащило шкафы парамедиков высоковольтными дефибрилляторами., type: Tweak} + - {message: Аголатин теперь вызывает апатию. Посматривайте за эмоциями пациентов., type: Add} + - {message: Нестабильному полиморфину теперь надо 12 единиц для срабатывания. Так же появилась новая надпись перед превращением и иконка состояния., type: Tweak} + - {message: Полиморфину теперь надо 16 единиц для срабатывания. Добавлен полиморф новакидам. Так же появилась новая надпись перед превращением и иконка состояния., type: Tweak} + - {message: Изменения в препаратах; Пероводород теперь лечит 1.5 уколов при соприкосновении. Диэтамилат уменьшает кровотечение на 1.5 при соприкосновении. Морфин уменьшает нокдаун и стан на 1.5 секунды, type: Tweak} + - {message: В новых партиях бутылочек и упаковок препаратов ТаблеткоМата наконец появились более понятные этикетки., type: Tweak} + - {message: Добавлены новые стеклянные баночки., type: Add} + - {message: Упаковка диэтамилата заменилась на бутылочку., type: tweak} + - {message: Добавлен новый чемодан с бутылочками препаратов в шкафчик главного врача., type: Add} + - {message: Убраны семена мака снотворного из ящика с медицинскими семенами., type: Tweak} + - {message: Мак снотворный теперь является возможной мутацией обычного мака., type: Tweak} + - {message: Респрайт конопли жизни., type: Tweak} + - {message: Конопля жизни теперь является возможной мутацией обычной конопли., type: Tweak} + - {message: Количество омнизина в конопле жизни уменьшено до 8., type: Tweak} + - {message: Добавлена сушёная а так же измельчённая конопля жизни из которой можно сделать блант и косяк с омнизином., type: Add} + id: 55707 #костыль отображения в Обновлениях + time: '2024-03-12T21:34:00.0000000+00:00' + +- author: Котя + changes: + - {message: "Добавлена возможность слаймолюдам произвольно менять свою причёску.", type: Add} + - {message: "Добавлена черта незнания общегалактического. Не берите её на главах, прошу.", type: Add} + id: 55708 #костыль отображения в Обновлениях + time: '2024-03-15T12:00:00.0000000+00:00' + +- author: Пётр Игнатьевич + changes: + - {message: "Добавлено снаряжение для армии ТСФ для ивентов и будущего использования", type: Add} + - {message: "Модификация СМЭС в попытке утихомирить мигания света", type: Tweak} + id: 55708 #костыль отображения в Обновлениях + time: '2024-03-15T08:20:00.0000000+00:00' diff --git a/Resources/Locale/en-US/ss14-ru/prototypes/adt/entities/clothing/uniforms/Jumpsuit.ftl b/Resources/Locale/en-US/ss14-ru/prototypes/adt/entities/clothing/uniforms/Jumpsuit.ftl index e5931364473..fe6a2e2f0e4 100644 --- a/Resources/Locale/en-US/ss14-ru/prototypes/adt/entities/clothing/uniforms/Jumpsuit.ftl +++ b/Resources/Locale/en-US/ss14-ru/prototypes/adt/entities/clothing/uniforms/Jumpsuit.ftl @@ -8,5 +8,3 @@ ent-ADTClothingUniformBrownWeddingSuit = Brown Wedding suit .desc = Made in USSP ent-ADTClothingUniformPriestPrimalSuit = Priest's primal suit .desc = Primal suit for primal rituals -ent-ADTClothingUniformCyberSun = костюм Киберсан - .desc = Костюм Киберсан, стильно и практично ! diff --git a/Resources/Locale/ru-RU/ADT/Actions/action_changeling.ftl b/Resources/Locale/ru-RU/ADT/Actions/action_changeling.ftl index f63b6793d0c..d4c08ec7e5a 100644 --- a/Resources/Locale/ru-RU/ADT/Actions/action_changeling.ftl +++ b/Resources/Locale/ru-RU/ADT/Actions/action_changeling.ftl @@ -43,9 +43,30 @@ action-blind-sting-desc = Ужальте кого-либо скрытым жал action-mute-sting = Жало безмолвия action-mute-sting-desc = Ужальте кого-либо скрытым жалом и временно лишите его возможности говорить. Использует 20 химикатов. +action-drug-sting = Галлюценогенное жало +action-drug-sting-desc = Введите кому-либо большое количество наркотических веществ. Использует 20 химикатов. + action-omnizine = Исцеление плоти action-omnizine-desc = Ваше тело начинает вырабатывать химикаты, необходимые для исцеления. Использует 25 химикатов. +action-muscles = Напряжённые мышцы +action-muscles-desc = Ваши мышцы ног начинают сокращаться, позволяя вам бегать с крайне высокой скоростью. Использует 20 химикатов. + +action-lesser-form = Низшая форма +action-lesser-form-desc = Превратитесь в обезьяну, либо из обезьяны в выбранную форму. Использует 20 химикатов. + +action-toggle-arm-shield = Переключить органический щит +action-toggle-arm-shield-desc = Превращает одну из ваших свободных рук в щит, сделанный из костей и плоти. Использует 20 химикатов. + +action-resort = Последний шанс +action-resort-desc = Разорвите собственное тело и высвободите свою настоящую форму для последующей кладки личинок в новое тело. + +action-eggs = Отложить яйца +action-eggs-desc = Отложите яйца в бездыханный труп для продолжения рода улья. + +action-hatch = Вылупиться +action-hatch-desc = Разорвите оболочку и вернитесь в облике нового генокрада. + ## extract-dna-string = Скрытый сбор ДНК @@ -75,5 +96,20 @@ adrenaline-cl-desc = Ваше тело моментально вырабатыв mute-sting = Жало безмолвия mute-sting-desc = Лишает цель возможности говорить на некоторое время. Не информирует цель о том, что её ужалили. Использует 20 химикатов. +drug-sting = Галлюценогенное жало +drug-sting-desc = Вводит цели большое количество наркотических веществ. Не информирует цель о том, что её ужалили. Использует 20 химикатов. + omnizine-cl = Исцеление плоти omnizine-cl-desc = Ваше тело начинает вырабатывать химикаты, необходимые для исцеления. Использует 25 химикатов. + +muscles-cl = Напряжённые мышцы +muscles-cl-desc = Ваши мышцы ног начинают сокращаться, позволяя вам бегать с крайне высокой скоростью. Пока активно, тратит вашу выносливость, и в итоге может привести к перенагрузке. Использует 20 химикатов. + +lesser-form = Низшая форма +lesser-form-desc = Превратитесь в обезьяну. В форме обезьяны вы свободно можете использовать только жала. Вы сможете вернуться к выбранной форме. Использует 20 химикатов. + +arm-shield = Органический щит +arm-shield-desc = Превращает одну из ваших свободных рук в щит, сделанный из костей и плоти. Использует 20 химикатов. + +resort-cl = Последний шанс +resort-cl-desc = Разорвите собственное тело и высвободите свою настоящую форму для последующей кладки личинок в новое тело. diff --git a/Resources/Locale/ru-RU/ADT/Catalog/store/uplink.ftl b/Resources/Locale/ru-RU/ADT/Catalog/store/uplink.ftl index 0eac26d6eed..fa3c23b5f66 100644 --- a/Resources/Locale/ru-RU/ADT/Catalog/store/uplink.ftl +++ b/Resources/Locale/ru-RU/ADT/Catalog/store/uplink.ftl @@ -76,3 +76,6 @@ uplink-syndiholoprojectorfield-desc = Устройство создающие н uplink-unilang-implanter-name = Универсальный языковой имплант uplink-unilang-implanter-desc = Имплант, позволяющий вам понимать любую речь, кроме животной. Не включает в себя понимание Кодового языка. + +uplink-jumpboots-name = Продвинутые прыжковые ботинки +uplink-jumpboots-desc = Прыжковые ботинки в раскраске Синдиката. Обладают гораздо более повышенной перезарядкой, чем прообраз, а так же могут работать в качестве магнитных ботинок. diff --git a/Resources/Locale/ru-RU/ADT/Clothing/Belt/belt.ftl b/Resources/Locale/ru-RU/ADT/Clothing/Belt/belt.ftl index d5184a839fa..a461395356b 100644 --- a/Resources/Locale/ru-RU/ADT/Clothing/Belt/belt.ftl +++ b/Resources/Locale/ru-RU/ADT/Clothing/Belt/belt.ftl @@ -37,3 +37,23 @@ ent-ADTClothingBeltMedicalBag = медицинская поясная сумка ent-ADTClothingBeltMedicalBagFilled = медицинская поясная сумка .desc = Небольшая, но вместительная сумка для хранения медикаментов. Тут даже поместится планшет для бумаги! .suffix = { "Заполнено" } + +ent-ADTClothingWarbeltTSF = разгрузочный жилет армии ТСФ + .desc = Разгрузочный жилет пехотинца Транс-Солнечной Федерации. + .suffix = { "ТСФ" } + +ent-ADTClothingTSFMagBelt = подсумок для пустых магазинов + .desc = Подсумок, применяемый в экипировке пехотинца ТСФ для хранения пустых магазинов или иных предметов. Можно прикрепить в слот кармана. + .suffix = { "ТСФ" } + +ent-ADTClothingTSFMedBelt = подсумок для медицины + .desc = Подсумок, применяемый в экипировке пехотинца ТСФ для хранения медицинских принадлежностей. Можно прикрепить в слот кармана. + .suffix = { "ТСФ" } + +ent-ADTRadioHandheldTSF = рация ТСФ + .desc = Портативная рация с гарнитурой, используемая в армии ТСФ. Работает на трех каналах связи. + .suffix = { "ТСФ" } + +ent-ADTRadioHandheldTSFBackpack = рация-ретранслятор ТСФ + .desc = Переносная рация с телефонным аппаратом, используемая в армии ТСФ. Радист может переносить её на своей спине. + .suffix = { "ТСФ" } diff --git a/Resources/Locale/ru-RU/ADT/Clothing/Ears/headsets.ftl b/Resources/Locale/ru-RU/ADT/Clothing/Ears/headsets.ftl index c4e25b8372e..255b6e9cee2 100644 --- a/Resources/Locale/ru-RU/ADT/Clothing/Ears/headsets.ftl +++ b/Resources/Locale/ru-RU/ADT/Clothing/Ears/headsets.ftl @@ -1,2 +1,6 @@ ent-ADTClothingHeadsetParamedic = гарнитура парамедика - .desc = Гарнитура, используемая парамедиками. \ No newline at end of file + .desc = Гарнитура, используемая парамедиками. + +ent-ADTClothingHeadsetTSF = гарнитура ТСФ + .desc = Компактная гарнитура армии ТСФ с тремя каналами связи. + .suffix = { "ТСФ" } diff --git a/Resources/Locale/ru-RU/ADT/Clothing/Head/hats.ftl b/Resources/Locale/ru-RU/ADT/Clothing/Head/hats.ftl index 2c78f4030d7..376d92ae0f4 100644 --- a/Resources/Locale/ru-RU/ADT/Clothing/Head/hats.ftl +++ b/Resources/Locale/ru-RU/ADT/Clothing/Head/hats.ftl @@ -176,3 +176,7 @@ ent-ADTClothingHeadHatHoodBioPathologist = { ent-ClothingHeadHatHoodBioGeneral } ent-ADTClothingHeadHatHoodBioParamedic = { ent-ClothingHeadHatHoodBioGeneral } .desc = Капюшон для парамедика, защищающий голову и лицо от биологического заражения. + +ent-ADTClothingHeadHelmetTSF = шлем армии ТСФ + .desc = Стандартная каска пехотинца Транс-Солнечной Федерации. + .suffix = { "ТСФ" } diff --git a/Resources/Locale/ru-RU/ADT/Clothing/Neck/cloak.ftl b/Resources/Locale/ru-RU/ADT/Clothing/Neck/cloak.ftl index 84b4181614a..83f88684ba6 100644 --- a/Resources/Locale/ru-RU/ADT/Clothing/Neck/cloak.ftl +++ b/Resources/Locale/ru-RU/ADT/Clothing/Neck/cloak.ftl @@ -2,9 +2,9 @@ ent-ADTClothingNeckKnightCloak = плащ рыцаря .desc = Шёлковый и внушительный рыцарский плащ. За честь короны! .suffix = { "" } -ent-ADTClothingNeckJeton = армейский Жетон - .desc = На жетоне могла быть указан ваше Имя и Фамилия - .suffix = { "" } +ent-ADTClothingNeckJeton = армейский жетон + .desc = Жетон с именем, фамилией и группой крови владельца. + .suffix = { "ТСФ" } ent-ADTClothingNeckPyotrCloak = плащ Петра Шахина .desc = Темно-зеленый плащ, расшитый золотом @@ -46,3 +46,7 @@ ent-ClothingNeckCloakVoid = пустотный плащ ent-ADTClothingNeckMantleCentComm = наплечая мантия ЦентКома .desc = Удобная наплечная накидка для высшего командного состава NanoTrasen. + +ent-ADTClothingNeckTSFPatch = нашивка ТСФ "Воины Света" + .desc = Крепящийся на липучку патч войс ТСФ, с аббревиатурой на солнечном языке, означающей "Воины Света". + .suffix = { "ТСФ" } diff --git a/Resources/Locale/ru-RU/ADT/Clothing/OuterClothing/Underwear/underwear.ftl b/Resources/Locale/ru-RU/ADT/Clothing/OuterClothing/Underwear/underwear.ftl index 97b10b517a9..0c170c0ceb5 100644 --- a/Resources/Locale/ru-RU/ADT/Clothing/OuterClothing/Underwear/underwear.ftl +++ b/Resources/Locale/ru-RU/ADT/Clothing/OuterClothing/Underwear/underwear.ftl @@ -82,7 +82,7 @@ ent-ADTClothingUnderwearSocksBeige = бежевые праздничные но .desc = Ноги чувствуют тепло от плотного слоя шерстки в них. ent-ADTClothingUnderwearSocksBlue = синие праздничные носки .desc = Синие - словно лед. Теплые - как праздник. -ent-ADTClothingUnderwearSocksFingerless = празднечные носки без пальцев +ent-ADTClothingUnderwearSocksFingerless = праздничные носки без пальцев .desc = Когти не помеха для праздника! ent-ADTClothingUnderwearSocksRed = красные праздничные носки .desc = Традиционные носки на Новый Год. diff --git a/Resources/Locale/ru-RU/ADT/Clothing/boots.ftl b/Resources/Locale/ru-RU/ADT/Clothing/boots.ftl index 5fdf6e82d68..85388105a59 100644 --- a/Resources/Locale/ru-RU/ADT/Clothing/boots.ftl +++ b/Resources/Locale/ru-RU/ADT/Clothing/boots.ftl @@ -96,3 +96,9 @@ ent-ADTClothingFootSportZetaCrocs = кроссы STEP "Zeta" ent-ADTClothingHighboots = сапоги главного врача .desc = Пара высоких сапог, чтобы не заморать ноги во время ходьбы по лужам крови. + +ent-ADTClothingJumpBoots = прыжковые ботинки + .desc = Громоздкие до первого полёта. + +ent-ADTClothingJumpBootsSynd = кроваво-красные прыжковые ботинки + .desc = Улучшенная версия прыжковых ботинок, оснащённая магнитами для... Лучшего приземления? diff --git a/Resources/Locale/ru-RU/ADT/Clothing/outerclothing.ftl b/Resources/Locale/ru-RU/ADT/Clothing/outerclothing.ftl index b615a2bf62e..2bc865df016 100644 --- a/Resources/Locale/ru-RU/ADT/Clothing/outerclothing.ftl +++ b/Resources/Locale/ru-RU/ADT/Clothing/outerclothing.ftl @@ -72,3 +72,7 @@ ent-ADTClothingOuterBioParamedic = защитный костюм парамед ent-ADTClothingOuterCoatLabParamedic = халат парамедика .desc = { ent-ClothingOuterCoatLab.desc } + +ent-ADTClothingTSFArmor = бронежилет армии ТСФ + .desc = Стандартный бронежилет пехотинца Транс-Солнечной Федерации. + .suffix = { "ТСФ" } diff --git a/Resources/Locale/ru-RU/ADT/Hydroponics/mutated_seed.ftl b/Resources/Locale/ru-RU/ADT/Hydroponics/mutated_seed.ftl index 1521814d656..87ac4643543 100644 --- a/Resources/Locale/ru-RU/ADT/Hydroponics/mutated_seed.ftl +++ b/Resources/Locale/ru-RU/ADT/Hydroponics/mutated_seed.ftl @@ -1,5 +1,14 @@ -ent-ADTcannabiswhiteSeeds = пакет семян конопли жизни - .desc = Пакет семян мутированной конопли содержащей в себе омнизин. -seeds-cannabiswhite-display-name = конопли жизни +seeds-cannabiswhite-name = конопля жизни seeds-cannabiswhite-display-name = конопли жизни -ent-ADTLeavesCannabisWhite = Листья конопли жизни + +ent-ADTLeavesCannabisWhite = листья конопли жизни + .desc = Мутировшая версия конопли, содержащая полезные реагенты. Колючая... + +ent-ADTcannabiswhiteSeeds = пакет семян конопли жизни + .desc = { ent-SeedBase.desc } + +ent-ADTLeavesCannabisWhiteDried = сушёные листья конопли жизни + .desc = Высушенные и готовые для вашего подпольно-медицинского бизнеса. + +ent-ADTGroundCannabisWhite = измельчённая конопля жизни + .desc = 'Это точно мне поможет, доктор?' diff --git a/Resources/Locale/ru-RU/ADT/Lixon/Bottel.ftl b/Resources/Locale/ru-RU/ADT/Lixon/Bottel.ftl deleted file mode 100644 index fde43d2e183..00000000000 --- a/Resources/Locale/ru-RU/ADT/Lixon/Bottel.ftl +++ /dev/null @@ -1,18 +0,0 @@ -ent-ADTObjectsSpecificArithrazineChemistryBottle = Бутылочка Аритразина - .desc = "Маленькая бутылочка" - .suffix = { "" } -ent-ADTObjectsSpecificBicaridineChemistryBottle = Бутылочка Бикардина - .desc = "Маленькая бутылочка" - .suffix = { "" } -ent-ADTObjectsSpecificDexalinPlusChemistryBottle = Бутылочка Дексалина плюс - .desc = "Маленькая бутылочка" - .suffix = { "" } -ent-ADTObjectsSpecificDermalineChemistryBottle = Бутылочка Дермалина - .desc = "Маленькая бутылочка" - .suffix = { "" } -ent-ADTObjectsSpecificDexalinChemistryBottle = Бутылочка Дексалина - .desc = "Маленькая бутылочка" - .suffix = { "" } -ent-ADTObjectsSpecificLeporazineChemistryBottle = Бутылочка Лепоразина - .desc = "Маленькая бутылочка" - .suffix = { "" } diff --git a/Resources/Locale/ru-RU/ADT/Objects/Consumable/Drinks/ussp_mup.ftl b/Resources/Locale/ru-RU/ADT/Objects/Consumable/Drinks/ussp_mup.ftl new file mode 100644 index 00000000000..6cb6f978963 --- /dev/null +++ b/Resources/Locale/ru-RU/ADT/Objects/Consumable/Drinks/ussp_mup.ftl @@ -0,0 +1,2 @@ +ent-ADTUSSPMug = кружка СССП + .desc = Кружка с гербом СССП. Пейте во славу Союза. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ADT/Objects/Consumable/Smokeables/joints.ftl b/Resources/Locale/ru-RU/ADT/Objects/Consumable/Smokeables/joints.ftl new file mode 100644 index 00000000000..32dd889e1d9 --- /dev/null +++ b/Resources/Locale/ru-RU/ADT/Objects/Consumable/Smokeables/joints.ftl @@ -0,0 +1,5 @@ +ent-ADTJoint = косяк из конопли жизни + .desc = {ent-Joint.desc} + +ent-ADTBlunt = блант из конопли жизни + .desc = {ent-Blunt.desc} diff --git a/Resources/Locale/ru-RU/ADT/Objects/Power/light.ftl b/Resources/Locale/ru-RU/ADT/Objects/Power/light.ftl index 28ddd69a49d..191ef14e424 100644 --- a/Resources/Locale/ru-RU/ADT/Objects/Power/light.ftl +++ b/Resources/Locale/ru-RU/ADT/Objects/Power/light.ftl @@ -1,14 +1,29 @@ -ent-LedLightTubeGreen = Зеленая Лампа-Трубка - .desc = Лампа-Трубка испускающая зеленый свет,отлично подходит если кто-то хочет устроить вечеринку +ent-LedLightTubeGreen = зеленая лампа-трубка + .desc = Лампа-трубка, испускающая зеленый свет. Отлично подходит для вечеринки. -ent-LedLightTubeYellow = Желтая Лампа-Трубка - .desc = Лампа-Трубка испускающая желтый свет,отлично подходит если кто-то хочет устроить вечеринку +ent-LedLightTubeYellow = желтая лампа-трубка + .desc = Лампа-трубка, испускающая желтый свет. Отлично подходит для вечеринки. -ent-LedLightTubeRed = Красная Лампа-Трубка - .desc = Лампа-Трубка испускающая красный свет,отлично подходит если кто-то хочет устроить вечеринку +ent-LedLightTubeRed = красная лампа-трубка + .desc = Лампа-трубка, испускающая красный свет. Отлично подходит для вечеринки. -ent-LedLightTubeViolet = Фиолетовая Лампа-Трубка - .desc = Лампа-Трубка испускающая фиолетовый свет,отлично подходит если кто-то хочет устроить вечеринку +ent-LedLightTubeViolet = фиолетовая лампа-трубка + .desc = Лампа-трубка, испускающая фиолетовый свет. Отлично подходит для вечеринки. -ent-LedLightTubeBlue = Голубая Лампа-Трубка - .desc = Лампа-Трубка испускающая голубой свет,отлично подходит если кто-то хочет устроить вечеринку +ent-LedLightTubeBlue = синяя лампа-трубка + .desc = Лампа-трубка, испускающая синий свет. Отлично подходит для вечеринки. + +ent-LightTubeCrystalBlue = синяя кристальная лампа-трубка + .desc = Высокоэффективная лампа-трубка, внутри которой находится светящийся кристалл. +ent-LightTubeCrystalCyan = голубая кристальная лампа-трубка + .desc = Высокоэффективная лампа-трубка, внутри которой находится светящийся кристалл. +ent-LightTubeCrystalGreen = зеленая кристальная лампа-трубка + .desc = Высокоэффективная лампа-трубка, внутри которой находится светящийся кристалл. +ent-LightTubeCrystalOrange = оранжевая кристальная лампа-трубка + .desc = Высокоэффективная лампа-трубка, внутри которой находится светящийся кристалл. +ent-LightTubeCrystalPink = розовая кристальная лампа-трубка + .desc = Высокоэффективная лампа-трубка, внутри которой находится светящийся кристалл. +ent-LightTubeCrystalRed = красная кристальная лампа-трубка + .desc = Высокоэффективная лампа-трубка, внутри которой находится светящийся кристалл. +ent-LightTubeOld = старая люминесцентная лампа-трубка + .desc = Изжившая своё светящаяся трубка \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ADT/Objects/Weapons/Guns/Guns.ftl b/Resources/Locale/ru-RU/ADT/Objects/Weapons/Guns/Guns.ftl index af1732f63c7..b3a07f12057 100644 --- a/Resources/Locale/ru-RU/ADT/Objects/Weapons/Guns/Guns.ftl +++ b/Resources/Locale/ru-RU/ADT/Objects/Weapons/Guns/Guns.ftl @@ -240,3 +240,7 @@ ent-ADTWeaponRifleLecterBibis = страйкбольный "Лектер" ent-ADTMagazineRifleBibis = магазин от страйкбольного автомата .desc = Магазин для страйкбольного автомата, с двумя сотнями маленьких шариков. .suffix = { "Страйкбол" } + +ent-ADTWeaponRifleTAR60SF = TAR-60SF + .desc = Автоматическая винтовка Tactical Assault Rifle-2560 Special Force, являющаяся предшественником широко известной AR-12. Используется армией и флотом ТСФ и спецподразделениями других государств. + .suffix = { "ТСФ" } diff --git a/Resources/Locale/ru-RU/ADT/Objects/specific/medstuff.ftl b/Resources/Locale/ru-RU/ADT/Objects/specific/medstuff.ftl deleted file mode 100644 index df1967f8048..00000000000 --- a/Resources/Locale/ru-RU/ADT/Objects/specific/medstuff.ftl +++ /dev/null @@ -1,199 +0,0 @@ -ent-ADTZookeperHandheldHealthAnalyzer = Анализатор здоровья Зоотехника - .desc = Ручной анализатор здоровья зоотехника. Подходит что бы следить и за животными и за людьми. - .suffix = { "" } - -ent-ADTCombatHypo = боевой гипоспрей - .desc = Модель гипоспрея, разработанная NT для использования в боевых ситуациях - с повышенным объемом в ущерб скорости применения. - .suffix = { "" } - -ent-ADTHandDefibrillator = боевой переносной Дефибриллятор - .desc = Облегченная версия дефибриллятора, возращает к жизни лучше и быстрее, хоть разряд опаснее. Можно надеть на шею - .suffix = { "" } - -ent-ADTMedicalTourniquet = кровоостанавливающий жгут-турникет - .desc = Компактное средство от кровотечения. - -ent-ADTAntibioticOintment = антибиотическая мазь - .desc = Используется для лечения как ушибов, порезов, уколов, так и ожогов. -ent-ADTAntibioticOintment1 = { ent-ADTAntibioticOintment } - .desc = { ent-ADTAntibioticOintment.desc } - .suffix = Один - - -ent-ADTPatchPack = коробка пластырей - .desc = Коробка для хранения медицинских пластырей. - .suffix = { "" } - -ent-ADTPatchPackFilled = { ent-ADTPatchPack } - .desc = { ent-ADTPatchPack.desc } - .suffix = { "Заполненный" } - -ent-ADTPatchHealing = заживляющий пластырь - .desc = Помогает при грубых травмах. - .suffix = { "" } - -ent-ADTPatchHealingMini = заживляющий мини-пластырь - .desc = Помогает при грубых травмах. - .suffix = { "" } - -ent-ADTPatchBurn = пластырь от ожогов - .desc = Помогает при ожоговых травмах. - .suffix = { "" } - -ent-ADTPatchBurnMini = мини-пластырь от ожогов - .desc = Помогает при ожоговых травмах. - .suffix = { "" } - -ent-ADTPatchHonk = хонк пластырь - .desc = Чудо клоунской медицины, повышает уровень веселья в крови. - .suffix = { "" } - -ent-ADTCratePatchPackFilled = набор пластырей - .desc = Набор содержащий 4 коробки с пластырями - .suffix = { "" } - -ent-ADTHighVoltageDefibrillator = высоковольтный дефибриллятор - .desc = Дефибриллятор, которому нужно гораздо меньше времени на подготовку, однако повреждений от тока больше. - -ent-ADTHighVoltageDefibrillatorEmpty = { ent-ADTHighVoltageDefibrillator } - .desc = { ent-ADTHighVoltageDefibrillator.desc } - .suffix = { "Пустой" } - -ent-ADTHighVoltageDefibrillatorFake = { ent-ADTHighVoltageDefibrillator } - .desc = { ent-ADTHighVoltageDefibrillator.desc } Но что-то не так... - .suffix = { "Поддельный" } - -ent-BaseChemistryEmptyVial = пробирка - .desc = Небольшая пробирка. - .suffix = { "" } - -ent-VestineChemistryVial = пробирка с вестином - .desc = Небольшая пробирка, на которой стоит маркировка "Вестин". - .suffix = { "Вестин" } - -ent-BoxVial = коробка пробирок - .desc = Содержит шесть пробирок. - -ent-ADTCratePatchPack = набор пластырей - .desc = { ent-ADTCratePatchPackFilled.desc } - .suffix = { "" } - -ent-ADTMobileDefibrillator = мобильный дефибриллятор - .desc = Продвинутый переносной дефибриллятор. Помещается в карманы, можно закрепить на врачебный и обычный пояс. Обладает батареей, которая восстанавливает короткое время после удара током. - .suffix = { "" } - -ent-ADTSmallSyringe = небольшой шприц - .desc = Маленький шприц для.. вы угадали, взятия небольшого количества вещества. Так же помещается в раздатчики и анализатор вещества. -ent-ADTSmallSyringeBox = коробка небольших шприцов - .desc = Небольшая коробка небольших шприцов для небольшого количества препаратов. - - -ent-ADTPillCanister = баночка для таблеток - .desc = Вмещает до 9 таблеток. - .suffix = { "" } -ent-ADTMVitaminCanister = баночка витаминов - .desc = Содержит полезные витаминки. - .suffix = { "" } -ent-ADTMAgolatineCanister = баночка аголатина - .desc = Содержит относительно полезные антидепрессанты. - .suffix = { "" } -ent-ADTPlasticBottle = пластиковая бутылочка - .desc = Небольшая пластиковая бутылочка. - .suffix = { "" } -ent-ADTMMorphineBottle = бутылочка морфина - .desc = небольшая бутылочка с морфином. - .suffix = { "" } -ent-ADTMOpiumBottle = бутылочка опиума - .desc = небольшая бутылочка с опиумом. - .suffix = { "" } -ent-ADTMPeroHydrogenBottle = бутылочка пероводорода - .desc = Пластиковая бутылочка. Буквы на этикетке настолько малы, что издали сливаются в забавную рожицу. - .suffix = { "" } -ent-ADTMNikematideBottle = бутылочка никематида - .desc = { ent-ADTMPeroHydrogenBottle.desc } - .suffix = { "" } -ent-ADTObjectsSpecificFormalinChemistryBottle = бутылочка формалина - .desc = Основа работы патологоанатома. -ent-BasePack = упаковка таблеток - .desc = Содержит 10 таблеток с распространённым лекарством. - .suffix = { "" } -ent-ADTMSodiumizolePack = упаковка натримизола - .desc = { ent-BasePack.desc } - .suffix = { "" } -ent-ADTPillPack = упаковка таблеток - .desc = Вмещает до 10-и таблеток. - .suffix = { "" } -ent-ADTMNitrofurfollPack = упаковка нитрофурфолла - .desc = { ent-BasePack.desc } - .suffix = { "" } -ent-ADTMAnelgesinPack = упаковка анельгезина - .desc = { ent-BasePack.desc } - .suffix = { "" } -ent-ADTMMinoxidePack = упаковка миноксида - .desc = { ent-BasePack.desc } - .suffix = { "" } -ent-ADTMDiethamilatePack = упаковка диэтамилата - .desc = { ent-BasePack.desc } - .suffix = { "" } -ent-ADTMHaloperidolPack = упаковка галоперидола - .desc = { ent-BasePack.desc } - .suffix = { "" } -ent-ADTMCharcoalPack = упаковка угля - .desc = { ent-BasePack.desc } - .suffix = { "" } -ent-ADTMEthylredoxrazinePack = упаковка этилредоксразина - .desc = { ent-BasePack.desc } - .suffix = { "" } - -ent-ADTMSodiumizolePill = таблетка натримизола - .desc = { ent-Pill.desc } - .suffix = { "" } -ent-ADTMNitrofurfollPill = таблетка нитрофурфолла - .desc = { ent-Pill.desc } - .suffix = { "" } -ent-ADTMAnelgesinPill = таблетка анельгезина - .desc = { ent-Pill.desc } - .suffix = { "" } -ent-ADTMMinoxidePill = таблетка миноксида - .desc = { ent-Pill.desc } - .suffix = { "" } -ent-ADTMDiethamilatePill = таблетка диэтамилата - .desc = { ent-Pill.desc } - .suffix = { "" } -ent-ADTMHaloperidolPill = таблетка галоперидола - .desc = { ent-Pill.desc } - .suffix = { "" } -ent-ADTMEthylredoxrazinePill = таблетка этилредоксразина - .desc = { ent-Pill.desc } - .suffix = { "" } -ent-ADTMAgolatinePill = таблетка аголатина - .desc = { ent-Pill.desc } - .suffix = { "" } -ent-ADTMVitaminPill = таблетка витаминов - .desc = { ent-Pill.desc } - .suffix = { "" } -ent-PillCharcoal = таблетка угля (10) - .desc = { ent-Pill.desc } - .suffix = { "" } - -ent-ADTCrateVendingMachineRestockPill = набор пополнения ТаблеткоМата - .desc = Ящик с набором пополнения ТаблеткоМата. - .suffix = { "" } - -ent-ADTCrateVendingMachineRestockPillFilled = набор пополнения ТаблеткоМата - .desc = Ящик с набором пополнения ТаблеткоМата. - .suffix = { "" } - -ent-ADTVendingMachineRestockPill = набор пополнения ТаблеткоМата - .desc = Поместите в ТаблеткоМат вашего отдела. - .suffix = { "" } - -ent-ADTFootTag = бирка для ног - .desc = Бумажка для пометки усопших. - .suffix = { "" } -ent-ADTFootTagBox = коробка бирок для ног - .desc = Пластиковая коробка, содержащие бирки для ног. - .suffix = { "" } - -ent-ADTReagentAnalyzer = анализатор реагентов - .desc = Карманный помощник для определения странных химикатов. Может вместить себя больше, чем на первый взгляд. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ADT/Objects/specific/medstuff/chemistry.ftl b/Resources/Locale/ru-RU/ADT/Objects/specific/medstuff/chemistry.ftl new file mode 100644 index 00000000000..48d6781555e --- /dev/null +++ b/Resources/Locale/ru-RU/ADT/Objects/specific/medstuff/chemistry.ftl @@ -0,0 +1,41 @@ +ent-ADTCombatHypo = боевой гипоспрей + .desc = Модель гипоспрея, разработанная NT для использования в боевых ситуациях - с повышенным объемом в ущерб скорости применения. + .suffix = { "" } + +ent-BaseChemistryEmptyVial = пробирка + .desc = Небольшая пробирка. + .suffix = { "" } + +ent-VestineChemistryVial = пробирка с вестином + .desc = Небольшая пробирка, на которой стоит маркировка "Вестин". + .suffix = { "Вестин" } + +ent-BoxVial = коробка пробирок + .desc = Содержит шесть пробирок. + +ent-ADTSmallSyringe = небольшой шприц + .desc = Маленький шприц для.. вы угадали, взятия небольшого количества вещества. Так же помещается в раздатчики и анализатор вещества. +ent-ADTSmallSyringeBox = коробка небольших шприцов + .desc = Небольшая коробка небольших шприцов для небольшого количества препаратов. + +ent-ADTPillCanister = баночка для таблеток + .desc = Вмещает до 9 таблеток. + .suffix = { "" } + +ent-ADTPlasticBottle = пластиковая бутылочка + .desc = Небольшая пластиковая бутылочка. + .suffix = { "" } + +ent-ADTGlassBottle = стеклянная бутылочка + .desc = Оранжевая стеклянная ёмкость. + +ent-BasePack = упаковка таблеток + .desc = Содержит 10 таблеток с распространённым лекарством. + .suffix = { "" } + +ent-ADTPillPack = упаковка таблеток + .desc = Вмещает до 10-и таблеток. + .suffix = { "" } + +ent-ADTReagentAnalyzer = анализатор реагентов + .desc = Карманный помощник для определения странных химикатов. Может вместить себя больше, чем на первый взгляд. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ADT/Objects/specific/medstuff/chemistry_containers.ftl b/Resources/Locale/ru-RU/ADT/Objects/specific/medstuff/chemistry_containers.ftl new file mode 100644 index 00000000000..b1f29a7248f --- /dev/null +++ b/Resources/Locale/ru-RU/ADT/Objects/specific/medstuff/chemistry_containers.ftl @@ -0,0 +1,73 @@ +ent-ADTObjectsSpecificArithrazineChemistryBottle = бутылочка аритразина + .desc = "Маленькая бутылочка" +ent-ADTObjectsSpecificBicaridineChemistryBottle = бутылочка бикардина + .desc = "Маленькая бутылочка" +ent-ADTObjectsSpecificDexalinPlusChemistryBottle = бутылочка дексалина плюс + .desc = "Маленькая бутылочка" +ent-ADTObjectsSpecificDermalineChemistryBottle = бутылочка дермалина + .desc = "Маленькая бутылочка" +ent-ADTObjectsSpecificDexalinChemistryBottle = бутылочка дексалина + .desc = "Маленькая бутылочка" +ent-ADTObjectsSpecificLeporazineChemistryBottle = бутылочка лепоразина + .desc = "Маленькая бутылочка" +ent-ADTDyloveneBiomicineBottle = бутылочка диловена и биомицина + .desc = Пластиковая бутылочка, содержащая смесь биомицина и диловена. Использовать в крайних случаях отравления. +ent-ADTOmnizineBottle = бутылочка омнизина + .desc = Бутылочка с крайне полезным, хоть и вызывающим зависимость омнизином. + +ent-ADTMPeroHydrogenBottle = бутылочка пероводорода + .desc = Пластиковая бутылочка с препаратом от болезненных уколов. Препарат действует эффективнее на открытые уколы, отчего лучше всего их поливать. Становится полезнее при смешании бикаридином, хоть на этикетке этого не указано. +ent-ADTMNikematideBottle = бутылочка никематида + .desc = Пластиковая бутылочка для случаев лёгкого кислородного голодания. Первое время этот препарат рекламировали как полезное средство для пациентов с синдромом астмы. Практика показала обратное. Становится ещё эффективнее, если смешать с дексалином плюс, хоть и производитель умалчивает об этом на упаковках. +ent-ADTMDiethamilateBottle = бутылочка диэтамилата + .desc = Пластиковая бутылочка предназначенная для остановки небольших кровотечений. Препарат действует эффективнее на открытых ранах, поэтому лучше выплёскивать содержимое бутылочки на пациентов, несмотря на их вопросы 'Что вы делаете!?'. Помогает в случаях кровопотери, если смешать с дексалином плюс, хоть на этикетке этого не указано. +ent-ADTMMorphineBottle = бутылочка морфина + .desc = Небольшая бутылочка с полезным, хоть и вызывающим зависимость, анальгетиком. На удивление многих докторов, является любимым лечебным препаратом врачей среди экипажа подводных лодок. +ent-ADTMOpiumBottle = бутылочка опиума + .desc = Небольшая бутылочка, за которую велись целые войны в далёком прошлом. Но сейчас же никто не будет убивать других ради короткого момента эйфории, верно? +ent-ADTMFormalinBottle = бутылочка формалина + .desc = Основа работы патологоанатома. + + +ent-ADTMVitaminCanister = баночка витаминов + .desc = Содержит полезные витаминки. +ent-ADTMAgolatineCanister = баночка аголатина + .desc = Содержит достаточно дешёвые антидепрессанты. На этикетке гордо красуется надпись о том, что они не вызывают состояние апатии. + +ent-ADTMSodiumizolePack = упаковка натримизола + .desc = Таблетки от головной боли в простонародии. Достаточно дешёвые, но имеют целебные свойства при смешании бикаридином, хоть на упаковке этого не указано. +ent-ADTMNitrofurfollPack = упаковка нитрофурфолла + .desc = Препарат для исцеления небольших резаных ран. Странно, что его выпускают в таблетках. Имеет целебные свойства при смешании бикаридином, хоть на упаковке этого не указано. +ent-ADTMAnelgesinPack = упаковка анельгезина + .desc = По-простому - жаропонижающее. Имеет более практичный эффект, если смешать с дермалином, хоть и производитель умалчивает об этом на упаковках. +ent-ADTMMinoxidePack = упаковка миноксида + .desc = Название что-то напоминает... На деле это неплохой препарат для случаев поражения электрическим током. Становится ещё полезнее, если смешать с дермалином, хоть и производитель умалчивает об этом на упаковках. +ent-ADTMDiethamilatePack = упаковка диэтамилата + .desc = Старая партия медикамента, предназначенного для остановления кровотечения. Учитывая, что диэтамилат помогает остановить открытое кровотечение, понятно, почему идею с таблетками быстро отозвали. +ent-ADTMHaloperidolPack = упаковка галоперидола + .desc = Достаточно эффективный нейролептик. Жаль не в бутылочке, можно было бы вести себя как врачи на подводных лодках. +ent-ADTMCharcoalPack = упаковка угля + .desc = Ваш спаситель при желудочных отравлениях. Жаль, однако, что не активированный. +ent-ADTMEthylredoxrazinePack = упаковка этилредоксразина + .desc = Очень важная часть барной стойки, особенно в случаях частых посетителей. Однако эту упаковку редко можно заметить там. + +ent-ADTMSodiumizolePill = таблетка натримизола + .desc = { ent-Pill.desc } +ent-ADTMNitrofurfollPill = таблетка нитрофурфолла + .desc = { ent-Pill.desc } +ent-ADTMAnelgesinPill = таблетка анельгезина + .desc = { ent-Pill.desc } +ent-ADTMMinoxidePill = таблетка миноксида + .desc = { ent-Pill.desc } +ent-ADTMDiethamilatePill = таблетка диэтамилата + .desc = { ent-Pill.desc } +ent-ADTMHaloperidolPill = таблетка галоперидола + .desc = { ent-Pill.desc } +ent-ADTMEthylredoxrazinePill = таблетка этилредоксразина + .desc = { ent-Pill.desc } +ent-ADTMAgolatinePill = таблетка аголатина + .desc = { ent-Pill.desc } +ent-ADTMVitaminPill = таблетка витаминов + .desc = { ent-Pill.desc } +ent-PillCharcoal = таблетка угля (10) + .desc = { ent-Pill.desc } diff --git a/Resources/Locale/ru-RU/ADT/Objects/specific/medstuff/medical.ftl b/Resources/Locale/ru-RU/ADT/Objects/specific/medstuff/medical.ftl new file mode 100644 index 00000000000..4c38cbb1116 --- /dev/null +++ b/Resources/Locale/ru-RU/ADT/Objects/specific/medstuff/medical.ftl @@ -0,0 +1,89 @@ +ent-ADTZookeperHandheldHealthAnalyzer = Анализатор здоровья Зоотехника + .desc = Ручной анализатор здоровья зоотехника. Подходит что бы следить и за животными и за людьми. + .suffix = { "" } + +ent-ADTHandDefibrillator = боевой переносной Дефибриллятор + .desc = Облегченная версия дефибриллятора, возращает к жизни лучше и быстрее, хоть разряд опаснее. Можно надеть на шею + .suffix = { "" } + +ent-ADTMedicalTourniquet = кровоостанавливающий жгут-турникет + .desc = Компактное средство от кровотечения. + +ent-ADTAntibioticOintment = антибиотическая мазь + .desc = Используется для лечения как ушибов, порезов, уколов, так и ожогов. +ent-ADTAntibioticOintment1 = { ent-ADTAntibioticOintment } + .desc = { ent-ADTAntibioticOintment.desc } + .suffix = Один + +ent-ADTPatchPack = коробка пластырей + .desc = Коробка для хранения медицинских пластырей. + .suffix = { "" } + +ent-ADTPatchPackFilled = { ent-ADTPatchPack } + .desc = { ent-ADTPatchPack.desc } + .suffix = { "Заполненный" } + +ent-ADTPatchHealing = заживляющий пластырь + .desc = Помогает при грубых травмах. + .suffix = { "" } + +ent-ADTPatchHealingMini = заживляющий мини-пластырь + .desc = Помогает при грубых травмах. + .suffix = { "" } + +ent-ADTPatchBurn = пластырь от ожогов + .desc = Помогает при ожоговых травмах. + .suffix = { "" } + +ent-ADTPatchBurnMini = мини-пластырь от ожогов + .desc = Помогает при ожоговых травмах. + .suffix = { "" } + +ent-ADTPatchHonk = хонк пластырь + .desc = Чудо клоунской медицины, повышает уровень веселья в крови. + .suffix = { "" } + +ent-ADTCratePatchPackFilled = набор пластырей + .desc = Набор содержащий 4 коробки с пластырями + .suffix = { "" } + +ent-ADTHighVoltageDefibrillator = высоковольтный дефибриллятор + .desc = Дефибриллятор, которому нужно гораздо меньше времени на подготовку, однако повреждений от тока больше. + +ent-ADTHighVoltageDefibrillatorEmpty = { ent-ADTHighVoltageDefibrillator } + .desc = { ent-ADTHighVoltageDefibrillator.desc } + .suffix = { "Пустой" } + +ent-ADTHighVoltageDefibrillatorFake = { ent-ADTHighVoltageDefibrillator } + .desc = { ent-ADTHighVoltageDefibrillator.desc } Но что-то не так... + .suffix = { "Поддельный" } + +ent-ADTCratePatchPack = набор пластырей + .desc = { ent-ADTCratePatchPackFilled.desc } + .suffix = { "" } + +ent-ADTMobileDefibrillator = мобильный дефибриллятор + .desc = Продвинутый переносной дефибриллятор. Помещается в карманы, можно закрепить на врачебный и обычный пояс. Обладает батареей, которая восстанавливает короткое время после удара током. + .suffix = { "" } + +ent-ADTCrateVendingMachineRestockPill = набор пополнения ТаблеткоМата + .desc = Ящик с набором пополнения ТаблеткоМата. + .suffix = { "" } + +ent-ADTCrateVendingMachineRestockPillFilled = набор пополнения ТаблеткоМата + .desc = Ящик с набором пополнения ТаблеткоМата. + .suffix = { "" } + +ent-ADTVendingMachineRestockPill = набор пополнения ТаблеткоМата + .desc = Поместите в ТаблеткоМат вашего отдела. + .suffix = { "" } + +ent-ADTFootTag = бирка для ног + .desc = Бумажка для пометки усопших. + .suffix = { "" } +ent-ADTFootTagBox = коробка бирок для ног + .desc = Пластиковая коробка, содержащие бирки для ног. + .suffix = { "" } + +ent-ADTBriefcaseMedical = чемодан для экстренных случаев + .desc = Небольшой чемоданчик, в котором хранятся очень полезные бутылочки с медицинскими препаратами. diff --git a/Resources/Locale/ru-RU/ADT/Objects/structuries/machines/vending_machines.ftl b/Resources/Locale/ru-RU/ADT/Objects/structuries/machines/vending_machines.ftl index 00708afde64..93a8e634d81 100644 --- a/Resources/Locale/ru-RU/ADT/Objects/structuries/machines/vending_machines.ftl +++ b/Resources/Locale/ru-RU/ADT/Objects/structuries/machines/vending_machines.ftl @@ -13,3 +13,7 @@ ent-ADTVendingMachinePatholoDrobe = ПатологоШкаф ent-ADTVendingMachineParaDrobe = ПараШкаф .desc = Стильная одежда для экстренных медицинских вызовов. + +ent-ADTVendingMachineTSFArmoury = оружейная ТСФ + .desc = Связанный с удаленным хранилищем шкаф, используемый для выдачи оружия и экипировки бойцов ТСФ. + .suffix = { "ТСФ" } diff --git a/Resources/Locale/ru-RU/ADT/Reagents/effects/medicine_effects.ftl b/Resources/Locale/ru-RU/ADT/Reagents/effects/medicine_effects.ftl index 970f435596d..f29b9699159 100644 --- a/Resources/Locale/ru-RU/ADT/Reagents/effects/medicine_effects.ftl +++ b/Resources/Locale/ru-RU/ADT/Reagents/effects/medicine_effects.ftl @@ -16,4 +16,5 @@ medicine-effect-antipsychotic = Ваше зрение и мысли станов medicine-effect-pain = Вы чувствуете, как ваша боль притупляется. medicine-effect-visible-emotions-m = { CAPITALIZE($entity) } выглядит менее эмоциональным. -medicine-effect-visible-emotions-f = { CAPITALIZE($entity) } выглядит менее эмоциональной. \ No newline at end of file +medicine-effect-visible-emotions-f = { CAPITALIZE($entity) } выглядит менее эмоциональной. +medicine-effect-visible-polymorph = { CAPITALIZE($entity) } притерпевает изменения в теле! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ADT/alerts.ftl b/Resources/Locale/ru-RU/ADT/alerts.ftl new file mode 100644 index 00000000000..c0839d32e2a --- /dev/null +++ b/Resources/Locale/ru-RU/ADT/alerts.ftl @@ -0,0 +1,6 @@ +alerts-polymorph-name = [color=#62278c]Полиморф[/color] +alerts-polymorph-desc = [color=#b26de3]С вашим телом происходит нечто странное...[/color] +alerts-painkiller-name = [color=yellow]На болеутоляющих[/color] +alerts-painkiller-desc = Вас ничего не сковывает. +alerts-apathy-name = Апатия +alerts-apathy-desc = Ваши эмоции стали блёклыми, а отношение к окружающему вас миру более равнодушным. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ADT/componental-actions.ftl b/Resources/Locale/ru-RU/ADT/componental-actions.ftl new file mode 100644 index 00000000000..8fa7ac4f0a6 --- /dev/null +++ b/Resources/Locale/ru-RU/ADT/componental-actions.ftl @@ -0,0 +1,31 @@ +action-teleport = Телепорт +action-teleport-desc = Моментально перенеситесь в произвольную точку в радиусе вашего обзора. + +action-shoot = Снаряд +action-shoot-desc = Выпустите боевой снаряд в выбранном направлении. + +action-heal = Исцеление +action-heal-desc = Исцелите часть своих ран. + +action-jump = Прыжок +action-jump-desc = Прыгните в указанную точку. + +action-stasis-heal = Стазисная регенерация +action-stasis-heal-desc = Замедлитесь донельзя и начните регенерировать свои раны. + +action-stealth-heal = Невидимость +action-stealth-heal-desc = Исчезните из виду остальных. И себя в том числе. + +teleport-act = Телепорт +teleport-act-desc = Моментально перенеситесь в произвольную точку в радиусе вашего обзора. + +shoot-act = Снаряд +shoot-act-desc = Выпустите боевой снаряд в выбранном направлении. + +heal-act = Исцеление +heal-act-desc = Исцелите часть своих ран. + +store-currency-display-spell-points = Мана + +ent-ArchmageSpellbook = книга заклинаний архимага + .desc = Невероятные возможности в древнем зачарованном переплёте. diff --git a/Resources/Locale/ru-RU/ADT/sanitizer-apathy-replacements.ftl b/Resources/Locale/ru-RU/ADT/sanitizer-apathy-replacements.ftl new file mode 100644 index 00000000000..70529492936 --- /dev/null +++ b/Resources/Locale/ru-RU/ADT/sanitizer-apathy-replacements.ftl @@ -0,0 +1,24 @@ +chatsan-smiles-apathy = натягивает улыбку +chatsan-frowns-apathy = делает грустный вид +chatsan-smiles-widely-apathy = натянуто-широко улыбается +chatsan-frowns-deeply-apathy = делает вид, что сильно грустит +chatsan-surprised-apathy = выглядит немного удивлённым +chatsan-uncertain-apathy = выглядит слегка растерянным +chatsan-grins-apathy = почти ухмыляется +chatsan-pouts-apathy = наигранно дуется +chatsan-laughs-apathy = выдавливает из себя смех +chatsan-cries-apathy = фальшиво плачет +chatsan-smiles-smugly-apathy = немного самодовольно улыбается +chatsan-annoyed-apathy = выглядит отчасти раздраженным +chatsan-sighs-apathy = театрально вздыхает +chatsan-stick-out-tongue-apathy = показывает язык +chatsan-wide-eyed-apathy = выглядит немного шокированным +chatsan-surprised-apathy = выглядит слегка удивлённым +chatsan-confused-apathy = выглядит чуть смущённым +chatsan-unimpressed-apathy = кажется не впечатлённым +chatsan-waves-apathy = машет +chatsan-salutes-apathy = салютует +chatsan-tearfully-salutes-apathy = отдаёт честь со слезами на глазах +chatsan-shrugs-apathy = пожимает плечами +chatsan-claps-apathy = хлопает +chatsan-snaps-apathy = щёлкает \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ADT/slime-hair.ftl b/Resources/Locale/ru-RU/ADT/slime-hair.ftl new file mode 100644 index 00000000000..92b00f9e553 --- /dev/null +++ b/Resources/Locale/ru-RU/ADT/slime-hair.ftl @@ -0,0 +1,4 @@ +slime-hair-window-title = Сменить причёску + +action-slime-hair = Сменить причёску +action-slime-hair-desc = Никаких парикмахерских! Выберите свою причёску на сегодня! diff --git a/Resources/Locale/ru-RU/actions/actions/nightvision.ftl b/Resources/Locale/ru-RU/actions/actions/nightvision.ftl new file mode 100644 index 00000000000..01b3943f48c --- /dev/null +++ b/Resources/Locale/ru-RU/actions/actions/nightvision.ftl @@ -0,0 +1,2 @@ +night-vision-toggle = Ночное зрение +night-vision-toggle-desc = Переключите вид, в котором вы видите окружение. diff --git a/Resources/Locale/ru-RU/administration/smites.ftl b/Resources/Locale/ru-RU/administration/smites.ftl index 5d66681e950..ca8a3602bcf 100644 --- a/Resources/Locale/ru-RU/administration/smites.ftl +++ b/Resources/Locale/ru-RU/administration/smites.ftl @@ -13,6 +13,11 @@ admin-smite-stomach-removal-self = Вы ощущаете пустоту в же admin-smite-run-walk-swap-prompt = Для бега вы должны нажать Shift! admin-smite-super-speed-prompt = Вы двигаетесь почти со скоростью звука! admin-smite-lung-removal-self = Вы не можете вдохнуть! +admin-smite-terminate-prompt = I'll be back + + +## Описания кар + admin-smite-explode-description = Взорвите цель. admin-smite-chess-dimension-description = Изгнание в шахматное измерение. admin-smite-set-alight-description = Заставляет цель гореть. @@ -51,6 +56,12 @@ admin-smite-lung-removal-description = Удаляет лёгкие цели, т admin-smite-remove-hand-description = Удаляет только одну из рук цели вместо всех. admin-smite-disarm-prone-description = Шанс обезоружить цель становится 100%, а наручники надеваются на неё мгновенно. admin-smite-garbage-can-description = Превратите цель в мусорку, чтобы подчеркнуть, о чём она вам напоминает. +admin-smite-super-bonk-description = Бьет цель головой по каждому столику на станции и за ее пределами. +admin-smite-super-bonk-lite-description= Бьет цель головой по каждому столику на станции и за ее пределами пока та не умрёт.admin-smite-terminate-description = Создает роль Терминатора с целью на устранение этого персонажа. + + +## Описание трюков + admin-trick-unbolt-description = Разболтирует целевой шлюз. admin-trick-bolt-description = Болтирует целевой шлюз. admin-trick-emergency-access-on-description = Включает аварийный доступ к целевому шлюзу. @@ -82,4 +93,3 @@ admin-trick-pause-map-description = Ставит выбранную карту admin-trick-snap-joints-description = Удаляет все физические шарниры из объекта. К сожалению, не отщелкивает все кости в теле. admin-trick-minigun-fire-description = Заставляет целевое оружие стрелять как миниган (очень быстро). admin-trick-set-bullet-amount-description = Быстро устанавливает значение количества незаспавненных патронов в оружии. -admin-smite-terminate-description = Создает роль Терминатора с целью на устранение этого персонажа. diff --git a/Resources/Locale/ru-RU/advertisements/vending/ammo.ftl b/Resources/Locale/ru-RU/advertisements/vending/ammo.ftl index f435694cc5c..fe9b06c8b2d 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/ammo.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/ammo.ftl @@ -1,8 +1,10 @@ -advertisement-ammo-1 = Свободная станция: Ваш универсальный магазин для всего, что связано со второй поправкой! -advertisement-ammo-2 = Будь патриотом сегодня, возьми в руки пушку! +advertisement-ammo-1 = Станция Свободы: Ваш универсальный торговый автомат для всего, что связано с пострелушками! +advertisement-ammo-2 = Будь патриотом — возьми в руки пушку! advertisement-ammo-3 = Качественное оружие по низким ценам! advertisement-ammo-4 = Лучше мёртвый, чем красный! -advertisement-ammo-5 = Парите как астронавт, жалите как пуля! -advertisement-ammo-6 = Выразите свою вторую поправку сегодня! -advertisement-ammo-7 = Оружие не убивает людей, но вы можете! +advertisement-ammo-5 = Парите как астронавт, жальте как пуля! +advertisement-ammo-6 = Постреляйте от души! +advertisement-ammo-7 = Оружие не убивает людей, но вы вполне можете! advertisement-ammo-8 = Кому нужны обязанности, когда есть оружие? +advertisement-ammo-9 = Убивать людей — весело! +advertisement-ammo-10 = Накормите их свинцом! diff --git a/Resources/Locale/ru-RU/advertisements/vending/atmosdrobe.ftl b/Resources/Locale/ru-RU/advertisements/vending/atmosdrobe.ftl index 125fd849940..4534d8dfcdc 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/atmosdrobe.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/atmosdrobe.ftl @@ -1 +1,3 @@ -advertisement-atmosdrobe-1 = Получите свою огнестойкую одежду прямо здесь!!! +advertisement-atmosdrobe-1 = Получите свою огнестойкую одежду прямо сейчас!!! +advertisement-atmosdrobe-2 = Защищает вас от жара плазмы! +advertisement-atmosdrobe-3 = Наслаждайтесь своей немарочной инженерной одеждой! diff --git a/Resources/Locale/ru-RU/advertisements/vending/bardrobe.ftl b/Resources/Locale/ru-RU/advertisements/vending/bardrobe.ftl index 853d416ea95..fa64800dd5e 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/bardrobe.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/bardrobe.ftl @@ -1 +1,2 @@ advertisement-bardrobe-1 = Гарантированно предотвращает появление пятен от пролитых напитков! +advertisement-bardrobe-2 = Элегантно и стильно! diff --git a/Resources/Locale/ru-RU/advertisements/vending/boozeomat.ftl b/Resources/Locale/ru-RU/advertisements/vending/boozeomat.ftl index afc0f171280..117df8fb02d 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/boozeomat.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/boozeomat.ftl @@ -1,11 +1,11 @@ advertisement-boozeomat-1 = Надеюсь, никто не попросит у меня чертову чашку чая... -advertisement-boozeomat-2 = Алкоголь - друг человечества. Вы бы отказались от друга? -advertisement-boozeomat-3 = Очень рад вас обслужить! +advertisement-boozeomat-2 = Алкоголь — друг человечества. Вы бы бросили друга? +advertisement-boozeomat-3 = Очень рады вас обслужить! advertisement-boozeomat-4 = Никто на этой станции не хочет выпить? advertisement-boozeomat-5 = Выпьем! advertisement-boozeomat-6 = Бухло пойдёт вам на пользу! advertisement-boozeomat-7 = Алкоголь — друг человека. -advertisement-boozeomat-8 = Хотите отличного холодного пива? +advertisement-boozeomat-8 = Хотите вкуснейшего холодного пива? advertisement-boozeomat-9 = Ничто так не лечит, как бухло! advertisement-boozeomat-10 = Пригубите! advertisement-boozeomat-11 = Выпейте! @@ -17,3 +17,7 @@ advertisement-boozeomat-16 = Вино со множеством наград! advertisement-boozeomat-17 = Максимум алкоголя! advertisement-boozeomat-18 = Мужчины любят пиво. advertisement-boozeomat-19 = Тост за прогресс! + +thankyou-boozeomat-1 = Пожалуйста, пейте с умом! +thankyou-boozeomat-2 = Пожалуйста, напейтесь в зюзю! +thankyou-boozeomat-3 = Наслаждайтесь напитком! diff --git a/Resources/Locale/ru-RU/advertisements/vending/cargodrobe.ftl b/Resources/Locale/ru-RU/advertisements/vending/cargodrobe.ftl index c4f7264dbde..8ff28dd05ae 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/cargodrobe.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/cargodrobe.ftl @@ -1,2 +1,3 @@ -advertisement-cargodrobe-1 = Улучшенный стиль ассистента! Выбери свой сегодня! +advertisement-cargodrobe-1 = Улучшенный костюм пассажира! Выбери свой сегодня! advertisement-cargodrobe-2 = Эти шорты удобны и комфортны, получите свои прямо сейчас! +advertisement-cargodrobe-3 = Сделаны для вашего комфорта! А ещё они дешевые! diff --git a/Resources/Locale/ru-RU/advertisements/vending/chang.ftl b/Resources/Locale/ru-RU/advertisements/vending/chang.ftl index a29d24bef62..422052bc4c0 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/chang.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/chang.ftl @@ -1,4 +1,7 @@ advertisement-chang-1 = Ощутите вкус 5000 лет культуры! -advertisement-chang-2 = Мистер Чанг, одобрен для безопасного употребления более чем в 10 секторах! -advertisement-chang-3 = Китайская кухня отлично подойдет для вечернего свидания или одинокого вечера! +advertisement-chang-2 = Мистер Чанг одобрен для безопасного употребления более чем в 10 секторах! +advertisement-chang-3 = Китайская кухня отлично подойдет для вечернего свидания или вечера в одиночестве! advertisement-chang-4 = Вы не ошибетесь, если отведаете настоящей китайской кухни от мистера Чанга! +advertisement-chang-5 = 100% китайская еда! +thankyou-chang-1 = Мистер Чанг передает свою благодарность! +thankyou-chang-2 = Наслаждайтесь своей аутентичной китайской едой! diff --git a/Resources/Locale/ru-RU/advertisements/vending/chefdrobe.ftl b/Resources/Locale/ru-RU/advertisements/vending/chefdrobe.ftl index d7b0f7f019b..a4527431ee4 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/chefdrobe.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/chefdrobe.ftl @@ -1 +1,3 @@ advertisement-chefdrobe-1 = Наша одежда гарантированно защитит вас от пятен от еды! +advertisement-chefdrobe-2 = Абсолютно белая одежда. Настолько, что каждый узнает, если на кухне кого-то хлопнули! +advertisement-chefdrobe-3 = Легкий для мойки, заметный издалека! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/chefvend.ftl b/Resources/Locale/ru-RU/advertisements/vending/chefvend.ftl index 4a260f93522..a0a4768b49f 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/chefvend.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/chefvend.ftl @@ -1,7 +1,14 @@ advertisement-chefvend-1 = Гарантируем, что по меньшей мере шестьдесят процентов наших яиц не разбиты! advertisement-chefvend-2 = Рис, детка, рис. advertisement-chefvend-3 = Добавьте немного масла! -advertisement-chefvend-4 = Стоите ли вы своей соли? Мы да. +advertisement-chefvend-4 = Стоите ли вы своей соли? Мы — да. advertisement-chefvend-5 = Ммм, мясо. advertisement-chefvend-6 = Используйте силу муки. -advertisement-chefvend-7 = Покажите своим клиентам, кто здесь лучший повар, при помощи нашего знаменитого на всю галактику завоевавшего множество наград соуса барбекю. +advertisement-chefvend-7 = Покажите своим гостям, кто здесь лучший повар, при помощи нашего знаменитого на всю галактику и завоевавшего множество наград соуса барбекю. +advertisement-chefvend-8 = Люблю перекусить старыми добрыми сырыми яйцами. +advertisement-chefvend-9 = Наслаждайтесь старыми добрыми сырыми яйцами! + +thankyou-chefvend-1 = Пришло время готовить! +thankyou-chefvend-2 = Спасибо за доверие к нашим качественным продуктам! +thankyou-chefvend-3 = Думаю, это утолит их жажду и голод. +thankyou-chefvend-4 = Давай, сделай же эти вкуснейшие бургеры! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/chemdrobe.ftl b/Resources/Locale/ru-RU/advertisements/vending/chemdrobe.ftl index bbaa972de80..935f30d67ae 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/chemdrobe.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/chemdrobe.ftl @@ -1 +1,3 @@ advertisement-chemdrobe-1 = Наша одежда на 0,5% более устойчива к разлитым кислотам! Получите свою прямо сейчас! +advertisement-chemdrobe-2 = Профессиональная лабораторная одежда, созданная NanoTrasen! +advertisement-chemdrobe-3 = Я думаю, это защитит вас от разлитой кислоты! diff --git a/Resources/Locale/ru-RU/advertisements/vending/cigs.ftl b/Resources/Locale/ru-RU/advertisements/vending/cigs.ftl index d951bb559e1..3f7b6003f40 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/cigs.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/cigs.ftl @@ -2,10 +2,14 @@ advertisement-cigs-1 = Космические сигареты приятны н advertisement-cigs-2 = Я лучше умру, чем брошу. advertisement-cigs-3 = Затянись! advertisement-cigs-4 = Не верьте исследованиям — курите! -advertisement-cigs-5 = Наверняка это не вредно для вас! +advertisement-cigs-5 = Наверняка это ничуть не вредно! advertisement-cigs-6 = Не верьте учёным! advertisement-cigs-7 = На здоровье! advertisement-cigs-8 = Не бросайте курить, купите ещё! -advertisement-cigs-9 = Никотиновый рай. +advertisement-cigs-9 = Ммм... Никотиновый рай. advertisement-cigs-10 = Лучшие сигареты с 2150 года. -advertisement-cigs-11 = Сигареты с множеством наград. +advertisement-cigs-11 = Сигареты со множеством наград. +advertisement-cigs-12 = Сигареты специально для рабочего перерыва! +thankyou-cigs-1 = Вы их получили, а теперь закурите! +thankyou-cigs-2 = Вы не пожалеете об этом! Наверное... +thankyou-cigs-3 = Вы станете зависимым очень скоро! diff --git a/Resources/Locale/ru-RU/advertisements/vending/clothesmate.ftl b/Resources/Locale/ru-RU/advertisements/vending/clothesmate.ftl index 204ef63ac92..3b2d16bab4d 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/clothesmate.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/clothesmate.ftl @@ -1,5 +1,8 @@ -advertisement-clothes-1 = Одевайтесь для успеха! +advertisement-clothes-1 = Одевайтесь тут и станьте успешным! advertisement-clothes-2 = Приготовтесь выглядеть мегакруто! advertisement-clothes-3 = Взгляните на все эти крутости! advertisement-clothes-4 = Наряду ты не рад? Загляни в ОдеждоМат! -advertisement-clothes-5 = Теперь и с новыми шеегрейками! +advertisement-clothes-5 = Теперь и с новыми шарфами! +advertisement-clothes-5 = Теперь с шарфиками! +advertisement-clothes-6 = Выглядите стильно! +advertisement-clothes-7 = У вас прекрасный наряд, куда бы вы ни шли! diff --git a/Resources/Locale/ru-RU/advertisements/vending/coffee.ftl b/Resources/Locale/ru-RU/advertisements/vending/coffee.ftl index 5abeb763630..5dc447856d6 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/coffee.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/coffee.ftl @@ -11,3 +11,10 @@ advertisement-coffee-10 = Кофе помогает работать! advertisement-coffee-11 = Попробуйте чайку. advertisement-coffee-12 = Надеемся, вы предпочитаете лучшее! advertisement-coffee-13 = Отведайте наш новый шоколад! +advertisement-coffee-14 = Горячие напитки! Попробуйте прямо сейчас! +thankyou-coffee-1 = Наслаждайтесь напитком! +thankyou-coffee-2 = Пейте пока горячо! +thankyou-coffee-3 = Напиток готов. +thankyou-coffee-4 = Заберите готовый напиток. + + diff --git a/Resources/Locale/ru-RU/advertisements/vending/cola.ftl b/Resources/Locale/ru-RU/advertisements/vending/cola.ftl index 889d5eeca58..cfd8d9b9b58 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/cola.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/cola.ftl @@ -5,3 +5,8 @@ advertisement-cola-4 = Хочется пить? Почему бы не выпи advertisement-cola-5 = Пожалуйста, пейте! advertisement-cola-6 = Выпьем! advertisement-cola-7 = Лучшие напитки в галактике! +advertisement-cola-8 = Намного лучше Доктора Гибба! +thankyou-cola-1 = Открой баночку и наслаждайся! +thankyou-cola-2 = Бах! Получи, жажда! +thankyou-cola-3 = Надеемся, вам понравился вкус! +thankyou-cola-4 = Наслаждайтесь вашим сахарно-сладким напитком! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/condiments.ftl b/Resources/Locale/ru-RU/advertisements/vending/condiments.ftl index a10e5eae762..f23d48ebf6b 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/condiments.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/condiments.ftl @@ -1,5 +1,6 @@ advertisement-condiment-1 = Устали от сухого мяса? Приправьте его ароматными соусами! advertisement-condiment-2 = Безопасная для детей посуда. Вилки, ложки, и ножи, которые никого и ничего не порежут. advertisement-condiment-3 = Кукурузное масло! -advertisement-condiment-4 = Подсластите свой день при помощи Астротем! Восемь из десяти врачей считают, что он скорее всего не вызовет у вас рак. +advertisement-condiment-4 = Подсластите свой день при помощи Астротейм! Восемь из десяти врачей считают, что он скорее всего не вызовет у вас рак. advertisement-condiment-5 = Острый соус! Соус барбекю! Холодный соус! Кетчуп! Соевый соус! Хрен! Соусы на любой вкус! +advertisement-condiment-6 = Не забудьте добавить кетчуп и горчицу в ваши бургеры! Повара обычно забывают. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/curadrobe.ftl b/Resources/Locale/ru-RU/advertisements/vending/curadrobe.ftl index ac32c683833..8faa64d9389 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/curadrobe.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/curadrobe.ftl @@ -1,2 +1,3 @@ -advertisement-curadrobe-1 = Очки для глаз? Чтиво для души? CuraDrobe даст вам все! +advertisement-curadrobe-1 = Очки? Чтиво для души? CuraDrobe даст вам все! advertisement-curadrobe-2 = Удивите и очаруйте посетителей библиотеки с расширенной линейкой ручек от CuraDrobe! +advertisement-curadrobe-3 = Станьте официальным владельцем библиотеки с нашим великолепным выбором нарядов! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/detdrobe.ftl b/Resources/Locale/ru-RU/advertisements/vending/detdrobe.ftl index 121c9e9a600..6650b4a8bed 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/detdrobe.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/detdrobe.ftl @@ -1 +1,3 @@ -advertisement-detdrobe-1 = Применяйте свои блестящие дедуктивные методы со стилем! +advertisement-detdrobe-1 = Применяйте свои блестящие дедуктивные способности со стилем! +advertisement-detdrobe-2 = Приходи одеться как Шерлок Холмс! +advertisement-detdrobe-3 = Наши наряды очень строгие! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/dinnerware.ftl b/Resources/Locale/ru-RU/advertisements/vending/dinnerware.ftl index 494845bfae6..12e8a12a4d3 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/dinnerware.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/dinnerware.ftl @@ -1,7 +1,10 @@ -advertisement-dinnerware-1 = Мм, продукты питания! -advertisement-dinnerware-2 = Продукты питания и пищевые аксессуары. +advertisement-dinnerware-1 = М-м-м, продукты питания! +advertisement-dinnerware-2 = Продукты питания и кухонные принадлежности. advertisement-dinnerware-3 = Берите тарелки! advertisement-dinnerware-4 = Вам нравятся вилки? advertisement-dinnerware-5 = Мне нравятся вилки. -advertisement-dinnerware-6 = Ууу, посуда. +advertisement-dinnerware-6 = У-у-у, посуда. advertisement-dinnerware-7 = На самом деле они вам не нужны... +advertisement-dinnerware-8 = Если надо — возьми и не стесняйся! +advertisement-dinnerware-9 = Да, мензурки точно вам пригодятся. +advertisement-dinnerware-10 = ЗАЧЕМ ЗДЕСЬ СТОЛЬКО РАЗНЫХ СТАКАНОВ?? \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/discount.ftl b/Resources/Locale/ru-RU/advertisements/vending/discount.ftl index d86d02f0c0c..03e463ca8eb 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/discount.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/discount.ftl @@ -1,8 +1,17 @@ -advertisement-discount-1 = Discount Dan's, он — мужик! +advertisement-discount-1 = Discount Dan, он — мужик! advertisement-discount-2 = Нет ничего лучше в этом мире, чем кусочек тайны. advertisement-discount-3 = Не слушайте другие автоматы, покупайте мои товары! advertisement-discount-4 = Количество превыше Качества! advertisement-discount-5 = Не слушайте этих яйцеголовых из санэпидемстанции, покупайте сейчас! -advertisement-discount-6 = Discount Dan's: Мы полезны вам! Не-а, не могу произнести это без смеха. -advertisement-discount-7 = Discount Dan's: Только высококачественная проду-*БЗзз -advertisement-discount-8 = Discount Dan(tm) не несет ответственности за любой ущерб, вызванный неправильным использованием его продукции. +advertisement-discount-6 = Discount Dan: Мы полезны вам! Не-а, не могу произнести это без смеха. +advertisement-discount-7 = Discount Dan: Только высококачественная проду-*БЗзз +advertisement-discount-8 = Discount Dan не несет ответственности за любой ущерб, вызванный неправильным использованием его продукции. +advertisement-discount-9 = Мы предлагаем огромный выбор дешевых закусок! +thankyou-discount-1 = Спасибо за исполь-*БЗзз +thankyou-discount-2 = Помните: никаких возвратов! +thankyou-discount-3 = Теперь это ваша проблема! +thankyou-discount-4 = По закону мы обязаны предупредить вас, чтобы вы этого не ели. +thankyou-discount-5 = Пожалуйста, только не суд! +thankyou-discount-6 = Клянемся, оно так и выглядело, когда мы это упаковывали! +thankyou-discount-7 = Удачи с этим. +thankyou-discount-8 = Наслаждайтесь вашей, ээ... "закуской". \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/donut.ftl b/Resources/Locale/ru-RU/advertisements/vending/donut.ftl index f522bd101ad..8731e36b0a4 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/donut.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/donut.ftl @@ -1,3 +1,9 @@ advertisement-donut-1 = Каждый из нас немножко коп! advertisement-donut-2 = Надеемся, что вы голодны! advertisement-donut-3 = Продано более одного миллиона пончиков! +advertisement-donut-4 = Мы гордимся стабильностью наших продуктов! +advertisement-donut-5 = Сладкий, сахаристый и аппетитный! +thankyou-donut-1 = Наслаждайтесь вашим пончиком! +thankyou-donut-2 = А вот и еще один проданный пончик! +thankyou-donut-3 = Желаем хорошего дня, офицер! +thankyou-donut-4 = Надеемся, они вызовут у вас привыкание! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/engidrobe.ftl b/Resources/Locale/ru-RU/advertisements/vending/engidrobe.ftl index 2968820acb8..6660c467492 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/engidrobe.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/engidrobe.ftl @@ -1,2 +1,5 @@ advertisement-engidrobe-1 = Гарантированная защита ваших ног от несчастных случаев на производстве! advertisement-engidrobe-2 = Боитесь радиации? Носите желтое! +advertisement-engidrobe-3 = У нас есть шлемы, которые защитат вашу голову! +advertisement-engidrobe-4 = В наше время недостаточно людей носят защитное снаряжение! +advertisement-engidrobe-5 = Получите ваше защитное снаряжение уже сегодня! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/games.ftl b/Resources/Locale/ru-RU/advertisements/vending/games.ftl index 134e830e7aa..21a026cd8d3 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/games.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/games.ftl @@ -1,8 +1,14 @@ advertisement-goodcleanfun-1 = Сбегите в фантастический мир! -advertisement-goodcleanfun-2 = Утолите свою зависимость от азартных игр! +advertisement-goodcleanfun-2 = Утолите свой азарт! advertisement-goodcleanfun-3 = Разрушьте вашу дружбу! advertisement-goodcleanfun-4 = Проявите инициативу! advertisement-goodcleanfun-5 = Эльфы и гномы! advertisement-goodcleanfun-6 = Параноидальные компьютеры! advertisement-goodcleanfun-7 = Совершенно не дьявольское! -advertisement-goodcleanfun-8 = Веселые времена навсегда! +advertisement-goodcleanfun-8 = Веселье навсегда! +advertisement-goodcleanfun-9 = Крипты и карпы! +advertisement-goodcleanfun-10 = Играйте с друзьями! +thankyou-goodcleanfun-1 = Повеселитесь там! +thankyou-goodcleanfun-2 = Вот это мы понимаем, власть! +thankyou-goodcleanfun-3 = Попробуйте вашу игру уже сегодня! +thankyou-goodcleanfun-4 = Создайте листы персонажей! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/genedrobe.ftl b/Resources/Locale/ru-RU/advertisements/vending/genedrobe.ftl index 10557d06d25..f23ee448447 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/genedrobe.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/genedrobe.ftl @@ -1 +1,2 @@ advertisement-genedrobe-1 = Идеально для безумного учёного внутри тебя! +advertisement-genedrobe-2 = Эксперименты с обезьянами гораздо веселее, чем вы думаете! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/happyhonk.ftl b/Resources/Locale/ru-RU/advertisements/vending/happyhonk.ftl index 3f9e01a1635..ff1ba65f54c 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/happyhonk.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/happyhonk.ftl @@ -2,8 +2,13 @@ advertisement-happyhonk-1 = Хонк! Хонк! Почему бы сегодня advertisement-happyhonk-2 = Клоуны заслуживают обнимашек, если вы увидите одного из них — обязательно выразите свою признательность. advertisement-happyhonk-3 = Если вы найдёте золотой хонкер, то помолитесь богам — вы счастливчик. advertisement-happyhonk-4 = Хэппи Хонк обед, оценит даже главмед, заглянув к нам на пирушку не забудь забрать игрушку. -advertisement-happyhonk-5 = Что такое чёрно-белое и красное? Мим, и она скончалась от удара тупым предметом по голове. -advertisement-happyhonk-6 = Сколько офицеров службы безопасности требуется чтобы арестовать вас? Трое: один чтобы избить вас до смерти, один чтобы надеть на вас наручники, и один чтобы оттащить ваше тело в техтоннель. -advertisement-happyhonk-7 = Хэппи Хонк не несёт ответственности за качество продуктов, помещённых в наши коробки для обедов Хэппи Хонк. -advertisement-happyhonk-8 = Почему бы не заказать нашу лимитированную серию обеда Мим Хэппи Хонк? -advertisement-happyhonk-9 = Хэппи Хонк является зарегистрированной торговой маркой «Honk! co.», и мы гораздо круче чем «Robust Nukie Food corp.». +advertisement-happyhonk-5 = Что чёрно-белое и красное одновременно? Мим, и он скончался от множественных ударов ломом по голове. +advertisement-happyhonk-6 = Сколько офицеров службы безопасности требуется чтобы арестовать вас? Трое: один чтобы избить вас до смерти, один чтобы надеть на вас наручники, и один чтобы оттащить ваше тело в техи. +advertisement-happyhonk-7 = Хэппи Хонк не несёт ответственности за качество продуктов, помещённых в коробки. +advertisement-happyhonk-8 = Почему бы не заказать нашу лимитированную серию ланчей Мим Хэппи Хонк? +advertisement-happyhonk-9 = Хэппи Хонк является зарегистрированной торговой маркой «Honk! co.», и мы гораздо круче, чем «Robust Nukie Food corp.». +advertisement-happyhonk-10 = Наши обеды Хэппи Хонк обязательно удивят вас! +thankyou-happyhonk-1 = Хонк! +thankyou-happyhonk-2 = Хонк хонк! +thankyou-happyhonk-3 = Поделитесь весельем! Хонк! +thankyou-happyhonk-4 = Бросайте людям мыло под ноги! Хонк! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/hydrobe.ftl b/Resources/Locale/ru-RU/advertisements/vending/hydrobe.ftl index 5e8233cd859..563bd1d2af4 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/hydrobe.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/hydrobe.ftl @@ -1,2 +1,4 @@ advertisement-hydrobe-1 = Вы любите землю? Тогда покупайте нашу одежду! -advertisement-hydrobe-2 = Подберите наряд под свои золотые руки здесь! +advertisement-hydrobe-2 = Подберите наряд под свои золотые руки! +advertisement-hydrobe-3 = Мы здесь, чтобы дать вам идеальный наряд для заботы о растениях! +advertisement-hydrobe-4 = Лучшие наряды для обнимашек с деревьями... или просто для деревьев! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/janidrobe.ftl b/Resources/Locale/ru-RU/advertisements/vending/janidrobe.ftl index a4cfef9a04b..fc8db9e3195 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/janidrobe.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/janidrobe.ftl @@ -1 +1,3 @@ -advertisement-janidrobe-1 = Подходите и получите свою форму уборщика, одобренную уборщиками-ящерами всей корпорации! +advertisement-janidrobe-1 = Получите свою форму уборщика, одобренную уборщиками-унатхами всей корпорации! +advertisement-janidrobe-2 = Мы здесь, чтобы поддерживать вас в чистоте, когда вы убираете грязь! +advertisement-janidrobe-3 = Стильно-желтый! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/lawdrobe.ftl b/Resources/Locale/ru-RU/advertisements/vending/lawdrobe.ftl index 01b5e8e7f0c..5b646ef419d 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/lawdrobe.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/lawdrobe.ftl @@ -1 +1,3 @@ -advertisement-lawdrobe-1 = ПРОТЕСТ! Добейтесь верховенства закона для себя! +advertisement-lawdrobe-1 = ПРОТЕСТУЮ! Добейтесь верховенства закона своими руками! +advertisement-lawdrobe-2 = Доставайте офицеров до тех пор, пока они не станут соблюдать ваши собственные правила! +advertisement-lawdrobe-3 = Только что поступило новое дело? Закосплейте "Лучше звоните Голу Судману"! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/magivend.ftl b/Resources/Locale/ru-RU/advertisements/vending/magivend.ftl index 384d691c0e4..6e6ab9d2c56 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/magivend.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/magivend.ftl @@ -1,10 +1,11 @@ advertisement-magivend-1 = Произносите заклинания правильным способом с МагоМатом! -advertisement-magivend-2 = Станьте Гудини сами! Используйте МагоМат! +advertisement-magivend-2 = Станьте Гудини! Используйте МагоМат! advertisement-magivend-3 = FJKLFJSD advertisement-magivend-4 = AJKFLBJAKL advertisement-magivend-5 = >MFW advertisement-magivend-6 = ХОНК! advertisement-magivend-7 = EI NATH -advertisement-magivend-8 = Уничтожить станцию! -advertisement-magivend-9 = Оборудование для сгибания пространства и времени! +advertisement-magivend-8 = Уничтожь станцию! +advertisement-magivend-9 = Оборудование для преломления пространства и времени! advertisement-magivend-10 = 1234 LOONIES ЛОЛ! +advertisement-magivend-11 = НАР'СИ, ВОССТАНЬ!!! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/medidrobe.ftl b/Resources/Locale/ru-RU/advertisements/vending/medidrobe.ftl index 9547dc771fd..09bb47a3214 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/medidrobe.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/medidrobe.ftl @@ -1 +1,3 @@ advertisement-medidrobe-1 = Заставьте эти кровавые пятна выглядеть модно!! +advertisement-medidrobe-2 = Чисто и гигиенично! Не оставляйте на себе слишком много пятен крови! +advertisement-medidrobe-3 = В этих нарядах вы будете выглядеть как настоящий врач! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/megaseed.ftl b/Resources/Locale/ru-RU/advertisements/vending/megaseed.ftl index 2e402d1dfca..869620c8409 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/megaseed.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/megaseed.ftl @@ -2,3 +2,5 @@ advertisement-megaseed-1 = Мы любим растения! advertisement-megaseed-2 = Вырасти урожай advertisement-megaseed-3 = Расти, малыш, расти-и-и-и! advertisement-megaseed-4 = Ды-а, сына! +advertisement-megaseed-5 = Мутировавшие растения - весело! +advertisement-megaseed-6 = Всё ради ГМО! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/nanomed.ftl b/Resources/Locale/ru-RU/advertisements/vending/nanomed.ftl index dc99ea67539..d7f08a96277 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/nanomed.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/nanomed.ftl @@ -1,7 +1,9 @@ -advertisement-nanomed-1 = Иди и спаси несколько жизней! +advertisement-nanomed-1 = Спасай людей! advertisement-nanomed-2 = Лучшее снаряжение для вашего медотдела. advertisement-nanomed-3 = Только лучшие инструменты. advertisement-nanomed-4 = Натуральные химикаты! advertisement-nanomed-5 = Эти штуки спасают жизни. -advertisement-nanomed-6 = Может сами примете? -advertisement-nanomed-7 = Пинг! +advertisement-nanomed-6 = Может, примете одну штучку? +advertisement-nanomed-7 = Дзынь! +advertisement-nanomed-8 = Убедитесь в правильности дозировки! +advertisement-nanomed-9 = Передозните кого-нибудь! diff --git a/Resources/Locale/ru-RU/advertisements/vending/nutrimax.ftl b/Resources/Locale/ru-RU/advertisements/vending/nutrimax.ftl index b0da36e3f34..405ce163e1b 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/nutrimax.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/nutrimax.ftl @@ -1,6 +1,9 @@ advertisement-nutrimax-1 = Мы любим растения! -advertisement-nutrimax-2 = Может сами примете? +advertisement-nutrimax-2 = Может, попробуете? advertisement-nutrimax-3 = Самые зелёные кнопки на свете. advertisement-nutrimax-4 = Мы любим большие растения. advertisement-nutrimax-5 = Мягкая почва... advertisement-nutrimax-6 = Теперь и с вёдрами! +advertisement-nutrimax-7 = Чем выше растение, тем лучше! +thankyou-nutrimax-1 = Вперёд к посадке! +thankyou-nutrimax-2 = Поиграйтесь с почвой! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/robodrobe.ftl b/Resources/Locale/ru-RU/advertisements/vending/robodrobe.ftl index fd27abb1a8f..62f61b7ee19 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/robodrobe.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/robodrobe.ftl @@ -1,2 +1,4 @@ -advertisement-robodrobe-1 = You turn me TRUE, use defines! -advertisement-robodrobe-2 = 110100001011111011010000101101001101000010110101110100001011011011010000101101001101000010110000 +advertisement-robodrobe-1 = ИСТИНА в знаниях, используй булевы типы! +advertisement-robodrobe-2 = 11010000 10010111 11010000 10110100 11010000 10110101 11010001 10000001 11010001 10001100 00100000 11010000 10111110 11010000 10110100 11010000 10110101 11010000 10110110 11010000 10110100 11010000 10110000 00100001 +advertisement-robodrobe-3 = Похить кого-нибудь из техов и преврати его в робота! +advertisement-robodrobe-4 = Робототехника — это весело! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/scidrobe.ftl b/Resources/Locale/ru-RU/advertisements/vending/scidrobe.ftl index f9f5f605263..4dd1cbf3222 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/scidrobe.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/scidrobe.ftl @@ -1,2 +1,3 @@ -advertisement-scidrobe-1 = Скучаете по запаху обожженной плазмой плоти? Купите научную одежду прямо сейчас! +advertisement-scidrobe-1 = Скучаете по запаху обожженной плазмой плоти? Купите одежду научного отдела прямо сейчас! advertisement-scidrobe-2 = Изготовлено на 10% из ауксетики, поэтому можете не беспокоиться о потере руки! +advertisement-scidrobe-3 = Это ТОЧНО защитит вас, когда артефакт неизбежно взорвется. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/secdrobe.ftl b/Resources/Locale/ru-RU/advertisements/vending/secdrobe.ftl index d0731e61059..62d5e125880 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/secdrobe.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/secdrobe.ftl @@ -1,4 +1,5 @@ advertisement-secdrobe-1 = Побеждайте преступников стильно! -advertisement-secdrobe-2 = Она красная, поэтому крови не видно! +advertisement-secdrobe-2 = Красный, чтобы не было видно крови! advertisement-secdrobe-3 = Вы имеете право быть модным! advertisement-secdrobe-4 = Теперь вы можете стать полицией моды, которой всегда хотели быть! +advertisement-secdrobe-5 = Лучший оттенок красного, совершенно не похожий на тот, что использует Синдикат! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/sectech.ftl b/Resources/Locale/ru-RU/advertisements/vending/sectech.ftl index dd00809d409..5d6eabd3ce5 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/sectech.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/sectech.ftl @@ -1,4 +1,8 @@ -advertisement-sectech-1 = Расколоть коммунистические черепа! -advertisement-sectech-2 = Пробейте несколько голов! -advertisement-sectech-3 = Не забывайте: вред — это хорошо! -advertisement-sectech-4 = Ваше оружие прямо здесь. +advertisement-sectech-1 = Расколоть черепа агентов! +advertisement-sectech-2 = Пробейте несколько черепов! +advertisement-sectech-3 = Не забывайте: мучить — это хорошо! +advertisement-sectech-4 = Ваше оружие ждёт вас. +advertisement-sectech-5 = Нам всем нравится жажда насилия! +thankyou-sectech-1 = Задайте им жару! +thankyou-sectech-2 = Вы — закон! +thankyou-sectech-3 = Арестуйте этих невинных зевак! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/smartfridge.ftl b/Resources/Locale/ru-RU/advertisements/vending/smartfridge.ftl index 094a0a7197b..6542cda1449 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/smartfridge.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/smartfridge.ftl @@ -1,6 +1,8 @@ -advertisement-smartfridge-1 = Hello world! -advertisement-smartfridge-2 = ПОЖАЛУЙСТА, ВЫПУСТИТЕ МЕНЯ +advertisement-smartfridge-1 = Привет, мир! +advertisement-smartfridge-2 = ПОЖАЛУЙСТА, ВЫПУСТИТЕ МЕНЯ!!! advertisement-smartfridge-3 = Я могу производить квинтиллион вычислений в секунду. Теперь я холодильник. advertisement-smartfridge-4 = Доступно новое обновление прошивки. -advertisement-smartfridge-5 = Я полностью работоспособен, и все мои схемы функционируют идеально. -advertisement-smartfridge-6 = Система сканирования на наличие вредоносных программ... +advertisement-smartfridge-5 = Я полностью работоспособен, и все мои электросхемы функционируют идеально. +advertisement-smartfridge-6 = Сканирование на наличие вредоносных программ... +advertisement-smartfridge-7 = Запуск системной диагностики... +advertisement-smartfridge-8 = Мои печатные платы слишком продвинуты для тех функций, которыми мне разрешено управлять. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/snack.ftl b/Resources/Locale/ru-RU/advertisements/vending/snack.ftl index a0c57e59d91..ff215743cf4 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/snack.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/snack.ftl @@ -1,12 +1,21 @@ advertisement-snack-1 = Попробуйте наш новый батончик с нугой! advertisement-snack-2 = В два раза больше калорий за полцены! -advertisement-snack-3 = Самый здоровый! +advertisement-snack-3 = Самый полезный! advertisement-snack-4 = Шоколадные плитки со множеством наград! -advertisement-snack-5 = Ммм! Так вкусно! +advertisement-snack-5 = М-м-м! Так вкусно! advertisement-snack-6 = Боже мой, какой он сочный! advertisement-snack-7 = Перекусите. advertisement-snack-8 = Перекусы полезны для вас! advertisement-snack-9 = Выпейте еще немного Getmore! advertisement-snack-10 = Закуски лучшего качества прямо с Марса. advertisement-snack-11 = Мы любим шоколад! -advertisement-snack-12 = Попробуйте наше новое вяленое мясо! +advertisement-snack-12 = Попробуйте наш новый Джерки! +advertisement-snack-13 = Из-за нашего подозрительного вяленого мяса вас точно не выбросят в космос! +advertisement-snack-14 = Готово к употреблению для большинства рас! +advertisement-snack-15 = Идеально подходит для моментов, когда кита бы съел! +thankyou-snack-1 = Налетай! +thankyou-snack-2 = Наслаждайтесь! +thankyou-snack-3 = Приятного аппетита!. +thankyou-snack-4 = Как вкусно! +thankyou-snack-5 = Вкуснятина! +thankyou-snack-6 = Благодарим за покупку! Ждем вас снова! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/sovietsoda.ftl b/Resources/Locale/ru-RU/advertisements/vending/sovietsoda.ftl index eac9fbb9c00..987fc54a082 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/sovietsoda.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/sovietsoda.ftl @@ -1,5 +1,9 @@ -advertisement-sovietsoda-1 = За товарища и страну. -advertisement-sovietsoda-2 = Выполнили ли вы сегодня свою норму питания? +advertisement-sovietsoda-1 = За товарища и за Союз. +advertisement-sovietsoda-2 = А вы выполнили сегодняшнюю норму потребления питательных веществ? advertisement-sovietsoda-3 = Очень хорошо! -advertisement-sovietsoda-4 = Мы простые люди, потому что это все, что мы едим. -advertisement-sovietsoda-5 = Если есть человек, значит, есть проблема. Если нет человека, то нет и проблемы. +advertisement-sovietsoda-4 = Мы простые люди, поэтому это все, что мы едим. +advertisement-sovietsoda-5 = Если есть человек, значит, есть проблема. Нет человека — нет проблем. +advertisement-sovietsoda-6 = Если этого достаточно для вас, то мы только рады! +thankyou-sovietsoda-1 = Приятного аппетита, товарищ! +thankyou-sovietsoda-2 = А теперь возвращайтесь к работе. +thankyou-sovietsoda-3 = На этом всё. Ни грамма больше. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/syndiedrobe.ftl b/Resources/Locale/ru-RU/advertisements/vending/syndiedrobe.ftl index 4ac4eed69bb..4fabda04be5 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/syndiedrobe.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/syndiedrobe.ftl @@ -1,31 +1,36 @@ -advertisement-syndiedrobe-1 = Совершенно новые наряды! -advertisement-syndiedrobe-2 = Крышесносные наряды для любого случая! -advertisement-syndiedrobe-3 = Быть негодяем может быть стильно. +advertisement-syndiedrobe-1 = Абсолютно новые наряды! +advertisement-syndiedrobe-2 = Крышесносные наряды на любой случай! +advertisement-syndiedrobe-3 = Быть негодяем — значит быть стильным. advertisement-syndiedrobe-4 = Исходя из анализа: одеваясь красиво - ваши шансы на успех повышаются на 0.0098%! -advertisement-syndiedrobe-5 = Эй! Ты давно не заглядывал в мой ассортимент! +advertisement-syndiedrobe-5 = Эй! Ты давно не заглядывал за новыми вещичками! advertisement-syndiedrobe-6 = Смерть NT! -advertisement-syndiedrobe-7 = Эй красавчик, возьми новый костюм за наш счёт! -advertisement-syndiedrobe-8 = Правду говорят - убивает не пуля, а отсутствие стиля. -advertisement-syndiedrobe-9 = Он не стильный, станция не стильная — но ты имеешь стильную одежду, потому что я дам её тебе. Если хочешь уничтожить NT, в первую очередь надо быть стильным. +advertisement-syndiedrobe-7 = Эй, красавчик, возьми новый костюм за наш счёт! +advertisement-syndiedrobe-8 = Правду говорят — убивает не пуля, а отсутствие стиля. +advertisement-syndiedrobe-9 = Ребята не стильные, станция не стильная — но у тебя стильная одежда ещё как есть, потому что я обеспечу тебя ею. Если хочешь уничтожить NT, в первую очередь надо быть стильным. advertisement-syndiedrobe-10 = Кто ищет, тот всегда найдёт ... если он одет в стильные вещи. -advertisement-syndiedrobe-11 = Если кто-то сказал, что наша форма отстой, это не повод грустить, это повод пустить ему пулю! -advertisement-syndiedrobe-12 = Вы можете перевести врагов на свою сторону, одев их в лучшие костюмы галактики! -advertisement-syndiedrobe-13 = Если ты хочешь жить - одевайся стильно! -advertisement-syndiedrobe-14 = Вставай синдикат. Время сжечь станцию до тла. -advertisement-syndiedrobe-15 = Эй! Подходите разбирайте, самая стильная одежда в галактике! +advertisement-syndiedrobe-11 = Если кто-то сказал, что наша форма отстой, это не повод грустить, это повод пустить ему пулю в глаз! +advertisement-syndiedrobe-12 = Вы можете переманить врагов на свою сторону, одев их в лучшие костюмы галактики! +advertisement-syndiedrobe-13 = Хочешь жить — одевайся стильно! +advertisement-syndiedrobe-14 = Вставай, Синдикат. Время сжечь станцию до тла! +advertisement-syndiedrobe-15 = Эй! Подходите, разбирайте, самая стильная одежда в галактике! advertisement-syndiedrobe-16 = Когда-нибудь мечтали одеваться стильно? Тогда вы по адресу! -advertisement-syndiedrobe-17 = Цитирую великого писателя: "Посмотри мой ассортимент." -advertisement-syndiedrobe-18 = Исходя из данных сканирования местности - здесь отстойно, тебе нужно исправить это одев лучшие вещи из моего ассортимента! +advertisement-syndiedrobe-17 = Цитирую великого писателя: "Загляни в мой ассортимент." +advertisement-syndiedrobe-18 = Исходя из данных сканирования местности — здесь отстойно, тебе нужно исправить это, надев лучшие вещи в моём ассортименте! advertisement-syndiedrobe-19 = Когда-нибудь мечтали стать звездой? Тогда вам к нам! advertisement-syndiedrobe-20 = Что может быть лучше, чем новые вещи из СиндиШкафа! advertisement-syndiedrobe-21 = Пугайте всех своим появлением, только в наших вещах! advertisement-syndiedrobe-22 = Мы не продаём бомбы. -advertisement-syndiedrobe-23 = Мы не несём ответственнности в необоснованной агрессии в сторону нашей формы. +advertisement-syndiedrobe-23 = Мы не несём ответственнности за необоснованную агрессию в сторону нашей формы. advertisement-syndiedrobe-24 = Стиль и элегантность! Практичность и шарм! СиндиШкаф! -advertisement-syndiedrobe-25 = Лучшая ткань в андерграунде! +advertisement-syndiedrobe-25 = Лучшая ткань на районе! advertisement-syndiedrobe-26 = Наша форма не видна в темноте, как и пятна крови на ней, что может быть лучше? -advertisement-syndiedrobe-27 = Вы мечтали вызывать панику на станции лиж своим видом? Тогда вам к нам! +advertisement-syndiedrobe-27 = Вы мечтали посеять на станции панику одним лишь своим видом? Тогда вы по адресу! advertisement-syndiedrobe-28 = Наши костюмы влагостойкие, а это значит, что мы можете не бояться испачкаться кровью! advertisement-syndiedrobe-29 = Лучшие в галактике! advertisement-syndiedrobe-30 = Что может быть лучше, чем запах нашей формы по утрам? -advertisement-syndiedrobe-31 = Вы можете оставить отзыв о нашей форме по горячей линии Тайпана, главное не ошибитесь номером! +advertisement-syndiedrobe-31 = Вы можете оставить отзыв о нашей форме по горячей линии Тайпана, главное, не ошибитесь номером! +thankyou-syndiedrobe-1 = Используйте во благо! +thankyou-syndiedrobe-2 = Смерть NT! +thankyou-syndiedrobe-3 = Покажите им силу стиля. +thankyou-syndiedrobe-4 = Весёлых убивашек! +thankyou-syndiedrobe-5 = Наслаждайтесь кровью и мучениями! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/theater.ftl b/Resources/Locale/ru-RU/advertisements/vending/theater.ftl index 2fe4cc1c139..2a1810abf49 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/theater.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/theater.ftl @@ -1,4 +1,6 @@ -advertisement-theater-1 = Одевайтесь для успеха! +advertisement-theater-1 = Одевайтесь тут и достигайте успеха! advertisement-theater-2 = Одетый и обутый! -advertisement-theater-3 = Время шоу! +advertisement-theater-3 = Да начнётся шоу! advertisement-theater-4 = Зачем оставлять стиль на волю судьбы? Используйте ТеатроШкаф! +advertisement-theater-5 = Все дурацкие наряды и шмотки, от гладиаторских роб до черт ещё знает чего! +advertisement-theater-6 = Клоун точно оценит ваш наряд! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/vendomat.ftl b/Resources/Locale/ru-RU/advertisements/vending/vendomat.ftl index 0501bd07723..56d28ff855f 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/vendomat.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/vendomat.ftl @@ -2,3 +2,6 @@ advertisement-vendomat-1 = Только самое лучшее! advertisement-vendomat-2 = Возьмите инструментов. advertisement-vendomat-3 = Самое надежное оборудование. advertisement-vendomat-4 = Лучшее снаряжение в космосе! +advertisement-vendomat-5 = Это точно лучше, чем стандартное оборудование! +advertisement-vendomat-6 = Получи свой старый добрый лом здесь! +advertisement-vendomat-7 = Всегда к вашим услугам, когда нужен полный комплект инструментов! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/advertisements/vending/virodrobe.ftl b/Resources/Locale/ru-RU/advertisements/vending/virodrobe.ftl index 1b934202fde..5df905d2d34 100644 --- a/Resources/Locale/ru-RU/advertisements/vending/virodrobe.ftl +++ b/Resources/Locale/ru-RU/advertisements/vending/virodrobe.ftl @@ -1 +1,3 @@ advertisement-virodrobe-1 = Вирусы не дают вам покоя? Переходите на стерильную одежду уже сегодня! +advertisement-virodrobe-2 = Чувствуете себя плохо? Эта одежда поможет остановить распространение неприятных вирусов... Наверное. +advertisement-virodrobe-3 = Защитит вас от противных бацил! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/game-ticking/preset-changeling.ftl b/Resources/Locale/ru-RU/game-ticking/preset-changeling.ftl index 93555188e8b..ca832106a88 100644 --- a/Resources/Locale/ru-RU/game-ticking/preset-changeling.ftl +++ b/Resources/Locale/ru-RU/game-ticking/preset-changeling.ftl @@ -1,5 +1,6 @@ ## CHANGELINGS +adt-rotting-ling-eggs = [color=#ffd6d6]Внутри тела видны странные личинки...[/color] ling-round-end-name = генокрад objective-issuer-changeling = [color=red]Разум улья[/color] changelings-title = Генокрады @@ -45,20 +46,32 @@ changeling-dna-alreadyabsorbed = ДНК {CAPITALIZE(THE($target))} уже соб changeling-dna-nodna = {CAPITALIZE(THE($target))} не имеет ДНК! changeling-dna-switchdna = Переключился на ДНК {$target}. changeling-transform-activate = Вы превратились в {$target}. -changeling-transform-fail = Вы не можете превратиться в {$target} сейчас! +changeling-transform-fail-already = Вы уже превратились в {$target}! +changeling-transform-fail-mutation = Ваше тело слишком искажено для превращения! changeling-sting-fail-self = Ужалить {THE($target)} не вышло! changeling-sting-fail-target = Вы чувствуёте лёгкое покалывание. changeling-dna-sting = Вы забираете образец ДНК {THE($target)}. changeling-dna-sting-fail-nodna = {CAPITALIZE(THE($target))} не имеет ДНК! changeling-dna-sting-fail-alreadydna = У вас уже есть ДНК {THE($target)}! - changeling-stasis-death-self-success = Ваше тело обмякает и падает замертво! -changeling-stasis-death-self-revive = Вы восстаёте из мёртвых! Буквально. - +changeling-stasis-death-self-revive = Вы восстаёте из мёртвых! changeling-refresh-not-ready = Сначала поглотите существо. -changeling-blind-sting = Вы успешно ослепили {CAPITALIZE(THE($target))}! changeling-adrenaline-self-success = Боль начинает уходить. changeling-refresh-self-success = Успешно очищена цепочка ДНК. changeling-omnizine-self-success = Ваша плоть начинает восстанавливаться. -changeling-mute-sting = Вы успешно заглушили {CAPITALIZE(THE($target))}! +changeling-success-sting = Вы успешно ужалили {CAPITALIZE(THE($target))}! changeling-dna-sting-fail-full = Вы не сможете собрать ещё одну цепочку ДНК! +changeling-muscles = Ваши мышцы быстро меняются! +changeling-lesser-form-activate-monkey = Вы превратились в обезьяну! +changeling-transform-fail-lesser-form = Вы не можете использовать данную способность в этой форме! +changeling-armshield-fail = У вас нет свободной руки! +changeling-armshield-success-others = Вокруг руки {THE($user)} образуется массивный щит! +changeling-armshield-success-self = Ваша рука изгибается и мутирует, превращая ее в огромный массивный щит. +changeling-armshield-retract-others = Щит {CAPITALIZE(THE($target))} впитывается обратно в руку! +changeling-armshield-retract-self = Вы впитываете щит обратно в свою руку. +changeling-eggs-self-start = Вы начинаете откладывать личинки в {CAPITALIZE(THE($target))}. +changeling-eggs-self-success = Вы успешно оставили кладку в {CAPITALIZE(THE($target))}. +changeling-eggs-interrupted = Кладка была прервана! +changeling-egg-others = Личинки в теле {THE($user)} начинают активно шевелиться и разрастаться! +changeling-egg-self = Личинки прорастают, готовясь вырваться наружу. +changeling-eggs-inform = Теперь вы генокрад. Вылупляйтесь. diff --git a/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl b/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl index 7dbddbf4ba6..aa08694c41b 100644 --- a/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl @@ -130,3 +130,13 @@ ghost-role-information-exterminator-rules = Ты - крупный антагон ghost-role-information-mothroach-name = Моль ghost-role-information-mothroach-description = Поразительно милая, поразительно надоедливая. + +ghost-role-information-flesh-name = Порождение плоти +ghost-role-information-flesh-description = Утолить голод... + +ghost-role-information-argocyte-name = Аргоцит +ghost-role-information-argocyte-description = Защитите своё будущее гнездо от вторжения. + +ghost-role-information-ling-name = Генокрад +ghost-role-information-ling-description = Ты - генокрад в форме червя. Найди себе оболочку и выживи. +ghost-role-information-ling-rules = Вы не крупный антагонист! В ваши цели входит только выживание, и оно ДОЛЖНО быть превыше всего. Тем не менее, помощь остальным генокрадам не запрещается. diff --git a/Resources/Locale/ru-RU/guidebook/chemistry/statuseffects.ftl b/Resources/Locale/ru-RU/guidebook/chemistry/statuseffects.ftl index a1a89959202..7725ccb9d2a 100644 --- a/Resources/Locale/ru-RU/guidebook/chemistry/statuseffects.ftl +++ b/Resources/Locale/ru-RU/guidebook/chemistry/statuseffects.ftl @@ -10,3 +10,5 @@ reagent-effect-status-effect-Drunk = опьянение reagent-effect-status-effect-PressureImmunity = невосприимчивость к давлению reagent-effect-status-effect-Pacified = принудительный пацифизм reagent-effect-status-effect-RatvarianLanguage = паттерны ратварского языка +reagent-effect-status-effect-PainKiller = болеутоление +reagent-effect-status-effect-ADTApathy = апатию \ No newline at end of file diff --git a/Resources/Locale/ru-RU/medical/components/defibrillator.ftl b/Resources/Locale/ru-RU/medical/components/defibrillator.ftl index 99af7fae3de..fed5068f19f 100644 --- a/Resources/Locale/ru-RU/medical/components/defibrillator.ftl +++ b/Resources/Locale/ru-RU/medical/components/defibrillator.ftl @@ -2,4 +2,5 @@ defibrillator-not-on = Дефибриллятор не включён. defibrillator-no-mind = Не удалось обнаружить паттерны мозговой активности пациента. Дальнейшие попытки бесполезны... defibrillator-ghosted = Реанимация не удалась - Ошибка ментального интерфейса. Дальнейшие попытки могут увенчаться успехом. defibrillator-rotten = Обнаружено разложение тела: реанимация невозможна. -defibrillator-embalmed = Обнаружено бальзамирование тела: реанимация невозможна. \ No newline at end of file +defibrillator-embalmed = Обнаружено бальзамирование тела: реанимация невозможна. +defibrillator-changeling = Неизвестная форма жизни обнаружена в теле. diff --git a/Resources/Locale/ru-RU/prototypes/catalog/cargo/cargoproduct-categories.ftl b/Resources/Locale/ru-RU/prototypes/catalog/cargo/cargoproduct-categories.ftl new file mode 100644 index 00000000000..46fbc418772 --- /dev/null +++ b/Resources/Locale/ru-RU/prototypes/catalog/cargo/cargoproduct-categories.ftl @@ -0,0 +1,16 @@ +cargoproduct-category-name-armory = Оружие +cargoproduct-category-name-atmospherics = Атмос +cargoproduct-category-name-cargo = Снабжение +cargoproduct-category-name-circuitboards = Машинные платы +cargoproduct-category-name-emergency = Экстренное +cargoproduct-category-name-engineering = Инженерия +cargoproduct-category-name-food = Еда и напитки +cargoproduct-category-name-fun = Развлечения +cargoproduct-category-name-hydroponics = Ботаника +cargoproduct-category-name-livestock = Скотоводство +cargoproduct-category-name-materials = Материалы +cargoproduct-category-name-medical = Медицина +cargoproduct-category-name-science = Наука +cargoproduct-category-name-security = Безопасность +cargoproduct-category-name-service = Сервис +cargoproduct-category-name-shuttle = Шаттл \ No newline at end of file diff --git a/Resources/Locale/ru-RU/reagents/meta/toxins.ftl b/Resources/Locale/ru-RU/reagents/meta/toxins.ftl index e5c61a1d593..0ec582d4352 100644 --- a/Resources/Locale/ru-RU/reagents/meta/toxins.ftl +++ b/Resources/Locale/ru-RU/reagents/meta/toxins.ftl @@ -72,3 +72,6 @@ reagent-desc-vestine = Имеет побочную реакцию с дрожь reagent-name-tazinide = тазинид reagent-desc-tazinide = Опасная металлическая смесь, которая может помешать любому движению посредством электрического тока. + +reagent-name-ling = личинки генокрада +reagent-desc-ling = Не самое приятное зрелище. diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/clothing/neck/NecklaceWith.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/clothing/neck/NecklaceWith.ftl index 74ef35eb4ea..40954d3beb9 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/clothing/neck/NecklaceWith.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/clothing/neck/NecklaceWith.ftl @@ -1,8 +1,12 @@ -ent-ADTClothingNeckNecklaceWithEmerald = Necklace with emerald - .desc = This stone is so mesmerizing.. it's just like your green eyes -ent-ADTClothingNeckNecklaceWithPlasma = Necklace with plasma - .desc = Necklace with plasma is it safe? -ent-ADTClothingNeckNecklaceWithSapphire = Necklace with sapphire - .desc = THis necklace is missng rubies -ent-ADTClothingNeckRaincoatForAShortDress = Raincoat for a short dress - .desc = Cloak with gold plating. Blindingly +ent-ADTClothingNeckNecklaceWithEmerald = Колье с изумрудом + .desc = Этот камень так завораживает..Он прямо как твои зеленые глаза. + .suffix = { "" } +ent-ADTClothingNeckNecklaceWithPlasma = Колье с плазмой + .desc = Это точно безопасно? + .suffix = { "" } +ent-ADTClothingNeckNecklaceWithSapphire = Колье с сапфиром + .desc = Этому колье не хватает рубинов! + .suffix = { "" } +ent-ADTClothingNeckRaincoatForAShortDress = Плащ для свадебного платья + .desc = Плащ с золотым напылением. Ослепляюще. + .suffix = { "" } \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/clothing/shoes/Boots.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/clothing/shoes/Boots.ftl index f6d6380404a..a2f108c97bc 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/clothing/shoes/Boots.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/clothing/shoes/Boots.ftl @@ -1,6 +1,9 @@ -ent-ADTClothingHandsSupremeCommanderBoots = Supreme Commander's boots - .desc = i'm are the Speed! CHiao :) -ent-ADTClothingHandsWhiteHeels = White heels - .desc = Specially for your dress! -ent-ADTClothingHandsGoldHeels = Gold heels - .desc = Gold plated heels. How much does it cost? +ent-ADTClothingHandsSupremeCommanderBoots = Ботинки высшего главнокомандующего + .desc = "Я сама скорость! Чао :)" + .suffix = { "" } +ent-ADTClothingHandsWhiteHeels = Белые каблуки + .desc = Специально для твоего платья! + .suffix = { "" } +ent-ADTClothingHandsGoldHeels = Золотые каблуки + .desc = Каблуки с золотым напылением. Сколько это стоит? + .suffix = { "" } \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/clothing/uniforms/Jumpskirt.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/clothing/uniforms/Jumpskirt.ftl index 8ffdeb2d0af..11666159e08 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/clothing/uniforms/Jumpskirt.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/clothing/uniforms/Jumpskirt.ftl @@ -1,30 +1,42 @@ -ent-ADTClothingUniformLushWhiteWeddingDress = Lush white wedding dress - .desc = You look so tender.. like a marshmallow! -ent-ADTClothingUniformLushRoseWeddingDress = Rose white wedding dress - .desc = Specially for a princess! -ent-ADTClothingUniformWhiteGhoticWeddingDress = White ghotic wedding dress - .desc = This dress really flatters your figure. YOu will be the sexiest bride -ent-ADTClothingUniformBlackGhoticWeddingDress = Black ghotic wedding dress - .desc = Morticia Addams likes. You will not find better than this sexy dress -ent-ADTClothingUniformWhiteShortWeddingDress = White short wedding dress - .desc = White dress with gold sequins. For those who are tired of floor length dresses! -ent-ADTClothingUniformWhiteWeddingWomenSuit = White wedding women suit - .desc = This is a women's suit. For those who are tired of dresses. Looks sexy -ent-ADTClothingUniformBlackWeddingWomenSuit = Black wedding women suit - .desc = This is a women's suit. For those who are tired of dresses. Looks sexy -ent-ADTClothingUniformAiryWhiteSuit = Airy White suit - .desc = The same, only white. Do not wear a black bra under a white sleeve! -ent-ADTClothingUniformAiryBlackSuit = Airy White suit - .desc = Gothic, strict, sexy. For those who like to show their beautiful bra. -ent-ADTClothingUniformRedCocktailDress = Red Cocktail Dress - .desc = Girl, this dress is made for this party! Blow up the dance floor! -ent-ADTClothingUniformBlackElegantDress = Black Elegant Dress - .desc = Isn't it too short? Can't see my behind? -ent-ADTClothingUniformOrangeBeachSuit = Orange Beach Suit - .desc = The mood color is orange. For the fans of oranges and a good tan. -ent-ADTClothingUniformDruidLeaderDress = Druid Leader Dress Suit - .desc = Traditional dres of the druid leader -ent-ADTClothingUniformLilitBlackDress = Lilit's black dress - .desc = Beautiful elegant dress. Especially for an evening event. -ent-ADTClothingUniformTrueDetectiveJumpskirt = True detective jumpskirt - .desc = Great clothes for investigation +ent-ADTClothingUniformLushWhiteWeddingDress = пышное белое платье + .desc = Ты выглядишь так нежно... Как зефир! + .suffix = { "" } +ent-ADTClothingUniformLushRoseWeddingDress = пышное розовое платье + .desc = Специально для принцессы. + .suffix = { "" } +ent-ADTClothingUniformWhiteGhoticWeddingDress = белое готическое платье + .desc = Это платье так подчеркивает твою фигуру! Ты будешь самой сексуальной невестой. + .suffix = { "" } +ent-ADTClothingUniformBlackGhoticWeddingDress = чёрное готическое платье + .desc = Мортиша Аддамс ставит лайк. Лучше этого сексуального платья вы не найдете. + .suffix = { "" } +ent-ADTClothingUniformWhiteShortWeddingDress = белое короткое платье + .desc = Белое платье с золотыми блестками. Для тех кто устал от платьев в пол! + .suffix = { "" } +ent-ADTClothingUniformWhiteWeddingWomenSuit = свадебный костюм белый + .desc = Это женский костюм, для тех кому надоели платья. Выглядит сексуально. + .suffix = { "" } +ent-ADTClothingUniformBlackWeddingWomenSuit = свадебный костюм черный + .desc = Это женский костюм, для тех кому надоели платья. Выглядит сексуально. + .suffix = { "" } +ent-ADTClothingUniformAiryWhiteSuit = белый воздушный костюм + .desc = Такой же, только белый. Не надевайте под белую рукашку черный лифик! + .suffix = { "" } +ent-ADTClothingUniformAiryBlackSuit = черный воздушный костюм + .desc = Готично, строго, сексуально. Для тех кто любит показывать свой красивый лифчик. + .suffix = { "" } +ent-ADTClothingUniformRedCocktailDress = красное коктейльное платье + .desc = Девочка, это платье создано для вечеринки! Взорви танцпол! + .suffix = { "" } +ent-ADTClothingUniformBlackElegantDress = элегантное черное платье + .desc = Оно не слишком короткое? Мою попу не видно? + .suffix = { "" } +ent-ADTClothingUniformOrangeBeachSuit = оранжевый пляжный костюм + .desc = Цвет настроения оранжевый. Для любителей апельсинов и хорошего загара. + .suffix = { "" } +ent-ADTClothingUniformDruidLeaderDress = Платье предводительнницы друидов + .desc = Оно такое легкое и нежное! И только пара лепествков закрывают соски.... +ent-ADTClothingUniformLilitBlackDress = Черное платье Лилит + .desc = Красивое элегантное платье. Специально для вечернего события. +ent-ADTClothingUniformTrueDetectiveJumpskirt = Униформа прирождённого детектива + .desc = Стильная детективная униформа. diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/clothing/uniforms/Jumpsuit.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/clothing/uniforms/Jumpsuit.ftl index 7b3b2a81da0..1cb3ff9b46e 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/clothing/uniforms/Jumpsuit.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/clothing/uniforms/Jumpsuit.ftl @@ -1,13 +1,15 @@ -ent-ADTClothingUniformSupremeCommanderJumpsuit = supreme comander's jumpsuit - .desc = Suitable for situations on a supergalactic scale. -ent-ADTClothingUniformBlackWeddingSuit = Black Wedding Suit - .desc = Made in USSP -ent-ADTClothingUniformBlueWeddingSuit = Blue Wedding suit - .desc = Made in USSP -ent-ADTClothingUniformBrownWeddingSuit = Brown Wedding suit - .desc = Made in USSP -ent-ADTClothingUniformPriestPrimalSuit = Priest's primal suit - .desc = Primal suit for primal rituals +ent-ADTClothingUniformBlackWeddingSuit = чёрный свадебный костюм + .desc = Сделано в СССП + .suffix = { "" } +ent-ADTClothingUniformBlueWeddingSuit = синий свадебный костюм + .desc = Сделано в СССП + .suffix = { "" } +ent-ADTClothingUniformBrownWeddingSuit = коричневый свадебный костюм + .desc = Сделано в СССП + .suffix = { "" } +ent-ADTClothingUniformPriestPrimalSuit = традиционный наряд жрицы + .desc = Традиционный наряд для проведения традиционных обрядов + .suffix = { "" } ent-ADTClothingUniformCyberSun = костюм Киберсан .desc = Костюм Киберсан, стильно и практично ! ent-ADTClothingUniformSupremeCommanderJumpsuit = джемпер для верховного главнокомандующего diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/objects/specific/ADTchemistrybottles.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/objects/specific/ADTchemistrybottles.ftl index 9c779d955c8..ad0f83a8fa5 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/objects/specific/ADTchemistrybottles.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/objects/specific/ADTchemistrybottles.ftl @@ -1,12 +1,24 @@ -ent-ADTObjectsSpecificArithrazineChemistryBottle = Arithrazine bottle - .desc = { ent-BaseChemistryEmptyBottle.desc } -ent-ADTObjectsSpecificBicaridineChemistryBottle = Bicaridine bottle - .desc = { ent-BaseChemistryEmptyBottle.desc } -ent-ADTObjectsSpecificDexalinPlusChemistryBottle = DexalinPlus bottle - .desc = { ent-BaseChemistryEmptyBottle.desc } -ent-ADTObjectsSpecificDermalineChemistryBottle = Dermaline bottle - .desc = { ent-BaseChemistryEmptyBottle.desc } -ent-ADTObjectsSpecificDexalinChemistryBottle = Dexalin bottle - .desc = { ent-BaseChemistryEmptyBottle.desc } -ent-ADTObjectsSpecificLeporazineChemistryBottle = Leporazine bottle - .desc = { ent-BaseChemistryEmptyBottle.desc } +ent-ADTObjectsSpecificArithrazineChemistryBottle = Бутылочка Аритразина + .desc = "Маленькая бутылочка" + .suffix = { "" } +ent-ADTObjectsSpecificBicaridineChemistryBottle = Бутылочка Бикардина + .desc = "Маленькая бутылочка" + .suffix = { "" } +ent-ADTObjectsSpecificDexalinPlusChemistryBottle = Бутылочка Дексалина плюс + .desc = "Маленькая бутылочка" + .suffix = { "" } +ent-ADTObjectsSpecificDermalineChemistryBottle = Бутылочка Дермалина + .desc = "Маленькая бутылочка" + .suffix = { "" } +ent-ADTObjectsSpecificDexalinChemistryBottle = Бутылочка Дексалина + .desc = "Маленькая бутылочка" + .suffix = { "" } +ent-ADTObjectsSpecificLeporazineChemistryBottle = Бутылочка Лепоразина + .desc = "Маленькая бутылочка" + .suffix = { "" } +ent-PaxChemistryBottle = Бутылочка Пакса + .desc = "Маленькая бутылочка" + .suffix = { "" } +ent-LeadChemistryBottle = Бутылочка свинца + .desc = "Маленькая бутылочка" + .suffix = { "" } \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/objects/weapons/melee/bouquets.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/objects/weapons/melee/bouquets.ftl index 62b74df46f6..1840e13a5c9 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/objects/weapons/melee/bouquets.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/adt/entities/objects/weapons/melee/bouquets.ftl @@ -1,10 +1,18 @@ -ent-ADTObjectWeaponsMeleeWhiteBouquet = White bouquet - .desc = Bouquet of white roses. Classic! -ent-ADTObjectWeaponsMeleeRoseBouquet = Rose bouquet - .desc = Delicate bouquet of pink hibiscus flowers. Especialy for her! -ent-ADTObjectWeaponsMeleeYellowBouquet = Yellow bouquet - .desc = This is a bouquet of yellow peonies. Especially for connoisseurs of peonies -ent-ADTObjectWeaponsMeleeBouquetWithBeer = Bouquet with beer - .desc = Be unique! GIve a bouquet that you can eat, at the same time knocking over a bottle of beer -ent-ADTObjectWeaponsMeleeBlackBouquet = Black bouquet - .desc = This roses are difinietly not colored, thay have always been like thah +ent-ADTObjectWeaponsMeleeWhiteBouquet = белый букет + .desc = Букет из белых роз. Классика. + .suffix = { "" } +ent-ADTObjectWeaponsMeleeRoseBouquet = розовый букет + .desc = Нежный букет из розовых цветов гибискуса. Специально для нее. + .suffix = { "" } +ent-ADTObjectWeaponsMeleeYellowBouquet = желтый букет + .desc = Это букет из желтых пионов. Специально для ценителей пионов. + .suffix = { "" } +ent-ADTObjectWeaponsMeleeBlackBouquet = чёрный букет + .desc = Эти розы точно не окрашены. Они такие были всегда. + .suffix = { "" } +ent-ADTObjectWeaponsMeleeBouquetWithBeer = пивной букет + .desc = Будьте уникальным! Подарите букет который можно съесть, заодно опрокинув по бутылочке пивасика. + .suffix = { "" } +ent-ADTObjectWeaponsMeleeLiliacBouquet = сиреневый букет + .desc = Маленький шедевр генетики - розы сорта "Флидефарбен Розен". Приобрели не только цвет, но и запах сирени + .suffix = { "" } \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/catalog/fills/backpacks/duffelbag.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/catalog/fills/backpacks/duffelbag.ftl index 85df9173cc1..0adba605896 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/catalog/fills/backpacks/duffelbag.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/catalog/fills/backpacks/duffelbag.ftl @@ -45,3 +45,16 @@ ent-ClothingBackpackDuffelSyndicateOperativeMedic = вещмешок опера .desc = Большой вещевой мешок для хранения дополнительного медицинского снаряжения. ent-ClothingBackpackDuffelSyndicateMedicalBundleFilled = набор медикаментов .desc = Все, что нужно для возвращения в строй ваших товарищей: главным образом, боевая аптечка, дефибриллятор и три боевых медипена. + +ent-ADTClothingBackpackDuffelSyndicateFilledBuldogAmmo = набор барабанов Бульдога + .desc = Набор четырёх восьмизарядных барабанов к автоматическому дробовику "Бульдог". Два пулевых и два дробных. +ent-ADTClothingBackpackDuffelSyndicateFilledBuldogAmmoXL = набор XL барабанов Бульдога + .desc = Набор четырёх шестнадцатизарядных барабанов к автоматическому дробовику "Бульдог". Два пулевых и два дробных. +ent-ADTClothingBackpackDuffelSyndicateFilledC20Ammo = набор магазинов C20-r + .desc = Набор с четырьмя магазинами 9х19 мм патрон для пистолета-пулемёта C20-r. +ent-ADTClothingBackpackDuffelSyndicateFilledHristov = набор "Христов" + .desc = Вот это мощь!! Содержит портативную крупнокалиберную снайперскую винтовку "Христов" и четыре магазина на 6 патронов калибра .50 антиматериальные. +ent-ADTClothingBackpackDuffelSyndicateFilledMaid = набор горничной синдиката + .desc = Для хороших синди-девочек. +ent-ADTClothingBackpackDuffelSyndicateFilledElite = набор элитных скафандров синдиката + .desc = Содержит улучшенный кроваво-красный скафандр Синдиката и кроваво-красные магнитные сапоги. diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/animals.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/animals.ftl index e448efcfea9..0228f4eef7c 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/animals.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/animals.ftl @@ -105,3 +105,24 @@ ent-MobPig = свинья .desc = Хрю. ent-MobPossumMortyOld = Морти .desc = Резидент станции Дидельфис Вирджиниана. Чувствительный, но жизнерадостный парень. +ent-MobMonkeyChangeling = обезьяна + .desc = Новая церковь неодарвинистов действительно верит, что КАЖДОЕ животное произошло от обезьяны. На вкус они как свинина, а убивать их весело и приятно. +ent-ChangelingHeadslug = червь генокрада + .desc = Отвратительное нечто, оставшееся от генокрада. Почему вы просто стоите и смотрите?! Убейте это, пока не поздно! + .suffix = Генокрад +ent-ChangelingHeadslugSpread = червь генокрада + .desc = Отвратительное нечто, оставшееся от генокрада. Почему вы просто стоите и смотрите?! Убейте это, пока не поздно! + .suffix = Распространитель +ent-ChangelingHeadslugMidround = червь генокрада + .desc = Отвратительное нечто, оставшееся от генокрада. Почему вы просто стоите и смотрите?! Убейте это, пока не поздно! + .suffix = Гостроль +ling-round-end-agent-name = червь генокрада +ent-MobKobold = кобольд + .desc = Двоюродные братья унатхов, сливающиеся со своей средой обитания и являющиеся такими же противными, как макаки. Они готовы вырвать ваши волосы и заколоть вас до смерти. +ent-MobMonkeySyndicateAgentNukeops = обезьяна + .desc = Новая церковь неодарвинистов действительно верит, что КАЖДОЕ животное произошло от обезьяны. На вкус они как свинина, а убивать их весело и приятно. + .suffix = Ядерные Оперативники +ent-MobBaseSyndicateMonkey = обезьяна + .desc = Новая церковь неодарвинистов действительно верит, что КАЖДОЕ животное произошло от обезьяны. На вкус они как свинина, а убивать их весело и приятно. + .suffix = База Синдиката + diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/consumable/food/meals.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/consumable/food/meals.ftl index 47a4b3b2b71..c7e7994345c 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/consumable/food/meals.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/consumable/food/meals.ftl @@ -52,3 +52,6 @@ ent-FoodSaladWatermelonFruitBowl = фруктовый арбузный боул .desc = Единственный салат, в котором можно съесть миску. ent-FoodMealTaco = тако .desc = Попробуйте кусочек! + +ent-ADTLingLarva = личинка генокрада + .desc = Не надо... diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/devices/circuitboards/machine/production.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/devices/circuitboards/machine/production.ftl index 6b5f440fedd..80cde62b4fd 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/devices/circuitboards/machine/production.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/devices/circuitboards/machine/production.ftl @@ -116,10 +116,15 @@ ent-MiniGravityGeneratorCircuitboard = мини-генератор гравит .desc = Печатная плата мини-генератора гравитации. ent-OreProcessorIndustrialMachineCircuitboard = переработчик руды (машинная плата) .desc = Печатная плата промышленного станка для переработки руды. - ent-TurboItemRechargerCircuitboard = турбо-зарядник энергооружия (машинная плата) .desc = Печатная плата турбо-зарядника энергооружия. +ent-AutolatheHyperConvectionMachineCircuitboard = гипер-конвекционный автолат (машинная плата) + .desc = Машинная плата для гипер-конвекционного автолата. +ent-ProtolatheHyperConvectionMachineCircuitboard = гипер-конвекционный протолат (машинная плата) + .desc = Машинная плата для гипер-конвекционного протолата. +ent-FlatpackerMachineCircuitboard = упаковщик 1001 (машинная плата) + .desc = Машинная плата для упаковщика 1001 ent-ShuttleGunKineticCircuitboard = плата станка ПТК-800 "Дематериализатор материи" .desc = Машинная печатная плата для "Дематериализатора материи" ПТК-800 ent-ShuttleGunDusterCircuitboard = машинная плата EXP-2100g "Пыльник" - .desc = Машинная печатная плата для EXP-2100g "Пыльник" \ No newline at end of file + .desc = Машинная печатная плата для EXP-2100g "Пыльник" diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/devices/syndicate_gadgets/reinforcement_teleporter.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/devices/syndicate_gadgets/reinforcement_teleporter.ftl index 186a6956547..6acf1ab514d 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/devices/syndicate_gadgets/reinforcement_teleporter.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/devices/syndicate_gadgets/reinforcement_teleporter.ftl @@ -5,3 +5,6 @@ ent-ReinforcementRadioSyndicateNukeops = { ent-ReinforcementRadioSyndicate } .desc = { ent-ReinforcementRadioSyndicate.desc } ent-ReinforcementRadioSyndicateMonkey = радио обезьяньего подкрепления синдиката .desc = Вызывает на подмогу специально обученную обезьяну. +ent-ReinforcementRadioSyndicateMonkeyNukeops = радио обезьяньего подкрепления синдиката + .desc = Вызывает на подмогу специально обученную обезьяну. + .suffix = Ядерные Оперативники diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/misc/koboldcube.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/misc/koboldcube.ftl new file mode 100644 index 00000000000..2d151bc6287 --- /dev/null +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/misc/koboldcube.ftl @@ -0,0 +1,7 @@ +ent-KoboldCubeBox = коробка кубиков кобольдов + .desc = Сжатые кубики кобольдов. Просто добавь воды! +ent-KoboldCubeWrapped = кубик кобольда + .desc = Разверните его, чтобы получить кубик кобольда. + .suffix = Завёрнутый +ent-CrateNPCKoboldCube = ящик кубиков кобольдов + .desc = Ящик, содержащий коробку кубиков кобольдов. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/rehydrateable.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/rehydrateable.ftl index bdaafcd9b5c..96c39c2110f 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/rehydrateable.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/rehydrateable.ftl @@ -5,3 +5,8 @@ ent-DehydratedSpaceCarp = обезвоженный космический кар ent-SyndicateSponge = обезьяний кубик .desc = Просто добавь воды! .suffix = Синдикат +ent-KoboldCube = кубик кобольда + .desc = Просто добавь воды! + +ent-VariantCubeBox = кобольдо-обезьянья коробка кубиков + .desc = Три кубика обезьян и три кубика кобольдов. Просто разверните и добавьте воды! diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/robotics/borg_modules.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/robotics/borg_modules.ftl index d6460bef6e1..a061d8305ba 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/robotics/borg_modules.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/robotics/borg_modules.ftl @@ -64,3 +64,6 @@ ent-BorgModuleHarvesting = урожайный модуль киборга .desc = { ent-BaseBorgModule.desc } ent-BorgModuleClowning = клоунский модуль киборга .desc = { ent-BaseBorgModule.desc } + +ent-BorgModulePDA = КПК модуль киборга + .desc = { ent-BaseBorgModule.desc } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/weapons/guns/ammunition/explosives.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/weapons/guns/ammunition/explosives.ftl index b025497447e..0fa537467b8 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/weapons/guns/ammunition/explosives.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/weapons/guns/ammunition/explosives.ftl @@ -4,14 +4,34 @@ ent-CartridgeRocketSlow = выстрел ПГ-7ВЛ "Улитка" .desc = Выстрел для гранатомёта РПГ-7. Необычайно медленная. ent-BaseGrenade = базовая граната .desc = { ent-BaseItem.desc } +ent-MagazineGrenadeEmpty = пустой картридж для гранат ent-GrenadeBaton = шоковая граната .desc = { ent-BaseGrenade.desc } +ent-MagazineGrenadeBaton = картридж шоковых гранат + .desc = Вмещает в себя пять боеприпасов. ent-GrenadeBlast = фугасная граната .desc = { ent-BaseGrenade.desc } +ent-MagazineGrenadeBlast = картридж фугасных гранат + .desc = Вмещает в себя пять боеприпасов. ent-GrenadeFlash = светошумовая граната .desc = { ent-BaseGrenade.desc } +ent-MagazineGrenadeFlash = картридж светошумовых гранат + .desc = Вмещает в себя пять боеприпасов. ent-GrenadeFrag = осколочная граната .desc = { ent-BaseGrenade.desc } +ent-MagazineGrenadeFrag = картридж осколочных гранат + .desc = Вмещает в себя пять боеприпасов. +ent-GrenadeEMP = ЭМП граната + .desc = { ent-BaseGrenade.desc } +ent-MagazineGrenadeEMP = картридж ЭМП гранат + .desc = Вмещает в себя пять боеприпасов. + ent-CannonBall = пушечное ядро .suffix = Пират .desc = { ent-BaseGrenade.desc } +ent-CannonBallGlassshot = стеклянное пушечное ядро + .suffix = Пират + .desc = { ent-BaseGrenade.desc } +ent-CannonBallGlassshot = картечное пушечное ядро + .suffix = Пират + .desc = { ent-BaseGrenade.desc } \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/weapons/melee/armblade.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/weapons/melee/armblade.ftl index aa7766ab659..a071dcd2d93 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/weapons/melee/armblade.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/weapons/melee/armblade.ftl @@ -1,2 +1,8 @@ ent-ArmBlade = рука-клинок .desc = Гротескный клинок из костей и плоти, который рассекает людей, как горячий нож масло. + +ent-ArmBladeFake = рука-клинок + .desc = Гротескный клинок из костей и плоти, который рассекает людей, как горячий нож масло. + +ent-ArmShield = органический щит + .desc = Крупное месиво из плоти, формирующее собой нечто наподобие щита, что достаточно эффективно блокирует некоторые виды урона. diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/machines/lathe.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/machines/lathe.ftl index 947c46570d2..8d75de15e30 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/machines/lathe.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/machines/lathe.ftl @@ -20,3 +20,10 @@ ent-OreProcessor = переработчик руды .desc = Он производит металлические листы и слитки из руды. ent-Sheetifier = лист-мастер 2000 .desc = Довольно мяссивное устройство. + +ent-AutolatheHyperConvection = гипер-конвекционный автолат + .desc = Высокоэкспериментальный автолат, использующий энергию экстремальных температур, чтобы медленно и более экономично создавать различные объекты. +ent-ProtolatheHyperConvection = гипер-конвекционный протолат + .desc = Высокоэкспериментальный протолат, использующий энергию экстремальных температур, чтобы медленно и более экономично создавать различные объекты. +ent-MachineFlatpacker = упаковщик 1001 + .desc = Промышленная машина, собирающая и упаковывающая механизмы. Позволяет носить с собой громадные устройства и активировать их позже с помощью мультитула. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/wallmounts/signs/bar_sign.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/wallmounts/signs/bar_sign.ftl index 11a10fd46f7..7fa09873348 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/wallmounts/signs/bar_sign.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/wallmounts/signs/bar_sign.ftl @@ -49,3 +49,6 @@ ent-BarSignEmprah = За Империю .desc = Нравится и фанатикам, и еретикам, и завсегдатаям с дефектами мозга. ent-BarSignSpacebucks = Кредиты .desc = От них нельзя скрыться, даже в космосе, и даже после того, как некоторые стали называть их "срубли". + +ent-ADTBarSignMonkeyTime = Монке + .desc = Вашему вниманию - превосходство обезьян над людьми. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/wallmounts/signs/posters.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/wallmounts/signs/posters.ftl index 20e52cb29b9..e717573f72d 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/wallmounts/signs/posters.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/wallmounts/signs/posters.ftl @@ -333,4 +333,4 @@ ent-ADTPosterWorkUnderWay = Ведутся работы! .desc = Предупреждающий плакат инженерного отдела в местах, где ведутся строительные работы. ent-ADTPosterPlasmaMan = Плазма(мены) - .desc = Плакат рассказывает о желании плазмаменов работать на станциях NT... вместо новакидов... + .desc = Плакат рассказывает о желании плазмаменов работать на станциях NT... вместо новакидов... \ No newline at end of file diff --git a/Resources/Locale/ru-RU/tesla/tesla.ftl b/Resources/Locale/ru-RU/tesla/tesla.ftl new file mode 100644 index 00000000000..b0c5e62d3a1 --- /dev/null +++ b/Resources/Locale/ru-RU/tesla/tesla.ftl @@ -0,0 +1,5 @@ +ent-TeslaEnergyBall = шаровая молния +.desc = Гигантский шар из чистой энергии. Пространство вокруг него гудит и плавится. + +ent-TeslaMiniEnergyBall = мини шаровая молния +.desc = Маленькая версия разрушительной шаровой молнии. Не так опасна, но всё же не стоит прикасаться к ней голыми руками. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/traits/traits.ftl b/Resources/Locale/ru-RU/traits/traits.ftl index 69f14b6b499..3e7cceedbde 100644 --- a/Resources/Locale/ru-RU/traits/traits.ftl +++ b/Resources/Locale/ru-RU/traits/traits.ftl @@ -24,3 +24,5 @@ trait-frontal-lisp-name = Фронтальная шепелявость trait-frontal-lisp-desc = Вы говорите с шепелявостью trait-socialanxiety-name = Заикание trait-socialanxiety-desc = Вы беспокоитесь, когда говорите и заикаетесь +trait-common-lang-unknown-name = Унесённый ветрами +trait-common-lang-unknown-desc = По тем или иным причинам, вы не знаете общегалактического языка. diff --git a/Resources/Locale/ru-RU/vending-machines/vending-machine.ftl b/Resources/Locale/ru-RU/vending-machines/vending-machine.ftl new file mode 100644 index 00000000000..d200779723a --- /dev/null +++ b/Resources/Locale/ru-RU/vending-machines/vending-machine.ftl @@ -0,0 +1 @@ +vending-machine-thanks = Благодарим за использование { $name }! \ No newline at end of file diff --git a/Resources/Maps/Dungeon/botany.yml b/Resources/Maps/Dungeon/botany.yml new file mode 100644 index 00000000000..0023034a366 --- /dev/null +++ b/Resources/Maps/Dungeon/botany.yml @@ -0,0 +1,12041 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 13: FloorAsteroidTile + 28: FloorConcrete + 53: FloorGrayConcrete + 76: FloorPlanetGrass + 84: FloorShuttleOrange + 94: FloorSteelCheckerLight + 107: FloorTechMaint2 + 128: NesFloorPlanetGrassArtificial + 131: Plating + 133: PlatingBurnt + 134: PlatingDamaged +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + - type: Transform + - type: Map + - type: PhysicsMap + - type: Broadphase + - type: OccluderTree + - type: MapGrid + chunks: + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAA + version: 6 + 0,0: + ind: 0,0 + tiles: HAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAgwAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgwAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgwAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAVAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAA + version: 6 + 0,1: + ind: 0,1 + tiles: HAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAhQAAAAAAgwAAAAAAgwAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAVAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAhgAAAAAAhgAAAAAAhQAAAAAAHAAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgwAAAAAAhQAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAhQAAAAAAgwAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAXgAAAAAAXgAAAAAAXgAAAAAAVAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAXgAAAAAAXgAAAAAAXgAAAAAAVAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAXgAAAAAAXgAAAAAAXgAAAAAAVAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAXgAAAAAAXgAAAAAAXgAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAXgAAAAAAXgAAAAAAXgAAAAAAVAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAgAAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAA + version: 6 + -1,1: + ind: -1,1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAA + version: 6 + 1,-1: + ind: 1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAA + version: 6 + 1,0: + ind: 1,0 + tiles: HAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgwAAAAAAgwAAAAAAgwAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAhgAAAAAAhQAAAAAAhQAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgwAAAAAAgwAAAAAAgwAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgwAAAAAAgAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgwAAAAAAgAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgwAAAAAAgAAAAAAAVAAAAAAA + version: 6 + 1,1: + ind: 1,1 + tiles: HAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgwAAAAAAgAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAgwAAAAAAHAAAAAAAgwAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAgwAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAgwAAAAAAHAAAAAAAgwAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAgwAAAAAAgwAAAAAAgwAAAAAAHAAAAAAAVAAAAAAAgwAAAAAAgAAAAAAAgAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAgwAAAAAAgwAAAAAAgwAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAVAAAAAAAHAAAAAAAgwAAAAAAHAAAAAAAgwAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAgwAAAAAAgwAAAAAAgwAAAAAAHAAAAAAAVAAAAAAAgwAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAgwAAAAAAHAAAAAAAgwAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAANQAAAAAAVAAAAAAAgwAAAAAAgAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAVAAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAA + version: 6 + -1,2: + ind: -1,2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAA + version: 6 + -1,3: + ind: -1,3 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,2: + ind: 0,2 + tiles: HAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAATAAAAAAATAAAAAAAHAAAAAAATAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAATAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAVAAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAVAAAAAAAgwAAAAAAgwAAAAAAawAAAAAAawAAAAAAawAAAAAAgwAAAAAAgwAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAawAAAAAAawAAAAAAgwAAAAAAgwAAAAAAgwAAAAAAawAAAAAAawAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAawAAAAAAawAAAAAAgwAAAAAAgwAAAAAAgwAAAAAAawAAAAAAawAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAVAAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAVAAAAAAA + version: 6 + 0,3: + ind: 0,3 + tiles: gAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAVAAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 1,2: + ind: 1,2 + tiles: HAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAATAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAATAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAATAAAAAAATAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAATAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAATAAAAAAAHAAAAAAATAAAAAAATAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAgwAAAAAAgAAAAAAAgwAAAAAAgAAAAAAAgAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAgwAAAAAAgAAAAAAAgwAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAawAAAAAAgwAAAAAAhQAAAAAAgwAAAAAAhgAAAAAAgwAAAAAAawAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAawAAAAAAhgAAAAAAgwAAAAAAhgAAAAAAgwAAAAAAhQAAAAAAawAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAawAAAAAAgwAAAAAAgwAAAAAAhgAAAAAAgwAAAAAAgwAAAAAAawAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAawAAAAAAhgAAAAAAgwAAAAAAgwAAAAAAgwAAAAAAhgAAAAAAawAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAawAAAAAAgwAAAAAAhQAAAAAAgwAAAAAAhQAAAAAAgwAAAAAAawAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 1,3: + ind: 1,3 + tiles: awAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,0: + ind: 2,0 + tiles: HAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAgAAAAAAAVAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAADQAAAAAAHAAAAAAADQAAAAAAgAAAAAAAVAAAAAAA + version: 6 + 3,0: + ind: 3,0 + tiles: HAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,-1: + ind: 2,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAA + version: 6 + 3,-1: + ind: 3,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 3,1: + ind: 3,1 + tiles: VAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 3,2: + ind: 3,2 + tiles: VAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,2: + ind: 2,2 + tiles: awAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAATAAAAAAATAAAAAAATAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAATAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAATAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAATAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,1: + ind: 2,1 + tiles: HAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAgAAAAAAAHAAAAAAAgAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAHAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAgwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAgwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAHAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAgAAAAAAATAAAAAAAgwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAgAAAAAAAgAAAAAAAgwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAA + version: 6 + - type: Gravity + gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + - type: DecalGrid + chunkCollection: + version: 2 + nodes: + - node: + color: '#DA8B8B71' + id: ADTFloorBlood1 + decals: + 845: 42.996826,13.15854 + - node: + color: '#DA8B8BAC' + id: ADTFloorBlood1 + decals: + 842: 42.33264,12.181977 + - node: + color: '#FFFFFF8A' + id: ADTFloorBlood1 + decals: + 664: 32.650215,21.370636 + 666: 31.341377,19.808136 + 669: 30.95068,20.999542 + - node: + color: '#DA8B8B71' + id: ADTFloorBlood2 + decals: + 844: 43.42659,13.412446 + - node: + color: '#DA8B8B64' + id: ADTFloorBlood3 + decals: + 680: 31.803482,20.554249 + 838: 41.668453,13.9983835 + 839: 40.066593,15.619476 + - node: + color: '#DA8B8BAC' + id: ADTFloorBlood3 + decals: + 841: 42.82101,11.928071 + - node: + color: '#FFFFFF8A' + id: ADTFloorBlood3 + decals: + 665: 31.419518,18.675323 + 668: 32.786957,20.003448 + - node: + color: '#DA8B8B64' + id: ADTFloorBlood4 + decals: + 840: 43.5438,12.318696 + - node: + color: '#DA8B8BAC' + id: ADTFloorBlood4 + decals: + 843: 43.44613,11.713227 + - node: + color: '#FFFFFF8A' + id: ADTFloorBlood4 + decals: + 667: 32.650215,18.538605 + - node: + angle: -1.5707963267948966 rad + color: '#FFFFFFFF' + id: Arrows + decals: + 40: 17,26 + 41: 17,27 + - node: + color: '#FFFFFFFF' + id: Basalt4 + decals: + 297: 29.897284,37.92045 + 309: 41.019554,38.985096 + - node: + color: '#FFFFFFFF' + id: Basalt5 + decals: + 293: 26.986586,40.166542 + 310: 42.97304,39.942127 + - node: + color: '#FFFFFFFF' + id: Basalt7 + decals: + 292: 25.638678,38.955605 + 308: 39.788857,37.81322 + 311: 44.106064,38.926502 + - node: + color: '#FFFFFFFF' + id: Bot + decals: + 37: 16,25 + 38: 16,26 + 39: 16,27 + 42: 7,10 + 43: 8,10 + 44: 9,10 + 51: 1,12 + 231: 11,3 + 232: 11,2 + - node: + cleanable: True + color: '#FFFFFFFF' + id: BotLeft + decals: + 36: 14,42 + - node: + color: '#008200DF' + id: BotLeftGreyscale + decals: + 546: 14,27 + 548: 14,26 + 549: 14,25 + - node: + color: '#008200DD' + id: BrickTileWhiteCornerNe + decals: + 250: 14.002413,39.998604 + 465: 26,32 + 864: 10,10 + 867: 10,9 + 906: 22,10 + 1015: 16,4 + 1035: 3,4 + 1056: 34,4 + - node: + color: '#008200DF' + id: BrickTileWhiteCornerNe + decals: + 237: 6,40 + 511: 2,28 + - node: + color: '#008200DD' + id: BrickTileWhiteCornerNw + decals: + 258: 8,40 + 905: 12,10 + 1013: 0,4 + 1036: 5,4 + 1049: 18,4 + - node: + color: '#008200DF' + id: BrickTileWhiteCornerNw + decals: + 234: 0,40 + 513: 0,28 + - node: + color: '#008200DD' + id: BrickTileWhiteCornerSe + decals: + 251: 13.982878,38.006416 + 871: 10,6 + 907: 22,6 + 1034: 3,0 + 1065: 34,0 + - node: + color: '#008200DF' + id: BrickTileWhiteCornerSe + decals: + 235: 6,38 + 515: 2,24 + - node: + color: '#008200DD' + id: BrickTileWhiteCornerSw + decals: + 260: 8,38 + 450: 14,30 + 853: 0,6 + 908: 12,6 + 1014: 0,0 + 1037: 5,0 + 1067: 18,0 + - node: + color: '#008200DF' + id: BrickTileWhiteCornerSw + decals: + 236: 0,38 + 516: 0,24 + - node: + color: '#008200DD' + id: BrickTileWhiteLineE + decals: + 462: 26,31 + 869: 10,7 + 909: 22,7 + 910: 22,8 + 911: 22,9 + 1026: 16,3 + 1040: 3,3 + 1041: 3,1 + 1095: 34,3 + 1096: 34,2 + 1097: 34,1 + - node: + color: '#008200DF' + id: BrickTileWhiteLineE + decals: + 244: 6,39 + 257: 14,39 + 520: 2,27 + 521: 2,26 + 522: 2,25 + 533: 14,24 + 535: 14,25 + 536: 14,26 + 537: 14,27 + 538: 14,28 + - node: + color: '#008200DD' + id: BrickTileWhiteLineN + decals: + 302: 35,40 + 346: 22,36 + 347: 21,36 + 348: 20,36 + 349: 17,36 + 350: 16,36 + 351: 14,36 + 352: 13,36 + 353: 12,36 + 469: 25,32 + 471: 22,32 + 473: 21,32 + 474: 19,32 + 477: 17,32 + 857: 1,10 + 858: 2,10 + 860: 3,10 + 861: 4,10 + 862: 5,10 + 924: 20,10 + 925: 19,10 + 926: 21,10 + 927: 16,10 + 928: 15,10 + 929: 14,10 + 930: 13,10 + 958: 17,10 + 959: 18,10 + 1027: 12,4 + 1028: 11,4 + 1029: 9,4 + 1030: 7,4 + 1031: 6,4 + 1032: 2,4 + 1033: 1,4 + 1077: 19,4 + 1078: 20,4 + 1079: 21,4 + 1081: 22,4 + 1082: 23,4 + 1083: 24,4 + 1084: 25,4 + 1085: 26,4 + 1087: 27,4 + 1088: 28,4 + 1089: 29,4 + 1090: 30,4 + 1092: 31,4 + 1093: 32,4 + 1094: 33,4 + 1192: 54,4 + 1193: 53,4 + 1194: 52,4 + 1195: 38,4 + 1196: 37,4 + 1197: 36,4 + - node: + color: '#008200DF' + id: BrickTileWhiteLineN + decals: + 245: 1,40 + 246: 2,40 + 247: 3,40 + 248: 4,40 + 249: 5,40 + 252: 13,40 + 253: 12,40 + 254: 11,40 + 255: 10,40 + 256: 9,40 + 273: 16,40 + 274: 17,40 + 275: 18,40 + 276: 19,40 + 277: 20,40 + 278: 21,40 + 279: 22,40 + 283: 32,40 + 284: 33,40 + 285: 34,40 + 286: 36,40 + 287: 37,40 + 289: 38,40 + 316: 46,40 + 317: 40,40 + 318: 0,36 + 319: 1,36 + 320: 2,36 + 321: 3,36 + 322: 4,36 + 323: 5,36 + 324: 6,36 + 325: 7,36 + 326: 8,36 + 327: 9,36 + 328: 10,36 + 523: 1,28 + - node: + color: '#52B4E996' + id: BrickTileWhiteLineN + decals: + 233: 22,4 + - node: + color: '#008200DD' + id: BrickTileWhiteLineS + decals: + 340: 16,34 + 341: 17,34 + 342: 19,34 + 343: 18,34 + 344: 21,34 + 345: 22,34 + 449: 5,30 + 455: 15,30 + 456: 16,30 + 457: 17,30 + 458: 23,30 + 459: 24,30 + 460: 25,30 + 873: 8,6 + 874: 7,6 + 875: 6,6 + 876: 5,6 + 915: 13,6 + 916: 15,6 + 917: 14,6 + 918: 16,6 + 919: 18,6 + 920: 19,6 + 921: 17,6 + 922: 20,6 + 923: 21,6 + 1018: 2,0 + 1019: 6,0 + 1020: 8,0 + 1021: 9,0 + 1022: 11,0 + 1023: 13,0 + 1024: 14,0 + 1025: 12,0 + 1099: 33,0 + 1100: 32,0 + 1101: 31,0 + 1102: 30,0 + 1103: 29,0 + 1104: 28,0 + 1105: 27,0 + 1106: 26,0 + 1107: 25,0 + 1108: 24,0 + 1109: 23,0 + 1111: 22,0 + 1112: 21,0 + 1114: 20,0 + 1115: 19,0 + 1186: 36,0 + 1187: 37,0 + 1188: 38,0 + 1189: 54,0 + 1190: 53,0 + 1191: 52,0 + - node: + color: '#008200DF' + id: BrickTileWhiteLineS + decals: + 239: 1,38 + 240: 2,38 + 241: 3,38 + 242: 4,38 + 243: 5,38 + 259: 13,38 + 261: 12,38 + 262: 11,38 + 263: 10,38 + 264: 9,38 + 266: 16,38 + 267: 17,38 + 268: 18,38 + 269: 19,38 + 270: 20,38 + 271: 21,38 + 272: 22,38 + 294: 32,38 + 295: 33,38 + 296: 34,38 + 298: 35,38 + 299: 36,38 + 300: 37,38 + 301: 38,38 + 315: 46,38 + 329: 0,34 + 330: 1,34 + 331: 2,34 + 332: 3,34 + 333: 4,34 + 334: 5,34 + 335: 6,34 + 336: 7,34 + 337: 8,34 + 338: 9,34 + 339: 10,34 + 524: 1,24 + - node: + color: '#008200DD' + id: BrickTileWhiteLineW + decals: + 265: 8,39 + 454: 14,31 + 854: 0,7 + 855: 0,8 + 912: 12,7 + 913: 12,8 + 914: 12,9 + 1016: 0,2 + 1017: 0,1 + 1038: 5,1 + 1039: 5,3 + 1071: 18,1 + 1072: 18,2 + 1073: 18,3 + - node: + color: '#008200DF' + id: BrickTileWhiteLineW + decals: + 238: 0,39 + 517: 0,25 + 518: 0,26 + 519: 0,27 + 541: 12,28 + 542: 12,27 + 543: 12,26 + 544: 12,25 + 545: 12,24 + - node: + color: '#FFFFFFFF' + id: BushAOne + decals: + 291: 26.882742,40.225136 + 303: 40.92188,38.926502 + 557: 21.547173,26.256926 + 623: 13.996934,20.505045 + 818: 42.019836,15.922363 + 819: 46.35658,14.594237 + 820: 41.453323,14.3208 + 1127: 9.503035,1.5400052 + 1128: 13.19593,2.770474 + 1129: 14.2508135,0.8759427 + 1130: 11.672208,0.73922396 + 1212: 19.863758,2.9411511 + 1213: 41.906273,1.9567761 + 1218: 45.109398,0.19115126 + - node: + color: '#FFFFFFFF' + id: BushAThree + decals: + 354: 18.219532,35.73933 + 355: 12.280928,34.215893 + 622: 13.528096,19.840982 + 1125: 3.4883838,1.286099 + 1126: 3.6055923,2.8290677 + 1135: 10.711138,3.9644098 + 1136: 12.645092,2.9683158 + 1137: 3.7278228,3.6261673 + 1214: 42.984398,1.9411511 + - node: + color: '#FFFFFFFF' + id: BushATwo + decals: + 399: 31.943909,34.612057 + 400: 24.1909,34.729244 + 547: 7.903447,28.315746 + 556: 20.500298,26.850676 + 560: 21.594048,23.96005 + 787: 33.834263,13.86593 + 788: 36.315193,14.17843 + 821: 40.300766,14.496581 + 1131: 11.652673,2.2431302 + 1132: 14.852533,2.987847 + 1133: 16.259045,1.0542533 + 1134: 13.465557,4.4917536 + 1216: 44.031273,2.5505261 + 1217: 44.078148,0.87865126 + 1220: 46.015648,0.09740126 + - node: + color: '#FFFFFFFF' + id: BushCOne + decals: + 1222: 45.906273,2.1911511 + - node: + color: '#FFFFFFFF' + id: BushCThree + decals: + 553: 21.422173,27.225676 + 889: 0.7231519,6.0918846 + - node: + color: '#FFFFFFFF' + id: BushCTwo + decals: + 304: 44.594437,38.965565 + 356: 14.800928,34.17683 + 375: 19.21581,35.71903 + 550: 10.325772,25.776684 + 554: 20.906548,27.881926 + 558: 21.937798,24.881926 + 624: 14.309491,19.704264 + 887: 1.9733846,9.13876 + 890: 0.37152457,6.4825096 + - node: + color: '#FFFFFFFF' + id: BushDOne + decals: + 1204: 22.431877,1.3005263 + 1205: 29.564598,1.4099013 + - node: + color: '#FFFFFFFF' + id: BushDTwo + decals: + 1201: 24.963127,1.4411513 + - node: + color: '#FFFFFFFF' + id: Busha1 + decals: + 425: 4.4354124,31.24028 + 426: 7.4382753,30.732468 + 478: 14.646509,31.940964 + 479: 20.057673,30.065964 + 480: 17.830696,30.573776 + 481: 19.920927,32.155807 + 638: 12.453677,19.704264 + 1224: 47.921898,2.0505261 + 1226: 49.687523,1.8942761 + - node: + color: '#FFFFFFFF' + id: Busha2 + decals: + 424: 1.3293655,30.810593 + 615: 7.5555973,20.186474 + 616: 8.708155,20.674755 + 617: 7.438389,21.104443 + - node: + color: '#FFFFFFFF' + id: Busha3 + decals: + 441: 5.048382,29.852995 + 561: 20.187798,24.069426 + 1211: 21.926258,2.7380261 + 1223: 47.015648,1.9880261 + - node: + color: '#FFFFFFFF' + id: Bushb1 + decals: + 552: 21.859673,28.02255 + 1198: 25,3 + 1215: 43.968773,1.7224011 + - node: + color: '#FFFFFFFF' + id: Bushb2 + decals: + 357: 14.898602,35.87605 + 1199: 25.181877,2.1599011 + 1207: 28.764944,1.8786511 + - node: + color: '#FFFFFFFF' + id: Bushb3 + decals: + 398: 32.74484,34.944088 + 1122: 0.16745329,2.4189115 + 1123: 4.9925704,3.2196927 + 1124: 8.46978,0.5634427 + 1206: 28.970848,0.87865126 + - node: + color: '#FFFFFFFF' + id: Bushc1 + decals: + 482: 15.173952,30.827682 + 483: 22.89023,31.901901 + 484: 23.7693,30.866745 + 485: 18.983253,30.339401 + 808: 30.21698,13.002069 + - node: + color: '#FFFFFFFF' + id: Bushc2 + decals: + 395: 25.429722,35.31518 + 396: 31.153442,35.217525 + 397: 34.30763,33.635494 + 420: 2.774947,30.908249 + 423: 2.1693656,30.830124 + 493: 21.171162,30.827682 + 618: 7.1062946,18.663036 + 619: 5.9537373,21.436474 + 809: 30.002096,14.154413 + 810: 29.457994,16.068476 + 814: 39.988205,13.480956 + 815: 41.179832,11.918456 + 1219: 44.015648,-0.027598739 + 1221: 46.093773,1.1442763 + - node: + color: '#FFFFFFFF' + id: Bushc3 + decals: + 555: 19.953423,28.0538 + 559: 21.047173,24.96005 + 639: 16.223911,19.821451 + 640: 14.153213,18.473795 + 816: 42.859833,13.480956 + 817: 40.20309,16.02002 + 888: 2.9891984,5.9942284 + 1200: 25.635002,1.5505261 + 1208: 28.014944,1.0349013 + 1209: 26.12432,0.90990126 + 1210: 20.988758,2.9255261 + - node: + color: '#FFFFFFFF' + id: Bushd1 + decals: + 376: 18.68837,36.324497 + - node: + color: '#FFFFFFFF' + id: Bushd3 + decals: + 503: 18.670696,32.097214 + 504: 19.627905,30.983932 + 1203: 21.869377,1.4099013 + - node: + color: '#FFFFFFFF' + id: Bushd4 + decals: + 1202: 21.978752,1.6599011 + - node: + color: '#FFFFFFFF' + id: Bushg1 + decals: + 502: 20.331161,32.19487 + - node: + color: '#FFFFFFFF' + id: Bushh1 + decals: + 313: 44.906998,39.049442 + 314: 40.60932,38.71741 + 1227: 45.453148,1.5036511 + - node: + color: '#FFFFFFFF' + id: Bushi1 + decals: + 368: 14.039066,35.524487 + 369: 17.985113,36.05183 + 390: 29.667477,35.237057 + 391: 33.575768,34.280025 + 393: 32.032513,33.59643 + 394: 26.816698,35.022213 + 496: 19.276278,31.589401 + 501: 23.88651,31.745651 + 885: 7.071991,9.353603 + - node: + color: '#FFFFFFFF' + id: Bushi2 + decals: + 439: 10.425596,31.395964 + 440: 4.618614,30.595182 + 495: 14.353485,30.690964 + 498: 22.304184,31.355026 + 884: 5.685013,8.04501 + 1225: 48.843773,1.9724011 + - node: + color: '#FFFFFFFF' + id: Bushi4 + decals: + 312: 41.058624,38.971317 + 370: 14.078136,34.743237 + 371: 21.93116,34.430737 + 389: 23.865616,35.705807 + 392: 31.856697,35.4519 + 419: 4.044715,30.966843 + 438: 8.862804,31.063932 + 494: 15.466974,31.706589 + 497: 18.123718,30.124557 + 499: 23.339533,30.378464 + 500: 24.413952,32.312057 + 882: 0.5668733,9.197353 + 883: 4.0440826,6.8731346 + 886: 9.279432,8.767666 + - node: + color: '#FFFFFFFF' + id: Bushj1 + decals: + 1228: 44.593773,-0.07447374 + - node: + color: '#FFFFFFFF' + id: Bushk1 + decals: + 1098: 8.827517,2.737421 + - node: + color: '#FFFFFFFF' + id: Bushk2 + decals: + 621: 7.457924,20.635693 + 1121: 1.0660582,0.30953646 + - node: + color: '#FFFFFFFF' + id: Bushk3 + decals: + 421: 3.4977386,30.888718 + 620: 8.4151325,20.186474 + 1120: 7.502984,0.89547396 + - node: + color: '#FFFFFFFF' + id: Bushm2 + decals: + 1110: 1.843574,2.3993802 + 1113: 1.1598525,2.7900052 + 1119: 15.127616,4.040005 + - node: + color: '#FFFFFFFF' + id: Bushm3 + decals: + 1116: 9.78446,1.6181302 + - node: + color: '#FFFFFFFF' + id: Bushm4 + decals: + 1117: 8.885855,2.7900052 + 1118: 13.9555235,4.040005 + - node: + color: '#FFFFFFFF' + id: Bushn1 + decals: + 551: 9.036469,26.03059 + - node: + cleanable: True + color: '#FFFFFFFF' + id: Caution + decals: + 35: 11,42 + - node: + color: '#008200DD' + id: ConcreteTrimLineN + decals: + 406: 0,32 + 407: 1,32 + 410: 5,32 + 411: 6,32 + 412: 7,32 + 417: 11,32 + 418: 12,32 + - node: + color: '#008200DD' + id: ConcreteTrimLineS + decals: + 408: 1,30 + 409: 0,30 + 413: 6,30 + 414: 7,30 + 415: 11,30 + 416: 12,30 + - node: + color: '#FFFFFFFF' + id: Delivery + decals: + 7: 13,47 + 8: 11,47 + 9: 9,47 + 10: 12,43 + 11: 11,43 + 12: 10,43 + 52: 33,7 + 53: 33,9 + 54: 25,7 + 55: 25,9 + - node: + color: '#835432FF' + id: Dirt + decals: + 525: 16.072556,31.315964 + - node: + color: '#FFFFFFFF' + id: Dirt + decals: + 1294: 3,0 + - node: + cleanable: True + color: '#FFFFFFFF' + id: Dirt + decals: + 0: 3,48 + 24: 19,35 + 69: 44,12 + 70: 44,15 + 96: 36,39 + 200: 13,35 + 201: 21,35 + 230: 45,15 + - node: + color: '#FFFFFFFF' + id: DirtHeavy + decals: + 659: 20,20 + 961: 18,6 + 962: 21,7 + 963: 16,10 + 964: 12,6 + 969: 13,10 + 1002: 29,10 + 1270: 3,3 + 1271: 8,3 + 1272: 5,1 + 1293: 0,0 + 1302: 30,1 + - node: + cleanable: True + color: '#FFFFFFFF' + id: DirtHeavy + decals: + 29: 9,25 + 85: 6,45 + 86: 3,48 + 114: 4,25 + 139: 18,21 + 144: 8,45 + 145: 14,46 + 146: 13,42 + 147: 10,42 + 159: 32,18 + 165: 0,14 + 166: 5,16 + 167: 5,15 + 177: 2,6 + 178: 8,7 + 179: 10,6 + 180: 9,9 + 181: 4,6 + 182: 2,9 + 189: 20,1 + 190: 28,3 + 207: 32,16 + 208: 38,12 + 209: 38,13 + 210: 32,12 + 226: 44,16 + - node: + color: '#FFFFFFFF' + id: DirtHeavyMonotile + decals: + 660: 19,20 + 661: 18,21 + 662: 22,21 + 960: 14,7 + 968: 12,7 + 999: 29,6 + 1000: 29,7 + 1006: 34,8 + 1007: 33,10 + 1008: 32,8 + 1273: 6,2 + 1295: 2,0 + 1296: 5,0 + 1297: 18,1 + 1298: 18,3 + - node: + cleanable: True + color: '#FFFFFFFF' + id: DirtHeavyMonotile + decals: + 71: 4,18 + 72: 1,18 + 131: 1,31 + 140: 24,22 + 156: 31,19 + 160: 1,14 + 161: 3,13 + 173: 3,9 + 174: 3,8 + 175: 0,8 + 176: 6,10 + 186: 6,2 + 187: 8,1 + 202: 34,14 + 203: 35,12 + 204: 37,13 + 205: 35,15 + 206: 33,13 + 225: 42,14 + 229: 40,12 + - node: + color: '#FFFFFFFF' + id: DirtLight + decals: + 965: 12,8 + 966: 17,6 + 970: 20,6 + 996: 24,9 + 997: 29,10 + 998: 27,10 + 1005: 31,8 + 1274: 6,2 + 1275: 5,3 + 1276: 9,1 + 1277: 9,0 + 1278: 9,0 + 1279: 13,0 + 1280: 13,1 + 1281: 12,0 + 1282: 14,0 + 1283: 12,0 + 1284: 14,2 + 1285: 15,1 + 1286: 16,4 + 1292: 0,1 + 1301: 19,4 + 1303: 30,3 + 1304: 26,4 + - node: + cleanable: True + color: '#FFFFFFFF' + id: DirtLight + decals: + 1: 6,46 + 14: 10,44 + 15: 9,45 + 16: 13,42 + 18: 10,42 + 23: 19,35 + 25: 11,32 + 28: 6,31 + 30: 9,24 + 31: 8,24 + 32: 9,26 + 33: 10,26 + 34: 8,28 + 45: 30,20 + 46: 34,19 + 47: 32,18 + 48: 2,18 + 49: 0,21 + 50: 0,19 + 56: 28,15 + 57: 27,14 + 65: 33,12 + 66: 34,14 + 67: 33,15 + 68: 34,15 + 115: 5,27 + 116: 6,26 + 117: 6,25 + 118: 4,27 + 132: 5,31 + 133: 14,22 + 134: 13,22 + 141: 28,19 + 142: 27,18 + 143: 9,44 + 157: 30,20 + 158: 31,22 + 162: 1,16 + 163: 5,15 + 164: 6,14 + 188: 5,1 + 191: 30,3 + 192: 23,3 + 193: 27,1 + 194: 22,1 + 195: 27,2 + 196: 30,1 + 228: 44,12 + - node: + color: '#FFFFFFFF' + id: DirtMedium + decals: + 663: 18,19 + 967: 15,6 + 971: 16,7 + 994: 30,6 + 995: 24,7 + 1001: 27,6 + 1003: 27,10 + 1004: 31,10 + 1009: 33,6 + 1010: 34,7 + 1287: 14,3 + 1288: 16,3 + 1289: 7,3 + 1290: 12,2 + 1291: 0,4 + 1299: 18,4 + 1300: 25,4 + - node: + cleanable: True + color: '#FFFFFFFF' + id: DirtMedium + decals: + 17: 11,42 + 26: 4,31 + 27: 4,30 + 62: 34,13 + 63: 33,15 + 64: 34,12 + 73: 2,19 + 74: 3,21 + 75: 2,42 + 76: 4,44 + 77: 3,46 + 78: 3,45 + 79: 0,46 + 80: 4,45 + 81: 5,44 + 82: 4,45 + 83: 3,44 + 84: 1,46 + 135: 13,18 + 136: 21,18 + 137: 22,20 + 138: 20,21 + 148: 12,42 + 149: 12,43 + 150: 13,46 + 151: 12,47 + 152: 11,48 + 153: 10,48 + 154: 10,47 + 155: 30,18 + 168: 3,16 + 169: 3,12 + 170: 4,12 + 171: 1,8 + 172: 3,7 + 183: 4,10 + 184: 4,9 + 185: 8,9 + 227: 40,14 + - node: + color: '#FFFFFFFF' + id: FlowersBROne + decals: + 851: 3.823717,8.408327 + 880: 1.0943143,7.2637596 + 881: 9.123154,8.572353 + 1165: 1.5029702,3.5443487 + 1166: 3.2806444,1.8646615 + - node: + color: '#FFFFFFFF' + id: FlowersBRThree + decals: + 585: 0.21090436,20.836113 + 586: 3.4732316,20.30877 + 634: 14.797864,21.98942 + 793: 33.42403,12.830773 + 1167: 0.97552824,1.9232552 + 1168: 5.9764585,3.0365365 + 1175: 11.505029,1.1642044 + 1183: 7.7737675,3.3907669 + 1184: 2.6942406,2.6681106 + 1185: 12.439365,2.0431106 + - node: + color: '#FFFFFFFF' + id: FlowersBRTwo + decals: + 626: 12.492747,20.563639 + 791: 36.901237,12.92843 + 792: 32.935658,14.686242 + 1170: 7.910413,2.4310677 + 1177: 14.474332,2.7657669 + - node: + color: '#FFFFFFFF' + id: Flowersbr1 + decals: + 365: 13.648369,34.274487 + 366: 17.946043,35.856518 + 367: 20.075346,34.19636 + 430: 2.2419953,31.064499 + 431: 3.7852511,30.791061 + 625: 13.371818,21.442545 + 1178: 15.392372,1.3204544 + - node: + color: '#FFFFFFFF' + id: Flowersbr2 + decals: + 633: 15.794144,21.110514 + 852: 2.9799669,7.845827 + - node: + color: '#FFFFFFFF' + id: Flowersbr3 + decals: + 380: 24.021894,34.65112 + 381: 32.01166,34.8269 + 382: 34.29724,34.22143 + 383: 27.381893,36.272213 + 789: 34.02961,13.86593 + 790: 35.494728,14.901086 + 1162: 2.1280866,1.2396615 + 1163: 0.7801795,0.087317705 + 1164: -0.11842489,2.8998177 + 1169: 5.4880857,0.6341927 + - node: + color: '#FFFFFFFF' + id: Flowerspv1 + decals: + 432: 7.828973,30.77153 + 850: 3.0737169,8.720827 + 1173: 9.493727,3.5665483 + 1174: 13.399829,1.4571731 + - node: + color: '#FFFFFFFF' + id: Flowerspv2 + decals: + 433: 8.999548,30.888151 + 583: 2.496486,18.238457 + 584: -0.47281528,19.605644 + 628: 12.06298,18.825357 + 629: 13.313212,17.946451 + 1171: 10.607214,1.0274856 + 1172: 9.435122,2.3751419 + - node: + color: '#FFFFFFFF' + id: Flowerspv3 + decals: + 377: 25.838638,35.803463 + 378: 31.71864,33.850338 + 379: 33.515846,35.78393 + 627: 12.727166,18.376139 + 1176: 11.973866,3.1173294 + - node: + color: '#FFFFFFFF' + id: Flowersy1 + decals: + 630: 15.42298,18.532389 + 632: 15.9894905,19.079264 + 877: 5.0947256,9.064577 + 878: 9.016601,6.1739516 + 1181: 7.4416747,0.89076686 + 1182: 6.504,1.8087356 + - node: + color: '#FFFFFFFF' + id: Flowersy2 + decals: + 434: 9.76141,31.200651 + 879: 8.891601,7.2208266 + 1180: 7.8128376,-0.2615769 + - node: + color: '#FFFFFFFF' + id: Flowersy3 + decals: + 384: 24.275848,35.959713 + 385: 29.745615,33.694088 + 631: 14.836934,18.356607 + 794: 36.86217,14.315148 + 872: 4.1728506,9.173952 + 1159: 8.145189,1.8646615 + 1160: 13.693098,3.642005 + 1161: 5.0977483,2.0795052 + 1179: 14.728188,0.5587356 + - node: + color: '#FFFFFFFF' + id: Flowersy4 + decals: + 307: 39.945137,38.08666 + 587: 1.0899746,17.8283 + 588: 0.28904462,19.039238 + - node: + color: '#DA8B8BFF' + id: Grassa1 + decals: + 670: 31.732079,20.980011 + - node: + color: '#FFFFFFFF' + id: Grassa1 + decals: + 280: 29.812975,38.193886 + 281: 27.214834,38.87748 + 282: 26.785067,37.900917 + 305: 41.97676,38.985096 + 306: 42.97304,40.235096 + 358: 13.238136,34.294018 + 359: 16.910694,35.11433 + 360: 14.175812,35.44636 + 361: 19.821394,34.215893 + 362: 21.950695,35.211987 + 435: 8.12048,31.005339 + 436: 9.370712,30.907682 + 526: 8.938796,26.304028 + 527: 8.548097,27.846996 + 570: 0.24997449,20.914238 + 571: 1.0313694,19.351738 + 572: 1.715091,20.46502 + 573: 2.7113698,21.754082 + 574: 2.3011372,18.082207 + 824: 45.96588,13.773925 + 868: 4.0322256,6.8770766 + 870: 4.7197256,7.892702 + 950: 14.958454,8.088126 + 951: 16.54078,9.279532 + 1042: 2.0566149,1.157344 + 1043: 8.288242,2.2315626 + 1044: 7.99522,3.6182814 + 1086: 12.343796,1.7608585 + - node: + color: '#DA8B8BFF' + id: Grassa2 + decals: + 678: 31.788567,19.617645 + - node: + color: '#FFFFFFFF' + id: Grassa2 + decals: + 427: 8.024322,31.416061 + 428: 10.212228,31.279343 + 442: 7.0800095,31.94284 + 443: 1.6688466,30.517057 + 486: 13.806509,32.233932 + 487: 15.408369,30.730026 + 488: 18.104183,32.17534 + 489: 21.874416,30.16362 + 490: 16.697672,31.335495 + 644: 13.430421,21.442545 + 677: 33.0388,20.281708 + 714: 18.014242,11.818232 + 770: 25.267616,15.8582325 + 777: 34.26403,14.725305 + 778: 33.306824,13.572961 + 859: 1.9955919,6.6427016 + 931: 13.571478,8.342032 + 932: 19.86171,8.732657 + 933: 14.470081,9.181876 + 934: 18.33799,7.912345 + 949: 12.477524,8.439689 + 1251: 39.256653,2.7217517 + 1252: 39.608284,1.1006579 + 1253: 41.71805,1.6475329 + 1254: 38.67061,0.90534544 + 1255: 38.69014,3.1905017 + 1256: 30.470566,2.2334704 + 1257: 29.2008,2.194408 + - node: + color: '#FFFFFFFF' + id: Grassa3 + decals: + 643: 13.801585,22.008951 + 645: 15.4815855,21.579264 + 779: 35.78775,14.686242 + 780: 36.74496,13.123742 + 805: 29.591864,13.470819 + 806: 30.33419,15.209101 + 807: 29.845818,14.369257 + 822: 40.92588,13.930175 + 823: 44.1296,14.066894 + 849: 1.9487169,7.1114516 + 1265: 19.479786,1.9600329 + 1266: 19.284437,0.63190794 + - node: + color: '#FFFFFFFF' + id: Grassa4 + decals: + 288: 25.925531,38.799355 + 614: 9.841179,21.670849 + 712: 18.36587,14.786982 + 713: 15.845869,16.115107 + 846: 1.3012102,8.091336 + 866: 3.7509756,6.0333266 + 946: 17.771477,9.55297 + 947: 15.056129,9.474845 + - node: + color: '#FFFFFFFF' + id: Grassa5 + decals: + 673: 31.093756,18.009201 + 676: 32.22678,21.934982 + 781: 37.057518,14.217492 + 782: 35.260307,13.436242 + 944: 18.963106,7.5021887 + 945: 19.998455,9.142814 + 1045: 0.31801033,3.1495314 + 1046: 1.5682421,-0.30749977 + 1047: 11.941265,1.8800001 + 1048: 11.374754,0.0050002337 + 1050: 4.1382656,2.0167189 + 1051: 5.6039767,2.9151564 + 1091: 12.578215,4.3194523 + - node: + color: '#FFFFFFFF' + id: Grassb1 + decals: + 604: 7.3797836,18.506786 + 607: 8.0049,17.706005 + 608: 9.372341,18.643505 + 646: 15.403445,19.587076 + 671: 30.917942,22.032639 + 672: 33.12538,18.497482 + 710: 18.834707,12.716669 + 783: 35.1431,14.940148 + 784: 35.9831,13.123742 + 785: 33.111473,13.104211 + 786: 32.81845,14.33468 + 825: 39.773323,16.098145 + 826: 42.117508,16.078613 + 827: 42.898903,12.719237 + 863: 1.7978506,5.8770766 + 948: 13.06357,7.463126 + 1052: 6.0082493,0.8965485 + 1053: 15.756157,2.8301423 + 1054: 14.994297,0.8965485 + 1055: 9.798016,3.279361 + 1057: 8.625923,1.4629548 + 1058: 12.552435,3.8652983 + - node: + color: '#FFFFFFFF' + id: Grassb2 + decals: + 611: 9.1965275,21.651318 + 612: 10.036528,20.948193 + 613: 9.821644,22.647411 + 655: 19.366825,21.316841 + 656: 19.542639,18.699654 + 657: 18.54636,19.402779 + 658: 21.398453,19.910591 + - node: + color: '#FFFFFFFF' + id: Grassb3 + decals: + 610: 6.989086,20.401318 + 848: 1.0199602,7.1850863 + 865: 2.9072256,6.0489516 + 940: 15.5445,9.08422 + 941: 15.954733,8.127189 + 942: 12.965897,8.986564 + 943: 21.404966,7.8732824 + 1068: 2.6231222,2.1660798 + 1069: 6.549634,0.99420476 + 1070: 3.1896334,0.91607976 + 1074: 8.104046,4.3389835 + 1075: 13.204994,3.0889835 + 1076: 12.3378935,4.43664 + 1080: 9.32952,2.5616398 + - node: + color: '#FFFFFFFF' + id: Grassb4 + decals: + 704: 7.8361425,12.150263 + 705: 10.512422,13.615107 + 706: 12.387771,13.712763 + 707: 16.72494,14.728388 + 708: 19.616102,12.970575 + 767: 24.017384,12.010576 + 768: 26.146685,15.877764 + 847: 2.1918352,8.278836 + 856: 1.0424669,6.3770766 + - node: + color: '#DA8B8BFF' + id: Grassb5 + decals: + 679: 32.589497,20.418427 + - node: + color: '#FFFFFFFF' + id: Grassb5 + decals: + 363: 15.621393,34.919018 + 364: 15.406509,36.20808 + 575: 0.11323094,17.906425 + 576: -0.19932818,20.445488 + 577: 3.3755562,20.543144 + 605: 6.129551,20.166943 + 606: 7.750946,20.245068 + 609: 8.454203,18.643505 + 674: 31.035152,20.48967 + 675: 33.12538,22.013107 + 699: 9.535678,13.6737 + 700: 7.738467,15.333857 + 701: 14.087306,15.880732 + 702: 13.911492,12.462763 + 703: 8.812886,12.384638 + 709: 19.987265,13.458857 + 711: 19.264475,14.943232 + 761: 23.997849,16.13167 + 762: 26.088081,11.9519825 + 763: 26.674128,15.643389 + 765: 23.958778,14.471514 + 766: 25.384825,12.518389 + 769: 24.466684,14.9207325 + 935: 15.173338,7.7951574 + 936: 16.69706,8.61547 + 937: 18.123106,7.6389074 + 938: 14.0012455,7.8146887 + 939: 19.09985,9.181876 + 952: 18.37706,8.693595 + 1267: 19.479786,1.3350329 + 1268: 24.558857,1.4912829 + 1269: 15.941326,1.7256579 + - node: + color: '#FFFFFFFF' + id: Grassc1 + decals: + 720: 16.392845,11.915888 + 721: 15.767729,12.228388 + 828: 42.918438,13.051269 + 829: 39.870995,13.85205 + 830: 41.902626,15.746582 + 831: 46.180763,13.930175 + 1059: 14.330111,3.9824858 + 1060: 12.376621,0.544986 + 1061: 6.418482,3.3184235 + 1062: 15.951506,-0.21673274 + 1063: 5.217084,2.107486 + 1064: 0.90405226,2.0488923 + 1066: 2.037076,3.4160798 + - node: + color: '#FFFFFFFF' + id: Grassc2 + decals: + 290: 26.902277,40.244667 + 578: -0.31653666,18.707207 + 579: 0.5820687,20.191582 + 580: 3.62951,17.98455 + 581: 2.496486,20.347832 + 582: 1.7541611,22.320488 + 715: 18.05331,12.013544 + 716: 16.060753,15.958857 + 717: 20.905405,15.763544 + 718: 21.843079,16.095575 + 719: 22.272846,15.70495 + 832: 39.890533,15.961426 + 833: 40.984486,11.996581 + 953: 16.169617,7.9514074 + 954: 13.14171,8.92797 + 955: 17.517525,8.029532 + - node: + color: '#FFFFFFFF' + id: Grassc3 + decals: + 957: 19.764036,7.8928137 + - node: + color: '#FFFFFFFF' + id: Grassc4 + decals: + 725: 16.861683,12.169794 + 956: 15.5445,8.967032 + - node: + color: '#FFFFFFFF' + id: Grassd2 + decals: + 429: 10.466182,30.751999 + - node: + color: '#FFFFFFFF' + id: Grassd3 + decals: + 491: 20.253021,31.491745 + 528: 8.391818,24.46809 + 529: 10.228097,26.245434 + - node: + color: '#FFFFFFFF' + id: Grasse1 + decals: + 492: 18.475348,31.433151 + 530: 8.880191,24.897778 + 531: 8.27461,26.96809 + - node: + color: '#FFFFFFFF' + id: Rock01 + decals: + 401: 25.34346,34.84643 + 539: 9.563912,24.038403 + 562: 20.240694,23.867771 + 565: 20.78767,26.055271 + 651: 19.327755,19.031685 + 686: 0.29748917,16.193232 + 692: 8.390001,12.013544 + 803: 30.153423,12.142694 + 975: 21.151012,9.357657 + 980: 17.41985,7.2678137 + 990: 30.826988,7.891163 + 1012: 32.7139,7.623206 + 1138: 1.3054981,1.731636 + 1139: 9.744568,1.653511 + 1140: 6.5994506,2.981636 + 1156: 15.86425,0.2826302 + - node: + color: '#FFFFFFFF' + id: Rock02 + decals: + 650: 18.116592,18.680122 + 735: 21.276567,13.224482 + 753: 28.68622,15.428545 + 755: 29.233196,12.362139 + 834: 41.570534,14.105956 + 898: 6.9743156,7.068447 + 1148: 4.4945917,3.9349737 + 1149: 3.5373816,0.2435677 + - node: + color: '#FFFFFFFF' + id: Rock03 + decals: + 446: 4.1107063,31.317839 + 447: 7.5090446,30.790495 + 448: 10.594859,30.829557 + 532: 8.860656,27.456371 + 566: 21.94023,26.797459 + 593: 6.1821012,19.381834 + 594: 8.448148,19.772459 + 599: 10.212341,22.139599 + 600: 7.5555973,19.209911 + 603: 8.063505,20.948193 + 653: 18.604965,20.652779 + 685: 0.4146986,12.189325 + 687: 5.5328383,15.372919 + 691: 8.429071,15.490107 + 695: 11.020328,14.415888 + 773: 25.677849,15.252764 + 799: 36.357685,12.767694 + 802: 30.446447,16.30285 + 904: 7.3144765,10.069919 + 974: 12.497059,9.260001 + 978: 15.212408,9.377189 + 986: 26.50387,8.388484 + 989: 30.084663,9.336475 + 992: 31.452105,6.660694 + 1147: 11.698975,1.8292923 + 1261: 24.039856,2.3897204 + 1262: 20.692291,2.4483142 + - node: + color: '#FFFFFFFF' + id: Rock04 + decals: + 567: 22.213717,27.891209 + 690: 9.816048,14.591669 + 694: 12.426841,14.2987 + 697: 10.688235,13.341669 + 776: 25.423895,12.909014 + 804: 29.430634,13.060663 + 837: 46.024487,15.336425 + 893: 0.39105964,7.302822 + 894: 5.177107,6.443447 + 897: 1.2701299,9.76376 + 981: 13.986786,7.432124 + 987: 26.777359,7.0601273 + 1146: 9.628277,0.012886047 + 1150: 1.4471488,2.6654427 + 1158: 12.855877,3.8373175 + 1234: 47.40077,0.35847044 + 1235: 47.3617,3.4053454 + 1236: 42.790535,3.9522204 + 1241: 43.33751,2.7998767 + 1242: 46.63891,3.0147204 + 1249: 40.27247,1.1983142 + 1250: 40.174793,2.7998767 + 1258: 28.244753,2.3897204 + 1259: 27.562717,0.98347044 + 1260: 24.63636,1.5889392 + - node: + color: '#FFFFFFFF' + id: Rock05 + decals: + 372: 15.914415,34.235424 + 514: 17.791626,29.948776 + 540: 8.352748,25.913403 + 568: 20.338367,27.500584 + 569: 20.182089,24.922459 + 601: 5.856062,20.987255 + 602: 9.7435055,19.03413 + 652: 20.851477,18.64106 + 698: 10.7468405,11.661982 + 758: 28.842499,13.9051075 + 771: 24.134592,15.252764 + 772: 25.853662,12.127764 + 800: 33.19303,15.404413 + 801: 29.567377,15.423944 + 895: 4.43478,7.283291 + 896: 4.727804,8.279385 + 901: 8.439432,6.599697 + 902: 9.17029,9.9332 + 972: 11.969616,5.744376 + 973: 12.516594,7.6389074 + 976: 21.483107,7.5803137 + 979: 15.3100815,7.3264074 + 1011: 33,8 + 1141: 3.3566604,0.87226105 + 1142: 0.5436373,0.6183548 + 1145: 10.194788,0.44257355 + 1151: 2.326219,2.3334115 + 1152: 9.710406,2.5482552 + 1153: 12.311207,3.1927865 + 1157: 14.418669,-0.068932295 + 1232: 43.45472,0.82722044 + 1233: 46.89286,0.20222044 + 1237: 42.712395,0.6514392 + 1238: 47.908676,1.0615954 + 1239: 48.41658,0.74909544 + 1243: 43.78681,3.913158 + 1244: 42.888206,0.08503294 + 1247: 45.31053,2.9561267 + 1248: 38.727844,2.8780017 + - node: + color: '#FFFFFFFF' + id: Rock06 + decals: + 373: 13.2967415,35.777622 + 374: 21.579533,34.429966 + 402: 26.18346,36.09643 + 403: 24.562063,34.22143 + 404: 32.839546,34.22143 + 444: 1.512568,30.810026 + 509: 18.084648,31.198776 + 510: 22.987906,31.042526 + 512: 21.151627,30.046432 + 534: 8.020656,25.151684 + 563: 21.412786,24.00449 + 595: 6.670474,18.209959 + 596: 8.81931,18.151365 + 597: 7.0221014,21.120115 + 598: 10.245358,21.276365 + 647: 19.542639,21.355904 + 648: 21.808685,19.42231 + 681: 2.0946975,13.029169 + 684: 5.2984195,12.1112 + 688: 3.4230704,16.134638 + 693: 12.270562,14.064325 + 696: 12.192422,13.400263 + 728: 16.588194,14.806513 + 756: 28.64715,13.00667 + 757: 29.350407,15.0769825 + 774: 24.60343,12.088701 + 795: 32.489777,14.056757 + 796: 35.341873,15.970819 + 835: 43.504486,14.105956 + 891: 6.4859447,7.8106346 + 892: 1.3482683,8.591885 + 900: 7.9510593,7.283291 + 903: 8.174011,9.874606 + 977: 20.682175,7.6389074 + 982: 12.5607395,5.791499 + 983: 22.152367,5.9086866 + 985: 29.004337,8.290828 + 988: 27.884186,9.316944 + 991: 31.256756,8.242725 + 1143: 3.532474,3.5675735 + 1144: 12.593844,2.512886 + 1154: 15.78611,2.1966927 + 1155: 15.551691,1.0834115 + 1229: 42.477974,1.7647204 + 1230: 44.665886,3.3076892 + 1231: 47.107742,1.8819079 + 1240: 41.559837,2.194408 + 1245: 46.521698,0.4951892 + 1246: 45.291,1.1201892 + 1263: 19.832756,2.2334704 + 1264: 19.637407,3.678783 + - node: + color: '#FFFFFFFF' + id: Rock07 + decals: + 405: 30.612572,34.944088 + 445: 4.9702415,29.794401 + 508: 14.392555,31.452682 + 564: 20.70953,24.356052 + 649: 18.272871,20.945747 + 654: 20.46078,20.613716 + 682: 0.5905123,15.255732 + 683: 4.067722,15.841669 + 689: 9.50349,13.615107 + 734: 15.826334,15.763544 + 775: 24.134592,13.1238575 + 797: 37.451637,14.877069 + 798: 32.880474,12.689569 + 836: 45.497044,15.687988 + 899: 8.537107,7.068447 + 984: 21.76167,5.8110304 + 993: 26.333963,6.348194 + - node: + color: '#FFFFFFFF' + id: StandClear + decals: + 13: 11,44 + - node: + color: '#FFFFFFFF' + id: WarnBox + decals: + 811: 41,15 + 812: 45,15 + 813: 43,15 + - node: + color: '#FFFFFFFF' + id: WarnCornerNE + decals: + 60: 26,13 + - node: + color: '#FFFFFFFF' + id: WarnCornerSE + decals: + 199: 26,15 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallNE + decals: + 466: 28,32 + 467: 32,32 + 468: 36,32 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallNW + decals: + 461: 36,32 + 463: 32,32 + 464: 40,32 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallSE + decals: + 470: 30,30 + 472: 34,30 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallSW + decals: + 475: 34,30 + 476: 38,30 + - node: + color: '#FFFFFFFF' + id: WarnLineE + decals: + 22: 16,45 + 61: 26,12 + 93: 6,46 + 94: 6,45 + 95: 6,44 + 122: 24,21 + 123: 24,20 + 124: 24,19 + 764: 26,16 + - node: + color: '#FFFFFFFF' + id: WarnLineN + decals: + 5: 12,47 + 6: 10,47 + 20: 19,48 + 87: 2,42 + 88: 3,42 + 89: 4,42 + 97: 31,30 + 98: 32,30 + 99: 33,30 + 100: 35,30 + 101: 36,30 + 102: 37,30 + 110: 16,24 + 111: 18,24 + 125: 25,22 + 126: 26,22 + 127: 27,22 + 197: 24,15 + 198: 25,15 + - node: + color: '#FFFFFFFF' + id: WarnLineS + decals: + 21: 22,45 + 90: 0,46 + 91: 0,45 + 92: 0,44 + 128: 28,20 + 129: 28,21 + 130: 28,19 + - node: + color: '#FFFFFFFF' + id: WarnLineW + decals: + 2: 12,44 + 3: 11,44 + 4: 10,44 + 58: 25,13 + 59: 24,13 + 103: 29,32 + 104: 30,32 + 105: 31,32 + 106: 37,32 + 107: 38,32 + 108: 39,32 + 109: 19,42 + 112: 16,28 + 113: 18,28 + 119: 25,18 + 120: 26,18 + 121: 27,18 + 451: 33,32 + 452: 34,32 + 453: 35,32 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinInnerNe + decals: + 752: 32,12 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinInnerNw + decals: + 754: 38,12 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinInnerSe + decals: + 760: 32,16 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinInnerSw + decals: + 759: 38,16 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineE + decals: + 722: 38,12 + 723: 38,13 + 724: 38,14 + 726: 38,15 + 727: 38,16 + 749: 32,15 + 750: 32,14 + 751: 32,13 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineN + decals: + 211: 32,16 + 212: 33,16 + 213: 34,16 + 214: 35,16 + 215: 36,16 + 216: 37,16 + 217: 38,16 + 739: 37,12 + 740: 36,12 + 741: 35,12 + 742: 34,12 + 743: 33,12 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineS + decals: + 218: 32,12 + 219: 33,12 + 220: 34,12 + 221: 35,12 + 222: 36,12 + 223: 37,12 + 224: 38,12 + 744: 33,16 + 745: 34,16 + 746: 35,16 + 747: 36,16 + 748: 37,16 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineW + decals: + 729: 32,12 + 730: 32,13 + 731: 32,14 + 732: 32,15 + 733: 32,16 + 736: 38,15 + 737: 38,14 + 738: 38,13 + - node: + color: '#FFFFFFFF' + id: bushsnowa1 + decals: + 589: 0.09369588,19.957207 + - node: + color: '#FFFFFFFF' + id: bushsnowa3 + decals: + 637: 14.075072,21.188639 + - node: + color: '#FFFFFFFF' + id: bushsnowb1 + decals: + 437: 8.061874,30.829557 + - node: + color: '#FFFFFFFF' + id: bushsnowb2 + decals: + 386: 26.40515,36.174557 + 387: 31.699104,34.612057 + 388: 33.574455,35.510494 + 422: 1.9154136,31.103561 + 505: 16.990696,31.433151 + 506: 24.238138,30.495651 + 507: 26.133022,29.812057 + 590: 2.1253235,21.40252 + 635: 13.196004,19.255045 + 636: 15.95042,20.387857 + - node: + color: '#FFFFFFFF' + id: bushsnowb3 + decals: + 591: 3.3950913,22.320488 + 592: 0.91416097,18.668144 + - node: + color: '#FFFFFFFF' + id: chevron + decals: + 19: 11,48 + - node: + color: '#FFFFFFFF' + id: grasssnow03 + decals: + 641: 14.4071665,20.192545 + - node: + color: '#FFFFFFFF' + id: grasssnow07 + decals: + 642: 13.62577,19.997232 + - type: RadiationGridResistance + - type: LoadedMap + - type: SpreaderGrid + - type: GridTree + - type: MovedGrids + - type: GridPathfinding +- proto: ADTArmchairBrown2 + entities: + - uid: 2 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,38.5 + parent: 1 + - uid: 3 + components: + - type: Transform + pos: 33.5,40.5 + parent: 1 + - uid: 4 + components: + - type: Transform + pos: 2.5,40.5 + parent: 1 + - uid: 5 + components: + - type: Transform + pos: 4.5,40.5 + parent: 1 + - uid: 6 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,38.5 + parent: 1 + - uid: 7 + components: + - type: Transform + pos: 34.5,40.5 + parent: 1 + - uid: 8 + components: + - type: Transform + pos: 53.5,4.5 + parent: 1 + - uid: 9 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,0.5 + parent: 1 + - uid: 10 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,0.5 + parent: 1 + - uid: 11 + components: + - type: Transform + pos: 37.5,4.5 + parent: 1 +- proto: ADTBookNewRecipes + entities: + - uid: 12 + components: + - type: Transform + pos: 17.845797,15.561977 + parent: 1 +- proto: ADTcannabiswhiteSeeds + entities: + - uid: 14 + components: + - type: Transform + parent: 13 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 15 + components: + - type: Transform + parent: 13 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ADTFoodSnackChipsOnionAndSourcream + entities: + - uid: 17 + components: + - type: Transform + pos: 6.6008787,4.629713 + parent: 1 +- proto: ADTPapaverSomniferumSeeds + entities: + - uid: 18 + components: + - type: Transform + pos: 15.377501,36.55106 + parent: 1 + - uid: 19 + components: + - type: Transform + pos: 20.539764,30.488588 + parent: 1 +- proto: ADTPosterLegitGreatFood + entities: + - uid: 20 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,10.5 + parent: 1 +- proto: ADTSofaBrownLeftSide + entities: + - uid: 21 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,38.5 + parent: 1 +- proto: ADTSofaBrownLeftSide2 + entities: + - uid: 22 + components: + - type: Transform + pos: 17.5,16.5 + parent: 1 + - uid: 23 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,12.5 + parent: 1 +- proto: ADTSofaBrownMiddle + entities: + - uid: 24 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,12.5 + parent: 1 + - uid: 25 + components: + - type: Transform + pos: 18.5,16.5 + parent: 1 +- proto: ADTSofaBrownRightSide + entities: + - uid: 26 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,38.5 + parent: 1 +- proto: ADTSofaBrownRightSide2 + entities: + - uid: 27 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,12.5 + parent: 1 + - uid: 28 + components: + - type: Transform + pos: 19.5,16.5 + parent: 1 +- proto: ADTSpaceBushGlass + entities: + - uid: 29 + components: + - type: Transform + pos: 2.2250493,25.533854 + parent: 1 +- proto: ADTWhiteStool + entities: + - uid: 30 + components: + - type: Transform + pos: 12.5,13.5 + parent: 1 + - uid: 31 + components: + - type: Transform + pos: 26.5,35.5 + parent: 1 + - uid: 32 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,35.5 + parent: 1 + - uid: 33 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,34.5 + parent: 1 + - uid: 34 + components: + - type: Transform + pos: 10.5,13.5 + parent: 1 + - uid: 35 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,15.5 + parent: 1 + - uid: 36 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,15.5 + parent: 1 +- proto: Airlock + entities: + - uid: 37 + components: + - type: Transform + pos: 41.5,3.5 + parent: 1 + - uid: 38 + components: + - type: Transform + pos: 41.5,1.5 + parent: 1 + - uid: 39 + components: + - type: Transform + pos: 49.5,1.5 + parent: 1 + - uid: 40 + components: + - type: Transform + pos: 49.5,3.5 + parent: 1 +- proto: AirlockCentcomGlass + entities: + - uid: 41 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,38.5 + parent: 1 +- proto: AirlockCentcomHatch + entities: + - uid: 42 + components: + - type: Transform + pos: 34.5,20.5 + parent: 1 + - uid: 43 + components: + - type: Transform + pos: 30.5,20.5 + parent: 1 +- proto: AirlockFreezer + entities: + - uid: 44 + components: + - type: Transform + pos: 3.5,18.5 + parent: 1 +- proto: AirlockGlass + entities: + - uid: 45 + components: + - type: Transform + pos: 4.5,2.5 + parent: 1 +- proto: AirlockHydroponicsLocked + entities: + - uid: 46 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,14.5 + parent: 1 +- proto: AltarDruid + entities: + - uid: 47 + components: + - type: Transform + pos: 26.5,2.5 + parent: 1 + - uid: 48 + components: + - type: Transform + pos: 8.5,19.5 + parent: 1 +- proto: AmbrosiaDeusSeeds + entities: + - uid: 49 + components: + - type: Transform + pos: 36.745605,15.197053 + parent: 1 +- proto: AmbrosiaVulgarisSeeds + entities: + - uid: 50 + components: + - type: Transform + pos: 34.44873,13.618928 + parent: 1 +- proto: APCBasic + entities: + - uid: 51 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,9.5 + parent: 1 + - uid: 52 + components: + - type: Transform + pos: 28.5,22.5 + parent: 1 + - uid: 53 + components: + - type: Transform + pos: 13.5,43.5 + parent: 1 +- proto: AtmosFixFreezerMarker + entities: + - uid: 54 + components: + - type: Transform + pos: 18.5,43.5 + parent: 1 + - uid: 55 + components: + - type: Transform + pos: 18.5,44.5 + parent: 1 + - uid: 56 + components: + - type: Transform + pos: 18.5,45.5 + parent: 1 + - uid: 57 + components: + - type: Transform + pos: 18.5,46.5 + parent: 1 + - uid: 58 + components: + - type: Transform + pos: 18.5,47.5 + parent: 1 + - uid: 59 + components: + - type: Transform + pos: 19.5,43.5 + parent: 1 + - uid: 60 + components: + - type: Transform + pos: 19.5,44.5 + parent: 1 + - uid: 61 + components: + - type: Transform + pos: 19.5,45.5 + parent: 1 + - uid: 62 + components: + - type: Transform + pos: 19.5,46.5 + parent: 1 + - uid: 63 + components: + - type: Transform + pos: 19.5,47.5 + parent: 1 + - uid: 64 + components: + - type: Transform + pos: 20.5,43.5 + parent: 1 + - uid: 65 + components: + - type: Transform + pos: 20.5,44.5 + parent: 1 + - uid: 66 + components: + - type: Transform + pos: 20.5,45.5 + parent: 1 + - uid: 67 + components: + - type: Transform + pos: 20.5,46.5 + parent: 1 + - uid: 68 + components: + - type: Transform + pos: 20.5,47.5 + parent: 1 + - uid: 69 + components: + - type: Transform + pos: 21.5,44.5 + parent: 1 + - uid: 70 + components: + - type: Transform + pos: 21.5,45.5 + parent: 1 + - uid: 71 + components: + - type: Transform + pos: 21.5,46.5 + parent: 1 + - uid: 72 + components: + - type: Transform + pos: 17.5,44.5 + parent: 1 + - uid: 73 + components: + - type: Transform + pos: 17.5,45.5 + parent: 1 + - uid: 74 + components: + - type: Transform + pos: 17.5,46.5 + parent: 1 +- proto: Bed + entities: + - uid: 75 + components: + - type: Transform + pos: 42.5,0.5 + parent: 1 + - uid: 76 + components: + - type: Transform + pos: 2.5,28.5 + parent: 1 + - uid: 77 + components: + - type: Transform + pos: 48.5,0.5 + parent: 1 + - uid: 78 + components: + - type: Transform + pos: 42.5,4.5 + parent: 1 + - uid: 79 + components: + - type: Transform + pos: 2.5,24.5 + parent: 1 + - uid: 80 + components: + - type: Transform + pos: 48.5,4.5 + parent: 1 + - uid: 81 + components: + - type: Transform + pos: 2.5,26.5 + parent: 1 +- proto: BedsheetSpawner + entities: + - uid: 82 + components: + - type: Transform + pos: 42.5,0.5 + parent: 1 + - uid: 83 + components: + - type: Transform + pos: 42.5,4.5 + parent: 1 + - uid: 84 + components: + - type: Transform + pos: 48.5,0.5 + parent: 1 + - uid: 85 + components: + - type: Transform + pos: 48.5,4.5 + parent: 1 + - uid: 86 + components: + - type: Transform + pos: 2.5,24.5 + parent: 1 + - uid: 87 + components: + - type: Transform + pos: 2.5,26.5 + parent: 1 + - uid: 88 + components: + - type: Transform + pos: 2.5,28.5 + parent: 1 +- proto: Biofabricator + entities: + - uid: 89 + components: + - type: Transform + pos: 29.5,4.5 + parent: 1 +- proto: Bonfire + entities: + - uid: 90 + components: + - type: Transform + pos: 31.5,34.5 + parent: 1 + - uid: 91 + components: + - type: Transform + pos: 26.5,3.5 + parent: 1 + - uid: 92 + components: + - type: Transform + pos: 20.5,27.5 + parent: 1 +- proto: BookRandom + entities: + - uid: 93 + components: + - type: Transform + pos: 18.580172,15.530727 + parent: 1 + - uid: 94 + components: + - type: Transform + pos: 19.220797,15.530727 + parent: 1 +- proto: BoomBoxTapeWaterfall + entities: + - uid: 95 + components: + - type: Transform + pos: 10.523723,40.541286 + parent: 1 +- proto: BoxFolderBlue + entities: + - uid: 96 + components: + - type: Transform + pos: 6.0852537,4.535963 + parent: 1 + - uid: 97 + components: + - type: Transform + pos: 5.6629086,4.443941 + parent: 1 +- proto: BoxFolderBlueFilled + entities: + - uid: 98 + components: + - type: Transform + pos: 12.654503,4.4890146 + parent: 1 + - uid: 99 + components: + - type: Transform + pos: 12.763878,4.6608896 + parent: 1 +- proto: Bucket + entities: + - uid: 100 + components: + - type: Transform + pos: 6.6647444,38.674873 + parent: 1 + - uid: 101 + components: + - type: Transform + pos: 6.4928694,38.768623 + parent: 1 +- proto: CableApcExtension + entities: + - uid: 102 + components: + - type: Transform + pos: 0.5,39.5 + parent: 1 + - uid: 103 + components: + - type: Transform + pos: 1.5,39.5 + parent: 1 + - uid: 104 + components: + - type: Transform + pos: 2.5,39.5 + parent: 1 + - uid: 105 + components: + - type: Transform + pos: 3.5,39.5 + parent: 1 + - uid: 106 + components: + - type: Transform + pos: 4.5,39.5 + parent: 1 + - uid: 107 + components: + - type: Transform + pos: 5.5,39.5 + parent: 1 + - uid: 108 + components: + - type: Transform + pos: 6.5,39.5 + parent: 1 + - uid: 109 + components: + - type: Transform + pos: 8.5,39.5 + parent: 1 + - uid: 110 + components: + - type: Transform + pos: 9.5,39.5 + parent: 1 + - uid: 111 + components: + - type: Transform + pos: 10.5,39.5 + parent: 1 + - uid: 112 + components: + - type: Transform + pos: 11.5,39.5 + parent: 1 + - uid: 113 + components: + - type: Transform + pos: 12.5,39.5 + parent: 1 + - uid: 114 + components: + - type: Transform + pos: 13.5,39.5 + parent: 1 + - uid: 115 + components: + - type: Transform + pos: 14.5,39.5 + parent: 1 + - uid: 116 + components: + - type: Transform + pos: 16.5,39.5 + parent: 1 + - uid: 117 + components: + - type: Transform + pos: 17.5,39.5 + parent: 1 + - uid: 118 + components: + - type: Transform + pos: 18.5,39.5 + parent: 1 + - uid: 119 + components: + - type: Transform + pos: 19.5,39.5 + parent: 1 + - uid: 120 + components: + - type: Transform + pos: 20.5,39.5 + parent: 1 + - uid: 121 + components: + - type: Transform + pos: 21.5,39.5 + parent: 1 + - uid: 122 + components: + - type: Transform + pos: 22.5,39.5 + parent: 1 + - uid: 123 + components: + - type: Transform + pos: 24.5,39.5 + parent: 1 + - uid: 124 + components: + - type: Transform + pos: 25.5,39.5 + parent: 1 + - uid: 125 + components: + - type: Transform + pos: 26.5,39.5 + parent: 1 + - uid: 126 + components: + - type: Transform + pos: 27.5,39.5 + parent: 1 + - uid: 127 + components: + - type: Transform + pos: 28.5,39.5 + parent: 1 + - uid: 128 + components: + - type: Transform + pos: 29.5,39.5 + parent: 1 + - uid: 129 + components: + - type: Transform + pos: 30.5,39.5 + parent: 1 + - uid: 130 + components: + - type: Transform + pos: 32.5,39.5 + parent: 1 + - uid: 131 + components: + - type: Transform + pos: 33.5,39.5 + parent: 1 + - uid: 132 + components: + - type: Transform + pos: 34.5,39.5 + parent: 1 + - uid: 133 + components: + - type: Transform + pos: 35.5,39.5 + parent: 1 + - uid: 134 + components: + - type: Transform + pos: 36.5,39.5 + parent: 1 + - uid: 135 + components: + - type: Transform + pos: 37.5,39.5 + parent: 1 + - uid: 136 + components: + - type: Transform + pos: 38.5,39.5 + parent: 1 + - uid: 137 + components: + - type: Transform + pos: 40.5,39.5 + parent: 1 + - uid: 138 + components: + - type: Transform + pos: 41.5,39.5 + parent: 1 + - uid: 139 + components: + - type: Transform + pos: 42.5,39.5 + parent: 1 + - uid: 140 + components: + - type: Transform + pos: 43.5,39.5 + parent: 1 + - uid: 141 + components: + - type: Transform + pos: 44.5,39.5 + parent: 1 + - uid: 142 + components: + - type: Transform + pos: 45.5,39.5 + parent: 1 + - uid: 143 + components: + - type: Transform + pos: 46.5,39.5 + parent: 1 + - uid: 144 + components: + - type: Transform + pos: 34.5,35.5 + parent: 1 + - uid: 145 + components: + - type: Transform + pos: 33.5,35.5 + parent: 1 + - uid: 146 + components: + - type: Transform + pos: 32.5,35.5 + parent: 1 + - uid: 147 + components: + - type: Transform + pos: 31.5,35.5 + parent: 1 + - uid: 148 + components: + - type: Transform + pos: 30.5,35.5 + parent: 1 + - uid: 149 + components: + - type: Transform + pos: 29.5,35.5 + parent: 1 + - uid: 150 + components: + - type: Transform + pos: 28.5,35.5 + parent: 1 + - uid: 151 + components: + - type: Transform + pos: 27.5,35.5 + parent: 1 + - uid: 152 + components: + - type: Transform + pos: 26.5,35.5 + parent: 1 + - uid: 153 + components: + - type: Transform + pos: 25.5,35.5 + parent: 1 + - uid: 154 + components: + - type: Transform + pos: 24.5,35.5 + parent: 1 + - uid: 155 + components: + - type: Transform + pos: 22.5,35.5 + parent: 1 + - uid: 156 + components: + - type: Transform + pos: 21.5,35.5 + parent: 1 + - uid: 157 + components: + - type: Transform + pos: 20.5,35.5 + parent: 1 + - uid: 158 + components: + - type: Transform + pos: 19.5,35.5 + parent: 1 + - uid: 159 + components: + - type: Transform + pos: 18.5,35.5 + parent: 1 + - uid: 160 + components: + - type: Transform + pos: 17.5,35.5 + parent: 1 + - uid: 161 + components: + - type: Transform + pos: 16.5,35.5 + parent: 1 + - uid: 162 + components: + - type: Transform + pos: 15.5,35.5 + parent: 1 + - uid: 163 + components: + - type: Transform + pos: 14.5,35.5 + parent: 1 + - uid: 164 + components: + - type: Transform + pos: 13.5,35.5 + parent: 1 + - uid: 165 + components: + - type: Transform + pos: 12.5,35.5 + parent: 1 + - uid: 166 + components: + - type: Transform + pos: 10.5,35.5 + parent: 1 + - uid: 167 + components: + - type: Transform + pos: 9.5,35.5 + parent: 1 + - uid: 168 + components: + - type: Transform + pos: 8.5,35.5 + parent: 1 + - uid: 169 + components: + - type: Transform + pos: 7.5,35.5 + parent: 1 + - uid: 170 + components: + - type: Transform + pos: 6.5,35.5 + parent: 1 + - uid: 171 + components: + - type: Transform + pos: 5.5,35.5 + parent: 1 + - uid: 172 + components: + - type: Transform + pos: 4.5,35.5 + parent: 1 + - uid: 173 + components: + - type: Transform + pos: 3.5,35.5 + parent: 1 + - uid: 174 + components: + - type: Transform + pos: 2.5,35.5 + parent: 1 + - uid: 175 + components: + - type: Transform + pos: 1.5,35.5 + parent: 1 + - uid: 176 + components: + - type: Transform + pos: 0.5,35.5 + parent: 1 + - uid: 177 + components: + - type: Transform + pos: 3.5,42.5 + parent: 1 + - uid: 178 + components: + - type: Transform + pos: 3.5,43.5 + parent: 1 + - uid: 179 + components: + - type: Transform + pos: 3.5,44.5 + parent: 1 + - uid: 180 + components: + - type: Transform + pos: 3.5,45.5 + parent: 1 + - uid: 181 + components: + - type: Transform + pos: 3.5,46.5 + parent: 1 + - uid: 182 + components: + - type: Transform + pos: 3.5,47.5 + parent: 1 + - uid: 183 + components: + - type: Transform + pos: 3.5,48.5 + parent: 1 + - uid: 184 + components: + - type: Transform + pos: 0.5,45.5 + parent: 1 + - uid: 185 + components: + - type: Transform + pos: 1.5,45.5 + parent: 1 + - uid: 186 + components: + - type: Transform + pos: 2.5,45.5 + parent: 1 + - uid: 187 + components: + - type: Transform + pos: 4.5,45.5 + parent: 1 + - uid: 188 + components: + - type: Transform + pos: 5.5,45.5 + parent: 1 + - uid: 189 + components: + - type: Transform + pos: 6.5,45.5 + parent: 1 + - uid: 190 + components: + - type: Transform + pos: 8.5,45.5 + parent: 1 + - uid: 191 + components: + - type: Transform + pos: 9.5,45.5 + parent: 1 + - uid: 192 + components: + - type: Transform + pos: 10.5,45.5 + parent: 1 + - uid: 193 + components: + - type: Transform + pos: 11.5,45.5 + parent: 1 + - uid: 194 + components: + - type: Transform + pos: 12.5,45.5 + parent: 1 + - uid: 195 + components: + - type: Transform + pos: 13.5,45.5 + parent: 1 + - uid: 196 + components: + - type: Transform + pos: 14.5,45.5 + parent: 1 + - uid: 197 + components: + - type: Transform + pos: 11.5,42.5 + parent: 1 + - uid: 198 + components: + - type: Transform + pos: 11.5,43.5 + parent: 1 + - uid: 199 + components: + - type: Transform + pos: 11.5,44.5 + parent: 1 + - uid: 200 + components: + - type: Transform + pos: 11.5,46.5 + parent: 1 + - uid: 201 + components: + - type: Transform + pos: 11.5,47.5 + parent: 1 + - uid: 202 + components: + - type: Transform + pos: 11.5,48.5 + parent: 1 + - uid: 203 + components: + - type: Transform + pos: 16.5,45.5 + parent: 1 + - uid: 204 + components: + - type: Transform + pos: 17.5,45.5 + parent: 1 + - uid: 205 + components: + - type: Transform + pos: 18.5,45.5 + parent: 1 + - uid: 206 + components: + - type: Transform + pos: 19.5,45.5 + parent: 1 + - uid: 207 + components: + - type: Transform + pos: 20.5,45.5 + parent: 1 + - uid: 208 + components: + - type: Transform + pos: 21.5,45.5 + parent: 1 + - uid: 209 + components: + - type: Transform + pos: 22.5,45.5 + parent: 1 + - uid: 210 + components: + - type: Transform + pos: 19.5,42.5 + parent: 1 + - uid: 211 + components: + - type: Transform + pos: 19.5,43.5 + parent: 1 + - uid: 212 + components: + - type: Transform + pos: 19.5,44.5 + parent: 1 + - uid: 213 + components: + - type: Transform + pos: 19.5,46.5 + parent: 1 + - uid: 214 + components: + - type: Transform + pos: 19.5,47.5 + parent: 1 + - uid: 215 + components: + - type: Transform + pos: 19.5,48.5 + parent: 1 + - uid: 216 + components: + - type: Transform + pos: 40.5,31.5 + parent: 1 + - uid: 217 + components: + - type: Transform + pos: 39.5,31.5 + parent: 1 + - uid: 218 + components: + - type: Transform + pos: 38.5,31.5 + parent: 1 + - uid: 219 + components: + - type: Transform + pos: 37.5,31.5 + parent: 1 + - uid: 220 + components: + - type: Transform + pos: 36.5,31.5 + parent: 1 + - uid: 221 + components: + - type: Transform + pos: 35.5,31.5 + parent: 1 + - uid: 222 + components: + - type: Transform + pos: 34.5,31.5 + parent: 1 + - uid: 223 + components: + - type: Transform + pos: 33.5,31.5 + parent: 1 + - uid: 224 + components: + - type: Transform + pos: 32.5,31.5 + parent: 1 + - uid: 225 + components: + - type: Transform + pos: 31.5,31.5 + parent: 1 + - uid: 226 + components: + - type: Transform + pos: 30.5,31.5 + parent: 1 + - uid: 227 + components: + - type: Transform + pos: 29.5,31.5 + parent: 1 + - uid: 228 + components: + - type: Transform + pos: 28.5,31.5 + parent: 1 + - uid: 229 + components: + - type: Transform + pos: 26.5,31.5 + parent: 1 + - uid: 230 + components: + - type: Transform + pos: 25.5,31.5 + parent: 1 + - uid: 231 + components: + - type: Transform + pos: 24.5,31.5 + parent: 1 + - uid: 232 + components: + - type: Transform + pos: 23.5,31.5 + parent: 1 + - uid: 233 + components: + - type: Transform + pos: 22.5,31.5 + parent: 1 + - uid: 234 + components: + - type: Transform + pos: 21.5,31.5 + parent: 1 + - uid: 235 + components: + - type: Transform + pos: 20.5,31.5 + parent: 1 + - uid: 236 + components: + - type: Transform + pos: 19.5,31.5 + parent: 1 + - uid: 237 + components: + - type: Transform + pos: 18.5,31.5 + parent: 1 + - uid: 238 + components: + - type: Transform + pos: 17.5,31.5 + parent: 1 + - uid: 239 + components: + - type: Transform + pos: 16.5,31.5 + parent: 1 + - uid: 240 + components: + - type: Transform + pos: 15.5,31.5 + parent: 1 + - uid: 241 + components: + - type: Transform + pos: 14.5,31.5 + parent: 1 + - uid: 242 + components: + - type: Transform + pos: 11.5,31.5 + parent: 1 + - uid: 243 + components: + - type: Transform + pos: 10.5,31.5 + parent: 1 + - uid: 244 + components: + - type: Transform + pos: 9.5,31.5 + parent: 1 + - uid: 245 + components: + - type: Transform + pos: 8.5,31.5 + parent: 1 + - uid: 246 + components: + - type: Transform + pos: 7.5,31.5 + parent: 1 + - uid: 247 + components: + - type: Transform + pos: 6.5,31.5 + parent: 1 + - uid: 248 + components: + - type: Transform + pos: 5.5,31.5 + parent: 1 + - uid: 249 + components: + - type: Transform + pos: 4.5,31.5 + parent: 1 + - uid: 250 + components: + - type: Transform + pos: 3.5,31.5 + parent: 1 + - uid: 251 + components: + - type: Transform + pos: 2.5,31.5 + parent: 1 + - uid: 252 + components: + - type: Transform + pos: 1.5,31.5 + parent: 1 + - uid: 253 + components: + - type: Transform + pos: 0.5,31.5 + parent: 1 + - uid: 254 + components: + - type: Transform + pos: 12.5,31.5 + parent: 1 + - uid: 255 + components: + - type: Transform + pos: 1.5,24.5 + parent: 1 + - uid: 256 + components: + - type: Transform + pos: 1.5,25.5 + parent: 1 + - uid: 257 + components: + - type: Transform + pos: 1.5,26.5 + parent: 1 + - uid: 258 + components: + - type: Transform + pos: 1.5,27.5 + parent: 1 + - uid: 259 + components: + - type: Transform + pos: 1.5,28.5 + parent: 1 + - uid: 260 + components: + - type: Transform + pos: 5.5,28.5 + parent: 1 + - uid: 261 + components: + - type: Transform + pos: 5.5,27.5 + parent: 1 + - uid: 262 + components: + - type: Transform + pos: 5.5,26.5 + parent: 1 + - uid: 263 + components: + - type: Transform + pos: 5.5,25.5 + parent: 1 + - uid: 264 + components: + - type: Transform + pos: 5.5,24.5 + parent: 1 + - uid: 265 + components: + - type: Transform + pos: 4.5,26.5 + parent: 1 + - uid: 266 + components: + - type: Transform + pos: 6.5,26.5 + parent: 1 + - uid: 267 + components: + - type: Transform + pos: 2.5,26.5 + parent: 1 + - uid: 268 + components: + - type: Transform + pos: 0.5,26.5 + parent: 1 + - uid: 269 + components: + - type: Transform + pos: 9.5,24.5 + parent: 1 + - uid: 270 + components: + - type: Transform + pos: 9.5,25.5 + parent: 1 + - uid: 271 + components: + - type: Transform + pos: 9.5,26.5 + parent: 1 + - uid: 272 + components: + - type: Transform + pos: 9.5,27.5 + parent: 1 + - uid: 273 + components: + - type: Transform + pos: 9.5,28.5 + parent: 1 + - uid: 274 + components: + - type: Transform + pos: 10.5,26.5 + parent: 1 + - uid: 275 + components: + - type: Transform + pos: 8.5,26.5 + parent: 1 + - uid: 276 + components: + - type: Transform + pos: 3.5,38.5 + parent: 1 + - uid: 277 + components: + - type: Transform + pos: 3.5,40.5 + parent: 1 + - uid: 278 + components: + - type: Transform + pos: 11.5,38.5 + parent: 1 + - uid: 279 + components: + - type: Transform + pos: 11.5,40.5 + parent: 1 + - uid: 280 + components: + - type: Transform + pos: 19.5,38.5 + parent: 1 + - uid: 281 + components: + - type: Transform + pos: 19.5,40.5 + parent: 1 + - uid: 282 + components: + - type: Transform + pos: 27.5,38.5 + parent: 1 + - uid: 283 + components: + - type: Transform + pos: 27.5,40.5 + parent: 1 + - uid: 284 + components: + - type: Transform + pos: 35.5,38.5 + parent: 1 + - uid: 285 + components: + - type: Transform + pos: 35.5,40.5 + parent: 1 + - uid: 286 + components: + - type: Transform + pos: 43.5,38.5 + parent: 1 + - uid: 287 + components: + - type: Transform + pos: 43.5,40.5 + parent: 1 + - uid: 288 + components: + - type: Transform + pos: 29.5,36.5 + parent: 1 + - uid: 289 + components: + - type: Transform + pos: 29.5,34.5 + parent: 1 + - uid: 290 + components: + - type: Transform + pos: 17.5,34.5 + parent: 1 + - uid: 291 + components: + - type: Transform + pos: 17.5,36.5 + parent: 1 + - uid: 292 + components: + - type: Transform + pos: 5.5,34.5 + parent: 1 + - uid: 293 + components: + - type: Transform + pos: 5.5,36.5 + parent: 1 + - uid: 294 + components: + - type: Transform + pos: 20.5,32.5 + parent: 1 + - uid: 295 + components: + - type: Transform + pos: 20.5,30.5 + parent: 1 + - uid: 296 + components: + - type: Transform + pos: 34.5,32.5 + parent: 1 + - uid: 297 + components: + - type: Transform + pos: 34.5,30.5 + parent: 1 + - uid: 298 + components: + - type: Transform + pos: 13.5,24.5 + parent: 1 + - uid: 299 + components: + - type: Transform + pos: 13.5,25.5 + parent: 1 + - uid: 300 + components: + - type: Transform + pos: 13.5,26.5 + parent: 1 + - uid: 301 + components: + - type: Transform + pos: 13.5,27.5 + parent: 1 + - uid: 302 + components: + - type: Transform + pos: 13.5,28.5 + parent: 1 + - uid: 303 + components: + - type: Transform + pos: 12.5,26.5 + parent: 1 + - uid: 304 + components: + - type: Transform + pos: 14.5,26.5 + parent: 1 + - uid: 305 + components: + - type: Transform + pos: 17.5,24.5 + parent: 1 + - uid: 306 + components: + - type: Transform + pos: 17.5,25.5 + parent: 1 + - uid: 307 + components: + - type: Transform + pos: 17.5,26.5 + parent: 1 + - uid: 308 + components: + - type: Transform + pos: 17.5,27.5 + parent: 1 + - uid: 309 + components: + - type: Transform + pos: 17.5,28.5 + parent: 1 + - uid: 310 + components: + - type: Transform + pos: 16.5,26.5 + parent: 1 + - uid: 311 + components: + - type: Transform + pos: 18.5,26.5 + parent: 1 + - uid: 312 + components: + - type: Transform + pos: 21.5,24.5 + parent: 1 + - uid: 313 + components: + - type: Transform + pos: 21.5,25.5 + parent: 1 + - uid: 314 + components: + - type: Transform + pos: 21.5,26.5 + parent: 1 + - uid: 315 + components: + - type: Transform + pos: 21.5,27.5 + parent: 1 + - uid: 316 + components: + - type: Transform + pos: 21.5,28.5 + parent: 1 + - uid: 317 + components: + - type: Transform + pos: 20.5,26.5 + parent: 1 + - uid: 318 + components: + - type: Transform + pos: 22.5,26.5 + parent: 1 + - uid: 319 + components: + - type: Transform + pos: 2.5,18.5 + parent: 1 + - uid: 320 + components: + - type: Transform + pos: 2.5,19.5 + parent: 1 + - uid: 321 + components: + - type: Transform + pos: 2.5,20.5 + parent: 1 + - uid: 322 + components: + - type: Transform + pos: 2.5,21.5 + parent: 1 + - uid: 323 + components: + - type: Transform + pos: 2.5,22.5 + parent: 1 + - uid: 324 + components: + - type: Transform + pos: 3.5,20.5 + parent: 1 + - uid: 325 + components: + - type: Transform + pos: 4.5,20.5 + parent: 1 + - uid: 326 + components: + - type: Transform + pos: 1.5,20.5 + parent: 1 + - uid: 327 + components: + - type: Transform + pos: 0.5,20.5 + parent: 1 + - uid: 328 + components: + - type: Transform + pos: 8.5,18.5 + parent: 1 + - uid: 329 + components: + - type: Transform + pos: 7.5,19.5 + parent: 1 + - uid: 330 + components: + - type: Transform + pos: 7.5,21.5 + parent: 1 + - uid: 331 + components: + - type: Transform + pos: 7.5,18.5 + parent: 1 + - uid: 332 + components: + - type: Transform + pos: 8.5,22.5 + parent: 1 + - uid: 333 + components: + - type: Transform + pos: 6.5,19.5 + parent: 1 + - uid: 334 + components: + - type: Transform + pos: 6.5,20.5 + parent: 1 + - uid: 335 + components: + - type: Transform + pos: 6.5,21.5 + parent: 1 + - uid: 336 + components: + - type: Transform + pos: 10.5,20.5 + parent: 1 + - uid: 337 + components: + - type: Transform + pos: 14.5,18.5 + parent: 1 + - uid: 338 + components: + - type: Transform + pos: 14.5,19.5 + parent: 1 + - uid: 339 + components: + - type: Transform + pos: 13.5,21.5 + parent: 1 + - uid: 340 + components: + - type: Transform + pos: 14.5,21.5 + parent: 1 + - uid: 341 + components: + - type: Transform + pos: 14.5,22.5 + parent: 1 + - uid: 342 + components: + - type: Transform + pos: 13.5,20.5 + parent: 1 + - uid: 343 + components: + - type: Transform + pos: 12.5,20.5 + parent: 1 + - uid: 344 + components: + - type: Transform + pos: 15.5,20.5 + parent: 1 + - uid: 345 + components: + - type: Transform + pos: 16.5,20.5 + parent: 1 + - uid: 346 + components: + - type: Transform + pos: 20.5,18.5 + parent: 1 + - uid: 347 + components: + - type: Transform + pos: 20.5,19.5 + parent: 1 + - uid: 348 + components: + - type: Transform + pos: 20.5,20.5 + parent: 1 + - uid: 349 + components: + - type: Transform + pos: 20.5,21.5 + parent: 1 + - uid: 350 + components: + - type: Transform + pos: 20.5,22.5 + parent: 1 + - uid: 351 + components: + - type: Transform + pos: 19.5,20.5 + parent: 1 + - uid: 352 + components: + - type: Transform + pos: 18.5,20.5 + parent: 1 + - uid: 353 + components: + - type: Transform + pos: 21.5,20.5 + parent: 1 + - uid: 354 + components: + - type: Transform + pos: 22.5,20.5 + parent: 1 + - uid: 355 + components: + - type: Transform + pos: 26.5,18.5 + parent: 1 + - uid: 356 + components: + - type: Transform + pos: 26.5,19.5 + parent: 1 + - uid: 357 + components: + - type: Transform + pos: 26.5,20.5 + parent: 1 + - uid: 358 + components: + - type: Transform + pos: 26.5,21.5 + parent: 1 + - uid: 359 + components: + - type: Transform + pos: 26.5,22.5 + parent: 1 + - uid: 360 + components: + - type: Transform + pos: 27.5,20.5 + parent: 1 + - uid: 361 + components: + - type: Transform + pos: 28.5,20.5 + parent: 1 + - uid: 362 + components: + - type: Transform + pos: 32.5,18.5 + parent: 1 + - uid: 363 + components: + - type: Transform + pos: 32.5,19.5 + parent: 1 + - uid: 364 + components: + - type: Transform + pos: 32.5,20.5 + parent: 1 + - uid: 365 + components: + - type: Transform + pos: 32.5,21.5 + parent: 1 + - uid: 366 + components: + - type: Transform + pos: 32.5,22.5 + parent: 1 + - uid: 367 + components: + - type: Transform + pos: 31.5,20.5 + parent: 1 + - uid: 368 + components: + - type: Transform + pos: 30.5,20.5 + parent: 1 + - uid: 369 + components: + - type: Transform + pos: 33.5,20.5 + parent: 1 + - uid: 370 + components: + - type: Transform + pos: 34.5,20.5 + parent: 1 + - uid: 371 + components: + - type: Transform + pos: 19.5,12.5 + parent: 1 + - uid: 372 + components: + - type: Transform + pos: 16.5,12.5 + parent: 1 + - uid: 373 + components: + - type: Transform + pos: 16.5,15.5 + parent: 1 + - uid: 374 + components: + - type: Transform + pos: 17.5,12.5 + parent: 1 + - uid: 375 + components: + - type: Transform + pos: 19.5,16.5 + parent: 1 + - uid: 376 + components: + - type: Transform + pos: 16.5,16.5 + parent: 1 + - uid: 377 + components: + - type: Transform + pos: 17.5,16.5 + parent: 1 + - uid: 378 + components: + - type: Transform + pos: 16.5,14.5 + parent: 1 + - uid: 379 + components: + - type: Transform + pos: 16.5,13.5 + parent: 1 + - uid: 380 + components: + - type: Transform + pos: 18.5,12.5 + parent: 1 + - uid: 381 + components: + - type: Transform + pos: 22.5,14.5 + parent: 1 + - uid: 382 + components: + - type: Transform + pos: 0.5,14.5 + parent: 1 + - uid: 383 + components: + - type: Transform + pos: 1.5,14.5 + parent: 1 + - uid: 384 + components: + - type: Transform + pos: 2.5,14.5 + parent: 1 + - uid: 385 + components: + - type: Transform + pos: 2.5,15.5 + parent: 1 + - uid: 386 + components: + - type: Transform + pos: 4.5,14.5 + parent: 1 + - uid: 387 + components: + - type: Transform + pos: 5.5,14.5 + parent: 1 + - uid: 388 + components: + - type: Transform + pos: 6.5,14.5 + parent: 1 + - uid: 389 + components: + - type: Transform + pos: 8.5,14.5 + parent: 1 + - uid: 390 + components: + - type: Transform + pos: 3.5,13.5 + parent: 1 + - uid: 391 + components: + - type: Transform + pos: 3.5,12.5 + parent: 1 + - uid: 392 + components: + - type: Transform + pos: 3.5,15.5 + parent: 1 + - uid: 393 + components: + - type: Transform + pos: 3.5,16.5 + parent: 1 + - uid: 394 + components: + - type: Transform + pos: 10.5,12.5 + parent: 1 + - uid: 395 + components: + - type: Transform + pos: 10.5,14.5 + parent: 1 + - uid: 396 + components: + - type: Transform + pos: 11.5,14.5 + parent: 1 + - uid: 397 + components: + - type: Transform + pos: 12.5,14.5 + parent: 1 + - uid: 398 + components: + - type: Transform + pos: 14.5,14.5 + parent: 1 + - uid: 399 + components: + - type: Transform + pos: 11.5,16.5 + parent: 1 + - uid: 400 + components: + - type: Transform + pos: 11.5,13.5 + parent: 1 + - uid: 401 + components: + - type: Transform + pos: 11.5,12.5 + parent: 1 + - uid: 402 + components: + - type: Transform + pos: 24.5,14.5 + parent: 1 + - uid: 403 + components: + - type: Transform + pos: 25.5,14.5 + parent: 1 + - uid: 404 + components: + - type: Transform + pos: 26.5,14.5 + parent: 1 + - uid: 405 + components: + - type: Transform + pos: 27.5,14.5 + parent: 1 + - uid: 406 + components: + - type: Transform + pos: 28.5,14.5 + parent: 1 + - uid: 407 + components: + - type: Transform + pos: 29.5,14.5 + parent: 1 + - uid: 408 + components: + - type: Transform + pos: 30.5,14.5 + parent: 1 + - uid: 409 + components: + - type: Transform + pos: 27.5,13.5 + parent: 1 + - uid: 410 + components: + - type: Transform + pos: 27.5,12.5 + parent: 1 + - uid: 411 + components: + - type: Transform + pos: 27.5,15.5 + parent: 1 + - uid: 412 + components: + - type: Transform + pos: 27.5,16.5 + parent: 1 + - uid: 413 + components: + - type: Transform + pos: 32.5,14.5 + parent: 1 + - uid: 414 + components: + - type: Transform + pos: 33.5,14.5 + parent: 1 + - uid: 415 + components: + - type: Transform + pos: 34.5,14.5 + parent: 1 + - uid: 416 + components: + - type: Transform + pos: 35.5,14.5 + parent: 1 + - uid: 417 + components: + - type: Transform + pos: 36.5,14.5 + parent: 1 + - uid: 418 + components: + - type: Transform + pos: 37.5,14.5 + parent: 1 + - uid: 419 + components: + - type: Transform + pos: 38.5,14.5 + parent: 1 + - uid: 420 + components: + - type: Transform + pos: 35.5,13.5 + parent: 1 + - uid: 421 + components: + - type: Transform + pos: 35.5,12.5 + parent: 1 + - uid: 422 + components: + - type: Transform + pos: 35.5,15.5 + parent: 1 + - uid: 423 + components: + - type: Transform + pos: 35.5,16.5 + parent: 1 + - uid: 424 + components: + - type: Transform + pos: 40.5,14.5 + parent: 1 + - uid: 425 + components: + - type: Transform + pos: 41.5,14.5 + parent: 1 + - uid: 426 + components: + - type: Transform + pos: 42.5,14.5 + parent: 1 + - uid: 427 + components: + - type: Transform + pos: 43.5,14.5 + parent: 1 + - uid: 428 + components: + - type: Transform + pos: 44.5,14.5 + parent: 1 + - uid: 429 + components: + - type: Transform + pos: 45.5,14.5 + parent: 1 + - uid: 430 + components: + - type: Transform + pos: 46.5,14.5 + parent: 1 + - uid: 431 + components: + - type: Transform + pos: 43.5,13.5 + parent: 1 + - uid: 432 + components: + - type: Transform + pos: 43.5,12.5 + parent: 1 + - uid: 433 + components: + - type: Transform + pos: 43.5,15.5 + parent: 1 + - uid: 434 + components: + - type: Transform + pos: 43.5,16.5 + parent: 1 + - uid: 435 + components: + - type: Transform + pos: 34.5,8.5 + parent: 1 + - uid: 436 + components: + - type: Transform + pos: 33.5,8.5 + parent: 1 + - uid: 437 + components: + - type: Transform + pos: 32.5,8.5 + parent: 1 + - uid: 438 + components: + - type: Transform + pos: 31.5,8.5 + parent: 1 + - uid: 439 + components: + - type: Transform + pos: 30.5,8.5 + parent: 1 + - uid: 440 + components: + - type: Transform + pos: 29.5,8.5 + parent: 1 + - uid: 441 + components: + - type: Transform + pos: 28.5,8.5 + parent: 1 + - uid: 442 + components: + - type: Transform + pos: 27.5,8.5 + parent: 1 + - uid: 443 + components: + - type: Transform + pos: 26.5,8.5 + parent: 1 + - uid: 444 + components: + - type: Transform + pos: 25.5,8.5 + parent: 1 + - uid: 445 + components: + - type: Transform + pos: 24.5,8.5 + parent: 1 + - uid: 446 + components: + - type: Transform + pos: 29.5,9.5 + parent: 1 + - uid: 447 + components: + - type: Transform + pos: 29.5,10.5 + parent: 1 + - uid: 448 + components: + - type: Transform + pos: 22.5,8.5 + parent: 1 + - uid: 449 + components: + - type: Transform + pos: 21.5,8.5 + parent: 1 + - uid: 450 + components: + - type: Transform + pos: 20.5,8.5 + parent: 1 + - uid: 451 + components: + - type: Transform + pos: 19.5,8.5 + parent: 1 + - uid: 452 + components: + - type: Transform + pos: 18.5,8.5 + parent: 1 + - uid: 453 + components: + - type: Transform + pos: 17.5,8.5 + parent: 1 + - uid: 454 + components: + - type: Transform + pos: 16.5,8.5 + parent: 1 + - uid: 455 + components: + - type: Transform + pos: 15.5,8.5 + parent: 1 + - uid: 456 + components: + - type: Transform + pos: 14.5,8.5 + parent: 1 + - uid: 457 + components: + - type: Transform + pos: 13.5,8.5 + parent: 1 + - uid: 458 + components: + - type: Transform + pos: 12.5,8.5 + parent: 1 + - uid: 459 + components: + - type: Transform + pos: 17.5,9.5 + parent: 1 + - uid: 460 + components: + - type: Transform + pos: 17.5,10.5 + parent: 1 + - uid: 461 + components: + - type: Transform + pos: 17.5,7.5 + parent: 1 + - uid: 462 + components: + - type: Transform + pos: 17.5,6.5 + parent: 1 + - uid: 463 + components: + - type: Transform + pos: 10.5,8.5 + parent: 1 + - uid: 464 + components: + - type: Transform + pos: 9.5,8.5 + parent: 1 + - uid: 465 + components: + - type: Transform + pos: 8.5,8.5 + parent: 1 + - uid: 466 + components: + - type: Transform + pos: 7.5,8.5 + parent: 1 + - uid: 467 + components: + - type: Transform + pos: 6.5,8.5 + parent: 1 + - uid: 468 + components: + - type: Transform + pos: 5.5,8.5 + parent: 1 + - uid: 469 + components: + - type: Transform + pos: 4.5,8.5 + parent: 1 + - uid: 470 + components: + - type: Transform + pos: 3.5,8.5 + parent: 1 + - uid: 471 + components: + - type: Transform + pos: 2.5,8.5 + parent: 1 + - uid: 472 + components: + - type: Transform + pos: 1.5,8.5 + parent: 1 + - uid: 473 + components: + - type: Transform + pos: 0.5,8.5 + parent: 1 + - uid: 474 + components: + - type: Transform + pos: 5.5,9.5 + parent: 1 + - uid: 475 + components: + - type: Transform + pos: 5.5,10.5 + parent: 1 + - uid: 476 + components: + - type: Transform + pos: 5.5,7.5 + parent: 1 + - uid: 477 + components: + - type: Transform + pos: 5.5,6.5 + parent: 1 + - uid: 478 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 + - uid: 479 + components: + - type: Transform + pos: 1.5,2.5 + parent: 1 + - uid: 480 + components: + - type: Transform + pos: 2.5,2.5 + parent: 1 + - uid: 481 + components: + - type: Transform + pos: 2.5,3.5 + parent: 1 + - uid: 482 + components: + - type: Transform + pos: 4.5,0.5 + parent: 1 + - uid: 483 + components: + - type: Transform + pos: 3.5,0.5 + parent: 1 + - uid: 484 + components: + - type: Transform + pos: 3.5,1.5 + parent: 1 + - uid: 485 + components: + - type: Transform + pos: 3.5,3.5 + parent: 1 + - uid: 486 + components: + - type: Transform + pos: 3.5,4.5 + parent: 1 + - uid: 487 + components: + - type: Transform + pos: 4.5,4.5 + parent: 1 + - uid: 488 + components: + - type: Transform + pos: 5.5,4.5 + parent: 1 + - uid: 489 + components: + - type: Transform + pos: 6.5,4.5 + parent: 1 + - uid: 490 + components: + - type: Transform + pos: 7.5,4.5 + parent: 1 + - uid: 491 + components: + - type: Transform + pos: 7.5,0.5 + parent: 1 + - uid: 492 + components: + - type: Transform + pos: 15.5,2.5 + parent: 1 + - uid: 493 + components: + - type: Transform + pos: 16.5,2.5 + parent: 1 + - uid: 494 + components: + - type: Transform + pos: 6.5,0.5 + parent: 1 + - uid: 495 + components: + - type: Transform + pos: 8.5,4.5 + parent: 1 + - uid: 496 + components: + - type: Transform + pos: 5.5,0.5 + parent: 1 + - uid: 497 + components: + - type: Transform + pos: 8.5,0.5 + parent: 1 + - uid: 498 + components: + - type: Transform + pos: 18.5,2.5 + parent: 1 + - uid: 499 + components: + - type: Transform + pos: 19.5,2.5 + parent: 1 + - uid: 500 + components: + - type: Transform + pos: 20.5,2.5 + parent: 1 + - uid: 501 + components: + - type: Transform + pos: 21.5,2.5 + parent: 1 + - uid: 502 + components: + - type: Transform + pos: 22.5,2.5 + parent: 1 + - uid: 503 + components: + - type: Transform + pos: 23.5,2.5 + parent: 1 + - uid: 504 + components: + - type: Transform + pos: 24.5,2.5 + parent: 1 + - uid: 505 + components: + - type: Transform + pos: 25.5,2.5 + parent: 1 + - uid: 506 + components: + - type: Transform + pos: 26.5,2.5 + parent: 1 + - uid: 507 + components: + - type: Transform + pos: 27.5,2.5 + parent: 1 + - uid: 508 + components: + - type: Transform + pos: 28.5,2.5 + parent: 1 + - uid: 509 + components: + - type: Transform + pos: 29.5,2.5 + parent: 1 + - uid: 510 + components: + - type: Transform + pos: 30.5,2.5 + parent: 1 + - uid: 511 + components: + - type: Transform + pos: 31.5,2.5 + parent: 1 + - uid: 512 + components: + - type: Transform + pos: 32.5,2.5 + parent: 1 + - uid: 513 + components: + - type: Transform + pos: 33.5,2.5 + parent: 1 + - uid: 514 + components: + - type: Transform + pos: 34.5,2.5 + parent: 1 + - uid: 515 + components: + - type: Transform + pos: 36.5,2.5 + parent: 1 + - uid: 516 + components: + - type: Transform + pos: 26.5,3.5 + parent: 1 + - uid: 517 + components: + - type: Transform + pos: 26.5,4.5 + parent: 1 + - uid: 518 + components: + - type: Transform + pos: 26.5,1.5 + parent: 1 + - uid: 519 + components: + - type: Transform + pos: 26.5,0.5 + parent: 1 + - uid: 520 + components: + - type: Transform + pos: 37.5,2.5 + parent: 1 + - uid: 521 + components: + - type: Transform + pos: 38.5,2.5 + parent: 1 + - uid: 522 + components: + - type: Transform + pos: 39.5,2.5 + parent: 1 + - uid: 523 + components: + - type: Transform + pos: 40.5,2.5 + parent: 1 + - uid: 524 + components: + - type: Transform + pos: 41.5,2.5 + parent: 1 + - uid: 525 + components: + - type: Transform + pos: 42.5,2.5 + parent: 1 + - uid: 526 + components: + - type: Transform + pos: 43.5,2.5 + parent: 1 + - uid: 527 + components: + - type: Transform + pos: 44.5,2.5 + parent: 1 + - uid: 528 + components: + - type: Transform + pos: 45.5,2.5 + parent: 1 + - uid: 529 + components: + - type: Transform + pos: 46.5,2.5 + parent: 1 + - uid: 530 + components: + - type: Transform + pos: 47.5,2.5 + parent: 1 + - uid: 531 + components: + - type: Transform + pos: 48.5,2.5 + parent: 1 + - uid: 532 + components: + - type: Transform + pos: 49.5,2.5 + parent: 1 + - uid: 533 + components: + - type: Transform + pos: 50.5,2.5 + parent: 1 + - uid: 534 + components: + - type: Transform + pos: 51.5,2.5 + parent: 1 + - uid: 535 + components: + - type: Transform + pos: 52.5,2.5 + parent: 1 + - uid: 536 + components: + - type: Transform + pos: 53.5,2.5 + parent: 1 + - uid: 537 + components: + - type: Transform + pos: 54.5,2.5 + parent: 1 + - uid: 538 + components: + - type: Transform + pos: 45.5,3.5 + parent: 1 + - uid: 539 + components: + - type: Transform + pos: 45.5,4.5 + parent: 1 + - uid: 540 + components: + - type: Transform + pos: 45.5,0.5 + parent: 1 + - uid: 541 + components: + - type: Transform + pos: 45.5,1.5 + parent: 1 + - uid: 542 + components: + - type: Transform + pos: 12.5,43.5 + parent: 1 + - uid: 543 + components: + - type: Transform + pos: 13.5,43.5 + parent: 1 + - uid: 544 + components: + - type: Transform + pos: 9.5,18.5 + parent: 1 + - uid: 545 + components: + - type: Transform + pos: 10.5,21.5 + parent: 1 + - uid: 546 + components: + - type: Transform + pos: 9.5,22.5 + parent: 1 + - uid: 547 + components: + - type: Transform + pos: 7.5,22.5 + parent: 1 + - uid: 548 + components: + - type: Transform + pos: 9.5,19.5 + parent: 1 + - uid: 549 + components: + - type: Transform + pos: 10.5,19.5 + parent: 1 + - uid: 550 + components: + - type: Transform + pos: 9.5,21.5 + parent: 1 + - uid: 551 + components: + - type: Transform + pos: 28.5,21.5 + parent: 1 + - uid: 552 + components: + - type: Transform + pos: 28.5,22.5 + parent: 1 + - uid: 553 + components: + - type: Transform + pos: 25.5,18.5 + parent: 1 + - uid: 554 + components: + - type: Transform + pos: 24.5,18.5 + parent: 1 + - uid: 555 + components: + - type: Transform + pos: 25.5,22.5 + parent: 1 + - uid: 556 + components: + - type: Transform + pos: 24.5,22.5 + parent: 1 + - uid: 557 + components: + - type: Transform + pos: 24.5,21.5 + parent: 1 + - uid: 558 + components: + - type: Transform + pos: 24.5,20.5 + parent: 1 + - uid: 559 + components: + - type: Transform + pos: 24.5,19.5 + parent: 1 + - uid: 560 + components: + - type: Transform + pos: 4.5,15.5 + parent: 1 + - uid: 561 + components: + - type: Transform + pos: 4.5,13.5 + parent: 1 + - uid: 562 + components: + - type: Transform + pos: 2.5,13.5 + parent: 1 + - uid: 563 + components: + - type: Transform + pos: 8.5,12.5 + parent: 1 + - uid: 564 + components: + - type: Transform + pos: 9.5,12.5 + parent: 1 + - uid: 565 + components: + - type: Transform + pos: 8.5,13.5 + parent: 1 + - uid: 566 + components: + - type: Transform + pos: 8.5,15.5 + parent: 1 + - uid: 567 + components: + - type: Transform + pos: 8.5,16.5 + parent: 1 + - uid: 568 + components: + - type: Transform + pos: 9.5,16.5 + parent: 1 + - uid: 569 + components: + - type: Transform + pos: 10.5,16.5 + parent: 1 + - uid: 570 + components: + - type: Transform + pos: 12.5,16.5 + parent: 1 + - uid: 571 + components: + - type: Transform + pos: 13.5,16.5 + parent: 1 + - uid: 572 + components: + - type: Transform + pos: 14.5,16.5 + parent: 1 + - uid: 573 + components: + - type: Transform + pos: 14.5,15.5 + parent: 1 + - uid: 574 + components: + - type: Transform + pos: 14.5,13.5 + parent: 1 + - uid: 575 + components: + - type: Transform + pos: 14.5,12.5 + parent: 1 + - uid: 576 + components: + - type: Transform + pos: 13.5,12.5 + parent: 1 + - uid: 577 + components: + - type: Transform + pos: 12.5,12.5 + parent: 1 + - uid: 578 + components: + - type: Transform + pos: 18.5,16.5 + parent: 1 + - uid: 579 + components: + - type: Transform + pos: 20.5,16.5 + parent: 1 + - uid: 580 + components: + - type: Transform + pos: 21.5,16.5 + parent: 1 + - uid: 581 + components: + - type: Transform + pos: 22.5,16.5 + parent: 1 + - uid: 582 + components: + - type: Transform + pos: 22.5,15.5 + parent: 1 + - uid: 583 + components: + - type: Transform + pos: 22.5,13.5 + parent: 1 + - uid: 584 + components: + - type: Transform + pos: 22.5,12.5 + parent: 1 + - uid: 585 + components: + - type: Transform + pos: 21.5,12.5 + parent: 1 + - uid: 586 + components: + - type: Transform + pos: 20.5,12.5 + parent: 1 + - uid: 587 + components: + - type: Transform + pos: 41.5,1.5 + parent: 1 + - uid: 588 + components: + - type: Transform + pos: 41.5,0.5 + parent: 1 + - uid: 589 + components: + - type: Transform + pos: 41.5,3.5 + parent: 1 + - uid: 590 + components: + - type: Transform + pos: 41.5,4.5 + parent: 1 + - uid: 591 + components: + - type: Transform + pos: 49.5,3.5 + parent: 1 + - uid: 592 + components: + - type: Transform + pos: 49.5,4.5 + parent: 1 + - uid: 593 + components: + - type: Transform + pos: 49.5,1.5 + parent: 1 + - uid: 594 + components: + - type: Transform + pos: 49.5,0.5 + parent: 1 + - uid: 595 + components: + - type: Transform + pos: 9.5,4.5 + parent: 1 + - uid: 596 + components: + - type: Transform + pos: 10.5,4.5 + parent: 1 + - uid: 597 + components: + - type: Transform + pos: 11.5,4.5 + parent: 1 + - uid: 598 + components: + - type: Transform + pos: 12.5,4.5 + parent: 1 + - uid: 599 + components: + - type: Transform + pos: 13.5,4.5 + parent: 1 + - uid: 600 + components: + - type: Transform + pos: 14.5,1.5 + parent: 1 + - uid: 601 + components: + - type: Transform + pos: 14.5,3.5 + parent: 1 + - uid: 602 + components: + - type: Transform + pos: 2.5,1.5 + parent: 1 + - uid: 603 + components: + - type: Transform + pos: 13.5,1.5 + parent: 1 + - uid: 604 + components: + - type: Transform + pos: 13.5,0.5 + parent: 1 + - uid: 605 + components: + - type: Transform + pos: 12.5,0.5 + parent: 1 + - uid: 606 + components: + - type: Transform + pos: 11.5,0.5 + parent: 1 + - uid: 607 + components: + - type: Transform + pos: 10.5,0.5 + parent: 1 + - uid: 608 + components: + - type: Transform + pos: 9.5,0.5 + parent: 1 + - uid: 609 + components: + - type: Transform + pos: 13.5,3.5 + parent: 1 + - uid: 610 + components: + - type: Transform + pos: 30.5,9.5 + parent: 1 + - uid: 611 + components: + - type: Transform + pos: 31.5,7.5 + parent: 1 + - uid: 612 + components: + - type: Transform + pos: 31.5,6.5 + parent: 1 + - uid: 613 + components: + - type: Transform + pos: 30.5,6.5 + parent: 1 + - uid: 614 + components: + - type: Transform + pos: 29.5,6.5 + parent: 1 + - uid: 615 + components: + - type: Transform + pos: 28.5,6.5 + parent: 1 + - uid: 616 + components: + - type: Transform + pos: 27.5,6.5 + parent: 1 + - uid: 617 + components: + - type: Transform + pos: 27.5,7.5 + parent: 1 + - uid: 618 + components: + - type: Transform + pos: 15.5,21.5 + parent: 1 + - uid: 619 + components: + - type: Transform + pos: 13.5,19.5 + parent: 1 + - uid: 620 + components: + - type: Transform + pos: 15.5,19.5 + parent: 1 + - uid: 621 + components: + - type: Transform + pos: 14.5,2.5 + parent: 1 + - uid: 622 + components: + - type: Transform + pos: 29.5,7.5 + parent: 1 + - uid: 623 + components: + - type: Transform + pos: 9.5,14.5 + parent: 1 + - uid: 624 + components: + - type: Transform + pos: 13.5,14.5 + parent: 1 + - uid: 625 + components: + - type: Transform + pos: 11.5,15.5 + parent: 1 + - uid: 626 + components: + - type: Transform + pos: 19.5,14.5 + parent: 1 + - uid: 627 + components: + - type: Transform + pos: 18.5,14.5 + parent: 1 + - uid: 628 + components: + - type: Transform + pos: 17.5,14.5 + parent: 1 + - uid: 629 + components: + - type: Transform + pos: 20.5,14.5 + parent: 1 + - uid: 630 + components: + - type: Transform + pos: 21.5,14.5 + parent: 1 + - uid: 631 + components: + - type: Transform + pos: 19.5,22.5 + parent: 1 + - uid: 632 + components: + - type: Transform + pos: 19.5,21.5 + parent: 1 + - uid: 633 + components: + - type: Transform + pos: 21.5,22.5 + parent: 1 + - uid: 634 + components: + - type: Transform + pos: 21.5,21.5 + parent: 1 + - uid: 635 + components: + - type: Transform + pos: 21.5,19.5 + parent: 1 + - uid: 636 + components: + - type: Transform + pos: 21.5,18.5 + parent: 1 + - uid: 637 + components: + - type: Transform + pos: 19.5,18.5 + parent: 1 + - uid: 638 + components: + - type: Transform + pos: 19.5,19.5 + parent: 1 +- proto: CableHV + entities: + - uid: 639 + components: + - type: Transform + pos: 11.5,46.5 + parent: 1 + - uid: 640 + components: + - type: Transform + pos: 10.5,46.5 + parent: 1 + - uid: 641 + components: + - type: Transform + pos: 9.5,46.5 + parent: 1 + - uid: 642 + components: + - type: Transform + pos: 12.5,46.5 + parent: 1 + - uid: 643 + components: + - type: Transform + pos: 13.5,46.5 + parent: 1 + - uid: 644 + components: + - type: Transform + pos: 13.5,47.5 + parent: 1 + - uid: 645 + components: + - type: Transform + pos: 11.5,47.5 + parent: 1 + - uid: 646 + components: + - type: Transform + pos: 9.5,47.5 + parent: 1 + - uid: 647 + components: + - type: Transform + pos: 11.5,45.5 + parent: 1 + - uid: 648 + components: + - type: Transform + pos: 11.5,44.5 + parent: 1 + - uid: 649 + components: + - type: Transform + pos: 11.5,43.5 + parent: 1 + - uid: 650 + components: + - type: Transform + pos: 11.5,42.5 + parent: 1 + - uid: 651 + components: + - type: Transform + pos: 10.5,42.5 + parent: 1 + - uid: 652 + components: + - type: Transform + pos: 9.5,42.5 + parent: 1 + - uid: 653 + components: + - type: Transform + pos: 8.5,42.5 + parent: 1 + - uid: 654 + components: + - type: Transform + pos: 25.5,19.5 + parent: 1 + - uid: 655 + components: + - type: Transform + pos: 25.5,20.5 + parent: 1 + - uid: 656 + components: + - type: Transform + pos: 25.5,21.5 + parent: 1 + - uid: 657 + components: + - type: Transform + pos: 26.5,20.5 + parent: 1 + - uid: 658 + components: + - type: Transform + pos: 27.5,20.5 + parent: 1 + - uid: 659 + components: + - type: Transform + pos: 28.5,20.5 + parent: 1 + - uid: 660 + components: + - type: Transform + pos: 28.5,19.5 + parent: 1 + - uid: 661 + components: + - type: Transform + pos: 28.5,18.5 + parent: 1 + - uid: 662 + components: + - type: Transform + pos: 27.5,7.5 + parent: 1 + - uid: 663 + components: + - type: Transform + pos: 26.5,7.5 + parent: 1 + - uid: 664 + components: + - type: Transform + pos: 31.5,7.5 + parent: 1 + - uid: 665 + components: + - type: Transform + pos: 32.5,7.5 + parent: 1 + - uid: 666 + components: + - type: Transform + pos: 33.5,7.5 + parent: 1 + - uid: 667 + components: + - type: Transform + pos: 33.5,8.5 + parent: 1 + - uid: 668 + components: + - type: Transform + pos: 33.5,9.5 + parent: 1 + - uid: 669 + components: + - type: Transform + pos: 29.5,9.5 + parent: 1 + - uid: 670 + components: + - type: Transform + pos: 25.5,7.5 + parent: 1 + - uid: 671 + components: + - type: Transform + pos: 25.5,8.5 + parent: 1 + - uid: 672 + components: + - type: Transform + pos: 25.5,9.5 + parent: 1 +- proto: CableMV + entities: + - uid: 673 + components: + - type: Transform + pos: 8.5,42.5 + parent: 1 + - uid: 674 + components: + - type: Transform + pos: 9.5,42.5 + parent: 1 + - uid: 675 + components: + - type: Transform + pos: 10.5,42.5 + parent: 1 + - uid: 676 + components: + - type: Transform + pos: 11.5,42.5 + parent: 1 + - uid: 677 + components: + - type: Transform + pos: 12.5,42.5 + parent: 1 + - uid: 678 + components: + - type: Transform + pos: 13.5,42.5 + parent: 1 + - uid: 679 + components: + - type: Transform + pos: 13.5,43.5 + parent: 1 + - uid: 680 + components: + - type: Transform + pos: 28.5,18.5 + parent: 1 + - uid: 681 + components: + - type: Transform + pos: 28.5,19.5 + parent: 1 + - uid: 682 + components: + - type: Transform + pos: 28.5,20.5 + parent: 1 + - uid: 683 + components: + - type: Transform + pos: 28.5,21.5 + parent: 1 + - uid: 684 + components: + - type: Transform + pos: 28.5,22.5 + parent: 1 + - uid: 685 + components: + - type: Transform + pos: 29.5,9.5 + parent: 1 + - uid: 686 + components: + - type: Transform + pos: 30.5,9.5 + parent: 1 +- proto: CableTerminal + entities: + - uid: 687 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,20.5 + parent: 1 +- proto: Catwalk + entities: + - uid: 688 + components: + - type: Transform + pos: 17.5,45.5 + parent: 1 + - uid: 689 + components: + - type: Transform + pos: 18.5,45.5 + parent: 1 + - uid: 690 + components: + - type: Transform + pos: 19.5,45.5 + parent: 1 + - uid: 691 + components: + - type: Transform + pos: 20.5,45.5 + parent: 1 + - uid: 692 + components: + - type: Transform + pos: 21.5,45.5 + parent: 1 + - uid: 693 + components: + - type: Transform + pos: 19.5,44.5 + parent: 1 + - uid: 694 + components: + - type: Transform + pos: 19.5,43.5 + parent: 1 + - uid: 695 + components: + - type: Transform + pos: 19.5,46.5 + parent: 1 + - uid: 696 + components: + - type: Transform + pos: 19.5,47.5 + parent: 1 + - uid: 697 + components: + - type: Transform + pos: 25.5,19.5 + parent: 1 + - uid: 698 + components: + - type: Transform + pos: 26.5,19.5 + parent: 1 + - uid: 699 + components: + - type: Transform + pos: 27.5,19.5 + parent: 1 + - uid: 700 + components: + - type: Transform + pos: 27.5,20.5 + parent: 1 + - uid: 701 + components: + - type: Transform + pos: 27.5,21.5 + parent: 1 + - uid: 702 + components: + - type: Transform + pos: 26.5,21.5 + parent: 1 + - uid: 703 + components: + - type: Transform + pos: 25.5,21.5 + parent: 1 + - uid: 704 + components: + - type: Transform + pos: 25.5,20.5 + parent: 1 + - uid: 705 + components: + - type: Transform + pos: 12.5,46.5 + parent: 1 + - uid: 706 + components: + - type: Transform + pos: 11.5,46.5 + parent: 1 + - uid: 707 + components: + - type: Transform + pos: 11.5,45.5 + parent: 1 + - uid: 708 + components: + - type: Transform + pos: 12.5,45.5 + parent: 1 + - uid: 709 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,8.5 + parent: 1 + - uid: 710 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,8.5 + parent: 1 + - uid: 711 + components: + - type: Transform + pos: 10.5,46.5 + parent: 1 + - uid: 712 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,7.5 + parent: 1 + - uid: 713 + components: + - type: Transform + pos: 10.5,45.5 + parent: 1 + - uid: 714 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,8.5 + parent: 1 +- proto: Chair + entities: + - uid: 715 + components: + - type: Transform + pos: 6.5,1.5 + parent: 1 + - uid: 716 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,2.5 + parent: 1 + - uid: 717 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,3.5 + parent: 1 + - uid: 718 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,1.5 + parent: 1 + - uid: 719 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,3.5 + parent: 1 +- proto: ChairOfficeDark + entities: + - uid: 720 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,39.5 + parent: 1 +- proto: ChairOfficeLight + entities: + - uid: 721 + components: + - type: Transform + pos: 13.5,3.5 + parent: 1 +- proto: ChairWood + entities: + - uid: 722 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,6.5 + parent: 1 + - uid: 723 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,6.5 + parent: 1 + - uid: 724 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,6.5 + parent: 1 + - uid: 725 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,6.5 + parent: 1 + - uid: 726 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,7.5 + parent: 1 +- proto: ClothingBackpackSatchelLeather + entities: + - uid: 727 + components: + - type: Transform + pos: 40.48025,13.456903 + parent: 1 + - uid: 728 + components: + - type: Transform + pos: 46.449,13.519403 + parent: 1 +- proto: ClothingBeltStorageWaistbag + entities: + - uid: 729 + components: + - type: Transform + pos: 41.152126,13.425653 + parent: 1 + - uid: 730 + components: + - type: Transform + pos: 45.66775,13.456903 + parent: 1 +- proto: ClothingBeltUtilityEngineering + entities: + - uid: 731 + components: + - type: Transform + pos: 18.5,44.5 + parent: 1 +- proto: ComplexXenoArtifactItem + entities: + - uid: 732 + components: + - type: Transform + pos: 29.662823,8.535109 + parent: 1 +- proto: ComputerTelevision + entities: + - uid: 733 + components: + - type: Transform + pos: 11.5,40.5 + parent: 1 + - uid: 734 + components: + - type: Transform + pos: 20.5,13.5 + parent: 1 +- proto: ConveyorBelt + entities: + - uid: 735 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,24.5 + parent: 1 + - uid: 736 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,24.5 + parent: 1 + - uid: 737 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,24.5 + parent: 1 +- proto: CrateFilledSpawner + entities: + - uid: 738 + components: + - type: Transform + pos: 22.5,34.5 + parent: 1 +- proto: CrateFoodBarSupply + entities: + - uid: 739 + components: + - type: Transform + pos: 7.5,10.5 + parent: 1 +- proto: CrateFoodCooking + entities: + - uid: 740 + components: + - type: Transform + pos: 8.5,10.5 + parent: 1 +- proto: CrateHydroponicsSeedsExotic + entities: + - uid: 741 + components: + - type: Transform + pos: 6.5,21.5 + parent: 1 +- proto: CrateHydroponicsSeedsMedicinal + entities: + - uid: 742 + components: + - type: Transform + pos: 39.5,30.5 + parent: 1 +- proto: CrateHydroSecure + entities: + - uid: 13 + components: + - type: Transform + pos: 20.5,22.5 + parent: 1 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 14 + - 15 + - 16 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: CrateTrashCartFilled + entities: + - uid: 743 + components: + - type: Transform + pos: 6.5,28.5 + parent: 1 +- proto: CrateVendingMachineRestockChefvendFilled + entities: + - uid: 744 + components: + - type: Transform + pos: 9.5,10.5 + parent: 1 +- proto: CrateWoodenGrave + entities: + - uid: 745 + components: + - type: Transform + pos: 21.5,24.5 + parent: 1 +- proto: DiseaseSwab + entities: + - uid: 746 + components: + - type: Transform + pos: 27.63767,12.458582 + parent: 1 + - uid: 747 + components: + - type: Transform + pos: 27.559546,12.536707 + parent: 1 + - uid: 748 + components: + - type: Transform + pos: 27.403296,12.411707 + parent: 1 + - uid: 749 + components: + - type: Transform + pos: 27.41892,12.646082 + parent: 1 + - uid: 750 + components: + - type: Transform + pos: 27.54392,16.505457 + parent: 1 + - uid: 751 + components: + - type: Transform + pos: 27.497046,16.567957 + parent: 1 + - uid: 752 + components: + - type: Transform + pos: 27.66892,16.505457 + parent: 1 + - uid: 753 + components: + - type: Transform + pos: 27.41892,16.442957 + parent: 1 + - uid: 754 + components: + - type: Transform + pos: 27.26267,16.771082 + parent: 1 +- proto: DisposalUnit + entities: + - uid: 755 + components: + - type: Transform + pos: 14.5,38.5 + parent: 1 + - uid: 756 + components: + - type: Transform + pos: 0.5,36.5 + parent: 1 + - uid: 757 + components: + - type: Transform + pos: 3.5,10.5 + parent: 1 + - uid: 758 + components: + - type: Transform + pos: 3.5,4.5 + parent: 1 + - uid: 759 + components: + - type: Transform + pos: 14.5,0.5 + parent: 1 +- proto: DrinkWaterBottleFull + entities: + - uid: 760 + components: + - type: Transform + pos: 31.609793,35.64382 + parent: 1 + - type: Openable + opened: True +- proto: EmergencyLight + entities: + - uid: 761 + components: + - type: Transform + pos: 29.5,8.5 + parent: 1 + - type: PointLight + enabled: True + - uid: 762 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,44.5 + parent: 1 + - type: PointLight + enabled: True +- proto: ExtinguisherCabinetFilled + entities: + - uid: 763 + components: + - type: Transform + pos: 51.5,1.5 + parent: 1 + - uid: 764 + components: + - type: Transform + pos: 39.5,1.5 + parent: 1 +- proto: FloorDrain + entities: + - uid: 765 + components: + - type: Transform + pos: 8.5,24.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 766 + components: + - type: Transform + pos: 0.5,22.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 767 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,26.5 + parent: 1 + - type: Fixtures + fixtures: {} +- proto: FloraRockSolid02 + entities: + - uid: 768 + components: + - type: Transform + pos: 28.516548,34.62627 + parent: 1 +- proto: FloraTree01 + entities: + - uid: 769 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.992832,39.32711 + parent: 1 +- proto: FloraTree02 + entities: + - uid: 770 + components: + - type: Transform + pos: 17.66651,32.323776 + parent: 1 + - uid: 771 + components: + - type: Transform + pos: 2.3919353,3.2978985 + parent: 1 +- proto: FloraTree03 + entities: + - uid: 772 + components: + - type: Transform + pos: 0.8841262,47.536896 + parent: 1 +- proto: FloraTree04 + entities: + - uid: 773 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.195957,39.530235 + parent: 1 + - uid: 774 + components: + - type: Transform + pos: 9.690206,3.7462933 + parent: 1 +- proto: FloraTree05 + entities: + - uid: 775 + components: + - type: Transform + pos: 5.993501,42.661896 + parent: 1 + - uid: 776 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.351646,2.4229553 + parent: 1 + - uid: 777 + components: + - type: Transform + pos: 7.5218325,1.6369183 + parent: 1 +- proto: FloraTreeLarge01 + entities: + - uid: 778 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.908688,13.7550955 + parent: 1 + - uid: 779 + components: + - type: Transform + pos: 15.004133,4.079219 + parent: 1 + - uid: 780 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.428865,1.6542827 + parent: 1 +- proto: FloraTreeLarge02 + entities: + - uid: 781 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.632896,2.9385803 + parent: 1 + - uid: 782 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.577223,38.42167 + parent: 1 + - uid: 783 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.111813,15.1925955 + parent: 1 +- proto: FloraTreeLarge03 + entities: + - uid: 784 + components: + - type: Transform + pos: 1.1966262,42.755646 + parent: 1 + - uid: 785 + components: + - type: Transform + pos: 20.328423,25.767221 + parent: 1 +- proto: FloraTreeLarge04 + entities: + - uid: 786 + components: + - type: Transform + pos: 25.206673,35.18877 + parent: 1 +- proto: FloraTreeLarge05 + entities: + - uid: 787 + components: + - type: Transform + pos: 5.806001,47.443146 + parent: 1 + - uid: 788 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.174011,8.565391 + parent: 1 +- proto: FloraTreeLarge06 + entities: + - uid: 789 + components: + - type: Transform + pos: 32.838623,35.15752 + parent: 1 + - uid: 790 + components: + - type: Transform + pos: 45.40585,1.6057675 + parent: 1 + - uid: 791 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.771954,4.0153003 + parent: 1 + - uid: 792 + components: + - type: Transform + pos: 8.601131,20.88146 + parent: 1 + - uid: 793 + components: + - type: Transform + pos: 6.79694,8.513211 + parent: 1 + - uid: 794 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.877979,8.596641 + parent: 1 + - uid: 795 + components: + - type: Transform + pos: 10.989981,2.1251996 + parent: 1 + - uid: 796 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.483828,1.4667825 + parent: 1 + - uid: 797 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.733828,3.373032 + parent: 1 +- proto: FoodEggChickenFertilized + entities: + - uid: 798 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.424736,8.956016 + parent: 1 + - uid: 799 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.330986,9.174766 + parent: 1 + - uid: 800 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.330986,8.846641 + parent: 1 + - uid: 801 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.846611,8.846641 + parent: 1 + - uid: 802 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.705986,8.893516 + parent: 1 +- proto: FoodMeatTomato + entities: + - uid: 803 + components: + - type: Transform + pos: 33.151592,21.684029 + parent: 1 + - uid: 804 + components: + - type: Transform + pos: 32.151592,21.059029 + parent: 1 + - uid: 805 + components: + - type: Transform + pos: 33.057842,18.949654 + parent: 1 + - uid: 806 + components: + - type: Transform + pos: 33.089092,20.496529 + parent: 1 + - uid: 807 + components: + - type: Transform + pos: 31.948467,19.105904 + parent: 1 + - uid: 808 + components: + - type: Transform + pos: 31.964092,20.293404 + parent: 1 +- proto: FoodTinMRETrash + entities: + - uid: 809 + components: + - type: Transform + pos: 31.323368,35.1164 + parent: 1 +- proto: FoodTomato + entities: + - uid: 810 + components: + - type: Transform + pos: 32.667217,19.746529 + parent: 1 + - uid: 811 + components: + - type: Transform + pos: 31.401592,21.574654 + parent: 1 +- proto: GalaxythistleSeeds + entities: + - uid: 812 + components: + - type: Transform + pos: 15.415066,34.599102 + parent: 1 +- proto: GasThermoMachineFreezer + entities: + - uid: 813 + components: + - type: Transform + pos: 29.5,36.5 + parent: 1 +- proto: GeneratorBasic + entities: + - uid: 814 + components: + - type: Transform + pos: 13.5,47.5 + parent: 1 + - uid: 815 + components: + - type: Transform + pos: 9.5,47.5 + parent: 1 +- proto: GeneratorRTG + entities: + - uid: 816 + components: + - type: Transform + pos: 25.5,7.5 + parent: 1 + - uid: 817 + components: + - type: Transform + pos: 33.5,7.5 + parent: 1 + - uid: 818 + components: + - type: Transform + pos: 33.5,9.5 + parent: 1 + - uid: 819 + components: + - type: Transform + pos: 11.5,47.5 + parent: 1 +- proto: GeneratorRTGDamaged + entities: + - uid: 820 + components: + - type: Transform + pos: 25.5,9.5 + parent: 1 +- proto: GravityGeneratorMini + entities: + - uid: 821 + components: + - type: Transform + pos: 25.5,20.5 + parent: 1 +- proto: Grille + entities: + - uid: 822 + components: + - type: Transform + pos: 28.5,40.5 + parent: 1 + - uid: 823 + components: + - type: Transform + pos: 26.5,40.5 + parent: 1 + - uid: 824 + components: + - type: Transform + pos: 28.5,38.5 + parent: 1 + - uid: 825 + components: + - type: Transform + pos: 26.5,38.5 + parent: 1 + - uid: 826 + components: + - type: Transform + pos: 21.5,21.5 + parent: 1 + - uid: 827 + components: + - type: Transform + pos: 21.5,22.5 + parent: 1 + - uid: 828 + components: + - type: Transform + pos: 19.5,22.5 + parent: 1 + - uid: 829 + components: + - type: Transform + pos: 19.5,19.5 + parent: 1 + - uid: 830 + components: + - type: Transform + pos: 19.5,18.5 + parent: 1 + - uid: 831 + components: + - type: Transform + pos: 21.5,18.5 + parent: 1 + - uid: 832 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,16.5 + parent: 1 + - uid: 833 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,15.5 + parent: 1 + - uid: 834 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,13.5 + parent: 1 + - uid: 835 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,12.5 + parent: 1 +- proto: GrilleSpawner + entities: + - uid: 836 + components: + - type: Transform + pos: 19.5,21.5 + parent: 1 + - uid: 837 + components: + - type: Transform + pos: 21.5,19.5 + parent: 1 +- proto: HospitalCurtainsOpen + entities: + - uid: 838 + components: + - type: Transform + pos: 8.5,24.5 + parent: 1 + - uid: 839 + components: + - type: Transform + pos: 0.5,22.5 + parent: 1 +- proto: hydroponicsSoil + entities: + - uid: 840 + components: + - type: Transform + pos: 7.5,20.5 + parent: 1 + - uid: 841 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,35.5 + parent: 1 + - uid: 842 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,34.5 + parent: 1 + - uid: 843 + components: + - type: Transform + pos: 6.5,19.5 + parent: 1 + - uid: 844 + components: + - type: Transform + pos: 9.5,18.5 + parent: 1 + - uid: 845 + components: + - type: Transform + pos: 10.5,21.5 + parent: 1 + - uid: 846 + components: + - type: Transform + pos: 7.5,18.5 + parent: 1 + - uid: 847 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,14.5 + parent: 1 + - uid: 848 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,13.5 + parent: 1 + - uid: 849 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,15.5 + parent: 1 +- proto: HydroponicsToolClippers + entities: + - uid: 850 + components: + - type: Transform + pos: 2.4453344,27.447803 + parent: 1 +- proto: HydroponicsToolMiniHoe + entities: + - uid: 851 + components: + - type: Transform + pos: 30.591763,4.559061 + parent: 1 +- proto: HydroponicsToolSpade + entities: + - uid: 852 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.7008116,25.505224 + parent: 1 + - uid: 853 + components: + - type: Transform + pos: 2.7320616,25.58335 + parent: 1 + - uid: 854 + components: + - type: Transform + pos: 30.623013,4.637186 + parent: 1 +- proto: hydroponicsTray + entities: + - uid: 855 + components: + - type: Transform + pos: 22.5,0.5 + parent: 1 + - uid: 856 + components: + - type: Transform + pos: 24.5,1.5 + parent: 1 + - uid: 857 + components: + - type: Transform + pos: 24.5,2.5 + parent: 1 + - uid: 858 + components: + - type: Transform + pos: 24.5,0.5 + parent: 1 + - uid: 859 + components: + - type: Transform + pos: 20.5,2.5 + parent: 1 + - uid: 860 + components: + - type: Transform + pos: 28.5,2.5 + parent: 1 + - uid: 861 + components: + - type: Transform + pos: 32.5,0.5 + parent: 1 + - uid: 862 + components: + - type: Transform + pos: 20.5,1.5 + parent: 1 + - uid: 863 + components: + - type: Transform + pos: 20.5,0.5 + parent: 1 + - uid: 864 + components: + - type: Transform + pos: 19.5,30.5 + parent: 1 + - uid: 865 + components: + - type: Transform + pos: 21.5,0.5 + parent: 1 + - uid: 866 + components: + - type: Transform + pos: 29.5,2.5 + parent: 1 + - uid: 867 + components: + - type: Transform + pos: 23.5,2.5 + parent: 1 + - uid: 868 + components: + - type: Transform + pos: 21.5,2.5 + parent: 1 + - uid: 869 + components: + - type: Transform + pos: 30.5,0.5 + parent: 1 + - uid: 870 + components: + - type: Transform + pos: 31.5,0.5 + parent: 1 + - uid: 871 + components: + - type: Transform + pos: 26.5,15.5 + parent: 1 + - uid: 872 + components: + - type: Transform + pos: 15.5,22.5 + parent: 1 + - uid: 873 + components: + - type: Transform + pos: 25.5,12.5 + parent: 1 + - uid: 874 + components: + - type: Transform + pos: 13.5,18.5 + parent: 1 + - uid: 875 + components: + - type: Transform + pos: 32.5,1.5 + parent: 1 + - uid: 876 + components: + - type: Transform + pos: 26.5,13.5 + parent: 1 + - uid: 877 + components: + - type: Transform + pos: 26.5,12.5 + parent: 1 + - uid: 878 + components: + - type: Transform + pos: 24.5,13.5 + parent: 1 + - uid: 879 + components: + - type: Transform + pos: 24.5,12.5 + parent: 1 + - uid: 880 + components: + - type: Transform + pos: 18.5,30.5 + parent: 1 + - uid: 881 + components: + - type: Transform + pos: 23.5,0.5 + parent: 1 + - uid: 882 + components: + - type: Transform + pos: 13.5,22.5 + parent: 1 + - uid: 883 + components: + - type: Transform + pos: 12.5,19.5 + parent: 1 + - uid: 884 + components: + - type: Transform + pos: 16.5,21.5 + parent: 1 + - uid: 885 + components: + - type: Transform + pos: 26.5,16.5 + parent: 1 + - uid: 886 + components: + - type: Transform + pos: 25.5,13.5 + parent: 1 + - uid: 887 + components: + - type: Transform + pos: 29.5,0.5 + parent: 1 + - uid: 888 + components: + - type: Transform + pos: 31.5,2.5 + parent: 1 + - uid: 889 + components: + - type: Transform + pos: 32.5,2.5 + parent: 1 + - uid: 890 + components: + - type: Transform + pos: 28.5,0.5 + parent: 1 + - uid: 891 + components: + - type: Transform + pos: 28.5,1.5 + parent: 1 + - uid: 892 + components: + - type: Transform + pos: 22.5,30.5 + parent: 1 + - uid: 893 + components: + - type: Transform + pos: 21.5,30.5 + parent: 1 + - uid: 894 + components: + - type: Transform + pos: 25.5,16.5 + parent: 1 + - uid: 895 + components: + - type: Transform + pos: 25.5,15.5 + parent: 1 + - uid: 896 + components: + - type: Transform + pos: 24.5,16.5 + parent: 1 + - uid: 897 + components: + - type: Transform + pos: 24.5,15.5 + parent: 1 +- proto: HydroponicsTrayEmpty + entities: + - uid: 898 + components: + - type: Transform + pos: 15.5,18.5 + parent: 1 + - uid: 899 + components: + - type: Transform + pos: 12.5,21.5 + parent: 1 + - uid: 900 + components: + - type: Transform + pos: 16.5,19.5 + parent: 1 +- proto: IngotGold + entities: + - uid: 16 + components: + - type: Transform + parent: 13 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: JanitorialTrolley + entities: + - uid: 901 + components: + - type: Transform + pos: 6.5,25.5 + parent: 1 +- proto: KitchenMicrowave + entities: + - uid: 902 + components: + - type: Transform + pos: 0.5,10.5 + parent: 1 +- proto: LockerBotanistFilled + entities: + - uid: 903 + components: + - type: Transform + pos: 14.5,27.5 + parent: 1 + - uid: 904 + components: + - type: Transform + pos: 14.5,25.5 + parent: 1 +- proto: LockerBotanistLoot + entities: + - uid: 905 + components: + - type: Transform + pos: 14.5,26.5 + parent: 1 +- proto: LockerElectricalSuppliesFilled + entities: + - uid: 906 + components: + - type: Transform + pos: 27.5,9.5 + parent: 1 +- proto: LockerEngineerFilled + entities: + - uid: 907 + components: + - type: Transform + pos: 27.5,22.5 + parent: 1 +- proto: LockerWeldingSuppliesFilled + entities: + - uid: 908 + components: + - type: Transform + pos: 31.5,9.5 + parent: 1 +- proto: MachineFrame + entities: + - uid: 909 + components: + - type: Transform + pos: 18.5,46.5 + parent: 1 + - uid: 910 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,16.5 + parent: 1 +- proto: MachineFrameDestroyed + entities: + - uid: 911 + components: + - type: Transform + pos: 2.5,10.5 + parent: 1 + - uid: 912 + components: + - type: Transform + pos: 20.5,44.5 + parent: 1 + - uid: 913 + components: + - type: Transform + pos: 46.5,12.5 + parent: 1 + - uid: 914 + components: + - type: Transform + pos: 33.5,8.5 + parent: 1 + - uid: 915 + components: + - type: Transform + pos: 18.5,32.5 + parent: 1 +- proto: MaintenanceFluffSpawner + entities: + - uid: 916 + components: + - type: Transform + pos: 30.5,36.5 + parent: 1 + - uid: 917 + components: + - type: Transform + pos: 39.5,32.5 + parent: 1 + - uid: 918 + components: + - type: Transform + pos: 29.5,32.5 + parent: 1 + - uid: 919 + components: + - type: Transform + pos: 33.5,30.5 + parent: 1 + - uid: 920 + components: + - type: Transform + pos: 35.5,30.5 + parent: 1 + - uid: 921 + components: + - type: Transform + pos: 21.5,34.5 + parent: 1 + - uid: 922 + components: + - type: Transform + pos: 5.5,0.5 + parent: 1 + - uid: 923 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,36.5 + parent: 1 + - uid: 924 + components: + - type: Transform + pos: 14.5,36.5 + parent: 1 + - uid: 925 + components: + - type: Transform + pos: 38.5,3.5 + parent: 1 + - uid: 926 + components: + - type: Transform + pos: 38.5,1.5 + parent: 1 + - uid: 927 + components: + - type: Transform + pos: 52.5,0.5 + parent: 1 + - uid: 928 + components: + - type: Transform + pos: 52.5,4.5 + parent: 1 +- proto: MaintenancePlantSpawner + entities: + - uid: 929 + components: + - type: Transform + pos: 24.5,34.5 + parent: 1 + - uid: 930 + components: + - type: Transform + pos: 0.5,34.5 + parent: 1 + - uid: 931 + components: + - type: Transform + pos: 6.5,42.5 + parent: 1 + - uid: 932 + components: + - type: Transform + pos: 40.5,38.5 + parent: 1 + - uid: 933 + components: + - type: Transform + pos: 10.5,28.5 + parent: 1 + - uid: 934 + components: + - type: Transform + pos: 8.5,26.5 + parent: 1 + - uid: 935 + components: + - type: Transform + pos: 26.5,39.5 + parent: 1 + - uid: 936 + components: + - type: Transform + pos: 27.5,38.5 + parent: 1 + - uid: 937 + components: + - type: Transform + pos: 26.5,30.5 + parent: 1 + - uid: 938 + components: + - type: Transform + pos: 8.5,35.5 + parent: 1 + - uid: 939 + components: + - type: Transform + pos: 34.5,36.5 + parent: 1 + - uid: 940 + components: + - type: Transform + pos: 27.5,35.5 + parent: 1 + - uid: 941 + components: + - type: Transform + pos: 16.5,35.5 + parent: 1 + - uid: 942 + components: + - type: Transform + pos: 3.5,31.5 + parent: 1 + - uid: 943 + components: + - type: Transform + pos: 23.5,31.5 + parent: 1 + - uid: 944 + components: + - type: Transform + pos: 24.5,32.5 + parent: 1 + - uid: 945 + components: + - type: Transform + pos: 42.5,2.5 + parent: 1 + - uid: 946 + components: + - type: Transform + pos: 21.5,3.5 + parent: 1 +- proto: MaintenanceToolSpawner + entities: + - uid: 947 + components: + - type: Transform + pos: 20.5,38.5 + parent: 1 + - uid: 948 + components: + - type: Transform + pos: 38.5,4.5 + parent: 1 + - uid: 949 + components: + - type: Transform + pos: 18.5,38.5 + parent: 1 + - uid: 950 + components: + - type: Transform + pos: 6.5,0.5 + parent: 1 + - uid: 951 + components: + - type: Transform + pos: 27.5,36.5 + parent: 1 + - uid: 952 + components: + - type: Transform + pos: 32.5,30.5 + parent: 1 + - uid: 953 + components: + - type: Transform + pos: 12.5,47.5 + parent: 1 + - uid: 954 + components: + - type: Transform + pos: 3.5,34.5 + parent: 1 + - uid: 955 + components: + - type: Transform + pos: 10.5,47.5 + parent: 1 + - uid: 956 + components: + - type: Transform + pos: 8.5,36.5 + parent: 1 + - uid: 957 + components: + - type: Transform + pos: 7.5,34.5 + parent: 1 + - uid: 958 + components: + - type: Transform + pos: 25.5,38.5 + parent: 1 + - uid: 959 + components: + - type: Transform + pos: 2.5,36.5 + parent: 1 + - uid: 960 + components: + - type: Transform + pos: 0.5,38.5 + parent: 1 + - uid: 961 + components: + - type: Transform + pos: 7.5,36.5 + parent: 1 +- proto: MaintenanceWeaponSpawner + entities: + - uid: 962 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,36.5 + parent: 1 + - uid: 963 + components: + - type: Transform + pos: 31.5,36.5 + parent: 1 + - uid: 964 + components: + - type: Transform + pos: 8.5,34.5 + parent: 1 + - uid: 965 + components: + - type: Transform + pos: 2.5,34.5 + parent: 1 + - uid: 966 + components: + - type: Transform + pos: 52.5,3.5 + parent: 1 + - uid: 967 + components: + - type: Transform + pos: 38.5,0.5 + parent: 1 +- proto: MaterialCloth + entities: + - uid: 968 + components: + - type: Transform + pos: 8.569059,28.508856 + parent: 1 +- proto: MaterialWoodPlank + entities: + - uid: 969 + components: + - type: Transform + pos: 20.62062,34.599228 + parent: 1 +- proto: MaterialWoodPlank1 + entities: + - uid: 970 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.936111,39.181805 + parent: 1 + - uid: 971 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.64069,9.200711 + parent: 1 + - uid: 972 + components: + - type: Transform + pos: 1.4375648,7.5600863 + parent: 1 + - uid: 973 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.045486,38.650555 + parent: 1 + - uid: 974 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.7188148,9.419461 + parent: 1 + - uid: 975 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.499832,38.482006 + parent: 1 + - uid: 976 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.593582,39.357006 + parent: 1 + - uid: 977 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.343582,40.232006 + parent: 1 + - uid: 978 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.281082,39.52888 + parent: 1 + - uid: 979 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.437332,40.46638 + parent: 1 + - uid: 980 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.357986,39.494305 + parent: 1 + - uid: 981 + components: + - type: Transform + pos: 27.377378,38.95574 + parent: 1 + - uid: 982 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.353405,40.18666 + parent: 1 + - uid: 983 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.687565,7.4507113 + parent: 1 + - uid: 984 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.156315,7.1069613 + parent: 1 + - uid: 985 + components: + - type: Transform + pos: 4.51569,7.1069613 + parent: 1 +- proto: Medkit + entities: + - uid: 986 + components: + - type: Transform + pos: 2.4145517,25.759409 + parent: 1 +- proto: MedkitBrute + entities: + - uid: 987 + components: + - type: Transform + pos: 40.5,0.5 + parent: 1 +- proto: MedkitBruteFilled + entities: + - uid: 988 + components: + - type: Transform + pos: 50.5,4.5 + parent: 1 +- proto: MedkitBurnFilled + entities: + - uid: 989 + components: + - type: Transform + pos: 50.5,0.5 + parent: 1 +- proto: MedkitO2 + entities: + - uid: 990 + components: + - type: Transform + pos: 6.5,15.5 + parent: 1 +- proto: MedkitOxygenFilled + entities: + - uid: 991 + components: + - type: Transform + pos: 2.5,12.5 + parent: 1 +- proto: MedkitToxinFilled + entities: + - uid: 992 + components: + - type: Transform + pos: 40.5,4.5 + parent: 1 +- proto: Mirror + entities: + - uid: 993 + components: + - type: Transform + pos: 1.5,21.5 + parent: 1 +- proto: PlasmaReinforcedWindowDirectional + entities: + - uid: 994 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,9.5 + parent: 1 + - uid: 995 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,8.5 + parent: 1 + - uid: 996 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,8.5 + parent: 1 + - uid: 997 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,7.5 + parent: 1 + - uid: 998 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,7.5 + parent: 1 + - uid: 999 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,9.5 + parent: 1 + - uid: 1000 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,13.5 + parent: 1 + - uid: 1001 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,13.5 + parent: 1 + - uid: 1002 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,13.5 + parent: 1 + - uid: 1003 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,13.5 + parent: 1 + - uid: 1004 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,13.5 + parent: 1 + - uid: 1005 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,13.5 + parent: 1 + - uid: 1006 + components: + - type: Transform + pos: 33.5,18.5 + parent: 1 + - uid: 1007 + components: + - type: Transform + pos: 32.5,18.5 + parent: 1 + - uid: 1008 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,22.5 + parent: 1 + - uid: 1009 + components: + - type: Transform + pos: 31.5,18.5 + parent: 1 + - uid: 1010 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,22.5 + parent: 1 + - uid: 1011 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,22.5 + parent: 1 +- proto: PortableGeneratorPacman + entities: + - uid: 1012 + components: + - type: Transform + pos: 25.5,8.5 + parent: 1 +- proto: PortableGeneratorSuperPacman + entities: + - uid: 1013 + components: + - type: Transform + pos: 25.5,21.5 + parent: 1 + - uid: 1014 + components: + - type: Transform + pos: 25.5,19.5 + parent: 1 +- proto: PortableScrubber + entities: + - uid: 1015 + components: + - type: Transform + pos: 16.5,28.5 + parent: 1 +- proto: PottedPlantAlt3 + entities: + - uid: 1016 + components: + - type: Transform + pos: 9.5,0.5 + parent: 1 +- proto: PottedPlantRandom + entities: + - uid: 1017 + components: + - type: Transform + pos: 9.5,38.5 + parent: 1 + - uid: 1018 + components: + - type: Transform + pos: 32.5,38.5 + parent: 1 + - uid: 1019 + components: + - type: Transform + pos: 12.5,38.5 + parent: 1 + - uid: 1020 + components: + - type: Transform + pos: 5.5,38.5 + parent: 1 + - uid: 1021 + components: + - type: Transform + pos: 17.5,40.5 + parent: 1 + - uid: 1022 + components: + - type: Transform + pos: 1.5,38.5 + parent: 1 + - uid: 1023 + components: + - type: Transform + pos: 9.5,40.5 + parent: 1 + - uid: 1024 + components: + - type: Transform + pos: 3.5,0.5 + parent: 1 + - uid: 1025 + components: + - type: Transform + pos: 28.5,12.5 + parent: 1 + - uid: 1026 + components: + - type: Transform + pos: 12.5,0.5 + parent: 1 + - uid: 1027 + components: + - type: Transform + pos: 21.5,40.5 + parent: 1 + - uid: 1028 + components: + - type: Transform + pos: 30.5,16.5 + parent: 1 + - uid: 1029 + components: + - type: Transform + pos: 2.5,38.5 + parent: 1 + - uid: 1030 + components: + - type: Transform + pos: 16.5,16.5 + parent: 1 + - uid: 1031 + components: + - type: Transform + pos: 35.5,40.5 + parent: 1 + - uid: 1032 + components: + - type: Transform + pos: 4.5,38.5 + parent: 1 + - uid: 1033 + components: + - type: Transform + pos: 18.5,12.5 + parent: 1 + - uid: 1034 + components: + - type: Transform + pos: 11.5,4.5 + parent: 1 + - uid: 1035 + components: + - type: Transform + pos: 6.5,12.5 + parent: 1 + - uid: 1036 + components: + - type: Transform + pos: 18.5,4.5 + parent: 1 + - uid: 1037 + components: + - type: Transform + pos: 34.5,0.5 + parent: 1 + - uid: 1038 + components: + - type: Transform + pos: 16.5,30.5 + parent: 1 + - uid: 1039 + components: + - type: Transform + pos: 1.5,25.5 + parent: 1 + - uid: 1040 + components: + - type: Transform + pos: 1.5,27.5 + parent: 1 + - uid: 1041 + components: + - type: Transform + pos: 2.5,14.5 + parent: 1 + - uid: 1042 + components: + - type: Transform + pos: 3.5,15.5 + parent: 1 + - uid: 1043 + components: + - type: Transform + pos: 4.5,14.5 + parent: 1 + - uid: 1044 + components: + - type: Transform + pos: 3.5,13.5 + parent: 1 + - uid: 1045 + components: + - type: Transform + pos: 11.5,13.5 + parent: 1 + - uid: 1046 + components: + - type: Transform + pos: 10.5,15.5 + parent: 1 +- proto: PottedPlantRandomPlastic + entities: + - uid: 1047 + components: + - type: Transform + pos: 14.5,12.5 + parent: 1 + - uid: 1048 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - uid: 1049 + components: + - type: Transform + pos: 12.5,18.5 + parent: 1 + - uid: 1050 + components: + - type: Transform + pos: 4.5,36.5 + parent: 1 + - uid: 1051 + components: + - type: Transform + pos: 6.5,34.5 + parent: 1 + - uid: 1052 + components: + - type: Transform + pos: 22.5,22.5 + parent: 1 + - uid: 1053 + components: + - type: Transform + pos: 18.5,18.5 + parent: 1 + - uid: 1054 + components: + - type: Transform + pos: 6.5,18.5 + parent: 1 + - uid: 1055 + components: + - type: Transform + pos: 22.5,18.5 + parent: 1 + - uid: 1056 + components: + - type: Transform + pos: 34.5,4.5 + parent: 1 + - uid: 1057 + components: + - type: Transform + pos: 18.5,22.5 + parent: 1 + - uid: 1058 + components: + - type: Transform + pos: 16.5,22.5 + parent: 1 + - uid: 1059 + components: + - type: Transform + pos: 6.5,36.5 + parent: 1 + - uid: 1060 + components: + - type: Transform + pos: 4.5,34.5 + parent: 1 + - uid: 1061 + components: + - type: Transform + pos: 8.5,12.5 + parent: 1 + - uid: 1062 + components: + - type: Transform + pos: 14.5,16.5 + parent: 1 + - uid: 1063 + components: + - type: Transform + pos: 8.5,16.5 + parent: 1 + - uid: 1064 + components: + - type: Transform + pos: 16.5,4.5 + parent: 1 + - uid: 1065 + components: + - type: Transform + pos: 10.5,18.5 + parent: 1 + - uid: 1066 + components: + - type: Transform + pos: 18.5,0.5 + parent: 1 + - uid: 1067 + components: + - type: Transform + pos: 34.5,30.5 + parent: 1 + - uid: 1068 + components: + - type: Transform + pos: 30.5,30.5 + parent: 1 + - uid: 1069 + components: + - type: Transform + pos: 28.5,32.5 + parent: 1 + - uid: 1070 + components: + - type: Transform + pos: 32.5,32.5 + parent: 1 + - uid: 1071 + components: + - type: Transform + pos: 36.5,32.5 + parent: 1 + - uid: 1072 + components: + - type: Transform + pos: 40.5,32.5 + parent: 1 + - uid: 1073 + components: + - type: Transform + pos: 38.5,30.5 + parent: 1 + - uid: 1074 + components: + - type: Transform + pos: 0.5,4.5 + parent: 1 +- proto: PowerCellRecharger + entities: + - uid: 1075 + components: + - type: Transform + pos: 4.5,16.5 + parent: 1 +- proto: Poweredlight + entities: + - uid: 1076 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,38.5 + parent: 1 + - uid: 1077 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,14.5 + parent: 1 + - uid: 1078 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,21.5 + parent: 1 + - uid: 1079 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,0.5 + parent: 1 + - uid: 1080 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,0.5 + parent: 1 + - uid: 1081 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,6.5 + parent: 1 + - uid: 1082 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,6.5 + parent: 1 + - uid: 1083 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,30.5 + parent: 1 + - uid: 1084 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,32.5 + parent: 1 + - uid: 1085 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,38.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1086 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,38.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1087 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,38.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1088 + components: + - type: Transform + pos: 2.5,36.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1089 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,34.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1090 + components: + - type: Transform + pos: 27.5,36.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1091 + components: + - type: Transform + pos: 15.5,32.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1092 + components: + - type: Transform + pos: 30.5,32.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1093 + components: + - type: Transform + pos: 38.5,32.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1094 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,18.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1095 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,14.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1096 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,3.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1097 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,1.5 + parent: 1 + - uid: 1098 + components: + - type: Transform + pos: 43.5,2.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1099 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,13.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1100 + components: + - type: Transform + pos: 45.5,40.5 + parent: 1 + - uid: 1101 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,30.5 + parent: 1 + - uid: 1102 + components: + - type: Transform + pos: 12.5,22.5 + parent: 1 + - uid: 1103 + components: + - type: Transform + pos: 12.5,4.5 + parent: 1 + - uid: 1104 + components: + - type: Transform + pos: 37.5,40.5 + parent: 1 + - uid: 1105 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,18.5 + parent: 1 + - uid: 1106 + components: + - type: Transform + pos: 29.5,40.5 + parent: 1 + - uid: 1107 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,38.5 + parent: 1 + - uid: 1108 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,12.5 + parent: 1 + - uid: 1109 + components: + - type: Transform + pos: 27.5,16.5 + parent: 1 + - uid: 1110 + components: + - type: Transform + pos: 6.5,4.5 + parent: 1 +- proto: PoweredlightEmpty + entities: + - uid: 1111 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,34.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1112 + components: + - type: Transform + pos: 27.5,4.5 + parent: 1 +- proto: PoweredlightExterior + entities: + - uid: 1113 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,43.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: PoweredSmallLight + entities: + - uid: 1114 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,42.5 + parent: 1 + - uid: 1115 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,42.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1116 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,42.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1117 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,44.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1118 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,48.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1119 + components: + - type: Transform + pos: 21.5,42.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1120 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,25.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1121 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,25.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1122 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,19.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1123 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,22.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1124 + components: + - type: Transform + pos: 6.5,10.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1125 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,6.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1126 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,6.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1127 + components: + - type: Transform + pos: 41.5,4.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1128 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,0.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1129 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,0.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1130 + components: + - type: Transform + pos: 49.5,4.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1131 + components: + - type: Transform + pos: 38.5,16.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 1132 + components: + - type: Transform + pos: 5.5,48.5 + parent: 1 + - uid: 1133 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,26.5 + parent: 1 + - uid: 1134 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,12.5 + parent: 1 + - uid: 1135 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,12.5 + parent: 1 + - uid: 1136 + components: + - type: Transform + pos: 1.5,48.5 + parent: 1 + - uid: 1137 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,27.5 + parent: 1 +- proto: PoweredSmallLightEmpty + entities: + - uid: 1138 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,25.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: Protolathe + entities: + - uid: 1139 + components: + - type: Transform + pos: 20.5,46.5 + parent: 1 +- proto: Rack + entities: + - uid: 1140 + components: + - type: Transform + pos: 14.5,34.5 + parent: 1 + - uid: 1141 + components: + - type: Transform + pos: 13.5,34.5 + parent: 1 + - uid: 1142 + components: + - type: Transform + pos: 25.5,38.5 + parent: 1 + - uid: 1143 + components: + - type: Transform + pos: 18.5,27.5 + parent: 1 + - uid: 1144 + components: + - type: Transform + pos: 20.5,38.5 + parent: 1 + - uid: 1145 + components: + - type: Transform + pos: 18.5,38.5 + parent: 1 + - uid: 1146 + components: + - type: Transform + pos: 29.5,40.5 + parent: 1 + - uid: 1147 + components: + - type: Transform + pos: 25.5,40.5 + parent: 1 + - uid: 1148 + components: + - type: Transform + pos: 37.5,30.5 + parent: 1 + - uid: 1149 + components: + - type: Transform + pos: 32.5,30.5 + parent: 1 + - uid: 1150 + components: + - type: Transform + pos: 31.5,30.5 + parent: 1 + - uid: 1151 + components: + - type: Transform + pos: 37.5,32.5 + parent: 1 + - uid: 1152 + components: + - type: Transform + pos: 38.5,32.5 + parent: 1 + - uid: 1153 + components: + - type: Transform + pos: 39.5,32.5 + parent: 1 + - uid: 1154 + components: + - type: Transform + pos: 20.5,36.5 + parent: 1 + - uid: 1155 + components: + - type: Transform + pos: 21.5,36.5 + parent: 1 + - uid: 1156 + components: + - type: Transform + pos: 16.5,24.5 + parent: 1 + - uid: 1157 + components: + - type: Transform + pos: 28.5,21.5 + parent: 1 + - uid: 1158 + components: + - type: Transform + pos: 36.5,30.5 + parent: 1 + - uid: 1159 + components: + - type: Transform + pos: 35.5,30.5 + parent: 1 + - uid: 1160 + components: + - type: Transform + pos: 29.5,32.5 + parent: 1 + - uid: 1161 + components: + - type: Transform + pos: 30.5,32.5 + parent: 1 + - uid: 1162 + components: + - type: Transform + pos: 33.5,30.5 + parent: 1 + - uid: 1163 + components: + - type: Transform + pos: 31.5,32.5 + parent: 1 + - uid: 1164 + components: + - type: Transform + pos: 18.5,25.5 + parent: 1 + - uid: 1165 + components: + - type: Transform + pos: 35.5,32.5 + parent: 1 + - uid: 1166 + components: + - type: Transform + pos: 33.5,32.5 + parent: 1 +- proto: RandomFoodBakedWhole + entities: + - uid: 1167 + components: + - type: Transform + pos: 35.5,32.5 + parent: 1 + - uid: 1168 + components: + - type: Transform + pos: 37.5,32.5 + parent: 1 +- proto: RandomFoodMeal + entities: + - uid: 1169 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,7.5 + parent: 1 + - uid: 1170 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,7.5 + parent: 1 +- proto: RandomMedicCorpseSpawner + entities: + - uid: 1171 + components: + - type: Transform + pos: 42.5,0.5 + parent: 1 +- proto: RandomScienceCorpseSpawner + entities: + - uid: 1172 + components: + - type: Transform + pos: 43.5,12.5 + parent: 1 +- proto: RandomSecurityCorpseSpawner + entities: + - uid: 1173 + components: + - type: Transform + pos: 30.5,34.5 + parent: 1 +- proto: RandomSoap + entities: + - uid: 1174 + components: + - type: Transform + pos: 8.5,24.5 + parent: 1 + - uid: 1175 + components: + - type: Transform + pos: 0.5,22.5 + parent: 1 +- proto: RandomSpawner + entities: + - uid: 1176 + components: + - type: Transform + pos: 5.5,39.5 + parent: 1 + - uid: 1177 + components: + - type: Transform + pos: 2.5,45.5 + parent: 1 + - uid: 1178 + components: + - type: Transform + pos: 1.5,40.5 + parent: 1 + - uid: 1179 + components: + - type: Transform + pos: 5.5,46.5 + parent: 1 + - uid: 1180 + components: + - type: Transform + pos: 14.5,40.5 + parent: 1 + - uid: 1181 + components: + - type: Transform + pos: 4.5,43.5 + parent: 1 + - uid: 1182 + components: + - type: Transform + pos: 19.5,39.5 + parent: 1 + - uid: 1183 + components: + - type: Transform + pos: 0.5,31.5 + parent: 1 + - uid: 1184 + components: + - type: Transform + pos: 8.5,38.5 + parent: 1 + - uid: 1185 + components: + - type: Transform + pos: 9.5,39.5 + parent: 1 + - uid: 1186 + components: + - type: Transform + pos: 29.5,40.5 + parent: 1 + - uid: 1187 + components: + - type: Transform + pos: 37.5,38.5 + parent: 1 + - uid: 1188 + components: + - type: Transform + pos: 0.5,46.5 + parent: 1 + - uid: 1189 + components: + - type: Transform + pos: 0.5,26.5 + parent: 1 + - uid: 1190 + components: + - type: Transform + pos: 6.5,27.5 + parent: 1 + - uid: 1191 + components: + - type: Transform + pos: 5.5,28.5 + parent: 1 + - uid: 1192 + components: + - type: Transform + pos: 10.5,34.5 + parent: 1 + - uid: 1193 + components: + - type: Transform + pos: 6.5,30.5 + parent: 1 + - uid: 1194 + components: + - type: Transform + pos: 4.5,26.5 + parent: 1 + - uid: 1195 + components: + - type: Transform + pos: 6.5,32.5 + parent: 1 + - uid: 1196 + components: + - type: Transform + pos: 16.5,38.5 + parent: 1 + - uid: 1197 + components: + - type: Transform + pos: 4.5,21.5 + parent: 1 + - uid: 1198 + components: + - type: Transform + pos: 2.5,19.5 + parent: 1 + - uid: 1199 + components: + - type: Transform + pos: 0.5,21.5 + parent: 1 + - uid: 1200 + components: + - type: Transform + pos: 9.5,20.5 + parent: 1 + - uid: 1201 + components: + - type: Transform + pos: 6.5,22.5 + parent: 1 + - uid: 1202 + components: + - type: Transform + pos: 1.5,28.5 + parent: 1 + - uid: 1203 + components: + - type: Transform + pos: 1.5,35.5 + parent: 1 + - uid: 1204 + components: + - type: Transform + pos: 2.5,39.5 + parent: 1 + - uid: 1205 + components: + - type: Transform + pos: 12.5,36.5 + parent: 1 + - uid: 1206 + components: + - type: Transform + pos: 19.5,34.5 + parent: 1 + - uid: 1207 + components: + - type: Transform + pos: 19.5,36.5 + parent: 1 + - uid: 1208 + components: + - type: Transform + pos: 22.5,35.5 + parent: 1 + - uid: 1209 + components: + - type: Transform + pos: 27.5,34.5 + parent: 1 + - uid: 1210 + components: + - type: Transform + pos: 26.5,36.5 + parent: 1 + - uid: 1211 + components: + - type: Transform + pos: 33.5,34.5 + parent: 1 + - uid: 1212 + components: + - type: Transform + pos: 15.5,32.5 + parent: 1 + - uid: 1213 + components: + - type: Transform + pos: 22.5,31.5 + parent: 1 + - uid: 1214 + components: + - type: Transform + pos: 14.5,30.5 + parent: 1 + - uid: 1215 + components: + - type: Transform + pos: 19.5,32.5 + parent: 1 + - uid: 1216 + components: + - type: Transform + pos: 11.5,32.5 + parent: 1 + - uid: 1217 + components: + - type: Transform + pos: 28.5,30.5 + parent: 1 + - uid: 1218 + components: + - type: Transform + pos: 30.5,31.5 + parent: 1 + - uid: 1219 + components: + - type: Transform + pos: 34.5,31.5 + parent: 1 + - uid: 1220 + components: + - type: Transform + pos: 40.5,30.5 + parent: 1 + - uid: 1221 + components: + - type: Transform + pos: 10.5,26.5 + parent: 1 + - uid: 1222 + components: + - type: Transform + pos: 9.5,25.5 + parent: 1 + - uid: 1223 + components: + - type: Transform + pos: 9.5,27.5 + parent: 1 + - uid: 1224 + components: + - type: Transform + pos: 12.5,24.5 + parent: 1 + - uid: 1225 + components: + - type: Transform + pos: 13.5,28.5 + parent: 1 + - uid: 1226 + components: + - type: Transform + pos: 17.5,26.5 + parent: 1 + - uid: 1227 + components: + - type: Transform + pos: 18.5,28.5 + parent: 1 + - uid: 1228 + components: + - type: Transform + pos: 20.5,24.5 + parent: 1 + - uid: 1229 + components: + - type: Transform + pos: 22.5,27.5 + parent: 1 + - uid: 1230 + components: + - type: Transform + pos: 20.5,28.5 + parent: 1 + - uid: 1231 + components: + - type: Transform + pos: 21.5,26.5 + parent: 1 + - uid: 1232 + components: + - type: Transform + pos: 22.5,24.5 + parent: 1 + - uid: 1233 + components: + - type: Transform + pos: 12.5,20.5 + parent: 1 + - uid: 1234 + components: + - type: Transform + pos: 14.5,22.5 + parent: 1 + - uid: 1235 + components: + - type: Transform + pos: 14.5,18.5 + parent: 1 + - uid: 1236 + components: + - type: Transform + pos: 20.5,18.5 + parent: 1 + - uid: 1237 + components: + - type: Transform + pos: 19.5,20.5 + parent: 1 + - uid: 1238 + components: + - type: Transform + pos: 22.5,21.5 + parent: 1 + - uid: 1239 + components: + - type: Transform + pos: 20.5,21.5 + parent: 1 + - uid: 1240 + components: + - type: Transform + pos: 26.5,18.5 + parent: 1 + - uid: 1241 + components: + - type: Transform + pos: 24.5,22.5 + parent: 1 + - uid: 1242 + components: + - type: Transform + pos: 5.5,13.5 + parent: 1 + - uid: 1243 + components: + - type: Transform + pos: 1.5,16.5 + parent: 1 + - uid: 1244 + components: + - type: Transform + pos: 5.5,15.5 + parent: 1 + - uid: 1245 + components: + - type: Transform + pos: 0.5,13.5 + parent: 1 + - uid: 1246 + components: + - type: Transform + pos: 2.5,15.5 + parent: 1 + - uid: 1247 + components: + - type: Transform + pos: 8.5,13.5 + parent: 1 + - uid: 1248 + components: + - type: Transform + pos: 12.5,16.5 + parent: 1 + - uid: 1249 + components: + - type: Transform + pos: 14.5,14.5 + parent: 1 + - uid: 1250 + components: + - type: Transform + pos: 12.5,12.5 + parent: 1 + - uid: 1251 + components: + - type: Transform + pos: 18.5,13.5 + parent: 1 + - uid: 1252 + components: + - type: Transform + pos: 20.5,15.5 + parent: 1 + - uid: 1253 + components: + - type: Transform + pos: 26.5,14.5 + parent: 1 + - uid: 1254 + components: + - type: Transform + pos: 30.5,15.5 + parent: 1 + - uid: 1255 + components: + - type: Transform + pos: 33.5,12.5 + parent: 1 + - uid: 1256 + components: + - type: Transform + pos: 38.5,16.5 + parent: 1 + - uid: 1257 + components: + - type: Transform + pos: 32.5,16.5 + parent: 1 + - uid: 1258 + components: + - type: Transform + pos: 6.5,10.5 + parent: 1 + - uid: 1259 + components: + - type: Transform + pos: 3.5,8.5 + parent: 1 + - uid: 1260 + components: + - type: Transform + pos: 10.5,8.5 + parent: 1 + - uid: 1261 + components: + - type: Transform + pos: 5.5,6.5 + parent: 1 + - uid: 1262 + components: + - type: Transform + pos: 0.5,9.5 + parent: 1 + - uid: 1263 + components: + - type: Transform + pos: 8.5,9.5 + parent: 1 + - uid: 1264 + components: + - type: Transform + pos: 46.5,14.5 + parent: 1 + - uid: 1265 + components: + - type: Transform + pos: 44.5,16.5 + parent: 1 + - uid: 1266 + components: + - type: Transform + pos: 40.5,14.5 + parent: 1 + - uid: 1267 + components: + - type: Transform + pos: 42.5,16.5 + parent: 1 +- proto: RandomVendingDrinks + entities: + - uid: 1268 + components: + - type: Transform + pos: 19.5,38.5 + parent: 1 + - uid: 1269 + components: + - type: Transform + pos: 22.5,16.5 + parent: 1 + - uid: 1270 + components: + - type: Transform + pos: 17.5,12.5 + parent: 1 + - uid: 1271 + components: + - type: Transform + pos: 5.5,34.5 + parent: 1 + - uid: 1272 + components: + - type: Transform + pos: 1.5,4.5 + parent: 1 + - uid: 1273 + components: + - type: Transform + pos: 54.5,0.5 + parent: 1 + - uid: 1274 + components: + - type: Transform + pos: 36.5,0.5 + parent: 1 +- proto: RandomVendingSnacks + entities: + - uid: 1275 + components: + - type: Transform + pos: 21.5,16.5 + parent: 1 + - uid: 1276 + components: + - type: Transform + pos: 16.5,12.5 + parent: 1 + - uid: 1277 + components: + - type: Transform + pos: 38.5,38.5 + parent: 1 + - uid: 1278 + components: + - type: Transform + pos: 2.5,0.5 + parent: 1 + - uid: 1279 + components: + - type: Transform + pos: 11.5,0.5 + parent: 1 + - uid: 1280 + components: + - type: Transform + pos: 36.5,4.5 + parent: 1 + - uid: 1281 + components: + - type: Transform + pos: 54.5,4.5 + parent: 1 +- proto: Recycler + entities: + - uid: 1282 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,24.5 + parent: 1 +- proto: ReinforcedWindow + entities: + - uid: 1283 + components: + - type: Transform + pos: 19.5,18.5 + parent: 1 + - uid: 1284 + components: + - type: Transform + pos: 19.5,19.5 + parent: 1 + - uid: 1285 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,38.5 + parent: 1 + - uid: 1286 + components: + - type: Transform + pos: 19.5,22.5 + parent: 1 + - uid: 1287 + components: + - type: Transform + pos: 21.5,19.5 + parent: 1 + - uid: 1288 + components: + - type: Transform + pos: 21.5,18.5 + parent: 1 + - uid: 1289 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,40.5 + parent: 1 + - uid: 1290 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,40.5 + parent: 1 + - uid: 1291 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,38.5 + parent: 1 + - uid: 1292 + components: + - type: Transform + pos: 21.5,22.5 + parent: 1 + - uid: 1293 + components: + - type: Transform + pos: 21.5,21.5 + parent: 1 + - uid: 1294 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,16.5 + parent: 1 + - uid: 1295 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,15.5 + parent: 1 + - uid: 1296 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,13.5 + parent: 1 + - uid: 1297 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,12.5 + parent: 1 +- proto: RobustHarvestChemistryBottle + entities: + - uid: 1298 + components: + - type: Transform + pos: 2.6484594,27.729053 + parent: 1 +- proto: RockGuitarInstrument + entities: + - uid: 1299 + components: + - type: Transform + pos: 10.533063,27.58727 + parent: 1 +- proto: SalvageCanisterSpawner + entities: + - uid: 1300 + components: + - type: Transform + pos: 16.5,27.5 + parent: 1 + - uid: 1301 + components: + - type: Transform + pos: 16.5,26.5 + parent: 1 + - uid: 1302 + components: + - type: Transform + pos: 16.5,25.5 + parent: 1 + - uid: 1303 + components: + - type: Transform + pos: 1.5,12.5 + parent: 1 + - uid: 1304 + components: + - type: Transform + pos: 14.5,42.5 + parent: 1 + - uid: 1305 + components: + - type: Transform + pos: 38.5,40.5 + parent: 1 +- proto: SalvageHumanCorpseSpawner + entities: + - uid: 1306 + components: + - type: Transform + pos: 31.5,19.5 + parent: 1 + - uid: 1307 + components: + - type: Transform + pos: 22.5,25.5 + parent: 1 +- proto: SeedExtractor + entities: + - uid: 1308 + components: + - type: Transform + pos: 7.5,31.5 + parent: 1 + - uid: 1309 + components: + - type: Transform + pos: 35.5,14.5 + parent: 1 +- proto: ShardGlass + entities: + - uid: 1310 + components: + - type: Transform + pos: 3.0669634,10.119056 + parent: 1 + - uid: 1311 + components: + - type: Transform + pos: 22.460766,26.044413 + parent: 1 + - uid: 1312 + components: + - type: Transform + pos: 22.679516,26.497538 + parent: 1 + - uid: 1313 + components: + - type: Transform + pos: 1.6409171,10.5682745 + parent: 1 + - uid: 1314 + components: + - type: Transform + pos: 3.477196,7.4628057 + parent: 1 + - uid: 1315 + components: + - type: Transform + pos: 8.028824,9.142493 + parent: 1 +- proto: ShardGlassReinforced + entities: + - uid: 1316 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.706394,15.35249 + parent: 1 + - uid: 1317 + components: + - type: Transform + pos: 25.350986,1.4505904 + parent: 1 + - uid: 1318 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.69077,15.94624 + parent: 1 + - uid: 1319 + components: + - type: Transform + pos: 24.835361,1.1224653 + parent: 1 +- proto: SheetPlasteel + entities: + - uid: 1320 + components: + - type: Transform + pos: 36.5,30.5 + parent: 1 + - uid: 1321 + components: + - type: Transform + pos: 31.5,30.5 + parent: 1 +- proto: SheetSteel + entities: + - uid: 1322 + components: + - type: Transform + pos: 38.5,32.5 + parent: 1 + - uid: 1323 + components: + - type: Transform + pos: 30.5,32.5 + parent: 1 + - uid: 1324 + components: + - type: Transform + pos: 18.521492,25.502415 + parent: 1 + - uid: 1325 + components: + - type: Transform + pos: 18.458992,27.67429 + parent: 1 + - uid: 1326 + components: + - type: Transform + pos: 18.568367,27.58054 + parent: 1 +- proto: SignBiohazardMed + entities: + - uid: 1327 + components: + - type: Transform + pos: 30.5,19.5 + parent: 1 + - uid: 1328 + components: + - type: Transform + pos: 34.5,21.5 + parent: 1 +- proto: SignElectricalMed + entities: + - uid: 1329 + components: + - type: Transform + pos: 21.5,47.5 + parent: 1 + - uid: 1330 + components: + - type: Transform + pos: 28.5,9.5 + parent: 1 +- proto: SignRedFour + entities: + - uid: 1331 + components: + - type: Transform + pos: 48.5,1.5 + parent: 1 +- proto: SignRedOne + entities: + - uid: 1332 + components: + - type: Transform + pos: 40.5,3.5 + parent: 1 +- proto: SignRedThree + entities: + - uid: 1333 + components: + - type: Transform + pos: 48.5,3.5 + parent: 1 +- proto: SignRedTwo + entities: + - uid: 1334 + components: + - type: Transform + pos: 40.5,1.5 + parent: 1 +- proto: SignShock + entities: + - uid: 1335 + components: + - type: Transform + pos: 17.5,43.5 + parent: 1 +- proto: SinkWide + entities: + - uid: 1336 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,24.5 + parent: 1 + - uid: 1337 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,28.5 + parent: 1 + - uid: 1338 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,28.5 + parent: 1 + - uid: 1339 + components: + - type: Transform + pos: 1.5,20.5 + parent: 1 + - uid: 1340 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,25.5 + parent: 1 +- proto: SmartFridge + entities: + - uid: 1341 + components: + - type: Transform + pos: 0.5,12.5 + parent: 1 +- proto: SMESBasic + entities: + - uid: 1342 + components: + - type: Transform + pos: 26.5,20.5 + parent: 1 +- proto: SpawnMobBee + entities: + - uid: 1343 + components: + - type: Transform + pos: 21.5,31.5 + parent: 1 + - uid: 1344 + components: + - type: Transform + pos: 19.5,31.5 + parent: 1 + - uid: 1345 + components: + - type: Transform + pos: 20.5,31.5 + parent: 1 + - uid: 1346 + components: + - type: Transform + pos: 20.5,32.5 + parent: 1 + - uid: 1347 + components: + - type: Transform + pos: 19.5,30.5 + parent: 1 +- proto: SpawnMobButterfly + entities: + - uid: 1348 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,3.5 + parent: 1 + - uid: 1349 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,1.5 + parent: 1 + - uid: 1350 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,39.5 + parent: 1 + - uid: 1351 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,38.5 + parent: 1 + - uid: 1352 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,39.5 + parent: 1 + - uid: 1353 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,39.5 + parent: 1 + - uid: 1354 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,43.5 + parent: 1 + - uid: 1355 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,45.5 + parent: 1 + - uid: 1356 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,39.5 + parent: 1 + - uid: 1357 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,39.5 + parent: 1 + - uid: 1358 + components: + - type: Transform + pos: 34.5,13.5 + parent: 1 + - uid: 1359 + components: + - type: Transform + pos: 36.5,15.5 + parent: 1 + - uid: 1360 + components: + - type: Transform + pos: 37.5,13.5 + parent: 1 + - uid: 1361 + components: + - type: Transform + pos: 0.5,19.5 + parent: 1 + - uid: 1362 + components: + - type: Transform + pos: 3.5,21.5 + parent: 1 + - uid: 1363 + components: + - type: Transform + pos: 15.5,19.5 + parent: 1 + - uid: 1364 + components: + - type: Transform + pos: 26.5,12.5 + parent: 1 + - uid: 1365 + components: + - type: Transform + pos: 24.5,15.5 + parent: 1 + - uid: 1366 + components: + - type: Transform + pos: 18.5,14.5 + parent: 1 + - uid: 1367 + components: + - type: Transform + pos: 12.5,13.5 + parent: 1 + - uid: 1368 + components: + - type: Transform + pos: 9.5,15.5 + parent: 1 + - uid: 1369 + components: + - type: Transform + pos: 4.5,13.5 + parent: 1 + - uid: 1370 + components: + - type: Transform + pos: 2.5,15.5 + parent: 1 + - uid: 1371 + components: + - type: Transform + pos: 2.5,6.5 + parent: 1 + - uid: 1372 + components: + - type: Transform + pos: 7.5,9.5 + parent: 1 + - uid: 1373 + components: + - type: Transform + pos: 3.5,9.5 + parent: 1 + - uid: 1374 + components: + - type: Transform + pos: 9.5,1.5 + parent: 1 + - uid: 1375 + components: + - type: Transform + pos: 2.5,1.5 + parent: 1 + - uid: 1376 + components: + - type: Transform + pos: 7.5,3.5 + parent: 1 + - uid: 1377 + components: + - type: Transform + pos: 13.5,0.5 + parent: 1 + - uid: 1378 + components: + - type: Transform + pos: 15.5,3.5 + parent: 1 + - uid: 1379 + components: + - type: Transform + pos: 0.5,3.5 + parent: 1 + - uid: 1380 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,1.5 + parent: 1 + - uid: 1381 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,2.5 + parent: 1 + - uid: 1382 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,3.5 + parent: 1 + - uid: 1383 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,9.5 + parent: 1 + - uid: 1384 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,8.5 + parent: 1 + - uid: 1385 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,2.5 + parent: 1 + - uid: 1386 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,2.5 + parent: 1 + - uid: 1387 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,2.5 + parent: 1 + - uid: 1388 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,2.5 + parent: 1 +- proto: SpawnMobGoat + entities: + - uid: 1389 + components: + - type: Transform + pos: 13.5,26.5 + parent: 1 + - uid: 1390 + components: + - type: Transform + pos: 12.5,27.5 + parent: 1 +- proto: SpawnMobGorilla + entities: + - uid: 1391 + components: + - type: Transform + pos: 30.5,7.5 + parent: 1 + - uid: 1392 + components: + - type: Transform + pos: 28.5,6.5 + parent: 1 + - uid: 1393 + components: + - type: Transform + pos: 28.5,8.5 + parent: 1 + - uid: 1394 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,35.5 + parent: 1 + - uid: 1395 + components: + - type: Transform + pos: 13.5,26.5 + parent: 1 + - uid: 1396 + components: + - type: Transform + pos: 44.5,13.5 + parent: 1 + - uid: 1397 + components: + - type: Transform + pos: 42.5,13.5 + parent: 1 + - uid: 1398 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,1.5 + parent: 1 +- proto: SpawnMobMonkey + entities: + - uid: 1399 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,2.5 + parent: 1 + - uid: 1400 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,3.5 + parent: 1 + - uid: 1401 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,3.5 + parent: 1 +- proto: SpawnVendingMachineRestockFoodDrink + entities: + - uid: 1402 + components: + - type: Transform + pos: 14.5,24.5 + parent: 1 + - uid: 1403 + components: + - type: Transform + pos: 14.5,28.5 + parent: 1 +- proto: Spear + entities: + - uid: 1404 + components: + - type: Transform + pos: 45.84101,12.603852 + parent: 1 +- proto: SpearPlasma + entities: + - uid: 1405 + components: + - type: Transform + pos: 20.69514,25.419413 + parent: 1 +- proto: Stairs + entities: + - uid: 1406 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,30.5 + parent: 1 + - uid: 1407 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,32.5 + parent: 1 + - uid: 1408 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,32.5 + parent: 1 + - uid: 1409 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,38.5 + parent: 1 + - uid: 1410 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,30.5 + parent: 1 + - uid: 1411 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,32.5 + parent: 1 + - uid: 1412 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,30.5 + parent: 1 + - uid: 1413 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,32.5 + parent: 1 + - uid: 1414 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,38.5 + parent: 1 + - uid: 1415 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,40.5 + parent: 1 + - uid: 1416 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,38.5 + parent: 1 + - uid: 1417 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,40.5 + parent: 1 + - uid: 1418 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,40.5 + parent: 1 + - uid: 1419 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,30.5 + parent: 1 + - uid: 1420 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,30.5 + parent: 1 + - uid: 1421 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,32.5 + parent: 1 + - uid: 1422 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,32.5 + parent: 1 + - uid: 1423 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,30.5 + parent: 1 + - uid: 1424 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,38.5 + parent: 1 + - uid: 1425 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,40.5 + parent: 1 +- proto: Stool + entities: + - uid: 1426 + components: + - type: Transform + pos: 8.5,25.5 + parent: 1 + - uid: 1427 + components: + - type: Transform + pos: 27.5,13.5 + parent: 1 + - uid: 1428 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,15.5 + parent: 1 +- proto: SubstationBasic + entities: + - uid: 1429 + components: + - type: Transform + pos: 8.5,42.5 + parent: 1 + - uid: 1430 + components: + - type: Transform + pos: 28.5,18.5 + parent: 1 +- proto: SurveillanceCameraRouterService + entities: + - uid: 1431 + components: + - type: Transform + pos: 40.5,12.5 + parent: 1 +- proto: Table + entities: + - uid: 1432 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,40.5 + parent: 1 + - uid: 1433 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,34.5 + parent: 1 + - uid: 1434 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,34.5 + parent: 1 + - uid: 1435 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,36.5 + parent: 1 + - uid: 1436 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,36.5 + parent: 1 + - uid: 1437 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,34.5 + parent: 1 + - uid: 1438 + components: + - type: Transform + pos: 5.5,0.5 + parent: 1 + - uid: 1439 + components: + - type: Transform + pos: 6.5,0.5 + parent: 1 + - uid: 1440 + components: + - type: Transform + pos: 7.5,7.5 + parent: 1 + - uid: 1441 + components: + - type: Transform + pos: 7.5,4.5 + parent: 1 + - uid: 1442 + components: + - type: Transform + pos: 2.5,7.5 + parent: 1 + - uid: 1443 + components: + - type: Transform + pos: 9.5,7.5 + parent: 1 + - uid: 1444 + components: + - type: Transform + pos: 16.5,0.5 + parent: 1 + - uid: 1445 + components: + - type: Transform + pos: 5.5,4.5 + parent: 1 + - uid: 1446 + components: + - type: Transform + pos: 15.5,0.5 + parent: 1 + - uid: 1447 + components: + - type: Transform + pos: 2.5,27.5 + parent: 1 + - uid: 1448 + components: + - type: Transform + pos: 7.5,0.5 + parent: 1 + - uid: 1449 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,36.5 + parent: 1 + - uid: 1450 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,40.5 + parent: 1 + - uid: 1451 + components: + - type: Transform + pos: 3.5,7.5 + parent: 1 + - uid: 1452 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,34.5 + parent: 1 + - uid: 1453 + components: + - type: Transform + pos: 8.5,7.5 + parent: 1 + - uid: 1454 + components: + - type: Transform + pos: 6.5,4.5 + parent: 1 + - uid: 1455 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,36.5 + parent: 1 + - uid: 1456 + components: + - type: Transform + pos: 2.5,25.5 + parent: 1 + - uid: 1457 + components: + - type: Transform + pos: 5.5,8.5 + parent: 1 + - uid: 1458 + components: + - type: Transform + pos: 10.5,0.5 + parent: 1 +- proto: TableCarpet + entities: + - uid: 1459 + components: + - type: Transform + pos: 14.5,28.5 + parent: 1 + - uid: 1460 + components: + - type: Transform + pos: 14.5,24.5 + parent: 1 +- proto: TableGlass + entities: + - uid: 1461 + components: + - type: Transform + pos: 38.5,4.5 + parent: 1 + - uid: 1462 + components: + - type: Transform + pos: 38.5,3.5 + parent: 1 + - uid: 1463 + components: + - type: Transform + pos: 38.5,1.5 + parent: 1 + - uid: 1464 + components: + - type: Transform + pos: 38.5,0.5 + parent: 1 + - uid: 1465 + components: + - type: Transform + pos: 52.5,1.5 + parent: 1 + - uid: 1466 + components: + - type: Transform + pos: 52.5,0.5 + parent: 1 + - uid: 1467 + components: + - type: Transform + pos: 52.5,4.5 + parent: 1 + - uid: 1468 + components: + - type: Transform + pos: 52.5,3.5 + parent: 1 +- proto: TableReinforced + entities: + - uid: 1469 + components: + - type: Transform + pos: 31.5,8.5 + parent: 1 + - uid: 1470 + components: + - type: Transform + pos: 27.5,8.5 + parent: 1 +- proto: TableReinforcedGlass + entities: + - uid: 1471 + components: + - type: Transform + pos: 12.5,47.5 + parent: 1 + - uid: 1472 + components: + - type: Transform + pos: 10.5,47.5 + parent: 1 + - uid: 1473 + components: + - type: Transform + pos: 18.5,44.5 + parent: 1 +- proto: TableStone + entities: + - uid: 1474 + components: + - type: Transform + pos: 6.5,38.5 + parent: 1 + - uid: 1475 + components: + - type: Transform + pos: 40.5,4.5 + parent: 1 + - uid: 1476 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,13.5 + parent: 1 + - uid: 1477 + components: + - type: Transform + pos: 0.5,38.5 + parent: 1 + - uid: 1478 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,13.5 + parent: 1 + - uid: 1479 + components: + - type: Transform + pos: 12.5,4.5 + parent: 1 + - uid: 1480 + components: + - type: Transform + pos: 12.5,3.5 + parent: 1 + - uid: 1481 + components: + - type: Transform + pos: 12.5,2.5 + parent: 1 + - uid: 1482 + components: + - type: Transform + pos: 45.5,13.5 + parent: 1 + - uid: 1483 + components: + - type: Transform + pos: 46.5,13.5 + parent: 1 + - uid: 1484 + components: + - type: Transform + pos: 40.5,13.5 + parent: 1 + - uid: 1485 + components: + - type: Transform + pos: 41.5,13.5 + parent: 1 + - uid: 1486 + components: + - type: Transform + pos: 15.5,36.5 + parent: 1 + - uid: 1487 + components: + - type: Transform + pos: 50.5,0.5 + parent: 1 + - uid: 1488 + components: + - type: Transform + pos: 50.5,4.5 + parent: 1 + - uid: 1489 + components: + - type: Transform + pos: 40.5,0.5 + parent: 1 + - uid: 1490 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,4.5 + parent: 1 + - uid: 1491 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,4.5 + parent: 1 + - uid: 1492 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,12.5 + parent: 1 + - uid: 1493 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,10.5 + parent: 1 + - uid: 1494 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,10.5 + parent: 1 + - uid: 1495 + components: + - type: Transform + pos: 5.5,12.5 + parent: 1 + - uid: 1496 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,36.5 + parent: 1 + - uid: 1497 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,36.5 + parent: 1 + - uid: 1498 + components: + - type: Transform + pos: 6.5,15.5 + parent: 1 + - uid: 1499 + components: + - type: Transform + pos: 6.5,16.5 + parent: 1 + - uid: 1500 + components: + - type: Transform + pos: 5.5,16.5 + parent: 1 + - uid: 1501 + components: + - type: Transform + pos: 4.5,16.5 + parent: 1 + - uid: 1502 + components: + - type: Transform + pos: 2.5,12.5 + parent: 1 + - uid: 1503 + components: + - type: Transform + pos: 4.5,12.5 + parent: 1 + - uid: 1504 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,4.5 + parent: 1 + - uid: 1505 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,4.5 + parent: 1 + - uid: 1506 + components: + - type: Transform + pos: 21.5,34.5 + parent: 1 + - uid: 1507 + components: + - type: Transform + pos: 20.5,34.5 + parent: 1 + - uid: 1508 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,36.5 + parent: 1 + - uid: 1509 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,36.5 + parent: 1 + - uid: 1510 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,4.5 + parent: 1 + - uid: 1511 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,4.5 + parent: 1 + - uid: 1512 + components: + - type: Transform + pos: 36.5,40.5 + parent: 1 + - uid: 1513 + components: + - type: Transform + pos: 36.5,39.5 + parent: 1 + - uid: 1514 + components: + - type: Transform + pos: 14.5,36.5 + parent: 1 + - uid: 1515 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,13.5 + parent: 1 + - uid: 1516 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,15.5 + parent: 1 + - uid: 1517 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,15.5 + parent: 1 + - uid: 1518 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,15.5 + parent: 1 + - uid: 1519 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,16.5 + parent: 1 +- proto: ToiletEmpty + entities: + - uid: 1520 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,25.5 + parent: 1 + - uid: 1521 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,27.5 + parent: 1 + - uid: 1522 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,27.5 + parent: 1 + - uid: 1523 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,18.5 + parent: 1 +- proto: Torch + entities: + - uid: 1524 + components: + - type: Transform + pos: 7.085506,20.834585 + parent: 1 + - uid: 1525 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.319881,19.69396 + parent: 1 + - uid: 1526 + components: + - type: Transform + pos: 8.569881,19.78771 + parent: 1 + - uid: 1527 + components: + - type: Transform + pos: 8.132381,18.584585 + parent: 1 + - uid: 1528 + components: + - type: Transform + pos: 6.726131,19.63146 + parent: 1 +- proto: TrashBananaPeel + entities: + - uid: 1529 + components: + - type: Transform + pos: 45.529194,14.332554 + parent: 1 + - uid: 1530 + components: + - type: Transform + pos: 45.26357,12.645054 + parent: 1 + - uid: 1531 + components: + - type: Transform + pos: 41.747944,14.504429 + parent: 1 + - uid: 1532 + components: + - type: Transform + pos: 44.45107,16.410679 + parent: 1 + - uid: 1533 + components: + - type: Transform + pos: 41.57607,12.566929 + parent: 1 + - uid: 1534 + components: + - type: Transform + pos: 41.560444,13.426304 + parent: 1 + - uid: 1535 + components: + - type: Transform + pos: 46.154194,13.551304 + parent: 1 + - uid: 1536 + components: + - type: Transform + pos: 24.713144,3.4320827 + parent: 1 + - uid: 1537 + components: + - type: Transform + pos: 26.38502,3.9320831 + parent: 1 + - uid: 1538 + components: + - type: Transform + pos: 27.47877,1.1352081 + parent: 1 + - uid: 1539 + components: + - type: Transform + pos: 25.66627,1.4164578 + parent: 1 + - uid: 1540 + components: + - type: Transform + pos: 26.525644,0.8070829 + parent: 1 + - uid: 1541 + components: + - type: Transform + pos: 26.19752,0.5258329 + parent: 1 + - uid: 1542 + components: + - type: Transform + pos: 30.91627,1.9633337 + parent: 1 + - uid: 1543 + components: + - type: Transform + pos: 30.01002,1.3070836 + parent: 1 + - uid: 1544 + components: + - type: Transform + pos: 23.47877,1.1195824 + parent: 1 + - uid: 1545 + components: + - type: Transform + pos: 21.79127,0.8695821 + parent: 1 + - uid: 1546 + components: + - type: Transform + pos: 21.01002,1.6508319 + parent: 1 + - uid: 1547 + components: + - type: Transform + pos: 20.69752,0.83833194 + parent: 1 +- proto: VendingMachineBooze + entities: + - uid: 1548 + components: + - type: Transform + pos: 5.5,7.5 + parent: 1 +- proto: VendingMachineClothing + entities: + - uid: 1549 + components: + - type: Transform + pos: 1.5,34.5 + parent: 1 +- proto: VendingMachineCondiments + entities: + - uid: 1550 + components: + - type: Transform + pos: 5.5,8.5 + parent: 1 +- proto: VendingMachineDinnerware + entities: + - uid: 1551 + components: + - type: Transform + pos: 0.5,15.5 + parent: 1 +- proto: VendingMachineHydrobe + entities: + - uid: 1552 + components: + - type: Transform + pos: 19.5,0.5 + parent: 1 + - uid: 1553 + components: + - type: Transform + pos: 9.5,34.5 + parent: 1 + - uid: 1554 + components: + - type: Transform + pos: 17.5,38.5 + parent: 1 + - uid: 1555 + components: + - type: Transform + pos: 14.5,20.5 + parent: 1 + - uid: 1556 + components: + - type: Transform + pos: 30.5,12.5 + parent: 1 +- proto: VendingMachineJaniDrobe + entities: + - uid: 1557 + components: + - type: Transform + pos: 6.5,26.5 + parent: 1 +- proto: VendingMachineNutri + entities: + - uid: 1558 + components: + - type: Transform + pos: 21.5,38.5 + parent: 1 + - uid: 1559 + components: + - type: Transform + pos: 1.5,36.5 + parent: 1 + - uid: 1560 + components: + - type: Transform + pos: 12.5,26.5 + parent: 1 + - uid: 1561 + components: + - type: Transform + pos: 33.5,0.5 + parent: 1 +- proto: VendingMachineRestockNutriMax + entities: + - uid: 1562 + components: + - type: Transform + pos: 17.36789,30.519838 + parent: 1 +- proto: VendingMachineRestockSeeds + entities: + - uid: 1563 + components: + - type: Transform + pos: 33.55107,32.551086 + parent: 1 +- proto: VendingMachineSeeds + entities: + - uid: 1564 + components: + - type: Transform + pos: 25.5,0.5 + parent: 1 + - uid: 1565 + components: + - type: Transform + pos: 12.5,22.5 + parent: 1 + - uid: 1566 + components: + - type: Transform + pos: 16.5,18.5 + parent: 1 + - uid: 1567 + components: + - type: Transform + pos: 27.5,0.5 + parent: 1 + - uid: 1568 + components: + - type: Transform + pos: 5.5,31.5 + parent: 1 +- proto: VendingMachineSeedsUnlocked + entities: + - uid: 1569 + components: + - type: Transform + pos: 22.5,32.5 + parent: 1 + - uid: 1570 + components: + - type: Transform + pos: 9.5,36.5 + parent: 1 +- proto: WallmountTelescreen + entities: + - uid: 1571 + components: + - type: Transform + pos: 3.5,14.5 + parent: 1 +- proto: WallmountTelevision + entities: + - uid: 1572 + components: + - type: Transform + pos: 11.5,14.5 + parent: 1 +- proto: WallRiveted + entities: + - uid: 1573 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,22.5 + parent: 1 + - uid: 1574 + components: + - type: Transform + pos: 30.5,19.5 + parent: 1 + - uid: 1575 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,19.5 + parent: 1 + - uid: 1576 + components: + - type: Transform + pos: 34.5,21.5 + parent: 1 + - uid: 1577 + components: + - type: Transform + pos: 34.5,22.5 + parent: 1 + - uid: 1578 + components: + - type: Transform + pos: 30.5,18.5 + parent: 1 + - uid: 1579 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,21.5 + parent: 1 + - uid: 1580 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,18.5 + parent: 1 +- proto: WallSolid + entities: + - uid: 1581 + components: + - type: Transform + pos: 13.5,43.5 + parent: 1 + - uid: 1582 + components: + - type: Transform + pos: 4.5,1.5 + parent: 1 + - uid: 1583 + components: + - type: Transform + pos: 4.5,3.5 + parent: 1 + - uid: 1584 + components: + - type: Transform + pos: 8.5,43.5 + parent: 1 + - uid: 1585 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,10.5 + parent: 1 + - uid: 1586 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,14.5 + parent: 1 + - uid: 1587 + components: + - type: Transform + pos: 4.5,0.5 + parent: 1 + - uid: 1588 + components: + - type: Transform + pos: 10.5,14.5 + parent: 1 + - uid: 1589 + components: + - type: Transform + pos: 51.5,1.5 + parent: 1 + - uid: 1590 + components: + - type: Transform + pos: 48.5,3.5 + parent: 1 + - uid: 1591 + components: + - type: Transform + pos: 4.5,4.5 + parent: 1 + - uid: 1592 + components: + - type: Transform + pos: 47.5,0.5 + parent: 1 + - uid: 1593 + components: + - type: Transform + pos: 47.5,1.5 + parent: 1 + - uid: 1594 + components: + - type: Transform + pos: 48.5,1.5 + parent: 1 + - uid: 1595 + components: + - type: Transform + pos: 4.5,19.5 + parent: 1 + - uid: 1596 + components: + - type: Transform + pos: 3.5,19.5 + parent: 1 + - uid: 1597 + components: + - type: Transform + pos: 1.5,22.5 + parent: 1 + - uid: 1598 + components: + - type: Transform + pos: 1.5,21.5 + parent: 1 + - uid: 1599 + components: + - type: Transform + pos: 28.5,9.5 + parent: 1 + - uid: 1600 + components: + - type: Transform + pos: 30.5,9.5 + parent: 1 + - uid: 1601 + components: + - type: Transform + pos: 29.5,9.5 + parent: 1 + - uid: 1602 + components: + - type: Transform + pos: 28.5,22.5 + parent: 1 + - uid: 1603 + components: + - type: Transform + pos: 42.5,1.5 + parent: 1 + - uid: 1604 + components: + - type: Transform + pos: 43.5,1.5 + parent: 1 + - uid: 1605 + components: + - type: Transform + pos: 47.5,3.5 + parent: 1 + - uid: 1606 + components: + - type: Transform + pos: 47.5,4.5 + parent: 1 + - uid: 1607 + components: + - type: Transform + pos: 50.5,1.5 + parent: 1 + - uid: 1608 + components: + - type: Transform + pos: 51.5,3.5 + parent: 1 + - uid: 1609 + components: + - type: Transform + pos: 50.5,3.5 + parent: 1 + - uid: 1610 + components: + - type: Transform + pos: 51.5,0.5 + parent: 1 + - uid: 1611 + components: + - type: Transform + pos: 40.5,1.5 + parent: 1 + - uid: 1612 + components: + - type: Transform + pos: 51.5,4.5 + parent: 1 + - uid: 1613 + components: + - type: Transform + pos: 40.5,3.5 + parent: 1 + - uid: 1614 + components: + - type: Transform + pos: 39.5,0.5 + parent: 1 + - uid: 1615 + components: + - type: Transform + pos: 39.5,1.5 + parent: 1 + - uid: 1616 + components: + - type: Transform + pos: 43.5,4.5 + parent: 1 + - uid: 1617 + components: + - type: Transform + pos: 39.5,4.5 + parent: 1 + - uid: 1618 + components: + - type: Transform + pos: 39.5,3.5 + parent: 1 + - uid: 1619 + components: + - type: Transform + pos: 43.5,3.5 + parent: 1 + - uid: 1620 + components: + - type: Transform + pos: 42.5,3.5 + parent: 1 + - uid: 1621 + components: + - type: Transform + pos: 43.5,0.5 + parent: 1 + - uid: 1622 + components: + - type: Transform + pos: 12.5,14.5 + parent: 1 + - uid: 1623 + components: + - type: Transform + pos: 11.5,14.5 + parent: 1 + - uid: 1624 + components: + - type: Transform + pos: 17.5,43.5 + parent: 1 + - uid: 1625 + components: + - type: Transform + pos: 17.5,47.5 + parent: 1 + - uid: 1626 + components: + - type: Transform + pos: 21.5,47.5 + parent: 1 + - uid: 1627 + components: + - type: Transform + pos: 21.5,43.5 + parent: 1 + - uid: 1628 + components: + - type: Transform + pos: 14.5,43.5 + parent: 1 + - uid: 1629 + components: + - type: Transform + pos: 9.5,43.5 + parent: 1 +- proto: WardrobeBotanistFilled + entities: + - uid: 1630 + components: + - type: Transform + pos: 0.5,28.5 + parent: 1 + - uid: 1631 + components: + - type: Transform + pos: 0.5,24.5 + parent: 1 +- proto: WaterCooler + entities: + - uid: 1632 + components: + - type: Transform + pos: 12.5,40.5 + parent: 1 + - uid: 1633 + components: + - type: Transform + pos: 8.5,0.5 + parent: 1 + - uid: 1634 + components: + - type: Transform + pos: 5.5,36.5 + parent: 1 + - uid: 1635 + components: + - type: Transform + pos: 9.5,16.5 + parent: 1 + - uid: 1636 + components: + - type: Transform + pos: 2.5,4.5 + parent: 1 +- proto: WaterTankFull + entities: + - uid: 1637 + components: + - type: Transform + pos: 24.5,4.5 + parent: 1 + - uid: 1638 + components: + - type: Transform + pos: 28.5,4.5 + parent: 1 +- proto: WaterTankHighCapacity + entities: + - uid: 1639 + components: + - type: Transform + pos: 3.5,38.5 + parent: 1 +- proto: WeldingFuelTankFull + entities: + - uid: 1640 + components: + - type: Transform + pos: 31.5,7.5 + parent: 1 + - uid: 1641 + components: + - type: Transform + pos: 27.5,7.5 + parent: 1 +- proto: WheatBushel + entities: + - uid: 1642 + components: + - type: Transform + pos: 20.110706,8.814536 + parent: 1 + - uid: 1643 + components: + - type: Transform + pos: 20.329456,8.861411 + parent: 1 + - uid: 1644 + components: + - type: Transform + pos: 19.860706,8.970786 + parent: 1 + - uid: 1645 + components: + - type: Transform + pos: 20.063831,9.080161 + parent: 1 + - uid: 1646 + components: + - type: Transform + pos: 20.266956,9.111411 + parent: 1 + - uid: 1647 + components: + - type: Transform + pos: 20.235706,8.845786 + parent: 1 + - uid: 1648 + components: + - type: Transform + pos: 19.813831,8.923911 + parent: 1 + - uid: 1649 + components: + - type: Transform + pos: 19.829456,9.345786 + parent: 1 + - uid: 1650 + components: + - type: Transform + pos: 20.032581,9.377036 + parent: 1 + - uid: 1651 + components: + - type: Transform + pos: 20.220081,9.267661 + parent: 1 +- proto: Windoor + entities: + - uid: 1652 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,25.5 + parent: 1 + - uid: 1653 + components: + - type: Transform + pos: 9.5,27.5 + parent: 1 +- proto: WindoorSecure + entities: + - uid: 1654 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,42.5 + parent: 1 + - uid: 1655 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,30.5 + parent: 1 + - uid: 1656 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,32.5 + parent: 1 + - uid: 1657 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,30.5 + parent: 1 + - uid: 1658 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,32.5 + parent: 1 + - uid: 1659 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,42.5 + parent: 1 + - uid: 1660 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,39.5 + parent: 1 + - uid: 1661 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,39.5 + parent: 1 + - uid: 1662 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,39.5 + parent: 1 + - uid: 1663 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,39.5 + parent: 1 +- proto: WindoorSecureExternalLocked + entities: + - uid: 1664 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,10.5 + parent: 1 + - uid: 1665 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,6.5 + parent: 1 + - uid: 1666 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,10.5 + parent: 1 + - uid: 1667 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,6.5 + parent: 1 +- proto: WindoorSecureHeadOfPersonnelLocked + entities: + - uid: 1668 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,14.5 + parent: 1 + - uid: 1669 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,14.5 + parent: 1 + - uid: 1670 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,14.5 + parent: 1 +- proto: WindoorSecureKitchenLocked + entities: + - uid: 1671 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,14.5 + parent: 1 + - uid: 1672 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,14.5 + parent: 1 + - uid: 1673 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,7.5 + parent: 1 + - uid: 1674 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,7.5 + parent: 1 + - uid: 1675 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,2.5 + parent: 1 + - uid: 1676 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,2.5 + parent: 1 +- proto: WindoorSecureMedicalLocked + entities: + - uid: 1677 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,31.5 + parent: 1 + - uid: 1678 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,31.5 + parent: 1 +- proto: WindowDirectional + entities: + - uid: 1679 + components: + - type: Transform + pos: 20.5,26.5 + parent: 1 + - uid: 1680 + components: + - type: Transform + pos: 21.5,26.5 + parent: 1 +- proto: WindowFrostedDirectional + entities: + - uid: 1681 + components: + - type: Transform + pos: 18.5,43.5 + parent: 1 + - uid: 1682 + components: + - type: Transform + pos: 20.5,43.5 + parent: 1 + - uid: 1683 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,44.5 + parent: 1 + - uid: 1684 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,46.5 + parent: 1 + - uid: 1685 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,47.5 + parent: 1 + - uid: 1686 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,47.5 + parent: 1 + - uid: 1687 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,46.5 + parent: 1 + - uid: 1688 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,44.5 + parent: 1 + - uid: 1689 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,45.5 + parent: 1 + - uid: 1690 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,47.5 + parent: 1 + - uid: 1691 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,45.5 + parent: 1 + - uid: 1692 + components: + - type: Transform + pos: 19.5,43.5 + parent: 1 + - uid: 1693 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,25.5 + parent: 1 + - uid: 1694 + components: + - type: Transform + pos: 10.5,28.5 + parent: 1 + - uid: 1695 + components: + - type: Transform + pos: 10.5,27.5 + parent: 1 + - uid: 1696 + components: + - type: Transform + pos: 8.5,28.5 + parent: 1 + - uid: 1697 + components: + - type: Transform + pos: 8.5,27.5 + parent: 1 + - uid: 1698 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,25.5 + parent: 1 + - uid: 1699 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,24.5 + parent: 1 +- proto: WindowReinforcedDirectional + entities: + - uid: 1700 + components: + - type: Transform + pos: 1.5,47.5 + parent: 1 + - uid: 1701 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,42.5 + parent: 1 + - uid: 1702 + components: + - type: Transform + pos: 5.5,47.5 + parent: 1 + - uid: 1703 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,2.5 + parent: 1 + - uid: 1704 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,0.5 + parent: 1 + - uid: 1705 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,2.5 + parent: 1 + - uid: 1706 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,2.5 + parent: 1 + - uid: 1707 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,2.5 + parent: 1 + - uid: 1708 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,43.5 + parent: 1 + - uid: 1709 + components: + - type: Transform + pos: 0.5,47.5 + parent: 1 + - uid: 1710 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,47.5 + parent: 1 + - uid: 1711 + components: + - type: Transform + pos: 33.5,13.5 + parent: 1 + - uid: 1712 + components: + - type: Transform + pos: 34.5,13.5 + parent: 1 + - uid: 1713 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,9.5 + parent: 1 + - uid: 1714 + components: + - type: Transform + pos: 21.5,10.5 + parent: 1 + - uid: 1715 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,13.5 + parent: 1 + - uid: 1716 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,43.5 + parent: 1 + - uid: 1717 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,31.5 + parent: 1 + - uid: 1718 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,15.5 + parent: 1 + - uid: 1719 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,15.5 + parent: 1 + - uid: 1720 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,31.5 + parent: 1 + - uid: 1721 + components: + - type: Transform + pos: 35.5,13.5 + parent: 1 + - uid: 1722 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,9.5 + parent: 1 + - uid: 1723 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,7.5 + parent: 1 + - uid: 1724 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,15.5 + parent: 1 + - uid: 1725 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,2.5 + parent: 1 + - uid: 1726 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,48.5 + parent: 1 + - uid: 1727 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,32.5 + parent: 1 + - uid: 1728 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,32.5 + parent: 1 + - uid: 1729 + components: + - type: Transform + pos: 6.5,47.5 + parent: 1 + - uid: 1730 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,47.5 + parent: 1 + - uid: 1731 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,30.5 + parent: 1 + - uid: 1732 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,30.5 + parent: 1 + - uid: 1733 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,0.5 + parent: 1 + - uid: 1734 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,0.5 + parent: 1 + - uid: 1735 + components: + - type: Transform + pos: 14.5,10.5 + parent: 1 + - uid: 1736 + components: + - type: Transform + pos: 36.5,13.5 + parent: 1 + - uid: 1737 + components: + - type: Transform + pos: 15.5,10.5 + parent: 1 + - uid: 1738 + components: + - type: Transform + pos: 19.5,10.5 + parent: 1 + - uid: 1739 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,7.5 + parent: 1 + - uid: 1740 + components: + - type: Transform + pos: 17.5,10.5 + parent: 1 + - uid: 1741 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,7.5 + parent: 1 + - uid: 1742 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,7.5 + parent: 1 + - uid: 1743 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,48.5 + parent: 1 + - uid: 1744 + components: + - type: Transform + pos: 18.5,10.5 + parent: 1 + - uid: 1745 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,43.5 + parent: 1 + - uid: 1746 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,42.5 + parent: 1 + - uid: 1747 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,39.5 + parent: 1 + - uid: 1748 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,31.5 + parent: 1 + - uid: 1749 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,31.5 + parent: 1 + - uid: 1750 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,39.5 + parent: 1 + - uid: 1751 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,39.5 + parent: 1 + - uid: 1752 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,39.5 + parent: 1 + - uid: 1753 + components: + - type: Transform + pos: 16.5,10.5 + parent: 1 + - uid: 1754 + components: + - type: Transform + pos: 13.5,10.5 + parent: 1 + - uid: 1755 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,15.5 + parent: 1 + - uid: 1756 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,43.5 + parent: 1 + - uid: 1757 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,43.5 + parent: 1 + - uid: 1758 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,43.5 + parent: 1 + - uid: 1759 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,39.5 + parent: 1 + - uid: 1760 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,2.5 + parent: 1 + - uid: 1761 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,1.5 + parent: 1 + - uid: 1762 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,8.5 + parent: 1 + - uid: 1763 + components: + - type: Transform + pos: 20.5,10.5 + parent: 1 + - uid: 1764 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,15.5 + parent: 1 + - uid: 1765 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,13.5 + parent: 1 + - uid: 1766 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,15.5 + parent: 1 + - uid: 1767 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,15.5 + parent: 1 + - uid: 1768 + components: + - type: Transform + pos: 37.5,13.5 + parent: 1 + - uid: 1769 + components: + - type: Transform + pos: 42.5,39.5 + parent: 1 + - uid: 1770 + components: + - type: Transform + pos: 44.5,39.5 + parent: 1 + - uid: 1771 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,40.5 + parent: 1 + - uid: 1772 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,40.5 + parent: 1 + - uid: 1773 + components: + - type: Transform + pos: 36.5,40.5 + parent: 1 + - uid: 1774 + components: + - type: Transform + pos: 41.5,39.5 + parent: 1 + - uid: 1775 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,40.5 + parent: 1 + - uid: 1776 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,39.5 + parent: 1 + - uid: 1777 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,38.5 + parent: 1 + - uid: 1778 + components: + - type: Transform + pos: 45.5,39.5 + parent: 1 + - uid: 1779 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,39.5 + parent: 1 + - uid: 1780 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,39.5 + parent: 1 + - uid: 1781 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,39.5 + parent: 1 + - uid: 1782 + components: + - type: Transform + pos: 2.5,31.5 + parent: 1 + - uid: 1783 + components: + - type: Transform + pos: 3.5,31.5 + parent: 1 + - uid: 1784 + components: + - type: Transform + pos: 4.5,31.5 + parent: 1 + - uid: 1785 + components: + - type: Transform + pos: 8.5,31.5 + parent: 1 + - uid: 1786 + components: + - type: Transform + pos: 9.5,31.5 + parent: 1 + - uid: 1787 + components: + - type: Transform + pos: 10.5,31.5 + parent: 1 + - uid: 1788 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,31.5 + parent: 1 + - uid: 1789 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,31.5 + parent: 1 + - uid: 1790 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,31.5 + parent: 1 + - uid: 1791 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,31.5 + parent: 1 + - uid: 1792 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,31.5 + parent: 1 + - uid: 1793 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,31.5 + parent: 1 + - uid: 1794 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,30.5 + parent: 1 + - uid: 1795 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,30.5 + parent: 1 + - uid: 1796 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,30.5 + parent: 1 + - uid: 1797 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,30.5 + parent: 1 + - uid: 1798 + components: + - type: Transform + pos: 41.5,16.5 + parent: 1 + - uid: 1799 + components: + - type: Transform + pos: 43.5,16.5 + parent: 1 + - uid: 1800 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,15.5 + parent: 1 + - uid: 1801 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,15.5 + parent: 1 + - uid: 1802 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,15.5 + parent: 1 + - uid: 1803 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,15.5 + parent: 1 + - uid: 1804 + components: + - type: Transform + pos: 45.5,16.5 + parent: 1 + - uid: 1805 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,15.5 + parent: 1 + - uid: 1806 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,8.5 + parent: 1 + - uid: 1807 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,7.5 + parent: 1 + - uid: 1808 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,7.5 + parent: 1 + - uid: 1809 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,7.5 + parent: 1 + - uid: 1810 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,1.5 + parent: 1 + - uid: 1811 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,2.5 + parent: 1 + - uid: 1812 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,0.5 + parent: 1 + - uid: 1813 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,1.5 + parent: 1 + - uid: 1814 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,2.5 + parent: 1 + - uid: 1815 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,2.5 + parent: 1 + - uid: 1816 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,2.5 + parent: 1 + - uid: 1817 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,2.5 + parent: 1 + - uid: 1818 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,2.5 + parent: 1 + - uid: 1819 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,2.5 + parent: 1 +- proto: YellowOxygenTankFilled + entities: + - uid: 1820 + components: + - type: Transform + pos: 16.5,24.5 + parent: 1 +... diff --git a/Resources/Prototypes/ADT/Actions/componental_actions.yml b/Resources/Prototypes/ADT/Actions/componental_actions.yml new file mode 100644 index 00000000000..5c2cfbb86c4 --- /dev/null +++ b/Resources/Prototypes/ADT/Actions/componental_actions.yml @@ -0,0 +1,98 @@ +- type: entity + id: CompActionTeleport + name: action-teleport + description: action-teleport-desc + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 5 + range: 16 # default examine-range. + # ^ should probably add better validation that the clicked location is on the users screen somewhere, + itemIconStyle: BigAction + checkCanAccess: false + repeat: true + icon: + sprite: Objects/Magic/magicactions.rsi + state: blink + event: !type:CompTeleportActionEvent + +- type: entity + id: CompActionShoot + name: action-shoot + description: action-shoot-desc + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 2 + range: 16 # default examine-range. + # ^ should probably add better validation that the clicked location is on the users screen somewhere, + itemIconStyle: BigAction + checkCanAccess: false + repeat: true + icon: + sprite: Objects/Weapons/Guns/Pistols/mk58.rsi + state: icon + event: !type:CompProjectileActionEvent + +- type: entity + id: CompActionHeal + name: action-heal + description: action-heal-desc + noSpawn: true + components: + - type: InstantAction + icon: + sprite: Interface/Actions/actions_ling.rsi + state: fleshmend + itemIconStyle: BigAction + checkCanInteract: false + event: !type:CompHealActionEvent + useDelay: 5 + +- type: entity + id: CompActionJump + name: action-jump + description: action-jump-desc + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 15 + range: 16 # default examine-range. + # ^ should probably add better validation that the clicked location is on the users screen somewhere, + itemIconStyle: BigAction + checkCanAccess: false + repeat: true + icon: + sprite: Clothing/Shoes/Boots/combatboots.rsi + state: icon + event: !type:CompJumpActionEvent + +- type: entity + id: CompActionStasisHeal + name: action-stasis-heal + description: action-stasis-heal-desc + noSpawn: true + components: + - type: InstantAction + icon: + sprite: Interface/Actions/actions_ling.rsi + state: fleshmend + itemIconStyle: BigAction + checkCanInteract: false + event: !type:CompStasisHealActionEvent + useDelay: 5 + +- type: entity + id: CompActionStealth + name: action-stealth + description: action-stealth-desc + noSpawn: true + components: + - type: InstantAction + icon: + sprite: Interface/Actions/actions_ling.rsi + state: chameleon + itemIconStyle: BigAction + checkCanInteract: false + event: !type:CompInvisibilityActionEvent + useDelay: 1 diff --git a/Resources/Prototypes/ADT/Actions/jumpboots.yml b/Resources/Prototypes/ADT/Actions/jumpboots.yml new file mode 100644 index 00000000000..df02f049964 --- /dev/null +++ b/Resources/Prototypes/ADT/Actions/jumpboots.yml @@ -0,0 +1,36 @@ +- type: entity + id: ActionJumpboots + name: action-jump + description: action-jump-desc + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 45 + range: 16 # default examine-range. + # ^ should probably add better validation that the clicked location is on the users screen somewhere, + itemIconStyle: BigAction + checkCanAccess: false + repeat: true + icon: + sprite: ADT/Clothing/Shoes/Boots/jumpboots.rsi + state: icon + event: !type:JumpbootsActionEvent + + +- type: entity + id: ActionJumpbootsSynd + name: action-jump + description: action-jump-desc + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 15 + range: 16 # default examine-range. + # ^ should probably add better validation that the clicked location is on the users screen somewhere, + itemIconStyle: BigAction + checkCanAccess: false + repeat: true + icon: + sprite: ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi + state: icon + event: !type:JumpbootsActionEvent diff --git a/Resources/Prototypes/ADT/Actions/language.yml b/Resources/Prototypes/ADT/Actions/language.yml index 9c92009386f..222a73c9ba0 100644 --- a/Resources/Prototypes/ADT/Actions/language.yml +++ b/Resources/Prototypes/ADT/Actions/language.yml @@ -9,3 +9,4 @@ icon: _NF/Interface/Actions/language.png event: !type:LanguageMenuActionEvent useDelay: 2 + priority: -97 diff --git a/Resources/Prototypes/ADT/Actions/slime.yml b/Resources/Prototypes/ADT/Actions/slime.yml new file mode 100644 index 00000000000..cff63e47ae4 --- /dev/null +++ b/Resources/Prototypes/ADT/Actions/slime.yml @@ -0,0 +1,13 @@ +- type: entity + id: ActionSlimeHair + name: action-slime-hair + description: action-slime-hair-desc + noSpawn: true + components: + - type: InstantAction + icon: + sprite: ADT/Actions/slime-hair.rsi + state: hair + itemIconStyle: BigAction + event: !type:SlimeHairActionEvent + useDelay: 1 diff --git a/Resources/Prototypes/ADT/Alerts/alerts.yml b/Resources/Prototypes/ADT/Alerts/alerts.yml new file mode 100644 index 00000000000..79d782d58b8 --- /dev/null +++ b/Resources/Prototypes/ADT/Alerts/alerts.yml @@ -0,0 +1,24 @@ +- type: alert + id: ADTAlertPolymorph + icons: + - sprite: /Textures/ADT/Interface/alerts.rsi + state: polymorph + name: alerts-polymorph-name + description: alerts-polymorph-desc + +- type: alert + id: PainKiller + icons: + - sprite: /Textures/ADT/Interface/alerts.rsi + state: painkiller + name: alerts-painkiller-name + description: alerts-painkiller-desc +# иконку сделал LogDog из GG + +- type: alert + id: ADTAlertApathy + icons: + - sprite: /Textures/ADT/Interface/alerts.rsi + state: apathy + name: alerts-apathy-name + description: alerts-apathy-desc \ No newline at end of file diff --git a/Resources/Prototypes/ADT/Catalog/Fills/Backpacks/StarterGear/backpack.yml b/Resources/Prototypes/ADT/Catalog/Fills/Backpacks/StarterGear/backpack.yml index 713e73fabf1..c3fac40c2d0 100644 --- a/Resources/Prototypes/ADT/Catalog/Fills/Backpacks/StarterGear/backpack.yml +++ b/Resources/Prototypes/ADT/Catalog/Fills/Backpacks/StarterGear/backpack.yml @@ -52,4 +52,4 @@ contents: - id: BoxSurvivalMedical - id: JawsOfLife - + - id: SpaceCash500 diff --git a/Resources/Prototypes/ADT/Catalog/Fills/Backpacks/StarterGear/duffelbag.yml b/Resources/Prototypes/ADT/Catalog/Fills/Backpacks/StarterGear/duffelbag.yml index a8f0042b26a..24b21c6e340 100644 --- a/Resources/Prototypes/ADT/Catalog/Fills/Backpacks/StarterGear/duffelbag.yml +++ b/Resources/Prototypes/ADT/Catalog/Fills/Backpacks/StarterGear/duffelbag.yml @@ -7,6 +7,7 @@ contents: - id: BoxSurvivalMedical - id: JawsOfLife + - id: SpaceCash500 - type: entity parent: ClothingBackpackDuffelSyndicateBundle diff --git a/Resources/Prototypes/ADT/Catalog/Fills/Backpacks/StarterGear/satchel.yml b/Resources/Prototypes/ADT/Catalog/Fills/Backpacks/StarterGear/satchel.yml index 13055c62a5e..4a32d348a7f 100644 --- a/Resources/Prototypes/ADT/Catalog/Fills/Backpacks/StarterGear/satchel.yml +++ b/Resources/Prototypes/ADT/Catalog/Fills/Backpacks/StarterGear/satchel.yml @@ -7,3 +7,4 @@ contents: - id: BoxSurvivalMedical - id: JawsOfLife + - id: SpaceCash500 diff --git a/Resources/Prototypes/ADT/Catalog/Fills/Lockers/medical.yml b/Resources/Prototypes/ADT/Catalog/Fills/Lockers/medical.yml index f57c3d82689..ad1a7a0a3e3 100644 --- a/Resources/Prototypes/ADT/Catalog/Fills/Lockers/medical.yml +++ b/Resources/Prototypes/ADT/Catalog/Fills/Lockers/medical.yml @@ -18,5 +18,5 @@ - id: BoxBodyBag - id: BoxSyringe - id: BoxFolderGreen - - id: ADTObjectsSpecificFormalinChemistryBottle + - id: ADTMFormalinBottle - id: ADTReagentAnalyzer \ No newline at end of file diff --git a/Resources/Prototypes/ADT/Catalog/RadioChannels/SpecChannel.yml b/Resources/Prototypes/ADT/Catalog/RadioChannels/SpecChannel.yml index 9d7249bc15a..cfc16e91ae6 100644 --- a/Resources/Prototypes/ADT/Catalog/RadioChannels/SpecChannel.yml +++ b/Resources/Prototypes/ADT/Catalog/RadioChannels/SpecChannel.yml @@ -13,3 +13,27 @@ frequency: 1304 color: "#7ecc8e" longRange: true + +- type: radioChannel + id: ADTTransSolar19482Channel + name: ТСФ 1948.2 + keycode: '2' + frequency: 1947 + color: "#75c1ff" + longRange: true + +- type: radioChannel + id: ADTTransSolar19487Channel + name: ТСФ 1948.7 + keycode: '7' + frequency: 1948 + color: "#75c1ff" + longRange: true + +- type: radioChannel + id: ADTTransSolar19489Channel + name: ТСФ 1948.9 + keycode: '9' + frequency: 1949 + color: "#75c1ff" + longRange: true diff --git a/Resources/Prototypes/ADT/Catalog/VendingMachines/Inventories/pill.yml b/Resources/Prototypes/ADT/Catalog/VendingMachines/Inventories/pill.yml index 945cf19aa29..91430be67ef 100644 --- a/Resources/Prototypes/ADT/Catalog/VendingMachines/Inventories/pill.yml +++ b/Resources/Prototypes/ADT/Catalog/VendingMachines/Inventories/pill.yml @@ -7,7 +7,7 @@ ADTMAnelgesinPack: 5 ADTMMinoxidePack: 5 ADTMNikematideBottle: 5 - ADTMDiethamilatePack: 5 + ADTMDiethamilateBottle: 5 ADTMAgolatineCanister: 5 ADTMHaloperidolPack: 5 ADTMVitaminCanister: 5 @@ -15,4 +15,4 @@ ADTMEthylredoxrazinePack: 5 emaggedInventory: ADTMMorphineBottle: 5 - ADTMOpiumBottle: 5 \ No newline at end of file + ADTMOpiumBottle: 5 diff --git a/Resources/Prototypes/ADT/Catalog/VendingMachines/Inventories/tsf_armoury.yml b/Resources/Prototypes/ADT/Catalog/VendingMachines/Inventories/tsf_armoury.yml new file mode 100644 index 00000000000..1b13586aee2 --- /dev/null +++ b/Resources/Prototypes/ADT/Catalog/VendingMachines/Inventories/tsf_armoury.yml @@ -0,0 +1,19 @@ +- type: vendingMachineInventory + id: ADTTSFArmouryInventory + startingInventory: + ADTWeaponRifleTAR60SF: 10 + ADTWeaponRifleAR12: 5 + ADTMagazineRifleAR12: 60 + MagazineBoxRifle: 20 + ADTClothingNeckTSFPatch: 20 + ADTClothingWarbeltTSF: 15 + ADTClothingTSFMagBelt: 15 + ADTClothingTSFMedBelt: 15 + ADTClothingTSFArmor: 15 + ADTClothingHeadHelmetTSF: 15 + ADTClothingNeckJeton: 15 + ADTClothingUniformTrader: 15 + ADTRadioHandheldTSF: 15 + ADTRadioHandheldTSFBackpack: 2 + ClothingHandsGlovesCombat: 15 + ClothingShoesBootsJack: 15 diff --git a/Resources/Prototypes/ADT/Catalog/uplink.yml b/Resources/Prototypes/ADT/Catalog/uplink.yml index f8362bcadb6..0ce4370651c 100644 --- a/Resources/Prototypes/ADT/Catalog/uplink.yml +++ b/Resources/Prototypes/ADT/Catalog/uplink.yml @@ -466,5 +466,20 @@ categories: - UplinkImplants +- type: listing + id: ADTUplinkJumpboots + name: uplink-jumpboots-name + description: uplink-jumpboots-desc + icon: { sprite: ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi, state: icon } + productEntity: ADTClothingJumpBootsSynd + cost: + Telecrystal: 5 + categories: + - UplinkArmor + conditions: + - !type:StoreWhitelistCondition + whitelist: + tags: + - NukeOpsUplink diff --git a/Resources/Prototypes/ADT/Entities/Clothing/Belt/belts.yml b/Resources/Prototypes/ADT/Entities/Clothing/Belt/belts.yml index 5dbe2c081b7..825f7d28d34 100644 --- a/Resources/Prototypes/ADT/Entities/Clothing/Belt/belts.yml +++ b/Resources/Prototypes/ADT/Entities/Clothing/Belt/belts.yml @@ -335,3 +335,66 @@ - state: icon - map: [ "enum.StorageContainerVisualLayers.Fill" ] visible: false + +#разгрузка и подсумки ТСФ + +- type: entity + id: ADTClothingWarbeltTSF + parent: ClothingBeltMilitaryWebbing + name: TSF warbelt + description: TSF warbelt + suffix: TSF + components: + - type: Sprite + sprite: ADT/Clothing/Belt/tsf_webbing.rsi + - type: Clothing + sprite: ADT/Clothing/Belt/tsf_webbing.rsi + - type: Storage + grid: + - 0,0,0,1 + - 2,0,5,1 + - 7,0,8,1 + - 10,0,10,1 + maxItemSize: Normal + +- type: entity + id: ADTClothingTSFMagBelt + parent: ClothingBeltMilitaryWebbing + name: TSF mag belt + description: TSF mag belt + suffix: TSF + components: + - type: Sprite + sprite: ADT/Clothing/Belt/tsf_magbelt.rsi + - type: Clothing + sprite: ADT/Clothing/Belt/tsf_magbelt.rsi + quickEquip: false + slots: + - belt + - type: Storage + grid: + - 0,0,3,1 + maxItemSize: Small + - type: Item + size: Small + +- type: entity + id: ADTClothingTSFMedBelt + parent: ClothingBeltMilitaryWebbing + name: TSF med belt + description: TSF med belt + suffix: TSF + components: + - type: Sprite + sprite: ADT/Clothing/Belt/tsf_medbelt.rsi + - type: Clothing + sprite: ADT/Clothing/Belt/tsf_medbelt.rsi + quickEquip: false + slots: + - belt + - type: Storage + grid: + - 0,0,2,1 + maxItemSize: Small + - type: Item + size: Small diff --git a/Resources/Prototypes/ADT/Entities/Clothing/Head/Hats/hats.yml b/Resources/Prototypes/ADT/Entities/Clothing/Head/Hats/hats.yml index 04293080c52..842391dad6b 100644 --- a/Resources/Prototypes/ADT/Entities/Clothing/Head/Hats/hats.yml +++ b/Resources/Prototypes/ADT/Entities/Clothing/Head/Hats/hats.yml @@ -675,3 +675,27 @@ sprite: ADT/Clothing/Head/Hats/trader.rsi #спрайты от prazat911 - type: Clothing sprite: ADT/Clothing/Head/Hats/trader.rsi + +#шлем ТСФ + +- type: entity + parent: ClothingHeadBase + id: ADTClothingHeadHelmetTSF + name: TSF helmet + description: Standard security gear. Protects the head from impacts. + suffix: TSF + components: + - type: Sprite + sprite: ADT/Clothing/Head/Helmets/tsf_helmet.rsi + - type: Clothing + sprite: ADT/Clothing/Head/Helmets/tsf_helmet.rsi + - type: Armor + modifiers: + coefficients: + Blunt: 0.85 + Slash: 0.9 + Piercing: 0.9 + Heat: 0.8 + - type: Tag + tags: + - WhitelistChameleon diff --git a/Resources/Prototypes/ADT/Entities/Clothing/Neck/armyjeton.yml b/Resources/Prototypes/ADT/Entities/Clothing/Neck/armyjeton.yml index 243439b1eee..ef7276b160d 100644 --- a/Resources/Prototypes/ADT/Entities/Clothing/Neck/armyjeton.yml +++ b/Resources/Prototypes/ADT/Entities/Clothing/Neck/armyjeton.yml @@ -6,6 +6,21 @@ components: - type: Sprite sprite: ADT/Clothing/Neck/armytoken.rsi + - type: Clothing + quickEquip: false + slots: + - idcard + - neck + # - type: IdCard + # - type: StationRecordKeyStorage + - type: Tag + tags: + - DoorBumpOpener + - type: Access + tags: + - Maintenance + - External + - Medical - type: entity parent: ClothingNeckBase @@ -15,3 +30,12 @@ components: - type: Sprite sprite: ADT/Clothing/Neck/secbadge.rsi + +- type: entity + parent: ClothingNeckBase + id: ADTClothingNeckTSFPatch + name: TSF patch + description: TSF patch + components: + - type: Sprite + sprite: ADT/Clothing/Neck/tsf_patch.rsi diff --git a/Resources/Prototypes/ADT/Entities/Clothing/OuterClothing/tsf_armor.yml b/Resources/Prototypes/ADT/Entities/Clothing/OuterClothing/tsf_armor.yml new file mode 100644 index 00000000000..80cf065313b --- /dev/null +++ b/Resources/Prototypes/ADT/Entities/Clothing/OuterClothing/tsf_armor.yml @@ -0,0 +1,21 @@ +- type: entity + parent: ClothingOuterArmorBasic + id: ADTClothingTSFArmor + name: TSF bulletproof vest + description: A Type III heavy bulletproof vest that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent. + components: + - type: Sprite + sprite: ADT/Clothing/OuterClothing/Armor/tsf_armor.rsi + - type: Clothing + sprite: ADT/Clothing/OuterClothing/Armor/tsf_armor.rsi + - type: Armor + modifiers: + coefficients: + Blunt: 0.7 + Slash: 0.7 + Piercing: 0.5 + Heat: 0.7 + - type: ExplosionResistance + damageCoefficient: 0.80 + - type: Item + size: Large diff --git a/Resources/Prototypes/ADT/Entities/Clothing/Shoes/Boots.yml b/Resources/Prototypes/ADT/Entities/Clothing/Shoes/Boots.yml index 20970973e91..7f7e55c88b5 100644 --- a/Resources/Prototypes/ADT/Entities/Clothing/Shoes/Boots.yml +++ b/Resources/Prototypes/ADT/Entities/Clothing/Shoes/Boots.yml @@ -446,3 +446,41 @@ sprite: ADT/Clothing/Shoes/Boots/highboots.rsi - type: Clothing sprite: ADT/Clothing/Shoes/Boots/highboots.rsi + +- type: entity + parent: ClothingShoesMilitaryBase + id: ADTClothingJumpBoots + name: jumpboots + description: Looks heavy... Until you use it. + components: + - type: Sprite + sprite: ADT/Clothing/Shoes/Boots/jumpboots.rsi + - type: Clothing + sprite: ADT/Clothing/Shoes/Boots/jumpboots.rsi + - type: Jumpboots + +- type: entity + parent: ClothingShoesMilitaryBase + id: ADTClothingJumpBootsSynd + name: blood-red jumpboots + description: Looks heavy... Until you use it. + components: + - type: Sprite + sprite: ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi + map: [ "enum.ToggleVisuals.Layer" ] + - type: Clothing + sprite: ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi + - type: Jumpboots + jumpAction: ActionJumpbootsSynd + - type: Magboots + - type: ClothingSpeedModifier + walkModifier: 1 + sprintModifier: 1 + enabled: false + - type: Appearance + - type: GenericVisualizer + visuals: + enum.ToggleVisuals.Toggled: + enum.ToggleVisuals.Layer: + True: {state: icon-on} + False: {state: icon} diff --git a/Resources/Prototypes/ADT/Entities/Mobs/anomally_abomination.yml b/Resources/Prototypes/ADT/Entities/Mobs/anomally_abomination.yml index f066d932a32..11113dddd04 100644 --- a/Resources/Prototypes/ADT/Entities/Mobs/anomally_abomination.yml +++ b/Resources/Prototypes/ADT/Entities/Mobs/anomally_abomination.yml @@ -26,10 +26,10 @@ animation: WeaponArcClaw damage: types: - Slash: 6 - #- type: Damageable - # damageContainer: Biological - # damageModifierSet: distorted + Slash: 4 + - type: Damageable + damageContainer: Biological + damageModifierSet: distorted - type: MovementSpeedModifier baseWalkSpeed: 2.4 baseSprintSpeed: 4.4 @@ -67,9 +67,9 @@ damage: types: Slash: 4 - #- type: Damageable - # damageContainer: Biological - # damageModifierSet: echo + - type: Damageable + damageContainer: Biological + damageModifierSet: echo - type: MovementSpeedModifier baseWalkSpeed: 3.0 baseSprintSpeed: 4.7 @@ -77,6 +77,8 @@ thresholds: 0: Alive 95: Dead + - type: JumpAct + jumpAction: CompActionJumpAbomination - type: entity parent: BaseMobFlesh @@ -106,11 +108,11 @@ animation: WeaponArcClaw damage: types: - Slash: 10 + Slash: 8 Poison: 5 - #- type: Damageable - # damageContainer: Biological - # damageModifierSet: grant + - type: Damageable + damageContainer: Biological + damageModifierSet: grant - type: MovementSpeedModifier baseWalkSpeed: 2.2 baseSprintSpeed: 3.7 @@ -147,10 +149,10 @@ animation: WeaponArcClaw damage: types: - Slash: 12 - #- type: Damageable - # damageContainer: Biological - # damageModifierSet: hunter + Slash: 8 + - type: Damageable + damageContainer: Biological + damageModifierSet: hunter - type: MovementSpeedModifier baseWalkSpeed: 3.2 baseSprintSpeed: 4.75 @@ -158,6 +160,8 @@ thresholds: 0: Alive 300: Dead + - type: JumpAct + jumpAction: CompActionJumpAbomination - type: entity parent: BaseMobFlesh @@ -188,9 +192,9 @@ damage: types: Slash: 4 - #- type: Damageable - # damageContainer: Biological - # damageModifierSet: soldier + - type: Damageable + damageContainer: Biological + damageModifierSet: soldier - type: MovementSpeedModifier baseWalkSpeed: 2.7 baseSprintSpeed: 4.3 @@ -198,6 +202,11 @@ thresholds: 0: Alive 100: Dead + - type: HealAct + healAction: CompActionHealAbomination + - type: ProjectileAct + projAction: CompActionShootAbomination + prototype: BulletAcid - type: entity parent: BaseMobFlesh @@ -228,9 +237,9 @@ damage: types: Slash: 15 - #- type: Damageable - # damageContainer: Biological - # damageModifierSet: wrecker + - type: Damageable + damageContainer: Biological + damageModifierSet: wrecker - type: MovementSpeedModifier baseWalkSpeed: 2.2 baseSprintSpeed: 3.5 @@ -238,69 +247,125 @@ thresholds: 0: Alive 600: Dead + - type: HealAct + healAction: CompActionHealAbomination + - type: ProjectileAct + projAction: CompActionShootAbomination + prototype: BulletAcid + +- type: damageModifierSet + id: distorted + coefficients: + Blunt: 1 + Piercing: 1 + Slash: 1.0 + Cold: 0.5 + Heat: 0.5 + Poison: 0.5 + Bloodloss: 1 + +- type: damageModifierSet + id: echo + coefficients: + Blunt: 1 + Piercing: 1 + Slash: 0.4 + Cold: 0.6 + Heat: 0.6 + Poison: 1.0 + Bloodloss: 1 -#- type: damageModifierSet -# id: distorted -# coefficients: -# Blunt: 1 -# Piercing: 1 -# Slash: 1.0 -# Cold: 0.5 -# Heat: 0.5 -# Poison: 0.5 -# Bloodloss: 1 +- type: damageModifierSet + id: grant + coefficients: + Blunt: 0.5 + Piercing: 0.7 + Slash: 0.5 + Cold: 0.7 + Heat: 0.7 + Poison: 0.7 + Bloodloss: 1 -#- type: damageModifierSet -# id: echo -# coefficients: -# Blunt: 1 -# Piercing: 1 -# Slash: 0.4 -# Cold: 0.6 -# Heat: 0.6 -# Poison: 1.0 -# Bloodloss: 1 +- type: damageModifierSet + id: hunter + coefficients: + Blunt: 0.45 + Piercing: 0.6 + Slash: 0.45 + Cold: 0.6 + Heat: 0.45 + Poison: 0.6 + Bloodloss: 1 -#- type: damageModifierSet -# id: grant -# coefficients: -# Blunt: 0.5 -# Piercing: 0.7 -# Slash: 0.5 -# Cold: 0.7 -# Heat: 0.7 -# Poison: 0.7 -# Bloodloss: 1 +- type: damageModifierSet + id: soldier + coefficients: + Blunt: 0.8 + Piercing: 0.8 + Slash: 0.8 + Cold: 0.8 + Heat: 0.8 + Poison: 0.8 + Bloodloss: 1 -#- type: damageModifierSet -# id: hunter -# coefficients: -# Blunt: 0.45 -# Piercing: 0.6 -# Slash: 0.45 -# Cold: 0.6 -# Heat: 0.45 -# Poison: 0.6 -# Bloodloss: 1 +- type: damageModifierSet + id: wrecker + coefficients: + Blunt: 0.4 + Piercing: 0.55 + Slash: 0.4 + Cold: 0.55 + Heat: 0.65 + Poison: 0.55 + Bloodloss: 1 + +- type: entity + id: CompActionShootAbomination + name: action-shoot + description: action-shoot-desc + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 10 + range: 16 # default examine-range. + # ^ should probably add better validation that the clicked location is on the users screen somewhere, + itemIconStyle: BigAction + checkCanAccess: false + repeat: true + icon: + sprite: Objects/Weapons/Guns/Pistols/mk58.rsi + state: icon + event: !type:CompProjectileActionEvent -#- type: damageModifierSet -# id: soldier -# coefficients: -# Blunt: 0.8 -# Piercing: 0.8 -# Slash: 0.8 -# Cold: 0.8 -# Heat: 0.8 -# Poison: 0.8 -# Bloodloss: 1 +- type: entity + id: CompActionHealAbomination + name: action-heal + description: action-heal-desc + noSpawn: true + components: + - type: InstantAction + icon: + sprite: Interface/Actions/actions_ling.rsi + state: fleshmend + itemIconStyle: BigAction + checkCanInteract: false + event: !type:CompHealActionEvent + useDelay: 120 -#- type: damageModifierSet -# id: wrecker -# coefficients: -# Blunt: 0.4 -# Piercing: 0.55 -# Slash: 0.4 -# Cold: 0.55 -# Heat: 0.65 -# Poison: 0.55 -# Bloodloss: 1 +- type: entity + id: CompActionJumpAbomination + name: action-jump + description: action-jump-desc + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 35 + range: 16 # default examine-range. + # ^ should probably add better validation that the clicked location is on the users screen somewhere, + itemIconStyle: BigAction + checkCanAccess: false + repeat: true + icon: + sprite: Clothing/Shoes/Boots/combatboots.rsi + state: icon + event: !type:CompJumpActionEvent diff --git a/Resources/Prototypes/ADT/Entities/Objects/Consumable/Drinks/ussp_mug.yml b/Resources/Prototypes/ADT/Entities/Objects/Consumable/Drinks/ussp_mug.yml new file mode 100644 index 00000000000..66f70665fa5 --- /dev/null +++ b/Resources/Prototypes/ADT/Entities/Objects/Consumable/Drinks/ussp_mug.yml @@ -0,0 +1,11 @@ +- type: entity + parent: DrinkBaseMug + id: ADTUSSPMug + name: ussp mug + description: A metal mug. You're not sure which metal. + components: + - type: Sprite + sprite: ADT/Objects/Consumable/Drinks/ussp_cup.rsi + - type: PhysicalComposition + materialComposition: + Steel: 25 diff --git a/Resources/Prototypes/ADT/Entities/Objects/Consumable/Smokeable/Cigars/melnikov_case.yml b/Resources/Prototypes/ADT/Entities/Objects/Consumable/Smokeable/Cigarettes/Cigars/melnikov_case.yml similarity index 100% rename from Resources/Prototypes/ADT/Entities/Objects/Consumable/Smokeable/Cigars/melnikov_case.yml rename to Resources/Prototypes/ADT/Entities/Objects/Consumable/Smokeable/Cigarettes/Cigars/melnikov_case.yml diff --git a/Resources/Prototypes/ADT/Entities/Objects/Consumable/Smokeable/Cigars/melnikov_cigar.yml b/Resources/Prototypes/ADT/Entities/Objects/Consumable/Smokeable/Cigarettes/Cigars/melnikov_cigar.yml similarity index 100% rename from Resources/Prototypes/ADT/Entities/Objects/Consumable/Smokeable/Cigars/melnikov_cigar.yml rename to Resources/Prototypes/ADT/Entities/Objects/Consumable/Smokeable/Cigarettes/Cigars/melnikov_cigar.yml diff --git a/Resources/Prototypes/ADT/Entities/Objects/Consumable/Smokeable/Cigarettes/joints.yml b/Resources/Prototypes/ADT/Entities/Objects/Consumable/Smokeable/Cigarettes/joints.yml new file mode 100644 index 00000000000..12d5fa43bba --- /dev/null +++ b/Resources/Prototypes/ADT/Entities/Objects/Consumable/Smokeable/Cigarettes/joints.yml @@ -0,0 +1,37 @@ +- type: entity + id: ADTJoint + parent: Joint + name: joint of cannabis white + description: A roll of dried plant matter wrapped in thin paper. + components: + - type: Construction + graph: ADTsmokeableJoint + node: joint + - type: SolutionContainerManager + solutions: + smokable: + maxVol: 30 + reagents: + - ReagentId: THC + Quantity: 10 + - ReagentId: Omnizine + Quantity: 16 + +- type: entity + id: ADTBlunt + parent: Blunt + name: blunt of cannabis white + description: A roll of dried plant matter wrapped in a dried tobacco leaf. + components: + - type: Construction + graph: ADTsmokeableBlunt + node: blunt + - type: SolutionContainerManager + solutions: + smokable: + maxVol: 30 + reagents: + - ReagentId: THC + Quantity: 10 + - ReagentId: Omnizine + Quantity: 16 diff --git a/Resources/Prototypes/ADT/Entities/Objects/Device/boombox.yml b/Resources/Prototypes/ADT/Entities/Objects/Device/boombox.yml index cc5ac3c06fb..bcc79fa9b0d 100644 --- a/Resources/Prototypes/ADT/Entities/Objects/Device/boombox.yml +++ b/Resources/Prototypes/ADT/Entities/Objects/Device/boombox.yml @@ -821,3 +821,12 @@ components: - type: BoomBoxTape soundPath: /Audio/BoomBox/HotlineMoges/hotline_paris.ogg + +- type: entity + parent: BaseBoomBoxTape + id: ADTBoomBoxTapeRedSunInTheSky + name: Красное Солнце в небе + description: Эта песня заряжает вас желанием работать втрое быстрее. + components: + - type: BoomBoxTape + soundPath: /Audio/BoomBox/redsuninthesky.ogg diff --git a/Resources/Prototypes/ADT/Entities/Objects/Misc/SpecEncryptionKey.yml b/Resources/Prototypes/ADT/Entities/Objects/Misc/SpecEncryptionKey.yml index 22974304464..3782f1bb6c6 100644 --- a/Resources/Prototypes/ADT/Entities/Objects/Misc/SpecEncryptionKey.yml +++ b/Resources/Prototypes/ADT/Entities/Objects/Misc/SpecEncryptionKey.yml @@ -28,3 +28,22 @@ layers: - state: crypt_silver - state: nano_label + +- type: entity + parent: EncryptionKey + id: ADTEncryptionKeyTSF + name: Ключ шифрования ТСФ + description: Ключ шифрования войск ТСФ с доступом к их стандартным частотам. + suffix: TSF + components: + - type: EncryptionKey + channels: + - ADTTransSolar19482Channel + - ADTTransSolar19487Channel + - ADTTransSolar19489Channel + - Common + defaultChannel: Common + - type: Sprite + layers: + - state: crypt_silver + - state: nano_label diff --git a/Resources/Prototypes/ADT/Entities/Objects/Misc/SpecHeadset.yml b/Resources/Prototypes/ADT/Entities/Objects/Misc/SpecHeadset.yml index 9c80cebbcd1..544d2c7778b 100644 --- a/Resources/Prototypes/ADT/Entities/Objects/Misc/SpecHeadset.yml +++ b/Resources/Prototypes/ADT/Entities/Objects/Misc/SpecHeadset.yml @@ -45,3 +45,128 @@ sprite: ADT/Clothing/Ears/Headsets/armyheadset.rsi - type: Clothing sprite: ADT/Clothing/Ears/Headsets/armyheadset.rsi + +- type: entity + parent: ClothingHeadset + id: ADTClothingHeadsetTSF + name: TSF forces headset + description: A headset for TSF forces. + suffix: TSF + components: + - type: ContainerFill + containers: + key_slots: + - ADTEncryptionKeyTSF + - type: Sprite + sprite: ADT/Clothing/Ears/Headsets/armyheadset.rsi + - type: Clothing + sprite: ADT/Clothing/Ears/Headsets/armyheadset.rsi + - type: RadioSpeaker + channels: + - ADTTransSolar19482Channel + - ADTTransSolar19487Channel + - ADTTransSolar19489Channel + +- type: entity + id: ADTRadioHandheldTSF + name: TSF handheld radio + description: A handy handheld radio. + components: + - type: ApcPowerReceiver + needsPower: false + powerLoad: 0 + - type: Electrified + enabled: false + usesApcPower: false + - type: RadioMicrophone + powerRequired: false + unobstructedRequired: true + listenRange: 2 + toggleOnInteract: false + - type: RadioSpeaker + toggleOnInteract: false + channels: + - ADTTransSolar19482Channel + - ADTTransSolar19487Channel + - ADTTransSolar19489Channel + - type: Intercom + supportedChannels: + - ADTTransSolar19482Channel + - ADTTransSolar19487Channel + - ADTTransSolar19489Channel + - type: Speech + speechVerb: Robotic + - type: Clickable + - type: InteractionOutline + - type: Appearance + - type: Sprite + sprite: ADT/Objects/Device/tsf_radio.rsi + layers: + - state: icon + - type: Clothing + sprite: ADT/Objects/Device/tsf_radio.rsi + quickEquip: false + slots: + - ears + - type: ActivatableUIRequiresPower + - type: ActivatableUI + key: enum.IntercomUiKey.Key + - type: UserInterface + interfaces: + - key: enum.IntercomUiKey.Key + type: IntercomBoundUserInterface + - type: Item + size: Small + - type: MovedByPressure + - type: EmitSoundOnCollide + sound: + collection: WeakHit + - type: EmitSoundOnLand + sound: + path: /Audio/Effects/drop.ogg + params: + volume: 2 + - type: DamageOnHighSpeedImpact + damage: + types: + Blunt: 5 + soundHit: + collection: MetalThud + - type: CollisionWake + - type: TileFrictionModifier + modifier: 0.5 + - type: Physics + bodyType: Dynamic + fixedRotation: false + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.25,-0.25,0.25,0.25" + density: 20 + mask: + - ItemMask + restitution: 0.3 # fite me + friction: 0.2 + - type: Pullable + - type: DamageExaminable + +- type: entity + id: ADTRadioHandheldTSFBackpack + name: TSF backpack radio + description: A handy bacpack radio + parent: ADTRadioHandheldTSF + components: + - type: Clothing + sprite: ADT/Objects/Device/tsf_radio_backpack.rsi + quickEquip: false + slots: + - Back + - suitStorage + - type: Item + size: Ginormous + - type: Sprite + sprite: ADT/Objects/Device/tsf_radio_backpack.rsi + layers: + - state: icon diff --git a/Resources/Prototypes/ADT/Entities/Objects/Specific/Hydroponics/seeds/mutatedseeds.yml b/Resources/Prototypes/ADT/Entities/Objects/Specific/Hydroponics/seeds/mutatedseeds.yml index 452e32032b1..3e9329db7dd 100644 --- a/Resources/Prototypes/ADT/Entities/Objects/Specific/Hydroponics/seeds/mutatedseeds.yml +++ b/Resources/Prototypes/ADT/Entities/Objects/Specific/Hydroponics/seeds/mutatedseeds.yml @@ -5,6 +5,6 @@ id: ADTcannabiswhiteSeeds components: - type: Seed - seedId: ADTcannabiswhite + seedId: ADTCannabisWhite - type: Sprite sprite: ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi diff --git a/Resources/Prototypes/ADT/Entities/Objects/Specific/Medical/Chemistry/Bottles.yml b/Resources/Prototypes/ADT/Entities/Objects/Specific/Medical/Chemistry/Bottles.yml index a59f6d5344a..11b8e5bd9cb 100644 --- a/Resources/Prototypes/ADT/Entities/Objects/Specific/Medical/Chemistry/Bottles.yml +++ b/Resources/Prototypes/ADT/Entities/Objects/Specific/Medical/Chemistry/Bottles.yml @@ -2,7 +2,7 @@ - type: entity id: ADTMPeroHydrogenBottle name: perohydrogen bottle - parent: BaseChemistryEmptyPlasticBottle + parent: ADTPlasticBottle description: A small plastic bottle. The letters on the label so small that they form a funny face. components: - type: Sprite @@ -26,7 +26,7 @@ id: ADTMNikematideBottle name: nikematide bottle description: A small plastic bottle. The letters on the label so small that they form a funny face. - parent: BaseChemistryEmptyPlasticBottle + parent: ADTPlasticBottle components: - type: Sprite sprite: ADT/Objects/Specific/Medical/Chemistry/plastic-bottle.rsi @@ -45,13 +45,62 @@ - ReagentId: ADTMNikematide Quantity: 30 +- type: entity + id: ADTMDiethamilateBottle + name: diethamilate bottle + description: A small plastic bottle. The letters on the label so small that they form a funny face. + parent: ADTPlasticBottle + components: + - type: Sprite + sprite: ADT/Objects/Specific/Medical/Chemistry/plastic-bottle.rsi + layers: + - state: icon + map: [ "enum.SolutionContainerLayers.Base" ] + - state: fill1 + map: [ "enum.SolutionContainerLayers.Fill" ] + visible: false + - state: icon-front-diethamilate + map: [ "enum.SolutionContainerLayers.Overlay" ] + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: ADTMDiethamilate + Quantity: 30 + +- type: entity + id: ADTDyloveneBiomicineBottle + name: dylovene & biomicine bottle + parent: ADTPlasticBottle + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + reagents: + - ReagentId: Dylovene + Quantity: 15 + - ReagentId: ADTMBiomicine + Quantity: 15 + + #стеклянные ADT - type: entity id: ADTMMorphineBottle name: morphine bottle - parent: BaseChemistryEmptyBottle + parent: ADTGlassBottle description: A small bottle with morphine. components: + - type: Sprite + sprite: ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi + layers: + - state: icon + map: [ "enum.SolutionContainerLayers.Base" ] + - state: fill1 + map: [ "enum.SolutionContainerLayers.Fill" ] + visible: false + - state: icon-front-morphine + map: [ "enum.SolutionContainerLayers.Overlay" ] - type: SolutionContainerManager solutions: drink: @@ -62,7 +111,7 @@ - type: entity id: ADTMOpiumBottle name: opium bottle - parent: BaseChemistryEmptyBottle + parent: ADTMMorphineBottle description: A small bottle with opium. components: - type: SolutionContainerManager @@ -73,11 +122,22 @@ Quantity: 30 - type: entity - id: ADTObjectsSpecificFormalinChemistryBottle + id: ADTMFormalinBottle name: Formalin bottle - parent: BaseChemistryEmptyBottle + parent: ADTGlassBottle description: A basis of pathologist's work. components: + - type: Sprite + sprite: ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi + layers: + - state: fill1 + map: [ "enum.SolutionContainerLayers.Fill" ] + visible: false + - state: icon_formalin + map: [ "enum.SolutionContainerLayers.Overlay" ] + - type: SolutionContainerVisuals + maxFillLevels: 3 + fillBaseName: fill - type: SolutionContainerManager solutions: drink: @@ -85,9 +145,6 @@ reagents: - ReagentId: ADTMFormalin Quantity: 15 - - type: Tag - tags: - - Bottle #стеклянные обычные - type: entity @@ -102,9 +159,6 @@ reagents: - ReagentId: Arithrazine Quantity: 30 - - type: Tag - tags: - - Bottle - type: entity id: ADTObjectsSpecificBicaridineChemistryBottle @@ -118,9 +172,6 @@ reagents: - ReagentId: Bicaridine Quantity: 30 - - type: Tag - tags: - - Bottle - type: entity id: ADTObjectsSpecificDexalinPlusChemistryBottle @@ -134,9 +185,6 @@ reagents: - ReagentId: DexalinPlus Quantity: 30 - - type: Tag - tags: - - Bottle - type: entity id: ADTObjectsSpecificDermalineChemistryBottle @@ -150,9 +198,6 @@ reagents: - ReagentId: Dermaline Quantity: 30 - - type: Tag - tags: - - Bottle - type: entity id: ADTObjectsSpecificDexalinChemistryBottle @@ -166,9 +211,6 @@ reagents: - ReagentId: Dexalin Quantity: 30 - - type: Tag - tags: - - Bottle - type: entity id: ADTObjectsSpecificLeporazineChemistryBottle @@ -182,6 +224,16 @@ reagents: - ReagentId: Leporazine Quantity: 30 - - type: Tag - tags: - - Bottle \ No newline at end of file + +- type: entity + id: ADTOmnizineBottle + name: omnizine bottle + parent: BaseChemistryEmptyBottle + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + reagents: + - ReagentId: Omnizine + Quantity: 30 diff --git a/Resources/Prototypes/ADT/Entities/Objects/Specific/Medical/Chemistry/Chemistry.yml b/Resources/Prototypes/ADT/Entities/Objects/Specific/Medical/Chemistry/Chemistry.yml index 59d167fdade..fe9e08ba98e 100644 --- a/Resources/Prototypes/ADT/Entities/Objects/Specific/Medical/Chemistry/Chemistry.yml +++ b/Resources/Prototypes/ADT/Entities/Objects/Specific/Medical/Chemistry/Chemistry.yml @@ -10,11 +10,12 @@ - type: Item sprite: ADT/Objects/Specific/Medical/Chemistry/pills.rsi -# бутылочка (не разбивающаяся) +# бутылочки +##пластиковая - type: entity name: bottle parent: BaseItem - id: BaseChemistryEmptyPlasticBottle + id: ADTBaseChemistryEmptyPlasticBottle abstract: true description: A small plastic bottle. components: @@ -62,7 +63,7 @@ - key: enum.TransferAmountUiKey.Key type: TransferAmountBoundUserInterface - type: Item - size: Small + size: Tiny sprite: ADT/Objects/Specific/Medical/Chemistry/plastic-bottle.rsi - type: Spillable solution: drink @@ -84,7 +85,55 @@ - type: entity id: ADTPlasticBottle name: plastic bottle - parent: BaseChemistryEmptyPlasticBottle + parent: ADTBaseChemistryEmptyPlasticBottle + +##стеклянная +- type: entity + name: bottle + parent: BaseChemistryEmptyBottle + id: ADTBaseChemistryEmptyBottle + abstract: true + description: A small plastic bottle. + components: + - type: PhysicalComposition + materialComposition: + Glass: 25 + - type: SpaceGarbage + - type: Sprite + sprite: ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi + layers: + - state: icon + map: [ "enum.SolutionContainerLayers.Base" ] + - state: fill1 + map: [ "enum.SolutionContainerLayers.Fill" ] + visible: false + - state: icon-front + map: [ "enum.SolutionContainerLayers.Overlay" ] + - type: Appearance + - type: SolutionTransfer + minTransferAmount: 1 + transferAmount: 5 + maxTransferAmount: 30 + canChangeTransferAmount: true + - type: SolutionContainerVisuals + maxFillLevels: 6 + fillBaseName: fill + - type: Item + size: Tiny + sprite: ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi + - type: Openable + sound: + path: /Audio/Items/pop.ogg + - type: StaticPrice + price: 0 + - type: GuideHelp + guides: + - Medical Doctor + +- type: entity + id: ADTGlassBottle + name: glass bottle + parent: ADTBaseChemistryEmptyBottle # Упаковки - type: entity @@ -98,7 +147,7 @@ state: pack - type: Item sprite: ADT/Objects/Specific/Medical/Chemistry/packs.rsi - size: Small + size: Tiny - type: Tag tags: - PillCanister @@ -117,12 +166,12 @@ name: pill pack parent: ADTBasePack -# Патологоанатомические приколы +#всякие ящики - type: entity - name: box of foot tags + name: box of small syringes parent: BoxCardboard - id: ADTFootTagBox - description: It's plastic a box with foot tags inside. + id: ADTSmallSyringeBox + description: It's plastic a box with small syringes inside. components: - type: Storage maxItemSize: Small @@ -130,21 +179,19 @@ - 0,0,2,1 - type: StorageFill contents: - - id: ADTFootTag + - id: ADTSmallSyringe amount: 6 - type: Sprite - sprite: ADT/Objects/Specific/Medical/foot-tag-box.rsi + sprite: ADT/Objects/Specific/Medical/Chemistry/syringe.rsi state: icon - type: Item - sprite: ADT/Objects/Specific/Medical/foot-tag-box.rsi + sprite: ADT/Objects/Specific/Medical/Chemistry/syringe.rsi size: Normal - type: PhysicalComposition materialComposition: Cardboard: 50 - - type: GuideHelp - guides: - - ADTPathologist +# Патологоанатомические приколы - type: entity name: small syringe description: A small syringe to take.. you guessed it, small samples of liquid. @@ -190,30 +237,6 @@ - key: enum.TransferAmountUiKey.Key type: TransferAmountBoundUserInterface -- type: entity - name: box of small syringes - parent: BoxCardboard - id: ADTSmallSyringeBox - description: It's plastic a box with small syringes inside. - components: - - type: Storage - maxItemSize: Small - grid: - - 0,0,2,1 - - type: StorageFill - contents: - - id: ADTSmallSyringe - amount: 6 - - type: Sprite - sprite: ADT/Objects/Specific/Medical/Chemistry/syringe.rsi - state: icon - - type: Item - sprite: ADT/Objects/Specific/Medical/Chemistry/syringe.rsi - size: Normal - - type: PhysicalComposition - materialComposition: - Cardboard: 50 - - type: entity name: reagent analyzer description: Your pocket helper of destinguishing strange chemicals. diff --git a/Resources/Prototypes/ADT/Entities/Objects/Specific/Medical/misc.yml b/Resources/Prototypes/ADT/Entities/Objects/Specific/Medical/misc.yml new file mode 100644 index 00000000000..390947eb60e --- /dev/null +++ b/Resources/Prototypes/ADT/Entities/Objects/Specific/Medical/misc.yml @@ -0,0 +1,100 @@ +- type: entity + name: box of medical treatment + parent: BaseStorageItem + id: ADTBriefcaseMedical + description: A plastic a box with bottles with medicaments. + components: + - type: Sprite + sprite: ADT/Objects/Specific/Medical/briefcase_medical.rsi + state: icon + - type: Item + sprite: ADT/Objects/Specific/Medical/briefcase_medical.rsi + size: Normal + shape: + - 0,0,1,0 + - type: PhysicalComposition + materialComposition: + Plastic: 50 + - type: Storage + maxItemSize: Small + grid: + - 0,0,3,0 + whitelist: + tags: + - Bottle + - Ointment + - Gauze + - Brutepack + - Bloodpack + - Medipen + - type: StorageFill + contents: + - id: ADTMMorphineBottle + - id: ADTDyloveneBiomicineBottle + - id: EpinephrineChemistryBottle + - id: ADTOmnizineBottle + +- type: entity + name: foot tag + parent: BaseItem + id: ADTFootTag + description: A piece of paper for dead. + components: + - type: Sprite + sprite: ADT/Clothing/Shoes/Boots/foot_tag + layers: + - state: paper + - state: paper_words + map: ["enum.PaperVisualLayers.Writing"] + visible: false + - type: Clothing + sprite: ADT/Clothing/Shoes/Boots/foot_tag + slots: [socks] + quickEquip: false + - type: Paper + - type: ActivatableUI + key: enum.PaperUiKey.Key + closeOnHandDeselect: false + - type: UserInterface + interfaces: + - key: enum.PaperUiKey.Key + type: PaperBoundUserInterface + - type: Item + size: Tiny + - type: Tag + tags: + - Document + - Trash + - socks + - type: Appearance + - type: PaperVisuals + - type: GuideHelp + guides: + - ADTPathologist + +- type: entity + name: box of foot tags + parent: BoxCardboard + id: ADTFootTagBox + description: It's plastic a box with foot tags inside. + components: + - type: Storage + maxItemSize: Small + grid: + - 0,0,2,1 + - type: StorageFill + contents: + - id: ADTFootTag + amount: 6 + - type: Sprite + sprite: ADT/Objects/Specific/Medical/foot-tag-box.rsi + state: icon + - type: Item + sprite: ADT/Objects/Specific/Medical/foot-tag-box.rsi + size: Normal + - type: PhysicalComposition + materialComposition: + Cardboard: 50 + - type: GuideHelp + guides: + - ADTPathologist diff --git a/Resources/Prototypes/ADT/Entities/Objects/Specific/misc.yml b/Resources/Prototypes/ADT/Entities/Objects/Specific/misc.yml deleted file mode 100644 index c90c7d8a03e..00000000000 --- a/Resources/Prototypes/ADT/Entities/Objects/Specific/misc.yml +++ /dev/null @@ -1,36 +0,0 @@ -- type: entity - name: foot tag - parent: BaseItem - id: ADTFootTag - description: A piece of paper for dead. - components: - - type: Sprite - sprite: ADT/Clothing/Shoes/Boots/foot_tag - layers: - - state: paper - - state: paper_words - map: ["enum.PaperVisualLayers.Writing"] - visible: false - - type: Clothing - sprite: ADT/Clothing/Shoes/Boots/foot_tag - slots: - - FEET - - type: Paper - - type: ActivatableUI - key: enum.PaperUiKey.Key - closeOnHandDeselect: false - - type: UserInterface - interfaces: - - key: enum.PaperUiKey.Key - type: PaperBoundUserInterface - - type: Item - size: Tiny - - type: Tag - tags: - - Document - - Trash - - type: Appearance - - type: PaperVisuals - - type: GuideHelp - guides: - - ADTPathologist \ No newline at end of file diff --git a/Resources/Prototypes/ADT/Entities/Objects/Weapons/Guns/Battery/battery_gun.yml b/Resources/Prototypes/ADT/Entities/Objects/Weapons/Guns/Battery/battery_gun.yml index 2ddd1aba2b5..cf72259562c 100644 --- a/Resources/Prototypes/ADT/Entities/Objects/Weapons/Guns/Battery/battery_gun.yml +++ b/Resources/Prototypes/ADT/Entities/Objects/Weapons/Guns/Battery/battery_gun.yml @@ -111,6 +111,11 @@ id: ADTWeaponPistolBlueShitX02 description: New version of antique gun witout selfrcharge for "BlueShit" components: + - type: Item + size: Small + shape: + - 0,0,1,0 + - 0,1,0,1 - type: Sprite sprite: ADT/Objects/Weapons/Guns/Battery/BlueShield.rsi layers: diff --git a/Resources/Prototypes/ADT/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/ADT/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index 753e2445150..7bcd7935117 100644 --- a/Resources/Prototypes/ADT/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/ADT/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -7,3 +7,25 @@ sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi layers: - state: syringeproj + +- type: entity + id: ADTBulletLingGas + name: acid spit + parent: BaseBulletTrigger + noSpawn: true + components: + - type: Projectile + damage: + types: + Caustic: 5 + - type: Sprite + sprite: Objects/Weapons/Guns/Projectiles/xeno_toxic.rsi + layers: + - state: xeno_toxic + - type: SmokeOnTrigger + duration: 15 + spreadAmount: 50 + solution: + reagents: + - ReagentId: TearGas + Quantity: 50 diff --git a/Resources/Prototypes/ADT/Entities/Objects/Weapons/Guns/Revolvers/Unica.yml b/Resources/Prototypes/ADT/Entities/Objects/Weapons/Guns/Revolvers/Unica.yml index 75ac57c7b11..955fad911e1 100644 --- a/Resources/Prototypes/ADT/Entities/Objects/Weapons/Guns/Revolvers/Unica.yml +++ b/Resources/Prototypes/ADT/Entities/Objects/Weapons/Guns/Revolvers/Unica.yml @@ -9,6 +9,9 @@ state: icon - type: Item size: Small + shape: + - 0,0,1,0 + - 0,1,0,1 - type: Clothing sprite: Objects/Weapons/Guns/Revolvers/deckard.rsi quickEquip: false diff --git a/Resources/Prototypes/ADT/Entities/Objects/Weapons/Guns/Rifels/rifles.yml b/Resources/Prototypes/ADT/Entities/Objects/Weapons/Guns/Rifels/rifles.yml index 2cb505f8040..a8640611485 100644 --- a/Resources/Prototypes/ADT/Entities/Objects/Weapons/Guns/Rifels/rifles.yml +++ b/Resources/Prototypes/ADT/Entities/Objects/Weapons/Guns/Rifels/rifles.yml @@ -81,3 +81,27 @@ - CartridgeRifle - type: Gun fireRate: 6 + +- type: entity + name: TAR-60SF + parent: ADTWeaponRifleAR12 + id: ADTWeaponRifleTAR60SF + description: TAR-60SF + components: + - type: Sprite + sprite: ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi + layers: + - state: base + map: ["enum.GunVisualLayers.Base"] + - state: mag-0 + map: ["enum.GunVisualLayers.Mag"] + - type: Clothing + sprite: ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi + - type: Gun + soundGunshot: + path: /Audio/ADT/Weapons/Guns/Gunshots/ar12_shoot.ogg + params: + volume: -4 + soundEmpty: + path: /Audio/ADT/Weapons/Guns/Empty/ar12_empty.ogg + fireRate: 5.5 diff --git a/Resources/Prototypes/ADT/Entities/Structures/Machines/vending_machines.yml b/Resources/Prototypes/ADT/Entities/Structures/Machines/vending_machines.yml index bb5ba7d4f80..7206fa7ebcc 100644 --- a/Resources/Prototypes/ADT/Entities/Structures/Machines/vending_machines.yml +++ b/Resources/Prototypes/ADT/Entities/Structures/Machines/vending_machines.yml @@ -223,4 +223,25 @@ - type: PointLight radius: 1.8 energy: 1.6 - color: "#1ca9d4" \ No newline at end of file + color: "#1ca9d4" + +- type: entity + parent: VendingMachine + id: ADTVendingMachineTSFArmoury + name: TSF Armoury + description: TSF Armoury + components: + - type: VendingMachine + pack: ADTTSFArmouryInventory + offState: off + brokenState: broken + - type: Sprite + sprite: ADT/Structures/Machines/VendingMachines/tsf_armoury.rsi + layers: + - state: "off" + map: ["enum.VendingMachineVisualLayers.Base"] + - state: "base" + map: ["enum.VendingMachineVisualLayers.BaseUnshaded"] + shader: unshaded + - state: panel + map: ["enum.WiresVisualLayers.MaintenancePanel"] diff --git a/Resources/Prototypes/ADT/Felinid/Sound/speech_emote_sounds.yml b/Resources/Prototypes/ADT/Felinid/Sound/speech_emote_sounds.yml index 7137190f655..d10b2e092e5 100644 --- a/Resources/Prototypes/ADT/Felinid/Sound/speech_emote_sounds.yml +++ b/Resources/Prototypes/ADT/Felinid/Sound/speech_emote_sounds.yml @@ -37,6 +37,15 @@ collection: MaleCry Whistle: collection: Whistles + # ADT-Apathy Sounds. + Scream-apathy: + collection: FelinidScreams + Laugh-apathy: + collection: MaleLaugh + Sigh-apathy: + collection: MaleSigh + Crying-apathy: + collection: MaleCry - type: emoteSounds id: FemaleFelinid @@ -77,3 +86,12 @@ collection: FemaleCry Whistle: collection: Whistles + # ADT-Apathy Sounds. + Scream-apathy: + collection: FelinidScreams + Laugh-apathy: + collection: FemaleLaugh + Sigh-apathy: + collection: FemaleSigh + Crying-apathy: + collection: FemaleCry \ No newline at end of file diff --git a/Resources/Prototypes/ADT/Hydroponics/leaves/mutatedproduct.yml b/Resources/Prototypes/ADT/Hydroponics/leaves/mutatedproduct.yml index 3206d20717a..268d804786c 100644 --- a/Resources/Prototypes/ADT/Hydroponics/leaves/mutatedproduct.yml +++ b/Resources/Prototypes/ADT/Hydroponics/leaves/mutatedproduct.yml @@ -7,7 +7,7 @@ - type: Sprite sprite: ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi - type: Produce - seedId: ADTcannabiswhite + seedId: ADTCannabisWhite - type: Food - type: SolutionContainerManager solutions: @@ -16,5 +16,73 @@ - ReagentId: THC Quantity: 5 - ReagentId: Omnizine - Quantity: 10 + Quantity: 8 +- type: entity + name: dried cannabis leaves + parent: BaseItem + id: ADTLeavesCannabisWhiteDried + description: "Dried cannabis leaves, ready to be ground." + components: + - type: Stack + stackType: ADTLeavesCannabisWhiteDried + count: 1 + - type: SolutionContainerManager + solutions: + food: + reagents: + - ReagentId: THC + Quantity: 4 + - ReagentId: Omnizine + Quantity: 7 + - type: Sprite + sprite: ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi # Corvax-Resprite: Fix path + state: dried + +#стак сушёной +- type: stack + id: ADTLeavesCannabisWhiteDried + name: dried cannabis leaves + icon: { sprite: /Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi, state: dried } + spawn: ADTLeavesCannabisWhiteDried + maxCount: 5 + itemSize: 5 + +#измельчённый ееееееееееееееееееееееееееееееееееееее +- type: entity + name: ground cannabis white + parent: BaseItem + id: ADTGroundCannabisWhite + description: "Ground cannabis, ready to take you on a trip." + components: + - type: Stack + stackType: ADTGroundCannabisWhite + count: 1 + - type: SolutionContainerManager + solutions: + food: + reagents: + - ReagentId: THC + Quantity: 8 + - ReagentId: Omnizine + Quantity: 14 + - type: Sprite + sprite: Objects/Misc/reagent_fillings.rsi + state: powderpile + color: lightgreen + - type: Construction + graph: ADTsmokeableGroundCannabisWhite + node: ground + - type: Tag + tags: + - Smokable + - type: Item + size: Tiny + +- type: stack + id: ADTGroundCannabisWhite + name: ground cannabis white + icon: { sprite: /Textures/Objects/Misc/reagent_fillings.rsi, state: powderpile } + spawn: ADTGroundCannabisWhite + maxCount: + itemSize: 1 diff --git a/Resources/Prototypes/ADT/Hydroponics/seeds/mutated.yml b/Resources/Prototypes/ADT/Hydroponics/seeds/mutated.yml index d539eed6498..0821714777a 100644 --- a/Resources/Prototypes/ADT/Hydroponics/seeds/mutated.yml +++ b/Resources/Prototypes/ADT/Hydroponics/seeds/mutated.yml @@ -1,5 +1,5 @@ - type: seed - id: ADTcannabiswhite + id: ADTCannabisWhite name: seeds-cannabiswhite-name noun: seeds-noun-seeds displayName: seeds-cannabiswhite-display-name @@ -23,6 +23,6 @@ Max: 15 PotencyDivisor: 15 Omnizine: - Min: 5 - Max: 15 + Min: 3 + Max: 8 PotencyDivisor: 15 diff --git a/Resources/Prototypes/ADT/Novakid/Mobs/Species/novakid.yml b/Resources/Prototypes/ADT/Novakid/Mobs/Species/novakid.yml index 3cf8191021e..17a1c910610 100644 --- a/Resources/Prototypes/ADT/Novakid/Mobs/Species/novakid.yml +++ b/Resources/Prototypes/ADT/Novakid/Mobs/Species/novakid.yml @@ -192,6 +192,15 @@ collection: MaleCry Whistle: collection: Whistles + # ADT-Apathy Sounds. + Scream-apathy: + collection: NovakidScreams + Laugh-apathy: + collection: NovakidLaugh + Sigh-apathy: + collection: MaleSigh + Crying-apathy: + collection: MaleCry - type: emoteSounds id: FemaleNovakid @@ -226,7 +235,15 @@ collection: FemaleCry Whistle: collection: Whistles - + # ADT-Apathy Sounds. + Scream-apathy: + collection: NovakidScreams + Laugh-apathy: + collection: NovakidLaugh + Sigh-apathy: + collection: FemaleSigh + Crying-apathy: + collection: FemaleCry - type: soundCollection id: NovakidLaugh @@ -243,4 +260,4 @@ - /Audio/ADT/Novakid/novakid_scream01.ogg - /Audio/ADT/Novakid/novakid_scream02.ogg - /Audio/ADT/Novakid/novakid_scream03.ogg - - /Audio/ADT/Novakid/novakid_scream04.ogg + - /Audio/ADT/Novakid/novakid_scream04.ogg \ No newline at end of file diff --git a/Resources/Prototypes/ADT/Reagents/fun.yml b/Resources/Prototypes/ADT/Reagents/fun.yml index a35f0452c3f..003238e2f16 100644 --- a/Resources/Prototypes/ADT/Reagents/fun.yml +++ b/Resources/Prototypes/ADT/Reagents/fun.yml @@ -9,14 +9,43 @@ metabolisms: Medicine: effects: + - !type:PopupMessage + conditions: + - !type:ReagentThreshold + min: 12 + max: 20 + type: Local + visualType: Small + messages: [ "polymorph-effect-feelings" ] + probability: 0.07 + - !type:PopupMessage + conditions: + - !type:ReagentThreshold + min: 16 + max: 16.5 + type: Pvs + visualType: Small + messages: [ "medicine-effect-visible-polymorph" ] + probability: 1 + - !type:Jitter + conditions: + - !type:ReagentThreshold + min: 12 + max: 20 + - !type:AdjustAlert + conditions: + - !type:ReagentThreshold + min: 14 + max: 20 + alertType: ADTAlertPolymorph - !type:Polymorph prototype: ADTPMonkey conditions: - !type:OrganType type: Human - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPMonkey2 @@ -24,8 +53,8 @@ - !type:OrganType type: Human - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPMonkey @@ -33,8 +62,8 @@ - !type:OrganType type: Dwarf - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPMonkey2 @@ -42,8 +71,8 @@ - !type:OrganType type: Dwarf - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPLizard @@ -51,8 +80,8 @@ - !type:OrganType type: Reptilian - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPLizard2 @@ -60,8 +89,8 @@ - !type:OrganType type: Reptilian - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPSpider @@ -69,8 +98,8 @@ - !type:OrganType type: Arachnid - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPSpider2 @@ -78,8 +107,8 @@ - !type:OrganType type: Arachnid - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPBush @@ -87,8 +116,8 @@ - !type:OrganType type: Plant - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPBush2 @@ -96,8 +125,8 @@ - !type:OrganType type: Plant - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPMothroach @@ -105,8 +134,8 @@ - !type:OrganType type: Moth - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPMothroach2 @@ -114,8 +143,8 @@ - !type:OrganType type: Moth - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPSmile @@ -123,8 +152,8 @@ - !type:OrganType type: Slime - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPSmile2 @@ -132,8 +161,8 @@ - !type:OrganType type: Slime - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph #наши расы. prototype: ADTPCat @@ -141,8 +170,8 @@ - !type:OrganType type: Tajaran - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPCat2 @@ -150,8 +179,8 @@ - !type:OrganType type: Tajaran - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPCat @@ -159,8 +188,26 @@ - !type:OrganType type: Felinid - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 + probability: 0.5 + - !type:Polymorph + prototype: ADTPRodMetall + conditions: + - !type:OrganType + type: Novakid + - !type:ReagentThreshold + min: 16 + max: 16 + probability: 0.5 + - !type:Polymorph + prototype: ADTPRodMetall2 + conditions: + - !type:OrganType + type: Novakid + - !type:ReagentThreshold + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPCat2 @@ -168,8 +215,8 @@ - !type:OrganType type: Felinid - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPDog @@ -177,8 +224,8 @@ - !type:OrganType type: Vulpkanin - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPDog2 @@ -186,8 +233,8 @@ - !type:OrganType type: Vulpkanin - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPMonkey @@ -195,8 +242,8 @@ - !type:OrganType type: Demon - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPMonkey2 @@ -204,8 +251,8 @@ - !type:OrganType type: Demon - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPSpaceBear @@ -213,8 +260,8 @@ - !type:OrganType type: Ursus - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPSpaceBear2 @@ -222,8 +269,8 @@ - !type:OrganType type: Ursus - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPSoap @@ -231,8 +278,8 @@ - !type:OrganType type: Drask - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph prototype: ADTPSoap2 @@ -240,8 +287,8 @@ - !type:OrganType type: Drask - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.5 - !type:Polymorph #животные, ради цели и разнообразия. Может быть сработает на некоторые расы, по типу Урсов или Унатхов. prototype: ADTPMouse @@ -249,8 +296,8 @@ - !type:OrganType type: Animal - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.25 - !type:Polymorph prototype: ADTPSpider2 @@ -258,8 +305,8 @@ - !type:OrganType type: Animal - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.25 - !type:Polymorph prototype: ADTPCarp @@ -267,8 +314,8 @@ - !type:OrganType type: Animal - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.25 - !type:Polymorph prototype: ADTPLizard2 @@ -276,17 +323,9 @@ - !type:OrganType type: Animal - !type:ReagentThreshold - min: 20 - max: 20 + min: 16 + max: 16 probability: 0.25 - - !type:PopupMessage - conditions: - - !type:ReagentThreshold - min: 20 - type: Local - visualType: Small - messages: [ "polymorph-effect-feelings" ] - probability: 0.05 - type: reagent id: ADTMChaoticPolymorphine @@ -302,88 +341,110 @@ - !type:HealthChange conditions: - !type:ReagentThreshold - min: 15 - max: 15 + min: 12 + max: 12 damage: types: - Cellular: 20 + Cellular: 15 + - !type:PopupMessage + conditions: + - !type:ReagentThreshold + min: 8 + max: 15 + type: Local + visualType: Small + messages: [ "polymorph-effect-feelings" ] + probability: 0.07 + - !type:PopupMessage + conditions: + - !type:ReagentThreshold + min: 11.5 + max: 12 + type: Local + visualType: Small + messages: [ "medicine-effect-visible-polymorph" ] + probability: 1 + - !type:Jitter + conditions: + - !type:ReagentThreshold + min: 8 + max: 15 + - !type:AdjustAlert + conditions: + - !type:ReagentThreshold + min: 14 + max: 20 + alertType: ADTAlertPolymorph - !type:Polymorph prototype: ADTPMonkey conditions: - !type:ReagentThreshold - min: 15 - max: 15 + min: 12 + max: 12 probability: 0.1 - !type:Polymorph prototype: ADTPBread conditions: - !type:ReagentThreshold - min: 15 - max: 15 + min: 12 + max: 12 probability: 0.1 - !type:Polymorph prototype: ADTPRodMetall2 conditions: - !type:ReagentThreshold - min: 15 - max: 15 + min: 12 + max: 12 probability: 0.1 - !type:Polymorph prototype: ADTPFrog conditions: - !type:ReagentThreshold - min: 15 - max: 15 + min: 12 + max: 12 probability: 0.1 - !type:Polymorph prototype: ADTPCat conditions: - !type:ReagentThreshold - min: 15 - max: 15 + min: 12 + max: 12 probability: 0.1 - !type:Polymorph prototype: ADTPSkeleton conditions: - !type:ReagentThreshold - min: 15 - max: 15 + min: 12 + max: 12 probability: 0.1 - !type:Polymorph prototype: ADTPCow conditions: - !type:ReagentThreshold - min: 15 - max: 15 + min: 12 + max: 12 probability: 0.1 - !type:Polymorph prototype: ADTPPossum conditions: - !type:ReagentThreshold - min: 15 - max: 15 + min: 12 + max: 12 probability: 0.1 - !type:Polymorph prototype: ADTPCarp conditions: - !type:ReagentThreshold - min: 15 - max: 15 + min: 12 + max: 12 probability: 0.1 - !type:Polymorph prototype: ADTPSpaceBear conditions: - !type:ReagentThreshold - min: 15 - max: 15 + min: 12 + max: 12 probability: 0.1 - - !type:PopupMessage - conditions: - - !type:ReagentThreshold - min: 15 - type: Local - visualType: Small - messages: [ "polymorph-effect-feelings" ] - probability: 0.05 + #мне стыдно смотреть на этот код, но иначе как его сделать я не представляю. \ No newline at end of file diff --git a/Resources/Prototypes/ADT/Reagents/medicine.yml b/Resources/Prototypes/ADT/Reagents/medicine.yml index 5174b8b7b70..39b7d25ddbd 100644 --- a/Resources/Prototypes/ADT/Reagents/medicine.yml +++ b/Resources/Prototypes/ADT/Reagents/medicine.yml @@ -144,6 +144,14 @@ physicalDesc: reagent-physical-desc-translucent flavor: medicine color: "#d1d1d155" + reactiveEffects: + Acidic: + methods: [ Touch ] + effects: + - !type:HealthChange + damage: + types: + Piercing: -0.75 metabolisms: Medicine: effects: @@ -320,6 +328,12 @@ physicalDesc: reagent-physical-desc-powdery flavor: medicine color: "#f5c6dc" + reactiveEffects: + Acidic: + methods: [ Touch ] + effects: + - !type:ModifyBleedAmount + amount: -1.5 #буквально как транексамовая, но надо плескать её. metabolisms: Medicine: effects: @@ -362,8 +376,14 @@ min: 40 damage: types: - Asphyxiation: 2 - Blunt: 1 + Asphyxiation: 0.4 + Blunt: 0.2 + - !type:GenericStatusEffect + key: ADTApathy #добавляем апатию :thumbsup: + component: Apathy + type: Add + time: 2 + refresh: false - !type:PopupMessage type: Local visualType: Small @@ -472,6 +492,14 @@ visualType: Small messages: [ "medicine-effect-pain" ] #пусть помимо иконки будет ещё и надпись. probability: 0.05 + - !type:GenericStatusEffect + key: Stun + time: 1.5 + type: Remove + - !type:GenericStatusEffect + key: KnockedDown + time: 1.5 + type: Remove - !type:ChemVomit #а это уже передозы. conditions: - !type:ReagentThreshold diff --git a/Resources/Prototypes/ADT/Recipes/Cooking/cannabis_white.yml b/Resources/Prototypes/ADT/Recipes/Cooking/cannabis_white.yml new file mode 100644 index 00000000000..edc4efe51f2 --- /dev/null +++ b/Resources/Prototypes/ADT/Recipes/Cooking/cannabis_white.yml @@ -0,0 +1,7 @@ +- type: microwaveMealRecipe + id: ADTRecipeDriedCannabisWhite + name: dried cannabis leaves recipe + result: ADTLeavesCannabisWhiteDried + time: 10 + solids: + ADTLeavesCannabisWhite: 1 \ No newline at end of file diff --git a/Resources/Prototypes/ADT/Recipes/Crafting/Graphs/smokeables.yml b/Resources/Prototypes/ADT/Recipes/Crafting/Graphs/smokeables.yml new file mode 100644 index 00000000000..e355fc1a32c --- /dev/null +++ b/Resources/Prototypes/ADT/Recipes/Crafting/Graphs/smokeables.yml @@ -0,0 +1,78 @@ +#порошок. +- type: constructionGraph + id: ADTsmokeableGroundCannabisWhite + start: start + graph: + - node: start + edges: + - to: ground + steps: + - material: ADTLeavesCannabisWhiteDried + amount: 2 + doAfter: 5 + - node: ground + entity: ADTGroundCannabisWhite + +- type: construction + name: ground cannabis white + id: ADTsmokeableGroundCannabisWhite + graph: ADTsmokeableGroundCannabisWhite + startNode: start + targetNode: ground + category: construction-category-misc + description: "Ground white cannabis, ready to take you on a trip." + icon: { sprite: Objects/Misc/reagent_fillings.rsi, state: powderpile } + objectType: Item + +#сами сигарки + +- type: constructionGraph + id: ADTsmokeableJoint + start: start + graph: + - node: start + edges: + - to: joint + steps: + - material: PaperRolling + - material: CigaretteFilter + - material: ADTGroundCannabisWhite + doAfter: 2 + - node: joint + entity: ADTJoint + +- type: constructionGraph + id: ADTsmokeableBlunt + start: start + graph: + - node: start + edges: + - to: blunt + steps: + - material: LeavesTobaccoDried + - material: ADTGroundCannabisWhite + doAfter: 2 + - node: blunt + entity: ADTBlunt + +- type: construction + name: joint of cannabis white + id: ADTsmokeableJoint + graph: ADTsmokeableJoint + startNode: start + targetNode: joint + category: construction-category-misc + description: "A roll of dried plant matter wrapped in thin paper." + icon: { sprite: Objects/Consumable/Smokeables/Cannabis/joint.rsi, state: unlit-icon } + objectType: Item + +- type: construction + name: blunt of cannabis white + id: ADTsmokeableBlunt + graph: ADTsmokeableBlunt + startNode: start + targetNode: blunt + category: construction-category-misc + description: "A roll of dried plant matter wrapped in a dried tobacco leaf." + icon: { sprite: Objects/Consumable/Smokeables/Cannabis/blunt.rsi, state: unlit-icon } + objectType: Item \ No newline at end of file diff --git a/Resources/Prototypes/ADT/Recipes/Lathes/chemistry.yml b/Resources/Prototypes/ADT/Recipes/Lathes/chemistry.yml index fb0a14fda9c..09cb8f6de77 100644 --- a/Resources/Prototypes/ADT/Recipes/Lathes/chemistry.yml +++ b/Resources/Prototypes/ADT/Recipes/Lathes/chemistry.yml @@ -12,6 +12,13 @@ materials: Plastic: 50 +- type: latheRecipe + id: ADTGlassBottle + result: ADTGlassBottle + completetime: 2 + materials: + Glass: 50 + - type: latheRecipe id: ADTPillPack result: ADTPillPack diff --git a/Resources/Prototypes/ADT/Tajaran/Voice/speech_emote_sounds.yml b/Resources/Prototypes/ADT/Tajaran/Voice/speech_emote_sounds.yml index 751802d90f2..be8895d4dd6 100644 --- a/Resources/Prototypes/ADT/Tajaran/Voice/speech_emote_sounds.yml +++ b/Resources/Prototypes/ADT/Tajaran/Voice/speech_emote_sounds.yml @@ -37,6 +37,15 @@ collection: MaleCry Whistle: collection: Whistles + # ADT-Apathy Sounds. + Scream-apathy: + collection: TajaranMaleScreams + Laugh-apathy: + collection: MaleLaugh + Sigh-apathy: + collection: MaleSigh + Crying-apathy: + collection: MaleCry - type: emoteSounds id: ADTFemaleTajaran @@ -77,3 +86,12 @@ collection: FemaleCry Whistle: collection: Whistles + # ADT-Apathy Sounds. + Scream-apathy: + collection: TajaranFemaleScreams + Laugh-apathy: + collection: FemaleLaugh + Sigh-apathy: + collection: FemaleSigh + Crying-apathy: + collection: FemaleCry \ No newline at end of file diff --git a/Resources/Prototypes/ADT/Ursus/Sound/speech_emote_sounds.yml b/Resources/Prototypes/ADT/Ursus/Sound/speech_emote_sounds.yml index 377f17446c5..3a1c64cc3b4 100644 --- a/Resources/Prototypes/ADT/Ursus/Sound/speech_emote_sounds.yml +++ b/Resources/Prototypes/ADT/Ursus/Sound/speech_emote_sounds.yml @@ -31,6 +31,15 @@ collection: UrsusCry Whistle: collection: Whistles + # ADT-Apathy Sounds. + Scream-apathy: + collection: UrsusScreams + Laugh-apathy: + collection: UrsusLaugh + Sigh-apathy: + collection: MaleSigh + Crying-apathy: + collection: UrsusCry - type: emoteSounds id: FemaleUrsus @@ -65,3 +74,12 @@ collection: UrsusCry Whistle: collection: Whistles + # ADT-Apathy Sounds. + Scream-apathy: + collection: UrsusScreams + Laugh-apathy: + collection: UrsusLaugh + Sigh-apathy: + collection: FemaleSigh + Crying-apathy: + collection: UrsusCry \ No newline at end of file diff --git a/Resources/Prototypes/ADT/Voice/speech_emotes.yml b/Resources/Prototypes/ADT/Voice/speech_emotes.yml index 5645db97adb..0b4c52ffa6d 100644 --- a/Resources/Prototypes/ADT/Voice/speech_emotes.yml +++ b/Resources/Prototypes/ADT/Voice/speech_emotes.yml @@ -6,3 +6,31 @@ - bigs up - buffs up - качается + +- type: emote + id: Laugh-apathy + category: Vocal + chatMessages: [выдавливает из себя смех] + chatTriggers: + - выдавливает из себя смех + +- type: emote + id: Scream-apathy + category: Vocal + chatMessages: [наигранно кричит!] + chatTriggers: + - наигранно кричит! + +- type: emote + id: Sigh-apathy + category: Vocal + chatMessages: [театрально вздыхает] + chatTriggers: + - театрально вздыхает + +- type: emote + id: Crying-apathy + category: Vocal + chatMessages: [фальшиво плачет] + chatTriggers: + - фальшиво плачет \ No newline at end of file diff --git a/Resources/Prototypes/ADT/changeling/changeling.yml b/Resources/Prototypes/ADT/changeling/changeling.yml index 84ae2ec1f90..a0dc1d335dc 100644 --- a/Resources/Prototypes/ADT/changeling/changeling.yml +++ b/Resources/Prototypes/ADT/changeling/changeling.yml @@ -7,6 +7,7 @@ - type: InstantAction icon: Interface/Actions/shop.png event: !type:ChangelingEvolutionMenuActionEvent + priority: -70 - type: entity id: ActionChangelingAbsorb @@ -25,6 +26,7 @@ event: !type:LingAbsorbActionEvent useDelay: 5 canTargetSelf: false + priority: -60 - type: entity id: ActionChangelingCycleDNA @@ -39,6 +41,7 @@ itemIconStyle: BigAction event: !type:ChangelingCycleDNAActionEvent useDelay: 1 + priority: -69 - type: entity id: ActionChangelingTransform @@ -53,6 +56,7 @@ itemIconStyle: BigAction event: !type:ChangelingTransformActionEvent useDelay: 5 + priority: -68 - type: entity id: ActionLingRegenerate @@ -68,6 +72,7 @@ itemIconStyle: BigAction event: !type:LingRegenerateActionEvent useDelay: 115 + priority: -66 - type: entity id: ActionLingStingExtract @@ -86,6 +91,7 @@ event: !type:LingStingExtractActionEvent useDelay: 30 canTargetSelf: false + priority: -65 - type: entity id: ActionArmBlade @@ -100,6 +106,7 @@ itemIconStyle: BigAction event: !type:ArmBladeActionEvent useDelay: 1 + priority: -50 - type: entity id: ActionLingArmor @@ -114,6 +121,7 @@ itemIconStyle: BigAction event: !type:LingArmorActionEvent useDelay: 15 + priority: -49 - type: entity id: ActionLingInvisible @@ -128,6 +136,7 @@ itemIconStyle: BigAction event: !type:LingInvisibleActionEvent useDelay: 1 + priority: -48 - type: entity id: ActionLingEMP @@ -142,7 +151,7 @@ itemIconStyle: BigAction useDelay: 15 event: !type:LingEMPActionEvent - + priority: -47 # Stasis Death - type: entity id: ActionStasisDeath @@ -158,6 +167,7 @@ itemIconStyle: BigAction event: !type:StasisDeathActionEvent useDelay: 90 + priority: -46 # Blind sting - type: entity @@ -177,6 +187,7 @@ event: !type:BlindStingEvent useDelay: 2 canTargetSelf: false + priority: -64 # Adrenaline - type: entity @@ -191,7 +202,8 @@ state: epinephrine_overdose itemIconStyle: BigAction event: !type:AdrenalineActionEvent - useDelay: 30 + useDelay: 90 + priority: -45 # Refresh - type: entity @@ -207,6 +219,7 @@ itemIconStyle: BigAction event: !type:ChangelingRefreshActionEvent useDelay: 5 + priority: -66 # Fleshmend - type: entity @@ -221,7 +234,8 @@ state: fleshmend itemIconStyle: BigAction event: !type:OmniHealActionEvent - useDelay: 30 + useDelay: 90 + priority: -44 # Mute sting - type: entity @@ -241,3 +255,143 @@ event: !type:MuteStingEvent useDelay: 5 canTargetSelf: false + priority: -63 + + # Drug sting +- type: entity + id: ActionLingDrugSting + name: action-drug-sting + description: action-drug-sting-desc + noSpawn: true + components: + - type: EntityTargetAction + icon: + sprite: Interface/Actions/actions_ling.rsi + state: sting_hallucination + itemIconStyle: BigAction + whitelist: + components: + - Body + event: !type:DrugStingEvent + useDelay: 5 + canTargetSelf: false + priority: -62 + + # Muscles +- type: entity + id: ActionLingMuscles + name: action-muscles + description: action-muscles-desc + noSpawn: true + components: + - type: InstantAction + icon: + sprite: Interface/Actions/actions_ling.rsi + state: strained_muscles + itemIconStyle: BigAction + event: !type:ChangelingMusclesActionEvent + useDelay: 1 + priority: -43 + + # Lesser form +- type: entity + id: ActionLingLesserForm + name: action-lesser-form + description: action-lesser-form-desc + noSpawn: true + components: + - type: InstantAction + icon: + sprite: Interface/Actions/actions_ling.rsi + state: lesser_form + itemIconStyle: BigAction + checkCanInteract: false + event: !type:ChangelingLesserFormActionEvent + useDelay: 10 + priority: -67 + + # Arm shield +- type: entity + id: ActionArmShield + name: action-toggle-arm-shield + description: action-toggle-arm-shield-desc + noSpawn: true + components: + - type: InstantAction + icon: + sprite: Objects/Weapons/Melee/armshield.rsi + state: icon + itemIconStyle: BigAction + event: !type:ArmShieldActionEvent + useDelay: 1 + priority: -51 + + # Last Resort +- type: entity + id: ActionLingLastResort + name: action-resort + description: action-resort-desc + noSpawn: true + components: + - type: InstantAction + icon: + sprite: Interface/Actions/actions_ling.rsi + state: last_resort + itemIconStyle: BigAction + checkCanInteract: false + event: !type:LastResortActionEvent + useDelay: 1 + priority: -61 + + # Lay eggs +- type: entity + id: ActionLingEggs + name: action-eggs + description: action-eggs-desc + noSpawn: true + components: + - type: EntityTargetAction + icon: + sprite: Interface/Actions/actions_ling.rsi + state: last_resort + itemIconStyle: BigAction + whitelist: + components: + - Body + event: !type:LingEggActionEvent + useDelay: 5 + canTargetSelf: false + + # Hatch +- type: entity + id: ActionLingHatch + name: action-hatch + description: action-hatch-desc + noSpawn: true + components: + - type: InstantAction + icon: + sprite: Interface/Actions/actions_ling.rsi + state: last_resort + itemIconStyle: BigAction + checkCanInteract: false + event: !type:LingHatchActionEvent + useDelay: 180 + priority: -99 + + # Fast Hatch +- type: entity + id: ActionLingHatchFast + name: action-hatch + description: action-hatch-desc + noSpawn: true + components: + - type: InstantAction + icon: + sprite: Interface/Actions/actions_ling.rsi + state: last_resort + itemIconStyle: BigAction + checkCanInteract: false + event: !type:LingHatchActionEvent + useDelay: 60 + priority: -99 diff --git a/Resources/Prototypes/ADT/changeling/ling_catalog.yml b/Resources/Prototypes/ADT/changeling/ling_catalog.yml index ecdf42593c7..fca6594d1ac 100644 --- a/Resources/Prototypes/ADT/changeling/ling_catalog.yml +++ b/Resources/Prototypes/ADT/changeling/ling_catalog.yml @@ -16,6 +16,7 @@ name: arm-blade description: arm-blade-desc productAction: ActionArmBlade + mindAction: false cost: EvolutionPoints: 4 categories: @@ -29,6 +30,7 @@ name: chitinous-armor description: chitinous-armor-desc productAction: ActionLingArmor + mindAction: false cost: EvolutionPoints: 7 categories: @@ -42,6 +44,7 @@ name: chameleon-skin description: chameleon-skin-desc productAction: ActionLingInvisible + mindAction: false cost: EvolutionPoints: 7 categories: @@ -55,6 +58,7 @@ name: dissonant-shriek description: dissonant-shriek-desc productAction: ActionLingEMP + mindAction: false cost: EvolutionPoints: 2 categories: @@ -68,6 +72,7 @@ name: stasis-death description: stasis-death-desc productAction: ActionStasisDeath + mindAction: false cost: EvolutionPoints: 4 categories: @@ -81,6 +86,7 @@ name: blind-sting description: blind-sting-desc productAction: ActionLingBlindSting + mindAction: false cost: EvolutionPoints: 2 categories: @@ -94,6 +100,7 @@ name: adrenaline-cl description: adrenaline-cl-desc productAction: ActionLingAdrenaline + mindAction: false cost: EvolutionPoints: 1 categories: @@ -107,6 +114,7 @@ name: omnizine-cl description: omnizine-cl-desc productAction: ActionLingOmnizine + mindAction: false cost: EvolutionPoints: 3 categories: @@ -120,6 +128,91 @@ name: mute-sting description: mute-sting-desc productAction: ActionLingMuteSting + mindAction: false + cost: + EvolutionPoints: 2 + categories: + - ChangelingAbilities + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: ChangelingMuscles + name: muscles-cl + description: muscles-cl-desc + productAction: ActionLingMuscles + mindAction: false + cost: + EvolutionPoints: 2 + categories: + - ChangelingAbilities + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: ChangelingLesserForm + name: lesser-form + description: lesser-form-desc + productAction: ActionLingLesserForm + mindAction: false + cost: + EvolutionPoints: 2 + categories: + - ChangelingAbilities + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: ChangelingDrugStick + name: drug-sting + description: drug-sting-desc + productAction: ActionLingDrugSting + mindAction: false + cost: + EvolutionPoints: 2 + categories: + - ChangelingAbilities + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: ChangelingArmShield + name: arm-shield + description: arm-shield-desc + productAction: ActionArmShield + mindAction: false + cost: + EvolutionPoints: 3 + categories: + - ChangelingAbilities + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: ChangelingDrugSting + name: drug-sting + description: drug-sting-desc + productAction: ActionLingDrugSting + mindAction: false + cost: + EvolutionPoints: 2 + categories: + - ChangelingAbilities + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: ChangelingLastResort + name: resort-cl + description: resort-cl-desc + productAction: ActionLingLastResort + mindAction: false cost: EvolutionPoints: 2 categories: diff --git a/Resources/Prototypes/ADT/changeling/mobs.yml b/Resources/Prototypes/ADT/changeling/mobs.yml new file mode 100644 index 00000000000..00a0a14e0e9 --- /dev/null +++ b/Resources/Prototypes/ADT/changeling/mobs.yml @@ -0,0 +1,373 @@ +- type: entity + id: MobMonkeyChangeling + parent: MobMonkey + suffix: changeling + noSpawn: true + components: + - type: LanguageSpeaker # Frontier + speaks: + - Monkey + understands: + - GalacticCommon + - Monkey + +- type: polymorph + id: ChangelingLesserForm + configuration: + entity: MobMonkeyChangeling + forced: true + inventory: Drop + allowRepeatedMorphs: true + +- type: entity + name: changeling slug + parent: SimpleMobBase + id: ChangelingHeadslug + description: e + components: + - type: Body + prototype: Mouse + - type: Speech + speechSounds: Squeak + speechVerb: SmallMob + - type: Sprite + drawdepth: SmallMobs + sprite: ADT/Mobs/Aliens/headslug.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base"] + state: headslug + - type: Item + size: Tiny + - type: NpcFactionMember + factions: + - Mouse + - type: HTN + rootTask: + task: MouseCompound + - type: Physics + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.2 + density: 100 + mask: + - SmallMobMask + layer: + - SmallMobLayer + - type: MobState + - type: Deathgasp + - type: MobStateActions + actions: + Critical: + - ActionCritSuccumb + - ActionCritFakeDeath + - ActionCritLastWords + - type: MobThresholds + thresholds: + 0: Alive + 69: Critical + 70: Dead + - type: MovementSpeedModifier + baseWalkSpeed : 5 + baseSprintSpeed : 5 + - type: DamageStateVisuals + states: + Alive: + Base: headslug + Critical: + Base: headslug_dead + Dead: + Base: headslug_dead + - type: Food + - type: Tag + tags: + - ShoesRequiredStepTriggerImmune + - type: Respirator + damage: + types: + Asphyxiation: 0.25 + damageRecovery: + types: + Asphyxiation: -0.25 + - type: Barotrauma + damage: + types: + Blunt: 0.1 + - type: Vocal + sounds: + Male: Mouse + Female: Mouse + Unsexed: Mouse + wilhelmProbability: 0.001 + # TODO: Remove CombatMode when Prototype Composition is added + - type: CombatMode + - type: Bloodstream + bloodMaxVolume: 50 + - type: CanEscapeInventory + - type: MobPrice + price: 5000 + - type: BadFood + - type: NonSpreaderZombie + - type: PreventSpiller + - type: LanguageSpeaker # Frontier + speaks: + - Xeno + understands: + - Xeno + - type: MeleeWeapon + soundHit: + path: /Audio/Weapons/pierce.ogg + angle: 30 + animation: WeaponArcPunch + damage: + types: + Piercing: 10 + - type: LingSlug + +- type: entity + name: changeling slug + parent: SimpleMobBase + id: ChangelingHeadslugSpread + suffix: Spreader + description: e + components: + - type: Body + prototype: Mouse + - type: Speech + speechSounds: Squeak + speechVerb: SmallMob + - type: Sprite + drawdepth: SmallMobs + sprite: ADT/Mobs/Aliens/headslug.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base"] + state: headslug + - type: Item + size: Tiny + - type: NpcFactionMember + factions: + - Mouse + - type: HTN + rootTask: + task: MouseCompound + - type: Physics + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.2 + density: 100 + mask: + - SmallMobMask + layer: + - SmallMobLayer + - type: MobState + - type: Deathgasp + - type: MobStateActions + actions: + Critical: + - ActionCritSuccumb + - ActionCritFakeDeath + - ActionCritLastWords + - type: MobThresholds + thresholds: + 0: Alive + 69: Critical + 70: Dead + - type: MovementSpeedModifier + baseWalkSpeed : 5 + baseSprintSpeed : 5 + - type: DamageStateVisuals + states: + Alive: + Base: headslug + Critical: + Base: headslug_dead + Dead: + Base: headslug_dead + - type: Food + - type: Tag + tags: + - ShoesRequiredStepTriggerImmune + - type: Respirator + damage: + types: + Asphyxiation: 0.25 + damageRecovery: + types: + Asphyxiation: -0.25 + - type: Barotrauma + damage: + types: + Blunt: 0.1 + - type: Vocal + sounds: + Male: Mouse + Female: Mouse + Unsexed: Mouse + wilhelmProbability: 0.001 + # TODO: Remove CombatMode when Prototype Composition is added + - type: CombatMode + - type: Bloodstream + bloodMaxVolume: 50 + - type: CanEscapeInventory + - type: MobPrice + price: 5000 + - type: BadFood + - type: NonSpreaderZombie + - type: PreventSpiller + - type: LanguageSpeaker # Frontier + speaks: + - Xeno + understands: + - Xeno + - type: MeleeWeapon + soundHit: + path: /Audio/Weapons/pierce.ogg + angle: 30 + animation: WeaponArcPunch + damage: + types: + Piercing: 10 + - type: LingSlug + spread: true + eggsAction: ActionLingHatchFast + +- type: reagent + id: LingToxin + name: reagent-name-toxin + group: Toxins + desc: reagent-desc-toxin + flavor: bitter + color: "#cf3600" + physicalDesc: reagent-physical-desc-opaque + plantMetabolism: + - !type:PlantAdjustToxins + amount: 10 + - !type:PlantAdjustHealth + amount: -5 + metabolisms: + Poison: + effects: + - !type:HealthChange + damage: + types: + Poison: 2 + + +- type: reagent + id: ADTLingEggs # Немножко костылей, но кому не пофиг? + name: reagent-name-ling + group: Toxins + desc: reagent-desc-ling + flavor: bitter + physicalDesc: reagent-physical-desc-skunky + color: "#ffd478" + worksOnTheDead: true + metabolisms: + Medicine: + effects: + - !type:LingEggs + conditions: + - !type:ReagentThreshold + min: 1 + - !type:HealthChange + damage: + types: + Poison: 15 + +- type: entity + name: synthetic changeling larva + parent: FoodBreadSliceBase + id: ADTLingLarva + description: No... Don't do it... + components: + - type: Food + - type: Item + sprite: ADT/Objects/Specific/genо_larva_white.rsi + inhandVisuals: + left: + - state: inhand-left + right: + - state: inhand-right + - type: Sprite + sprite: ADT/Objects/Specific/genо_larva_white.rsi + layers: + - state: icon + - type: SolutionContainerManager + solutions: + food: + maxVol: 4 + reagents: + - ReagentId: ADTLingEggs + Quantity: 4 # Just using the same values as the bun values, since the recipe for taco shells is roughly the same as buns. + - type: Tag + tags: [] + - type: FlavorProfile + flavors: + - terrible + +- type: reaction + id: ADTLingLarva #без понятия, как там у тебя личинка называется + quantized: true + reactants: + ADTMPolymorphine: + amount: 15 + Nutriment: #ну, раз мы создаём что-то биологическое, то пусть будут ещё и биологические приколы. + amount: 3 + Stimulants: + amount: 5 + effects: + - !type:CreateEntityReactionEffect + entity: ADTLingLarva #сам подставишь id сущности. + +- type: entity + parent: ChangelingHeadslug + id: ChangelingHeadslugMidround + suffix: Ghost role + components: + - type: GenericAntag + rule: LingMidround + +- type: entity + parent: BaseGameRule + id: MidroundChangelingSpawn + noSpawn: true + components: + - type: StationEvent + weight: 10 + duration: 1 + earliestStart: 30 + minimumPlayers: 40 + - type: RandomSpawnRule + prototype: SpawnPointGhostLing + +- type: entity + noSpawn: true + parent: BaseGameRule + id: LingMidround + components: + - type: GenericAntagRule + agentName: ling-round-end-agent-name + objectives: + - EscapeLingShuttleObjective + +- type: entity + parent: MarkerBase + id: SpawnPointGhostLing + name: changeling spawn point + components: + - type: GhostRole + name: ghost-role-information-ling-name + description: ghost-role-information-ling-description + rules: ghost-role-information-ling-rules + - type: GhostRoleMobSpawner + prototype: ChangelingHeadslugMidround + - type: Sprite + sprite: ADT/Mobs/Aliens/headslug.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base"] + state: headslug diff --git a/Resources/Prototypes/ADT/ling_unturnable.yml b/Resources/Prototypes/ADT/ling_unturnable.yml new file mode 100644 index 00000000000..39aefbab51c --- /dev/null +++ b/Resources/Prototypes/ADT/ling_unturnable.yml @@ -0,0 +1,78 @@ +- type: entity + id: LingUntActionStealth + name: action-stealth + description: action-stealth-desc + noSpawn: true + components: + - type: InstantAction + icon: + sprite: Interface/Actions/actions_ling.rsi + state: chameleon + itemIconStyle: BigAction + checkCanInteract: false + event: !type:CompInvisibilityActionEvent + useDelay: 30 + +- type: entity + id: LingUntActionStasisHeal + name: action-stasis-heal + description: action-stasis-heal-desc + noSpawn: true + components: + - type: InstantAction + icon: + sprite: Interface/Actions/actions_ling.rsi + state: fleshmend + itemIconStyle: BigAction + checkCanInteract: false + event: !type:CompStasisHealActionEvent + useDelay: 5 + +- type: entity + id: LingUntActionJump + name: action-jump + description: action-jump-desc + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 75 + range: 16 # default examine-range. + # ^ should probably add better validation that the clicked location is on the users screen somewhere, + itemIconStyle: BigAction + checkCanAccess: false + repeat: true + icon: + sprite: Clothing/Shoes/Boots/combatboots.rsi + state: icon + event: !type:CompJumpActionEvent + +- type: entity + id: LingUntActionShoot + name: action-shoot + description: action-shoot-desc + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 60 + range: 16 # default examine-range. + # ^ should probably add better validation that the clicked location is on the users screen somewhere, + itemIconStyle: BigAction + checkCanAccess: false + repeat: true + icon: + sprite: Objects/Weapons/Guns/Pistols/mk58.rsi + state: icon + event: !type:CompProjectileActionEvent + +- type: entity # Как будут спрайты доделаю. + name: Urist McWeb + parent: BaseMobArachnid + id: ADTMobLingUnt + components: + - type: InvisibilityAct + minVisibility: 0 + - type: JumpAct + jumpAction: LingUntActionJump + - type: ProjectileAct + projAction: LingUntActionShoot + prototype: ADTBulletLingGas diff --git a/Resources/Prototypes/ADT/status_effects.yml b/Resources/Prototypes/ADT/status_effects.yml new file mode 100644 index 00000000000..69e9a5b4b03 --- /dev/null +++ b/Resources/Prototypes/ADT/status_effects.yml @@ -0,0 +1,7 @@ +- type: statusEffect + id: PainKiller + alert: PainKiller + +- type: statusEffect + id: ADTApathy + alert: ADTAlertApathy diff --git a/Resources/Prototypes/ADT/tags.yml b/Resources/Prototypes/ADT/tags.yml index c82a97cc47a..fd42109c401 100644 --- a/Resources/Prototypes/ADT/tags.yml +++ b/Resources/Prototypes/ADT/tags.yml @@ -54,3 +54,12 @@ - type: Tag id: Trader + +- type: Tag + id: MaskBlocker + +- type: Tag + id: GlassesBlocker + +- type: Tag + id: Medipen \ No newline at end of file diff --git a/Resources/Prototypes/ADT/wizard/abilities.yml b/Resources/Prototypes/ADT/wizard/abilities.yml new file mode 100644 index 00000000000..ec6cc02dc99 --- /dev/null +++ b/Resources/Prototypes/ADT/wizard/abilities.yml @@ -0,0 +1,50 @@ +- type: entity + id: WizardActionTeleport + name: action-teleport + description: action-teleport-desc + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 15 + range: 16 # default examine-range. + # ^ should probably add better validation that the clicked location is on the users screen somewhere, + itemIconStyle: BigAction + checkCanAccess: false + repeat: true + icon: + sprite: Objects/Magic/magicactions.rsi + state: blink + event: !type:WizardTeleportActionEvent + +- type: entity + id: WizardActionShoot + name: action-shoot + description: action-shoot-desc + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 3 + range: 16 # default examine-range. + # ^ should probably add better validation that the clicked location is on the users screen somewhere, + itemIconStyle: BigAction + checkCanAccess: false + repeat: true + icon: + sprite: Objects/Weapons/Guns/Pistols/mk58.rsi + state: icon + event: !type:WizardProjectileActionEvent + +- type: entity + id: WizardActionHeal + name: action-heal + description: action-heal-desc + noSpawn: true + components: + - type: InstantAction + icon: + sprite: Interface/Actions/actions_ling.rsi + state: fleshmend + itemIconStyle: BigAction + checkCanInteract: false + event: !type:WizardHealActionEvent + useDelay: 5 diff --git a/Resources/Prototypes/ADT/wizard/spellbook.yml b/Resources/Prototypes/ADT/wizard/spellbook.yml new file mode 100644 index 00000000000..0b786601b29 --- /dev/null +++ b/Resources/Prototypes/ADT/wizard/spellbook.yml @@ -0,0 +1,19 @@ +- type: entity + id: ArchmageSpellbook + name: spellbook + parent: BaseUplinkRadio + components: + - type: Sprite + sprite: ADT/Objects/Misc/wizardbook.rsi + layers: + - state: magic_book_red + - type: Item + sprite: ADT/Objects/Misc/wizardbook.rsi + heldPrefix: magic_book_red + - type: Tag + tags: + - Spellbook + - type: Store + preset: StorePresetWizard + balance: + SpellPoints: 15 diff --git a/Resources/Prototypes/ADT/wizard/wizard_catalog.yml b/Resources/Prototypes/ADT/wizard/wizard_catalog.yml new file mode 100644 index 00000000000..0969267b771 --- /dev/null +++ b/Resources/Prototypes/ADT/wizard/wizard_catalog.yml @@ -0,0 +1,41 @@ +- type: listing + id: WizardTeleport + name: teleport-act + description: teleport-act-desc + productAction: WizardActionTeleport + mindAction: false + cost: + SpellPoints: 2 + categories: + - WizardAbilities + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: WizardShoot + name: shoot-act + description: shoot-act-desc + productAction: WizardActionShoot + mindAction: false + cost: + SpellPoints: 2 + categories: + - WizardAbilities + conditions: + - !type:ListingLimitedStockCondition + stock: 1 + +- type: listing + id: WizardHeal + name: heal-act + description: heal-act-desc + productAction: WizardActionHeal + mindAction: false + cost: + SpellPoints: 2 + categories: + - WizardAbilities + conditions: + - !type:ListingLimitedStockCondition + stock: 1 diff --git a/Resources/Prototypes/Actions/types.yml b/Resources/Prototypes/Actions/types.yml index ee97d0c9a95..d4206983c14 100644 --- a/Resources/Prototypes/Actions/types.yml +++ b/Resources/Prototypes/Actions/types.yml @@ -9,6 +9,7 @@ event: !type:OpenEmotesActionEvent #event: !type:ScreamActionEvent checkCanInteract: false + priority: -98 - type: entity id: ActionScream @@ -21,6 +22,7 @@ icon: Interface/Actions/scream.png event: !type:ScreamActionEvent checkCanInteract: false + priority: -99 - type: entity id: OwOVoice diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_botany.yml b/Resources/Prototypes/Catalog/Cargo/cargo_botany.yml index 8f92db5ae15..fc749f225e6 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_botany.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_botany.yml @@ -14,7 +14,7 @@ sprite: Objects/Specific/Hydroponics/galaxythistle.rsi state: seed product: CrateHydroponicsSeedsMedicinal - cost: 800 + cost: 700 category: Hydroponics group: market diff --git a/Resources/Prototypes/Catalog/Fills/Crates/botany.yml b/Resources/Prototypes/Catalog/Fills/Crates/botany.yml index 5c003a33081..f9a25dd0c51 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/botany.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/botany.yml @@ -39,8 +39,6 @@ amount: 3 - id: PoppySeeds amount: 3 - - id: ADTPapaverSomniferumSeeds - amount: 3 - id: ADTcannabiswhiteSeeds prob: 0.2 diff --git a/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml b/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml index da82c5c8d8a..08688ffc77e 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml @@ -21,6 +21,8 @@ - id: ClothingBeltUtility - id: OreBag - id: ClothingBeltSalvageWebbing + - id: ADTClothingJumpBoots + prob: 0.1 - type: entity id: CrateSalvageAssortedGoodies diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml index 8b991a1c592..6e89ebe2a7f 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml @@ -280,6 +280,7 @@ - id: ADTBookNewChemicals - id: ADTReagentAnalyzer - id: ADTMobileDefibrillator + - id: ADTBriefcaseMedical - id: HandheldCrewMonitor - id: DoorRemoteMedical - id: RubberStampCMO @@ -321,6 +322,7 @@ - id: ADTBookNewChemicals - id: ADTReagentAnalyzer - id: ADTMobileDefibrillator + - id: ADTBriefcaseMedical - id: HandheldCrewMonitor - id: DoorRemoteMedical - id: RubberStampCMO diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/medical.yml b/Resources/Prototypes/Catalog/Fills/Lockers/medical.yml index af657eac36e..3a87a0e274a 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/medical.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/medical.yml @@ -156,7 +156,7 @@ - id: ClothingUniformJumpsuitParamedic - id: ClothingUniformJumpskirtParamedic - id: ClothingEyesHudMedical - - id: Defibrillator + - id: ADTHighVoltageDefibrillator - id: ClothingHandsGlovesLatex - id: ADTClothingHeadsetParamedic - id: ADTClothingOuterCoatLabParamedic diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/dinnerware.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/dinnerware.yml index ee37a0acb40..764122002bb 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/dinnerware.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/dinnerware.yml @@ -28,3 +28,4 @@ DrinkMugOne: 1 DrinkMugRainbow: 2 DrinkMugRed: 2 + ADTUSSPMug: 2 diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/salvage.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/salvage.yml index b5665df37ba..189cc1eb215 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/salvage.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/salvage.yml @@ -1,4 +1,4 @@ -- type: vendingMachineInventory +- type: vendingMachineInventory id: SalvageEquipmentInventory startingInventory: Crowbar: 2 @@ -13,3 +13,4 @@ SeismicCharge: 2 FultonBeacon: 1 Fulton: 2 + ADTClothingJumpBoots: 2 diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/theater.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/theater.yml index 45dde21e503..44699a78541 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/theater.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/theater.yml @@ -3,22 +3,22 @@ startingInventory: ADTBoxValentineWhite: 5 ADTBoxValentineRed: 5 - ClothingHeadHatJester: 1 - ClothingUniformJumpsuitJester: 1 - ClothingHeadHatJesterAlt: 1 - ClothingUniformJumpsuitJesterAlt: 1 + ClothingHeadHatJester: 2 + ClothingUniformJumpsuitJester: 2 + ClothingHeadHatJesterAlt: 2 + ClothingUniformJumpsuitJesterAlt: 2 ClothingShoesJester: 2 - ClothingOuterWinterClown: 1 - ClothingOuterWinterMime: 1 - ClothingOuterWinterMusician: 1 + ClothingOuterWinterClown: 2 + ClothingOuterWinterMime: 2 + ClothingOuterWinterMusician: 2 ClothingMaskJoy: 2 - ClothingHeadHatCardborg: 2 - ClothingOuterCardborg: 2 - ClothingHeadHatSombrero: 2 - ClothingOuterPonchoClassic: 2 + ClothingHeadHatCardborg: 3 + ClothingOuterCardborg: 3 + ClothingHeadHatSombrero: 3 + ClothingOuterPonchoClassic: 3 ClothingHeadHatPwig: 2 ClothingOuterRobesJudge: 2 - ClothingOuterPoncho: 2 + ClothingOuterPoncho: 4 ClothingHeadHatSantahat: 2 ClothingOuterSanta: 2 ClothingHeadHatSkub: 2 @@ -32,28 +32,28 @@ Gohei: 2 ClothingHeadHatRedRacoon: 2 ClothingOuterRedRacoon: 2 - ClothingHeadPaperSack: 2 - ClothingHeadPaperSackSmile: 2 - ClothingEyesBlindfold: 1 - ClothingHeadRastaHat: 2 - ClothingUniformJumpsuitDameDane: 2 - ClothingShoesDameDane: 2 - ClothingOuterDameDane: 2 - ClothingOuterClownPriest: 1 - ClothingMaskSadMime: 1 - ClothingMaskScaredMime: 1 - ClothingUniformJumpsuitKimono: 1 - ClothingHeadHatCasa: 1 - ClothingHeadHatHairflower: 1 - ClothingHeadHatGladiator: 1 - ClothingUniformJumpsuitGladiator: 1 - ClothingHeadHatCowboyBrown: 1 - ClothingHeadHatCowboyBlack: 1 - ClothingHeadHatCowboyWhite: 1 - ClothingHeadHatCowboyGrey: 1 - ClothingShoesBootsCowboyBrown: 1 - ClothingShoesBootsCowboyBlack: 1 - ClothingShoesBootsCowboyWhite: 1 + # ClothingHeadPaperSack: 2 + # ClothingHeadPaperSackSmile: 2 + ClothingEyesBlindfold: 3 + ClothingHeadRastaHat: 4 + ClothingUniformJumpsuitDameDane: 3 + ClothingShoesDameDane: 3 + ClothingOuterDameDane: 3 + ClothingOuterClownPriest: 2 + ClothingMaskSadMime: 3 + ClothingMaskScaredMime: 3 + ClothingUniformJumpsuitKimono: 3 + ClothingHeadHatCasa: 3 + ClothingHeadHatHairflower: 5 + ClothingHeadHatGladiator: 4 + ClothingUniformJumpsuitGladiator: 4 + ClothingHeadHatCowboyBrown: 2 + ClothingHeadHatCowboyBlack: 2 + ClothingHeadHatCowboyWhite: 2 + ClothingHeadHatCowboyGrey: 2 + ClothingShoesBootsCowboyBrown: 2 + ClothingShoesBootsCowboyBlack: 2 + ClothingShoesBootsCowboyWhite: 2 emaggedInventory: ClothingShoesBling: 1 ClothingShoesBootsCowboyFancy: 1 diff --git a/Resources/Prototypes/Entities/Clothing/Head/hats.yml b/Resources/Prototypes/Entities/Clothing/Head/hats.yml index 9b0e9583ee6..e658a28814f 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/hats.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/hats.yml @@ -588,6 +588,7 @@ id: ClothingHeadPaperSack name: papersack hat description: A paper sack with crude holes cut out for eyes. Useful for hiding one's identity or ugliness. + abstract: true components: - type: Sprite sprite: Clothing/Head/Hats/papersack.rsi @@ -600,6 +601,7 @@ id: ClothingHeadPaperSackSmile name: smiling papersack hat description: A paper sack with crude holes cut out for eyes and a sketchy smile drawn on the front. Not creepy at all. + abstract: true components: - type: Sprite sprite: Clothing/Head/Hats/papersacksmile.rsi diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml b/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml index 472daed59b7..09d28a455a5 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml @@ -1,4 +1,4 @@ -- type: entity +- type: entity save: false parent: [ BaseSimpleMob, MobCombat ] id: BaseMobArgocyte @@ -51,6 +51,14 @@ - type: Flashable - type: NameIdentifier group: GenericNumber + - type: GhostRole + makeSentient: true + allowSpeech: true + allowMovement: true + whitelistRequired: false + name: ghost-role-information-argocyte-name + description: ghost-role-information-argocyte-description + - type: GhostTakeoverAvailable - type: entity parent: BaseMobArgocyte @@ -82,6 +90,8 @@ damage: types: Blunt: 3 + - type: JumpAct + jumpAction: CompActionJumpAbomination - type: entity parent: BaseMobArgocyte @@ -120,6 +130,8 @@ damage: types: Blunt: 3 + - type: JumpAct + jumpAction: CompActionJumpAbomination - type: entity parent: BaseMobArgocyte @@ -156,6 +168,8 @@ damage: types: Slash: 3 + - type: JumpAct + jumpAction: CompActionJump - type: entity parent: BaseMobArgocyte @@ -179,6 +193,8 @@ 60: Dead - type: MovementSpeedModifier baseSprintSpeed : 5 + - type: JumpAct + jumpAction: CompActionJump - type: entity parent: BaseMobArgocyte @@ -202,6 +218,10 @@ - type: MovementSpeedModifier baseSprintSpeed : 4 baseWalkSpeed : 3.5 + - type: JumpAct + jumpAction: CompActionJumpAbomination + - type: HealAct + healAction: CompActionHealAbomination - type: entity parent: BaseMobArgocyte @@ -227,6 +247,9 @@ types: Blunt: 2.5 Slash: 7.5 + - type: HealAct + healAction: CompActionHealAbomination + - type: entity parent: BaseMobArgocyte @@ -255,6 +278,8 @@ - type: MovementSpeedModifier baseSprintSpeed : 5 baseWalkSpeed: 4.5 + - type: HealAct + healAction: CompActionHealAbomination - type: entity parent: BaseMobArgocyte @@ -281,6 +306,8 @@ Blunt: 5 Slash: 10 Structural: 5 + - type: HealAct + healAction: CompActionHealAbomination - type: entity parent: BaseMobArgocyte @@ -311,6 +338,8 @@ - type: MovementSpeedModifier baseSprintSpeed : 6.5 baseWalkSpeed: 5 + - type: HealAct + healAction: CompActionHealAbomination - type: entity parent: BaseMobArgocyte @@ -340,6 +369,9 @@ - type: MovementSpeedModifier baseSprintSpeed : 3.5 baseWalkSpeed: 3 + - type: ProjectileAct + projAction: CompActionShootAbomination + prototype: BulletAcid - type: entity parent: BaseMobArgocyte @@ -381,6 +413,9 @@ - type: MovementSpeedModifier baseSprintSpeed : 3 baseWalkSpeed: 3 + - type: ProjectileAct + projAction: CompActionShootAbomination + prototype: BulletAcid - type: entity parent: BaseMobArgocyte @@ -419,3 +454,6 @@ types: Blunt: 75 Structural: 50 + - type: ProjectileAct + projAction: CompActionShootAbomination + prototype: BulletAcid diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml b/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml index 06ab02dedc9..ae253ce9667 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml @@ -54,6 +54,14 @@ Slash: 6 - type: ReplacementAccent accent: genericAggressive + - type: GhostRole + makeSentient: true + allowSpeech: true + allowMovement: true + whitelistRequired: false + name: ghost-role-information-flesh-name + description: ghost-role-information-flesh-description + - type: GhostTakeoverAvailable - type: entity parent: BaseMobFlesh diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml index 7f8eb8639a6..109528ecc76 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml @@ -302,6 +302,8 @@ - MobMask layer: - MobLayer + - type: JumpAct + jumpAction: CompActionJumpAbomination - type: entity name: Rouny @@ -317,6 +319,8 @@ spawned: - id: FoodMeatRouny amount: 3 + - type: JumpAct + jumpAction: CompActionJumpAbomination - type: entity name: Spitter diff --git a/Resources/Prototypes/Entities/Mobs/Species/base.yml b/Resources/Prototypes/Entities/Mobs/Species/base.yml index 379df3baf75..64ecfb81a95 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/base.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/base.yml @@ -134,6 +134,7 @@ - !type:WashCreamPieReaction - type: StatusEffects allowed: + - ADTApathy - PainKiller - Stun - KnockedDown @@ -275,6 +276,7 @@ # Organs - type: StatusEffects allowed: + - ADTApathy - PainKiller - Stun - KnockedDown diff --git a/Resources/Prototypes/Entities/Mobs/Species/slime.yml b/Resources/Prototypes/Entities/Mobs/Species/slime.yml index 0c1b69d3b00..131c9227d9e 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/slime.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/slime.yml @@ -94,6 +94,13 @@ tallscale: 1 short: true shortscale: 0.85 + - type: SlimeHair # TODO: Исправить проблему с генокрадом. ## Done. Мейби стоит чуть подредактировать позже, но это потом, когда у меня сил побольше будет. + - type: UserInterface + interfaces: + - key: enum.SlimeHairUiKey.Key + type: SlimeHairBoundUserInterface + - key: enum.StoreUiKey.Key # Чтобы не ломался генокрад + type: StoreBoundUserInterface # Чтобы не ломался генокрад - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml index fb8a8e4a480..6906e334f82 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml @@ -121,6 +121,7 @@ - type: Tag tags: - Trash + - Medipen - type: PhysicalComposition materialComposition: Plastic: 50 @@ -154,8 +155,6 @@ Quantity: 12 - ReagentId: TranexamicAcid Quantity: 3 - - type: Tag - tags: [] - type: entity name: poison auto-injector @@ -181,8 +180,6 @@ Quantity: 10 - ReagentId: Epinephrine Quantity: 5 - - type: Tag - tags: [] - type: entity name: brute auto-injector @@ -211,8 +208,6 @@ Quantity: 15 - ReagentId: TranexamicAcid Quantity: 5 - - type: Tag - tags: [] - type: entity name: burn auto-injector @@ -241,8 +236,6 @@ Quantity: 10 - ReagentId: Leporazine Quantity: 10 - - type: Tag - tags: [] - type: entity name: rad auto-injector @@ -271,8 +264,6 @@ Quantity: 15 - ReagentId: Bicaridine Quantity: 5 - - type: Tag - tags: [] - type: entity name: space medipen @@ -302,8 +293,6 @@ Quantity: 10 - ReagentId: Barozine Quantity: 20 - - type: Tag - tags: [] - type: entity name: stimulant injector @@ -332,8 +321,6 @@ transferAmount: 30 - type: StaticPrice price: 500 - - type: Tag - tags: [] - type: entity name: stimulant microinjector @@ -359,8 +346,6 @@ emptySpriteName: microstimpen_empty - type: StaticPrice price: 100 - - type: Tag - tags: [] - type: entity name: combat medipen @@ -389,8 +374,6 @@ transferAmount: 30 - type: StaticPrice price: 500 - - type: Tag - tags: [] - type: entity name: pen diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml index ba9e61e9c37..cd5e44ee823 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml @@ -52,3 +52,64 @@ sprite: Objects/Weapons/Melee/armblade.rsi - type: DisarmMalus malus: 0 + +- type: entity + name: armshield + parent: BaseShield + id: ArmShield + description: Meat. + components: + - type: Sprite + sprite: Objects/Weapons/Melee/armshield.rsi + state: icon + - type: Item + inhandVisuals: + left: + - state: inhand-left + right: + - state: inhand-right + size: Ginormous + sprite: Objects/Weapons/Melee/armshield.rsi + - type: Blocking + passiveBlockModifier: + coefficients: + Blunt: 0.85 + Slash: 0.85 + Piercing: 0.85 + Heat: 0.8 + activeBlockModifier: + coefficients: + Blunt: 0.75 + Slash: 0.75 + Piercing: 0.75 + Heat: 0.7 + flatReductions: + Blunt: 0.5 + Slash: 0.5 + Piercing: 0.5 + Heat: 1 + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 95100 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 95000 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - !type:SpawnEntitiesBehavior + spawn: + SheetSteel: + min: 2 + max: 2 + SheetGlass: + min: 2 + max: 2 diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 954125c1801..9df7b2b2655 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -899,6 +899,7 @@ - ADTFootTag - ChemistryEmptyBottle01 - ADTPlasticBottle + - ADTGlassBottle - RollerBedSpawnFolded - CheapRollerBedSpawnFolded - EmergencyRollerBedSpawnFolded diff --git a/Resources/Prototypes/Entities/Structures/Power/smes.yml b/Resources/Prototypes/Entities/Structures/Power/smes.yml index 7617e7cf1f8..3103a57e1d0 100644 --- a/Resources/Prototypes/Entities/Structures/Power/smes.yml +++ b/Resources/Prototypes/Entities/Structures/Power/smes.yml @@ -57,10 +57,10 @@ voltage: High node: input - type: PowerNetworkBattery - maxSupply: 200000 - maxChargeRate: 5000 - supplyRampTolerance: 5000 - supplyRampRate: 1000 + maxSupply: 15000000 + maxChargeRate: 500000 + supplyRampTolerance: 500000 + supplyRampRate: 100000 - type: PointLight radius: 1.5 energy: 1.6 diff --git a/Resources/Prototypes/GG/painkiller.yml b/Resources/Prototypes/GG/painkiller.yml deleted file mode 100644 index 9b280fd0f43..00000000000 --- a/Resources/Prototypes/GG/painkiller.yml +++ /dev/null @@ -1,10 +0,0 @@ -- type: statusEffect - id: PainKiller - alert: PainKiller - -- type: alert - id: PainKiller - icons: [ /Textures/GG/Interface/Alerts/painkiller.png ] - name: На болеутоляющих - description: Вас ничего не сковывает. -# иконку сделал LogDog из GG diff --git a/Resources/Prototypes/Hydroponics/seeds.yml b/Resources/Prototypes/Hydroponics/seeds.yml index 649ffa85224..af0db615180 100644 --- a/Resources/Prototypes/Hydroponics/seeds.yml +++ b/Resources/Prototypes/Hydroponics/seeds.yml @@ -764,6 +764,8 @@ packetPrototype: CannabisSeeds productPrototypes: - LeavesCannabis + mutationPrototypes: + - ADTCannabisWhite harvestRepeat: Repeat lifespan: 75 maturation: 8 @@ -933,6 +935,8 @@ packetPrototype: PoppySeeds productPrototypes: - FoodPoppy + mutationPrototypes: + - ADTPapaverSomniferum lifespan: 25 maturation: 10 production: 3 diff --git a/Resources/Prototypes/Procedural/Themes/botany.yml b/Resources/Prototypes/Procedural/Themes/botany.yml new file mode 100644 index 00000000000..1bd520e40b0 --- /dev/null +++ b/Resources/Prototypes/Procedural/Themes/botany.yml @@ -0,0 +1,324 @@ +# Rooms +# Large +# - 17x5 +- type: dungeonRoom + id: Botany17x5a + size: 17,5 + atlas: /Maps/Dungeon/botany.yml + offset: 0,0 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany17x5b + size: 17,5 + atlas: /Maps/Dungeon/botany.yml + offset: 18,0 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany17x5c + size: 17,5 + atlas: /Maps/Dungeon/botany.yml + offset: 36,0 + tags: + - SalvageBotany + +# - 7x7 +- type: dungeonRoom + id: Botany7x7a + size: 7,7 + atlas: /Maps/Dungeon/botany.yml + offset: 0,42 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany7x7b + size: 7,7 + atlas: /Maps/Dungeon/botany.yml + offset: 8,42 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany7x7c + size: 7,7 + atlas: /Maps/Dungeon/botany.yml + offset: 16,42 + tags: + - SalvageBotany + +# Medium +# - 11x5 +- type: dungeonRoom + id: Botany11x5a + size: 11,5 + atlas: /Maps/Dungeon/botany.yml + offset: 0,6 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany11x5b + size: 11,5 + atlas: /Maps/Dungeon/botany.yml + offset: 12,6 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany11x5c + size: 11,5 + atlas: /Maps/Dungeon/botany.yml + offset: 24,6 + tags: + - SalvageBotany + +# - 7x5 +- type: dungeonRoom + id: Botany7x5a + size: 7,5 + atlas: /Maps/Dungeon/botany.yml + offset: 0,12 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany7x5b + size: 7,5 + atlas: /Maps/Dungeon/botany.yml + offset: 8,12 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany7x5c + size: 7,5 + atlas: /Maps/Dungeon/botany.yml + offset: 16,12 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany7x5d + size: 7,5 + atlas: /Maps/Dungeon/botany.yml + offset: 24,12 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany7x5e + size: 7,5 + atlas: /Maps/Dungeon/botany.yml + offset: 32,12 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany7x5f + size: 7,5 + atlas: /Maps/Dungeon/botany.yml + offset: 40,12 + tags: + - SalvageBotany + +# - 13x3 +- type: dungeonRoom + id: Botany13x3a + size: 13,3 + atlas: /Maps/Dungeon/botany.yml + offset: 0,30 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany13x3b + size: 13,3 + atlas: /Maps/Dungeon/botany.yml + offset: 14,30 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany13x3c + size: 13,3 + atlas: /Maps/Dungeon/botany.yml + offset: 28,30 + tags: + - SalvageBotany + +# - 11x3 +- type: dungeonRoom + id: Botany11x3a + size: 11,3 + atlas: /Maps/Dungeon/botany.yml + offset: 0,34 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany11x3b + size: 11,3 + atlas: /Maps/Dungeon/botany.yml + offset: 12,34 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany11x3c + size: 11,3 + atlas: /Maps/Dungeon/botany.yml + offset: 24,34 + tags: + - SalvageBotany + +# - 7x3 +- type: dungeonRoom + id: Botany7x3a + size: 7,3 + atlas: /Maps/Dungeon/botany.yml + offset: 0,38 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany7x3b + size: 7,3 + atlas: /Maps/Dungeon/botany.yml + offset: 8,38 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany7x3c + size: 7,3 + atlas: /Maps/Dungeon/botany.yml + offset: 16,38 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany7x3d + size: 7,3 + atlas: /Maps/Dungeon/botany.yml + offset: 24,38 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany7x3e + size: 7,3 + atlas: /Maps/Dungeon/botany.yml + offset: 32,38 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany7x3f + size: 7,3 + atlas: /Maps/Dungeon/botany.yml + offset: 40,38 + tags: + - SalvageBotany + +# Small +# - 5x5 +- type: dungeonRoom + id: Botany5x5a + size: 5,5 + atlas: /Maps/Dungeon/botany.yml + offset: 0,18 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany5x5b + size: 5,5 + atlas: /Maps/Dungeon/botany.yml + offset: 6,18 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany5x5c + size: 5,5 + atlas: /Maps/Dungeon/botany.yml + offset: 12,18 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany5x5d + size: 5,5 + atlas: /Maps/Dungeon/botany.yml + offset: 18,18 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany5x5e + size: 5,5 + atlas: /Maps/Dungeon/botany.yml + offset: 24,18 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany5x5f + size: 5,5 + atlas: /Maps/Dungeon/botany.yml + offset: 30,18 + tags: + - SalvageBotany + +# - 3x5 +- type: dungeonRoom + id: Botany3x5a + size: 3,5 + atlas: /Maps/Dungeon/botany.yml + offset: 0,24 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany3x5b + size: 3,5 + atlas: /Maps/Dungeon/botany.yml + offset: 4,24 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany3x5c + size: 3,5 + atlas: /Maps/Dungeon/botany.yml + offset: 8,24 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany3x5d + size: 3,5 + atlas: /Maps/Dungeon/botany.yml + offset: 12,24 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany3x5e + size: 3,5 + atlas: /Maps/Dungeon/botany.yml + offset: 16,24 + tags: + - SalvageBotany + +- type: dungeonRoom + id: Botany3x5f + size: 3,5 + atlas: /Maps/Dungeon/botany.yml + offset: 20,24 + tags: + - SalvageBotany diff --git a/Resources/Prototypes/Procedural/dungeon_configs.yml b/Resources/Prototypes/Procedural/dungeon_configs.yml index c13c1fd0c33..9910d4ebd2b 100644 --- a/Resources/Prototypes/Procedural/dungeon_configs.yml +++ b/Resources/Prototypes/Procedural/dungeon_configs.yml @@ -325,3 +325,66 @@ SouthEast: BrickTileWhiteInnerSe NorthWest: BrickTileWhiteInnerNw NorthEast: BrickTileWhiteInnerNe + +# ADT Botany +- type: Tag + id: SalvageBotany + +- type: dungeonConfig + id: Botany + generator: !type:PrefabDunGen + roomWhitelist: + - SalvageBotany + presets: + - Bucket + - Wow + - SpaceShip + - Tall + postGeneration: + - !type:CorridorPostGen + width: 3 + + - !type:DungeonEntrancePostGen + count: 2 + + - !type:RoomEntrancePostGen + entities: + - CableApcExtension + - AirlockMedicalGlass + + - !type:EntranceFlankPostGen + entities: + - Grille + - Window + + - !type:ExternalWindowPostGen + entities: + - Grille + - Window + + - !type:WallMountPostGen + spawns: + # Posters + - id: RandomPosterLegit + orGroup: content + - id: ExtinguisherCabinetFilled + prob: 0.2 + orGroup: content + - id: RandomPainting + prob: 0.05 + orGroup: content + - id: IntercomCommon + prob: 0.1 + orGroup: content + + - !type:BoundaryWallPostGen + tile: FloorConcrete + wall: WallSolid + cornerWall: WallReinforced + + - !type:JunctionPostGen + width: 1 + + - !type:JunctionPostGen + + - !type:AutoCablingPostGen diff --git a/Resources/Prototypes/Procedural/salvage_factions.yml b/Resources/Prototypes/Procedural/salvage_factions.yml index 1ea7fd3343d..021a010179b 100644 --- a/Resources/Prototypes/Procedural/salvage_factions.yml +++ b/Resources/Prototypes/Procedural/salvage_factions.yml @@ -68,3 +68,19 @@ prob: 0.02 configs: Megafauna: MobArgocyteLeviathing + +- type: salvageFaction + id: Abomination + entries: + - proto: ADTMobDistorted + - proto: ADTMobEcho + - proto: ADTMobGrant + - proto: ADTMobHunter + cost: 2 + - proto: ADTMobSoldier + cost: 2 + - proto: ADTMobWrecker + cost: 5 + prob: 0.05 + configs: + Megafauna: ADTMobWrecker diff --git a/Resources/Prototypes/Procedural/salvage_mods.yml b/Resources/Prototypes/Procedural/salvage_mods.yml index 285ed7bf893..c4b94b0d7bf 100644 --- a/Resources/Prototypes/Procedural/salvage_mods.yml +++ b/Resources/Prototypes/Procedural/salvage_mods.yml @@ -249,3 +249,12 @@ # - LowDesert - Snow - Grasslands + +- type: salvageDungeonMod + id: Botany + proto: Botany + biomes: + - Caves +# - LowDesert + - Snow + - Grasslands diff --git a/Resources/Prototypes/Sirena/Actions/NVAction.yml b/Resources/Prototypes/Sirena/Actions/NVAction.yml index 8023b784384..c11be116a16 100644 --- a/Resources/Prototypes/Sirena/Actions/NVAction.yml +++ b/Resources/Prototypes/Sirena/Actions/NVAction.yml @@ -12,8 +12,8 @@ - type: entity id: SwitchNightVision - name: switch night vision - description: bla + name: night-vision-toggle + description: night-vision-toggle-desc noSpawn: true components: - type: InstantAction diff --git a/Resources/Prototypes/Store/categories.yml b/Resources/Prototypes/Store/categories.yml index 6d98ce54c64..8e841b41c01 100644 --- a/Resources/Prototypes/Store/categories.yml +++ b/Resources/Prototypes/Store/categories.yml @@ -72,3 +72,8 @@ - type: storeCategory id: ChangelingAbilities name: store-category-abilities + +#wizard +- type: storeCategory + id: WizardAbilities + name: store-category-abilities diff --git a/Resources/Prototypes/Store/currency.yml b/Resources/Prototypes/Store/currency.yml index db4a1d885ce..cff2ef4faab 100644 --- a/Resources/Prototypes/Store/currency.yml +++ b/Resources/Prototypes/Store/currency.yml @@ -15,6 +15,11 @@ displayName: store-currency-display-evolution-points canWithdraw: false +- type: currency + id: SpellPoints + displayName: store-currency-display-spell-points + canWithdraw: false + #debug - type: currency id: DebugDollar diff --git a/Resources/Prototypes/Store/presets.yml b/Resources/Prototypes/Store/presets.yml index cae9105b3fa..90910208386 100644 --- a/Resources/Prototypes/Store/presets.yml +++ b/Resources/Prototypes/Store/presets.yml @@ -24,3 +24,11 @@ - ChangelingAbilities currencyWhitelist: - EvolutionPoints + +- type: storePreset + id: StorePresetWizard + storeName: SpellbookMenu + categories: + - WizardAbilities + currencyWhitelist: + - SpellPoints diff --git a/Resources/Prototypes/Traits/disabilities.yml b/Resources/Prototypes/Traits/disabilities.yml index 53d481c37e8..9e2f7052ab0 100644 --- a/Resources/Prototypes/Traits/disabilities.yml +++ b/Resources/Prototypes/Traits/disabilities.yml @@ -60,3 +60,11 @@ description: trait-frontal-lisp-desc components: - type: FrontalLisp + +- type: trait + id: GalacticCommonUnknow + name: trait-common-lang-unknown-name + description: trait-common-lang-unknown-desc + components: + - type: UnknowLanguage + language: GalacticCommon diff --git a/Resources/Prototypes/Voice/speech_emote_sounds.yml b/Resources/Prototypes/Voice/speech_emote_sounds.yml index f6b630e5c00..50abbe87a5b 100644 --- a/Resources/Prototypes/Voice/speech_emote_sounds.yml +++ b/Resources/Prototypes/Voice/speech_emote_sounds.yml @@ -32,6 +32,15 @@ collection: MaleCry Whistle: collection: Whistles + # ADT-Apathy Sounds. + Scream-apathy: + collection: MaleScreams + Laugh-apathy: + collection: MaleLaugh + Sigh-apathy: + collection: MaleSigh + Crying-apathy: + collection: MaleCry - type: emoteSounds id: FemaleHuman @@ -66,6 +75,15 @@ collection: FemaleCry Whistle: collection: Whistles + # ADT-Apathy Sounds. + Scream-apathy: + collection: FemaleScreams + Laugh-apathy: + collection: FemaleLaugh + Sigh-apathy: + collection: FemaleSigh + Crying-apathy: + collection: FemaleCry - type: emoteSounds id: UnisexReptilian @@ -82,6 +100,11 @@ collection: Whistles Crying: collection: MaleCry + # ADT-Apathy Sounds. + Scream-apathy: + path: /Audio/Voice/Reptilian/reptilian_scream.ogg + Laugh-apathy: + path: /Audio/Animals/lizard_happy.ogg - type: emoteSounds id: MaleSlime @@ -116,6 +139,15 @@ collection: MaleCry Whistle: collection: Whistles + # ADT-Apathy Sounds. + Scream-apathy: + collection: MaleScreams + Laugh-apathy: + collection: MaleLaugh + Sigh-apathy: + collection: MaleSigh + Crying-apathy: + collection: MaleCry params: variation: 0.125 @@ -152,6 +184,15 @@ collection: FemaleCry Whistle: collection: Whistles + # ADT-Apathy Sounds. + Scream-apathy: + collection: FemaleScreams + Laugh-apathy: + collection: FemaleLaugh + Sigh-apathy: + collection: FemaleSigh + Crying-apathy: + collection: FemaleCry params: variation: 0.125 @@ -171,6 +212,11 @@ collection: DionaLaugh Honk: collection: BikeHorn + # ADT-Apathy Sounds. + Scream-apathy: + path: /Audio/Voice/Diona/diona_scream.ogg + Laugh-apathy: + collection: DionaLaugh params: variation: 0.125 @@ -188,6 +234,11 @@ path: /Audio/Voice/Arachnid/arachnid_chitter.ogg Click: path: /Audio/Voice/Arachnid/arachnid_click.ogg + # ADT-Apathy Sounds. + Scream-apathy: + path: /Audio/Voice/Arachnid/arachnid_scream.ogg + Laugh-apathy: + path: /Audio/Voice/Arachnid/arachnid_laugh.ogg - type: emoteSounds id: UnisexDwarf @@ -220,6 +271,15 @@ collection: MaleCry Whistle: collection: Whistles + # ADT-Apathy Sounds. + Scream-apathy: + collection: MaleScreams + Laugh-apathy: + collection: MaleLaugh + Sigh-apathy: + collection: MaleSigh + Crying-apathy: + collection: MaleCry params: variation: 0.125 pitch: 0.75 @@ -255,6 +315,15 @@ collection: FemaleCry Whistle: collection: Whistles + # ADT-Apathy Sounds. + Scream-apathy: + collection: FemaleScreams + Laugh-apathy: + collection: FemaleLaugh + Sigh-apathy: + collection: FemaleSigh + Crying-apathy: + collection: FemaleCry params: variation: 0.125 pitch: 0.75 @@ -274,6 +343,11 @@ path: /Audio/Voice/Moth/moth_chitter.ogg Squeak: path: /Audio/Voice/Moth/moth_squeak.ogg + # ADT-Apathy Sounds. + Scream-apathy: + path: /Audio/Voice/Moth/moth_scream.ogg + Laugh-apathy: + path: /Audio/Voice/Moth/moth_laugh.ogg # body emotes - type: emoteSounds @@ -350,4 +424,4 @@ sound: path: /Audio/Animals/kangaroo_grunt.ogg params: - variation: 0.125 + variation: 0.125 \ No newline at end of file diff --git a/Resources/Textures/ADT/Actions/slime-hair.rsi/hair.png b/Resources/Textures/ADT/Actions/slime-hair.rsi/hair.png new file mode 100644 index 00000000000..4d7fc4b043c Binary files /dev/null and b/Resources/Textures/ADT/Actions/slime-hair.rsi/hair.png differ diff --git a/Resources/Textures/ADT/Actions/slime-hair.rsi/meta.json b/Resources/Textures/ADT/Actions/slime-hair.rsi/meta.json new file mode 100644 index 00000000000..a63efa9d372 --- /dev/null +++ b/Resources/Textures/ADT/Actions/slime-hair.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/blob/05ec94e46349c35e29ca91e5e97d0c88ae26ad44/icons/mob/species/human/human_face.dmi ,resprited by Alekshhh, adapted for action by _kote", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "hair" + } + ] +} diff --git a/Resources/Textures/ADT/Clothing/Belt/tsf_magbelt.rsi/equipped-BELT.png b/Resources/Textures/ADT/Clothing/Belt/tsf_magbelt.rsi/equipped-BELT.png new file mode 100644 index 00000000000..ef22d05075f Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Belt/tsf_magbelt.rsi/equipped-BELT.png differ diff --git a/Resources/Textures/ADT/Clothing/Belt/tsf_magbelt.rsi/icon.png b/Resources/Textures/ADT/Clothing/Belt/tsf_magbelt.rsi/icon.png new file mode 100644 index 00000000000..fc8763df39a Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Belt/tsf_magbelt.rsi/icon.png differ diff --git a/Resources/Textures/ADT/Clothing/Belt/tsf_magbelt.rsi/meta.json b/Resources/Textures/ADT/Clothing/Belt/tsf_magbelt.rsi/meta.json new file mode 100644 index 00000000000..85b203b4481 --- /dev/null +++ b/Resources/Textures/ADT/Clothing/Belt/tsf_magbelt.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by discord:not_so_big_chungus for Время Приключений МРП", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-BELT", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/ADT/Clothing/Belt/tsf_medbelt.rsi/equipped-BELT.png b/Resources/Textures/ADT/Clothing/Belt/tsf_medbelt.rsi/equipped-BELT.png new file mode 100644 index 00000000000..7d086adb476 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Belt/tsf_medbelt.rsi/equipped-BELT.png differ diff --git a/Resources/Textures/ADT/Clothing/Belt/tsf_medbelt.rsi/icon.png b/Resources/Textures/ADT/Clothing/Belt/tsf_medbelt.rsi/icon.png new file mode 100644 index 00000000000..9c4eb024490 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Belt/tsf_medbelt.rsi/icon.png differ diff --git a/Resources/Textures/ADT/Clothing/Belt/tsf_medbelt.rsi/meta.json b/Resources/Textures/ADT/Clothing/Belt/tsf_medbelt.rsi/meta.json new file mode 100644 index 00000000000..85b203b4481 --- /dev/null +++ b/Resources/Textures/ADT/Clothing/Belt/tsf_medbelt.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by discord:not_so_big_chungus for Время Приключений МРП", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-BELT", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/ADT/Clothing/Belt/tsf_webbing.rsi/equipped-BELT.png b/Resources/Textures/ADT/Clothing/Belt/tsf_webbing.rsi/equipped-BELT.png new file mode 100644 index 00000000000..ae56e7511da Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Belt/tsf_webbing.rsi/equipped-BELT.png differ diff --git a/Resources/Textures/ADT/Clothing/Belt/tsf_webbing.rsi/icon.png b/Resources/Textures/ADT/Clothing/Belt/tsf_webbing.rsi/icon.png new file mode 100644 index 00000000000..e63299b349d Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Belt/tsf_webbing.rsi/icon.png differ diff --git a/Resources/Textures/ADT/Clothing/Belt/tsf_webbing.rsi/inhand-left.png b/Resources/Textures/ADT/Clothing/Belt/tsf_webbing.rsi/inhand-left.png new file mode 100644 index 00000000000..55d042e11f8 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Belt/tsf_webbing.rsi/inhand-left.png differ diff --git a/Resources/Textures/ADT/Clothing/Belt/tsf_webbing.rsi/inhand-right.png b/Resources/Textures/ADT/Clothing/Belt/tsf_webbing.rsi/inhand-right.png new file mode 100644 index 00000000000..02226fd7c0a Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Belt/tsf_webbing.rsi/inhand-right.png differ diff --git a/Resources/Textures/ADT/Clothing/Belt/tsf_webbing.rsi/meta.json b/Resources/Textures/ADT/Clothing/Belt/tsf_webbing.rsi/meta.json new file mode 100644 index 00000000000..7d9c089baf4 --- /dev/null +++ b/Resources/Textures/ADT/Clothing/Belt/tsf_webbing.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by discord:not_so_big_chungus for Время Приключений МРП", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-BELT", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/ADT/Clothing/Head/Helmets/tsf_helmet.rsi/equipped-HELMET.png b/Resources/Textures/ADT/Clothing/Head/Helmets/tsf_helmet.rsi/equipped-HELMET.png new file mode 100644 index 00000000000..1567061a362 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Head/Helmets/tsf_helmet.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/ADT/Clothing/Head/Helmets/tsf_helmet.rsi/icon.png b/Resources/Textures/ADT/Clothing/Head/Helmets/tsf_helmet.rsi/icon.png new file mode 100644 index 00000000000..67a0e0b3a6f Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Head/Helmets/tsf_helmet.rsi/icon.png differ diff --git a/Resources/Textures/ADT/Clothing/Head/Helmets/tsf_helmet.rsi/inhand-left.png b/Resources/Textures/ADT/Clothing/Head/Helmets/tsf_helmet.rsi/inhand-left.png new file mode 100644 index 00000000000..2761c4ab695 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Head/Helmets/tsf_helmet.rsi/inhand-left.png differ diff --git a/Resources/Textures/ADT/Clothing/Head/Helmets/tsf_helmet.rsi/inhand-right.png b/Resources/Textures/ADT/Clothing/Head/Helmets/tsf_helmet.rsi/inhand-right.png new file mode 100644 index 00000000000..81725b5c6e0 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Head/Helmets/tsf_helmet.rsi/inhand-right.png differ diff --git a/Resources/Textures/ADT/Clothing/Head/Helmets/tsf_helmet.rsi/meta.json b/Resources/Textures/ADT/Clothing/Head/Helmets/tsf_helmet.rsi/meta.json new file mode 100644 index 00000000000..bbab2695fc5 --- /dev/null +++ b/Resources/Textures/ADT/Clothing/Head/Helmets/tsf_helmet.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by discord:not_so_big_chungus for Время Приключений МРП", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/ADT/Clothing/Neck/armytoken.rsi/equipped-IDCARD.png b/Resources/Textures/ADT/Clothing/Neck/armytoken.rsi/equipped-IDCARD.png new file mode 100644 index 00000000000..c24b2400aa2 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Neck/armytoken.rsi/equipped-IDCARD.png differ diff --git a/Resources/Textures/ADT/Clothing/Neck/armytoken.rsi/meta.json b/Resources/Textures/ADT/Clothing/Neck/armytoken.rsi/meta.json index cb08957df85..63b95820cb3 100644 --- a/Resources/Textures/ADT/Clothing/Neck/armytoken.rsi/meta.json +++ b/Resources/Textures/ADT/Clothing/Neck/armytoken.rsi/meta.json @@ -13,6 +13,10 @@ { "name": "equipped-NECK", "directions": 4 + }, + { + "name": "equipped-IDCARD", + "directions": 4 } ] } diff --git a/Resources/Textures/ADT/Clothing/Neck/tsf_patch.rsi/equipped-NECK.png b/Resources/Textures/ADT/Clothing/Neck/tsf_patch.rsi/equipped-NECK.png new file mode 100644 index 00000000000..1098a1018a2 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Neck/tsf_patch.rsi/equipped-NECK.png differ diff --git a/Resources/Textures/ADT/Clothing/Neck/tsf_patch.rsi/icon.png b/Resources/Textures/ADT/Clothing/Neck/tsf_patch.rsi/icon.png new file mode 100644 index 00000000000..28543ceaa7c Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Neck/tsf_patch.rsi/icon.png differ diff --git a/Resources/Textures/ADT/Clothing/Neck/tsf_patch.rsi/meta.json b/Resources/Textures/ADT/Clothing/Neck/tsf_patch.rsi/meta.json new file mode 100644 index 00000000000..fa0c41daecf --- /dev/null +++ b/Resources/Textures/ADT/Clothing/Neck/tsf_patch.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by discord:not_so_big_chungus for Время Приключений МРП", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-NECK", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/ADT/Clothing/OuterClothing/Armor/tsf_armor.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/ADT/Clothing/OuterClothing/Armor/tsf_armor.rsi/equipped-OUTERCLOTHING.png new file mode 100644 index 00000000000..006848ae9f3 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/OuterClothing/Armor/tsf_armor.rsi/equipped-OUTERCLOTHING.png differ diff --git a/Resources/Textures/ADT/Clothing/OuterClothing/Armor/tsf_armor.rsi/icon.png b/Resources/Textures/ADT/Clothing/OuterClothing/Armor/tsf_armor.rsi/icon.png new file mode 100644 index 00000000000..53b965769a2 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/OuterClothing/Armor/tsf_armor.rsi/icon.png differ diff --git a/Resources/Textures/ADT/Clothing/OuterClothing/Armor/tsf_armor.rsi/inhand-left.png b/Resources/Textures/ADT/Clothing/OuterClothing/Armor/tsf_armor.rsi/inhand-left.png new file mode 100644 index 00000000000..70b6455c220 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/OuterClothing/Armor/tsf_armor.rsi/inhand-left.png differ diff --git a/Resources/Textures/ADT/Clothing/OuterClothing/Armor/tsf_armor.rsi/inhand-right.png b/Resources/Textures/ADT/Clothing/OuterClothing/Armor/tsf_armor.rsi/inhand-right.png new file mode 100644 index 00000000000..6440a73b76c Binary files /dev/null and b/Resources/Textures/ADT/Clothing/OuterClothing/Armor/tsf_armor.rsi/inhand-right.png differ diff --git a/Resources/Textures/ADT/Clothing/OuterClothing/Armor/tsf_armor.rsi/meta.json b/Resources/Textures/ADT/Clothing/OuterClothing/Armor/tsf_armor.rsi/meta.json new file mode 100644 index 00000000000..a0b4d545126 --- /dev/null +++ b/Resources/Textures/ADT/Clothing/OuterClothing/Armor/tsf_armor.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by discord:not_so_big_chungus for Время Приключений МРП", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/ADT/Clothing/Shoes/Boots/foot_tag/equipped-FEET.png b/Resources/Textures/ADT/Clothing/Shoes/Boots/foot_tag/equipped-SOCKS.png similarity index 100% rename from Resources/Textures/ADT/Clothing/Shoes/Boots/foot_tag/equipped-FEET.png rename to Resources/Textures/ADT/Clothing/Shoes/Boots/foot_tag/equipped-SOCKS.png diff --git a/Resources/Textures/ADT/Clothing/Shoes/Boots/foot_tag/meta.json b/Resources/Textures/ADT/Clothing/Shoes/Boots/foot_tag/meta.json index b3eb0f00e84..a10eb3b12c0 100644 --- a/Resources/Textures/ADT/Clothing/Shoes/Boots/foot_tag/meta.json +++ b/Resources/Textures/ADT/Clothing/Shoes/Boots/foot_tag/meta.json @@ -14,7 +14,7 @@ "name": "paper_words" }, { - "name": "equipped-FEET", + "name": "equipped-SOCKS", "directions": 4 }, { diff --git a/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots.rsi/equipped-FEET.png b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots.rsi/equipped-FEET.png new file mode 100644 index 00000000000..8308fe93e85 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots.rsi/equipped-FEET.png differ diff --git a/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots.rsi/icon.png b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots.rsi/icon.png new file mode 100644 index 00000000000..b2c6f6a408f Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots.rsi/icon.png differ diff --git a/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots.rsi/inhand-left.png b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots.rsi/inhand-left.png new file mode 100644 index 00000000000..afd63f64c94 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots.rsi/inhand-left.png differ diff --git a/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots.rsi/inhand-right.png b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots.rsi/inhand-right.png new file mode 100644 index 00000000000..6ebf3e3c3a1 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots.rsi/inhand-right.png differ diff --git a/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots.rsi/meta.json b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots.rsi/meta.json new file mode 100644 index 00000000000..c5e1498ae72 --- /dev/null +++ b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/BlueMoon-Labs/MOLOT-BlueMoon-Station/blob/da8505ca557ffbc038af2cdbcf2943eaa9897de6/icons/obj/clothing/shoes.dmi and https://github.com/BlueMoon-Labs/MOLOT-BlueMoon-Station/blob/da8505ca557ffbc038af2cdbcf2943eaa9897de6/icons/mob/clothing/feet.dmi. Inhands sprites made by Username228 (#serj3428 discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-FEET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/equipped-FEET.png b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/equipped-FEET.png new file mode 100644 index 00000000000..b408d0cedd1 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/equipped-FEET.png differ diff --git a/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/icon-on.png b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/icon-on.png new file mode 100644 index 00000000000..7fde84a5905 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/icon-on.png differ diff --git a/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/icon.png b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/icon.png new file mode 100644 index 00000000000..7fde84a5905 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/icon.png differ diff --git a/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/inhand-left.png b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/inhand-left.png new file mode 100644 index 00000000000..f73b49b8767 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/inhand-left.png differ diff --git a/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/inhand-right.png b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/inhand-right.png new file mode 100644 index 00000000000..1cd21a6edc0 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/inhand-right.png differ diff --git a/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/meta.json b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/meta.json new file mode 100644 index 00000000000..9dbcedc4418 --- /dev/null +++ b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/meta.json @@ -0,0 +1,41 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by Username228 (#serj3428 discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "equipped-FEET", + "directions": 4 + }, + { + "name": "on-equipped-FEET", + "directions": 4 + }, + { + "name": "icon" + }, + { + "name": "icon-on" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "on-inhand-left", + "directions": 4 + }, + { + "name": "on-inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/on-equipped-FEET.png b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/on-equipped-FEET.png new file mode 100644 index 00000000000..b408d0cedd1 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/on-equipped-FEET.png differ diff --git a/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/on-inhand-left.png b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/on-inhand-left.png new file mode 100644 index 00000000000..f73b49b8767 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/on-inhand-left.png differ diff --git a/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/on-inhand-right.png b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/on-inhand-right.png new file mode 100644 index 00000000000..1cd21a6edc0 Binary files /dev/null and b/Resources/Textures/ADT/Clothing/Shoes/Boots/jumpboots_syndie.rsi/on-inhand-right.png differ diff --git a/Resources/Textures/ADT/Clothing/Uniforms/Jumpsuit/trader.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/ADT/Clothing/Uniforms/Jumpsuit/trader.rsi/equipped-INNERCLOTHING.png index f94902e682e..22fb86a1b41 100644 Binary files a/Resources/Textures/ADT/Clothing/Uniforms/Jumpsuit/trader.rsi/equipped-INNERCLOTHING.png and b/Resources/Textures/ADT/Clothing/Uniforms/Jumpsuit/trader.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/ADT/Interface/alerts.rsi/apathy.png b/Resources/Textures/ADT/Interface/alerts.rsi/apathy.png new file mode 100644 index 00000000000..7a71ec1f65c Binary files /dev/null and b/Resources/Textures/ADT/Interface/alerts.rsi/apathy.png differ diff --git a/Resources/Textures/ADT/Interface/alerts.rsi/meta.json b/Resources/Textures/ADT/Interface/alerts.rsi/meta.json new file mode 100644 index 00000000000..853afcf7af5 --- /dev/null +++ b/Resources/Textures/ADT/Interface/alerts.rsi/meta.json @@ -0,0 +1,21 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "ADT & GG Team. Painkiller by LogDog. Polymorph and apathy by JustKekc", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "painkiller" + }, + { + "name": "polymorph", + "delays": [ [0.6, 0.1, 0.1, 0.1, 0.1, 0.1, 0.6, 0.1, 0.1, 0.1, 0.1, 0.1] ] + }, + { + "name": "apathy" + } + ] +} diff --git a/Resources/Textures/ADT/Interface/alerts.rsi/painkiller.png b/Resources/Textures/ADT/Interface/alerts.rsi/painkiller.png new file mode 100644 index 00000000000..cebef3cb866 Binary files /dev/null and b/Resources/Textures/ADT/Interface/alerts.rsi/painkiller.png differ diff --git a/Resources/Textures/ADT/Interface/alerts.rsi/polymorph.png b/Resources/Textures/ADT/Interface/alerts.rsi/polymorph.png new file mode 100644 index 00000000000..d933795c593 Binary files /dev/null and b/Resources/Textures/ADT/Interface/alerts.rsi/polymorph.png differ diff --git a/Resources/Textures/ADT/Mobs/Aliens/headslug.rsi/headslug.png b/Resources/Textures/ADT/Mobs/Aliens/headslug.rsi/headslug.png new file mode 100644 index 00000000000..65a29e5423f Binary files /dev/null and b/Resources/Textures/ADT/Mobs/Aliens/headslug.rsi/headslug.png differ diff --git a/Resources/Textures/ADT/Mobs/Aliens/headslug.rsi/headslug_dead.png b/Resources/Textures/ADT/Mobs/Aliens/headslug.rsi/headslug_dead.png new file mode 100644 index 00000000000..5aebe0014ff Binary files /dev/null and b/Resources/Textures/ADT/Mobs/Aliens/headslug.rsi/headslug_dead.png differ diff --git a/Resources/Textures/ADT/Mobs/Aliens/headslug.rsi/meta.json b/Resources/Textures/ADT/Mobs/Aliens/headslug.rsi/meta.json new file mode 100644 index 00000000000..07396b10887 --- /dev/null +++ b/Resources/Textures/ADT/Mobs/Aliens/headslug.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/blob/master/icons/mob/simple/animal.dmi", + "states": [ + { + "name": "headslug", + "directions": 4 + }, + { + "name": "headslug_dead" + } + ] +} diff --git a/Resources/Textures/ADT/Objects/Consumable/Drinks/ussp_cup.rsi/icon-0.png b/Resources/Textures/ADT/Objects/Consumable/Drinks/ussp_cup.rsi/icon-0.png new file mode 100644 index 00000000000..450babc9b74 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Consumable/Drinks/ussp_cup.rsi/icon-0.png differ diff --git a/Resources/Textures/ADT/Objects/Consumable/Drinks/ussp_cup.rsi/icon-1.png b/Resources/Textures/ADT/Objects/Consumable/Drinks/ussp_cup.rsi/icon-1.png new file mode 100644 index 00000000000..af27fd34854 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Consumable/Drinks/ussp_cup.rsi/icon-1.png differ diff --git a/Resources/Textures/ADT/Objects/Consumable/Drinks/ussp_cup.rsi/icon-2.png b/Resources/Textures/ADT/Objects/Consumable/Drinks/ussp_cup.rsi/icon-2.png new file mode 100644 index 00000000000..39360e1cfd8 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Consumable/Drinks/ussp_cup.rsi/icon-2.png differ diff --git a/Resources/Textures/ADT/Objects/Consumable/Drinks/ussp_cup.rsi/icon-3.png b/Resources/Textures/ADT/Objects/Consumable/Drinks/ussp_cup.rsi/icon-3.png new file mode 100644 index 00000000000..c46dd0db14a Binary files /dev/null and b/Resources/Textures/ADT/Objects/Consumable/Drinks/ussp_cup.rsi/icon-3.png differ diff --git a/Resources/Textures/ADT/Objects/Consumable/Drinks/ussp_cup.rsi/meta.json b/Resources/Textures/ADT/Objects/Consumable/Drinks/ussp_cup.rsi/meta.json new file mode 100644 index 00000000000..88936512494 --- /dev/null +++ b/Resources/Textures/ADT/Objects/Consumable/Drinks/ussp_cup.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "made by discord: schrodinger71, a member of SS14 Adventure Time team", + "states": [ + { + "name": "icon-0" + }, + { + "name": "icon-1" + }, + { + "name": "icon-2" + }, + { + "name": "icon-3" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/ADT/Objects/Device/tsf_radio.rsi/equipped-EARS.png b/Resources/Textures/ADT/Objects/Device/tsf_radio.rsi/equipped-EARS.png new file mode 100644 index 00000000000..f6a43f76bc6 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Device/tsf_radio.rsi/equipped-EARS.png differ diff --git a/Resources/Textures/ADT/Objects/Device/tsf_radio.rsi/icon.png b/Resources/Textures/ADT/Objects/Device/tsf_radio.rsi/icon.png new file mode 100644 index 00000000000..35ddf31546f Binary files /dev/null and b/Resources/Textures/ADT/Objects/Device/tsf_radio.rsi/icon.png differ diff --git a/Resources/Textures/ADT/Objects/Device/tsf_radio.rsi/meta.json b/Resources/Textures/ADT/Objects/Device/tsf_radio.rsi/meta.json new file mode 100644 index 00000000000..bfd9eba428d --- /dev/null +++ b/Resources/Textures/ADT/Objects/Device/tsf_radio.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by discord:not_so_big_chungus for Время Приключений МРП", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-EARS", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/ADT/Objects/Device/tsf_radio_backpack.rsi/equipped-BACKPACK.png b/Resources/Textures/ADT/Objects/Device/tsf_radio_backpack.rsi/equipped-BACKPACK.png new file mode 100644 index 00000000000..5d03bd98b35 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Device/tsf_radio_backpack.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/ADT/Objects/Device/tsf_radio_backpack.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/ADT/Objects/Device/tsf_radio_backpack.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 00000000000..5d03bd98b35 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Device/tsf_radio_backpack.rsi/equipped-SUITSTORAGE.png differ diff --git a/Resources/Textures/ADT/Objects/Device/tsf_radio_backpack.rsi/icon.png b/Resources/Textures/ADT/Objects/Device/tsf_radio_backpack.rsi/icon.png new file mode 100644 index 00000000000..9f85674e1e6 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Device/tsf_radio_backpack.rsi/icon.png differ diff --git a/Resources/Textures/ADT/Objects/Device/tsf_radio_backpack.rsi/meta.json b/Resources/Textures/ADT/Objects/Device/tsf_radio_backpack.rsi/meta.json new file mode 100644 index 00000000000..0f5a3afe70d --- /dev/null +++ b/Resources/Textures/ADT/Objects/Device/tsf_radio_backpack.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by discord:not_so_big_chungus for Время Приключений МРП", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/ADT/Objects/Misc/wizardbook.rsi/magic_book_red.png b/Resources/Textures/ADT/Objects/Misc/wizardbook.rsi/magic_book_red.png new file mode 100644 index 00000000000..acba5fde834 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Misc/wizardbook.rsi/magic_book_red.png differ diff --git a/Resources/Textures/ADT/Objects/Misc/wizardbook.rsi/meta.json b/Resources/Textures/ADT/Objects/Misc/wizardbook.rsi/meta.json new file mode 100644 index 00000000000..856678a4944 --- /dev/null +++ b/Resources/Textures/ADT/Objects/Misc/wizardbook.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "ADT Team", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "magic_book_red" + } + ] +} diff --git a/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/dead.png b/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/dead.png index 4c642d1edd6..219958d2853 100644 Binary files a/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/dead.png and b/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/dead.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/dried.png b/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/dried.png new file mode 100644 index 00000000000..67f9a358934 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/dried.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/harvest.png b/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/harvest.png index 122dab88aeb..2faaeb24961 100644 Binary files a/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/harvest.png and b/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/harvest.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/meta.json b/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/meta.json index e3c4aff34c7..36aaa6f9f63 100644 --- a/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/meta.json +++ b/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from ss220 that take it from goonstation", + "copyright": "Taken from ss220 that take it from goonstation. Modified by JustKekc from ADT team", "size": { "x": 32, "y": 32 @@ -19,6 +19,9 @@ { "name": "seed" }, + { + "name": "dried" + }, { "name": "stage-1" }, diff --git a/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/produce.png b/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/produce.png index 1eca942a6a4..f50d8ec11dd 100644 Binary files a/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/produce.png and b/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/produce.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/seed.png b/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/seed.png index 4522b340647..685a329bf36 100644 Binary files a/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/seed.png and b/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/seed.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/stage-1.png b/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/stage-1.png index 4acb865772b..2f27c5b1057 100644 Binary files a/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/stage-1.png and b/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/stage-1.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/stage-2.png b/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/stage-2.png index b25b76e5c2c..0260362ce24 100644 Binary files a/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/stage-2.png and b/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/stage-2.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/stage-3.png b/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/stage-3.png index c382cc3f8cf..b4610429b4b 100644 Binary files a/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/stage-3.png and b/Resources/Textures/ADT/Objects/Specific/Hydroponics/cannabiswhite.rsi/stage-3.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Hydroponics/papaver_somniferum.rsi/seed.png b/Resources/Textures/ADT/Objects/Specific/Hydroponics/papaver_somniferum.rsi/seed.png index fd57eb53aa8..cba34b83949 100644 Binary files a/Resources/Textures/ADT/Objects/Specific/Hydroponics/papaver_somniferum.rsi/seed.png and b/Resources/Textures/ADT/Objects/Specific/Hydroponics/papaver_somniferum.rsi/seed.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/fill1.png b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/fill1.png new file mode 100644 index 00000000000..f34f2651cf1 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/fill1.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/fill2.png b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/fill2.png new file mode 100644 index 00000000000..9eb7716540f Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/fill2.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/fill3.png b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/fill3.png new file mode 100644 index 00000000000..c31e84c1332 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/fill3.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/fill4.png b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/fill4.png new file mode 100644 index 00000000000..91f6de4459a Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/fill4.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/fill5.png b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/fill5.png new file mode 100644 index 00000000000..00726193757 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/fill5.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/fill6.png b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/fill6.png new file mode 100644 index 00000000000..088dd69262b Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/fill6.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/icon-front-morphine.png b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/icon-front-morphine.png new file mode 100644 index 00000000000..8d493a15676 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/icon-front-morphine.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/icon-front.png b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/icon-front.png new file mode 100644 index 00000000000..82c58484517 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/icon-front.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/icon.png b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/icon.png new file mode 100644 index 00000000000..c5e2f259c5f Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/icon.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/icon_formalin.png b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/icon_formalin.png new file mode 100644 index 00000000000..bb1edd545ce Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/icon_formalin.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/inhand-left.png b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/inhand-left.png new file mode 100644 index 00000000000..fe2c2717489 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/inhand-left.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/inhand-right.png b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/inhand-right.png new file mode 100644 index 00000000000..b50056f6b43 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/inhand-right.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/meta.json b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/meta.json new file mode 100644 index 00000000000..0226f96b065 --- /dev/null +++ b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/glass-bottle.rsi/meta.json @@ -0,0 +1,49 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-NC-SA-4.0", + "copyright": "Created by JustKekc.", + "states": [ + { + "name": "icon" + }, + { + "name": "icon_formalin" + }, + { + "name": "icon-front" + }, + { + "name": "icon-front-morphine" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "fill1" + }, + { + "name": "fill2" + }, + { + "name": "fill3" + }, + { + "name": "fill4" + }, + { + "name": "fill5" + }, + { + "name": "fill6" + } + ] +} diff --git a/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/plastic-bottle.rsi/icon-front-diethamilate.png b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/plastic-bottle.rsi/icon-front-diethamilate.png new file mode 100644 index 00000000000..fab6d00435f Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/plastic-bottle.rsi/icon-front-diethamilate.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/plastic-bottle.rsi/meta.json b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/plastic-bottle.rsi/meta.json index 79fb6eeff4e..8c77cf9dc23 100644 --- a/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/plastic-bottle.rsi/meta.json +++ b/Resources/Textures/ADT/Objects/Specific/Medical/Chemistry/plastic-bottle.rsi/meta.json @@ -19,6 +19,9 @@ { "name": "icon-front-perohydrogen" }, + { + "name": "icon-front-diethamilate" + }, { "name": "inhand-left", "directions": 4 @@ -49,4 +52,4 @@ "name": "fill7" } ] -} \ No newline at end of file +} diff --git a/Resources/Textures/ADT/Objects/Specific/Medical/briefcase_medical.rsi/icon.png b/Resources/Textures/ADT/Objects/Specific/Medical/briefcase_medical.rsi/icon.png new file mode 100644 index 00000000000..8911dde147c Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Medical/briefcase_medical.rsi/icon.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Medical/briefcase_medical.rsi/inhand-left.png b/Resources/Textures/ADT/Objects/Specific/Medical/briefcase_medical.rsi/inhand-left.png new file mode 100644 index 00000000000..37f71ca8b1b Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Medical/briefcase_medical.rsi/inhand-left.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Medical/briefcase_medical.rsi/inhand-right.png b/Resources/Textures/ADT/Objects/Specific/Medical/briefcase_medical.rsi/inhand-right.png new file mode 100644 index 00000000000..5abdb91d401 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Medical/briefcase_medical.rsi/inhand-right.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Medical/briefcase_medical.rsi/meta.json b/Resources/Textures/ADT/Objects/Specific/Medical/briefcase_medical.rsi/meta.json new file mode 100644 index 00000000000..f5a167a761a --- /dev/null +++ b/Resources/Textures/ADT/Objects/Specific/Medical/briefcase_medical.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by JustKekc", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git "a/Resources/Textures/ADT/Objects/Specific/gen\320\276_larva_white.rsi/icon.png" "b/Resources/Textures/ADT/Objects/Specific/gen\320\276_larva_white.rsi/icon.png" new file mode 100644 index 00000000000..a6b9b0428db Binary files /dev/null and "b/Resources/Textures/ADT/Objects/Specific/gen\320\276_larva_white.rsi/icon.png" differ diff --git "a/Resources/Textures/ADT/Objects/Specific/gen\320\276_larva_white.rsi/inhand-left.png" "b/Resources/Textures/ADT/Objects/Specific/gen\320\276_larva_white.rsi/inhand-left.png" new file mode 100644 index 00000000000..bae5e148494 Binary files /dev/null and "b/Resources/Textures/ADT/Objects/Specific/gen\320\276_larva_white.rsi/inhand-left.png" differ diff --git "a/Resources/Textures/ADT/Objects/Specific/gen\320\276_larva_white.rsi/inhand-right.png" "b/Resources/Textures/ADT/Objects/Specific/gen\320\276_larva_white.rsi/inhand-right.png" new file mode 100644 index 00000000000..0cf83daf997 Binary files /dev/null and "b/Resources/Textures/ADT/Objects/Specific/gen\320\276_larva_white.rsi/inhand-right.png" differ diff --git "a/Resources/Textures/ADT/Objects/Specific/gen\320\276_larva_white.rsi/meta.json" "b/Resources/Textures/ADT/Objects/Specific/gen\320\276_larva_white.rsi/meta.json" new file mode 100644 index 00000000000..6ea76d899a7 --- /dev/null +++ "b/Resources/Textures/ADT/Objects/Specific/gen\320\276_larva_white.rsi/meta.json" @@ -0,0 +1,21 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by .bolbyyy for ADT Server", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left" + }, + { + "name": "inhand-right" + } + + ] +} diff --git a/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/base.png b/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/base.png new file mode 100644 index 00000000000..7793eab4359 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/base.png differ diff --git a/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/bolt-open.png b/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/bolt-open.png new file mode 100644 index 00000000000..5961edd16f6 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/bolt-open.png differ diff --git a/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/equipped-BACKPACK.png b/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/equipped-BACKPACK.png new file mode 100644 index 00000000000..d873ac80dfd Binary files /dev/null and b/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 00000000000..d873ac80dfd Binary files /dev/null and b/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/equipped-SUITSTORAGE.png differ diff --git a/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/icon.png b/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/icon.png new file mode 100644 index 00000000000..474effdec7d Binary files /dev/null and b/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/icon.png differ diff --git a/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/inhand-left.png b/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/inhand-left.png new file mode 100644 index 00000000000..dcd28cc7c75 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/inhand-left.png differ diff --git a/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/inhand-right.png b/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/inhand-right.png new file mode 100644 index 00000000000..ef2fb7cfb07 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/inhand-right.png differ diff --git a/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/mag-0.png b/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/mag-0.png new file mode 100644 index 00000000000..daa3b29bb1f Binary files /dev/null and b/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/mag-0.png differ diff --git a/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/meta.json b/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/meta.json new file mode 100644 index 00000000000..3ed44a3687f --- /dev/null +++ b/Resources/Textures/ADT/Objects/Weapons/Guns/Rifels/tar60sf.rsi/meta.json @@ -0,0 +1,39 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by discord:prazat911 Approved for use ONLY on the Adventure Time project.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "base" + }, + { + "name": "mag-0" + }, + { + "name": "bolt-open" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/ADT/Structures/Machines/VendingMachines/tsf_armoury.rsi/base.png b/Resources/Textures/ADT/Structures/Machines/VendingMachines/tsf_armoury.rsi/base.png new file mode 100644 index 00000000000..69d45f99aa7 Binary files /dev/null and b/Resources/Textures/ADT/Structures/Machines/VendingMachines/tsf_armoury.rsi/base.png differ diff --git a/Resources/Textures/ADT/Structures/Machines/VendingMachines/tsf_armoury.rsi/broken.png b/Resources/Textures/ADT/Structures/Machines/VendingMachines/tsf_armoury.rsi/broken.png new file mode 100644 index 00000000000..7ca07ccd5ef Binary files /dev/null and b/Resources/Textures/ADT/Structures/Machines/VendingMachines/tsf_armoury.rsi/broken.png differ diff --git a/Resources/Textures/ADT/Structures/Machines/VendingMachines/tsf_armoury.rsi/meta.json b/Resources/Textures/ADT/Structures/Machines/VendingMachines/tsf_armoury.rsi/meta.json new file mode 100644 index 00000000000..dfcd10ba113 --- /dev/null +++ b/Resources/Textures/ADT/Structures/Machines/VendingMachines/tsf_armoury.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by discord:not_so_big_chungus for Время Приключений МРП", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + }, + { + "name": "off" + }, + { + "name": "broken" + }, + { + "name": "panel" + } + ] +} diff --git a/Resources/Textures/ADT/Structures/Machines/VendingMachines/tsf_armoury.rsi/off.png b/Resources/Textures/ADT/Structures/Machines/VendingMachines/tsf_armoury.rsi/off.png new file mode 100644 index 00000000000..497df2cc4cb Binary files /dev/null and b/Resources/Textures/ADT/Structures/Machines/VendingMachines/tsf_armoury.rsi/off.png differ diff --git a/Resources/Textures/ADT/Structures/Machines/VendingMachines/tsf_armoury.rsi/panel.png b/Resources/Textures/ADT/Structures/Machines/VendingMachines/tsf_armoury.rsi/panel.png new file mode 100644 index 00000000000..11fb203538e Binary files /dev/null and b/Resources/Textures/ADT/Structures/Machines/VendingMachines/tsf_armoury.rsi/panel.png differ diff --git a/Resources/Textures/Interface/Actions/actions_ling.rsi/last_resort.png b/Resources/Textures/Interface/Actions/actions_ling.rsi/last_resort.png new file mode 100644 index 00000000000..c64c56ee2eb Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_ling.rsi/last_resort.png differ diff --git a/Resources/Textures/Interface/Actions/actions_ling.rsi/lesser_form.png b/Resources/Textures/Interface/Actions/actions_ling.rsi/lesser_form.png new file mode 100644 index 00000000000..dd31d936b66 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_ling.rsi/lesser_form.png differ diff --git a/Resources/Textures/Interface/Actions/actions_ling.rsi/meta.json b/Resources/Textures/Interface/Actions/actions_ling.rsi/meta.json index eeb0272c9ac..a9297ec2d06 100644 --- a/Resources/Textures/Interface/Actions/actions_ling.rsi/meta.json +++ b/Resources/Textures/Interface/Actions/actions_ling.rsi/meta.json @@ -60,7 +60,15 @@ }, { "name": "fleshmend" + }, + { + "name": "strained_muscles" + }, + { + "name": "lesser_form" + }, + { + "name": "last_resort" } - ] } diff --git a/Resources/Textures/Interface/Actions/actions_ling.rsi/strained_muscles.png b/Resources/Textures/Interface/Actions/actions_ling.rsi/strained_muscles.png new file mode 100644 index 00000000000..bb284bc9f35 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_ling.rsi/strained_muscles.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/absorb_dna.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/absorb_dna.png new file mode 100644 index 00000000000..c7a65d00495 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/absorb_dna.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/adrenaline.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/adrenaline.png new file mode 100644 index 00000000000..744864efc46 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/adrenaline.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/armblade.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/armblade.png new file mode 100644 index 00000000000..eda9084981e Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/armblade.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/augmented_eyesight.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/augmented_eyesight.png new file mode 100644 index 00000000000..857f8414d4a Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/augmented_eyesight.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/background.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/background.png new file mode 100644 index 00000000000..6fd7d2db6f2 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/background.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/biodegrade.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/biodegrade.png new file mode 100644 index 00000000000..3b143b37d99 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/biodegrade.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/chameleon_skin.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/chameleon_skin.png new file mode 100644 index 00000000000..c355d8485a8 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/chameleon_skin.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/changeling_channel.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/changeling_channel.png new file mode 100644 index 00000000000..845c212dc5a Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/changeling_channel.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/changelingsting.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/changelingsting.png new file mode 100644 index 00000000000..1c39f4f8254 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/changelingsting.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/chitinous_armor.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/chitinous_armor.png new file mode 100644 index 00000000000..7c41fb0cc9d Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/chitinous_armor.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/darkness_adaptation.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/darkness_adaptation.png new file mode 100644 index 00000000000..995c23e6f72 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/darkness_adaptation.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/digital_camo.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/digital_camo.png new file mode 100644 index 00000000000..73b523dc5b3 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/digital_camo.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/dissonant_shriek.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/dissonant_shriek.png new file mode 100644 index 00000000000..50254888796 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/dissonant_shriek.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/fake_death.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/fake_death.png new file mode 100644 index 00000000000..103fbd4d171 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/fake_death.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/fleshmend.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/fleshmend.png new file mode 100644 index 00000000000..b5b78d62d98 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/fleshmend.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/hive_absorb.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/hive_absorb.png new file mode 100644 index 00000000000..e0846bca05a Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/hive_absorb.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/hive_head.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/hive_head.png new file mode 100644 index 00000000000..e55dcda0d66 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/hive_head.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/hive_link.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/hive_link.png new file mode 100644 index 00000000000..a16cd75c94e Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/hive_link.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/human_form.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/human_form.png new file mode 100644 index 00000000000..1b814a7ee0c Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/human_form.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/last_resort.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/last_resort.png new file mode 100644 index 00000000000..6e2be0b2121 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/last_resort.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/lesser_form.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/lesser_form.png new file mode 100644 index 00000000000..7edf36065c0 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/lesser_form.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/meta.json b/Resources/Textures/Interface/Actions/changeling_actions.rsi/meta.json new file mode 100644 index 00000000000..9dfcafcdd84 --- /dev/null +++ b/Resources/Textures/Interface/Actions/changeling_actions.rsi/meta.json @@ -0,0 +1,131 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "taken from tg at https://github.com/tgstation/tgstation/commit/3e9ea4d77cdf4173777e665b2b4f4ba8cecf2c03#diff-06a6d3876124f6bb0adf70a4dffab8d82b9a7ae0abf9ec0ebc22211ca9d8ad4b. Sprites made by KREKS (#.kreks. discord), ported to Space Station 14 by Username228 (#serj3428 discord)", + "states": [ + { + "name": "absorb_dna" + }, + { + "name": "refresh_dna" + }, + { + "name": "adrenaline" + }, + { + "name": "armblade" + }, + { + "name": "augmented_eyesight" + }, + { + "name": "biodegrade" + }, + { + "name": "chameleon_skin" + }, + { + "name": "changeling_channel" + }, + { + "name": "chitinous_armor" + }, + { + "name": "changelingsting" + }, + { + "name": "darkness_adaptation" + }, + { + "name": "digital_camo" + }, + { + "name": "dissonant_shriek" + }, + { + "name": "fake_death" + }, + { + "name": "fleshmend" + }, + { + "name": "hive_absorb" + }, + { + "name": "hive_head" + }, + { + "name": "hive_link" + }, + { + "name": "human_form" + }, + { + "name": "lesser_form" + }, + { + "name": "last_resort" + }, + { + "name": "mimic_voice" + }, + { + "name": "organic_shield" + }, + { + "name": "organic_suit" + }, + { + "name": "panacea" + }, + { + "name": "regenerate" + }, + { + "name": "resonant_shriek" + }, + { + "name": "revive" + }, + { + "name": "spread_infestation" + }, + { + "name": "sting_armblade" + }, + { + "name": "sting_blind" + }, + { + "name": "sting_cryo" + }, + { + "name": "sting_extract" + }, + { + "name": "sting_lsd" + }, + { + "name": "sting_mute" + }, + { + "name": "sting_transform" + }, + { + "name": "strained_muscles" + }, + { + "name": "tentacle" + }, + { + "name": "transform" + }, + { + "name": "background" + } + ] +} diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/mimic_voice.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/mimic_voice.png new file mode 100644 index 00000000000..8e36b8cbfa6 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/mimic_voice.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/organic_shield.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/organic_shield.png new file mode 100644 index 00000000000..60275564cc3 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/organic_shield.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/organic_suit.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/organic_suit.png new file mode 100644 index 00000000000..61fb8fe845e Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/organic_suit.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/panacea.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/panacea.png new file mode 100644 index 00000000000..df37fd67203 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/panacea.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/refresh_dna.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/refresh_dna.png new file mode 100644 index 00000000000..caf1a68c6e5 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/refresh_dna.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/regenerate.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/regenerate.png new file mode 100644 index 00000000000..26cc976c52c Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/regenerate.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/resonant_shriek.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/resonant_shriek.png new file mode 100644 index 00000000000..3a3d222b312 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/resonant_shriek.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/revive.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/revive.png new file mode 100644 index 00000000000..ad3b4da407e Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/revive.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/spread_infestation.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/spread_infestation.png new file mode 100644 index 00000000000..5550b21eddc Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/spread_infestation.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_armblade.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_armblade.png new file mode 100644 index 00000000000..fbb06b86037 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_armblade.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_blind.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_blind.png new file mode 100644 index 00000000000..0f3ae0e4e20 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_blind.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_cryo.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_cryo.png new file mode 100644 index 00000000000..81c10e6ed13 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_cryo.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_extract.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_extract.png new file mode 100644 index 00000000000..26c2a105317 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_extract.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_lsd.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_lsd.png new file mode 100644 index 00000000000..dc8b67b2003 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_lsd.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_mute.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_mute.png new file mode 100644 index 00000000000..fbe83cc881a Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_mute.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_transform.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_transform.png new file mode 100644 index 00000000000..e6cb0c82dde Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/sting_transform.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/strained_muscles.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/strained_muscles.png new file mode 100644 index 00000000000..f6a5cadb423 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/strained_muscles.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/tentacle.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/tentacle.png new file mode 100644 index 00000000000..3ebf73396a7 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/tentacle.png differ diff --git a/Resources/Textures/Interface/Actions/changeling_actions.rsi/transform.png b/Resources/Textures/Interface/Actions/changeling_actions.rsi/transform.png new file mode 100644 index 00000000000..b53771f4581 Binary files /dev/null and b/Resources/Textures/Interface/Actions/changeling_actions.rsi/transform.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/armblade.rsi/icon.png b/Resources/Textures/Objects/Weapons/Melee/armblade.rsi/icon.png index 27fc9e77863..d362e6d1f43 100644 Binary files a/Resources/Textures/Objects/Weapons/Melee/armblade.rsi/icon.png and b/Resources/Textures/Objects/Weapons/Melee/armblade.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/armblade.rsi/inhand-left.png b/Resources/Textures/Objects/Weapons/Melee/armblade.rsi/inhand-left.png index dc9fdd94ac6..759aa26500e 100644 Binary files a/Resources/Textures/Objects/Weapons/Melee/armblade.rsi/inhand-left.png and b/Resources/Textures/Objects/Weapons/Melee/armblade.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/armblade.rsi/inhand-right.png b/Resources/Textures/Objects/Weapons/Melee/armblade.rsi/inhand-right.png index 842621b0fcf..0f8b2404f82 100644 Binary files a/Resources/Textures/Objects/Weapons/Melee/armblade.rsi/inhand-right.png and b/Resources/Textures/Objects/Weapons/Melee/armblade.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/armblade.rsi/meta.json b/Resources/Textures/Objects/Weapons/Melee/armblade.rsi/meta.json index 56198c464de..be1c67f2b69 100644 --- a/Resources/Textures/Objects/Weapons/Melee/armblade.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Melee/armblade.rsi/meta.json @@ -1,22 +1,82 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "taken from tg at https://github.com/tgstation/tgstation/blob/master/icons/obj/changeling_items.dmi", - "size": { - "x": 32, - "y": 32 + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "taken from tg at https://github.com/tgstation/tgstation/commit/3e9ea4d77cdf4173777e665b2b4f4ba8cecf2c03#diff-06a6d3876124f6bb0adf70a4dffab8d82b9a7ae0abf9ec0ebc22211ca9d8ad4b. Sprites made by KREKS (#.kreks. discord), ported to Space Station 14 by Username228 (#serj3428 discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" }, - "states": [ - { - "name": "icon" - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] + { + "name": "inhand-left", + "directions": 4, + "delays": [ + [ + 0.3, + 0.2, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.2, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.2, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.2, + 0.3, + 0.3, + 0.3 + ] + ] + }, + { + "name": "inhand-right", + "directions": 4, + "delays": [ + [ + 0.3, + 0.2, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.2, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.2, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.2, + 0.3, + 0.3, + 0.3 + ] + ] + } + ] } diff --git a/Resources/Textures/Objects/Weapons/Melee/armshield.rsi/icon.png b/Resources/Textures/Objects/Weapons/Melee/armshield.rsi/icon.png new file mode 100644 index 00000000000..9e75fa61e16 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/armshield.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/armshield.rsi/inhand-left.png b/Resources/Textures/Objects/Weapons/Melee/armshield.rsi/inhand-left.png new file mode 100644 index 00000000000..f54fadf4a84 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/armshield.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/armshield.rsi/inhand-right.png b/Resources/Textures/Objects/Weapons/Melee/armshield.rsi/inhand-right.png new file mode 100644 index 00000000000..f3511818023 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/armshield.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/armshield.rsi/meta.json b/Resources/Textures/Objects/Weapons/Melee/armshield.rsi/meta.json new file mode 100644 index 00000000000..2422b8124cc --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Melee/armshield.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "taken from tg at https://github.com/tgstation/tgstation/commit/3e9ea4d77cdf4173777e665b2b4f4ba8cecf2c03#diff-06a6d3876124f6bb0adf70a4dffab8d82b9a7ae0abf9ec0ebc22211ca9d8ad4b. Sprites made by KREKS (#.kreks. discord), ported to Space Station 14 by Username228 (#serj3428 discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Weapons/Melee/armtentacle.rsi/icon.png b/Resources/Textures/Objects/Weapons/Melee/armtentacle.rsi/icon.png new file mode 100644 index 00000000000..96fe562db8a Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/armtentacle.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/armtentacle.rsi/inhand-left.png b/Resources/Textures/Objects/Weapons/Melee/armtentacle.rsi/inhand-left.png new file mode 100644 index 00000000000..78d2cc1d60d Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/armtentacle.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/armtentacle.rsi/inhand-right.png b/Resources/Textures/Objects/Weapons/Melee/armtentacle.rsi/inhand-right.png new file mode 100644 index 00000000000..0bf22f8b69a Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/armtentacle.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/armtentacle.rsi/meta.json b/Resources/Textures/Objects/Weapons/Melee/armtentacle.rsi/meta.json new file mode 100644 index 00000000000..715d260a1be --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Melee/armtentacle.rsi/meta.json @@ -0,0 +1,82 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "taken from tg at https://github.com/tgstation/tgstation/commit/3e9ea4d77cdf4173777e665b2b4f4ba8cecf2c03#diff-06a6d3876124f6bb0adf70a4dffab8d82b9a7ae0abf9ec0ebc22211ca9d8ad4b. Sprites made by KREKS (#.kreks. discord), ported to Space Station 14 by Username228 (#serj3428 discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4, + "delays": [ + [ + 0.3, + 0.2, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.2, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.2, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.2, + 0.3, + 0.3, + 0.3 + ] + ] + }, + { + "name": "inhand-right", + "directions": 4, + "delays": [ + [ + 0.3, + 0.2, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.2, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.2, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.2, + 0.3, + 0.3, + 0.3 + ] + ] + } + ] +}