From 65e38bdfbc196bb7ac7fb9216d8e944138693ab8 Mon Sep 17 00:00:00 2001 From: ikarrus Date: Fri, 26 Sep 2014 19:27:13 -0600 Subject: [PATCH] Gang Mode fixes and improvements The first of many. Most caused by horrible merge-related accidents. - Gang converts are no longer revolutionaries - Revolution controls show up in the TP again - Gang added to game_options.txt defaulting to 0 - Clarified some help text strings --- code/datums/mind.dm | 12 ++++++++++ code/game/gamemodes/gang/gang.dm | 13 ++++++----- code/game/objects/items/devices/flash.dm | 29 ++++++++++++------------ config/game_options.txt | 1 + 4 files changed, 34 insertions(+), 21 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 58a3b600d7a..29635eae655 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -264,6 +264,17 @@ else text += "." + text += " Reequip (gives traitor uplink)." + if (objectives.len==0) + text += "
Objectives are empty! Set to kill all heads." + else if(isloyal(current)) + text += "head|LOYAL|employee|headrev|rev" + else if (src in ticker.mode.revolutionaries) + text += "head|loyal|employee|headrev|REV" + else + text += "head|loyal|EMPLOYEE|headrev|rev" + sections["revolution"] = text + /** GANG ***/ text = "gang" if (ticker.mode.config_tag=="gang") @@ -286,6 +297,7 @@ if (objectives.len==0) text += "
Objectives are empty! Set to kill all rival gang leaders." + else if (src in ticker.mode.B_bosses) text += "loyal|none|(A) gangster boss|(B) gangster BOSS" text += "
Flash & Recaller: give" diff --git a/code/game/gamemodes/gang/gang.dm b/code/game/gamemodes/gang/gang.dm index 11fa69970ec..7dcab5f4600 100644 --- a/code/game/gamemodes/gang/gang.dm +++ b/code/game/gamemodes/gang/gang.dm @@ -38,7 +38,7 @@ if(player.assigned_role == job) antag_candidates -= player - if(antag_candidates.len > 2) + if(antag_candidates.len >= 2) assign_bosses() if(antag_candidates.len > 20) assign_bosses() @@ -141,7 +141,8 @@ if (!where) mob << "Your Syndicate benefactors were unfortunately unable to get you a flash." else - mob << "The flash in your [where] will help you to persuade the crew to work for you. Keep in mind that your underlings can only identify their bosses, but not each other." + mob << "The flash in your [where] will help you to persuade the crew to work for you." + mob << "Keep in mind that your underlings can only identify their bosses, but not each other. You must coordinate your gang effectively to beat out the competition." . += 1 mob.update_icons() @@ -373,7 +374,7 @@ /datum/game_mode/gang/declare_completion() if(!finished) world << "The station was [station_was_nuked ? "destroyed!" : "evacuated before either gang could claim it!"]" - if(finished == "Draw") + else if(finished == "Draw") world << "All gang bosses have been killed or exiled!" else world << "The [finished=="A" ? gang_name("A") : gang_name("B")] Gang defeated their rivals!" @@ -407,7 +408,7 @@ if(A_bosses.len || A_gangsters.len) if(winner == "A" || winner == "B") - world << "
The [gang_name("A")] Gang was [winner=="A" ? "victorious" : "defeated"] with [round((num_ganga/num_survivors)*100, 0.1)]% strength." + world << "
The [gang_name("A")] Gang was [winner=="A" ? "victorious" : "defeated"] with [round((num_ganga/num_survivors)*100, 0.1)]% influence." world << "
The [gang_name("A")] Gang bosses were:" gang_membership_report(A_bosses) world << "
The [gang_name("A")] Gangsters were:" @@ -415,7 +416,7 @@ if(B_bosses.len || B_gangsters.len) if(winner == "A" || winner == "B") - world << "
The [gang_name("B")] Gang was [winner=="B" ? "victorious" : "defeated"] with [round((num_gangb/num_survivors)*100, 0.1)]% strength" + world << "
The [gang_name("B")] Gang was [winner=="B" ? "victorious" : "defeated"] with [round((num_gangb/num_survivors)*100, 0.1)]% influence." world << "
The [gang_name("B")] Gang bosses were:" gang_membership_report(B_bosses) world << "
The [gang_name("B")] Gangsters were:" @@ -437,6 +438,6 @@ else text += "body destroyed" text += ")" - text += "
" + text += "

" world << text diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index f418c40a72b..17eb72e4114 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -78,23 +78,22 @@ if(M.client) if(M.stat == CONSCIOUS) M.mind_initialize() //give them a mind datum if they don't have one. - M.mind.has_been_rev = 1 var/resisted - if(isloyal(M)) - resisted = 1 - else if(user.mind in ticker.mode.head_revolutionaries) - if(!ticker.mode.add_revolutionary(M.mind)) - resisted = 1 - else if(user.mind in ticker.mode.A_bosses) - if(!ticker.mode.add_gangster(M.mind,"A")) - resisted = 1 - else if(user.mind in ticker.mode.B_bosses) - if(!ticker.mode.add_gangster(M.mind,"B")) - resisted = 1 - if(!resisted) - M.mind.has_been_rev = 1 - ticker.mode.add_revolutionary(M.mind) + if(!isloyal(M)) + if(user.mind in ticker.mode.head_revolutionaries) + M.mind.has_been_rev = 1 + if(!ticker.mode.add_revolutionary(M.mind)) + resisted = 1 + if(user.mind in ticker.mode.A_bosses) + if(!ticker.mode.add_gangster(M.mind,"A")) + resisted = 1 + if(user.mind in ticker.mode.B_bosses) + if(!ticker.mode.add_gangster(M.mind,"B")) + resisted = 1 else + resisted = 1 + + if(resisted) user << "This mind seems resistant to the flash!" else user << "They must be conscious before you can convert them!" diff --git a/config/game_options.txt b/config/game_options.txt index ddcb4042cf4..107dceb009f 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -87,6 +87,7 @@ PROBABILITY TRAITORCHAN 4 PROBABILITY DOUBLE_AGENTS 3 PROBABILITY NUCLEAR 2 PROBABILITY REVOLUTION 2 +PROBABILITY GANG 0 PROBABILITY CULT 2 PROBABILITY CHANGELING 2 PROBABILITY WIZARD 4