Revert "12/21 modernizations from TG live"

This commit is contained in:
LetterJay
2016-12-22 22:35:44 -06:00
committed by GitHub
parent cf59ac1c3d
commit ae40d4134e
2215 changed files with 86928 additions and 707332 deletions
+430 -210
View File
@@ -61,8 +61,7 @@
var/datum/devilinfo/devilinfo //Information about the devil, if any.
var/damnation_type = 0
var/datum/mind/soulOwner //who owns the soul. Under normal circumstances, this will point to src
var/isholy = FALSE //is this person a chaplain or admin role allowed to use bibles
var/mob/living/enslaved_to //If this mind's master is another mob (i.e. adamantine golems)
/datum/mind/New(var/key)
@@ -84,17 +83,10 @@
if(new_character.mind) //disassociate any mind currently in our new body's mind variable
new_character.mind.current = null
if(istype(current) && islist(current.antag_datums)) //wow apparently current isn't always living good fucking job SOMEONE
for(var/i in current.antag_datums)
var/datum/antagonist/D = i
D.transfer_to_new_body(new_character)
var/datum/atom_hud/antag/hud_to_transfer = antag_hud//we need this because leave_hud() will clear this list
leave_all_huds() //leave all the huds in the old body, so it won't get huds if somebody else enters it
current = new_character //associate ourself with our new body
new_character.mind = src //and associate our new body with ourself
if(iscarbon(new_character))
var/mob/living/carbon/C = new_character
C.last_mind = src
transfer_antag_huds(hud_to_transfer) //inherit the antag HUD
transfer_actions(new_character)
@@ -182,6 +174,16 @@
ticker.mode.remove_gangster(src,0,1,1)
remove_objectives()
/datum/mind/proc/remove_hog_follower_prophet()
ticker.mode.red_deity_followers -= src
ticker.mode.red_deity_prophets -= src
ticker.mode.blue_deity_prophets -= src
ticker.mode.blue_deity_followers -= src
ticker.mode.update_hog_icons_removed(src, "red")
ticker.mode.update_hog_icons_removed(src, "blue")
/datum/mind/proc/remove_antag_equip()
var/list/Mob_Contents = current.get_contents()
for(var/obj/item/I in Mob_Contents)
@@ -206,36 +208,9 @@
ticker.mode.update_wiz_icons_removed(src)
ticker.mode.update_cult_icons_removed(src)
ticker.mode.update_rev_icons_removed(src)
if(gang_datum)
gang_datum.remove_gang_hud(src)
gang_datum.remove_gang_hud(src)
//Link a new mobs mind to the creator of said mob. They will join any team they are currently on, and will only switch teams when their creator does.
/datum/mind/proc/enslave_mind_to_creator(mob/living/creator)
if(iscultist(creator))
ticker.mode.add_cultist(src)
else if(is_gangster(creator))
ticker.mode.add_gangster(src, creator.mind.gang_datum, TRUE)
else if(is_revolutionary_in_general(creator))
ticker.mode.add_revolutionary(src)
else if(is_servant_of_ratvar(creator))
add_servant_of_ratvar(current)
else if(is_nuclear_operative(creator))
make_Nuke(null, null, 0, FALSE)
enslaved_to = creator
current.faction = creator.faction.Copy()
if(creator.mind.special_role)
message_admins("[key_name_admin(current)](<A HREF='?_src_=holder;adminmoreinfo=\ref[current]'>?</A>) has been created by [key_name_admin(creator)](<A HREF='?_src_=holder;adminmoreinfo=\ref[creator]'>?</A>), an antagonist.")
current << "<span class='userdanger'>Despite your creators current allegiances, your true master remains [creator.real_name]. If their loyalities change, so do yours. This will never change unless your creator's body is destroyed.</span>"
/datum/mind/proc/show_memory(mob/recipient, window=1)
if(!recipient)
recipient = current
@@ -276,7 +251,7 @@
)
var/text = ""
if(ishuman(current))
if (istype(current, /mob/living/carbon/human) || istype(current, /mob/living/carbon/monkey))
/** REVOLUTION ***/
text = "revolution"
if (ticker.mode.config_tag=="revolution")
@@ -301,7 +276,7 @@
text += " <a href='?src=\ref[src];revolution=reequip'>Reequip</a> (gives traitor uplink)."
if (objectives.len==0)
text += "<br>Objectives are empty! <a href='?src=\ref[src];revolution=autoobjectives'>Set to kill all heads</a>."
else if(current.isloyal())
else if(isloyal(current))
text += "head|<b>LOYAL</b>|employee|<a href='?src=\ref[src];revolution=headrev'>headrev</a>|rev"
else if (src in ticker.mode.revolutionaries)
text += "head|loyal|<a href='?src=\ref[src];revolution=clear'>employee</a>|<a href='?src=\ref[src];revolution=headrev'>headrev</a>|<b>REV</b>"
@@ -320,7 +295,7 @@
if (ticker.mode.config_tag=="gang")
text = uppertext(text)
text = "<i><b>[text]</b></i>: "
text += "[current.isloyal() ? "<B>LOYAL</B>" : "loyal"]|"
text += "[isloyal(current) ? "<B>LOYAL</B>" : "loyal"]|"
if(src in ticker.mode.get_all_gangsters())
text += "<a href='?src=\ref[src];gang=clear'>none</a>"
else
@@ -355,23 +330,100 @@
sections["gang"] = text
/** Abductors **/
text = "Abductor"
if(ticker.mode.config_tag == "abductor")
/** CULT ***/
text = "cult"
if (ticker.mode.config_tag=="cult")
text = uppertext(text)
text = "<i><b>[text]</b></i>: "
if(src in ticker.mode.abductors)
text += "<b>Abductor</b>|<a href='?src=\ref[src];abductor=clear'>human</a>"
text += "|<a href='?src=\ref[src];common=undress'>undress</a>|<a href='?src=\ref[src];abductor=equip'>equip</a>"
if (src in ticker.mode.cult)
text += "loyal|<a href='?src=\ref[src];cult=clear'>employee</a>|<b>CULTIST</b>"
text += "<br>Give <a href='?src=\ref[src];cult=tome'>tome</a>|<a href='?src=\ref[src];cult=amulet'>amulet</a>."
/*
if (objectives.len==0)
text += "<br>Objectives are empty! Set to sacrifice and <a href='?src=\ref[src];cult=escape'>escape</a> or <a href='?src=\ref[src];cult=summon'>summon</a>."
*/
else if(isloyal(current))
text += "<b>LOYAL</b>|employee|<a href='?src=\ref[src];cult=cultist'>cultist</a>"
else
text += "<a href='?src=\ref[src];abductor=abductor'>Abductor</a>|<b>human</b>"
text += "loyal|<b>EMPLOYEE</b>|<a href='?src=\ref[src];cult=cultist'>cultist</a>"
if(current && current.client && (ROLE_ABDUCTOR in current.client.prefs.be_special))
if(current && current.client && (ROLE_CULTIST in current.client.prefs.be_special))
text += "|Enabled in Prefs"
else
text += "|Disabled in Prefs"
sections["abductor"] = text
sections["cult"] = text
/** CLOCKWORK CULT **/
text = "clockwork cult"
if(ticker.mode.config_tag == "clockwork cult")
text = uppertext(text)
text = "<i><b>[text]</b></i>: "
if(src in ticker.mode.servants_of_ratvar)
text += "loyal|<a href='?src=\ref[src];clockcult=clear'>employee</a>|<b>SERVANT</b>"
text += "<br><a href='?src=\ref[src];clockcult=slab'>Give slab</a>"
else if(isloyal(current))
text += "<b>LOYAL</b>|employee|<a href='?src=\ref[src];clockcult=servant'>servant</a>"
else
text += "loyal|<b>EMPLOYEE</b>|<a href='?src=\ref[src];clockcult=servant'>servant</a>"
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
/** WIZARD ***/
text = "wizard"
if (ticker.mode.config_tag=="wizard")
text = uppertext(text)
text = "<i><b>[text]</b></i>: "
if ((src in ticker.mode.wizards) || (src in ticker.mode.apprentices))
text += "<b>YES</b>|<a href='?src=\ref[src];wizard=clear'>no</a>"
text += "<br><a href='?src=\ref[src];wizard=lair'>To lair</a>, <a href='?src=\ref[src];common=undress'>undress</a>, <a href='?src=\ref[src];wizard=dressup'>dress up</a>, <a href='?src=\ref[src];wizard=name'>let choose name</a>."
if (objectives.len==0)
text += "<br>Objectives are empty! <a href='?src=\ref[src];wizard=autoobjectives'>Randomize!</a>"
else
text += "<a href='?src=\ref[src];wizard=wizard'>yes</a>|<b>NO</b>"
if(current && current.client && (ROLE_WIZARD in current.client.prefs.be_special))
text += "|Enabled in Prefs"
else
text += "|Disabled in Prefs"
sections["wizard"] = text
/** CHANGELING ***/
text = "changeling"
if (ticker.mode.config_tag=="changeling" || ticker.mode.config_tag=="traitorchan")
text = uppertext(text)
text = "<i><b>[text]</b></i>: "
if ((src in ticker.mode.changelings) && special_role)
text += "<b>YES</b>|<a href='?src=\ref[src];changeling=clear'>no</a>"
if (objectives.len==0)
text += "<br>Objectives are empty! <a href='?src=\ref[src];changeling=autoobjectives'>Randomize!</a>"
if(changeling && changeling.stored_profiles.len && (current.real_name != changeling.first_prof.name) )
text += "<br><a href='?src=\ref[src];changeling=initialdna'>Transform to initial appearance.</a>"
else if(src in ticker.mode.changelings) //Station Aligned Changeling
text += "<b>YES (but not an antag)</b>|<a href='?src=\ref[src];changeling=clear'>no</a>"
if (objectives.len==0)
text += "<br>Objectives are empty! <a href='?src=\ref[src];changeling=autoobjectives'>Randomize!</a>"
if(changeling && changeling.stored_profiles.len && (current.real_name != changeling.first_prof.name) )
text += "<br><a href='?src=\ref[src];changeling=initialdna'>Transform to initial appearance.</a>"
else
text += "<a href='?src=\ref[src];changeling=changeling'>yes</a>|<b>NO</b>"
// var/datum/game_mode/changeling/changeling = ticker.mode
// if (istype(changeling) && changeling.changelingdeath)
// text += "<br>All the changelings are dead! Restart in [round((changeling.TIME_TO_GET_REVIVED-(world.time-changeling.changelingdeathtime))/10)] seconds."
if(current && current.client && (ROLE_CHANGELING in current.client.prefs.be_special))
text += "|Enabled in Prefs"
else
text += "|Disabled in Prefs"
sections["changeling"] = text
/** NUCLEAR ***/
text = "nuclear"
@@ -398,71 +450,6 @@
sections["nuclear"] = text
/** WIZARD ***/
text = "wizard"
if (ticker.mode.config_tag=="wizard")
text = uppertext(text)
text = "<i><b>[text]</b></i>: "
if ((src in ticker.mode.wizards) || (src in ticker.mode.apprentices))
text += "<b>YES</b>|<a href='?src=\ref[src];wizard=clear'>no</a>"
text += "<br><a href='?src=\ref[src];wizard=lair'>To lair</a>, <a href='?src=\ref[src];common=undress'>undress</a>, <a href='?src=\ref[src];wizard=dressup'>dress up</a>, <a href='?src=\ref[src];wizard=name'>let choose name</a>."
if (objectives.len==0)
text += "<br>Objectives are empty! <a href='?src=\ref[src];wizard=autoobjectives'>Randomize!</a>"
else
text += "<a href='?src=\ref[src];wizard=wizard'>yes</a>|<b>NO</b>"
if(current && current.client && (ROLE_WIZARD in current.client.prefs.be_special))
text += "|Enabled in Prefs"
else
text += "|Disabled in Prefs"
sections["wizard"] = text
/** CULT ***/
text = "cult"
if (ticker.mode.config_tag=="cult")
text = uppertext(text)
text = "<i><b>[text]</b></i>: "
if(iscultist(current))
text += "loyal|<a href='?src=\ref[src];cult=clear'>employee</a>|<b>CULTIST</b>"
text += "<br>Give <a href='?src=\ref[src];cult=tome'>tome</a>|<a href='?src=\ref[src];cult=amulet'>amulet</a>."
else if(current.isloyal())
text += "<b>LOYAL</b>|employee|<a href='?src=\ref[src];cult=cultist'>cultist</a>"
else if(is_convertable_to_cult(current))
text += "loyal|<b>EMPLOYEE</b>|<a href='?src=\ref[src];cult=cultist'>cultist</a>"
else
text += "loyal|<b>EMPLOYEE</b>|<i>cannot serve Nar-Sie</i>"
if(current && current.client && (ROLE_CULTIST in current.client.prefs.be_special))
text += "|Enabled in Prefs"
else
text += "|Disabled in Prefs"
sections["cult"] = text
/** CLOCKWORK CULT **/
text = "clockwork cult"
if(ticker.mode.config_tag == "clockwork cult")
text = uppertext(text)
text = "<i><b>[text]</b></i>: "
if(is_servant_of_ratvar(current))
text += "loyal|<a href='?src=\ref[src];clockcult=clear'>employee</a>|<b>SERVANT</b>"
text += "<br><a href='?src=\ref[src];clockcult=slab'>Give slab</a>"
else if(current.isloyal())
text += "<b>LOYAL</b>|employee|<a href='?src=\ref[src];clockcult=servant'>servant</a>"
else if(is_eligible_servant(current))
text += "loyal|<b>EMPLOYEE</b>|<a href='?src=\ref[src];clockcult=servant'>servant</a>"
else
text += "loyal|<b>EMPLOYEE</b>|<i>cannot serve Ratvar</i>"
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 (ticker.mode.config_tag=="traitor" || ticker.mode.config_tag=="traitorchan")
@@ -482,43 +469,66 @@
sections["traitor"] = text
if(ishuman(current) || ismonkey(current))
/** Abductors **/
/** CHANGELING ***/
text = "changeling"
if (ticker.mode.config_tag=="changeling" || ticker.mode.config_tag=="traitorchan")
text = uppertext(text)
text = "<i><b>[text]</b></i>: "
if ((src in ticker.mode.changelings) && special_role)
text += "<b>YES</b>|<a href='?src=\ref[src];changeling=clear'>no</a>"
if (objectives.len==0)
text += "<br>Objectives are empty! <a href='?src=\ref[src];changeling=autoobjectives'>Randomize!</a>"
if(changeling && changeling.stored_profiles.len && (current.real_name != changeling.first_prof.name) )
text += "<br><a href='?src=\ref[src];changeling=initialdna'>Transform to initial appearance.</a>"
else if(src in ticker.mode.changelings) //Station Aligned Changeling
text += "<b>YES (but not an antag)</b>|<a href='?src=\ref[src];changeling=clear'>no</a>"
if (objectives.len==0)
text += "<br>Objectives are empty! <a href='?src=\ref[src];changeling=autoobjectives'>Randomize!</a>"
if(changeling && changeling.stored_profiles.len && (current.real_name != changeling.first_prof.name) )
text += "<br><a href='?src=\ref[src];changeling=initialdna'>Transform to initial appearance.</a>"
else
text += "<a href='?src=\ref[src];changeling=changeling'>yes</a>|<b>NO</b>"
text = "Abductor"
if(ticker.mode.config_tag == "abductor")
text = uppertext(text)
text = "<i><b>[text]</b></i>: "
if(src in ticker.mode.abductors)
text += "<b>Abductor</b>|<a href='?src=\ref[src];abductor=clear'>human</a>"
text += "|<a href='?src=\ref[src];common=undress'>undress</a>|<a href='?src=\ref[src];abductor=equip'>equip</a>"
else
text += "<a href='?src=\ref[src];abductor=abductor'>Abductor</a>|<b>human</b>"
if(current && current.client && (ROLE_CHANGELING in current.client.prefs.be_special))
text += "|Enabled in Prefs"
else
text += "|Disabled in Prefs"
if(current && current.client && (ROLE_ABDUCTOR in current.client.prefs.be_special))
text += "|Enabled in Prefs"
else
text += "|Disabled in Prefs"
sections["changeling"] = text
sections["abductor"] = text
/** MONKEY ***/
/** HAND OF GOD **/
text = "hand of god"
if(ticker.mode.config_tag == "handofgod")
text = uppertext(text)
text = "<i><b>[text]</b></i>: "
if (src in ticker.mode.red_deities)
text += "<b>RED GOD</b>|<a href='?src=\ref[src];handofgod=red prophet'>red prophet</a>|<a href='?src=\ref[src];handofgod=red follower'>red follower</a>|<a href='?src=\ref[src];handofgod=clear'>employee</a>|<a href='?src=\ref[src];handofgod=blue god'>blue god</a>|<a href='?src=\ref[src];handofgod=blue prophet'>blue prophet</a>|<a href='?src=\ref[src];handofgod=blue follower'>blue follower</a>"
else if(src in ticker.mode.red_deity_prophets)
text += "<a href='?src=\ref[src];handofgod=red_god'>red god</a>|<b>RED PROPHET</b>|<a href='?src=\ref[src];handofgod=red follower'>red follower</a>|<a href='?src=\ref[src];handofgod=clear'>employee</a>|<a href='?src=\ref[src];handofgod=blue god'>blue god</a>|<a href='?src=\ref[src];handofgod=blue prophet'>blue prophet</a>|<a href='?src=\ref[src];handofgod=blue follower'>blue follower</a>"
else if (src in ticker.mode.red_deity_followers)
text += "<a href='?src=\ref[src];handofgod=red_god'>red god</a>|<a href='?src=\ref[src];handofgod=red prophet'>red prophet</a>|<b>RED FOLLOWER</b>|<a href='?src=\ref[src];handofgod=clear'>employee</a>|<a href='?src=\ref[src];handofgod=blue god'>blue god</a>|<a href='?src=\ref[src];handofgod=blue prophet'>blue prophet</a>|<a href='?src=\ref[src];handofgod=blue follower'>blue follower</a>"
else if (src in ticker.mode.blue_deities)
text += "<a href='?src=\ref[src];handofgod=red_god'>red god</a>|<a href='?src=\ref[src];handofgod=red prophet'>red prophet</a>|<a href='?src=\ref[src];handofgod=red follower'>red follower</a>|<a href='?src=\ref[src];handofgod=clear'>employee</a>|<b>BLUE GOD</b>|<a href='?src=\ref[src];handofgod=blue prophet'>blue prophet</a>|<a href='?src=\ref[src];handofgod=blue follower'>blue follower</a>"
else if (src in ticker.mode.blue_deity_prophets)
text += "<a href='?src=\ref[src];handofgod=red_god'>red god</a>|<a href='?src=\ref[src];handofgod=red prophet'>red prophet</a>|<a href='?src=\ref[src];handofgod=red follower'>red follower</a>|<a href='?src=\ref[src];handofgod=clear'>employee</a>|<a href='?src=\ref[src];handofgod=blue god'>blue god</a>|<b>BLUE PROPHET</b>|<a href='?src=\ref[src];handofgod=blue follower'>blue follower</a>"
else if (src in ticker.mode.blue_deity_followers)
text += "<a href='?src=\ref[src];handofgod=red_god'>red god</a>|<a href='?src=\ref[src];handofgod=red prophet'>red prophet</a>|<a href='?src=\ref[src];handofgod=red follower'>red follower</a>|<a href='?src=\ref[src];handofgod=clear'>employee</a>|<a href='?src=\ref[src];handofgod=blue god'>blue god</a>|<a href='?src=\ref[src];handofgod=blue prophet'>blue prophet</a>|<b>BLUE FOLLOWER</b>"
else
text += "<a href='?src=\ref[src];handofgod=red_god'>red god</a>|<a href='?src=\ref[src];handofgod=red prophet'>red prophet</a>|<a href='?src=\ref[src];handofgod=red follower'>red follower</a>|<B>EMPLOYEE</b>|<a href='?src=\ref[src];handofgod=blue god'>blue god</a>|<a href='?src=\ref[src];handofgod=blue prophet'>blue prophet</a>|<a href='?src=\ref[src];handofgod=blue follower'>blue follower</a>"
if(current && current.client && (ROLE_HOG_GOD in current.client.prefs.be_special))
text += "|HOG God Enabled in Prefs"
else
text += "|HOG God Disabled in Prefs"
if(current && current.client && (ROLE_HOG_CULTIST in current.client.prefs.be_special))
text += "|HOG Cultist Enabled in Prefs"
else
text += "|HOG Disabled in Prefs"
sections["follower"] = text
/** MONKEY ***/
if (istype(current, /mob/living/carbon))
text = "monkey"
if (ticker.mode.config_tag=="monkey")
text = uppertext(text)
text = "<i><b>[text]</b></i>: "
if (ishuman(current))
if (istype(current, /mob/living/carbon/human))
text += "<a href='?src=\ref[src];monkey=healthy'>healthy</a>|<a href='?src=\ref[src];monkey=infected'>infected</a>|<b>HUMAN</b>|other"
else if (ismonkey(current))
else if (istype(current, /mob/living/carbon/monkey))
var/found = 0
for(var/datum/disease/D in current.viruses)
if(istype(D, /datum/disease/transformation/jungle_fever)) found = 1
@@ -559,7 +569,7 @@
/** SILICON ***/
if(issilicon(current))
if (istype(current, /mob/living/silicon))
text = "silicon"
var/mob/living/silicon/robot/robot = current
if (istype(robot) && robot.emagged)
@@ -587,7 +597,10 @@
out += sections[i]+"<br>"
if(((src in ticker.mode.head_revolutionaries) || (src in ticker.mode.traitors) || (src in ticker.mode.syndicates)) && ishuman(current))
if (((src in ticker.mode.head_revolutionaries) || \
(src in ticker.mode.traitors) || \
(src in ticker.mode.syndicates)) && \
istype(current,/mob/living/carbon/human) )
text = "Uplink: <a href='?src=\ref[src];common=uplink'>give</a>"
var/obj/item/device/uplink/U = find_syndicate_uplink()
@@ -653,7 +666,7 @@
if(!def_value)//If it's a custom objective, it will be an empty string.
def_value = "custom"
var/new_obj_type = input("Select objective type:", "Objective type", def_value) as null|anything in list("assassinate", "maroon", "debrain", "protect", "destroy", "prevent", "hijack", "escape", "survive", "martyr", "steal", "download", "nuclear", "capture", "absorb", "custom")
var/new_obj_type = input("Select objective type:", "Objective type", def_value) as null|anything in list("assassinate", "maroon", "debrain", "protect", "destroy", "prevent", "hijack", "escape", "survive", "martyr", "steal", "download", "nuclear", "capture", "absorb", "custom","follower block (HOG)","build (HOG)","deicide (HOG)", "follower escape (HOG)", "sacrifice prophet (HOG)")
if (!new_obj_type)
return
@@ -663,7 +676,7 @@
if ("assassinate","protect","debrain","maroon")
var/list/possible_targets = list("Free objective")
for(var/datum/mind/possible_target in ticker.minds)
if ((possible_target != src) && ishuman(possible_target.current))
if ((possible_target != src) && istype(possible_target.current, /mob/living/carbon/human))
possible_targets += possible_target.current
var/mob/def_target = null
@@ -755,6 +768,22 @@
new_objective.owner = src
new_objective.target_amount = target_number
if("follower block (HOG)")
new_objective = new /datum/objective/follower_block
new_objective.owner = src
if("build (HOG)")
new_objective = new /datum/objective/build
new_objective.owner = src
if("deicide (HOG)")
new_objective = new /datum/objective/deicide
new_objective.owner = src
if("follower escape (HOG)")
new_objective = new /datum/objective/escape_followers
new_objective.owner = src
if("sacrifice prophet (HOG)")
new_objective = new /datum/objective/sacrifice_prophet
new_objective.owner = src
if ("custom")
var/expl = stripped_input(usr, "Custom objective:", "Objective", objective ? objective.explanation_text : "")
if (!expl)
@@ -791,6 +820,46 @@
objective.completed = !objective.completed
log_admin("[key_name(usr)] toggled the win state for [current]'s objective: [objective.explanation_text]")
else if (href_list["handofgod"])
switch(href_list["handofgod"])
if("clear") //wipe handofgod status
if((src in ticker.mode.red_deity_followers) || (src in ticker.mode.blue_deity_followers) || (src in ticker.mode.red_deity_prophets) || (src in ticker.mode.blue_deity_prophets))
remove_hog_follower_prophet()
current << "<span class='danger'><B>You have been brainwashed... again! Your faith is no more!</B></span>"
message_admins("[key_name_admin(usr)] has de-hand of god'ed [current].")
log_admin("[key_name(usr)] has de-hand of god'ed [current].")
if("red follower")
make_Handofgod_follower("red")
message_admins("[key_name_admin(usr)] has red follower'ed [current].")
log_admin("[key_name(usr)] has red follower'ed [current].")
if("red prophet")
make_Handofgod_prophet("red")
message_admins("[key_name_admin(usr)] has red prophet'ed [current].")
log_admin("[key_name(usr)] has red prophet'ed [current].")
if("blue follower")
make_Handofgod_follower("blue")
message_admins("[key_name_admin(usr)] has blue follower'ed [current].")
log_admin("[key_name(usr)] has blue follower'ed [current].")
if("blue prophet")
make_Handofgod_prophet("blue")
message_admins("[key_name_admin(usr)] has blue prophet'ed [current].")
log_admin("[key_name(usr)] has blue prophet'ed [current].")
if("red god")
make_Handofgod_god("red")
message_admins("[key_name_admin(usr)] has red god'ed [current].")
log_admin("[key_name(usr)] has red god'ed [current].")
if("blue god")
make_Handofgod_god("blue")
message_admins("[key_name_admin(usr)] has blue god'ed [current].")
log_admin("[key_name(usr)] has blue god'ed [current].")
else if (href_list["revolution"])
switch(href_list["revolution"])
if("clear")
@@ -1105,38 +1174,30 @@
if("clear")
if(src in ticker.mode.devils)
if(istype(current,/mob/living/carbon/true_devil/))
if(devilinfo)
devilinfo.regress_blood_lizard()
else
usr << "<span class='warning'>Something went wrong with removing the devil, we were unable to find an attached devilinfo.</span>."
ticker.mode.devils -= src
special_role = null
current << "<span class='userdanger'>Your infernal link has been severed! You are no longer a devil!</span>"
RemoveSpell(/obj/effect/proc_holder/spell/targeted/infernal_jaunt)
RemoveSpell(/obj/effect/proc_holder/spell/fireball/hellish)
RemoveSpell(/obj/effect/proc_holder/spell/targeted/summon_contract)
RemoveSpell(/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork)
RemoveSpell(/obj/effect/proc_holder/spell/targeted/conjure_item/violin)
message_admins("[key_name_admin(usr)] has de-devil'ed [current].")
devilinfo = null
if(issilicon(current))
var/mob/living/silicon/S = current
S.clear_law_sixsixsix(current)
log_admin("[key_name(usr)] has de-devil'ed [current].")
usr << "<span class='warning'>This cannot be used on true or arch-devils.</span>"
else
ticker.mode.devils -= src
special_role = null
current << "<span class='userdanger'>Your infernal link has been severed! You are no longer a devil!</span>"
RemoveSpell(/obj/effect/proc_holder/spell/targeted/infernal_jaunt)
RemoveSpell(/obj/effect/proc_holder/spell/dumbfire/fireball/hellish)
RemoveSpell(/obj/effect/proc_holder/spell/targeted/summon_contract)
RemoveSpell(/obj/effect/proc_holder/spell/targeted/summon_pitchfork)
message_admins("[key_name_admin(usr)] has de-devil'ed [current].")
devilinfo = null
log_admin("[key_name(usr)] has de-devil'ed [current].")
else if(src in ticker.mode.sintouched)
ticker.mode.sintouched -= src
message_admins("[key_name_admin(usr)] has de-sintouch'ed [current].")
log_admin("[key_name(usr)] has de-sintouch'ed [current].")
if("devil")
if(!ishuman(current) && !iscyborg(current))
usr << "<span class='warning'>This only works on humans and cyborgs!</span>"
if(!ishuman(current))
usr << "<span class='warning'>This only works on humans!</span>"
return
ticker.mode.devils += src
special_role = "devil"
ticker.mode.finalize_devil(src)
ticker.mode.add_devil_objectives(src, 2)
announceDevilLaws()
announce_objectives()
if("sintouched")
if(ishuman(current))
ticker.mode.sintouched += src
@@ -1227,7 +1288,7 @@
log_admin("[key_name(usr)] has unemag'ed [R].")
if("unemagcyborgs")
if(isAI(current))
if (istype(current, /mob/living/silicon/ai))
var/mob/living/silicon/ai/ai = current
for (var/mob/living/silicon/robot/R in ai.connected_robots)
R.SetEmagged(0)
@@ -1258,18 +1319,14 @@
log_admin("[key_name(usr)] attempted to give [current] an uplink.")
else if (href_list["obj_announce"])
announce_objectives()
var/obj_count = 1
current << "<span class='notice'>Your current objectives:</span>"
for(var/datum/objective/objective in objectives)
current << "<B>Objective #[obj_count]</B>: [objective.explanation_text]"
obj_count++
edit_memory()
/datum/mind/proc/announce_objectives()
var/obj_count = 1
current << "<span class='notice'>Your current objectives:</span>"
for(var/objective in objectives)
var/datum/objective/O = objective
current << "<B>Objective #[obj_count]</B>: [O.explanation_text]"
obj_count++
/datum/mind/proc/find_syndicate_uplink()
var/list/L = current.get_contents()
for (var/obj/item/I in L)
@@ -1290,42 +1347,32 @@
ticker.mode.finalize_traitor(src)
ticker.mode.greet_traitor(src)
/datum/mind/proc/make_Nuke(turf/spawnloc, nuke_code, leader=0, telecrystals = TRUE)
/datum/mind/proc/make_Nuke(turf/spawnloc,nuke_code,leader=0, telecrystals = TRUE)
if(!(src in ticker.mode.syndicates))
ticker.mode.syndicates += src
ticker.mode.update_synd_icons_added(src)
special_role = "Syndicate"
ticker.mode.forge_syndicate_objectives(src)
ticker.mode.greet_syndicate(src)
current.faction |= "syndicate"
if(spawnloc)
current.loc = spawnloc
current.loc = spawnloc
if(ishuman(current))
var/mob/living/carbon/human/H = current
qdel(H.belt)
qdel(H.back)
qdel(H.ears)
qdel(H.gloves)
qdel(H.head)
qdel(H.shoes)
qdel(H.wear_id)
qdel(H.wear_suit)
qdel(H.w_uniform)
var/mob/living/carbon/human/H = current
qdel(H.belt)
qdel(H.back)
qdel(H.ears)
qdel(H.gloves)
qdel(H.head)
qdel(H.shoes)
qdel(H.wear_id)
qdel(H.wear_suit)
qdel(H.w_uniform)
ticker.mode.equip_syndicate(current, telecrystals)
ticker.mode.equip_syndicate(current, telecrystals)
if (nuke_code)
store_memory("<B>Syndicate Nuclear Bomb Code</B>: [nuke_code]", 0, 0)
current << "The nuclear authorization code is: <B>[nuke_code]</B>"
else
var/obj/machinery/nuclearbomb/nuke = locate("syndienuke") in nuke_list
if(nuke)
store_memory("<B>Syndicate Nuclear Bomb Code</B>: [nuke.r_code]", 0, 0)
current << "The nuclear authorization code is: <B>nuke.r_code</B>"
else
current << "You were not provided with a nuclear code. Trying asking your team leader or contacting syndicate command.</B>"
if (leader)
ticker.mode.prepare_syndicate_leader(src,nuke_code)
@@ -1346,6 +1393,7 @@
ticker.mode.wizards += src
special_role = "Wizard"
assigned_role = "Wizard"
//ticker.mode.learn_basic_spells(current)
if(!wizardstart.len)
current.loc = pick(latejoin)
current << "HOT INSERTION, GO GO GO"
@@ -1353,6 +1401,8 @@
current.loc = pick(wizardstart)
ticker.mode.equip_wizard(current)
for(var/obj/item/weapon/spellbook/S in current.contents)
S.op = 0
ticker.mode.name_wizard(current)
ticker.mode.forge_wizard_objectives(src)
ticker.mode.greet_wizard(src)
@@ -1371,7 +1421,9 @@
else
var/explanation = "Summon Nar-Sie via the use of the appropriate rune (Hell join self). It will only work if nine cultists stand on and around it."
current << "<B>Objective #1</B>: [explanation]"
memory += "<B>Objective #1</B>: [explanation]<BR>"
current.memory += "<B>Objective #1</B>: [explanation]<BR>"
current << "The convert rune is join blood self"
current.memory += "The convert rune is join blood self<BR>"
var/mob/living/carbon/human/H = current
if (!ticker.mode.equip_cultist(current))
@@ -1465,6 +1517,119 @@
L = agent_landmarks[team]
H.loc = L.loc
/datum/mind/proc/make_Handofgod_follower(colour)
. = 0
switch(colour)
if("red")
//Remove old allegiances
if(src in ticker.mode.blue_deity_followers || src in ticker.mode.blue_deity_prophets)
current << "<span class='danger'><B>You are no longer a member of the Blue cult!<B></span>"
ticker.mode.blue_deity_followers -= src
ticker.mode.blue_deity_prophets -= src
current.faction |= "red god"
current.faction -= "blue god"
if(src in ticker.mode.red_deity_prophets)
current << "<span class='danger'><B>You have lost the connection with your deity, but you still believe in their grand design, You are no longer a prophet!</b></span>"
ticker.mode.red_deity_prophets -= src
ticker.mode.red_deity_followers |= src
current << "<span class='danger'><B>You are now a follower of the red cult's god!</b></span>"
special_role = "Hand of God: Red Follower"
. = 1
if("blue")
//Remove old allegiances
if(src in ticker.mode.red_deity_followers || src in ticker.mode.red_deity_prophets)
current << "<span class='danger'><B>You are no longer a member of the Red cult!<B></span>"
ticker.mode.red_deity_followers -= src
ticker.mode.red_deity_prophets -= src
current.faction -= "red god"
current.faction |= "blue god"
if(src in ticker.mode.blue_deity_prophets)
current << "<span class='danger'><B>You have lost the connection with your deity, but you still believe in their grand design, You are no longer a prophet!</b></span>"
ticker.mode.blue_deity_prophets -= src
ticker.mode.blue_deity_followers |= src
current << "<span class='danger'><B>You are now a follower of the blue cult's god!</b></span>"
special_role = "Hand of God: Blue Follower"
. = 1
else
return 0
ticker.mode.update_hog_icons_removed(src,"red")
ticker.mode.update_hog_icons_removed(src,"blue")
//ticker.mode.greet_hog_follower(src,colour)
ticker.mode.update_hog_icons_added(src, colour)
/datum/mind/proc/make_Handofgod_prophet(colour)
. = 0
switch(colour)
if("red")
//Remove old allegiances
if(src in ticker.mode.blue_deity_followers || src in ticker.mode.blue_deity_prophets)
current << "<span class='danger'><B>You are no longer a member of the Blue cult!<B></span>"
current.faction -= "blue god"
current.faction |= "red god"
ticker.mode.blue_deity_followers -= src
ticker.mode.blue_deity_prophets -= src
ticker.mode.red_deity_followers -= src
ticker.mode.red_deity_prophets |= src
current << "<span class='danger'><B>You are now a prophet of the red cult's god!</b></span>"
special_role = "Hand of God: Red Prophet"
. = 1
if("blue")
//Remove old allegiances
if(src in ticker.mode.red_deity_followers || src in ticker.mode.red_deity_prophets)
current << "<span class='danger'><B>You are no longer a member of the Red cult!<B></span>"
current.faction -= "red god"
current.faction |= "blue god"
ticker.mode.red_deity_followers -= src
ticker.mode.red_deity_prophets -= src
ticker.mode.blue_deity_followers -= src
ticker.mode.blue_deity_prophets |= src
current << "<span class='danger'><B>You are now a prophet of the blue cult's god!</b></span>"
special_role = "Hand of God: Blue Prophet"
. = 1
else
return 0
ticker.mode.update_hog_icons_removed(src,"red")
ticker.mode.update_hog_icons_removed(src,"blue")
ticker.mode.greet_hog_follower(src,colour)
ticker.mode.update_hog_icons_added(src, colour)
/datum/mind/proc/make_Handofgod_god(colour)
switch(colour)
if("red")
current.become_god("red")
ticker.mode.add_god(src,"red")
if("blue")
current.become_god("blue")
ticker.mode.add_god(src,"blue")
else
return 0
ticker.mode.forge_deity_objectives(src)
ticker.mode.remove_hog_follower(src,0)
ticker.mode.update_hog_icons_added(src, colour)
// ticker.mode.greet_hog_follower(src,colour)
return 1
/datum/mind/proc/AddSpell(obj/effect/proc_holder/spell/S)
spell_list += S
S.action.Grant(current)
@@ -1533,24 +1698,53 @@
else
spawn(0)
throw EXCEPTION("mind_initialize(): No ticker ready")
if(!mind.name)
mind.name = real_name
if(!mind.name) mind.name = real_name
mind.current = src
/mob/living/carbon/mind_initialize()
..()
last_mind = mind
//HUMAN
/mob/living/carbon/human/mind_initialize()
..()
if(!mind.assigned_role)
mind.assigned_role = "Assistant" //defualt
if(!mind.assigned_role) mind.assigned_role = "Assistant" //defualt
//MONKEY
/mob/living/carbon/monkey/mind_initialize()
..()
//slime
/mob/living/simple_animal/slime/mind_initialize()
..()
mind.special_role = "slime"
mind.assigned_role = "slime"
//XENO
/mob/living/carbon/alien/mind_initialize()
..()
mind.special_role = "Alien"
mind.assigned_role = "Alien"
//XENO HUMANOID
/mob/living/carbon/alien/humanoid/royal/queen/mind_initialize()
..()
mind.special_role = "Queen"
/mob/living/carbon/alien/humanoid/royal/praetorian/mind_initialize()
..()
mind.special_role = "Praetorian"
/mob/living/carbon/alien/humanoid/hunter/mind_initialize()
..()
mind.special_role = "Hunter"
/mob/living/carbon/alien/humanoid/drone/mind_initialize()
..()
mind.special_role = "Drone"
/mob/living/carbon/alien/humanoid/sentinel/mind_initialize()
..()
mind.special_role = "Sentinel"
//XENO LARVA
/mob/living/carbon/alien/larva/mind_initialize()
..()
mind.special_role = "Larva"
//AI
/mob/living/silicon/ai/mind_initialize()
@@ -1567,3 +1761,29 @@
..()
mind.assigned_role = "pAI"
mind.special_role = ""
//BLOB
/mob/camera/blob/mind_initialize()
..()
mind.special_role = "Blob"
//Animals
/mob/living/simple_animal/mind_initialize()
..()
mind.assigned_role = "Animal"
mind.special_role = "Animal"
/mob/living/simple_animal/pet/dog/corgi/mind_initialize()
..()
mind.assigned_role = "Corgi"
mind.special_role = "Corgi"
/mob/living/simple_animal/shade/mind_initialize()
..()
mind.assigned_role = "Shade"
mind.special_role = "Shade"
/mob/living/simple_animal/hostile/construct/mind_initialize()
..()
mind.assigned_role = "[initial(name)]"
mind.special_role = "Cultist"