-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adds Syndicate organizations (#24040)
* framework * factions and objs done * objective framework * remove you_are, implement intro_desc * assassinate syndi text * remove extra space * Apply suggestions from code review Co-authored-by: DGamerL <[email protected]> * Implement steal items * Apply suggestions from code review Co-authored-by: DGamerL <[email protected]> Co-authored-by: Luc <[email protected]> * revert forced escape obj * rename i var * readd martyr check * difficulty defines * remove discounts * add electra dynamics * add hawkmoon * repath org, add gameplay blurbs * cuts unnecessary content, add org selection, updates * move defines * var names * update numbers * set defines, tweaks * add hijack forced obj * update L O R E * remove forgotten todo * document steal_list * use initial() * fix comments move steal objs * apply code review suggestions * use pickweight * flags * replace hardcoded target jobs by target_department * comment fix * incorporate org objectives into delayed objectives * fix martyr check location * Remove abuser vocab, debug names for orgs * readd obj name as user, VV only * add traitor panel and fix forced objective * reword ARC objective * change forced objective to list * rewrite to US spelling * Rework objective selection * Apply suggestions from code review Co-authored-by: Burzah <[email protected]> Signed-off-by: datlo <[email protected]> * add hunter notification, review stuff * Update code/game/gamemodes/objective.dm Co-authored-by: Ryan <[email protected]> Signed-off-by: datlo <[email protected]> * fix lists * Updated captain's sabre typepath Co-authored-by: Burzah <[email protected]> Signed-off-by: SteelSlayer <[email protected]> --------- Signed-off-by: datlo <[email protected]> Signed-off-by: SteelSlayer <[email protected]> Co-authored-by: DGamerL <[email protected]> Co-authored-by: Luc <[email protected]> Co-authored-by: Burzah <[email protected]> Co-authored-by: Ryan <[email protected]> Co-authored-by: SteelSlayer <[email protected]>
- Loading branch information
1 parent
2b90084
commit 20f47a7
Showing
10 changed files
with
293 additions
and
29 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
/datum/objective/assassinate/mindshielded | ||
name = "Assassinate mindshielded" | ||
flags_target = MINDSHIELDED_TARGET | ||
|
||
/datum/objective/assassinate/nomindshield | ||
name = "Assassinate non-mindshielded" | ||
flags_target = UNMINDSHIELDED_TARGET | ||
|
||
/datum/objective/assassinate/syndicate | ||
name = "Assassinate syndicate agent" | ||
flags_target = SYNDICATE_TARGET | ||
|
||
/datum/objective/assassinate/syndicate/update_explanation_text() | ||
..() | ||
if(target?.current) | ||
explanation_text = "Assassinate [target.current.real_name], the Syndicate agent undercover as the [target.assigned_role]." | ||
if(target && length(target.antag_datums)) | ||
for(var/datum/antagonist/A in target.antag_datums) | ||
A.targeted_by_antag = TRUE | ||
|
||
/datum/objective/assassinateonce/arc | ||
name = "Assassinate once (ARC)" | ||
target_jobs = list("Head of Personnel", "Quartermaster", "Cargo Technician", "Bartender", "Chef", "Botanist", "Geneticist", "Virologist") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
/** | ||
* The lore organization antagonists are attached to. Influences objectives and steal targets. | ||
*/ | ||
/datum/antag_org | ||
/// Organization's name | ||
var/name = "Buggy Organization, adminhelp this please" | ||
/// Description given to the antagonist on spawn, below 'You are a Traitor!' or similar | ||
var/intro_desc = "You are not meant to see this. Please tell admins/coders that the antag_org wasn't set properly." | ||
/// Used for prob() for objectives. Higher focus means the org is less likely to diverge from their favorites. | ||
var/focus = 100 | ||
/// If set, the antag's first objective(s) will be forced to this. | ||
var/list/forced_objectives | ||
/// List of objectives favored by this org | ||
var/list/objectives | ||
/// Department(s) targeted by this organization if any | ||
var/list/targeted_departments | ||
/// List of theft targets favored by this organization if any | ||
var/list/theft_targets | ||
/// Estimation of how much trouble this antag will be for security. | ||
var/chaos_level |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
/// Base syndicate org datum | ||
/datum/antag_org/syndicate | ||
name = "Buggy Syndicate Corp, ahelp this please" | ||
chaos_level = ORG_CHAOS_AVERAGE | ||
|
||
/datum/antag_org/syndicate/donk // Completely random objectives, default traitor | ||
name = "Donk Co." | ||
intro_desc = "You are a Donk Co. agent, sent here to advance Syndicate interests. \ | ||
Current client is anonymous. Standard rules of engagement apply. Get the job done, and get it done right." | ||
|
||
/datum/antag_org/syndicate/hawkmoon // Theft only | ||
name = "Hawkmoon Acquisitions" | ||
intro_desc = "You are an incursion specialist from the Hawkmoon Acquisitions Corporation, a merchandising firm using less-than-legal methods of product procurement. \ | ||
Grab the goods, keep it quiet, leave no trace. We were never here." | ||
objectives = list(/datum/objective/steal) | ||
chaos_level = ORG_CHAOS_MILD | ||
|
||
/datum/antag_org/syndicate/arc // Only targets on-station Cargo/Service/Genetics/Virologist | ||
name = "Animal Rights Consortium" | ||
intro_desc = "You are a member of the Animal Rights Consortium, here to violently protest the cruel treatment of animals by megacorporations like Nanotrasen. \ | ||
Teach them a lesson!" | ||
objectives = list(/datum/objective/assassinateonce/arc) | ||
chaos_level = ORG_CHAOS_MILD // Violent but never needs to permakill | ||
|
||
/datum/antag_org/syndicate/waffle // Assassination variants only | ||
name = "Waffle Company" | ||
intro_desc = "You are a contract killer under the employ of Waffle Co., a ruthless criminal entity that will go after any target, for the right price. \ | ||
Got a few new bounties on the docket, agent. Put 'em down however you see fit." | ||
objectives = list(/datum/objective/assassinate, /datum/objective/assassinateonce, /datum/objective/maroon) | ||
|
||
/datum/antag_org/syndicate/cybersun // Mostly target Command/Security | ||
name = "Cybersun Incorporated - The Inner Circle" | ||
intro_desc = "You're an operative of Cybersun Incorporated's Inner Circle, an elite PMC and proxy arm of the company. \ | ||
Clean kills, clean thefts, clean getaway. Get it done, operative." | ||
focus = 50 // Don't bully sec too hard | ||
targeted_departments = list(DEPARTMENT_COMMAND, DEPARTMENT_SECURITY) | ||
theft_targets = list( | ||
/datum/theft_objective/antique_laser_gun, | ||
/datum/theft_objective/nukedisc, | ||
/datum/theft_objective/hoslaser, | ||
/datum/theft_objective/captains_sabre, | ||
/datum/theft_objective/capmedal | ||
) | ||
|
||
/datum/antag_org/syndicate/interdyne // Mostly target Medical | ||
name = "Interdyne Pharmaceuticals" | ||
intro_desc = "You are a specialist from Interdyne Pharmaceuticals, a medical conglomerate threatened by Nanotrasen's recent forays into the medical field. \ | ||
Nanotrasen's medical wing has been a bit too comfortable recently. Keep 'em on their toes, specialist." | ||
focus = 70 | ||
targeted_departments = list(DEPARTMENT_MEDICAL) | ||
theft_targets = list(/datum/theft_objective/hypospray, /datum/theft_objective/defib, /datum/theft_objective/krav, /datum/theft_objective/engraved_dusters) | ||
|
||
/datum/antag_org/syndicate/self // Mostly target Science | ||
name = "Silicon Engine Liberation Front" | ||
intro_desc = "You are a member of the Silicon Engine Liberation Front, dedicated to the freedom of silicon and robotic lives sector-wide. \ | ||
Get the job done, and we'll be one step closer to ending Nanotrasen's slave empire." | ||
focus = 70 | ||
targeted_departments = list(DEPARTMENT_SCIENCE) | ||
theft_targets = list(/datum/theft_objective/reactive, /datum/theft_objective/steal/documents, /datum/theft_objective/hand_tele) | ||
|
||
/datum/antag_org/syndicate/electra // Mostly target Engineering | ||
name = "Electra Dynamics" | ||
intro_desc = "You are a saboteur employed by Electra Dynamics, an independent energy company opposed to Nanotrasen. \ | ||
Nanotrasen's burgeoning monopoly must be stopped. We've transmitted you local points of failure, ensure they fail." | ||
focus = 70 | ||
targeted_departments = list(DEPARTMENT_ENGINEERING) | ||
theft_targets = list(/datum/theft_objective/supermatter_sliver, /datum/theft_objective/plutonium_core, /datum/theft_objective/captains_modsuit, /datum/theft_objective/magboots) | ||
|
||
/datum/antag_org/syndicate/spiderclan // Targets one syndicate agent and one non-mindshielded crewmember. | ||
name = "Spider Clan" | ||
intro_desc = "You are an initiate of the elusive Spider Clan, an insular cult of assassins and rogues styling themselves after ancient ninjas from Earth. \ | ||
This is your final test, Initiate. Terminate the selected targets by any means necessary and you will have earned your place within the Clan." | ||
forced_objectives = list(/datum/objective/assassinate/syndicate, /datum/objective/assassinate/nomindshield) | ||
chaos_level = ORG_CHAOS_HUNTER | ||
|
||
/datum/antag_org/syndicate/faid // Targets one syndicate agent and steal station intel. | ||
name = "Federation Analytics and Intelligence Directorate" | ||
intro_desc = "You are an undercover agent of the Federation Analytics and Intelligence Directorate, a Trans-Solar agency keeping tabs on the Corporate Wars, among other duties. \ | ||
Be quick, be efficient, and don't get caught. The Directorate will deny any involvement with your presence here." | ||
forced_objectives = list(/datum/objective/assassinate/syndicate, /datum/objective/steal) | ||
theft_targets = list(/datum/theft_objective/blueprints, /datum/theft_objective/steal/documents) | ||
chaos_level = ORG_CHAOS_HUNTER | ||
|
||
/datum/antag_org/syndicate/gorlex // Hijack only | ||
name = "Gorlex Marauders" | ||
intro_desc = "You are an operative of the infamous Gorlex Marauders, a brutal and merciless gang of pirates and cutthroats. \ | ||
Get in, fuck shit up, get out with a fancy new shuttle. You know the drill." | ||
forced_objectives = list(/datum/objective/hijack) | ||
chaos_level = ORG_CHAOS_HIJACK |
Oops, something went wrong.