From db7f44328959d2aa7d0c72b70ff77ab2b7db6c4e Mon Sep 17 00:00:00 2001 From: Danny Kay Date: Thu, 22 Jan 2026 14:56:19 -0800 Subject: [PATCH 1/6] schticky --- .../RedeemableStuff/RedeemableComponent.cs | 28 +++++++++++ .../RedeemablePresetPrototype.cs | 26 ++++++++++ .../RedeemableStuff/RedeemableSystem.cs | 49 +++++++++++++++++++ .../RedeemableStuff/UnRedeemableComponent.cs | 26 ++++++++++ 4 files changed, 129 insertions(+) create mode 100644 Content.Shared/_Coyote/RedeemableStuff/RedeemableComponent.cs create mode 100644 Content.Shared/_Coyote/RedeemableStuff/RedeemablePresetPrototype.cs create mode 100644 Content.Shared/_Coyote/RedeemableStuff/RedeemableSystem.cs create mode 100644 Content.Shared/_Coyote/RedeemableStuff/UnRedeemableComponent.cs diff --git a/Content.Shared/_Coyote/RedeemableStuff/RedeemableComponent.cs b/Content.Shared/_Coyote/RedeemableStuff/RedeemableComponent.cs new file mode 100644 index 00000000000..e636dd3d320 --- /dev/null +++ b/Content.Shared/_Coyote/RedeemableStuff/RedeemableComponent.cs @@ -0,0 +1,28 @@ +using Content.Shared.Store; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared._Coyote.RedeemableStuff; + +/// +/// This is for making it so an entity can be redeemed for something. +/// Like nfsd stuff being redeemed on the Den for like, den bullion +/// Or guns! Trade them in for whatever! +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class RedeemableComponent : Component +{ + /// + /// How much of which kinds of currency this item can be redeemed for. + /// + [DataField] + [AutoNetworkedField] + public Dictionary, int> TurnInValues = new(); + + /// + /// Easy presets for common turn-in values. + /// + [DataField] + [AutoNetworkedField] + public ProtoId? Preset; +} diff --git a/Content.Shared/_Coyote/RedeemableStuff/RedeemablePresetPrototype.cs b/Content.Shared/_Coyote/RedeemableStuff/RedeemablePresetPrototype.cs new file mode 100644 index 00000000000..03f75d42329 --- /dev/null +++ b/Content.Shared/_Coyote/RedeemableStuff/RedeemablePresetPrototype.cs @@ -0,0 +1,26 @@ +using Robust.Shared.Prototypes; + +namespace Content.Shared._Coyote.RedeemableStuff; + +/// +/// This is a prototype for easy presets for redeemable values. +/// +[Prototype("redeemablePreset")] +public sealed partial class RedeemablePresetPrototype : IPrototype +{ + /// + [IdDataField] + public string ID { get; } = default!; + + /// + /// Fucs you get for turning this in. + /// + [DataField] + public int FucValue = 0; + + /// + /// Den Bullion you get for turning this in. + /// + [DataField] + public int DenBullionValue = 0; +} diff --git a/Content.Shared/_Coyote/RedeemableStuff/RedeemableSystem.cs b/Content.Shared/_Coyote/RedeemableStuff/RedeemableSystem.cs new file mode 100644 index 00000000000..36c58fc658e --- /dev/null +++ b/Content.Shared/_Coyote/RedeemableStuff/RedeemableSystem.cs @@ -0,0 +1,49 @@ +using System.Linq; +using Content.Shared.Store; +using Robust.Shared.Prototypes; + +namespace Content.Shared._Coyote.RedeemableStuff; + +/// +/// This handles... +/// +public sealed class RedeemableSystem : EntitySystem +{ + [Dependency] + private readonly IPrototypeManager _prototypeManager = default!; + + /// + public override void Initialize() + { + SubscribeLocalEvent(OnRedeemableInit); + SubscribeLocalEvent(OnGetRedeemValue); + } + + private void OnRedeemableInit(EntityUid uid, RedeemableComponent c, ComponentInit args) + { + if (c.Preset == null) + return; + if (!_prototypeManager.TryIndex(c.Preset, out RedeemablePresetPrototype? preset)) + return; + c.TurnInValues = new Dictionary, int> + { + { "FrontierUplinkCoin", preset.FucValue }, + { "Doubloon", preset.DenBullionValue } + }; + } + + private void OnGetRedeemValue(EntityUid uid, RedeemableComponent c, GetRedeemValueEvent args) + { + if (c.TurnInValues.Count == 0) + return; + if (TryComp(uid, out UnRedeemableComponent? unRedeemable)) + return; + } + + +} + +public sealed class GetRedeemValueEvent : EntityEventArgs +{ + public Dictionary, int> Values = new(); +} diff --git a/Content.Shared/_Coyote/RedeemableStuff/UnRedeemableComponent.cs b/Content.Shared/_Coyote/RedeemableStuff/UnRedeemableComponent.cs new file mode 100644 index 00000000000..4f658c3fcd1 --- /dev/null +++ b/Content.Shared/_Coyote/RedeemableStuff/UnRedeemableComponent.cs @@ -0,0 +1,26 @@ +using Content.Shared.Store; +using Robust.Shared.Prototypes; + +namespace Content.Shared._Coyote.RedeemableStuff; + +/// +/// This is used to explicitly mark an entity as unredeemable. +/// Can +/// +[RegisterComponent] +public sealed partial class UnRedeemableComponent : Component +{ + /// + /// Does this unredeemable component block all redeeming, or only certain types of currency? + /// If null or empty, blocks all redeeming. + /// + [DataField] + public HashSet> BlockedCurrencies = new(); + + /// + /// If true, it will attempt to spread from itself to anything derived from it + /// Like if you craft something from an unredeemable item, the result will also be unredeemable. + /// + [DataField("sticky")] + public bool Sticky = false; +} From 0135f32c94f915675326d2011f39642a8211a8ef Mon Sep 17 00:00:00 2001 From: Danny Kay Date: Thu, 22 Jan 2026 17:48:42 -0800 Subject: [PATCH 2/6] Framework set! --- .../ConstructionSystem.Computer.cs | 9 ++++-- .../ConstructionSystem.Machine.cs | 14 +++++++-- Content.Server/Construction/FlatpackSystem.cs | 3 +- Content.Server/Lathe/LatheSystem.cs | 5 +++- .../VendingMachines/VendingMachineSystem.cs | 9 ++++-- .../Systems/ContrabandTurnInSystem.cs | 22 ++++++++++---- .../_NF/Security/ContrabandPriceGunSystem.cs | 29 +++++++++++++++---- .../Construction/SharedFlatpackSystem.cs | 10 +++++++ Content.Shared/Stacks/SharedStackSystem.cs | 6 ++++ .../RedeemableStuff/RedeemableSystem.cs | 7 ++++- .../SharedContrabandTurnInSystem.cs | 3 +- .../Entities/Clothing/Hands/gloves.yml | 2 ++ .../Prototypes/_COYOTE/RedeemablePresets.yml | 6 ++++ 13 files changed, 102 insertions(+), 23 deletions(-) create mode 100644 Resources/Prototypes/_COYOTE/RedeemablePresets.yml diff --git a/Content.Server/Construction/ConstructionSystem.Computer.cs b/Content.Server/Construction/ConstructionSystem.Computer.cs index a054989a081..9b604304d8a 100644 --- a/Content.Server/Construction/ConstructionSystem.Computer.cs +++ b/Content.Server/Construction/ConstructionSystem.Computer.cs @@ -1,8 +1,9 @@ using Content.Server._NF.BindToStation; // Frontier using Content.Server.Construction.Components; using Content.Server.Power.Components; -using Content.Server.Station.Systems; // Frontier -using Content.Shared._NF.BindToStation; // Frontier +using Content.Server.Station.Systems; +using Content.Shared._Coyote.RedeemableStuff; // Frontier +using Content.Shared._NF.BindToStation; // Frontier using Content.Shared.Computer; using Content.Shared.Power; using Robust.Shared.Containers; @@ -85,6 +86,10 @@ private void CreateComputerBoard(Entity ent) } } // End Frontier + if (HasComp(ent.Owner)) + { + AddComp(board); + } if (!_container.Insert(board, container)) Log.Warning($"Couldn't insert board {board} to computer {ent}!"); diff --git a/Content.Server/Construction/ConstructionSystem.Machine.cs b/Content.Server/Construction/ConstructionSystem.Machine.cs index 2fd983547d7..5eaad5deb51 100644 --- a/Content.Server/Construction/ConstructionSystem.Machine.cs +++ b/Content.Server/Construction/ConstructionSystem.Machine.cs @@ -1,8 +1,9 @@ using System.Linq; // Frontier using Content.Server._NF.BindToStation; // Frontier using Content.Server.Construction.Components; -using Content.Server.Station.Systems; // Frontier -using Content.Shared._NF.BindToStation; // Frontier +using Content.Server.Station.Systems; +using Content.Shared._Coyote.RedeemableStuff; // Frontier +using Content.Shared._NF.BindToStation; // Frontier using Content.Shared.Construction.Components; using Content.Shared.Construction.Prototypes; using Robust.Shared.Containers; @@ -32,6 +33,8 @@ private void OnMachineInit(EntityUid uid, MachineComponent component, ComponentI { if (TryComp(board, out var binding)) _bindToStation.BindToStation(uid, binding.BoundStation, binding.Enabled); + if (HasComp(board) && !HasComp(uid)) + AddComp(uid); } // End Frontier } @@ -66,7 +69,7 @@ private void CreateBoardAndStockParts(EntityUid uid, MachineComponent component) throw new Exception($"Entity with prototype {component.Board} doesn't have a {nameof(MachineBoardComponent)}!"); } - // Frontier: Only bind the board if the machine itself has the BindToStationComponent and the board doesn't already have BindToStationComponent + // Frontier: Only bind the board if the machine itself has the BindToStationComponent and the board doesn't already have BindToStationComponent if (HasComp(uid) && board != null) { var machineStation = _station.GetOwningStation(uid); @@ -77,6 +80,11 @@ private void CreateBoardAndStockParts(EntityUid uid, MachineComponent component) } // End Frontier + if (board is not null && HasComp(uid)) + { + AddComp(board.Value); + } + foreach (var (stackType, amount) in machineBoard.StackRequirements) { var stack = _stackSystem.Spawn(amount, stackType, xform.Coordinates); diff --git a/Content.Server/Construction/FlatpackSystem.cs b/Content.Server/Construction/FlatpackSystem.cs index eba6e696dbd..8777eaeab0b 100644 --- a/Content.Server/Construction/FlatpackSystem.cs +++ b/Content.Server/Construction/FlatpackSystem.cs @@ -8,7 +8,8 @@ using Robust.Shared.Prototypes; using Robust.Shared.Timing; using Content.Shared._NF.BindToStation; // Frontier: station binding -using Content.Server._NF.BindToStation; // Frontier: station binding +using Content.Server._NF.BindToStation; +using Content.Shared._Coyote.RedeemableStuff; // Frontier: station binding namespace Content.Server.Construction; diff --git a/Content.Server/Lathe/LatheSystem.cs b/Content.Server/Lathe/LatheSystem.cs index 3bd3818065c..267d681170f 100644 --- a/Content.Server/Lathe/LatheSystem.cs +++ b/Content.Server/Lathe/LatheSystem.cs @@ -35,7 +35,8 @@ using Robust.Shared.Prototypes; using Robust.Shared.Timing; using Content.Shared.Cargo.Components; // Frontier -using Content.Server._NF.Contraband.Systems; // Frontier +using Content.Server._NF.Contraband.Systems; +using Content.Shared._Coyote.RedeemableStuff; // Frontier using Robust.Shared.Containers; using Content.Shared._NF.Lathe; // Frontier @@ -532,6 +533,8 @@ private void ModifyPrintedEntityPrice(EntityUid uid, LatheComponent component, E || component.ProductValueModifier < 0f) return; + EnsureComp(target); // Make unredeemable + if (TryComp(target, out var stackPrice)) { if (stackPrice.Price > 0) diff --git a/Content.Server/VendingMachines/VendingMachineSystem.cs b/Content.Server/VendingMachines/VendingMachineSystem.cs index 1de6364e508..da50576731a 100644 --- a/Content.Server/VendingMachines/VendingMachineSystem.cs +++ b/Content.Server/VendingMachines/VendingMachineSystem.cs @@ -30,9 +30,10 @@ using Content.Shared._NF.Bank.BUI; // Frontier using Content.Server._NF.Contraband.Systems; // Frontier using Content.Shared.Stacks; // Frontier -using Content.Server.Stack; // Frontier -using Robust.Shared.Containers; // Frontier -using Content.Shared._NF.Bank.Components; // Frontier +using Content.Server.Stack; +using Content.Shared._Coyote.RedeemableStuff; // Frontier +using Robust.Shared.Containers; // Frontier +using Content.Shared._NF.Bank.Components; // Frontier namespace Content.Server.VendingMachines { @@ -285,6 +286,8 @@ protected override void EjectItem(EntityUid uid, VendingMachineComponent? vendCo var ent = Spawn(vendComponent.NextItemToEject, spawnCoordinates); + AddComp(ent); // Frontier + _contraband.ClearContrabandValue(ent); // Frontier if (vendComponent.ThrowNextItem) diff --git a/Content.Server/_NF/Contraband/Systems/ContrabandTurnInSystem.cs b/Content.Server/_NF/Contraband/Systems/ContrabandTurnInSystem.cs index e319f71adf2..650e632bae7 100644 --- a/Content.Server/_NF/Contraband/Systems/ContrabandTurnInSystem.cs +++ b/Content.Server/_NF/Contraband/Systems/ContrabandTurnInSystem.cs @@ -16,6 +16,7 @@ using Robust.Shared.Prototypes; using Content.Server._NF.Cargo.Systems; using Content.Server.Hands.Systems; +using Content.Shared._Coyote.RedeemableStuff; namespace Content.Server._NF.Contraband.Systems; @@ -149,15 +150,24 @@ private void GetPalletGoods(EntityUid gridUid, ContrabandPalletConsoleComponent if (_blacklistQuery.HasComponent(ent)) continue; - if (TryComp(ent, out var comp)) + // if (TryComp(ent, out var comp)) + // { + // if (!comp.TurnInValues.ContainsKey(console.RewardType)) + // continue; + // + // toSell.Add(ent); + // var value = comp.TurnInValues[console.RewardType]; + // if (value <= 0) + // continue; + // amount += value; + // } + GetRedeemValueEvent ev = new (); + RaiseLocalEvent(ent, ref ev); + if (ev.Values.TryGetValue(console.RewardType, out int value)) { - if (!comp.TurnInValues.ContainsKey(console.RewardType)) - continue; - - toSell.Add(ent); - var value = comp.TurnInValues[console.RewardType]; if (value <= 0) continue; + toSell.Add(ent); amount += value; } } diff --git a/Content.Server/_NF/Security/ContrabandPriceGunSystem.cs b/Content.Server/_NF/Security/ContrabandPriceGunSystem.cs index cff45046ed6..84e01a1c44d 100644 --- a/Content.Server/_NF/Security/ContrabandPriceGunSystem.cs +++ b/Content.Server/_NF/Security/ContrabandPriceGunSystem.cs @@ -1,6 +1,7 @@ using Content.Server.Popups; using Content.Shared.Contraband; using Content.Server._NF.Security.Components; +using Content.Shared._Coyote.RedeemableStuff; using Content.Shared.IdentityManagement; using Content.Shared.Interaction; using Content.Shared.Timing; @@ -33,10 +34,14 @@ private void OnUtilityVerb(Entity entity, ref GetVe if (!TryComp(entity, out UseDelayComponent? useDelay) || _useDelay.IsDelayed((entity, useDelay))) return; - if (!TryComp(args.Target, out var contraband) || !contraband.TurnInValues.ContainsKey(entity.Comp.Currency)) + // if (!TryComp(args.Target, out var contraband) || !contraband.TurnInValues.ContainsKey(entity.Comp.Currency)) + // return; + GetRedeemValueEvent ev = new (); + RaiseLocalEvent(args.Target, ref ev); + if (!ev.Values.ContainsKey(entity.Comp.Currency)) return; - var price = contraband.TurnInValues[entity.Comp.Currency]; + var price = ev.Values[entity.Comp.Currency]; var user = args.User; var target = args.Target; @@ -62,10 +67,24 @@ private void OnAfterInteract(Entity entity, ref Aft if (!TryComp(entity, out UseDelayComponent? useDelay) || _useDelay.IsDelayed((entity, useDelay))) return; - if (TryComp(args.Target, out var contraband) && contraband.TurnInValues.ContainsKey(entity.Comp.Currency)) - _popupSystem.PopupEntity(Loc.GetString($"{entity.Comp.LocStringPrefix}contraband-price-gun-pricing-result", ("object", Identity.Entity(args.Target.Value, EntityManager)), ("price", contraband.TurnInValues[entity.Comp.Currency])), args.User, args.User); + GetRedeemValueEvent ev = new (); + RaiseLocalEvent(args.Target.Value, ref ev); + + if (ev.Values.TryGetValue(entity.Comp.Currency, out int price)) + _popupSystem.PopupEntity( + Loc.GetString( + $"{entity.Comp.LocStringPrefix}contraband-price-gun-pricing-result", + ("object", Identity.Entity(args.Target.Value, EntityManager)), + ("price", price)), + args.User, + args.User); else - _popupSystem.PopupEntity(Loc.GetString($"{entity.Comp.LocStringPrefix}contraband-price-gun-pricing-result-none", ("object", Identity.Entity(args.Target.Value, EntityManager))), args.User, args.User); + _popupSystem.PopupEntity( + Loc.GetString( + $"{entity.Comp.LocStringPrefix}contraband-price-gun-pricing-result-none", + ("object", Identity.Entity(args.Target.Value, EntityManager))), + args.User, + args.User); _audio.PlayPvs(entity.Comp.AppraisalSound, entity.Owner); _useDelay.TryResetDelay((entity, useDelay)); diff --git a/Content.Shared/Construction/SharedFlatpackSystem.cs b/Content.Shared/Construction/SharedFlatpackSystem.cs index 963354bf890..23cfd4269bf 100644 --- a/Content.Shared/Construction/SharedFlatpackSystem.cs +++ b/Content.Shared/Construction/SharedFlatpackSystem.cs @@ -1,3 +1,4 @@ +using Content.Shared._Coyote.RedeemableStuff; using Content.Shared.Construction.Components; using Content.Shared.Administration.Logs; using Content.Shared.Containers.ItemSlots; @@ -98,6 +99,10 @@ private void OnFlatpackInteractUsing(Entity ent, ref Interact spawnXform.LocalRotation = xform.LocalRotation.GetCardinalDir().ToAngle(); // Frontier: rotatable flatpacks if (TryComp(uid, out var bound)) // Frontier: station binding BindToStation(spawn, bound); // Frontier: station binding + if (HasComp(uid)) + { + AddComp(spawn); + } _adminLogger.Add(LogType.Construction, LogImpact.Low, @@ -127,6 +132,11 @@ protected void SetupFlatpack(Entity ent, EntProtoId proto, E _metaData.SetEntityName(ent, Loc.GetString("flatpack-entity-name", ("name", machinePrototype.Name)), meta); _metaData.SetEntityDescription(ent, Loc.GetString("flatpack-entity-description", ("name", machinePrototype.Name)), meta); + if (HasComp(board)) + { + AddComp(ent.Owner); + } + if (TryComp(board, out var bound)) // Frontier: station binding BindToStation(ent, bound); // Frontier: station binding diff --git a/Content.Shared/Stacks/SharedStackSystem.cs b/Content.Shared/Stacks/SharedStackSystem.cs index 04744f1c429..5625df8d7f9 100644 --- a/Content.Shared/Stacks/SharedStackSystem.cs +++ b/Content.Shared/Stacks/SharedStackSystem.cs @@ -1,4 +1,5 @@ using System.Numerics; +using Content.Shared._Coyote.RedeemableStuff; using Content.Shared.Examine; using Content.Shared.Hands.Components; using Content.Shared.Hands.EntitySystems; @@ -122,6 +123,11 @@ private bool TryMergeStacks( if (string.IsNullOrEmpty(recipientStack.StackTypeId) || !recipientStack.StackTypeId.Equals(donorStack.StackTypeId)) return false; + bool mecomp = HasComp(donor); + bool youcomp = HasComp(recipient); + if (mecomp != youcomp) + return false; + transferred = Math.Min(donorStack.Count, GetAvailableSpace(recipientStack)); SetCount(donor, donorStack.Count - transferred, donorStack); SetCount(recipient, recipientStack.Count + transferred, recipientStack); diff --git a/Content.Shared/_Coyote/RedeemableStuff/RedeemableSystem.cs b/Content.Shared/_Coyote/RedeemableStuff/RedeemableSystem.cs index 36c58fc658e..c6dfa806db0 100644 --- a/Content.Shared/_Coyote/RedeemableStuff/RedeemableSystem.cs +++ b/Content.Shared/_Coyote/RedeemableStuff/RedeemableSystem.cs @@ -38,11 +38,16 @@ private void OnGetRedeemValue(EntityUid uid, RedeemableComponent c, GetRedeemVal return; if (TryComp(uid, out UnRedeemableComponent? unRedeemable)) return; + foreach (var (currency, amount) in c.TurnInValues) + { + if (!args.Values.TryAdd(currency, amount)) + args.Values[currency] += amount; + } } - } +[ByRefEvent] public sealed class GetRedeemValueEvent : EntityEventArgs { public Dictionary, int> Values = new(); diff --git a/Content.Shared/_NF/Contraband/SharedContrabandTurnInSystem.cs b/Content.Shared/_NF/Contraband/SharedContrabandTurnInSystem.cs index 50a7c049815..2ca0b1ebb14 100644 --- a/Content.Shared/_NF/Contraband/SharedContrabandTurnInSystem.cs +++ b/Content.Shared/_NF/Contraband/SharedContrabandTurnInSystem.cs @@ -1,3 +1,4 @@ +using Content.Shared._Coyote.RedeemableStuff; using Content.Shared.Contraband; using Robust.Shared.Containers; using Robust.Shared.Serialization; @@ -15,7 +16,7 @@ public abstract class SharedContrabandTurnInSystem : EntitySystem public void ClearContrabandValue(EntityUid item) { // Clear contraband value for printed items - if (TryComp(item, out var contraband)) + if (TryComp(item, out var contraband)) { foreach (var valueKey in contraband.TurnInValues.Keys) { diff --git a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml index 897ca23bb1f..dd183a2cc2e 100644 --- a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml +++ b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml @@ -425,6 +425,8 @@ tags: - Kangaroo - WhitelistChameleon + - type: Redeemable + preset: Example - type: entity parent: [ClothingHandsBase, BaseC4ContrabandUnredeemable] # Frontier: BaseSecurityContraband Date: Thu, 22 Jan 2026 17:51:28 -0800 Subject: [PATCH 3/6] added debuggery --- .../Prototypes/Entities/Clothing/Hands/gloves.yml | 10 ++++++++++ Resources/Prototypes/_COYOTE/RedeemablePresets.yml | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml index dd183a2cc2e..4ff3b48c370 100644 --- a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml +++ b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml @@ -428,6 +428,16 @@ - type: Redeemable preset: Example +- type: entity + parent: ClothingHandsGlovesNorthStar + id: ClothingHandsGlovesNorthStarDebug + name: gloves of the north star (debug) + suffix: Debug + description: These gloves are worth a different + components: + - type: Redeemable + preset: Example2 + - type: entity parent: [ClothingHandsBase, BaseC4ContrabandUnredeemable] # Frontier: BaseSecurityContraband Date: Fri, 23 Jan 2026 17:34:51 -0800 Subject: [PATCH 4/6] added some presets --- .../Prototypes/_COYOTE/RedeemablePresets.yml | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/Resources/Prototypes/_COYOTE/RedeemablePresets.yml b/Resources/Prototypes/_COYOTE/RedeemablePresets.yml index 0b19e0bfb7a..7145728b769 100644 --- a/Resources/Prototypes/_COYOTE/RedeemablePresets.yml +++ b/Resources/Prototypes/_COYOTE/RedeemablePresets.yml @@ -8,3 +8,90 @@ id: Example2 fucValue: 1 denBullionValue: 0 + +- type: redeemablePreset + id: NFSDGear + fucValue: 0 + denBullionValue: 1 + +- type: redeemablePreset + id: NFSDGearValuable + fucValue: 0 + denBullionValue: 3 + +- type: redeemablePreset + id: FreelancerGear + fucValue: 0 + denBullionValue: 1 + +- type: redeemablePreset + id: FreelancerGearValuable + fucValue: 0 + denBullionValue: 3 + +- type: redeemablePreset + id: ContraLvl1 + fucValue: 1 + denBullionValue: 1 + +- type: redeemablePreset + id: ContraLvl2 + fucValue: 2 + denBullionValue: 2 + +- type: redeemablePreset + id: ContraLvl3 + fucValue: 3 + denBullionValue: 3 + +- type: redeemablePreset + id: ContraLvl4 + fucValue: 4 + denBullionValue: 4 + +- type: redeemablePreset + id: WizardLvl1 + fucValue: 1 + denBullionValue: 2 + +- type: redeemablePreset + id: WizardLvl2 + fucValue: 1 + denBullionValue: 3 + +- type: redeemablePreset + id: WizardLvl3 + fucValue: 1 + denBullionValue: 4 + +- type: redeemablePreset + id: WizardLvl4 + fucValue: 1 + denBullionValue: 5 + +- type: redeemablePreset + id: SyndieLvl1 + fucValue: 2 + denBullionValue: 1 + +- type: redeemablePreset + id: SyndieLvl2 + fucValue: 3 + denBullionValue: 1 + +- type: redeemablePreset + id: SyndieLvl3 + fucValue: 4 + denBullionValue: 1 + +- type: redeemablePreset + id: SyndieLvl4 + fucValue: 5 + denBullionValue: 1 + +- type: redeemablePreset + id: ContrabandCrate + fucValue: 6 + denBullionValue: 2 + + From 5d645b65badffac8b9b55186ccc37945683a62a3 Mon Sep 17 00:00:00 2001 From: R3N0mon <134397066+R3N0mon@users.noreply.github.com> Date: Sat, 24 Jan 2026 03:07:32 +0000 Subject: [PATCH 5/6] first wave --- .../Prototypes/_COYOTE/RedeemablePresets.yml | 15 +++++++++++++++ .../Guns/HeavyPistols/base_machine_pistol.yml | 2 +- .../Objects/Weapons/Guns/SMGs/base_smg.yml | 2 +- .../_NF/Body/Organs/synthetic_organs.yml | 12 +++++++++--- .../_NF/Entities/Clothing/Belt/belts.yml | 4 ++++ .../_NF/Entities/Clothing/Eyes/glasses.yml | 4 ++++ .../Prototypes/_NF/Entities/Clothing/Eyes/hud.yml | 6 ++++++ .../_NF/Entities/Clothing/Head/helmets.yml | 2 ++ .../_NF/Entities/Clothing/Masks/masks.yml | 6 ++++++ .../_NF/Entities/Clothing/Neck/misc.yml | 2 ++ .../_NF/Entities/Objects/Devices/door_remote.yml | 2 ++ .../_NF/Entities/Objects/Fun/spaceblade.yml | 6 +++++- .../Prototypes/_NF/Entities/Objects/Fun/toys.yml | 4 +++- .../_NF/Entities/Objects/Misc/nfsd_medal_case.yml | 2 ++ .../_NF/Entities/Objects/Shields/shields.yml | 8 ++++++++ .../Objects/Tools/access_configurator.yml | 2 ++ .../blueprints/blueprints_expedition_loot.yml | 8 ++++++++ .../_NF/Entities/Objects/Tools/emag.yml | 4 ++++ .../_NF/Entities/Objects/Vehicles/vehicles.yml | 6 ++++++ .../Weapons/Guns/Battery/battery_pistols.yml | 12 ++++++++++++ .../Guns/Battery/battery_rifles_assault.yml | 4 ++++ .../Weapons/Guns/Pistols/machine_pistols.yml | 2 ++ .../Entities/Objects/Weapons/Guns/SMGs/smgs.yml | 6 ++++++ 23 files changed, 114 insertions(+), 7 deletions(-) diff --git a/Resources/Prototypes/_COYOTE/RedeemablePresets.yml b/Resources/Prototypes/_COYOTE/RedeemablePresets.yml index 7145728b769..63160c5c4e8 100644 --- a/Resources/Prototypes/_COYOTE/RedeemablePresets.yml +++ b/Resources/Prototypes/_COYOTE/RedeemablePresets.yml @@ -9,6 +9,11 @@ fucValue: 1 denBullionValue: 0 +- type: redeemablePreset + id: Valueless + fucValue: 0 + denBullionValue: 0 + - type: redeemablePreset id: NFSDGear fucValue: 0 @@ -19,6 +24,11 @@ fucValue: 0 denBullionValue: 3 +- type: redeemablePreset + id: NFSDGearExtremeValuable + fucValue: 0 + denBullionValue: 6 + - type: redeemablePreset id: FreelancerGear fucValue: 0 @@ -29,6 +39,11 @@ fucValue: 0 denBullionValue: 3 +- type: redeemablePreset + id: FreelancerGearExtremeValuable + fucValue: 0 + denBullionValue: 6 + - type: redeemablePreset id: ContraLvl1 fucValue: 1 diff --git a/Resources/Prototypes/_CS/Entities/Objects/Weapons/Guns/HeavyPistols/base_machine_pistol.yml b/Resources/Prototypes/_CS/Entities/Objects/Weapons/Guns/HeavyPistols/base_machine_pistol.yml index e13dc3dd3bd..02bbfe00f2f 100644 --- a/Resources/Prototypes/_CS/Entities/Objects/Weapons/Guns/HeavyPistols/base_machine_pistol.yml +++ b/Resources/Prototypes/_CS/Entities/Objects/Weapons/Guns/HeavyPistols/base_machine_pistol.yml @@ -25,7 +25,7 @@ #region manufacturer - type: entity id: CSBaseWeaponFrameHeavyMachinePistolGorlex - parent: [ BaseC4Contraband, CSBaseWeaponFrameHeavyMachinePistol ] + parent: [ BaseC2Contraband, CSBaseWeaponFrameHeavyMachinePistol ] #coyote abstract: true components: - type: Gun diff --git a/Resources/Prototypes/_CS/Entities/Objects/Weapons/Guns/SMGs/base_smg.yml b/Resources/Prototypes/_CS/Entities/Objects/Weapons/Guns/SMGs/base_smg.yml index 8163a20be5e..4c3ce3d9ae2 100644 --- a/Resources/Prototypes/_CS/Entities/Objects/Weapons/Guns/SMGs/base_smg.yml +++ b/Resources/Prototypes/_CS/Entities/Objects/Weapons/Guns/SMGs/base_smg.yml @@ -48,7 +48,7 @@ - type: entity id: CSBaseWeaponFrameHeavySubMachineGunCybersun - parent: [ BaseC4Contraband, CSBaseWeaponFrameHeavySubMachineGun ] + parent: [ BaseC2Contraband, CSBaseWeaponFrameHeavySubMachineGun ] #coyote abstract: true components: - type: GunWieldBonus diff --git a/Resources/Prototypes/_NF/Body/Organs/synthetic_organs.yml b/Resources/Prototypes/_NF/Body/Organs/synthetic_organs.yml index 3bbb8494455..602672951d4 100644 --- a/Resources/Prototypes/_NF/Body/Organs/synthetic_organs.yml +++ b/Resources/Prototypes/_NF/Body/Organs/synthetic_organs.yml @@ -1,10 +1,12 @@ # Organs with boosted metabolizm - type: entity id: OrganSyntheticHeart - parent: [BaseHumanOrgan, NotContraband] # Frontier: add BaseC4Contraband + parent: [BaseHumanOrgan, BaseC4Contraband] # Frontier: add BaseC4Contraband name: synthetic heart description: "Whirrs and pumps blood." components: + - type: Redeemable + preset: ContraLvl2 - type: Sprite state: heart-on - type: Metabolizer @@ -19,10 +21,12 @@ - type: entity id: OrganSyntheticLiver - parent: [BaseHumanOrgan, NotContraband] # Frontier: add BaseC4Contraband + parent: [BaseHumanOrgan, BaseC4Contraband] # Frontier: add BaseC4Contraband name: synthetic liver description: "Filters toxins from the bloodstream at higher rate than old 'ganic liver." components: + - type: Redeemable + preset: ContraLvl2 - type: Sprite state: liver - type: Metabolizer @@ -40,10 +44,12 @@ - type: entity id: OrganSyntheticKidneys - parent: [BaseHumanOrgan, NotContraband] # Frontier: add BaseC4Contraband + parent: [BaseHumanOrgan, BaseC4Contraband] # Frontier: add BaseC4Contraband name: synthetic kidneys description: "Filters toxins from the bloodstream at higher rate than old 'ganic liver." components: + - type: Redeemable + preset: ContraLvl2 - type: Sprite layers: - state: kidney-l diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Belt/belts.yml b/Resources/Prototypes/_NF/Entities/Clothing/Belt/belts.yml index ed1025b5b2b..0e8da48cb1a 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Belt/belts.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Belt/belts.yml @@ -68,6 +68,8 @@ name: NFSD belt description: A tactical assault belt. components: + - type: Redeemable + preset: NFSDGear - type: Sprite sprite: _NF/Clothing/Belt/nfsd_belt.rsi - type: Clothing @@ -79,6 +81,8 @@ name: NFSD webbing description: A tactical assault webbing. components: + - type: Redeemable + preset: NFSDGear - type: Sprite sprite: _NF/Clothing/Belt/nfsd_webbing.rsi - type: Clothing diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Eyes/glasses.yml b/Resources/Prototypes/_NF/Entities/Clothing/Eyes/glasses.yml index 1388e45bbaf..12e89720fa2 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Eyes/glasses.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Eyes/glasses.yml @@ -34,6 +34,8 @@ name: NFSD glasses description: Upgraded sunglasses that provide flash immunity and a security HUD. components: + - type: Redeemable + preset: NFSDGear - type: Sprite sprite: _NF/Clothing/Eyes/Glasses/nfsd_glasses.rsi - type: Clothing @@ -45,6 +47,8 @@ name: plant manager's goggles description: Green-tinted protective goggles with an integrated HUD for crew identification. components: + - type: Redeemable + preset: NFSDGear - type: Sprite sprite: _NF/Clothing/Eyes/Glasses/manager_meson.rsi - type: Clothing diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Eyes/hud.yml b/Resources/Prototypes/_NF/Entities/Clothing/Eyes/hud.yml index c3985eb8097..d3c65317eec 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Eyes/hud.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Eyes/hud.yml @@ -6,6 +6,8 @@ name: NFSD hud description: A heads-up display that scans the humanoids in view and provides accurate data about their ID status and criminal records. components: + - type: Redeemable + preset: NFSDGear - type: Sprite sprite: _NF/Clothing/Eyes/Hud/nfsd_hud.rsi - type: Clothing @@ -29,6 +31,8 @@ name: brigmedic hud description: An eye display that looks like a mixture of medical and nfsd huds. components: + - type: Redeemable + preset: NFSDGear - type: Sprite sprite: _NF/Clothing/Eyes/Hud/nfsd_hud.rsi - type: Clothing @@ -45,6 +49,8 @@ name: NFSD hud eyepatch description: A heads-up display that scans the humanoids in view and provides accurate data about their ID status and criminal records. components: + - type: Redeemable + preset: NFSDGear - type: Sprite sprite: _NF/Clothing/Eyes/Hud/nfsd_patch.rsi - type: Clothing diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Head/helmets.yml b/Resources/Prototypes/_NF/Entities/Clothing/Head/helmets.yml index b4def4b35a7..d5696bc6be7 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Head/helmets.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Head/helmets.yml @@ -19,6 +19,8 @@ name: NFSD helmet description: An NFSD issued helmet to protect your head. components: + - type: Redeemable + preset: NFSDGear - type: Sprite sprite: _NF/Clothing/Head/Helmets/nfsd.rsi - type: Clothing diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Masks/masks.yml b/Resources/Prototypes/_NF/Entities/Clothing/Masks/masks.yml index aa90a284489..e12361c004b 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Masks/masks.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Masks/masks.yml @@ -48,6 +48,8 @@ name: NFSD gas mask description: A standard issue NFSD gas mask. components: + - type: Redeemable + preset: NFSDGear - type: Sprite sprite: _NF/Clothing/Mask/nfsd.rsi - type: Clothing @@ -60,6 +62,8 @@ name: NFSD sheriff gas mask description: A gas mask worthy of a sheriff. components: + - type: Redeemable + preset: NFSDGearValuable - type: Sprite sprite: _NF/Clothing/Mask/nfsd_sheriff.rsi - type: Clothing @@ -71,6 +75,8 @@ name: cult janitor mask description: A close-fitting, imposing breath mask designed for accursed custodians who value style. components: + - type: Redeemable + preset: SyndieLvl1 - type: Sprite sprite: _NF/Clothing/Mask/cult_janitor_mask.rsi - type: Clothing diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Neck/misc.yml b/Resources/Prototypes/_NF/Entities/Clothing/Neck/misc.yml index 3991c58f82a..9d7980dc697 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Neck/misc.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Neck/misc.yml @@ -42,6 +42,8 @@ name: ascended cultist amulet description: "Every time you gaze upon it, you feel as if it is gazing back at you. Summons a drained one that follows the user for a brief period of time. Has a cooldown." components: + - type: Redeemable + preset: SyndieLvl4 - type: Item size: Tiny - type: Sprite diff --git a/Resources/Prototypes/_NF/Entities/Objects/Devices/door_remote.yml b/Resources/Prototypes/_NF/Entities/Objects/Devices/door_remote.yml index 9be3d45b29e..32e4248a490 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Devices/door_remote.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Devices/door_remote.yml @@ -3,6 +3,8 @@ id: DoorRemoteNfsd name: NFSD door remote components: + - type: Redeemable + preset: NFSDGearExtremeValuable - type: Sprite layers: - state: door_remotebase diff --git a/Resources/Prototypes/_NF/Entities/Objects/Fun/spaceblade.yml b/Resources/Prototypes/_NF/Entities/Objects/Fun/spaceblade.yml index 87c878ca2a3..0acc94df17b 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Fun/spaceblade.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Fun/spaceblade.yml @@ -134,8 +134,10 @@ id: SpaceBladeSec parent: - SpaceBlade - - BaseC1Contraband # COYOTE: BaseC2ContrabandUnredeemable -> BaseC4ContrabandUnredeemable + - BaseC4ContrabandUnredeemable # COYOTE: BaseC2ContrabandUnredeemable -> BaseC4ContrabandUnredeemable components: + - type: Redeemable + preset: NFSDGear - type: Sprite state: secblade - type: StaminaDamageOnCollide @@ -150,6 +152,8 @@ - BaseC1Contraband description: Let it reap. components: + - type: Redeemable + preset: SyndieLvl1 - type: Sprite state: contraband - type: DamageOtherOnHit diff --git a/Resources/Prototypes/_NF/Entities/Objects/Fun/toys.yml b/Resources/Prototypes/_NF/Entities/Objects/Fun/toys.yml index 2cf5be99a77..652b6675023 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Fun/toys.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Fun/toys.yml @@ -985,12 +985,14 @@ clumsyProof: true - type: entity - parent: [BaseC1Contraband, NFBaseWeaponFrameRevolverFoamForce, NFBaseWeaponRevolverChamber45Cap] + parent: [BaseC4Contraband, NFBaseWeaponFrameRevolverFoamForce, NFBaseWeaponRevolverChamber45Cap] id: NFRevolverCapGunFake suffix: Fake, Frontier name: cap gun description: Looks almost like the real thing! Ages 8 and up. components: + - type: Redeemable + preset: SyndieLvl4 - type: Sprite sprite: Objects/Fun/toys.rsi layers: diff --git a/Resources/Prototypes/_NF/Entities/Objects/Misc/nfsd_medal_case.yml b/Resources/Prototypes/_NF/Entities/Objects/Misc/nfsd_medal_case.yml index 23adac80d4b..96787250033 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Misc/nfsd_medal_case.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Misc/nfsd_medal_case.yml @@ -6,6 +6,8 @@ name: NFSD medal case description: This polished oak case hides medals to be given for distinguished service. components: + - type: Redeemable + preset: NFSDGear - type: Sprite sprite: _NF/Objects/Storage/nfsdmedalcase.rsi - type: Item diff --git a/Resources/Prototypes/_NF/Entities/Objects/Shields/shields.yml b/Resources/Prototypes/_NF/Entities/Objects/Shields/shields.yml index b4bbdd3593d..178563af562 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Shields/shields.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Shields/shields.yml @@ -3,6 +3,8 @@ parent: [BaseC4ContrabandUnredeemable, EnergyShield] # COYOTE: BaseC2ContrabandUnredeemable -> BaseC4ContrabandUnredeemable id: EnergyShieldNfsd components: + - type: Redeemable + preset: NFSDGearValuable - type: Sprite sprite: _NF/Objects/Weapons/Melee/e_shield.rsi - type: Item @@ -16,6 +18,8 @@ id: NFMetalShield description: A sturdy metal shield. It has a window so you can wink at whatever is hitting you. components: + - type: Redeemable + preset: ContraLvl1 - type: Sprite sprite: _NF/Objects/Weapons/Melee/shields.rsi state: metal-icon @@ -28,6 +32,8 @@ parent: [ BaseC1Contraband, RiotLaserShield ] name: reflective shield components: + - type: Redeemable + preset: ContraLvl1 - type: Sprite sprite: _NF/Objects/Weapons/Melee/shields.rsi state: reflective-icon @@ -54,6 +60,8 @@ parent: [ BaseC1Contraband, RiotBulletShield ] name: bullet resistant shield components: + - type: Redeemable + preset: ContraLvl1 - type: Sprite sprite: _NF/Objects/Weapons/Melee/shields.rsi state: bullet-icon diff --git a/Resources/Prototypes/_NF/Entities/Objects/Tools/access_configurator.yml b/Resources/Prototypes/_NF/Entities/Objects/Tools/access_configurator.yml index d53e4232760..cafb067a113 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Tools/access_configurator.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Tools/access_configurator.yml @@ -5,6 +5,8 @@ suffix: Antag description: A modified access configurator sold on the black market. components: + - type: Redeemable + preset: FreelancerGearValuable - type: Sprite sprite: _NF/Objects/Tools/antag_access_configurator.rsi - type: Clothing diff --git a/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_expedition_loot.yml b/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_expedition_loot.yml index 8a97d72dc8b..b7314055284 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_expedition_loot.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_expedition_loot.yml @@ -8,6 +8,8 @@ name: laser cannon blueprint description: A blueprint with a schematic of a laser cannon. It can be inserted into a mercenary or NFSD techfab. components: + - type: Redeemable + preset: ContraLvl2 - type: Blueprint providedRecipes: - NFWeaponEnergyRifleSniperCannon @@ -20,6 +22,8 @@ name: x-ray cannon blueprint description: A blueprint with a schematic of an x-ray cannon. It can be inserted into a mercenary or NFSD techfab. components: + - type: Redeemable + preset: ContraLvl4 - type: Blueprint providedRecipes: - NFWeaponEnergyRifleSniperXrayCannon @@ -32,6 +36,8 @@ name: temperature gun blueprint description: A blueprint with a schematic of a temperature gun. It can be inserted into a mercenary or NFSD techfab. components: + - type: Redeemable + preset: ContraLvl2 - type: Blueprint providedRecipes: - NFWeaponEnergyRifleTemperature @@ -46,6 +52,8 @@ name: holopickaxe blueprint description: A blueprint with a schematic of a holopickaxe. It can be inserted into a salvage techfab. components: + - type: Redeemable + preset: ContraLvl1 - type: Blueprint providedRecipes: - NFEnergyPickaxe diff --git a/Resources/Prototypes/_NF/Entities/Objects/Tools/emag.yml b/Resources/Prototypes/_NF/Entities/Objects/Tools/emag.yml index 373638f50b8..5d3cb3a393a 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Tools/emag.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Tools/emag.yml @@ -21,6 +21,8 @@ suffix: Unlimited description: The all-in-one unhacking solution. The last bastion of order. The iconic DEMAG. components: + - type: Redeemable + preset: NFSDGearExtremeValuable - type: Emag emagType: [Interaction, Access, StationBound] demag: true @@ -45,6 +47,8 @@ suffix: Unlimited description: A portable package for machine DRM removal. Freebooter approved and tested. components: + - type: Redeemable + preset: FreelancerGearValuable - type: Emag emagType: [StationBound] - type: Sprite diff --git a/Resources/Prototypes/_NF/Entities/Objects/Vehicles/vehicles.yml b/Resources/Prototypes/_NF/Entities/Objects/Vehicles/vehicles.yml index 0ed41bb0021..cc1ab4c0e08 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Vehicles/vehicles.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Vehicles/vehicles.yml @@ -558,6 +558,8 @@ name: NFSD hoverbike description: An NFSD issued turbine with bike handles. Very safe. components: + - type: Redeemable + preset: NFSDGearValuable - type: Vehicle sirenSound: collection: PoliceSiren @@ -652,6 +654,8 @@ name: pirate hoverbike description: A sovereign space shuttle, fitting only for the most sovereigh of citizens. Freedom for Freelancers! components: + - type: Redeemable + preset: FreelancerGearValuable - type: Storage grid: - 0,0,5,3 @@ -732,6 +736,8 @@ name: syndicate hoverbike description: This thing screams style. And war crimes. components: + - type: Redeemable + preset: SyndieLvl1 - type: Storage grid: - 0,0,8,4 diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Battery/battery_pistols.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Battery/battery_pistols.yml index 544f9ed6ec5..de2756a089b 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Battery/battery_pistols.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Battery/battery_pistols.yml @@ -64,6 +64,14 @@ description: |- This is an expensive, modern recreation of an antique laser gun. This gun has several unique firemodes. On the handle is a label that says 'for authorized use only.' components: + - type: Redeemable + preset: NFSDGearExtremeValuable + - type: Battery # 40 shots + maxCharge: 2400 + startingCharge: 2400 + - type: BatterySelfRecharger # Recharges 1 shot per 2 seconds + autoRecharge: true + autoRechargeRate: 45 - type: Sprite sprite: _DV/Objects/Weapons/Guns/Battery/multiphase_energygun.rsi - type: Clothing @@ -130,6 +138,8 @@ description: |- A state of the art energy pistol favoured as a sidearm by the NT operatives. On the handle is a label that says 'for authorized use only.' components: + - type: Redeemable + preset: NFSDGearExtremeValuable - type: Sprite sprite: Objects/Weapons/Guns/Battery/pulse_pistol.rsi - type: Clothing @@ -195,6 +205,8 @@ - WeaponPistolCHIMPUpgraded - BaseC4Contraband components: + - type: Redeemable + preset: SyndieLvl4 - type: ProjectileBatteryAmmoProvider proto: NFAnomalousParticleDeltaStrong fireCost: 100 diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Battery/battery_rifles_assault.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Battery/battery_rifles_assault.yml index ff7412f9676..54c0239ece9 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Battery/battery_rifles_assault.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Battery/battery_rifles_assault.yml @@ -7,6 +7,8 @@ description: |- A high tech energy carbine favoured by the NT-ERT operatives. On the handle is a label that says 'for authorized use only.' components: + - type: Redeemable + preset: NFSDGearExtremeValuable - type: Sprite sprite: Objects/Weapons/Guns/Battery/pulse_carbine.rsi - type: Clothing @@ -24,6 +26,8 @@ description: |- A turbo laser ripped from the guardian unit. Appears to be a rather old model. Doesn't seem to be working properly. Supposedly highly illegal. components: + - type: Redeemable + preset: ContraLvl2 - type: Gun soundGunshot: path: /Audio/_DV/Weapons/Guns/Gunshots/laser.ogg diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Pistols/machine_pistols.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Pistols/machine_pistols.yml index ea91cd9ef70..1a4fb39cf93 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Pistols/machine_pistols.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Pistols/machine_pistols.yml @@ -32,6 +32,8 @@ description: |- A small, easily concealable machine pistol. An illegal firearm often used by Syndicate agents. components: + - type: Redeemable + preset: SyndieLvl1 - type: Sprite sprite: Objects/Weapons/Guns/Pistols/viper.rsi - type: Clothing diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/SMGs/smgs.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/SMGs/smgs.yml index 8a1177f16a9..41b6de9a1b0 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/SMGs/smgs.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/SMGs/smgs.yml @@ -6,6 +6,8 @@ description: |- Pla-ket-ket-ket-ket! An illegal firearm often used by Syndicate agents. components: + - type: Redeemable + preset: SyndieLvl2 - type: Gun soundGunshot: path: /Audio/Weapons/Guns/Gunshots/atreides.ogg @@ -21,6 +23,8 @@ description: |- An illegal firearm that is often used by the infamous nuclear operatives. components: + - type: Redeemable + preset: SyndieLvl2 - type: Gun soundGunshot: path: /Audio/Weapons/Guns/Gunshots/c-20r.ogg @@ -41,6 +45,8 @@ name: Drozd description: A fully automatic SMG. components: &drozdComponents + - type: Redeemable + preset: ContraLvl2 - type: Gun soundGunshot: path: /Audio/Weapons/Guns/Gunshots/atreides.ogg From 5bdcb1804fee97459c4326afc6e6a2030daebe3a Mon Sep 17 00:00:00 2001 From: R3N0mon <134397066+R3N0mon@users.noreply.github.com> Date: Sun, 25 Jan 2026 01:26:48 +0000 Subject: [PATCH 6/6] Wave 2 --- .../Prototypes/_COYOTE/RedeemablePresets.yml | 40 ++++ .../Guns/HeavyPistols/base_machine_pistol.yml | 2 +- .../Objects/Weapons/Guns/SMGs/base_smg.yml | 2 +- .../Guns/Battery/base_battery_pistol.yml | 2 +- .../Objects/Weapons/Guns/LMGs/base_lmg.yml | 2 +- .../Weapons/Guns/Launchers/base_launcher.yml | 4 +- .../Weapons/Guns/Revolvers/base_revolver.yml | 4 +- .../Weapons/Guns/Rifles/base_rifle.yml | 2 +- .../Guns/Rifles/base_rifle_assault.yml | 2 +- .../Objects/Weapons/Guns/Rifles/rifles.yml | 8 +- .../Objects/Weapons/Guns/SMGs/smgs.yml | 8 +- .../Objects/Weapons/Guns/expedition_guns.yml | 211 +++++++++++++++--- .../_NF/Entities/Objects/base_contraband.yml | 10 +- 13 files changed, 247 insertions(+), 50 deletions(-) diff --git a/Resources/Prototypes/_COYOTE/RedeemablePresets.yml b/Resources/Prototypes/_COYOTE/RedeemablePresets.yml index 63160c5c4e8..c8a25afa658 100644 --- a/Resources/Prototypes/_COYOTE/RedeemablePresets.yml +++ b/Resources/Prototypes/_COYOTE/RedeemablePresets.yml @@ -29,6 +29,26 @@ fucValue: 0 denBullionValue: 6 +- type: redeemablePreset + id: ExpedNFSDLvl1 + fucValue: 1 + denBullionValue: 2 + +- type: redeemablePreset + id: ExpedNFSDLvl2 + fucValue: 1 + denBullionValue: 3 + +- type: redeemablePreset + id: ExpedNFSDLvl3 + fucValue: 1 + denBullionValue: 4 + +- type: redeemablePreset + id: ExpedNFSDLvl4 + fucValue: 1 + denBullionValue: 5 + - type: redeemablePreset id: FreelancerGear fucValue: 0 @@ -44,6 +64,26 @@ fucValue: 0 denBullionValue: 6 +- type: redeemablePreset + id: ExpedFreelancerLvl1 + fucValue: 2 + denBullionValue: 1 + +- type: redeemablePreset + id: ExpedFreelancerLvl2 + fucValue: 3 + denBullionValue: 1 + +- type: redeemablePreset + id: ExpedFreelancerLvl3 + fucValue: 4 + denBullionValue: 1 + +- type: redeemablePreset + id: ExpedFreelancerLvl4 + fucValue: 5 + denBullionValue: 1 + - type: redeemablePreset id: ContraLvl1 fucValue: 1 diff --git a/Resources/Prototypes/_CS/Entities/Objects/Weapons/Guns/HeavyPistols/base_machine_pistol.yml b/Resources/Prototypes/_CS/Entities/Objects/Weapons/Guns/HeavyPistols/base_machine_pistol.yml index 02bbfe00f2f..aa1f7fcdffa 100644 --- a/Resources/Prototypes/_CS/Entities/Objects/Weapons/Guns/HeavyPistols/base_machine_pistol.yml +++ b/Resources/Prototypes/_CS/Entities/Objects/Weapons/Guns/HeavyPistols/base_machine_pistol.yml @@ -25,7 +25,7 @@ #region manufacturer - type: entity id: CSBaseWeaponFrameHeavyMachinePistolGorlex - parent: [ BaseC2Contraband, CSBaseWeaponFrameHeavyMachinePistol ] #coyote + parent: [ CSBaseWeaponFrameHeavyMachinePistol ] #coyote abstract: true components: - type: Gun diff --git a/Resources/Prototypes/_CS/Entities/Objects/Weapons/Guns/SMGs/base_smg.yml b/Resources/Prototypes/_CS/Entities/Objects/Weapons/Guns/SMGs/base_smg.yml index 4c3ce3d9ae2..93556ad4e91 100644 --- a/Resources/Prototypes/_CS/Entities/Objects/Weapons/Guns/SMGs/base_smg.yml +++ b/Resources/Prototypes/_CS/Entities/Objects/Weapons/Guns/SMGs/base_smg.yml @@ -48,7 +48,7 @@ - type: entity id: CSBaseWeaponFrameHeavySubMachineGunCybersun - parent: [ BaseC2Contraband, CSBaseWeaponFrameHeavySubMachineGun ] #coyote + parent: [ CSBaseWeaponFrameHeavySubMachineGun ] #coyote abstract: true components: - type: GunWieldBonus diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Battery/base_battery_pistol.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Battery/base_battery_pistol.yml index 22ff900c3be..3327e160910 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Battery/base_battery_pistol.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Battery/base_battery_pistol.yml @@ -1,7 +1,7 @@ #region frame - type: entity id: NFBaseWeaponFrameEnergyPistol - parent: [ NFBaseWeaponEncumbrancePistol, BaseWeaponBatterySmall, BaseC1ContrabandUnredeemable ] + parent: [ NFBaseWeaponEncumbrancePistol, BaseWeaponBatterySmall ] #Coyote suffix: Frontier abstract: true components: diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/LMGs/base_lmg.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/LMGs/base_lmg.yml index 1add04d921b..2973a54bfad 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/LMGs/base_lmg.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/LMGs/base_lmg.yml @@ -31,7 +31,7 @@ #region manufacturer - type: entity id: NFBaseWeaponFrameLightMachineGunGorlex - parent: [ BaseC4Contraband, NFBaseWeaponFrameLightMachineGun ] + parent: [ NFBaseWeaponFrameLightMachineGun ] #coyote abstract: true components: - type: Gun diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Launchers/base_launcher.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Launchers/base_launcher.yml index 43bad01cc8b..674dc14df99 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Launchers/base_launcher.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Launchers/base_launcher.yml @@ -46,7 +46,7 @@ - type: entity id: NFBaseWeaponFrameLauncherGorlex - parent: [ BaseC4Contraband, NFBaseWeaponFrameLauncher ] + parent: [ NFBaseWeaponFrameLauncher ] #coyote abstract: true components: - type: Gun @@ -59,7 +59,7 @@ - type: entity id: NFBaseWeaponFrameLauncherSteelbolt - parent: [ BaseC3Contraband, NFBaseWeaponFrameLauncher ] + parent: [ NFBaseWeaponFrameLauncher ] #coyote abstract: true components: - type: Gun diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Revolvers/base_revolver.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Revolvers/base_revolver.yml index 39be464f0a1..4cd90a8b69d 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Revolvers/base_revolver.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Revolvers/base_revolver.yml @@ -43,7 +43,7 @@ - type: entity id: NFBaseWeaponFrameRevolverGorlex - parent: [ BaseC4Contraband, NFBaseWeaponFrameRevolver ] + parent: [ NFBaseWeaponFrameRevolver ] #coyote abstract: true components: - type: Gun @@ -57,7 +57,7 @@ - type: entity id: NFBaseWeaponFrameRevolverSteelbolt - parent: [ BaseC3Contraband, NFBaseWeaponFrameRevolver ] + parent: [ NFBaseWeaponFrameRevolver ] #coyote abstract: true components: - type: Gun diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Rifles/base_rifle.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Rifles/base_rifle.yml index cbaa09d199c..82932e97fed 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Rifles/base_rifle.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Rifles/base_rifle.yml @@ -46,7 +46,7 @@ - type: entity id: NFBaseWeaponFrameRifleSteelbolt - parent: [ BaseC3Contraband, NFBaseWeaponFrameRifle ] + parent: NFBaseWeaponFrameRifle #coyote abstract: true components: - type: Gun diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Rifles/base_rifle_assault.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Rifles/base_rifle_assault.yml index b4e9ca1f8a6..0d64a375676 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Rifles/base_rifle_assault.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Rifles/base_rifle_assault.yml @@ -46,7 +46,7 @@ - type: entity id: NFBaseWeaponFrameRifleAssaultCybersun - parent: [ BaseC4Contraband, NFBaseWeaponFrameRifleAssault ] + parent: [ NFBaseWeaponFrameRifleAssault ] # coyote abstract: true components: - type: Gun diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Rifles/rifles.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Rifles/rifles.yml index 2b654e08a40..868724b3d3c 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Rifles/rifles.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Rifles/rifles.yml @@ -1,10 +1,12 @@ #region WizDen - type: entity id: NFWeaponRifleBarlowsBolt - parent: [ BaseC4Contraband, NFBaseWeaponRifleChamber30, NFBaseWeaponFrameRifleSteelbolt, BaseGunMelee, BaseC1Contraband ] + parent: [ BaseC1Contraband, NFBaseWeaponRifleChamber30, NFBaseWeaponFrameRifleSteelbolt, BaseGunMelee ] name: Barlows bolt-action rifle # Renamed: real brand name description: A weapon for hunting, or endless trench warfare. Equipped with bayonet. components: + - type: Redeemable + preset: SyndieLvl1 - type: Sprite sprite: Objects/Weapons/Guns/Snipers/bolt_gun_wood.rsi - type: Clothing @@ -14,10 +16,12 @@ - type: entity id: NFWeaponRifleMusket - parent: [ NFBaseWeaponRifleChamber60, NFBaseWeaponFrameRifleSteelbolt, BaseC1Contraband ] + parent: [ BaseC1Contraband, NFBaseWeaponRifleChamber60, NFBaseWeaponFrameRifleSteelbolt, ] name: musket description: This should've been in a museum long before you were born. components: + - type: Redeemable + preset: ContraLvl1 - type: Sprite sprite: Objects/Weapons/Guns/Snipers/musket.rsi - type: Clothing diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/SMGs/smgs.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/SMGs/smgs.yml index 41b6de9a1b0..1f8f8d600e3 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/SMGs/smgs.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/SMGs/smgs.yml @@ -1,7 +1,7 @@ #region WizDen - type: entity id: NFWeaponSubMachineGunAtreides - parent: [ NFBaseWeaponSubMachineGunChamber35, NFBaseWeaponFrameSubMachineGunGorlex, BaseC2Contraband ] + parent: [ BaseC2Contraband, NFBaseWeaponSubMachineGunChamber35, NFBaseWeaponFrameSubMachineGunGorlex ] name: Atreides description: |- Pla-ket-ket-ket-ket! An illegal firearm often used by Syndicate agents. @@ -18,7 +18,7 @@ - type: entity # Coyote: Converted to .40 caliber id: NFWeaponSubMachineGunC20r - parent: [ CSBaseWeaponHeavySubMachineGunChamber40, CSBaseWeaponFrameHeavySubMachineGunCybersun, BaseC2Contraband ] + parent: [ BaseC2Contraband, CSBaseWeaponHeavySubMachineGunChamber40, CSBaseWeaponFrameHeavySubMachineGunCybersun ] name: C-20r description: |- An illegal firearm that is often used by the infamous nuclear operatives. @@ -41,7 +41,7 @@ - type: entity # Coyote: Converted to .40 caliber id: NFWeaponSubMachineGunDrozd - parent: [ CSBaseWeaponHeavySubMachineGunChamber40, CSBaseWeaponFrameHeavySubMachineGunNanotrasen, BaseC2Contraband ] + parent: [ BaseC2Contraband, CSBaseWeaponHeavySubMachineGunChamber40, CSBaseWeaponFrameHeavySubMachineGunNanotrasen ] name: Drozd description: A fully automatic SMG. components: &drozdComponents @@ -95,7 +95,7 @@ #region DeltaV - type: entity # Coyote: Converted to .40 caliber id: NFWeaponSubMachineGunTypewriter - parent: [ CSBaseWeaponHeavySubMachineGunChamber40, CSBaseWeaponFrameHeavySubMachineGunFrontierGunsmith, BaseC2Contraband ] + parent: [ BaseC2Contraband, CSBaseWeaponHeavySubMachineGunChamber40, CSBaseWeaponFrameHeavySubMachineGunFrontierGunsmith ] name: Typewriter description: |- A modern take on the classic design used by mobsters throughout space and time. diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/expedition_guns.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/expedition_guns.yml index 67fd15a2bc8..d0531613807 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/expedition_guns.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/expedition_guns.yml @@ -100,72 +100,99 @@ - NFWeaponPistolMk58 categories: [ HideSpawnMenu ] id: NFWeaponPistolMk58Expedition + components: + - type: Redeemable + preset: ContraLvl1 - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier1 - NFWeaponPistolPollockHighCapacityMag - - BaseC1Contraband categories: [ HideSpawnMenu ] id: NFWeaponPistolPollockExpedition + components: + - type: Redeemable + preset: ContraLvl1 - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier1 - NFWeaponPistolUniversal - - BaseC1Contraband categories: [ HideSpawnMenu ] id: NFWeaponPistolUniversalExpedition + components: + - type: Redeemable + preset: ContraLvl1 ## Revolvers - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier1 - NFWeaponRevolverArgenti - - BaseC1Contraband categories: [ HideSpawnMenu ] id: NFWeaponRevolverArgentiExpedition + components: + - type: Redeemable + preset: ContraLvl1 - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier1 - NFWeaponRevolverFaith - - BaseC1Contraband categories: [ HideSpawnMenu ] id: NFWeaponRevolverFaithExpedition + components: + - type: Redeemable + preset: ContraLvl1 - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier1 - NFWeaponRevolverDeckard - - BaseC1Contraband categories: [ HideSpawnMenu ] id: NFWeaponRevolverDeckardExpedition + components: + - type: Redeemable + preset: ExpedNFSDLvl1 - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier1Syndicate - NFWeaponRevolverRitland45 - - BaseC1Contraband categories: [ HideSpawnMenu ] id: NFWeaponRevolverRitland45Expedition + components: + - type: Redeemable + preset: SyndieLvl1 ## Rifles - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier1Syndicate - NFWeaponRifleBarlowsBolt - - BaseC1Contraband categories: [ HideSpawnMenu ] id: NFWeaponRifleBarlowsBoltExpedition + components: + - type: Redeemable + preset: SyndieLvl1 - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier1 - NFWeaponRifleCeremonial - - BaseC1Contraband categories: [ HideSpawnMenu ] id: NFWeaponRifleCeremonialExpedition + components: + - type: Redeemable + preset: ContraLvl1 - type: entity parent: @@ -173,121 +200,171 @@ - NFWeaponRifleRepeater categories: [ HideSpawnMenu ] id: NFWeaponRifleRepeaterExpedition + components: + - type: Redeemable + preset: ContraLvl1 # region Tier 2 ## Pistols - type: entity parent: + - BaseC4Contraband - BaseExpeditionWeaponTier2Syndicate - NFWeaponPistolCobra - - BaseC4Contraband categories: [ HideSpawnMenu ] id: NFWeaponPistolCobraExpedition + components: + - type: Redeemable + preset: SyndieLvl4 - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier2 - NFWeaponPistolN1984 categories: [ HideSpawnMenu ] id: NFWeaponPistolN1984Expedition + components: + - type: Redeemable + preset: ContraLvl1 - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier2Syndicate - NFWeaponPistolViper - - BaseC1Contraband categories: [ HideSpawnMenu ] id: NFWeaponPistolViperExpedition + components: + - type: Redeemable + preset: ContraLvl1 ## Revolvers - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier2 - NFWeaponRevolverFitz - - BaseC1Contraband categories: [ HideSpawnMenu ] id: NFWeaponRevolverFitzExpedition + components: + - type: Redeemable + preset: ContraLvl1 - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier2 - NFWeaponRevolverLucky - - BaseC1Contraband categories: [ HideSpawnMenu ] id: NFWeaponRevolverLuckyExpedition + components: + - type: Redeemable + preset: ContraLvl1 - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier2Pirate - NFWeaponRevolverPirate categories: [ HideSpawnMenu ] id: NFWeaponRevolverPirateExpedition + components: + - type: Redeemable + preset: ExpedFreelancerLvl1 - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier2 - NFWeaponRevolverWard45 - - BaseC1Contraband categories: [ HideSpawnMenu ] id: NFWeaponRevolverWard45Expedition + components: + - type: Redeemable + preset: ContraLvl1 ## Shotguns - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier2 - NFWeaponShotgunKammerer - - BaseC1Contraband categories: [ HideSpawnMenu ] id: NFWeaponShotgunKammererExpedition + components: + - type: Redeemable + preset: ContraLvl1 ## SMGs - type: entity parent: + - BaseC2Contraband - BaseExpeditionWeaponTier2Syndicate - NFWeaponSubMachineGunC20r - - BaseC2Contraband categories: [ HideSpawnMenu ] id: NFWeaponSubMachineGunC20rExpedition + components: + - type: Redeemable + preset: SyndieLvl2 ## Assault Rifles - type: entity parent: + - BaseC2Contraband - BaseExpeditionWeaponTier2 - NFWeaponRifleAssaultNovaliteC1 categories: [ HideSpawnMenu ] id: NFWeaponRifleAssaultNovaliteC1Expedition + components: + - type: Redeemable + preset: ContraLvl2 - type: entity parent: + - BaseC2Contraband - BaseExpeditionWeaponTier2 - NFWeaponRifleAssaultJackdaw categories: [ HideSpawnMenu ] id: NFWeaponRifleAssaultJackdawExpedition + components: + - type: Redeemable + preset: ContraLvl2 - type: entity parent: + - BaseC2Contraband - BaseExpeditionWeaponTier2 - NFWeaponRifleAssaultGestio categories: [ HideSpawnMenu ] id: NFWeaponRifleAssaultGestioExpedition + components: + - type: Redeemable + preset: ContraLvl2 ## Rifles - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier2 - NFWeaponRifleSVS - - BaseC1Contraband categories: [ HideSpawnMenu ] id: NFWeaponRifleSVSExpedition + components: + - type: Redeemable + preset: ContraLvl1 ## Energy - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier2 - NFWeaponEnergyPistolLaser - - BaseC1Contraband categories: [ HideSpawnMenu ] id: NFWeaponEnergyPistolLaserExpedition + components: + - type: Redeemable + preset: ContraLvl1 # region Tier 3 ## Assault Rifles @@ -297,31 +374,43 @@ - NFWeaponRifleAssaultLecter categories: [ HideSpawnMenu ] id: NFWeaponRifleAssaultLecterExpedition + components: + - type: Redeemable + preset: ExpedNFSDLvl2 - type: entity parent: + - BaseC2Contraband - BaseExpeditionWeaponTier3Syndicate - NFWeaponRifleAssaultM90GrenadeLauncher - - BaseC2Contraband categories: [ HideSpawnMenu ] id: NFWeaponRifleAssaultM90GrenadeLauncherExpedition + components: + - type: Redeemable + preset: SyndieLvl2 ## Snipers - type: entity parent: + - BaseC3Contraband - BaseExpeditionWeaponTier3Syndicate - NFWeaponRifleSniperHristov - - BaseC3Contraband categories: [ HideSpawnMenu ] id: NFWeaponRifleSniperHristovExpedition + components: + - type: Redeemable + preset: SyndieLvl3 - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier3Pirate - NFWeaponRifleMusket - - BaseC1Contraband categories: [ HideSpawnMenu ] id: NFWeaponRifleMusketExpedition + components: + - type: Redeemable + preset: ContraLvl1 ## SMGs - type: entity @@ -330,6 +419,9 @@ - NFWeaponSubMachineGunWt550 categories: [ HideSpawnMenu ] id: NFWeaponSubMachineGunWt550Expedition + components: + - type: Redeemable + preset: ExpedNFSDLvl2 - type: entity parent: @@ -337,6 +429,9 @@ - NFWeaponSubMachineGunDrozd categories: [ HideSpawnMenu ] id: NFWeaponSubMachineGunDrozdExpedition + components: + - type: Redeemable + preset: ContraLvl2 - type: entity parent: @@ -344,6 +439,9 @@ - NFWeaponSubMachineGunAtreides categories: [ HideSpawnMenu ] id: NFWeaponSubMachineGunAtreidesExpedition + components: + - type: Redeemable + preset: SyndieLvl2 - type: entity parent: @@ -351,42 +449,57 @@ - NFWeaponSubMachineGunTypewriter categories: [ HideSpawnMenu ] id: NFWeaponSubMachineGunTypewriterExpedition + components: + - type: Redeemable + preset: ContraLvl2 ## Energy - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier3 - NFWeaponEnergyPistolLaserSvalinn - - BaseC1Contraband categories: [ HideSpawnMenu ] id: NFWeaponEnergyPistolLaserSvalinnExpedition + components: + - type: Redeemable + preset: ContraLvl1 # region Tier 4 ## Shotguns - type: entity parent: + - BaseC1Contraband - BaseExpeditionWeaponTier4 - NFWeaponShotgunEnforcer - - BaseC1Contraband categories: [ HideSpawnMenu ] id: NFWeaponShotgunEnforcerExpedition + components: + - type: Redeemable + preset: ContraLvl1 - type: entity parent: + - BaseC3Contraband - BaseExpeditionWeaponTier4Syndicate - NFWeaponShotgunBulldog - - BaseC3Contraband categories: [ HideSpawnMenu ] id: NFWeaponShotgunBulldogExpedition + components: + - type: Redeemable + preset: SyndieLvl3 ## Rifles - type: entity parent: + - BaseC2Contraband - BaseExpeditionWeaponTier4Syndicate - NFWeaponRifleAssaultSm - - BaseC2Contraband categories: [ HideSpawnMenu ] id: NFWeaponRifleAssaultSmExpedition + components: + - type: Redeemable + preset: SyndieLvl2 - type: entity parent: @@ -394,6 +507,9 @@ - NFWeaponRifleAssaultVulcan categories: [ HideSpawnMenu ] id: NFWeaponRifleAssaultVulcanExpedition + components: + - type: Redeemable + preset: ExpedNFSDLvl2 ## Energy - type: entity @@ -402,6 +518,9 @@ - NFWeaponEnergyRifleCarbine categories: [ HideSpawnMenu ] id: NFWeaponEnergyRifleCarbineExpedition + components: + - type: Redeemable + preset: ContraLvl1 - type: entity parent: @@ -409,14 +528,20 @@ - NFWeaponEnergyPistolLaserAdvanced categories: [ HideSpawnMenu ] id: NFWeaponEnergyPistolLaserAdvancedExpedition + components: + - type: Redeemable + preset: ContraLvl1 - type: entity parent: + - BaseC2Contraband - BaseExpeditionWeaponTier4 - NFWeaponEnergyPistolLaserAntique - - BaseC2Contraband categories: [ HideSpawnMenu ] id: NFWeaponEnergyPistolLaserAntiqueExpedition + components: + - type: Redeemable + preset: ContraLvl2 # region Tier 5 # Turrets @@ -426,6 +551,9 @@ - WeaponTurretAsmgtHostileUniversallyPacked categories: [ HideSpawnMenu ] id: WeaponTurretAsmgtHostileUniversallyPackedExpedition + components: + - type: Redeemable + preset: ContraLvl2 # Launchers - type: entity @@ -434,53 +562,74 @@ - NFWeaponLauncherRocket categories: [ HideSpawnMenu ] id: NFWeaponLauncherRocketExpedition + components: + - type: Redeemable + preset: ContraLvl3 - type: entity parent: + - BaseC3Contraband - BaseExpeditionWeaponTier5Syndicate - NFWeaponLauncherChinaLake - - BaseC3Contraband categories: [ HideSpawnMenu ] id: NFWeaponLauncherChinaLakeExpedition + components: + - type: Redeemable + preset: SyndieLvl3 # LMGs - type: entity parent: + - BaseC3Contraband - BaseExpeditionWeaponTier5Syndicate - NFWeaponLightMachineGunL6 - - BaseC3Contraband categories: [ HideSpawnMenu ] id: NFWeaponLightMachineGunL6Expedition + components: + - type: Redeemable + preset: SyndieLvl3 # Energy - type: entity parent: + - BaseC2Contraband - BaseExpeditionWeaponTier5 - NFWeaponEnergySubMachineGunDeltaV - - BaseC2Contraband categories: [ HideSpawnMenu ] id: NFWeaponEnergySubMachineGunDeltaVExpedition + components: + - type: Redeemable + preset: ExpedNFSDLvl2 - type: entity parent: + - BaseC4Contraband - BaseExpeditionWeaponTier5 - NFWeaponEnergyRifleSniperXrayCannon - - BaseC4Contraband categories: [ HideSpawnMenu ] id: NFWeaponEnergyRifleSniperXrayCannonExpedition + components: + - type: Redeemable + preset: ContraLvl4 - type: entity parent: + - BaseC2Contraband - BaseExpeditionWeaponTier5 - NFWeaponEnergyRifleSniperCannon - - BaseC2Contraband categories: [ HideSpawnMenu ] id: NFWeaponEnergyRifleSniperCannonExpedition + components: + - type: Redeemable + preset: ContraLvl2 - type: entity parent: + - BaseC2Contraband - BaseExpeditionWeaponTier5 - NFWeaponEnergyRifleTemperature - - BaseC2Contraband categories: [ HideSpawnMenu ] id: NFWeaponEnergyRifleTemperatureExpedition + components: + - type: Redeemable + preset: ContraLvl2 diff --git a/Resources/Prototypes/_NF/Entities/Objects/base_contraband.yml b/Resources/Prototypes/_NF/Entities/Objects/base_contraband.yml index cc1590d5f96..42aa9e2f7b3 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/base_contraband.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/base_contraband.yml @@ -68,9 +68,10 @@ abstract: true components: - type: Contraband + severity: Class2Expedition turnInValues: &noFUCs - FrontierUplinkCoin: 0 - Doubloon: 0 + FrontierUplinkCoin: 1 + Doubloon: 1 # endregion # region Class 3 Objects @@ -99,7 +100,10 @@ abstract: true components: - type: Contraband - turnInValues: *oneFUC + severity: Class3Expedition + turnInValues: + FrontierUplinkCoin: 2 + Doubloon: 2 - type: entity parent: BaseC3ContrabandUnredeemable