mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
For some reason this didn't get pushed
This commit is contained in:
@@ -64,6 +64,11 @@
|
||||
var/obj/item/weapon/coin/coin
|
||||
var/datum/wires/vending/wires = null
|
||||
|
||||
var/list/log = list()
|
||||
var/req_log_access = access_cargo //default access for checking logs is cargo
|
||||
var/has_logs = 0 //defaults to 0, set to anything else for vendor to have logs
|
||||
|
||||
|
||||
/obj/machinery/vending/New()
|
||||
..()
|
||||
wires = new(src)
|
||||
@@ -496,6 +501,8 @@
|
||||
flick(icon_vend,src)
|
||||
spawn(vend_delay)
|
||||
R.get_product(get_turf(src))
|
||||
if(has_logs)
|
||||
do_logging(R, user, 1)
|
||||
if(prob(1))
|
||||
sleep(3)
|
||||
if(R.get_product(get_turf(src)))
|
||||
@@ -506,7 +513,44 @@
|
||||
vend_ready = 1
|
||||
currently_vending = null
|
||||
nanomanager.update_uis(src)
|
||||
return 1 //Vorestation Edit
|
||||
return 1
|
||||
|
||||
/obj/machinery/vending/proc/do_logging(datum/stored_item/vending_product/R, mob/user, var/vending = 0)
|
||||
if(user.GetIdCard())
|
||||
var/obj/item/weapon/card/id/tempid = user.GetIdCard()
|
||||
var/list/list_item = list()
|
||||
if(vending)
|
||||
list_item += "vend"
|
||||
else
|
||||
list_item += "stock"
|
||||
list_item += tempid.registered_name
|
||||
list_item += stationtime2text()
|
||||
list_item += R.item_name
|
||||
log[++log.len] = list_item
|
||||
|
||||
/obj/machinery/vending/proc/show_log(mob/user as mob)
|
||||
if(user.GetIdCard())
|
||||
var/obj/item/weapon/card/id/tempid = user.GetIdCard()
|
||||
if(req_log_access in tempid.GetAccess())
|
||||
var/datum/browser/popup = new(user, "vending_log", "Vending Log", 700, 500)
|
||||
var/dat = ""
|
||||
dat += "<center><span style='font-size:24pt'><b>[name] Vending Log</b></span></center>"
|
||||
dat += "<center><span style='font-size:16pt'>Welcome [user.name]!</span></center><br>"
|
||||
dat += "<span style='font-size:8pt'>Below are the recent vending logs for your vending machine.</span><br>"
|
||||
for(var/i in log)
|
||||
dat += json_encode(i)
|
||||
dat += ";<br>"
|
||||
popup.set_content(dat)
|
||||
popup.open()
|
||||
else
|
||||
to_chat(user,"<span class='warning'>You do not have the required access to view the vending logs for this machine.</span>")
|
||||
|
||||
/obj/machinery/vending/verb/check_logs()
|
||||
set name = "Check Vending Logs"
|
||||
set category = "Object"
|
||||
set src in oview(1)
|
||||
|
||||
show_log(usr)
|
||||
|
||||
/**
|
||||
* Add item to the machine
|
||||
@@ -520,6 +564,8 @@
|
||||
|
||||
user << "<span class='notice'>You insert \the [W] in the product receptor.</span>"
|
||||
R.add_product(W)
|
||||
if(has_logs)
|
||||
do_logging(R, user)
|
||||
|
||||
nanomanager.update_uis(src)
|
||||
|
||||
@@ -677,6 +723,8 @@
|
||||
product_slogans = "I hope nobody asks me for a bloody cup o' tea...;Alcohol is humanity's friend. Would you abandon a friend?;Quite delighted to serve you!;Is nobody thirsty on this station?"
|
||||
product_ads = "Drink up!;Booze is good for you!;Alcohol is humanity's best friend.;Quite delighted to serve you!;Care for a nice, cold beer?;Nothing cures you like booze!;Have a sip!;Have a drink!;Have a beer!;Beer is good for you!;Only the finest alcohol!;Best quality booze since 2053!;Award-winning wine!;Maximum alcohol!;Man loves beer.;A toast for progress!"
|
||||
req_access = list(access_bar)
|
||||
req_log_access = access_bar
|
||||
has_logs = 1
|
||||
|
||||
/obj/machinery/vending/assist
|
||||
products = list( /obj/item/device/assembly/prox_sensor = 5,/obj/item/device/assembly/igniter = 3,/obj/item/device/assembly/signaler = 4,
|
||||
@@ -697,9 +745,6 @@
|
||||
contraband = list(/obj/item/weapon/reagent_containers/food/drinks/ice = 10)
|
||||
prices = list(/obj/item/weapon/reagent_containers/food/drinks/coffee = 3, /obj/item/weapon/reagent_containers/food/drinks/tea = 3, /obj/item/weapon/reagent_containers/food/drinks/h_chocolate = 3)
|
||||
|
||||
|
||||
|
||||
|
||||
/obj/machinery/vending/snack
|
||||
name = "Getmore Chocolate Corp"
|
||||
desc = "A snack machine courtesy of the Getmore Chocolate Corporation, based out of Mars."
|
||||
@@ -714,8 +759,6 @@
|
||||
/obj/item/weapon/reagent_containers/food/snacks/sosjerky = 2,/obj/item/weapon/reagent_containers/food/snacks/no_raisin = 1,/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie = 1,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 1, /obj/item/weapon/reagent_containers/food/snacks/tastybread = 2, /obj/item/weapon/reagent_containers/food/snacks/skrellsnacks = 4)
|
||||
|
||||
|
||||
|
||||
/obj/machinery/vending/cola
|
||||
name = "Robust Softdrinks"
|
||||
desc = "A softdrink vendor provided by Robust Industries, LLC."
|
||||
@@ -768,7 +811,8 @@
|
||||
products = list(/obj/item/weapon/cartridge/medical = 10,/obj/item/weapon/cartridge/engineering = 10,/obj/item/weapon/cartridge/security = 10,
|
||||
/obj/item/weapon/cartridge/janitor = 10,/obj/item/weapon/cartridge/signal/science = 10,/obj/item/device/pda/heads = 10,
|
||||
/obj/item/weapon/cartridge/captain = 3,/obj/item/weapon/cartridge/quartermaster = 10)
|
||||
|
||||
req_log_access = access_hop
|
||||
has_logs = 1
|
||||
|
||||
/obj/machinery/vending/cigarette
|
||||
name = "Cigarette machine" //OCD had to be uppercase to look nice with the new formating
|
||||
@@ -798,7 +842,6 @@
|
||||
/obj/item/weapon/storage/box/matches = 1,
|
||||
/obj/item/weapon/flame/lighter/random = 2)
|
||||
|
||||
|
||||
/obj/machinery/vending/medical
|
||||
name = "NanoMed Plus"
|
||||
desc = "Medical drug dispenser."
|
||||
@@ -814,7 +857,8 @@
|
||||
/obj/item/weapon/storage/box/khcrystal = 4) //VOREStation Add
|
||||
contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3,/obj/item/weapon/reagent_containers/pill/stox = 4,/obj/item/weapon/reagent_containers/pill/antitox = 6)
|
||||
idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan.
|
||||
|
||||
req_log_access = access_cmo
|
||||
has_logs = 1
|
||||
|
||||
//This one's from bay12
|
||||
/obj/machinery/vending/phoronresearch
|
||||
@@ -823,6 +867,8 @@
|
||||
products = list(/obj/item/clothing/under/rank/scientist = 6,/obj/item/clothing/suit/bio_suit = 6,/obj/item/clothing/head/bio_hood = 6,
|
||||
/obj/item/device/transfer_valve = 6,/obj/item/device/assembly/timer = 6,/obj/item/device/assembly/signaler = 6,
|
||||
/obj/item/device/assembly/prox_sensor = 6,/obj/item/device/assembly/igniter = 6)
|
||||
req_log_access = access_rd
|
||||
has_logs = 1
|
||||
|
||||
/obj/machinery/vending/wallmed1
|
||||
name = "NanoMed"
|
||||
@@ -833,6 +879,8 @@
|
||||
density = 0 //It is wall-mounted, and thus, not dense. --Superxpdude
|
||||
products = list(/obj/item/stack/medical/bruise_pack = 2,/obj/item/stack/medical/ointment = 2,/obj/item/weapon/reagent_containers/hypospray/autoinjector = 4,/obj/item/device/healthanalyzer = 1)
|
||||
contraband = list(/obj/item/weapon/reagent_containers/syringe/antitoxin = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/pill/tox = 1)
|
||||
req_log_access = access_cmo
|
||||
has_logs = 1
|
||||
|
||||
/obj/machinery/vending/wallmed2
|
||||
name = "NanoMed"
|
||||
@@ -843,6 +891,8 @@
|
||||
products = list(/obj/item/weapon/reagent_containers/hypospray/autoinjector = 5,/obj/item/weapon/reagent_containers/syringe/antitoxin = 3,/obj/item/stack/medical/bruise_pack = 3,
|
||||
/obj/item/stack/medical/ointment =3,/obj/item/device/healthanalyzer = 3)
|
||||
contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3)
|
||||
req_log_access = access_cmo
|
||||
has_logs = 1
|
||||
|
||||
/obj/machinery/vending/security
|
||||
name = "SecTech"
|
||||
@@ -854,6 +904,8 @@
|
||||
products = list(/obj/item/weapon/handcuffs = 8,/obj/item/weapon/grenade/flashbang = 4,/obj/item/device/flash = 5,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/donut/normal = 12,/obj/item/weapon/storage/box/evidence = 6)
|
||||
contraband = list(/obj/item/clothing/glasses/sunglasses = 2,/obj/item/weapon/storage/box/donut = 2)
|
||||
req_log_access = access_armory
|
||||
has_logs = 1
|
||||
|
||||
/obj/machinery/vending/hydronutrients
|
||||
name = "NutriMax"
|
||||
@@ -945,8 +997,6 @@
|
||||
/obj/item/weapon/storage/toolbox/lunchbox/cti = 3,
|
||||
/obj/item/weapon/storage/toolbox/lunchbox/nymph = 3,
|
||||
/obj/item/weapon/storage/toolbox/lunchbox/syndicate = 3)
|
||||
|
||||
|
||||
contraband = list(/obj/item/weapon/material/knife/butch = 2)
|
||||
|
||||
/obj/machinery/vending/sovietsoda
|
||||
@@ -970,6 +1020,8 @@
|
||||
/obj/item/device/flashlight/glowstick/orange =3, /obj/item/device/flashlight/glowstick/yellow = 3)
|
||||
contraband = list(/obj/item/weapon/weldingtool/hugetank = 2,/obj/item/clothing/gloves/fyellow = 2,)
|
||||
premium = list(/obj/item/clothing/gloves/yellow = 1)
|
||||
req_log_access = access_ce
|
||||
has_logs = 1
|
||||
|
||||
/obj/machinery/vending/engivend
|
||||
name = "Engi-Vend"
|
||||
@@ -991,6 +1043,8 @@
|
||||
contraband = list(/obj/item/weapon/cell/potato = 3)
|
||||
premium = list(/obj/item/weapon/storage/belt/utility = 3)
|
||||
product_records = list()
|
||||
req_log_access = access_ce
|
||||
has_logs = 1
|
||||
|
||||
//This one's from bay12
|
||||
/obj/machinery/vending/engineering
|
||||
@@ -1008,6 +1062,8 @@
|
||||
// There was an incorrect entry (cablecoil/power). I improvised to cablecoil/heavyduty.
|
||||
// Another invalid entry, /obj/item/weapon/circuitry. I don't even know what that would translate to, removed it.
|
||||
// The original products list wasn't finished. The ones without given quantities became quantity 5. -Sayu
|
||||
req_log_access = access_ce
|
||||
has_logs = 1
|
||||
|
||||
//This one's from bay12
|
||||
/obj/machinery/vending/robotics
|
||||
@@ -1018,6 +1074,8 @@
|
||||
req_access = list(access_robotics)
|
||||
products = list(/obj/item/clothing/suit/storage/toggle/labcoat = 4,/obj/item/clothing/under/rank/roboticist = 4,/obj/item/stack/cable_coil = 4,/obj/item/device/flash = 4,
|
||||
/obj/item/weapon/cell/high = 12, /obj/item/device/assembly/prox_sensor = 3,/obj/item/device/assembly/signaler = 3,/obj/item/device/healthanalyzer = 3,
|
||||
/obj/item/weapon/scalpel = 2,/obj/item/weapon/circular_saw = 2,/obj/item/weapon/tank/anesthetic = 2,/obj/item/clothing/mask/breath/medical = 5,
|
||||
/obj/item/weapon/surgical/scalpel = 2,/obj/item/weapon/surgical/circular_saw = 2,/obj/item/weapon/tank/anesthetic = 2,/obj/item/clothing/mask/breath/medical = 5,
|
||||
/obj/item/weapon/screwdriver = 5,/obj/item/weapon/crowbar = 5)
|
||||
//everything after the power cell had no amounts, I improvised. -Sayu
|
||||
req_log_access = access_rd
|
||||
has_logs = 1
|
||||
@@ -808,7 +808,8 @@
|
||||
var/total_phoronloss = 0
|
||||
for(var/obj/item/I in src)
|
||||
if(I.contaminated)
|
||||
total_phoronloss += vsc.plc.CONTAMINATION_LOSS
|
||||
if(src.species && src.species.get_bodytype() != "Vox")
|
||||
total_phoronloss += vsc.plc.CONTAMINATION_LOSS
|
||||
if(!(status_flags & GODMODE)) adjustToxLoss(total_phoronloss)
|
||||
|
||||
if(status_flags & GODMODE) return 0 //godmode
|
||||
@@ -1335,11 +1336,9 @@
|
||||
if(istype(G, /obj/item/clothing/glasses/sunglasses/sechud))
|
||||
var/obj/item/clothing/glasses/sunglasses/sechud/S = G
|
||||
O = S.hud
|
||||
//VOREStation Add - Support for omnihud glasses
|
||||
if(istype(G, /obj/item/clothing/glasses/sunglasses/omnihud))
|
||||
var/obj/item/clothing/glasses/sunglasses/omnihud/S = G
|
||||
O = S.hud
|
||||
//VOREStation Add End
|
||||
if(istype(G, /obj/item/clothing/glasses/sunglasses/medhud))
|
||||
var/obj/item/clothing/glasses/sunglasses/medhud/M = G
|
||||
O = M.hud
|
||||
if(istype(O))
|
||||
O.process_hud(src)
|
||||
if(!druggy && !seer) see_invisible = SEE_INVISIBLE_LIVING
|
||||
|
||||
@@ -28,9 +28,9 @@ var/datum/species/shapeshifter/promethean/prometheans
|
||||
breath_type = null
|
||||
poison_type = null
|
||||
|
||||
// gluttonous = 2 // Vorestation edit. Redundant feature.
|
||||
// gluttonous = 1 // Vorestation edit. Redundant feature.
|
||||
virus_immune = 1
|
||||
blood_volume = 600
|
||||
blood_volume = 560
|
||||
min_age = 1
|
||||
max_age = 5
|
||||
brute_mod = 0.5
|
||||
@@ -73,7 +73,8 @@ var/datum/species/shapeshifter/promethean/prometheans
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_shape,
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_colour,
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_hair,
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_gender
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_gender,
|
||||
/mob/living/carbon/human/proc/regenerate
|
||||
)
|
||||
|
||||
valid_transform_species = list("Human", "Unathi", "Tajara", "Skrell", "Diona", "Teshari", "Monkey")
|
||||
@@ -130,42 +131,14 @@ var/datum/species/shapeshifter/promethean/prometheans
|
||||
var/obj/effect/decal/cleanable/C = locate() in T
|
||||
if(C)
|
||||
qdel(C)
|
||||
//TODO: gain nutriment
|
||||
|
||||
// Regenerate limbs and heal damage if we have any. Copied from Bay xenos code.
|
||||
|
||||
// Theoretically the only internal organ a slime will have
|
||||
// is the slime core. but we might as well be thorough.
|
||||
for(var/obj/item/organ/I in H.internal_organs)
|
||||
if(I.damage > 0)
|
||||
I.damage = max(I.damage - heal_rate, 0)
|
||||
if (prob(5))
|
||||
H << "<span class='notice'>You feel a soothing sensation within your [I.name]...</span>"
|
||||
return 1
|
||||
|
||||
// Replace completely missing limbs.
|
||||
for(var/limb_type in has_limbs)
|
||||
var/obj/item/organ/external/E = H.organs_by_name[limb_type]
|
||||
if(E && (E.is_stump() || (E.status & (ORGAN_DESTROYED|ORGAN_DEAD|ORGAN_MUTATED))))
|
||||
E.removed()
|
||||
qdel(E)
|
||||
E = null
|
||||
if(!E)
|
||||
var/list/organ_data = has_limbs[limb_type]
|
||||
var/limb_path = organ_data["path"]
|
||||
var/obj/item/organ/O = new limb_path(H)
|
||||
organ_data["descriptor"] = O.name
|
||||
H << "<span class='notice'>You feel a slithering sensation as your [O.name] reforms.</span>"
|
||||
H.update_body()
|
||||
return 1
|
||||
H.nutrition += rand(15, 45)
|
||||
|
||||
// Heal remaining damage.
|
||||
if (H.getBruteLoss() || H.getFireLoss() || H.getOxyLoss() || H.getToxLoss())
|
||||
if(H.getBruteLoss() || H.getFireLoss() || H.getOxyLoss() || H.getToxLoss())
|
||||
H.adjustBruteLoss(-heal_rate)
|
||||
H.adjustFireLoss(-heal_rate)
|
||||
H.adjustOxyLoss(-heal_rate)
|
||||
H.adjustToxLoss(-heal_rate)
|
||||
return 1
|
||||
|
||||
/datum/species/shapeshifter/promethean/get_blood_colour(var/mob/living/carbon/human/H)
|
||||
return (H ? rgb(H.r_skin, H.g_skin, H.b_skin) : ..())
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
interests, rampant cyber and bio-augmentation and secretive factions make life on most human \
|
||||
worlds tumultous at best."
|
||||
num_alternate_languages = 3
|
||||
secondary_langs = list("Sol Common")
|
||||
secondary_langs = list(LANGUAGE_SOL_COMMON)
|
||||
name_language = null // Use the first-name last-name generator rather than a language scrambler
|
||||
min_age = 17
|
||||
max_age = 110
|
||||
@@ -36,8 +36,8 @@
|
||||
slowdown = 0.5
|
||||
brute_mod = 0.8
|
||||
num_alternate_languages = 3
|
||||
secondary_langs = list("Sinta'unathi")
|
||||
name_language = "Sinta'unathi"
|
||||
secondary_langs = list(LANGUAGE_UNATHI)
|
||||
name_language = LANGUAGE_UNATHI
|
||||
health_hud_intensity = 2.5
|
||||
|
||||
min_age = 18
|
||||
@@ -95,10 +95,11 @@
|
||||
slowdown = -0.5
|
||||
brute_mod = 1.15
|
||||
burn_mod = 1.15
|
||||
// gluttonous = 1 // Vorestation edit. Redundant feature.
|
||||
metabolic_rate = 1.1
|
||||
gluttonous = 1
|
||||
num_alternate_languages = 3
|
||||
secondary_langs = list("Siik")
|
||||
name_language = "Siik"
|
||||
secondary_langs = list(LANGUAGE_SIIK)
|
||||
name_language = LANGUAGE_SIIK
|
||||
health_hud_intensity = 2.5
|
||||
|
||||
min_age = 17
|
||||
@@ -152,8 +153,8 @@
|
||||
herbivores on the whole and tend to be co-operative with the other species of the galaxy, although they rarely reveal \
|
||||
the secrets of their empire to their allies."
|
||||
num_alternate_languages = 3
|
||||
secondary_langs = list("Skrellian", "Schechi")
|
||||
name_language = "Skrellian"
|
||||
secondary_langs = list(LANGUAGE_SKRELLIAN, LANGUAGE_SCHECHI)
|
||||
name_language = LANGUAGE_SKRELLIAN
|
||||
health_hud_intensity = 2
|
||||
|
||||
min_age = 19
|
||||
@@ -197,7 +198,7 @@
|
||||
name_plural = "Dionaea"
|
||||
icobase = 'icons/mob/human_races/r_diona.dmi'
|
||||
deform = 'icons/mob/human_races/r_def_plant.dmi'
|
||||
language = "Rootspeak"
|
||||
language = LANGUAGE_ROOTLOCAL
|
||||
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/diona)
|
||||
//primitive_form = "Nymph"
|
||||
slowdown = 5
|
||||
@@ -206,7 +207,8 @@
|
||||
siemens_coefficient = 0.3
|
||||
show_ssd = "completely quiescent"
|
||||
num_alternate_languages = 2
|
||||
name_language = "Rootspeak"
|
||||
secondary_langs = list(LANGUAGE_ROOTGLOBAL)
|
||||
name_language = LANGUAGE_ROOTLOCAL
|
||||
health_hud_intensity = 2.5
|
||||
|
||||
min_age = 1
|
||||
@@ -244,7 +246,8 @@
|
||||
)
|
||||
|
||||
inherent_verbs = list(
|
||||
/mob/living/carbon/human/proc/diona_split_nymph
|
||||
/mob/living/carbon/human/proc/diona_split_nymph,
|
||||
/mob/living/carbon/human/proc/regenerate
|
||||
)
|
||||
|
||||
warning_low_pressure = 50
|
||||
|
||||
@@ -299,6 +299,7 @@
|
||||
icobase = 'icons/mob/human_races/r_tajaran_vr.dmi'
|
||||
deform = 'icons/mob/human_races/r_def_tajaran_vr.dmi'
|
||||
min_age = 18
|
||||
gluttonous = 0 //Moving this here so I don't have to fix this conflict every time polaris glances at station.dm
|
||||
|
||||
/datum/species/skrell
|
||||
spawn_flags = SPECIES_CAN_JOIN
|
||||
|
||||
@@ -93,6 +93,7 @@ h1.alert, h2.alert {color: #000000;}
|
||||
.sergal {color: #0077FF;}
|
||||
.birdsongc {color: #CC9900;}
|
||||
.vulpkanin {color: #B97A57;}
|
||||
.vox {color: #AA00AA;}
|
||||
.rough {font-family: "Trebuchet MS", cursive, sans-serif;}
|
||||
.say_quote {font-family: Georgia, Verdana, sans-serif;}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user