Files
vgstation13/code/game/objects/items/vouchers.dm
west3436 434ac40c7a Fire Rework (#35988)
* initial commit

* switcheroo

* include the rest

* fire triangle

* a

* update 2-20

* turfs and reagents and more

* zburn first draft

* remove fire_old

* initial compat

* stable compile

* remove pressure factor

* total autoignition death

* thermal material datums

* a

* more autoignition

* temporary fix for testing

* everything is FUCK

* burning now

* stacks burning

* recursive functionality

* restore burnitselfup

* specific burn case

* everything is shit and fuck

* refactor

* nit

* color & light performance increase

* fix

* smoke cap + changes

* updates

* final (for now)

* remove double count, unit issues, and more tweaks

* logspam and grammar

* prevents worn or held items from burning

* minimum burn time

* fix runtime

* The Cardboard Update

* vis_contents

* cigs burn lol

* lmao

* refactor fire protection

* final fix

* some more held/worn item fixes

* maybe fix foods burning forever

* compile

* restore plasma burning lmao

* review changes

* copypasta error

* copypasta errors 2: this time it's personal

* declare

* extensive fixes

* fix liquid burning behavior

* wtf

* undo smoke cap

* mutable appearances + removal of debug messages

* DMDOC compat

* review changes

* return

* misleading comment
2024-05-14 07:43:39 -05:00

156 lines
5.1 KiB
Plaintext

/obj/item/voucher
name = "vendor's voucher"
desc = "A slip of electropaper used for accessing special features of brand vending machines."
icon = 'icons/obj/vouchers.dmi'
icon_state = "voucher"
w_class = W_CLASS_TINY
w_type = RECYK_WOOD
flammable = TRUE
force = 0
throwforce = 0
var/shred_on_use = 1
//Vouchers that get turned into an item based on regular check-ins
/obj/item/voucher/warp
name = "warp voucher"
desc = "Uses bluespace technology to send you an item once certain conditions are met."
var/redeem_path
/obj/item/voucher/warp/New()
..()
processing_objects += src
/obj/item/voucher/warp/Destroy()
processing_objects -= src
..()
/obj/item/voucher/warp/process()
if(vouch_condition())
var/turf/T = get_turf(src)
var/obj/item/I = new redeem_path(T)
T.turf_animation('icons/effects/96x96.dmi',"beamin",-32,0,MOB_LAYER+1,'sound/weapons/emitter2.ogg',anim_plane = EFFECTS_PLANE)
var/mob/M = get_holder_of_type(src,/mob)
if(M)
M.put_in_hands(I)
visible_message("\The [src] vanishes in a warp-flash, leaving behind a brand new [I.name].")
qdel(src)
/obj/item/voucher/warp/proc/vouch_condition()
return FALSE
/obj/item/voucher/warp/kinetic_accelerator
name = "warp voucher - kinetic accelerator"
desc = "Uses bluespace technology to send you an item once certain conditions are met. This one is triggered by entering an NT designated mining area."
redeem_path = /obj/item/weapon/gun/energy/kinetic_accelerator
/obj/item/voucher/warp/kinetic_accelerator/vouch_condition()
var/turf/T = get_turf(src)
if(istype(T.loc, /area/mine/explored)||istype(T.loc, /area/mine/unexplored)||istype(T.loc, /area/surface/mine))
return TRUE
return FALSE
/obj/item/voucher/free_item
name = "free products voucher"
desc = "A slip of electropaper redeemable for any brand product from a particular brand of vending machines."
var/list/freebies = list() //what we will actually spawn - types
var/single_items = 0 //if we can only vend each one once
var/vend_amount = 0 //how many items we make the machine spit out
/obj/item/voucher/free_item/hot_drink
name = "free hot drink voucher"
desc = "Perk Up Your Day, with this handy free hot drink! Redeemable at any Hot Drinks machine."
freebies = list(
/obj/item/weapon/reagent_containers/food/drinks/coffee,
/obj/item/weapon/reagent_containers/food/drinks/tea,
/obj/item/weapon/reagent_containers/food/drinks/h_chocolate
)
vend_amount = 1
shred_on_use = 0
/obj/item/voucher/free_item/snack
name = "free snack voucher"
desc = "Perk Up Your Day, with this handy free snack! Redeemable at any Getmore Chocolate Corp machine."
freebies = list(
/obj/item/weapon/reagent_containers/food/snacks/candy,
/obj/item/weapon/reagent_containers/food/drinks/dry_ramen,
/obj/item/weapon/reagent_containers/food/snacks/chips,
/obj/item/weapon/reagent_containers/food/snacks/sosjerky,
/obj/item/weapon/reagent_containers/food/snacks/no_raisin,
/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie,
/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers
)
vend_amount = 1
shred_on_use = 0
/obj/item/voucher/free_item/donk
name = "free donk-pocket voucher"
desc = "Perk Up Your Day, with this handy free snack! Redeemable at any Getmore Chocolate Corp machine."
freebies = list(/obj/item/weapon/reagent_containers/food/snacks/donkpocket/self_heating)
vend_amount = 1
shred_on_use = 0
/obj/item/voucher/free_item/glowing //This one gives you special voucher-only items!
name = "glowing voucher"
desc = "Don't bother appealing to a StockPro without this!"
icon_state = "glowingvoucher"
freebies = list(
/obj/item/weapon/glowstick,
/obj/item/weapon/glowstick/red,
/obj/item/weapon/glowstick/blue,
/obj/item/weapon/glowstick/yellow,
/obj/item/weapon/glowstick/magenta
)
vend_amount = 5 //All five types
single_items = 1 //One of each
shred_on_use = 1
/obj/item/voucher/free_item/glowing/New()
..()
set_light(1.4,2,"#FFFF00")
/obj/item/voucher/free_item/glockammo
name = "ammo voucher"
desc = "Load up! Redeem at a SecTech for two magazines of criminal-stopping .380AUTO ammunition."
icon_state = "secvoucher"
freebies = list(
/obj/item/ammo_storage/magazine/m380auto,
/obj/item/ammo_storage/magazine/m380auto/rubber
)
vend_amount = 2
single_items = 1
/obj/item/voucher/free_item/medical_safe
name = "medibot voucher"
desc = "Stay healthy! This voucher entitles you to a single (1) Nanotrasen Advanced Medibot! Redeem at a NanoMedPlus."
icon_state = "medvoucher"
freebies = list(
/obj/item/weapon/medbot_cube
)
vend_amount = 1
single_items = 1
/obj/item/voucher/free_item/armorstrap
name = "reinforced strap voucher"
desc = "Redeem at a SECtech vending machine to get a set of reinforced armor straps for an armored vest."
icon_state = "secvoucher"
freebies = list(
/obj/item/clothing/accessory/armoredvestshoulderstrap
)
vend_amount = 1
single_items = 1
shred_on_use = 1
/obj/item/voucher/free_item/meat
name = "free meat voucher"
desc = "Discount Dan gives you his blessings. Redeemable at a Meat Fridge vendor, brought to you by Discount Dan."
freebies = list(
/obj/item/weapon/reagent_containers/food/snacks/meat/animal/dan
)
vend_amount = 1
single_items = 1
shred_on_use = 1