made flavor things a game option + more hoard

This commit is contained in:
Putnam
2020-01-20 04:13:54 -08:00
parent dfaa3bf15c
commit 815b4f033d
6 changed files with 43 additions and 30 deletions

View File

@@ -408,3 +408,9 @@
/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

View File

@@ -471,7 +471,8 @@
/datum/objective/nuclear,
/datum/objective/capture,
/datum/objective/absorb,
/datum/objective/custom
/datum/objective/custom,
/datum/objective/flavor/traitor
)
for(var/T in allowed_types)

View File

@@ -989,25 +989,25 @@ GLOBAL_LIST_EMPTY(possible_items_special)
command_staff_only = TRUE
/datum/objective/horde
name = "horde"
var/obj/item/horded_item = null
/datum/objective/hoard
name = "hoard"
var/obj/item/hoarded_item = null
/datum/objective/horde/get_target()
return horded_item
/datum/objective/hoard/get_target()
return hoarded_item
/datum/objective/horde/proc/set_target(obj/item/I)
/datum/objective/hoard/proc/set_target(obj/item/I)
if(I)
horded_item = I
hoarded_item = I
explanation_text = "Keep [I] on your person at all costs."
return horded_item
return hoarded_item
else
explanation_text = "Free objective"
return
/datum/objective/horde/check_completion()
/datum/objective/hoard/check_completion()
var/list/datum/mind/owners = get_owners()
if(!horded_item)
if(!hoarded_item)
return TRUE
for(var/datum/mind/M in owners)
if(!isliving(M.current))
@@ -1016,14 +1016,14 @@ GLOBAL_LIST_EMPTY(possible_items_special)
var/list/all_items = M.current.GetAllContents() //this should get things in cheesewheels, books, etc.
for(var/obj/I in all_items) //Check for items
if(I == horded_item)
if(I == hoarded_item)
return TRUE
return FALSE
/datum/objective/horde/heirloom
/datum/objective/hoard/heirloom
name = "steal heirloom"
/datum/objective/horde/heirloom/find_target()
/datum/objective/hoard/heirloom/find_target()
set_target(pick(GLOB.family_heirlooms))
GLOBAL_LIST_EMPTY(possible_sabotages)
@@ -1068,21 +1068,17 @@ GLOBAL_LIST_EMPTY(possible_sabotages)
return targetinfo.check_conditions()
/datum/objective/flavor
name = "Flavor"
name = "flavor"
completable = FALSE
/datum/objective/flavor/New()
..()
forge_objective()
/datum/objective/flavor/proc/forge_objective()
/datum/objective/flavor/traitor
name = "traitor flavor"
/datum/objective/flavor/traitor/forge_objective()
explanation_text = pickweight(
"Teach the heads of staff a lesson they will never forget." = 1,
"Show Nanotrasen the utility of a pure oxygen atmosphere." = 2,
"Waffle Co. wants you! Thats right, YOU! To cause as much humorous terrorism against Nanotrasen as possible! How? We dont care as long as its entertaining! Be as creative and exciting as possible when carrying out your dirty deeds. Have fun!" = 1,
"Kill one of the station's beloved pets. Make a show of it, though you don't have to reveal yourself." = 3,
"Get illegal technology spread through the station." = 3,
"Slow down the process of research as much as possible." = (owner.assigned_role in list("Research Director", "Scientist", "Roboticist") ? 6 : 0),
"Channel your inner rat. Cut wires throughout the station." = (owner.assigned_role in list("Station Engineer", "Atmos Technician", "Assistant") ? 6 : 0),
"The Animal Rights Consortium needs you to save the innocent non-humanoid creatures aboard Citadel Station by any means necessary. Use your best judgement to decide whether an animal or xenobiological is abused, but if they are, ensure the abuser is punished. Avoid killing too many people if possible, and if you do harm any creatures, you will be terminated upon extraction." = 2,
"Donk Co. wants ransom money, and you are going to get it. Your goal is to kidnap and crewmember you can get your hands on and hold them hostage until you get something of significant value. Try to work out the best deal you can. Remember that Higher Value Targets are generally going to get a better deal so try to prioritize heads of staff if possible. We do not approve of mindless killing of Nanotrasen employees, so dont do it." = 1,
"Steal as many shoes as possible. Lay broken glass everywhere." = 2
)
explanation_text = pickweight(CONFIG_GET(keyed_list/flavor_objective_traitor))

View File

@@ -215,7 +215,6 @@
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()

View File

@@ -104,7 +104,7 @@ GLOBAL_VAR_INIT(summon_magic_triggered, FALSE)
G.unlock()
var/datum/antagonist/survivalist/guns/our_antag_datum = H.mind.has_antag_datum(/datum/antagonist/survivalist/guns)
if(our_antag_datum)
var/datum/objective/horde/O = new()
var/datum/objective/hoard/O = new()
O.owner = H
O.set_target(G)
our_antag_datum.objectives += O
@@ -136,7 +136,7 @@ GLOBAL_VAR_INIT(summon_magic_triggered, FALSE)
var/datum/antagonist/survivalist/magic/our_antag_datum = H.mind.has_antag_datum(/datum/antagonist/survivalist/magic)
if(istype(our_antag_datum))
var/datum/objective/horde/O = new()
var/datum/objective/hoard/O = new()
O.owner = H
O.set_target(M)
our_antag_datum.objectives += O

View File

@@ -597,3 +597,14 @@ MODETIER_VOTING
## Number of modes dropped by the modetier vote during mode selection, after vote.
DROPPED_MODES 3
FLAVOR_OBJECTIVE_TRAITOR Teach the heads of staff a lesson they will never forget.=1
FLAVOR_OBJECTIVE_TRAITOR Show Nanotrasen the utility of a pure oxygen atmosphere.=2
FLAVOR_OBJECTIVE_TRAITOR Waffle Co. wants you! Thats right, YOU! To cause as much humorous terrorism against Nanotrasen as possible! How? We dont care as long as its entertaining! Be as creative and exciting as possible when carrying out your dirty deeds. Have fun!=1
FLAVOR_OBJECTIVE_TRAITOR Kill one of the station's beloved pets. Make a show of it, though you don't have to reveal yourself.=3
FLAVOR_OBJECTIVE_TRAITOR Get illegal technology spread through the station.=3
FLAVOR_OBJECTIVE_TRAITOR Slow down the process of research as much as possible." = (owner.assigned_role in list("Research Director", "Scientist", "Roboticist") ? 6 : 0),
FLAVOR_OBJECTIVE_TRAITOR Channel your inner rat. Cut wires throughout the station." = (owner.assigned_role in list("Station Engineer", "Atmos Technician", "Assistant") ? 6 : 0),
FLAVOR_OBJECTIVE_TRAITOR The Animal Rights Consortium needs you to save the innocent non-humanoid creatures aboard Citadel Station by any means necessary. Use your best judgement to decide whether an animal or xenobiological is abused, but if they are, ensure the abuser is punished. Avoid killing too many people if possible, and if you do harm any creatures, you will be terminated upon extraction.=2
FLAVOR_OBJECTIVE_TRAITOR Donk Co. wants ransom money, and you are going to get it. Your goal is to kidnap and crewmember you can get your hands on and hold them hostage until you get something of significant value. Try to work out the best deal you can. Remember that Higher Value Targets are generally going to get a better deal so try to prioritize heads of staff if possible. We do not approve of mindless killing of Nanotrasen employees, so dont do it.=1
FLAVOR_OBJECTIVE_TRAITOR Steal as many shoes as possible. Lay broken glass everywhere." = 2