mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-11 07:03:30 +01:00
Implements PDA Beeping (#15616)
This commit is contained in:
+14
-1
@@ -31,6 +31,7 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
var/datum/data/pda/utility/scanmode/scanmode = null
|
||||
|
||||
var/lock_code = "" // Lockcode to unlock uplink
|
||||
var/silent = FALSE //To beep or not to beep, that is the question
|
||||
var/honkamt = 0 //How many honks left when infected with honk.exe
|
||||
var/mimeamt = 0 //How many silence left when infected with mime.exe
|
||||
var/detonate = 1 // Can the PDA be blown up?
|
||||
@@ -67,6 +68,7 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
*/
|
||||
/obj/item/pda/Initialize(mapload)
|
||||
. = ..()
|
||||
silent = TRUE // We don't want to hear the first program start up
|
||||
GLOB.PDAs += src
|
||||
GLOB.PDAs = sortAtom(GLOB.PDAs)
|
||||
update_programs()
|
||||
@@ -75,6 +77,7 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
cartridge.update_programs(src)
|
||||
new /obj/item/pen(src)
|
||||
start_program(find_program(/datum/data/pda/app/main_menu))
|
||||
silent = initial(silent)
|
||||
|
||||
/obj/item/pda/proc/can_use()
|
||||
if(!ismob(loc))
|
||||
@@ -182,6 +185,7 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
id.forceMove(get_turf(src))
|
||||
overlays -= image('icons/goonstation/objects/pda_overlay.dmi', id.icon_state)
|
||||
id = null
|
||||
playsound(src, 'sound/machines/terminal_eject.ogg', 50, TRUE)
|
||||
|
||||
/obj/item/pda/verb/verb_remove_id()
|
||||
set category = "Object"
|
||||
@@ -214,6 +218,7 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
var/obj/item/pen/O = locate() in src
|
||||
if(O)
|
||||
to_chat(user, "<span class='notice'>You remove the [O] from [src].</span>")
|
||||
playsound(src, 'sound/machines/pda_button2.ogg', 50, TRUE)
|
||||
if(istype(loc, /mob))
|
||||
var/mob/M = loc
|
||||
if(M.get_active_hand() == null)
|
||||
@@ -243,6 +248,7 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
I.forceMove(src)
|
||||
id = I
|
||||
user.put_in_hands(old_id)
|
||||
playsound(src, 'sound/machines/pda_button1.ogg', 50, TRUE)
|
||||
return
|
||||
|
||||
/obj/item/pda/attackby(obj/item/C as obj, mob/user as mob, params)
|
||||
@@ -257,11 +263,14 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
SStgui.update_uis(src)
|
||||
if(cartridge.radio)
|
||||
cartridge.radio.hostpda = src
|
||||
playsound(src, 'sound/machines/pda_button1.ogg', 50, TRUE)
|
||||
|
||||
else if(istype(C, /obj/item/card/id))
|
||||
var/obj/item/card/id/idcard = C
|
||||
if(!idcard.registered_name)
|
||||
to_chat(user, "<span class='notice'>\The [src] rejects the ID.</span>")
|
||||
if(!silent)
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, TRUE)
|
||||
return
|
||||
if(!owner)
|
||||
owner = idcard.registered_name
|
||||
@@ -270,6 +279,8 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
name = "PDA-[owner] ([ownjob])"
|
||||
to_chat(user, "<span class='notice'>Card scanned.</span>")
|
||||
SStgui.update_uis(src)
|
||||
if(!silent)
|
||||
playsound(src, 'sound/machines/terminal_success.ogg', 50, TRUE)
|
||||
else
|
||||
//Basic safety check. If either both objects are held by user or PDA is on ground and card is in hand.
|
||||
if(((src in user.contents) && (C in user.contents)) || (istype(loc, /turf) && in_range(src, user) && (C in user.contents)) )
|
||||
@@ -285,6 +296,7 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
pai = C
|
||||
to_chat(user, "<span class='notice'>You slot \the [C] into [src].</span>")
|
||||
SStgui.update_uis(src)
|
||||
playsound(src, 'sound/machines/pda_button1.ogg', 50, TRUE)
|
||||
else if(istype(C, /obj/item/pen))
|
||||
var/obj/item/pen/O = locate() in src
|
||||
if(O)
|
||||
@@ -293,6 +305,7 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
user.drop_item()
|
||||
C.forceMove(src)
|
||||
to_chat(user, "<span class='notice'>You slide \the [C] into \the [src].</span>")
|
||||
playsound(src, 'sound/machines/pda_button1.ogg', 50, TRUE)
|
||||
else if(istype(C, /obj/item/nanomob_card))
|
||||
if(cartridge && istype(cartridge, /obj/item/cartridge/mob_hunt_game))
|
||||
cartridge.attackby(C, user, params)
|
||||
@@ -345,7 +358,7 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
if(ttone in ttone_sound)
|
||||
S = ttone_sound[ttone]
|
||||
else
|
||||
S = 'sound/machines/twobeep.ogg'
|
||||
S = 'sound/machines/twobeep_high.ogg'
|
||||
playsound(loc, S, 50, 1)
|
||||
for(var/mob/O in hearers(3, loc))
|
||||
O.show_message(text("[bicon(src)] *[ttone]*"))
|
||||
|
||||
@@ -69,9 +69,9 @@
|
||||
|
||||
if(!can_use())
|
||||
return
|
||||
var/datum/data/pda/app/messenger/M = find_program(/datum/data/pda/app/messenger)
|
||||
M.notify_silent = !M.notify_silent
|
||||
to_chat(usr, "<span class='notice'>PDA ringer toggled [(M.notify_silent ? "Off" : "On")]!</span>")
|
||||
|
||||
silent = !silent
|
||||
to_chat(usr, "<span class='notice'>PDA ringer toggled [(silent ? "Off" : "On")]!</span>")
|
||||
|
||||
/obj/item/pda/silicon/attack_self(mob/user as mob)
|
||||
if((honkamt > 0) && (prob(60)))//For clown virus.
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
/datum/data/pda
|
||||
var/icon = "tasks" //options comes from http://fontawesome.io/icons/
|
||||
var/notify_icon = "exclamation-circle"
|
||||
var/notify_silent = 0
|
||||
var/hidden = 0 // program not displayed in main menu
|
||||
var/category = "General" // the category to list it in on the main menu
|
||||
var/obj/item/pda/pda // if this is null, and the app is running code, something's gone wrong
|
||||
@@ -37,7 +36,7 @@
|
||||
to_chat(L, "[bicon(pda)] [message]")
|
||||
SStgui.update_user_uis(L, pda) // Update the receiving user's PDA UI so that they can see the new message
|
||||
|
||||
if(!notify_silent)
|
||||
if(!pda.silent)
|
||||
pda.play_ringtone()
|
||||
|
||||
if(blink && !(src in pda.notifying_programs))
|
||||
@@ -67,7 +66,9 @@
|
||||
if(pda.current_app)
|
||||
pda.current_app.stop()
|
||||
pda.current_app = src
|
||||
return 1
|
||||
if(!pda.silent)
|
||||
playsound(pda, 'sound/machines/terminal_select.ogg', 15, TRUE)
|
||||
return TRUE
|
||||
|
||||
/datum/data/pda/app/proc/update_ui(mob/user, list/data)
|
||||
return
|
||||
@@ -80,7 +81,6 @@
|
||||
size = 1
|
||||
category = "Utilities"
|
||||
|
||||
|
||||
/datum/data/pda/utility/scanmode
|
||||
var/base_name
|
||||
category = "Scanners"
|
||||
@@ -100,6 +100,8 @@
|
||||
name = "Disable [base_name]"
|
||||
|
||||
pda.update_shortcuts()
|
||||
if(!pda.silent)
|
||||
playsound(pda, 'sound/machines/terminal_select.ogg', 15, TRUE)
|
||||
return TRUE
|
||||
|
||||
/datum/data/pda/utility/scanmode/proc/scan_mob(mob/living/C, mob/living/user)
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(!pda.silent)
|
||||
playsound(pda, 'sound/machines/terminal_select.ogg', 15, TRUE)
|
||||
|
||||
. = TRUE
|
||||
switch(action)
|
||||
if("Status")
|
||||
@@ -78,6 +81,9 @@
|
||||
|
||||
. = TRUE
|
||||
|
||||
if(!pda.silent)
|
||||
playsound(pda, 'sound/machines/terminal_select.ogg', 15, TRUE)
|
||||
|
||||
if(pda.cartridge && istype(pda.cartridge.radio, /obj/item/integrated_radio/signal))
|
||||
var/obj/item/integrated_radio/signal/R = pda.cartridge.radio
|
||||
|
||||
@@ -110,6 +116,9 @@
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(!pda.silent)
|
||||
playsound(pda, 'sound/machines/terminal_select.ogg', 15, TRUE)
|
||||
|
||||
. = TRUE
|
||||
// Observe
|
||||
pm.ui_act(action, params, ui, state)
|
||||
@@ -139,6 +148,9 @@
|
||||
|
||||
. = TRUE
|
||||
|
||||
if(!pda.silent)
|
||||
playsound(pda, 'sound/machines/terminal_select.ogg', 15, TRUE)
|
||||
|
||||
switch(action)
|
||||
if("Records")
|
||||
var/datum/data/record/R = locateUID(params["target"])
|
||||
@@ -252,6 +264,9 @@
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(!pda.silent)
|
||||
playsound(pda, 'sound/machines/terminal_select.ogg', 15, TRUE)
|
||||
|
||||
. = TRUE
|
||||
|
||||
// Aight listen up. Its time for a comment rant again.
|
||||
@@ -333,6 +348,9 @@
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(!pda.silent)
|
||||
playsound(pda, 'sound/machines/terminal_select.ogg', 15, TRUE)
|
||||
|
||||
. = TRUE
|
||||
|
||||
// Heres the exact same shit as before, but worse
|
||||
|
||||
@@ -28,6 +28,9 @@
|
||||
pda.ownjob = pda.id.assignment
|
||||
pda.ownrank = pda.id.rank
|
||||
pda.name = "PDA-[pda.owner] ([pda.ownjob])"
|
||||
if(!pda.silent)
|
||||
playsound(pda, 'sound/machines/terminal_processing.ogg', 15, TRUE)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, pda, 'sound/machines/terminal_success.ogg', 15, TRUE), 1.3 SECONDS)
|
||||
if("pai")
|
||||
if(pda.pai)
|
||||
if(pda.pai.loc != pda)
|
||||
@@ -39,8 +42,9 @@
|
||||
if(2) // Eject pAI device
|
||||
var/turf/T = get_turf_or_move(pda.loc)
|
||||
if(T)
|
||||
pda.pai.loc = T
|
||||
pda.pai.forceMove(T)
|
||||
pda.pai = null
|
||||
playsound(pda, 'sound/machines/terminal_eject.ogg', 50, TRUE)
|
||||
|
||||
/datum/data/pda/app/notekeeper
|
||||
name = "Notekeeper"
|
||||
@@ -61,6 +65,9 @@
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(!pda.silent)
|
||||
playsound(pda, 'sound/machines/terminal_select.ogg', 15, TRUE)
|
||||
|
||||
. = TRUE
|
||||
|
||||
switch(action)
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
unnotify()
|
||||
|
||||
/datum/data/pda/app/messenger/update_ui(mob/user as mob, list/data)
|
||||
data["silent"] = notify_silent // does the pda make noise when it receives a message?
|
||||
data["silent"] = pda.silent // does the pda make noise when it receives a message?
|
||||
data["toff"] = toff // is the messenger function turned off?
|
||||
// Yes I know convo is awful, but it lets me stay inside the 80 char TGUI line limit
|
||||
data["active_convo"] = active_conversation // Which conversation are we following right now?
|
||||
@@ -64,12 +64,16 @@
|
||||
|
||||
unnotify()
|
||||
|
||||
var/play_beep = TRUE
|
||||
|
||||
. = TRUE
|
||||
|
||||
|
||||
switch(action)
|
||||
if("Toggle Messenger")
|
||||
toff = !toff
|
||||
if("Toggle Ringer")//If viewing texts then erase them, if not then toggle silent status
|
||||
notify_silent = !notify_silent
|
||||
pda.silent = !pda.silent
|
||||
if("Clear")//Clears messages
|
||||
if(params["option"] == "All")
|
||||
tnote.Cut()
|
||||
@@ -84,6 +88,7 @@
|
||||
|
||||
active_conversation = null
|
||||
if("Message")
|
||||
play_beep = FALSE
|
||||
var/obj/item/pda/P = locateUID(params["target"])
|
||||
create_message(usr, P)
|
||||
if(params["target"] in conversations) // Need to make sure the message went through, if not welp.
|
||||
@@ -108,6 +113,10 @@
|
||||
if("Back")
|
||||
active_conversation = null
|
||||
|
||||
if(play_beep && !pda.silent)
|
||||
playsound(pda, 'sound/machines/terminal_select.ogg', 15, TRUE)
|
||||
|
||||
|
||||
/datum/data/pda/app/messenger/proc/create_message(var/mob/living/U, var/obj/item/pda/P)
|
||||
var/t = input(U, "Please enter message", name, null) as text|null
|
||||
if(!t)
|
||||
@@ -160,10 +169,14 @@
|
||||
|
||||
if(!sendable) // Are we in the range of a reciever?
|
||||
to_chat(U, "<span class='warning'>ERROR: No connection to server.</span>")
|
||||
if(!pda.silent)
|
||||
playsound(pda, 'sound/machines/terminal_error.ogg', 15, TRUE)
|
||||
return
|
||||
|
||||
if(!receivable) // Is our recipient in the range of a reciever?
|
||||
to_chat(U, "<span class='warning'>ERROR: No connection to recipient.</span>")
|
||||
if(!pda.silent)
|
||||
playsound(pda, 'sound/machines/terminal_error.ogg', 15, TRUE)
|
||||
return
|
||||
|
||||
if(useMS && sendable && receivable) // only send the message if its going to work
|
||||
@@ -197,8 +210,12 @@
|
||||
receiver = P
|
||||
log_message = "[log_message] (no holder)"
|
||||
U.create_log(MISC_LOG, log_message, receiver)
|
||||
if(!pda.silent)
|
||||
playsound(pda, 'sound/machines/terminal_success.ogg', 15, TRUE)
|
||||
else
|
||||
to_chat(U, "<span class='notice'>ERROR: Messaging server is not responding.</span>")
|
||||
if(!pda.silent)
|
||||
playsound(pda, 'sound/machines/terminal_error.ogg', 15, TRUE)
|
||||
|
||||
/datum/data/pda/app/messenger/proc/available_pdas()
|
||||
var/list/names = list()
|
||||
|
||||
@@ -34,9 +34,7 @@
|
||||
. = ..(user, P)
|
||||
if(.)
|
||||
user.show_message("<span class='notice'>Virus sent!</span>", 1)
|
||||
var/datum/data/pda/app/M = P.find_program(/datum/data/pda/app/messenger)
|
||||
if(M)
|
||||
M.notify_silent = 1
|
||||
P.silent = TRUE
|
||||
P.ttone = "silence"
|
||||
|
||||
|
||||
|
||||
@@ -156,6 +156,9 @@
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(!pda.silent)
|
||||
playsound(pda, 'sound/machines/terminal_select.ogg', 15, TRUE)
|
||||
|
||||
. = TRUE
|
||||
switch(action)
|
||||
if("Rename")
|
||||
|
||||
@@ -93,14 +93,17 @@
|
||||
P.unnotify()
|
||||
cartridge = null
|
||||
update_shortcuts()
|
||||
if("Authenticate")//Checks for ID
|
||||
playsound(src, 'sound/machines/terminal_eject.ogg', 50, TRUE)
|
||||
if("Authenticate") //Checks for ID
|
||||
id_check(usr, 1)
|
||||
if("Ringtone")
|
||||
if(!silent)
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 15, TRUE)
|
||||
return set_ringtone()
|
||||
else
|
||||
if(current_app)
|
||||
. = current_app.ui_act(action, params, ui, state) // It needs proxying through down here so apps actually have their interacts called
|
||||
|
||||
if((honkamt > 0) && (prob(60)))//For clown virus.
|
||||
if((honkamt > 0) && (prob(60))) //For clown virus.
|
||||
honkamt--
|
||||
playsound(loc, 'sound/items/bikehorn.ogg', 30, 1)
|
||||
playsound(src, 'sound/items/bikehorn.ogg', 30, TRUE)
|
||||
|
||||
@@ -45,12 +45,7 @@
|
||||
default_cartridge = /obj/item/cartridge/mime
|
||||
icon_state = "pda-mime"
|
||||
ttone = "silence"
|
||||
|
||||
/obj/item/pda/mime/New()
|
||||
..()
|
||||
var/datum/data/pda/app/M = find_program(/datum/data/pda/app/messenger)
|
||||
if(M)
|
||||
M.notify_silent = 1
|
||||
silent = TRUE
|
||||
|
||||
/obj/item/pda/heads
|
||||
default_cartridge = /obj/item/cartridge/head
|
||||
@@ -149,12 +144,7 @@
|
||||
icon_state = "pda-library"
|
||||
desc = "A portable microcomputer by Thinktronic Systems, LTD. This is model is a WGW-11 series e-reader."
|
||||
model_name = "Thinktronic 5290 WGW-11 Series E-reader and Personal Data Assistant"
|
||||
|
||||
/obj/item/pda/librarian/New()
|
||||
..()
|
||||
var/datum/data/pda/app/M = find_program(/datum/data/pda/app/messenger)
|
||||
if(M)
|
||||
M.notify_silent = 1 //Quiet in the library!
|
||||
silent = TRUE
|
||||
|
||||
/obj/item/pda/clear
|
||||
icon_state = "pda-transp"
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
pda.overlays += image('icons/obj/pda.dmi', "pda-light")
|
||||
else
|
||||
pda.overlays -= image('icons/obj/pda.dmi', "pda-light")
|
||||
if(!pda.silent)
|
||||
playsound(pda, 'sound/machines/terminal_select.ogg', 15, TRUE)
|
||||
|
||||
/datum/data/pda/utility/honk
|
||||
name = "Honk Synthesizer"
|
||||
@@ -39,6 +41,8 @@
|
||||
M.open()
|
||||
else
|
||||
M.close()
|
||||
if(!pda.silent)
|
||||
playsound(pda, 'sound/machines/terminal_select.ogg', 15, TRUE)
|
||||
|
||||
/datum/data/pda/utility/scanmode/medical
|
||||
base_name = "Med Scanner"
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user