Add AdvertiseComponent and add it to vending machines (#3756)

* WIP AdvertiseComponent

* Add AdvertiseComponent and add it to vending machines

* Add snacks.yml

* Capitalise C in cigarette machine

* Update Content.Server/GameObjects/Components/AdvertiseComponent.cs

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* Update Content.Server/GameObjects/Components/AdvertiseComponent.cs

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* Fix most problems

* Add localisation + exception for illegal prototype values

* Add ads for smart fridge, discount dan's, youtool and mining

* Oops

* Fix style

* Make dependencies local

* Remove some ads, increase wait

* Increase wait, allow full initial wait width

* Fix error

* Update sovietsoda.ftl

* Update sovietsoda.ftl

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
Visne
2021-04-21 12:00:14 +02:00
committed by GitHub
parent 2250926457
commit 75a8833b2c
58 changed files with 558 additions and 59 deletions

View File

@@ -2,7 +2,7 @@
- type: entity
id: VendingMachine
parent: BaseConstructible
name: vending machine
name: Vending machine
abstract: true
components:
- type: InteractionOutline
@@ -49,12 +49,14 @@
id: VendingMachineAmmo
name: Liberation Station
description: An overwhelming amount of ancient patriotism washes over you just by looking at the machine.
# Ads cause I remember somebody was working on these
# product_slogans = "Liberation Station: Your one-stop shop for all things second amendment!;Be a patriot today, pick up a gun!;Quality weapons for cheap prices!;Better dead than red!"
# product_ads = "Float like an astronaut, sting like a bullet!;Express your second amendment today!;Guns don't kill people, but you can!;Who needs responsibilities when you have guns?"
components:
- type: VendingMachine
pack: AmmoVend
pack: AmmoVendInventory
- type: Advertise
pack: AmmoVendAds
minWait: 480 # 8 minutes
maxWait: 600 # 10 minutes
- type: Speech
- type: Sprite
sprite: Constructible/Power/VendingMachines/ammo.rsi
layers:
@@ -78,7 +80,12 @@
name: Booze-O-Mat
components:
- type: VendingMachine
pack: Booze-O-Mat
pack: BoozeOMatInventory
- type: Advertise
pack: BoozeOMatAds
minWait: 480 # 8 minutes
maxWait: 600 # 10 minutes
- type: Speech
- type: Sprite
sprite: Constructible/Power/VendingMachines/boozeomat.rsi
layers:
@@ -130,7 +137,7 @@
name: PTech
components:
- type: VendingMachine
pack: PTech
pack: PTechInventory
- type: Sprite
sprite: Constructible/Power/VendingMachines/cart.rsi
layers:
@@ -153,10 +160,15 @@
- type: entity
parent: VendingMachine
id: VendingMachineCigs
name: cigarette machine
name: Cigarette machine
components:
- type: VendingMachine
pack: Cigarette machine
pack: CigaretteMachineInventory
- type: Advertise
pack: CigaretteMachineAds
minWait: 480 # 8 minutes
maxWait: 600 # 10 minutes
- type: Speech
- type: Sprite
sprite: Constructible/Power/VendingMachines/cigs.rsi
layers:
@@ -182,7 +194,12 @@
name: ClothesMate
components:
- type: VendingMachine
pack: ClothesMate
pack: ClothesMateInventory
- type: Advertise
pack: ClothesMateAds
minWait: 480 # 8 minutes
maxWait: 600 # 10 minutes
- type: Speech
- type: Sprite
sprite: Constructible/Power/VendingMachines/clothing.rsi
layers:
@@ -200,15 +217,19 @@
denyUnshaded: true
broken: true
- type: WiresVisualizer
# slogans = "Dress for success!;Prepare to look swagalicious!;Look at all this swag!;Why leave style up to fate? Use the ClothesMate!"
- type: entity
parent: VendingMachine
id: VendingMachineCoffee
name: hot drinks machine
name: Hot drinks machine
components:
- type: VendingMachine
pack: Hot Drinks machine
pack: HotDrinksMachineInventory
- type: Advertise
pack: HotDrinksMachineAds
minWait: 480 # 8 minutes
maxWait: 600 # 10 minutes
- type: Speech
- type: Sprite
sprite: Constructible/Power/VendingMachines/coffee.rsi
layers:
@@ -238,7 +259,12 @@
name: Robust Softdrinks
components:
- type: VendingMachine
pack: Robust Softdrinks
pack: RobustSoftdrinksInventory
- type: Advertise
pack: RobustSoftdrinksAds
minWait: 480 # 8 minutes
maxWait: 600 # 10 minutes
- type: Speech
- type: Sprite
sprite: Constructible/Power/VendingMachines/cola.rsi
layers:
@@ -264,7 +290,7 @@
name: Dinnerware
components:
- type: VendingMachine
pack: Dinnerware
pack: DinnerwareInventory
- type: Sprite
sprite: Constructible/Power/VendingMachines/dinnerware.rsi
layers:
@@ -291,7 +317,12 @@
name: Discount Dan's
components:
- type: VendingMachine
pack: Discount Dan's
pack: DiscountDansInventory
- type: Advertise
pack: DiscountDansAds
minWait: 480 # 8 minutes
maxWait: 600 # 10 minutes
- type: Speech
- type: Sprite
sprite: Constructible/Power/VendingMachines/discount.rsi
layers:
@@ -315,7 +346,7 @@
name: Engi-Vend
components:
- type: VendingMachine
pack: Engi-Vend
pack: EngiVendInventory
- type: Sprite
sprite: Constructible/Power/VendingMachines/engivend.rsi
layers:
@@ -343,7 +374,7 @@
name: NanoMed Plus
components:
- type: VendingMachine
pack: NanoMed Plus
pack: NanoMedPlusInventory
- type: Sprite
sprite: Constructible/Power/VendingMachines/medical.rsi
layers:
@@ -371,7 +402,7 @@
name: NutriMax
components:
- type: VendingMachine
pack: NutriMax
pack: NutriMaxInventory
- type: Sprite
sprite: Constructible/Power/VendingMachines/nutri.rsi
layers:
@@ -399,7 +430,7 @@
name: SecTech
components:
- type: VendingMachine
pack: SecTech
pack: SecTechInventory
- type: Sprite
sprite: Constructible/Power/VendingMachines/sec.rsi
layers:
@@ -426,7 +457,7 @@
name: MegaSeed Servitor
components:
- type: VendingMachine
pack: MegaSeed Servitor
pack: MegaSeedServitorInventory
- type: Sprite
sprite: Constructible/Power/VendingMachines/seeds.rsi
layers:
@@ -453,7 +484,12 @@
name: SmartFridge
components:
- type: VendingMachine
pack: SmartFridge
pack: SmartFridgeInventory
- type: Advertise
pack: SmartFridgeAds
minWait: 480 # 8 minutes
maxWait: 600 # 10 minutes
- type: Speech
- type: Sprite
sprite: Constructible/Power/VendingMachines/smartfridge.rsi
layers:
@@ -477,7 +513,12 @@
name: Getmore Chocolate Corp
components:
- type: VendingMachine
pack: Getmore Chocolate Corp
pack: GetmoreChocolateCorpInventory
- type: Advertise
pack: GetmoreChocolateCorpAds
minWait: 480 # 8 minutes
maxWait: 600 # 10 minutes
- type: Speech
- type: Sprite
sprite: Constructible/Power/VendingMachines/snack.rsi
layers:
@@ -503,7 +544,12 @@
name: BODA
components:
- type: VendingMachine
pack: BODA
pack: BodaInventory
- type: Advertise
pack: BodaAds
minWait: 480 # 8 minutes
maxWait: 600 # 10 minutes
- type: Speech
- type: Sprite
sprite: Constructible/Power/VendingMachines/sovietsoda.rsi
layers:
@@ -529,7 +575,12 @@
name: AutoDrobe
components:
- type: VendingMachine
pack: AutoDrobe
pack: AutoDrobeInventory
- type: Advertise
pack: AutoDrobeAds
minWait: 480 # 8 minutes
maxWait: 600 # 10 minutes
- type: Speech
- type: Sprite
sprite: Constructible/Power/VendingMachines/theater.rsi
layers:
@@ -559,7 +610,12 @@
name: Vendomat
components:
- type: VendingMachine
pack: Vendomat
pack: VendomatInventory
- type: Advertise
pack: VendomatAds
minWait: 480 # 8 minutes
maxWait: 600 # 10 minutes
- type: Speech
- type: Sprite
sprite: Constructible/Power/VendingMachines/vendomat.rsi
layers:
@@ -586,7 +642,7 @@
name: NanoMed
components:
- type: VendingMachine
pack: NanoMed
pack: NanoMedInventory
- type: Sprite
sprite: Constructible/Power/VendingMachines/wallmed.rsi
layers:
@@ -613,7 +669,7 @@
name: YouTool
components:
- type: VendingMachine
pack: YouTool
pack: YouToolInventory
- type: Sprite
sprite: Constructible/Power/VendingMachines/youtool.rsi
layers: