Add supplies to restock vending machines. (#11506)

This commit is contained in:
Vordenburg
2023-01-01 18:42:56 -05:00
committed by GitHub
parent d9be09b034
commit 5553976d70
43 changed files with 1625 additions and 15 deletions

View File

@@ -0,0 +1,167 @@
# If you've arrived here after a failed NoCargoOrderArbitrage test, it's likely
# because the product in question contains a restock box which links to a
# vending machine inventory that has had items added to it recently and caused
# its calculated price to exceed the cost below.
#
# The costs will need to be kept in line with the inventory of the respective
# vending machines. An extra hundred or two profit margin should be fine.
- type: cargoProduct
id: CrateVendingMachineRestockBooze
icon:
sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: base
product: CrateVendingMachineRestockBoozeFilled
cost: 3200
category: Service
group: market
- type: cargoProduct
id: CrateVendingMachineRestockClothes
icon:
sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: base
product: CrateVendingMachineRestockClothesFilled
cost: 4000
category: Service
group: market
- type: cargoProduct
id: CrateVendingMachineRestockDinnerware
icon:
sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: base
product: CrateVendingMachineRestockDinnerwareFilled
cost: 2000
category: Service
group: market
- type: cargoProduct
id: CrateVendingMachineRestockEngineering
icon:
sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: base
product: CrateVendingMachineRestockEngineeringFilled
cost: 3000
category: Engineering
group: market
- type: cargoProduct
id: CrateVendingMachineRestockGames
icon:
sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: base
product: CrateVendingMachineRestockGamesFilled
cost: 650
category: Service
group: market
- type: cargoProduct
id: CrateVendingMachineRestockHotDrinks
icon:
sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: base
product: CrateVendingMachineRestockHotDrinksFilled
cost: 1200
category: Service
group: market
- type: cargoProduct
id: CrateVendingMachineRestockMedical
icon:
sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: base
product: CrateVendingMachineRestockMedicalFilled
cost: 1500
category: Medical
group: market
- type: cargoProduct
id: CrateVendingMachineRestockNutriMax
icon:
sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: base
product: CrateVendingMachineRestockNutriMaxFilled
cost: 2400
category: Hydroponics
group: market
- type: cargoProduct
id: CrateVendingMachineRestockPTech
icon:
sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: base
product: CrateVendingMachineRestockPTechFilled
cost: 800
category: Service
group: market
- type: cargoProduct
id: CrateVendingMachineRestockRobustSoftdrinks
icon:
sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: base
product: CrateVendingMachineRestockRobustSoftdrinksFilled
cost: 1200
category: Service
group: market
- type: cargoProduct
id: CrateVendingMachineRestockSalvageEquipment
icon:
sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: base
product: CrateVendingMachineRestockSalvageEquipmentFilled
cost: 1000
category: Engineering
group: market
- type: cargoProduct
id: CrateVendingMachineRestockSecTech
icon:
sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: base
product: CrateVendingMachineRestockSecTechFilled
cost: 2200
category: Security
group: market
- type: cargoProduct
id: CrateVendingMachineRestockSeeds
icon:
sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: base
product: CrateVendingMachineRestockSeedsFilled
cost: 2000
category: Hydroponics
group: market
- type: cargoProduct
id: CrateVendingMachineRestockSmokes
icon:
sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: base
product: CrateVendingMachineRestockSmokesFilled
cost: 1200
category: Service
group: market
- type: cargoProduct
id: CrateVendingMachineRestockSnacks
icon:
sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: base
product: CrateVendingMachineRestockSnacksFilled
cost: 3000
category: Service
group: market
- type: cargoProduct
id: CrateVendingMachineRestockTankDispenser
icon:
sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: base
product: CrateVendingMachineRestockTankDispenserFilled
cost: 1000
category: Atmospherics
group: market

View File

@@ -0,0 +1,134 @@
- type: entity
id: CrateVendingMachineRestockBoozeFilled
parent: CratePlastic
components:
- type: StorageFill
contents:
- id: VendingMachineRestockBooze
- type: entity
id: CrateVendingMachineRestockClothesFilled
parent: CratePlastic
components:
- type: StorageFill
contents:
- id: VendingMachineRestockClothes
- id: VendingMachineRestockCostumes
- type: entity
id: CrateVendingMachineRestockDinnerwareFilled
parent: CratePlastic
components:
- type: StorageFill
contents:
- id: VendingMachineRestockDinnerware
- type: entity
id: CrateVendingMachineRestockEngineeringFilled
parent: CrateEngineeringSecure
components:
- type: StorageFill
contents:
- id: VendingMachineRestockEngineering
- type: entity
id: CrateVendingMachineRestockGamesFilled
parent: CratePlastic
components:
- type: StorageFill
contents:
- id: VendingMachineRestockGames
- type: entity
id: CrateVendingMachineRestockHotDrinksFilled
parent: CratePlastic
components:
- type: StorageFill
contents:
- id: VendingMachineRestockHotDrinks
amount: 2
- type: entity
id: CrateVendingMachineRestockMedicalFilled
parent: CrateMedicalSecure
components:
- type: StorageFill
contents:
- id: VendingMachineRestockMedical
- type: entity
id: CrateVendingMachineRestockNutriMaxFilled
parent: CrateHydroSecure
components:
- type: StorageFill
contents:
- id: VendingMachineRestockNutriMax
- type: entity
id: CrateVendingMachineRestockPTechFilled
parent: CratePlastic
components:
- type: StorageFill
contents:
- id: VendingMachineRestockPTech
- type: entity
id: CrateVendingMachineRestockRobustSoftdrinksFilled
parent: CratePlastic
components:
- type: StorageFill
contents:
- id: VendingMachineRestockRobustSoftdrinks
amount: 2
- type: entity
id: CrateVendingMachineRestockSalvageEquipmentFilled
parent: CrateGenericSteel
components:
- type: StorageFill
contents:
- id: VendingMachineRestockSalvageEquipment
- type: entity
id: CrateVendingMachineRestockSecTechFilled
parent: CrateSecgear
components:
- type: StorageFill
contents:
- id: VendingMachineRestockSecTech
- type: entity
id: CrateVendingMachineRestockSeedsFilled
parent: CrateHydroSecure
components:
- type: StorageFill
contents:
- id: VendingMachineRestockSeeds
- type: entity
id: CrateVendingMachineRestockSmokesFilled
parent: CratePlastic
components:
- type: StorageFill
contents:
- id: VendingMachineRestockSmokes
amount: 2
- type: entity
id: CrateVendingMachineRestockSnacksFilled
parent: CratePlastic
components:
- type: StorageFill
contents:
- id: VendingMachineRestockChang
- id: VendingMachineRestockDiscountDans
- id: VendingMachineRestockDonut
- id: VendingMachineRestockGetmoreChocolateCorp
- type: entity
id: CrateVendingMachineRestockTankDispenserFilled
parent: CratePlastic
components:
- type: StorageFill
contents:
- id: VendingMachineRestockTankDispenser

View File

@@ -0,0 +1,59 @@
- type: entity
id: SpawnVendingMachineRestockFoodDrink
name: Vending Machine Restock
suffix: "food or drink"
parent: MarkerBase
components:
- type: Sprite
layers:
- state: green
- sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: base
- sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: refill_discount
- type: ConditionalSpawner
prototypes:
- VendingMachineRestockDiscountDans
- VendingMachineRestockChang
- VendingMachineRestockDonut
- VendingMachineRestockGetmoreChocolateCorp
- VendingMachineRestockRobustSoftdrinks
- VendingMachineRestockHotDrinks
- type: entity
id: SpawnVendingMachineRestockFood
name: Vending Machine Restock
suffix: "food"
parent: MarkerBase
components:
- type: Sprite
layers:
- state: green
- sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: base
- sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: refill_donuts
- type: ConditionalSpawner
prototypes:
- VendingMachineRestockDiscountDans
- VendingMachineRestockChang
- VendingMachineRestockDonut
- VendingMachineRestockGetmoreChocolateCorp
- type: entity
id: SpawnVendingMachineRestockDrink
name: Vending Machine Restock
suffix: "drink"
parent: MarkerBase
components:
- type: Sprite
layers:
- state: green
- sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: base
- sprite: Objects/Specific/Service/vending_machine_restock.rsi
state: refill_cola
- type: ConditionalSpawner
prototypes:
- VendingMachineRestockRobustSoftdrinks
- VendingMachineRestockHotDrinks

View File

@@ -0,0 +1,365 @@
- type: entity
parent: BaseItem
id: BaseVendingMachineRestock
abstract: true
name: vending machine restock box
description: A box for restocking vending machines with corporate goodies.
components:
- type: VendingMachineRestock
- type: Sprite
netsync: false
sprite: Objects/Specific/Service/vending_machine_restock.rsi
layers:
- state: base
- state: green_bit
shader: unshaded
- type: ItemCooldown
- type: MeleeWeapon
damage:
types:
Blunt: 5
soundHit:
path: /Audio/Weapons/genhit2.ogg
soundSwing:
path: /Audio/Weapons/punchmiss.ogg
- type: Item
size: 50
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 20
behaviors:
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/metalbreak.ogg
- !type:DumpRestockInventory
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockBooze
name: Booze-O-Mat restock box
description: Slot into your Booze-O-Mat to start the party! Not for sale to passengers below the legal age.
components:
- type: VendingMachineRestock
canRestock:
- BoozeOMatInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_booze
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockChang
name: Mr. Chang's restock box
description: A box covered in white labels with bold red Chinese characters, ready to be loaded into the nearest Mr. Chang's vending machine.
components:
- type: VendingMachineRestock
canRestock:
- ChangInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_chinese
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockClothes
name: ClothesMate restock box
description: It's time to step up your fashion! Place inside the ClothesMate restock slot to begin.
components:
- type: VendingMachineRestock
canRestock:
- ClothesMateInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_clothes
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockCostumes
name: AutoDrobe restock box
description: A panoply of NanoTrasen employees are prancing about a colorful theater in a tragicomedy. You can join them too! Load this into your nearest AutoDrobe vending machine.
components:
- type: VendingMachineRestock
canRestock:
- AutoDrobeInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_costume
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockDinnerware
name: Plasteel Chef's restock box
description: It's never raw in this kitchen! Drop into the restock slot on the Plasteel Chef to begin.
components:
- type: VendingMachineRestock
canRestock:
- DinnerwareInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_dinner
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockDiscountDans
name: Discount Dan's restock box
description: A box full of salt and starch. Why suffer Quality when you can have Quantity? Discount Dan's!
components:
- type: VendingMachineRestock
canRestock:
- DiscountDansInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_discount
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockDonut
name: Robust Donuts box
description: A box full of toroidal bundles of fried dough for restocking a vending machine. Use only as directed by Robust Industries, LLC.
components:
- type: VendingMachineRestock
canRestock:
- DonutInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_donuts
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockEngineering
name: EngiVend resupply box
description: Only to be used by certified professionals.
components:
- type: VendingMachineRestock
canRestock:
- EngiVendInventory
- YouToolInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_engi
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockGames
name: Good Clean Fun restock box
description: It's time to roll for initiative, dice dragons! Load up at the Good Clean Fun vending machine!
components:
- type: VendingMachineRestock
canRestock:
- GoodCleanFunInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_games
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockGetmoreChocolateCorp
name: GetMore Chocolate restock box
description: A box loaded with the finest ersatz cacao. Only to be used in official Getmore Chocolate vending machines.
components:
- type: VendingMachineRestock
canRestock:
- GetmoreChocolateCorpInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_snack
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockHotDrinks
name: Solar's Best restock box
description: Toasty! For use in Solar's Best Hot Drinks or other affiliate vending machines.
components:
- type: VendingMachineRestock
canRestock:
- HotDrinksMachineInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_joe
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockMedical
name: NanoMed resupply box
description: Slot into your department's NanoMed or NanoMedPlus to dispense. Handle with care.
components:
- type: VendingMachineRestock
canRestock:
- NanoMedInventory
- NanoMedPlusInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_medical
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockNutriMax
name: NutriMax restock box
description: We'll make your thumbs green with our tools. Let's get to harvesting! Load into a NutriMax vending machine.
components:
- type: VendingMachineRestock
canRestock:
- NutriMaxInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_plant
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockPTech
name: PTech resupply box
description: All the bureaucracy you can handle, and more! Load into the PTech vending machine to get started.
components:
- type: VendingMachineRestock
canRestock:
- PTechInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_ptech
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockRobustSoftdrinks
name: Robust Softdrinks box
description: A cold, clunky container of colliding chilly cylinders. Use only as directed by Robust Industries, LLC.
components:
- type: VendingMachineRestock
canRestock:
- RobustSoftdrinksInventory
- BodaInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_cola
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockSecTech
name: SecTech resupply box
description: "Communists beware: the reinforcements have arrived! A label reads SECURITY PERSONNEL ONLY."
components:
- type: VendingMachineRestock
canRestock:
- SecTechInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_sec
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockSalvageEquipment
name: salvage resupply box
description: Strike the earth ere the space carp nip your behind! Slam into a salvage vendor to begin.
components:
- type: VendingMachineRestock
canRestock:
- SalvageEquipmentInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_salvage
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockSeeds
name: MegaSeed restock box
description: A label says they're heirloom seeds, passed down from our ancestors. Pack it into the MegaSeed Servitor!
components:
- type: VendingMachineRestock
canRestock:
- MegaSeedServitorInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_plant
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockSmokes
name: ShadyCigs restock box
description: It's hard to see anything under all the Surgeon General warnings, but it mentions loading it into a vending machine.
components:
- type: VendingMachineRestock
canRestock:
- CigaretteMachineInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_smoke
- type: entity
parent: BaseVendingMachineRestock
id: VendingMachineRestockTankDispenser
name: tank dispenser resupply box
description: Capable of replacing tanks in a gas tank dispenser. Handle with care.
components:
- type: VendingMachineRestock
canRestock:
- TankDispenserEVAInventory
- TankDispenserEngineeringInventory
- type: Sprite
layers:
- state: base
- state: green_bit
shader: unshaded
- state: refill_tanks