diff --git a/Content.Client/VendingMachines/UI/VendingMachineMenu.xaml.cs b/Content.Client/VendingMachines/UI/VendingMachineMenu.xaml.cs index f3b30527af2..c584d158749 100644 --- a/Content.Client/VendingMachines/UI/VendingMachineMenu.xaml.cs +++ b/Content.Client/VendingMachines/UI/VendingMachineMenu.xaml.cs @@ -112,6 +112,17 @@ public void Populate(List inventory, float priceMo cost = (int) (cost * priceModifier); } + // This block exists to allow the MarketPrice flag to set a price + if (prototype != null && prototype.TryGetComponent(out var marketPriceComponent)) + { + if (marketPriceComponent.Price != 0) + { + var price = (float) marketPriceComponent.Price; + cost = (int) (price); + } + } + // This block exists to allow the MarketPrice flag to set a price + vendingItem.Text = $"[${cost}] {itemName} [{entry.Amount}]"; vendingItem.Icon = icon; } diff --git a/Content.Server/Cargo/Systems/PricingSystem.cs b/Content.Server/Cargo/Systems/PricingSystem.cs index 3035af8e023..489e34cc0be 100644 --- a/Content.Server/Cargo/Systems/PricingSystem.cs +++ b/Content.Server/Cargo/Systems/PricingSystem.cs @@ -164,6 +164,26 @@ public double GetEstimatedPrice(EntityPrototype prototype) return price; } + public double GetEstimatedMarketPrice(EntityPrototype prototype) + { + var ev = new EstimatedPriceCalculationEvent() + { + Prototype = prototype, + }; + + RaiseLocalEvent(ref ev); + + if (ev.Handled) + return ev.Price; + + var price = ev.Price; + price += GetMarketPrice(prototype); + + // TODO: Proper container support. + + return price; + } + /// /// Appraises an entity, returning it's price. /// @@ -328,6 +348,31 @@ private double GetStaticPrice(EntityPrototype prototype) return price; } + private double GetMarketPrice(EntityUid uid) + { + var price = 0.0; + + if (TryComp(uid, out var marketPrice)) + { + price += marketPrice.Price; + } + + return price; + } + + private double GetMarketPrice(EntityPrototype prototype) + { + var price = 0.0; + + if (prototype.Components.TryGetValue(_factory.GetComponentName(typeof(MarketPriceComponent)), out var marketProto)) + { + var marketPrice = (MarketPriceComponent) marketProto.Component; + price += marketPrice.Price; + } + + return price; + } + /// /// Appraises a grid, this is mainly meant to be used by yarrs. /// diff --git a/Content.Server/VendingMachines/VendingMachineSystem.cs b/Content.Server/VendingMachines/VendingMachineSystem.cs index d30c48fe2fb..a36e30f9f11 100644 --- a/Content.Server/VendingMachines/VendingMachineSystem.cs +++ b/Content.Server/VendingMachines/VendingMachineSystem.cs @@ -345,6 +345,12 @@ public void AuthorizedVend(EntityUid uid, EntityUid sender, InventoryType type, var totalPrice = ((int) price); + // This block exists to allow the MarketPrice flag to set a price + var priceMarket = _pricing.GetEstimatedMarketPrice(proto); + if (priceMarket == null || priceMarket == 0) { } + else { totalPrice = ((int) priceMarket); } + // This block exists to allow the MarketPrice flag to set a price + if (totalPrice > bank.Balance) { _popupSystem.PopupEntity(Loc.GetString("bank-insufficient-funds"), uid); diff --git a/Content.Shared/Cargo/Components/MarketPriceComponent.cs b/Content.Shared/Cargo/Components/MarketPriceComponent.cs new file mode 100644 index 00000000000..9354da55201 --- /dev/null +++ b/Content.Shared/Cargo/Components/MarketPriceComponent.cs @@ -0,0 +1,14 @@ +namespace Content.Shared.Cargo.Components; + +/// +/// This is used for setting a static, unchanging price for buying an object. +/// +[RegisterComponent] +public sealed class MarketPriceComponent : Component +{ + /// + /// The price of the object this component is on. + /// + [DataField("price", required: true)] + public double Price; +} diff --git a/Resources/Locale/en-US/_NF/adventure/adventure.ftl b/Resources/Locale/en-US/_NF/adventure/adventure.ftl index 640467e28ba..6088ccc4c6f 100644 --- a/Resources/Locale/en-US/_NF/adventure/adventure.ftl +++ b/Resources/Locale/en-US/_NF/adventure/adventure.ftl @@ -9,9 +9,6 @@ adventure-title = New Frontier Adventure Mode adventure-description = Join a ship crew or buy your own and explore, research, salvage, or haul your way to riches! currency = Spesos -advertisement-astrovend-1 = Spessman's Choice! -advertisement-astrovend-2 = Don't leave home without a suit! - guide-entry-adventure = New Frontiers Program guide-entry-bank = NT Galactic Bank guide-entry-shipyard = Frontier Shipyards diff --git a/Resources/Locale/en-US/_NF/advertisements/vending/astro.ftl b/Resources/Locale/en-US/_NF/advertisements/vending/astro.ftl new file mode 100644 index 00000000000..edb1a7df4fc --- /dev/null +++ b/Resources/Locale/en-US/_NF/advertisements/vending/astro.ftl @@ -0,0 +1,2 @@ +advertisement-astrovend-1 = Spessman's Choice! +advertisement-astrovend-2 = Don't leave home without a suit! \ No newline at end of file diff --git a/Resources/Locale/en-US/_NF/prototypes/catalog/fills/crates/vending-crates.ftl b/Resources/Locale/en-US/_NF/prototypes/catalog/fills/crates/vending-crates.ftl index 00310d9bc51..b4f82c609d9 100644 --- a/Resources/Locale/en-US/_NF/prototypes/catalog/fills/crates/vending-crates.ftl +++ b/Resources/Locale/en-US/_NF/prototypes/catalog/fills/crates/vending-crates.ftl @@ -1,5 +1,5 @@ ent-CrateVendingMachineRestockAstroVendFilled = AstroVend restock crate - .desc = Contains two restock boxes for the AstroVend vendor. + .desc = Contains two restock boxes for the AstroVend vending machine. ent-CrateVendingMachineRestockAmmoFilled = Liberation restock crate .desc = Contains two restock boxes for the Liberation vending machine. diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/snack.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/snack.yml index 3285384cc22..ca801f142f8 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/snack.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/snack.yml @@ -7,4 +7,3 @@ FoodSnackSyndi: 3 DrinkRamen: 3 DrinkHellRamen: 2 - diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/soda.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/soda.yml index b1f2096300a..f101839b72b 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/soda.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/soda.yml @@ -9,5 +9,5 @@ DrinkDrGibbCan: 3 DrinkFourteenLokoCan: 3 emaggedInventory: - DrinkNukieCan: 3 - DrinkChangelingStingCan: 3 + DrinkNukieCan: 2 + DrinkChangelingStingCan: 2 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks.yml index c495f432e9c..4fdfbbba533 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks.yml @@ -1322,6 +1322,8 @@ - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/nothing.rsi + - type: MarketPrice + price: 1 - type: entity parent: DrinkGlassBase @@ -2155,7 +2157,7 @@ - Trash - type: SpaceGarbage - type: StaticPrice - price: 7.5 + price: 5.5 - type: entity parent: DrinkRamen diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml index 58a31f440b1..8c3c19cc6ec 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml @@ -59,6 +59,7 @@ - type: StaticPrice price: 5.5 + - type: entity parent: DrinkCanBaseFull id: DrinkColaCan @@ -321,6 +322,8 @@ sprite: Objects/Consumable/Drinks/robustnukie.rsi - type: Item sprite: Objects/Consumable/Drinks/robustnukie.rsi + - type: StaticPrice + price: 20 - type: entity parent: DrinkCanBaseFull diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml index b74ec1220b8..2477cc33b0b 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -39,7 +39,7 @@ Blunt: 0 - type: ItemCooldown - type: StaticPrice - price: 4.5 + price: 4 - type: entity parent: DrinkBaseCup diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml index 2edf4e62ccf..fcdff5bfcab 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml @@ -10,6 +10,8 @@ - type: PhysicalComposition materialComposition: Steel: 50 + - type: StaticPrice + price: 7 - type: entity parent: DrinkBase @@ -29,7 +31,7 @@ - type: TrashOnEmpty solution: drink - type: StaticPrice - price: 12.5 + price: 7 - type: entity parent: DrinkBase @@ -40,6 +42,8 @@ - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/detflask.rsi + - type: StaticPrice + price: 7 - type: entity parent: DrinkBase @@ -50,6 +54,8 @@ - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/flask.rsi + - type: StaticPrice + price: 7 - type: entity parent: DrinkBase @@ -60,6 +66,8 @@ - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/barflask.rsi + - type: StaticPrice + price: 7 - type: entity parent: DrinkBase @@ -70,6 +78,8 @@ - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/flask_old.rsi + - type: StaticPrice + price: 7 - type: entity parent: DrinkBase @@ -80,6 +90,8 @@ - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/lithiumflask.rsi + - type: StaticPrice + price: 7 - type: entity parent: DrinkBase @@ -90,3 +102,5 @@ - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/vacuumflask.rsi + - type: StaticPrice + price: 7 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/donut.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/donut.yml index 8eb534890c4..e33046e21e1 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/donut.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/donut.yml @@ -23,7 +23,8 @@ sprite: Objects/Consumable/Food/Baked/donut.rsi size: 1 - type: StaticPrice - price: 12 + price: 5 + # Tastes like donut. # The sprinkles are now an overlay, so you can put them on any donut! If we really diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml index 4d7c06cd434..aae4f7c920d 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml @@ -64,6 +64,8 @@ - box5 - pink-box6 - type: Appearance + - type: StaticPrice + price: 12 # Egg diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/condiments.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/condiments.yml index feb614c02b5..8ddea50f0fe 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/condiments.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/condiments.yml @@ -53,7 +53,9 @@ materialComposition: Plastic: 50 - type: StaticPrice - price: 4.5 + price: 1 + - type: MarketPrice + price: 5 - type: entity parent: BaseFoodCondimentPacket diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/plate.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/plate.yml index 80493bfdad3..91e5430708e 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/plate.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/plate.yml @@ -49,7 +49,9 @@ Glass: 100 - type: SpaceGarbage - type: StaticPrice - price: 3 + price: 2 + - type: MarketPrice + price: 10 - type: entity name: broken plate @@ -66,6 +68,8 @@ - type: SpaceGarbage - type: StaticPrice price: 1 + - type: MarketPrice + price: 5 # Small Plate @@ -97,6 +101,8 @@ acts: [ "Destruction" ] - type: StaticPrice price: 2 + - type: MarketPrice + price: 10 - type: entity parent: FoodPlateTrash @@ -105,6 +111,8 @@ - type: Sprite sprite: Objects/Consumable/Food/plates.rsi state: plate-small-trash + - type: StaticPrice + price: 1 # Plastic Plate @@ -122,6 +130,8 @@ - Trash - type: StaticPrice price: 1 + - type: MarketPrice + price: 5 - type: entity name: plastic plate @@ -137,6 +147,8 @@ - Trash - type: StaticPrice price: 1 + - type: MarketPrice + price: 5 # Pie Tin diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/snacks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/snacks.yml index fd0b4216092..734340ade96 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/snacks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/snacks.yml @@ -20,7 +20,7 @@ heldPrefix: packet size: 3 - type: StaticPrice - price: 7.5 + price: 7 # Snacks # "Snacks" means food in a packet. Down the line this stuff can have multiple @@ -93,7 +93,7 @@ sound: path: /Audio/Effects/unwrap.ogg - type: StaticPrice - price: 7.5 + price: 7 - type: entity name: chocolate bar @@ -116,6 +116,8 @@ Quantity: 10 - ReagentId: Theobromine Quantity: 3 + - type: StaticPrice + price: 7 - type: entity name: energy bar @@ -290,6 +292,10 @@ size: 1 - type: Food trash: FoodCookieFortune + - type: StaticPrice + price: 1 + - type: MarketPrice + price: 5 - type: entity id: FoodSnackNutribrick @@ -332,6 +338,8 @@ reagents: - ReagentId: Nutriment Quantity: 25 + - type: StaticPrice + price: 7 - type: entity id: FoodSnackMREBrownie @@ -351,7 +359,6 @@ - type: StaticPrice price: 7 - - type: entity id: FoodSnackMREBrownieOpen parent: FoodSnackBase @@ -373,6 +380,8 @@ Quantity: 10 - ReagentId: Theobromine Quantity: 3 + - type: StaticPrice + price: 7 # Trash diff --git a/Resources/Prototypes/Entities/Objects/Fun/crayons.yml b/Resources/Prototypes/Entities/Objects/Fun/crayons.yml index 49113f18fd7..c4ed961734a 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/crayons.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/crayons.yml @@ -97,6 +97,8 @@ - Crayon - Recyclable - Trash + - type: MarketPrice + price: 350 - type: entity parent: Crayon diff --git a/Resources/Prototypes/Entities/Objects/Fun/toys.yml b/Resources/Prototypes/Entities/Objects/Fun/toys.yml index 26392094a43..857c1cc7394 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/toys.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/toys.yml @@ -32,7 +32,7 @@ materialComposition: Cloth: 100 - type: StaticPrice - price: 5 + price: 10 - type: entity parent: BasePlushie @@ -167,6 +167,7 @@ radius: 1.5 energy: 2 netsync: false + - type: entity parent: BasePlushie id: PlushieLizard #Weh! @@ -670,6 +671,8 @@ heldPrefix: bask - type: TileFrictionModifier modifier: 0.5 + - type: StaticPrice + price: 10 - type: entity parent: BaseItem @@ -684,6 +687,8 @@ size: 12 sprite: Objects/Fun/toys.rsi heldPrefix: footb + - type: StaticPrice + price: 10 - type: entity parent: BaseItem @@ -703,6 +708,8 @@ heldPrefix: beachb - type: TileFrictionModifier modifier: 0.05 + - type: StaticPrice + price: 10 - type: entity parent: BaseItem @@ -731,6 +738,8 @@ size: 24 sprite: Objects/Fun/toys.rsi heldPrefix: corgib + - type: StaticPrice + price: 10 - type: entity parent: BaseItem @@ -751,6 +760,8 @@ size: 12 sprite: Objects/Fun/toys.rsi heldPrefix: singularitytoy + - type: StaticPrice + price: 10 - type: entity parent: BaseItem @@ -771,6 +782,10 @@ heldPrefix: orb - type: TileFrictionModifier modifier: 0.001 + - type: StaticPrice + price: 10 + - type: MarketPrice + price: 1000 - type: entity id: ToySword @@ -855,6 +870,8 @@ - type: Item size: 15 sprite: Objects/Weapons/Melee/cutlass.rsi + - type: StaticPrice + price: 10 - type: entity parent: BaseItem @@ -876,6 +893,10 @@ - type: Tag tags: - ClownRecorder + - type: StaticPrice + price: 10 + - type: MarketPrice + price: 500 - type: entity parent: BaseItem @@ -914,6 +935,8 @@ damage: types: Blunt: 0 + - type: StaticPrice + price: 10 - type: entity parent: BaseItem @@ -972,6 +995,8 @@ density: 30 mask: - ItemMask + - type: StaticPrice + price: 10 - type: entity name: banana @@ -992,6 +1017,8 @@ reagents: - ReagentId: Nothing Quantity: 100 + - type: StaticPrice + price: 10 - type: entity parent: DrinkBase diff --git a/Resources/Prototypes/Entities/Objects/Misc/utensils.yml b/Resources/Prototypes/Entities/Objects/Misc/utensils.yml index e2891c48bff..8f239c38d02 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/utensils.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/utensils.yml @@ -11,6 +11,10 @@ tags: - Trash - type: SpaceGarbage + - type: StaticPrice + price: 1 + - type: MarketPrice + price: 2 - type: entity parent: UtensilBase diff --git a/Resources/Prototypes/_NF/Catalog/Cargo/cargo_vending.yml b/Resources/Prototypes/_NF/Catalog/Cargo/cargo_vending.yml index bf51e459aae..c4ac8ef57f0 100644 --- a/Resources/Prototypes/_NF/Catalog/Cargo/cargo_vending.yml +++ b/Resources/Prototypes/_NF/Catalog/Cargo/cargo_vending.yml @@ -44,4 +44,4 @@ product: CrateVendingMachineRestockCuddlyCritterVendFilled cost: 100 category: fun - group: market + group: market \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Catalog/Fills/AstroVend.yml b/Resources/Prototypes/_NF/Catalog/Fills/AstroVend.yml deleted file mode 100644 index b98d7a2b12c..00000000000 --- a/Resources/Prototypes/_NF/Catalog/Fills/AstroVend.yml +++ /dev/null @@ -1,73 +0,0 @@ -- type: vendingMachineInventory - id: AstroVendInventory - startingInventory: - ClothingOuterHardsuitSpatio: 5 - ClothingShoesBootsMag: 15 - ClothingOuterHardsuitBasic: 5 - ClothingOuterHardsuitEVA: 10 - ClothingHeadHelmetEVA: 15 - RadioHandheld: 15 - HandheldGPSBasic: 15 - AirTank: 10 - JetpackMiniFilled: 10 - EncryptionKeyCommand: 30 - - -- type: vendingMachineInventory - id: CircuitVendInventory - startingInventory: -## SalvageExpeditionsComputerCircuitboard: 8 - OreProcessorMachineCircuitboard: 10 - CircuitImprinterMachineCircuitboard: 6 - ProtolatheMachineCircuitboard: 6 - AutolatheMachineCircuitboard: 6 - ResearchComputerCircuitboard: 6 - ResearchAndDevelopmentServerMachineCircuitboard: 12 - TelecomServerCircuitboard: 6 - ComputerIFFCircuitboard: 4 - EngineeringTechFabCircuitboard: 4 - MedicalTechFabCircuitboard: 4 - ServiceTechFabCircuitboard: 4 - ScienceTechFabCircuitboard: 4 - MaterialReclaimerMachineCircuitboard: 4 - ExosuitFabricatorMachineCircuitboard: 4 - UniformPrinterMachineCircuitboard: 4 - HydroponicsTrayMachineCircuitboard: 16 - DawInstrumentMachineCircuitboard: 4 - -- type: vendingMachineInventory - id: ContraVendInventory - startingInventory: - CigPackSyndicate: 8 - Stimpack: 6 - StimkitFilled: 4 - SyndicateJawsOfLife: 4 - ToolboxSyndicateFilled: 4 - RadioJammer: 8 - PowerSink: 2 - BoxEncryptionKeySyndie: 8 - AgentIDCard: 8 - StealthBox: 6 - ClothingMaskGasVoiceChameleon: 6 - ClothingBackpackChameleonFill: 4 - HypopenBox: 4 - Emag: 2 - StorageImplanter: 4 - ClothingShoesBootsMagSyndie: 4 - ClothingShoesChameleonNoSlips: 8 - ClothingBackpackDuffelSyndicateEVABundle: 12 - BoxHoloparasite: 2 - -- type: vendingMachineInventory - id: BountyVendInventory - startingInventory: - PinpointerUniversal: 15 - WeaponGrapplingGun: 10 - HandheldGPSBasic: 5 - JetpackMiniFilled: 10 - WeaponDisabler: 10 - WeaponEmpEmitter: 10 - Zipties: 20 - Flash: 15 - ClothingEyesGlassesSunglasses: 12 - ClothingHeadHatHoshat: 4 diff --git a/Resources/Prototypes/_NF/Catalog/Fills/AstroVendAds.yml b/Resources/Prototypes/_NF/Catalog/VendingMachines/Advertisements/astro.yml similarity index 100% rename from Resources/Prototypes/_NF/Catalog/Fills/AstroVendAds.yml rename to Resources/Prototypes/_NF/Catalog/VendingMachines/Advertisements/astro.yml diff --git a/Resources/Prototypes/_NF/Catalog/VendingMachines/Inventories/astro.yml b/Resources/Prototypes/_NF/Catalog/VendingMachines/Inventories/astro.yml new file mode 100644 index 00000000000..434c9bc38ff --- /dev/null +++ b/Resources/Prototypes/_NF/Catalog/VendingMachines/Inventories/astro.yml @@ -0,0 +1,13 @@ +- type: vendingMachineInventory + id: AstroVendInventory + startingInventory: + ClothingOuterHardsuitSpatio: 5 + ClothingShoesBootsMag: 15 + ClothingOuterHardsuitBasic: 5 + ClothingOuterHardsuitEVA: 10 + ClothingHeadHelmetEVA: 15 + RadioHandheld: 15 + HandheldGPSBasic: 15 + AirTank: 10 + JetpackMiniFilled: 10 + EncryptionKeyCommand: 30 diff --git a/Resources/Prototypes/_NF/Catalog/VendingMachines/Inventories/circuit.yml b/Resources/Prototypes/_NF/Catalog/VendingMachines/Inventories/circuit.yml new file mode 100644 index 00000000000..556ea665486 --- /dev/null +++ b/Resources/Prototypes/_NF/Catalog/VendingMachines/Inventories/circuit.yml @@ -0,0 +1,21 @@ +- type: vendingMachineInventory + id: CircuitVendInventory + startingInventory: +## SalvageExpeditionsComputerCircuitboard: 8 + OreProcessorMachineCircuitboard: 10 + CircuitImprinterMachineCircuitboard: 6 + ProtolatheMachineCircuitboard: 6 + AutolatheMachineCircuitboard: 6 + ResearchComputerCircuitboard: 6 + ResearchAndDevelopmentServerMachineCircuitboard: 12 + TelecomServerCircuitboard: 6 + ComputerIFFCircuitboard: 4 + EngineeringTechFabCircuitboard: 4 + MedicalTechFabCircuitboard: 4 + ServiceTechFabCircuitboard: 4 + ScienceTechFabCircuitboard: 4 + MaterialReclaimerMachineCircuitboard: 4 + ExosuitFabricatorMachineCircuitboard: 4 + UniformPrinterMachineCircuitboard: 4 + HydroponicsTrayMachineCircuitboard: 16 + DawInstrumentMachineCircuitboard: 4 diff --git a/Resources/Prototypes/_NF/Catalog/VendingMachines/Inventories/contra.yml b/Resources/Prototypes/_NF/Catalog/VendingMachines/Inventories/contra.yml new file mode 100644 index 00000000000..f9bff9fe51a --- /dev/null +++ b/Resources/Prototypes/_NF/Catalog/VendingMachines/Inventories/contra.yml @@ -0,0 +1,22 @@ +- type: vendingMachineInventory + id: ContraVendInventory + startingInventory: + CigPackSyndicate: 8 + Stimpack: 6 + StimkitFilled: 4 + SyndicateJawsOfLife: 4 + ToolboxSyndicateFilled: 4 + RadioJammer: 8 + PowerSink: 2 + BoxEncryptionKeySyndie: 8 + AgentIDCard: 8 + StealthBox: 6 + ClothingMaskGasVoiceChameleon: 6 + ClothingBackpackChameleonFill: 4 + HypopenBox: 4 + Emag: 2 + StorageImplanter: 4 + ClothingShoesBootsMagSyndie: 4 + ClothingShoesChameleonNoSlips: 8 + ClothingBackpackDuffelSyndicateEVABundle: 12 + BoxHoloparasite: 2 diff --git a/Resources/Prototypes/_NF/Entities/Objects/Specific/Service/vending_machine_restock.yml b/Resources/Prototypes/_NF/Entities/Objects/Specific/Service/vending_machine_restock.yml index b4f02cd2475..1066efdb79c 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Specific/Service/vending_machine_restock.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Specific/Service/vending_machine_restock.yml @@ -61,8 +61,7 @@ - state: base - state: green_bit shader: unshaded - - state: refill_salvage # Update this later with a new sprite - - type: CargoSellBlacklist + - state: refill_salvage # TODO Update this later with a new sprite - type: entity parent: SecuredVendingMachineRestock @@ -78,8 +77,7 @@ - state: base - state: green_bit shader: unshaded - - state: refill_sec # Update this later with a new sprite - - type: CargoSellBlacklist + - state: refill_sec # TODO Update this later with a new sprite - type: entity parent: SecuredVendingMachineRestock @@ -95,8 +93,7 @@ - state: base - state: green_bit shader: unshaded - - state: refill_parts # Update this later with a new sprite - - type: CargoSellBlacklist + - state: refill_parts # TODO Update this later with a new sprite - type: entity parent: SecuredVendingMachineRestock @@ -113,3 +110,4 @@ - state: green_bit shader: unshaded - state: refill_parts # TODO Update this later with a new sprite + diff --git a/Resources/Prototypes/_NF/Entities/Structures/Machines/vending_machines.yml b/Resources/Prototypes/_NF/Entities/Structures/Machines/vending_machines.yml index 9a4e6ff1147..8a187605ff2 100644 --- a/Resources/Prototypes/_NF/Entities/Structures/Machines/vending_machines.yml +++ b/Resources/Prototypes/_NF/Entities/Structures/Machines/vending_machines.yml @@ -1,3 +1,109 @@ +- type: entity + parent: VendingMachine + id: VendingMachineAstroVend + name: AstroVend + description: Essential gear for the space-men on the go + components: + - type: Anchorable + delay: 999999 + - type: VendingMachine + pack: AstroVendInventory + offState: off + brokenState: broken + normalState: normal-unshaded + - type: Advertise + pack: AstroVendAds + - type: Sprite + sprite: _NF/Structures/Machines/VendingMachines/astro.rsi + layers: + - state: "off" + map: ["enum.VendingMachineVisualLayers.Base"] + - state: "off" + map: ["enum.VendingMachineVisualLayers.BaseUnshaded"] + shader: unshaded + - state: panel + map: ["enum.WiresVisualLayers.MaintenancePanel"] + - type: PointLight + radius: 1.5 + energy: 1.6 + color: "#4b93ad" + - type: MarketModifier + mod: 10 + +- type: entity + parent: VendingMachine + id: VendingMachineCircuitVend + name: CircuitVend + description: Essential tech for the space-men on the go + components: + - type: Anchorable + delay: 999999 + - type: VendingMachine + pack: CircuitVendInventory + offState: off + brokenState: broken + normalState: normal-unshaded + ejectState: eject-unshaded + denyState: deny-unshaded + - type: Advertise + pack: AstroVendAds + - type: Sprite + sprite: Structures/Machines/VendingMachines/robotics.rsi + layers: + - state: "off" + map: ["enum.VendingMachineVisualLayers.Base"] + - state: "off" + map: ["enum.VendingMachineVisualLayers.BaseUnshaded"] + shader: unshaded + - state: panel + map: ["enum.WiresVisualLayers.MaintenancePanel"] + - type: PointLight + radius: 1.5 + energy: 1.6 + color: "#4b93ad" + +- type: entity + parent: VendingMachine + id: VendingMachineSyndieContraband + name: ContraVend + description: Wanted across multiple sectors! + components: + - type: VendingMachine + pack: ContraVendInventory + dispenseOnHitChance: 0.25 + dispenseOnHitThreshold: 2 + offState: off + brokenState: broken + normalState: normal-unshaded + ejectState: eject-unshaded + denyState: deny-unshaded + screenState: screen + ejectDelay: 3 + - type: Advertise + pack: SyndieDrobeAds + - type: Speech + - type: Anchorable + delay: 999999 + - type: Sprite + sprite: _NF/Structures/Machines/VendingMachines/contra.rsi + layers: + - state: "off" + map: ["enum.VendingMachineVisualLayers.Base"] + - state: "off" + map: ["enum.VendingMachineVisualLayers.BaseUnshaded"] + shader: unshaded + - state: "screen" + map: ["enum.VendingMachineVisualLayers.Screen"] + shader: unshaded + - state: panel + map: ["enum.WiresVisualLayers.MaintenancePanel"] + - type: PointLight + radius: 1.5 + energy: 1.3 + color: "#ad2c2b" + - type: MarketModifier + mod: 50 + - type: entity parent: VendingMachine id: VendingMachineCuddlyCritterVend @@ -11,7 +117,6 @@ offState: off brokenState: broken normalState: normal-unshaded - # ejectState: eject-unshaded No sprite, see chefvend/dinnerware/BODA/etc for expamples - type: Advertise pack: CuddlyCritterAds - type: Sprite @@ -29,4 +134,4 @@ energy: 1.6 color: "#4b93ad" - type: MarketModifier - mod: 10 \ No newline at end of file + mod: 10 diff --git a/Resources/Prototypes/_NF/Entities/Structures/machines.yml b/Resources/Prototypes/_NF/Entities/Structures/machines.yml index 04436b7eab6..bb237c3e950 100644 --- a/Resources/Prototypes/_NF/Entities/Structures/machines.yml +++ b/Resources/Prototypes/_NF/Entities/Structures/machines.yml @@ -157,147 +157,3 @@ state: id_key - type: AccessReader access: [["HeadOfPersonnel"]] - -- type: entity - parent: VendingMachine - id: VendingMachineAstroVend - name: AstroVend - description: Essential gear for the space-men on the go - components: - - type: Anchorable - delay: 999999 - - type: VendingMachine - pack: AstroVendInventory - offState: off - brokenState: broken - normalState: normal-unshaded - # ejectState: eject-unshaded No sprite, see chefvend/dinnerware/BODA/etc for expamples - - type: Advertise - pack: AstroVendAds - - type: Sprite - sprite: _NF/Structures/astrovend.rsi - layers: - - state: "off" - map: ["enum.VendingMachineVisualLayers.Base"] - - state: "off" - map: ["enum.VendingMachineVisualLayers.BaseUnshaded"] - shader: unshaded - - state: panel - map: ["enum.WiresVisualLayers.MaintenancePanel"] - - type: PointLight - radius: 1.5 - energy: 1.6 - color: "#4b93ad" - -- type: entity - parent: VendingMachine - id: VendingMachineCircuitVend - name: CircuitVend - description: Essential tech for the space-men on the go - components: - - type: Anchorable - delay: 999999 - - type: VendingMachine - pack: CircuitVendInventory - offState: off - brokenState: broken - normalState: normal-unshaded - ejectState: eject-unshaded - denyState: deny-unshaded - - type: Advertise - pack: AstroVendAds - - type: Sprite - sprite: Structures/Machines/VendingMachines/robotics.rsi - layers: - - state: "off" - map: ["enum.VendingMachineVisualLayers.Base"] - - state: "off" - map: ["enum.VendingMachineVisualLayers.BaseUnshaded"] - shader: unshaded - - state: panel - map: ["enum.WiresVisualLayers.MaintenancePanel"] - - type: PointLight - radius: 1.5 - energy: 1.6 - color: "#4b93ad" - -- type: entity - parent: VendingMachine - id: VendingMachineSyndieContraband - name: ContraVend - description: Wanted across multiple sectors! - components: - - type: VendingMachine - pack: ContraVendInventory - dispenseOnHitChance: 0.25 - dispenseOnHitThreshold: 2 - offState: off - brokenState: broken - normalState: normal-unshaded - ejectState: eject-unshaded - denyState: deny-unshaded - screenState: screen - ejectDelay: 3 - - type: Advertise - pack: SyndieDrobeAds - - type: Speech - - type: Anchorable - delay: 999999 - - type: Sprite - sprite: Structures/Machines/VendingMachines/syndicateArmor.rsi - layers: - - state: "off" - map: ["enum.VendingMachineVisualLayers.Base"] - - state: "off" - map: ["enum.VendingMachineVisualLayers.BaseUnshaded"] - shader: unshaded - - state: "screen" - map: ["enum.VendingMachineVisualLayers.Screen"] - shader: unshaded - - state: panel - map: ["enum.WiresVisualLayers.MaintenancePanel"] - - type: PointLight - radius: 1.5 - energy: 1.3 - color: "#ad2c2b" - - type: MarketModifier - mod: 50 - -- type: entity - parent: VendingMachine - id: VendingMachineBountyVend - name: BountyVend - description: Essential gear for the space-men on the go - components: - - type: Anchorable - delay: 999999 - - type: VendingMachine - pack: BountyVendInventory - offState: off - brokenState: broken - normalState: normal-unshaded - # ejectState: eject-unshaded No sprite, see chefvend/dinnerware/BODA/etc for expamples - - type: Advertise - pack: AstroVendAds - - type: Sprite - sprite: _NF/Structures/bountyvend.rsi - layers: - - state: "off" - map: ["enum.VendingMachineVisualLayers.Base"] - - state: "off" - map: ["enum.VendingMachineVisualLayers.BaseUnshaded"] - shader: unshaded - - state: panel - map: ["enum.WiresVisualLayers.MaintenancePanel"] - - type: PointLight - radius: 1.5 - energy: 1.6 - color: "#4b93ad" - -- type: entity - parent: FaxMachineBase - id: FaxMachineShip - suffix: Ship - components: - - type: FaxMachine - useStationName: true diff --git a/Resources/Prototypes/_Nyano/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/_Nyano/Entities/Objects/Consumable/Drinks/drinks_cups.yml index 5dbe313ced8..e0a1231069f 100644 --- a/Resources/Prototypes/_Nyano/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/_Nyano/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -14,4 +14,4 @@ sprite: Nyanotrasen/Objects/Consumable/Drinks/sakecup.rsi state: icon - type: TrashOnEmpty - solution: drink \ No newline at end of file + solution: drink diff --git a/Resources/Textures/_NF/Structures/astrovend.rsi/broken.png b/Resources/Textures/_NF/Structures/Machines/VendingMachines/astro.rsi/broken.png similarity index 100% rename from Resources/Textures/_NF/Structures/astrovend.rsi/broken.png rename to Resources/Textures/_NF/Structures/Machines/VendingMachines/astro.rsi/broken.png diff --git a/Resources/Textures/_NF/Structures/astrovend.rsi/meta.json b/Resources/Textures/_NF/Structures/Machines/VendingMachines/astro.rsi/meta.json similarity index 100% rename from Resources/Textures/_NF/Structures/astrovend.rsi/meta.json rename to Resources/Textures/_NF/Structures/Machines/VendingMachines/astro.rsi/meta.json diff --git a/Resources/Textures/_NF/Structures/astrovend.rsi/normal-unshaded.png b/Resources/Textures/_NF/Structures/Machines/VendingMachines/astro.rsi/normal-unshaded.png similarity index 100% rename from Resources/Textures/_NF/Structures/astrovend.rsi/normal-unshaded.png rename to Resources/Textures/_NF/Structures/Machines/VendingMachines/astro.rsi/normal-unshaded.png diff --git a/Resources/Textures/_NF/Structures/astrovend.rsi/off.png b/Resources/Textures/_NF/Structures/Machines/VendingMachines/astro.rsi/off.png similarity index 100% rename from Resources/Textures/_NF/Structures/astrovend.rsi/off.png rename to Resources/Textures/_NF/Structures/Machines/VendingMachines/astro.rsi/off.png diff --git a/Resources/Textures/_NF/Structures/astrovend.rsi/panel.png b/Resources/Textures/_NF/Structures/Machines/VendingMachines/astro.rsi/panel.png similarity index 100% rename from Resources/Textures/_NF/Structures/astrovend.rsi/panel.png rename to Resources/Textures/_NF/Structures/Machines/VendingMachines/astro.rsi/panel.png diff --git a/Resources/Textures/Structures/Machines/VendingMachines/syndicateArmor.rsi/broken.png b/Resources/Textures/_NF/Structures/Machines/VendingMachines/contra.rsi/broken.png similarity index 100% rename from Resources/Textures/Structures/Machines/VendingMachines/syndicateArmor.rsi/broken.png rename to Resources/Textures/_NF/Structures/Machines/VendingMachines/contra.rsi/broken.png diff --git a/Resources/Textures/Structures/Machines/VendingMachines/syndicateArmor.rsi/deny-unshaded.png b/Resources/Textures/_NF/Structures/Machines/VendingMachines/contra.rsi/deny-unshaded.png similarity index 100% rename from Resources/Textures/Structures/Machines/VendingMachines/syndicateArmor.rsi/deny-unshaded.png rename to Resources/Textures/_NF/Structures/Machines/VendingMachines/contra.rsi/deny-unshaded.png diff --git a/Resources/Textures/Structures/Machines/VendingMachines/syndicateArmor.rsi/eject-unshaded.png b/Resources/Textures/_NF/Structures/Machines/VendingMachines/contra.rsi/eject-unshaded.png similarity index 100% rename from Resources/Textures/Structures/Machines/VendingMachines/syndicateArmor.rsi/eject-unshaded.png rename to Resources/Textures/_NF/Structures/Machines/VendingMachines/contra.rsi/eject-unshaded.png diff --git a/Resources/Textures/Structures/Machines/VendingMachines/syndicateArmor.rsi/meta.json b/Resources/Textures/_NF/Structures/Machines/VendingMachines/contra.rsi/meta.json similarity index 100% rename from Resources/Textures/Structures/Machines/VendingMachines/syndicateArmor.rsi/meta.json rename to Resources/Textures/_NF/Structures/Machines/VendingMachines/contra.rsi/meta.json diff --git a/Resources/Textures/Structures/Machines/VendingMachines/syndicateArmor.rsi/normal-unshaded.png b/Resources/Textures/_NF/Structures/Machines/VendingMachines/contra.rsi/normal-unshaded.png similarity index 100% rename from Resources/Textures/Structures/Machines/VendingMachines/syndicateArmor.rsi/normal-unshaded.png rename to Resources/Textures/_NF/Structures/Machines/VendingMachines/contra.rsi/normal-unshaded.png diff --git a/Resources/Textures/Structures/Machines/VendingMachines/syndicateArmor.rsi/off.png b/Resources/Textures/_NF/Structures/Machines/VendingMachines/contra.rsi/off.png similarity index 100% rename from Resources/Textures/Structures/Machines/VendingMachines/syndicateArmor.rsi/off.png rename to Resources/Textures/_NF/Structures/Machines/VendingMachines/contra.rsi/off.png diff --git a/Resources/Textures/Structures/Machines/VendingMachines/syndicateArmor.rsi/panel.png b/Resources/Textures/_NF/Structures/Machines/VendingMachines/contra.rsi/panel.png similarity index 100% rename from Resources/Textures/Structures/Machines/VendingMachines/syndicateArmor.rsi/panel.png rename to Resources/Textures/_NF/Structures/Machines/VendingMachines/contra.rsi/panel.png diff --git a/Resources/Textures/Structures/Machines/VendingMachines/syndicateArmor.rsi/screen.png b/Resources/Textures/_NF/Structures/Machines/VendingMachines/contra.rsi/screen.png similarity index 100% rename from Resources/Textures/Structures/Machines/VendingMachines/syndicateArmor.rsi/screen.png rename to Resources/Textures/_NF/Structures/Machines/VendingMachines/contra.rsi/screen.png