/*
MERCENARY ROUNDTYPE
*/
/datum/game_mode/nuclear
name = "Mercenary"
round_description = "A mercenary strike force is approaching the station!"
config_tag = "mercenary"
required_players = 15
required_players_secret = 25 // 25 players - 5 players to be the nuke ops = 20 players remaining
required_enemies = 1
end_on_antag_death = 1
antag_tag = MODE_MERCENARY
uplink_welcome = "Corporate Backed Uplink Console:"
uplink_uses = 40
var/nuke_off_station = 0 //Used for tracking if the syndies actually haul the nuke to the station
var/syndies_didnt_escape = 0 //Used for tracking if the syndies got the shuttle off of the z-level
/datum/game_mode/nuclear/declare_completion()
if(config.objectives_disabled)
return
var/disk_rescued = 1
for(var/obj/item/weapon/disk/nuclear/D in world)
var/disk_area = get_area(D)
if(!is_type_in_list(disk_area, centcom_areas))
disk_rescued = 0
break
var/crew_evacuated = (emergency_shuttle.returned())
if(!disk_rescued && station_was_nuked && !syndies_didnt_escape)
feedback_set_details("round_end_result","win - syndicate nuke")
world << "Mercenary Major Victory!"
world << "[syndicate_name()] operatives have destroyed [station_name()]!"
else if (!disk_rescued && station_was_nuked && syndies_didnt_escape)
feedback_set_details("round_end_result","halfwin - syndicate nuke - did not evacuate in time")
world << "Total Annihilation"
world << "[syndicate_name()] operatives destroyed [station_name()] but did not leave the area in time and got caught in the explosion. Next time, don't lose the disk!"
else if (!disk_rescued && !station_was_nuked && nuke_off_station && !syndies_didnt_escape)
feedback_set_details("round_end_result","halfwin - blew wrong station")
world << "Crew Minor Victory"
world << "[syndicate_name()] operatives secured the authentication disk but blew up something that wasn't [station_name()]. Next time, don't lose the disk!"
else if (!disk_rescued && !station_was_nuked && nuke_off_station && syndies_didnt_escape)
feedback_set_details("round_end_result","halfwin - blew wrong station - did not evacuate in time")
world << "[syndicate_name()] operatives have earned Darwin Award!"
world << "[syndicate_name()] operatives blew up something that wasn't [station_name()] and got caught in the explosion. Next time, don't lose the disk!"
else if (disk_rescued && mercs.antags_are_dead())
feedback_set_details("round_end_result","loss - evacuation - disk secured - syndi team dead")
world << "Crew Major Victory!"
world << "The Research Staff has saved the disc and killed the [syndicate_name()] Operatives"
else if ( disk_rescued )
feedback_set_details("round_end_result","loss - evacuation - disk secured")
world << "Crew Major Victory"
world << "The Research Staff has saved the disc and stopped the [syndicate_name()] Operatives!"
else if (!disk_rescued && mercs.antags_are_dead())
feedback_set_details("round_end_result","loss - evacuation - disk not secured")
world << "Mercenary Minor Victory!"
world << "The Research Staff failed to secure the authentication disk but did manage to kill most of the [syndicate_name()] Operatives!"
else if (!disk_rescued && crew_evacuated)
feedback_set_details("round_end_result","halfwin - detonation averted")
world << "Mercenary Minor Victory!"
world << "[syndicate_name()] operatives recovered the abandoned authentication disk but detonation of [station_name()] was averted. Next time, don't lose the disk!"
else if (!disk_rescued && !crew_evacuated)
feedback_set_details("round_end_result","halfwin - interrupted")
world << "Neutral Victory"
world << "Round was mysteriously interrupted!"
..()
return