mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-28 11:11:52 +00:00
* 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>
203 lines
6.2 KiB
Plaintext
203 lines
6.2 KiB
Plaintext
/client/proc/jump_to()
|
|
set name = "Jump to..."
|
|
set desc = "Area, Mob, Key or Coordinate"
|
|
set category = "Admin"
|
|
var/list/choices = list("Area", "Mob", "Key", "Coordinates")
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/chosen = input(src, null, "Jump to...") as null|anything in choices
|
|
if(!chosen)
|
|
return
|
|
|
|
var/jumping // Thing to jump to
|
|
switch(chosen)
|
|
if("Area")
|
|
jumping = input(src, "Area to jump to", "Jump to Area") as null|anything in return_sorted_areas()
|
|
if(jumping)
|
|
return jumptoarea(jumping)
|
|
if("Mob")
|
|
jumping = input(src, "Mob to jump to", "Jump to Mob") as null|anything in GLOB.mob_list
|
|
if(jumping)
|
|
return jumptomob(jumping)
|
|
if("Key")
|
|
jumping = input(src, "Key to jump to", "Jump to Key") as null|anything in sortKey(GLOB.clients)
|
|
if(jumping)
|
|
return jumptokey(jumping)
|
|
if("Coordinates")
|
|
var/x = input(src, "X Coordinate", "Jump to Coordinates") as null|num
|
|
if(!x)
|
|
return
|
|
var/y = input(src, "Y Coordinate", "Jump to Coordinates") as null|num
|
|
if(!y)
|
|
return
|
|
var/z = input(src, "Z Coordinate", "Jump to Coordinates") as null|num
|
|
if(!z)
|
|
return
|
|
return jumptocoord(x, y, z)
|
|
|
|
|
|
/client/proc/jumptoarea(area/A)
|
|
if(!A || !check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/list/turfs = list()
|
|
for(var/turf/T in A)
|
|
if(T.density)
|
|
continue
|
|
if(locate(/obj/structure/grille) in T) // Quick check to not spawn in windows
|
|
continue
|
|
turfs += T
|
|
|
|
var/turf/T = safepick(turfs)
|
|
if(!T)
|
|
to_chat(src, "Nowhere to jump to!")
|
|
return
|
|
|
|
if(isobj(usr.loc))
|
|
var/obj/O = usr.loc
|
|
O.force_eject_occupant(usr)
|
|
|
|
admin_forcemove(usr, T)
|
|
log_admin("[key_name(usr)] jumped to [A]")
|
|
if(!isobserver(usr))
|
|
message_admins("[key_name_admin(usr)] jumped to [A]")
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Jump To Area") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/jumptoturf(turf/T in world)
|
|
set name = "\[Admin\] Jump to Turf"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
if(isobj(usr.loc))
|
|
var/obj/O = usr.loc
|
|
O.force_eject_occupant(usr)
|
|
log_admin("[key_name(usr)] jumped to [T.x], [T.y], [T.z] in [T.loc]")
|
|
if(!isobserver(usr))
|
|
message_admins("[key_name_admin(usr)] jumped to [T.x], [T.y], [T.z] in [T.loc]", 1)
|
|
admin_forcemove(usr, T)
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Jump To Turf") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
return
|
|
|
|
/client/proc/jumptomob(mob/M)
|
|
set name = "Jump to Mob"
|
|
if(!M || !check_rights(R_ADMIN))
|
|
return
|
|
|
|
log_admin("[key_name(usr)] jumped to [key_name(M)]")
|
|
if(!isobserver(usr))
|
|
message_admins("[key_name_admin(usr)] jumped to [key_name_admin(M)]", 1)
|
|
if(isobj(usr.loc))
|
|
var/obj/O = usr.loc
|
|
O.force_eject_occupant(usr)
|
|
if(src.mob)
|
|
var/mob/A = src.mob
|
|
var/turf/T = get_turf(M)
|
|
if(T && isturf(T))
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Jump To Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
admin_forcemove(A, M.loc)
|
|
else
|
|
to_chat(A, "This mob is not located in the game world.")
|
|
|
|
/client/proc/jumptocoord(tx as num, ty as num, tz as num)
|
|
if(!isobserver(usr) && !check_rights(R_ADMIN)) // Only admins can jump without being a ghost
|
|
return
|
|
|
|
var/turf/T = locate(tx, ty, tz)
|
|
if(T)
|
|
if(isobj(usr.loc))
|
|
var/obj/O = usr.loc
|
|
O.force_eject_occupant(usr)
|
|
admin_forcemove(usr, T)
|
|
if(isobserver(usr))
|
|
var/mob/dead/observer/O = usr
|
|
O.ManualFollow(T)
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Jump To Coordinate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
if(!isobserver(usr))
|
|
message_admins("[key_name_admin(usr)] jumped to coordinates [tx], [ty], [tz]")
|
|
|
|
/client/proc/jumptokey(client/C)
|
|
if(!C?.mob || !check_rights(R_ADMIN))
|
|
return
|
|
var/mob/M = C.mob
|
|
log_admin("[key_name(usr)] jumped to [key_name(M)]")
|
|
if(!isobserver(usr))
|
|
message_admins("[key_name_admin(usr)] jumped to [key_name_admin(M)]", 1)
|
|
if(isobj(usr.loc))
|
|
var/obj/O = usr.loc
|
|
O.force_eject_occupant(usr)
|
|
admin_forcemove(usr, M.loc)
|
|
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Jump To Key") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/Getmob(mob/M in GLOB.mob_list)
|
|
set name = "\[Admin\] Get Mob"
|
|
set desc = "Mob to teleport"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
log_admin("[key_name(usr)] teleported [key_name(M)]")
|
|
message_admins("[key_name_admin(usr)] teleported [key_name_admin(M)]", 1)
|
|
|
|
if(isobj(M.loc))
|
|
var/obj/O = M.loc
|
|
O.force_eject_occupant(M)
|
|
admin_forcemove(M, get_turf(usr))
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Get Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/Getkey()
|
|
set name = "\[Admin\] Get Key"
|
|
set desc = "Key to teleport"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/list/keys = list()
|
|
for(var/mob/M in GLOB.player_list)
|
|
keys += M.client
|
|
var/selection = input("Please, select a player!", "Admin Jumping", null, null) as null|anything in sortKey(keys)
|
|
if(!selection)
|
|
return
|
|
var/mob/M = selection:mob
|
|
|
|
if(!M)
|
|
return
|
|
log_admin("[key_name(usr)] teleported [key_name(M)]")
|
|
message_admins("[key_name_admin(usr)] teleported [key_name(M)]", 1)
|
|
if(M)
|
|
if(isobj(M.loc))
|
|
var/obj/O = M.loc
|
|
O.force_eject_occupant(M)
|
|
admin_forcemove(M, get_turf(usr))
|
|
admin_forcemove(usr, M.loc)
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Get Key") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/sendmob(mob/M in GLOB.mob_list)
|
|
set category = "Admin"
|
|
set name = "Send Mob"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/area/A = input(usr, "Pick an area.", "Pick an area") as null|anything in return_sorted_areas()
|
|
if(!A)
|
|
return
|
|
|
|
if(isobj(M.loc))
|
|
var/obj/O = M.loc
|
|
O.force_eject_occupant(M)
|
|
admin_forcemove(M, pick(get_area_turfs(A)))
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Send Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
log_admin("[key_name(usr)] teleported [key_name(M)] to [A]")
|
|
message_admins("[key_name_admin(usr)] teleported [key_name_admin(M)] to [A]", 1)
|
|
|
|
/proc/admin_forcemove(mob/mover, atom/newloc)
|
|
mover.forceMove(newloc)
|
|
mover.on_forcemove(newloc)
|
|
|
|
/mob/proc/on_forcemove(atom/newloc)
|
|
return
|