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].")