diff --git a/Content.Client/Movement/Systems/WaddleAnimationSystem.cs b/Content.Client/Movement/Systems/WaddleAnimationSystem.cs index 0ed2d04f694a..f33a5d61ad23 100644 --- a/Content.Client/Movement/Systems/WaddleAnimationSystem.cs +++ b/Content.Client/Movement/Systems/WaddleAnimationSystem.cs @@ -1,4 +1,4 @@ -using System.Numerics; +using System.Numerics; using Content.Client.Buckle; using Content.Client.Gravity; using Content.Shared.ActionBlocker; @@ -87,6 +87,11 @@ private void OnAnimationCompleted(Entity entity, ref A if (!TryComp(entity.Owner, out var mover)) return; + //SS220 Waddle in crit/death fix begin + if (_mobState.IsIncapacitated(entity.Owner)) + return; + //SS220 Waddle in crit/death fix end + PlayWaddleAnimationUsing( (entity.Owner, entity.Comp), CalculateAnimationLength(entity.Comp, mover), diff --git a/Content.Server/Antag/AntagSelectionSystem.cs b/Content.Server/Antag/AntagSelectionSystem.cs index 860e2b986529..e90e4ebab6bc 100644 --- a/Content.Server/Antag/AntagSelectionSystem.cs +++ b/Content.Server/Antag/AntagSelectionSystem.cs @@ -332,12 +332,19 @@ public void MakeAntag(Entity ent, ICommonSession? sessi if (session != null) { - var curMind = _mind.CreateMind(session.UserId, Name(antagEnt.Value)); - _mind.SetUserId(curMind, session.UserId); + // start 220 AntagSelectionFix + var curMind = session.GetMind(); - _mind.TransferTo(curMind, antagEnt, ghostCheckOverride: true); - _role.MindAddRoles(curMind, def.MindComponents, null, true); - ent.Comp.SelectedMinds.Add((curMind, Name(player))); + if (curMind == null || session.AttachedEntity != antagEnt) + { + curMind = _mind.CreateMind(session.UserId, Name(antagEnt.Value)); + _mind.SetUserId(curMind.Value, session.UserId); + } + + _mind.TransferTo(curMind.Value, antagEnt, ghostCheckOverride: true); + _role.MindAddRoles(curMind.Value, def.MindComponents, null, true); + ent.Comp.SelectedMinds.Add((curMind.Value, Name(player))); + // end 220 AntagSelectionFix SendBriefing(session, def.Briefing); } diff --git a/Content.Server/Botany/Systems/MutationSystem.cs b/Content.Server/Botany/Systems/MutationSystem.cs index 658970305ff4..dea605d67061 100644 --- a/Content.Server/Botany/Systems/MutationSystem.cs +++ b/Content.Server/Botany/Systems/MutationSystem.cs @@ -126,6 +126,8 @@ public SeedData Cross(SeedData a, SeedData b) CrossBool(ref result.TurnIntoKudzu, a.TurnIntoKudzu); CrossBool(ref result.CanScream, a.CanScream); + CrossRepeatable(ref result.HarvestRepeat, ref a.HarvestRepeat); //SS220 CrossRepeatable + CrossGasses(ref result.ExudeGasses, a.ExudeGasses); CrossGasses(ref result.ConsumeGasses, a.ConsumeGasses); @@ -407,6 +409,13 @@ private void CrossBool(ref bool val, bool other) val = Random(0.5f) ? val : other; } + //SS220 CrossRepeatable start + private void CrossRepeatable(ref HarvestType val, ref HarvestType other) + { + val = Random(0.15f) ? val : other; + } + //SS220 CrossRepeatable end + private bool Random(float p) { return _robustRandom.Prob(p); diff --git a/Content.Server/Explosion/EntitySystems/TriggerSystem.cs b/Content.Server/Explosion/EntitySystems/TriggerSystem.cs index 92e065bf4ce6..fca4e6c5f0c9 100644 --- a/Content.Server/Explosion/EntitySystems/TriggerSystem.cs +++ b/Content.Server/Explosion/EntitySystems/TriggerSystem.cs @@ -154,7 +154,7 @@ private void HandleExplodeTrigger(EntityUid uid, ExplodeOnTriggerComponent compo private void HandleFlashTrigger(EntityUid uid, FlashOnTriggerComponent component, TriggerEvent args) { // TODO Make flash durations sane ffs. - _flashSystem.FlashArea(uid, args.User, component.Range, component.Duration * 1000f, probability: component.Probability); + _flashSystem.FlashArea(uid, args.User, component.Range, component.Duration * 1000f, probability: component.Probability, stun: component.Stun, stunDuration: component.StunDuration); // 220 flash grenade stun args.Handled = true; } diff --git a/Content.Server/Flash/FlashSystem.cs b/Content.Server/Flash/FlashSystem.cs index ccb58e94f814..f8d03a08f862 100644 --- a/Content.Server/Flash/FlashSystem.cs +++ b/Content.Server/Flash/FlashSystem.cs @@ -152,7 +152,7 @@ public void Flash(EntityUid target, } } - public void FlashArea(Entity source, EntityUid? user, float range, float duration, float slowTo = 0.8f, bool displayPopup = false, float probability = 1f, SoundSpecifier? sound = null) + public void FlashArea(Entity source, EntityUid? user, float range, float duration, float slowTo = 0.8f, bool displayPopup = false, float probability = 1f, SoundSpecifier? sound = null, bool stun = false, float stunDuration = 1f) // 220 flash grenade stun { var transform = Transform(source); var mapPosition = _transform.GetMapCoordinates(transform); @@ -174,7 +174,7 @@ public void FlashArea(Entity source, EntityUid? user, float ran continue; // They shouldn't have flash removed in between right? - Flash(entity, user, source, duration, slowTo, displayPopup); + Flash(entity, user, source, duration, slowTo, displayPopup, melee: stun, stunDuration: TimeSpan.FromSeconds(stunDuration)); // 220 flash grenade stun } _audio.PlayPvs(sound, source, AudioParams.Default.WithVolume(1f).WithMaxDistance(3f)); diff --git a/Content.Shared/Clothing/EntitySystems/WaddleClothingSystem.cs b/Content.Shared/Clothing/EntitySystems/WaddleClothingSystem.cs index b445eb258e9a..1c036047e9c3 100644 --- a/Content.Shared/Clothing/EntitySystems/WaddleClothingSystem.cs +++ b/Content.Shared/Clothing/EntitySystems/WaddleClothingSystem.cs @@ -1,12 +1,16 @@ -using Content.Shared.Clothing; +using Content.Shared.Clothing; using Content.Shared.Clothing.Components; using Content.Shared.Movement.Components; using Content.Shared.Inventory.Events; +using Content.Shared.SS220.Movement.Components; +using Content.Shared.SS220.Movement.Systems; namespace Content.Shared.Clothing.EntitySystems; public sealed class WaddleClothingSystem : EntitySystem { + [Dependency] private readonly TemporaryWaddleSystem _temporaryWaddleSystem = default!; //SS220 Temporary waddle status effect + public override void Initialize() { base.Initialize(); @@ -27,6 +31,15 @@ private void OnGotEquipped(EntityUid entity, WaddleWhenWornComponent comp, Cloth private void OnGotUnequipped(EntityUid entity, WaddleWhenWornComponent comp, ClothingGotUnequippedEvent args) { - RemComp(args.Wearer); + //RemComp(args.Wearer) //SS220 convert to comment + + //SS220 Temporary waddle status effect begin + if (HasComp(args.Wearer)) + { + _temporaryWaddleSystem.SetAnimationValues(args.Wearer); + } + else + RemComp(args.Wearer); + //SS220 Temporary waddle status effect end } } diff --git a/Content.Shared/Flash/Components/FlashOnTriggerComponent.cs b/Content.Shared/Flash/Components/FlashOnTriggerComponent.cs index 7658ca0ae5aa..2488d70ef09c 100644 --- a/Content.Shared/Flash/Components/FlashOnTriggerComponent.cs +++ b/Content.Shared/Flash/Components/FlashOnTriggerComponent.cs @@ -10,4 +10,8 @@ public sealed partial class FlashOnTriggerComponent : Component [DataField] public float Range = 1.0f; [DataField] public float Duration = 8.0f; [DataField] public float Probability = 1.0f; + // start 220 flash grenade stun + [DataField] public bool Stun = false; + [DataField] public float StunDuration = 3.0f; + // end 220 flash grenade stun } diff --git a/Content.Shared/SS220/Movement/Components/TemporaryWaddleComponent.cs b/Content.Shared/SS220/Movement/Components/TemporaryWaddleComponent.cs new file mode 100644 index 000000000000..ed47f23bf5d6 --- /dev/null +++ b/Content.Shared/SS220/Movement/Components/TemporaryWaddleComponent.cs @@ -0,0 +1,38 @@ +// © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt +using Robust.Shared.GameStates; +using System.Numerics; + +namespace Content.Shared.SS220.Movement.Components; + +/// +/// Exists for use as a status effect. +/// Entity with this component will be funny to waddle. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class TemporaryWaddleComponent : Component +{ + /// + /// How high should they hop during the waddle? Higher hop = more energy. + /// + [DataField, AutoNetworkedField] + public Vector2 HopIntensity = new(0, 0.125f); + + /// + /// How far should they rock backward and forward during the waddle? + /// Each step will alternate between this being a positive and negative rotation. More rock = more scary. + /// + [DataField, AutoNetworkedField] + public float TumbleIntensity = 10.0f; + + /// + /// How long should a complete step take? Less time = more chaos. + /// + [DataField, AutoNetworkedField] + public float AnimationLength = 0.66f; + + /// + /// How much shorter should the animation be when running? + /// + [DataField, AutoNetworkedField] + public float RunAnimationLengthMultiplier = 0.568f; +} diff --git a/Content.Shared/SS220/Movement/Systems/TemporaryWaddleSystem.cs b/Content.Shared/SS220/Movement/Systems/TemporaryWaddleSystem.cs new file mode 100644 index 000000000000..4cf6f05384d9 --- /dev/null +++ b/Content.Shared/SS220/Movement/Systems/TemporaryWaddleSystem.cs @@ -0,0 +1,58 @@ +// © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt +using Content.Shared.Clothing.Components; +using Content.Shared.Inventory; +using Content.Shared.Movement.Components; +using Content.Shared.SS220.Movement.Components; +using Content.Shared.StatusEffect; + +namespace Content.Shared.SS220.Movement.Systems; + +public sealed class TemporaryWaddleSystem : EntitySystem +{ + [ValidatePrototypeId] + public const string WaddlingStatusEffect = "TemporaryWaddle"; + + [Dependency] private readonly InventorySystem _inventorySystem = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnInit); + SubscribeLocalEvent(OnRemoved); + } + + private void OnInit(EntityUid uid, TemporaryWaddleComponent component, ComponentInit args) + { + EnsureComp(uid, out var waddleAnimComp); + + //Set values from TemporaryWaddleComponent if entity hasn`t clown shoes or hasn`t shoes in that slot + if (!_inventorySystem.TryGetSlotEntity(uid, "shoes", out var shoesUid) || !HasComp(shoesUid)) + { + SetAnimationValues(uid); + } + } + + private void OnRemoved(EntityUid uid, TemporaryWaddleComponent component, ComponentRemove args) + { + // If uid has clown shoes, then the WaddleAnimation doesn`t removed + if (_inventorySystem.TryGetSlotEntity(uid, "shoes", out var shoesUid) && HasComp(shoesUid)) + return; + + RemComp(uid); + } + + public void SetAnimationValues(EntityUid uid, TemporaryWaddleComponent? component = null) + { + if (!Resolve(uid, ref component)) + return; + + if (!TryComp(uid, out var waddleAnimComp)) + return; + + waddleAnimComp.AnimationLength = component.AnimationLength; + waddleAnimComp.HopIntensity = component.HopIntensity; + waddleAnimComp.RunAnimationLengthMultiplier = component.RunAnimationLengthMultiplier; + waddleAnimComp.TumbleIntensity = component.TumbleIntensity; + } +} diff --git a/Content.Shared/Wieldable/WieldableSystem.cs b/Content.Shared/Wieldable/WieldableSystem.cs index 61369be545b7..19438ac32fea 100644 --- a/Content.Shared/Wieldable/WieldableSystem.cs +++ b/Content.Shared/Wieldable/WieldableSystem.cs @@ -6,6 +6,7 @@ using Content.Shared.Interaction.Events; using Content.Shared.Inventory.VirtualItem; using Content.Shared.Item; +using Content.Shared.Movement.Pulling.Components; using Content.Shared.Movement.Pulling.Systems; using Content.Shared.Popups; using Content.Shared.Timing; @@ -197,7 +198,7 @@ public bool CanWield(EntityUid uid, WieldableComponent component, EntityUid user return false; } //ss220 weild fix begin - if (_pull.IsPulling(user)) + if (TryComp(user, out var puller) && _pull.IsPulling(user, puller) && puller.NeedsHands) return false; //ss220 weild fix end diff --git a/Resources/Changelog/Changelog220.yml b/Resources/Changelog/Changelog220.yml index 5d9f07e91199..80103dcfe76b 100644 --- a/Resources/Changelog/Changelog220.yml +++ b/Resources/Changelog/Changelog220.yml @@ -4472,3 +4472,158 @@ id: 355 time: '2024-08-05T23:18:02.0000000+00:00' url: https://github.com/SerbiaStrong-220/space-station-14/pull/1505 +- author: MiraHell + changes: + - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E \u043E\u0433\u043B\ + \u0443\u0448\u0435\u043D\u0438\u0435 \u0443 \u0441\u0432\u0435\u0442\u043E\u0448\ + \u0443\u043C\u043E\u0432\u043E\u0439 \u0433\u0440\u0430\u043D\u0430\u0442\u044B" + type: Add + id: 356 + time: '2024-08-06T18:29:59.0000000+00:00' + url: https://github.com/SerbiaStrong-220/space-station-14/pull/1530 +- author: inlef + changes: + - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0430 \u0432\u043E\u0437\ + \u043C\u043E\u0436\u043D\u043E\u0441\u0442\u044C \u043F\u0435\u0440\u0435\u043D\ + \u0435\u0441\u0442\u0438 \u043C\u043D\u043E\u0433\u043E\u0441\u0431\u043E\u0440\ + \u043D\u043E\u0441\u0442\u044C \u0441\u0442\u0435\u0440\u0438\u043B\u044C\u043D\ + \u044B\u043C\u0438 \u043F\u0430\u043B\u043E\u0447\u043A\u0430\u043C\u0438 \u0441\ + \ \u0448\u0430\u043D\u0441\u043E\u043C 15%" + type: Add + id: 357 + time: '2024-08-06T18:31:06.0000000+00:00' + url: https://github.com/SerbiaStrong-220/space-station-14/pull/1528 +- author: Lancevrot + changes: + - message: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0437\u0430\ + \u0440\u044F\u0434\u043E\u0432 EMP-\u0438\u043C\u043F\u043B\u0430\u043D\u0442\ + \u0430 \u043F\u043E\u0432\u044B\u0448\u0435\u043D\u043E \u0434\u043E 5." + type: Tweak + - message: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0437\u0430\ + \u0440\u044F\u0434\u043E\u0432 \u0441\u043A\u0440\u0430\u043C-\u0438\u043C\u043F\ + \u043B\u0430\u043D\u0442\u0430 \u043F\u043E\u0432\u044B\u0448\u0435\u043D\u043E\ + \ \u0434\u043E 12." + type: Tweak + - message: "\u0421\u0442\u043E\u0438\u043C\u043E\u0441\u0442\u044C \u043C\u0435\u0442\ + \u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u043D\u043E\u0436\u0435\u0439\ + \ \u0432 \u0430\u043F\u043B\u0438\u043D\u043A\u0435 \u0438\u0437\u043C\u0435\ + \u043D\u0435\u043D\u0430 \u0434\u043E 4 \u0422\u041A." + type: Tweak + - message: "\u0421\u0442\u043E\u0438\u043C\u043E\u0441\u0442\u044C \u0441\u0438\u0433\ + \u0430\u0440\u0435\u0442 \u0432 \u0430\u043F\u043B\u0438\u043D\u043A\u0435 \u0443\ + \u043C\u0435\u043D\u044C\u0448\u0435\u043D\u0430 \u0434\u043E 1 \u0422\u041A\ + ." + type: Tweak + - message: "\u0421\u0442\u043E\u0438\u043C\u043E\u0441\u0442\u044C \u0438\u043C\u043F\ + \u043B\u0430\u043D\u0442\u0430 \u043E\u0441\u0432\u043E\u0431\u043E\u0436\u0434\ + \u0435\u043D\u0438\u044F \u0432 \u0430\u043F\u043B\u0438\u043D\u043A\u0435 \u0443\ + \u043C\u0435\u043D\u044C\u0448\u0435\u043D\u0430 \u0434\u043E 3 \u0422\u041A\ + ." + type: Tweak + - message: "\u0421\u0442\u043E\u0438\u043C\u043E\u0441\u0442\u044C EMP-\u0438\u043C\ + \u043F\u043B\u0430\u043D\u0442\u0430 \u0432 \u0430\u043F\u043B\u0438\u043D\u043A\ + \u0435 \u0443\u043C\u0435\u043D\u044C\u0448\u0435\u043D\u0430 \u0434\u043E 1\ + \ \u0422\u041A." + type: Tweak + - message: "\u0421\u0442\u043E\u0438\u043C\u043E\u0441\u0442\u044C \u0438\u043C\u043F\ + \u043B\u0430\u043D\u0430\u0442-\u0430\u043F\u043B\u0438\u043D\u043A\u0430 \u0432\ + \ \u0430\u043F\u043B\u0438\u043D\u043A\u0435 \u0443\u043C\u0435\u043D\u044C\u0448\ + \u0435\u043D\u0430 \u0434\u043E 1 \u0422\u041A." + type: Tweak + - message: "\u0421\u0442\u043E\u0438\u043C\u043E\u0441\u0442\u044C \u0438\u043C\u043F\ + \u043B\u0430\u043D\u0430\u0442-\u0430\u043F\u043B\u0438\u043D\u043A\u0430 \u0432\ + \ \u0430\u043F\u043B\u0438\u043D\u043A\u0435 \u0443\u043C\u0435\u043D\u044C\u0448\ + \u0435\u043D\u0430 \u0434\u043E 1 \u0422\u041A." + type: Tweak + - message: "\u0421\u0442\u043E\u0438\u043C\u043E\u0441\u0442\u044C EVA \u0432 \u0430\ + \u043F\u043B\u0438\u043D\u043A\u0435 \u0443\u043C\u0435\u043D\u044C\u0448\u0435\ + \u043D\u0430 \u0434\u043E 1 \u0422\u041A." + type: Tweak + - message: "\u041E\u0431\u044A\u0435\u043C \u0431\u0430\u043B\u043B\u043E\u043D\u0430\ + \ \u0432 \u043C\u0430\u0433\u043D\u0438\u0442\u043D\u044B\u0445 \u0431\u043E\ + \u0442\u0438\u043D\u043A\u0430\u0445 \u0441\u0438\u043D\u0434\u0438\u043A\u0430\ + \u0442\u0430 \u0443\u0432\u0435\u043B\u0438\u0447\u0435\u043D \u0434\u043E 5." + type: Tweak + - message: "\u0423\u0440\u043E\u043D \u0442\u0443\u0440\u0435\u043B\u0438 \u0441\ + \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u0430 \u0443\u0432\u0435\u043B\u0438\ + \u0447\u0435\u043D \u0434\u043E 200." + type: Tweak + - message: "\u0411\u043E\u0435\u0437\u0430\u043F\u0430\u0441 \u0442\u0443\u0440\u0435\ + \u043B\u0438 \u0441\u0438\u043D\u0434\u0438\u043A\u0430\u0442\u0430 \u0443\u0432\ + \u0435\u043B\u0438\u0447\u0435\u043D \u0434\u043E 100." + type: Tweak + id: 358 + time: '2024-08-06T18:55:41.0000000+00:00' + url: https://github.com/SerbiaStrong-220/space-station-14/pull/1157 +- author: kirus59 + changes: + - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E \u043A\u043E\u0432\ + \u044B\u043B\u044F\u043D\u0438\u0435 (\u043A\u0430\u043A \u043F\u0440\u0438\ + \ \u043D\u043E\u0448\u0435\u043D\u0438\u0438 \u043A\u043B\u043E\u0443\u043D\u0441\ + \u043A\u0438\u0445 \u0442\u0443\u0444\u0435\u043B\u044C) \u043F\u0440\u0438\ + \ \u0432\u0434\u044B\u0445\u0430\u043D\u0438\u0438 \u0444\u0440\u0435\u0437\u043E\ + \u043D\u0430." + type: Add + id: 359 + time: '2024-08-06T19:57:04.0000000+00:00' + url: https://github.com/SerbiaStrong-220/space-station-14/pull/1527 +- author: Ady4 + changes: + - message: "\u0422\u0435\u043F\u0435\u0440\u044C \u0432\u0441\u0435 \u0444\u0438\ + \u0433\u0443\u0440\u043A\u0438 \u0438\u043C\u0435\u044E\u0442 \u0441\u0432\u043E\ + \u0438 \u0443\u043D\u0438\u043A\u0430\u043B\u044C\u043D\u044B\u0435 \u0444\u0440\ + \u0430\u0437\u044B. \u041C\u0438\u043C \u0441\u043A\u0440\u043E\u043C\u043D\u043E\ + \ \u043C\u043E\u043B\u0447\u0438\u0442." + type: Add + id: 360 + time: '2024-08-07T03:58:54.0000000+00:00' + url: https://github.com/SerbiaStrong-220/space-station-14/pull/1525 +- author: stalengd + changes: + - message: "\u0422\u043E\u0440\u0433\u043E\u0432\u0430\u044F \u0441\u0442\u0430\u043D\ + \u0446\u0438\u044F \u0442\u0435\u043F\u0435\u0440\u044C \u043D\u0435\u0434\u0432\ + \u0438\u0436\u0438\u043C\u0430" + type: Tweak + id: 361 + time: '2024-08-07T20:00:28.0000000+00:00' + url: https://github.com/SerbiaStrong-220/space-station-14/pull/1541 +- author: stalengd + changes: + - message: "\u0422\u0430\u0441\u043A\u0430\u043D\u0438\u0435 \u043F\u0440\u0435\u0434\ + \u043C\u0435\u0442\u043E\u0432 \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435\ + \ \u043C\u0435\u0448\u0430\u0435\u0442 \u0443\u043D\u0430\u0442\u0445\u0430\u043C\ + \ \u0431\u0440\u0430\u0442\u044C \u043E\u0440\u0443\u0436\u0438\u0435 \u0432\ + \ \u0434\u0432\u0435 \u0440\u0443\u043A\u0438" + type: Fix + id: 362 + time: '2024-08-07T20:15:19.0000000+00:00' + url: https://github.com/SerbiaStrong-220/space-station-14/pull/1539 +- author: Kerch91 + changes: + - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D \u0441\u0438\u043D\u0438\ + \u0439 \u043A\u043E\u0441\u0442\u044E\u043C \u0443\u0431\u043E\u0440\u0449\u0438\ + \u043A\u0430" + type: Add + id: 363 + time: '2024-08-07T20:15:57.0000000+00:00' + url: https://github.com/SerbiaStrong-220/space-station-14/pull/1540 +- author: MIXnikita + changes: + - message: "\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u044B \u0441\u043F\u0440\u0430\ + \u0439\u0442\u044B \u043A\u043B\u043E\u0443\u043D\u0441\u043A\u043E\u0439, \u043F\ + \u0435\u0441\u0447\u0430\u043D\u0438\u043A\u043E\u0432\u043E\u0439 \u0438 \u0434\ + \u0435\u0440\u0435\u0432\u044F\u043D\u043D\u043E\u0439 \u0441\u0442\u0435\u043D\ + \u044B." + type: Tweak + id: 364 + time: '2024-08-07T20:59:12.0000000+00:00' + url: https://github.com/SerbiaStrong-220/space-station-14/pull/1535 +- author: Kemran + changes: + - message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D \u0431\u0430\u0433\ + \ \u0441 \u0448\u043B\u0435\u043C\u043E\u043C \u0441\u043A\u0430\u0444\u0430\ + \u043D\u0434\u0440\u0430 \u0421\u0418." + type: Fix + id: 365 + time: '2024-08-07T21:04:53.0000000+00:00' + url: https://github.com/SerbiaStrong-220/space-station-14/pull/1536 diff --git a/Resources/Locale/en-US/store/uplink-catalog.ftl b/Resources/Locale/en-US/store/uplink-catalog.ftl index 47eb67161936..4b6bd17f20b0 100644 --- a/Resources/Locale/en-US/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/store/uplink-catalog.ftl @@ -174,13 +174,15 @@ uplink-freedom-implanter-name = Freedom Implanter uplink-freedom-implanter-desc = Get away from those nasty sec officers with this three use implant! uplink-scram-implanter-name = Scram Implanter -uplink-scram-implanter-desc = A 2-use implant which teleports you within a large radius. Attempts to teleport you onto an unobstructed tile. May sometimes fail to do so. Life insurance not included. +#SS220-underused-uplinks-stuff +uplink-scram-implanter-desc = A 12-use implant which teleports you within a medium radius. Attempts to teleport you onto an unobstructed tile. May sometimes fail to do so. Life insurance not included. uplink-dna-scrambler-implanter-name = DNA Scrambler Implanter uplink-dna-scrambler-implanter-desc = A single use implant that can be activated to modify your DNA and give you a completely new look. uplink-emp-implanter-name = EMP Implanter -uplink-emp-implanter-desc = Detonates a small EMP pulse on activation that drains nearby electronics of their power, can be used three times before the internal battery runs out. +#SS220-underused-uplinks-stuff +uplink-emp-implanter-desc = Detonates a small EMP pulse on activation that drains nearby electronics of their power, can be used five times before the internal battery runs out. uplink-macro-bomb-implanter-name = Macro Bomb Implanter uplink-macro-bomb-implanter-desc = Inject this and on death you'll create a large explosion. Huge team casualty cost, use at own risk. Replaces internal micro bomb. diff --git a/Resources/Locale/ru-RU/ss220/actions/spider-actions.ftl b/Resources/Locale/ru-RU/ss220/actions/spider-actions.ftl new file mode 100644 index 000000000000..c1402c249b27 --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/actions/spider-actions.ftl @@ -0,0 +1,37 @@ +action-speech-spell-spider = Кссс...!?? + + +ent-ActionSpawnSpiderEggDrone = Яйцо охранного паука + .desc = Он же трутень, может строить кристаллы и стены. + +ent-ActionSpawnSpiderEggHunter = Яйцо паука охотника + +ent-ActionSpawnSpiderEggGhost = Яйцо паука призрака + +ent-ActionSpawnSpiderEggShooter = Яйцо паука стрелка + + +ent-ActionSpawnSpiderLittle = Выпустить паучат + .desc = Выпускает трёх маленьких пауков, которые атакуют вашу добычу. Пауки исчезают через 20 секунд. + + +ent-ActionSpawnSpiderCrystal = Создать осколок кристалла + .desc = Осколок, который служит подсветкой для пауков. + + +ent-ActionSpawnSpiderWallWeb = Создать стену + +ent-ActionSpawnSpiderWallWebDurable = Создать прочную стену + + +ent-ActionSpawnSingleSpiderWebShortDelay = Пустить паутину + .desc = Создаёт паутину, которая замедляет вашу добычу. + +ent-ActionSpawnSingleSpiderWebLongDelay = { ent-ActionSpawnSingleSpiderWebShortDelay } + .desc = { ent-ActionSpawnSingleSpiderWebShortDelay.desc } + +ent-ActionSpawnSingleSpiderWebDurable = Пустить прочную паутину + .desc = { ent-ActionSpawnSingleSpiderWebShortDelay.desc } + +ent-ActionSpawnSingleSpiderWebClown = Пустить клоунскую паутину + .desc = { ent-ActionSpawnSingleSpiderWebShortDelay.desc } diff --git a/Resources/Locale/ru-RU/ss220/clothing/Jumpsuit/jumpsuit.ftl b/Resources/Locale/ru-RU/ss220/clothing/Jumpsuit/jumpsuit.ftl index c60369d38596..7aa245a00deb 100644 --- a/Resources/Locale/ru-RU/ss220/clothing/Jumpsuit/jumpsuit.ftl +++ b/Resources/Locale/ru-RU/ss220/clothing/Jumpsuit/jumpsuit.ftl @@ -28,4 +28,6 @@ ent-ClothingUniformJumpsuitTrustedLawyer = костюм доверенного .desc = Шикарный костюм для тех, кто следит за безупречным исполнением законов компании. Говорят, что вы способны навязать свои требования даже самому Богу. ent-ClothingUniformJumpsuitWarehouseman = рабочий комбинезон заведующего складом .desc = Практичный, удобный, не стесняющий движения и главное стильный комбинезон. У вас с ним связаны плохие воспоминания о прошлом начальнике +ent-ClothingUniformJumpsuitJanitorBlue = синий костюм уборщика + .desc = Костюм таинственного уборщика. diff --git a/Resources/Locale/ru-RU/ss220/consumable/food.ftl b/Resources/Locale/ru-RU/ss220/consumable/food.ftl new file mode 100644 index 000000000000..b21ac44f2b5f --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/consumable/food.ftl @@ -0,0 +1,3 @@ +ent-EggshellsSpider = скорлупа + .desc = Ты ходишь по ней, приятель. + .suffix = Улей пауков diff --git a/Resources/Locale/ru-RU/ss220/datasets/figurines.ftl b/Resources/Locale/ru-RU/ss220/datasets/figurines.ftl new file mode 100644 index 000000000000..7750aca4afe9 --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/datasets/figurines.ftl @@ -0,0 +1,226 @@ +figurines-hop-1 = Документы, пожалуйста. +figurines-hop-2 = Ты уволен! + +figurines-passenger-1 = Как поменять руки? +figurines-passenger-2 = Вызовите эвак! + +figurines-greytider-1 = Чувак, эта вечеринка отстой. Я ненавижу этих людей. +figurines-greytider-2 = Ой-ой-ой, а кто это у нас потерял станбатон? +figurines-greytider-3 = Робаст! +figurines-greytider-4 = Я не я если я без ящика инструментов. +figurines-greytider-5 = Гейт - это миф. Мне так дедушка сказал. + +figurines-clown-1 = Хонк! +figurines-clown-2 = Банан! +figurines-clown-3 = Мыло! +figurines-clown-4 = Если у Главы Персонала только один клоун, то у Главы Службы Безопасности - целый отдел! +figurines-clown-5 = Я ведь никого не раздражаю? + +figurines-holoclown-1 = Я просто помогаю моему старшему брату + +figurines-mime-1 = ... +figurines-mime-2 = ... +figurines-mime-3 = .... +figurines-mime-4 = ....... +figurines-mime-5 = ................ + +figurines-musician-1 = Разбешавшись прыгну со скалы! +figurines-musician-2 = 40 лет уж под наркозом я работал ХоСом. Не юристом, не культисом... + +# figurines-boxer- + +figurines-captain-1 = Многоуважаемые сотрудники станции, диск ядерной аутенфикации надежно спрятан у меня в жопе! +figurines-captain-2 = Слава НТ! + +figurines-hos-1 = Космический закон? Вы о чем? +figurines-hos-2 = Задержать клоуна по 307. + +figurines-warden-1 = Бриг - мой дом. Мой дом - бриг. Мой бриг - дом. Стоп, что? + +figurines-detective-1 = Эта станция прогнила.. + +figurines-security-1 = Я есть закон. +figurines-security-2 = У тебя есть два права: хранить молчание и поплакать об этом. + +figurines-lawyer-1 = Звоните Соулу! +figurines-lawyer-2 = Протестую! + +figurines-cargotech-1 = Дракон на станции! +figurines-cargotech-2 = Я продал станцию! +figurines-cargotech-3 = Заказ на мозги? Откуда мне их взять? + +figurines-salvage-1 = Мегафауна? Не смешите робаста! + +figurines-qm-1 = Кто украл шаттл?! +figurines-qm-2 = Да мне эти ваши пушки дороже НТ! +figurines-qm-3 = Я не покупал эти пушки. +figurines-qm-4 = Один ящик с игрушками для меня и моего лучшего друга клоуна! +figurines-qm-5 = Настал час траты денег на азартные игры! +figurines-qm-6 = Слава Каргонии! +figurines-qm-7 = Без формы не приму. + +figurines-ce-1 = Все на брифинг! +figurines-ce-2 = Провода на соляры! +figurines-ce-3 = Увы. +figurines-ce-4 = Я выпустил сингулярность. Теперь на одну проблему стало меньше. +figurines-ce-5 = Тесла вышла. + +figurines-engineer-1 = Я выпустил сингулярность. Теперь на одну проблему стало меньше. +figurines-engineer-2 = Тесла вышла! +figurines-engineer-3 = А этот ДАМ с вами в одной комнате? + +figurines-atmostech-1 = Я залил плазму в дистру. Где мои авации? +figurines-atmostech-2 = Камера для сжигания как раз тебя заждалась. +figurines-atmostech-3 = Бухать в бар! +figurines-atmostech-4 = Тритиум.. Фрезон.. +figurines-atmostech-5 = Слава Атмосии! + +figurines-rd-1 = Взрываем всех боргов! +figurines-rd-2 = 3 уровень вооружеия? Ну нахер.. + +figurines-scientist-1 = Ну кто-то же должен был сделать взрывчатку! +figurines-scientist-2 = Он сам меня попросил сделать себя боргом. Правда он был связан и с кляпом во рту. Но молчание ведь знак согласия! +figurines-scientist-3 = Карп в научном отделе! +figurines-scientist-4 = Взрыв в научном отделе! +figurines-scientist-5 = Аномалия взорвалась! Кто-же мог быть в этом виноват? + +figurines-cmo-1 = Датчики в третий режим. +figurines-cmo-2 = Когда там наркотики сварят? + +figurines-chemist-1 = Забери свои гребаные таблетки и проваливай! + +figurines-paramedic-1 = Мертвые люди - это весело. Они не могут кричать, пока ты колишь им абмузол.. +figurines-paramedic-2 = Нет медикаментов, НЕТУ! Не бинтов не ваты! Кто им залечит их раны? Только я им их залечу! + +figurines-doctor-1 = Пациент уже мертв. +figurines-doctor-2 = Увы. Ему поможет только Бог. Наша задача организовать их встречу. +figurines-doctor-3 = Передозировка делает пш-пш.. + +figurines-librarian-1 = Один день спустя.. +figurines-librarian-2 = Тишина! + +figurines-chaplain-1 = Не хотел бы ты присоединиться к моей сект.. религии! +figurines-chaplain-2 = Бог, если ты слышишь - помоги мне! +figurines-chaplain-3 = Святые угодники! Ну нахер.. + +figurines-chef-1 = Я надеюсь, что это была не человечина.. + +figurines-bartender-1 = Где же моя обезьянка.. +figurines-bartender-2 = Офицеры не хотят пить. Они хотят бухать! + +figurines-botanist-1 = Какая дурь, офицер, что ты несешь! +figurines-botanist-2 = Чувак, я походу настройки открыл.. + +figurines-janitor-1 = Клоун украл мое мыло. Опять. +figurines-janitor-2 = Смотри на знаки, тупица. + +figurines-nukie-1 = У меня диск! +figurines-nukie-2 = Виски, Эхо, Виски.. +figurines-nukie-3 = Рико, мы сделаем кабум? Кабум! +figurines-nukie-4 = Какой там у нас код? + +figurines-nukie-elite-1 = Ни слова по корпоратски. +figurines-nukie-elite-2 = Ну и денек. +figurines-nukie-elite-3 = Ребята, вы живы? + +figurines-nukie-commander-1 = Заберите этот сраный диск из жопы этого капитана! + +figurines-footsoldier-1 = Ты сильный? Да! Ты матерый? Да! Ты даже не знаешь, что такое сдаваться? Я даже не знаю, что такое матерый.. +figurines-footsoldier-2 = Кого ты выберешь? Нас или их? Их или сас.. + +figurines-wizard-1 = Экспермуарус! +figurines-wizard-2 = Люмус максима! +figurines-wizard-3 = Решение загадки ВУСИ дает вам бесплатный купон на мердж. Жаль не многие с этим справляются.. +figurines-wizard-4 = Фаергоооооооол! + +figurines-space-dragon-1 = Рыба поглотит станцию. + +# figurines-queen + +figurines-rat-king-1 = Дайте мне немного еды, как поняли? +figurines-rat-king-2 = Забудьте. +figurines-rat-king-3 = Лупи их! + +figurines-rat-servant-1 = Понял! +figurines-rat-servant-2 = Дело сделано. + +figurines-mouse-1 = Пип! +figurines-mouse-2 = Сквик! +figurines-mouse-3 = Чуу! +figurines-mouse-4 = Ееее! +figurines-mouse-5 = Пииип! +figurines-mouse-6 = Фьип! +figurines-mouse-7 = Хеееп! + +figurines-slime-1 = Блюмп. +figurines-slime-2 = Блюмблип? +figurines-slime-3 = Блюююююмп! + +figurines-hamlet-1 = Пип! +figurines-hamlet-2 = Сквик! +figurines-hamlet-3 = Чуу! +figurines-hamlet-4 = Ееее! +figurines-hamlet-5 = Пииип! +figurines-hamlet-6 = Фьип! +figurines-hamlet-7 = Хеееп! +figurines-hamlet-8 = Только не в микроволновку! + +# SS220 Add locale for all figurines begin + +figurines-boxer-1 = Первое правило бойцовского клуба - никому не говори о бойцовском клубе. +figurines-boxer-2 = Второе правило бойцовского клуба - ознакомься с первым правилом. +figurines-boxer-3 = Пархай как бабочка - жаль как пчела. +figurines-boxer-4 = Хватит там по углам курить, шабить - занимайтесь спортом! +figurines-boxer-5 = Я помню только победы, потому что поражения заканчивались нокаутом. + +figurines-queen-1 = Так-так-таак.. +figurines-queen-2 = Никто не видел здесь некоего оператора? + +figurines-griffin-1 = Я в Тбилиси воровал немало.. +figurines-griffin-2 = Ты мне мозги не делай, сколько? +figurines-griffin-3 = В тюрьме два стула: один с НТ, другой с Синдикатом. На первый сядешь - рабом станешь, на второй станешь - вообще никем не станешь. Кудам сам сядешь, куда брата посадишь? + +figurines-owl-1 = Увульп! +figurines-owl-2 = Бетмен - пародия на блетмена. +figurines-owl-3 = Знак Вайдер хуже его брата - Дарта. + +figurines-sceleton-1 = Терка не лучшее средство для снятия стресса. +figurines-sceleton-2 = Однажды, я найду тебя в технических тоннелях. Теперь ходи бойся. +figurines-sceleton-3 = Повар, когда жрать? + +figurines-thief-1 = Когда уже можно будет воровать? +figurines-thief-2 = Айди карта манит меня.. +figurines-thief-3 = Сборник анекдотов про Клоуна у Главы Службы Безопасности в нижнем шкафчике. + +# SS220 Add locale for all figurines end + +# SS220 Toys +figurines-admiral-1 = Севастополь - великая станция. Правда я где-то уже это слышал.. +figurines-admiral-2 = Однажды к нам на собрание зашел сын основателя НаноТрейзен. Лучше не знать о последствиях, которые были для ответсвенного за ту станцию.. +figurines-admiral-3 = Чай. Где же мой чай.. + +figurines-blueshield-1 = Никто не видел мои трекеры? Мало-ли, как в прошлый раз трекероведы забрали.. +figurines-blueshield-2 = Уважаемый глава, не соизволите ли вы быть чипированным? +figurines-blueshield-3 = Капитан, когда бухать? + +figurines-diplomat-1 = Я протестую против запрета ксенофобии. Или я должен говорить наоборот? +figurines-diplomat-2 = Ваши дипломатические вопросы явно не подкреплены бутылочкой хорошего виски. +figurines-diplomat-3 = Кхе-кхе.. Дорогие друзья! + +figurines-fieldofficercentcom-1 = Не по форме написано. Внизу заявления забыли прикрепить выписку из JSC UEBA о подтвержении вашей дееспособности. +figurines-fieldofficercentcom-2 = Капитан, за вашу халатность по отношению к инициативе клоуна быть Главой Персонала вы оштрафованы годовой зарплатой. +figurines-fieldofficercentcom-3 = Совет глав! + +figurines-officercentcom-1 = НТ настолько любит сотрудников станции Севастополь, что даже позаботились об отсутствии капсул для сна. А я очень хочу спать! +figurines-officercentcom-2 = Когда клоун отправит скан своей пятой точки? +figurines-officercentcom-3 = JSC UEBA - лучшее решение вашего квартирного вопроса! + +figurines-seniorscientist-1 = Вы допустили потерю дорогостоющего обмундирования! Оно будет вычтено из вашей зарплаты и вы будете на гейте 510 лет! Ведь вам потребуется именно столько лет, чтобы отработать стоимость РИПЛИ, которую ВЫ потеряли! +figurines-seniorscientist-2 = Надеюсь, сегодня никто не будет взрывать аномалию. +figurines-seniorscientist-3 = Научно доказано, что лоботомия ассистентов является общественно полезным деянием. Кто будет первым? + +figurines-zombie-1 = Зомби начинают свое нашествие.. Буэээ! +figurines-zombie-2 = Мозги. Мне нужны мозги. +figurines-zombie-3 = Похоже это была не аскорбинка.. + +# SS220 Add locale for all figurines end diff --git a/Resources/Locale/ru-RU/ss220/headset-component.ftl b/Resources/Locale/ru-RU/ss220/headset-component.ftl index bf389ca080ea..ccd3b8ac5af2 100644 --- a/Resources/Locale/ru-RU/ss220/headset-component.ftl +++ b/Resources/Locale/ru-RU/ss220/headset-component.ftl @@ -6,3 +6,4 @@ chat-radio-omega = Омега chat-radio-traders = Торговцы chat-radio-honk = Хонк-сквад chat-radio-internal-affairs = Внутренние дела +chat-radio-hive = Улей diff --git a/Resources/Locale/ru-RU/ss220/materials/crystal-shard.ftl b/Resources/Locale/ru-RU/ss220/materials/crystal-shard.ftl new file mode 100644 index 000000000000..7632aa3a2511 --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/materials/crystal-shard.ftl @@ -0,0 +1,2 @@ +ent-ShardCrystalBlueXeno = осколок синего хрусталя + .desc = Маленький кусочек хрусталя. diff --git a/Resources/Locale/ru-RU/ss220/misc/spider-eggs.ftl b/Resources/Locale/ru-RU/ss220/misc/spider-eggs.ftl new file mode 100644 index 000000000000..b3f5cdc83083 --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/misc/spider-eggs.ftl @@ -0,0 +1,15 @@ +ent-SpiderEggHunter = яйцо паука охотника + .desc = Это драгоценный камень? Это яйцо? Оно выглядит дорогим. + .suffix = Улей пауков + +ent-SpiderEggDrone = яйцо охранного паука + .desc = { ent-SpiderEggHunter.desc } + .suffix = { ent-SpiderEggHunter.suffix } + +ent-SpiderEggGhost = яйцо паука призрака + .desc = { ent-SpiderEggHunter.desc } + .suffix = { ent-SpiderEggHunter.suffix } + +ent-SpiderEggShooter = яйцо паука стрелка + .desc = { ent-SpiderEggHunter.desc } + .suffix = { ent-SpiderEggHunter.suffix } diff --git a/Resources/Locale/ru-RU/ss220/misc/spider-implants.ftl b/Resources/Locale/ru-RU/ss220/misc/spider-implants.ftl new file mode 100644 index 000000000000..43b6e542e5eb --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/misc/spider-implants.ftl @@ -0,0 +1,34 @@ +ent-LightImplantSpiderEggDrone = Яйцо охранного паука + .desc = Он же трутень, может строить кристаллы и стены. + +ent-LightImplantSpiderEggHunter = Яйцо паука охотника + +ent-LightImplantSpiderEggGhost = Яйцо паука призрака + +ent-LightImplantSpiderEggShooter = Яйцо паука стрелка + + +ent-LightImplantSpiderLittle = Выпустить паучат + .desc = Выпускает трёх маленьких пауков, которые атакуют вашу добычу. Пауки исчезают через 20 секунд. + + +ent-LightImplantSpiderCrystal = Создать осколок кристалла + .desc = Осколок, который служит подсветкой для пауков. + + +ent-LightImplantSpiderWallWeb = Создать стену + +ent-LightImplantSpiderWallWebDurable = Создать прочную стену + + +ent-LightImplantSingleSpiderWebShortDelay = Пустить паутину + .desc = Создаёт паутину, которая замедляет вашу добычу. + +ent-LightImplantSingleSpiderWebLongDelay = { ent-LightImplantSingleSpiderWebShortDelay } + .desc = { ent-LightImplantSingleSpiderWebShortDelay.desc } + +ent-LightImplantSingleSpiderWebDurable = Пустить прочную паутину + .desc = { ent-LightImplantSingleSpiderWebShortDelay.desc } + +ent-LightImplantSingleSpiderWebClown = Пустить клоунскую паутину + .desc = { ent-LightImplantSingleSpiderWebShortDelay.desc } diff --git a/Resources/Locale/ru-RU/ss220/misc/spider-web.ftl b/Resources/Locale/ru-RU/ss220/misc/spider-web.ftl new file mode 100644 index 000000000000..af70bee9639e --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/misc/spider-web.ftl @@ -0,0 +1,11 @@ +ent-SpiderWebFragile = паутина + .desc = Липкая паутина.. Интересно, откуда она? + .suffix = Улей пауков + +ent-SpiderWebDurable = прочная паутина + .desc = { ent-SpiderWebFragile.desc } + .suffix = { ent-SpiderWebFragile.suffix } + +ent-SpiderWebDespawned = паутина + .desc = { ent-SpiderWebFragile.desc } + .suffix = { ent-SpiderWebFragile.suffix } diff --git a/Resources/Locale/ru-RU/ss220/mobs/spider-queen.ftl b/Resources/Locale/ru-RU/ss220/mobs/spider-queen.ftl new file mode 100644 index 000000000000..f995340ad699 --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/mobs/spider-queen.ftl @@ -0,0 +1,26 @@ +spider-roy-name = Паук улья +spider-roy-desc = Ваша задача — построить максимально большой улей. Защищайте свою королеву всеми возможными способами. Не позволяйте причинить вред потомству. Экипаж - ваша пища. + +ent-MobSpiderSpaceQueen = королева пауков + .desc = Он так светится, что выглядит опасным. + .suffix = Улей пауков + +ent-MobSpiderSpaceDrone = паук охранник + .desc = { ent-MobSpiderSpaceQueen.desc } + .suffix = { ent-MobSpiderSpaceQueen.suffix } + +ent-MobSpiderSpaceHunter = паук охотник + .desc = { ent-MobSpiderSpaceQueen.desc } + .suffix = { ent-MobSpiderSpaceQueen.suffix } + +ent-MobSpiderSpaceGhost = паук призрак + .desc = { ent-MobSpiderSpaceQueen.desc } + .suffix = { ent-MobSpiderSpaceQueen.suffix } + +ent-MobSpiderSpaceShooter = паук стрелок + .desc = { ent-MobSpiderSpaceQueen.desc } + .suffix = { ent-MobSpiderSpaceQueen.suffix } + +ent-MobSpiderSpaceLittle = паучок + .desc = { ent-MobSpiderSpaceQueen.desc } + .suffix = { ent-MobSpiderSpaceQueen.suffix } diff --git a/Resources/Locale/ru-RU/ss220/strucrure/spider-structures.ftl b/Resources/Locale/ru-RU/ss220/strucrure/spider-structures.ftl new file mode 100644 index 000000000000..0439b9e7682d --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/strucrure/spider-structures.ftl @@ -0,0 +1,19 @@ +ent-TableWebSpiders = каркас стены из паутины + .desc = Очень гладкий и удивительно прочный. + .suffix = Улей пауков + +ent-FloorTileItemWebSpiders = конструкция из паутины + .desc = { ent-TableWebSpiders.desc } + .suffix = { ent-TableWebSpiders.suffix } + +ent-FloorTileItemWebSpidersDurable = конструкция из паутины + .desc = { ent-TableWebSpiders.desc } + .suffix = { ent-TableWebSpiders.suffix } + +ent-TableWebSpidersDurable = каркас стены из паутины + .desc = { ent-TableWebSpiders.desc } + .suffix = { ent-TableWebSpiders.suffix } + +ent-WallWebDurable = прочная паутинная стена + .desc = Удерживает паучат внутри, а ассистентов снаружи. + .suffix = { ent-TableWebSpiders.suffix } diff --git a/Resources/Locale/ru-RU/ss220/weapons/projectiles.ftl b/Resources/Locale/ru-RU/ss220/weapons/projectiles.ftl new file mode 100644 index 000000000000..af525be207de --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/weapons/projectiles.ftl @@ -0,0 +1 @@ +ent-PoisonousAcid = ядовитый плевой diff --git a/Resources/Locale/ru-RU/store/uplink-catalog.ftl b/Resources/Locale/ru-RU/store/uplink-catalog.ftl index b58c8164abb0..78c1f88cad9b 100644 --- a/Resources/Locale/ru-RU/store/uplink-catalog.ftl +++ b/Resources/Locale/ru-RU/store/uplink-catalog.ftl @@ -118,11 +118,13 @@ uplink-storage-implanter-desc = Прячьте предметы внутри с uplink-freedom-implanter-name = Имплантер Свобода uplink-freedom-implanter-desc = Сбегите от этих противных сотрудников СБ при помощи этого импланта, который можно использовать аж три раза! uplink-scram-implanter-name = Имплантер Побег -uplink-scram-implanter-desc = Двухразовый имплант, который телепортирует вас в большом радиусе. Попытается телепортировать вас на незанятое место. Иногда сбоит. Страхование жизни не прилагается. +#SS220-underused-uplinks-stuff +uplink-scram-implanter-desc = Имеет 12 зарядов, телепортирует вас в небольшом радиусе. Попытается телепортировать вас на незанятое место. Иногда сбоит. Страхование жизни не прилагается. uplink-dna-scrambler-implanter-name = Имплантер Миксер ДНК uplink-dna-scrambler-implanter-desc = Одноразовый имплант, который можно активировать для перемешивания ДНК и приобретения совершенно нового облика. uplink-emp-implanter-name = Имплантер ЭМИ -uplink-emp-implanter-desc = При активации создаёт небольшой ЭМИ, который обесточивает находящуюся рядом электронику; может быть использован три раза, прежде чем разрядится внутренняя батарея. +#SS220-underused-uplinks-stuff +uplink-emp-implanter-desc = При активации создаёт небольшой ЭМИ, который обесточивает находящуюся рядом электронику; может быть использован пять раз, прежде чем разрядится внутренняя батарея. uplink-macro-bomb-implanter-name = Имплантер Макробомба uplink-macro-bomb-implanter-desc = Вколите его, и после смерти вы устроите большой взрыв. Большой риск для союзников, используйте на свой страх и риск. Заменяет Микробомбу. uplink-uplink-implanter-name = Имплантер Аплинк diff --git a/Resources/Maps/SS220/Shuttles/trading_outpost.yml b/Resources/Maps/SS220/Shuttles/trading_outpost.yml index e86218558693..e4cec15e60aa 100644 --- a/Resources/Maps/SS220/Shuttles/trading_outpost.yml +++ b/Resources/Maps/SS220/Shuttles/trading_outpost.yml @@ -64,6 +64,8 @@ entities: - type: OccluderTree - type: SpreaderGrid - type: Shuttle + linearDamping: 99999 + angularDamping: 99999999 - type: GridPathfinding - type: Gravity gravityShakeSound: !type:SoundPathSpecifier diff --git a/Resources/Prototypes/Actions/types.yml b/Resources/Prototypes/Actions/types.yml index 1375dc39790e..a7544138c938 100644 --- a/Resources/Prototypes/Actions/types.yml +++ b/Resources/Prototypes/Actions/types.yml @@ -122,7 +122,7 @@ components: - type: InstantAction checkCanInteract: false - charges: 3 + charges: 5 #SS220-underused-uplinks-stuff begin useDelay: 5 itemIconStyle: BigAction priority: -20 @@ -134,11 +134,14 @@ - type: entity id: ActionActivateScramImplant name: SCRAM! - description: Randomly teleports you within a large distance. + #SS220-underused-uplinks-stuff begin + description: Randomly teleports you within a medium distance. + noSpawn: true + #SS220-underused-uplinks-stuff end components: - type: InstantAction checkCanInteract: false - charges: 2 + charges: 12 #SS220 changed useDelay: 5 itemIconStyle: BigAction priority: -20 diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index cce204b4e534..cdaa657c8c36 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -72,7 +72,7 @@ icon: { sprite: /Textures/Objects/Storage/boxicons.rsi, state: throwing_knives } productEntity: ThrowingKnivesKit cost: - Telecrystal: 6 + Telecrystal: 4 #SS220-underused-uplinks-stuff categories: - UplinkWeaponry @@ -648,7 +648,7 @@ description: uplink-cigarettes-desc productEntity: CigPackSyndicate cost: - Telecrystal: 2 + Telecrystal: 1 #SS220-underused-uplinks-stuff categories: - UplinkChemicals @@ -1126,7 +1126,7 @@ icon: { sprite: /Textures/Actions/Implants/implants.rsi, state: freedom } productEntity: FreedomImplanter cost: - Telecrystal: 5 + Telecrystal: 3 #SS220-underused-uplinks-stuff categories: - UplinkImplants @@ -1159,7 +1159,7 @@ icon: { sprite: /Textures/Objects/Magic/magicactions.rsi, state: shield } productEntity: EmpImplanter cost: - Telecrystal: 2 + Telecrystal: 1 #SS220-underused-uplinks-stuff categories: - UplinkImplants @@ -1226,7 +1226,7 @@ icon: { sprite: /Textures/Objects/Devices/communication.rsi, state: old-radio } productEntity: UplinkImplanter cost: - Telecrystal: 2 + Telecrystal: 1 #SS220-underused-uplinks-stuff categories: - UplinkImplants conditions: @@ -1355,7 +1355,7 @@ icon: { sprite: /Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi, state: icon } productEntity: ClothingBackpackDuffelSyndicateEVABundle cost: - Telecrystal: 2 + Telecrystal: 1 #SS220-underused-uplinks-stuff categories: - UplinkWearables diff --git a/Resources/Prototypes/Corvax/Entities/Clothing/Uniforms/jumpskirts.yml b/Resources/Prototypes/Corvax/Entities/Clothing/Uniforms/jumpskirts.yml index 9afbf973a4d5..c80740ce4ff8 100644 --- a/Resources/Prototypes/Corvax/Entities/Clothing/Uniforms/jumpskirts.yml +++ b/Resources/Prototypes/Corvax/Entities/Clothing/Uniforms/jumpskirts.yml @@ -41,9 +41,9 @@ description: I don't lose things. I place things in locations which later elude me. components: - type: Sprite - sprite: Corvax/Clothing/Uniforms/Jumpskirt/psychologist.rsi + sprite: SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi #SS220-Psychologist-Resprite - type: Clothing - sprite: Corvax/Clothing/Uniforms/Jumpskirt/psychologist.rsi + sprite: SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi #SS220-Psychologist-Resprite - type: entity parent: ClothingUniformSkirtBase diff --git a/Resources/Prototypes/Datasets/figurines.yml b/Resources/Prototypes/Datasets/figurines.yml index 8ad651c13451..9aa582d4cd69 100644 --- a/Resources/Prototypes/Datasets/figurines.yml +++ b/Resources/Prototypes/Datasets/figurines.yml @@ -40,11 +40,14 @@ prefix: figurines-musician- count: 2 -# - type: localizedDataset # TODO add something -# id: FigurinesBoxer -# values: -# prefix: figurines-boxer- -# count: 0 +# SS220 Add locale for all figurines begin +- type: localizedDataset + id: FigurinesBoxer + values: + prefix: figurines-boxer- + count: 5 +# SS220 Add locale for all figurines end + - type: localizedDataset id: FigurinesCaptain @@ -226,11 +229,13 @@ prefix: figurines-space-dragon- count: 1 -# - type: localizedDataset # TODO add something -# id: FigurinesQueen -# values: -# prefix: figurines-queen- -# count: 0 +# SS220 Add locale for all figurines begin +- type: localizedDataset + id: FigurinesQueen + values: + prefix: figurines-queen- + count: 2 +# SS220 Add locale for all figurines end - type: localizedDataset id: FigurinesRatKing diff --git a/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml b/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml index b355a4f8b046..03689d8081d8 100644 --- a/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml +++ b/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml @@ -309,6 +309,12 @@ sprite: Clothing/Back/Backpacks/syndicate.rsi - type: ExplosionResistance damageCoefficient: 0.1 + #SS220-underused-uplinks-stuff begin + - type: Storage + grid: + - 0,0,7,4 + maxItemSize: Huge + #SS220-underused-uplinks-stuff end #Special - type: entity diff --git a/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml b/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml index 04a6c4c6ece5..d2d38e3f80eb 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml @@ -89,11 +89,14 @@ - type: Sprite sprite: Clothing/Head/Hardsuits/engineering-white.rsi - type: Clothing - clothingVisuals: - head: - - state: equipped-head - - state: equipped-head-unshaded - shader: unshaded +#SS220-Chief-Helmet-FIX-Begin + # clothingVisuals: + # head: + # - state: equipped-head + # - state: equipped-head-unshaded + # shader: unshaded + sprite: Clothing/Head/Hardsuits/engineering-white.rsi +#SS220-Chief-Helmet-FIX-End - type: PointLight color: "#daffad" radius: 6 diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/magboots.yml b/Resources/Prototypes/Entities/Clothing/Shoes/magboots.yml index 2d3c6636128a..e0e0033a3525 100644 --- a/Resources/Prototypes/Entities/Clothing/Shoes/magboots.yml +++ b/Resources/Prototypes/Entities/Clothing/Shoes/magboots.yml @@ -91,13 +91,15 @@ - type: Clothing sprite: Clothing/Shoes/Boots/magboots-syndicate.rsi - type: ClothingSpeedModifier - walkModifier: 0.95 - sprintModifier: 0.9 + #SS220-underused-uplinks-stuff begin + walkModifier: 1 + sprintModifier: 1 + #SS220-underused-uplinks-stuff end - type: GasTank outputPressure: 42.6 air: - # 2 minutes of thrust - volume: 0.75 + # SS220 fix + volume: 5 temperature: 293.15 moles: - 0.153853429 # oxygen diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml index 9ef8da875ade..21fd0e645056 100644 --- a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml +++ b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml @@ -916,9 +916,9 @@ description: I don't lose things. I place things in locations which later elude me. components: - type: Sprite - sprite: Clothing/Uniforms/Jumpsuit/psychologist.rsi + sprite: SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi #SS220-Psychologist-Resprite - type: Clothing - sprite: Clothing/Uniforms/Jumpsuit/psychologist.rsi + sprite: SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi #SS220-Psychologist-Resprite - type: entity parent: ClothingUniformBase diff --git a/Resources/Prototypes/Entities/Mobs/Species/base.yml b/Resources/Prototypes/Entities/Mobs/Species/base.yml index e2a89adc0bf6..bc576482ce16 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/base.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/base.yml @@ -134,6 +134,7 @@ - Flashed - RadiationProtection - Drowsiness + - TemporaryWaddle #SS220 Temporary waddle status effect - type: Body prototype: Human requiredLegs: 2 diff --git a/Resources/Prototypes/Entities/Objects/Devices/payload.yml b/Resources/Prototypes/Entities/Objects/Devices/payload.yml index 160f0c58e799..78ce917e4fa4 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/payload.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/payload.yml @@ -97,6 +97,7 @@ - type: DeleteOnTrigger - type: FlashOnTrigger range: 6 + stun: true # 220 flash grenade stun - type: EmitSoundOnTrigger sound: path: "/Audio/Effects/flash_bang.ogg" diff --git a/Resources/Prototypes/Entities/Objects/Fun/figurines.yml b/Resources/Prototypes/Entities/Objects/Fun/figurines.yml index b8b66164acb0..e2671bc1d184 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/figurines.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/figurines.yml @@ -109,8 +109,9 @@ components: - type: Sprite state: boxer - # - type: SpeakOnUse # TODO add something - # pack: FigurinesBoxer + # SS220 Add locale for all figurines + - type: SpeakOnUse + pack: FigurinesBoxer - type: entity parent: BaseFigurine @@ -464,8 +465,9 @@ components: - type: Sprite state: queen - # - type: SpeakOnUse # TODO add something - # pack: FigurinesQueen + # SS220 Add locale for all figurines + - type: SpeakOnUse + pack: FigurinesQueen - type: entity parent: BaseFigurine @@ -533,6 +535,9 @@ components: - type: Sprite state: griffinprize + # SS220 Speak for all toys + - type: SpeakOnUse + pack: FigurinesGriffin - type: entity parent: BaseFigurine @@ -542,6 +547,9 @@ components: - type: Sprite state: owlprize + # SS220 Speak for all toys + - type: SpeakOnUse + pack: FigurinesOwl - type: entity parent: BaseFigurine @@ -551,6 +559,9 @@ components: - type: Sprite state: skeletonprize + # SS220 Speak for all toys + - type: SpeakOnUse + pack: FigurinesSceleton - type: entity parent: BaseFigurine @@ -560,3 +571,6 @@ components: - type: Sprite state: thiefcharacter + # SS220 Speak for all toys + - type: SpeakOnUse + pack: FigurinesTheif diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/turrets.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/turrets.yml index 82177478fa79..b7756ccd896c 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/turrets.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/turrets.yml @@ -147,7 +147,7 @@ acts: [ "Destruction" ] - trigger: !type:DamageTrigger - damage: 100 + damage: 200 #SS220-underused-uplinks-stuff behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] @@ -160,7 +160,7 @@ soundGunshot: /Audio/Weapons/Guns/Gunshots/gun_sentry.ogg - type: BallisticAmmoProvider proto: CartridgePistol - capacity: 50 + capacity: 100 #SS220-underused-uplinks-stuff - type: Construction deconstructionTarget: null graph: WeaponTurretSyndicateDisposable diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml index adca03ae89fc..ca5ffe2ad01e 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml @@ -67,6 +67,7 @@ sprite: Objects/Weapons/Grenades/flashbang.rsi - type: FlashOnTrigger range: 7 + stun: true # 220 flash grenade stun - type: SoundOnTrigger sound: path: "/Audio/Effects/flash_bang.ogg" @@ -386,7 +387,7 @@ - Scientist - Borg # Corvax-HiddenDesc-End - + - type: entity parent: GrenadeBase id: SmokeGrenade diff --git a/Resources/Prototypes/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Entities/Structures/Walls/walls.yml index 37497c70f512..dd94580434f8 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/walls.yml @@ -127,9 +127,9 @@ tags: - Wall - type: Sprite - sprite: Structures/Walls/clown.rsi + sprite: SS220/Structures/Walls/clown.rsi #SS220-Walls-Sprite-Update - type: Icon - sprite: Structures/Walls/clown.rsi + sprite: SS220/Structures/Walls/clown.rsi #SS220-Walls-Sprite-Update - type: Construction graph: Girder node: bananiumWall @@ -652,9 +652,9 @@ tags: - Wall - type: Sprite - sprite: Structures/Walls/sandstone.rsi + sprite: SS220/Structures/Walls/sandstone.rsi #SS220-Walls-Sprite-Update - type: Icon - sprite: Structures/Walls/sandstone.rsi + sprite: SS220/Structures/Walls/sandstone.rsi #SS220-Walls-Sprite-Update - type: RCDDeconstructable cost: 6 delay: 8 @@ -984,9 +984,9 @@ name: wood wall components: - type: Sprite - sprite: Structures/Walls/wood.rsi + sprite: SS220/Structures/Walls/wood.rsi #SS220-Walls-Sprite-Update - type: Icon - sprite: Structures/Walls/wood.rsi + sprite: SS220/Structures/Walls/wood.rsi #SS220-Walls-Sprite-Update - type: Construction graph: Girder node: woodWall diff --git a/Resources/Prototypes/Loadouts/loadout_groups.yml b/Resources/Prototypes/Loadouts/loadout_groups.yml index c5569641cda6..b52ba6a92f05 100644 --- a/Resources/Prototypes/Loadouts/loadout_groups.yml +++ b/Resources/Prototypes/Loadouts/loadout_groups.yml @@ -374,6 +374,7 @@ loadouts: - JanitorJumpsuit - JanitorJumpskirt + - JanitorBlueJumpsuit #SS220-Janitor-Control - type: loadoutGroup id: JanitorGloves diff --git a/Resources/Prototypes/Reagents/gases.yml b/Resources/Prototypes/Reagents/gases.yml index 9ef508feead5..2303c00eb7e8 100644 --- a/Resources/Prototypes/Reagents/gases.yml +++ b/Resources/Prototypes/Reagents/gases.yml @@ -339,6 +339,18 @@ type: Add time: 500 refresh: false + #SS220 Temporary waddle status effect begin + - !type:GenericStatusEffect + conditions: + - !type:ReagentThreshold + reagent: Frezon + min: 1 + key: TemporaryWaddle + component: TemporaryWaddle + type: Add + time: 500 + refresh: false + #SS220 Temporary waddle status effect end - !type:Drunk boozePower: 500 conditions: diff --git a/Resources/Prototypes/SS220/Actions/Spider_actions.yml b/Resources/Prototypes/SS220/Actions/Spider_actions.yml new file mode 100644 index 000000000000..7791f860cf57 --- /dev/null +++ b/Resources/Prototypes/SS220/Actions/Spider_actions.yml @@ -0,0 +1,227 @@ +#Base +- type: entity + id: BaseActionSpawnSpiderEgg + abstract: true + components: + - type: WorldTargetAction + useDelay: 200 + range: 1 + itemIconStyle: BigAction + icon: + sprite: Objects/Misc/eggspider.rsi + state: icon + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SpiderEggDrone + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider + +- type: entity + id: BaseActionSpawnSingleSpiderWeb + name: spin a web + description: Creates a web that slows down your prey. + abstract: true + components: + - type: WorldTargetAction + useDelay: 4 + range: 1.5 + itemIconStyle: BigAction + icon: + sprite: Objects/Misc/spiderweb.rsi + state: spider_web_1 + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SpiderWebFragile + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider + +#Egg +- type: entity + parent: BaseActionSpawnSpiderEgg + id: ActionSpawnSpiderEggDrone + name: guard spider egg + description: He is also a drone and can build crystals and walls. + noSpawn: true + components: + - type: WorldTargetAction + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SpiderEggDrone + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider + +- type: entity + parent: BaseActionSpawnSpiderEgg + id: ActionSpawnSpiderEggHunter + name: hunter spider egg + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 300 #КД + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SpiderEggHunter + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider + +- type: entity + parent: BaseActionSpawnSpiderEgg + id: ActionSpawnSpiderEggGhost + name: ghost spider egg + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 350 + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SpiderEggGhost + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider + +- type: entity + parent: BaseActionSpawnSpiderEgg + id: ActionSpawnSpiderEggShooter + name: shooter spider egg + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 380 + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SpiderEggShooter + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider + +#Spider +- type: entity + id: ActionSpawnSpiderLittle + name: release the spiderlings + description: Releases three small spiders that attack your prey. The spiders disappear after 20 seconds. + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 40 + range: 2 + itemIconStyle: BigAction + icon: + sprite: Mobs/Animals/spider.rsi + state: viper_dead + event: !type:WorldSpawnSpellEvent + prototypes: + - id: MobSpiderSpaceLittle + amount: 3 + offset: 0, 1 + speech: action-speech-spell-spider + +#Cryctal +- type: entity + id: ActionSpawnSpiderCrystal + name: create a crystal shard + description: A shard that serves as a backlight for spiders. + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 30 + range: 1 + itemIconStyle: BigAction + icon: + sprite: Structures/Decoration/crystal.rsi + state: crystal1 + event: !type:WorldSpawnSpellEvent + prototypes: + - id: ShardCrystalBlueXeno + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider + +#Wall +- type: entity + id: ActionSpawnSpiderWallWeb + name: create a wall + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 12 + range: 1.5 + itemIconStyle: BigAction + icon: + sprite: Structures/Walls/web.rsi + state: full + event: !type:WorldSpawnSpellEvent + prototypes: + - id: TableWebSpiders + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider + +- type: entity + parent: ActionSpawnSpiderWallWeb + id: ActionSpawnSpiderWallWebDurable + name: create a durable wall + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 16 + event: !type:WorldSpawnSpellEvent + prototypes: + - id: TableWebSpidersDurable + amount: 1 + +#Web +- type: entity + parent: BaseActionSpawnSingleSpiderWeb + id: ActionSpawnSingleSpiderWebShortDelay + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 2 + +- type: entity + parent: BaseActionSpawnSingleSpiderWeb + id: ActionSpawnSingleSpiderWebLongDelay + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 6 + +- type: entity + parent: BaseActionSpawnSingleSpiderWeb + id: ActionSpawnSingleSpiderWebDurable + name: spin a durable web + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 4 + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SpiderWebDurable + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider + +#Clown web +- type: entity + id: ActionSpawnSingleSpiderWebClown + name: spin a clown web + description: Creates a web that slows down your prey. + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 30 #КД + range: 1.3 + itemIconStyle: BigAction + icon: + sprite: Objects/Misc/spiderweb.rsi + state: spider_web_clown_1 + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SpiderWebClown + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider diff --git a/Resources/Prototypes/SS220/Datasets/ss220figurines.yml b/Resources/Prototypes/SS220/Datasets/ss220figurines.yml new file mode 100644 index 000000000000..c35695437f08 --- /dev/null +++ b/Resources/Prototypes/SS220/Datasets/ss220figurines.yml @@ -0,0 +1,66 @@ +- type: localizedDataset + id: FigurinesAdmiral + values: + prefix: figurines-admiral- + count: 3 + + +- type: localizedDataset + id: FigurinesBlueshield + values: + prefix: figurines-blueshield- + count: 3 + +- type: localizedDataset + id: FigurinesDiplomat + values: + prefix: figurines-diplomat- + count: 3 + +- type: localizedDataset + id: FigurinesFieldOfficerCentcom + values: + prefix: figurines-fieldofficercentcom- + count: 3 + +- type: localizedDataset + id: FigurinesOfficerCentcom + values: + prefix: figurines-officercentcom- + count: 3 + +- type: localizedDataset + id: FigurinesSeniorScientist + values: + prefix: figurines-seniorscientist- + count: 3 + +- type: localizedDataset + id: FigurinesZombie + values: + prefix: figurines-zombie- + count: 3 + +- type: localizedDataset + id: FigurinesGriffin + values: + prefix: figurines-griffin- + count: 3 + +- type: localizedDataset + id: FigurinesOwl + values: + prefix: figurines-owl- + count: 3 + +- type: localizedDataset + id: FigurinesSceleton + values: + prefix: figurines-sceleton- + count: 3 + +- type: localizedDataset + id: FigurinesTheif + values: + prefix: figurines-thief- + count: 3 diff --git a/Resources/Prototypes/SS220/Entities/Clothing/Uniforms/Jumpsuit/jumpsuits.yml b/Resources/Prototypes/SS220/Entities/Clothing/Uniforms/Jumpsuit/jumpsuits.yml index f338b4fede04..f12da468d482 100644 --- a/Resources/Prototypes/SS220/Entities/Clothing/Uniforms/Jumpsuit/jumpsuits.yml +++ b/Resources/Prototypes/SS220/Entities/Clothing/Uniforms/Jumpsuit/jumpsuits.yml @@ -154,6 +154,18 @@ - type: Clothing sprite: SS220/Clothing/Uniforms/Jumpsuit/bartender_nt.rsi + # Уборщик +- type: entity + parent: ClothingUniformBase + id: ClothingUniformJumpsuitJanitorBlue + name: blue janitor's suit + description: The costume of the mysterious cleaner. + components: + - type: Sprite + sprite: SS220/Clothing/Uniforms/Jumpsuit/janitor_control.rsi + - type: Clothing + sprite: SS220/Clothing/Uniforms/Jumpsuit/janitor_control.rsi + # Medical # Парамед diff --git a/Resources/Prototypes/SS220/Entities/Mobs/NPCs/spider_queen.yml b/Resources/Prototypes/SS220/Entities/Mobs/NPCs/spider_queen.yml new file mode 100644 index 000000000000..921d90042ef6 --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/Mobs/NPCs/spider_queen.yml @@ -0,0 +1,512 @@ +#Base +- type: entity + parent: + - MobAtmosStandard + - MobSpaceBasic + - MobSpiderGhostRole + id: BaseMobSpiderQueen + abstract: true + name: Probca + description: spider dance + components: + - type: Insulated + - type: CombatMode + - type: InputMover + - type: MobMover + - type: HTN + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Animals/spider.rsi + scale: 1.3, 1.3 + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: midwife-moving + - type: MobThresholds #HP + thresholds: + 0: Alive + 300: Dead + - type: Stamina + critThreshold: 150 + - type: DamageStateVisuals + states: + Alive: + Base: midwife-moving + Dead: + Base: midwife_dead + - type: Butcherable + spawned: + - id: FoodMeatSpider + amount: 2 + - id: EggSpider + amount: 1 + prob: 0.5 + - type: Bloodstream + bloodMaxVolume: 250 + bloodReagent: Cryoxadone + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.35 + density: 120 + mask: + - MobMask + layer: + - MobLayer + - type: MeleeWeapon + hidden: true + soundHit: + path: /Audio/Effects/bite.ogg + angle: 0. + animation: WeaponArcBite + damage: + types: + Piercing: 12 #Damage + Poison: 4 + Structural: 15 + - type: MeleeChemicalInjector + solution: melee + transferAmount: 3 + - type: InteractionPopup + successChance: 0.20 + interactSuccessString: petting-success-tarantula + interactFailureString: petting-failure-generic + - type: NoSlip + - type: IgnoreSpiderWeb + - type: PassiveDamage # Slight passive regen. Assuming one damage type, comes out to about 4 damage a minute.Самолечение + allowedStates: + - Alive + damageCap: 300 + damage: + types: + Heat: -4.5 + groups: + Brute: -4.5 + Toxin: -7 + Airloss: -4.5 + Burn: -4.5 + - type: Tag + tags: + - CannotSuicide + - DoorBumpOpener + - type: Tool # Open door from xeno.yml. + speedModifier: 1.5 + qualities: + - Prying + useSound: + path: /Audio/Items/crowbar.ogg + - type: Prying + pryPowered: !type:Bool + true + force: !type:Bool + true + useSound: + path: /Audio/Items/crowbar.ogg + - type: Barotrauma #Damage + damage: + types: + Blunt: 1 + Heat: 1 + - type: Temperature #Damage + heatDamageThreshold: 325 + coldDamageThreshold: 260 + currentTemperature: 310.15 + specificHeat: 42 + coldDamage: + types: + Cold: 0.1 #per second, scales with temperature & other constants + heatDamage: + types: + Heat: 0.1 #per second, scales with temperature & other constants + - type: Speech #krik + speechVerb: Arachnid + speechSounds: Arachnid + - type: Vocal + sounds: + Male: UnisexArachnid + Female: UnisexArachnid + Unsexed: UnisexArachnid #krik + - type: PointLight + radius: 0 + energy: 0 + color: "#ff4242" + castShadows: false + - type: IntrinsicRadioReceiver + - type: IntrinsicRadioTransmitter + channels: + - HiveRadio + - type: ActiveRadio + channels: + - HiveRadio + +- type: entity + name: Ghost role + id: MobSpiderGhostRole + noSpawn: true + components: + - type: GhostRole #Ghost role + makeSentient: true + allowSpeech: true + allowMovement: true + name: spider-roy-name + description: spider-roy-desc + - type: GhostTakeoverAvailable #Ghost role + +#Spider queen +- type: entity + parent: BaseMobSpiderQueen + id: MobSpiderSpaceQueen + name: Spider queen + description: spider dance + components: + - type: AutoImplant + implants: + - LightImplantSpiderEggHunter + - LightImplantSpiderWallWebDurable + - LightImplantSpiderEggDrone + - LightImplantSpiderEggGhost + - LightImplantSpiderCrystal + - LightImplantSpiderLittle + - LightImplantSingleSpiderWebDurable + - LightImplantSpiderEggShooter + - type: Butcherable + spawned: + - id: FoodMeatSpider + amount: 3 + - id: MobSpiderSpaceLittle + amount: 7 + - type: Spider + webPrototype: SpiderWebDespawned + - type: RechargeBasicEntityAmmo + rechargeCooldown: 1.5 + - type: BasicEntityAmmoProvider + proto: PoisonousAcid + capacity: 2 + count: 2 + - type: Gun + fireRate: 1 + useKey: false + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: /Audio/Weapons/Xeno/alien_spitacid.ogg + - type: SolutionContainerManager + solutions: + melee: + reagents: + - ReagentId: ChloralHydrate #Iad + Quantity: 60 + - type: MovementSpeedModifier + baseWalkSpeed : 3.5 + baseSprintSpeed : 4 + - type: LizardAccent + +#Spiders-servants +- type: entity + parent: BaseMobSpiderQueen + id: MobSpiderSpaceDrone + name: spider guard + description: spider dance + components: + - type: Sprite #Спрайт + drawdepth: Mobs + sprite: Mobs/Animals/spider.rsi + scale: 1, 1 + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: guard-moving + - type: MobThresholds + thresholds: + 0: Alive + 85: Dead #HP + - type: DamageStateVisuals + states: + Alive: + Base: guard-moving + Dead: + Base: guard_dead + - type: PassiveDamage # Slight passive regen. Assuming one damage type, comes out to about 4 damage a minute. Самолечение + allowedStates: + - Alive + damageCap: 85 + damage: + types: + Heat: -4 + groups: + Brute: -4 + Toxin: -6 + Airloss: -4 + Burn: -4 + - type: MeleeWeapon #Damage + hidden: true + soundHit: + path: /Audio/Effects/bite.ogg + angle: 0 + animation: WeaponArcBite + damage: + types: + Piercing: 5 #Damage + Structural: 10 + - type: AutoImplant + implants: + - LightImplantSpiderWallWeb + - LightImplantSpiderCrystal + - LightImplantSingleSpiderWebShortDelay + - type: Spider + webPrototype: SpiderWebDespawned + - type: MovementSpeedModifier + baseWalkSpeed : 3 + baseSprintSpeed : 3.9 + +- type: entity + parent: BaseMobSpiderQueen + id: MobSpiderSpaceHunter + name: spider hunt + description: spider dance + components: + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Animals/spider.rsi + scale: 1, 1 + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: hunter-moving + - type: MobThresholds + thresholds: + 0: Alive + 110: Dead + - type: DamageStateVisuals + states: + Alive: + Base: hunter-moving + Dead: + Base: hunter_dead + - type: PassiveDamage + allowedStates: + - Alive + damageCap: 110 + damage: + types: + Heat: -3 + groups: + Brute: -3 + Toxin: -6 + Airloss: -3 + Burn: -3 + - type: MeleeWeapon + hidden: true + soundHit: + path: /Audio/Effects/bite.ogg + angle: 0 + animation: WeaponArcBite + damage: + types: + Piercing: 15 + Structural: 15 + - type: Spider + webPrototype: SpiderWebDespawned + - type: MovementSpeedModifier + baseWalkSpeed : 3 + baseSprintSpeed : 3.9 + - type: AutoImplant + implants: + - LightImplantSingleSpiderWebLongDelay + +- type: entity + parent: BaseMobSpiderQueen + id: MobSpiderSpaceGhost + name: spider ghost + description: spider dance + components: + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Animals/spider.rsi + scale: 1, 1 + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: nurse-moving + - type: MobThresholds + thresholds: + 0: Alive + 100: Dead + - type: DamageStateVisuals + states: + Alive: + Base: nurse-moving + Dead: + Base: nurse_dead + - type: PassiveDamage + allowedStates: + - Alive + damageCap: 100 + damage: + types: + Heat: -3 + groups: + Brute: -3 + Toxin: -8 + Airloss: -3 + Burn: -3 + - type: MeleeWeapon + hidden: true + soundHit: + path: /Audio/Effects/bite.ogg + angle: 0 + animation: WeaponArcBite + damage: + types: + Piercing: 3 + Poison: 4 + Structural: 10 + - type: SolutionContainerManager + solutions: + melee: + reagents: + - ReagentId: ChloralHydrate + Quantity: 20 + - type: Stealth + - type: StealthOnMove + passiveVisibilityRate: -0.37 + movementVisibilityRate: 0.35 + - type: RechargeBasicEntityAmmo + rechargeCooldown: 1.5 + - type: BasicEntityAmmoProvider + proto: PoisonousAcid + capacity: 1 + count: 1 + - type: Gun + fireRate: 0.75 + useKey: false + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: /Audio/Weapons/Xeno/alien_spitacid.ogg + - type: MovementSpeedModifier + baseWalkSpeed : 1.5 + baseSprintSpeed : 3.9 + - type: AutoImplant + implants: + - LightImplantSingleSpiderWebLongDelay + +- type: entity + parent: BaseMobSpiderQueen + id: MobSpiderSpaceShooter + name: spider shooter + description: spider dance + components: + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Animals/spider.rsi + scale: 1, 1 + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: viper-moving + - type: MobThresholds + thresholds: + 0: Alive + 80: Dead + - type: DamageStateVisuals + states: + Alive: + Base: viper-moving + Dead: + Base: viper_dead + - type: PassiveDamage + allowedStates: + - Alive + damageCap: 80 + damage: + types: + Heat: -1.5 + groups: + Brute: -2.5 + Toxin: -5 + Airloss: -2.5 + Burn: -2.5 + - type: MeleeWeapon + hidden: true + soundHit: + path: /Audio/Effects/bite.ogg + angle: 0 + animation: WeaponArcBite + damage: + types: + Poison: 5 + Piercing: 2 + Structural: 5 + - type: SolutionContainerManager + solutions: + melee: + reagents: + - ReagentId: ChloralHydrate + Quantity: 35 + - type: RechargeBasicEntityAmmo + rechargeCooldown: 1.5 + - type: BasicEntityAmmoProvider + proto: PoisonousAcid + capacity: 3 + count: 3 + - type: Gun + fireRate: 4 + useKey: false + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: /Audio/Weapons/Xeno/alien_spitacid.ogg + - type: AutoImplant + implants: + - LightImplantSingleSpiderWebClown + - type: MovementSpeedModifier + baseWalkSpeed : 3 + baseSprintSpeed : 3.7 + +- type: entity + parent: BaseMobSpiderQueen + id: MobSpiderSpaceLittle + name: small spider + description: spider dance + components: + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Animals/spider.rsi + scale: 0.4, 0.4 + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: viper-moving + - type: MobThresholds + thresholds: + 0: Alive + 15: Dead + - type: DamageStateVisuals + states: + Alive: + Base: viper-moving + Dead: + Base: viper_dead + - type: PassiveDamage + allowedStates: + - Alive + damageCap: 15 + damage: + types: + Heat: -0.5 + groups: + Brute: -0.5 + Toxin: -0.5 + Airloss: -0.5 + Burn: -0.5 + - type: MeleeWeapon + hidden: true + soundHit: + path: /Audio/Effects/bite.ogg + angle: 0 + animation: WeaponArcBite + damage: + types: + Piercing: 5 + - type: TimedDespawn + lifetime: 20 + - type: MovementSpeedModifier + baseWalkSpeed : 3.5 + baseSprintSpeed : 4.5 diff --git a/Resources/Prototypes/SS220/Entities/Mobs/Player/felinid.yml b/Resources/Prototypes/SS220/Entities/Mobs/Player/felinid.yml index 97199b405f7c..be8f8186e0d7 100644 --- a/Resources/Prototypes/SS220/Entities/Mobs/Player/felinid.yml +++ b/Resources/Prototypes/SS220/Entities/Mobs/Player/felinid.yml @@ -33,24 +33,6 @@ methods: [Touch] effects: - !type:WashCreamPieReaction - - type: StatusEffects - allowed: - - Stun - - KnockedDown - - SlowedDown - - Stutter - - SeeingRainbows - - Electrocution - - Drunk - - SlurredSpeech - - RatvarianLanguage - - PressureImmunity - - Muted - - ForcedSleep - - TemporaryBlindness - - Pacified - - StaminaModifier - - Flashed - type: Alerts - type: Actions - type: Eye diff --git a/Resources/Prototypes/SS220/Entities/Objects/Consumable/Food/egg.yml b/Resources/Prototypes/SS220/Entities/Objects/Consumable/Food/egg.yml new file mode 100644 index 000000000000..ce329b691ce5 --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/Objects/Consumable/Food/egg.yml @@ -0,0 +1,25 @@ +# Spiders eggs +- type: entity + parent: Eggshells + id: EggshellsSpider + noSpawn: true + name: eggshells + description: You're walkin' on 'em bud. + suffix: FraG + components: + - type: Sprite + sprite: Objects/Consumable/Food/egg.rsi + state: eggshells + shader: unshaded + color: gray + - type: SolutionContainerManager + solutions: + food: + maxVol: 2 + reagents: + - ReagentId: PoisonWine + Quantity: 1 + - type: Tag + tags: + - Egg + - Trash diff --git a/Resources/Prototypes/SS220/Entities/Objects/Fun/figurines.yml b/Resources/Prototypes/SS220/Entities/Objects/Fun/figurines.yml index a10244606a7d..6981c5fe0d96 100644 --- a/Resources/Prototypes/SS220/Entities/Objects/Fun/figurines.yml +++ b/Resources/Prototypes/SS220/Entities/Objects/Fun/figurines.yml @@ -7,6 +7,9 @@ - type: Sprite sprite: SS220/Objects/Fun/figurines.rsi state: admiral + # SS220 Speak for all toys + - type: SpeakOnUse + pack: FigurinesAdmiral - type: entity parent: BaseFigurine @@ -17,6 +20,9 @@ - type: Sprite sprite: SS220/Objects/Fun/figurines.rsi state: blueshield + # SS220 Speak for all toys + - type: SpeakOnUse + pack: FigurinesBlueshield - type: entity parent: BaseFigurine @@ -27,6 +33,9 @@ - type: Sprite sprite: SS220/Objects/Fun/figurines.rsi state: diplomat + # SS220 Speak for all toys + - type: SpeakOnUse + pack: FigurinesDiplomat - type: entity parent: BaseFigurine @@ -37,6 +46,9 @@ - type: Sprite sprite: SS220/Objects/Fun/figurines.rsi state: field_officer_centcom + # SS220 Speak for all toys + - type: SpeakOnUse + pack: FigurinesFieldOfficerCentcom - type: entity parent: BaseFigurine @@ -47,6 +59,9 @@ - type: Sprite sprite: SS220/Objects/Fun/figurines.rsi state: officer_centcom + # SS220 Speak for all toys + - type: SpeakOnUse + pack: FigurinesOfficerCentcom - type: entity parent: BaseFigurine @@ -57,6 +72,9 @@ - type: Sprite sprite: SS220/Objects/Fun/figurines.rsi state: senior_scientist + # SS220 Speak for all toys + - type: SpeakOnUse + pack: FigurinesSeniorScientist - type: entity parent: BaseFigurine @@ -67,3 +85,7 @@ - type: Sprite sprite: SS220/Objects/Fun/figurines.rsi state: zombie + # SS220 Speak for all toys + - type: SpeakOnUse + pack: FigurinesZombie + diff --git a/Resources/Prototypes/SS220/Entities/Objects/Materials/crystal_shard.yml b/Resources/Prototypes/SS220/Entities/Objects/Materials/crystal_shard.yml new file mode 100644 index 000000000000..4bbdd4c6b17b --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/Objects/Materials/crystal_shard.yml @@ -0,0 +1,23 @@ +- type: entity + id: ShardCrystalBlueXeno + parent: ShardCrystalBlue + name: shard of blue crystal + description: A small piece of crystal. + noSpawn: true + components: + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 5 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:SpawnEntitiesBehavior + spawn: + MaterialWebSilk: + min: 0 + max: 0 + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy diff --git a/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml new file mode 100644 index 000000000000..5335c331d321 --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml @@ -0,0 +1,158 @@ +#Base +#TODO: Когда будет анимация для спавна стен - переделать BaseItemSpider на наследование от BaseItem +- type: entity + name: "item" + id: BaseItemSpider + abstract: true + components: + - type: Clickable + - type: InteractionOutline + - 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: + path: /Audio/Effects/hit_kick.ogg + - 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: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 1 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: StaticPrice + price: 100 + +- type: entity + parent: BaseItemSpider + id: BaseSpiderEgg + abstract: true + name: the-egg-of-the-spider-guard + description: Is it a gemstone? Is it an egg? It looks expensive. + components: + - type: Sprite + sprite: Objects/Misc/eggspider.rsi + state: icon + - type: PointLight + radius: 1.5 + energy: 3 + color: "#4faffb" + - type: StaticPrice + price: 500 + - type: Barotrauma #Урон от разгермы + damage: + types: + Blunt: 0.1 + Heat: 0.1 + - type: DamageOnHighSpeedImpact + minimumSpeed: 0.1 + damage: + types: + Blunt: 1 + - type: Damageable + damageContainer: Biological + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 5 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: desecration + - !type:SpillBehavior + solution: food + - !type:SpawnEntitiesBehavior + spawn: + EggshellsSpider: + min: 1 + max: 1 + # Wow double-yolk you're so lucky! + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: SolutionContainerManager + solutions: + food: + maxVol: 25 + reagents: + - ReagentId: PoisonWine + Quantity: 10 + - type: TimedDespawn #Система цикла + - type: SpawnOnDespawn + +#Spiders +- type: entity + parent: BaseSpiderEgg + id: SpiderEggDrone + noSpawn: true + name: spider hive egg + description: Is this a gem? Is this an egg? It looks expensive. + components: + - type: TimedDespawn + lifetime: 55 + - type: SpawnOnDespawn + prototype: MobSpiderSpaceDrone + +- type: entity + parent: BaseSpiderEgg + id: SpiderEggHunter + noSpawn: true + name: the-egg-of-the-spider-guard + description: Is it a gemstone? Is it an egg? It looks expensive. + components: + - type: TimedDespawn #Система цикла + lifetime: 80 + - type: SpawnOnDespawn + prototype: MobSpiderSpaceHunter #Система цикла + +- type: entity + parent: BaseSpiderEgg + id: SpiderEggGhost + noSpawn: true + name: spider hive egg + description: Is this a gem? Is this an egg? It looks expensive. + components: + - type: TimedDespawn + lifetime: 80 + - type: SpawnOnDespawn + prototype: MobSpiderSpaceGhost + +- type: entity + parent: BaseSpiderEgg + id: SpiderEggShooter + noSpawn: true + name: spider hive egg + description: Is this a gem? Is this an egg? It looks expensive. + components: + - type: TimedDespawn + lifetime: 80 + - type: SpawnOnDespawn + prototype: MobSpiderSpaceShooter diff --git a/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_implants.yml b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_implants.yml new file mode 100644 index 000000000000..e5fec988fbea --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_implants.yml @@ -0,0 +1,141 @@ +#Base +- type: entity + parent: BaseSubdermalImplant + id: BaseLightImplantSpider + abstract: true + components: + - type: SubdermalImplant + - type: PointLight + enabled: false + radius: 2.5 + softness: 5 + mask: /Textures/Effects/LightMasks/cone.png + autoRot: true + - type: Tag + tags: + - SubdermalImplant + - HideContextMenu + - Flashlight + - type: UnpoweredFlashlight + +# #Egg +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSpiderEggDrone + name: guard spider egg + description: He is also a drone and can build crystals and walls. + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSpiderEggDrone + +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSpiderEggHunter + name: hunter spider egg + description: + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSpiderEggHunter + +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSpiderEggGhost + name: ghost spider egg + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSpiderEggGhost + +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSpiderEggShooter + name: shooter spider egg + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSpiderEggShooter + +#Spider +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSpiderLittle + name: release the spiderlings + description: Releases three small spiders that attack your prey. The spiders disappear after 20 seconds. + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSpiderLittle + +# #Cristal +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSpiderCrystal + name: create a crystal shard + description: A shard that serves as a backlight for spiders. + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSpiderCrystal + +#Wall +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSpiderWallWeb + name: create a wall + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSpiderWallWeb + +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSpiderWallWebDurable + name: create a durable wall + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSpiderWallWebDurable + +#Web +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSingleSpiderWebShortDelay + name: spin a web + description: Creates a web that slows down your prey. + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSingleSpiderWebShortDelay + +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSingleSpiderWebLongDelay + name: spin a web + description: Creates a web that slows down your prey. + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSingleSpiderWebLongDelay + +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSingleSpiderWebDurable + name: spin a durable web + description: Creates a web that slows down your prey. + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSingleSpiderWebDurable + +#Clown web +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSingleSpiderWebClown + name: spin a clown web + description: Creates a web that slows down your prey. + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSingleSpiderWebClown diff --git a/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_web.yml b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_web.yml new file mode 100644 index 000000000000..29cc19a8b1b8 --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_web.yml @@ -0,0 +1,128 @@ +#Spider queen webs + +#Base +- type: entity + id: BaseSpiderWeb + name: web + description: Sticky web.. I wonder where it comes from? + abstract: true + noSpawn: true + placement: + mode: SnapgridCenter + snap: + - Wall + components: + - type: MeleeSound + soundGroups: + Brute: + path: + "/Audio/Weapons/slash.ogg" + - type: Sprite + sprite: Objects/Misc/spiderweb.rsi + layers: + - state: spider_web_1 + map: ["spiderWebLayer"] + drawdepth: WallMountedItems + - type: Appearance + - type: GenericVisualizer + visuals: + enum.SpiderWebVisuals.Variant: + spiderWebLayer: + 1: {state: spider_web_1} + 2: {state: spider_web_2} + - type: Clickable + - type: Transform + anchored: true + - type: Physics + - type: Fixtures + fixtures: + fix1: + hard: false + density: 7 + shape: + !type:PhysShapeAabb + bounds: "-0.5,-0.5,0.5,0.5" + layer: + - MidImpassable + - type: Damageable + damageModifierSet: Wood + - type: Destructible + - type: Temperature + heatDamage: + types: + Heat: 5 + coldDamage: {} + coldDamageThreshold: 0 + - type: Flammable + fireSpread: true + damage: + types: + Heat: 5 + - type: Reactive + groups: + Flammable: [Touch] + Extinguish: [Touch] + - type: SpiderWebObject + - type: SpeedModifierContacts + ignoreWhitelist: + components: + - IgnoreSpiderWeb + +#Web +- type: entity + parent: BaseSpiderWeb + id: SpiderWebFragile + name: web + placement: + mode: SnapgridCenter + snap: + - Wall + components: + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 30 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: SpeedModifierContacts + walkSpeedModifier: 0.25 + sprintSpeedModifier: 0.25 + +- type: entity + parent: BaseSpiderWeb + id: SpiderWebDurable + name: durable web + placement: + mode: SnapgridCenter + snap: + - Wall + components: + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: SpeedModifierContacts + walkSpeedModifier: 0.15 + sprintSpeedModifier: 0.15 + +- type: entity + parent: BaseSpiderWeb + id: SpiderWebDespawned + name: web + noSpawn: true + placement: + mode: SnapgridCenter + snap: + - Wall + components: + - type: TimedDespawn + lifetime: 13 + - type: SpeedModifierContacts + walkSpeedModifier: 0.1 + sprintSpeedModifier: 0.1 diff --git a/Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index 919db404fb94..dc8f86fc3af6 100644 --- a/Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -110,3 +110,22 @@ radius: 5.5 color: blue energy: 0.9 + +#Spider queen +- type: entity + id: PoisonousAcid + name: poisonous Spit + parent: BaseBullet + noSpawn: true + components: + - type: Projectile + damage: + types: + Poison: 6 + Structural: 2 + - type: Sprite + sprite: Objects/Weapons/Guns/Projectiles/xeno_toxic.rsi + layers: + - state: xeno_toxic + - type: Ammo + muzzleFlash: null diff --git a/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml b/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml new file mode 100644 index 000000000000..e9d01ea2cf8d --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml @@ -0,0 +1,179 @@ +# AT THE BOTTOM IS A TILE MADE OF COBWEBS. + +#TODO: Сделать нормальную анимацию спавна стены без использования костыля в виде спавна тайлов и столов +#Base +- type: entity + parent: BaseItemSpider + id: BaseFloorTileItemSpiders + description: These could work as a pretty decent throwing weapon. + abstract: true + components: + - type: Sprite + sprite: Objects/Tiles/web.rsi + state: icon + - type: FloorTile + outputs: + - FloorWebTile + - type: DamageOtherOnHit + damage: + types: + Blunt: 5 + - type: Damageable + damageContainer: Inorganic + - type: Construction + graph: WebObjects + node: tile + - type: TimedDespawn + - type: SpawnOnDespawn + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 1 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 20 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + params: + volume: -8 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: DamageOnLand + damage: + types: + Blunt: 5 + +#Tile (used to spawn walls) +# - type: entity +# parent: BaseFloorTileItemSpiders +# id: FloorTileItemWebSpiders +# name: web construction +# description: Very smooth and surprisingly durable. +# noSpawn: true +# components: +# - type: TimedDespawn +# lifetime: 5 +# - type: SpawnOnDespawn +# prototype: TableWebSpiders + +# - type: entity +# name: web +# description: Web +# parent: BaseFloorTileItemSpiders +# id: FloorTileItemWebSpidersDurable +# noSpawn: true +# components: +# - type: TimedDespawn +# lifetime: 6 +# - type: SpawnOnDespawn +# prototype: TableWebSpidersDurable +# - type: Sprite +# shader: unshaded +# color: gray + +#Table (заглушка типо как анимация) +- type: entity + parent: TableBase + id: TableWebSpiders + name: web + description: web + noSpawn: true + components: + - type: Damageable + damageModifierSet: Web + - type: Sprite + sprite: Structures/Furniture/Tables/web.rsi + - type: Icon + sprite: Structures/Furniture/Tables/web.rsi + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 10 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: MeleeSound + soundGroups: + Brute: + path: + "/Audio/Weapons/slash.ogg" + - type: Construction + graph: WebStructures + node: table + - type: FootstepModifier + footstepSoundCollection: + collection: FootstepCarpet + - type: TimedDespawn + lifetime: 5 + - type: SpawnOnDespawn + prototype: WallWeb + +- type: entity + parent: TableWebSpiders + id: TableWebSpidersDurable + name: web + description: web + noSpawn: true + components: + - type: TimedDespawn + lifetime: 8 + - type: SpawnOnDespawn + prototype: WallWebDurable + - type: Sprite + sprite: Structures/Furniture/Tables/web.rsi + shader: unshaded + color: gray + +#Wall +- type: entity + parent: BaseWall + id: WallWebDurable + name: web + description: web + components: + - type: Clickable + - type: MeleeSound + soundGroups: + Brute: + path: + "/Audio/Weapons/slash.ogg" + - type: Damageable + damageModifierSet: Web + - type: Tag + tags: + - Wall + - type: Sprite + sprite: Structures/Walls/web.rsi + shader: unshaded + color: gray + - type: Icon + sprite: Structures/Walls/web.rsi + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 125 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:SpawnEntitiesBehavior + spawn: + MaterialWebSilk: + min: 1 + max: 1 + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - type: IconSmooth + key: webs + base: wall + - type: Construction + graph: WebStructures + node: wall diff --git a/Resources/Prototypes/SS220/Entities/markers/Spawners/ghost_roles.yml b/Resources/Prototypes/SS220/Entities/markers/Spawners/ghost_roles.yml new file mode 100644 index 000000000000..41505b88e615 --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/markers/Spawners/ghost_roles.yml @@ -0,0 +1,25 @@ +#Used by gamerule +- type: entity + id: SpawnPointGhostSpaceQueen + name: спавнер роли королевы-пауков + suffix: паук-королева + parent: MarkerBase + components: + - type: GhostRole + name: spider-roy-name + description: spider-roy-desc + rules: spider-roy-desc + requirements: + - !type:DepartmentTimeRequirement + department: Security + time: 600 + raffle: + settings: default + - type: GhostRoleMobSpawner + prototype: MobSpiderSpaceQueen + - type: Sprite + sprite: Markers/jobs.rsi + layers: + - state: green + - sprite: Mobs/Animals/spider.rsi + state: midwife diff --git a/Resources/Prototypes/SS220/GameRules/events.yml b/Resources/Prototypes/SS220/GameRules/events.yml index a4cb65a8b830..e568911fb930 100644 --- a/Resources/Prototypes/SS220/GameRules/events.yml +++ b/Resources/Prototypes/SS220/GameRules/events.yml @@ -19,3 +19,20 @@ specialEntries: - id: TrashBananaPeelExplosive prob: 0.005 + +#Temporary in comment +# - type: entity +# id: SpiderMigration +# parent: BaseGameRule +# noSpawn: true +# components: +# - type: StationEvent +# startDelay: 5 +# earliestStart: 15 +# minimumPlayers: 35 +# weight: 5 +# duration: 50 +# - type: VentCrittersRule +# specialEntries: +# - id: SpawnPointGhostSpaceQueen +# prob: 0.005 diff --git a/Resources/Prototypes/SS220/Loadouts/Jobs/Civilian/janitor.yml b/Resources/Prototypes/SS220/Loadouts/Jobs/Civilian/janitor.yml new file mode 100644 index 000000000000..dfd69983340d --- /dev/null +++ b/Resources/Prototypes/SS220/Loadouts/Jobs/Civilian/janitor.yml @@ -0,0 +1,18 @@ +# Janitor Time +- type: loadoutEffectGroup + id: JanitorControl + effects: + - !type:JobRequirementLoadoutEffect + requirement: + !type:RoleTimeRequirement + role: JobJanitor + time: 108000 # 30 hrs + +# Jumpsuit +- type: loadout + id: JanitorBlueJumpsuit + effects: + - !type:GroupLoadoutEffect + proto: JanitorControl + equipment: + jumpsuit: ClothingUniformJumpsuitJanitorBlue diff --git a/Resources/Prototypes/SS220/Loadouts/Jobs/Medical/psychologist.yml b/Resources/Prototypes/SS220/Loadouts/Jobs/Medical/psychologist.yml index d02f0fe11719..39b6b9794c41 100644 --- a/Resources/Prototypes/SS220/Loadouts/Jobs/Medical/psychologist.yml +++ b/Resources/Prototypes/SS220/Loadouts/Jobs/Medical/psychologist.yml @@ -29,3 +29,8 @@ id: PsychologistJumpsuit equipment: jumpsuit: ClothingUniformJumpsuitPsychologist + +- type: loadout + id: PsychologistJumpskirt + equipment: + jumpsuit: ClothingUniformJumpskirtPsychologist diff --git a/Resources/Prototypes/SS220/Loadouts/loadout_groups.yml b/Resources/Prototypes/SS220/Loadouts/loadout_groups.yml index 79c4e39bc542..dfa16b8393a2 100644 --- a/Resources/Prototypes/SS220/Loadouts/loadout_groups.yml +++ b/Resources/Prototypes/SS220/Loadouts/loadout_groups.yml @@ -49,6 +49,7 @@ name: loadout-group-psychologist-jumpsuit loadouts: - PsychologistJumpsuit + - PsychologistJumpskirt - PsychologistJumpsuitTurtleneck - PsychologistJumpskirtTurtleneck @@ -141,7 +142,7 @@ loadouts: - SeniorServiceJumpsuit - SeniorJumpskirtService - + # senior engineer - type: loadoutGroup id: HatSeniorEngineer @@ -151,7 +152,7 @@ - StationEngineerHardhatOrange - StationEngineerHardhatRed - HatSeniorEngineer - + - type: loadoutGroup id: SeniorsEngineerJumpsuit name: loadout-group-senior-engineer-jumpsuit @@ -166,7 +167,7 @@ - StationEngineerOuterVest - StationEngineerWintercoat - AtmosphericTechnicianWintercoat - + # Senior Medical - type: loadoutGroup @@ -176,14 +177,14 @@ loadouts: - HatSeniorMedical - CMOMedicalHeadMirror - + - type: loadoutGroup id: SeniorMedicalJumpsuit name: loadout-group-senior-medical-jumpsuit loadouts: - SeniorMedicalJumpsuit - SeniorMedicalJumpskirt - + - type: loadoutGroup id: SeniorMedicalOuterClothing name: loadout-group-senior-medical-outerclothing @@ -192,7 +193,7 @@ - SeniorMedicalLabCoat - MedicalDoctorWintercoat - ChemistWintercoat - + - type: loadoutGroup id: MedicalsBackpack name: loadout-group-medical-doctor-backpack @@ -200,14 +201,14 @@ - MedicalDoctorBackpack - MedicalDoctorSatchel - MedicalDoctorDuffel - + - type: loadoutGroup id: SeniorShoes name: loadout-group-medical-doctor-shoes loadouts: - WhiteShoes - MedicalWinterBoots - + - type: loadoutGroup id: MedicalsGloves name: loadout-group-medical-gloves @@ -215,14 +216,14 @@ loadouts: - LatexGloves - NitrileGloves - + - type: loadoutGroup id: MedicalsMask name: loadout-group-medical-mask minLimit: 0 loadouts: - SterileMask - + # Senior RND - type: loadoutGroup @@ -231,14 +232,14 @@ minLimit: 0 loadouts: - HatSeniorSciensist - + - type: loadoutGroup id: SeniorSciensistJumpsuit name: loadout-group-senior-scientist-jumpsuit loadouts: - SeniorSciensistJumpsuit - SeniorSciensistJumpskirt - + - type: loadoutGroup id: SeniorSciensistOuterClothing name: loadout-group-senior-scientist-outerclothing @@ -247,7 +248,7 @@ - SeniorSciensistLabCoat - ScienceWintercoat - RoboticistWintercoat - + # Senior Security - type: loadoutGroup diff --git a/Resources/Prototypes/SS220/StatusEffects/status_effects.yml b/Resources/Prototypes/SS220/StatusEffects/status_effects.yml new file mode 100644 index 000000000000..96eff201f79b --- /dev/null +++ b/Resources/Prototypes/SS220/StatusEffects/status_effects.yml @@ -0,0 +1,2 @@ +- type: statusEffect + id: TemporaryWaddle diff --git a/Resources/Prototypes/SS220/radio_channels.yml b/Resources/Prototypes/SS220/radio_channels.yml index e2429f8ebed0..f9f6926e76c9 100644 --- a/Resources/Prototypes/SS220/radio_channels.yml +++ b/Resources/Prototypes/SS220/radio_channels.yml @@ -198,3 +198,12 @@ keycode: 'в' frequency: 1373 color: "#323ba9" + +#Spider queen antag +- type: radioChannel #Connection + id: HiveRadio + name: chat-radio-hive + keycode: 'у' + frequency: 2885 + color: "#cc80ff" + longRange: true diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi/equipped-INNERCLOTHING-monkey.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi/equipped-INNERCLOTHING-monkey.png new file mode 100644 index 000000000000..2ec4c24dc1fd Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi/equipped-INNERCLOTHING-monkey.png differ diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 000000000000..cff4a0f209e9 Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi/icon.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi/icon.png new file mode 100644 index 000000000000..1d2c670abac4 Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi/icon.png differ diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi/inhand-left.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi/inhand-left.png new file mode 100644 index 000000000000..c16ce38eac65 Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi/inhand-left.png differ diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi/inhand-right.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi/inhand-right.png new file mode 100644 index 000000000000..e25c5df9bffc Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi/inhand-right.png differ diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi/meta.json b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi/meta.json new file mode 100644 index 000000000000..845fc2d12b9a --- /dev/null +++ b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/psychologist.rsi/meta.json @@ -0,0 +1,30 @@ +{ + "version": 1, + "license": "EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt", + "copyright": "Sprite by funny_mushroom (Discord) for SS220", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-INNERCLOTHING-monkey", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/janitor_control.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/janitor_control.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 000000000000..413bd53bdaf1 Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/janitor_control.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/janitor_control.rsi/icon.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/janitor_control.rsi/icon.png new file mode 100644 index 000000000000..7e1aa3f9135a Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/janitor_control.rsi/icon.png differ diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/janitor_control.rsi/inhand-left.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/janitor_control.rsi/inhand-left.png new file mode 100644 index 000000000000..7dd4230cbb33 Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/janitor_control.rsi/inhand-left.png differ diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/janitor_control.rsi/inhand-right.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/janitor_control.rsi/inhand-right.png new file mode 100644 index 000000000000..6b8efa93ef5c Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/janitor_control.rsi/inhand-right.png differ diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/janitor_control.rsi/meta.json b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/janitor_control.rsi/meta.json new file mode 100644 index 000000000000..2ef7bbba6938 --- /dev/null +++ b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/janitor_control.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt", + "copyright": "Sprited by Kerch91 (Discord) for SS220", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi/equipped-INNERCLOTHING-monkey.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi/equipped-INNERCLOTHING-monkey.png new file mode 100644 index 000000000000..3dbfbd6f5ca4 Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi/equipped-INNERCLOTHING-monkey.png differ diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 000000000000..19093d6d0e7d Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi/icon.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi/icon.png new file mode 100644 index 000000000000..003753396684 Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi/icon.png differ diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi/inhand-left.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi/inhand-left.png new file mode 100644 index 000000000000..5b3138be6194 Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi/inhand-left.png differ diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi/inhand-right.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi/inhand-right.png new file mode 100644 index 000000000000..55670ca13244 Binary files /dev/null and b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi/inhand-right.png differ diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi/meta.json b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi/meta.json new file mode 100644 index 000000000000..845fc2d12b9a --- /dev/null +++ b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/psychologist.rsi/meta.json @@ -0,0 +1,30 @@ +{ + "version": 1, + "license": "EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt", + "copyright": "Sprite by funny_mushroom (Discord) for SS220", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-INNERCLOTHING-monkey", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown0.png b/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown0.png new file mode 100644 index 000000000000..bfb8ea8b72a0 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown0.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown1.png b/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown1.png new file mode 100644 index 000000000000..d1747a3303f7 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown1.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown2.png b/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown2.png new file mode 100644 index 000000000000..bfb8ea8b72a0 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown2.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown3.png b/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown3.png new file mode 100644 index 000000000000..d1747a3303f7 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown3.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown4.png b/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown4.png new file mode 100644 index 000000000000..9d556787de44 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown4.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown5.png b/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown5.png new file mode 100644 index 000000000000..1667bf7fb986 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown5.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown6.png b/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown6.png new file mode 100644 index 000000000000..9d556787de44 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown6.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown7.png b/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown7.png new file mode 100644 index 000000000000..16815d69fc92 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/clown.rsi/clown7.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/clown.rsi/full.png b/Resources/Textures/SS220/Structures/Walls/clown.rsi/full.png new file mode 100644 index 000000000000..adfe0c97dd25 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/clown.rsi/full.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/clown.rsi/meta.json b/Resources/Textures/SS220/Structures/Walls/clown.rsi/meta.json new file mode 100644 index 000000000000..1dfc54bd2ced --- /dev/null +++ b/Resources/Textures/SS220/Structures/Walls/clown.rsi/meta.json @@ -0,0 +1,46 @@ +{ + "version": 1, + "license": "EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt", + "copyright": "by MIXnikita (Github) for SS220", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "clown0", + "directions": 4 + }, + { + "name": "clown1", + "directions": 4 + }, + { + "name": "clown2", + "directions": 4 + }, + { + "name": "clown3", + "directions": 4 + }, + { + "name": "clown4", + "directions": 4 + }, + { + "name": "clown5", + "directions": 4 + }, + { + "name": "clown6", + "directions": 4 + }, + { + "name": "clown7", + "directions": 4 + }, + { + "name": "full" + } + ] +} diff --git a/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/full.png b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/full.png new file mode 100644 index 000000000000..1a32c980e707 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/full.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/meta.json b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/meta.json new file mode 100644 index 000000000000..c9206d58ce69 --- /dev/null +++ b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/meta.json @@ -0,0 +1,46 @@ +{ + "version": 1, + "license": "EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt", + "copyright": "by MIXnikita (Github) for SS220", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "sandstone0", + "directions": 4 + }, + { + "name": "sandstone1", + "directions": 4 + }, + { + "name": "sandstone2", + "directions": 4 + }, + { + "name": "sandstone3", + "directions": 4 + }, + { + "name": "sandstone4", + "directions": 4 + }, + { + "name": "sandstone5", + "directions": 4 + }, + { + "name": "sandstone6", + "directions": 4 + }, + { + "name": "sandstone7", + "directions": 4 + }, + { + "name": "full" + } + ] +} diff --git a/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone0.png b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone0.png new file mode 100644 index 000000000000..d1c7a8fde5c7 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone0.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone1.png b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone1.png new file mode 100644 index 000000000000..8f378547d068 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone1.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone2.png b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone2.png new file mode 100644 index 000000000000..d1c7a8fde5c7 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone2.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone3.png b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone3.png new file mode 100644 index 000000000000..8f378547d068 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone3.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone4.png b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone4.png new file mode 100644 index 000000000000..5b98682b483a Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone4.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone5.png b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone5.png new file mode 100644 index 000000000000..4584318a101a Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone5.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone6.png b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone6.png new file mode 100644 index 000000000000..5b98682b483a Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone6.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone7.png b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone7.png new file mode 100644 index 000000000000..16815d69fc92 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/sandstone.rsi/sandstone7.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/wood.rsi/full.png b/Resources/Textures/SS220/Structures/Walls/wood.rsi/full.png new file mode 100644 index 000000000000..6a4d5ff625a0 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/wood.rsi/full.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/wood.rsi/meta.json b/Resources/Textures/SS220/Structures/Walls/wood.rsi/meta.json new file mode 100644 index 000000000000..adfde86f1d4e --- /dev/null +++ b/Resources/Textures/SS220/Structures/Walls/wood.rsi/meta.json @@ -0,0 +1,46 @@ +{ + "version": 1, + "license": "EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt", + "copyright": "by MIXnikita (Github) for SS220", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "wood0", + "directions": 4 + }, + { + "name": "wood1", + "directions": 4 + }, + { + "name": "wood2", + "directions": 4 + }, + { + "name": "wood3", + "directions": 4 + }, + { + "name": "wood4", + "directions": 4 + }, + { + "name": "wood5", + "directions": 4 + }, + { + "name": "wood6", + "directions": 4 + }, + { + "name": "wood7", + "directions": 4 + }, + { + "name": "full" + } + ] +} diff --git a/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood0.png b/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood0.png new file mode 100644 index 000000000000..41a76d28284b Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood0.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood1.png b/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood1.png new file mode 100644 index 000000000000..8c6f23400977 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood1.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood2.png b/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood2.png new file mode 100644 index 000000000000..41a76d28284b Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood2.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood3.png b/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood3.png new file mode 100644 index 000000000000..8c6f23400977 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood3.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood4.png b/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood4.png new file mode 100644 index 000000000000..12949dc70d1b Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood4.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood5.png b/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood5.png new file mode 100644 index 000000000000..954dd0cb1f73 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood5.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood6.png b/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood6.png new file mode 100644 index 000000000000..12949dc70d1b Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood6.png differ diff --git a/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood7.png b/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood7.png new file mode 100644 index 000000000000..16815d69fc92 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Walls/wood.rsi/wood7.png differ diff --git a/Resources/clientCommandPerms.yml b/Resources/clientCommandPerms.yml index ccd7669beca2..ad47062f0c12 100644 --- a/Resources/clientCommandPerms.yml +++ b/Resources/clientCommandPerms.yml @@ -8,7 +8,6 @@ - hardquit - svbind - bind - - exec # macro moment - cls - vram - monitor @@ -73,6 +72,7 @@ - detachent - localdelete - fullstatereset + - exec # macro moment #SS220 exec-command-perms-change - Flags: MAPPING Commands: