diff --git a/Content.Client/Store/Ui/StoreBoundUserInterface.cs b/Content.Client/Store/Ui/StoreBoundUserInterface.cs index d8236604bf..2d430b8d38 100644 --- a/Content.Client/Store/Ui/StoreBoundUserInterface.cs +++ b/Content.Client/Store/Ui/StoreBoundUserInterface.cs @@ -30,6 +30,7 @@ public sealed class StoreBoundUserInterface : BoundUserInterface base.Open(); _menu = this.CreateWindow(); + _menu.Owner = Owner; // DeltaV if (EntMan.TryGetComponent(Owner, out var store)) _menu.Title = Loc.GetString(store.Name); diff --git a/Content.Client/Store/Ui/StoreListingControl.xaml.cs b/Content.Client/Store/Ui/StoreListingControl.xaml.cs index 20629104ac..65e3828c8c 100644 --- a/Content.Client/Store/Ui/StoreListingControl.xaml.cs +++ b/Content.Client/Store/Ui/StoreListingControl.xaml.cs @@ -1,4 +1,5 @@ using Content.Client.GameTicking.Managers; +using Content.Shared._DV.Reputation; // DeltaV using Content.Shared.Store; using Robust.Client.AutoGenerated; using Robust.Client.Graphics; @@ -16,23 +17,28 @@ public sealed partial class StoreListingControl : Control [Dependency] private readonly IEntityManager _entity = default!; [Dependency] private readonly IGameTiming _timing = default!; private readonly ClientGameTicker _ticker; + private readonly ReputationSystem _reputation; // DeltaV private readonly ListingDataWithCostModifiers _data; private readonly bool _hasBalance; private readonly string _price; private readonly string _discount; - public StoreListingControl(ListingDataWithCostModifiers data, string price, string discount, bool hasBalance, Texture? texture = null) + private readonly EntityUid _owner; // DeltaV + // DeltaV - added owner + public StoreListingControl(ListingDataWithCostModifiers data, string price, string discount, bool hasBalance, EntityUid owner, Texture? texture = null) { IoCManager.InjectDependencies(this); RobustXamlLoader.Load(this); _ticker = _entity.System(); + _reputation = _entity.System(); _data = data; _hasBalance = hasBalance; _price = price; _discount = discount; + _owner = owner; StoreItemName.Text = ListingLocalisationHelpers.GetLocalisedNameOrEntityName(_data, _prototype); StoreItemDescription.SetMessage(ListingLocalisationHelpers.GetLocalisedDescriptionOrEntityDescription(_data, _prototype)); @@ -52,6 +58,11 @@ public sealed partial class StoreListingControl : Control if (_data.RestockTime > stationTime) return false; + // Begin DeltaV Additions - Traitor reputation + if (!_reputation.CanStorePurchase(_owner, _data.Reputation)) + return false; + // End DeltaV Additions + return true; } @@ -63,6 +74,12 @@ public sealed partial class StoreListingControl : Control var timeLeftToBuy = stationTime - _data.RestockTime; StoreItemBuyButton.Text = timeLeftToBuy.Duration().ToString(@"mm\:ss"); } + // Begin DeltaV Additions - Traitor reputation + else if (!_reputation.CanStorePurchase(_owner, _data.Reputation)) + { + StoreItemBuyButton.Text = Loc.GetString("store-reputation-locked", ("price", _price), ("reputation", _data.Reputation ?? 0)); + } + // End DeltaV Additions else { DiscountSubText.Text = _discount; diff --git a/Content.Client/Store/Ui/StoreMenu.xaml.cs b/Content.Client/Store/Ui/StoreMenu.xaml.cs index 260bcfe4f2..38709b3b4e 100644 --- a/Content.Client/Store/Ui/StoreMenu.xaml.cs +++ b/Content.Client/Store/Ui/StoreMenu.xaml.cs @@ -30,6 +30,7 @@ public sealed partial class StoreMenu : DefaultWindow public Dictionary, FixedPoint2> Balance = new(); public string CurrentCategory = string.Empty; + public EntityUid Owner; // DeltaV private List _cachedListings = new(); @@ -151,7 +152,7 @@ public sealed partial class StoreMenu : DefaultWindow var listingInStock = GetListingPriceString(listing); var discount = GetDiscountString(listing); - var newListing = new StoreListingControl(listing, listingInStock, discount, hasBalance, texture); + var newListing = new StoreListingControl(listing, listingInStock, discount, hasBalance, Owner, texture); // DeltaV - pass owner newListing.StoreItemBuyButton.OnButtonDown += args => OnListingButtonPressed?.Invoke(args, listing); diff --git a/Content.Server/Store/Systems/StoreSystem.Ui.cs b/Content.Server/Store/Systems/StoreSystem.Ui.cs index 94299dd89e..125d96d553 100644 --- a/Content.Server/Store/Systems/StoreSystem.Ui.cs +++ b/Content.Server/Store/Systems/StoreSystem.Ui.cs @@ -3,6 +3,7 @@ using Content.Server.Actions; using Content.Server.Administration.Logs; using Content.Server.Stack; using Content.Server.Store.Components; +using Content.Shared._DV.Reputation; // DeltaV using Content.Shared.Actions; using Content.Shared.Database; using Content.Shared.FixedPoint; @@ -26,6 +27,7 @@ public sealed partial class StoreSystem [Dependency] private readonly ActionsSystem _actions = default!; [Dependency] private readonly ActionContainerSystem _actionContainer = default!; [Dependency] private readonly ActionUpgradeSystem _actionUpgrade = default!; + [Dependency] private readonly ReputationSystem _reputation = default!; // DeltaV [Dependency] private readonly SharedMindSystem _mind = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly StackSystem _stack = default!; @@ -143,6 +145,11 @@ public sealed partial class StoreSystem if (!ListingHasCategory(listing, component.Categories)) return; + // Begin DeltaV Additions - Check rep incase of malf clients + if (!_reputation.CanStorePurchase(uid, listing.Reputation)) + return; + // End DeltaV Additions + //condition checking because why not if (listing.Conditions != null) { diff --git a/Content.Server/_DV/Store/Conditions/ReputationCondition.cs b/Content.Server/_DV/Store/Conditions/ReputationCondition.cs deleted file mode 100644 index 955c04a44c..0000000000 --- a/Content.Server/_DV/Store/Conditions/ReputationCondition.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Content.Shared._DV.Reputation; -using Content.Shared.Store; - -namespace Content.Server._DV.Store.Conditions; - -/// -/// Requires that an uplink using has enough reputation. -/// This is ignored for nukie uplinks and surplus crates. -/// -public sealed partial class ReputationCondition : ListingCondition -{ - /// - /// The required reputation for traitors. - /// This is unused for nukie uplinks. - /// - [DataField(required: true)] - public int Reputation; - - public override bool Condition(ListingConditionArgs args) - { - if (!args.EntityManager.TryGetComponent(args.StoreEntity, out var store)) - return true; // nukie uplink or a surplus - - var reputation = args.EntityManager.System(); - if (reputation.GetMindReputation(store.Mind) is not {} rep) - return false; // uplink implant in non-traitor, no epic goodies allowed - - return rep >= Reputation; - } -} diff --git a/Content.Shared/Store/ListingPrototype.cs b/Content.Shared/Store/ListingPrototype.cs index b68c5ffa0d..e9ebf417c9 100644 --- a/Content.Shared/Store/ListingPrototype.cs +++ b/Content.Shared/Store/ListingPrototype.cs @@ -38,6 +38,7 @@ public partial class ListingData : IEquatable other.ID, other.Categories, other.OriginalCost, + other.Reputation, // DeltaV other.RestockTime, other.DiscountDownTo, other.DisableRefund @@ -63,6 +64,7 @@ public partial class ListingData : IEquatable string id, HashSet> categories, IReadOnlyDictionary, FixedPoint2> originalCost, + int? reputation, // DeltaV TimeSpan restockTime, Dictionary, FixedPoint2> dataDiscountDownTo, bool disableRefund @@ -84,6 +86,7 @@ public partial class ListingData : IEquatable ID = id; Categories = categories.ToHashSet(); OriginalCost = originalCost; + Reputation = reputation; // DeltaV RestockTime = restockTime; DiscountDownTo = new Dictionary, FixedPoint2>(dataDiscountDownTo); DisableRefund = disableRefund; @@ -185,6 +188,13 @@ public partial class ListingData : IEquatable [DataField] public int PurchaseAmount; + /// + /// DeltaV - Reputation required for traitors to purchase this. + /// This is ignored for non-traitor stores. + /// + [DataField] + public int? Reputation; + /// /// Used to delay purchase of some items. /// @@ -215,6 +225,7 @@ public partial class ListingData : IEquatable ProductEntity != listing.ProductEntity || ProductAction != listing.ProductAction || ProductEvent?.GetType() != listing.ProductEvent?.GetType() || + Reputation != listing.Reputation || // DeltaV RestockTime != listing.RestockTime) return false; @@ -295,6 +306,7 @@ public sealed partial class ListingDataWithCostModifiers : ListingData listingData.ID, listingData.Categories, listingData.OriginalCost, + listingData.Reputation, // DeltaV listingData.RestockTime, listingData.DiscountDownTo, listingData.DisableRefund diff --git a/Content.Shared/_DV/Reputation/ReputationSystem.cs b/Content.Shared/_DV/Reputation/ReputationSystem.cs index 8cfeb47c3a..1ba1bf28eb 100644 --- a/Content.Shared/_DV/Reputation/ReputationSystem.cs +++ b/Content.Shared/_DV/Reputation/ReputationSystem.cs @@ -356,6 +356,23 @@ public sealed class ReputationSystem : EntitySystem return GetMindReputation(ent.Comp.Mind); } + /// + /// Returns true if a store is allowed to purchase an item with some reputation requirement. + /// + public bool CanStorePurchase(EntityUid uid, int? needed) + { + if (needed is not { } rep) + return true; // listing doesn't want reputation + + if (!TryComp(uid, out var comp)) + return true; // nukie uplink or surplus + + if (GetStoreReputation((uid, comp)) is not { } reputation) + return false; // uplink implant in non-traitor, no epic gamer loot + + return reputation >= rep; + } + public void SetStoreMind(Entity ent, EntityUid? mind) { if (ent.Comp.Mind == mind) diff --git a/Resources/Locale/en-US/_DV/store/reputation.ftl b/Resources/Locale/en-US/_DV/store/reputation.ftl new file mode 100644 index 0000000000..63e646200f --- /dev/null +++ b/Resources/Locale/en-US/_DV/store/reputation.ftl @@ -0,0 +1 @@ +store-reputation-locked = {$price} | {$reputation} REP diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index e0daaee2d6..c8fef39a35 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -13,9 +13,7 @@ Telecrystal: 4 # DeltaV - was 3 categories: - UplinkWeaponry - conditions: # DeltaV - Sidearm reputation - - !type:ReputationCondition - reputation: 40 + reputation: 40 # DeltaV - Sidearm reputation - type: listing id: UplinkRevolverPython @@ -29,9 +27,7 @@ Telecrystal: 6 # DeltaV - was 4 categories: - UplinkWeaponry - conditions: # DeltaV - Sidearm reputation - - !type:ReputationCondition - reputation: 40 + reputation: 40 # DeltaV - Sidearm reputation # Inbuilt suppressor so it's sneaky + more expensive. - type: listing @@ -46,9 +42,7 @@ Telecrystal: 6 # DeltaV - was 4 categories: - UplinkWeaponry - conditions: # DeltaV - Sidearm reputation - - !type:ReputationCondition - reputation: 45 + reputation: 45 # DeltaV - Sidearm reputation # Poor accuracy, slow to fire, cheap option - type: listing @@ -60,9 +54,6 @@ Telecrystal: 1 categories: - UplinkWeaponry - conditions: # DeltaV - Long arm reputation - - !type:ReputationCondition - reputation: 60 - type: listing id: UplinkEsword @@ -77,9 +68,7 @@ Telecrystal: 8 categories: - UplinkWeaponry - conditions: # DeltaV - Melee weapon reputation - - !type:ReputationCondition - reputation: 30 + reputation: 30 # DeltaV - Melee weapons reputation - type: listing id: UplinkEnergyDagger @@ -94,9 +83,7 @@ Telecrystal: 2 categories: - UplinkWeaponry - conditions: # DeltaV - Melee weapon reputation - - !type:ReputationCondition - reputation: 20 + reputation: 10 # DeltaV - Melee weapons reputation, smaller - type: listing id: UplinkThrowingKnivesKit @@ -111,9 +98,7 @@ Telecrystal: 4 # DeltaV - was 6 categories: - UplinkWeaponry - conditions: # DeltaV - Melee weapons reputation - - !type:ReputationCondition - reputation: 20 + reputation: 20 # DeltaV - Melee weapons reputation - type: listing id: UplinkGlovesNorthStar @@ -127,9 +112,7 @@ Telecrystal: 8 categories: - UplinkWeaponry - conditions: # DeltaV - Melee weapons reputation - - !type:ReputationCondition - reputation: 30 + reputation: 30 # DeltaV - Melee weapons reputation - type: listing id: UplinkDisposableTurret @@ -143,13 +126,12 @@ Telecrystal: 6 categories: - UplinkWeaponry + reputation: 40 # DeltaV - Sidearms(???) reputation conditions: - !type:StoreWhitelistCondition blacklist: tags: - NukeOpsUplink - - !type:ReputationCondition # DeltaV - Long arms(???) reputation - reputation: 60 - type: listing id: UplinkEshield @@ -164,13 +146,12 @@ Telecrystal: 16 # DeltaV - Was 8 categories: - UplinkWeaponry + reputation: 40 # DeltaV - Sidearms(?????) reputation conditions: - !type:StoreWhitelistCondition whitelist: tags: - NukeOpsUplink - - !type:ReputationCondition # DeltaV - Sidearms(?????) reputation - reputation: 40 - type: listing id: UplinkSniperBundle @@ -185,9 +166,7 @@ Telecrystal: 12 categories: - UplinkWeaponry - conditions: # DeltaV - Long Arms reputation - - !type:ReputationCondition - reputation: 60 + reputation: 60 # DeltaV - Long Arms reputation - type: listing id: UplinkC20RBundle @@ -202,9 +181,7 @@ Telecrystal: 20 # DeltaV - was 17 categories: - UplinkWeaponry - conditions: # DeltaV - Long Arms reputation - - !type:ReputationCondition - reputation: 60 + reputation: 60 # DeltaV - Long Arms reputation - type: listing id: UplinkBulldogBundle @@ -219,9 +196,7 @@ Telecrystal: 22 # DeltaV - was 20 categories: - UplinkWeaponry - conditions: # DeltaV - Long Arms reputation - - !type:ReputationCondition - reputation: 60 + reputation: 60 # DeltaV - Long Arms reputation - type: listing id: UplinkGrenadeLauncherBundle @@ -236,9 +211,7 @@ Telecrystal: 40 # DeltaV - Was 25 categories: - UplinkWeaponry - conditions: # DeltaV - High Power Weapons reputation - - !type:ReputationCondition - reputation: 95 + reputation: 95 # DeltaV - High Power Weapons reputation - type: listing id: UplinkL6SawBundle @@ -253,9 +226,7 @@ Telecrystal: 28 # DeltaV - Was 12 categories: - UplinkWeaponry - conditions: # DeltaV - High Power Weapons reputation - - !type:ReputationCondition - reputation: 80 + reputation: 80 # DeltaV - High Power Weapons reputation # Explosives @@ -271,9 +242,7 @@ Telecrystal: 2 # DeltaV - was 4 categories: - UplinkExplosives - conditions: # DeltaV - Explosives reputation - - !type:ReputationCondition - reputation: 40 + reputation: 40 # DeltaV - Explosives reputation - type: listing id: UplinkExplosiveGrenadeFlash @@ -307,9 +276,7 @@ Telecrystal: 6 categories: - UplinkExplosives - conditions: # DeltaV - Explosives reputation - - !type:ReputationCondition - reputation: 50 + reputation: 50 # DeltaV - Explosives reputation - type: listing id: UplinkSingularityGrenade @@ -323,9 +290,7 @@ Telecrystal: 6 # DeltaV - was 2, this is explosive now categories: - UplinkExplosives # DeltaV - this is explosive here - conditions: # DeltaV - Explosives reputation - - !type:ReputationCondition - reputation: 55 + reputation: 55 # DeltaV - Explosives reputation - type: listing id: UplinkWhiteholeGrenade @@ -339,9 +304,7 @@ Telecrystal: 2 categories: - UplinkDisruption - conditions: # DeltaV - Explosives reputation - - !type:ReputationCondition - reputation: 40 + reputation: 40 # DeltaV - Explosives reputation - type: listing id: UplinkGrenadePenguin @@ -355,13 +318,12 @@ Telecrystal: 6 # DeltaV - was 5 categories: - UplinkExplosives + reputation: 40 # DeltaV - Explosives reputation conditions: - !type:BuyerWhitelistCondition blacklist: components: - SurplusBundle - - !type:ReputationCondition # DeltaV - Explosives reputation - reputation: 40 - type: listing id: UplinkC4 @@ -375,9 +337,7 @@ Telecrystal: 2 categories: - UplinkExplosives - conditions: # DeltaV - Explosives reputation - - !type:ReputationCondition - reputation: 40 + reputation: 20 # DeltaV - Explosives reputation, less so you can sabotage things - type: listing id: UplinkGrenadierRig @@ -409,9 +369,7 @@ Telecrystal: 12 #you're buying bulk so its a 25% discount, so no additional random discount over it categories: - UplinkExplosives - conditions: # DeltaV - More Powerful Explosions reputation - - !type:ReputationCondition - reputation: 65 + reputation: 65 # DeltaV - More Powerful Explosions reputation - type: listing id: UplinkEmpGrenade @@ -425,9 +383,7 @@ Telecrystal: 2 categories: - UplinkExplosives - conditions: # DeltaV - Explosives reputation - - !type:ReputationCondition - reputation: 40 + reputation: 10 # DeltaV - type: listing id: UplinkExplodingPen @@ -442,9 +398,7 @@ Telecrystal: 3 # DeltaV - was 4 categories: - UplinkExplosives - conditions: # DeltaV - Explosives reputation - - !type:ReputationCondition - reputation: 40 + reputation: 40 # DeltaV - Explosives reputation - type: listing id: UplinkSyndicateBomb @@ -456,13 +410,12 @@ categories: - UplinkExplosives restockTime: 1800 + reputation: 75 # DeltaV - More Powerful Explosions reputation conditions: - !type:StoreWhitelistCondition blacklist: tags: - NukeOpsUplink - - !type:ReputationCondition # DeltaV - More Powerful Explosions reputation - reputation: 75 - type: listing id: UplinkSyndicateBombNukie @@ -491,9 +444,7 @@ Telecrystal: 6 # DeltaV - was 8 categories: - UplinkExplosives - conditions: # DeltaV - More Powerful Explosions reputation - - !type:ReputationCondition - reputation: 60 + reputation: 45 # DeltaV - Explosives reputation - type: listing id: UplinkGrenadeShrapnel @@ -507,9 +458,7 @@ Telecrystal: 3 # DeltaV - was 4 categories: - UplinkExplosives - conditions: # DeltaV - Explosives reputation - - !type:ReputationCondition - reputation: 45 + reputation: 45 # DeltaV - Explosives reputation - type: listing id: UplinkGrenadeIncendiary @@ -523,9 +472,7 @@ Telecrystal: 4 categories: - UplinkExplosives - conditions: # DeltaV - Explosives reputation - - !type:ReputationCondition - reputation: 45 + reputation: 45 # DeltaV - Explosives reputation - type: listing id: UplinkEmpKit @@ -537,11 +484,9 @@ Telecrystal: 3 # DeltaV - was 4 cost: Telecrystal: 5 # DeltaV - was 6 + reputation: 40 # DeltaV - Explosives reputation categories: - UplinkExplosives - conditions: # DeltaV - Explosives reputation - - !type:ReputationCondition - reputation: 50 # Ammo @@ -648,9 +593,7 @@ Telecrystal: 8 # DeltaV - was 6 categories: - UplinkChemicals - conditions: # DeltaV - Chemicals reputation - - !type:ReputationCondition - reputation: 25 + reputation: 25 # DeltaV - Chemicals reputation - type: listing id: UplinkHypoDart @@ -665,9 +608,7 @@ Telecrystal: 1 # DeltaV - was 2 categories: - UplinkChemicals - conditions: # DeltaV - Chemicals reputation - - !type:ReputationCondition - reputation: 20 + reputation: 20 # DeltaV - Chemicals reputation - type: listing id: UplinkChemistryKitBundle @@ -682,9 +623,7 @@ Telecrystal: 4 categories: - UplinkChemicals - conditions: # DeltaV - Chemicals reputation - - !type:ReputationCondition - reputation: 20 + reputation: 20 # DeltaV - Chemicals reputation - type: listing id: UplinkZombieBundle @@ -718,9 +657,7 @@ Telecrystal: 6 categories: - UplinkChemicals - conditions: # DeltaV - Chemicals reputation - - !type:ReputationCondition - reputation: 25 + reputation: 25 # DeltaV - Chemicals reputation - type: listing id: UplinkCombatMedkit @@ -734,9 +671,7 @@ Telecrystal: 5 categories: - UplinkChemicals - conditions: # DeltaV - Chemicals reputation - - !type:ReputationCondition - reputation: 30 + reputation: 20 # DeltaV - Chemicals reputation - type: listing id: UplinkCombatMedipen @@ -750,9 +685,7 @@ Telecrystal: 3 # DeltaV - was 4 categories: - UplinkChemicals - conditions: # DeltaV - Chemicals reputation - - !type:ReputationCondition - reputation: 25 + reputation: 20 # DeltaV - Chemicals reputation - type: listing id: UplinkStimpack @@ -766,9 +699,7 @@ Telecrystal: 3 # DeltaV - was 4 categories: - UplinkChemicals - conditions: # DeltaV - Chemicals reputation - - !type:ReputationCondition - reputation: 20 + reputation: 20 # DeltaV - Chemicals reputation - type: listing id: UplinkStimkit @@ -782,9 +713,7 @@ Telecrystal: 10 # DeltaV - was 12 categories: - UplinkChemicals - conditions: # DeltaV - Chemicals reputation - - !type:ReputationCondition - reputation: 35 + reputation: 35 # DeltaV - Chemicals reputation - type: listing id: UplinkCigarettes @@ -891,9 +820,7 @@ Telecrystal: 1 categories: - UplinkDeception - conditions: # DeltaV - Melee Weapons reputation - - !type:ReputationCondition - reputation: 20 + reputation: 5 # DeltaV - Melee weapon but also its a damn pen - type: listing id: UplinkDecoyDisk @@ -930,9 +857,7 @@ Telecrystal: 4 categories: - UplinkDeception - conditions: # DeltaV - Money is expensive? no bribing fresh out of cryo - - !type:ReputationCondition - reputation: 15 + reputation: 15 # DeltaV - Money is expensive? no bribing fresh out of cryo # - type: listing # id: UplinkGigacancerScanner @@ -970,9 +895,7 @@ Telecrystal: 3 # DeltaV - was 4 categories: - UplinkDeception - conditions: # DeltaV - Explosives, to not have fake syndie bombs 5 minutes into the round - - !type:ReputationCondition - reputation: 40 + reputation: 40 # DeltaV - Explosives, to not have fake syndie bombs 5 minutes into the round # Disruption @@ -1002,9 +925,7 @@ Telecrystal: 4 # DeltaV - was 5 categories: - UplinkDisruption - conditions: # DeltaV - it's iconic... - - !type:ReputationCondition - reputation: 20 + reputation: 10 # DeltaV - it's iconic... - type: listing id: UplinkRadioJammer @@ -1031,9 +952,7 @@ Telecrystal: 5 categories: - UplinkDisruption - conditions: # DeltaV - Side Arms reputation - - !type:ReputationCondition - reputation: 40 + reputation: 40 # DeltaV - Side Arms reputation - type: listing id: UplinkSyndicateMartyrModule @@ -1048,9 +967,7 @@ Telecrystal: 4 categories: - UplinkDisruption - conditions: # DeltaV - More Powerful Explosions reputation - - !type:ReputationCondition - reputation: 60 + reputation: 60 # DeltaV - More Powerful Explosions reputation - type: listing id: UplinkSoapSyndie @@ -1074,9 +991,7 @@ Telecrystal: 2 categories: - UplinkDisruption - conditions: # DeltaV - do 1 task before you get super soap - - !type:ReputationCondition - reputation: 5 + reputation: 5 # DeltaV - do 1 task before you get super soap - type: listing id: UplinkToolbox @@ -1130,13 +1045,12 @@ Telecrystal: 5 # DeltaV - was 8 categories: - UplinkDisruption + reputation: 50 # DeltaV - Explosives reputation conditions: - !type:BuyerWhitelistCondition blacklist: components: - SurplusBundle - - !type:ReputationCondition # DeltaV - Explosives reputation - reputation: 50 - type: listing id: UplinkAntimovCircuitBoard @@ -1150,13 +1064,12 @@ Telecrystal: 7 # DeltaV: was 14 categories: - UplinkDisruption + reputation: 80 # DeltaV - Station Destructive Items reputation conditions: - !type:StoreWhitelistCondition blacklist: tags: - NukeOpsUplink - - !type:ReputationCondition # DeltaV - Station Destructive Items reputation - reputation: 80 - type: listing id: UplinkNukieAntimovCircuitBoard @@ -1226,9 +1139,7 @@ Telecrystal: 16 # DeltaV - was 12 categories: - UplinkDisruption - conditions: # DeltaV - Station Destructive Items reputation - - !type:ReputationCondition - reputation: 85 + reputation: 85 # DeltaV - Station Destructive Items reputation # DeltaV: disabled in favour of observation kit #- type: listing @@ -1261,8 +1172,7 @@ blacklist: tags: - NukeOpsUplink - - !type:ReputationCondition # DeltaV - Allies reputation - reputation: 50 + reputation: 50 # DeltaV - Allies reputation - type: listing id: UplinkReinforcementRadioSyndicate @@ -1277,13 +1187,12 @@ Telecrystal: 10 # DeltaV - was 14 categories: - UplinkAllies + reputation: 45 # DeltaV - Allies reputation conditions: - !type:StoreWhitelistCondition blacklist: tags: - NukeOpsUplink - - !type:ReputationCondition # DeltaV - Allies reputation - reputation: 45 - type: listing id: UplinkReinforcementRadioSyndicateNukeops # Version for Nukeops that spawns another nuclear operative without the uplink. @@ -1330,13 +1239,12 @@ Telecrystal: 6 categories: - UplinkAllies + reputation: 30 # DeltaV - Allies reputation, but it's a monkey so less conditions: - !type:StoreWhitelistCondition blacklist: tags: - NukeOpsUplink - - !type:ReputationCondition # DeltaV - Allies reputation but its a monkey so less - reputation: 30 - type: listing id: UplinkReinforcementRadioSyndicateAncestorNukeops # Version for Nukeops that spawns a syndicate monkey with the NukeOperative component. @@ -1388,9 +1296,7 @@ # Telecrystal: 6 # categories: # - UplinkAllies -# conditions: # DeltaV - Allies reputation -# - !type:ReputationCondition -# reputation: 40 +# reputation: 40 # DeltaV - Allies reputation - type: listing id: UplinkSyndicatePersonalAI @@ -1471,9 +1377,7 @@ Telecrystal: 5 categories: - UplinkImplants - conditions: # DeltaV - You don't need this for stealing shoes... - - !type:ReputationCondition - reputation: 25 + reputation: 25 # DeltaV - You don't need this for stealing shoes... - type: listing id: UplinkEmpImplanter @@ -1488,9 +1392,7 @@ Telecrystal: 2 categories: - UplinkImplants - conditions: # DeltaV - Melee Weapons reputation, its melee range - - !type:ReputationCondition - reputation: 25 + reputation: 25 # DeltaV - Melee Weapons reputation, its melee range - type: listing id: UplinkMicroBombImplanter @@ -1542,13 +1444,12 @@ Telecrystal: 3 # DeltaV- Was 4 categories: - UplinkImplants - conditions: - - !type:ReputationCondition # DeltaV - Chemicals reputation - reputation: 20 - # - !type:StoreWhitelistCondition # DeltaV - Allows Death Acidifer for our Syndibros - # whitelist: - # tags: - # - NukeOpsUplink + reputation: 20 # DeltaV - Chemicals reputation + #conditions: # DeltaV - Allows Death Acidfier for our Syndibros + # - !type:StoreWhitelistCondition + # whitelist: + # tags: + # - NukeOpsUplink - type: listing id: UplinkUplinkImplanter # uplink uplink real @@ -1691,9 +1592,7 @@ Telecrystal: 7 # DeltaV - Was 4, 4TC was too cheap for the items power categories: - UplinkWearables - conditions: # DeltaV - They're very strong, shouldn't have it roundstart - - !type:ReputationCondition - reputation: 20 + reputation: 20 # DeltaV - They're very strong, shouldn't have it roundstart - type: listing id: UplinkClothingOuterVestWeb @@ -1707,9 +1606,7 @@ Telecrystal: 3 categories: - UplinkWearables - conditions: # DeltaV - Armour - - !type:ReputationCondition - reputation: 15 + reputation: 15 # DeltaV - Armour - type: listing id: UplinkClothingOuterVestWebElite @@ -1723,6 +1620,7 @@ Telecrystal: 5 categories: - UplinkWearables + reputation: 40 # DeltaV - Armour - type: listing id: UplinkClothingShoesBootsMagSyndie @@ -1751,9 +1649,6 @@ Telecrystal: 1 # DeltaV - was 2 categories: - UplinkWearables - conditions: # DeltaV - Evil EVA suit - - !type:ReputationCondition - reputation: 10 - type: listing id: UplinkHardsuitCarp @@ -1768,9 +1663,7 @@ Telecrystal: 3 # DeltaV - was 4 categories: - UplinkWearables - conditions: # DeltaV - Funny EVA suit - - !type:ReputationCondition - reputation: 15 + reputation: 15 # DeltaV - Funny EVA suit - type: listing id: UplinkHardsuitSyndie @@ -1785,9 +1678,7 @@ Telecrystal: 8 categories: - UplinkWearables - conditions: # DeltaV - Hardsuits reputation - - !type:ReputationCondition - reputation: 65 + reputation: 65 # DeltaV - Hardsuits reputation - type: listing id: UplinkClothingOuterArmorRaid @@ -1934,9 +1825,7 @@ Telecrystal: 26 categories: - UplinkPointless - conditions: # DeltaV - Station Destructive Items... - - !type:ReputationCondition - reputation: 100 + reputation: 100 # DeltaV - Station Destructive Items... - type: listing id: UplinkOutlawHat @@ -2013,9 +1902,7 @@ Telecrystal: 1 # DeltaV - was 20 categories: - UplinkPointless - conditions: # DeltaV - - !type:ReputationCondition - reputation: 50 + reputation: 50 # DeltaV - type: listing id: UplinkScarfSyndieRed @@ -2062,13 +1949,12 @@ Telecrystal: 5 # DeltaV - Was 6 categories: - UplinkJob + reputation: 30 # DeltaV - Less than Sidearms as you have to actually grow it conditions: - !type:BuyerJobCondition whitelist: - Botanist - ServiceWorker # DeltaV - - !type:ReputationCondition # DeltaV - Less than Sidearms as you have to actually grow it - reputation: 30 - type: listing id: uplinkRiggedBoxingGlovesPassenger @@ -2082,12 +1968,11 @@ Telecrystal: 6 categories: - UplinkJob + reputation: 20 # DeltaV - Melee Weapons reputation conditions: - !type:BuyerJobCondition whitelist: - Passenger - - !type:ReputationCondition # DeltaV - Melee Weapons reputation - reputation: 20 - type: listing id: uplinkRiggedBoxingGlovesBoxer @@ -2101,12 +1986,11 @@ Telecrystal: 4 categories: - UplinkJob + reputation: 5 # DeltaV - Melee Weapons reputation, boxer can get it earlier conditions: - !type:BuyerJobCondition whitelist: - Boxer - - !type:ReputationCondition # DeltaV - Melee Weapons reputation - reputation: 20 - type: listing id: uplinkNecronomicon @@ -2120,6 +2004,7 @@ Telecrystal: 4 categories: - UplinkJob + reputation: 40 # DeltaV - Allies reputation conditions: - !type:BuyerJobCondition whitelist: @@ -2128,8 +2013,6 @@ blacklist: components: - SurplusBundle - - !type:ReputationCondition # DeltaV - Allies reputation - reputation: 40 - type: listing id: uplinkHolyHandGrenade @@ -2143,12 +2026,11 @@ Telecrystal: 20 categories: - UplinkJob + reputation: 70 # DeltaV - Power Powerful Explosives conditions: - !type:BuyerJobCondition whitelist: - Chaplain - - !type:ReputationCondition # DeltaV - More Powerful Explosions - reputation: 70 - type: listing id: uplinkRevolverCapGunFake @@ -2162,13 +2044,12 @@ Telecrystal: 5 categories: - UplinkJob + reputation: 40 # DeltaV - Sidearms reputation conditions: - !type:BuyerJobCondition whitelist: - Mime - Clown - - !type:ReputationCondition # DeltaV - Sidearms reputation - reputation: 40 - type: listing id: uplinkBananaPeelExplosive @@ -2177,6 +2058,7 @@ icon: { sprite: Objects/Specific/Hydroponics/banana.rsi, state: peel } productEntity: TrashBananaPeelExplosiveUnarmed discountCategory: rareDiscounts + reputation: 20 # DeltaV - Explosives, but honk discountDownTo: Telecrystal: 1 cost: @@ -2187,8 +2069,6 @@ - !type:BuyerJobCondition whitelist: - Clown - - !type:ReputationCondition # DeltaV - Explosives reputation - reputation: 40 - type: listing id: UplinkClusterBananaPeel @@ -2202,12 +2082,11 @@ Telecrystal: 4 # DeltaV - was 6 categories: - UplinkJob + reputation: 45 # DeltaV - Explosives reputation conditions: - !type:BuyerJobCondition whitelist: - Clown - - !type:ReputationCondition # DeltaV - More Powerful Explosions reputation - reputation: 65 - type: listing id: UplinkHoloclownKit @@ -2222,12 +2101,11 @@ Telecrystal: 12 categories: - UplinkJob + reputation: 45 # DeltaV - Allies reputation conditions: - !type:BuyerJobCondition whitelist: - Clown - - !type:ReputationCondition # DeltaV - Allies reputation - reputation: 45 - type: listing id: uplinkHotPotato @@ -2241,6 +2119,7 @@ Telecrystal: 2 # DeltaV - was 4 categories: - UplinkJob + reputation: 20 # DeltaV - Explosives reputation, but its not that useful conditions: - !type:BuyerJobCondition whitelist: @@ -2249,8 +2128,6 @@ - Clown - Mime - ServiceWorker # DeltaV - - !type:ReputationCondition # DeltaV - Explosives reputation - reputation: 40 - type: listing id: UplinkChimpUpgradeKit @@ -2264,12 +2141,11 @@ Telecrystal: 3 # DeltaV - was 4 categories: - UplinkJob + reputation: 40 # DeltaV - Sidearms reputation conditions: - !type:BuyerDepartmentCondition whitelist: - Epistemics # DeltaV - Epistemics Department replacing Science - - !type:ReputationCondition # DeltaV - Sidearms reputation - reputation: 40 - type: listing id: uplinkProximityMine @@ -2283,6 +2159,7 @@ Telecrystal: 5 # was 4, with my buff made it 5 to be closer to minibomb -panzer categories: - UplinkJob + reputation: 45 # DeltaV - Explosives reputation conditions: - !type:BuyerJobCondition whitelist: @@ -2291,8 +2168,6 @@ blacklist: components: - SurplusBundle - - !type:ReputationCondition # DeltaV - Explosives reputation - reputation: 45 - type: listing id: UplinkSyndicateSpongeBox @@ -2328,6 +2203,7 @@ Telecrystal: 4 # DeltaV - was 5 categories: - UplinkJob + reputation: 20 # DeltaV - Melee Weapons reputation conditions: - !type:BuyerJobCondition whitelist: @@ -2336,8 +2212,6 @@ blacklist: components: - SurplusBundle - - !type:ReputationCondition # DeltaV - Melee Weapons reputation - reputation: 20 - type: listing id: UplinkCombatBakery @@ -2352,13 +2226,12 @@ Telecrystal: 4 categories: - UplinkJob + reputation: 20 # DeltaV - Melee Weapons reputation conditions: - !type:BuyerJobCondition whitelist: - Chef - Mime - - !type:ReputationCondition # DeltaV - Melee Weapons reputation - reputation: 20 - type: listing id: UplinkSmugglerSatchel diff --git a/Resources/Prototypes/Nyanotrasen/Catalog/uplink_catalog.yml b/Resources/Prototypes/Nyanotrasen/Catalog/uplink_catalog.yml index a4c3a5591a..f6e63c8098 100644 --- a/Resources/Prototypes/Nyanotrasen/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Nyanotrasen/Catalog/uplink_catalog.yml @@ -10,12 +10,11 @@ Telecrystal: 10 categories: - UplinkWeaponry + reputation: 30 # Melee Weapons conditions: - !type:BuyerSpeciesCondition whitelist: - Oni - - !type:ReputationCondition - reputation: 30 # Melee Weapons - type: listing id: UplinkRickenbacker @@ -29,12 +28,11 @@ Telecrystal: 10 categories: - UplinkJob + reputation: 20 # Melee Weapons conditions: - !type:BuyerJobCondition whitelist: - Musician - - !type:ReputationCondition - reputation: 20 # Melee Weapons - type: listing id: UplinkSamurai @@ -48,6 +46,7 @@ Telecrystal: 6 categories: - UplinkWearables + reputation: 15 # Armour conditions: - !type:BuyerSpeciesCondition whitelist: @@ -56,5 +55,3 @@ blacklist: components: - SurplusBundle - - !type:ReputationCondition - reputation: 15 # Armour diff --git a/Resources/Prototypes/_DV/Catalog/Uplink/weaponry.yml b/Resources/Prototypes/_DV/Catalog/Uplink/weaponry.yml index b33aaa7eb8..6bd20c907d 100644 --- a/Resources/Prototypes/_DV/Catalog/Uplink/weaponry.yml +++ b/Resources/Prototypes/_DV/Catalog/Uplink/weaponry.yml @@ -12,6 +12,7 @@ Telecrystal: 16 categories: - UplinkWeaponry + reputation: 40 # Meme weapon - type: listing id: UplinkRealFoamSabre @@ -27,3 +28,4 @@ Telecrystal: 6 categories: - UplinkWeaponry + reputation: 20 # Melee weapon reputation