mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 20:16:55 +01:00
File standardisation (#13131)
* Adds the check components * Adds in trailing newlines * Converts all CRLF to LF * Post merge EOF * Post merge line endings * Final commit
This commit is contained in:
+255
-255
@@ -1,255 +1,255 @@
|
||||
var/global/normal_ooc_colour = "#002eb8"
|
||||
var/global/member_ooc_colour = "#035417"
|
||||
var/global/mentor_ooc_colour = "#0099cc"
|
||||
var/global/moderator_ooc_colour = "#184880"
|
||||
var/global/admin_ooc_colour = "#b82e00"
|
||||
|
||||
//Checks if the client already has a text input open
|
||||
/client/proc/checkTyping()
|
||||
return (prefs.toggles & TYPING_ONCE && typing)
|
||||
|
||||
/client/verb/ooc(msg = "" as text)
|
||||
set name = "OOC"
|
||||
set category = "OOC"
|
||||
|
||||
if(!mob)
|
||||
return
|
||||
if(IsGuestKey(key))
|
||||
to_chat(src, "<span class='danger'>Guests may not use OOC.</span>")
|
||||
return
|
||||
|
||||
if(!check_rights(R_ADMIN|R_MOD, 0))
|
||||
if(!config.ooc_allowed)
|
||||
to_chat(src, "<span class='danger'>OOC is globally muted.</span>")
|
||||
return
|
||||
if(!config.dooc_allowed && (mob.stat == DEAD))
|
||||
to_chat(usr, "<span class='danger'>OOC for dead mobs has been turned off.</span>")
|
||||
return
|
||||
if(prefs.muted & MUTE_OOC)
|
||||
to_chat(src, "<span class='danger'>You cannot use OOC (muted).</span>")
|
||||
return
|
||||
|
||||
if(!msg)
|
||||
msg = typing_input(src.mob, "", "ooc \"text\"")
|
||||
|
||||
msg = trim(sanitize(copytext(msg, 1, MAX_MESSAGE_LEN)))
|
||||
if(!msg)
|
||||
return
|
||||
|
||||
if(!(prefs.toggles & CHAT_OOC))
|
||||
to_chat(src, "<span class='danger'>You have OOC muted.</span>")
|
||||
return
|
||||
|
||||
if(!check_rights(R_ADMIN|R_MOD,0))
|
||||
if(!config.ooc_allowed)
|
||||
to_chat(src, "<span class='danger'>OOC is globally muted.</span>")
|
||||
return
|
||||
if(handle_spam_prevention(msg, MUTE_OOC, OOC_COOLDOWN))
|
||||
return
|
||||
if(findtext(msg, "byond://"))
|
||||
to_chat(src, "<B>Advertising other servers is not allowed.</B>")
|
||||
log_admin("[key_name(src)] has attempted to advertise in OOC: [msg]")
|
||||
message_admins("[key_name_admin(src)] has attempted to advertise in OOC: [msg]")
|
||||
return
|
||||
|
||||
log_ooc(msg, src)
|
||||
|
||||
var/display_colour = normal_ooc_colour
|
||||
if(holder && !holder.fakekey)
|
||||
display_colour = mentor_ooc_colour
|
||||
if(check_rights(R_MOD,0) && !check_rights(R_ADMIN,0))
|
||||
display_colour = moderator_ooc_colour
|
||||
else if(check_rights(R_ADMIN,0))
|
||||
if(config.allow_admin_ooccolor)
|
||||
display_colour = src.prefs.ooccolor
|
||||
else
|
||||
display_colour = admin_ooc_colour
|
||||
|
||||
if(prefs.unlock_content)
|
||||
if(display_colour == normal_ooc_colour)
|
||||
if((prefs.toggles & MEMBER_PUBLIC))
|
||||
display_colour = member_ooc_colour
|
||||
|
||||
for(var/client/C in GLOB.clients)
|
||||
if(C.prefs.toggles & CHAT_OOC)
|
||||
var/display_name = key
|
||||
|
||||
if(prefs.unlock_content)
|
||||
if(prefs.toggles & MEMBER_PUBLIC)
|
||||
var/icon/byond = icon('icons/member_content.dmi', "blag")
|
||||
display_name = "[bicon(byond)][display_name]"
|
||||
|
||||
if(donator_level > 0)
|
||||
if((prefs.toggles & DONATOR_PUBLIC))
|
||||
var/icon/donator = icon('icons/ooc_tag_16x.dmi', "donator")
|
||||
display_name = "[bicon(donator)][display_name]"
|
||||
|
||||
if(holder)
|
||||
if(holder.fakekey)
|
||||
if(C.holder && C.holder.rights & R_ADMIN)
|
||||
display_name = "[holder.fakekey]/([key])"
|
||||
else
|
||||
display_name = holder.fakekey
|
||||
|
||||
if(!config.disable_ooc_emoji)
|
||||
msg = "<span class='emoji_enabled'>[msg]</span>"
|
||||
|
||||
to_chat(C, "<font color='[display_colour]'><span class='ooc'><span class='prefix'>OOC:</span> <EM>[display_name]:</EM> <span class='message'>[msg]</span></span></font>")
|
||||
|
||||
/proc/toggle_ooc()
|
||||
config.ooc_allowed = ( !config.ooc_allowed )
|
||||
if(config.ooc_allowed)
|
||||
to_chat(world, "<B>The OOC channel has been globally enabled!</B>")
|
||||
else
|
||||
to_chat(world, "<B>The OOC channel has been globally disabled!</B>")
|
||||
|
||||
/proc/auto_toggle_ooc(var/on)
|
||||
if(config.auto_toggle_ooc_during_round && config.ooc_allowed != on)
|
||||
toggle_ooc()
|
||||
|
||||
/client/proc/set_ooc(newColor as color)
|
||||
set name = "Set Player OOC Colour"
|
||||
set desc = "Modifies the default player OOC color."
|
||||
set category = "Server"
|
||||
|
||||
if(!check_rights(R_SERVER)) return
|
||||
|
||||
normal_ooc_colour = newColor
|
||||
message_admins("[key_name_admin(usr)] has set the default player OOC color to [newColor]")
|
||||
log_admin("[key_name(usr)] has set the default player OOC color to [newColor]")
|
||||
|
||||
|
||||
feedback_add_details("admin_verb","SOOC")
|
||||
|
||||
/client/proc/reset_ooc()
|
||||
set name = "Reset Player OOC Color"
|
||||
set desc = "Returns the default player OOC color to default."
|
||||
set category = "Server"
|
||||
|
||||
if(!check_rights(R_SERVER)) return
|
||||
|
||||
normal_ooc_colour = initial(normal_ooc_colour)
|
||||
message_admins("[key_name_admin(usr)] has reset the default player OOC color")
|
||||
log_admin("[key_name(usr)] has reset the default player OOC color")
|
||||
|
||||
feedback_add_details("admin_verb","ROOC")
|
||||
|
||||
/client/proc/colorooc()
|
||||
set name = "Set Your OOC Color"
|
||||
set desc = "Allows you to pick a custom OOC color."
|
||||
set category = "Preferences"
|
||||
|
||||
if(!check_rights(R_ADMIN)) return
|
||||
|
||||
var/new_ooccolor = input(src, "Please select your OOC color.", "OOC color", prefs.ooccolor) as color|null
|
||||
if(new_ooccolor)
|
||||
prefs.ooccolor = new_ooccolor
|
||||
prefs.save_preferences(src)
|
||||
to_chat(usr, "Your OOC color has been set to [new_ooccolor].")
|
||||
|
||||
feedback_add_details("admin_verb","OC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/resetcolorooc()
|
||||
set name = "Reset Your OOC Color"
|
||||
set desc = "Returns your OOC color to default."
|
||||
set category = "Preferences"
|
||||
|
||||
if(!check_rights(R_ADMIN)) return
|
||||
|
||||
prefs.ooccolor = initial(prefs.ooccolor)
|
||||
prefs.save_preferences(src)
|
||||
to_chat(usr, "Your OOC color has been reset.")
|
||||
|
||||
feedback_add_details("admin_verb","ROC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/verb/looc(msg = "" as text)
|
||||
set name = "LOOC"
|
||||
set desc = "Local OOC, seen only by those in view."
|
||||
set category = "OOC"
|
||||
|
||||
if(!mob)
|
||||
return
|
||||
if(IsGuestKey(key))
|
||||
to_chat(src, "<span class='danger'>Guests may not use OOC.</span>")
|
||||
return
|
||||
|
||||
if(!check_rights(R_ADMIN|R_MOD,0))
|
||||
if(!config.looc_allowed)
|
||||
to_chat(src, "<span class='danger'>LOOC is globally muted.</span>")
|
||||
return
|
||||
if(!config.dooc_allowed && (mob.stat == DEAD))
|
||||
to_chat(usr, "<span class='danger'>LOOC for dead mobs has been turned off.</span>")
|
||||
return
|
||||
if(prefs.muted & MUTE_OOC)
|
||||
to_chat(src, "<span class='danger'>You cannot use LOOC (muted).</span>")
|
||||
return
|
||||
|
||||
if(!msg)
|
||||
msg = typing_input(src.mob, "Local OOC, seen only by those in view.", "looc \"text\"")
|
||||
|
||||
msg = trim(sanitize(copytext(msg, 1, MAX_MESSAGE_LEN)))
|
||||
if(!msg)
|
||||
return
|
||||
|
||||
if(!(prefs.toggles & CHAT_LOOC))
|
||||
to_chat(src, "<span class='danger'>You have LOOC muted.</span>")
|
||||
return
|
||||
|
||||
if(!check_rights(R_ADMIN|R_MOD,0))
|
||||
if(handle_spam_prevention(msg, MUTE_OOC, OOC_COOLDOWN))
|
||||
return
|
||||
if(findtext(msg, "byond://"))
|
||||
to_chat(src, "<B>Advertising other servers is not allowed.</B>")
|
||||
log_admin("[key_name(src)] has attempted to advertise in LOOC: [msg]")
|
||||
message_admins("[key_name_admin(src)] has attempted to advertise in LOOC: [msg]")
|
||||
return
|
||||
|
||||
log_looc(msg, src)
|
||||
|
||||
var/mob/source = mob.get_looc_source()
|
||||
var/list/heard = get_mobs_in_view(7, source)
|
||||
|
||||
var/display_name = key
|
||||
if(holder && holder.fakekey)
|
||||
display_name = holder.fakekey
|
||||
if(mob.stat != DEAD)
|
||||
display_name = mob.name
|
||||
|
||||
for(var/client/target in GLOB.clients)
|
||||
if(target.prefs.toggles & CHAT_LOOC)
|
||||
var/prefix = ""
|
||||
var/admin_stuff = ""
|
||||
var/send = 0
|
||||
|
||||
if(target in GLOB.admins)
|
||||
if(check_rights(R_ADMIN|R_MOD,0,target.mob))
|
||||
admin_stuff += "/([key])"
|
||||
if(target != src)
|
||||
admin_stuff += " ([admin_jump_link(mob)])"
|
||||
|
||||
if(target.mob in heard)
|
||||
send = 1
|
||||
if(isAI(target.mob))
|
||||
prefix = " (Core)"
|
||||
|
||||
else if(isAI(target.mob)) // Special case
|
||||
var/mob/living/silicon/ai/A = target.mob
|
||||
if(A.eyeobj in hearers(7, source))
|
||||
send = 1
|
||||
prefix = " (Eye)"
|
||||
|
||||
if(!send && (target in GLOB.admins))
|
||||
if(check_rights(R_ADMIN|R_MOD,0,target.mob))
|
||||
send = 1
|
||||
prefix = "(R)"
|
||||
|
||||
if(send)
|
||||
to_chat(target, "<span class='ooc'><span class='looc'>LOOC<span class='prefix'>[prefix]: </span><EM>[display_name][admin_stuff]:</EM> <span class='message'>[msg]</span></span></span>")
|
||||
|
||||
/mob/proc/get_looc_source()
|
||||
return src
|
||||
|
||||
/mob/living/silicon/ai/get_looc_source()
|
||||
if(eyeobj)
|
||||
return eyeobj
|
||||
return src
|
||||
var/global/normal_ooc_colour = "#002eb8"
|
||||
var/global/member_ooc_colour = "#035417"
|
||||
var/global/mentor_ooc_colour = "#0099cc"
|
||||
var/global/moderator_ooc_colour = "#184880"
|
||||
var/global/admin_ooc_colour = "#b82e00"
|
||||
|
||||
//Checks if the client already has a text input open
|
||||
/client/proc/checkTyping()
|
||||
return (prefs.toggles & TYPING_ONCE && typing)
|
||||
|
||||
/client/verb/ooc(msg = "" as text)
|
||||
set name = "OOC"
|
||||
set category = "OOC"
|
||||
|
||||
if(!mob)
|
||||
return
|
||||
if(IsGuestKey(key))
|
||||
to_chat(src, "<span class='danger'>Guests may not use OOC.</span>")
|
||||
return
|
||||
|
||||
if(!check_rights(R_ADMIN|R_MOD, 0))
|
||||
if(!config.ooc_allowed)
|
||||
to_chat(src, "<span class='danger'>OOC is globally muted.</span>")
|
||||
return
|
||||
if(!config.dooc_allowed && (mob.stat == DEAD))
|
||||
to_chat(usr, "<span class='danger'>OOC for dead mobs has been turned off.</span>")
|
||||
return
|
||||
if(prefs.muted & MUTE_OOC)
|
||||
to_chat(src, "<span class='danger'>You cannot use OOC (muted).</span>")
|
||||
return
|
||||
|
||||
if(!msg)
|
||||
msg = typing_input(src.mob, "", "ooc \"text\"")
|
||||
|
||||
msg = trim(sanitize(copytext(msg, 1, MAX_MESSAGE_LEN)))
|
||||
if(!msg)
|
||||
return
|
||||
|
||||
if(!(prefs.toggles & CHAT_OOC))
|
||||
to_chat(src, "<span class='danger'>You have OOC muted.</span>")
|
||||
return
|
||||
|
||||
if(!check_rights(R_ADMIN|R_MOD,0))
|
||||
if(!config.ooc_allowed)
|
||||
to_chat(src, "<span class='danger'>OOC is globally muted.</span>")
|
||||
return
|
||||
if(handle_spam_prevention(msg, MUTE_OOC, OOC_COOLDOWN))
|
||||
return
|
||||
if(findtext(msg, "byond://"))
|
||||
to_chat(src, "<B>Advertising other servers is not allowed.</B>")
|
||||
log_admin("[key_name(src)] has attempted to advertise in OOC: [msg]")
|
||||
message_admins("[key_name_admin(src)] has attempted to advertise in OOC: [msg]")
|
||||
return
|
||||
|
||||
log_ooc(msg, src)
|
||||
|
||||
var/display_colour = normal_ooc_colour
|
||||
if(holder && !holder.fakekey)
|
||||
display_colour = mentor_ooc_colour
|
||||
if(check_rights(R_MOD,0) && !check_rights(R_ADMIN,0))
|
||||
display_colour = moderator_ooc_colour
|
||||
else if(check_rights(R_ADMIN,0))
|
||||
if(config.allow_admin_ooccolor)
|
||||
display_colour = src.prefs.ooccolor
|
||||
else
|
||||
display_colour = admin_ooc_colour
|
||||
|
||||
if(prefs.unlock_content)
|
||||
if(display_colour == normal_ooc_colour)
|
||||
if((prefs.toggles & MEMBER_PUBLIC))
|
||||
display_colour = member_ooc_colour
|
||||
|
||||
for(var/client/C in GLOB.clients)
|
||||
if(C.prefs.toggles & CHAT_OOC)
|
||||
var/display_name = key
|
||||
|
||||
if(prefs.unlock_content)
|
||||
if(prefs.toggles & MEMBER_PUBLIC)
|
||||
var/icon/byond = icon('icons/member_content.dmi', "blag")
|
||||
display_name = "[bicon(byond)][display_name]"
|
||||
|
||||
if(donator_level > 0)
|
||||
if((prefs.toggles & DONATOR_PUBLIC))
|
||||
var/icon/donator = icon('icons/ooc_tag_16x.dmi', "donator")
|
||||
display_name = "[bicon(donator)][display_name]"
|
||||
|
||||
if(holder)
|
||||
if(holder.fakekey)
|
||||
if(C.holder && C.holder.rights & R_ADMIN)
|
||||
display_name = "[holder.fakekey]/([key])"
|
||||
else
|
||||
display_name = holder.fakekey
|
||||
|
||||
if(!config.disable_ooc_emoji)
|
||||
msg = "<span class='emoji_enabled'>[msg]</span>"
|
||||
|
||||
to_chat(C, "<font color='[display_colour]'><span class='ooc'><span class='prefix'>OOC:</span> <EM>[display_name]:</EM> <span class='message'>[msg]</span></span></font>")
|
||||
|
||||
/proc/toggle_ooc()
|
||||
config.ooc_allowed = ( !config.ooc_allowed )
|
||||
if(config.ooc_allowed)
|
||||
to_chat(world, "<B>The OOC channel has been globally enabled!</B>")
|
||||
else
|
||||
to_chat(world, "<B>The OOC channel has been globally disabled!</B>")
|
||||
|
||||
/proc/auto_toggle_ooc(var/on)
|
||||
if(config.auto_toggle_ooc_during_round && config.ooc_allowed != on)
|
||||
toggle_ooc()
|
||||
|
||||
/client/proc/set_ooc(newColor as color)
|
||||
set name = "Set Player OOC Colour"
|
||||
set desc = "Modifies the default player OOC color."
|
||||
set category = "Server"
|
||||
|
||||
if(!check_rights(R_SERVER)) return
|
||||
|
||||
normal_ooc_colour = newColor
|
||||
message_admins("[key_name_admin(usr)] has set the default player OOC color to [newColor]")
|
||||
log_admin("[key_name(usr)] has set the default player OOC color to [newColor]")
|
||||
|
||||
|
||||
feedback_add_details("admin_verb","SOOC")
|
||||
|
||||
/client/proc/reset_ooc()
|
||||
set name = "Reset Player OOC Color"
|
||||
set desc = "Returns the default player OOC color to default."
|
||||
set category = "Server"
|
||||
|
||||
if(!check_rights(R_SERVER)) return
|
||||
|
||||
normal_ooc_colour = initial(normal_ooc_colour)
|
||||
message_admins("[key_name_admin(usr)] has reset the default player OOC color")
|
||||
log_admin("[key_name(usr)] has reset the default player OOC color")
|
||||
|
||||
feedback_add_details("admin_verb","ROOC")
|
||||
|
||||
/client/proc/colorooc()
|
||||
set name = "Set Your OOC Color"
|
||||
set desc = "Allows you to pick a custom OOC color."
|
||||
set category = "Preferences"
|
||||
|
||||
if(!check_rights(R_ADMIN)) return
|
||||
|
||||
var/new_ooccolor = input(src, "Please select your OOC color.", "OOC color", prefs.ooccolor) as color|null
|
||||
if(new_ooccolor)
|
||||
prefs.ooccolor = new_ooccolor
|
||||
prefs.save_preferences(src)
|
||||
to_chat(usr, "Your OOC color has been set to [new_ooccolor].")
|
||||
|
||||
feedback_add_details("admin_verb","OC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/resetcolorooc()
|
||||
set name = "Reset Your OOC Color"
|
||||
set desc = "Returns your OOC color to default."
|
||||
set category = "Preferences"
|
||||
|
||||
if(!check_rights(R_ADMIN)) return
|
||||
|
||||
prefs.ooccolor = initial(prefs.ooccolor)
|
||||
prefs.save_preferences(src)
|
||||
to_chat(usr, "Your OOC color has been reset.")
|
||||
|
||||
feedback_add_details("admin_verb","ROC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/verb/looc(msg = "" as text)
|
||||
set name = "LOOC"
|
||||
set desc = "Local OOC, seen only by those in view."
|
||||
set category = "OOC"
|
||||
|
||||
if(!mob)
|
||||
return
|
||||
if(IsGuestKey(key))
|
||||
to_chat(src, "<span class='danger'>Guests may not use OOC.</span>")
|
||||
return
|
||||
|
||||
if(!check_rights(R_ADMIN|R_MOD,0))
|
||||
if(!config.looc_allowed)
|
||||
to_chat(src, "<span class='danger'>LOOC is globally muted.</span>")
|
||||
return
|
||||
if(!config.dooc_allowed && (mob.stat == DEAD))
|
||||
to_chat(usr, "<span class='danger'>LOOC for dead mobs has been turned off.</span>")
|
||||
return
|
||||
if(prefs.muted & MUTE_OOC)
|
||||
to_chat(src, "<span class='danger'>You cannot use LOOC (muted).</span>")
|
||||
return
|
||||
|
||||
if(!msg)
|
||||
msg = typing_input(src.mob, "Local OOC, seen only by those in view.", "looc \"text\"")
|
||||
|
||||
msg = trim(sanitize(copytext(msg, 1, MAX_MESSAGE_LEN)))
|
||||
if(!msg)
|
||||
return
|
||||
|
||||
if(!(prefs.toggles & CHAT_LOOC))
|
||||
to_chat(src, "<span class='danger'>You have LOOC muted.</span>")
|
||||
return
|
||||
|
||||
if(!check_rights(R_ADMIN|R_MOD,0))
|
||||
if(handle_spam_prevention(msg, MUTE_OOC, OOC_COOLDOWN))
|
||||
return
|
||||
if(findtext(msg, "byond://"))
|
||||
to_chat(src, "<B>Advertising other servers is not allowed.</B>")
|
||||
log_admin("[key_name(src)] has attempted to advertise in LOOC: [msg]")
|
||||
message_admins("[key_name_admin(src)] has attempted to advertise in LOOC: [msg]")
|
||||
return
|
||||
|
||||
log_looc(msg, src)
|
||||
|
||||
var/mob/source = mob.get_looc_source()
|
||||
var/list/heard = get_mobs_in_view(7, source)
|
||||
|
||||
var/display_name = key
|
||||
if(holder && holder.fakekey)
|
||||
display_name = holder.fakekey
|
||||
if(mob.stat != DEAD)
|
||||
display_name = mob.name
|
||||
|
||||
for(var/client/target in GLOB.clients)
|
||||
if(target.prefs.toggles & CHAT_LOOC)
|
||||
var/prefix = ""
|
||||
var/admin_stuff = ""
|
||||
var/send = 0
|
||||
|
||||
if(target in GLOB.admins)
|
||||
if(check_rights(R_ADMIN|R_MOD,0,target.mob))
|
||||
admin_stuff += "/([key])"
|
||||
if(target != src)
|
||||
admin_stuff += " ([admin_jump_link(mob)])"
|
||||
|
||||
if(target.mob in heard)
|
||||
send = 1
|
||||
if(isAI(target.mob))
|
||||
prefix = " (Core)"
|
||||
|
||||
else if(isAI(target.mob)) // Special case
|
||||
var/mob/living/silicon/ai/A = target.mob
|
||||
if(A.eyeobj in hearers(7, source))
|
||||
send = 1
|
||||
prefix = " (Eye)"
|
||||
|
||||
if(!send && (target in GLOB.admins))
|
||||
if(check_rights(R_ADMIN|R_MOD,0,target.mob))
|
||||
send = 1
|
||||
prefix = "(R)"
|
||||
|
||||
if(send)
|
||||
to_chat(target, "<span class='ooc'><span class='looc'>LOOC<span class='prefix'>[prefix]: </span><EM>[display_name][admin_stuff]:</EM> <span class='message'>[msg]</span></span></span>")
|
||||
|
||||
/mob/proc/get_looc_source()
|
||||
return src
|
||||
|
||||
/mob/living/silicon/ai/get_looc_source()
|
||||
if(eyeobj)
|
||||
return eyeobj
|
||||
return src
|
||||
|
||||
+247
-247
@@ -1,247 +1,247 @@
|
||||
/mob/var/suiciding = 0
|
||||
|
||||
/mob/living/carbon/human/proc/do_suicide(damagetype, byitem)
|
||||
var/threshold = check_death_method() ? ((HEALTH_THRESHOLD_CRIT + HEALTH_THRESHOLD_DEAD) / 2) : (HEALTH_THRESHOLD_DEAD - 50)
|
||||
var/dmgamt = maxHealth - threshold
|
||||
|
||||
var/damage_mod = 1
|
||||
switch(damagetype) //Sorry about the magic numbers.
|
||||
//brute = 1, burn = 2, tox = 4, oxy = 8
|
||||
if(15) //4 damage types
|
||||
damage_mod = 4
|
||||
|
||||
if(6, 11, 13, 14) //3 damage types
|
||||
damage_mod = 3
|
||||
|
||||
if(3, 5, 7, 9, 10, 12) //2 damage types
|
||||
damage_mod = 2
|
||||
|
||||
if(1, 2, 4, 8) //1 damage type
|
||||
damage_mod = 1
|
||||
|
||||
else //This should not happen, but if it does, everything should still work
|
||||
damage_mod = 1
|
||||
|
||||
//Do dmgamt damage divided by the number of damage types applied.
|
||||
if(damagetype & BRUTELOSS)
|
||||
adjustBruteLoss(dmgamt / damage_mod, FALSE)
|
||||
|
||||
if(damagetype & FIRELOSS)
|
||||
adjustFireLoss(dmgamt / damage_mod, FALSE)
|
||||
|
||||
if(damagetype & TOXLOSS)
|
||||
adjustToxLoss(dmgamt / damage_mod, FALSE)
|
||||
|
||||
if(damagetype & OXYLOSS)
|
||||
adjustOxyLoss(dmgamt / damage_mod, FALSE)
|
||||
|
||||
// Failing that...
|
||||
if(!(damagetype & BRUTELOSS) && !(damagetype & FIRELOSS) && !(damagetype & TOXLOSS) && !(damagetype & OXYLOSS))
|
||||
if(NO_BREATHE in dna.species.species_traits)
|
||||
// the ultimate fallback
|
||||
take_overall_damage(max(dmgamt - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0), 0, updating_health = FALSE)
|
||||
else
|
||||
adjustOxyLoss(max(dmgamt - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0), FALSE)
|
||||
|
||||
var/obj/item/organ/external/affected = get_organ("head")
|
||||
if(affected)
|
||||
affected.add_autopsy_data(byitem ? "Suicide by [byitem]" : "Suicide", dmgamt)
|
||||
|
||||
updatehealth()
|
||||
|
||||
/mob/living/carbon/human/verb/suicide()
|
||||
set hidden = 1
|
||||
|
||||
be_suicidal()
|
||||
|
||||
/mob/living/carbon/human/proc/be_suicidal(forced = FALSE)
|
||||
if(stat == DEAD)
|
||||
to_chat(src, "You're already dead!")
|
||||
return
|
||||
|
||||
if(!SSticker)
|
||||
to_chat(src, "You can't commit suicide before the game starts!")
|
||||
return
|
||||
|
||||
// No more borergrief, one way or the other
|
||||
if(has_brain_worms())
|
||||
to_chat(src, "You try to bring yourself to commit suicide, but - something prevents you!")
|
||||
return
|
||||
|
||||
if(suiciding)
|
||||
to_chat(src, "You're already committing suicide! Be patient!")
|
||||
return
|
||||
|
||||
|
||||
var/confirm = null
|
||||
if(!forced)
|
||||
confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No")
|
||||
|
||||
if(forced || (confirm == "Yes"))
|
||||
suiciding = TRUE
|
||||
var/obj/item/held_item = get_active_hand()
|
||||
if(held_item)
|
||||
var/damagetype = held_item.suicide_act(src)
|
||||
if(damagetype)
|
||||
if(damagetype & SHAME)
|
||||
adjustStaminaLoss(200)
|
||||
suiciding = FALSE
|
||||
return
|
||||
if(damagetype & OBLITERATION) // Does it gib or something? Don't deal damage
|
||||
return
|
||||
do_suicide(damagetype, held_item)
|
||||
return
|
||||
else
|
||||
for(var/obj/O in orange(1, src))
|
||||
if(O.suicidal_hands)
|
||||
continue
|
||||
var/damagetype = O.suicide_act(src)
|
||||
if(damagetype)
|
||||
if(damagetype & SHAME)
|
||||
adjustStaminaLoss(200)
|
||||
suiciding = FALSE
|
||||
return
|
||||
if(damagetype & OBLITERATION)
|
||||
return
|
||||
do_suicide(damagetype, O)
|
||||
return
|
||||
|
||||
to_chat(viewers(src), "<span class='danger'>[src] [replacetext(pick(dna.species.suicide_messages), "their", p_their())] It looks like [p_theyre()] trying to commit suicide.</span>")
|
||||
do_suicide(0)
|
||||
|
||||
/mob/living/carbon/brain/verb/suicide()
|
||||
set hidden = 1
|
||||
|
||||
if(stat == 2)
|
||||
to_chat(src, "You're already dead!")
|
||||
return
|
||||
|
||||
if(!SSticker)
|
||||
to_chat(src, "You can't commit suicide before the game starts!")
|
||||
return
|
||||
|
||||
if(suiciding)
|
||||
to_chat(src, "You're already committing suicide! Be patient!")
|
||||
return
|
||||
|
||||
var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No")
|
||||
|
||||
if(confirm == "Yes")
|
||||
suiciding = 1
|
||||
to_chat(viewers(loc), "<span class='danger'>[src]'s brain is growing dull and lifeless. It looks like it's lost the will to live.</span>")
|
||||
spawn(50)
|
||||
death(0)
|
||||
suiciding = 0
|
||||
|
||||
|
||||
/mob/living/silicon/ai/verb/suicide()
|
||||
set hidden = 1
|
||||
|
||||
if(stat == 2)
|
||||
to_chat(src, "You're already dead!")
|
||||
return
|
||||
|
||||
if(suiciding)
|
||||
to_chat(src, "You're already committing suicide! Be patient!")
|
||||
return
|
||||
|
||||
var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No")
|
||||
|
||||
if(confirm == "Yes")
|
||||
suiciding = 1
|
||||
to_chat(viewers(src), "<span class='danger'>[src] is powering down. It looks like [p_theyre()] trying to commit suicide.</span>")
|
||||
//put em at -175
|
||||
adjustOxyLoss(max(maxHealth * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
|
||||
|
||||
/mob/living/silicon/robot/verb/suicide()
|
||||
set hidden = 1
|
||||
|
||||
if(stat == 2)
|
||||
to_chat(src, "You're already dead!")
|
||||
return
|
||||
|
||||
if(suiciding)
|
||||
to_chat(src, "You're already committing suicide! Be patient!")
|
||||
return
|
||||
|
||||
var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No")
|
||||
|
||||
if(confirm == "Yes")
|
||||
suiciding = 1
|
||||
to_chat(viewers(src), "<span class='danger'>[src] is powering down. It looks like [p_theyre()] trying to commit suicide.</span>")
|
||||
//put em at -175
|
||||
adjustOxyLoss(max(maxHealth * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
|
||||
|
||||
/mob/living/silicon/pai/verb/suicide()
|
||||
set category = "pAI Commands"
|
||||
set desc = "Kill yourself and become a ghost (You will receive a confirmation prompt)"
|
||||
set name = "pAI Suicide"
|
||||
var/answer = input("REALLY kill yourself? This action can't be undone.", "Suicide", "No") in list ("Yes", "No")
|
||||
if(answer == "Yes")
|
||||
if(canmove || resting)
|
||||
close_up()
|
||||
var/obj/item/paicard/card = loc
|
||||
card.removePersonality()
|
||||
var/turf/T = get_turf_or_move(card.loc)
|
||||
for(var/mob/M in viewers(T))
|
||||
M.show_message("<span class='notice'>[src] flashes a message across its screen, \"Wiping core files. Please acquire a new personality to continue using pAI device functions.\"</span>", 3, "<span class='notice'>[src] bleeps electronically.</span>", 2)
|
||||
death(0, 1)
|
||||
else
|
||||
to_chat(src, "Aborting suicide attempt.")
|
||||
|
||||
/mob/living/carbon/alien/humanoid/verb/suicide()
|
||||
set hidden = 1
|
||||
|
||||
if(stat == 2)
|
||||
to_chat(src, "You're already dead!")
|
||||
return
|
||||
|
||||
if(suiciding)
|
||||
to_chat(src, "You're already committing suicide! Be patient!")
|
||||
return
|
||||
|
||||
var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No")
|
||||
|
||||
if(confirm == "Yes")
|
||||
suiciding = 1
|
||||
to_chat(viewers(src), "<span class='danger'>[src] is thrashing wildly! It looks like [p_theyre()] trying to commit suicide.</span>")
|
||||
//put em at -175
|
||||
adjustOxyLoss(max(175 - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
|
||||
|
||||
|
||||
/mob/living/simple_animal/slime/verb/suicide()
|
||||
set hidden = 1
|
||||
if(stat == 2)
|
||||
to_chat(src, "You're already dead!")
|
||||
return
|
||||
|
||||
if(suiciding)
|
||||
to_chat(src, "You're already committing suicide! Be patient!")
|
||||
return
|
||||
|
||||
var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No")
|
||||
|
||||
if(confirm == "Yes")
|
||||
suiciding = 1
|
||||
setOxyLoss(100, FALSE)
|
||||
adjustBruteLoss(100 - getBruteLoss(), FALSE)
|
||||
setToxLoss(100, FALSE)
|
||||
setCloneLoss(100, FALSE)
|
||||
|
||||
updatehealth()
|
||||
|
||||
/mob/living/simple_animal/mouse/verb/suicide()
|
||||
set hidden = 1
|
||||
if(stat == DEAD)
|
||||
to_chat(src, "You're already dead!")
|
||||
return
|
||||
if(suiciding)
|
||||
to_chat(src, "You're already committing suicide! Be patient!")
|
||||
return
|
||||
|
||||
var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No")
|
||||
|
||||
if(confirm == "Yes")
|
||||
suiciding = TRUE
|
||||
visible_message("<span class='danger'>[src] is playing dead permanently! It looks like [p_theyre()] trying to commit suicide.</span>")
|
||||
adjustOxyLoss(max(100 - getBruteLoss(100), 0))
|
||||
/mob/var/suiciding = 0
|
||||
|
||||
/mob/living/carbon/human/proc/do_suicide(damagetype, byitem)
|
||||
var/threshold = check_death_method() ? ((HEALTH_THRESHOLD_CRIT + HEALTH_THRESHOLD_DEAD) / 2) : (HEALTH_THRESHOLD_DEAD - 50)
|
||||
var/dmgamt = maxHealth - threshold
|
||||
|
||||
var/damage_mod = 1
|
||||
switch(damagetype) //Sorry about the magic numbers.
|
||||
//brute = 1, burn = 2, tox = 4, oxy = 8
|
||||
if(15) //4 damage types
|
||||
damage_mod = 4
|
||||
|
||||
if(6, 11, 13, 14) //3 damage types
|
||||
damage_mod = 3
|
||||
|
||||
if(3, 5, 7, 9, 10, 12) //2 damage types
|
||||
damage_mod = 2
|
||||
|
||||
if(1, 2, 4, 8) //1 damage type
|
||||
damage_mod = 1
|
||||
|
||||
else //This should not happen, but if it does, everything should still work
|
||||
damage_mod = 1
|
||||
|
||||
//Do dmgamt damage divided by the number of damage types applied.
|
||||
if(damagetype & BRUTELOSS)
|
||||
adjustBruteLoss(dmgamt / damage_mod, FALSE)
|
||||
|
||||
if(damagetype & FIRELOSS)
|
||||
adjustFireLoss(dmgamt / damage_mod, FALSE)
|
||||
|
||||
if(damagetype & TOXLOSS)
|
||||
adjustToxLoss(dmgamt / damage_mod, FALSE)
|
||||
|
||||
if(damagetype & OXYLOSS)
|
||||
adjustOxyLoss(dmgamt / damage_mod, FALSE)
|
||||
|
||||
// Failing that...
|
||||
if(!(damagetype & BRUTELOSS) && !(damagetype & FIRELOSS) && !(damagetype & TOXLOSS) && !(damagetype & OXYLOSS))
|
||||
if(NO_BREATHE in dna.species.species_traits)
|
||||
// the ultimate fallback
|
||||
take_overall_damage(max(dmgamt - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0), 0, updating_health = FALSE)
|
||||
else
|
||||
adjustOxyLoss(max(dmgamt - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0), FALSE)
|
||||
|
||||
var/obj/item/organ/external/affected = get_organ("head")
|
||||
if(affected)
|
||||
affected.add_autopsy_data(byitem ? "Suicide by [byitem]" : "Suicide", dmgamt)
|
||||
|
||||
updatehealth()
|
||||
|
||||
/mob/living/carbon/human/verb/suicide()
|
||||
set hidden = 1
|
||||
|
||||
be_suicidal()
|
||||
|
||||
/mob/living/carbon/human/proc/be_suicidal(forced = FALSE)
|
||||
if(stat == DEAD)
|
||||
to_chat(src, "You're already dead!")
|
||||
return
|
||||
|
||||
if(!SSticker)
|
||||
to_chat(src, "You can't commit suicide before the game starts!")
|
||||
return
|
||||
|
||||
// No more borergrief, one way or the other
|
||||
if(has_brain_worms())
|
||||
to_chat(src, "You try to bring yourself to commit suicide, but - something prevents you!")
|
||||
return
|
||||
|
||||
if(suiciding)
|
||||
to_chat(src, "You're already committing suicide! Be patient!")
|
||||
return
|
||||
|
||||
|
||||
var/confirm = null
|
||||
if(!forced)
|
||||
confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No")
|
||||
|
||||
if(forced || (confirm == "Yes"))
|
||||
suiciding = TRUE
|
||||
var/obj/item/held_item = get_active_hand()
|
||||
if(held_item)
|
||||
var/damagetype = held_item.suicide_act(src)
|
||||
if(damagetype)
|
||||
if(damagetype & SHAME)
|
||||
adjustStaminaLoss(200)
|
||||
suiciding = FALSE
|
||||
return
|
||||
if(damagetype & OBLITERATION) // Does it gib or something? Don't deal damage
|
||||
return
|
||||
do_suicide(damagetype, held_item)
|
||||
return
|
||||
else
|
||||
for(var/obj/O in orange(1, src))
|
||||
if(O.suicidal_hands)
|
||||
continue
|
||||
var/damagetype = O.suicide_act(src)
|
||||
if(damagetype)
|
||||
if(damagetype & SHAME)
|
||||
adjustStaminaLoss(200)
|
||||
suiciding = FALSE
|
||||
return
|
||||
if(damagetype & OBLITERATION)
|
||||
return
|
||||
do_suicide(damagetype, O)
|
||||
return
|
||||
|
||||
to_chat(viewers(src), "<span class='danger'>[src] [replacetext(pick(dna.species.suicide_messages), "their", p_their())] It looks like [p_theyre()] trying to commit suicide.</span>")
|
||||
do_suicide(0)
|
||||
|
||||
/mob/living/carbon/brain/verb/suicide()
|
||||
set hidden = 1
|
||||
|
||||
if(stat == 2)
|
||||
to_chat(src, "You're already dead!")
|
||||
return
|
||||
|
||||
if(!SSticker)
|
||||
to_chat(src, "You can't commit suicide before the game starts!")
|
||||
return
|
||||
|
||||
if(suiciding)
|
||||
to_chat(src, "You're already committing suicide! Be patient!")
|
||||
return
|
||||
|
||||
var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No")
|
||||
|
||||
if(confirm == "Yes")
|
||||
suiciding = 1
|
||||
to_chat(viewers(loc), "<span class='danger'>[src]'s brain is growing dull and lifeless. It looks like it's lost the will to live.</span>")
|
||||
spawn(50)
|
||||
death(0)
|
||||
suiciding = 0
|
||||
|
||||
|
||||
/mob/living/silicon/ai/verb/suicide()
|
||||
set hidden = 1
|
||||
|
||||
if(stat == 2)
|
||||
to_chat(src, "You're already dead!")
|
||||
return
|
||||
|
||||
if(suiciding)
|
||||
to_chat(src, "You're already committing suicide! Be patient!")
|
||||
return
|
||||
|
||||
var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No")
|
||||
|
||||
if(confirm == "Yes")
|
||||
suiciding = 1
|
||||
to_chat(viewers(src), "<span class='danger'>[src] is powering down. It looks like [p_theyre()] trying to commit suicide.</span>")
|
||||
//put em at -175
|
||||
adjustOxyLoss(max(maxHealth * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
|
||||
|
||||
/mob/living/silicon/robot/verb/suicide()
|
||||
set hidden = 1
|
||||
|
||||
if(stat == 2)
|
||||
to_chat(src, "You're already dead!")
|
||||
return
|
||||
|
||||
if(suiciding)
|
||||
to_chat(src, "You're already committing suicide! Be patient!")
|
||||
return
|
||||
|
||||
var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No")
|
||||
|
||||
if(confirm == "Yes")
|
||||
suiciding = 1
|
||||
to_chat(viewers(src), "<span class='danger'>[src] is powering down. It looks like [p_theyre()] trying to commit suicide.</span>")
|
||||
//put em at -175
|
||||
adjustOxyLoss(max(maxHealth * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
|
||||
|
||||
/mob/living/silicon/pai/verb/suicide()
|
||||
set category = "pAI Commands"
|
||||
set desc = "Kill yourself and become a ghost (You will receive a confirmation prompt)"
|
||||
set name = "pAI Suicide"
|
||||
var/answer = input("REALLY kill yourself? This action can't be undone.", "Suicide", "No") in list ("Yes", "No")
|
||||
if(answer == "Yes")
|
||||
if(canmove || resting)
|
||||
close_up()
|
||||
var/obj/item/paicard/card = loc
|
||||
card.removePersonality()
|
||||
var/turf/T = get_turf_or_move(card.loc)
|
||||
for(var/mob/M in viewers(T))
|
||||
M.show_message("<span class='notice'>[src] flashes a message across its screen, \"Wiping core files. Please acquire a new personality to continue using pAI device functions.\"</span>", 3, "<span class='notice'>[src] bleeps electronically.</span>", 2)
|
||||
death(0, 1)
|
||||
else
|
||||
to_chat(src, "Aborting suicide attempt.")
|
||||
|
||||
/mob/living/carbon/alien/humanoid/verb/suicide()
|
||||
set hidden = 1
|
||||
|
||||
if(stat == 2)
|
||||
to_chat(src, "You're already dead!")
|
||||
return
|
||||
|
||||
if(suiciding)
|
||||
to_chat(src, "You're already committing suicide! Be patient!")
|
||||
return
|
||||
|
||||
var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No")
|
||||
|
||||
if(confirm == "Yes")
|
||||
suiciding = 1
|
||||
to_chat(viewers(src), "<span class='danger'>[src] is thrashing wildly! It looks like [p_theyre()] trying to commit suicide.</span>")
|
||||
//put em at -175
|
||||
adjustOxyLoss(max(175 - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
|
||||
|
||||
|
||||
/mob/living/simple_animal/slime/verb/suicide()
|
||||
set hidden = 1
|
||||
if(stat == 2)
|
||||
to_chat(src, "You're already dead!")
|
||||
return
|
||||
|
||||
if(suiciding)
|
||||
to_chat(src, "You're already committing suicide! Be patient!")
|
||||
return
|
||||
|
||||
var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No")
|
||||
|
||||
if(confirm == "Yes")
|
||||
suiciding = 1
|
||||
setOxyLoss(100, FALSE)
|
||||
adjustBruteLoss(100 - getBruteLoss(), FALSE)
|
||||
setToxLoss(100, FALSE)
|
||||
setCloneLoss(100, FALSE)
|
||||
|
||||
updatehealth()
|
||||
|
||||
/mob/living/simple_animal/mouse/verb/suicide()
|
||||
set hidden = 1
|
||||
if(stat == DEAD)
|
||||
to_chat(src, "You're already dead!")
|
||||
return
|
||||
if(suiciding)
|
||||
to_chat(src, "You're already committing suicide! Be patient!")
|
||||
return
|
||||
|
||||
var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No")
|
||||
|
||||
if(confirm == "Yes")
|
||||
suiciding = TRUE
|
||||
visible_message("<span class='danger'>[src] is playing dead permanently! It looks like [p_theyre()] trying to commit suicide.</span>")
|
||||
adjustOxyLoss(max(100 - getBruteLoss(100), 0))
|
||||
|
||||
+130
-130
@@ -1,130 +1,130 @@
|
||||
|
||||
/client/verb/who()
|
||||
set name = "Who"
|
||||
set category = "OOC"
|
||||
|
||||
var/msg = "<b>Current Players:</b>\n"
|
||||
|
||||
|
||||
var/list/Lines = list()
|
||||
|
||||
if(check_rights(R_ADMIN,0))
|
||||
for(var/client/C in GLOB.clients)
|
||||
if(C.holder && C.holder.big_brother && !check_rights(R_PERMISSIONS, 0)) // need PERMISSIONS to see BB
|
||||
continue
|
||||
|
||||
var/entry = "\t[C.key]"
|
||||
if(C.holder && C.holder.fakekey)
|
||||
entry += " <i>(as [C.holder.fakekey])</i>"
|
||||
entry += " - Playing as [C.mob.real_name]"
|
||||
switch(C.mob.stat)
|
||||
if(UNCONSCIOUS)
|
||||
entry += " - <font color='darkgray'><b>Unconscious</b></font>"
|
||||
if(DEAD)
|
||||
if(isobserver(C.mob))
|
||||
var/mob/dead/observer/O = C.mob
|
||||
if(O.started_as_observer)
|
||||
entry += " - <font color='gray'>Observing</font>"
|
||||
else
|
||||
entry += " - <font color='black'><b>DEAD</b></font>"
|
||||
else if(istype(C.mob, /mob/new_player))
|
||||
entry += " - <font color='green'>New Player</font>"
|
||||
else
|
||||
entry += " - <font color='black'><b>DEAD</b></font>"
|
||||
|
||||
var/age
|
||||
if(isnum(C.player_age))
|
||||
age = C.player_age
|
||||
else
|
||||
age = 0
|
||||
|
||||
if(age <= 1)
|
||||
age = "<font color='#ff0000'><b>[age]</b></font>"
|
||||
else if(age < 10)
|
||||
age = "<font color='#ff8c00'><b>[age]</b></font>"
|
||||
|
||||
entry += " - [age]"
|
||||
|
||||
if(is_special_character(C.mob))
|
||||
entry += " - <b><font color='red'>Antagonist</font></b>"
|
||||
entry += " ([ADMIN_QUE(C.mob,"?")])"
|
||||
Lines += entry
|
||||
else
|
||||
for(var/client/C in GLOB.clients)
|
||||
if(C.holder && C.holder.big_brother) // BB doesn't show up at all
|
||||
continue
|
||||
|
||||
if(C.holder && C.holder.fakekey)
|
||||
Lines += C.holder.fakekey
|
||||
else
|
||||
Lines += C.key
|
||||
|
||||
for(var/line in sortList(Lines))
|
||||
msg += "[line]\n"
|
||||
|
||||
msg += "<b>Total Players: [length(Lines)]</b>"
|
||||
to_chat(src, msg)
|
||||
|
||||
/client/verb/adminwho()
|
||||
set category = "Admin"
|
||||
set name = "Adminwho"
|
||||
|
||||
var/msg = ""
|
||||
var/modmsg = ""
|
||||
var/num_mods_online = 0
|
||||
var/num_admins_online = 0
|
||||
if(holder)
|
||||
for(var/client/C in GLOB.admins)
|
||||
if(check_rights(R_ADMIN, 0, C.mob))
|
||||
|
||||
if(C.holder.fakekey && !check_rights(R_ADMIN, 0)) //Mentors can't see stealthmins
|
||||
continue
|
||||
|
||||
if(C.holder.big_brother && !check_rights(R_PERMISSIONS, 0)) // normal admins can't see BB
|
||||
continue
|
||||
|
||||
msg += "\t[C] is a [C.holder.rank]"
|
||||
|
||||
if(C.holder.fakekey)
|
||||
msg += " <i>(as [C.holder.fakekey])</i>"
|
||||
|
||||
if(isobserver(C.mob))
|
||||
msg += " - Observing"
|
||||
else if(istype(C.mob,/mob/new_player))
|
||||
msg += " - Lobby"
|
||||
else
|
||||
msg += " - Playing"
|
||||
|
||||
if(C.is_afk())
|
||||
msg += " (AFK)"
|
||||
msg += "\n"
|
||||
|
||||
num_admins_online++
|
||||
|
||||
else if(check_rights(R_MENTOR|R_MOD, 0, C.mob))
|
||||
modmsg += "\t[C] is a [C.holder.rank]"
|
||||
|
||||
if(isobserver(C.mob))
|
||||
modmsg += " - Observing"
|
||||
else if(istype(C.mob,/mob/new_player))
|
||||
modmsg += " - Lobby"
|
||||
else
|
||||
modmsg += " - Playing"
|
||||
|
||||
if(C.is_afk())
|
||||
modmsg += " (AFK)"
|
||||
modmsg += "\n"
|
||||
num_mods_online++
|
||||
else
|
||||
for(var/client/C in GLOB.admins)
|
||||
|
||||
if(check_rights(R_ADMIN, 0, C.mob))
|
||||
if(!C.holder.fakekey)
|
||||
msg += "\t[C] is a [C.holder.rank]\n"
|
||||
num_admins_online++
|
||||
else if(check_rights(R_MOD|R_MENTOR, 0, C.mob) && !check_rights(R_ADMIN, 0, C.mob))
|
||||
modmsg += "\t[C] is a [C.holder.rank]\n"
|
||||
num_mods_online++
|
||||
|
||||
msg = "<b>Current Admins ([num_admins_online]):</b>\n" + msg + "\n<b>Current Mentors ([num_mods_online]):</b>\n" + modmsg
|
||||
to_chat(src, msg)
|
||||
|
||||
/client/verb/who()
|
||||
set name = "Who"
|
||||
set category = "OOC"
|
||||
|
||||
var/msg = "<b>Current Players:</b>\n"
|
||||
|
||||
|
||||
var/list/Lines = list()
|
||||
|
||||
if(check_rights(R_ADMIN,0))
|
||||
for(var/client/C in GLOB.clients)
|
||||
if(C.holder && C.holder.big_brother && !check_rights(R_PERMISSIONS, 0)) // need PERMISSIONS to see BB
|
||||
continue
|
||||
|
||||
var/entry = "\t[C.key]"
|
||||
if(C.holder && C.holder.fakekey)
|
||||
entry += " <i>(as [C.holder.fakekey])</i>"
|
||||
entry += " - Playing as [C.mob.real_name]"
|
||||
switch(C.mob.stat)
|
||||
if(UNCONSCIOUS)
|
||||
entry += " - <font color='darkgray'><b>Unconscious</b></font>"
|
||||
if(DEAD)
|
||||
if(isobserver(C.mob))
|
||||
var/mob/dead/observer/O = C.mob
|
||||
if(O.started_as_observer)
|
||||
entry += " - <font color='gray'>Observing</font>"
|
||||
else
|
||||
entry += " - <font color='black'><b>DEAD</b></font>"
|
||||
else if(istype(C.mob, /mob/new_player))
|
||||
entry += " - <font color='green'>New Player</font>"
|
||||
else
|
||||
entry += " - <font color='black'><b>DEAD</b></font>"
|
||||
|
||||
var/age
|
||||
if(isnum(C.player_age))
|
||||
age = C.player_age
|
||||
else
|
||||
age = 0
|
||||
|
||||
if(age <= 1)
|
||||
age = "<font color='#ff0000'><b>[age]</b></font>"
|
||||
else if(age < 10)
|
||||
age = "<font color='#ff8c00'><b>[age]</b></font>"
|
||||
|
||||
entry += " - [age]"
|
||||
|
||||
if(is_special_character(C.mob))
|
||||
entry += " - <b><font color='red'>Antagonist</font></b>"
|
||||
entry += " ([ADMIN_QUE(C.mob,"?")])"
|
||||
Lines += entry
|
||||
else
|
||||
for(var/client/C in GLOB.clients)
|
||||
if(C.holder && C.holder.big_brother) // BB doesn't show up at all
|
||||
continue
|
||||
|
||||
if(C.holder && C.holder.fakekey)
|
||||
Lines += C.holder.fakekey
|
||||
else
|
||||
Lines += C.key
|
||||
|
||||
for(var/line in sortList(Lines))
|
||||
msg += "[line]\n"
|
||||
|
||||
msg += "<b>Total Players: [length(Lines)]</b>"
|
||||
to_chat(src, msg)
|
||||
|
||||
/client/verb/adminwho()
|
||||
set category = "Admin"
|
||||
set name = "Adminwho"
|
||||
|
||||
var/msg = ""
|
||||
var/modmsg = ""
|
||||
var/num_mods_online = 0
|
||||
var/num_admins_online = 0
|
||||
if(holder)
|
||||
for(var/client/C in GLOB.admins)
|
||||
if(check_rights(R_ADMIN, 0, C.mob))
|
||||
|
||||
if(C.holder.fakekey && !check_rights(R_ADMIN, 0)) //Mentors can't see stealthmins
|
||||
continue
|
||||
|
||||
if(C.holder.big_brother && !check_rights(R_PERMISSIONS, 0)) // normal admins can't see BB
|
||||
continue
|
||||
|
||||
msg += "\t[C] is a [C.holder.rank]"
|
||||
|
||||
if(C.holder.fakekey)
|
||||
msg += " <i>(as [C.holder.fakekey])</i>"
|
||||
|
||||
if(isobserver(C.mob))
|
||||
msg += " - Observing"
|
||||
else if(istype(C.mob,/mob/new_player))
|
||||
msg += " - Lobby"
|
||||
else
|
||||
msg += " - Playing"
|
||||
|
||||
if(C.is_afk())
|
||||
msg += " (AFK)"
|
||||
msg += "\n"
|
||||
|
||||
num_admins_online++
|
||||
|
||||
else if(check_rights(R_MENTOR|R_MOD, 0, C.mob))
|
||||
modmsg += "\t[C] is a [C.holder.rank]"
|
||||
|
||||
if(isobserver(C.mob))
|
||||
modmsg += " - Observing"
|
||||
else if(istype(C.mob,/mob/new_player))
|
||||
modmsg += " - Lobby"
|
||||
else
|
||||
modmsg += " - Playing"
|
||||
|
||||
if(C.is_afk())
|
||||
modmsg += " (AFK)"
|
||||
modmsg += "\n"
|
||||
num_mods_online++
|
||||
else
|
||||
for(var/client/C in GLOB.admins)
|
||||
|
||||
if(check_rights(R_ADMIN, 0, C.mob))
|
||||
if(!C.holder.fakekey)
|
||||
msg += "\t[C] is a [C.holder.rank]\n"
|
||||
num_admins_online++
|
||||
else if(check_rights(R_MOD|R_MENTOR, 0, C.mob) && !check_rights(R_ADMIN, 0, C.mob))
|
||||
modmsg += "\t[C] is a [C.holder.rank]\n"
|
||||
num_mods_online++
|
||||
|
||||
msg = "<b>Current Admins ([num_admins_online]):</b>\n" + msg + "\n<b>Current Mentors ([num_mods_online]):</b>\n" + modmsg
|
||||
to_chat(src, msg)
|
||||
|
||||
Reference in New Issue
Block a user