Merge pull request #9193 from Ikarrus/gang5.1

Gang Update 5.1
This commit is contained in:
Jordie
2015-04-28 23:46:27 +10:00
7 changed files with 62 additions and 42 deletions
+1
View File
@@ -139,6 +139,7 @@ var/gang_B_name = null
gang_A_name = pick(gang_name_pool)
gang_name_pool -= gang_A_name
gang_B_name = pick(gang_name_pool)
gang_name_pool -= gang_B_name
if(gang == "A")
return gang_A_name
+13 -12
View File
@@ -26,7 +26,7 @@
recommended_enemies = 2
enemy_minimum_age = 14
var/finished = 0
var/goal_scalar = 0.6 //Goal = Total territories x goal_scalar
var/goal_scalar = 0.5 //Goal = Total territories x goal_scalar
///////////////////////////
//Announces the game type//
@@ -94,7 +94,7 @@
/datum/game_mode/proc/forge_gang_objectives(var/datum/mind/boss_mind)
var/datum/objective/rival_obj = new
rival_obj.owner = boss_mind
rival_obj.explanation_text = "Claim more than 60% the station before the [(boss_mind in A_bosses) ? gang_name("B") : gang_name("A")] Gang does."
rival_obj.explanation_text = "Claim more than 50% the station before the [(boss_mind in A_bosses) ? gang_name("B") : gang_name("A")] Gang does."
boss_mind.objectives += rival_obj
@@ -138,7 +138,7 @@
else
gangtool.register_device(mob)
mob << "The <b>Gangtool</b> in your [where] will allow you to use your influence to purchase items and prevent the station from evacuating before you can take over. Use it to recall the emergency shuttle from anywhere on the station."
mob << "You can also promote your gang members to lieutenant by giving them an unregistered gangtool. Lieutenants cannot be deconverted and are able to use recruitment pens and gangtools."
mob << "You can also promote your gang members to <b>lieutenant</b> by giving them an unregistered gangtool. Lieutenants cannot be deconverted and are able to use recruitment pens and gangtools."
. += 1
var/where2 = mob.equip_in_one_of_slots(T, slots)
@@ -152,7 +152,7 @@
if (!where3)
mob << "Your Syndicate benefactors were unfortunately unable to get you a territory spraycan to start."
else
mob << "The <b>territory spraycan</b> in your [where3] can be used to claim areas of the station for your gang. The more territory your gang controls, the more influence you get."
mob << "The <b>territory spraycan</b> in your [where3] can be used to claim areas of the station for your gang. The more territory your gang controls, the more influence you get. Distribute these to your gangsters to grow your influence faster."
. += 1
mob.update_icons()
@@ -194,8 +194,8 @@
carbon_mob.flash_eyes(1, 1)
gangster_mind.current.Stun(5)
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 claiming territory with the special spraycans they provide. Simply spray on any unclaimed area of the station.</font>"
gangster_mind.current << "<font color='red'>You can identify your bosses by their brown \"G\" icon.</font>"
gangster_mind.current << "<font color='red'>Help your bosses take over the station by claiming territory with <b>special spraycans</b> only they can provide. Simply spray on any unclaimed area of the station.</font>"
gangster_mind.current << "<font color='red'>You can identify your bosses by their <b>red \[G\] icon</b>.</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)
@@ -285,7 +285,7 @@
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>"
else
world << "<FONT size=3 color=red><B>The [finished=="A" ? gang_name("A") : gang_name("B")] Gang has taken over the station!</B></FONT>"
world << "<FONT size=3 color=red><B>The [finished=="A" ? gang_name("A") : gang_name("B")] Gang has claimed over [round(100*goal_scalar,1)]% of the station and has assumed control!</B></FONT>"
..()
return 1
@@ -343,11 +343,12 @@
/datum/gang_points
var/A = 30
var/B = 30
var/next_point_time = 0
var/next_point_interval = 1800
var/next_point_time
/datum/gang_points/proc/start()
next_point_time = world.time + 3000
spawn(3000)
next_point_time = world.time + next_point_interval
spawn(next_point_interval)
income()
/datum/gang_points/proc/income()
@@ -375,7 +376,7 @@
//Calculate and report influence growth
ticker.mode.message_gangtools(ticker.mode.A_tools,"<b>[gang_name("A")] Gang Status Report:</b>")
var/A_new = min(100,A + 15 + min(ticker.mode.A_territory.len, 15) + round(max(ticker.mode.A_territory.len - 15, 0) * 0.5,1))
var/A_new = min(100,A + 15 + ticker.mode.A_territory.len)
var/A_message = ""
if(A_new != A)
A_message += "Your gang has gained <b>[A_new - A] Influence</b> for holding on to [ticker.mode.A_territory.len] territories."
@@ -385,7 +386,7 @@
ticker.mode.message_gangtools(ticker.mode.A_tools,A_message,0)
ticker.mode.message_gangtools(ticker.mode.B_tools,"<b>[gang_name("B")] Gang Status Report:</b>")
var/B_new = min(100,B + 15 + min(ticker.mode.B_territory.len, 15) + round(max(ticker.mode.B_territory.len - 15, 0) * 0.5,1))
var/B_new = min(100,B + 15 + ticker.mode.B_territory.len)
var/B_message = ""
if(B_new != B)
B_message += "Your gang has gained <b>[B_new - B] Influence</b> for holding on to [ticker.mode.B_territory.len] territories."
+1 -1
View File
@@ -158,5 +158,5 @@
desc = "A suspicious-looking spraycan modified to use special paint used by gangsters to mark territory."
icon_state = "spraycan_gang_cap"
gang = 1
uses = 15
uses = 20
instant = -1
+36 -27
View File
@@ -12,7 +12,7 @@
var/gang //Which gang uses this?
var/boss = 1 //If it has the power to promote gang members
var/recalling = 0
var/promotion_cost = 20
var/promotions = 0
/obj/item/device/gangtool/New() //Initialize supply point income if it hasn't already been started
if(!ticker.mode.gang_points)
@@ -46,38 +46,45 @@
dat += "Time until Influence grows: <B>[(points >= 100) ? ("--:--") : (time2text(ticker.mode.gang_points.next_point_time - world.time, "mm:ss"))]</B><br>"
dat += "<B>Purchase Items:</B><br>"
dat += "(10 Influence) "
if(points >= 10)
dat += "(10 Influence) <a href='?src=\ref[src];purchase=spraycan'>Territory Spraycan</a><br>"
dat += "<a href='?src=\ref[src];purchase=spraycan'><b>Territory Spraycan</b></a><br>"
else
dat += "(10 Influence) Territory Spraycan<br>"
dat += "<b>Territory Spraycan</b><br>"
dat += "(10 Influence) "
if(points >= 10)
dat += "<a href='?src=\ref[src];purchase=switchblade'>Switchblade</a><br>"
else
dat += "Switchblade<br>"
dat += "(25 Influence) "
if(points >= 25)
dat += "(25 Influence) <a href='?src=\ref[src];purchase=pistol'>10mm Pistol</a><br>"
dat += "<a href='?src=\ref[src];purchase=pistol'>10mm Pistol</a><br>"
else
dat += "(25 Influence) 10mm Pistol<br>"
dat += "10mm Pistol<br>"
dat += "(10 Influence) "
if(points >= 10)
dat += "(10 Influence) <a href='?src=\ref[src];purchase=ammo'>10mm Ammo</a><br>"
dat += "<a href='?src=\ref[src];purchase=ammo'>10mm Ammo</a><br>"
else
dat += "(10 Influence) 10mm Ammo<br>"
if(points >= 10)
dat += "(10 Influence) <a href='?src=\ref[src];purchase=switchblade'>Switchblade</a><br>"
else
dat += "(10 Influence) Switchblade<br>"
dat += "10mm Ammo<br>"
dat += "(50 Influence) "
if(points >= 50)
dat += "(50 Influence) <a href='?src=\ref[src];purchase=pen'>Recruitment Pen</a><br>"
dat += "<a href='?src=\ref[src];purchase=pen'>Recruitment Pen</a><br>"
else
dat += "(50 Influence) Recruitment Pen<br>"
dat += "Recruitment Pen<br>"
if(boss)
if(promotion_cost > 100)
dat += "(Maximum Reached) Promote a Gangster<br>"
else if(points >= promotion_cost)
dat += "([promotion_cost] Influence) <a href='?src=\ref[src];purchase=gangtool'>Promote a Gangster</a><br>"
if(promotions >= 3)
dat += "(Out of stock) Promote a Gangster<br>"
else
dat += "([promotion_cost] Influence) Promote a Gangster<br>"
dat += "([(promotions*20)+10] Influence, [3-promotions] left) "
if(points >= (promotions*20)+10)
dat += "<a href='?src=\ref[src];purchase=gangtool'>Promote a Gangster</a><br>"
else
dat += "Promote a Gangster<br>"
dat += "<br>"
dat += "<a href='?src=\ref[src];choice=refresh'>Refresh</a><br>"
@@ -100,6 +107,10 @@
if(points >= 10)
item_type = /obj/item/toy/crayon/spraycan/gang
points = 10
if("switchblade")
if(points >= 10)
item_type = /obj/item/weapon/switchblade
points = 10
if("pistol")
if(points >= 25)
item_type = /obj/item/weapon/gun/projectile/automatic/pistol
@@ -108,19 +119,15 @@
if(points >= 10)
item_type = /obj/item/ammo_box/magazine/m10mm
points = 10
if("switchblade")
if(points >= 10)
item_type = /obj/item/weapon/switchblade
points = 10
if("pen")
if(points >= 50)
item_type = /obj/item/weapon/pen/gang
points = 50
if("gangtool")
if(points >= promotion_cost)
if((promotions < 3) && (points >= (promotions*20)+10))
item_type = /obj/item/device/gangtool/lt
points = promotion_cost
promotion_cost += 30
points = (promotions*20)+10
promotions++
if(item_type)
if(gang == "A")
@@ -167,8 +174,10 @@
if(promoted)
ticker.mode.message_gangtools(((gang=="A")? ticker.mode.A_tools : ticker.mode.B_tools), "[user] has been promoted to Lieutenant.")
user << "<FONT size=3 color=red><B>You have been promoted to Lieutenant!</B></FONT>"
ticker.mode.forge_gang_objectives(user.mind)
ticker.mode.greet_gang(user.mind,0)
user << "The <b>Gangtool</b> you registered will allow you to use your gang's influence to purchase items and prevent the station from evacuating before your gang can take over. Use it to recall the emergency shuttle from anywhere on the station."
user << "You may also now use recruitment pens to grow your gang membership. Use them on unsuspecting crew members to recruit them."
user << "You may also now use <b>recruitment pens</b> to grow your gang membership. Use them on unsuspecting crew members to recruit them."
if(!gang)
usr << "<span class='warning'>ACCESS DENIED: Unauthorized user.</span>"
+2 -2
View File
@@ -381,7 +381,7 @@
dat += "</table>"
if(ticker.mode.A_bosses.len || ticker.mode.A_gang.len)
dat += "<br><table cellspacing=5><tr><td><B>[gang_name("A")] Gang: [(ticker.mode.gang_points ? "[ticker.mode.gang_points.A] Influence, " : "")][round((ticker.mode.A_territory.len/start_state.num_territories)*100, 0.1)]% Control</B></td><td></td></tr>"
dat += "<br><table cellspacing=5><tr><td><B>[gang_name("A")] Gang: [(ticker.mode.gang_points ? "[ticker.mode.gang_points.A] Influence, " : "")][round((ticker.mode.A_territory.len/start_state.num_territories)*100, 1)]% Control</B></td><td></td></tr>"
for(var/datum/mind/N in ticker.mode.A_bosses)
var/mob/M = N.current
if(!M)
@@ -397,7 +397,7 @@
dat += "</table>"
if(ticker.mode.B_bosses.len || ticker.mode.B_gang.len)
dat += "<br><table cellspacing=5><tr><td><B>[gang_name("B")] Gang: [(ticker.mode.gang_points ? "[ticker.mode.gang_points.B] Influence, " : "")][round((ticker.mode.B_territory.len/start_state.num_territories)*100, 0.1)]% Control</B></td><td></td></tr>"
dat += "<br><table cellspacing=5><tr><td><B>[gang_name("B")] Gang: [(ticker.mode.gang_points ? "[ticker.mode.gang_points.B] Influence, " : "")][round((ticker.mode.B_territory.len/start_state.num_territories)*100, 1)]% Control</B></td><td></td></tr>"
for(var/datum/mind/N in ticker.mode.B_bosses)
var/mob/M = N.current
if(!M)
+9
View File
@@ -0,0 +1,9 @@
author: Ikarrus
delete-after: True
changes:
- tweak: "Gang income delay reduced to 3 minutes intervals."
- tweak: "Gang Capture goal reduced to 50%"
- tweak: "Gang spraycan use increased to 20"
- tweak: "Gang Boss icon is now a red [G] icon to make it stand out better from regular gang icons"
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB