mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 12:41:09 +01:00
Cleans up and adds more concise admin logging to the centcom podlauncher (#40696)
* shoutout to spacemaniac and qusdtyu * slight yeets * slight grammer fixes * yes * asdf * yikes * fixes * ok this should be better * key_name * begone, proc overhead
This commit is contained in:
@@ -1283,8 +1283,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
|
||||
pod.damage = 40
|
||||
pod.explosionSize = list(0,0,0,2)
|
||||
pod.effectStun = TRUE
|
||||
if (isnull(target_path))
|
||||
alert("ERROR: NULL path given.")
|
||||
if (isnull(target_path)) //The user pressed "Cancel"
|
||||
return
|
||||
if (target_path != "empty")//if you didn't type empty, we want to load the pod with a delivery
|
||||
var/delivery = text2path(target_path)
|
||||
@@ -1292,6 +1291,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
|
||||
delivery = pick_closest_path(target_path)
|
||||
if(!delivery)
|
||||
alert("ERROR: Incorrect / improper path given.")
|
||||
return
|
||||
new delivery(pod)
|
||||
new /obj/effect/DPtarget(get_turf(target), pod)
|
||||
if(ADMIN_PUNISHMENT_SUPPLYPOD)
|
||||
@@ -1306,17 +1306,20 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
|
||||
plaunch.temp_pod.explosionSize = list(0,0,0,2)
|
||||
plaunch.temp_pod.effectStun = TRUE
|
||||
plaunch.ui_interact(usr)
|
||||
return //We return here because punish_log() is handled by the centcom_podlauncher datum
|
||||
|
||||
if(ADMIN_PUNISHMENT_MAZING)
|
||||
if(!puzzle_imprison(target))
|
||||
to_chat(usr,"<span class='warning'>Imprisonment failed!</span>")
|
||||
return
|
||||
|
||||
var/msg = "[key_name_admin(usr)] punished [key_name_admin(target)] with [punishment]."
|
||||
message_admins(msg)
|
||||
admin_ticket_log(target, msg)
|
||||
log_admin("[key_name(usr)] punished [key_name(target)] with [punishment].")
|
||||
punish_log(target, punishment)
|
||||
|
||||
/client/proc/punish_log(var/whom, var/punishment)
|
||||
var/msg = "[key_name_admin(usr)] punished [key_name_admin(whom)] with [punishment]."
|
||||
message_admins(msg)
|
||||
admin_ticket_log(whom, msg)
|
||||
log_admin("[key_name(usr)] punished [key_name(whom)] with [punishment].")
|
||||
|
||||
/client/proc/trigger_centcom_recall()
|
||||
if(!check_rights(R_ADMIN))
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
var/effectAnnounce = TRUE
|
||||
var/numTurfs = 0 //Counts the number of turfs with things we can launch in the chosen bay (in the centcom map)
|
||||
var/launchCounter = 1 //Used with the "Ordered" launch mode (launchChoice = 1) to see what item is launched
|
||||
var/specificTarget //Do we want to target a specific mob instead of where we click? Also used for smiting
|
||||
var/atom/specificTarget //Do we want to target a specific mob instead of where we click? Also used for smiting
|
||||
var/list/orderedArea = list() //Contains an ordered list of turfs in an area (filled in the createOrderedArea() proc), read top-left to bottom-right. Used for the "ordered" launch mode (launchChoice = 1)
|
||||
var/list/acceptableTurfs = list() //Contians a list of turfs (in the "bay" area on centcom) that have items that can be launched. Taken from orderedArea
|
||||
var/list/launchList = list() //Contains whatever is going to be put in the supplypod and fired. Taken from acceptableTurfs
|
||||
@@ -412,13 +412,17 @@ force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.adm
|
||||
if(left_click) //When we left click:
|
||||
preLaunch() //Fill the acceptableTurfs list from the orderedArea list. Then, fill up the launchList list with items from the acceptableTurfs list based on the manner of launch (ordered, random, etc)
|
||||
if (!isnull(specificTarget))
|
||||
target = get_turf(specificTarget) //if we have a specific mob target, then always launch the pod at the turf of the mob
|
||||
target = get_turf(specificTarget) //if we have a specific target, then always launch the pod at the turf of the target
|
||||
else if (target)
|
||||
target = get_turf(target) //Make sure we're aiming at a turf rather than an item or effect or something
|
||||
else
|
||||
return //if target is null and we don't have a specific target, cancel
|
||||
if (effectAnnounce)
|
||||
deadchat_broadcast("<span class='deadsay'>A special package is being launched at the station!</span>", turf_target = target)
|
||||
var/list/bouttaDie = list()
|
||||
for (var/mob/living/M in target)
|
||||
bouttaDie.Add(M)
|
||||
supplypod_punish_log(bouttaDie)
|
||||
if (!effectBurst) //If we're not using burst mode, just launch normally.
|
||||
launch(target)
|
||||
else
|
||||
@@ -432,7 +436,6 @@ force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.adm
|
||||
else
|
||||
launch(target) //If we couldn't locate an adjacent turf, just launch at the normal target
|
||||
sleep(rand()*2) //looks cooler than them all appearing at once. Gives the impression of burst fire.
|
||||
log_admin("Centcom Supplypod Launch: [key_name(user)] launched a supplypod in [AREACOORD(target)]")
|
||||
|
||||
/datum/centcom_podlauncher/proc/refreshBay() //Called whenever the bay is switched, as well as wheneber a pod is launched
|
||||
orderedArea = createOrderedArea(bay) //Create an ordered list full of turfs form the bay
|
||||
@@ -518,4 +521,25 @@ force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.adm
|
||||
updateCursor(FALSE) //Make sure our moues cursor resets to default. False means we are not in launch mode
|
||||
qdel(temp_pod) //Delete the temp_pod
|
||||
qdel(selector) //Delete the selector effect
|
||||
. = ..()
|
||||
. = ..()
|
||||
|
||||
/datum/centcom_podlauncher/proc/supplypod_punish_log(var/list/whoDyin)
|
||||
var/podString = effectBurst ? "5 pods" : "a pod"
|
||||
var/whomString = ""
|
||||
if (LAZYLEN(whoDyin))
|
||||
for (var/mob/living/M in whoDyin)
|
||||
whomString += "[key_name(M)], "
|
||||
|
||||
var/delayString = temp_pod.landingDelay == initial(temp_pod.landingDelay) ? "" : " Delay=[temp_pod.landingDelay*0.1]s"
|
||||
var/damageString = temp_pod.damage == 0 ? "" : " Dmg=[temp_pod.damage]"
|
||||
var/explosionString = ""
|
||||
if (counterlist_sum(temp_pod.explosionSize) != 0)
|
||||
explosionString = " Boom=|"
|
||||
for (var/X in temp_pod.explosionSize)
|
||||
explosionString += "[X]|"
|
||||
|
||||
var/msg = "launched [podString][whomString].[delayString][damageString][explosionString]]"
|
||||
message_admins("[key_name_admin(usr)] [msg] in [AREACOORD(specificTarget)].")
|
||||
if (!isemptylist(whoDyin))
|
||||
for (var/mob/living/M in whoDyin)
|
||||
admin_ticket_log(M, "[key_name_admin(usr)] [msg]")
|
||||
@@ -127,7 +127,7 @@
|
||||
M.gib() //After adjusting the fuck outta that brute loss we finish the job with some satisfying gibs
|
||||
M.adjustBruteLoss(damage)
|
||||
|
||||
if (B[1] || B[2] || B[3] || B[4]) //If the explosion list isn't all zeroes, call an explosion
|
||||
if (counterlist_sum(explosionSize) != 0) //If the explosion list isn't all zeroes, call an explosion
|
||||
explosion(get_turf(src), B[1], B[2], B[3], flame_range = B[4], silent = effectQuiet, ignorecap = istype(src, /obj/structure/closet/supplypod/centcompod)) //less advanced equipment than bluespace pod, so larger explosion when landing
|
||||
else if (!effectQuiet) //If our explosion list IS all zeroes, we still make a nice explosion sound (unless the effectQuiet var is true)
|
||||
playsound(src, "explosion", landingSound ? 15 : 80, 1)
|
||||
|
||||
Reference in New Issue
Block a user