mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
Moves nukeop and rev score info to their respective factions on board (#36231)
* Moves nukeop and rev score info to their respective factions on board * cleanup of commented code * tracks where the boom happened just in case * makes the all arrested vars more accurate * makes this total show up right now * more accurate arrest check * cells are here! * excessive --------- Co-authored-by: SECBATON-GRIFFON <>
This commit is contained in:
@@ -33,6 +33,8 @@ var/list/factions_with_hud_icons = list()
|
|||||||
var/required_pref = ""
|
var/required_pref = ""
|
||||||
var/list/restricted_species = list()
|
var/list/restricted_species = list()
|
||||||
var/list/members = list()
|
var/list/members = list()
|
||||||
|
var/peak_member_amount = 0
|
||||||
|
var/role_peak_member_typefilter
|
||||||
var/max_roles = 0
|
var/max_roles = 0
|
||||||
var/accept_latejoiners = FALSE
|
var/accept_latejoiners = FALSE
|
||||||
var/datum/objective_holder/objective_holder
|
var/datum/objective_holder/objective_holder
|
||||||
@@ -287,8 +289,13 @@ var/list/factions_with_hud_icons = list()
|
|||||||
return dat
|
return dat
|
||||||
|
|
||||||
/datum/faction/proc/process()
|
/datum/faction/proc/process()
|
||||||
|
var/total
|
||||||
for (var/datum/role/R in members)
|
for (var/datum/role/R in members)
|
||||||
R.process()
|
R.process()
|
||||||
|
if(!role_peak_member_typefilter || istype(R,role_peak_member_typefilter))
|
||||||
|
total++
|
||||||
|
if(total > peak_member_amount)
|
||||||
|
peak_member_amount = total
|
||||||
|
|
||||||
/datum/faction/proc/stage(var/value)
|
/datum/faction/proc/stage(var/value)
|
||||||
stage = value
|
stage = value
|
||||||
|
|||||||
@@ -26,6 +26,87 @@
|
|||||||
. += "<BR>The operatives bought:<BR>"
|
. += "<BR>The operatives bought:<BR>"
|
||||||
for(var/entry in faction_scoreboard_data)
|
for(var/entry in faction_scoreboard_data)
|
||||||
. += "[entry]<BR>"
|
. += "[entry]<BR>"
|
||||||
|
var/diskdat = null
|
||||||
|
var/bombdat = null
|
||||||
|
var/opkilled = 0
|
||||||
|
var/oparrested = 0
|
||||||
|
var/alloparrested = 0
|
||||||
|
//var/nukedpenalty = 1000
|
||||||
|
for(var/datum/role/R in members)
|
||||||
|
var/datum/mind/M = R.antag
|
||||||
|
if(!M || !M.current)
|
||||||
|
opkilled++
|
||||||
|
continue
|
||||||
|
var/turf/T = M.current.loc
|
||||||
|
if(T && (istype(T.loc, /area/security/brig) || istype(T.loc, /area/security/perma) || istype(T, /turf/simulated/floor/shuttle/brig)))
|
||||||
|
oparrested++
|
||||||
|
else if(M.current.stat == DEAD)
|
||||||
|
opkilled++
|
||||||
|
if(peak_member_amount == oparrested)
|
||||||
|
alloparrested = 1
|
||||||
|
score.crewscore += oparrested * 2000
|
||||||
|
score.crewscore += opkilled * 250
|
||||||
|
score.crewscore += oparrested * 1000
|
||||||
|
//if(score.scores["nuked"])
|
||||||
|
//score.crewscore -= nukedpenalty
|
||||||
|
|
||||||
|
if(nukedisk)
|
||||||
|
var/atom/disk_loc = nukedisk.loc
|
||||||
|
while(!istype(disk_loc, /turf))
|
||||||
|
if(istype(disk_loc, /mob))
|
||||||
|
var/mob/M = disk_loc
|
||||||
|
diskdat += "Carried by [M.real_name] "
|
||||||
|
if(istype(disk_loc, /obj))
|
||||||
|
var/obj/O = disk_loc
|
||||||
|
diskdat += "in \a [O.name] "
|
||||||
|
disk_loc = disk_loc.loc
|
||||||
|
diskdat += "in [disk_loc.loc]"
|
||||||
|
/*score.scores["disc"] = 1
|
||||||
|
if(istype(disk_loc,/mob/living/carbon))
|
||||||
|
var/area/bad_zone1 = locate(/area) in areas
|
||||||
|
if(location in bad_zone1)
|
||||||
|
score.scores["disc"] = 0
|
||||||
|
if(istype(get_area(nukedisc),/area/syndicate_mothership))
|
||||||
|
score.scores["disc"] = 0
|
||||||
|
if(istype(get_area(nukedisc),/area/wizard_station))
|
||||||
|
score.scores["disc"] = 0
|
||||||
|
if(nukedisk.loc.z != map.zMainStation)
|
||||||
|
score.scores["disc"] = 0*/
|
||||||
|
|
||||||
|
bombdat = nuked_area
|
||||||
|
if(!nuked_area)
|
||||||
|
for(var/obj/machinery/nuclearbomb/nuke in nuclear_bombs)
|
||||||
|
if(nuke.r_code == "LOLNO")
|
||||||
|
continue
|
||||||
|
bombdat = get_area(nuke)
|
||||||
|
/*nukedpenalty = 50000 //Congratulations, your score was nuked
|
||||||
|
var/turf/T = get_turf(nuke)
|
||||||
|
if(istype(T,/area/syndicate_mothership) || istype(T,/area/wizard_station) || istype(T,/area/solar/) || istype(T,/area))
|
||||||
|
nukedpenalty = 1000
|
||||||
|
else if (istype(T,/area/security/main) || istype(T,/area/security/brig) || istype(T,/area/security/armory) || istype(T,/area/security/checkpoint2))
|
||||||
|
nukedpenalty = 50000
|
||||||
|
else if (istype(T,/area/engine))
|
||||||
|
nukedpenalty = 100000
|
||||||
|
else
|
||||||
|
nukedpenalty = 5000*/
|
||||||
|
//break
|
||||||
|
if(!diskdat)
|
||||||
|
diskdat = "Unknown"
|
||||||
|
log_admin("The disk could not be found for the nuke ops scoreboard! Report this")
|
||||||
|
message_admins("The disk could not be found for the nuke ops scoreboard! Report this")
|
||||||
|
if(!bombdat)
|
||||||
|
bombdat = "Unknown"
|
||||||
|
log_admin("The nuke could not be found for the nuke ops scoreboard! Report this")
|
||||||
|
message_admins("The nuke could not be found for the nuke ops scoreboard! Report this")
|
||||||
|
|
||||||
|
. += {"<BR>
|
||||||
|
<B>Final Location of Nuke:</B> [bombdat]<BR>
|
||||||
|
<B>Final Location of Disk:</B> [diskdat]<BR>
|
||||||
|
<B>Operatives Arrested:</B> [oparrested] ([oparrested * 1000] Points)<BR>
|
||||||
|
<B>Operatives Killed:</B> [opkilled] ([opkilled * 250] Points)<BR>
|
||||||
|
<B>All Operatives Arrested:</B> [alloparrested ? "Yes" : "No"] ([oparrested * 2000] Points)<BR>"}
|
||||||
|
// <B>Station Destroyed:</B> [score.scores["nuked"] ? "Yes" : "No"] (-[nukedpenalty] Points)<BR>
|
||||||
|
// <B>Nuclear Disk Secure:</B> [score.scores["disc"] ? "Yes" : "No"] ([score.scores["disc"] * 500] Points)<BR>
|
||||||
|
|
||||||
/datum/faction/syndicate/nuke_op/AdminPanelEntry()
|
/datum/faction/syndicate/nuke_op/AdminPanelEntry()
|
||||||
var/list/dat = ..()
|
var/list/dat = ..()
|
||||||
@@ -142,3 +223,5 @@
|
|||||||
livingmembers++
|
livingmembers++
|
||||||
if(!livingmembers && ticker.IsThematic(playlist))
|
if(!livingmembers && ticker.IsThematic(playlist))
|
||||||
ticker.StopThematic()
|
ticker.StopThematic()
|
||||||
|
if(livingmembers > peak_member_amount)
|
||||||
|
peak_member_amount = livingmembers
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
playlist = "nukesquad"
|
playlist = "nukesquad"
|
||||||
default_admin_voice = "Union Boss"
|
default_admin_voice = "Union Boss"
|
||||||
admin_voice_style = "secradio"
|
admin_voice_style = "secradio"
|
||||||
|
role_peak_member_typefilter = /datum/role/revolutionary/leader
|
||||||
var/discovered = 0
|
var/discovered = 0
|
||||||
|
|
||||||
/datum/faction/revolution/HandleRecruitedMind(var/datum/mind/M)
|
/datum/faction/revolution/HandleRecruitedMind(var/datum/mind/M)
|
||||||
@@ -181,3 +182,46 @@
|
|||||||
ticker.revolutionary_victory = 1
|
ticker.revolutionary_victory = 1
|
||||||
if (ALL_REVS_DEAD)
|
if (ALL_REVS_DEAD)
|
||||||
to_chat(world, "<font size = 3><b>The crew has won!</b></h1><br/><font size = 2>All revolutionaries are either dead or have fled the station!</font>")
|
to_chat(world, "<font size = 3><b>The crew has won!</b></h1><br/><font size = 2>All revolutionaries are either dead or have fled the station!</font>")
|
||||||
|
|
||||||
|
/datum/faction/revolution/GetScoreboard()
|
||||||
|
. = ..()
|
||||||
|
var/loycount = 0
|
||||||
|
var/revarrested = 0
|
||||||
|
var/revkilled = 0
|
||||||
|
var/allrevarrested = 1
|
||||||
|
var/deadcommand = 0
|
||||||
|
for(var/datum/role/R in members)
|
||||||
|
var/datum/mind/M = R.antag
|
||||||
|
if(!M || !M.current)
|
||||||
|
revkilled++
|
||||||
|
continue
|
||||||
|
var/turf/T = M.current.loc
|
||||||
|
if(T && (istype(T.loc, /area/security/brig) || istype(T.loc, /area/security/perma) || istype(T, /turf/simulated/floor/shuttle/brig)))
|
||||||
|
revarrested++
|
||||||
|
else if (M.current.stat == DEAD)
|
||||||
|
revkilled++
|
||||||
|
for(var/mob/living/player in player_list)
|
||||||
|
if (istype(player, /mob/living/carbon/human))
|
||||||
|
var/role = player.mind.assigned_role
|
||||||
|
if((role in command_positions) && player.stat == DEAD)
|
||||||
|
deadcommand++
|
||||||
|
else if(!(locate(/datum/role/revolutionary) in player.mind.antag_roles))
|
||||||
|
loycount++
|
||||||
|
else if(istype(player, /mob/living/silicon) && player.stat != DEAD)
|
||||||
|
loycount++
|
||||||
|
//if(score.scores["traitorswon"])
|
||||||
|
//score.scores["crewscore"] -= 10000
|
||||||
|
if(peak_member_amount == revarrested) // That way only head revs count
|
||||||
|
allrevarrested = 1
|
||||||
|
score.crewscore += revarrested * 2000
|
||||||
|
score.crewscore += revarrested * 1000
|
||||||
|
score.crewscore += revkilled * 500
|
||||||
|
score.crewscore -= deadcommand * 500
|
||||||
|
|
||||||
|
. += {"<BR>
|
||||||
|
<B>Number of Surviving Loyal Crew:</B> [loycount]<BR>
|
||||||
|
<B>Revolution Heads Arrested:</B> [revarrested] ([revarrested * 1000] Points)<BR>
|
||||||
|
<B>Revolution Heads Slain:</B> [revkilled] ([revkilled * 500] Points)<BR>
|
||||||
|
<B>Command Staff Slain:</B> [deadcommand] (-[deadcommand * 500] Points)<BR>
|
||||||
|
<B>All Revolution Heads Arrested:</B> [allrevarrested ? "Yes" : "No"] ([revarrested * 2000] Points)<BR>"}
|
||||||
|
// <B>Revolution Successful:</B> [score.scores["traitorswon"] ? "Yes" : "No"] (-[score.scores["traitorswon"] * revpenalty] Points)<BR>
|
||||||
|
|||||||
@@ -33,7 +33,6 @@
|
|||||||
else
|
else
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
|
|
||||||
//Prisoner Escapes. Same as above, except you don't have to be on the shuttle and you can't be in the brig roundend.
|
//Prisoner Escapes. Same as above, except you don't have to be on the shuttle and you can't be in the brig roundend.
|
||||||
|
|
||||||
/datum/objective/escape_prisoner
|
/datum/objective/escape_prisoner
|
||||||
@@ -64,11 +63,11 @@
|
|||||||
|
|
||||||
if(istype(owner.current, /mob/living/carbon/human))
|
if(istype(owner.current, /mob/living/carbon/human))
|
||||||
var/mob/living/carbon/human/H = owner.current
|
var/mob/living/carbon/human/H = owner.current
|
||||||
if(H.restrained())
|
if(H.restrained())
|
||||||
return FALSE
|
return FALSE
|
||||||
else if (istype(owner.current, /mob/living/carbon))
|
else if (istype(owner.current, /mob/living/carbon))
|
||||||
var/mob/living/carbon/C = owner.current
|
var/mob/living/carbon/C = owner.current
|
||||||
if (C.handcuffed)
|
if (C.handcuffed)
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|||||||
@@ -18,179 +18,3 @@
|
|||||||
for(var/entry in score.implant_phrases)
|
for(var/entry in score.implant_phrases)
|
||||||
completions += "[entry]<BR>"
|
completions += "[entry]<BR>"
|
||||||
return completions
|
return completions
|
||||||
|
|
||||||
/datum/controller/gameticker/scoreboard/proc/nuke_op_score(var/datum/faction/syndicate/nuke_op/NO)
|
|
||||||
var/foecount = 0
|
|
||||||
var/crewcount = 0
|
|
||||||
var/diskdat = ""
|
|
||||||
var/bombdat = null
|
|
||||||
var/opkilled
|
|
||||||
var/oparrested
|
|
||||||
var/alloparrested
|
|
||||||
var/dat
|
|
||||||
//var/nukedpenalty = 1000
|
|
||||||
for(var/datum/role/R in NO.members)
|
|
||||||
foecount++
|
|
||||||
var/datum/mind/M = R.antag
|
|
||||||
if(!M || !M.current)
|
|
||||||
opkilled++
|
|
||||||
continue
|
|
||||||
var/turf/T = M.current.loc
|
|
||||||
if(T && istype(T.loc, /area/security/brig))
|
|
||||||
oparrested++
|
|
||||||
else if(M.current.stat == DEAD)
|
|
||||||
opkilled++
|
|
||||||
for(var/mob/living/C in player_list)
|
|
||||||
if(!istype(C,/mob/living/carbon/human) || !istype(C,/mob/living/silicon/robot) || !istype(C,/mob/living/silicon/ai))
|
|
||||||
continue
|
|
||||||
if(C.stat == DEAD)
|
|
||||||
continue
|
|
||||||
if(!C.client)
|
|
||||||
continue
|
|
||||||
crewcount++
|
|
||||||
if(foecount == oparrested)
|
|
||||||
alloparrested = 1
|
|
||||||
score.crewscore += oparrested * 2000
|
|
||||||
score.crewscore += opkilled * 250
|
|
||||||
score.crewscore += oparrested * 1000
|
|
||||||
//if(score.scores["nuked"])
|
|
||||||
//score.scores["crewscore"] -= nukedpenalty
|
|
||||||
|
|
||||||
/*score.scores["disc"] = 1
|
|
||||||
for(var/obj/item/weapon/disk/nuclear/A in world)
|
|
||||||
if(A.loc != /mob/living/carbon)
|
|
||||||
continue
|
|
||||||
var/turf/location = get_turf(A.loc)
|
|
||||||
var/area/bad_zone1 = locate(/area)
|
|
||||||
var/area/bad_zone2 = locate(/area/syndicate_mothership)
|
|
||||||
var/area/bad_zone3 = locate(/area/wizard_station)
|
|
||||||
if(location in bad_zone1)
|
|
||||||
score.scores["disc"] = 0
|
|
||||||
if(location in bad_zone2)
|
|
||||||
score.scores["disc"] = 0
|
|
||||||
if(location in bad_zone3)
|
|
||||||
score.scores["disc"] = 0
|
|
||||||
if(A.loc.z != map.zMainStation)
|
|
||||||
score.scores["disc"] = 0*/
|
|
||||||
|
|
||||||
/*if(score.scores["nuked"])
|
|
||||||
nukedpenalty = 50000 //Congratulations, your score was nuked
|
|
||||||
|
|
||||||
for(var/obj/machinery/nuclearbomb/nuke in machines)
|
|
||||||
if(nuke.r_code == "Nope")
|
|
||||||
continue
|
|
||||||
var/turf/T = get_turf(nuke)
|
|
||||||
if(istype(T, /area/syndicate_mothership) || istype(T, /area/wizard_station) || istype(T, /area/solar))
|
|
||||||
nukedpenalty = 1000
|
|
||||||
else if(istype(T, /area/security/main) || istype(T, /area/security/brig) || istype(T, /area/security/armory) || istype(T, /area/security/checkpoint2))
|
|
||||||
nukedpenalty = 50000
|
|
||||||
else if(istype(T, /area/engine))
|
|
||||||
nukedpenalty = 100000
|
|
||||||
else
|
|
||||||
nukedpenalty = 10000*/
|
|
||||||
|
|
||||||
|
|
||||||
for(var/obj/item/weapon/disk/nuclear/N in world)
|
|
||||||
if(!N)
|
|
||||||
continue
|
|
||||||
var/atom/disk_loc = N.loc
|
|
||||||
while(!istype(disk_loc, /turf))
|
|
||||||
if(istype(disk_loc, /mob))
|
|
||||||
var/mob/M = disk_loc
|
|
||||||
diskdat += "Carried by [M.real_name] "
|
|
||||||
if(istype(disk_loc, /obj))
|
|
||||||
var/obj/O = disk_loc
|
|
||||||
diskdat += "in \a [O.name] "
|
|
||||||
disk_loc = disk_loc.loc
|
|
||||||
diskdat += "in [disk_loc.loc]"
|
|
||||||
break // Should only need one go-round, probably
|
|
||||||
|
|
||||||
/*for(var/obj/machinery/nuclearbomb/nuke in machines)
|
|
||||||
if(nuke.r_code == "Nope")
|
|
||||||
continue
|
|
||||||
var/turf/T = nuke.loc
|
|
||||||
bombdat = T.loc
|
|
||||||
if(istype(T,/area/syndicate_mothership) || istype(T,/area/wizard_station) || istype(T,/area/solar/) || istype(T,/area))
|
|
||||||
nukedpenalty = 1000
|
|
||||||
else if (istype(T,/area/security/main) || istype(T,/area/security/brig) || istype(T,/area/security/armory) || istype(T,/area/security/checkpoint2))
|
|
||||||
nukedpenalty = 50000
|
|
||||||
else if (istype(T,/area/engine))
|
|
||||||
nukedpenalty = 100000
|
|
||||||
else
|
|
||||||
nukedpenalty = 5000
|
|
||||||
break*/
|
|
||||||
if(!diskdat)
|
|
||||||
diskdat = "Uh oh. Something has fucked up! Report this."
|
|
||||||
|
|
||||||
return dat += {"<B><U>NUCLEAR ASSAULT STATS</U></B><BR>
|
|
||||||
<B>Number of Operatives:</B> [foecount]<BR>
|
|
||||||
<B>Number of Surviving Crew:</B> [crewcount]<BR>
|
|
||||||
<B>Final Location of Nuke:</B> [bombdat]<BR>
|
|
||||||
<B>Final Location of Disk:</B> [diskdat]<BR>
|
|
||||||
<B>Operatives Arrested:</B> [oparrested] ([oparrested * 1000] Points)<BR>
|
|
||||||
<B>Operatives Killed:</B> [opkilled] ([opkilled * 250] Points)<BR>
|
|
||||||
<B>All Operatives Arrested:</B> [alloparrested ? "Yes" : "No"] ([oparrested * 2000])<BR>
|
|
||||||
<HR>"}
|
|
||||||
// <B>Station Destroyed:</B> [score.scores["nuked"] ? "Yes" : "No"] (-[nukedpenalty] Points)<BR>
|
|
||||||
// <B>Nuclear Disk Secure:</B> [score.scores["disc"] ? "Yes" : "No"] ([score.scores["disc"] * 500] Points)<BR>
|
|
||||||
|
|
||||||
/datum/controller/gameticker/scoreboard/proc/revolution_score(var/datum/faction/revolution/RV)
|
|
||||||
var/foecount = 0
|
|
||||||
var/comcount = 0
|
|
||||||
var/revcount = 0
|
|
||||||
var/loycount = 0
|
|
||||||
var/revarrested = 0
|
|
||||||
var/revkilled = 0
|
|
||||||
var/allrevarrested = 1
|
|
||||||
var/deadcommand = 0
|
|
||||||
var/dat
|
|
||||||
for(var/datum/role/R in RV.members)
|
|
||||||
if(R.antag.current && R.antag.current.stat != 2)
|
|
||||||
if(istype(R,/datum/role/revolutionary/leader))
|
|
||||||
foecount++
|
|
||||||
else
|
|
||||||
revcount++
|
|
||||||
var/datum/mind/M = R.antag
|
|
||||||
if(!M || !M.current)
|
|
||||||
revkilled++
|
|
||||||
continue
|
|
||||||
var/turf/T = M.current.loc
|
|
||||||
if(istype(T.loc, /area/security/brig))
|
|
||||||
revarrested++
|
|
||||||
else if (M.current.stat == DEAD)
|
|
||||||
revkilled++
|
|
||||||
for(var/mob/living/player in player_list)
|
|
||||||
if (istype(player, /mob/living/carbon/human))
|
|
||||||
var/role = player.mind.assigned_role
|
|
||||||
if(role in list("Captain", "Head of Security", "Head of Personnel", "Chief Engineer", "Research Director"))
|
|
||||||
if(player.stat == DEAD)
|
|
||||||
deadcommand++
|
|
||||||
else
|
|
||||||
comcount++
|
|
||||||
else
|
|
||||||
if(locate(/datum/role/revolutionary) in player.mind.antag_roles)
|
|
||||||
continue
|
|
||||||
loycount++
|
|
||||||
else if(istype(player, /mob/living/silicon))
|
|
||||||
if (player.stat != DEAD)
|
|
||||||
loycount++
|
|
||||||
//if(score.scores["traitorswon"])
|
|
||||||
//score.scores["crewscore"] -= 10000
|
|
||||||
if(foecount == revarrested)
|
|
||||||
allrevarrested = 1
|
|
||||||
score.crewscore += revarrested * 2000
|
|
||||||
score.crewscore += revarrested * 1000
|
|
||||||
score.crewscore += revkilled * 500
|
|
||||||
score.crewscore -= deadcommand * 500
|
|
||||||
|
|
||||||
return dat += {"<B><U>REVOLUTION STATS</U></B><BR>
|
|
||||||
<B>Number of Surviving Revolution Heads:</B> [foecount]<BR>
|
|
||||||
<B>Number of Surviving Command Staff:</B> [comcount]<BR>
|
|
||||||
<B>Number of Surviving Revolutionaries:</B> [revcount]<BR>
|
|
||||||
<B>Number of Surviving Loyal Crew:</B> [loycount]<BR>
|
|
||||||
<B>Revolution Heads Arrested:</B> [revarrested] ([revarrested * 1000] Points)<BR>
|
|
||||||
<B>Revolution Heads Slain:</B> [revkilled] ([revkilled * 500] Points)<BR>
|
|
||||||
<B>Command Staff Slain:</B> [deadcommand] (-[deadcommand * 500] Points)<BR>
|
|
||||||
<B>All Revolution Heads Arrested:</B> [allrevarrested ? "Yes" : "No"] ([revarrested * 2000] Points)<BR>
|
|
||||||
<HR>"}
|
|
||||||
// <B>Revolution Successful:</B> [score.scores["traitorswon"] ? "Yes" : "No"] (-[score.scores["traitorswon"] * revpenalty] Points)<BR>
|
|
||||||
@@ -89,9 +89,6 @@ var/global/datum/controller/gameticker/scoreboard/score = new()
|
|||||||
var/list/global_paintings = list()
|
var/list/global_paintings = list()
|
||||||
|
|
||||||
/datum/controller/gameticker/scoreboard/proc/main(var/dat)
|
/datum/controller/gameticker/scoreboard/proc/main(var/dat)
|
||||||
var/datum/faction/syndicate/nuke_op/NO = find_active_faction_by_type(/datum/faction/syndicate/nuke_op)
|
|
||||||
var/datum/faction/revolution/RV = find_active_faction_by_type(/datum/faction/revolution)
|
|
||||||
|
|
||||||
ticker.mode.declare_completion()
|
ticker.mode.declare_completion()
|
||||||
dat += "[ticker.mode.dat]<HR>"
|
dat += "[ticker.mode.dat]<HR>"
|
||||||
|
|
||||||
@@ -101,10 +98,6 @@ var/global/datum/controller/gameticker/scoreboard/score = new()
|
|||||||
dat += service_score()
|
dat += service_score()
|
||||||
dat += supply_score()
|
dat += supply_score()
|
||||||
dat += science_score()
|
dat += science_score()
|
||||||
if(NO)
|
|
||||||
dat += nuke_op_score(NO)
|
|
||||||
if(RV)
|
|
||||||
dat += revolution_score(RV)
|
|
||||||
dat += syndicate_score()
|
dat += syndicate_score()
|
||||||
dat += silicon_score()
|
dat += silicon_score()
|
||||||
dat += misc_score()
|
dat += misc_score()
|
||||||
|
|||||||
@@ -285,6 +285,7 @@ var/list/nuclear_bombs = list()
|
|||||||
return
|
return
|
||||||
|
|
||||||
#define NUKERANGE 120
|
#define NUKERANGE 120
|
||||||
|
var/area/nuked_area
|
||||||
/obj/machinery/nuclearbomb/proc/explode(var/sound = TRUE)
|
/obj/machinery/nuclearbomb/proc/explode(var/sound = TRUE)
|
||||||
if (src.safety)
|
if (src.safety)
|
||||||
src.timing = 0
|
src.timing = 0
|
||||||
@@ -302,6 +303,7 @@ var/list/nuclear_bombs = list()
|
|||||||
|
|
||||||
var/off_station = 0
|
var/off_station = 0
|
||||||
var/turf/bomb_location = get_turf(src)
|
var/turf/bomb_location = get_turf(src)
|
||||||
|
nuked_area = bomb_location.loc
|
||||||
explosion(bomb_location, 30, 60, 120, 120, 10)
|
explosion(bomb_location, 30, 60, 120, 120, 10)
|
||||||
if( bomb_location && (bomb_location.z == map.zMainStation) )
|
if( bomb_location && (bomb_location.z == map.zMainStation) )
|
||||||
var/map_center_x = world.maxx * 0.5
|
var/map_center_x = world.maxx * 0.5
|
||||||
|
|||||||
Reference in New Issue
Block a user