Merge pull request #4986 from Ikarrus/gangfixes

Gang Mode fixes and improvements
This commit is contained in:
Cheridan
2014-09-29 10:33:17 -05:00
7 changed files with 39 additions and 27 deletions
+12 -2
View File
@@ -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.
@@ -264,6 +262,17 @@
else
text += "."
text += " <a href='?src=\ref[src];revolution=reequip'>Reequip</a> (gives traitor uplink)."
if (objectives.len==0)
text += "<br>Objectives are empty! <a href='?src=\ref[src];revolution=autoobjectives'>Set to kill all heads</a>."
else if(isloyal(current))
text += "head|<b>LOYAL</b>|employee|<a href='?src=\ref[src];revolution=headrev'>headrev</a>|rev"
else if (src in ticker.mode.revolutionaries)
text += "head|loyal|<a href='?src=\ref[src];revolution=clear'>employee</a>|<a href='?src=\ref[src];revolution=headrev'>headrev</a>|<b>REV</b>"
else
text += "head|loyal|<b>EMPLOYEE</b>|<a href='?src=\ref[src];revolution=headrev'>headrev</a>|<a href='?src=\ref[src];revolution=rev'>rev</a>"
sections["revolution"] = text
/** GANG ***/
text = "gang"
if (ticker.mode.config_tag=="gang")
@@ -286,6 +295,7 @@
if (objectives.len==0)
text += "<br>Objectives are empty! <a href='?src=\ref[src];gang=autoobjective'>Set to kill all rival gang leaders</a>."
else if (src in ticker.mode.B_bosses)
text += "loyal|<a href='?src=\ref[src];gang=clear'>none</a>|(A) <a href='?src=\ref[src];gang=agang'>gangster</a> <a href='?src=\ref[src];gang=aboss'>boss</a>|<B>(B)</B> <a href='?src=\ref[src];gang=bgang'>gangster</a> <b>BOSS</b>"
text += "<br>Flash & Recaller: <a href='?src=\ref[src];gang=equip'>give</a>"
+8 -7
View File
@@ -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()
@@ -147,7 +147,8 @@
if (!where)
mob << "Your Syndicate benefactors were unfortunately unable to get you a flash."
else
mob << "The <b>flash</b> 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 <b>flash</b> in your [where] will help you to persuade the crew to work for you."
mob << "<span class='userdanger'>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.</span>"
. += 1
mob.update_icons()
@@ -191,7 +192,7 @@
else
B_gangsters += gangster_mind
gangster_mind.current << "<FONT size=3 color=red><B>You are now a member of the [gang=="A" ? gang_name("A") : gang_name("B")] Gang!</B></FONT>"
gangster_mind.current << "<font color='red'>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.</font>"
gangster_mind.current << "<font color='red'>Help your bosses take over the station by defeating their rivals. You can identify your bosses by the brown \"B\" icons, but <B>only they know who the other members of your gang are!</B> Work with your boss to avoid attacking your own gang.</font>"
gangster_mind.current.attack_log += "\[[time_stamp()]\] <font color='red'>Has been converted to the [gang=="A" ? "[gang_name("A")] Gang (A)" : "[gang_name("B")] Gang (B)"]!</font>"
gangster_mind.special_role = "[gang=="A" ? "[gang_name("A")] Gang (A)" : "[gang_name("B")] Gang (B)"]"
update_gang_icons_added(gangster_mind,gang)
@@ -379,7 +380,7 @@
/datum/game_mode/gang/declare_completion()
if(!finished)
world << "<FONT size=3 color=red><B>The station was [station_was_nuked ? "destroyed!" : "evacuated before either gang could claim it!"]</B></FONT>"
if(finished == "Draw")
else if(finished == "Draw")
world << "<FONT size=3 color=red><B>All gang bosses have been killed or exiled!</B></FONT>"
else
world << "<FONT size=3 color=red><B>The [finished=="A" ? gang_name("A") : gang_name("B")] Gang defeated their rivals!</B></FONT>"
@@ -413,7 +414,7 @@
if(A_bosses.len || A_gangsters.len)
if(winner == "A" || winner == "B")
world << "<br><b>The [gang_name("A")] Gang was [winner=="A" ? "<font color=green>victorious</font>" : "<font color=red>defeated</font>"] with [round((num_ganga/num_survivors)*100, 0.1)]% strength.</b>"
world << "<br><b>The [gang_name("A")] Gang was [winner=="A" ? "<font color=green>victorious</font>" : "<font color=red>defeated</font>"] with [round((num_ganga/num_survivors)*100, 0.1)]% influence.</b>"
world << "<br><font size=2><b>The [gang_name("A")] Gang bosses were:</b></font>"
gang_membership_report(A_bosses)
world << "<br><font size=2><b>The [gang_name("A")] Gangsters were:</b></font>"
@@ -421,7 +422,7 @@
if(B_bosses.len || B_gangsters.len)
if(winner == "A" || winner == "B")
world << "<br><b>The [gang_name("B")] Gang was [winner=="B" ? "<font color=green>victorious</font>" : "<font color=red>defeated</font>"] with [round((num_gangb/num_survivors)*100, 0.1)]% strength</b>"
world << "<br><b>The [gang_name("B")] Gang was [winner=="B" ? "<font color=green>victorious</font>" : "<font color=red>defeated</font>"] with [round((num_gangb/num_survivors)*100, 0.1)]% influence.</b>"
world << "<br><font size=2><b>The [gang_name("B")] Gang bosses were:</b></font>"
gang_membership_report(B_bosses)
world << "<br><font size=2><b>The [gang_name("B")] Gangsters were:</b></font>"
@@ -443,6 +444,6 @@
else
text += "body destroyed"
text += ")"
text += "<br>"
text += "<br><br>"
world << text
+1 -1
View File
@@ -227,7 +227,7 @@
/datum/intercept_text/proc/build_gang(datum/mind/correct_person)
src.text += "<BR><BR>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)
+13 -15
View File
@@ -78,23 +78,21 @@
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)
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 << "<span class='warning'>This mind seems resistant to the flash!</span>"
else
user << "<span class='warning'>They must be conscious before you can convert them!</span>"
@@ -31,6 +31,8 @@
loc << "<span class='info'>\icon[src]Comm arrays accessed. Broadcasting recall signal...</span>"
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 << "<span class='info'>\icon[src]No response recieved. Emergency shuttle cannot be recalled at this time.</span>"
return
+2 -2
View File
@@ -1296,9 +1296,9 @@
//Job + antagonist
if(M.mind)
special_role_description = "Role: <b>[M.mind.assigned_role]</b>; Antagonist: <font color='red'><b>[M.mind.special_role]</b></font>; Has been rev: [(M.mind.has_been_rev)?"Yes":"No"]"
special_role_description = "Role: <b>[M.mind.assigned_role]</b>; Antagonist: <font color='red'><b>[M.mind.special_role]</b></font>"
else
special_role_description = "Role: <i>Mind datum missing</i> Antagonist: <i>Mind datum missing</i>; Has been rev: <i>Mind datum missing</i>;"
special_role_description = "Role: <i>Mind datum missing</i> Antagonist: <i>Mind datum missing</i>"
//Health
if(isliving(M))
+1
View File
@@ -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