Merge branch 'master' into stationgoals

This commit is contained in:
Mark van Alphen
2017-02-07 18:51:08 +01:00
committed by GitHub
66 changed files with 826 additions and 396 deletions
+46 -29
View File
@@ -56,6 +56,7 @@
var/miming = 0 // Mime's vow of silence
var/datum/faction/faction //associated faction
var/datum/changeling/changeling //changeling holder
var/linglink
var/datum/vampire/vampire //vampire holder
var/datum/nations/nation //nation holder
var/datum/abductor/abductor //abductor holder
@@ -104,11 +105,13 @@
/datum/mind/proc/wipe_memory()
memory = null
/datum/mind/proc/show_memory(mob/recipient)
var/output = "<B>[current.real_name]'s Memory</B><HR>"
/datum/mind/proc/show_memory(mob/recipient, window=1)
if(!recipient)
recipient = current
var/output = "<B>[current.real_name]'s Memories:</B><HR>"
output += memory
if(objectives.len>0)
if(objectives.len)
output += "<HR><B>Objectives:</B>"
var/obj_count = 1
@@ -116,7 +119,7 @@
output += "<B>Objective #[obj_count]</B>: [objective.explanation_text]"
obj_count++
if(job_objectives.len>0)
if(job_objectives.len)
output += "<HR><B>Job Objectives:</B><UL>"
var/obj_count = 1
@@ -124,8 +127,10 @@
output += "<LI><B>Task #[obj_count]</B>: [objective.get_description()]</LI>"
obj_count++
output += "</UL>"
recipient << browse(output,"window=memory")
if(window)
recipient << browse(output,"window=memory")
else
to_chat(recipient, "<i>[output]</i>")
/datum/mind/proc/edit_memory()
if(!ticker || !ticker.mode)
@@ -149,7 +154,7 @@
)
var/text = ""
var/mob/living/carbon/human/H = current
if(istype(current, /mob/living/carbon/human))
if(ishuman(current))
/** Impanted**/
if(isloyal(H))
text = "Mindshield Implant:<a href='?src=[UID()];implant=remove'>Remove</a>|<b><font color='green'>Implanted</font></b></br>"
@@ -369,7 +374,7 @@
/** SILICON ***/
if(istype(current, /mob/living/silicon))
if(issilicon(current))
text = "silicon"
var/mob/living/silicon/robot/robot = current
if(istype(robot) && robot.emagged)
@@ -409,7 +414,7 @@
if(((src in ticker.mode.head_revolutionaries) || \
(src in ticker.mode.traitors) || \
(src in ticker.mode.syndicates)) && \
istype(current,/mob/living/carbon/human) )
ishuman(current) )
text = "Uplink: <a href='?src=[UID()];common=uplink'>give</a>"
var/obj/item/device/uplink/hidden/suplink = find_syndicate_uplink()
@@ -445,18 +450,21 @@
usr << browse(out, "window=edit_memory[src];size=400x500")
/datum/mind/Topic(href, href_list)
if(!check_rights(R_ADMIN)) return
if(!check_rights(R_ADMIN))
return
if(href_list["role_edit"])
var/new_role = input("Select new role", "Assigned role", assigned_role) as null|anything in joblist
if(!new_role) return
if(!new_role)
return
assigned_role = new_role
log_admin("[key_name(usr)] has changed [key_name(current)]'s assigned role to [assigned_role]")
message_admins("[key_name_admin(usr)] has changed [key_name_admin(current)]'s assigned role to [assigned_role]")
else if(href_list["memory_edit"])
var/new_memo = copytext(input("Write new memory", "Memory", memory) as null|message,1,MAX_MESSAGE_LEN)
if(isnull(new_memo)) return
if(isnull(new_memo))
return
memory = new_memo
log_admin("[key_name(usr)] has edited [key_name(current)]'s memory")
message_admins("[key_name_admin(usr)] has edited [key_name_admin(current)]'s memory")
@@ -468,7 +476,8 @@
if(href_list["obj_edit"])
objective = locate(href_list["obj_edit"])
if(!objective) return
if(!objective)
return
objective_pos = objectives.Find(objective)
//Text strings are easy to manipulate. Revised for simplicity.
@@ -478,7 +487,8 @@
def_value = "custom"
var/new_obj_type = input("Select objective type:", "Objective type", def_value) as null|anything in list("assassinate", "blood", "debrain", "protect", "prevent", "brig", "hijack", "escape", "survive", "steal", "download", "nuclear", "capture", "absorb", "destroy", "maroon", "identity theft", "custom")
if(!new_obj_type) return
if(!new_obj_type)
return
var/datum/objective/new_objective = null
@@ -500,7 +510,8 @@
def_target = objective:target.current
var/new_target = input("Select target:", "Objective target", def_target) as null|anything in possible_targets
if(!new_target) return
if(!new_target)
return
var/objective_path = text2path("/datum/objective/[new_obj_type]")
if(new_target == "Free objective")
@@ -588,7 +599,7 @@
if("identity theft")
var/list/possible_targets = list("Free objective")
for(var/datum/mind/possible_target in ticker.minds)
if((possible_target != src) && istype(possible_target.current, /mob/living/carbon/human))
if((possible_target != src) && ishuman(possible_target.current))
possible_targets += possible_target
var/new_target = input("Select target:", "Objective target") as null|anything in possible_targets
@@ -604,12 +615,14 @@
new_objective.explanation_text = "Escape on the shuttle or an escape pod with the identity of [targ.current.real_name], the [targ.assigned_role] while wearing their identification card."
if("custom")
var/expl = sanitize(copytext(input("Custom objective:", "Objective", objective ? objective.explanation_text : "") as text|null,1,MAX_MESSAGE_LEN))
if(!expl) return
if(!expl)
return
new_objective = new /datum/objective
new_objective.owner = src
new_objective.explanation_text = expl
if(!new_objective) return
if(!new_objective)
return
if(objective)
objectives -= objective
@@ -622,7 +635,8 @@
else if(href_list["obj_delete"])
var/datum/objective/objective = locate(href_list["obj_delete"])
if(!istype(objective)) return
if(!istype(objective))
return
objectives -= objective
log_admin("[key_name(usr)] has removed one of [key_name(current)]'s objectives: [objective]")
@@ -630,7 +644,8 @@
else if(href_list["obj_completed"])
var/datum/objective/objective = locate(href_list["obj_completed"])
if(!istype(objective)) return
if(!istype(objective))
return
objective.completed = !objective.completed
log_admin("[key_name(usr)] has toggled the completion of one of [key_name(current)]'s objectives")
@@ -893,7 +908,7 @@
message_admins("[key_name_admin(usr)] has automatically forged objectives for [key_name_admin(current)]")
if("initialdna")
if( !changeling || !changeling.absorbed_dna.len )
if(!changeling || !changeling.absorbed_dna.len)
to_chat(usr, "\red Resetting DNA failed!")
else
current.dna = changeling.absorbed_dna[1]
@@ -924,7 +939,7 @@
ticker.mode.update_vampire_icons_added(src)
var/datum/mindslaves/slaved = new()
slaved.masters += src
src.som = slaved //we MIGT want to mindslave someone
som = slaved //we MIGT want to mindslave someone
special_role = SPECIAL_ROLE_VAMPIRE
to_chat(current, "<B><font color='red'>Your powers are awoken. Your lust for blood grows... You are a Vampire!</font></B>")
log_admin("[key_name(usr)] has vampired [key_name(current)]")
@@ -1033,7 +1048,7 @@
ticker.mode.traitors += src
var/datum/mindslaves/slaved = new()
slaved.masters += src
src.som = slaved //we MIGT want to mindslave someone
som = slaved //we MIGT want to mindslave someone
special_role = SPECIAL_ROLE_TRAITOR
to_chat(current, "<span class='danger'>You are a traitor!</span>")
log_admin("[key_name(usr)] has traitored [key_name(current)]")
@@ -1130,7 +1145,7 @@
message_admins("[key_name_admin(usr)] has un-emagged [key_name_admin(current)]")
if("unemagcyborgs")
if(istype(current, /mob/living/silicon/ai))
if(isAI(current))
var/mob/living/silicon/ai/ai = current
for(var/mob/living/silicon/robot/R in ai.connected_robots)
R.emagged = 0
@@ -1324,7 +1339,7 @@
var/explanation = "Summon [ticker.mode.cultdat.entity_name] via the use of the appropriate rune. It will only work if nine cultists stand on and around it."
to_chat(current, "<B>Objective #1</B>: [explanation]")
current.memory += "<B>Objective #1</B>: [explanation]<BR>"
var/mob/living/carbon/human/H = current
if(istype(H))
@@ -1453,13 +1468,13 @@
qdel(S)
spell_list -= S
/datum/mind/proc/transfer_actions(var/mob/living/new_character)
/datum/mind/proc/transfer_actions(mob/living/new_character)
if(current && current.actions)
for(var/datum/action/A in current.actions)
A.Grant(new_character)
transfer_mindbound_actions(new_character)
/datum/mind/proc/transfer_mindbound_actions(var/mob/living/new_character)
/datum/mind/proc/transfer_mindbound_actions(mob/living/new_character)
for(var/X in spell_list)
var/obj/effect/proc_holder/spell/S = X
S.action.Grant(new_character)
@@ -1553,13 +1568,15 @@
ticker.minds += mind
else
error("mind_initialize(): No ticker ready yet! Please inform Carn")
if(!mind.name) mind.name = real_name
if(!mind.name)
mind.name = real_name
mind.current = src
//HUMAN
/mob/living/carbon/human/mind_initialize()
..()
if(!mind.assigned_role) mind.assigned_role = "Civilian" //defualt
if(!mind.assigned_role)
mind.assigned_role = "Civilian" //defualt
/mob/proc/sync_mind()
mind_initialize() //updates the mind (or creates and initializes one if one doesn't exist)
+9 -7
View File
@@ -431,6 +431,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
name = "HEADER"
group = supply_engineer
announce_beacons = list("Engineering" = list("Engineering", "Chief Engineer's Desk"))
containertype = /obj/structure/closet/crate/engineering
/datum/supply_packs/engineering/fueltank
@@ -458,6 +459,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/obj/item/clothing/gloves/color/yellow)
cost = 20 //Made of pure-grade bullshittinium
containername = "insulated gloves crate"
containertype = /obj/structure/closet/crate/engineering/electrical
/datum/supply_packs/engineering/power
name = "Power Cell Crate"
@@ -466,6 +468,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/obj/item/weapon/stock_parts/cell/high)
cost = 10
containername = "electrical maintenance crate"
containertype = /obj/structure/closet/crate/engineering/electrical
/datum/supply_packs/engineering/engiequipment
name = "Engineering Gear Crate"
@@ -512,6 +515,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/obj/item/weapon/paper/solar)
cost = 20
containername = "solar pack crate"
containertype = /obj/structure/closet/crate/engineering/electrical
/datum/supply_packs/engineering/engine
name = "Emitter Crate"
@@ -521,6 +525,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
containertype = /obj/structure/closet/crate/secure
containername = "emitter crate"
access = access_ce
containertype = /obj/structure/closet/crate/secure/engineering
/datum/supply_packs/engineering/engine/field_gen
name = "Field Generator Crate"
@@ -783,6 +788,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
name = "HEADER"
group = supply_science
announce_beacons = list("Research Division" = list("Science", "Research Director's Desk"))
containertype = /obj/structure/closet/crate/sci
/datum/supply_packs/science/robotics
name = "Robotics Assembly Crate"
@@ -794,7 +800,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/obj/item/weapon/stock_parts/cell/high,
/obj/item/weapon/stock_parts/cell/high)
cost = 10
containertype = /obj/structure/closet/crate/secure
containertype = /obj/structure/closet/crate/secure/scisec
containername = "robotics assembly crate"
access = access_robotics
announce_beacons = list("Research Division" = list("Robotics", "Research Director's Desk"))
@@ -806,18 +812,14 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/obj/item/weapon/circuitboard/mecha/ripley/main, //TEMPORARY due to lack of circuitboard printer
/obj/item/weapon/circuitboard/mecha/ripley/peripherals) //TEMPORARY due to lack of circuitboard printer
cost = 30
containertype = /obj/structure/closet/crate/secure
containername = "\improper APLU \"Ripley\" circuit crate"
announce_beacons = list("Research Division" = list("Robotics", "Research Director's Desk"))
/datum/supply_packs/science/robotics/mecha_odysseus
name = "Circuit Crate (Odysseus)"
contains = list(/obj/item/weapon/circuitboard/mecha/odysseus/peripherals, //TEMPORARY due to lack of circuitboard printer
/obj/item/weapon/circuitboard/mecha/odysseus/main) //TEMPORARY due to lack of circuitboard printer
cost = 25
containertype = /obj/structure/closet/crate/secure
containername = "\improper \"Odysseus\" circuit crate"
announce_beacons = list("Research Division" = list("Robotics", "Research Director's Desk"))
/datum/supply_packs/science/plasma
name = "Plasma Assembly Crate"
@@ -846,7 +848,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/obj/machinery/shieldwallgen,
/obj/machinery/shieldwallgen)
cost = 20
containertype = /obj/structure/closet/crate/secure
containertype = /obj/structure/closet/crate/secure/scisec
containername = "shield generators crate"
access = access_teleporter
@@ -856,7 +858,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
contains = list(/obj/item/device/transfer_valve,
/obj/item/device/transfer_valve)
cost = 60
containertype = /obj/structure/closet/crate/secure
containertype = /obj/structure/closet/crate/secure/scisec
containername = "tank transfer valves crate"
access = access_rd