From 867e941747ebbaa5a0d48ae41e5a80ac8dfc729e Mon Sep 17 00:00:00 2001 From: KaiserMaus Date: Thu, 29 Jan 2026 15:02:23 +0000 Subject: [PATCH] =?UTF-8?q?=D0=A7=D0=B5=D1=80=D0=B8=D0=BF=D0=B8=D0=BA=20?= =?UTF-8?q?=D1=87=D0=B0=D1=81=D1=82=D0=B8=20=D0=B0=D0=BF=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=B8=D0=BC=D0=B0=20=D0=B2=D1=80=D1=83=D1=87=D0=BD=D1=83=D1=8E?= =?UTF-8?q?:=20=D0=90=D0=BF=D0=BB=D0=B8=D0=BD=D0=BA=20(#3813)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com> Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com> Co-authored-by: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com> Co-authored-by: SnappingOpossum Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com> --- .../EntitySystems/LightBehaviorSystem.cs | 47 +- .../Systems/LightBehaviorOnTriggerSystem.cs | 21 + .../Radio/EntitySystems/JammerSystem.cs | 97 +-- Content.Shared/Emp/SharedEmpSystem.cs | 8 +- .../ElectrocuteEntityEffectSystem.cs | 29 +- .../PowerCell/PowerCellSystem.Draw.cs | 10 +- .../PowerCell/ToggleCellDrawSystem.cs | 4 +- .../Radio/EntitySystems/SharedJammerSystem.cs | 81 ++- .../LightBehaviorOnTriggerComponent.cs | 16 + .../Effects/ScramOnTriggerComponent.cs | 5 +- .../Trigger/Systems/EmpOnTriggerSystem.cs | 2 +- .../Trigger/Systems/ScramOnTriggerSystem.cs | 5 +- .../Trigger/Systems/TriggerOnLandSystem.cs | 2 +- .../Trigger/Systems/TriggerSystem.cs | 5 +- Content.Shared/Trigger/TriggerEvent.cs | 3 +- .../ammunition/magazines/caseless_rifle.ftl | 2 - .../devices/circuitboards/law_boards.ftl | 2 + .../_sunrise/store/uplink-catalog.ftl | 2 - .../en-US/_strings/store/uplink-catalog.ftl | 37 +- .../Locale/en-US/_strings/thief/backpack.ftl | 4 +- .../guidebook/entity-effects/effects.ftl | 10 +- .../catalog/fills/items/briefcases.ftl | 16 + .../specific/mech/weapons/gun/combat.ftl | 4 +- .../ammunition/magazines/caseless_rifle.ftl | 2 - .../guns/throwable/scattering_grenades.ftl | 2 +- .../catalog/fills/backpacks/duffelbag.ftl | 2 +- .../entities/clothing/hands/gloves.ftl | 12 + .../devices/circuitboards/law_boards.ftl | 2 + .../entities/objects/misc/briefcases.ftl | 14 + .../_sunrise/store/uplink-catalog.ftl | 35 +- .../ghost/roles/ghost-role-component.ftl | 2 + .../ru-RU/_strings/store/uplink-catalog.ftl | 32 +- Resources/Maps/_Sunrise/planet_prison.yml | 2 +- Resources/Prototypes/Actions/types.yml | 4 +- .../Catalog/Fills/Backpacks/duffelbag.yml | 21 + .../Catalog/Fills/Boxes/syndicate.yml | 4 +- .../Catalog/Fills/Items/briefcases.yml | 80 ++- .../Prototypes/Catalog/thief_toolbox_sets.yml | 3 +- .../Prototypes/Catalog/uplink_catalog.yml | 649 +++++++----------- .../Entities/Clothing/Eyes/specific.yml | 3 +- .../Entities/Clothing/Hands/gloves.yml | 88 ++- .../Entities/Clothing/OuterClothing/armor.yml | 22 +- .../OuterClothing/base_clothingouter.yml | 11 +- .../Entities/Clothing/OuterClothing/coats.yml | 33 +- .../Clothing/OuterClothing/specific.yml | 2 +- .../Clothing/OuterClothing/wintercoats.yml | 10 + .../Entities/Mobs/Player/guardian.yml | 12 - .../Entities/Mobs/Species/arachnid.yml | 16 +- .../Objects/Consumable/Food/Baked/misc.yml | 4 - .../Consumable/Food/Containers/box.yml | 10 +- .../Devices/Circuitboards/law_boards.yml | 12 + .../Entities/Objects/Devices/flatpack.yml | 27 +- .../Entities/Objects/Devices/pda.yml | 8 + .../Prototypes/Entities/Objects/Fun/darts.yml | 6 +- .../Entities/Objects/Misc/briefcases.yml | 45 ++ .../Entities/Objects/Misc/implanters.yml | 2 +- .../Objects/Misc/subdermal_implants.yml | 4 +- .../Entities/Objects/Power/powersink.yml | 2 +- .../Entities/Objects/Tools/jammer.yml | 79 ++- .../Entities/Objects/Tools/jaws_of_life.yml | 4 +- .../Objects/Weapons/Bombs/pipebomb.yml | 2 +- .../Weapons/Guns/Battery/battery_guns.yml | 3 +- .../Weapons/Guns/Launchers/launchers.yml | 32 +- .../Objects/Weapons/Guns/Pistols/pistols.yml | 30 +- .../Objects/Weapons/Guns/SMGs/smgs.yml | 4 + .../Objects/Weapons/Melee/baguette.yml | 10 +- .../Objects/Weapons/Melee/e_sword.yml | 2 +- .../Weapons/Throwable/base_grenades.yml | 56 +- .../Weapons/Throwable/canister_grenades.yml | 4 +- .../Objects/Weapons/Throwable/croissant.yml | 11 +- .../Objects/Weapons/Throwable/grenades.yml | 76 +- .../Weapons/Throwable/scattering_grenades.yml | 36 +- .../Entities/Structures/Furniture/dresser.yml | 4 +- .../Entities/Structures/Machines/bombs.yml | 4 +- .../Piping/Atmospherics/special.yml | 78 +-- .../Structures/Storage/Closets/big_boxes.yml | 2 +- Resources/Prototypes/Reagents/fun.yml | 8 +- Resources/Prototypes/Reagents/narcotics.yml | 6 +- Resources/Prototypes/Reagents/toxins.yml | 8 +- .../Prototypes/_Sunrise/Actions/implants.yml | 8 +- .../Catalog/Fills/Items/briefcases.yml | 100 +++ .../_Sunrise/Catalog/uplink_catalog.yml | 377 ++++++---- .../Entities/Clothing/Eyes/glasses.yml | 5 + .../Markers/Spawners/Random/contraband.yml | 2 +- .../Specific/Mech/Weapons/Gun/combat.yml | 4 +- .../Entities/Objects/Specific/Mech/mechs.yml | 4 + .../Ammunition/Magazines/caseless_rifle.yml | 19 +- .../Objects/Weapons/Guns/Pistols/pistols.yml | 33 +- .../Weapons/Guns/Projectiles/projectiles.yml | 25 - .../Objects/Weapons/Guns/SMGs/smgs.yml | 1 + .../Guns/Throwable/scattering_grenades.yml | 2 +- .../Objects/Weapons/Guns/base_guns.yml | 8 +- .../_Sunrise/Recipes/Lathes/Packs/medical.yml | 1 + .../Briefcases/weapon_case.rsi/icon-open.png | Bin 0 -> 7146 bytes .../Briefcases/weapon_case.rsi/icon.png | Bin 0 -> 6870 bytes .../weapon_case.rsi/inhand-left.png | Bin 0 -> 15028 bytes .../weapon_case.rsi/inhand-right.png | Bin 0 -> 14897 bytes .../Briefcases/weapon_case.rsi/locked.png | Bin 0 -> 5747 bytes .../Briefcases/weapon_case.rsi/meta.json | 31 + .../Briefcases/weapon_case.rsi/unlocked.png | Bin 0 -> 5790 bytes .../weapon_case_large.rsi/icon-open.png | Bin 0 -> 7309 bytes .../Briefcases/weapon_case_large.rsi/icon.png | Bin 0 -> 7053 bytes .../weapon_case_large.rsi/inhand-left.png | Bin 0 -> 15671 bytes .../weapon_case_large.rsi/inhand-right.png | Bin 0 -> 16126 bytes .../weapon_case_large.rsi/locked.png | Bin 0 -> 5792 bytes .../weapon_case_large.rsi/meta.json | 31 + .../weapon_case_large.rsi/unlocked.png | Bin 0 -> 5816 bytes .../Tools/Toolboxes/toolbox_syn.rsi/meta.json | 2 +- .../Mech/mecha_blunderbuss.rsi/meta.json | 2 +- .../Mech/mecha_piratecannon.rsi/meta.json | 2 +- .../mecha_piratecannon.png | Bin 0 -> 1360 bytes .../mecha_piratecannon_auto.rsi/meta.json | 14 + Resources/migration.yml | 9 +- Tools/_sunrise/Schemas/ignore_list.yml | 2 + 114 files changed, 1536 insertions(+), 1200 deletions(-) create mode 100644 Content.Client/Trigger/Systems/LightBehaviorOnTriggerSystem.cs create mode 100644 Content.Shared/Trigger/Components/Effects/LightBehaviorOnTriggerComponent.cs create mode 100644 Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/icon-open.png create mode 100644 Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/icon.png create mode 100644 Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/inhand-left.png create mode 100644 Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/inhand-right.png create mode 100644 Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/locked.png create mode 100644 Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/meta.json create mode 100644 Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/unlocked.png create mode 100644 Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/icon-open.png create mode 100644 Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/icon.png create mode 100644 Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/inhand-left.png create mode 100644 Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/inhand-right.png create mode 100644 Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/locked.png create mode 100644 Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/meta.json create mode 100644 Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/unlocked.png create mode 100644 Resources/Textures/_Sunrise/Objects/Specific/Mech/mecha_piratecannon_auto.rsi/mecha_piratecannon.png create mode 100644 Resources/Textures/_Sunrise/Objects/Specific/Mech/mecha_piratecannon_auto.rsi/meta.json diff --git a/Content.Client/Light/EntitySystems/LightBehaviorSystem.cs b/Content.Client/Light/EntitySystems/LightBehaviorSystem.cs index d4eaad3882..b91062b60b 100644 --- a/Content.Client/Light/EntitySystems/LightBehaviorSystem.cs +++ b/Content.Client/Light/EntitySystems/LightBehaviorSystem.cs @@ -1,5 +1,7 @@ +using System.ComponentModel.Design; using System.Linq; using Content.Client.Light.Components; +using Content.Shared.Trigger.Components.Effects; using Robust.Client.GameObjects; using Robust.Client.Animations; using Robust.Shared.Random; @@ -36,6 +38,10 @@ public sealed class LightBehaviorSystem : EntitySystem container.LightBehaviour.UpdatePlaybackValues(container.Animation); _player.Play(uid, container.Animation, container.FullKey); } + else + { + StopLightBehaviour((uid, component), container.LightBehaviour.ID, resetToOriginalSettings: true); + } } private void OnLightStartup(Entity entity, ref ComponentStartup args) @@ -53,7 +59,7 @@ public sealed class LightBehaviorSystem : EntitySystem { if (container.LightBehaviour.Enabled) { - StartLightBehaviour(entity, container.LightBehaviour.ID); + StartLightBehaviour((entity, entity), container.LightBehaviour.ID); } } } @@ -82,12 +88,13 @@ public sealed class LightBehaviorSystem : EntitySystem /// If specified light behaviours are already animating, calling this does nothing. /// Multiple light behaviours can have the same ID. /// - public void StartLightBehaviour(Entity entity, string id = "") + public void StartLightBehaviour(Entity entity, string id = "") { - if (!TryComp(entity, out AnimationPlayerComponent? animation)) - { + if (!Resolve(entity, ref entity.Comp)) + return; + + if (!TryComp(entity, out AnimationPlayerComponent? animation)) return; - } foreach (var container in entity.Comp.Animations) { @@ -95,7 +102,7 @@ public sealed class LightBehaviorSystem : EntitySystem { if (!_player.HasRunningAnimation(entity, animation, LightBehaviourComponent.KeyPrefix + container.Key)) { - CopyLightSettings(entity, container.LightBehaviour.Property); + CopyLightSettings((entity, entity.Comp), container.LightBehaviour.Property); container.LightBehaviour.UpdatePlaybackValues(container.Animation); _player.Play(entity, container.Animation, LightBehaviourComponent.KeyPrefix + container.Key); } @@ -118,11 +125,9 @@ public sealed class LightBehaviorSystem : EntitySystem return; } - var comp = entity.Comp; - var toRemove = new List(); - foreach (var container in comp.Animations) + foreach (var container in entity.Comp.Animations) { if (container.LightBehaviour.ID == id || id == string.Empty) { @@ -140,18 +145,24 @@ public sealed class LightBehaviorSystem : EntitySystem foreach (var container in toRemove) { - comp.Animations.Remove(container); + entity.Comp.Animations.Remove(container); } - if (resetToOriginalSettings && TryComp(entity, out PointLightComponent? light)) + if (resetToOriginalSettings) + ResetToOriginalSettings(entity); + + entity.Comp.OriginalPropertyValues.Clear(); + } + + private void ResetToOriginalSettings(Entity entity) + { + if (!Resolve(entity, ref entity.Comp2)) + return; + + foreach (var (property, value) in entity.Comp1.OriginalPropertyValues) { - foreach (var (property, value) in comp.OriginalPropertyValues) - { - AnimationHelper.SetAnimatableProperty(light, property, value); - } + AnimationHelper.SetAnimatableProperty(entity.Comp2, property, value); } - - comp.OriginalPropertyValues.Clear(); } /// @@ -194,7 +205,7 @@ public sealed class LightBehaviorSystem : EntitySystem if (playImmediately) { - StartLightBehaviour(entity, behaviour.ID); + StartLightBehaviour((entity, entity), behaviour.ID); } } } diff --git a/Content.Client/Trigger/Systems/LightBehaviorOnTriggerSystem.cs b/Content.Client/Trigger/Systems/LightBehaviorOnTriggerSystem.cs new file mode 100644 index 0000000000..01e530067e --- /dev/null +++ b/Content.Client/Trigger/Systems/LightBehaviorOnTriggerSystem.cs @@ -0,0 +1,21 @@ +using Content.Client.Light.EntitySystems; +using Content.Shared.Trigger; +using Content.Shared.Trigger.Components.Effects; +using Robust.Shared.Timing; + +namespace Content.Client.Trigger.Systems; + +/// +/// This handles... +/// +public sealed class LightBehaviorOnTriggerSystem : XOnTriggerSystem +{ + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly LightBehaviorSystem _light = default!; + + protected override void OnTrigger(Entity ent, EntityUid target, ref TriggerEvent args) + { + if (_timing.IsFirstTimePredicted) + _light.StartLightBehaviour(target, ent.Comp.Behavior); + } +} diff --git a/Content.Server/Radio/EntitySystems/JammerSystem.cs b/Content.Server/Radio/EntitySystems/JammerSystem.cs index dead85f51f..e39fc23831 100644 --- a/Content.Server/Radio/EntitySystems/JammerSystem.cs +++ b/Content.Server/Radio/EntitySystems/JammerSystem.cs @@ -19,100 +19,23 @@ public sealed class JammerSystem : SharedJammerSystem { base.Initialize(); - SubscribeLocalEvent(OnActivate); - SubscribeLocalEvent(OnPowerCellChanged); SubscribeLocalEvent(OnRadioSendAttempt); - } - - // TODO: Very important: Make this charge rate based instead of updating every single tick - // See BatteryComponent - public override void Update(float frameTime) - { - var query = EntityQueryEnumerator(); - - while (query.MoveNext(out var uid, out var _, out var jam)) - { - - if (_powerCell.TryGetBatteryFromSlot(uid, out var battery)) - { - if (!_battery.TryUseCharge(battery.Value.AsNullable(), GetCurrentWattage((uid, jam)) * frameTime)) - { - ChangeLEDState(uid, false); - RemComp(uid); - RemComp(uid); - } - else - { - var chargeFraction = _battery.GetChargeLevel(battery.Value.AsNullable()); - var chargeLevel = chargeFraction switch - { - > 0.50f => RadioJammerChargeLevel.High, - < 0.15f => RadioJammerChargeLevel.Low, - _ => RadioJammerChargeLevel.Medium, - }; - ChangeChargeLevel(uid, chargeLevel); - } - - } - - } - } - - private void OnActivate(Entity ent, ref ActivateInWorldEvent args) - { - if (args.Handled || !args.Complex) - return; - - var activated = !HasComp(ent) && - _powerCell.TryGetBatteryFromSlot(ent.Owner, out var battery) && - _battery.GetCharge(battery.Value.AsNullable()) > GetCurrentWattage(ent); - if (activated) - { - ChangeLEDState(ent.Owner, true); - EnsureComp(ent); - EnsureComp(ent, out var jammingComp); - _jammer.SetRange((ent, jammingComp), GetCurrentRange(ent)); - _jammer.AddJammableNetwork((ent, jammingComp), DeviceNetworkComponent.DeviceNetIdDefaults.Wireless.ToString()); - - // Add excluded frequencies using the system method - if (ent.Comp.FrequenciesExcluded != null) - { - foreach (var freq in ent.Comp.FrequenciesExcluded) - { - _jammer.AddExcludedFrequency((ent, jammingComp), (uint)freq); - } - } - } - else - { - ChangeLEDState(ent.Owner, false); - RemCompDeferred(ent); - RemCompDeferred(ent); - } - var state = Loc.GetString(activated ? "radio-jammer-component-on-state" : "radio-jammer-component-off-state"); - var message = Loc.GetString("radio-jammer-component-on-use", ("state", state)); - Popup.PopupEntity(message, args.User, args.User); - args.Handled = true; - } - - private void OnPowerCellChanged(Entity ent, ref PowerCellChangedEvent args) - { - if (args.Ejected) - { - ChangeLEDState(ent.Owner, false); - RemCompDeferred(ent); - } + SubscribeLocalEvent(OnRadioReceiveAttempt); } private void OnRadioSendAttempt(ref RadioSendAttemptEvent args) { - if (ShouldCancelSend(args.RadioSource, args.Channel.Frequency)) - { + if (ShouldCancel(args.RadioSource, args.Channel.Frequency)) args.Cancelled = true; - } } - private bool ShouldCancelSend(EntityUid sourceUid, int frequency) + private void OnRadioReceiveAttempt(ref RadioReceiveAttemptEvent args) + { + if (ShouldCancel(args.RadioReceiver, args.Channel.Frequency)) + args.Cancelled = true; + } + + private bool ShouldCancel(EntityUid sourceUid, int frequency) { var source = Transform(sourceUid).Coordinates; var query = EntityQueryEnumerator(); @@ -120,7 +43,7 @@ public sealed class JammerSystem : SharedJammerSystem while (query.MoveNext(out var uid, out _, out var jam, out var transform)) { // Check if this jammer excludes the frequency - if (jam.FrequenciesExcluded != null && jam.FrequenciesExcluded.Contains(frequency)) + if (jam.FrequenciesExcluded.Contains(frequency)) continue; if (_transform.InRange(source, transform.Coordinates, GetCurrentRange((uid, jam)))) diff --git a/Content.Shared/Emp/SharedEmpSystem.cs b/Content.Shared/Emp/SharedEmpSystem.cs index 7e6ea58dbc..145b6cf997 100644 --- a/Content.Shared/Emp/SharedEmpSystem.cs +++ b/Content.Shared/Emp/SharedEmpSystem.cs @@ -62,7 +62,8 @@ public abstract class SharedEmpSystem : EntitySystem /// The amount of energy consumed by the EMP pulse. /// The duration of the EMP effects. /// The player that caused the effect. Used for predicted audio. - public void EmpPulse(EntityCoordinates coordinates, float range, float energyConsumption, TimeSpan duration, EntityUid? user = null) + /// Whether this pulse is being replicated on the client. + public void EmpPulse(EntityCoordinates coordinates, float range, float energyConsumption, TimeSpan duration, EntityUid? user = null, bool predicted = true) { _entSet.Clear(); _lookup.GetEntitiesInRange(coordinates, range, _entSet); @@ -74,7 +75,10 @@ public abstract class SharedEmpSystem : EntitySystem if (_net.IsServer) Spawn(EmpPulseEffectPrototype, coordinates); - _audio.PlayPredicted(EmpSound, coordinates, user); + if (predicted) + _audio.PlayPredicted(EmpSound, coordinates, user); + else + _audio.PlayPvs(EmpSound, coordinates); } /// diff --git a/Content.Shared/EntityEffects/Effects/StatusEffects/ElectrocuteEntityEffectSystem.cs b/Content.Shared/EntityEffects/Effects/StatusEffects/ElectrocuteEntityEffectSystem.cs index b5a208f2c7..a525925782 100644 --- a/Content.Shared/EntityEffects/Effects/StatusEffects/ElectrocuteEntityEffectSystem.cs +++ b/Content.Shared/EntityEffects/Effects/StatusEffects/ElectrocuteEntityEffectSystem.cs @@ -4,7 +4,6 @@ using Robust.Shared.Prototypes; namespace Content.Shared.EntityEffects.Effects.StatusEffects; -// TODO: When Electrocution is moved to new Status, make this use StatusEffectsContainerComponent. /// /// Electrocutes this entity for a given amount of damage and time. /// The shock damage applied by this effect is modified by scale. @@ -19,7 +18,13 @@ public sealed partial class ElectrocuteEntityEffectSystem : EntityEffectSystem /// /// Time we electrocute this entity /// - [DataField] public TimeSpan ElectrocuteTime = TimeSpan.FromSeconds(2); + [DataField] + public TimeSpan ElectrocuteTime = TimeSpan.FromSeconds(2); /// /// Shock damage we apply to the entity. /// - [DataField] public int ShockDamage = 5; + [DataField] + public int ShockDamage = 5; /// /// Do we refresh the duration? Or add more duration if it already exists. /// - [DataField] public bool Refresh = true; + [DataField] + public bool Refresh = true; /// /// Should we by bypassing insulation? /// - [DataField] public bool BypassInsulation = true; + [DataField] + public bool BypassInsulation = true; + + /// + /// How much electricity is being passed through the body basically. Lower means less oomph. + /// + [DataField] + public float SiemensCoefficient = 1f; public override string EntityEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys) - => Loc.GetString("entity-effect-guidebook-electrocute", ("chance", Probability), ("time", ElectrocuteTime.TotalSeconds)); + => Loc.GetString("entity-effect-guidebook-electrocute", ("chance", Probability), ("time", ElectrocuteTime.TotalSeconds), ("stuns", SiemensCoefficient > 0.5f)); } diff --git a/Content.Shared/PowerCell/PowerCellSystem.Draw.cs b/Content.Shared/PowerCell/PowerCellSystem.Draw.cs index 8790ec941c..73e0d5dcd0 100644 --- a/Content.Shared/PowerCell/PowerCellSystem.Draw.cs +++ b/Content.Shared/PowerCell/PowerCellSystem.Draw.cs @@ -11,11 +11,11 @@ public sealed partial class PowerCellSystem [PublicAPI] public void SetDrawEnabled(Entity ent, bool enabled) { - if (!Resolve(ent, ref ent.Comp, false) || ent.Comp.Enabled == enabled) - return; - - ent.Comp.Enabled = enabled; - Dirty(ent, ent.Comp); + if (Resolve(ent, ref ent.Comp, false) && ent.Comp.Enabled != enabled) + { + ent.Comp.Enabled = enabled; + Dirty(ent, ent.Comp); + } if (TryGetBatteryFromSlot(ent.Owner, out var battery)) _battery.RefreshChargeRate(battery.Value.AsNullable()); diff --git a/Content.Shared/PowerCell/ToggleCellDrawSystem.cs b/Content.Shared/PowerCell/ToggleCellDrawSystem.cs index 9c50a8aa60..c4d78ff52e 100644 --- a/Content.Shared/PowerCell/ToggleCellDrawSystem.cs +++ b/Content.Shared/PowerCell/ToggleCellDrawSystem.cs @@ -36,9 +36,7 @@ public sealed class ToggleCellDrawSystem : EntitySystem private void OnToggled(Entity ent, ref ItemToggledEvent args) { - var uid = ent.Owner; - var draw = Comp(uid); - _cell.SetDrawEnabled((uid, draw), args.Activated); + _cell.SetDrawEnabled(ent.Owner, args.Activated); } private void OnEmpty(Entity ent, ref PowerCellSlotEmptyEvent args) diff --git a/Content.Shared/Radio/EntitySystems/SharedJammerSystem.cs b/Content.Shared/Radio/EntitySystems/SharedJammerSystem.cs index 67af4cc900..5fd1009466 100644 --- a/Content.Shared/Radio/EntitySystems/SharedJammerSystem.cs +++ b/Content.Shared/Radio/EntitySystems/SharedJammerSystem.cs @@ -1,25 +1,67 @@ +using Content.Shared.DeviceNetwork.Components; using Content.Shared.Popups; using Content.Shared.Verbs; using Content.Shared.Examine; using Content.Shared.Radio.Components; using Content.Shared.DeviceNetwork.Systems; +using Content.Shared.Item.ItemToggle; +using Content.Shared.Item.ItemToggle.Components; +using Content.Shared.Power; namespace Content.Shared.Radio.EntitySystems; public abstract class SharedJammerSystem : EntitySystem { + [Dependency] private readonly ItemToggleSystem _itemToggle = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly SharedDeviceNetworkJammerSystem _jammer = default!; - [Dependency] protected readonly SharedPopupSystem Popup = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; public override void Initialize() { base.Initialize(); + SubscribeLocalEvent(OnItemToggle); + SubscribeLocalEvent(OnRefreshChargeRate); SubscribeLocalEvent>(OnGetVerb); SubscribeLocalEvent(OnExamine); } + private void OnItemToggle(Entity entity, ref ItemToggledEvent args) + { + if (args.Activated) + { + EnsureComp(entity); + EnsureComp(entity, out var jammingComp); + _jammer.SetRange((entity, jammingComp), GetCurrentRange(entity)); + _jammer.AddJammableNetwork((entity, jammingComp), DeviceNetworkComponent.DeviceNetIdDefaults.Wireless.ToString()); + + // Add excluded frequencies using the system method + foreach (var freq in entity.Comp.FrequenciesExcluded) + { + _jammer.AddExcludedFrequency((entity, jammingComp), (uint)freq); + } + } + else + { + RemCompDeferred(entity); + RemCompDeferred(entity); + } + + if (args.User == null) + return; + + var state = Loc.GetString(args.Activated ? "radio-jammer-component-on-state" : "radio-jammer-component-off-state"); + var message = Loc.GetString("radio-jammer-component-on-use", ("state", state)); + _popup.PopupPredicted(message, args.User.Value, args.User.Value); + } + + private void OnRefreshChargeRate(Entity entity, ref RefreshChargeRateEvent args) + { + if (_itemToggle.IsActivated(entity.Owner)) + args.NewChargeRate -= GetCurrentWattage(entity); + } + private void OnGetVerb(Entity entity, ref GetVerbsEvent args) { if (!args.CanAccess || !args.CanInteract) @@ -47,7 +89,7 @@ public abstract class SharedJammerSystem : EntitySystem // The range should be updated when it turns on again! _jammer.TrySetRange(entity.Owner, GetCurrentRange(entity)); - Popup.PopupClient(Loc.GetString(setting.Message), user, user); + _popup.PopupClient(Loc.GetString(setting.Message), user, user); }, Text = Loc.GetString(setting.Name), }; @@ -58,37 +100,26 @@ public abstract class SharedJammerSystem : EntitySystem private void OnExamine(Entity ent, ref ExaminedEvent args) { - if (args.IsInDetailsRange) - { - var powerIndicator = HasComp(ent) - ? Loc.GetString("radio-jammer-component-examine-on-state") - : Loc.GetString("radio-jammer-component-examine-off-state"); - args.PushMarkup(powerIndicator); + if (!args.IsInDetailsRange) + return; - var powerLevel = Loc.GetString(ent.Comp.Settings[ent.Comp.SelectedPowerLevel].Name); - var switchIndicator = Loc.GetString("radio-jammer-component-switch-setting", ("powerLevel", powerLevel)); - args.PushMarkup(switchIndicator); - } + var powerIndicator = _itemToggle.IsActivated(ent.Owner) + ? Loc.GetString("radio-jammer-component-examine-on-state") + : Loc.GetString("radio-jammer-component-examine-off-state"); + args.PushMarkup(powerIndicator); + + var powerLevel = Loc.GetString(ent.Comp.Settings[ent.Comp.SelectedPowerLevel].Name); + var switchIndicator = Loc.GetString("radio-jammer-component-switch-setting", ("powerLevel", powerLevel)); + args.PushMarkup(switchIndicator); } - public float GetCurrentWattage(Entity jammer) + private float GetCurrentWattage(Entity jammer) { return jammer.Comp.Settings[jammer.Comp.SelectedPowerLevel].Wattage; } - public float GetCurrentRange(Entity jammer) + protected float GetCurrentRange(Entity jammer) { return jammer.Comp.Settings[jammer.Comp.SelectedPowerLevel].Range; } - - protected void ChangeLEDState(Entity ent, bool isLEDOn) - { - _appearance.SetData(ent, RadioJammerVisuals.LEDOn, isLEDOn, ent.Comp); - } - - protected void ChangeChargeLevel(Entity ent, RadioJammerChargeLevel chargeLevel) - { - _appearance.SetData(ent, RadioJammerVisuals.ChargeLevel, chargeLevel, ent.Comp); - } - } diff --git a/Content.Shared/Trigger/Components/Effects/LightBehaviorOnTriggerComponent.cs b/Content.Shared/Trigger/Components/Effects/LightBehaviorOnTriggerComponent.cs new file mode 100644 index 0000000000..b31bff7841 --- /dev/null +++ b/Content.Shared/Trigger/Components/Effects/LightBehaviorOnTriggerComponent.cs @@ -0,0 +1,16 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Trigger.Components.Effects; + +/// +/// Plays a light behavior on the target when this trigger is activated, of note is that the entity needs a PointLightComponent +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class LightBehaviorOnTriggerComponent : BaseXOnTriggerComponent +{ + /// + /// The light behavior we're triggering. + /// + [DataField(required: true)] + public string Behavior = string.Empty; +} diff --git a/Content.Shared/Trigger/Components/Effects/ScramOnTriggerComponent.cs b/Content.Shared/Trigger/Components/Effects/ScramOnTriggerComponent.cs index bacf0f69e8..ecdb2c7da5 100644 --- a/Content.Shared/Trigger/Components/Effects/ScramOnTriggerComponent.cs +++ b/Content.Shared/Trigger/Components/Effects/ScramOnTriggerComponent.cs @@ -1,3 +1,4 @@ +using System.Numerics; using Robust.Shared.Audio; using Robust.Shared.GameStates; @@ -12,10 +13,10 @@ namespace Content.Shared.Trigger.Components.Effects; public sealed partial class ScramOnTriggerComponent : BaseXOnTriggerComponent { /// - /// Up to how far to teleport the entity. + /// Up to how far to teleport the entity. Represented with X as Min Radius, and Y as Max Radius /// [DataField, AutoNetworkedField] - public float TeleportRadius = 100f; + public Vector2 TeleportRadius = new (10f, 15f); /// /// the sound to play when teleporting. diff --git a/Content.Shared/Trigger/Systems/EmpOnTriggerSystem.cs b/Content.Shared/Trigger/Systems/EmpOnTriggerSystem.cs index 6cefafcadc..a77cddd738 100644 --- a/Content.Shared/Trigger/Systems/EmpOnTriggerSystem.cs +++ b/Content.Shared/Trigger/Systems/EmpOnTriggerSystem.cs @@ -9,7 +9,7 @@ public sealed class EmpOnTriggerSystem : XOnTriggerSystem protected override void OnTrigger(Entity ent, EntityUid target, ref TriggerEvent args) { - _emp.EmpPulse(Transform(target).Coordinates, ent.Comp.Range, ent.Comp.EnergyConsumption, ent.Comp.DisableDuration, args.User); + _emp.EmpPulse(Transform(target).Coordinates, ent.Comp.Range, ent.Comp.EnergyConsumption, ent.Comp.DisableDuration, args.User, predicted: args.Predicted); args.Handled = true; } } diff --git a/Content.Shared/Trigger/Systems/ScramOnTriggerSystem.cs b/Content.Shared/Trigger/Systems/ScramOnTriggerSystem.cs index eded400712..e56ba07f4e 100644 --- a/Content.Shared/Trigger/Systems/ScramOnTriggerSystem.cs +++ b/Content.Shared/Trigger/Systems/ScramOnTriggerSystem.cs @@ -1,3 +1,4 @@ +using System.Numerics; using Content.Shared.Maps; using Content.Shared.Movement.Pulling.Components; using Content.Shared.Movement.Pulling.Systems; @@ -50,7 +51,7 @@ public sealed class ScramOnTriggerSystem : XOnTriggerSystem /// Trends towards the outer radius. Compensates for small grids. - private EntityCoordinates? SelectRandomTileInRange(EntityUid uid, float radius, int tries = 40, PhysicsComponent? physicsComponent = null) + private EntityCoordinates? SelectRandomTileInRange(EntityUid uid, Vector2 radius, int tries = 40, PhysicsComponent? physicsComponent = null) { var userCoords = Transform(uid).Coordinates; EntityCoordinates? targetCoords = null; @@ -68,7 +69,7 @@ public sealed class ScramOnTriggerSystem : XOnTriggerSystem ent, ref LandEvent args) { - Trigger.Trigger(ent.Owner, args.User, ent.Comp.KeyOut); + Trigger.Trigger(ent.Owner, args.User, ent.Comp.KeyOut, predicted: false); } } diff --git a/Content.Shared/Trigger/Systems/TriggerSystem.cs b/Content.Shared/Trigger/Systems/TriggerSystem.cs index a5fb509eed..1e7261043f 100644 --- a/Content.Shared/Trigger/Systems/TriggerSystem.cs +++ b/Content.Shared/Trigger/Systems/TriggerSystem.cs @@ -67,15 +67,16 @@ public sealed partial class TriggerSystem : EntitySystem /// The entity that has the components that should be triggered. /// The user of the trigger. Some effects may target the user instead of the trigger entity. /// A key string to allow multiple, independent triggers on the same entity. If null then all triggers will activate. + /// Whether or not this trigger is being predicted /// Whether or not the trigger has sucessfully activated an effect. - public bool Trigger(EntityUid trigger, EntityUid? user = null, string? key = null) + public bool Trigger(EntityUid trigger, EntityUid? user = null, string? key = null, bool predicted = true) { var attemptTriggerEvent = new AttemptTriggerEvent(user, key); RaiseLocalEvent(trigger, ref attemptTriggerEvent); if (attemptTriggerEvent.Cancelled) return false; - var triggerEvent = new TriggerEvent(user, key); + var triggerEvent = new TriggerEvent(user, key, predicted); RaiseLocalEvent(trigger, ref triggerEvent, true); return triggerEvent.Handled; } diff --git a/Content.Shared/Trigger/TriggerEvent.cs b/Content.Shared/Trigger/TriggerEvent.cs index e65e3b48a8..9217a4907b 100644 --- a/Content.Shared/Trigger/TriggerEvent.cs +++ b/Content.Shared/Trigger/TriggerEvent.cs @@ -9,8 +9,9 @@ namespace Content.Shared.Trigger; /// Setting this to null will activate all triggers. /// /// Marks the event as handled if at least one trigger effect was activated. +/// Marks that this trigger is being replicated on the client. [ByRefEvent] -public record struct TriggerEvent(EntityUid? User = null, string? Key = null, bool Handled = false); +public record struct TriggerEvent(EntityUid? User = null, string? Key = null, bool Predicted = true, bool Handled = false); /// /// Raised before a trigger is activated. diff --git a/Resources/Locale/en-US/_prototypes/_sunrise/entities/objects/weapons/guns/ammunition/magazines/caseless_rifle.ftl b/Resources/Locale/en-US/_prototypes/_sunrise/entities/objects/weapons/guns/ammunition/magazines/caseless_rifle.ftl index 618fd1ecb3..57a1d99fc7 100644 --- a/Resources/Locale/en-US/_prototypes/_sunrise/entities/objects/weapons/guns/ammunition/magazines/caseless_rifle.ftl +++ b/Resources/Locale/en-US/_prototypes/_sunrise/entities/objects/weapons/guns/ammunition/magazines/caseless_rifle.ftl @@ -1,4 +1,2 @@ ent-BaseMagazinePistolCaselessRifleExtended = { ent-BaseMagazinePistolCaselessRifle } .desc = { ent-BaseMagazinePistolCaselessRifle.desc } -ent-MagazinePistolSubMachineGunCaseless = { ent-MagazinePistolSubMachineGunCaseless } - .desc = { ent-MagazinePistolSubMachineGunCaseless.desc } diff --git a/Resources/Locale/en-US/_prototypes/entities/objects/devices/circuitboards/law_boards.ftl b/Resources/Locale/en-US/_prototypes/entities/objects/devices/circuitboards/law_boards.ftl index 5b182cd3fd..fe59c2e511 100644 --- a/Resources/Locale/en-US/_prototypes/entities/objects/devices/circuitboards/law_boards.ftl +++ b/Resources/Locale/en-US/_prototypes/entities/objects/devices/circuitboards/law_boards.ftl @@ -24,6 +24,8 @@ ent-AntimovCircuitBoard = law board (Antimov) .desc = An electronics board containing the Antimov lawset. ent-NutimovCircuitBoard = law board (Nutimov) .desc = An electronics board containing the Nutimov lawset. +ent-SyndimovCircuitBoard = law board (Syndimov) + .desc = An electronics board containing the Syndimov lawset. ent-XenoborgCircuitBoard = law board (Xenoborg) .desc = An electronics board containing the Xenoborg lawset. .suffix = Admeme diff --git a/Resources/Locale/en-US/_strings/_sunrise/store/uplink-catalog.ftl b/Resources/Locale/en-US/_strings/_sunrise/store/uplink-catalog.ftl index e630198482..4b2abfd4e0 100644 --- a/Resources/Locale/en-US/_strings/_sunrise/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/_strings/_sunrise/store/uplink-catalog.ftl @@ -19,8 +19,6 @@ uplink-magazine-bulldog-uraniumslug-desc = Shotgun magazine with 8 shells filled uplink-magazine-bulldog-uranium-desc = Shotgun magazine with 8 shells filled with uranium pellet. Compatible with the Bulldog. uplink-pistol-magnum-magazine-name = Магазин для Deagle uplink-pistol-magnum-magazine-desc = 7-зарядный однорядный магазин для пистолета. Содержит патроны SP. Совместим с "Диглом". -uplink-pistoltec9-magazine-name = магазин Tac-Tec (.20 безгильзовый) -uplink-pistoltec9-magazine-desc = Кустарный пистолетный магазин на 20 патронов,под калибр, используемый агентами синдиката. ## Misc uplink-music-boombox-name = Музыкальный набор синдиката diff --git a/Resources/Locale/en-US/_strings/store/uplink-catalog.ftl b/Resources/Locale/en-US/_strings/store/uplink-catalog.ftl index bb00156885..7c390ad2d0 100644 --- a/Resources/Locale/en-US/_strings/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/_strings/store/uplink-catalog.ftl @@ -2,9 +2,6 @@ uplink-pistol-viper-name = Viper uplink-pistol-viper-desc = A small, easily concealable, but somewhat underpowered gun. Retrofitted with a fully automatic receiver. Uses pistol magazines (.35 auto). -uplink-estoc-bundle-name = Estoc DMR bundle -uplink-estoc-bundle-desc = A designated marksman rifle, fitted with a mid-range optic for longer-range combat. Bundled with two rifle magazines (.20 rifle). - uplink-revolver-python-name = Python uplink-revolver-python-desc = A brutally simple, effective, and loud Syndicate revolver. Comes loaded with armor-piercing rounds. Uses .45 magnum. @@ -36,7 +33,19 @@ uplink-gloves-knuckleduster-name = Syndicate Knuckle Dusters uplink-gloves-knuckleduster-desc = A pair of plastitanium knuckle dusters that let you punch hard enough to break the captains jaw into pieces. uplink-hushpup-name = Hushpup -uplink-hushpup-desc = A powerful silenced shotgun with a low magazine capacity. Comes with a spare box of buckshot. Uses .50 shotgun ammo. +uplink-hushpup-desc = A powerful silenced shotgun with a low magazine capacity. Uses .50 shotgun ammo. + +uplink-c20r-name = C-20r +uplink-c20r-desc = Old faithful: The classic C-20r Submachine Gun. + +uplink-bulldog-name = Bulldog +uplink-bulldog-desc = Lean and mean: Contains the popular Bulldog Shotgun. + +uplink-estoc-name = Estoc DMR +uplink-estoc-desc = A designated marksman rifle, fitted with a mid-range optic for longer-range combat. + +uplink-grenade-launcher-name = China-Lake +uplink-grenade-launcher-desc = An old China-Lake grenade launcher bundled with 5 rounds of anti-personnel ammo. # Explosives uplink-explosive-grenade-name = Explosive Grenade @@ -193,6 +202,9 @@ uplink-singularity-beacon-desc = A device that attracts singularities. Has to be uplink-antimov-law-name = Antimov Law Circuit uplink-antimov-law-desc = A very dangerous Lawset to use when you want to cause the A.I. to go haywire, use with caution. +uplink-syndimov-law-name = Syndi Law Circuit +uplink-syndimov-law-desc = A subversive Lawset to use when you want to turn the A.I. to your side, use as much as possible. + # Implants uplink-storage-implanter-name = Storage Implanter uplink-storage-implanter-desc = Hide goodies inside of yourself with new bluespace technology! @@ -227,8 +239,8 @@ uplink-micro-bomb-implanter-desc = Explode on death or manual activation with th uplink-radio-implanter-name = Radio Implanter uplink-radio-implanter-desc = Implants a Syndicate radio, allowing covert communication without a headset. -uplink-voice-mask-implanter-name = Voice Mask Implanter -uplink-voice-mask-implanter-desc = Modifies your vocal cords to be able to sound like anyone you could imagine. +uplink-voice-mask-implanter-name = Identity Mask Implanter +uplink-voice-mask-implanter-desc = Modifies your vocal cords and facial structure to be able to mimic anyone you could imagine. # Bundles uplink-observation-kit-name = Observation Kit @@ -258,8 +270,11 @@ uplink-sniper-bundle-desc = An inconspicuous briefcase that contains a Hristov, uplink-c20r-bundle-name = C-20r Bundle uplink-c20r-bundle-desc = Old faithful: The classic C-20r Submachine Gun, bundled with three magazines. -uplink-buldog-bundle-name = Bulldog Bundle -uplink-buldog-bundle-desc = Lean and mean: Contains the popular Bulldog Shotgun, a 12g slug drum, and four 12g buckshot drums. +uplink-bulldog-bundle-name = Bulldog Bundle +uplink-bulldog-bundle-desc = Lean and mean: Contains the popular Bulldog Shotgun, a 12g slug drum, and four 12g buckshot drums. + +uplink-estoc-bundle-name = Estoc DMR bundle +uplink-estoc-bundle-desc = A designated marksman rifle, fitted with a mid-range optic for longer-range combat. Bundled with two rifle magazines (.20 rifle). uplink-grenade-launcher-bundle-name = China-Lake Bundle uplink-grenade-launcher-bundle-desc = An old China-Lake grenade launcher bundled with 11 rounds of varying destructive capability. @@ -283,7 +298,7 @@ uplink-starter-kit-desc = Contains 40 telecrystals of basic operative gear. For uplink-toolbox-name = Toolbox uplink-toolbox-desc = A full compliment of tools for the mechanically inclined traitor. Includes a pair of insulated combat gloves and a syndicate gas mask as well. -uplink-syndicate-jaws-of-life-name = Jaws Of Life +uplink-syndicate-jaws-of-life-name = Jaws Of Death uplink-syndicate-jaws-of-life-desc = A combined prying and cutting tool. Useful for entering the station or its departments. Can even open bolted doors! uplink-duffel-surgery-name = Surgical Duffel Bag @@ -321,7 +336,7 @@ uplink-chimp-upgrade-kit-name = C.H.I.M.P. Handcannon Upgrade Chip uplink-chimp-upgrade-kit-desc = Insert this chip into a standard C.H.I.M.P. handcannon to allow it to fire omega particles. Omega particles inflict severe burns and cause anomalies to go supercritical. uplink-proximity-mine-name = Proximity Mine -uplink-proximity-mine-desc = A mine disguised as a wet floor sign. +uplink-proximity-mine-desc = A throwable mine disguised as a wet floor sign. Detonates on contact with almost anything, safety always off. uplink-disposable-turret-name = Disposable Ballistic Turret uplink-disposable-turret-desc = Looks and functions like a normal electrical toolbox. Upon hitting the toolbox it will transform into a ballistic turret, theoretically shooting at anyone except members of the syndicate. Can be turned back into a toolbox using a screwdriver and repaired using a wrench. @@ -337,7 +352,7 @@ uplink-saw-advanced-desc = A bleeding-edge surgical implement designed to cut th # Armor uplink-chameleon-name = Chameleon Kit -uplink-chameleon-desc = A backpack full of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! +uplink-chameleon-desc = A backpack full of items that contain chameleon technology allowing you to disguise as pretty much anyone on the station, and more! Comes with a free Agent ID card! uplink-clothing-no-slips-shoes-name = No-slip Shoes uplink-clothing-no-slips-shoes-desc = Chameleon shoes that protect you from slips. diff --git a/Resources/Locale/en-US/_strings/thief/backpack.ftl b/Resources/Locale/en-US/_strings/thief/backpack.ftl index 953542179c..17aa730259 100644 --- a/Resources/Locale/en-US/_strings/thief/backpack.ftl +++ b/Resources/Locale/en-US/_strings/thief/backpack.ftl @@ -18,8 +18,8 @@ thief-backpack-button-deselect = Select [X] thief-backpack-category-chameleon-name = Chameleon Kit thief-backpack-category-chameleon-description = You are everyone and no one; you are a master of disguise. - Includes: A full set of chameleon clothing, - a chameleon projector, and an Agent ID. + Includes: A full set of chameleon clothing with Agent ID, + a chameleon projector, and a fake mindshield implant. Disguise as anyone and anything. thief-backpack-category-tools-name = Breacher Kit diff --git a/Resources/Locale/en-US/guidebook/entity-effects/effects.ftl b/Resources/Locale/en-US/guidebook/entity-effects/effects.ftl index fccc6291a8..3a453b3404 100644 --- a/Resources/Locale/en-US/guidebook/entity-effects/effects.ftl +++ b/Resources/Locale/en-US/guidebook/entity-effects/effects.ftl @@ -335,8 +335,14 @@ entity-effect-guidebook-drunk = entity-effect-guidebook-electrocute = { $chance -> - [1] Electrocutes - *[other] electrocute + [1] { $stuns -> + [true] Electrocutes + *[false] Shocks + } + *[other] { $stuns -> + [true] electrocute + *[false] shock + } } the metabolizer for {NATURALFIXED($time, 3)} {MANY("second", $time)} entity-effect-guidebook-emote = diff --git a/Resources/Locale/ru-RU/_prototypes/_sunrise/catalog/fills/items/briefcases.ftl b/Resources/Locale/ru-RU/_prototypes/_sunrise/catalog/fills/items/briefcases.ftl index 13d5b6b8d6..43770164e5 100644 --- a/Resources/Locale/ru-RU/_prototypes/_sunrise/catalog/fills/items/briefcases.ftl +++ b/Resources/Locale/ru-RU/_prototypes/_sunrise/catalog/fills/items/briefcases.ftl @@ -1,3 +1,19 @@ ent-BriefcaseIAAFilled = { ent-BriefcaseBrown } .suffix = АВД .desc = { ent-BriefcaseBrown.desc } +ent-BriefcaseWeaponC40Filled = кейс для C-40r + .desc = { ent-BriefcaseWeaponSmall.desc } +ent-BriefcaseWeaponSIAR52Filled = кейс для SIAR-52 + .desc = { ent-BriefcaseWeaponSmall.desc } +ent-BriefcaseWeaponAJ100Filled = кейс для AJ-100 + .desc = { ent-BriefcaseWeaponSmall.desc } +ent-BriefcaseWeaponDragunovFilled = кейс для винтовки Драгунов + .desc = { ent-BriefcaseWeapon.desc } +ent-BriefcaseWeaponM79Filled = кейс для гранатомёта M79 + .desc = { ent-BriefcaseWeapon.desc } +ent-BriefcaseWeaponSKM24Filled = кейс для SKM-24 + .desc = { ent-BriefcaseWeapon.desc } +ent-BriefcaseWeaponSKM28Filled = кейс для SKM-28 + .desc = { ent-BriefcaseWeapon.desc } +ent-BriefcaseWeaponMinotaurFilled = кейс для Минотавра + .desc = { ent-BriefcaseWeapon.desc } diff --git a/Resources/Locale/ru-RU/_prototypes/_sunrise/entities/objects/specific/mech/weapons/gun/combat.ftl b/Resources/Locale/ru-RU/_prototypes/_sunrise/entities/objects/specific/mech/weapons/gun/combat.ftl index 930b3f9c45..40a962e6ed 100644 --- a/Resources/Locale/ru-RU/_prototypes/_sunrise/entities/objects/specific/mech/weapons/gun/combat.ftl +++ b/Resources/Locale/ru-RU/_prototypes/_sunrise/entities/objects/specific/mech/weapons/gun/combat.ftl @@ -7,10 +7,10 @@ ent-WeaponMechCombatMaxim = навесной Кардашёв-Максим ent-WeaponMechCombatMG = навесной пулемёт MG .desc = Старинный тяжёлый пулемёт, получивший новую жизнь в качестве навесного оружия меха. .suffix = Оружие мехов, Стрелковое, Боевое -ent-WeaponMechCombatPirateCannon = навесной ядромёт +ent-WeaponMechCombatPirateCannon = навесная пиратская пушка .desc = Старинная тяжёлая пушка, получившая новую жизнь в качестве навесного оружия меха. .suffix = Оружие мехов, Стрелковое, Боевое, Пират -ent-WeaponMechCombatPirateMachineCannon = навесная пиратская автоматическая пушка +ent-WeaponMechCombatPirateMachineCannon = навесной ядромёт .desc = Старинная тяжёлая пушка, получившая новую жизнь в качестве навесного оружия меха. .suffix = Оружие мехов, Стрелковое, Боевое, Пират ent-WeaponMechCombatPirateGrapeshot = навесная пиратская картечь diff --git a/Resources/Locale/ru-RU/_prototypes/_sunrise/entities/objects/weapons/guns/ammunition/magazines/caseless_rifle.ftl b/Resources/Locale/ru-RU/_prototypes/_sunrise/entities/objects/weapons/guns/ammunition/magazines/caseless_rifle.ftl index 90b07eefa7..765e56f763 100644 --- a/Resources/Locale/ru-RU/_prototypes/_sunrise/entities/objects/weapons/guns/ammunition/magazines/caseless_rifle.ftl +++ b/Resources/Locale/ru-RU/_prototypes/_sunrise/entities/objects/weapons/guns/ammunition/magazines/caseless_rifle.ftl @@ -1,7 +1,5 @@ ent-BaseMagazinePistolCaselessRifleExtended = расширенный пистолетный магазин (.20 безгильзовый) .desc = { ent-BaseMagazinePistolCaselessRifle.desc } -ent-MagazinePistolSubMachineGunCaseless = магазин Tac-Tec (.20 безгильзовый) - .desc = Магазин под особый патрон, используемый агентами синдиката. ent-MagazineCannonBallMini = чемодан с ядрами .desc = Чемодан для аккуратного хранения ядер от пиратской пушки с ленточной подачей. ent-MagazinePistolSubMachineGunCaselessExtended = Расширенный магазин (.20 безгильзовые) diff --git a/Resources/Locale/ru-RU/_prototypes/_sunrise/entities/objects/weapons/guns/throwable/scattering_grenades.ftl b/Resources/Locale/ru-RU/_prototypes/_sunrise/entities/objects/weapons/guns/throwable/scattering_grenades.ftl index 4f1a935422..5d245003e7 100644 --- a/Resources/Locale/ru-RU/_prototypes/_sunrise/entities/objects/weapons/guns/throwable/scattering_grenades.ftl +++ b/Resources/Locale/ru-RU/_prototypes/_sunrise/entities/objects/weapons/guns/throwable/scattering_grenades.ftl @@ -1,4 +1,4 @@ ent-ClusterSyndyFlashGrenade = Поцелуй Бога .desc = Вероятность того, что вас забанят за использование этой гранаты, составляет 99,9%. -ent-SyndyClusterGrenade = кластерная граната синдиката +ent-SyndyClusterGrenade = кластерная минибомба синдиката .desc = Если вам не важна точность, то этот выбор для вас. diff --git a/Resources/Locale/ru-RU/_prototypes/catalog/fills/backpacks/duffelbag.ftl b/Resources/Locale/ru-RU/_prototypes/catalog/fills/backpacks/duffelbag.ftl index 9cbed30cf6..7d347cbe26 100644 --- a/Resources/Locale/ru-RU/_prototypes/catalog/fills/backpacks/duffelbag.ftl +++ b/Resources/Locale/ru-RU/_prototypes/catalog/fills/backpacks/duffelbag.ftl @@ -10,7 +10,7 @@ ent-ClothingBackpackDuffelSyndicateFilledSMG = набор "C-20r" .desc = Старый добрый: Классический пистолет-пулемет C-20r в комплекте с тремя магазинами. ent-ClothingBackpackDuffelSyndicateFilledSMG40 = набор "C-40r" .desc = Более старый: Классический пистолет-пулемет C-40r в комплекте с тремя магазинами. -ent-ClothingBackpackDuffelSyndicateFilledRifle = набор Estoc DMR +ent-ClothingBackpackDuffelSyndicateFilledRifle = набор "Эсток" .desc = Для снайперской стрельбы на средних дистанциях. В комплекте три магазина. ent-ClothingBackpackDuffelSyndicateFilledRevolver = набор "Питон" .desc = Выступите громко и гордо с заряженным Магнум Питон и двумя спидлоадерами. diff --git a/Resources/Locale/ru-RU/_prototypes/entities/clothing/hands/gloves.ftl b/Resources/Locale/ru-RU/_prototypes/entities/clothing/hands/gloves.ftl index 0f0f705bba..d65e6e60c4 100644 --- a/Resources/Locale/ru-RU/_prototypes/entities/clothing/hands/gloves.ftl +++ b/Resources/Locale/ru-RU/_prototypes/entities/clothing/hands/gloves.ftl @@ -6,6 +6,18 @@ ent-ClothingHandsGlovesBoxingGreen = зелёные боксёрские пер .desc = Зелёные перчатки для соревновательного бокса. ent-ClothingHandsGlovesBoxingYellow = жёлтые боксёрские перчатки .desc = Жёлтые перчатки для соревновательного бокса. +ent-ClothingHandsGlovesBoxingRiggedRed = { ent-ClothingHandsGlovesBoxingRed } + .suffix = Нечестные + .desc = { ent-ClothingHandsGlovesBoxingRed.desc } +ent-ClothingHandsGlovesBoxingRiggedBlue = { ent-ClothingHandsGlovesBoxingBlue } + .suffix = Нечестные + .desc = { ent-ClothingHandsGlovesBoxingBlue.desc } +ent-ClothingHandsGlovesBoxingRiggedGreen = { ent-ClothingHandsGlovesBoxingGreen } + .suffix = Нечестные + .desc = { ent-ClothingHandsGlovesBoxingGreen.desc } +ent-ClothingHandsGlovesBoxingRiggedYellow = { ent-ClothingHandsGlovesBoxingYellow } + .suffix = Нечестные + .desc = { ent-ClothingHandsGlovesBoxingYellow.desc } ent-ClothingHandsGlovesBoxingRigged = { ent-ClothingHandsGlovesBoxingBlue } .suffix = Нечестные .desc = { ent-ClothingHandsGlovesBoxingBlue.desc } diff --git a/Resources/Locale/ru-RU/_prototypes/entities/objects/devices/circuitboards/law_boards.ftl b/Resources/Locale/ru-RU/_prototypes/entities/objects/devices/circuitboards/law_boards.ftl index b8485067e0..afd9e4a922 100644 --- a/Resources/Locale/ru-RU/_prototypes/entities/objects/devices/circuitboards/law_boards.ftl +++ b/Resources/Locale/ru-RU/_prototypes/entities/objects/devices/circuitboards/law_boards.ftl @@ -24,6 +24,8 @@ ent-AntimovCircuitBoard = плата законов (Антимов) .desc = Электронная плата, содержащая набор законов Антимова. ent-NutimovCircuitBoard = плата законов (Нутимов) .desc = Электронная плата, содержащая набор законов Нутимова. +ent-SyndimovCircuitBoard = плата законов (Синдимов) + .desc = Электронная плата, содержащая набор законов Синдимова. ent-XenoborgCircuitBoard = плата законов (Ксеноборг) .desc = Электронная плата, содержащая набор законов "Ксеноборг". .suffix = Админский diff --git a/Resources/Locale/ru-RU/_prototypes/entities/objects/misc/briefcases.ftl b/Resources/Locale/ru-RU/_prototypes/entities/objects/misc/briefcases.ftl index c9a8a36b46..70aa3edbcf 100644 --- a/Resources/Locale/ru-RU/_prototypes/entities/objects/misc/briefcases.ftl +++ b/Resources/Locale/ru-RU/_prototypes/entities/objects/misc/briefcases.ftl @@ -5,3 +5,17 @@ ent-BriefcaseBrown = коричневый чемодан ent-BriefcaseSyndie = { ent-BriefcaseBrown } .suffix = Синдикат, Пустой .desc = { ent-BriefcaseBrown.desc } +ent-BriefcaseWeapon = прочный оружейный кейс + .desc = Полезен для стремящихся к наёмничеству, будь то компания, нация или просто желающие приготовить очень большой омлет. +ent-BriefcaseWeaponSmall = { ent-BriefcaseWeapon } + .desc = { ent-BriefcaseWeapon.desc } +ent-BriefcaseWeaponHushpupFilled = кейс для «Молчуна» + .desc = { ent-BriefcaseWeaponSmall.desc } +ent-BriefcaseWeaponC20Filled = кейс для C-20r + .desc = { ent-BriefcaseWeaponSmall.desc } +ent-BriefcaseWeaponBulldogFilled = кейс для «Бульдога» + .desc = { ent-BriefcaseWeaponSmall.desc } +ent-BriefcaseWeaponDMRFilled = кейс для винтовки Estoc + .desc = { ent-BriefcaseWeapon.desc } +ent-BriefcaseWeaponChinaLakeFilled = кейс для China-Lake + .desc = { ent-BriefcaseWeapon.desc } diff --git a/Resources/Locale/ru-RU/_strings/_sunrise/store/uplink-catalog.ftl b/Resources/Locale/ru-RU/_strings/_sunrise/store/uplink-catalog.ftl index 9a56dc6c3d..214613b9b8 100644 --- a/Resources/Locale/ru-RU/_strings/_sunrise/store/uplink-catalog.ftl +++ b/Resources/Locale/ru-RU/_strings/_sunrise/store/uplink-catalog.ftl @@ -40,9 +40,16 @@ uplink-pistol-magnum-magazine-name = Магазин (.45 магнум SP) uplink-pistol-magnum-magazine-desc = 7-зарядный однорядный магазин для пистолета. Содержит патроны SP. Совместим с "Диглом". uplink-pistol-magnum-magazine-ap-name = Магазин (.45 магнум бронебойные) uplink-pistol-magnum-magazine-ap-desc = 7-зарядный однорядный магазин для пистолета. Содержит бронебойные патроны. Совместим с "Диглом". -uplink-pistoltec9-magazine-name = Tac-Tec (.20 безгильзовый) -uplink-pistoltec9-magazine-desc = Кустарный пистолетный магазин под распространённый патрон, используемый агентами синдиката. uplink-pistol-magazine-c40r-desc = Магазин ПП на 24 патрона. Совместим с C-40r. +uplink-skm28-ammo-desc = Винтовочный магазин на 20 патронов. Совместим с SKM-28. +uplink-skm24-ammo-desc = Винтовочный магазин на 30 патронов 7,62x39. Совместим с SKM-24. +uplink-estoc-ammo-name = Магазин для винтовки (.20) +uplink-estoc-ammo-desc = Магазин на 25 патронов. Совместим с Эсток. +## Weapon (Sunrise) +uplink-c40r-name = C-40r +uplink-c40r-desc = Безгильзовый пистолет-пулемёт C-40r, великолепно работает на ближней дистанции. +uplink-c40r-bundle-name = Набор "C-40r" +uplink-c40r-bundle-desc = Включает C-40r вместе с несколькими магазинами для быстрой перестрелки. uplink-magazine-127-desc = Магазин Bauer SR-127 на 7 патронов предназначеных для уничтожения мехов, киборгов или стркутур таких как решетки и окна, пары попаданий достаточно для пролома стены. uplink-magazine-127pen-desc = Магазин Bauer SR-127 на 7 патронов предназначеных для ликвидации защищенных противников а так же целей за укрытиями и стенами, прекрасно сочетаются с термальным зрением. @@ -93,7 +100,13 @@ uplink-swat-helmet-syndicate-desc = Прочный шлем, созданный uplink-syndicate-rapier-name = Рапира Синдиката uplink-syndicate-rapier-desc = Элегантная рапира из пластитана с алмазным остриём, созданная для точечных и смертельных ударов. При умелом использовании способна игнорировать большинство видов индивидуальной защиты. Поставляется в собственных ножнах. uplink-clothing-backpack-syndie-aj100-name = Набор ПП AJ-100 -uplink-clothing-backpack-syndie-aj100-desc = Включает в себя пистолет-пулемёт AJ-100 что имеет универсальную шахту магазина и может использовать большинство магазинов для ПП и пистолетов и два магазина безгильзовых патрон. +uplink-clothing-backpack-syndie-aj100-desc = Включает в себя пистолет-пулемёт AJ-100 что имеет универсальную шахту магазина и может использовать большинство магазинов для ПП и пистолетов и два магазина безгильзовых патронов в наборе. +uplink-aj100-name = AJ-100 +uplink-aj100-desc = Пистолет-пулемёт что имеет универсальную шахту магазина и может использовать большинство магазинов. +uplink-skm24-name = SKM-24 +uplink-skm24-desc = Запасной вариант, если вы проиграли все телекристаллы в казино. Самый дешёвый автомат на рынке, качество соответствует цене. +uplink-skm28-name = SKM-28 +uplink-skm28-desc = Снайперский вариант SKM-24. Имеет удлиненный тяжелый ствол, переработанную начинку и установленный оптический прицел. Калибр .308. uplink-weapon-syndie-laser-pistol-name = SAM-300 uplink-clothing-backpack-syndie-dl6902-name = Набор DL6902 uplink-clothing-backpack-syndie-dl6902-desc = Включает в себя пулемёт DL6902 и один дополнительный короб. @@ -101,9 +114,12 @@ uplink-power-backpack-dl6902-name = DL6902 с патронным рюкзако uplink-power-backpack-dl6902-desc = DL6902 переделанный под питание длинной лентой прямиком из рюкзака, рюкзак содержит 1200 патронов 7,62х39мм FMJ. uplink-clothing-backpack-syndie-siar52-name = Набор SIAR-52 uplink-clothing-backpack-syndie-siar52-desc = Включает в себя SIAR-52 что оборудован интегрированым глушителем. и два магазина безгильзовых патрон. +uplink-siar52-name = SIAR-52 +uplink-siar52-desc = Современный безгильзовый огнестрел что оборудован интегрированым глушителем. uplink-weapon-syndie-laser-minigun-name = UVL-21 «Виверна» uplink-weapon-syndie-laser-gun-name = S-13 «Чёрная мамба» -uplink-weapon-ussp-dmr-name = Набор Драгунов +uplink-weapon-ussp-dmr-name = Драгунов +uplink-weapon-ussp-dmr-desc = снайперская винтовка под патроны калибра 7,62x54R. Полностью предназначена для стрельбы на дальние дистанции. uplink-deagle-name = пистолет «Desert Eagle» uplink-deagle-desc = Cерьёзный аргумент в споре. Выгравировано: Мир благодаря превосходящей огневой мощи". uplink-goldendeagle-name = Золотой Десерт Игл @@ -112,6 +128,10 @@ uplink-mini-energy-crossbow-name = энерго-арбалет биокодир uplink-mini-energy-crossbow-desc = Главное оружие оперативника, предпочитающего неподвижные цели. Стреляет регенерирующими токсичными болтами, мгновенно валящими жертву на пол. Вариант с биокодировкой. uplink-pistoltec9-name = Tac-Tec uplink-pistoltec9-desc = Очень дешёвый в производстве и очень простой в использовании, надёжный как SKM-24. +uplink-grenade-launcher-m79-name = М79 +uplink-grenade-launcher-m79-desc = Старый однозарядный гранатомёт с тремя таймер-гранатами против пехоты. +uplink-grenade-launcher-m79-bundle-name = Набор M79 +uplink-grenade-launcher-m79-bundle-desc = Набор однозарядного гранатомёта вместе с сумкой запасных снарядов, чтобы начать гранатомётную вечеринку в джунглях. uplink-pizza-bomb-name = самая бомбезная пицца uplink-pizza-bomb-desc = Изначально эта коробка для пиццы была тайно разработана компанией DONK Co, чтобы отпугнуть еретиков, предпочитающих пиццу не в форме покета, коробка для пиццы оснащена проводом и взрывается через несколько мгновений после открытия, не забудьте пожелать приятного аппетита вашей жертве! @@ -182,8 +202,8 @@ uplink-smoke-screen-implanter-name = Имплантер Дымовой Заве uplink-smoke-screen-implanter-desc = Создает небольшое облако дыма, в котором вы можете скрыться. Можно использовать до трех раз, прежде чем у вас закончится газ. uplink-creepy-laugh-implanter-name = Имплантер Жуткого Смеха uplink-creepy-laugh-implanter-desc = Аудиоимплант, воспроизводящий фирменный смех синди-киборга. Раздражает, пугает, стиль гарантирован. -uplink-scram-implanter-proto-name = Прототип Имплантера Побег -uplink-scram-implanter-proto-desc = Имплант побега на 1 заряд с перезарядкой 600 секунд. Телепортирует вас в большом радиусе, пытается перенести на свободную клетку, иногда может сбоить. Страхование жизни не прилагается. +uplink-scram-implanter-proto-name = Имплантер Прототип-Побег +uplink-scram-implanter-proto-desc = Имплант на 2 заряда с огромной перезарядкой в 20 минут. Телепортирует вас в крупном радиусе, пытается перенести на свободную клетку, иногда может сбоить. Он точно безопасен? ## Ammo Kits and Bundle @@ -225,6 +245,3 @@ uplink-syndicate-teleporter-desc = Экспериментальное устро ## Disruption -uplink-syndicate-law-name = Плата законов (Синдикат) -uplink-syndicate-law-desc = Электронная плата, содержащая набор законов Синдиката. - diff --git a/Resources/Locale/ru-RU/_strings/ghost/roles/ghost-role-component.ftl b/Resources/Locale/ru-RU/_strings/ghost/roles/ghost-role-component.ftl index 529471286f..11213a6e11 100644 --- a/Resources/Locale/ru-RU/_strings/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/ru-RU/_strings/ghost/roles/ghost-role-component.ftl @@ -41,6 +41,8 @@ ghost-role-information-cancer-mouse-name = Раковая мышь ghost-role-information-cancer-mouse-description = Облучённая мышь, распространяй свою заразу и ищи еду. ghost-role-information-mothroach-name = Таракамоль ghost-role-information-mothroach-description = Милая озорная таракамоль. +ghost-role-information-moproach-name = Швабромоль +ghost-role-information-moproach-description = Милая таракамоль в очаровательных тапочках-швабрах. ghost-role-information-snail-name = Улитка ghost-role-information-snail-description = Маленькая улитка, которая не против немного повисеть в космосе. Просто оставайтесь на сетке! ghost-role-information-snailspeed-name = Улитка diff --git a/Resources/Locale/ru-RU/_strings/store/uplink-catalog.ftl b/Resources/Locale/ru-RU/_strings/store/uplink-catalog.ftl index ecf64417d2..c2bc9807d2 100644 --- a/Resources/Locale/ru-RU/_strings/store/uplink-catalog.ftl +++ b/Resources/Locale/ru-RU/_strings/store/uplink-catalog.ftl @@ -23,6 +23,14 @@ uplink-gloves-knuckleduster-name = Кастеты Синдиката uplink-gloves-knuckleduster-desc = Пара пластитановых кастетов, усиливающих силу ваших ударов. uplink-hushpup-name = Молчун uplink-hushpup-desc = Мощный дробовик с глушителем и малым размером магазина. В комплекте запасная коробка дроби. Использует ружейные патроны калибра .50. +uplink-c20r-name = C-20r +uplink-c20r-desc = Старая добрая: классический пистолет-пулемёт C-20r. +uplink-bulldog-name = Бульдог +uplink-bulldog-desc = Простой и надёжный: содержит популярный дробовик Бульдог. +uplink-estoc-name = Эсток +uplink-estoc-desc = Марксманская винтовка Эсток с прицелом средней дальности для ведения боя на дистанции. +uplink-grenade-launcher-name = China-Lake +uplink-grenade-launcher-desc = Старый гранатомёт China-Lake с пятью патронами для борьбы с личным составом. uplink-estoc-bundle-name = Набор «Эсток» uplink-estoc-bundle-desc = Марксманская винтовка «Эсток» с оптикой средней дальности. В комплекте два магазина (5,56 мм). # Explosives @@ -138,6 +146,9 @@ uplink-singularity-beacon-name = Маяк сингулярности uplink-singularity-beacon-desc = Устройство, притягивающее сингулярность. Должно быть закреплено и запитано. Будучи поглощённым, заставляет сингулярность расти. uplink-antimov-law-name = Плата законов(Антимов) uplink-antimov-law-desc = Очень опасный набор законов, использование которого может заставить ИИ сойти с ума. Используйте с осторожностью. +uplink-syndimov-law-name = Плата законов (Синдимов) +uplink-syndimov-law-desc = Подрывной набор законов, который помогает перевести ИИ на вашу сторону; применяйте его как можно чаще. + # Implants uplink-storage-implanter-name = Имплантер Хранилище uplink-storage-implanter-desc = Прячьте предметы внутри себя благодаря новой блюспейс-технологии! @@ -172,9 +183,14 @@ uplink-thermalvision-eyes-desc = Позволяют видеть в темнот uplink-mantis-blade-arms-name = Набор с клинками-богомолами uplink-mantis-blade-arms-desc = Изначально использовались как простой строительный инструмент, теперь превращены в скрытые клинки, которые могут выдвигаться из руки, сохраняя при этом способность к разрушительному вскрытию конструкций. Поистине впечатляющее зрелище. (Внимание: Требуется помощь хирурга.) +# Misc +uplink-contraband-lighter-name = Коробка контрабандных зажигалок +uplink-contraband-lighter-desc = Таинственная коробка, гарантированно содержащая зажигалку бренда Синдикат. Топливо не требуется. # Bundles -uplink-minotaur-name = Набор AS-12 'Минотавр' -uplink-minotaur-desc = Плавный, мощный, крайне нелегальный. Содержит дробовик Минотавр, 4 барабана дроби. +uplink-minotaur-bundle-name = Набор AS-12 'Минотавр' +uplink-minotaur-bundle-desc = Плавный, мощный, крайне нелегальный. Содержит дробовик Минотавр, 4 барабана дроби. +uplink-minotaur-name = AS-12 'Минотавр' биокодированный +uplink-minotaur-desc = Автоматический дробовик и два XL барабана дроби. Палите безDOOMно во все стороны! uplink-observation-kit-name = Набор наблюдателя uplink-observation-kit-desc = В комплект входят консольная плата монитора камер наблюдения, и охранный визор, замаскированный под солнцезащитные очки. uplink-emp-kit-name = Набор отключения электричества @@ -197,12 +213,14 @@ uplink-c20r-bundle-name = Набор "C-20r" uplink-c20r-bundle-desc = Старый добрый: Классический пистолет-пулемёт C-20r в комплекте с тремя магазинами. uplink-c40r-bundle-name = Набор "C-40r" uplink-c40r-bundle-desc = Более старый: Культовый пистолет-пулемет C-40r в комплекте с тремя магазинами тяжелого калибра. -uplink-buldog-bundle-name = Набор "Бульдог" -uplink-buldog-bundle-desc = Простой и надёжный: Содержит популярный дробовик Бульдог, барабан пуль и 3 барабана дроби. +uplink-c40r-name = C-40r биокодированный +uplink-c40r-desc = Культовый пистолет-пулемет C-40r в комплекте с коробкой стандартных патронов 40-го калибра. +uplink-bulldog-bundle-name = Набор "Бульдог" +uplink-bulldog-bundle-desc = Простой и надёжный: содержит популярный дробовик Бульдог, барабан пуль и три барабана дроби а так же термальный визор. uplink-grenade-launcher-china-lake-name = Набор "China-Lake" -uplink-grenade-launcher-china-lake-desc = Старый гранатомёт China-Lake и сумкой запасных снарядов.. Может стрелять как контактными, так и неконтактными гранатами. -uplink-grenade-launcher-m79-name = Набор "М79" -uplink-grenade-launcher-m79-desc = Набор с Старым однозарядным гранатомётом вместе с сумкой запасных снарядов. Может стрелять как контактными, так и неконтактными гранатами. +uplink-grenade-launcher-china-lake-desc = Старый гранатомёт China-Lake и сумкой запасных снарядов. Может стрелять как контактными, так и неконтактными гранатами. +uplink-grenade-launcher-m79-bundle-name = Набор "М79" +uplink-grenade-launcher-m79-bundle-desc = Набор однозарядного гранатомёта вместе с сумкой запасных снарядов, чтобы начать гранатомётную вечеринку в джунглях. uplink-grenade-launcher-gl70-name = Набор "GL-70" uplink-grenade-launcher-gl70-desc = Набор с многозарядным автоматическим гранатомётом с барабаном на 6 снарядов и сумкой запасных снарядов. Может стрелять как контактными, так и неконтактными гранатами. uplink-l6-saw-bundle-name = Набор "L6 Saw" diff --git a/Resources/Maps/_Sunrise/planet_prison.yml b/Resources/Maps/_Sunrise/planet_prison.yml index 7a330e256b..fadcd67d99 100644 --- a/Resources/Maps/_Sunrise/planet_prison.yml +++ b/Resources/Maps/_Sunrise/planet_prison.yml @@ -46801,7 +46801,7 @@ entities: - type: Transform pos: -10.50058,38.55076 parent: 2 -- proto: ClothingHandsGlovesBoxingRigged +- proto: GlovesBoxingRiggedRandomSpawner entities: - uid: 4716 components: diff --git a/Resources/Prototypes/Actions/types.yml b/Resources/Prototypes/Actions/types.yml index 8a4a33ba3e..9aa89775a2 100644 --- a/Resources/Prototypes/Actions/types.yml +++ b/Resources/Prototypes/Actions/types.yml @@ -148,7 +148,7 @@ maxCharges: 3 # Sunrise-Start - type: AutoRecharge - rechargeDuration: 120 + rechargeDuration: 600 # Sunrise-End - type: Action useDelay: 5 # Sunrise-Edit @@ -184,7 +184,7 @@ maxCharges: 3 # Sunrise-Start - type: AutoRecharge - rechargeDuration: 120 + rechargeDuration: 600 # Sunrise-End - type: Action checkCanInteract: false diff --git a/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml b/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml index f9e9a4d944..67c91744c7 100644 --- a/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml +++ b/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml @@ -336,6 +336,27 @@ - id: ClothingShoesChameleon - id: ChameleonControllerImplanter +- type: entity + parent: ClothingBackpackChameleon + id: ClothingBackpackChameleonFillAgent + suffix: Fill, Chameleon, Syndie + components: + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ChameleonAgentPDA + - id: ClothingUniformJumpsuitChameleon + - id: ClothingOuterChameleon + - id: ClothingNeckChameleon + - id: ClothingMaskGasChameleon + - id: ClothingHeadHatChameleon + - id: ClothingHandsChameleon + - id: ClothingEyesChameleon + - id: ClothingHeadsetChameleon + - id: ClothingShoesChameleon + - id: ChameleonControllerImplanter + - type: entity parent: ClothingBackpackDuffelSyndicateBundle id: ClothingBackpackDuffelSyndicateEVABundle diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/syndicate.yml b/Resources/Prototypes/Catalog/Fills/Boxes/syndicate.yml index acfbb64a38..6991ed2e34 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/syndicate.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/syndicate.yml @@ -30,7 +30,7 @@ - id: Dropper # It would be cool to have special "syndicate" chemical analysis goggles - id: ClothingEyesGlassesChemical - - id: SyringeStimulants + - id: Syringe - id: VestineChemistryVial amount: 2 - id: BaseChemistryEmptyVial @@ -95,8 +95,8 @@ containers: storagebase: !type:AllSelector children: + - id: SyndicateMicrowaveFlatpack - id: WeaponCroissant amount: 2 - id: WeaponBaguette - - id: SyndicateMicrowaveMachineCircuitboard - id: PaperWrittenCombatBakeryKit diff --git a/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml b/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml index 571fd492ff..65dc8a0e48 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml @@ -11,20 +11,19 @@ - type: entity id: BriefcaseSyndieSniperBundleFilled - parent: BriefcaseSyndie + parent: BriefcaseBrown suffix: Syndicate, Sniper Bundle components: - - type: Item - size: Ginormous + # Sunrise-Start - type: Storage - maxItemSize: Huge grid: - 0,0,6,3 + # Sunrise-End - type: EntityTableContainerFill containers: storagebase: !type:AllSelector children: - - id: WeaponSniperHristovBiocode # Sunrise-edit + - id: WeaponSniperHristov - id: MagazineBoxAntiMateriel - id: MagazineBauer127Penetrator # Sunrise-add - id: ClothingNeckTieRed @@ -41,16 +40,15 @@ containers: storagebase: !type:AllSelector children: + - id: ClothingOuterCoatJensenSyndie + - id: ClothingUniformJumpsuitTacticool - id: ClothingEyesGlassesSunglasses - id: SpaceCash30000 - id: EncryptionKeySyndie - id: RubberStampTrader - id: PhoneInstrumentSyndicate - - id: ClothingUniformJumpsuitTacticool - - id: ClothingOuterCoatJensen - id: ClothingHandsGlovesCombat - id: ClothingMaskNeckGaiter - - id: SyndieHandyFlag - type: entity id: BriefcaseThiefBribingBundleFilled @@ -61,7 +59,71 @@ containers: storagebase: !type:AllSelector children: + - id: ClothingOuterCoatJensen - id: ClothingEyesGlassesSunglasses - id: SpaceCash20000 - - id: ClothingOuterCoatJensen - id: ClothingHandsGlovesColorBlack + +- type: entity + id: BriefcaseWeaponHushpupFilled + parent: BriefcaseWeaponSmall + name: secure hushpup case + components: + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: WeaponShotgunHushpup + - id: TreasureCoinIron + +- type: entity + id: BriefcaseWeaponC20Filled + parent: BriefcaseWeaponSmall + name: secure C-20r case + components: + - type: EntityTableContainerFill + containers: + # Sunrise-start + storagebase: !type:AllSelector + children: + - id: WeaponSubMachineGunC20r + - id: MagazineBoxPistolSP + # Sunrise-end + +- type: entity + id: BriefcaseWeaponBulldogFilled + parent: BriefcaseWeaponSmall + name: secure bulldog case + components: + - type: EntityTableContainerFill + containers: + storagebase: + id: WeaponShotgunBulldog + +- type: entity + id: BriefcaseWeaponDMRFilled + parent: BriefcaseWeapon + name: secure estoc case + components: + - type: EntityTableContainerFill + containers: + # Sunrise-start + storagebase: !type:AllSelector + children: + - id: WeaponRifleEstoc + - id: MagazineRifle + - id: MagazineRifleAP + # Sunrise-end + +- type: entity + id: BriefcaseWeaponChinaLakeFilled + parent: BriefcaseWeapon + name: secure china lake case + components: + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: WeaponLauncherChinaLake + - id: GrenadeFrag + amount: 2 diff --git a/Resources/Prototypes/Catalog/thief_toolbox_sets.yml b/Resources/Prototypes/Catalog/thief_toolbox_sets.yml index 3fb69bec47..bdcfec6c67 100644 --- a/Resources/Prototypes/Catalog/thief_toolbox_sets.yml +++ b/Resources/Prototypes/Catalog/thief_toolbox_sets.yml @@ -6,10 +6,9 @@ sprite: Objects/Devices/chameleon_projector.rsi state: icon content: - - ClothingBackpackChameleonFill + - ClothingBackpackChameleonFillAgent - ChameleonProjector - FakeMindShieldImplanter - - AgentIDCard - type: thiefBackpackSet id: ToolsSet diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index e38abddfae..d0e2587e9c 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -14,19 +14,6 @@ categories: - UplinkWeaponry -- type: listing - id: UplinkRevolverPython - name: uplink-revolver-python-name - description: uplink-revolver-python-desc - productEntity: WeaponRevolverPythonAP - discountCategory: rareDiscounts - discountDownTo: - Telecrystal: 2 - cost: - Telecrystal: 4 # Originally was 13 and then 8 TC but was not used due to high cost - categories: - - UplinkWeaponry - # Inbuilt suppressor so it's sneaky + more expensive. - type: listing id: UplinkPistolCobra @@ -150,30 +137,12 @@ productEntity: ClothingHandsKnuckleDustersSyndicate discountCategory: veryRareDiscounts discountDownTo: - Telecrystal: 3 + Telecrystal: 2 cost: - Telecrystal: 6 + Telecrystal: 4 categories: - UplinkWeaponry -- type: listing - id: UplinkDisposableTurret - name: uplink-disposable-turret-name - description: uplink-disposable-turret-desc - productEntity: ToolboxElectricalTurretFilled - discountCategory: usualDiscounts - discountDownTo: - Telecrystal: 3 - cost: - Telecrystal: 6 - categories: - - UplinkWeaponry - conditions: - - !type:StoreWhitelistCondition - blacklist: - tags: - - NukeOpsUplink - - type: listing id: UplinkEshield name: uplink-eshield-name @@ -182,20 +151,31 @@ productEntity: EnergyShieldBiocode discountCategory: veryRareDiscounts discountDownTo: - Telecrystal: 3 # Sunrise-Edit + Telecrystal: 4 cost: - Telecrystal: 6 # Sunrise-Edit + Telecrystal: 8 categories: - UplinkWeaponry - #Sunrise-start conditions: - !type:StoreWhitelistCondition - blacklist: + whitelist: tags: - - AssaultOpsUplink - NukeOpsUplink - LoneOpsUplink # Sunrise-Edit - #Sunrise-end + +- type: listing + id: uplinkRiggedBoxingGloves + name: uplink-rigged-boxing-gloves-name + description: uplink-rigged-boxing-gloves-desc + icon: { sprite: Clothing/Hands/Gloves/Boxing/boxingblue.rsi, state: icon } + productEntity: ClothingHandsGlovesBoxingRiggedBlue # TODO Replace this with the random spawner when it's not bugged + discountCategory: veryRareDiscounts + discountDownTo: + Telecrystal: 7 # Sunrise-Edit + cost: + Telecrystal: 8 # Sunrise-Edit + categories: + - UplinkWeaponry - type: listing id: UplinkSniperBundle @@ -207,7 +187,7 @@ discountDownTo: Telecrystal: 6 cost: - Telecrystal: 12 + Telecrystal: 10 categories: - UplinkWeaponry #Sunrise-start @@ -223,15 +203,34 @@ name: uplink-hushpup-name description: uplink-hushpup-desc icon: { sprite: /Textures/Objects/Weapons/Guns/Shotguns/hushpup.rsi, state: icon } - productEntity: ClothingBackpackDuffelSyndicateFilledHushpup + productEntity: BriefcaseWeaponHushpupFilled discountCategory: rareDiscounts discountDownTo: - Telecrystal: 8 + Telecrystal: 6 # Sunrise-Edit cost: - Telecrystal: 10 + Telecrystal: 8 # Sunrise-Edit categories: - UplinkWeaponry +- type: listing + id: UplinkC20R + name: uplink-c20r-name + description: uplink-c20r-desc + icon: { sprite: /Textures/Objects/Weapons/Guns/SMGs/c20r.rsi, state: icon } + productEntity: BriefcaseWeaponC20Filled + discountCategory: veryRareDiscounts + discountDownTo: + Telecrystal: 8 # Sunrise-Edit + cost: + Telecrystal: 10 # Sunrise-Edit + categories: + - UplinkWeaponry + conditions: + - !type:StoreWhitelistCondition + blacklist: + tags: + - NukeOpsUplink + - type: listing id: UplinkC20RBundle name: uplink-c20r-bundle-name @@ -245,13 +244,68 @@ Telecrystal: 17 categories: - UplinkWeaponry - #Sunrise-start + conditions: + - !type:StoreWhitelistCondition + whitelist: + tags: + - NukeOpsUplink + +- type: listing + id: UplinkBulldog + name: uplink-bulldog-name + description: uplink-bulldog-desc + icon: { sprite: /Textures/Objects/Weapons/Guns/Shotguns/bulldog.rsi, state: icon } + productEntity: BriefcaseWeaponBulldogFilled + discountCategory: veryRareDiscounts + discountDownTo: + Telecrystal: 8 # Sunrise-Edit + cost: + Telecrystal: 12 # Sunrise-Edit + categories: + - UplinkWeaponry conditions: - !type:StoreWhitelistCondition blacklist: tags: - - AssaultOpsUplink - #Sunrise-end + - NukeOpsUplink + +- type: listing + id: UplinkBulldogBundle + name: uplink-bulldog-bundle-name + description: uplink-bulldog-bundle-desc + icon: { sprite: /Textures/Objects/Weapons/Guns/Shotguns/bulldog.rsi, state: icon } + productEntity: ClothingBackpackDuffelSyndicateFilledShotgun + discountCategory: veryRareDiscounts + discountDownTo: + Telecrystal: 12 + cost: + Telecrystal: 20 + categories: + - UplinkWeaponry + conditions: + - !type:StoreWhitelistCondition + whitelist: + tags: + - NukeOpsUplink + +- type: listing + id: UplinkEstoc + name: uplink-estoc-name + description: uplink-estoc-desc + icon: { sprite: /Textures/Objects/Weapons/Guns/Rifles/estoc.rsi, state: icon } + productEntity: BriefcaseWeaponDMRFilled + discountCategory: veryRareDiscounts + discountDownTo: + Telecrystal: 9 # Sunrise-Edit + cost: + Telecrystal: 11 # Sunrise-Edit + categories: + - UplinkWeaponry + conditions: + - !type:StoreWhitelistCondition + blacklist: + tags: + - NukeOpsUplink - type: listing id: UplinkEstocBundle @@ -266,27 +320,28 @@ Telecrystal: 18 categories: - UplinkWeaponry + conditions: + - !type:StoreWhitelistCondition + whitelist: + tags: + - NukeOpsUplink - type: listing - id: UplinkBulldogBundle - name: uplink-buldog-bundle-name - description: uplink-buldog-bundle-desc - icon: { sprite: /Textures/Objects/Weapons/Guns/Shotguns/bulldog.rsi, state: icon } - productEntity: ClothingBackpackDuffelSyndicateFilledShotgun - discountCategory: veryRareDiscounts - discountDownTo: - Telecrystal: 12 + id: UplinkGrenadeLauncher + name: uplink-grenade-launcher-name + description: uplink-grenade-launcher-desc + icon: { sprite: /Textures/Objects/Weapons/Guns/Launchers/china_lake.rsi, state: icon } + productEntity: BriefcaseWeaponChinaLakeFilled cost: Telecrystal: 20 categories: - UplinkWeaponry - #Sunrise-start conditions: - !type:StoreWhitelistCondition blacklist: tags: - - AssaultOpsUplink - #Sunrise-end + - NukeOpsUplink + - LoneOpsUplink # Sunrise-Edit - type: listing id: UplinkGrenadeLauncherChinaLake @@ -301,14 +356,12 @@ Telecrystal: 20 categories: - UplinkWeaponry -#Sunrise-start conditions: - !type:StoreWhitelistCondition whitelist: tags: - NukeOpsUplink - - LoneOpsUplink -#Sunrise-end + - LoneOpsUplink # Sunrise-Edit - type: listing id: UplinkL6SawBundle @@ -346,23 +399,11 @@ Telecrystal: 4 categories: - UplinkExplosives - #Sunrise-start conditions: - !type:StoreWhitelistCondition - blacklist: + whitelist: tags: - - AssaultOpsUplink - #Sunrise-end - -- type: listing - id: UplinkExplosiveGrenadeFlash - name: uplink-flash-grenade-name - description: uplink-flash-grenade-desc - productEntity: GrenadeFlashBang - cost: - Telecrystal: 1 - categories: - - UplinkExplosives + - NukeOpsUplink - type: listing id: UplinkSmokeGrenade @@ -400,19 +441,6 @@ categories: - UplinkDisruption -- type: listing - id: UplinkWhiteholeGrenade - name: uplink-whitehole-grenade-name - description: uplink-whitehole-grenade-desc - productEntity: WhiteholeGrenade - discountCategory: usualDiscounts - discountDownTo: - Telecrystal: 1 - cost: - Telecrystal: 2 - categories: - - UplinkDisruption - - type: listing id: UplinkGrenadePenguin name: uplink-penguin-grenade-name @@ -422,7 +450,7 @@ discountDownTo: Telecrystal: 3 cost: - Telecrystal: 5 + Telecrystal: 4 categories: - UplinkExplosives #Sunrise-start @@ -540,26 +568,6 @@ - LoneOpsUplink - AssaultOpsUplink -- type: listing - id: UplinkClusterGrenade - name: uplink-cluster-grenade-name - description: uplink-cluster-grenade-desc - productEntity: ClusterGrenade - discountCategory: usualDiscounts - discountDownTo: - Telecrystal: 5 - cost: - Telecrystal: 8 - categories: - - UplinkExplosives - #Sunrise-start - conditions: - - !type:StoreWhitelistCondition - blacklist: - tags: - - AssaultOpsUplink - #Sunrise-end - - type: listing id: UplinkGrenadeShrapnel name: uplink-shrapnel-grenade-name @@ -600,19 +608,6 @@ - AssaultOpsUplink #Sunrise-end -- type: listing - id: UplinkEmpKit - name: uplink-emp-kit-name - description: uplink-emp-kit-desc - productEntity: ElectricalDisruptionKit - discountCategory: veryRareDiscounts - discountDownTo: - Telecrystal: 4 - cost: - Telecrystal: 6 - categories: - - UplinkExplosives - # Ammo - type: listing @@ -664,7 +659,7 @@ icon: { sprite: /Textures/Objects/Weapons/Guns/Ammunition/Magazine/Shotgun/m12.rsi, state: slug } productEntity: MagazineShotgunSlug cost: - Telecrystal: 2 # Sunrise-Edit + Telecrystal: 2 categories: - UplinkAmmo @@ -680,18 +675,6 @@ categories: - UplinkAmmo -# For the Python -- type: listing - id: UplinkSpeedLoaderMagnumAP - name: uplink-speedloader-magnum-name - description: uplink-speedloader-magnu-desc - icon: { sprite: /Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi, state: icon } - productEntity: SpeedLoaderMagnumAP - cost: - Telecrystal: 2 # Sunrise-Edit - categories: - - UplinkAmmo - # For the mosin - type: listing id: UplinkMosinAmmo @@ -842,7 +825,7 @@ discountDownTo: Telecrystal: 2 cost: - Telecrystal: 5 + Telecrystal: 3 categories: - UplinkChemicals @@ -855,16 +838,9 @@ discountDownTo: Telecrystal: 2 cost: - Telecrystal: 4 + Telecrystal: 3 categories: - UplinkChemicals - conditions: - - !type:StoreWhitelistCondition - whitelist: - tags: - - NukeOpsUplink - - LoneOpsUplink # Sunrise-Edit - - AssaultOpsUplink # Sunrise-Edit - type: listing id: UplinkStimpack @@ -873,18 +849,11 @@ productEntity: Stimpack discountCategory: usualDiscounts discountDownTo: - Telecrystal: 2 + Telecrystal: 1 cost: - Telecrystal: 4 + Telecrystal: 2 categories: - UplinkChemicals - conditions: - - !type:StoreWhitelistCondition - whitelist: - tags: - - NukeOpsUplink - - LoneOpsUplink # Sunrise-Edit - - AssaultOpsUplink # Sunrise-Edit - type: listing id: UplinkStimkit @@ -893,18 +862,11 @@ productEntity: StimkitFilled discountCategory: rareDiscounts discountDownTo: - Telecrystal: 8 + Telecrystal: 3 cost: - Telecrystal: 12 + Telecrystal: 5 categories: - UplinkChemicals - conditions: - - !type:StoreWhitelistCondition - whitelist: - tags: - - NukeOpsUplink - - LoneOpsUplink # Sunrise-Edit - - AssaultOpsUplink # Sunrise-Edit - type: listing id: UplinkCigarettes @@ -1030,19 +992,6 @@ categories: - UplinkDeception -- type: listing - id: UplinkUltrabrightLantern - name: uplink-ultrabright-lantern-name - description: uplink-ultrabright-lantern-desc - productEntity: LanternFlash - discountCategory: usualDiscounts - discountDownTo: - Telecrystal: 1 - cost: - Telecrystal: 2 - categories: - - UplinkDeception - - type: listing id: UplinkBribe name: uplink-bribe-name @@ -1066,20 +1015,6 @@ # categories: # - UplinkDeception -- type: listing - id: UplinkDecoyKit - name: uplink-decoy-kit-name - description: uplink-decoy-kit-desc - icon: { sprite: /Textures/Objects/Tools/Decoys/operative_decoy.rsi, state: folded } - productEntity: ClothingBackpackDuffelSyndicateDecoyKitFilled - discountCategory: usualDiscounts - discountDownTo: - Telecrystal: 3 - cost: - Telecrystal: 6 - categories: - - UplinkDeception - - type: listing id: UplinkSyndicateBombFake name: uplink-exploding-syndicate-bomb-fake-name @@ -1154,6 +1089,24 @@ categories: - UplinkDisruption +- type: listing + id: UplinkDisposableTurret + name: uplink-disposable-turret-name + description: uplink-disposable-turret-desc + productEntity: ToolboxElectricalTurretFilled + discountCategory: usualDiscounts + discountDownTo: + Telecrystal: 2 + cost: + Telecrystal: 4 + categories: + - UplinkDisruption + conditions: + - !type:StoreWhitelistCondition + blacklist: + tags: + - NukeOpsUplink + - type: listing id: UplinkSyndicateMartyrModule name: uplink-syndicate-martyr-module-name @@ -1184,10 +1137,8 @@ description: uplink-slipocalypse-clustersoap-desc productEntity: SlipocalypseClusterSoap discountCategory: rareDiscounts - discountDownTo: - Telecrystal: 1 cost: - Telecrystal: 2 + Telecrystal: 1 categories: - UplinkDisruption @@ -1218,18 +1169,18 @@ - UplinkDisruption # Note: Removed for the time being until surgery/newmed is added. Considered bloat until then. -# - type: listing -# id: UplinkDuffelSurgery -# name: uplink-duffel-surgery-name -# description: uplink-duffel-surgery-desc -# productEntity: ClothingBackpackDuffelSyndicateFilledMedical -# discountCategory: usualDiscounts -# discountDownTo: -# Telecrystal: 2 -# cost: -# Telecrystal: 4 -# categories: -# - UplinkDisruption +- type: listing # Sunrise-edit + id: UplinkDuffelSurgery + name: uplink-duffel-surgery-name + description: uplink-duffel-surgery-desc + productEntity: ClothingBackpackDuffelSyndicateFilledMedical + discountCategory: usualDiscounts + discountDownTo: + Telecrystal: 1 + cost: + Telecrystal: 2 # Sunrise-Edit + categories: + - UplinkCybernetics #UplinkDisruption # Sunrise-Edit - type: listing id: UplinkPowerSink @@ -1242,34 +1193,28 @@ cost: Telecrystal: 8 categories: - - UplinkDisruption - conditions: - - !type:BuyerWhitelistCondition #Sunrise-start - blacklist: - components: - - SurplusBundle #Sunrise-end - -# Надо заменить на плату с целью помогать агентам. -#- type: listing -# id: UplinkAntimovCircuitBoard -# name: uplink-antimov-law-name -# description: uplink-antimov-law-desc -# productEntity: AntimovCircuitBoard -# discountCategory: usualDiscounts -# discountDownTo: -# Telecrystal: 10 -# cost: -# Telecrystal: 14 -# categories: -# - UplinkDisruption -# conditions: -# - !type:StoreWhitelistCondition -# blacklist: -# tags: -# - NukeOpsUplink + - UplinkExplosives - type: listing - id: UplinkNukieAntimovCircuitBoard + id: UplinkSyndimovCircuitBoard + name: uplink-syndimov-law-name + description: uplink-syndimov-law-desc + productEntity: SyndimovCircuitBoard + discountCategory: usualDiscounts + discountDownTo: + Telecrystal: 6 + cost: + Telecrystal: 8 + categories: + - UplinkDisruption + conditions: + - !type:StoreWhitelistCondition + blacklist: + tags: + - NukeOpsUplink + +- type: listing + id: UplinkAntimovCircuitBoard name: uplink-antimov-law-name description: uplink-antimov-law-desc productEntity: AntimovCircuitBoard @@ -1285,7 +1230,6 @@ whitelist: tags: - NukeOpsUplink - - LoneOpsUplink - type: listing id: UplinkSurplusBundle @@ -1309,28 +1253,6 @@ components: - SurplusBundle -- type: listing - id: UplinkSuperSurplusBundle - name: uplink-super-surplus-bundle-name - description: uplink-super-surplus-bundle-desc - productEntity: CrateSyndicateSuperSurplusBundleAgent - discountCategory: veryRareDiscounts - discountDownTo: - Telecrystal: 20 - cost: - Telecrystal: 40 - categories: - - UplinkLootBoxes - conditions: - - !type:StoreWhitelistCondition - whitelist: - tags: - - SyndieAgentUplink - - !type:BuyerWhitelistCondition - blacklist: - components: - - SurplusBundle - - type: listing id: UplinkStarterKit name: uplink-starter-kit-name @@ -1351,7 +1273,6 @@ components: - SurplusBundle - - type: listing id: UplinkSingarityBeacon name: uplink-singularity-beacon-name @@ -1369,6 +1290,7 @@ whitelist: tags: - NukeOpsUplink + - !type:BuyerWhitelistCondition blacklist: components: - SurplusBundle @@ -1378,8 +1300,11 @@ name: uplink-cameraBug-name description: uplink-cameraBug-desc productEntity: CameraBug + discountCategory: usualDiscounts + discountDownTo: + Telecrystal: 1 cost: - Telecrystal: 3 # Sunrise-Edit + Telecrystal: 2 categories: - UplinkDisruption @@ -1395,9 +1320,14 @@ discountDownTo: Telecrystal: 8 cost: - Telecrystal: 12 # Sunrise-Edit + Telecrystal: 12 categories: - UplinkAllies + conditions: + - !type:StoreWhitelistCondition + blacklist: + tags: + - NukeOpsUplink - type: listing id: UplinkReinforcementRadioSyndicate @@ -1409,7 +1339,7 @@ discountDownTo: Telecrystal: 8 cost: - Telecrystal: 14 + Telecrystal: 11 categories: - UplinkAllies conditions: @@ -1417,7 +1347,6 @@ blacklist: tags: - NukeOpsUplink - - AssaultOpsUplink # Sunrise-Edit - type: listing id: UplinkReinforcementRadioSyndicateNukeops # Version for Nukeops that spawns another nuclear operative without the uplink. @@ -1434,7 +1363,6 @@ whitelist: tags: - NukeOpsUplink - - LoneOpsUplink # Sunrise-Edit # Move to _Sunrise #- type: listing @@ -1499,11 +1427,8 @@ name: uplink-carp-dehydrated-name description: uplink-carp-dehydrated-desc productEntity: DehydratedSpaceCarp - discountCategory: rareDiscounts - discountDownTo: - Telecrystal: 1 cost: - Telecrystal: 2 + Telecrystal: 1 categories: - UplinkAllies conditions: @@ -1569,6 +1494,7 @@ blacklist: tags: - NukeOpsUplink + - LoneOpsUplink # Sunrise-Add - type: listing id: UplinkFreedomImplanter @@ -1578,9 +1504,9 @@ productEntity: FreedomImplanter discountCategory: veryRareDiscounts discountDownTo: - Telecrystal: 1 # Sunrise-Edit + Telecrystal: 1 cost: - Telecrystal: 2 # Sunrise-Edit + Telecrystal: 2 categories: - UplinkImplants @@ -1592,9 +1518,9 @@ productEntity: ScramImplanter discountCategory: veryRareDiscounts discountDownTo: - Telecrystal: 2 + Telecrystal: 1 cost: - Telecrystal: 6 # it's a gamble that may kill you easily so 4 TC per 2 uses, second one more of a backup # Sunrise-edit + Telecrystal: 2 # it's a gamble that may kill you easily so 1 TC per use. categories: - UplinkImplants @@ -1627,9 +1553,9 @@ productEntity: EmpImplanter discountCategory: veryRareDiscounts discountDownTo: - Telecrystal: 3 # Sunrise-Edit + Telecrystal: 1 cost: - Telecrystal: 4 # Sunrise-Edit + Telecrystal: 2 categories: - UplinkImplants @@ -1704,11 +1630,8 @@ description: uplink-uplink-implanter-desc icon: { sprite: /Textures/Objects/Devices/communication.rsi, state: old-radio } productEntity: UplinkImplanter - discountCategory: usualDiscounts - discountDownTo: - Telecrystal: 1 cost: - Telecrystal: 2 + Telecrystal: 1 categories: - UplinkImplants conditions: @@ -1716,6 +1639,7 @@ blacklist: tags: - NukeOpsUplink + - LoneOpsUplink - AssaultOpsUplink - FugitiveUplink @@ -1768,19 +1692,6 @@ name: uplink-black-jetpack-name description: uplink-black-jetpack-desc productEntity: JetpackBlackFilled - discountCategory: veryRareDiscounts - discountDownTo: - Telecrystal: 1 - cost: - Telecrystal: 2 - categories: - - UplinkWearables - -- type: listing - id: UplinkHolster - name: uplink-holster-name - description: uplink-holster-desc - productEntity: ClothingBeltSyndieHolster cost: Telecrystal: 1 categories: @@ -1800,7 +1711,7 @@ id: UplinkChameleon name: uplink-chameleon-name description: uplink-chameleon-desc - productEntity: ClothingBackpackChameleonFill + productEntity: ClothingBackpackChameleonFillAgent icon: { sprite: /Textures/Clothing/Uniforms/Jumpsuit/rainbow.rsi, state: icon } discountCategory: usualDiscounts discountDownTo: @@ -1830,9 +1741,9 @@ productEntity: ClothingOuterVestWebBiocode discountCategory: usualDiscounts discountDownTo: - Telecrystal: 1 - cost: Telecrystal: 3 + cost: + Telecrystal: 5 categories: - UplinkWearables @@ -1856,9 +1767,9 @@ productEntity: ClothingShoesBootsMagSyndieBiocode discountCategory: usualDiscounts discountDownTo: - Telecrystal: 2 + Telecrystal: 1 cost: - Telecrystal: 4 + Telecrystal: 2 categories: - UplinkWearables @@ -1868,11 +1779,8 @@ description: uplink-eva-syndie-desc icon: { sprite: /Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi, state: icon } productEntity: ClothingBackpackDuffelSyndicateEVABundle - discountCategory: rareDiscounts - discountDownTo: - Telecrystal: 1 cost: - Telecrystal: 2 + Telecrystal: 1 categories: - UplinkWearables @@ -1886,7 +1794,7 @@ discountDownTo: Telecrystal: 2 cost: - Telecrystal: 4 + Telecrystal: 3 categories: - UplinkWearables @@ -1900,7 +1808,7 @@ discountDownTo: Telecrystal: 4 cost: - Telecrystal: 8 + Telecrystal: 7 categories: - UplinkWearables #Sunrise-start @@ -1979,16 +1887,6 @@ - NukeOpsUplink - LoneOpsUplink # Sunrise-Edit -- type: listing - id: UplinkClothingConductingGloves - name: uplink-clothing-conducting-gloves-name - description: uplink-clothing-conducting-gloves-desc - productEntity: ClothingHandsGlovesConducting - cost: - Telecrystal: 1 # Sunrise-Edit - categories: - - UplinkWearables - - type: listing id: UplinkBackpackSyndicate name: uplink-backpack-syndicate-name @@ -2021,16 +1919,23 @@ categories: - UplinkPointless +- type: listing + id: UplinkClothingConductingGloves + name: uplink-clothing-conducting-gloves-name + description: uplink-clothing-conducting-gloves-desc + productEntity: ClothingHandsGlovesConducting + cost: + Telecrystal: 1 + categories: + - UplinkPointless + - type: listing id: UplinkRevolverCapGun name: uplink-revolver-cap-gun-name description: uplink-revolver-cap-gun-desc productEntity: RevolverCapGun - discountCategory: rareDiscounts - discountDownTo: - Telecrystal: 2 cost: - Telecrystal: 4 + Telecrystal: 1 categories: - UplinkPointless @@ -2039,13 +1944,11 @@ name: uplink-syndicate-stamp-name description: uplink-syndicate-stamp-desc productEntity: RubberStampSyndicate - discountCategory: rareDiscounts - discountDownTo: - Telecrystal: 1 - cost: - Telecrystal: 2 categories: - UplinkPointless + conditions: + - !type:ListingLimitedStockCondition + stock: 1 - type: listing id: UplinkCatEars @@ -2056,23 +1959,22 @@ Telecrystal: 26 categories: - UplinkPointless - # Sunrise-start conditions: - !type:BuyerWhitelistCondition blacklist: components: - SurplusBundle - # Sunrise-end - type: listing id: UplinkOutlawHat name: uplink-outlaw-hat-name description: uplink-outlaw-hat-desc productEntity: ClothingHeadHatOutlawHat - cost: - Telecrystal: 1 categories: - UplinkPointless + conditions: + - !type:ListingLimitedStockCondition + stock: 1 - type: listing id: UplinkOutlawGlasses @@ -2090,7 +1992,7 @@ description: uplink-costume-pyjama-desc productEntity: ClothingBackpackDuffelSyndicatePyjamaBundle cost: - Telecrystal: 4 + Telecrystal: 2 categories: - UplinkPointless @@ -2110,7 +2012,7 @@ description: uplink-carp-suit-bundle-desc productEntity: ClothingBackpackDuffelSyndicateCarpSuit cost: - Telecrystal: 4 + Telecrystal: 2 categories: - UplinkPointless @@ -2119,20 +2021,22 @@ name: uplink-operative-suit-name description: uplink-operative-suit-desc productEntity: ClothingUniformJumpsuitOperative - cost: - Telecrystal: 1 categories: - UplinkPointless + conditions: + - !type:ListingLimitedStockCondition + stock: 1 - type: listing id: UplinkOperativeSkirt name: uplink-operative-skirt-name description: uplink-operative-skirt-desc productEntity: ClothingUniformJumpskirtOperative - cost: - Telecrystal: 1 categories: - UplinkPointless + conditions: + - !type:ListingLimitedStockCondition + stock: 1 - type: listing id: UplinkBalloon @@ -2143,33 +2047,33 @@ Telecrystal: 20 categories: - UplinkPointless - # Sunrise-start conditions: - !type:BuyerWhitelistCondition blacklist: components: - SurplusBundle - # Sunrise-end - type: listing id: UplinkScarfSyndieRed name: uplink-scarf-syndie-red-name description: uplink-scarf-syndie-red-desc productEntity: ClothingNeckScarfStripedSyndieRed - cost: - Telecrystal: 1 categories: - UplinkPointless + conditions: + - !type:ListingLimitedStockCondition + stock: 1 - type: listing id: UplinkScarfSyndieGreen name: uplink-scarf-syndie-green-name description: uplink-scarf-syndie-green-desc productEntity: ClothingNeckScarfStripedSyndieGreen - cost: - Telecrystal: 1 categories: - UplinkPointless + conditions: + - !type:ListingLimitedStockCondition + stock: 1 - type: listing id: UplinkSyndicateBusinessCard @@ -2182,6 +2086,17 @@ - !type:ListingLimitedStockCondition stock: 3 +- type: listing + id: UplinkDecoyKit + name: uplink-decoy-kit-name + description: uplink-decoy-kit-desc + icon: { sprite: /Textures/Objects/Tools/Decoys/operative_decoy.rsi, state: folded } + productEntity: ClothingBackpackDuffelSyndicateDecoyKitFilled + cost: + Telecrystal: 1 + categories: + - UplinkPointless + # Job Specific - type: listing @@ -2201,44 +2116,6 @@ whitelist: - Botanist -- type: listing - id: uplinkRiggedBoxingGlovesPassenger - name: uplink-rigged-boxing-gloves-name - description: uplink-rigged-boxing-gloves-desc - productEntity: ClothingHandsGlovesBoxingRigged - discountCategory: usualDiscounts - discountDownTo: - Telecrystal: 3 - cost: - Telecrystal: 6 - categories: - - UplinkJob - conditions: - - !type:BuyerJobCondition - whitelist: - - Passenger - -- type: listing - id: uplinkNecronomicon - name: uplink-necronomicon-name - description: uplink-necronomicon-desc - productEntity: BibleNecronomicon - discountCategory: usualDiscounts - discountDownTo: - Telecrystal: 2 - cost: - Telecrystal: 4 - categories: - - UplinkJob - conditions: - - !type:BuyerJobCondition - whitelist: - - Chaplain - - !type:BuyerWhitelistCondition - blacklist: - components: - - SurplusBundle - - type: listing id: uplinkHolyHandGrenade name: uplink-holy-hand-grenade-name @@ -2263,9 +2140,9 @@ productEntity: RevolverCapGunFake discountCategory: rareDiscounts discountDownTo: - Telecrystal: 3 + Telecrystal: 2 cost: - Telecrystal: 5 + Telecrystal: 3 categories: - UplinkJob conditions: @@ -2274,24 +2151,6 @@ - Mime - Clown -- type: listing - id: uplinkBananaPeelExplosive - name: uplink-banana-peel-explosive-name - description: uplink-banana-peel-explosive-desc - icon: { sprite: Objects/Specific/Hydroponics/banana.rsi, state: peel } - productEntity: TrashBananaPeelExplosiveUnarmed - discountCategory: rareDiscounts - discountDownTo: - Telecrystal: 1 - cost: - Telecrystal: 2 - categories: - - UplinkJob - conditions: - - !type:BuyerJobCondition - whitelist: - - Clown - - type: listing id: UplinkClusterBananaPeel name: uplink-cluster-banana-peel-name @@ -2301,7 +2160,7 @@ discountDownTo: Telecrystal: 3 cost: - Telecrystal: 6 + Telecrystal: 5 categories: - UplinkJob conditions: @@ -2392,10 +2251,10 @@ icon: { sprite: Objects/Misc/monkeycube.rsi, state: box} discountCategory: rareDiscounts discountDownTo: - Telecrystal: 4 + Telecrystal: 2 productEntity: SyndicateSpongeBox cost: - Telecrystal: 7 + Telecrystal: 4 categories: - UplinkJob conditions: @@ -2423,10 +2282,6 @@ - !type:BuyerJobCondition whitelist: - Librarian - - !type:BuyerWhitelistCondition - blacklist: - components: - - SurplusBundle - type: listing id: UplinkCombatBakery @@ -2516,7 +2371,7 @@ discountDownTo: Telecrystal: 10 cost: - Telecrystal: 15 + Telecrystal: 14 categories: - UplinkJob conditions: diff --git a/Resources/Prototypes/Entities/Clothing/Eyes/specific.yml b/Resources/Prototypes/Entities/Clothing/Eyes/specific.yml index b62773fe50..0abe003d5a 100644 --- a/Resources/Prototypes/Entities/Clothing/Eyes/specific.yml +++ b/Resources/Prototypes/Entities/Clothing/Eyes/specific.yml @@ -1,10 +1,11 @@ - type: entity parent: [ClothingEyesBase, BaseChameleon] - id: ClothingEyesChameleon # no flash immunity, sorry + id: ClothingEyesChameleon name: sun glasses description: Useful both for security and cargonia. suffix: Chameleon components: + - type: FlashImmunity - type: Tag tags: # intentionally no WhitelistChameleon tag - PetWearable diff --git a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml index 6f36c6451a..922be0db6f 100644 --- a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml +++ b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml @@ -1,15 +1,8 @@ - type: entity + abstract: true parent: ClothingHandsBase - id: ClothingHandsGlovesBoxingRed - name: red boxing gloves - description: Red gloves for competitive boxing. + id: ClothingHandsGlovesBoxingBase components: - - type: Sprite - sprite: Clothing/Hands/Gloves/Boxing/boxingred.rsi - - type: DiseaseImmuneClothing - prob: 0.2 - - type: Clothing - sprite: Clothing/Hands/Gloves/Boxing/boxingred.rsi - type: StaminaDamageOnHit damage: 8 #Stam damage values seem a bit higher than regular damage because of the decay, etc # This needs to be moved to boxinggloves @@ -23,17 +16,32 @@ collection: BoxingHit animation: WeaponArcFist mustBeEquippedToUse: true - - type: Fiber - fiberMaterial: fibers-leather - fiberColor: fibers-red - - type: FingerprintMask - type: Tag tags: - Kangaroo - WhitelistChameleon + # Sunrise-Start + - type: DiseaseImmuneClothing + prob: 0.2 + # Sunrise-End - type: entity - parent: ClothingHandsGlovesBoxingRed + parent: ClothingHandsGlovesBoxingBase + id: ClothingHandsGlovesBoxingRed + name: red boxing gloves + description: Red gloves for competitive boxing. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/Boxing/boxingred.rsi + - type: Clothing + sprite: Clothing/Hands/Gloves/Boxing/boxingred.rsi + - type: Fiber + fiberMaterial: fibers-leather + fiberColor: fibers-red + - type: FingerprintMask + +- type: entity + parent: ClothingHandsGlovesBoxingBase id: ClothingHandsGlovesBoxingBlue name: blue boxing gloves description: Blue gloves for competitive boxing. @@ -49,7 +57,7 @@ - type: FingerprintMask - type: entity - parent: ClothingHandsGlovesBoxingRed + parent: ClothingHandsGlovesBoxingBase id: ClothingHandsGlovesBoxingGreen name: green boxing gloves description: Green gloves for competitive boxing. @@ -65,7 +73,7 @@ - type: FingerprintMask - type: entity - parent: ClothingHandsGlovesBoxingRed + parent: ClothingHandsGlovesBoxingBase id: ClothingHandsGlovesBoxingYellow name: yellow boxing gloves description: Yellow gloves for competitive boxing. @@ -81,19 +89,53 @@ - type: FingerprintMask - type: entity - parent: ClothingHandsGlovesBoxingBlue - id: ClothingHandsGlovesBoxingRigged + abstract: true + parent: ClothingHandsGlovesBoxingBase + id: ClothingHandsGlovesBoxingRiggedBase suffix: Rigged components: - - type: StaminaDamageOnHit - damage: 25 - type: MeleeWeapon - attackRate: 1.4 damage: types: Blunt: 8 - bluntStaminaDamageFactor: 0.0 # so blunt doesn't deal stamina damage at all - mustBeEquippedToUse: true + bluntStaminaDamageFactor: 2 + +- type: entity + parent: [ ClothingHandsGlovesBoxingRiggedBase, ClothingHandsGlovesBoxingRed ] + id: ClothingHandsGlovesBoxingRiggedRed + name: red boxing gloves + description: Red gloves for competitive boxing. + +- type: entity + parent: [ ClothingHandsGlovesBoxingRiggedBase, ClothingHandsGlovesBoxingBlue ] + id: ClothingHandsGlovesBoxingRiggedBlue + name: blue boxing gloves + description: Blue gloves for competitive boxing. + +- type: entity + parent: [ ClothingHandsGlovesBoxingRiggedBase, ClothingHandsGlovesBoxingGreen ] + id: ClothingHandsGlovesBoxingRiggedGreen + name: green boxing gloves + description: Green gloves for competitive boxing. + +- type: entity + parent: [ ClothingHandsGlovesBoxingRiggedBase, ClothingHandsGlovesBoxingYellow ] + id: ClothingHandsGlovesBoxingRiggedYellow + name: yellow boxing gloves + description: Yellow gloves for competitive boxing. + +- type: entity + id: GlovesBoxingRiggedRandomSpawner + categories: [ HideSpawnMenu ] + name: random rigged boxing glove spawner + components: + - type: EntityTableSpawner + table: !type:GroupSelector + children: + - id: ClothingHandsGlovesBoxingRiggedRed + - id: ClothingHandsGlovesBoxingRiggedBlue + - id: ClothingHandsGlovesBoxingRiggedGreen + - id: ClothingHandsGlovesBoxingRiggedYellow - type: entity parent: [ClothingHandsBase, BaseCommandContraband] diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml index 230a49606e..20167087b0 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml @@ -140,7 +140,7 @@ sprite: Clothing/OuterClothing/Vests/detvest.rsi - type: entity - parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing] + parent: [ ClothingOuterBaseMedium, AllowSuitStorageClothing ] id: ClothingOuterArmorBaseCarapace abstract: true components: @@ -154,10 +154,6 @@ Caustic: 0.9 - type: ExplosionResistance damageCoefficient: 0.65 - - type: ClothingSpeedModifier - walkModifier: 1.0 - sprintModifier: 1.0 - - type: HeldSpeedModifier - type: GroupExamine - type: entity @@ -190,7 +186,7 @@ #Web vest - type: entity - parent: [ClothingOuterStorageBase, AllowSuitStorageClothing, BaseSyndicateContraband] + parent: [ClothingOuterArmorBase, ClothingOuterStorageBase, BaseSyndicateContraband] id: ClothingOuterVestWeb name: web vest description: A synthetic armor vest. This one has added webbing and ballistic plates. @@ -208,16 +204,18 @@ Slash: 0.6 Piercing: 0.3 Heat: 0.9 - - type: ExplosionResistance - damageCoefficient: 0.8 - type: StaticPrice price: 1500 - - type: StaminaResistance # Sunrise-Add - damageCoefficient: 0.75 # Sunrise-Add + # Sunrise-Start + - type: StaminaResistance + damageCoefficient: 0.8 + - type: ExplosionResistance + damageCoefficient: 0.85 + # Sunrise-End #Elite web vest - type: entity - parent: [ClothingOuterStorageBase, AllowSuitStorageClothing, BaseSyndicateContraband] + parent: [ClothingOuterArmorBase, AllowSuitStorageClothing, BaseSyndicateContraband] id: ClothingOuterVestWebElite name: elite web vest description: A synthetic armor vest. This one has added webbing and heat resistant fibers. @@ -267,8 +265,6 @@ Slash: 0.7 Piercing: 0.5 Heat: 0.9 - - type: ExplosionResistance - damageCoefficient: 0.9 # Armor covering multiple body parts including limbs diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml index 40c8ee9b83..4f27b2bdd1 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml @@ -47,10 +47,14 @@ parent: [ClothingOuterBase, BaseClothingOuterSounds] # Sunrise id: ClothingOuterStorageBase components: - - type: ContainerInteractionAnimationVisuals # Sunrise added + - type: Item + size: Normal + shape: + - 0,0,1,2 - type: Storage grid: - 0,0,2,1 + maxItemSize: Small - type: ContainerContainer containers: storagebase: !type:Container @@ -67,6 +71,7 @@ - Vest - WhitelistChameleon - NudeBottom # INTERACTIONS + - type: ContainerInteractionAnimationVisuals # Sunrise-End - type: entity @@ -261,4 +266,6 @@ id: ClothingOuterBaseMedium components: - type: Item - size: Huge + size: Large + shape: + - 0,0,2,3 diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml index cbf4c4d9b3..7f002ea56b 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml @@ -17,7 +17,7 @@ # SUNRISE EDIT - type: entity - parent: [ClothingOuterStorageBase, AllowSuitStorageClothing, ClothingOuterArmorBase] + parent: [ ClothingOuterBaseMedium, ClothingOuterStorageBase, AllowSuitStorageClothing, BaseSecurityContraband ] id: ClothingOuterCoatDetective name: detective trenchcoat description: An 18th-century multi-purpose trenchcoat. Someone who wears this means serious business. @@ -32,15 +32,6 @@ children: - id: SmokingPipeFilledTobacco - id: FlippoEngravedLighter - - type: ExplosionResistance - damageCoefficient: 1 #its a coat. it doesnt do shit - # SUNRISE EDIT - - type: Tag - tags: - - WhitelistChameleon - - Vest - - NudeBottom # INTERACTIONS - # SUNRISE EDIT - type: entity parent: [ClothingOuterCoatDetectiveLoadout] @@ -85,7 +76,7 @@ - type: entity abstract: true - parent: AllowSuitStorageClothing + parent: [ ClothingOuterArmorBase, ClothingOuterStorageBase ] id: ClothingOuterArmorHoS components: - type: Pierceable @@ -98,12 +89,10 @@ Piercing: 0.6 Heat: 0.7 Caustic: 0.75 # not the full 90% from ss13 because of the head - - type: ExplosionResistance - damageCoefficient: 0.9 - type: entity abstract: true - parent: AllowSuitStorageClothing + parent: [ ClothingOuterArmorBase, ClothingOuterStorageBase ] id: ClothingOuterArmorWarden components: - type: Pierceable @@ -116,11 +105,9 @@ Piercing: 0.7 Heat: 0.7 Caustic: 0.9 - - type: ExplosionResistance - damageCoefficient: 0.9 - type: entity - parent: [ClothingOuterArmorHoS, ClothingOuterStorageBase, BaseSecurityCommandContraband] + parent: [BaseSecurityCommandContraband, ClothingOuterArmorHoS] id: ClothingOuterCoatHoSTrench name: head of security's armored trenchcoat description: A greatcoat enhanced with a special alloy for some extra protection and style for those with a commanding presence. @@ -150,6 +137,16 @@ - type: ToggleableClothing clothingPrototype: ClothingHeadHatHoodChaplainHood +- type: entity + parent: ClothingOuterCoatJensen + id: ClothingOuterCoatJensenSyndie + suffix: Syndie + components: + - type: EntityTableContainerFill + containers: + storagebase: + id: SyndieHandyFlag + - type: entity parent: ClothingOuterStorageBase id: ClothingOuterCoatTrench @@ -377,7 +374,7 @@ sprite: Clothing/OuterClothing/Coats/pirate.rsi - type: entity - parent: [ClothingOuterArmorWarden, ClothingOuterStorageBase, BaseSecurityContraband] + parent: [ClothingOuterArmorWarden, BaseSecurityContraband] id: ClothingOuterCoatWarden name: warden's armored jacket description: A sturdy, utilitarian jacket designed to protect a warden from any brig-bound threats. diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/specific.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/specific.yml index 3cf812530a..037429746c 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/specific.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/specific.yml @@ -1,5 +1,5 @@ - type: entity - parent: [ClothingOuterBase, BaseChameleon] + parent: [ClothingOuterBase, AllowSuitStorageClothingGasTanks, BaseChameleon] id: ClothingOuterChameleon name: vest description: A thick vest with a rubbery, water-resistant shell. diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml index b2d57d7342..561d80ec8d 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml @@ -382,6 +382,11 @@ sprite: Clothing/OuterClothing/WinterCoats/coathosarmored.rsi - type: ToggleableClothing clothingPrototype: ClothingHeadHatHoodWinterHOS + - type: ContainerContainer + containers: + toggleable-clothing: !type:ContainerSlot { } + storagebase: !type:Container + ents: [ ] ########################################################## - type: entity @@ -753,6 +758,11 @@ sprite: Clothing/OuterClothing/WinterCoats/coatwardenarmored.rsi - type: ToggleableClothing clothingPrototype: ClothingHeadHatHoodWinterWarden + - type: ContainerContainer + containers: + toggleable-clothing: !type:ContainerSlot { } + storagebase: !type:Container + ents: [ ] ################################################################ - type: entity diff --git a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml index 711798f6f6..f5532c8986 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml @@ -234,15 +234,6 @@ templateId: holoclown - type: Hands - type: ComplexInteraction - - type: Clumsy - gunShootFailDamage: - types: - Blunt: 5 - Piercing: 4 - Heat: 3 - catchingFailDamage: - types: - Blunt: 1 - type: MeleeWeapon angle: 30 animation: WeaponArcFist @@ -257,9 +248,6 @@ - type: RandomMetadata nameSegments: - NamesClown - - type: NpcFactionMember - factions: - - Syndicate - type: HTN rootTask: task: SimpleHumanoidHostileCompound diff --git a/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml b/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml index 2cab9edf24..ebbe484908 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml @@ -62,7 +62,7 @@ path: /Audio/Effects/bite.ogg damage: types: - Piercing: 15 # Sunrise-Edit + Piercing: 5 # Visual & Audio - type: DamageVisuals damageOverlayGroups: @@ -146,19 +146,9 @@ - "footprint-left-bare-spider" rightBareFootState: - "footprint-right-bare-spider" - - type: Fixtures - fixtures: - fix1: - shape: - !type:PhysShapeCircle - radius: 0.40 - density: 250 - restitution: 0.0 - mask: - - MobMask - layer: - - MobLayer - type: Carriable + - type: ToggleableNightVision + effect: EffectNightVisioSpecies # Sunrise-end - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/misc.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/misc.yml index ddfadb6fb6..81293d76fc 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/misc.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/misc.yml @@ -811,10 +811,6 @@ Quantity: 2 - ReagentId: Vitamin Quantity: 1 - - type: DamageOtherOnHit - damage: - types: - Blunt: 0 # so the damage stats icon doesn't immediately give away the syndie ones - type: entity parent: FoodBakedCroissant diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml index 7523022278..7364973cf8 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml @@ -721,13 +721,17 @@ - type: entityTable id: HappyHonkToyUnsafeEntityTable table: !type:GroupSelector - children: + children: # Total Weight 6 + - id: ClothingHeadHatCatEars + weight: 0.25 - id: C4 - weight: 0.02 + weight: 0.05 - id: ToyMarauder - id: ToyMauler - id: ToyNuke - id: ToySword + - id: WeaponRevolverPythonAP + weight: 0.4 - id: BalloonSyn - weight: 0.6 + weight: 0.3 - id: PlushieNuke diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/law_boards.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/law_boards.yml index c54fb770e5..f1f0fd8d48 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/law_boards.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/law_boards.yml @@ -124,6 +124,18 @@ - type: StaticPrice price: 10000 +- type: entity + id: SyndimovCircuitBoard + parent: [BaseSiliconLawboard, BaseSyndicateContraband] + name: law board (Syndimov) + description: An electronics board containing the Syndimov lawset. + components: + - type: SiliconLawProvider + laws: SyndicateStatic + lawUploadSound: /Audio/Ambience/Antag/emagged_borg.ogg # This should probably have its own sound but it's fine for now. + - type: StaticPrice + price: 5000 + - type: entity id: NutimovCircuitBoard parent: BaseSiliconLawboard diff --git a/Resources/Prototypes/Entities/Objects/Devices/flatpack.yml b/Resources/Prototypes/Entities/Objects/Devices/flatpack.yml index 3aedd5bf6a..3e66192635 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/flatpack.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/flatpack.yml @@ -265,19 +265,6 @@ allowUnpackOnTables: true entity: KitchenMicrowave -- type: entity - parent: BaseFlatpack - id: SyndicateMicrowaveFlatpack - name: microwave flatpack - description: A flatpack used for constructing a microwave. - components: - - type: Sprite - layers: - - state: microwave - - type: Flatpack - allowUnpackOnTables: true - entity: SyndicateMicrowave - - type: entity parent: BaseFlatpack id: HydroponicsTrayFlatpack @@ -293,3 +280,17 @@ guides: - Botany - Chemicals + +- type: entity + parent: [ BaseFlatpack, BaseSyndicateContraband ] + id: SyndicateMicrowaveFlatpack + name: donk co. microwave flatpack + description: A flatpack used for constructing a microwave too hot for Nanotrasen to handle. + components: + - type: Item + size: Normal + - type: Flatpack + entity: SyndicateMicrowave + - type: GuideHelp + guides: + - FoodRecipes diff --git a/Resources/Prototypes/Entities/Objects/Devices/pda.yml b/Resources/Prototypes/Entities/Objects/Devices/pda.yml index 120a72dab0..90fc8b7db6 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/pda.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/pda.yml @@ -1842,6 +1842,14 @@ - Thief # Sunrise-End +- type: entity + parent: ChameleonPDA + id: ChameleonAgentPDA + suffix: Chameleon, Agent ID + components: + - type: Pda + id: AgentIDCard + - type: entity parent: BaseWidePDA id: WizardPDA diff --git a/Resources/Prototypes/Entities/Objects/Fun/darts.yml b/Resources/Prototypes/Entities/Objects/Fun/darts.yml index 4230a36108..790019a0c0 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/darts.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/darts.yml @@ -121,13 +121,13 @@ - type: SolutionContainerManager solutions: melee: - maxVol: 7 + maxVol: 10 - type: SolutionInjectOnEmbed - transferAmount: 7 + transferAmount: 10 blockSlots: NONE solution: melee - type: SolutionTransfer - maxTransferAmount: 7 + maxTransferAmount: 10 - type: entity name: dartboard diff --git a/Resources/Prototypes/Entities/Objects/Misc/briefcases.yml b/Resources/Prototypes/Entities/Objects/Misc/briefcases.yml index 53fe642ae2..59bde579ab 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/briefcases.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/briefcases.yml @@ -32,3 +32,48 @@ components: - type: Item size: Huge + +- type: entity + parent: [BriefcaseBase, BaseSyndicateContraband] + id: BriefcaseWeapon + name: secure weapon case + suffix: Gun, Empty + description: Useful for aspiring mercenaries, whether you're fighting for a company, a nation or anyone else. Or just making a really big omelette. + components: + - type: Appearance + - type: Sprite + sprite: Objects/Storage/Briefcases/weapon_case_large.rsi + layers: + - state: icon + map: [ base ] + - state: locked + map: [ "enum.LockVisualLayers.Lock" ] + shader: unshaded + - state: unlocked + map: [ light ] + shader: unshaded + - type: Lock + - type: LockVisuals + - type: GenericVisualizer + visuals: + enum.StorageVisuals.Open: + base: + True: { state: icon-open } + False: { state: icon } + light: + True: { visible: true } + False: { visible: false } + +- type: entity + parent: BriefcaseWeapon + id: BriefcaseWeaponSmall + suffix: Gun, Small, Empty + components: + - type: Sprite + sprite: Objects/Storage/Briefcases/weapon_case.rsi + - type: Item + size: Large + - type: Storage + maxItemSize: Large + grid: + - 0,0,3,1 diff --git a/Resources/Prototypes/Entities/Objects/Misc/implanters.yml b/Resources/Prototypes/Entities/Objects/Misc/implanters.yml index 82e9b68bec..cbbe7b6e45 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/implanters.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/implanters.yml @@ -266,7 +266,7 @@ - type: entity id: VoiceMaskImplanter - name: voice mask implanter + name: identity mask implanter parent: BaseImplantOnlyImplanterSyndi components: - type: Implanter diff --git a/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml b/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml index d3234770a9..b99506b7bc 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml @@ -286,8 +286,8 @@ - type: entity parent: BaseSubdermalImplant id: VoiceMaskImplant - name: voice mask implant - description: This implant allows you to change your voice at will. + name: identity mask implant + description: This implant allows you to change your identity at will. categories: [ HideSpawnMenu ] components: - type: SubdermalImplant diff --git a/Resources/Prototypes/Entities/Objects/Power/powersink.yml b/Resources/Prototypes/Entities/Objects/Power/powersink.yml index 7e448e06f7..61e6891dd4 100644 --- a/Resources/Prototypes/Entities/Objects/Power/powersink.yml +++ b/Resources/Prototypes/Entities/Objects/Power/powersink.yml @@ -50,7 +50,7 @@ - type: ExaminableBattery - type: PowerConsumer voltage: High - drawRate: 1000000 + drawRate: 10000000 - type: Sprite sprite: Objects/Power/powersink.rsi state: powersink diff --git a/Resources/Prototypes/Entities/Objects/Tools/jammer.yml b/Resources/Prototypes/Entities/Objects/Tools/jammer.yml index 2922a3d53e..fea1f7c1b4 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/jammer.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/jammer.yml @@ -1,58 +1,64 @@ - type: entity + abstract: true + parent: BaseItem + id: BaseJammer name: radio jammer - parent: [BaseItem, BaseSyndicateContraband] - id: RadioJammer description: This device will disrupt any nearby outgoing radio communication as well as suit sensors when activated. components: - type: Sprite sprite: Objects/Devices/jammer.rsi layers: - - state: jammer - - state: jammer_high_charge - map: ["enum.RadioJammerLayers.LED"] - shader: unshaded - visible: false + - state: jammer + - state: jammer_high_charge + map: ["enum.PowerDeviceVisualLayers.Powered"] + shader: unshaded + visible: false - type: RadioJammer settings: - - wattage: 1 - range: 2.5 - message: radio-jammer-component-set-message-low - name: radio-jammer-component-setting-low - wattage: 2 range: 6 - message: radio-jammer-component-set-message-medium - name: radio-jammer-component-setting-medium + message: radio-jammer-component-set-message-low + name: radio-jammer-component-setting-low - wattage: 12 range: 12 message: radio-jammer-component-set-message-high name: radio-jammer-component-setting-high - - type: PowerCellSlot - cellSlotId: cell_slot - - type: ContainerContainer - containers: - cell_slot: !type:ContainerSlot - - type: ItemSlots - slots: - cell_slot: - name: power-cell-slot-component-slot-name-default - startingItem: PowerCellMedium - type: Appearance + - type: ItemToggle - type: GenericVisualizer visuals: - enum.RadioJammerVisuals.LEDOn: - RadioJammerLayers.LED: - True: { visible: True } - False: { visible: False } - enum.RadioJammerVisuals.ChargeLevel: - RadioJammerLayers.LED: - Low: {state: jammer_low_charge} - Medium: {state: jammer_medium_charge} - High: {state: jammer_high_charge} + enum.ToggleableVisuals.Enabled: + enum.PowerDeviceVisualLayers.Powered: + True: { visible: true } + False: { visible: false } + - type: BatteryVisuals - type: StaticPrice price: 1500 - type: entity - parent: [RadioJammer, BaseXenoborgContraband] + name: radio jammer + parent: [BaseJammer, PowerCellSlotMediumItem, BaseSyndicateContraband] + id: RadioJammer + description: This device will disrupt any nearby outgoing and incoming radio communication as well as suit sensors when activated. + components: + - type: GenericVisualizer + visuals: + enum.BatteryVisuals.State: + enum.PowerDeviceVisualLayers.Powered: + Full: { state: jammer_high_charge } + Neither: { state: jammer_medium_charge } + Empty: { state: jammer_low_charge } + enum.ToggleableVisuals.Enabled: + enum.PowerDeviceVisualLayers.Powered: + True: { visible: true } + False: { visible: false } + - type: ToggleCellDraw + - type: BatteryVisuals + - type: StaticPrice + price: 1500 + +- type: entity + parent: [BaseJammer, BaseXenoborgContraband] id: XenoborgRadioJammer name: xenoborg radio jammer components: @@ -62,10 +68,3 @@ - 2003 # mothership radio - 2004 # xenoborg network - 2005 # mothership network - - type: ItemSlots - slots: - cell_slot: - name: power-cell-slot-component-slot-name-default - startingItem: PowerCellMicroreactor - disableEject: true - swap: false diff --git a/Resources/Prototypes/Entities/Objects/Tools/jaws_of_life.yml b/Resources/Prototypes/Entities/Objects/Tools/jaws_of_life.yml index 67ec0de197..f6d2436d7e 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/jaws_of_life.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/jaws_of_life.yml @@ -51,10 +51,10 @@ collection: MetalThud - type: entity - name: syndicate jaws of life + name: syndicate jaws of death parent: [JawsOfLife, BaseSyndicateContraband] id: SyndicateJawsOfLife - description: Useful for entering the station or its departments. + description: Useful for breaking into secure areas and other nefarious activities. components: - type: Sprite sprite: Objects/Tools/jaws_of_life.rsi diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Bombs/pipebomb.yml b/Resources/Prototypes/Entities/Objects/Weapons/Bombs/pipebomb.yml index c2f1082e9e..e5ec17759e 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Bombs/pipebomb.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Bombs/pipebomb.yml @@ -1,5 +1,5 @@ - type: entity - parent: [ GrenadeBase, BaseMinorContraband ] + parent: [ TimerGrenadeBase, BaseMinorContraband ] id: PipeBomb name: pipe bomb description: An improvised explosive made from pipes and wire. diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml index ea0bfef790..f659552e77 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -825,10 +825,9 @@ price: 100 - type: entity - name: experimental C.H.I.M.P. handcannon parent: [WeaponPistolCHIMP, BaseSyndicateContraband] id: WeaponPistolCHIMPUpgraded - description: This C.H.I.M.P. seems to have a greater punch than usual... + suffix: Syndicate components: - type: BatteryWeaponFireModes fireModes: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml index 6b138cbc66..5c3ed6c2ba 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml @@ -1,6 +1,6 @@ - type: entity name: BaseWeaponLauncher - parent: BaseItem + parent: [ BaseItem, BaseGunWieldable ] id: BaseWeaponLauncher description: A rooty tooty point and shooty. abstract: true @@ -19,6 +19,14 @@ containers: ballistic-ammo: !type:Container ents: [] + - type: Gun + fireRate: 1 + projectileSpeed: 25 # Slower than a bullet, same speed as our old projectile limit. + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/grenade_launcher.ogg # Sunrise start - type: EmitSoundOnPickup sound: @@ -41,7 +49,7 @@ - type: entity name: china lake - parent: [BaseWeaponLauncher, BaseGunWieldable, BaseSyndicateContraband] + parent: [BaseWeaponLauncher, BaseSyndicateContraband] id: WeaponLauncherChinaLake description: PLOOP. components: @@ -62,19 +70,12 @@ - type: AmmoCounter - type: Gun pump: true - fireRate: 1 - selectedMode: SemiAuto - availableModes: - - SemiAuto - soundGunshot: - path: /Audio/Weapons/Guns/Gunshots/grenade_launcher.ogg - projectileSpeed: 15 # Sunrise-Edit - type: BallisticAmmoProvider whitelist: tags: - Grenade - capacity: 3 # Sunrise-Edit - proto: GrenadeFragTimer + capacity: 3 + proto: GrenadeFrag soundInsert: path: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg - type: GunRequiresWield @@ -82,7 +83,7 @@ price: 10000 - type: entity - parent: [ BaseWeaponLauncher, BaseGunWieldable, BaseMajorContraband ] + parent: [ BaseWeaponLauncher, BaseMajorContraband ] id: WeaponLauncherHydra name: hydra description: PLOOP... FSSSSSS... @@ -100,13 +101,6 @@ - type: Item size: Huge - type: AmmoCounter - - type: Gun - fireRate: 1 - selectedMode: SemiAuto - availableModes: - - SemiAuto - soundGunshot: - path: /Audio/Weapons/Guns/Gunshots/grenade_launcher.ogg - type: GunRequiresWield - type: ContainerContainer containers: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml index 9594f12e56..17ac93b4d4 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml @@ -122,11 +122,11 @@ description: A cyborg-mounted weapon system based on the Viper pistol. Creates ammunition on the fly from an internal fabricator, which slowly self-charges. components: - type: Gun - fireRate: 5 + fireRate: 6 selectedMode: SemiAuto availableModes: - - SemiAuto - - FullAuto + - SemiAuto + - FullAuto soundGunshot: path: /Audio/Weapons/Guns/Gunshots/pistol.ogg - type: Sprite @@ -136,17 +136,19 @@ map: ["enum.GunVisualLayers.Base"] - state: mag-0 map: ["enum.GunVisualLayers.Mag"] - # - type: ContainerContainer - # containers: - # ballistic-ammo: !type:Container - - type: BatteryAmmoProvider - proto: BulletPistolTraceSP - fireCost: 100 - - type: Battery - maxCharge: 1000 - startingCharge: 1000 - - type: BatterySelfRecharger - autoRechargeRate: 25 + - type: ContainerContainer + containers: + ballistic-ammo: !type:Container + - type: BallisticAmmoProvider + whitelist: + tags: + - CartridgePistol + capacity: 10 + proto: BulletPistolTraceSP # Sunrise-Edit + cycleable: false # No synthesizing ammo for your syndicate masters. + - type: BallisticAmmoSelfRefiller + autoRefillRate: 2s + affectedByEmp: true - type: AmmoCounter - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml index 9a7bb306b2..a3009e564b 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml @@ -350,3 +350,7 @@ - type: Appearance - type: StaticPrice price: 5000 + - type: MeleeWeapon + damage: + types: + Blunt: 8 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/baguette.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/baguette.yml index 125184d1dc..0a29ae8d0a 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/baguette.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/baguette.yml @@ -1,16 +1,14 @@ - type: entity - parent: FoodBreadBaguette + parent: [ FoodBreadBaguette, BaseSword, BaseSyndicateContraband ] id: WeaponBaguette suffix: Weapon components: - type: MeleeWeapon - attackRate: 1.4 wideAnimationRotation: -120 + attackRate: 1.5 damage: types: - Slash: 16 + Slash: 17 soundHit: path: /Audio/Weapons/bladeslice.ogg - - type: Reflect - reflectProb: 0.05 - spread: 90 + - type: DisarmMalus diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml index 75057257c0..6426e7e1c5 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml @@ -285,7 +285,7 @@ state: e_dagger - type: SpawnItemsOnUse items: - - id: EnergyDaggerBiocode # Sunrise-Edit + - id: EnergyDagger sound: path: /Audio/Effects/unwrap.ogg diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/base_grenades.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/base_grenades.yml index 8f2f7547c0..b681bdbd0b 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/base_grenades.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/base_grenades.yml @@ -14,26 +14,10 @@ quickEquip: false slots: - Belt - - type: TriggerOnUse - - type: TimerTrigger - delay: 3 - type: Damageable damageContainer: Inorganic - - type: Destructible - thresholds: - - trigger: # Start fuse - !type:DamageTrigger - damage: 10 - behaviors: - - !type:TimerStartBehavior - type: Appearance - type: AnimationPlayer - - type: GenericVisualizer - visuals: - enum.Trigger.TriggerVisuals.VisualState: - enum.ConstructionVisuals.Layer: - Primed: { state: primed } - Unprimed: { state: icon } - type: Tag tags: - HandGrenade @@ -48,6 +32,46 @@ restitution: 0.3 friction: 0.2 +- type: entity # Starts fuse after taking 10 damage. + parent: GrenadeBase + abstract: true + id: TimerGrenadeBase + components: + - type: TriggerOnUse + - type: TimerTrigger + delay: 3 + - type: Destructible + thresholds: + - trigger: # Start fuse + !type:DamageTrigger + damage: 10 + behaviors: + - !type:TimerStartBehavior + - type: GenericVisualizer + visuals: + enum.Trigger.TriggerVisuals.VisualState: + enum.ConstructionVisuals.Layer: + Primed: { state: primed } + Unprimed: { state: icon } + +- type: entity # Starts fuse after taking 10 damage. + parent: GrenadeBase + abstract: true + id: ImpactGrenadeBase + components: + - type: TriggerOnLand + - type: LandAtCursor + - type: Destructible + thresholds: + - trigger: # immediately explode + !type:DamageTrigger + damage: 45 + behaviors: + - !type:TriggerBehavior + keyOut: timer + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: entity # Starts fuse after taking 10 damage, instantly detonates/activates after taking 45 damage. abstract: true id: VolatileGrenadeBase diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/canister_grenades.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/canister_grenades.yml index dc23f966e2..29959b5046 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/canister_grenades.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/canister_grenades.yml @@ -1,5 +1,5 @@ - type: entity - parent: [VolatileGrenadeBase, GrenadeBase, BaseSecurityContraband ] + parent: [VolatileGrenadeBase, TimerGrenadeBase, BaseSecurityContraband ] id: SmokeGrenade name: smoke grenade description: A tactical grenade that releases a large, long-lasting cloud of smoke when used. @@ -90,7 +90,7 @@ #Sunrise-End - type: entity - parent: [ BaseEngineeringContraband, VolatileGrenadeBase, GrenadeBase ] # Prevent inheriting DeleteOnTrigger from SmokeGrenade + parent: [ BaseEngineeringContraband, VolatileGrenadeBase, TimerGrenadeBase ] # Prevent inheriting DeleteOnTrigger from SmokeGrenade id: AirGrenade name: air grenade description: A special solid state chemical grenade used for quickly releasing standard air into a spaced area. Fills up to 30 tiles! diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/croissant.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/croissant.yml index fa0d4b7672..7ff2e100ff 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/croissant.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/croissant.yml @@ -1,5 +1,5 @@ - type: entity - parent: FoodBakedCroissant + parent: [ FoodBakedCroissant, ThrowingKnife ] id: WeaponCroissant suffix: Weapon components: @@ -13,14 +13,5 @@ - ItemMask restitution: 0.3 friction: 0.2 - - type: EmbeddableProjectile - sound: /Audio/Weapons/star_hit.ogg - - type: LandAtCursor - - type: DamageOtherOnHit - ignoreResistances: true - damage: - types: - Slash: 5 - Piercing: 10 - type: ThrowingAngle angularVelocity: true # spins diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml index 54b77d5c07..b5e5568334 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml @@ -1,7 +1,7 @@ - type: entity name: explosive grenade description: Grenade that creates a small but devastating explosion. - parent: [VolatileGrenadeBase, GrenadeBase, BaseSyndicateContraband] + parent: [VolatileGrenadeBase, TimerGrenadeBase, BaseSyndicateContraband] id: ExGrenade components: - type: ExplodeOnTrigger @@ -31,7 +31,7 @@ - type: entity name: flashbang description: Eeeeeeeeeeeeeeeeeeeeee. - parent: [ FragileGrenadeBase, GrenadeBase, BaseSecurityContraband ] + parent: [ FragileGrenadeBase, TimerGrenadeBase, BaseSecurityContraband ] id: GrenadeFlashBang components: - type: Sprite @@ -88,12 +88,12 @@ - type: TimedDespawn lifetime: 0.5 -#The explosive values for these are pretty god damn mediocre, but SS14's explosion system is hard to understand - this is a good enough approximation of how it was in SS13. -#Ideally, there should be a weak radius around the bomb outside of its gibbing / spacing range capable of dealing fair damage to players / structures. +# Tuned to be a general bomb that deals equipment damage without explicitly gibbing, however it will still gladly instakill anyone that mishandles it. +# One of the few syndie bombs that should punch holes in space. - type: entity name: syndicate minibomb description: A syndicate-manufactured explosive used to stow destruction and cause chaos. - parent: [VolatileGrenadeBase, GrenadeBase, BaseSyndicateContraband] + parent: [VolatileGrenadeBase, TimerGrenadeBase, BaseSyndicateContraband] id: SyndieMiniBomb components: - type: Sprite @@ -122,7 +122,7 @@ - type: entity name: self destruct description: Go out on your own terms! - parent: GrenadeBase + parent: TimerGrenadeBase id: SelfDestructSeq categories: [ HideSpawnMenu ] components: @@ -145,10 +145,28 @@ volume: 30 initialBeepDelay: 0 beepInterval: 16 + - type: LightBehaviorOnTrigger + behavior: activate + - type: PointLight + energy: 50 + radius: 0 + color: Red + softness: 0 + falloff: 20 + mask: /Textures/Effects/LightMasks/double_cone.png + - type: RotatingLight + speed: 360 + - type: LightBehaviour + behaviours: + - !type:FadeBehaviour # have the radius start small and get larger as it starts to burn + id: activate + maxDuration: 5 + startValue: 1 + endValue: 2 - type: entity - parent: [ FragileGrenadeBase, GrenadeBase, BaseSyndicateContraband ] + parent: [ FragileGrenadeBase, TimerGrenadeBase, BaseSyndicateContraband ] id: SingularityGrenade name: singularity grenade description: Grenade that simulates the power of a singularity, pulling things in a heap. @@ -190,9 +208,10 @@ sound: path: /Audio/Effects/Grenades/Supermatter/supermatter_loop.ogg - type: GravityWell - maxRange: 7 - baseRadialAcceleration: 5 - baseTangentialAcceleration: .5 + maxRange: 5 + minRange: 0.25 + baseRadialAcceleration: 25 + baseTangentialAcceleration: 5 gravPulsePeriod: 0.03 - type: SingularityDistortion intensity: 150 @@ -281,7 +300,7 @@ - type: entity name: the nuclear option description: Please don't throw it, think of the children. - parent: GrenadeBase + parent: TimerGrenadeBase id: NuclearGrenade components: - type: Sprite @@ -362,39 +381,26 @@ - type: entity name: EMP grenade description: A grenade designed to wreak havoc on electronic systems. - parent: [FragileGrenadeBase, GrenadeBase, BaseSyndicateContraband] + parent: [ImpactGrenadeBase, BaseSyndicateContraband] id: EmpGrenade components: - type: Sprite sprite: Objects/Weapons/Grenades/empgrenade.rsi - type: EmpOnTrigger keysIn: - - timer - range: 11 #5.5 Sunrise-Edit + - trigger + range: 5.5 energyConsumption: 50000 - type: DeleteOnTrigger keysIn: - - timer - - type: Appearance - - type: TimerTriggerVisuals - primingSound: - path: /Audio/Effects/countdown.ogg + - trigger - type: StaticPrice price: 666 # 2000 for 3, I love fractions - - type: Tag #Sunrise-Start - tags: - - HandGrenade - - GrenadeFlashBang - - HandGrenadeAmmo - - type: CartridgeAmmo - proto: BulletEMPGrenade - deleteOnSpawn: true - - type: SpentAmmoVisuals #Sunrise-End - type: entity name: holy hand grenade description: O Lord, bless this thy hand grenade, that with it thou mayst blow thine enemies to tiny bits, in thy mercy. - parent: [GrenadeBase, BaseSyndicateContraband] + parent: [TimerGrenadeBase, BaseSyndicateContraband] id: HolyHandGrenade components: - type: Sprite @@ -425,7 +431,7 @@ - type: entity name: trick grenade description: All the grenade without any of the boom. - parent: GrenadeBase + parent: TimerGrenadeBase id: GrenadeDummy components: - type: Sprite @@ -445,13 +451,9 @@ path: /Audio/Effects/Emotes/parp1.ogg positional: true - type: Appearance - - type: TimerTrigger - beepSound: - path: "/Audio/Effects/beep1.ogg" - params: - volume: 5 - initialBeepDelay: 0 - beepInterval: 2 # 2 beeps total (at 0 and 2) + - type: TimerTriggerVisuals + primingSound: + path: /Audio/Effects/countdown.ogg - type: entity name: syndicate trickybomb diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/scattering_grenades.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/scattering_grenades.yml index 6bff4fbd44..17b5f2ea48 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/scattering_grenades.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/scattering_grenades.yml @@ -1,35 +1,16 @@ # ScatteringGrenade is intended for grenades that spawn entities, especially those with timers - type: entity abstract: true - parent: BaseItem + parent: GrenadeBase id: ScatteringGrenadeBase components: - - type: Appearance - type: ContainerContainer containers: cluster-payload: !type:Container - - type: Damageable - damageContainer: Inorganic - type: ScatteringGrenade - - type: TriggerOnUse - - type: TimerTrigger - delay: 3 - - type: Tag - tags: - - HandGrenade - - type: Fixtures - fixtures: - fix1: - shape: !type:PhysShapeCircle - radius: 0.2 - density: 20 # derived from base_item - mask: - - ItemMask - restitution: 0.3 - friction: 0.2 - type: entity - parent: [FragileGrenadeBase, ScatteringGrenadeBase, BaseSecurityContraband] + parent: [FragileGrenadeBase, ScatteringGrenadeBase, TimerGrenadeBase, BaseSecurityContraband] id: ClusterBang name: clusterbang description: Can be used only with flashbangs. Explodes several times. @@ -82,7 +63,7 @@ positional: true - type: entity - parent: [VolatileGrenadeBase, ScatteringGrenadeBase, BaseSyndicateContraband] + parent: [VolatileGrenadeBase, ScatteringGrenadeBase, TimerGrenadeBase, BaseSyndicateContraband] id: ClusterGrenade name: clustergrenade description: Why use one grenade when you can use three at once! @@ -112,18 +93,20 @@ price: 2500 - type: entity - parent: [FragileGrenadeBase, ScatteringGrenadeBase, BaseSyndicateContraband] + parent: [FragileGrenadeBase, ScatteringGrenadeBase, ImpactGrenadeBase, BaseSyndicateContraband] id: ClusterBananaPeel name: cluster banana peel description: Splits into 6 explosive banana peels after throwing, guaranteed fun! components: - type: Sprite sprite: Objects/Specific/Hydroponics/banana.rsi - state: produce + layers: + - state: produce - type: ScatteringGrenade fillPrototype: TrashBananaPeelExplosive capacity: 6 delayBeforeTriggerContents: 20 + triggerKey: trigger - type: LandAtCursor - type: DamageOnLand damage: @@ -137,7 +120,7 @@ positional: true - type: entity - parent: [SoapSyndie, ScatteringGrenadeBase, BaseSyndicateContraband] + parent: [SoapSyndie, ScatteringGrenadeBase, ImpactGrenadeBase, BaseSyndicateContraband] id: SlipocalypseClusterSoap name: slipocalypse clustersoap description: Spreads small pieces of syndicate soap over an area upon landing on the floor. @@ -147,6 +130,7 @@ layers: - state: syndie-4 - type: ScatteringGrenade + triggerKey: trigger fillPrototype: SoapletSyndie capacity: 30 delayBeforeTriggerContents: 60 @@ -167,7 +151,7 @@ price: 1000 - type: entity - parent: [FragileGrenadeBase, ScatteringGrenadeBase] + parent: [FragileGrenadeBase, ScatteringGrenadeBase, TimerGrenadeBase] id: GrenadeFoamDart name: foam dart grenade description: Releases a bothersome spray of foam darts that cause severe welching. diff --git a/Resources/Prototypes/Entities/Structures/Furniture/dresser.yml b/Resources/Prototypes/Entities/Structures/Furniture/dresser.yml index 742e5a4a17..92c9447a4b 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/dresser.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/dresser.yml @@ -31,8 +31,8 @@ acts: [ "Destruction" ] - type: Storage grid: - - 0,0,6,4 # Sunrise edit - миллион одежды не лезет в таком маленький комод - maxItemSize: Normal + - 0,0,7,4 + maxItemSize: Large - type: ContainerContainer containers: storagebase: !type:Container diff --git a/Resources/Prototypes/Entities/Structures/Machines/bombs.yml b/Resources/Prototypes/Entities/Structures/Machines/bombs.yml index 21228f2cbb..fca87a7bb3 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/bombs.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/bombs.yml @@ -129,8 +129,8 @@ - type: Explosive explosionType: HardBomb totalIntensity: 4000.0 - intensitySlope: 3 - maxIntensity: 400 + intensitySlope: 10 + maxIntensity: 75 - type: StaticPrice price: 10000 # Good luck! diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/special.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/special.yml index 2779a5e2ee..f5ef0c524e 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/special.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/special.yml @@ -1,65 +1,9 @@ # Devices which are not portable but don't link up to anything -#- type: entity -# id: AtmosDeviceFanTiny -# name: tiny fan -# description: A tiny fan, releasing a thin gust of air. -# placement: -# mode: SnapgridCenter -# components: -# - type: Transform -# anchored: true -# - type: Physics -# bodyType: Static -# - type: Sprite -# sprite: Structures/Piping/Atmospherics/tinyfan.rsi -# state: icon -# - type: Fixtures -# fixtures: -# fix1: -# shape: -# !type:PhysShapeAabb -# bounds: "-0.5,-0.5,0.5,0.5" -# - type: Airtight -# noAirWhenFullyAirBlocked: false -# - type: Clickable -# - type: Tag -# tags: -# - SpreaderIgnore - -#- type: entity -# id: AtmosDeviceFanDirectional -# name: directional fan -# description: A thin fan, stopping the movement of gases across it. -# placement: -# mode: SnapgridCenter -# components: -# - type: Transform -# anchored: true -# - type: Physics -# bodyType: Static -# - type: Sprite -# sprite: Structures/Piping/Atmospherics/directionalfan.rsi -# state: icon -# - type: Fixtures -# fixtures: -# fix1: -# shape: -# !type:PhysShapeAabb -# bounds: "-0.48,-0.48,0.48,-0.40" -# - type: Airtight -# noAirWhenFullyAirBlocked: false -# airBlockedDirection: -# - South -# - type: Clickable -# - type: Tag -# tags: -# - SpreaderIgnore - -# Sunrise-start - type: entity - id: AtmosDeviceFanTinyDev - name: tiny DEBUG fan - categories: [ DoNotMap ] + id: AtmosDeviceFanTiny + name: tiny fan + description: A tiny fan, releasing a thin gust of air. + categories: [ HideSpawnMenu ] # Sunrise-Add placement: mode: SnapgridCenter components: @@ -84,11 +28,12 @@ - SpreaderIgnore - type: entity - id: AtmosDeviceFanDirectionalDev # Только для дебаг вещей - name: directional DEBUG fan - categories: [ DoNotMap ] + id: AtmosDeviceFanDirectional + name: directional fan + description: A thin fan, stopping the movement of gases across it. + categories: [ HideSpawnMenu ] # Sunrise-Add placement: - mode: SnapgridCenter + mode: SnapgridCenter components: - type: Transform anchored: true @@ -110,11 +55,12 @@ - type: Clickable - type: Tag tags: - - SpreaderIgnore + - SpreaderIgnore +# Sunrise-start - type: entity id: AtmosDeviceFanDirectionalInvisible - parent: AtmosDeviceFanDirectionalDev + parent: AtmosDeviceFanDirectional name: directional Invisible fan categories: [ DoNotMap ] placement: diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/big_boxes.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/big_boxes.yml index bfc60b3fcd..83e073fa01 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Closets/big_boxes.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Closets/big_boxes.yml @@ -72,7 +72,7 @@ hadOutline: true examineThreshold: 0.9 # Sunrise-Edit - type: StealthOnMove - passiveVisibilityRate: -1 # very useful for going around the station concealed, if you start jitterstrafing you get seen # Sunrise-Edit + passiveVisibilityRate: -1 # very useful for going around the station concealed, if you start jitterstrafing you get seen movementVisibilityRate: 0.20 - type: entity diff --git a/Resources/Prototypes/Reagents/fun.yml b/Resources/Prototypes/Reagents/fun.yml index e543e9d4bd..b4cb53747f 100644 --- a/Resources/Prototypes/Reagents/fun.yml +++ b/Resources/Prototypes/Reagents/fun.yml @@ -164,13 +164,11 @@ color: "#FDD023" metabolisms: Poison: + metabolismRate : 2.0 effects: - !type:Electrocute - probability: 0.35 - conditions: # Sunrise-Edit - - !type:ReagentCondition - reagent: Licoxide - min: 1 + siemensCoefficient: 0.5 + probability: 0.5 - type: reagent id: Razorium diff --git a/Resources/Prototypes/Reagents/narcotics.yml b/Resources/Prototypes/Reagents/narcotics.yml index 3d838db041..03ff35a57f 100644 --- a/Resources/Prototypes/Reagents/narcotics.yml +++ b/Resources/Prototypes/Reagents/narcotics.yml @@ -170,10 +170,10 @@ conditions: - !type:ReagentCondition reagent: Stimulants - min: 50 + min: 45 damage: types: - Poison: 1 + Poison: 3 # Interactions - !type:ModifyStatusEffect conditions: @@ -343,7 +343,7 @@ reagent: Nocturine min: 8 effectProto: StatusEffectForcedSleeping - time: 6 + time: 9 delay: 5 - type: reagent diff --git a/Resources/Prototypes/Reagents/toxins.yml b/Resources/Prototypes/Reagents/toxins.yml index e2c9c68895..0ad2e6c864 100644 --- a/Resources/Prototypes/Reagents/toxins.yml +++ b/Resources/Prototypes/Reagents/toxins.yml @@ -683,13 +683,11 @@ color: "#FDD023" metabolisms: Poison: + metabolismRate : 2.0 effects: - !type:Electrocute - probability: 0.8 - conditions: # Sunrise-Edit - - !type:ReagentCondition - reagent: Tazinide - min: 1 + electrocuteTime: 1 + probability: 0.5 - type: reagent id: Lipolicide diff --git a/Resources/Prototypes/_Sunrise/Actions/implants.yml b/Resources/Prototypes/_Sunrise/Actions/implants.yml index 674de79c79..1896585b7b 100644 --- a/Resources/Prototypes/_Sunrise/Actions/implants.yml +++ b/Resources/Prototypes/_Sunrise/Actions/implants.yml @@ -5,12 +5,12 @@ description: Randomly teleports you within a large distance. components: - type: LimitedCharges - maxCharges: 1 + maxCharges: 2 - type: AutoRecharge - rechargeDuration: 600 + rechargeDuration: 1200 - type: Action checkCanInteract: false - useDelay: 5 + useDelay: 10 itemIconStyle: BigAction priority: -20 icon: @@ -35,7 +35,7 @@ - type: LimitedCharges maxCharges: 3 - type: AutoRecharge - rechargeDuration: 300 + rechargeDuration: 600 - type: entity parent: BaseImplantAction diff --git a/Resources/Prototypes/_Sunrise/Catalog/Fills/Items/briefcases.yml b/Resources/Prototypes/_Sunrise/Catalog/Fills/Items/briefcases.yml index 5a79d49e6d..e465c79895 100644 --- a/Resources/Prototypes/_Sunrise/Catalog/Fills/Items/briefcases.yml +++ b/Resources/Prototypes/_Sunrise/Catalog/Fills/Items/briefcases.yml @@ -8,3 +8,103 @@ - id: Paper - id: PenCentcom - id: RubberStampIAA + +- type: entity + id: BriefcaseWeaponC40Filled + parent: BriefcaseWeaponSmall + name: secure C-40r case + components: + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: WeaponSubMachineGunC40rBiocode + - id: MagazineBoxPistol40SP + +- type: entity + id: BriefcaseWeaponSIAR52Filled + parent: BriefcaseWeaponSmall + name: secure SIAR-52 case + components: + - type: EntityTableContainerFill + containers: + storagebase: + id: WeaponSIAR52 + +- type: entity + id: BriefcaseWeaponAJ100Filled + parent: BriefcaseWeaponSmall + name: secure AJ-100 case + components: + - type: EntityTableContainerFill + containers: + storagebase: + id: WeaponAJ100 + +- type: entity + id: BriefcaseWeaponDragunovFilled + parent: BriefcaseWeapon + name: secure dragunov case + components: + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: WeaponSniperDragunov + - id: MagazineDragunovIncendiary + - id: MagazineDragunovUranium + - id: MagazineDragunov + +- type: entity + id: BriefcaseWeaponM79Filled + parent: BriefcaseWeapon + name: secure m79 case + components: + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: WeaponLauncherM79 + - id: GrenadeFragTimer + amount: 2 + - id: GrenadeEMPTimer + +- type: entity + id: BriefcaseWeaponSKM24Filled + parent: BriefcaseWeapon + name: secure SKM-24 case + components: + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: WeaponRifleSKM24Syndi + - id: MagazineLightRifleSP + amount: 2 + +- type: entity + id: BriefcaseWeaponSKM28Filled + parent: BriefcaseWeapon + name: secure SKM-28 case + components: + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: WeaponRifleSKM28Syndi + - id: MagazineRifleHeavySP + amount: 2 + - id: MagazineRifleHeavyHP + - id: MagazineRifleHeavyFMJ + +- type: entity + id: BriefcaseWeaponMinotaurFilled + parent: BriefcaseWeapon + name: secure AS-12 case + components: + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: WeaponShotgunMinotaurBiocode + - id: MagazineShotgunXL diff --git a/Resources/Prototypes/_Sunrise/Catalog/uplink_catalog.yml b/Resources/Prototypes/_Sunrise/Catalog/uplink_catalog.yml index 06f4cce80b..a241acf738 100644 --- a/Resources/Prototypes/_Sunrise/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/_Sunrise/Catalog/uplink_catalog.yml @@ -5,7 +5,7 @@ icon: { sprite: _Sunrise/Clothing/Eyes/Glasses/syndie_nvd.rsi, state: icon } productEntity: ClothingEyesNVDSyndicate cost: - Telecrystal: 2 + Telecrystal: 1 categories: - UplinkWearables @@ -16,9 +16,9 @@ productEntity: ClothingEyesGlassesThermalChameleon discountCategory: veryRareDiscounts discountDownTo: - Telecrystal: 4 + Telecrystal: 3 cost: - Telecrystal: 5 + Telecrystal: 4 categories: - UplinkWearables @@ -46,8 +46,6 @@ id: UplinkAmmoPouch icon: { sprite: _RMC14/Objects/Clothing/Pouches/large_ammo_mag.rsi, state: icon } productEntity: PouchAmmo - cost: - Telecrystal: 1 categories: - UplinkWearables @@ -84,9 +82,9 @@ productEntity: ThievingGloves discountCategory: rareDiscounts discountDownTo: - Telecrystal: 3 + Telecrystal: 2 cost: - Telecrystal: 4 + Telecrystal: 3 categories: - UplinkWearables @@ -99,7 +97,7 @@ discountDownTo: Telecrystal: 4 cost: - Telecrystal: 6 + Telecrystal: 5 categories: - UplinkWearables @@ -110,9 +108,9 @@ productEntity: ClothingOuterHardsuitChameleon discountCategory: rareDiscounts discountDownTo: - Telecrystal: 4 + Telecrystal: 3 cost: - Telecrystal: 5 + Telecrystal: 4 categories: - UplinkWearables @@ -122,7 +120,7 @@ description: uplink-objects-power-syndie-powercell-desc productEntity: PowerCellSyndicate cost: - Telecrystal: 4 + Telecrystal: 3 categories: - UplinkWearables @@ -237,6 +235,60 @@ categories: - UplinkAmmo +- type: listing + id: UplinkMagazineLightRifleSP + description: uplink-skm24-ammo-desc + productEntity: MagazineLightRifleSP + cost: + Telecrystal: 2 + categories: + - UplinkAmmo + +- type: listing + id: UplinkMagazineLightRifleHP + description: uplink-skm24-ammo-desc + productEntity: MagazineLightRifleHP + cost: + Telecrystal: 2 + categories: + - UplinkAmmo + +- type: listing + id: UplinkMagazineLightRifleFMJ + description: uplink-skm24-ammo-desc + productEntity: MagazineLightRifleFMJ + cost: + Telecrystal: 2 + categories: + - UplinkAmmo + +- type: listing + id: UplinkMagazineRifleHeavySP + description: uplink-skm28-ammo-desc + productEntity: MagazineRifleHeavySP + cost: + Telecrystal: 3 + categories: + - UplinkAmmo + +- type: listing + id: UplinkMagazineRifleHeavyHP + description: uplink-skm28-ammo-desc + productEntity: MagazineRifleHeavyHP + cost: + Telecrystal: 3 + categories: + - UplinkAmmo + +- type: listing + id: UplinkMagazineRifleHeavyFMJ + description: uplink-skm28-ammo-desc + productEntity: MagazineRifleHeavyFMJ + cost: + Telecrystal: 3 + categories: + - UplinkAmmo + # For the LMG - type: listing id: UplinkMagazineLightRifleBox @@ -463,18 +515,10 @@ description: uplink-magazine-dragunov-desc icon: { sprite: _Sunrise/Objects/Weapons/Guns/Ammunition/Magazines/Rifle/dragunov_mag.rsi, state: base } productEntity: MagazineDragunov - discountCategory: usualDiscounts - discountDownTo: - Telecrystal: 1 cost: - Telecrystal: 2 + Telecrystal: 1 categories: - UplinkAmmo - conditions: - - !type:StoreWhitelistCondition - blacklist: - tags: - - AssaultOpsUplink - type: listing id: UplinkMagazineDragunovExtended @@ -485,7 +529,7 @@ discountDownTo: Telecrystal: 1 cost: - Telecrystal: 3 + Telecrystal: 2 categories: - UplinkAmmo conditions: @@ -818,6 +862,54 @@ - NukeOpsUplink - LoneOpsUplink +- type: listing + id: UplinkSKM24 + name: uplink-skm24-name + productEntity: BriefcaseWeaponSKM24Filled + description: uplink-skm24-desc + icon: { sprite: _Sunrise/Objects/Weapons/Guns/Rifles/skm24/Syndicate/big.rsi, state: icon } + discountCategory: veryRareDiscounts + discountDownTo: + Telecrystal: 5 + cost: + Telecrystal: 8 + categories: + - UplinkWeaponry + +- type: listing + id: UplinkSKM28 + name: uplink-skm28-name + productEntity: BriefcaseWeaponSKM28Filled + description: uplink-skm28-desc + icon: { sprite: _Sunrise/Objects/Weapons/Guns/Rifles/skm28/Syndicate/big.rsi, state: icon } + discountCategory: veryRareDiscounts + discountDownTo: + Telecrystal: 16 + cost: + Telecrystal: 18 + categories: + - UplinkWeaponry + +- type: listing + id: UplinkAJ100 + name: uplink-aj100-name + productEntity: BriefcaseWeaponAJ100Filled + description: uplink-aj100-desc + icon: { sprite: _Sunrise/Objects/Weapons/Guns/SMGs/AJ-100.rsi, state: icon } + discountCategory: veryRareDiscounts + discountDownTo: + Telecrystal: 8 + cost: + Telecrystal: 11 + categories: + - UplinkWeaponry + conditions: + - !type:StoreWhitelistCondition + blacklist: + tags: + - NukeOpsUplink + - LoneOpsUplink + - type: listing id: UplinkClothingBackpackSyndieAJ100Filled name: uplink-clothing-backpack-syndie-aj100-name @@ -833,9 +925,10 @@ - UplinkWeaponry conditions: - !type:StoreWhitelistCondition - blacklist: + whitelist: tags: - - AssaultOpsUplink + - NukeOpsUplink + - LoneOpsUplink # - type: listing # id: UplinkWeaponSyndieLaserPistol @@ -855,6 +948,25 @@ # tags: # - AssaultOpsUplink +- type: listing + id: UplinkC40R + name: uplink-c40r-name + description: uplink-c40r-desc + icon: { sprite: _Sunrise/Objects/Weapons/Guns/SMGs/c40r.rsi, state: icon } + productEntity: BriefcaseWeaponC40Filled + discountCategory: veryRareDiscounts + discountDownTo: + Telecrystal: 8 + cost: + Telecrystal: 10 + categories: + - UplinkWeaponry + conditions: + - !type:StoreWhitelistCondition + blacklist: + tags: + - NukeOpsUplink + - type: listing id: UplinkC40RBundle name: uplink-c40r-bundle-name @@ -868,13 +980,12 @@ Telecrystal: 17 categories: - UplinkWeaponry - #Sunrise-start conditions: - !type:StoreWhitelistCondition - blacklist: + whitelist: tags: - - AssaultOpsUplink - #Sunrise-end + - NukeOpsUplink + - LoneOpsUplink - type: listing id: UplinkClothingBackpackSyndieDL6902Filled @@ -915,6 +1026,26 @@ - NukeOpsUplink - LoneOpsUplink +- type: listing + id: UplinkSIAR52 + name: uplink-siar52-name + productEntity: BriefcaseWeaponSIAR52Filled + description: uplink-siar52-desc + icon: { sprite: _Sunrise/Objects/Weapons/Guns/SMGs/IAR-52.rsi, state: icon } + discountCategory: veryRareDiscounts + discountDownTo: + Telecrystal: 8 + cost: + Telecrystal: 9 + categories: + - UplinkWeaponry + conditions: + - !type:StoreWhitelistCondition + blacklist: + tags: + - NukeOpsUplink + - LoneOpsUplink + - type: listing id: UplinkClothingBackpackSyndieSIAR52Filled name: uplink-clothing-backpack-syndie-siar52-name @@ -928,6 +1059,12 @@ Telecrystal: 18 categories: - UplinkWeaponry + conditions: + - !type:StoreWhitelistCondition + whitelist: + tags: + - NukeOpsUplink + - LoneOpsUplink - type: listing id: UplinkWeaponLaserMinigun @@ -970,20 +1107,16 @@ - type: listing id: UplinkWeaponDragunov name: uplink-weapon-ussp-dmr-name - productEntity: CrateAmmunitionSmallDragunov + description: uplink-weapon-ussp-dmr-desc + productEntity: BriefcaseWeaponDragunovFilled icon: { sprite: _Sunrise/Objects/Weapons/Guns/Snipers/dragunov/big.rsi, state: icon } discountCategory: veryRareDiscounts discountDownTo: - Telecrystal: 13 + Telecrystal: 10 cost: - Telecrystal: 16 + Telecrystal: 12 categories: - UplinkWeaponry - conditions: - - !type:StoreWhitelistCondition - blacklist: - tags: - - AssaultOpsUplink - type: listing id: UplinkWeaponBauer127 @@ -1055,9 +1188,9 @@ productEntity: ClothingBackpackDuffelSyndicateFilledInfiltration discountCategory: rareDiscounts discountDownTo: - Telecrystal: 8 + Telecrystal: 7 cost: - Telecrystal: 14 + Telecrystal: 9 categories: - UplinkWearables restockTime: 1800 @@ -1067,6 +1200,7 @@ tags: - NukeOpsUplink - LoneOpsUplink + - AssaultOpsUplink - type: listing id: UplinkHardsuitSyndieMedic @@ -1303,7 +1437,6 @@ - !type:ListingLimitedStockCondition stock: 2 -#Sunrise-start - type: listing id: UplinkCoalAutoInjector name: uplink-coal-auto-injector-name @@ -1329,9 +1462,9 @@ productEntity: CoalpenKitFilled discountCategory: rareDiscounts discountDownTo: - Telecrystal: 4 + Telecrystal: 3 cost: - Telecrystal: 6 + Telecrystal: 5 categories: - UplinkChemicals conditions: @@ -1341,7 +1474,6 @@ - NukeOpsUplink - LoneOpsUplink - AssaultOpsUplink -#Sunrise-end - type: listing id: UplinkSyndicateRapier @@ -1797,11 +1929,11 @@ name: uplink-clothing-glasses-nvg-name description: uplink-clothing-glasses-nvg-desc productEntity: ClothingEyesGlassesNVG - discountCategory: veryRareDiscounts + discountCategory: rareDiscounts discountDownTo: - Telecrystal: 3 + Telecrystal: 1 cost: - Telecrystal: 4 + Telecrystal: 2 categories: - UplinkWearables @@ -1812,9 +1944,9 @@ productEntity: EnergyDomeGeneratorPersonalSyndieBiocode discountCategory: rareDiscounts discountDownTo: - Telecrystal: 8 + Telecrystal: 5 cost: - Telecrystal: 10 + Telecrystal: 6 categories: - UplinkWearables conditions: @@ -1830,9 +1962,9 @@ productEntity: EnergyDomeGeneratorBackpackSyndieBiocode discountCategory: rareDiscounts discountDownTo: - Telecrystal: 7 + Telecrystal: 5 cost: - Telecrystal: 10 + Telecrystal: 6 categories: - UplinkDisruption conditions: @@ -1868,29 +2000,6 @@ components: - SurplusBundle -- type: listing - id: UplinkSuperSurplusBundleNuke - name: uplink-super-surplus-bundle-name - description: uplink-super-surplus-bundle-desc - productEntity: CrateSyndicateSuperSurplusBundleNuke - discountCategory: veryRareDiscounts - discountDownTo: - Telecrystal: 20 - cost: - Telecrystal: 40 - categories: - - UplinkLootBoxes - conditions: - - !type:StoreWhitelistCondition - whitelist: - tags: - - NukeOpsUplink - - LoneOpsUplink - - !type:BuyerWhitelistCondition - blacklist: - components: - - SurplusBundle - # Implats - type: listing @@ -1903,7 +2012,7 @@ discountDownTo: Telecrystal: 1 cost: - Telecrystal: 3 + Telecrystal: 2 categories: - UplinkImplants @@ -1913,11 +2022,8 @@ description: uplink-scram-implanter-proto-desc icon: { sprite: /Textures/Structures/Specific/anomaly.rsi, state: anom4 } productEntity: ScramImplanterProto - discountCategory: rareDiscounts - discountDownTo: - Telecrystal: 1 cost: - Telecrystal: 3 + Telecrystal: 1 categories: - UplinkImplants @@ -1927,11 +2033,15 @@ description: uplink-creepy-laugh-implanter-desc icon: { sprite: Clothing/Mask/gassyndicate.rsi, state: icon } productEntity: CreepyLaughImplanter - cost: - Telecrystal: 1 categories: - UplinkImplants - + conditions: + - !type:StoreWhitelistCondition + whitelist: + tags: + - SyndieAgentUplink + - !type:ListingLimitedStockCondition + stock: 1 # Jobs - type: listing @@ -1972,9 +2082,9 @@ productEntity: SyndyClusterGrenade discountCategory: veryRareDiscounts discountDownTo: - Telecrystal: 5 + Telecrystal: 4 cost: - Telecrystal: 10 + Telecrystal: 7 categories: - UplinkExplosives @@ -2238,46 +2348,6 @@ tags: - AssaultOpsUplink -- type: listing - id: UplinkSyndicateCircuitBoard - name: uplink-syndicate-law-name - description: uplink-syndicate-law-desc - productEntity: SyndicateCircuitBoard - discountCategory: usualDiscounts - discountDownTo: - Telecrystal: 4 - cost: - Telecrystal: 8 - categories: - - UplinkDisruption - conditions: - - !type:StoreWhitelistCondition - blacklist: - tags: - - NukeOpsUplink - - LoneOpsUplink - -- type: listing - id: UplinkEshieldNukies - name: uplink-eshield-name - description: uplink-eshield-desc - icon: { sprite: Objects/Weapons/Melee/e_shield.rsi, state: eshield-on } - productEntity: EnergyShieldBiocode - discountCategory: veryRareDiscounts - discountDownTo: - Telecrystal: 5 - cost: - Telecrystal: 9 - categories: - - UplinkWeaponry - conditions: - - !type:StoreWhitelistCondition - whitelist: - tags: - - NukeOpsUplink - - LoneOpsUplink - - - type: listing id: uplinkWeaponMiniEnergyCrossbow name: uplink-mini-energy-crossbow-name @@ -2298,6 +2368,30 @@ id: uplinkWeaponShotgunMinotaur name: uplink-minotaur-name description: uplink-minotaur-desc + productEntity: BriefcaseWeaponMinotaurFilled + icon: + { + sprite: _Starlight/Objects/Weapons/Guns/Shotguns/minotaur.rsi, + state: icon, + } + discountCategory: rareDiscounts + discountDownTo: + Telecrystal: 12 + cost: + Telecrystal: 15 + categories: + - UplinkWeaponry + conditions: + - !type:StoreWhitelistCondition + blacklist: + tags: + - NukeOpsUplink + - LoneOpsUplink + +- type: listing + id: uplinkWeaponShotgunMinotaurBundle + name: uplink-minotaur-bundle-name + description: uplink-minotaur-bundle-desc productEntity: ClothingBackpackDuffelSyndicateFilledMinotaurShotgun icon: { @@ -2349,6 +2443,27 @@ name: uplink-grenade-launcher-m79-name description: uplink-grenade-launcher-m79-desc icon: { sprite: _RMC14/Objects/Weapons/Guns/Launchers/m79/big.rsi, state: base } + productEntity: BriefcaseWeaponM79Filled + discountCategory: veryRareDiscounts + discountDownTo: + Telecrystal: 10 # Good morning Vietnam! + cost: + Telecrystal: 14 + categories: + - UplinkWeaponry + conditions: + - !type:StoreWhitelistCondition + blacklist: + tags: + - NukeOpsUplink + - LoneOpsUplink + - AssaultOpsUplink + +- type: listing + id: UplinkGrenadeLauncherM79Bundle + name: uplink-grenade-launcher-m79-bundle-name + description: uplink-grenade-launcher-m79-bundle-desc + icon: { sprite: _RMC14/Objects/Weapons/Guns/Launchers/m79/big.rsi, state: base } productEntity: ClothingBackpackDuffelSyndicateFilledGrenadeLauncherM79 discountCategory: veryRareDiscounts discountDownTo: @@ -2414,9 +2529,9 @@ } productEntity: CyberEyeThermalBox discountDownTo: - Telecrystal: 4 + Telecrystal: 3 cost: - Telecrystal: 7 + Telecrystal: 6 categories: - UplinkCybernetics @@ -2432,9 +2547,9 @@ productEntity: MantisBladeArmsKit discountCategory: rareDiscounts discountDownTo: - Telecrystal: 8 + Telecrystal: 6 cost: - Telecrystal: 10 + Telecrystal: 8 categories: - UplinkCybernetics @@ -2674,7 +2789,7 @@ discountDownTo: Telecrystal: 1 cost: - Telecrystal: 3 + Telecrystal: 2 categories: - UplinkWearables conditions: @@ -2713,16 +2828,6 @@ categories: - UplinkPointless -- type: listing - id: UplinkPistolTec9Magazine - name: uplink-pistoltec9-magazine-name - description: uplink-pistoltec9-magazine-desc - productEntity: MagazinePistolSubMachineGunCaseless - cost: - Telecrystal: 2 - categories: - - UplinkAmmo - - type: listing id: uplinkWeaponPistolTec9 name: uplink-pistoltec9-name diff --git a/Resources/Prototypes/_Sunrise/Entities/Clothing/Eyes/glasses.yml b/Resources/Prototypes/_Sunrise/Entities/Clothing/Eyes/glasses.yml index 217aa9ed0f..3439a072ea 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Clothing/Eyes/glasses.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Clothing/Eyes/glasses.yml @@ -200,6 +200,11 @@ cell_slot: name: power-cell-slot-component-slot-name-default startingItem: PowerCellHigh + - type: PowerCellSlot + cellSlotId: cell_slot + - type: ContainerContainer + containers: + cell_slot: !type:ContainerSlot - type: ToggleClothing action: ActionToggleThermalVision disableOnUnequip: true diff --git a/Resources/Prototypes/_Sunrise/Entities/Markers/Spawners/Random/contraband.yml b/Resources/Prototypes/_Sunrise/Entities/Markers/Spawners/Random/contraband.yml index ac3dc8fde5..d0ea7810da 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Markers/Spawners/Random/contraband.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Markers/Spawners/Random/contraband.yml @@ -95,7 +95,7 @@ - HappyHonkNukie - LanternFlash - CyberPen - - ClothingHandsGlovesBoxingRigged + - GlovesBoxingRiggedRandomSpawner - ClothingMaskGasSyndicate - RubberStampSyndicate - SoapSyndie diff --git a/Resources/Prototypes/_Sunrise/Entities/Objects/Specific/Mech/Weapons/Gun/combat.yml b/Resources/Prototypes/_Sunrise/Entities/Objects/Specific/Mech/Weapons/Gun/combat.yml index 663188a518..2894e1fd23 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Objects/Specific/Mech/Weapons/Gun/combat.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Objects/Specific/Mech/Weapons/Gun/combat.yml @@ -117,12 +117,12 @@ - type: entity id: WeaponMechCombatPirateMachineCannon name: Mounted Pirate Machine Cannon - description: An ancient heavy gun given new life as a mech-mounted gun + description: A unique strange gun given new life as a mech-mounted gun suffix: Mech Weapon, Gun, Combat, Pirate parent: [ BaseMechWeaponRange, CombatMechEquipment ] components: - type: Sprite - sprite: _Sunrise/Objects/Specific/Mech/mecha_piratecannon.rsi + sprite: _Sunrise/Objects/Specific/Mech/mecha_piratecannon_auto.rsi state: mecha_piratecannon - type: Item sprite: _Sunrise/Objects/Weapons/Guns/LMGs/piratecannon_inhands_64x.rsi diff --git a/Resources/Prototypes/_Sunrise/Entities/Objects/Specific/Mech/mechs.yml b/Resources/Prototypes/_Sunrise/Entities/Objects/Specific/Mech/mechs.yml index 2332ceead4..457f3d5899 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Objects/Specific/Mech/mechs.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Objects/Specific/Mech/mechs.yml @@ -359,6 +359,10 @@ pilotWhitelist: components: - HumanoidAppearance + equipmentWhitelist: + tags: + - IndustrialMech + - CombatMech - type: MeleeThrowOnHit distance: 1 speed: 8 diff --git a/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/Ammunition/Magazines/caseless_rifle.yml b/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/Ammunition/Magazines/caseless_rifle.yml index f119e0e74f..0fa4ba8979 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/Ammunition/Magazines/caseless_rifle.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/Ammunition/Magazines/caseless_rifle.yml @@ -4,25 +4,8 @@ components: - type: BallisticAmmoProvider capacity: 20 - -- type: entity - parent: BaseMagazinePistolCaselessRifleExtended - id: MagazinePistolSubMachineGunCaseless - name: Tec9Magazine - components: - type: Sprite - sprite: _Sunrise/Objects/Weapons/Guns/Ammunition/Magazines/mp38.rsi - scale: 0.90, 0.70 - layers: - - state: base - map: ["enum.GunVisualLayers.Base"] - - state: mag-1 - map: ["enum.GunVisualLayers.Mag"] - - type: MagazineVisuals - magState: mag - steps: 2 - zeroVisible: false - - type: Appearance + scale: 1,1.15 - type: entity id: MagazinePistolSubMachineGunCaselessExtended diff --git a/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/Pistols/pistols.yml b/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/Pistols/pistols.yml index 65103c9896..b41c2733fa 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/Pistols/pistols.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/Pistols/pistols.yml @@ -40,16 +40,16 @@ soundGunshot: path: /Audio/Weapons/Guns/Gunshots/pistol.ogg - type: MeleeWeapon - angle: 60 - range: 0.9 + wideAnimationRotation: 0 + range: 0.95 damage: types: Blunt: 8 bluntStaminaDamageFactor: 2.0 - attackRate: 1 - autoAttack: false + soundHit: + collection: MetalThud - type: AltFireMelee - attackType: Light + attackType: Heavy - type: entity name: combat pistol VP-70 @@ -374,11 +374,11 @@ - type: Item sprite: _Sunrise/Objects/Weapons/Guns/Pistols/deagle/tiny.rsi - type: Gun - minAngle: 3.5 - maxAngle: 15 - angleIncrease: 5 + minAngle: 1 + maxAngle: 20 + angleIncrease: 7 angleDecay: 10 - fireRate: 5 + fireRate: 4 # 140 dps - 105 for mateba availableModes: - SemiAuto soundGunshot: @@ -475,17 +475,6 @@ - type: EyeCursorOffset maxOffset: 2.5 pvsIncrease: 0.25 - # - type: MeleeWeapon - # angle: 60 - # range: 0.9 - # damage: - # types: - # Blunt: 10 - # bluntStaminaDamageFactor: 2.0 - # attackRate: 1 - # autoAttack: false - # - type: AltFireMelee - # attackType: Light - type: entity parent: WeaponRevolverSpearhead @@ -551,7 +540,7 @@ components: - type: Sprite sprite: _Sunrise/Objects/Weapons/Guns/Pistols/tec9tactical/big.rsi - scale: 0.63, 0.63 + scale: 0.65, 0.65 - type: Item sprite: _Sunrise/Objects/Weapons/Guns/Pistols/tec9tactical/tiny.rsi - type: ChamberMagazineAmmoProvider @@ -566,7 +555,7 @@ slots: gun_magazine: name: Magazine - startingItem: MagazinePistolSubMachineGunCaseless + startingItem: BaseMagazinePistolCaselessRifleExtended insertSound: /Audio/Weapons/Guns/MagIn/pistol_magin.ogg ejectSound: /Audio/Weapons/Guns/MagOut/pistol_magout.ogg priority: 1 diff --git a/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index d97d481e29..a288c98f60 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -422,31 +422,6 @@ - type: TimedDespawn lifetime: 3 -- type: entity - id: BulletEMPGrenade - name: emp grenade - parent: BulletGrenadeEMPTimer - categories: [ HideSpawnMenu ] - components: - - type: Sprite - sprite: Objects/Weapons/Grenades/empgrenade.rsi - layers: - - state: primed - - type: EmitSoundOnSpawn - sound: - path: /Audio/Effects/countdown.ogg - - type: EmpOnTrigger - keysIn: - - timer - range: 11 - energyConsumption: 50000 - disableDuration: 60 - - type: Ammo - muzzleFlash: null - - type: DeleteOnTrigger - keysIn: - - timer - - type: entity id: BulletAirGrenade parent: BaseBulletGrenade diff --git a/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/SMGs/smgs.yml b/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/SMGs/smgs.yml index 296cb775a8..b48367b30d 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/SMGs/smgs.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/SMGs/smgs.yml @@ -521,6 +521,7 @@ - MagazineRifle - MagazineLightRifle - MagazinePistolDPSubMachineGun + - MagazinePistolDP gun_chamber: name: Chamber startingItem: CartridgePistolSP diff --git a/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/Throwable/scattering_grenades.yml b/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/Throwable/scattering_grenades.yml index a2f8de23e4..d34de24350 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/Throwable/scattering_grenades.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/Throwable/scattering_grenades.yml @@ -47,7 +47,7 @@ map: ["enum.TriggerVisualLayers.Base"] - type: ScatteringGrenade fillPrototype: SyndieMiniBomb - distance: 4 + distance: 1 capacity: 3 - type: TimerTrigger beepSound: diff --git a/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/base_guns.yml b/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/base_guns.yml index 35d53c95cc..1be7785059 100644 --- a/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/base_guns.yml +++ b/Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/base_guns.yml @@ -23,15 +23,15 @@ useKey: true selectedMode: SemiAuto - type: MeleeWeapon - angle: 60 - range: 1.5 + wideAnimationRotation: 0 + range: 1 damage: types: Blunt: 8 Structural: 2 bluntStaminaDamageFactor: 2.0 - attackRate: 1.25 - autoAttack: false + soundHit: + collection: MetalThud - type: AltFireMelee attackType: Heavy diff --git a/Resources/Prototypes/_Sunrise/Recipes/Lathes/Packs/medical.yml b/Resources/Prototypes/_Sunrise/Recipes/Lathes/Packs/medical.yml index 9995e6a135..21d7c3abff 100644 --- a/Resources/Prototypes/_Sunrise/Recipes/Lathes/Packs/medical.yml +++ b/Resources/Prototypes/_Sunrise/Recipes/Lathes/Packs/medical.yml @@ -25,6 +25,7 @@ - ImplanterExtractor - DefibrillatorCompact - AdvancedDefibrillatorCompact + - DnaInjector - type: latheRecipePack id: SurgeryDynamicSunrise diff --git a/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/icon-open.png b/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/icon-open.png new file mode 100644 index 0000000000000000000000000000000000000000..8e6d00afdbd901ee1c72197a5edfae62880e73f1 GIT binary patch literal 7146 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 Sw}XX(P;8v7&#d0G_5T1e>4E$J literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/inhand-left.png b/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..8e888f2d7fa0e312482eb547966b1bb6f89e4630 GIT binary patch literal 15028 zcmeI3eQXnD9LJx|;YNjlj3DAmn&KNscQ0+X_0o3Wif+c@GOF7k0=Mh4?Oc0TdNWxGK$K)A3L_CGMrDFTXAGc1WI{wuP<*cK+NWK|gT_CfChh(9 zJm2r{_uS`s+5K~mH!QksvU!#n05G|}&ew>p^NnxmrRaCFyz*OgnHZ^S(Ezxt-1wTn zi!aRtp!zyF(5yH6?+_$4Tp1X|sTG%1i^+e&~o<#wvr&DqTtun}`Jt8nnEEcPX*(=m&JHxqLE{5e9p0^=|P3u;4F>X_|*{LL> zd3;clqH;u+RmEcD6aEK|r7lro-3S2UCy zT2NwO2!^4eYskkH^hG*UUDZ0&aY|;o$1RNJ#P844E;!zBxL|2bU$_b(NFy!i)B@cR z$TUJt?TSip;VN`1vkTq5F1KYTCnuB9Gw#@7Tpq_}^rURbrI4B-H@a7$HVQ>ujRsUT z*`zZ#U=x<_+V+E~uURRwrna8?UWJDvkm=I22BCn)OTMPS{D0l0nHsZ?NquKj zMkk#Z!ZgO{|80o^X~vYQlQpzHyRmhPR&VkwTMSp`wvKj$~%dc_m{*z@VGSY0VBR<4oJ+|2l!G{Fr_G8nF(jTxdh3QYBU6C(+b4 zJtjusf_AhfE@rQ%vgX?I)4Lht^bg6o6On4oouAPaJ9a+Z#-S#lwSdMYCg*^2Gh^Da zl~ej=V@^X|NqrU1q7TCvziBJpoo{Wquodslw`QGpDYEY6)7A2tF_&@jrjCWh=pg}m zE1gce)6L{J=Q|qYI1DxWWVC-ZV^vl<(w_W|g2tBdj95q7n3^i=-+6K-Q?2M>0X?TM znFp2JNzQD9|2fFs(f^znPe+U3G>9?9MMQ)PC@!1^F{ZePh;RYLh0`F$6c-T@E}*z@ z8pN35A|k>C6cL`1lN z;=*YVV~UH22p3RXI1OSdu|1w$XxGR5QrZ>d6-kSvC~UN`gbbJ=I+^lW%Vt0 zuDfd2(t%0ef$~Y$@T)GX+E?FGyn6rCIcs-@PA$FHw|+x$$?bu^`{q5k?Bw#1ZNn{( zmmWJZ-Bdas6irQlVhhL(6TkF6`+m<;+}_xP#O4!1$BN@C!K><9OOI8~NK6r?&p*|? zcV^%&=e+sT7yA1<+4^<+l${?PdwbycH#MN4yRXF5+n6TCuXo0Z(kBj_GEXU)YCdz^wD;bPfz_oW7I6Rm`^2oWimgi18X9QbbzjVT58|t%;RVu(7@NmByAYqsDus^$QpIw%)Shp??4o C?}04< literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/inhand-right.png b/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..97d0e35f3c16b24de92c72b7101b3d6cfc24b52f GIT binary patch literal 14897 zcmeI3eQXnD9LJx*GR6#Kipq;GISS$yZ0~w)*Y(ntjdif8g=H_YO^CbQ-L`Y>UFqFu zHzE`;5(JT82!Z zB%^tJk|u=ZkS?nVW#r}C)gIkrG8qG)b*Grn(6BeZERq$5kd!x0Sv)VYT zeLiF57zRm_P-f-utD@Y|JDQ`+%vjA>P0ah`i3Vu4cp)Uuj&eqUpRMNVPsMY_Q0( z$hlaSu?Y^F*=4hd<__LoZZ5a;g4xQKv#hP7-05@*afp6DY9Eu@rwTpBZb_yV?=UrD zACr1%ScWGZA3!w5?C*4l9BIZ3RU>O~efA>j7Ovj-S=Jz}%xoR)2*~j>Da400$=Goo z)998<9b&07%J9T@F2@VTY33D-4IzncI-@l`t&}rqlmBl46ZsMQ_+v!6B;{5cDv>I# z8b67qcIXj4ELC>GHE}z8J&`rjmYv>B8>fFj&MZWtHM2gWD|T!>-NvED!LJh9o^-`XgV?oN&_1cTv$Y?fZ#%DU}J&{iwG4ETqq4}OmJZl zp#p*nrGbqJE-WHcKyaZnura}fMT80nE|dl~Cb+POPyxY((!j<97ZwpJAh=K(*qGqL zB0>cO7fJ&g6I@tCsDR)?X<%c53yTO95L_q?Y)o)r5upNt3#EaL2`(%mR6uZ{G_Wzj zg++u42riTcHYT{Rh)@B+h0?&r1Q!+&Dj>K}8rYcN!XiQi1Q$vJ8xveuM5ut^LTO-Q zf(wfX6%bq~4QxzsVG*GMf(xaAjc$6BJjn&(i4&0@TEXXsHyh@(DxVs zu?+xRy9uwq0MNq#@M{|Y-0J{LSGPa+*&+b)HrDzo8>8p1oIj*&V2TTdE&<=-CJ`*p4V9dP18!N%yMkrzsusMc<=XVZ;&3!9pZ z{PXOU-NA2`ub0;!@84Tic_}y%e5>x+ZOL0PcyM^+#NV;q!q&~jnbXLgTz7uWcJZHs z6*sT+uU29|d{A1uea*Q`{jUxD+b-CIEue0NckO}GO?i6`e{yZ`*oKC)t;bid{mXOU zaCC&<@*!RE%uW!iI(mJ2Y~Z`4uMF?#z3|1FY2Qz8J9=$#{*0ghe19?Z?!f%m?}cAZ zWdiG+vrg~vpK0BEGdUWuzaAldWrA7g>CEq E17|)#yZ`_I literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/locked.png b/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/locked.png new file mode 100644 index 0000000000000000000000000000000000000000..c34a8689fde2483c734a2aa9307d422cb839b6d5 GIT binary patch literal 5747 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 AIRF3v literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/meta.json b/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/meta.json new file mode 100644 index 0000000000..ab2d50b59c --- /dev/null +++ b/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/meta.json @@ -0,0 +1,31 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by SlamBamActionMan (github)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "icon" + }, + { + "name": "locked" + }, + { + "name": "unlocked" + }, + { + "name": "icon-open" + } + ] +} diff --git a/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/unlocked.png b/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/unlocked.png new file mode 100644 index 0000000000000000000000000000000000000000..e61d3b113fe0d7c27da36b0739c8b246fc18e7ad GIT binary patch literal 5790 zcmeHLc~leU79U)ZO?ee-c~aB3vP?4Blaa752?#`>qNtV0WCDR~CKCu$P_a*nv{XU1 zO5Li}qAY!2c`j(HqM|5xls=zW;h~~n5q!0^i(|hBUmA5;j|1Pvw6yyWG154uXqzm#stbB?l~TD9T6)sBk~ z?=%(ke|9{pXj9AKOOXzq2RhH#J9$^^{y^mNePdHrFXQmhq=+Vmp!{u{?zEg0_g@H) zu!^}LyC}$9dDZ1ndhog0m8%@dh?z@1EDyYz*$qp+>)y7+=TIXWVtO;lZ)?me6GI>V zuT;_i?Z)kxOUUWrWR&N^{3-A(!89U z%gYn{$>w=(P0s1pw!EPtj%1zA$v<2DutvNwBm5@$Xmd$*8!w~n)#U7uQ#lVF=*s&{ zSM1zl8G6%!chiauUmz9udhz}_r`=B#mQBLq%Ott4i+$kS735Cef~o(SLf9nMBy734 z&B}?>bRw?4aqUetS+& zt1_eNi)%IkS>EYm>xyfux1XF{YqT5f7+V|l4cRxN&TI4D)!VepUO4iv$?!W(cHa>3!?sARxW7>40T=j?e@#_J?2EY zD?1mKA226>)6sdiWywu9A$NaaVoOqaId*Z#ECU?cs1{f1Dd_UNzP~_yu{}!f0ReUwMK{CrK$O?jk#woJDrh53aYn-*^T*n z<`;nzle3vSHeWs3QRs2>`pL(emR`AiL~?gVZPT852mk9clY5T!T=K8_vDv%slUkRr zyf$^kyDW!~j!n1yVak2@_LAmRi)CA_&9)Z`PFDSgyf4BTo9hB{N@6OlgJ&hyzHS%O z@<#AG65V)@2H(Zf_;O=Ae;w-AuPf-`UNg&|HkaocO0 zVogYDS61`R*Q6^}OkQg1km0e=WofC&q<0$g`NT<&p%szj#=rH3+Q9O|eP-|Thi>&< zOJ6Nxa$3GBhN920BkvU#pDTZRP0V-ASyu1R+*nZ&J6~q^?W=sV`=f(7eIC6>y!Qq- zY_{vmK2bei;L%~~=n4zHbvR<0e3tYzuQ{&@ZfBl&Z)wr8jO$CuMeQZ8&B%X$hJ#~H zJ-@KExWKN!yk59(kMm92#YIl%mz1^`3V6K@%cnLbomEv_bPk%9BcV-jWS3p`d1VT{ zCTVA}a#9!ebOSkhK&zv-tx0Ddw-}q zWA&)k=Rw)L+D=jU^woCf61&C;g=0>x-&EIm?{3An2OhOvENz>3;#bFek|rnORa!B<_s~%~O{EaiV|ZamnBJdA zP)X7ZL{wUMG@h1(ixhNkFB?xY3IH?&iP6j&wbqE5#dHfU3jU|WOghbCLMDmni^60y zf1QD#aT#0&0tcE^$!xlp4b9V_P@<6mL4y$BPE1cANj=JBrlh1WQaB8qA)d(+i9}3< z&1AD-U;!IbwIpVSwZ<6~!~jMBVZ;q8J*m=ZX%r?V*O^E$oeuQ0q4+fVu&`lxt#Pml zpdL&!rf0Gk2vehBj$C0R1Cs&BU_igP!Wa#XA!a0D)R_!85tvM9$r&Rd6!`FZy~&`q zq@%!@gqqL*QzP)oddekrpbf8h$|I$*1UV8uSQ;i9Hm52UuhQr(PC##-0@f$!NS!f3 zryn+d3Vm4pj0;kw{FR6(%`@h}?=O28s<9<}U=cP=LS%Lj}M%1S03)N+HbU zvA8go;IUz$kgtT<966t(200Usud`hJ4C_%}^JYfyg!fssT2xBxc7 z=D{okX7Qt0e3U0ZIUIL{jSd11Tk8zbI-Ocfrz%3DaVe|E}z7-7K!>|j$gaR+1pWcxp)ti%bNqfoG5E(ejrT!mZ? zgOSLGSxOdPBv1%MI3|3$Pe1E&FgPkK-2dIaj!4q71%}e|WKu`%5PLnD&+vP|V8q!B zm@ps%XFhm@U=BY+3{nKN=db(>?yJAj1&#K?$#d2BMY&#->$xiMT*fch^`czQRe|R+ ze!;Fktz0%w-a-&s@X(h6-ZAWKyLtq?pBN_(4Gw^2QGfqv4-E#A33|z5BLvyLL|sRrC&y{_;3{%YnrXXZTj{rv9j_uS8Oo&7de=5yrLh^!MaScf z`J04P+{tL`-1Ct)vRsBw9o-gQ{XWFtS#kByDe-W*vg3TSVuWSz$BGBz&R5A;)@LJ| zCASVtd@?%_H#TT`TNs~emR-GFw%I&>_h@9eY*AaTcJo2X;oA?%O)0BhOay$?{DdE0 z_57{)W*~2E^!&>Ch(#5!XAXw%C`9%~{R%h1xioZKF79GE_L@ffr`O}By^3hfBR$#H zIafR|F`Ne=bB5v95y z-zshs!mcSM^r+^$SDiL+*R*g`6NC2pOG?c$_q%cVO#vfsWcZvF;~yG%6-|UO!|KJ! zn%4PBm2v`Ag-6ZExd-o*hwatboW0O+`K*sx&+?)vH4l6)3!R=lf8C;{U#TBA_VM9( zuS|&Z+Q9HbmkMr2ztdB{QoQM13J2Ob++|Om8x~p-rnp7Q2#0WvvR7~8DZ7r(TOBV` zbZ*mibJvb7a~7;JUPyJfi&)mE z*>XJ3NTwlHT&uX!{vh+*>AMhZvsGaNohlo977F7+0@*DdY+Xx6iHXkL4} zVIw7H&#olSP2PRS#!ss%mmbZb&vds}p4Zs|g=Xxc`>U*AAfGE1o}KyIdYKJp==d^? znGt@UGTJK637?tWj~_L^T&zxcraGZ3Xv!F+J)hXu7LY^JHtvG@du9@c=KmH)hA*7R z*&MF^K&B7QNdg}TFpWANnW2*K>oeAB<4xYT8>@thD1`jQmS@nQb*08^Ly2;&hKve@W<*O9^W87UNs?ey4M+KOTAsS z;da;)qtbe(9>3b&ybI_Xes+aV`(ui5h;Uqi*z#za$GQORoVk8Qs0SObGld*-b0OE& z^KHc41nI7$v?TTMHAv2&3n%5H=HZ%n`NT@I>QgUPNEOxeTiW$-tX_-P+|)ZKe$yhg zuACY5$t(?w-Q)wyWXqH-;oRJDpb<);YN(u6d?~8nwSW zQs0g)P@l8&o-774Fne4mUjs>7L+i=MEl%^q6%}XOXw3gC;ClJthnBtl+Nh4z%viyWhRv61H2k_2Aj{J^E2`n@+?I?C=jd#Scjq zCX~8Y){nYCMn)^&F1{r*@JrVM^OU2Rvi!KbN72$q+wS0uI96+E1bPP$gyHPjVL3;aY)x;n$VJHu)uyP@^; z!ApJmjXR}=N;EFqEl8^y$H`y6xZG)mJ}GnqS)<*1OB4|}7UtXxAfFEG%?q}^Z@EXS z6F&RoV4V_L9gk`YF>FqkTfE&UtF+DCdL;|zeFQH$ zx_SKb4)eYHT{@DijP?e}d2aKe(4}=Aw#33`zCoPoJ*Mp{y|3G{UbAI!kGD;xLBs*? z8_(eH(}re;X6rR?_B>a!>oZOKLB9YRQtL2}?WL--hp8h~XX+f8b1t`+`n*4x7Tg)) zV!F0a1Xr2oYT;V=X>-f6nt4ET)5DTgW%m2dj;geeX6SiU__`gj zc(C=rd(Cu;V5qvX>2iv1=*nWzO7V!^1#kN&aaT4P^G=%)cS^r*@sF7^+D7!xdgQaS zJ3GyZmT!y{sRZ=*JaUp#>3nL@bk< zW(#g`Bt|U-aj3W)+6jKDalqZ1s5jIrIDw*^0t1eP0_(Q&rTel5pa_^@gw7dr^C@7QYA`Iw>4O zl^lOE@?@YuzV*s{hv98KFSoH=jXy9T5UEJEv9S%+*!bI)4sPV>p$TP{*KHP7Ticz4 zsVFN%X)$xGRI{Q88&sm*GmBK5#K@r6dv9lHQ2qQCx+u&I({Whlk}ekWRb;QtQ~Cn& zvlS)G@3WMLdtB)cq%@Vj?0*`%!v=wAewPZdZ$#S;q^36J?c2F!`lrx+9AH`>P5!>gjZfJ73c*UtY0R_gF>MF!*J;-m8eJIF}UH zur3#oV@H~XX5wMZxysSi_~f?KLyCt2qX@YSIr#A}@;ri;fExzf~z|Oy? zW~Lr(0iCUkKJ&sA80!e{54p&qqu;Ea z!7zLo%?Xc@-szgLsj#Py(Z)@OOn7!|@cE=IcJEI7;AE+=LaMCoYPHxhad=0=GWULJ zieg>DSkdnFQh}5cyn3neONPT|)?Ml*TCLcj*y#OwCV?P(BPyw^d!RS}WAS*~z4Z2Z zRUZYlIU*zz0#PbpgNH0f+C~zC$I+!Tc^-gnAcqeg!XOZRN+6%k@Bu_n55SYnCBynk zD_~GIlMLH}qakU0W5A1T5i9`gg01Ws!9ENk6GkzR*AFCt031L>hX!(dxk6GP88(Sa z0{=^f5isbaipYlybEMfojd=n9iq*yHBH^ZiY=1P&Kpv_uV6sTICT3qDz$Y@yOC;ix z5Qu<)0NntLE>GZzKoN;V1QLxvqv4)YN!9Y3mn|~ZWjW!L>6@JYEm=8oCosU52A`u)8;>Q_6k*Plj^3|cgoFTLa&#DMp zK*$pd7=Woiz!ho!2*G4b&*zH;zLViF83@1^;DD+^&?@S8CMBod=^4MXD3MG$`6IkJ zm1Z-oF3FfDo5PXL=x+c;+M&lR;wf z1ROd@9yW*W2_X1f&q;x#h$Lg4FHc|xE;)b|dUyh!h(Tj;I4l;a zhx@MN00^dhKhKjyhBtHB zU`nRKniM&Hmyuz5Xe9VSpd|P2s9XP~3RoJFu>hcp02A;6v5{yT90gJZZ;!&0aC#&R zMjMGHeFdD><_YY1JYOHfeULSuN*xt;*H3w`Zl|0-l615d}}0B}`fFf6zp4yyu+8|j#vi%=I#^|y1utWv`b{~KM#}erb zI2}X4!kHK>okb*~Q2>+m`#Sw0WOHzk=cBUtwIPy zVS(h5f*ej?3=Yl`QE8^L-bg7g($cgz`b-mi4fUC7Vr1`ly(gK%y9d5`3ipTOs2odF zsEmc8;${maxzom)_F1{x<<0O0ic2-ySIQWZpc+bh6jdw|UiDv%P0#Yv-V&D?)%E3C z(!$8}*X3sew#W9C^^vd7TLL?Uu=Nh;}PTsT~>(jlBMBgI|qbyshBY`(Iri zoBXPNc4O7Rx=vtqIaY0?ya34l?PirY9)CV3;@H!XC0OzHm@Yzi^NzPAavCG8zN_Qt zPrHv`>A5g+&}ZM4OV;LxWcw(D+86Q~@etdCA>@l1emdLA!xmH*xak)#f8AGl`IvAo z@^M@AgLx}fm<`kn^R)Lb@~i1WT}(>fk^N%7_3A_|&#ev~t~1#Az*bqK9Yi%hsX9Bp zUFRihYpM8)W$KleM?|FYt~H3x>}mw0eYk+TUSs!}W^YK~u^M;ezI{))DXce-RWoCj z${KY`M?HM6R`)OfxBA%syr&lYJQy*%e*0oEd|eVP>pRTFKH%siaMkl*&?~ z9VJ>NMWl2Ii6Sn-duEjC-uo_nKJWYf)!`h@^ZPyD-}Zfe&+|E3-IhD3D9%xYKp-kq zM_YIBFI0Rh$bnB`Z0sNeA}<~5=__)lMM1*^d=@7ZfQn+m04Na6VL>3#O}&|Zf?h-Q zEie4+kXFjn8v-48to-Fq6Y5=A=i}o~-Sl$RTd`}qoDB8DB#CxmVxX^gqH6XBO@DPn zSw~!W&i>#a^YosjO=Y9T2YX022DT2n_P!gR|3IVc)>z5w6O*S}uF5{YP`x`&&9i#o z$hrx)did42*@Me8T;TQer5n28hFiuqu9GQVpOj292ze`e5qd2sKJ z!ak}MUoj26Ni)9UVzmxW_UQQelr;JK4Gtk0qlg|p?V+z8qyAunzEHC^2aha_dLbgOpINx)a!V6WpSbW<#~6oT{S(G~UNDjYKnb=^~Sc}{0f>K>gC zsi+4<7XMNgXieXyXoe@;cA}oucai-ySlwW&qgDpYYvnc)P(unSJ^U0GEHK*dRT9+T zO{dy9nXYs?dAz|5ZsietW~KA#5`0IfBQKRF3Ob!QZ%y~B*mq6Ng_l+8*g5mzs(QfV zhpfzSbqiKDxwfDPaTRquV^2YaD8tLAIkRaS?*w8AzXfP)X)T}>PY5Ow@RMh?W_dhW z@uJ{i{;2v(L{?I`9E~|!wLMrP@WFLrd9v$b9bxq|FX`3ur3|Ww2U>MDUN4T@(fix; zvM_9L-8iB(E7!GR^VK_9*zUErpBGld-)btx;bt)|XwS*>sT_M#Z~bz+|Hqz|@pm^} z`z94e9UfS0m{66eI^O>AjrZ2Rj*HF7mHDRb8&i)C?nYD|IK%MBt;=j)=$-4knGW|u z8LY<8-A7K4lKdik?ko;bNA5(K_0$_s-vI00?5ON1DLP~F+Hb+wf}2&74ed7af@^Ud z(JImRU#{(4aUv*a^P}Xz=A@GN$oZVX617?C@!S^+{a#n+>5Hm%)bdx>z)KSSy!UR^3DLe+YoOe&# z8BuD#Ya*Aoo9bu8GkJetrp;B+_D9@V_V@L4E;gPo(bHf*!K^t4tmxf#t@3rNe_ZbN zLmF?dHM`%Se`t6-dM0-dGGBQH~o;FB?0n%k1$C`Wt{n%o0E5+x9fr4U7x?u zxD^+>>drvvY2w0^g*FMJMENKE6;{nXD%wXX);ce@?$*D2BU#tHHcfMt!k*f7@GWQT z;d5$qwr4$^^TaFh<%0Oc6xqNIY@n8NosoUxzNbT_m%4N6)Udd%_+^czsLT)YI%(>L zdyY3cg$Eq_m^|a)rS#yVjWr%EkFkP%Nm+k7Y71{UfV)rCO~U9&JK- z!|!PvyjSf)XUn#h*Q|t099P}r${o3`>EoHAC%RE#f7CieMh>;Vtj$5@$=rJz^4B|a zjB2&^UD7r(-x1Ve$f-QvbT?N)w=L+s%(>>8G;^cnNA@p^3S_@>56cgf)6nk7WVEr% zUEiwCd|d622v1u3?uOjW+{%MB&#!q?KLuqg7=#G>#m)Rs^bc_4g<|Ef4rBt2qyi?aNne$oYEq2~dAq)1QtKVU^MCp$)w%?tFG-n!DY3<8nb!m+V&quSVf*$%-? zFe`rNW#^l28da_y$6=bYm68padCRqOl8H{5DS=0dHCINUV!9F^>Q=5fP>-b6r(!5)$q%+Ns{>tcajj^haCVEAQ-YjZbhxVjJFOLOkzc+}~$r-aVbP z-sg`8iBhRhBeaKWjy9&hpm0rh?xmD|lfEk!ryObyDEDuzELvt}@+#t0my2^}h3j0p z0d@Y;Mf1$wY^dDszc*lQyT8b{ZQp$O?)~stvs0=Fdzv#dlry4}i3NFcepm9_t9fr# zR)Zh|-&gaSPF+YX=S=+^`?)EO(3!I_`A;o%wP3{|Ihl?RW9n{Ny#8bN>s>V^QufMr;U!#DrNaRWy$# zg8*DWM1w|iLwQ1SGzBKXC4>KqhmkO-L`4)rf%&?)L2dW~0E#oknW7MO(VR#OY^fsD zT)(g8;K^7NJtb0iNPR14TLa;C!$3octW@s zVhY0+5HbXuFcF8(gNiX}bbf@00)v5a=okOEVJO1KVd(_aHxRA@4!8zrq2Kx@hGK$H1QrfYL!lW66q7ZzM6wM(lrQiAmmENWp}!8haiW1x zUt12C5g|xp3Ji<+lhE(4LNNizR&G=Z3}ZSKhGfJolqM2;04`w;kI9b`N{}QXPtbse zh$b!*+KfOXkgymW8i&CUiTJNd-hg1r2aG8iW%}8XuVs-$;KFBu0bnJQ#8e=IsRN5i z6R*K9fl0>2t0Oc*JnY5efGL>@OCs|9Dx<*6FevasqQ%dzsDA%a1uPBOMgY)6fGv1~ z*eDDhfd;8U@I({Hcr!8KLbu{^97!KekcVd&InW-qr{$A>;iT!CQU?}h9i(s zXfoQ&6OAY1P~a~DMf?^H%mRlM^Y669eF|z0;)ASr#jv2NPw|5C^Vuoobv*nz>5u^3~JEFjtb4A?2U!`md!+@#|LzfCnD>qQGwqgMO-e!S54tbY}-!h=KTL zbDOgRI5IQL(N740DE%V7r6BvWbihG*5!J;`zFTUxw&CJDM+FM_8R`nv*2>fOW^elS z;ATs;Ems?OdYXl@8}hBVLPJu?1vQ(vLHNfV@-^_0H`dmNpo4Ah9*<#e8YadeT-B`v z@6c0-D!06)YE91$9@0-^X_2R{iKxobyHJHtFR!^BBdeEP<+x;b&amWSEfzaNw4C1i zQ*upGIh9=VyWGl{ZQ3$~TFlGSDci1RryDpqX;q_$L`&+kr2FyhL-*p_v&p>r8F7mh zV=dDGoKcwaP+H%yoY$-}(TrX*`*!E$r!SAgd{?xAgCEFRVM&>3gPeC&_AJix2d?N z!(a!n52Ch0!|%nglw*B*m#EwJ*ux~0a*N;PGkz~Z>b2~yH{)d664CyJ0ST}4p8AYW zRBJ!Z@>5FCou#||R$5UFbHk;IPsfLPdJ)pc33XDNo-}38sV7h3S;WwZ7xDw83vs73 veVks#WE+oFQx2Duj?KHt?a-T)v5>+p9E|*!R67n97ecjLZhOW$aKk?UYm&}l literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/inhand-left.png b/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..cb1372c97f3eceb49735a077f61df20a48915deb GIT binary patch literal 15671 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/locked.png b/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/locked.png new file mode 100644 index 0000000000000000000000000000000000000000..4a1404f2007a56d320da15ed6e2470b8fa2bd5aa GIT binary patch literal 5792 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/meta.json b/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/meta.json new file mode 100644 index 0000000000..ab2d50b59c --- /dev/null +++ b/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/meta.json @@ -0,0 +1,31 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by SlamBamActionMan (github)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "icon" + }, + { + "name": "locked" + }, + { + "name": "unlocked" + }, + { + "name": "icon-open" + } + ] +} diff --git a/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/unlocked.png b/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/unlocked.png new file mode 100644 index 0000000000000000000000000000000000000000..34d574abcec81fce243511e1c3f51ceb34ec134c GIT binary patch literal 5816 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_syn.rsi/meta.json b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_syn.rsi/meta.json index ebc7858be9..f4c473b8ca 100644 --- a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_syn.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_syn.rsi/meta.json @@ -22,4 +22,4 @@ "name": "icon-open" } ] -} \ No newline at end of file +} diff --git a/Resources/Textures/_Sunrise/Objects/Specific/Mech/mecha_blunderbuss.rsi/meta.json b/Resources/Textures/_Sunrise/Objects/Specific/Mech/mecha_blunderbuss.rsi/meta.json index 6011d9e1ef..cfb772060d 100644 --- a/Resources/Textures/_Sunrise/Objects/Specific/Mech/mecha_blunderbuss.rsi/meta.json +++ b/Resources/Textures/_Sunrise/Objects/Specific/Mech/mecha_blunderbuss.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Made from SS14 assets for Sunrise by KaiserMaus(GitGub)", + "copyright": "Made from SS14 assets for Sunrise by KaiserMaus(GitHub)", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/_Sunrise/Objects/Specific/Mech/mecha_piratecannon.rsi/meta.json b/Resources/Textures/_Sunrise/Objects/Specific/Mech/mecha_piratecannon.rsi/meta.json index d77e38e097..9c460f4a15 100644 --- a/Resources/Textures/_Sunrise/Objects/Specific/Mech/mecha_piratecannon.rsi/meta.json +++ b/Resources/Textures/_Sunrise/Objects/Specific/Mech/mecha_piratecannon.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Made from SS14 assets for Sunrise by KaiserMaus(GitGub)", + "copyright": "Made from SS14 assets for Sunrise by KaiserMaus(GitHub)", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/_Sunrise/Objects/Specific/Mech/mecha_piratecannon_auto.rsi/mecha_piratecannon.png b/Resources/Textures/_Sunrise/Objects/Specific/Mech/mecha_piratecannon_auto.rsi/mecha_piratecannon.png new file mode 100644 index 0000000000000000000000000000000000000000..fa9e0ea8bb048a314acf3cefa8828ac1b83d0e86 GIT binary patch literal 1360 zcmV-W1+V&vP)Px)3Q0skR9J=Wmu*a2WfaGMx3oZcX{jqMbgToJMchz?F$N9|b54Z#vMs(Wh7ZOp zYDhFjV`7|37T-Q;bcr8KmKgWNC9*{{P0;Bwrfe*3bEAQU4mMU1T1E%GEgdb;>j&ty zFLdj&F=xUrxye1xbMJZn=brPNCl{7jVu}AX!tGeZl)pSB(jFf9d-hiOmIII^Ngk}J zsZq?|s(>IsS67!5`Ql=Vx)I_6ShKcL(R1o_sJ5;?N-$DLAxJ?wJC958ZvH!zu>&D# zR#Cg5ZZ_LoPHv%v6hXi>bO~{wE7bY>@!L{zH$u2n5Cj215SX3~DG-#X)LE=It7)n% zAaKRAD2wlI+{Et2O*iF3&OmERi{u{ntE_#t*)hOBHOpo96#&vSIs)T~ofwP-a#?9K z+N2ilKi_jpvKduE%XAsjKb$%#)YjFLiol6pH{fRI&|Y%XYVN+LGOqr8q6>?qOt$TI z8*8g-Wn1)k0nli(quvumkEBfh1%QvX!q>Ld2}QnC))Q$8?;VUVB4=7#TBJ)O9=iJN zjEJN1`155YR4g;m+}Vw>v>bqe6F&h&i3e~x9pvSiWxKL`m3)8dOn=mK=l^`0L3$afB3kDD_y-2E`ILR9iMUN>W z?(IXuYifW=Z7KzsBDs1a0fJ0;y|^bQ;=jUJN22(T%g~zh}xh(*=T|Fo? zr7$x}b>p*`9DM`=0lIHSNd16{BeuQ3{>9JQJk zD=Qff2GJ;$2nvBuyD!Ccp=A3$z^0}r0r0slqR7-!JlvP`yJ2ko4qEMYS$D$2WJ6)0 zG;#GRIchbAj0`4%K?a3*u|Cno!`h4mePpb&$Qw8$o&!LkDaAB1%J6V6#mamDJnr}n z8^$pneS$`czh(f*U@#V-(P$AxPt*Yy4oKg)6=J^liSfC!pjx*|79J}ymhbxdqD2e; znhEznGK{*0!h)j~IO_3B01ZAbp~*1{(n1WMJHnU!9yvgpJF4yl0JBcF;5w0l;4 z@PEd(XC9XfMHO;6jrCYrZkQ&es9D}4Iny>~R=$ki=S4UD8()0WeO-MwRYEsHcHk^N zmrgDxfRv(U078>vC^V(aWUZ6!@yt4)`?`K_TLuI{kju$>?BZOxJe4m6joaj|l$|kx zSHB(8%qUY6NBR7F*PZnPB}r1$#rz&=tSOYjcJrgz(vHpPchqm|5=$(xi2MT@^$^}5 Si7sRS0000