mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Renames /datum/objective_team to /datum/team
This commit is contained in:
@@ -47,7 +47,7 @@
|
|||||||
antag_info["antagonist_name"] = A.name //For auto and custom roles
|
antag_info["antagonist_name"] = A.name //For auto and custom roles
|
||||||
antag_info["objectives"] = list()
|
antag_info["objectives"] = list()
|
||||||
antag_info["team"] = list()
|
antag_info["team"] = list()
|
||||||
var/datum/objective_team/T = A.get_team()
|
var/datum/team/T = A.get_team()
|
||||||
if(T)
|
if(T)
|
||||||
antag_info["team"]["type"] = T.type
|
antag_info["team"]["type"] = T.type
|
||||||
antag_info["team"]["name"] = T.name
|
antag_info["team"]["name"] = T.name
|
||||||
@@ -331,7 +331,7 @@
|
|||||||
all_teams |= A.get_team()
|
all_teams |= A.get_team()
|
||||||
all_antagonists += A
|
all_antagonists += A
|
||||||
|
|
||||||
for(var/datum/objective_team/T in all_teams)
|
for(var/datum/team/T in all_teams)
|
||||||
result += T.roundend_report()
|
result += T.roundend_report()
|
||||||
for(var/datum/antagonist/X in all_antagonists)
|
for(var/datum/antagonist/X in all_antagonists)
|
||||||
if(X.get_team() == T)
|
if(X.get_team() == T)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name = "Abductor"
|
name = "Abductor"
|
||||||
roundend_category = "abductors"
|
roundend_category = "abductors"
|
||||||
job_rank = ROLE_ABDUCTOR
|
job_rank = ROLE_ABDUCTOR
|
||||||
var/datum/objective_team/abductor_team/team
|
var/datum/team/abductor_team/team
|
||||||
var/sub_role
|
var/sub_role
|
||||||
var/outfit
|
var/outfit
|
||||||
var/landmark_type
|
var/landmark_type
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
landmark_type = /obj/effect/landmark/abductor/scientist
|
landmark_type = /obj/effect/landmark/abductor/scientist
|
||||||
greet_text = "Use your stealth technology and equipment to incapacitate humans for your scientist to retrieve."
|
greet_text = "Use your stealth technology and equipment to incapacitate humans for your scientist to retrieve."
|
||||||
|
|
||||||
/datum/antagonist/abductor/create_team(datum/objective_team/abductor_team/new_team)
|
/datum/antagonist/abductor/create_team(datum/team/abductor_team/new_team)
|
||||||
if(!new_team)
|
if(!new_team)
|
||||||
return
|
return
|
||||||
if(!istype(new_team))
|
if(!istype(new_team))
|
||||||
@@ -73,20 +73,20 @@
|
|||||||
A.scientist = TRUE
|
A.scientist = TRUE
|
||||||
|
|
||||||
|
|
||||||
/datum/objective_team/abductor_team
|
/datum/team/abductor_team
|
||||||
member_name = "abductor"
|
member_name = "abductor"
|
||||||
var/team_number
|
var/team_number
|
||||||
var/list/datum/mind/abductees = list()
|
var/list/datum/mind/abductees = list()
|
||||||
|
|
||||||
/datum/objective_team/abductor_team/is_solo()
|
/datum/team/abductor_team/is_solo()
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
/datum/objective_team/abductor_team/proc/add_objective(datum/objective/O)
|
/datum/team/abductor_team/proc/add_objective(datum/objective/O)
|
||||||
O.team = src
|
O.team = src
|
||||||
O.update_explanation_text()
|
O.update_explanation_text()
|
||||||
objectives += O
|
objectives += O
|
||||||
|
|
||||||
/datum/objective_team/abductor_team/roundend_report()
|
/datum/team/abductor_team/roundend_report()
|
||||||
var/list/result = list()
|
var/list/result = list()
|
||||||
|
|
||||||
var/won = TRUE
|
var/won = TRUE
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
var/datum/objective/abductee/O = new objtype()
|
var/datum/objective/abductee/O = new objtype()
|
||||||
objectives += O
|
objectives += O
|
||||||
owner.objectives += objectives
|
owner.objectives += objectives
|
||||||
|
|
||||||
/datum/antagonist/abductee/apply_innate_effects(mob/living/mob_override)
|
/datum/antagonist/abductee/apply_innate_effects(mob/living/mob_override)
|
||||||
SSticker.mode.update_abductor_icons_added(mob_override ? mob_override.mind : owner)
|
SSticker.mode.update_abductor_icons_added(mob_override ? mob_override.mind : owner)
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ GLOBAL_LIST_EMPTY(antagonists)
|
|||||||
return
|
return
|
||||||
|
|
||||||
//Assign default team and creates one for one of a kind team antagonists
|
//Assign default team and creates one for one of a kind team antagonists
|
||||||
/datum/antagonist/proc/create_team(datum/objective_team/team)
|
/datum/antagonist/proc/create_team(datum/team/team)
|
||||||
return
|
return
|
||||||
|
|
||||||
//Proc called when the datum is given to a mind.
|
//Proc called when the datum is given to a mind.
|
||||||
@@ -84,7 +84,7 @@ GLOBAL_LIST_EMPTY(antagonists)
|
|||||||
LAZYREMOVE(owner.antag_datums, src)
|
LAZYREMOVE(owner.antag_datums, src)
|
||||||
if(!silent && owner.current)
|
if(!silent && owner.current)
|
||||||
farewell()
|
farewell()
|
||||||
var/datum/objective_team/team = get_team()
|
var/datum/team/team = get_team()
|
||||||
if(team)
|
if(team)
|
||||||
team.remove_member(owner)
|
team.remove_member(owner)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
@@ -155,6 +155,6 @@ GLOBAL_LIST_EMPTY(antagonists)
|
|||||||
else
|
else
|
||||||
already_registered_objectives |= A.objectives
|
already_registered_objectives |= A.objectives
|
||||||
objectives = owner.objectives - already_registered_objectives
|
objectives = owner.objectives - already_registered_objectives
|
||||||
|
|
||||||
//This one is created by admin tools for custom objectives
|
//This one is created by admin tools for custom objectives
|
||||||
/datum/antagonist/custom
|
/datum/antagonist/custom
|
||||||
@@ -2,12 +2,12 @@
|
|||||||
name = "Brother"
|
name = "Brother"
|
||||||
job_rank = ROLE_BROTHER
|
job_rank = ROLE_BROTHER
|
||||||
var/special_role = "blood brother"
|
var/special_role = "blood brother"
|
||||||
var/datum/objective_team/brother_team/team
|
var/datum/team/brother_team/team
|
||||||
|
|
||||||
/datum/antagonist/brother/New(datum/mind/new_owner)
|
/datum/antagonist/brother/New(datum/mind/new_owner)
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/datum/antagonist/brother/create_team(datum/objective_team/brother_team/new_team)
|
/datum/antagonist/brother/create_team(datum/team/brother_team/new_team)
|
||||||
if(!new_team)
|
if(!new_team)
|
||||||
return
|
return
|
||||||
if(!istype(new_team))
|
if(!istype(new_team))
|
||||||
@@ -57,15 +57,15 @@
|
|||||||
SSticker.mode.update_brother_icons_added(owner)
|
SSticker.mode.update_brother_icons_added(owner)
|
||||||
|
|
||||||
|
|
||||||
/datum/objective_team/brother_team
|
/datum/team/brother_team
|
||||||
name = "brotherhood"
|
name = "brotherhood"
|
||||||
member_name = "blood brother"
|
member_name = "blood brother"
|
||||||
var/meeting_area
|
var/meeting_area
|
||||||
|
|
||||||
/datum/objective_team/brother_team/is_solo()
|
/datum/team/brother_team/is_solo()
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
/datum/objective_team/brother_team/proc/update_name()
|
/datum/team/brother_team/proc/update_name()
|
||||||
var/list/last_names = list()
|
var/list/last_names = list()
|
||||||
for(var/datum/mind/M in members)
|
for(var/datum/mind/M in members)
|
||||||
var/list/split_name = splittext(M.name," ")
|
var/list/split_name = splittext(M.name," ")
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
|
|
||||||
name = last_names.Join(" & ")
|
name = last_names.Join(" & ")
|
||||||
|
|
||||||
/datum/objective_team/brother_team/roundend_report()
|
/datum/team/brother_team/roundend_report()
|
||||||
var/list/parts = list()
|
var/list/parts = list()
|
||||||
|
|
||||||
parts += "<span class='header'>The blood brothers of [name] were:</span>"
|
parts += "<span class='header'>The blood brothers of [name] were:</span>"
|
||||||
@@ -95,14 +95,14 @@
|
|||||||
|
|
||||||
return "<div class='panel redborder'>[parts.Join("<br>")]</div>"
|
return "<div class='panel redborder'>[parts.Join("<br>")]</div>"
|
||||||
|
|
||||||
/datum/objective_team/brother_team/proc/add_objective(datum/objective/O, needs_target = FALSE)
|
/datum/team/brother_team/proc/add_objective(datum/objective/O, needs_target = FALSE)
|
||||||
O.team = src
|
O.team = src
|
||||||
if(needs_target)
|
if(needs_target)
|
||||||
O.find_target()
|
O.find_target()
|
||||||
O.update_explanation_text()
|
O.update_explanation_text()
|
||||||
objectives += O
|
objectives += O
|
||||||
|
|
||||||
/datum/objective_team/brother_team/proc/forge_brother_objectives()
|
/datum/team/brother_team/proc/forge_brother_objectives()
|
||||||
objectives = list()
|
objectives = list()
|
||||||
var/is_hijacker = prob(10)
|
var/is_hijacker = prob(10)
|
||||||
for(var/i = 1 to max(1, CONFIG_GET(number/brother_objectives_amount) + (members.len > 2) - is_hijacker))
|
for(var/i = 1 to max(1, CONFIG_GET(number/brother_objectives_amount) + (members.len > 2) - is_hijacker))
|
||||||
@@ -113,7 +113,7 @@
|
|||||||
else if(!locate(/datum/objective/escape) in objectives)
|
else if(!locate(/datum/objective/escape) in objectives)
|
||||||
add_objective(new/datum/objective/escape)
|
add_objective(new/datum/objective/escape)
|
||||||
|
|
||||||
/datum/objective_team/brother_team/proc/forge_single_objective()
|
/datum/team/brother_team/proc/forge_single_objective()
|
||||||
if(prob(50))
|
if(prob(50))
|
||||||
if(LAZYLEN(active_ais()) && prob(100/GLOB.joined_player_list.len))
|
if(LAZYLEN(active_ais()) && prob(100/GLOB.joined_player_list.len))
|
||||||
add_objective(new/datum/objective/destroy, TRUE)
|
add_objective(new/datum/objective/destroy, TRUE)
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
roundend_category = "clock cultists"
|
roundend_category = "clock cultists"
|
||||||
job_rank = ROLE_SERVANT_OF_RATVAR
|
job_rank = ROLE_SERVANT_OF_RATVAR
|
||||||
var/datum/action/innate/hierophant/hierophant_network = new()
|
var/datum/action/innate/hierophant/hierophant_network = new()
|
||||||
var/datum/objective_team/clockcult/clock_team
|
var/datum/team/clockcult/clock_team
|
||||||
var/make_team = TRUE //This should be only false for tutorial scarabs
|
var/make_team = TRUE //This should be only false for tutorial scarabs
|
||||||
|
|
||||||
/datum/antagonist/clockcult/silent
|
/datum/antagonist/clockcult/silent
|
||||||
@@ -17,14 +17,14 @@
|
|||||||
/datum/antagonist/clockcult/get_team()
|
/datum/antagonist/clockcult/get_team()
|
||||||
return clock_team
|
return clock_team
|
||||||
|
|
||||||
/datum/antagonist/clockcult/create_team(datum/objective_team/clockcult/new_team)
|
/datum/antagonist/clockcult/create_team(datum/team/clockcult/new_team)
|
||||||
if(!new_team && make_team)
|
if(!new_team && make_team)
|
||||||
//TODO blah blah same as the others, allow multiple
|
//TODO blah blah same as the others, allow multiple
|
||||||
for(var/datum/antagonist/clockcult/H in GLOB.antagonists)
|
for(var/datum/antagonist/clockcult/H in GLOB.antagonists)
|
||||||
if(H.clock_team)
|
if(H.clock_team)
|
||||||
clock_team = H.clock_team
|
clock_team = H.clock_team
|
||||||
return
|
return
|
||||||
clock_team = new /datum/objective_team/clockcult
|
clock_team = new /datum/team/clockcult
|
||||||
return
|
return
|
||||||
if(make_team && !istype(new_team))
|
if(make_team && !istype(new_team))
|
||||||
stack_trace("Wrong team type passed to [type] initialization.")
|
stack_trace("Wrong team type passed to [type] initialization.")
|
||||||
@@ -185,19 +185,19 @@
|
|||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
|
|
||||||
/datum/objective_team/clockcult
|
/datum/team/clockcult
|
||||||
name = "Clockcult"
|
name = "Clockcult"
|
||||||
var/list/objective
|
var/list/objective
|
||||||
var/datum/mind/eminence
|
var/datum/mind/eminence
|
||||||
|
|
||||||
/datum/objective_team/clockcult/proc/check_clockwork_victory()
|
/datum/team/clockcult/proc/check_clockwork_victory()
|
||||||
if(GLOB.clockwork_gateway_activated)
|
if(GLOB.clockwork_gateway_activated)
|
||||||
return TRUE
|
return TRUE
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
/datum/objective_team/clockcult/roundend_report()
|
/datum/team/clockcult/roundend_report()
|
||||||
var/list/parts = list()
|
var/list/parts = list()
|
||||||
|
|
||||||
if(check_clockwork_victory())
|
if(check_clockwork_victory())
|
||||||
parts += "<span class='greentext big'>Ratvar's servants defended the Ark until its activation!</span>"
|
parts += "<span class='greentext big'>Ratvar's servants defended the Ark until its activation!</span>"
|
||||||
else
|
else
|
||||||
@@ -213,5 +213,5 @@
|
|||||||
if(members.len)
|
if(members.len)
|
||||||
parts += "<span class='header'>Ratvar's servants were:</span>"
|
parts += "<span class='header'>Ratvar's servants were:</span>"
|
||||||
parts += printplayerlist(members - eminence)
|
parts += printplayerlist(members - eminence)
|
||||||
|
|
||||||
return "<div class='panel clockborder'>[parts.Join("<br>")]</div>"
|
return "<div class='panel clockborder'>[parts.Join("<br>")]</div>"
|
||||||
@@ -9,19 +9,19 @@
|
|||||||
var/ignore_implant = FALSE
|
var/ignore_implant = FALSE
|
||||||
var/give_equipment = FALSE
|
var/give_equipment = FALSE
|
||||||
|
|
||||||
var/datum/objective_team/cult/cult_team
|
var/datum/team/cult/cult_team
|
||||||
|
|
||||||
/datum/antagonist/cult/get_team()
|
/datum/antagonist/cult/get_team()
|
||||||
return cult_team
|
return cult_team
|
||||||
|
|
||||||
/datum/antagonist/cult/create_team(datum/objective_team/cult/new_team)
|
/datum/antagonist/cult/create_team(datum/team/cult/new_team)
|
||||||
if(!new_team)
|
if(!new_team)
|
||||||
//todo remove this and allow admin buttons to create more than one cult
|
//todo remove this and allow admin buttons to create more than one cult
|
||||||
for(var/datum/antagonist/cult/H in GLOB.antagonists)
|
for(var/datum/antagonist/cult/H in GLOB.antagonists)
|
||||||
if(H.cult_team)
|
if(H.cult_team)
|
||||||
cult_team = H.cult_team
|
cult_team = H.cult_team
|
||||||
return
|
return
|
||||||
cult_team = new /datum/objective_team/cult
|
cult_team = new /datum/team/cult
|
||||||
cult_team.setup_objectives()
|
cult_team.setup_objectives()
|
||||||
return
|
return
|
||||||
if(!istype(new_team))
|
if(!istype(new_team))
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
SSticker.mode.cult += owner // Only add after they've been given objectives
|
SSticker.mode.cult += owner // Only add after they've been given objectives
|
||||||
SSticker.mode.update_cult_icons_added(owner)
|
SSticker.mode.update_cult_icons_added(owner)
|
||||||
current.log_message("<font color=#960000>Has been converted to the cult of Nar'Sie!</font>", INDIVIDUAL_ATTACK_LOG)
|
current.log_message("<font color=#960000>Has been converted to the cult of Nar'Sie!</font>", INDIVIDUAL_ATTACK_LOG)
|
||||||
|
|
||||||
if(cult_team.blood_target && cult_team.blood_target_image && current.client)
|
if(cult_team.blood_target && cult_team.blood_target_image && current.client)
|
||||||
current.client.images += cult_team.blood_target_image
|
current.client.images += cult_team.blood_target_image
|
||||||
|
|
||||||
@@ -183,28 +183,28 @@
|
|||||||
current.update_action_buttons_icon()
|
current.update_action_buttons_icon()
|
||||||
current.remove_status_effect(/datum/status_effect/cult_master)
|
current.remove_status_effect(/datum/status_effect/cult_master)
|
||||||
|
|
||||||
/datum/objective_team/cult
|
/datum/team/cult
|
||||||
name = "Cult"
|
name = "Cult"
|
||||||
|
|
||||||
var/blood_target
|
var/blood_target
|
||||||
var/image/blood_target_image
|
var/image/blood_target_image
|
||||||
var/blood_target_reset_timer
|
var/blood_target_reset_timer
|
||||||
|
|
||||||
var/cult_vote_called = FALSE
|
var/cult_vote_called = FALSE
|
||||||
var/cult_mastered = FALSE
|
var/cult_mastered = FALSE
|
||||||
var/reckoning_complete = FALSE
|
var/reckoning_complete = FALSE
|
||||||
|
|
||||||
|
|
||||||
/datum/objective_team/cult/proc/setup_objectives()
|
/datum/team/cult/proc/setup_objectives()
|
||||||
//SAC OBJECTIVE , todo: move this to objective internals
|
//SAC OBJECTIVE , todo: move this to objective internals
|
||||||
var/list/target_candidates = list()
|
var/list/target_candidates = list()
|
||||||
var/datum/objective/sacrifice/sac_objective = new
|
var/datum/objective/sacrifice/sac_objective = new
|
||||||
sac_objective.team = src
|
sac_objective.team = src
|
||||||
|
|
||||||
for(var/mob/living/carbon/human/player in GLOB.player_list)
|
for(var/mob/living/carbon/human/player in GLOB.player_list)
|
||||||
if(player.mind && !player.mind.has_antag_datum(ANTAG_DATUM_CULT) && !is_convertable_to_cult(player) && player.stat != DEAD)
|
if(player.mind && !player.mind.has_antag_datum(ANTAG_DATUM_CULT) && !is_convertable_to_cult(player) && player.stat != DEAD)
|
||||||
target_candidates += player.mind
|
target_candidates += player.mind
|
||||||
|
|
||||||
if(target_candidates.len == 0)
|
if(target_candidates.len == 0)
|
||||||
message_admins("Cult Sacrifice: Could not find unconvertable target, checking for convertable target.")
|
message_admins("Cult Sacrifice: Could not find unconvertable target, checking for convertable target.")
|
||||||
for(var/mob/living/carbon/human/player in GLOB.player_list)
|
for(var/mob/living/carbon/human/player in GLOB.player_list)
|
||||||
@@ -214,7 +214,7 @@
|
|||||||
if(LAZYLEN(target_candidates))
|
if(LAZYLEN(target_candidates))
|
||||||
sac_objective.target = pick(target_candidates)
|
sac_objective.target = pick(target_candidates)
|
||||||
sac_objective.update_explanation_text()
|
sac_objective.update_explanation_text()
|
||||||
|
|
||||||
var/datum/job/sacjob = SSjob.GetJob(sac_objective.target.assigned_role)
|
var/datum/job/sacjob = SSjob.GetJob(sac_objective.target.assigned_role)
|
||||||
var/datum/preferences/sacface = sac_objective.target.current.client.prefs
|
var/datum/preferences/sacface = sac_objective.target.current.client.prefs
|
||||||
var/icon/reshape = get_flat_human_icon(null, sacjob, sacface)
|
var/icon/reshape = get_flat_human_icon(null, sacjob, sacface)
|
||||||
@@ -235,7 +235,7 @@
|
|||||||
summon_objective.team = src
|
summon_objective.team = src
|
||||||
objectives += summon_objective
|
objectives += summon_objective
|
||||||
|
|
||||||
/datum/objective/sacrifice
|
/datum/objective/sacrifice
|
||||||
var/sacced = FALSE
|
var/sacced = FALSE
|
||||||
var/sac_image
|
var/sac_image
|
||||||
|
|
||||||
@@ -268,13 +268,13 @@
|
|||||||
/datum/objective/eldergod/check_completion()
|
/datum/objective/eldergod/check_completion()
|
||||||
return summoned || completed
|
return summoned || completed
|
||||||
|
|
||||||
/datum/objective_team/cult/proc/check_cult_victory()
|
/datum/team/cult/proc/check_cult_victory()
|
||||||
for(var/datum/objective/O in objectives)
|
for(var/datum/objective/O in objectives)
|
||||||
if(!O.check_completion())
|
if(!O.check_completion())
|
||||||
return FALSE
|
return FALSE
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
/datum/objective_team/cult/roundend_report()
|
/datum/team/cult/roundend_report()
|
||||||
var/list/parts = list()
|
var/list/parts = list()
|
||||||
|
|
||||||
if(check_cult_victory())
|
if(check_cult_victory())
|
||||||
@@ -291,9 +291,9 @@
|
|||||||
else
|
else
|
||||||
parts += "<b>Objective #[count]</b>: [objective.explanation_text] <span class='redtext'>Fail.</span>"
|
parts += "<b>Objective #[count]</b>: [objective.explanation_text] <span class='redtext'>Fail.</span>"
|
||||||
count++
|
count++
|
||||||
|
|
||||||
if(members.len)
|
if(members.len)
|
||||||
parts += "<span class='header'>The cultists were:</span>"
|
parts += "<span class='header'>The cultists were:</span>"
|
||||||
parts += printplayerlist(members)
|
parts += printplayerlist(members)
|
||||||
|
|
||||||
return "<div class='panel redborder'>[parts.Join("<br>")]</div>"
|
return "<div class='panel redborder'>[parts.Join("<br>")]</div>"
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
name = "Monkey"
|
name = "Monkey"
|
||||||
job_rank = ROLE_MONKEY
|
job_rank = ROLE_MONKEY
|
||||||
roundend_category = "monkeys"
|
roundend_category = "monkeys"
|
||||||
var/datum/objective_team/monkey/monkey_team
|
var/datum/team/monkey/monkey_team
|
||||||
|
|
||||||
/datum/antagonist/monkey/on_gain()
|
/datum/antagonist/monkey/on_gain()
|
||||||
. = ..()
|
. = ..()
|
||||||
@@ -38,13 +38,13 @@
|
|||||||
if(D)
|
if(D)
|
||||||
D.cure()
|
D.cure()
|
||||||
|
|
||||||
/datum/antagonist/monkey/create_team(datum/objective_team/monkey/new_team)
|
/datum/antagonist/monkey/create_team(datum/team/monkey/new_team)
|
||||||
if(!new_team)
|
if(!new_team)
|
||||||
for(var/datum/antagonist/monkey/N in get_antagonists(/datum/antagonist/monkey, TRUE))
|
for(var/datum/antagonist/monkey/N in get_antagonists(/datum/antagonist/monkey, TRUE))
|
||||||
if(N.monkey_team)
|
if(N.monkey_team)
|
||||||
monkey_team = N.monkey_team
|
monkey_team = N.monkey_team
|
||||||
return
|
return
|
||||||
monkey_team = new /datum/objective_team/monkey
|
monkey_team = new /datum/team/monkey
|
||||||
monkey_team.update_objectives()
|
monkey_team.update_objectives()
|
||||||
return
|
return
|
||||||
if(!istype(new_team))
|
if(!istype(new_team))
|
||||||
@@ -99,45 +99,45 @@
|
|||||||
return TRUE
|
return TRUE
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
/datum/objective_team/monkey
|
/datum/team/monkey
|
||||||
name = "Monkeys"
|
name = "Monkeys"
|
||||||
|
|
||||||
/datum/objective_team/monkey/proc/update_objectives()
|
/datum/team/monkey/proc/update_objectives()
|
||||||
objectives = list()
|
objectives = list()
|
||||||
var/datum/objective/monkey/O = new /datum/objective/monkey()
|
var/datum/objective/monkey/O = new /datum/objective/monkey()
|
||||||
O.team = src
|
O.team = src
|
||||||
objectives += O
|
objectives += O
|
||||||
return
|
return
|
||||||
|
|
||||||
/datum/objective_team/monkey/proc/infected_monkeys_alive()
|
/datum/team/monkey/proc/infected_monkeys_alive()
|
||||||
var/datum/disease/D = new /datum/disease/transformation/jungle_fever()
|
var/datum/disease/D = new /datum/disease/transformation/jungle_fever()
|
||||||
for(var/mob/living/carbon/monkey/M in GLOB.alive_mob_list)
|
for(var/mob/living/carbon/monkey/M in GLOB.alive_mob_list)
|
||||||
if(M.HasDisease(D))
|
if(M.HasDisease(D))
|
||||||
return TRUE
|
return TRUE
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
/datum/objective_team/monkey/proc/infected_monkeys_escaped()
|
/datum/team/monkey/proc/infected_monkeys_escaped()
|
||||||
var/datum/disease/D = new /datum/disease/transformation/jungle_fever()
|
var/datum/disease/D = new /datum/disease/transformation/jungle_fever()
|
||||||
for(var/mob/living/carbon/monkey/M in GLOB.alive_mob_list)
|
for(var/mob/living/carbon/monkey/M in GLOB.alive_mob_list)
|
||||||
if(M.HasDisease(D) && (M.onCentCom() || M.onSyndieBase()))
|
if(M.HasDisease(D) && (M.onCentCom() || M.onSyndieBase()))
|
||||||
return TRUE
|
return TRUE
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
/datum/objective_team/monkey/proc/infected_humans_escaped()
|
/datum/team/monkey/proc/infected_humans_escaped()
|
||||||
var/datum/disease/D = new /datum/disease/transformation/jungle_fever()
|
var/datum/disease/D = new /datum/disease/transformation/jungle_fever()
|
||||||
for(var/mob/living/carbon/human/M in GLOB.alive_mob_list)
|
for(var/mob/living/carbon/human/M in GLOB.alive_mob_list)
|
||||||
if(M.HasDisease(D) && (M.onCentCom() || M.onSyndieBase()))
|
if(M.HasDisease(D) && (M.onCentCom() || M.onSyndieBase()))
|
||||||
return TRUE
|
return TRUE
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
/datum/objective_team/monkey/proc/infected_humans_alive()
|
/datum/team/monkey/proc/infected_humans_alive()
|
||||||
var/datum/disease/D = new /datum/disease/transformation/jungle_fever()
|
var/datum/disease/D = new /datum/disease/transformation/jungle_fever()
|
||||||
for(var/mob/living/carbon/human/M in GLOB.alive_mob_list)
|
for(var/mob/living/carbon/human/M in GLOB.alive_mob_list)
|
||||||
if(M.HasDisease(D))
|
if(M.HasDisease(D))
|
||||||
return TRUE
|
return TRUE
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
/datum/objective_team/monkey/proc/get_result()
|
/datum/team/monkey/proc/get_result()
|
||||||
if(infected_monkeys_escaped())
|
if(infected_monkeys_escaped())
|
||||||
return MONKEYS_ESCAPED
|
return MONKEYS_ESCAPED
|
||||||
if(infected_monkeys_alive())
|
if(infected_monkeys_alive())
|
||||||
@@ -146,7 +146,7 @@
|
|||||||
return DISEASE_LIVED
|
return DISEASE_LIVED
|
||||||
return MONKEYS_DIED
|
return MONKEYS_DIED
|
||||||
|
|
||||||
/datum/objective_team/monkey/roundend_report()
|
/datum/team/monkey/roundend_report()
|
||||||
var/list/parts = list()
|
var/list/parts = list()
|
||||||
switch(get_result())
|
switch(get_result())
|
||||||
if(MONKEYS_ESCAPED)
|
if(MONKEYS_ESCAPED)
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
name = "Nuclear Operative"
|
name = "Nuclear Operative"
|
||||||
roundend_category = "syndicate operatives" //just in case
|
roundend_category = "syndicate operatives" //just in case
|
||||||
job_rank = ROLE_OPERATIVE
|
job_rank = ROLE_OPERATIVE
|
||||||
var/datum/objective_team/nuclear/nuke_team
|
var/datum/team/nuclear/nuke_team
|
||||||
var/always_new_team = FALSE //If not assigned a team by default ops will try to join existing ones, set this to TRUE to always create new team.
|
var/always_new_team = FALSE //If not assigned a team by default ops will try to join existing ones, set this to TRUE to always create new team.
|
||||||
var/send_to_spawnpoint = TRUE //Should the user be moved to default spawnpoint.
|
var/send_to_spawnpoint = TRUE //Should the user be moved to default spawnpoint.
|
||||||
var/nukeop_outfit = /datum/outfit/syndicate
|
var/nukeop_outfit = /datum/outfit/syndicate
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
if(!ishuman(owner.current))
|
if(!ishuman(owner.current))
|
||||||
return
|
return
|
||||||
var/mob/living/carbon/human/H = owner.current
|
var/mob/living/carbon/human/H = owner.current
|
||||||
|
|
||||||
H.set_species(/datum/species/human) //Plasamen burn up otherwise, and lizards are vulnerable to asimov AIs
|
H.set_species(/datum/species/human) //Plasamen burn up otherwise, and lizards are vulnerable to asimov AIs
|
||||||
|
|
||||||
H.equipOutfit(nukeop_outfit)
|
H.equipOutfit(nukeop_outfit)
|
||||||
@@ -103,14 +103,14 @@
|
|||||||
/datum/antagonist/nukeop/leader/move_to_spawnpoint()
|
/datum/antagonist/nukeop/leader/move_to_spawnpoint()
|
||||||
owner.current.forceMove(pick(GLOB.nukeop_leader_start))
|
owner.current.forceMove(pick(GLOB.nukeop_leader_start))
|
||||||
|
|
||||||
/datum/antagonist/nukeop/create_team(datum/objective_team/nuclear/new_team)
|
/datum/antagonist/nukeop/create_team(datum/team/nuclear/new_team)
|
||||||
if(!new_team)
|
if(!new_team)
|
||||||
if(!always_new_team)
|
if(!always_new_team)
|
||||||
for(var/datum/antagonist/nukeop/N in GLOB.antagonists)
|
for(var/datum/antagonist/nukeop/N in GLOB.antagonists)
|
||||||
if(N.nuke_team)
|
if(N.nuke_team)
|
||||||
nuke_team = N.nuke_team
|
nuke_team = N.nuke_team
|
||||||
return
|
return
|
||||||
nuke_team = new /datum/objective_team/nuclear
|
nuke_team = new /datum/team/nuclear
|
||||||
nuke_team.update_objectives()
|
nuke_team.update_objectives()
|
||||||
assign_nuke() //This is bit ugly
|
assign_nuke() //This is bit ugly
|
||||||
return
|
return
|
||||||
@@ -158,7 +158,7 @@
|
|||||||
return
|
return
|
||||||
nuke_team.rename_team(ask_name())
|
nuke_team.rename_team(ask_name())
|
||||||
|
|
||||||
/datum/objective_team/nuclear/proc/rename_team(new_name)
|
/datum/team/nuclear/proc/rename_team(new_name)
|
||||||
syndicate_name = new_name
|
syndicate_name = new_name
|
||||||
name = "[syndicate_name] Team"
|
name = "[syndicate_name] Team"
|
||||||
for(var/I in members)
|
for(var/I in members)
|
||||||
@@ -201,40 +201,40 @@
|
|||||||
stack_trace("Station self destruct ot found during lone op team creation.")
|
stack_trace("Station self destruct ot found during lone op team creation.")
|
||||||
nuke_team.memorized_code = null
|
nuke_team.memorized_code = null
|
||||||
|
|
||||||
/datum/objective_team/nuclear
|
/datum/team/nuclear
|
||||||
var/syndicate_name
|
var/syndicate_name
|
||||||
var/obj/machinery/nuclearbomb/tracked_nuke
|
var/obj/machinery/nuclearbomb/tracked_nuke
|
||||||
var/core_objective = /datum/objective/nuclear
|
var/core_objective = /datum/objective/nuclear
|
||||||
var/memorized_code
|
var/memorized_code
|
||||||
|
|
||||||
/datum/objective_team/nuclear/New()
|
/datum/team/nuclear/New()
|
||||||
..()
|
..()
|
||||||
syndicate_name = syndicate_name()
|
syndicate_name = syndicate_name()
|
||||||
|
|
||||||
/datum/objective_team/nuclear/proc/update_objectives()
|
/datum/team/nuclear/proc/update_objectives()
|
||||||
if(core_objective)
|
if(core_objective)
|
||||||
var/datum/objective/O = new core_objective
|
var/datum/objective/O = new core_objective
|
||||||
O.team = src
|
O.team = src
|
||||||
objectives += O
|
objectives += O
|
||||||
|
|
||||||
/datum/objective_team/nuclear/proc/disk_rescued()
|
/datum/team/nuclear/proc/disk_rescued()
|
||||||
for(var/obj/item/disk/nuclear/D in GLOB.poi_list)
|
for(var/obj/item/disk/nuclear/D in GLOB.poi_list)
|
||||||
if(!D.onCentCom())
|
if(!D.onCentCom())
|
||||||
return FALSE
|
return FALSE
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
/datum/objective_team/nuclear/proc/operatives_dead()
|
/datum/team/nuclear/proc/operatives_dead()
|
||||||
for(var/I in members)
|
for(var/I in members)
|
||||||
var/datum/mind/operative_mind = I
|
var/datum/mind/operative_mind = I
|
||||||
if(ishuman(operative_mind.current) && (operative_mind.current.stat != DEAD))
|
if(ishuman(operative_mind.current) && (operative_mind.current.stat != DEAD))
|
||||||
return FALSE
|
return FALSE
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
/datum/objective_team/nuclear/proc/syndies_escaped()
|
/datum/team/nuclear/proc/syndies_escaped()
|
||||||
var/obj/docking_port/mobile/S = SSshuttle.getShuttle("syndicate")
|
var/obj/docking_port/mobile/S = SSshuttle.getShuttle("syndicate")
|
||||||
return (S && (S.z == ZLEVEL_CENTCOM || S.z == ZLEVEL_TRANSIT))
|
return (S && (S.z == ZLEVEL_CENTCOM || S.z == ZLEVEL_TRANSIT))
|
||||||
|
|
||||||
/datum/objective_team/nuclear/proc/get_result()
|
/datum/team/nuclear/proc/get_result()
|
||||||
var/evacuation = SSshuttle.emergency.mode == SHUTTLE_ENDGAME
|
var/evacuation = SSshuttle.emergency.mode == SHUTTLE_ENDGAME
|
||||||
var/disk_rescued = disk_rescued()
|
var/disk_rescued = disk_rescued()
|
||||||
var/syndies_didnt_escape = !syndies_escaped()
|
var/syndies_didnt_escape = !syndies_escaped()
|
||||||
@@ -262,10 +262,10 @@
|
|||||||
else
|
else
|
||||||
return //Undefined result
|
return //Undefined result
|
||||||
|
|
||||||
/datum/objective_team/nuclear/roundend_report()
|
/datum/team/nuclear/roundend_report()
|
||||||
var/list/parts = list()
|
var/list/parts = list()
|
||||||
parts += "<span class='header'>[syndicate_name] Operatives:</span>"
|
parts += "<span class='header'>[syndicate_name] Operatives:</span>"
|
||||||
|
|
||||||
switch(get_result())
|
switch(get_result())
|
||||||
if(NUKE_RESULT_FLUKE)
|
if(NUKE_RESULT_FLUKE)
|
||||||
parts += "<span class='redtext big'>Humiliating Syndicate Defeat</span>"
|
parts += "<span class='redtext big'>Humiliating Syndicate Defeat</span>"
|
||||||
@@ -316,7 +316,7 @@
|
|||||||
text += "(Syndicates used [TC_uses] TC) [purchases]"
|
text += "(Syndicates used [TC_uses] TC) [purchases]"
|
||||||
if(TC_uses == 0 && SSticker.mode.station_was_nuked && !operatives_dead())
|
if(TC_uses == 0 && SSticker.mode.station_was_nuked && !operatives_dead())
|
||||||
text += "<BIG>[icon2html('icons/badass.dmi', world, "badass")]</BIG>"
|
text += "<BIG>[icon2html('icons/badass.dmi', world, "badass")]</BIG>"
|
||||||
|
|
||||||
parts += text
|
parts += text
|
||||||
|
|
||||||
return "<div class='panel redborder'>[parts.Join("<br>")]</div>"
|
return "<div class='panel redborder'>[parts.Join("<br>")]</div>"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name = "Space Pirate"
|
name = "Space Pirate"
|
||||||
job_rank = ROLE_TRAITOR
|
job_rank = ROLE_TRAITOR
|
||||||
roundend_category = "space pirates"
|
roundend_category = "space pirates"
|
||||||
var/datum/objective_team/pirate/crew
|
var/datum/team/pirate/crew
|
||||||
|
|
||||||
/datum/antagonist/pirate/greet()
|
/datum/antagonist/pirate/greet()
|
||||||
to_chat(owner, "<span class='boldannounce'>You are a Space Pirate!</span>")
|
to_chat(owner, "<span class='boldannounce'>You are a Space Pirate!</span>")
|
||||||
@@ -12,14 +12,14 @@
|
|||||||
/datum/antagonist/pirate/get_team()
|
/datum/antagonist/pirate/get_team()
|
||||||
return crew
|
return crew
|
||||||
|
|
||||||
/datum/antagonist/pirate/create_team(datum/objective_team/pirate/new_team)
|
/datum/antagonist/pirate/create_team(datum/team/pirate/new_team)
|
||||||
if(!new_team)
|
if(!new_team)
|
||||||
for(var/datum/antagonist/pirate/P in GLOB.antagonists)
|
for(var/datum/antagonist/pirate/P in GLOB.antagonists)
|
||||||
if(P.crew)
|
if(P.crew)
|
||||||
crew = P.crew
|
crew = P.crew
|
||||||
return
|
return
|
||||||
if(!new_team)
|
if(!new_team)
|
||||||
crew = new /datum/objective_team/pirate
|
crew = new /datum/team/pirate
|
||||||
crew.forge_objectives()
|
crew.forge_objectives()
|
||||||
return
|
return
|
||||||
if(!istype(new_team))
|
if(!istype(new_team))
|
||||||
@@ -36,10 +36,10 @@
|
|||||||
owner.objectives -= crew.objectives
|
owner.objectives -= crew.objectives
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
/datum/objective_team/pirate
|
/datum/team/pirate
|
||||||
name = "Pirate crew"
|
name = "Pirate crew"
|
||||||
|
|
||||||
/datum/objective_team/pirate/proc/forge_objectives()
|
/datum/team/pirate/proc/forge_objectives()
|
||||||
var/datum/objective/loot/getbooty = new()
|
var/datum/objective/loot/getbooty = new()
|
||||||
getbooty.team = src
|
getbooty.team = src
|
||||||
getbooty.storage_area = locate(/area/shuttle/pirate/vault) in GLOB.sortedAreas
|
getbooty.storage_area = locate(/area/shuttle/pirate/vault) in GLOB.sortedAreas
|
||||||
@@ -105,11 +105,11 @@ GLOBAL_LIST_INIT(pirate_loot_cache, typecacheof(list(
|
|||||||
/datum/objective/loot/check_completion()
|
/datum/objective/loot/check_completion()
|
||||||
return ..() || get_loot_value() >= target_value
|
return ..() || get_loot_value() >= target_value
|
||||||
|
|
||||||
/datum/objective_team/pirate/roundend_report()
|
/datum/team/pirate/roundend_report()
|
||||||
var/list/parts = list()
|
var/list/parts = list()
|
||||||
|
|
||||||
parts += "<span class='header'>Space Pirates were:</span>"
|
parts += "<span class='header'>Space Pirates were:</span>"
|
||||||
|
|
||||||
var/all_dead = TRUE
|
var/all_dead = TRUE
|
||||||
for(var/datum/mind/M in members)
|
for(var/datum/mind/M in members)
|
||||||
if(considered_alive(M))
|
if(considered_alive(M))
|
||||||
@@ -125,5 +125,5 @@ GLOBAL_LIST_INIT(pirate_loot_cache, typecacheof(list(
|
|||||||
parts += "<span class='greentext big'>The pirate crew was successful!</span>"
|
parts += "<span class='greentext big'>The pirate crew was successful!</span>"
|
||||||
else
|
else
|
||||||
parts += "<span class='redtext big'>The pirate crew has failed.</span>"
|
parts += "<span class='redtext big'>The pirate crew has failed.</span>"
|
||||||
|
|
||||||
return "<div class='panel redborder'>[parts.Join("<br>")]</div>"
|
return "<div class='panel redborder'>[parts.Join("<br>")]</div>"
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
roundend_category = "revolutionaries" // if by some miracle revolutionaries without revolution happen
|
roundend_category = "revolutionaries" // if by some miracle revolutionaries without revolution happen
|
||||||
job_rank = ROLE_REV
|
job_rank = ROLE_REV
|
||||||
var/hud_type = "rev"
|
var/hud_type = "rev"
|
||||||
var/datum/objective_team/revolution/rev_team
|
var/datum/team/revolution/rev_team
|
||||||
|
|
||||||
/datum/antagonist/rev/can_be_owned(datum/mind/new_owner)
|
/datum/antagonist/rev/can_be_owned(datum/mind/new_owner)
|
||||||
. = ..()
|
. = ..()
|
||||||
@@ -43,14 +43,14 @@
|
|||||||
to_chat(owner, "<span class='userdanger'>You are now a revolutionary! Help your cause. Do not harm your fellow freedom fighters. You can identify your comrades by the red \"R\" icons, and your leaders by the blue \"R\" icons. Help them kill the heads to win the revolution!</span>")
|
to_chat(owner, "<span class='userdanger'>You are now a revolutionary! Help your cause. Do not harm your fellow freedom fighters. You can identify your comrades by the red \"R\" icons, and your leaders by the blue \"R\" icons. Help them kill the heads to win the revolution!</span>")
|
||||||
owner.announce_objectives()
|
owner.announce_objectives()
|
||||||
|
|
||||||
/datum/antagonist/rev/create_team(datum/objective_team/revolution/new_team)
|
/datum/antagonist/rev/create_team(datum/team/revolution/new_team)
|
||||||
if(!new_team)
|
if(!new_team)
|
||||||
//For now only one revolution at a time
|
//For now only one revolution at a time
|
||||||
for(var/datum/antagonist/rev/head/H in GLOB.antagonists)
|
for(var/datum/antagonist/rev/head/H in GLOB.antagonists)
|
||||||
if(H.rev_team)
|
if(H.rev_team)
|
||||||
rev_team = H.rev_team
|
rev_team = H.rev_team
|
||||||
return
|
return
|
||||||
rev_team = new /datum/objective_team/revolution
|
rev_team = new /datum/team/revolution
|
||||||
rev_team.update_objectives()
|
rev_team.update_objectives()
|
||||||
rev_team.update_heads()
|
rev_team.update_heads()
|
||||||
return
|
return
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
old_owner.add_antag_datum(new_revhead,old_team)
|
old_owner.add_antag_datum(new_revhead,old_team)
|
||||||
new_revhead.silent = FALSE
|
new_revhead.silent = FALSE
|
||||||
to_chat(old_owner, "<span class='userdanger'>You have proved your devotion to revolution! You are a head revolutionary now!</span>")
|
to_chat(old_owner, "<span class='userdanger'>You have proved your devotion to revolution! You are a head revolutionary now!</span>")
|
||||||
|
|
||||||
|
|
||||||
/datum/antagonist/rev/head
|
/datum/antagonist/rev/head
|
||||||
name = "Head Revolutionary"
|
name = "Head Revolutionary"
|
||||||
@@ -164,7 +164,7 @@
|
|||||||
if(remove_clumsy && owner.assigned_role == "Clown")
|
if(remove_clumsy && owner.assigned_role == "Clown")
|
||||||
to_chat(owner, "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.")
|
to_chat(owner, "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.")
|
||||||
H.dna.remove_mutation(CLOWNMUT)
|
H.dna.remove_mutation(CLOWNMUT)
|
||||||
|
|
||||||
if(give_flash)
|
if(give_flash)
|
||||||
var/obj/item/device/assembly/flash/T = new(H)
|
var/obj/item/device/assembly/flash/T = new(H)
|
||||||
var/list/slots = list (
|
var/list/slots = list (
|
||||||
@@ -177,17 +177,17 @@
|
|||||||
to_chat(H, "The Syndicate were unfortunately unable to get you a flash.")
|
to_chat(H, "The Syndicate were unfortunately unable to get you a flash.")
|
||||||
else
|
else
|
||||||
to_chat(H, "The flash in your [where] will help you to persuade the crew to join your cause.")
|
to_chat(H, "The flash in your [where] will help you to persuade the crew to join your cause.")
|
||||||
|
|
||||||
if(give_hud)
|
if(give_hud)
|
||||||
var/obj/item/organ/cyberimp/eyes/hud/security/syndicate/S = new(H)
|
var/obj/item/organ/cyberimp/eyes/hud/security/syndicate/S = new(H)
|
||||||
S.Insert(H, special = FALSE, drop_if_replaced = FALSE)
|
S.Insert(H, special = FALSE, drop_if_replaced = FALSE)
|
||||||
to_chat(H, "Your eyes have been implanted with a cybernetic security HUD which will help you keep track of who is mindshield-implanted, and therefore unable to be recruited.")
|
to_chat(H, "Your eyes have been implanted with a cybernetic security HUD which will help you keep track of who is mindshield-implanted, and therefore unable to be recruited.")
|
||||||
|
|
||||||
/datum/objective_team/revolution
|
/datum/team/revolution
|
||||||
name = "Revolution"
|
name = "Revolution"
|
||||||
var/max_headrevs = 3
|
var/max_headrevs = 3
|
||||||
|
|
||||||
/datum/objective_team/revolution/proc/update_objectives(initial = FALSE)
|
/datum/team/revolution/proc/update_objectives(initial = FALSE)
|
||||||
var/untracked_heads = SSjob.get_all_heads()
|
var/untracked_heads = SSjob.get_all_heads()
|
||||||
for(var/datum/objective/mutiny/O in objectives)
|
for(var/datum/objective/mutiny/O in objectives)
|
||||||
untracked_heads -= O.target
|
untracked_heads -= O.target
|
||||||
@@ -199,16 +199,16 @@
|
|||||||
objectives += new_target
|
objectives += new_target
|
||||||
for(var/datum/mind/M in members)
|
for(var/datum/mind/M in members)
|
||||||
M.objectives |= objectives
|
M.objectives |= objectives
|
||||||
|
|
||||||
addtimer(CALLBACK(src,.proc/update_objectives),HEAD_UPDATE_PERIOD,TIMER_UNIQUE)
|
addtimer(CALLBACK(src,.proc/update_objectives),HEAD_UPDATE_PERIOD,TIMER_UNIQUE)
|
||||||
|
|
||||||
/datum/objective_team/revolution/proc/head_revolutionaries()
|
/datum/team/revolution/proc/head_revolutionaries()
|
||||||
. = list()
|
. = list()
|
||||||
for(var/datum/mind/M in members)
|
for(var/datum/mind/M in members)
|
||||||
if(M.has_antag_datum(/datum/antagonist/rev/head))
|
if(M.has_antag_datum(/datum/antagonist/rev/head))
|
||||||
. += M
|
. += M
|
||||||
|
|
||||||
/datum/objective_team/revolution/proc/update_heads()
|
/datum/team/revolution/proc/update_heads()
|
||||||
if(SSticker.HasRoundStarted())
|
if(SSticker.HasRoundStarted())
|
||||||
var/list/datum/mind/head_revolutionaries = head_revolutionaries()
|
var/list/datum/mind/head_revolutionaries = head_revolutionaries()
|
||||||
var/list/datum/mind/heads = SSjob.get_all_heads()
|
var/list/datum/mind/heads = SSjob.get_all_heads()
|
||||||
@@ -229,7 +229,7 @@
|
|||||||
addtimer(CALLBACK(src,.proc/update_heads),HEAD_UPDATE_PERIOD,TIMER_UNIQUE)
|
addtimer(CALLBACK(src,.proc/update_heads),HEAD_UPDATE_PERIOD,TIMER_UNIQUE)
|
||||||
|
|
||||||
|
|
||||||
/datum/objective_team/revolution/roundend_report()
|
/datum/team/revolution/roundend_report()
|
||||||
if(!members.len)
|
if(!members.len)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
var/strip = TRUE //strip before equipping
|
var/strip = TRUE //strip before equipping
|
||||||
var/allow_rename = TRUE
|
var/allow_rename = TRUE
|
||||||
var/hud_version = "wizard"
|
var/hud_version = "wizard"
|
||||||
var/datum/objective_team/wizard/wiz_team //Only created if wizard summons apprentices
|
var/datum/team/wizard/wiz_team //Only created if wizard summons apprentices
|
||||||
var/move_to_lair = TRUE
|
var/move_to_lair = TRUE
|
||||||
var/outfit_type = /datum/outfit/wizard
|
var/outfit_type = /datum/outfit/wizard
|
||||||
var/wiz_age = WIZARD_AGE_MIN /* Wizards by nature cannot be too young. */
|
var/wiz_age = WIZARD_AGE_MIN /* Wizards by nature cannot be too young. */
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
/datum/antagonist/wizard/proc/unregister()
|
/datum/antagonist/wizard/proc/unregister()
|
||||||
SSticker.mode.wizards -= src
|
SSticker.mode.wizards -= src
|
||||||
|
|
||||||
/datum/antagonist/wizard/create_team(datum/objective_team/wizard/new_team)
|
/datum/antagonist/wizard/create_team(datum/team/wizard/new_team)
|
||||||
if(!new_team)
|
if(!new_team)
|
||||||
return
|
return
|
||||||
if(!istype(new_team))
|
if(!istype(new_team))
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
/datum/antagonist/wizard/get_team()
|
/datum/antagonist/wizard/get_team()
|
||||||
return wiz_team
|
return wiz_team
|
||||||
|
|
||||||
/datum/objective_team/wizard
|
/datum/team/wizard
|
||||||
name = "wizard team"
|
name = "wizard team"
|
||||||
var/datum/antagonist/wizard/master_wizard
|
var/datum/antagonist/wizard/master_wizard
|
||||||
|
|
||||||
@@ -307,18 +307,18 @@
|
|||||||
parts += "<span class='greentext'>The wizard was successful!</span>"
|
parts += "<span class='greentext'>The wizard was successful!</span>"
|
||||||
else
|
else
|
||||||
parts += "<span class='redtext'>The wizard has failed!</span>"
|
parts += "<span class='redtext'>The wizard has failed!</span>"
|
||||||
|
|
||||||
if(owner.spell_list.len>0)
|
if(owner.spell_list.len>0)
|
||||||
parts += "<B>[owner.name] used the following spells: </B>"
|
parts += "<B>[owner.name] used the following spells: </B>"
|
||||||
var/list/spell_names = list()
|
var/list/spell_names = list()
|
||||||
for(var/obj/effect/proc_holder/spell/S in owner.spell_list)
|
for(var/obj/effect/proc_holder/spell/S in owner.spell_list)
|
||||||
spell_names += S.name
|
spell_names += S.name
|
||||||
parts += spell_names.Join(", ")
|
parts += spell_names.Join(", ")
|
||||||
|
|
||||||
return parts.Join("<br>")
|
return parts.Join("<br>")
|
||||||
|
|
||||||
//Wizard with apprentices report
|
//Wizard with apprentices report
|
||||||
/datum/objective_team/wizard/roundend_report()
|
/datum/team/wizard/roundend_report()
|
||||||
var/list/parts = list()
|
var/list/parts = list()
|
||||||
|
|
||||||
parts += "<span class='header'>Wizards/witches of [master_wizard.owner.name] team were:</span>"
|
parts += "<span class='header'>Wizards/witches of [master_wizard.owner.name] team were:</span>"
|
||||||
@@ -326,5 +326,5 @@
|
|||||||
parts += " "
|
parts += " "
|
||||||
parts += "<span class='header'>[master_wizard.owner.name] apprentices were:</span>"
|
parts += "<span class='header'>[master_wizard.owner.name] apprentices were:</span>"
|
||||||
parts += printplayerlist(members - master_wizard.owner)
|
parts += printplayerlist(members - master_wizard.owner)
|
||||||
|
|
||||||
return "<div class='panel redborder'>[parts.Join("<br>")]</div>"
|
return "<div class='panel redborder'>[parts.Join("<br>")]</div>"
|
||||||
@@ -144,7 +144,7 @@
|
|||||||
return
|
return
|
||||||
LAZYADD(antag_datums, A)
|
LAZYADD(antag_datums, A)
|
||||||
A.create_team(team)
|
A.create_team(team)
|
||||||
var/datum/objective_team/antag_team = A.get_team()
|
var/datum/team/antag_team = A.get_team()
|
||||||
if(antag_team)
|
if(antag_team)
|
||||||
antag_team.add_member(src)
|
antag_team.add_member(src)
|
||||||
A.on_gain()
|
A.on_gain()
|
||||||
@@ -328,7 +328,7 @@
|
|||||||
N.send_to_spawnpoint = FALSE
|
N.send_to_spawnpoint = FALSE
|
||||||
N.nukeop_outfit = null
|
N.nukeop_outfit = null
|
||||||
add_antag_datum(N,converter.nuke_team)
|
add_antag_datum(N,converter.nuke_team)
|
||||||
|
|
||||||
|
|
||||||
enslaved_to = creator
|
enslaved_to = creator
|
||||||
|
|
||||||
@@ -777,13 +777,13 @@
|
|||||||
objective = locate(href_list["obj_edit"])
|
objective = locate(href_list["obj_edit"])
|
||||||
if (!objective)
|
if (!objective)
|
||||||
return
|
return
|
||||||
|
|
||||||
for(var/datum/antagonist/A in antag_datums)
|
for(var/datum/antagonist/A in antag_datums)
|
||||||
if(objective in A.objectives)
|
if(objective in A.objectives)
|
||||||
target_antag = A
|
target_antag = A
|
||||||
objective_pos = A.objectives.Find(objective)
|
objective_pos = A.objectives.Find(objective)
|
||||||
break
|
break
|
||||||
|
|
||||||
if(!target_antag) //Shouldn't happen
|
if(!target_antag) //Shouldn't happen
|
||||||
stack_trace("objective without antagonist found")
|
stack_trace("objective without antagonist found")
|
||||||
objective_pos = objectives.Find(objective)
|
objective_pos = objectives.Find(objective)
|
||||||
@@ -939,7 +939,7 @@
|
|||||||
var/datum/objective/objective = locate(href_list["obj_delete"])
|
var/datum/objective/objective = locate(href_list["obj_delete"])
|
||||||
if(!istype(objective))
|
if(!istype(objective))
|
||||||
return
|
return
|
||||||
|
|
||||||
for(var/datum/antagonist/A in antag_datums)
|
for(var/datum/antagonist/A in antag_datums)
|
||||||
if(objective in A.objectives)
|
if(objective in A.objectives)
|
||||||
A.objectives -= objective
|
A.objectives -= objective
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
//A barebones antagonist team.
|
//A barebones antagonist team.
|
||||||
/datum/objective_team
|
/datum/team
|
||||||
var/list/datum/mind/members = list()
|
var/list/datum/mind/members = list()
|
||||||
var/name = "team"
|
var/name = "team"
|
||||||
var/member_name = "member"
|
var/member_name = "member"
|
||||||
var/list/objectives = list() //common objectives, these won't be added or removed automatically, subtypes handle this, this is here for bookkeeping purposes.
|
var/list/objectives = list() //common objectives, these won't be added or removed automatically, subtypes handle this, this is here for bookkeeping purposes.
|
||||||
|
|
||||||
/datum/objective_team/New(starting_members)
|
/datum/team/New(starting_members)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(starting_members)
|
if(starting_members)
|
||||||
if(islist(starting_members))
|
if(islist(starting_members))
|
||||||
@@ -14,17 +14,17 @@
|
|||||||
else
|
else
|
||||||
add_member(starting_members)
|
add_member(starting_members)
|
||||||
|
|
||||||
/datum/objective_team/proc/is_solo()
|
/datum/team/proc/is_solo()
|
||||||
return members.len == 1
|
return members.len == 1
|
||||||
|
|
||||||
/datum/objective_team/proc/add_member(datum/mind/new_member)
|
/datum/team/proc/add_member(datum/mind/new_member)
|
||||||
members |= new_member
|
members |= new_member
|
||||||
|
|
||||||
/datum/objective_team/proc/remove_member(datum/mind/member)
|
/datum/team/proc/remove_member(datum/mind/member)
|
||||||
members -= member
|
members -= member
|
||||||
|
|
||||||
//Display members/victory/failure/objectives for the team
|
//Display members/victory/failure/objectives for the team
|
||||||
/datum/objective_team/proc/roundend_report()
|
/datum/team/proc/roundend_report()
|
||||||
var/list/report = list()
|
var/list/report = list()
|
||||||
|
|
||||||
report += "<b>[name]:</b>"
|
report += "<b>[name]:</b>"
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
/datum/game_mode
|
/datum/game_mode
|
||||||
var/list/datum/mind/brothers = list()
|
var/list/datum/mind/brothers = list()
|
||||||
var/list/datum/objective_team/brother_team/brother_teams = list()
|
var/list/datum/team/brother_team/brother_teams = list()
|
||||||
|
|
||||||
/datum/game_mode/traitor/bros
|
/datum/game_mode/traitor/bros
|
||||||
name = "traitor+brothers"
|
name = "traitor+brothers"
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
<span class='danger'>Blood Brothers</span>: Accomplish your objectives.\n\
|
<span class='danger'>Blood Brothers</span>: Accomplish your objectives.\n\
|
||||||
<span class='notice'>Crew</span>: Do not let the traitors or brothers succeed!"
|
<span class='notice'>Crew</span>: Do not let the traitors or brothers succeed!"
|
||||||
|
|
||||||
var/list/datum/objective_team/brother_team/pre_brother_teams = list()
|
var/list/datum/team/brother_team/pre_brother_teams = list()
|
||||||
var/const/team_amount = 2 //hard limit on brother teams if scaling is turned off
|
var/const/team_amount = 2 //hard limit on brother teams if scaling is turned off
|
||||||
var/const/min_team_size = 2
|
var/const/min_team_size = 2
|
||||||
traitors_required = FALSE //Only teams are possible
|
traitors_required = FALSE //Only teams are possible
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
for(var/j = 1 to num_teams)
|
for(var/j = 1 to num_teams)
|
||||||
if(possible_brothers.len < min_team_size || antag_candidates.len <= required_enemies)
|
if(possible_brothers.len < min_team_size || antag_candidates.len <= required_enemies)
|
||||||
break
|
break
|
||||||
var/datum/objective_team/brother_team/team = new
|
var/datum/team/brother_team/team = new
|
||||||
var/team_size = prob(10) ? min(3, possible_brothers.len) : 2
|
var/team_size = prob(10) ? min(3, possible_brothers.len) : 2
|
||||||
for(var/k = 1 to team_size)
|
for(var/k = 1 to team_size)
|
||||||
var/datum/mind/bro = pick(possible_brothers)
|
var/datum/mind/bro = pick(possible_brothers)
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/datum/game_mode/traitor/bros/post_setup()
|
/datum/game_mode/traitor/bros/post_setup()
|
||||||
for(var/datum/objective_team/brother_team/team in pre_brother_teams)
|
for(var/datum/team/brother_team/team in pre_brother_teams)
|
||||||
team.meeting_area = pick(meeting_areas)
|
team.meeting_area = pick(meeting_areas)
|
||||||
meeting_areas -= team.meeting_area
|
meeting_areas -= team.meeting_area
|
||||||
team.forge_brother_objectives()
|
team.forge_brother_objectives()
|
||||||
|
|||||||
@@ -112,8 +112,8 @@ Credit where due:
|
|||||||
var/servants_to_serve = list()
|
var/servants_to_serve = list()
|
||||||
var/roundstart_player_count
|
var/roundstart_player_count
|
||||||
var/ark_time //In minutes, how long the Ark waits before activation; this is equal to 30 + (number of players / 5) (max 40 mins.)
|
var/ark_time //In minutes, how long the Ark waits before activation; this is equal to 30 + (number of players / 5) (max 40 mins.)
|
||||||
|
|
||||||
var/datum/objective_team/clockcult/main_clockcult
|
var/datum/team/clockcult/main_clockcult
|
||||||
|
|
||||||
/datum/game_mode/clockwork_cult/pre_setup()
|
/datum/game_mode/clockwork_cult/pre_setup()
|
||||||
if(CONFIG_GET(flag/protect_roles_from_antagonist))
|
if(CONFIG_GET(flag/protect_roles_from_antagonist))
|
||||||
|
|||||||
@@ -6,13 +6,13 @@
|
|||||||
/proc/iscultist(mob/living/M)
|
/proc/iscultist(mob/living/M)
|
||||||
return istype(M) && M.mind && M.mind.has_antag_datum(ANTAG_DATUM_CULT)
|
return istype(M) && M.mind && M.mind.has_antag_datum(ANTAG_DATUM_CULT)
|
||||||
|
|
||||||
/datum/objective_team/cult/proc/is_sacrifice_target(datum/mind/mind)
|
/datum/team/cult/proc/is_sacrifice_target(datum/mind/mind)
|
||||||
for(var/datum/objective/sacrifice/sac_objective in objectives)
|
for(var/datum/objective/sacrifice/sac_objective in objectives)
|
||||||
if(mind == sac_objective.target)
|
if(mind == sac_objective.target)
|
||||||
return TRUE
|
return TRUE
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
/proc/is_convertable_to_cult(mob/living/M,datum/objective_team/cult/specific_cult)
|
/proc/is_convertable_to_cult(mob/living/M,datum/team/cult/specific_cult)
|
||||||
if(!istype(M))
|
if(!istype(M))
|
||||||
return FALSE
|
return FALSE
|
||||||
if(M.mind)
|
if(M.mind)
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
|
|
||||||
var/list/cultists_to_cult = list() //the cultists we'll convert
|
var/list/cultists_to_cult = list() //the cultists we'll convert
|
||||||
|
|
||||||
var/datum/objective_team/cult/main_cult
|
var/datum/team/cult/main_cult
|
||||||
|
|
||||||
|
|
||||||
/datum/game_mode/cult/pre_setup()
|
/datum/game_mode/cult/pre_setup()
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
|
|
||||||
var/datum/antagonist/cult/new_cultist = new(cult_mind)
|
var/datum/antagonist/cult/new_cultist = new(cult_mind)
|
||||||
new_cultist.give_equipment = equip
|
new_cultist.give_equipment = equip
|
||||||
|
|
||||||
if(cult_mind.add_antag_datum(new_cultist))
|
if(cult_mind.add_antag_datum(new_cultist))
|
||||||
if(stun)
|
if(stun)
|
||||||
cult_mind.current.Unconscious(100)
|
cult_mind.current.Unconscious(100)
|
||||||
|
|||||||
@@ -97,7 +97,7 @@
|
|||||||
var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
|
var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
|
||||||
pollCultists(owner,C.cult_team)
|
pollCultists(owner,C.cult_team)
|
||||||
|
|
||||||
/proc/pollCultists(var/mob/living/Nominee,datum/objective_team/cult/team) //Cult Master Poll
|
/proc/pollCultists(var/mob/living/Nominee,datum/team/cult/team) //Cult Master Poll
|
||||||
if(world.time < CULT_POLL_WAIT)
|
if(world.time < CULT_POLL_WAIT)
|
||||||
to_chat(Nominee, "It would be premature to select a leader while everyone is still settling in, try again in [DisplayTimeText(CULT_POLL_WAIT-world.time)].")
|
to_chat(Nominee, "It would be premature to select a leader while everyone is still settling in, try again in [DisplayTimeText(CULT_POLL_WAIT-world.time)].")
|
||||||
return
|
return
|
||||||
@@ -276,7 +276,7 @@
|
|||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
var/datum/antagonist/cult/C = caller.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
|
var/datum/antagonist/cult/C = caller.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
|
||||||
|
|
||||||
if(target in view(7, get_turf(ranged_ability_user)))
|
if(target in view(7, get_turf(ranged_ability_user)))
|
||||||
C.cult_team.blood_target = target
|
C.cult_team.blood_target = target
|
||||||
var/area/A = get_area(target)
|
var/area/A = get_area(target)
|
||||||
@@ -297,7 +297,7 @@
|
|||||||
return TRUE
|
return TRUE
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
/proc/reset_blood_target(datum/objective_team/cult/team)
|
/proc/reset_blood_target(datum/team/cult/team)
|
||||||
for(var/datum/mind/B in team.members)
|
for(var/datum/mind/B in team.members)
|
||||||
if(B.current && B.current.stat != DEAD && B.current.client)
|
if(B.current && B.current.stat != DEAD && B.current.client)
|
||||||
if(team.blood_target)
|
if(team.blood_target)
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
required_players = 15
|
required_players = 15
|
||||||
maximum_players = 50
|
maximum_players = 50
|
||||||
var/max_teams = 4
|
var/max_teams = 4
|
||||||
var/list/datum/objective_team/abductor_team/abductor_teams = list()
|
var/list/datum/team/abductor_team/abductor_teams = list()
|
||||||
var/finished = FALSE
|
var/finished = FALSE
|
||||||
var/static/team_count = 0
|
var/static/team_count = 0
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
if(team_number > max_teams)
|
if(team_number > max_teams)
|
||||||
return //or should it try to stuff them in anway ?
|
return //or should it try to stuff them in anway ?
|
||||||
|
|
||||||
var/datum/objective_team/abductor_team/team = new
|
var/datum/team/abductor_team/team = new
|
||||||
team.team_number = team_number
|
team.team_number = team_number
|
||||||
team.name = "Mothership [pick(GLOB.possible_changeling_IDs)]" //TODO Ensure unique and actual alieny names
|
team.name = "Mothership [pick(GLOB.possible_changeling_IDs)]" //TODO Ensure unique and actual alieny names
|
||||||
team.add_objective(new/datum/objective/experiment)
|
team.add_objective(new/datum/objective/experiment)
|
||||||
@@ -65,12 +65,12 @@
|
|||||||
return team
|
return team
|
||||||
|
|
||||||
/datum/game_mode/abduction/post_setup()
|
/datum/game_mode/abduction/post_setup()
|
||||||
for(var/datum/objective_team/abductor_team/team in abductor_teams)
|
for(var/datum/team/abductor_team/team in abductor_teams)
|
||||||
post_setup_team(team)
|
post_setup_team(team)
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
//Used for create antag buttons
|
//Used for create antag buttons
|
||||||
/datum/game_mode/abduction/proc/post_setup_team(datum/objective_team/abductor_team/team)
|
/datum/game_mode/abduction/proc/post_setup_team(datum/team/abductor_team/team)
|
||||||
for(var/datum/mind/M in team.members)
|
for(var/datum/mind/M in team.members)
|
||||||
if(M.assigned_role == "Abductor Scientist")
|
if(M.assigned_role == "Abductor Scientist")
|
||||||
M.add_antag_datum(ANTAG_DATUM_ABDUCTOR_SCIENTIST, team)
|
M.add_antag_datum(ANTAG_DATUM_ABDUCTOR_SCIENTIST, team)
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
|
|
||||||
/datum/game_mode/abduction/check_finished()
|
/datum/game_mode/abduction/check_finished()
|
||||||
if(!finished)
|
if(!finished)
|
||||||
for(var/datum/objective_team/abductor_team/team in abductor_teams)
|
for(var/datum/team/abductor_team/team in abductor_teams)
|
||||||
for(var/datum/objective/O in team.objectives)
|
for(var/datum/objective/O in team.objectives)
|
||||||
if(O.check_completion())
|
if(O.check_completion())
|
||||||
SSshuttle.emergency.request(null, set_coefficient = 0.5)
|
SSshuttle.emergency.request(null, set_coefficient = 0.5)
|
||||||
@@ -103,9 +103,9 @@
|
|||||||
|
|
||||||
/datum/objective/experiment/check_completion()
|
/datum/objective/experiment/check_completion()
|
||||||
for(var/obj/machinery/abductor/experiment/E in GLOB.machines)
|
for(var/obj/machinery/abductor/experiment/E in GLOB.machines)
|
||||||
if(!istype(team, /datum/objective_team/abductor_team))
|
if(!istype(team, /datum/team/abductor_team))
|
||||||
return FALSE
|
return FALSE
|
||||||
var/datum/objective_team/abductor_team/T = team
|
var/datum/team/abductor_team/T = team
|
||||||
if(E.team_number == T.team_number)
|
if(E.team_number == T.team_number)
|
||||||
return E.points >= target_amount
|
return E.points >= target_amount
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
var/players_per_carrier = 30
|
var/players_per_carrier = 30
|
||||||
|
|
||||||
var/datum/objective_team/monkey/monkey_team
|
var/datum/team/monkey/monkey_team
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
var/nukes_left = 1 // Call 3714-PRAY right now and order more nukes! Limited offer!
|
var/nukes_left = 1 // Call 3714-PRAY right now and order more nukes! Limited offer!
|
||||||
var/list/pre_nukeops = list()
|
var/list/pre_nukeops = list()
|
||||||
|
|
||||||
var/datum/objective_team/nuclear/nuke_team
|
var/datum/team/nuclear/nuke_team
|
||||||
|
|
||||||
/datum/game_mode/nuclear/pre_setup()
|
/datum/game_mode/nuclear/pre_setup()
|
||||||
var/n_agents = min(round(num_players() / 10), antag_candidates.len, agents_possible)
|
var/n_agents = min(round(num_players() / 10), antag_candidates.len, agents_possible)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/datum/objective
|
/datum/objective
|
||||||
var/datum/mind/owner //The primary owner of the objective. !!SOMEWHAT DEPRECATED!! Prefer using 'team' for new code.
|
var/datum/mind/owner //The primary owner of the objective. !!SOMEWHAT DEPRECATED!! Prefer using 'team' for new code.
|
||||||
var/datum/objective_team/team //An alternative to 'owner': a team. Use this when writing new code.
|
var/datum/team/team //An alternative to 'owner': a team. Use this when writing new code.
|
||||||
var/explanation_text = "Nothing" //What that person is supposed to do.
|
var/explanation_text = "Nothing" //What that person is supposed to do.
|
||||||
var/team_explanation_text //For when there are multiple owners.
|
var/team_explanation_text //For when there are multiple owners.
|
||||||
var/datum/mind/target = null //If they are focused on a particular person.
|
var/datum/mind/target = null //If they are focused on a particular person.
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
var/finished = 0
|
var/finished = 0
|
||||||
var/check_counter = 0
|
var/check_counter = 0
|
||||||
var/max_headrevs = 3
|
var/max_headrevs = 3
|
||||||
var/datum/objective_team/revolution/revolution
|
var/datum/team/revolution/revolution
|
||||||
var/list/datum/mind/headrev_candidates = list()
|
var/list/datum/mind/headrev_candidates = list()
|
||||||
|
|
||||||
///////////////////////////
|
///////////////////////////
|
||||||
|
|||||||
@@ -524,7 +524,7 @@
|
|||||||
|
|
||||||
if(SSticker.mode.brother_teams.len > 0)
|
if(SSticker.mode.brother_teams.len > 0)
|
||||||
dat += "<br><table cellspacing=5><tr><td><B>Brothers</B></td><td></td><td></td></tr>"
|
dat += "<br><table cellspacing=5><tr><td><B>Brothers</B></td><td></td><td></td></tr>"
|
||||||
for(var/datum/objective_team/brother_team/team in SSticker.mode.brother_teams)
|
for(var/datum/team/brother_team/team in SSticker.mode.brother_teams)
|
||||||
for(var/datum/mind/brother in team.members)
|
for(var/datum/mind/brother in team.members)
|
||||||
var/mob/M = brother.current
|
var/mob/M = brother.current
|
||||||
if(M)
|
if(M)
|
||||||
@@ -611,7 +611,7 @@
|
|||||||
dat += "<td><A href='?priv_msg=[blob.key]'>PM</A></td></tr>"
|
dat += "<td><A href='?priv_msg=[blob.key]'>PM</A></td></tr>"
|
||||||
dat += "</table>"
|
dat += "</table>"
|
||||||
|
|
||||||
|
|
||||||
var/list/pirates = get_antagonists(/datum/antagonist/pirate)
|
var/list/pirates = get_antagonists(/datum/antagonist/pirate)
|
||||||
if(pirates.len > 0)
|
if(pirates.len > 0)
|
||||||
dat += "<br><table cellspacing=5><tr><td><B>Pirates</B></td><td></td></tr>"
|
dat += "<br><table cellspacing=5><tr><td><B>Pirates</B></td><td></td></tr>"
|
||||||
|
|||||||
@@ -240,7 +240,7 @@
|
|||||||
|
|
||||||
//Let's find the spawn locations
|
//Let's find the spawn locations
|
||||||
var/leader_chosen = FALSE
|
var/leader_chosen = FALSE
|
||||||
var/datum/objective_team/nuclear/nuke_team
|
var/datum/team/nuclear/nuke_team
|
||||||
for(var/mob/c in chosen)
|
for(var/mob/c in chosen)
|
||||||
var/mob/living/carbon/human/new_character=makeBody(c)
|
var/mob/living/carbon/human/new_character=makeBody(c)
|
||||||
if(!leader_chosen)
|
if(!leader_chosen)
|
||||||
@@ -308,13 +308,13 @@
|
|||||||
//Assign antag status and the mission
|
//Assign antag status and the mission
|
||||||
SSticker.mode.traitors += Commando.mind
|
SSticker.mode.traitors += Commando.mind
|
||||||
Commando.mind.special_role = "deathsquad"
|
Commando.mind.special_role = "deathsquad"
|
||||||
|
|
||||||
var/datum/objective/missionobj = new
|
var/datum/objective/missionobj = new
|
||||||
missionobj.owner = Commando.mind
|
missionobj.owner = Commando.mind
|
||||||
missionobj.explanation_text = mission
|
missionobj.explanation_text = mission
|
||||||
missionobj.completed = 1
|
missionobj.completed = 1
|
||||||
Commando.mind.objectives += missionobj
|
Commando.mind.objectives += missionobj
|
||||||
|
|
||||||
Commando.mind.add_antag_datum(/datum/antagonist/auto_custom)
|
Commando.mind.add_antag_datum(/datum/antagonist/auto_custom)
|
||||||
|
|
||||||
//Greet the commando
|
//Greet the commando
|
||||||
@@ -363,13 +363,13 @@
|
|||||||
//Assign antag status and the mission
|
//Assign antag status and the mission
|
||||||
SSticker.mode.traitors += newmob.mind
|
SSticker.mode.traitors += newmob.mind
|
||||||
newmob.mind.special_role = "official"
|
newmob.mind.special_role = "official"
|
||||||
|
|
||||||
var/datum/objective/missionobj = new
|
var/datum/objective/missionobj = new
|
||||||
missionobj.owner = newmob.mind
|
missionobj.owner = newmob.mind
|
||||||
missionobj.explanation_text = mission
|
missionobj.explanation_text = mission
|
||||||
missionobj.completed = 1
|
missionobj.completed = 1
|
||||||
newmob.mind.objectives += missionobj
|
newmob.mind.objectives += missionobj
|
||||||
|
|
||||||
newmob.mind.add_antag_datum(/datum/antagonist/auto_custom)
|
newmob.mind.add_antag_datum(/datum/antagonist/auto_custom)
|
||||||
|
|
||||||
if(CONFIG_GET(flag/enforce_human_authority))
|
if(CONFIG_GET(flag/enforce_human_authority))
|
||||||
@@ -471,7 +471,7 @@
|
|||||||
//Assign antag status and the mission
|
//Assign antag status and the mission
|
||||||
SSticker.mode.traitors += ERTOperative.mind
|
SSticker.mode.traitors += ERTOperative.mind
|
||||||
ERTOperative.mind.special_role = "ERT"
|
ERTOperative.mind.special_role = "ERT"
|
||||||
|
|
||||||
var/datum/objective/missionobj = new
|
var/datum/objective/missionobj = new
|
||||||
missionobj.owner = ERTOperative.mind
|
missionobj.owner = ERTOperative.mind
|
||||||
missionobj.explanation_text = mission
|
missionobj.explanation_text = mission
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
var/list/all_cults = list()
|
var/list/all_cults = list()
|
||||||
for(var/datum/antagonist/cult/C in GLOB.antagonists)
|
for(var/datum/antagonist/cult/C in GLOB.antagonists)
|
||||||
all_cults |= C.cult_team
|
all_cults |= C.cult_team
|
||||||
for(var/datum/objective_team/cult/T in all_cults)
|
for(var/datum/team/cult/T in all_cults)
|
||||||
deltimer(T.blood_target_reset_timer)
|
deltimer(T.blood_target_reset_timer)
|
||||||
T.blood_target = src
|
T.blood_target = src
|
||||||
var/datum/objective/eldergod/summon_objective = locate() in T.objectives
|
var/datum/objective/eldergod/summon_objective = locate() in T.objectives
|
||||||
|
|||||||
@@ -448,11 +448,11 @@
|
|||||||
#include "code\game\area\areas\ruins\space.dm"
|
#include "code\game\area\areas\ruins\space.dm"
|
||||||
#include "code\game\gamemodes\antag_hud.dm"
|
#include "code\game\gamemodes\antag_hud.dm"
|
||||||
#include "code\game\gamemodes\antag_spawner.dm"
|
#include "code\game\gamemodes\antag_spawner.dm"
|
||||||
|
#include "code\game\gamemodes\antag_team.dm"
|
||||||
#include "code\game\gamemodes\events.dm"
|
#include "code\game\gamemodes\events.dm"
|
||||||
#include "code\game\gamemodes\game_mode.dm"
|
#include "code\game\gamemodes\game_mode.dm"
|
||||||
#include "code\game\gamemodes\objective.dm"
|
#include "code\game\gamemodes\objective.dm"
|
||||||
#include "code\game\gamemodes\objective_items.dm"
|
#include "code\game\gamemodes\objective_items.dm"
|
||||||
#include "code\game\gamemodes\objective_team.dm"
|
|
||||||
#include "code\game\gamemodes\blob\blob_report.dm"
|
#include "code\game\gamemodes\blob\blob_report.dm"
|
||||||
#include "code\game\gamemodes\blob\overmind.dm"
|
#include "code\game\gamemodes\blob\overmind.dm"
|
||||||
#include "code\game\gamemodes\blob\powers.dm"
|
#include "code\game\gamemodes\blob\powers.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user