mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-22 03:27:46 +01:00
game collection (#19179)
* game collection * no phased usage * . * spellcheck * chesskers * fixes runtime during del --------- Co-authored-by: Cameron Lennox <killer65311@gmail.com>
This commit is contained in:
co-authored by
Cameron Lennox
parent
db0636c8d1
commit
0fc8ccc50e
@@ -72,7 +72,7 @@
|
||||
pda.current_app = src
|
||||
return 1
|
||||
|
||||
/datum/data/pda/app/proc/update_ui(mob/user as mob, list/data)
|
||||
/datum/data/pda/app/proc/update_ui(mob/user, list/data)
|
||||
|
||||
|
||||
// Utilities just have a button on the home screen, but custom code when clicked
|
||||
@@ -104,6 +104,6 @@
|
||||
pda.update_shortcuts()
|
||||
return 1
|
||||
|
||||
/datum/data/pda/utility/scanmode/proc/scan_mob(mob/living/C as mob, mob/living/user as mob)
|
||||
/datum/data/pda/utility/scanmode/proc/scan_mob(mob/living/C, mob/living/user)
|
||||
|
||||
/datum/data/pda/utility/scanmode/proc/scan_atom(atom/A as mob|obj|turf|area, mob/user as mob)
|
||||
/datum/data/pda/utility/scanmode/proc/scan_atom(atom/A, mob/user)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
var/message1 // used for status_displays
|
||||
var/message2
|
||||
|
||||
/datum/data/pda/app/status_display/update_ui(mob/user as mob, list/data)
|
||||
/datum/data/pda/app/status_display/update_ui(mob/user, list/data)
|
||||
data["records"] = list(
|
||||
"message1" = message1 ? message1 : "(none)",
|
||||
"message2" = message2 ? message2 : "(none)")
|
||||
@@ -63,7 +63,7 @@
|
||||
template = "pda_signaller"
|
||||
category = "Utilities"
|
||||
|
||||
/datum/data/pda/app/signaller/update_ui(mob/user as mob, list/data)
|
||||
/datum/data/pda/app/signaller/update_ui(mob/user, list/data)
|
||||
if(pda.cartridge && istype(pda.cartridge.radio, /obj/item/radio/integrated/signal))
|
||||
var/obj/item/radio/integrated/signal/R = pda.cartridge.radio
|
||||
data["frequency"] = R.frequency
|
||||
@@ -112,7 +112,7 @@
|
||||
QDEL_NULL(power_monitor)
|
||||
return ..()
|
||||
|
||||
/datum/data/pda/app/power/update_ui(mob/user as mob, list/data)
|
||||
/datum/data/pda/app/power/update_ui(mob/user, list/data)
|
||||
data.Add(power_monitor.tgui_data(user))
|
||||
|
||||
/datum/data/pda/app/power/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state)
|
||||
@@ -128,7 +128,7 @@
|
||||
/datum/data/pda/app/crew_records
|
||||
var/datum/data/record/general_records = null
|
||||
|
||||
/datum/data/pda/app/crew_records/update_ui(mob/user as mob, list/data)
|
||||
/datum/data/pda/app/crew_records/update_ui(mob/user, list/data)
|
||||
var/list/records[0]
|
||||
|
||||
if(general_records && (general_records in GLOB.data_core.general))
|
||||
@@ -169,7 +169,7 @@
|
||||
|
||||
var/datum/data/record/medical_records = null
|
||||
|
||||
/datum/data/pda/app/crew_records/medical/update_ui(mob/user as mob, list/data)
|
||||
/datum/data/pda/app/crew_records/medical/update_ui(mob/user, list/data)
|
||||
var/list/records = ..()
|
||||
if(!records)
|
||||
return
|
||||
@@ -194,7 +194,7 @@
|
||||
|
||||
var/datum/data/record/security_records = null
|
||||
|
||||
/datum/data/pda/app/crew_records/security/update_ui(mob/user as mob, list/data)
|
||||
/datum/data/pda/app/crew_records/security/update_ui(mob/user, list/data)
|
||||
var/list/records = ..()
|
||||
if(!records)
|
||||
return
|
||||
@@ -217,7 +217,7 @@
|
||||
template = "pda_supply"
|
||||
category = "Quartermaster"
|
||||
|
||||
/datum/data/pda/app/supply/update_ui(mob/user as mob, list/data)
|
||||
/datum/data/pda/app/supply/update_ui(mob/user, list/data)
|
||||
var/supplyData[0]
|
||||
var/datum/shuttle/autodock/ferry/supply/shuttle = SSsupply.shuttle
|
||||
if (shuttle)
|
||||
@@ -254,7 +254,7 @@
|
||||
template = "pda_janitor"
|
||||
category = "Utilities"
|
||||
|
||||
/datum/data/pda/app/janitor/update_ui(mob/user as mob, list/data)
|
||||
/datum/data/pda/app/janitor/update_ui(mob/user, list/data)
|
||||
var/JaniData[0]
|
||||
var/turf/cl = get_turf(pda)
|
||||
|
||||
|
||||
@@ -32,15 +32,15 @@
|
||||
hold.max_storage_space = slots * 2
|
||||
hold.max_w_class = ITEMSIZE_SMALL
|
||||
|
||||
/obj/item/cartridge/storage/attack_hand(mob/user as mob)
|
||||
/obj/item/cartridge/storage/attack_hand(mob/user)
|
||||
if (hold.handle_attack_hand(user)) //otherwise interact as a regular storage item
|
||||
..(user)
|
||||
|
||||
/obj/item/cartridge/storage/attackby(obj/item/W as obj, mob/user as mob)
|
||||
/obj/item/cartridge/storage/attackby(obj/item/W, mob/user)
|
||||
..()
|
||||
return hold.attackby(W, user)
|
||||
|
||||
/obj/item/cartridge/storage/MouseDrop(obj/over_object as obj)
|
||||
/obj/item/cartridge/storage/MouseDrop(obj/over_object)
|
||||
if (hold.handle_mousedrop(usr, over_object))
|
||||
..(over_object)
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
template = "pda_main_menu"
|
||||
hidden = 1
|
||||
|
||||
/datum/data/pda/app/main_menu/update_ui(mob/user as mob, list/data)
|
||||
/datum/data/pda/app/main_menu/update_ui(mob/user, list/data)
|
||||
title = pda.name
|
||||
|
||||
data["app"]["is_home"] = 1
|
||||
@@ -63,7 +63,7 @@
|
||||
note = "Thank you for choosing the [pda.model_name]!"
|
||||
notetitle = "Congratulations!"
|
||||
|
||||
/datum/data/pda/app/notekeeper/update_ui(mob/user as mob, list/data)
|
||||
/datum/data/pda/app/notekeeper/update_ui(mob/user, list/data)
|
||||
data["note"] = note // current pda notes
|
||||
data["notename"] = "Note [GLOB.alphabet_upper[currentnote]] : [notetitle]"
|
||||
|
||||
@@ -206,7 +206,7 @@
|
||||
icon = "user"
|
||||
template = "pda_manifest"
|
||||
|
||||
/datum/data/pda/app/manifest/update_ui(mob/user as mob, list/data)
|
||||
/datum/data/pda/app/manifest/update_ui(mob/user, list/data)
|
||||
if(GLOB.data_core)
|
||||
GLOB.data_core.get_manifest_list()
|
||||
data["manifest"] = GLOB.PDA_Manifest
|
||||
@@ -221,7 +221,7 @@
|
||||
template = "pda_atmos_scan"
|
||||
category = "Utilities"
|
||||
|
||||
/datum/data/pda/app/atmos_scanner/update_ui(mob/user as mob, list/data)
|
||||
/datum/data/pda/app/atmos_scanner/update_ui(mob/user, list/data)
|
||||
data["aircontents"] = get_gas_mixture_default_scan_data(get_turf(user))
|
||||
|
||||
/datum/data/pda/app/news
|
||||
@@ -231,7 +231,7 @@
|
||||
|
||||
var/newsfeed_channel
|
||||
|
||||
/datum/data/pda/app/news/update_ui(mob/user as mob, list/data)
|
||||
/datum/data/pda/app/news/update_ui(mob/user, list/data)
|
||||
data["feeds"] = compile_news()
|
||||
data["latest_news"] = get_recent_news()
|
||||
if(newsfeed_channel)
|
||||
|
||||
@@ -0,0 +1,125 @@
|
||||
/datum/data/pda/app/game_launcher
|
||||
name = "Game Launcher"
|
||||
icon = "dice"
|
||||
notify_icon = "dice-d20"
|
||||
title = "Game Launcher V1.0"
|
||||
template = "pda_game_launcher"
|
||||
|
||||
var/datum/board_game/vore_sweeper/voresweeper
|
||||
var/datum/board_game/four_row/fourrow
|
||||
var/datum/board_game/space_battle/spacebattle
|
||||
var/datum/board_game/rpg_dice/rpgdice
|
||||
var/datum/board_game/chess/chess
|
||||
var/datum/board_game/checkers/checkers
|
||||
var/datum/board_game/nine_mens/ninemens
|
||||
var/datum/board_game/four_row/tic_tac_toe/tictactoe
|
||||
|
||||
/datum/data/pda/app/game_launcher/update_ui(mob/user, list/data)
|
||||
data["available_games"] = list(GAME_SWEEPER = voresweeper, GAME_FOUR_ROW = fourrow, GAME_SPACE_BATTLE = spacebattle, GAME_RGP_DICE = rpgdice, GAME_CHESS = chess, GAME_CHECKERS = checkers, GAME_NINE_MENS_MORRIS = ninemens, GAME_TIC_TAC_TOE = tictactoe)
|
||||
|
||||
/datum/data/pda/app/game_launcher/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state)
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
|
||||
switch(action)
|
||||
if(GAME_SWEEPER)
|
||||
if(params["close"])
|
||||
if(!voresweeper)
|
||||
return FALSE
|
||||
QDEL_NULL(voresweeper)
|
||||
return TRUE
|
||||
if(!voresweeper)
|
||||
voresweeper = new(pda)
|
||||
voresweeper.tgui_interact(ui.user)
|
||||
return TRUE
|
||||
if(GAME_FOUR_ROW)
|
||||
if(params["close"])
|
||||
if(!fourrow)
|
||||
return FALSE
|
||||
QDEL_NULL(fourrow)
|
||||
return TRUE
|
||||
if(!fourrow)
|
||||
fourrow = new(pda)
|
||||
fourrow.tgui_interact(ui.user)
|
||||
return TRUE
|
||||
if(GAME_SPACE_BATTLE)
|
||||
if(params["close"])
|
||||
if(!spacebattle)
|
||||
return FALSE
|
||||
QDEL_NULL(spacebattle)
|
||||
return TRUE
|
||||
if(!spacebattle)
|
||||
spacebattle = new(pda)
|
||||
spacebattle.tgui_interact(ui.user)
|
||||
return TRUE
|
||||
if(GAME_RGP_DICE)
|
||||
if(params["close"])
|
||||
if(!rpgdice)
|
||||
return FALSE
|
||||
QDEL_NULL(rpgdice)
|
||||
return TRUE
|
||||
if(!rpgdice)
|
||||
rpgdice = new(pda)
|
||||
rpgdice.tgui_interact(ui.user)
|
||||
return TRUE
|
||||
if(GAME_CHESS)
|
||||
if(params["close"])
|
||||
if(!chess)
|
||||
return FALSE
|
||||
QDEL_NULL(chess)
|
||||
return TRUE
|
||||
if(!chess)
|
||||
chess = new(pda)
|
||||
chess.tgui_interact(ui.user)
|
||||
return TRUE
|
||||
if(GAME_CHECKERS)
|
||||
if(params["close"])
|
||||
if(!checkers)
|
||||
return FALSE
|
||||
QDEL_NULL(checkers)
|
||||
return TRUE
|
||||
if(!checkers)
|
||||
checkers = new(pda)
|
||||
checkers.tgui_interact(ui.user)
|
||||
return TRUE
|
||||
if(GAME_NINE_MENS_MORRIS)
|
||||
if(params["close"])
|
||||
if(!ninemens)
|
||||
return FALSE
|
||||
QDEL_NULL(ninemens)
|
||||
return TRUE
|
||||
if(!ninemens)
|
||||
ninemens = new(pda)
|
||||
ninemens.tgui_interact(ui.user)
|
||||
return TRUE
|
||||
if(GAME_TIC_TAC_TOE)
|
||||
if(params["close"])
|
||||
if(!tictactoe)
|
||||
return FALSE
|
||||
QDEL_NULL(tictactoe)
|
||||
return TRUE
|
||||
if(!tictactoe)
|
||||
tictactoe = new(pda)
|
||||
tictactoe.tgui_interact(ui.user)
|
||||
return TRUE
|
||||
return TRUE
|
||||
|
||||
/datum/data/pda/app/game_launcher/Destroy()
|
||||
if(voresweeper)
|
||||
QDEL_NULL(voresweeper)
|
||||
if(fourrow)
|
||||
QDEL_NULL(fourrow)
|
||||
if(spacebattle)
|
||||
QDEL_NULL(spacebattle)
|
||||
if(rpgdice)
|
||||
QDEL_NULL(rpgdice)
|
||||
if(chess)
|
||||
QDEL_NULL(chess)
|
||||
if(checkers)
|
||||
QDEL_NULL(checkers)
|
||||
if(checkers)
|
||||
QDEL_NULL(ninemens)
|
||||
if(tictactoe)
|
||||
QDEL_NULL(tictactoe)
|
||||
. = ..()
|
||||
@@ -18,7 +18,7 @@
|
||||
. = ..()
|
||||
unnotify()
|
||||
|
||||
/datum/data/pda/app/messenger/update_ui(mob/user as mob, list/data)
|
||||
/datum/data/pda/app/messenger/update_ui(mob/user, list/data)
|
||||
data["silent"] = notify_silent // does the pda make noise when it receives a message?
|
||||
data["toff"] = toff // is the messenger function turned off?
|
||||
data["active_conversation"] = active_conversation // Which conversation are we following right now?
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
/datum/data/pda/messenger_plugin
|
||||
var/datum/data/pda/app/messenger/messenger
|
||||
|
||||
/datum/data/pda/messenger_plugin/proc/user_act(mob/user as mob, obj/item/pda/P)
|
||||
/datum/data/pda/messenger_plugin/proc/user_act(mob/user, obj/item/pda/P)
|
||||
|
||||
|
||||
/datum/data/pda/messenger_plugin/virus
|
||||
name = "*Send Virus*"
|
||||
|
||||
/datum/data/pda/messenger_plugin/virus/user_act(mob/user as mob, obj/item/pda/P)
|
||||
/datum/data/pda/messenger_plugin/virus/user_act(mob/user, obj/item/pda/P)
|
||||
var/datum/data/pda/app/messenger/M = P.find_program(/datum/data/pda/app/messenger)
|
||||
|
||||
if(M && !M.toff && pda.cartridge.charges > 0)
|
||||
@@ -19,7 +19,7 @@
|
||||
/datum/data/pda/messenger_plugin/virus/clown
|
||||
icon = "star"
|
||||
|
||||
/datum/data/pda/messenger_plugin/virus/clown/user_act(mob/user as mob, obj/item/pda/P)
|
||||
/datum/data/pda/messenger_plugin/virus/clown/user_act(mob/user, obj/item/pda/P)
|
||||
. = ..(user, P)
|
||||
if(.)
|
||||
user.show_message(span_notice("Virus sent!"), 1)
|
||||
@@ -30,7 +30,7 @@
|
||||
/datum/data/pda/messenger_plugin/virus/mime
|
||||
icon = "arrow-circle-down"
|
||||
|
||||
/datum/data/pda/messenger_plugin/virus/mime/user_act(mob/user as mob, obj/item/pda/P)
|
||||
/datum/data/pda/messenger_plugin/virus/mime/user_act(mob/user, obj/item/pda/P)
|
||||
. = ..(user, P)
|
||||
if(.)
|
||||
user.show_message(span_notice("Virus sent!"), 1)
|
||||
@@ -44,7 +44,7 @@
|
||||
name = "*Detonate*"
|
||||
icon = "exclamation-circle"
|
||||
|
||||
/datum/data/pda/messenger_plugin/virus/detonate/user_act(mob/user as mob, obj/item/pda/P)
|
||||
/datum/data/pda/messenger_plugin/virus/detonate/user_act(mob/user, obj/item/pda/P)
|
||||
. = ..(user, P)
|
||||
if(.)
|
||||
var/difficulty = 0
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
|
||||
LAZYADD(serialized_guesses, list(out)) // Wrap it in a list so it stays a list
|
||||
|
||||
/datum/data/pda/app/nerdle/update_ui(mob/user as mob, list/data)
|
||||
/datum/data/pda/app/nerdle/update_ui(mob/user, list/data)
|
||||
data["guesses"] = serialized_guesses
|
||||
data["guesses_raw"] = guesses
|
||||
data["max"] = max_guesses
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
new/datum/data/pda/app/manifest,
|
||||
new/datum/data/pda/app/atmos_scanner,
|
||||
new/datum/data/pda/app/nerdle,
|
||||
new/datum/data/pda/app/game_launcher,
|
||||
new/datum/data/pda/utility/scanmode/notes,
|
||||
new/datum/data/pda/utility/flashlight)
|
||||
var/list/shortcut_cache = list()
|
||||
@@ -177,7 +178,7 @@
|
||||
/obj/item/pda/GetID()
|
||||
return id
|
||||
|
||||
/obj/item/pda/MouseDrop(obj/over_object as obj, src_location, over_location)
|
||||
/obj/item/pda/MouseDrop(obj/over_object, src_location, over_location)
|
||||
var/mob/M = usr
|
||||
if((!istype(over_object, /atom/movable/screen)) && can_use(usr))
|
||||
return attack_self(M)
|
||||
@@ -389,7 +390,7 @@
|
||||
start_program(find_program(/datum/data/pda/app/main_menu))
|
||||
|
||||
|
||||
/obj/item/pda/proc/id_check(mob/user as mob, choice as num)//To check for IDs; 1 for in-pda use, 2 for out of pda use.
|
||||
/obj/item/pda/proc/id_check(mob/user, choice)//To check for IDs; 1 for in-pda use, 2 for out of pda use.
|
||||
if(choice == 1)
|
||||
if (id)
|
||||
remove_id()
|
||||
@@ -411,7 +412,7 @@
|
||||
return 0
|
||||
|
||||
// access to status display signals
|
||||
/obj/item/pda/attackby(obj/item/C as obj, mob/user)
|
||||
/obj/item/pda/attackby(obj/item/C, mob/user)
|
||||
..()
|
||||
if(istype(C, /obj/item/cartridge) && !cartridge)
|
||||
cartridge = C
|
||||
@@ -456,11 +457,11 @@
|
||||
add_overlay("pda-pen")
|
||||
return
|
||||
|
||||
/obj/item/pda/attack(mob/living/C as mob, mob/living/user as mob)
|
||||
/obj/item/pda/attack(mob/living/C, mob/living/user)
|
||||
if (istype(C, /mob/living/carbon) && scanmode)
|
||||
scanmode.scan_mob(C, user)
|
||||
|
||||
/obj/item/pda/afterattack(atom/A as mob|obj|turf|area, mob/user as mob, proximity)
|
||||
/obj/item/pda/afterattack(atom/A, mob/user, proximity)
|
||||
if(proximity && scanmode)
|
||||
scanmode.scan_atom(A, user)
|
||||
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
name = "Civilian Services Department (Relay)"
|
||||
cartridges_to_send_to = GLOB.civilian_cartridges
|
||||
|
||||
/obj/item/pda/clown/Crossed(atom/movable/AM as mob|obj) //Clown PDA is slippery.
|
||||
/obj/item/pda/clown/Crossed(atom/movable/AM) //Clown PDA is slippery.
|
||||
if(AM.is_incorporeal())
|
||||
return
|
||||
if (isliving(AM))
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
base_name = "Med Scanner"
|
||||
icon = "heart-o"
|
||||
|
||||
/datum/data/pda/utility/scanmode/medical/scan_mob(mob/living/C as mob, mob/living/user as mob)
|
||||
/datum/data/pda/utility/scanmode/medical/scan_mob(mob/living/C, mob/living/user)
|
||||
C.visible_message(span_warning("[user] has analyzed [C]'s vitals!"))
|
||||
user.show_message(span_notice("Analyzing Results for [C]:"))
|
||||
if(C.status_flags & FAKEDEATH)
|
||||
@@ -79,7 +79,7 @@
|
||||
base_name = "DNA Scanner"
|
||||
icon = "link"
|
||||
|
||||
/datum/data/pda/utility/scanmode/dna/scan_mob(mob/living/C as mob, mob/living/user as mob)
|
||||
/datum/data/pda/utility/scanmode/dna/scan_mob(mob/living/C, mob/living/user)
|
||||
if(ishuman(C))
|
||||
var/mob/living/carbon/human/H = C
|
||||
if(!istype(H.dna, /datum/dna))
|
||||
@@ -88,7 +88,7 @@
|
||||
to_chat(user, span_notice("[H]'s Fingerprints: [md5(H.dna.uni_identity)]"))
|
||||
scan_blood(C, user)
|
||||
|
||||
/datum/data/pda/utility/scanmode/dna/scan_atom(atom/A as mob|obj|turf|area, mob/user as mob)
|
||||
/datum/data/pda/utility/scanmode/dna/scan_atom(atom/A, mob/user)
|
||||
scan_blood(A, user)
|
||||
|
||||
/datum/data/pda/utility/scanmode/dna/proc/scan_blood(atom/A, mob/user)
|
||||
@@ -105,7 +105,7 @@
|
||||
base_name = "Halogen Counter"
|
||||
icon = "exclamation-circle"
|
||||
|
||||
/datum/data/pda/utility/scanmode/halogen/scan_mob(mob/living/C as mob, mob/living/user as mob)
|
||||
/datum/data/pda/utility/scanmode/halogen/scan_mob(mob/living/C, mob/living/user)
|
||||
C.visible_message(span_warning("[user] has analyzed [C]'s radiation levels!"))
|
||||
|
||||
user.show_message(span_notice("Analyzing Results for [C]:"))
|
||||
@@ -118,7 +118,7 @@
|
||||
base_name = "Reagent Scanner"
|
||||
icon = "flask"
|
||||
|
||||
/datum/data/pda/utility/scanmode/reagent/scan_atom(atom/A as mob|obj|turf|area, mob/user as mob)
|
||||
/datum/data/pda/utility/scanmode/reagent/scan_atom(atom/A, mob/user)
|
||||
if(!isnull(A.reagents))
|
||||
if(A.reagents.reagent_list.len > 0)
|
||||
var/reagents_length = A.reagents.reagent_list.len
|
||||
@@ -134,7 +134,7 @@
|
||||
base_name = "Gas Scanner"
|
||||
icon = "tachometer-alt"
|
||||
|
||||
/datum/data/pda/utility/scanmode/gas/scan_atom(atom/A as mob|obj|turf|area, mob/user as mob)
|
||||
/datum/data/pda/utility/scanmode/gas/scan_atom(atom/A, mob/user)
|
||||
pda.analyze_gases(A, user)
|
||||
|
||||
/datum/data/pda/utility/scanmode/notes
|
||||
@@ -146,7 +146,7 @@
|
||||
. = ..()
|
||||
notes = pda.find_program(/datum/data/pda/app/notekeeper)
|
||||
|
||||
/datum/data/pda/utility/scanmode/notes/scan_atom(atom/A as mob|obj|turf|area, mob/user as mob)
|
||||
/datum/data/pda/utility/scanmode/notes/scan_atom(atom/A, mob/user)
|
||||
if(notes && istype(A, /obj/item/paper))
|
||||
var/obj/item/paper/P = A
|
||||
var/list/brlist = list("p", "/p", "br", "hr", "h1", "h2", "h3", "h4", "/h1", "/h2", "/h3", "/h4")
|
||||
|
||||
Reference in New Issue
Block a user