mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-17 18:13:34 +01:00
91660824fa
* initial commit (broken)
* load the html
* fix this
* Fix various issues with browser statpanel
* Fix Alt Clicking opening up a window and Add back some object verbs to the browser stat panel
* Optimize stat panel and fix guardian verbs
* Restyles Stat Panel, Adds Subpanel Sub-Categories
* Use better layout for verbs in stat panel
* Updates statpanel verb widths to be more dynamic at higher screen resolutions.
* Adjust stat panel grid item widths and breakpoints
* refactors statpanel to use tgui API
* CI moment
* more CI
* this stupid thing
* Apply suggestions from code review
Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
* Update code/modules/client/client_procs.dm
* ci fix
* emergency mc debug view
* temp revert some code change suggestions due to massive runtiming
* proper atom click topic implementation
* optimise
* mob clicking in stat panels work
* yeet spell tab thingy
* yeet simple stat panel pref
* allow insertion of html into MC tab content
* tidy up status tab
* Apply suggestions from code review
* fix this
* fix CI
* oops
* fix index runtime
* fixes MC tab showing up for mentors, fixes runtime
* safeties!
* Return of theme support
* more fixes
* fix view range pref, tidy prefs tab
* Remove old stat panel from themes
* fixes
* make sure verbs don't go missing
* fix ooc/looc breaking
* Revert "make sure verbs don't go missing"
This reverts commit 7d07ad45ed.
* fix this properly
* fix stat panel hitting rate limiters
* fix borg status tab
* Object Window Niceties
* Adds file cycling for icon2base64
* optimizes icon2html() for icon files known to be in the rsc at compile time
* CI moment
* remove dupe emergency shuttle timers
* more robust verb updates
* statpanel tweaks
* zip archived changelog to avoid search results
* optimise
* fix mentor chat wonkyness when disabled
* debug log moment
* i am very smart
* reintroduce this because it was needed
* better time listings
* less jank
* stops telling admins they arent mentors
* returns MC tab pref for admins
* Update code/controllers/subsystem/SSstatpanel.dm
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
* lewcc
* OD typemaker prep
---------
Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Co-authored-by: Aylong <alexanderkitsa@gmail.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
95 lines
3.1 KiB
Plaintext
95 lines
3.1 KiB
Plaintext
/**
|
|
* handles adding verbs and updating the stat panel browser
|
|
*
|
|
* pass the verb type path to this instead of adding it directly to verbs so the statpanel can update
|
|
* Arguments:
|
|
* * target - Who the verb is being added to, client or mob typepath
|
|
* * verb - typepath to a verb, or a list of verbs, supports lists of lists
|
|
*/
|
|
/proc/add_verb(client/target, verb_or_list_to_add)
|
|
if(!target)
|
|
CRASH("add_verb called without a target")
|
|
if(IsAdminAdvancedProcCall())
|
|
return
|
|
var/mob/mob_target = null
|
|
|
|
if(ismob(target))
|
|
mob_target = target
|
|
target = mob_target.client
|
|
else if(!istype(target, /client))
|
|
CRASH("add_verb called on a non-mob and non-client")
|
|
var/list/verbs_list = list()
|
|
if(!islist(verb_or_list_to_add))
|
|
verbs_list += verb_or_list_to_add
|
|
else
|
|
var/list/verb_listref = verb_or_list_to_add
|
|
var/list/elements_to_process = verb_listref.Copy()
|
|
while(length(elements_to_process))
|
|
var/element_or_list = elements_to_process[length(elements_to_process)] //Last element
|
|
elements_to_process.len--
|
|
if(islist(element_or_list))
|
|
elements_to_process += element_or_list //list/a += list/b adds the contents of b into a, not the reference to the list itself
|
|
else
|
|
verbs_list += element_or_list
|
|
|
|
if(mob_target)
|
|
mob_target.verbs += verbs_list
|
|
if(!target)
|
|
return //Our work is done.
|
|
else
|
|
target.verbs += verbs_list
|
|
|
|
var/list/output_list = list()
|
|
for(var/thing in verbs_list)
|
|
var/procpath/verb_to_add = thing
|
|
output_list[++output_list.len] = list(verb_to_add.category, verb_to_add.name)
|
|
|
|
target.stat_panel.send_message("add_verb_list", output_list)
|
|
|
|
/**
|
|
* handles removing verb and sending it to browser to update, use this for removing verbs
|
|
*
|
|
* pass the verb type path to this instead of removing it from verbs so the statpanel can update
|
|
* Arguments:
|
|
* * target - Who the verb is being removed from, client or mob typepath
|
|
* * verb - typepath to a verb, or a list of verbs, supports lists of lists
|
|
*/
|
|
/proc/remove_verb(client/target, verb_or_list_to_remove)
|
|
if(IsAdminAdvancedProcCall())
|
|
return
|
|
|
|
var/mob/mob_target = null
|
|
if(ismob(target))
|
|
mob_target = target
|
|
target = mob_target.client
|
|
else if(!istype(target, /client))
|
|
CRASH("remove_verb called on a non-mob and non-client")
|
|
|
|
var/list/verbs_list = list()
|
|
if(!islist(verb_or_list_to_remove))
|
|
verbs_list += verb_or_list_to_remove
|
|
else
|
|
var/list/verb_listref = verb_or_list_to_remove
|
|
var/list/elements_to_process = verb_listref.Copy()
|
|
while(length(elements_to_process))
|
|
var/element_or_list = elements_to_process[length(elements_to_process)] //Last element
|
|
elements_to_process.len--
|
|
if(islist(element_or_list))
|
|
elements_to_process += element_or_list //list/a += list/b adds the contents of b into a, not the reference to the list itself
|
|
else
|
|
verbs_list += element_or_list
|
|
|
|
if(mob_target)
|
|
mob_target.verbs -= verbs_list
|
|
if(!target)
|
|
return //Our work is done.
|
|
else
|
|
target.verbs -= verbs_list
|
|
|
|
var/list/output_list = list()
|
|
for(var/thing in verbs_list)
|
|
var/procpath/verb_to_remove = thing
|
|
output_list[++output_list.len] = list(verb_to_remove.category, verb_to_remove.name)
|
|
|
|
target.stat_panel.send_message("remove_verb_list", output_list)
|