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 0000000000..8e6d00afdb Binary files /dev/null and b/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/icon-open.png differ diff --git a/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/icon.png b/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/icon.png new file mode 100644 index 0000000000..c3bc73a380 Binary files /dev/null and b/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/icon.png differ 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 0000000000..8e888f2d7f Binary files /dev/null and b/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/inhand-left.png differ 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 0000000000..97d0e35f3c Binary files /dev/null and b/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/inhand-right.png differ 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 0000000000..c34a8689fd Binary files /dev/null and b/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/locked.png differ 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 0000000000..e61d3b113f Binary files /dev/null and b/Resources/Textures/Objects/Storage/Briefcases/weapon_case.rsi/unlocked.png differ diff --git a/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/icon-open.png b/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/icon-open.png new file mode 100644 index 0000000000..4211dbe615 Binary files /dev/null and b/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/icon-open.png differ diff --git a/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/icon.png b/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/icon.png new file mode 100644 index 0000000000..6bc4a3b4ae Binary files /dev/null and b/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/icon.png differ 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 0000000000..cb1372c97f Binary files /dev/null and b/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/inhand-right.png b/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/inhand-right.png new file mode 100644 index 0000000000..fd0314b3a4 Binary files /dev/null and b/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/inhand-right.png differ 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 0000000000..4a1404f200 Binary files /dev/null and b/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/locked.png differ 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 0000000000..34d574abce Binary files /dev/null and b/Resources/Textures/Objects/Storage/Briefcases/weapon_case_large.rsi/unlocked.png differ 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 0000000000..fa9e0ea8bb Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Specific/Mech/mecha_piratecannon_auto.rsi/mecha_piratecannon.png differ diff --git a/Resources/Textures/_Sunrise/Objects/Specific/Mech/mecha_piratecannon_auto.rsi/meta.json b/Resources/Textures/_Sunrise/Objects/Specific/Mech/mecha_piratecannon_auto.rsi/meta.json new file mode 100644 index 0000000000..a0e78b9c55 --- /dev/null +++ b/Resources/Textures/_Sunrise/Objects/Specific/Mech/mecha_piratecannon_auto.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made from SS14 assets for Sunrise by KaiserMaus(GitHub)", + "size": { + "x": 48, + "y": 32 + }, + "states": [ + { + "name": "mecha_piratecannon" + } + ] +} diff --git a/Resources/migration.yml b/Resources/migration.yml index 69041350e6..fe1002b8e7 100644 --- a/Resources/migration.yml +++ b/Resources/migration.yml @@ -866,8 +866,8 @@ BaseUplinkNTERT100BC: null BaseUplinkNTERT200BC: null SupermatterSliver: null CartridgePistol: null -AtmosDeviceFanTiny: AtmosDeviceFanTinyDev -AtmosDeviceFanDirectional: AtmosDeviceFanDirectionalDev +AtmosDeviceFanTinyDev: AtmosDeviceFanTiny +AtmosDeviceFanDirectionalDev: AtmosDeviceFanDirectional MagazineBR64Extended: null MagazineBR64: null MagazineAR18Extended: null @@ -889,7 +889,7 @@ WeaponEnergyGunMini: WeaponMiniEnergyGun GunSafeCombineSmallArms: SpawnerSafeSmallArms AphrodisiacChemistryBottle: null PatchViagra: null - +ClothingHandsGlovesBoxingRigged: GlovesBoxingRiggedRandomSpawner MagazinePPSH41: MagazinePistolSubMachineGunPPSHExtended MagazinePPSH41Extended: null WeaponSTG44: null @@ -943,7 +943,8 @@ WeaponRifleV31: null MagazineV31: null WeaponEnergyGunMultiphase: WeaponMultiphaseGun ClothingBeltAssaultFilled: null - +MagazinePistolSubMachineGunCaseless: BaseMagazinePistolCaselessRifleExtended +SyndicateCircuitBoard: SyndimovCircuitBoard # 2025-12-21 ClothingNeckCMOCloak: ClothingNeckMedCloak diff --git a/Tools/_sunrise/Schemas/ignore_list.yml b/Tools/_sunrise/Schemas/ignore_list.yml index 2d6b68cf1d..35404e24fe 100644 --- a/Tools/_sunrise/Schemas/ignore_list.yml +++ b/Tools/_sunrise/Schemas/ignore_list.yml @@ -67,6 +67,7 @@ ignore_list: - 'AMS-42' - 'SAM-300' - 'AJ-100' + - 'SIAR-52' - 'Deus vult! Ave maria!' - TR-263' - 'G-Man' @@ -118,6 +119,7 @@ ignore_list: - 'L6 SAW' - 'L6C ROW' - 'China Lake' + - 'China-Lake' - 'Plant-B-Gone' - 'Bon appétit!' - 'Bon ap-petite!'