diff --git a/code/datums/roundstats/roundstats.dm b/code/datums/roundstats/roundstats.dm index 6a4c3b09931..e1b511837b0 100644 --- a/code/datums/roundstats/roundstats.dm +++ b/code/datums/roundstats/roundstats.dm @@ -25,6 +25,8 @@ GLOBAL_VAR_INIT(prey_eaten_roundstat, 0) //VOREStation Edit - Obviously GLOBAL_VAR_INIT(prey_absorbed_roundstat, 0) //VOREStation Edit - Obviously GLOBAL_VAR_INIT(prey_digested_roundstat, 0) //VOREStation Edit - Obviously GLOBAL_VAR_INIT(items_digested_roundstat, 0) //VOREStation Edit - Obviously +GLOBAL_VAR_INIT(security_ticket_counter, 0) //VOREStation Edit +GLOBAL_LIST_EMPTY(security_tickets) //VOREStation Edit /hook/roundend/proc/RoundTrivia()//bazinga var/list/valid_stats_list = list() //This is to be populated with the good shit @@ -54,6 +56,26 @@ GLOBAL_VAR_INIT(items_digested_roundstat, 0) //VOREStation Edit - Obviously else if(GLOB.disposals_flush_shift_roundstat > 40) valid_stats_list.Add("The disposal system flushed a whole [GLOB.disposals_flush_shift_roundstat] times for this shift. We should really invest in waste treatement.") + //VOREStation add Start - Ticket time! + if(GLOB.security_ticket_counter > 0) + valid_stats_list.Add("[GLOB.security_ticket_counter] tickets were issued today!") + var/ourticket = pick(GLOB.security_tickets) + ourticket = null + GLOB.security_tickets -= ourticket + if(ourticket) + valid_stats_list.Add("\"[ourticket]\"") + ourticket = pick(GLOB.security_tickets) + GLOB.security_tickets -= ourticket + ourticket = null + if(ourticket) + valid_stats_list.Add("\"[ourticket]\"") + ourticket = pick(GLOB.security_tickets) + GLOB.security_tickets -= ourticket + ourticket = null + if(ourticket) + valid_stats_list.Add("\"[ourticket]\"") + ourticket = pick(GLOB.security_tickets) + //VOREStation Add Start - Vore stats lets gooooo if(GLOB.prey_eaten_roundstat > 0) valid_stats_list.Add("A total of [GLOB.prey_eaten_roundstat] individuals were eaten today!") diff --git a/code/game/objects/items/devices/ticket_printer.dm b/code/game/objects/items/devices/ticket_printer.dm new file mode 100644 index 00000000000..0cd4ef59695 --- /dev/null +++ b/code/game/objects/items/devices/ticket_printer.dm @@ -0,0 +1,50 @@ +/obj/item/device/ticket_printer + name = "ticket printer" + desc = "It prints security citations!" + icon = 'icons/obj/device_vr.dmi' + icon_state = "sec_ticket_printer" + var/print_cooldown = 1 MINUTE + var/last_print + +/obj/item/device/ticket_printer/attack_self(mob/user) + . = ..() + if(last_print + print_cooldown <= world.time) + print_a_ticket(user) + else + to_chat(user, "\The [src] is not ready to print another ticket yet.") + +/obj/item/device/ticket_printer/proc/print_a_ticket(mob/user) + + var/ticket_name = sanitize(tgui_input_text(user, "The Name of the person you are issuing the ticket to.", "Name", max_length = 100)) + + var/details = sanitize(tgui_input_text(user, "What is the ticket for? Avoid entering personally identafiable information in this section. (Max length: 200)", "Ticket Details", max_length = 200)) + + var/turf/our_turf = get_turf(user) + + var/final = "

Nanotrasen Security Citation


This security citation has been issued to
[capitalize(ticket_name)]
Reason:
[details]
See your local representative at Central Command after the shift is over to resolve this issue.
" + + var/obj/item/weapon/paper/sec_ticket/p = new /obj/item/weapon/paper/sec_ticket(our_turf) + + p.info = final + p.name = "Security Citation: [ticket_name]" + + GLOB.security_tickets |= details + GLOB.security_ticket_counter++ + log_and_message_admins("has issued '[ticket_name]' a security citation: \"[details]\"", user) + last_print = world.time + playsound(src, 'sound/items/ticket_printer.ogg', vary = TRUE) + +/obj/item/weapon/paper/sec_ticket + name = "Security Citation" + desc = "A citation issued by security for some kind of infraction!" + icon = 'icons/obj/bureaucracy_vr.dmi' + icon_state = "sec_ticket" + +/obj/item/weapon/paper/sec_ticket/Initialize(mapload, text, title) + . = ..() + icon = 'icons/obj/bureaucracy_vr.dmi' + icon_state = "sec_ticket" + +/obj/item/weapon/paper/sec_ticket/update_icon() + icon = icon + icon_state = icon_state diff --git a/icons/obj/bureaucracy_vr.dmi b/icons/obj/bureaucracy_vr.dmi new file mode 100644 index 00000000000..af9c5d51a13 Binary files /dev/null and b/icons/obj/bureaucracy_vr.dmi differ diff --git a/icons/obj/device_vr.dmi b/icons/obj/device_vr.dmi index 1a1c28af569..43f66107829 100644 Binary files a/icons/obj/device_vr.dmi and b/icons/obj/device_vr.dmi differ diff --git a/sound/items/ticket_printer.ogg b/sound/items/ticket_printer.ogg new file mode 100644 index 00000000000..2f2735c238a Binary files /dev/null and b/sound/items/ticket_printer.ogg differ diff --git a/vorestation.dme b/vorestation.dme index 30d640d61ba..a159fff3014 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1214,6 +1214,7 @@ #include "code\game\objects\items\devices\t_scanner.dm" #include "code\game\objects\items\devices\taperecorder.dm" #include "code\game\objects\items\devices\text_to_speech.dm" +#include "code\game\objects\items\devices\ticket_printer.dm" #include "code\game\objects\items\devices\traitordevices.dm" #include "code\game\objects\items\devices\transfer_valve.dm" #include "code\game\objects\items\devices\translator.dm"