Fixed flavor objectives and added more.
This commit is contained in:
@@ -408,9 +408,3 @@
|
||||
|
||||
/datum/config_entry/number/dropped_modes
|
||||
config_entry_value = 3
|
||||
|
||||
/datum/config_entry/keyed_list/flavor_objective_traitor
|
||||
key_mode = KEY_MODE_TEXT
|
||||
value_mode = VALUE_MODE_NUM
|
||||
splitter = "="
|
||||
lowercase = FALSE
|
||||
|
||||
@@ -471,8 +471,7 @@
|
||||
/datum/objective/nuclear,
|
||||
/datum/objective/capture,
|
||||
/datum/objective/absorb,
|
||||
/datum/objective/custom,
|
||||
/datum/objective/flavor/traitor
|
||||
/datum/objective/custom
|
||||
)
|
||||
|
||||
for(var/T in allowed_types)
|
||||
|
||||
@@ -1070,15 +1070,36 @@ GLOBAL_LIST_EMPTY(possible_sabotages)
|
||||
/datum/objective/flavor
|
||||
name = "flavor"
|
||||
completable = FALSE
|
||||
var/flavor_file
|
||||
|
||||
/datum/objective/flavor/New()
|
||||
..()
|
||||
forge_objective()
|
||||
/datum/objective/flavor/proc/get_flavor_list()
|
||||
return world.file2list(flavor_file)
|
||||
|
||||
/datum/objective/flavor/proc/forge_objective()
|
||||
var/flavor_list = get_flavor_list()
|
||||
explanation_text = pick(flavor_list)
|
||||
|
||||
/datum/objective/flavor/traitor
|
||||
name = "traitor flavor"
|
||||
flavor_file = "strings/flavor_objectives/traitor.txt"
|
||||
|
||||
/datum/objective/flavor/traitor/forge_objective()
|
||||
explanation_text = pickweight(CONFIG_GET(keyed_list/flavor_objective_traitor))
|
||||
/datum/objective/flavor/traitor/get_flavor_list()
|
||||
. = ..()
|
||||
switch(owner.assigned_role)
|
||||
if("Station Engineer", "Atmospheric Technician")
|
||||
. += world.file2list("strings/flavor_objectives/traitor/engineering.txt")
|
||||
if("Medical Doctor","Chemist","Virologist","Geneticist")
|
||||
. += world.file2list("strings/flavor_objectives/traitor/medical.txt")
|
||||
if("Scientist","Roboticist","Geneticist")
|
||||
. += world.file2list("strings/flavor_objectives/traitor/science.txt")
|
||||
if("Assistant")
|
||||
. += world.file2list("strings/flavor_objectives/traitor/assistant.txt")
|
||||
|
||||
/datum/objective/flavor/ninja_helping
|
||||
flavor_file = "strings/flavor_objectives/ninja_helping.txt"
|
||||
|
||||
/datum/objective/flavor/ninja_syndie
|
||||
flavor_file = "strings/flavor_objectives/ninja_syndie.txt"
|
||||
|
||||
/datum/objective/flavor/wizard
|
||||
flavor_file = "strings/flavor_objectives/wizard.txt"
|
||||
|
||||
@@ -73,23 +73,16 @@
|
||||
O.target = M
|
||||
O.explanation_text = "Protect \the [M.current.real_name], the [M.assigned_role], from harm."
|
||||
objectives += O
|
||||
if(4) //debrain/capture
|
||||
if(!possible_targets.len) continue
|
||||
var/selected = rand(1,possible_targets.len)
|
||||
var/datum/mind/M = possible_targets[selected]
|
||||
var/is_bad_guy = possible_targets[M]
|
||||
possible_targets.Cut(selected,selected+1)
|
||||
|
||||
if(is_bad_guy ^ helping_station) //debrain (good-ninja + bad-guy or bad-ninja + good-guy)
|
||||
var/datum/objective/debrain/O = new /datum/objective/debrain()
|
||||
if(4) //flavor
|
||||
if(helping_station)
|
||||
var/datum/objective/flavor/ninja_helping/O = new /datum/objective/flavor/ninja_helping
|
||||
O.owner = owner
|
||||
O.target = M
|
||||
O.explanation_text = "Steal the brain of [M.current.real_name]."
|
||||
O.forge_objective()
|
||||
objectives += O
|
||||
else //capture
|
||||
var/datum/objective/capture/O = new /datum/objective/capture()
|
||||
else
|
||||
var/datum/objective/flavor/ninja_syndie/O = new /datum/objective/flavor/ninja_helping
|
||||
O.owner = owner
|
||||
O.gen_amount_goal()
|
||||
O.forge_objective()
|
||||
objectives += O
|
||||
else
|
||||
break
|
||||
|
||||
@@ -215,6 +215,7 @@
|
||||
else
|
||||
var/datum/objective/flavor/traitor/flavor_objective = new
|
||||
flavor_objective.owner = owner
|
||||
flavor_objective.forge_objective()
|
||||
add_objective(flavor_objective)
|
||||
|
||||
/datum/antagonist/traitor/proc/forge_single_AI_objective()
|
||||
|
||||
@@ -61,9 +61,9 @@
|
||||
owner.current.forceMove(pick(GLOB.wizardstart))
|
||||
|
||||
/datum/antagonist/wizard/proc/create_objectives()
|
||||
var/datum/objective/new_objective = new("Cause as much creative mayhem as you can aboard the station! The more outlandish your methods of achieving this, the better! Make sure there's a decent amount of crew alive to tell of your tale.")
|
||||
new_objective.completable = FALSE
|
||||
var/datum/objective/flavor/wizard/new_objective = new
|
||||
new_objective.owner = owner
|
||||
new_objective.forge_objective()
|
||||
objectives += new_objective
|
||||
|
||||
if (!(locate(/datum/objective/escape) in objectives))
|
||||
@@ -94,6 +94,7 @@
|
||||
to_chat(owner, "<span class='boldannounce'>You are the Space Wizard!</span>")
|
||||
to_chat(owner, "<B>The Space Wizards Federation has given you the following tasks:</B>")
|
||||
owner.announce_objectives()
|
||||
to_chat(owner, "<B>These are merely guidelines! The federation are your masters, but you forge your own path!</B>")
|
||||
to_chat(owner, "You will find a list of available spells in your spell book. Choose your magic arsenal carefully.")
|
||||
to_chat(owner, "The spellbook is bound to you, and others cannot use it.")
|
||||
to_chat(owner, "In your pockets you will find a teleport scroll. Use it as needed.")
|
||||
|
||||
Reference in New Issue
Block a user