Rebalances Donksoft vendors. (#86542)

## About The Pull Request
![!](https://i.imgur.com/bml0Ivn.png)
![!](https://i.imgur.com/TVDaHPa.png)
![!](https://i.imgur.com/p098Hd4.png)

Notable changes:
- Prices have been increased across the board. They're about on par with
the good clean fun vendor now.
- Less of each item. The machine will have to be restocked more often.
- Fake emags and fake hot potatoes are now avaliable.
- The ammo boxes are half-size boxes (20 darts) in the non-syndicate
vendor. Each foam dart costs 5 credits, and every riot dart costs 10
credits. The syndicate vendor sells the old size of boxes (40 darts) for
the same price, getting twice as many darts per credit.
- Syndicate balloon is now in the contraband section. There is only one
of them per vendor and they cost 999 credits.
- Replica space suits come in boxes now, instead of the parts being
bought seperately.
- All toy guns bought from the syndicate vendor are loaded with riot
darts.
- No more discounts for service jobs. Everyone pays the full price.

## Why It's Good For The Game
The current vendor isn't balanced very well, the pricing is a
placeholder and the vast amounts of gear in them make them a
destabilizing element when it makes its way on station. Spawning a lot
of high-end riot dart guns is easy, and the fact that this has 5
syndicate balloons with a value of 20 telecrystals avaliable for
effectively free is simply absurd. Reining it in a little makes it
easier for mappers and admins to put these machines in player-accessible
spots without worrying about it derailing rounds or empowering griefers.

Additionally, this change makes this vendor play nicer with the new
vending restock economy.

None of the pricing changes affect any vending machine that was mapped
in off the station z-level. Lavaland syndicates will continue not to be
charged for using their machine.
## Changelog
🆑
balance: Donksoft vendors now stock slightly more items, slightly less
of each item, and has increased prices across the board.
/🆑
This commit is contained in:
Da Cool Boss
2024-09-30 23:11:23 +01:00
committed by GitHub
parent 5529ee679d
commit ac6231b432
8 changed files with 56 additions and 41 deletions
@@ -376,7 +376,7 @@
/obj/item/storage/box/lights/bulbs,
/obj/item/storage/toolbox/mechanical/old,
/obj/item/gift{
contains_type = /obj/item/gun/ballistic/automatic/toy/unrestricted
contains_type = /obj/item/gun/ballistic/automatic/toy
},
/obj/item/gift{
contains_type = /obj/item/gun/ballistic/automatic/pistol/toy
+1 -1
View File
@@ -4122,7 +4122,7 @@
pixel_x = -1;
pixel_y = 10
},
/obj/item/gun/ballistic/shotgun/toy/unrestricted{
/obj/item/gun/ballistic/shotgun/toy{
pixel_y = -2
},
/obj/effect/light_emitter{
@@ -38,8 +38,8 @@
new /obj/item/stack/sticky_tape(src)
/obj/item/storage/box/fakesyndiesuit
name = "boxed space suit and helmet"
desc = "A sleek, sturdy box used to hold replica spacesuits."
name = "boxed replica space suit and helmet"
desc = "A sleek, sturdy box used to hold toy spacesuits."
icon_state = "syndiebox"
illustration = "syndiesuit"
+1 -1
View File
@@ -246,7 +246,7 @@
new /obj/item/clothing/mask/balaclava(src)
new /obj/item/gun/ballistic/shotgun/toy(src)
new /obj/item/gun/ballistic/automatic/pistol/toy(src)
new /obj/item/gun/ballistic/automatic/toy/unrestricted(src)
new /obj/item/gun/ballistic/automatic/toy(src)
new /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted(src)
new /obj/item/ammo_box/foambox(src)
if(98)
@@ -3,5 +3,11 @@
caliber = CALIBER_FOAM
max_ammo = 4
/obj/item/ammo_box/magazine/internal/shot/toy/riot
ammo_type = /obj/item/ammo_casing/foam_dart/riot
/obj/item/ammo_box/magazine/internal/shot/toy/crossbow
max_ammo = 5
/obj/item/ammo_box/magazine/internal/shot/toy/crossbow/riot
ammo_type = /obj/item/ammo_casing/foam_dart/riot
@@ -15,9 +15,8 @@
gun_flags = TOY_FIREARM_OVERLAY | NOT_A_REAL_GUN
casing_ejector = FALSE
/obj/item/gun/ballistic/automatic/toy/unrestricted
pin = /obj/item/firing_pin
/obj/item/gun/ballistic/automatic/toy/riot
spawn_magazine_type = /obj/item/ammo_box/magazine/toy/smg/riot
/obj/item/gun/ballistic/automatic/pistol/toy
name = "foam force pistol"
desc = "A small, easily concealable toy handgun. Ages 8 and up."
@@ -52,8 +51,8 @@
if(chambered && !chambered.loaded_projectile)
qdel(chambered)
/obj/item/gun/ballistic/shotgun/toy/unrestricted
pin = /obj/item/firing_pin
/obj/item/gun/ballistic/shotgun/toy/riot
spawn_magazine_type = /obj/item/ammo_box/magazine/internal/shot/toy/riot
/obj/item/gun/ballistic/shotgun/toy/crossbow
name = "foam force crossbow"
@@ -73,6 +72,9 @@
w_class = WEIGHT_CLASS_SMALL
gun_flags = NONE
/obj/item/gun/ballistic/shotgun/toy/crossbow/riot
spawn_magazine_type = /obj/item/ammo_box/magazine/internal/shot/toy/crossbow/riot
/obj/item/gun/ballistic/automatic/c20r/toy //This is the syndicate variant with syndicate firing pin and riot darts.
name = "donksoft SMG"
desc = "A bullpup three-round burst toy SMG, designated 'C-20r'. Ages 8 and up."
+19 -16
View File
@@ -8,31 +8,34 @@
vend_reply = "Come back for more!"
circuit = /obj/item/circuitboard/machine/vending/syndicatedonksofttoyvendor
products = list(
/obj/item/gun/ballistic/automatic/toy/unrestricted = 10,
/obj/item/gun/ballistic/automatic/pistol/toy = 10,
/obj/item/gun/ballistic/shotgun/toy/unrestricted = 10,
/obj/item/toy/sword = 10,
/obj/item/card/emagfake = 4,
/obj/item/hot_potato/harmless/toy = 4,
/obj/item/toy/sword = 12,
/obj/item/dualsaber/toy = 12,
/obj/item/toy/foamblade = 12,
/obj/item/gun/ballistic/automatic/pistol/toy/riot = 8,
/obj/item/gun/ballistic/automatic/toy/riot = 8,
/obj/item/gun/ballistic/shotgun/toy/riot = 8,
/obj/item/ammo_box/foambox = 20,
/obj/item/toy/foamblade = 10,
/obj/item/toy/balloon/syndicate = 10,
/obj/item/clothing/suit/syndicatefake = 5,
/obj/item/clothing/head/syndicatefake = 5, //OPS IN DORMS oh wait it's just an assistant
)
contraband = list(
/obj/item/gun/ballistic/shotgun/toy/crossbow = 10, //Congrats, you unlocked the +18 setting!
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot = 10,
/obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted/riot = 10,
/obj/item/toy/balloon/syndicate = 1,
/obj/item/gun/ballistic/shotgun/toy/crossbow/riot = 8,
/obj/item/toy/katana = 12,
)
premium = list(
/obj/item/toy/cards/deck/syndicate = 12,
/obj/item/storage/box/fakesyndiesuit = 4,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot = 4,
/obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted/riot = 4,
/obj/item/ammo_box/foambox/riot = 20,
/obj/item/toy/katana = 10,
/obj/item/dualsaber/toy = 5,
/obj/item/toy/cards/deck/syndicate = 10, //Gambling and it hurts, making it a +18 item
)
armor_type = /datum/armor/vending_toyliberationstation
resistance_flags = FIRE_PROOF
refill_canister = /obj/item/vending_refill/donksoft
default_price = PAYCHECK_COMMAND
default_price = PAYCHECK_CREW
extra_price = PAYCHECK_COMMAND
payment_department = ACCOUNT_SRV
payment_department = NO_FREEBIES
light_mask = "donksoft-light-mask"
/datum/armor/vending_toyliberationstation
+19 -15
View File
@@ -9,27 +9,31 @@
light_mask = "donksoft-light-mask"
circuit = /obj/item/circuitboard/machine/vending/donksofttoyvendor
products = list(
/obj/item/gun/ballistic/automatic/toy/unrestricted = 10,
/obj/item/gun/ballistic/automatic/pistol/toy = 10,
/obj/item/gun/ballistic/shotgun/toy/unrestricted = 10,
/obj/item/toy/sword = 10,
/obj/item/ammo_box/foambox = 20,
/obj/item/toy/foamblade = 10,
/obj/item/toy/balloon/syndicate = 10,
/obj/item/clothing/suit/syndicatefake = 5,
/obj/item/clothing/head/syndicatefake = 5,
/obj/item/card/emagfake = 4,
/obj/item/hot_potato/harmless/toy = 4,
/obj/item/toy/sword = 12,
/obj/item/toy/foamblade = 12,
/obj/item/gun/ballistic/automatic/pistol/toy = 8,
/obj/item/gun/ballistic/automatic/toy = 8,
/obj/item/gun/ballistic/shotgun/toy = 8,
/obj/item/ammo_box/foambox/mini = 20,
)
contraband = list(
/obj/item/gun/ballistic/shotgun/toy/crossbow = 10,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted = 10,
/obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted = 10,
/obj/item/toy/katana = 10,
/obj/item/dualsaber/toy = 5,
/obj/item/toy/balloon/syndicate = 1,
/obj/item/gun/ballistic/shotgun/toy/crossbow = 8,
/obj/item/toy/katana = 12,
/obj/item/ammo_box/foambox/riot/mini = 20,
)
premium = list(
/obj/item/dualsaber/toy = 4,
/obj/item/storage/box/fakesyndiesuit = 4,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted = 4,
/obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted = 4,
)
refill_canister = /obj/item/vending_refill/donksoft
default_price = PAYCHECK_CREW
extra_price = PAYCHECK_COMMAND
payment_department = ACCOUNT_SRV
payment_department = NO_FREEBIES
/obj/item/vending_refill/donksoft
machine_name = "Donksoft Toy Vendor"