Duty Officer Runtime bugs

#384
This commit is contained in:
SoundScopes
2015-02-20 18:50:45 +00:00
parent d786f7f523
commit 4b2083c876
12 changed files with 103 additions and 21 deletions
@@ -80,9 +80,9 @@
var/flags
switch(new_rank)
if("Head Developer")
flags = 32767
flags = 65535
if("Head Admin")
flags = 32767
flags = 65535
if("Primary Admin")
flags = 8191
if("Secondary Admin")
@@ -97,6 +97,8 @@
flags = 5672
if("Retired Admin")
flags = 8194
if("Duty Officer")
flags = 32768
else
flags = 0
@@ -393,6 +393,7 @@ var/list/admin_verbs_hideable = list(
var/list/admin_verbs_duty = list(
/client/proc/spawn_duty_officer,
/client/proc/cmd_admin_create_centcom_report,
/client/proc/cmd_duty_say,
/client/verb/returntobody
)
+1 -1
View File
@@ -155,7 +155,7 @@
if(admin_ranks.len)
new_rank = input("Please select a rank", "New rank", null, null) as null|anything in (admin_ranks|"*New Rank*")
else
new_rank = input("Please select a rank", "New rank", null, null) as null|anything in list("Head Developer","Head Admin", "Primary Admin", "Secondary Admin", "Moderator", "Trial Moderator", "Event Host - Moderator", "Event Host", "Retired Admin", "*New Rank*")
new_rank = input("Please select a rank", "New rank", null, null) as null|anything in list("Head Developer","Head Admin", "Primary Admin", "Secondary Admin", "Moderator", "Trial Moderator", "Event Host - Moderator", "Event Host", "Retired Admin", "Duty Officer", "*New Rank*")
var/rights = 0
if(D)
+19 -4
View File
@@ -30,13 +30,28 @@
//Stealing the second var because why not)
/proc/Centcomm_announce(var/text , var/mob/Sender , var/silicon = 0 , var/iamessage)
var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN)
var/modmin = " (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservejump=\ref[Sender]'>JMP</A>) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>)"
var/msg_start = "\blue <b><font color=orange>CENTCOMM"
var/msg_end = ""
if(silicon)
msg = "\blue <b><font color=orange>CENTCOMM(A.L.I.C.E.):</font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservejump=\ref[Sender]'>JMP</A>) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;CentcommAIReply=\ref[Sender]'>RPLY</A>):</b> [msg]"
msg_start += "(A.L.I.C.E.):</font>"
msg_end = "(<A HREF='?_src_=holder;CentcommAIReply=\ref[Sender]'>RPLY</A>):</b> [msg]"
else
msg = "\blue <b><font color=orange>CENTCOMM[iamessage ? " IA" : ""]:</font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservejump=\ref[Sender]'>JMP</A>) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;CentcommReply=\ref[Sender]'>RPLY</A>):</b> [msg]"
msg_start += "[iamessage ? " IA" : ""]:</font>"
msg_end = "(<A HREF='?_src_=holder;CentcommReply=\ref[Sender]'>RPLY</A>):</b> [msg]"
for(var/client/C in admins)
if(C.holder.rights & (R_ADMIN|R_DUTYOFF|R_FUN))
C << msg
if(C.holder.rights & (R_ADMIN|R_MOD|R_FUN))
if(C.holder.rights & R_MOD && !C.holder.rights & R_DUTYOFF)
continue
C << "[msg_start][key_name(Sender, 1)][modmin][msg_end]"
continue
if(C.holder.rights & (R_DUTYOFF))
if(C.holder.rights & R_MOD)
C << "[msg_start][key_name(Sender, 1)][msg_end]"
else
C << "[msg_start][key_name(Sender, 0, 1, 0)][msg_end]"
/proc/Syndicate_announce(var/text , var/mob/Sender)
var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN)
+11 -5
View File
@@ -16,12 +16,14 @@
src << "\red The game hasn't started yet!"
return
if(mob.mind.special_role == "Duty Officer")
if(mob.mind && mob.mind.special_role == "Duty Officer")
src << "\red You are already a Duty Officer"
return
var/wasLiving = 0
if(istype(mob, /mob/living))
holder.original_mob = mob
wasLiving = 1
for (var/obj/effect/landmark/L in landmarks_list)
if(L.name == "DutyOfficer")
@@ -102,13 +104,16 @@
M.mind = new
M.mind.current = M
M.mind.original = M
M.mind.admin_mob_placeholder = mob
if(wasLiving)
M.mind.admin_mob_placeholder = mob
M.mind.assigned_role = "Central Command Duty Officer"
M.mind.special_role = "Duty Officer"
M.loc = L.loc
M.key = key
spawn(1)
holder.original_mob.key = "@[key]"
if(wasLiving)
spawn(1)
holder.original_mob.key = "@[key]"
M.equip_if_possible(new /obj/item/clothing/under/rank/centcom/officer(M), slot_w_uniform)
M.equip_if_possible(new /obj/item/clothing/shoes/centcom(M), slot_shoes)
@@ -145,7 +150,7 @@
if(!check_rights(0)) return
if(mob.mind.special_role != "Duty Officer")
if(!mob.mind || mob.mind.special_role != "Duty Officer")
verbs -= /client/verb/returntobody
return
@@ -162,6 +167,7 @@
verbs -= /client/verb/returntobody
return
holder.original_mob.key = key
holder.original_mob = null
else
if(mob.mind.admin_mob_placeholder)
mob.mind.admin_mob_placeholder.key = key
+9 -1
View File
@@ -173,6 +173,14 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
else
var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost, you won't be able to play this round for another 30 minutes! You can't change your mind so choose wisely!)","Are you sure you want to ghost?","Ghost","Stay in body")
if(response != "Ghost") return //didn't want to ghost after-all
if(client.holder && mind.special_role == "DutyOfficer")
client.holder.original_mob = null
var/mob/dead/observer/ghost = ghostize(0)
ghost.timeofdeath = world.time
mind.admin_mob_placeholder = null
del(src)
return
resting = 1
var/turf/location = get_turf(src)
message_admins("[key_name_admin(usr)] has ghosted. (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[location.x];Y=[location.y];Z=[location.z]'>JMP</a>)")
@@ -243,7 +251,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
usr << "<span class='warning'>The astral cord that ties your body and your spirit has been severed. You are likely to wander the realm beyond until your body is finally dead and thus reunited with you.</span>"
return
mind.current.ajourn=0
if(mind.current == client.holder.original_mob)
if(client.holder && mind.current == client.holder.original_mob)
client.holder.original_mob = null
mind.current.key = key
return 1
+2 -1
View File
@@ -63,7 +63,8 @@
continue
if(M.client && M.client.holder && (M.client.prefs.toggles & CHAT_DEAD) ) // Show the message to admins/mods with deadchat toggled on
M << rendered //Admins can hear deadchat, if they choose to, no matter if they're blind/deaf or not.
if(M.client.holder.rights & (R_MOD|R_ADMIN|R_DEV|R_FUN))
M << rendered //Admins can hear deadchat, if they choose to, no matter if they're blind/deaf or not.
return