From 528b7a86b87bf3555df59ed08a3dd837b2078157 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Thu, 31 Aug 2017 15:38:43 -0400 Subject: [PATCH] Merge pull request #30292 from Xhuis/revert-30289-RevertAntag Rearranges the antagonist panel: now with 150 more hours of testing --- code/datums/mind.dm | 453 +++++++++++++++++++++++--------------------- 1 file changed, 233 insertions(+), 220 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index af44f9c8ae..66e0a1f922 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -370,6 +370,9 @@ if(!SSticker.HasRoundStarted()) alert("Not before round-start!", "Alert") return + if(QDELETED(src) || QDELETED(current)) + alert("This mind doesn't have a mob, or is deleted! For some reason!", "Edit Memory") + return var/out = "[name][(current&&(current.real_name!=name))?" (as [current.real_name])":""]
" out += "Mind currently owned by key: [key] [active?"(synced)":"(not synced)"]
" @@ -377,28 +380,155 @@ out += "Faction and special role: [special_role]
" var/list/sections = list( + "traitor", // "traitorchan", + "changeling", + "nuclear", + "wizard", "revolution", "gang", "cult", - "wizard", - "changeling", - "nuclear", - "traitor", // "traitorchan", - "monkey", "clockcult", + "abductor", "devil", - "ninja" + "ninja", + "monkey" ) var/text = "" + /** TRAITOR ***/ + text = "traitor" + if (SSticker.mode.config_tag=="traitor" || SSticker.mode.config_tag=="traitorchan") + text = uppertext(text) + text = "[text]: " + if (src in SSticker.mode.traitors) + text += "TRAITOR | loyal" + if (objectives.len==0) + text += "
Objectives are empty! Randomize!" + else + text += "traitor | LOYAL" + + if(current && current.client && (ROLE_TRAITOR in current.client.prefs.be_special)) + text += " | Enabled in Prefs" + else + text += " | Disabled in Prefs" + + sections["traitor"] = text + + + if(ishuman(current) || ismonkey(current)) + + /** CHANGELING ***/ + text = "changeling" + if (SSticker.mode.config_tag=="changeling" || SSticker.mode.config_tag=="traitorchan") + text = uppertext(text) + text = "[text]: " + if ((src in SSticker.mode.changelings) && special_role) + text += "YES | no" + if (objectives.len==0) + text += "
Objectives are empty! Randomize!" + if(changeling && changeling.stored_profiles.len && (current.real_name != changeling.first_prof.name) ) + text += "
Transform to initial appearance." + else if(src in SSticker.mode.changelings) //Station Aligned Changeling + text += "YES (but not an antag) | no" + if (objectives.len==0) + text += "
Objectives are empty! Randomize!" + if(changeling && changeling.stored_profiles.len && (current.real_name != changeling.first_prof.name) ) + text += "
Transform to initial appearance." + else + text += "yes | NO" + + if(current && current.client && (ROLE_CHANGELING in current.client.prefs.be_special)) + text += " | Enabled in Prefs" + else + text += " | Disabled in Prefs" + + sections["changeling"] = text + + + /** MONKEY ***/ + text = "monkey" + if (SSticker.mode.config_tag=="monkey") + text = uppertext(text) + text = "[text]: " + if (ishuman(current)) + text += "healthy | infected | HUMAN | other" + else if(ismonkey(current)) + var/found = FALSE + for(var/datum/disease/transformation/jungle_fever/JF in current.viruses) + found = TRUE + break + + if(found) + text += "healthy | INFECTED | human | other" + else + text += "HEALTHY | infected | human | other" + + else + text += "healthy | infected | human | OTHER" + + if(current && current.client && (ROLE_MONKEY in current.client.prefs.be_special)) + text += " | Enabled in Prefs" + else + text += " | Disabled in Prefs" + + sections["monkey"] = text + if(ishuman(current)) + + /** NUCLEAR ***/ + text = "nuclear" + if (SSticker.mode.config_tag=="nuclear") + text = uppertext(text) + text = "[text]: " + if (src in SSticker.mode.syndicates) + text += "OPERATIVE | nanotrasen" + text += "
To shuttle, undress, dress up." + var/code + for (var/obj/machinery/nuclearbomb/bombue in GLOB.machines) + if (length(bombue.r_code) <= 5 && bombue.r_code != "LOLNO" && bombue.r_code != "ADMIN") + code = bombue.r_code + break + if (code) + text += " Code is [code]. tell the code." + else + text += "operative | NANOTRASEN" + + if(current && current.client && (ROLE_OPERATIVE in current.client.prefs.be_special)) + text += " | Enabled in Prefs" + else + text += " | Disabled in Prefs" + + sections["nuclear"] = text + + + /** WIZARD ***/ + text = "wizard" + if (SSticker.mode.config_tag=="wizard") + text = uppertext(text) + text = "[text]: " + if ((src in SSticker.mode.wizards) || (src in SSticker.mode.apprentices)) + text += "YES | no" + text += "
To lair, undress, dress up, let choose name." + if (objectives.len==0) + text += "
Objectives are empty! Randomize!" + else + text += "yes | NO" + + if(current && current.client && (ROLE_WIZARD in current.client.prefs.be_special)) + text += " | Enabled in Prefs" + else + text += " | Disabled in Prefs" + + sections["wizard"] = text + + /** REVOLUTION ***/ text = "revolution" if (SSticker.mode.config_tag=="revolution") text = uppertext(text) text = "[text]: " if (assigned_role in GLOB.command_positions) - text += "HEAD|loyal|employee|headrev|rev" + text += "HEAD | not mindshielded | employee | headrev | rev" else if (src in SSticker.mode.head_revolutionaries) var/last_healthy_headrev = TRUE for(var/I in SSticker.mode.head_revolutionaries) @@ -408,16 +538,16 @@ if(M.z == ZLEVEL_STATION && !M.stat) last_healthy_headrev = FALSE break - text += "head|loyal|employee|[last_healthy_headrev ? "LAST " : ""]HEADREV|rev" + text += "head | not mindshielded | employee | [last_healthy_headrev ? "LAST " : ""]HEADREV | rev" text += "
Flash: give" var/list/L = current.get_contents() var/obj/item/device/assembly/flash/flash = locate() in L if (flash) if(!flash.crit_fail) - text += "|take." + text += " | take." else - text += "|take|repair." + text += " | take | repair." else text += "." @@ -425,16 +555,16 @@ if (objectives.len==0) text += "
Objectives are empty! Set to kill all heads." else if(current.isloyal()) - text += "head|LOYAL|employee|headrev|rev" + text += "head | MINDSHIELDED | employee | headrev | rev" else if (src in SSticker.mode.revolutionaries) - text += "head|loyal|employee|headrev|REV" + text += "head | not mindshielded | employee | headrev | REV" else - text += "head|loyal|EMPLOYEE|headrev|rev" + text += "head | not mindshielded | EMPLOYEE | headrev | rev" if(current && current.client && (ROLE_REV in current.client.prefs.be_special)) - text += "|Enabled in Prefs" + text += " | Enabled in Prefs" else - text += "|Disabled in Prefs" + text += " | Disabled in Prefs" sections["revolution"] = text @@ -443,16 +573,16 @@ if (SSticker.mode.config_tag=="gang") text = uppertext(text) text = "[text]: " - text += "[current.isloyal() ? "LOYAL" : "loyal"]|" + text += "[current.isloyal() ? "MINDSHIELDED" : "not mindshielded"] | " if(src in SSticker.mode.get_all_gangsters()) text += "none" else text += "NONE" if(current && current.client && (ROLE_GANG in current.client.prefs.be_special)) - text += "|Enabled in Prefs
" + text += " | Enabled in Prefs
" else - text += "|Disabled in Prefs
" + text += " | Disabled in Prefs
" for(var/datum/gang/G in SSticker.mode.gangs) text += "[G.name]: " @@ -460,14 +590,14 @@ text += "GANGSTER" else text += "gangster" - text += "|" + text += " | " if(src in (G.bosses)) text += "GANG LEADER" - text += "|Equipment: give" + text += " | Equipment: give" var/list/L = current.get_contents() var/obj/item/device/gangtool/gangtool = locate() in L if (gangtool) - text += "|take" + text += " | take" else text += "gang leader" @@ -478,233 +608,113 @@ sections["gang"] = text - /** Abductors **/ - text = "Abductor" + /** ABDUCTION **/ + text = "abductor" if(SSticker.mode.config_tag == "abductor") text = uppertext(text) text = "[text]: " if(src in SSticker.mode.abductors) - text += "Abductor|human" - text += "|undress|equip" + text += "Abductor | human" + text += " | undress | equip" else - text += "Abductor|human" + text += "abductor | human" if(current && current.client && (ROLE_ABDUCTOR in current.client.prefs.be_special)) - text += "|Enabled in Prefs" + text += " | Enabled in Prefs" else - text += "|Disabled in Prefs" + text += " | Disabled in Prefs" sections["abductor"] = text - /** NUCLEAR ***/ - text = "nuclear" - if (SSticker.mode.config_tag=="nuclear") + + /** DEVIL ***/ + text = "devil" + if(SSticker.mode.config_tag == "devil") text = uppertext(text) text = "[text]: " - if (src in SSticker.mode.syndicates) - text += "OPERATIVE|nanotrasen" - text += "
To shuttle, undress, dress up." - var/code - for (var/obj/machinery/nuclearbomb/bombue in GLOB.machines) - if (length(bombue.r_code) <= 5 && bombue.r_code != "LOLNO" && bombue.r_code != "ADMIN") - code = bombue.r_code - break - if (code) - text += " Code is [code]. tell the code." + var/datum/antagonist/devil/devilinfo = has_antag_datum(ANTAG_DATUM_DEVIL) + if(devilinfo) + if(!devilinfo.ascendable) + text += "DEVIL | ascendable devil | sintouched | human" + else + text += "DEVIL | ASCENDABLE DEVIL | sintouched | human" + else if(src in SSticker.mode.sintouched) + text += "devil | ascendable devil | SINTOUCHED | human" else - text += "operative|NANOTRASEN" + text += "devil | ascendable devil | sintouched | HUMAN" - if(current && current.client && (ROLE_OPERATIVE in current.client.prefs.be_special)) - text += "|Enabled in Prefs" + if(current && current.client && (ROLE_DEVIL in current.client.prefs.be_special)) + text += " | Enabled in Prefs" else - text += "|Disabled in Prefs" + text += " | Disabled in Prefs" + sections["devil"] = text - sections["nuclear"] = text - /** WIZARD ***/ - text = "wizard" - if (SSticker.mode.config_tag=="wizard") + /** NINJA ***/ + text = "ninja" + if(SSticker.mode.config_tag == "ninja") text = uppertext(text) text = "[text]: " - if ((src in SSticker.mode.wizards) || (src in SSticker.mode.apprentices)) - text += "YES|no" - text += "
To lair, undress, dress up, let choose name." - if (objectives.len==0) - text += "
Objectives are empty! Randomize!" + var/datum/antagonist/ninja/ninjainfo = has_antag_datum(ANTAG_DATUM_NINJA) + if(ninjainfo) + if(ninjainfo.helping_station) + text += "employee | syndicate | NANOTRASEN | EQUIP" + else + text += "employee | SYNDICATE | nanotrasen | EQUIP" else - text += "yes|NO" - - if(current && current.client && (ROLE_WIZARD in current.client.prefs.be_special)) - text += "|Enabled in Prefs" + text += "EMPLOYEE | syndicate | nanotrasen | random allegiance" + if(current && current.client && (ROLE_NINJA in current.client.prefs.be_special)) + text += " | Enabled in Prefs" else - text += "|Disabled in Prefs" + text += " | Disabled in Prefs" + sections["ninja"] = text - sections["wizard"] = text - /** CULT ***/ - text = "cult" - if (SSticker.mode.config_tag=="cult") - text = uppertext(text) - text = "[text]: " - if(iscultist(current)) - text += "loyal|employee|CULTIST" - text += "
Give tome|amulet." + if(!issilicon(current)) + /** CULT ***/ + text = "cult" + if (SSticker.mode.config_tag=="cult") + text = uppertext(text) + text = "[text]: " + if(iscultist(current)) + text += "not mindshielded | employee | CULTIST" + text += "
Give tome | amulet." + else if(is_convertable_to_cult(current)) + text += "not mindshielded | EMPLOYEE | cultist" + else + text += "[!current.isloyal() ? "not mindshielded" : "MINDSHIELDED"] | EMPLOYEE | cannot serve Nar-Sie" - else if(current.isloyal()) - text += "LOYAL|employee|cultist" - else if(is_convertable_to_cult(current)) - text += "loyal|EMPLOYEE|cultist" - else - text += "loyal|EMPLOYEE|cannot serve Nar-Sie" + if(current && current.client && (ROLE_CULTIST in current.client.prefs.be_special)) + text += " | Enabled in Prefs" + else + text += " | Disabled in Prefs" - if(current && current.client && (ROLE_CULTIST in current.client.prefs.be_special)) - text += "|Enabled in Prefs" - else - text += "|Disabled in Prefs" + sections["cult"] = text - sections["cult"] = text - /** CLOCKWORK CULT **/ - text = "clockwork cult" - if(SSticker.mode.config_tag == "clockwork cult") - text = uppertext(text) - text = "[text]: " - if(is_servant_of_ratvar(current)) - text += "loyal|employee|SERVANT" - text += "
Give slab" - else if(current.isloyal()) - text += "LOYAL|employee|servant" - else if(is_eligible_servant(current)) - text += "loyal|EMPLOYEE|servant" - else - text += "loyal|EMPLOYEE|cannot serve Ratvar" + if(ishuman(current) || issilicon(current)) + /** CLOCKWORK CULT **/ + text = "clockwork cult" + if(SSticker.mode.config_tag == "clockwork cult") + text = uppertext(text) + text = "[text]: " + if(is_servant_of_ratvar(current)) + text += "not mindshielded | employee | SERVANT" + text += "
Give slab" + else if(is_eligible_servant(current)) + text += "not mindshielded | EMPLOYEE | servant" + else + text += "[!current.isloyal() ? "not mindshielded" : "MINDSHIELDED"] | EMPLOYEE | cannot serve Ratvar" - if(current && current.client && (ROLE_SERVANT_OF_RATVAR in current.client.prefs.be_special)) - text += "|Enabled in Prefs" - else - text += "|Disabled in Prefs" + if(current && current.client && (ROLE_SERVANT_OF_RATVAR in current.client.prefs.be_special)) + text += " | Enabled in Prefs" + else + text += " | Disabled in Prefs" sections["clockcult"] = text - /** TRAITOR ***/ - text = "traitor" - if (SSticker.mode.config_tag=="traitor" || SSticker.mode.config_tag=="traitorchan") - text = uppertext(text) - text = "[text]: " - if (src in SSticker.mode.traitors) - text += "TRAITOR|loyal" - if (objectives.len==0) - text += "
Objectives are empty! Randomize!" - else - text += "traitor|LOYAL" - if(current && current.client && (ROLE_TRAITOR in current.client.prefs.be_special)) - text += "|Enabled in Prefs" - else - text += "|Disabled in Prefs" - - sections["traitor"] = text - - if(ishuman(current) || ismonkey(current)) - - /** CHANGELING ***/ - text = "changeling" - if (SSticker.mode.config_tag=="changeling" || SSticker.mode.config_tag=="traitorchan") - text = uppertext(text) - text = "[text]: " - if ((src in SSticker.mode.changelings) && special_role) - text += "YES|no" - if (objectives.len==0) - text += "
Objectives are empty! Randomize!" - if(changeling && changeling.stored_profiles.len && (current.real_name != changeling.first_prof.name) ) - text += "
Transform to initial appearance." - else if(src in SSticker.mode.changelings) //Station Aligned Changeling - text += "YES (but not an antag)|no" - if (objectives.len==0) - text += "
Objectives are empty! Randomize!" - if(changeling && changeling.stored_profiles.len && (current.real_name != changeling.first_prof.name) ) - text += "
Transform to initial appearance." - else - text += "yes|NO" - - if(current && current.client && (ROLE_CHANGELING in current.client.prefs.be_special)) - text += "|Enabled in Prefs" - else - text += "|Disabled in Prefs" - - sections["changeling"] = text - - /** MONKEY ***/ - text = "monkey" - if (SSticker.mode.config_tag=="monkey") - text = uppertext(text) - text = "[text]: " - if (ishuman(current)) - text += "healthy|infected|HUMAN|other" - else if(ismonkey(current)) - var/found = FALSE - for(var/datum/disease/transformation/jungle_fever/JF in current.viruses) - found = TRUE - break - - if(found) - text += "healthy|INFECTED|human|other" - else - text += "HEALTHY|infected|human|other" - - else - text += "healthy|infected|human|OTHER" - - if(current && current.client && (ROLE_MONKEY in current.client.prefs.be_special)) - text += "|Enabled in Prefs" - else - text += "|Disabled in Prefs" - - sections["monkey"] = text - - /** devil ***/ - text = "devil" - if(SSticker.mode.config_tag == "devil") - text = uppertext(text) - text = "[text]: " - var/datum/antagonist/devil/devilinfo = has_antag_datum(ANTAG_DATUM_DEVIL) - if(devilinfo) - if(!devilinfo.ascendable) - text += "DEVIL|Ascendable Devil|sintouched|human" - else - text += "DEVIL|ASCENDABLE DEVIL|sintouched|human" - else if(src in SSticker.mode.sintouched) - text += "devil|Ascendable Devil|SINTOUCHED|human" - else - text += "devil|Ascendable Devil|sintouched|HUMAN" - - if(current && current.client && (ROLE_DEVIL in current.client.prefs.be_special)) - text += "|Enabled in Prefs" - else - text += "|Disabled in Prefs" - sections["devil"] = text - -/** NINJA ***/ - text = "ninja" - if(SSticker.mode.config_tag == "ninja") - text = uppertext(text) - text = "[text]: " - var/datum/antagonist/ninja/ninjainfo = has_antag_datum(ANTAG_DATUM_NINJA) - if(ninjainfo) - if(ninjainfo.helping_station) - text += "employee | syndicate | NANOTRASEN | EQUIP" - else - text += "employee | SYNDICATE | nanotrasen | EQUIP" - else - text += "EMPLOYEE | syndicate | nanotrasen | random allegiance" - if(current && current.client && (ROLE_NINJA in current.client.prefs.be_special)) - text += " | Enabled in Prefs" - else - text += " | Disabled in Prefs" - sections["ninja"] = text - - -/** SILICON ***/ + /** SILICON ***/ if(issilicon(current)) text = "silicon" var/mob/living/silicon/robot/robot = current @@ -738,7 +748,7 @@ text = "Uplink: give" var/obj/item/device/uplink/U = find_syndicate_uplink() if(U) - text += "|take" + text += " | take" if (check_rights(R_FUN, 0)) text += ", [U.telecrystals] TC" else @@ -763,7 +773,10 @@ out += "Announce objectives

" - usr << browse(out, "window=edit_memory[src];size=500x600") + var/datum/browser/popup = new(usr, "edit_memory", "", 600, 600) + popup.set_content(out) + popup.open() + //usr << browse(out, "window=edit_memory[src];size=575x600") /datum/mind/Topic(href, href_list) @@ -890,7 +903,7 @@ if(objective&&objective.type==text2path("/datum/objective/[new_obj_type]")) def_num = objective.target_amount - var/target_number = input("Input target number:", "Objective", def_num) as num|null + var/target_number = input("Input target number:", "Objective", def_num) as num | null if (isnull(target_number))//Ordinarily, you wouldn't need isnull. In this case, the value may already exist. return @@ -1387,7 +1400,7 @@ sleep(0) //because deleting of virus is doing throught spawn(0) //What log_admin("[key_name(usr)] attempting to humanize [key_name(current)]") message_admins("[key_name_admin(usr)] attempting to humanize [key_name_admin(current)]") - H = M.humanize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_DEFAULTMSG) + H = M.humanize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_DEFAULTMSG) if(H) src = H.mind @@ -1421,7 +1434,7 @@ if(check_rights(R_FUN, 0)) var/obj/item/device/uplink/U = find_syndicate_uplink() if(U) - var/crystals = input("Amount of telecrystals for [key]","Syndicate uplink", U.telecrystals) as null|num + var/crystals = input("Amount of telecrystals for [key]","Syndicate uplink", U.telecrystals) as null | num if(!isnull(crystals)) U.telecrystals = crystals message_admins("[key_name_admin(usr)] changed [current]'s telecrystal count to [crystals].")