mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 06:29:23 +01:00
Bank cards can now talk again. (#42849)
* recursive_loc_check now returns the appropriate atom. * Added a preference to disable bank card chatting. * Converted spaces to tabs, collapsed conditionals * Update code/modules/economy/account.dm Co-Authored-By: MacHac <piheads@gmail.com> * Added the pref to the game prefs screen.
This commit is contained in:
@@ -29,8 +29,9 @@
|
||||
#define CHAT_GHOSTWHISPER (1<<7)
|
||||
#define CHAT_GHOSTPDA (1<<8)
|
||||
#define CHAT_GHOSTRADIO (1<<9)
|
||||
#define CHAT_BANKCARD (1<<10)
|
||||
|
||||
#define TOGGLES_DEFAULT_CHAT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_PULLR|CHAT_GHOSTWHISPER|CHAT_GHOSTPDA|CHAT_GHOSTRADIO)
|
||||
#define TOGGLES_DEFAULT_CHAT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_PULLR|CHAT_GHOSTWHISPER|CHAT_GHOSTPDA|CHAT_GHOSTRADIO|CHAT_BANKCARD)
|
||||
|
||||
#define PARALLAX_INSANE -1 //for show offs
|
||||
#define PARALLAX_HIGH 0 //default.
|
||||
|
||||
@@ -498,11 +498,15 @@
|
||||
//Recursively checks if an item is inside a given type, even through layers of storage. Returns the atom if it finds it.
|
||||
/proc/recursive_loc_check(atom/movable/target, type)
|
||||
var/atom/A = target
|
||||
if(istype(A, type))
|
||||
return A
|
||||
|
||||
while(!istype(A.loc, type))
|
||||
if(!A.loc)
|
||||
return
|
||||
A = A.loc
|
||||
return A
|
||||
|
||||
return A.loc
|
||||
|
||||
/proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank)
|
||||
if(!SSticker.IsRoundInProgress() || QDELETED(character))
|
||||
|
||||
@@ -493,6 +493,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<b>Ghosts of Others:</b> <a href='?_src_=prefs;task=input;preference=ghostothers'>[button_name]</a><br>"
|
||||
dat += "<br>"
|
||||
|
||||
dat += "<b>Income Updates:</b> <a href='?_src_=prefs;preference=income_pings'>[(chat_toggles & CHAT_BANKCARD) ? "Allowed" : "Muted"]</a><br>"
|
||||
dat += "<br>"
|
||||
|
||||
dat += "<b>FPS:</b> <a href='?_src_=prefs;preference=clientfps;task=input'>[clientfps]</a><br>"
|
||||
|
||||
dat += "<b>Parallax (Fancy Space):</b> <a href='?_src_=prefs;preference=parallaxdown' oncontextmenu='window.location.href=\"?_src_=prefs;preference=parallaxup\";return false;'>"
|
||||
@@ -1462,6 +1465,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
if("ghost_pda")
|
||||
chat_toggles ^= CHAT_GHOSTPDA
|
||||
|
||||
if("income_pings")
|
||||
chat_toggles ^= CHAT_BANKCARD
|
||||
|
||||
if("pull_requests")
|
||||
chat_toggles ^= CHAT_PULLR
|
||||
|
||||
|
||||
@@ -235,6 +235,17 @@ TOGGLE_CHECKBOX(/datum/verbs/menu/Settings, listen_ooc)()
|
||||
/datum/verbs/menu/Settings/listen_ooc/Get_checked(client/C)
|
||||
return C.prefs.chat_toggles & CHAT_OOC
|
||||
|
||||
TOGGLE_CHECKBOX(/datum/verbs/menu/Settings, listen_bank_card)()
|
||||
set name = "Show/Hide Income Updates"
|
||||
set category = "Preferences"
|
||||
set desc = "Show or hide updates to your income"
|
||||
usr.client.prefs.chat_toggles ^= CHAT_BANKCARD
|
||||
usr.client.prefs.save_preferences()
|
||||
to_chat(usr, "You will [(usr.client.prefs.chat_toggles & CHAT_BANKCARD) ? "now" : "no longer"] be notified when you get paid.")
|
||||
SSblackbox.record_feedback("nested tally", "preferences_verb", 1, list("Toggle Income Notifications", "[(usr.client.prefs.chat_toggles & CHAT_BANKCARD) ? "Enabled" : "Disabled"]"))
|
||||
/datum/verbs/menu/Settings/listen_bank_card/Get_checked(client/C)
|
||||
return C.prefs.chat_toggles & CHAT_BANKCARD
|
||||
|
||||
|
||||
GLOBAL_LIST_INIT(ghost_forms, list("ghost","ghostking","ghostian2","skeleghost","ghost_red","ghost_black", \
|
||||
"ghost_blue","ghost_yellow","ghost_green","ghost_pink", \
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
bank_card_talk("ERROR: Payday aborted, departmental funds insufficient.")
|
||||
return FALSE
|
||||
else
|
||||
bank_card_talk("Payday processed, account now holds $[account_balance].")
|
||||
bank_card_talk("Payday processed, account now holds $[account_balance].")
|
||||
return TRUE
|
||||
bank_card_talk("ERROR: Payday aborted, unable to contact departmental account.")
|
||||
return FALSE
|
||||
@@ -59,22 +59,29 @@
|
||||
/datum/bank_account/proc/add_neetbux()
|
||||
account_job.paycheck += PAYCHECK_WELFARE
|
||||
|
||||
/datum/bank_account/proc/bank_card_talk(message)
|
||||
/datum/bank_account/proc/bank_card_talk(message, force)
|
||||
if(!message || !bank_cards.len)
|
||||
return
|
||||
for(var/obj/A in bank_cards)
|
||||
var/mob/card_holder = recursive_loc_check(A, /mob)
|
||||
if(ismob(card_holder)) //If on a mob
|
||||
if(card_holder.client && !(card_holder.client.prefs.chat_toggles & CHAT_BANKCARD) && !force)
|
||||
return
|
||||
|
||||
card_holder.playsound_local(get_turf(card_holder), 'sound/machines/twobeep.ogg', 50, TRUE)
|
||||
if(card_holder.can_hear())
|
||||
to_chat(card_holder, "[icon2html(A, card_holder)] *[message]*")
|
||||
else if(isturf(A.loc)) //If on the ground
|
||||
for(var/mob/M in hearers(1,get_turf(A)))
|
||||
if(M.client && !(M.client.prefs.chat_toggles & CHAT_BANKCARD) && !force)
|
||||
return
|
||||
playsound(A, 'sound/machines/twobeep.ogg', 50, TRUE)
|
||||
A.audible_message("[icon2html(A, hearers(A))] *[message]*", null, 1)
|
||||
break
|
||||
else
|
||||
for(var/mob/M in A.loc) //If inside a container with other mobs (e.g. locker)
|
||||
if(M.client && !(M.client.prefs.chat_toggles & CHAT_BANKCARD) && !force)
|
||||
return
|
||||
M.playsound_local(get_turf(M), 'sound/machines/twobeep.ogg', 50, TRUE)
|
||||
if(M.can_hear())
|
||||
to_chat(M, "[icon2html(A, M)] *[message]*")
|
||||
@@ -88,4 +95,4 @@
|
||||
department_id = dep_id
|
||||
account_balance = budget
|
||||
account_holder = SSeconomy.department_accounts[dep_id]
|
||||
SSeconomy.generated_accounts += src
|
||||
SSeconomy.generated_accounts += src
|
||||
|
||||
Reference in New Issue
Block a user