Fixes most tgui bugs (#16539)

* Fixes most tgui bugs

* the soul longs for oblivion

* skin fix

* hardsuit fix

* b

* the final fixes (for now)

* bb

* fix keys

* cl

* fuck off

* i'm alone i'm alone i'm alone

* the heart's whisper

* fffss

* je cherche la vérité tout en l'évitant

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
This commit is contained in:
Matt Atlas
2023-06-26 15:36:11 +02:00
committed by GitHub
parent c6d87cc68e
commit 025b6e66d5
50 changed files with 672 additions and 463 deletions
@@ -120,6 +120,8 @@
addtimer(CALLBACK(src, PROC_REF(bst_post_spawn), bst), 5)
addtimer(CALLBACK(src, PROC_REF(bst_spawn_cooldown)), 5 SECONDS)
bst.client.init_verbs()
log_debug("Bluespace Tech Spawned: X:[bst.x] Y:[bst.y] Z:[bst.z] User:[src]")
feedback_add_details("admin_verb","BST")
@@ -166,6 +168,7 @@
if(key)
if(client.holder && client.holder.original_mob)
client.holder.original_mob.key = key
client.init_verbs()
else
var/mob/abstract/observer/ghost = new(src) //Transfer safety to observer spawning proc.
ghost.key = key
@@ -173,6 +176,7 @@
ghost.name = "[ghost.key] BSTech"
ghost.real_name = "[ghost.key] BSTech"
ghost.voice_name = "[ghost.key] BSTech"
ghost.client.init_verbs()
/mob/living/carbon/human/bst/proc/bsc() //because we all have our unrealistic snowflakes right?
if(set_species(SPECIES_TAJARA))
@@ -347,6 +347,7 @@
update_icon(1)
if(is_in_cycler)
initiator.loc.update_icon()
SSstatpanels.set_action_tabs(initiator.client, initiator)
/obj/item/rig/proc/update_component_sealed()
for(var/obj/item/piece in list(helmet,boots,gloves,chest))
@@ -768,6 +769,7 @@
/obj/item/rig/dropped(var/mob/user)
..()
SSstatpanels.set_action_tabs(user.client, user)
null_wearer(user)
@@ -330,6 +330,7 @@
remove_verb(observer, /mob/abstract/observer/verb/toggle_antagHUD)
observer.ckey = ckey
observer.initialise_postkey()
observer.client.init_verbs()
qdel(src)
/mob/abstract/new_player/proc/show_lore_summary()
@@ -376,6 +376,8 @@ INITIALIZE_IMMEDIATE(/mob/abstract/new_player)
new_character.key = key //Manually transfer the key to log them in
new_character.client.init_verbs()
return new_character
/mob/abstract/new_player/proc/ViewManifest()
@@ -235,10 +235,10 @@ Works together with spawning an observer, noted above.
ghost.ckey = ckey
ghost.initialise_postkey(should_set_timer)
ghost.client?.init_verbs()
if(ghost.client)
if(!ghost.client.holder && !config.antag_hud_allowed) // For new ghosts we remove the verb from even showing up if it's not allowed.
remove_verb(ghost, /mob/abstract/observer/verb/toggle_antagHUD) // Poor guys, don't know what they are missing!
ghost.client.init_verbs()
return ghost
/*
@@ -77,6 +77,8 @@
set_stat(CONSCIOUS)
gestalt = adult
adult.client.init_verbs()
//What do you call a person with no arms or no legs?
var/list/organ_removal_priorities = list(BP_L_ARM, BP_R_ARM, BP_L_LEG, BP_R_LEG)
var/limbs_to_remove = (6 - limbs_can_grow)
@@ -1220,6 +1220,7 @@
if(H.brainmob.real_name == src.real_name)
if(H.brainmob.mind)
H.brainmob.mind.transfer_to(src)
H.brainmob.client.init_verbs()
qdel(H)
losebreath = 0
@@ -528,6 +528,7 @@
to_chat(src, "<b>Systems rebooted</b>. Loading base pattern maintenance protocol... <b>loaded</b>.")
full_law_reset()
welcome_drone()
client.init_verbs()
/mob/living/silicon/robot/drone/proc/welcome_drone()
to_chat(src, SPAN_NOTICE("<b>You are a maintenance drone, a tiny-brained robotic repair machine</b>."))
@@ -4,11 +4,11 @@
show_laws(0)
if(client.prefs.toggles_secondary & HOTKEY_DEFAULT)
winset(src, null, "mainwindow.macro=borghotkeymode hotkey_toggle.is-checked=true mapwindow.map.focus=true input.background-color=#D3B5B5")
winset(src, null, "mainwindow.macro=borghotkeymode hotkey_toggle.is-checked=true mapwindow.map.focus=true")
else
winset(src, null, "mainwindow.macro=borgmacro hotkey_toggle.is-checked=false input.focus=true input.background-color=#D3B5B5")
winset(src, null, "mainwindow.macro=borgmacro hotkey_toggle.is-checked=false input.focus=true")
// Forces synths to select an icon relevant to their module
if(module && !icon_selected)
choose_icon()
set_intent(a_intent) // to set the eye colour
set_intent(a_intent) // to set the eye colour
@@ -1291,3 +1291,6 @@
to_chat(src, SPAN_NOTICE("You have given up life and succumbed to death."))
else
to_chat(src, SPAN_NOTICE("You are not injured enough to succumb to death!"))
/mob/living/silicon/robot/GetIdCard()
return id_card
+2 -2
View File
@@ -86,9 +86,9 @@
//set macro to normal incase it was overriden (like cyborg currently does)
if(client.prefs.toggles_secondary & HOTKEY_DEFAULT)
winset(src, null, "mainwindow.macro=hotkeymode hotkey_toggle.is-checked=true mapwindow.map.focus=true input.background-color=#D3B5B5")
winset(src, null, "mainwindow.macro=hotkeymode hotkey_toggle.is-checked=true mapwindow.map.focus=true")
else
winset(src, null, "mainwindow.macro=macro hotkey_toggle.is-checked=false input.focus=true input.background-color=#D3B5B5")
winset(src, null, "mainwindow.macro=macro hotkey_toggle.is-checked=false input.focus=true")
MOB_STOP_THINKING(src)
clear_important_client_contents(client)
+4 -1
View File
@@ -543,6 +543,7 @@
M.key = key
if(M.mind)
M.mind.reset()
M.client.init_verbs()
return
/client/verb/changes()
@@ -551,7 +552,9 @@
var/datum/asset/changelog = get_asset_datum(/datum/asset/simple/changelog)
changelog.send(src)
src << browse('html/changelog.html', "window=changes;size=675x650")
var/datum/browser/changelog_win = new(src, "changes", "Changelog", 675, 650)
changelog_win.set_content('html/changelog.html')
changelog_win.open()
if(prefs.lastchangelog != changelog_hash)
prefs.lastchangelog = changelog_hash
prefs.save_preferences()
+5 -1
View File
@@ -143,6 +143,8 @@
O.add_ai_verbs()
O.rename_self("ai",1)
O.client.init_verbs()
spawn(0) // Mobs still instantly del themselves, thus we need to spawn or O will never be returned
qdel(src)
return O
@@ -170,7 +172,7 @@
O.gender = gender
O.set_invisibility(0)
if(mind) //TODO
mind.transfer_to(O)
if(O.mind.assigned_role == "Cyborg")
@@ -194,6 +196,8 @@
callHook("borgify", list(O))
O.Namepick()
if(O.client)
O.client.init_verbs()
spawn(0) // Mobs still instantly del themselves, thus we need to spawn or O will never be returned
qdel(src)
@@ -200,6 +200,7 @@
// On-click handling. Turns on the computer if it's off and opens the GUI.
/obj/item/modular_computer/attack_self(mob/user)
if(enabled && screen_on)
user.set_machine(src)
ui_interact(user)
else if(!enabled && screen_on)
turn_on(user)
@@ -183,3 +183,9 @@
. = TRUE
update_icon()
/obj/item/modular_computer/ui_status(mob/user, datum/ui_state/state)
. = ..()
if(. < UI_INTERACTIVE)
if(user.machine)
user.unset_machine()
@@ -16,7 +16,7 @@
tgui_theme = "hephaestus"
ui_auto_update = FALSE
/datum/computer_file/program/rcon_console/ui_static_data(mob/user)
/datum/computer_file/program/rcon_console/ui_data(mob/user)
var/list/data = initial_data()
var/list/smeslist = list()
@@ -246,6 +246,12 @@
if("security")
if(!(edit_type & RECORD_SECURITY))
return FALSE
if("fingerprint")
if(!(edit_type & RECORD_SECURITY))
return FALSE
if("criminal")
if(!(edit_type & RECORD_SECURITY))
return FALSE
if("physical_status")
if(!((edit_type & RECORD_MEDICAL) || (edit_type & RECORD_GENERAL)))
return FALSE
@@ -255,6 +261,24 @@
if("medical")
if(!(edit_type & RECORD_MEDICAL))
return FALSE
if("diseases")
if(!(edit_type & RECORD_MEDICAL))
return FALSE
if("allergies")
if(!(edit_type & RECORD_MEDICAL))
return FALSE
if("blood_dna")
if(!(edit_type & RECORD_MEDICAL) || (edit_type & RECORD_SECURITY))
return FALSE
if("species")
if(!(edit_type & RECORD_MEDICAL) || (edit_type & RECORD_SECURITY))
return FALSE
if("citizenship")
if(!(edit_type & RECORD_SECURITY) || (edit_type & RECORD_GENERAL))
return FALSE
if("religion")
if(!(edit_type & RECORD_SECURITY) || (edit_type & RECORD_GENERAL))
return FALSE
else
if(!(edit_type & RECORD_GENERAL))
return FALSE
@@ -46,7 +46,7 @@
switch(action)
if("sw_menu")
active_warrant = null
. = TRUE
SStgui.update_uis(computer)
if("editwarrant")
for(var/datum/record/warrant/W in SSrecords.warrants)
@@ -56,8 +56,8 @@
. = TRUE
if("back")
. = TRUE
active_warrant = null
SStgui.update_uis(computer)
// The following actions will only be possible if the user has an ID with security access equipped. This is in line with modular computer framework's authentication methods,
// which also use RFID scanning to allow or disallow access to some functions. Anyone can view warrants, editing requires ID.
@@ -96,14 +96,14 @@
active_warrant = W
if("savewarrant")
. = TRUE
SSrecords.update_record(active_warrant)
active_warrant = null
SStgui.update_uis(computer)
if("deletewarrant")
. = TRUE
SSrecords.remove_record(active_warrant)
active_warrant = null
SStgui.update_uis(computer)
if("editwarrantname")
. = TRUE
@@ -613,6 +613,7 @@
M.mind.transfer_to(new_mob)
else
new_mob.key = M.key
new_mob.client.init_verbs()
qdel(M)
/singleton/reagent/toxin/nanites