From 65e38bdfbc196bb7ac7fb9216d8e944138693ab8 Mon Sep 17 00:00:00 2001 From: ikarrus Date: Fri, 26 Sep 2014 19:27:13 -0600 Subject: [PATCH 1/3] 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 From a3057621628ab80dd95a3bf8770be57bcdd4964e Mon Sep 17 00:00:00 2001 From: ikarrus Date: Fri, 26 Sep 2014 19:36:18 -0600 Subject: [PATCH 2/3] Made the text explaining membership visibility more visible --- code/game/gamemodes/gang/gang.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/gang/gang.dm b/code/game/gamemodes/gang/gang.dm index 7dcab5f4600..0ff21b4c6b8 100644 --- a/code/game/gamemodes/gang/gang.dm +++ b/code/game/gamemodes/gang/gang.dm @@ -186,7 +186,7 @@ else B_gangsters += gangster_mind gangster_mind.current << "You are now a member of the [gang=="A" ? gang_name("A") : gang_name("B")] Gang!" - gangster_mind.current << "Help your bosses take over the station by defeating their rivals. You can identify your bosses by the brown \"B\" icons, but only they know who is in your gang! Work with your boss to avoid attacking your own gang." + gangster_mind.current << "Help your bosses take over the station by defeating their rivals. You can identify your bosses by the brown \"B\" icons, but only they know who the other members of your gang are! Work with your boss to avoid attacking your own gang." gangster_mind.current.attack_log += "\[[time_stamp()]\] Has been converted to the [gang=="A" ? "[gang_name("A")] Gang (A)" : "[gang_name("B")] Gang (B)"]!" gangster_mind.special_role = "[gang=="A" ? "[gang_name("A")] Gang (A)" : "[gang_name("B")] Gang (B)"]" update_gang_icons_added(gangster_mind,gang) From 131b5ee0ec35b83094f6510f4c8779f73926b6bd Mon Sep 17 00:00:00 2001 From: ikarrus Date: Fri, 26 Sep 2014 19:53:09 -0600 Subject: [PATCH 3/3] - Removes the useless has_been_rev var - Reworded intercept report to discourage security from inadvertently causing a gang to win. - Recaller use is logged - Made the text explaining membership visibility more visible --- code/datums/mind.dm | 2 -- code/game/gamemodes/intercept_report.dm | 2 +- code/game/objects/items/devices/flash.dm | 1 - code/game/objects/items/devices/recaller.dm | 2 ++ code/modules/admin/topic.dm | 4 ++-- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 29635eae655..b8efb6fa02d 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -46,8 +46,6 @@ var/list/datum/objective/objectives = list() var/list/datum/objective/special_verbs = list() - var/has_been_rev = 0//Tracks if this mind has been a rev or not - var/list/cult_words = list() var/list/spell_list = list() // Wizard mode & "Give Spell" badmin button. diff --git a/code/game/gamemodes/intercept_report.dm b/code/game/gamemodes/intercept_report.dm index 2be2b45d984..93ec09810de 100644 --- a/code/game/gamemodes/intercept_report.dm +++ b/code/game/gamemodes/intercept_report.dm @@ -227,7 +227,7 @@ /datum/intercept_text/proc/build_gang(datum/mind/correct_person) src.text += "

Syndicate forces may be supplying opposing criminal organizations within your sector in an attempt at destabilizing our operations." src.text += "Ensure law and order is maintained on the station and be on the lookout for violent confrontations between station factions." - src.text += "Forced labor on the mining asteroid is recommended for anyone convicted of heading a criminal organization." + src.text += "Central Command retains an interest in any criminal leaders captured by station security. The execution or exile of these persons are ill-advised." /datum/intercept_text/proc/build_wizard(datum/mind/correct_person) var/SWF_desc = pick(SWF_names) diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index 17eb72e4114..ae0c9ab83c2 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -81,7 +81,6 @@ var/resisted 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) diff --git a/code/game/objects/items/devices/recaller.dm b/code/game/objects/items/devices/recaller.dm index 72ec1e64b08..efe0ae00066 100644 --- a/code/game/objects/items/devices/recaller.dm +++ b/code/game/objects/items/devices/recaller.dm @@ -31,6 +31,8 @@ loc << "\icon[src]Comm arrays accessed. Broadcasting recall signal..." sleep(rand(10,30)) recalling = 0 + log_game("[key_name(user)] has recalled the shuttle with a recaller.") + message_admins("[key_name_admin(user)] has recalled the shuttle with a recaller.", 1) if(!cancel_call_proc(user)) loc << "\icon[src]No response recieved. Emergency shuttle cannot be recalled at this time." return diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 54ca285ed53..6275aceffeb 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1296,9 +1296,9 @@ //Job + antagonist if(M.mind) - special_role_description = "Role: [M.mind.assigned_role]; Antagonist: [M.mind.special_role]; Has been rev: [(M.mind.has_been_rev)?"Yes":"No"]" + special_role_description = "Role: [M.mind.assigned_role]; Antagonist: [M.mind.special_role]" else - special_role_description = "Role: Mind datum missing Antagonist: Mind datum missing; Has been rev: Mind datum missing;" + special_role_description = "Role: Mind datum missing Antagonist: Mind datum missing" //Health if(isliving(M))