/datum/game_mode/monkey
name = "monkey"
config_tag = "monkey"
/datum/game_mode/monkey/announce()
boutput(world, "The current game mode is - Monkey!")
boutput(world, "Some of your crew members have been infected by a mutageous virus!")
boutput(world, "Escape on the shuttle but the humans have precedence!")
/datum/game_mode/monkey/post_setup()
SPAWN_DBG (50)
var/list/players = list()
for (var/mob/living/carbon/human/player in mobs)
if (player.client)
players += player
if (players.len >= 3)
var/amount = round((players.len - 1) / 3) + 1
amount = min(4, amount)
while (amount > 0)
var/mob/living/carbon/human/player = pick(players)
player.monkeyize()
players -= player
amount--
for (var/mob/living/carbon/human/rabid_monkey in mobs)
if (ismonkey(rabid_monkey))
rabid_monkey.contract_disease(/datum/ailment/disease/jungle_fever,null,null,1)
/datum/game_mode/monkey/check_finished()
if(emergency_shuttle.location == SHUTTLE_LOC_RETURNED)
return 1
return 0
/datum/game_mode/monkey/declare_completion()
var/area/escape_zone = locate(map_settings.escape_centcom)
var/monkeywin = 0
for(var/mob/living/carbon/human/monkey_player in mobs)
if (!ismonkey(monkey_player))
continue
if (!isdead(monkey_player))
var/turf/location = get_turf(monkey_player.loc)
if (location in escape_zone)
monkeywin = 1
break
if(monkeywin)
for(var/mob/living/carbon/human/human_player in mobs)
if (ismonkey(human_player))
continue
if (!isdead(human_player))
var/turf/location = get_turf(human_player.loc)
if (istype(human_player.loc, /turf))
if (location in escape_zone)
monkeywin = 0
break
if (monkeywin)
boutput(world, "The monkies have won!")
for(var/mob/living/carbon/human/monkey_player in mobs)
if (ismonkey(monkey_player) && monkey_player.client)
boutput(world, "[monkey_player.key] was a monkey.")
else
boutput(world, "The Research Staff has stopped the monkey invasion!")
for(var/mob/living/carbon/human/human_player in mobs)
if (!ismonkey(human_player) && human_player.client)
boutput(world, "[human_player.key] was [human_player.real_name].")
return 1