#define CHALLENGE_TELECRYSTALS 280 #define CHALLENGE_TIME_LIMIT 3000 #define CHALLENGE_MIN_PLAYERS 50 #define CHALLENGE_SHUTTLE_DELAY 15000 // 25 minutes, so the ops have at least 5 minutes before the shuttle is callable. /obj/item/device/nuclear_challenge name = "Declaration of War (Challenge Mode)" icon_state = "gangtool-red" item_state = "walkietalkie" desc = "Use to send a declaration of hostilities to the target, delaying your shuttle departure for 20 minutes while they prepare for your assault. \ Such a brazen move will attract the attention of powerful benefactors within the Syndicate, who will supply your team with a massive amount of bonus telecrystals. \ Must be used within five minutes, or your benefactors will lose interest." var/declaring_war = FALSE /obj/item/device/nuclear_challenge/attack_self(mob/living/user) if(!check_allowed(user)) return declaring_war = TRUE var/are_you_sure = alert(user, "Consult your team carefully before you declare war on [station_name()]]. Are you sure you want to alert the enemy crew? You have [-round((world.time-SSticker.round_start_time - CHALLENGE_TIME_LIMIT)/10)] seconds to decide", "Declare war?", "Yes", "No") declaring_war = FALSE if(!check_allowed(user)) return if(are_you_sure == "No") to_chat(user, "On second thought, the element of surprise isn't so bad after all.") return var/war_declaration = "[user.real_name] has declared his intent to utterly destroy [station_name()] with a nuclear device, and dares the crew to try and stop them." declaring_war = TRUE var/custom_threat = alert(user, "Do you want to customize your declaration?", "Customize?", "Yes", "No") declaring_war = FALSE if(!check_allowed(user)) return if(custom_threat == "Yes") declaring_war = TRUE war_declaration = stripped_input(user, "Insert your custom declaration", "Declaration") declaring_war = FALSE if(!check_allowed(user) || !war_declaration) return priority_announce(war_declaration, title = "Declaration of War", sound = 'sound/machines/Alarm.ogg') to_chat(user, "You've attracted the attention of powerful forces within the syndicate. A bonus bundle of telecrystals has been granted to your team. Great things await you if you complete the mission.") for(var/V in GLOB.syndicate_shuttle_boards) var/obj/item/weapon/circuitboard/computer/syndicate_shuttle/board = V board.challenge = TRUE var/obj/item/device/radio/uplink/nuclear/U = new(get_turf(user)) U.hidden_uplink.owner = "[user.key]" U.hidden_uplink.telecrystals = CHALLENGE_TELECRYSTALS U.hidden_uplink.set_gamemode(/datum/game_mode/nuclear) config.shuttle_refuel_delay = max(config.shuttle_refuel_delay, CHALLENGE_SHUTTLE_DELAY) feedback_set("nuclear_challenge_mode",1) qdel(src) /obj/item/device/nuclear_challenge/proc/check_allowed(mob/living/user) if(declaring_war) to_chat(user, "You are already in the process of declaring war! Make your mind up.") return 0 if(GLOB.player_list.len < CHALLENGE_MIN_PLAYERS) to_chat(user, "The enemy crew is too small to be worth declaring war on.") return 0 if(user.z != ZLEVEL_CENTCOM) to_chat(user, "You have to be at your base to use this.") return 0 if(world.time-SSticker.round_start_time > CHALLENGE_TIME_LIMIT) to_chat(user, "It's too late to declare hostilities. Your benefactors are already busy with other schemes. You'll have to make do with what you have on hand.") return 0 for(var/V in GLOB.syndicate_shuttle_boards) var/obj/item/weapon/circuitboard/computer/syndicate_shuttle/board = V if(board.moved) to_chat(user, "The shuttle has already been moved! You have forfeit the right to declare war.") return 0 return 1 #undef CHALLENGE_TELECRYSTALS #undef CHALLENGE_MIN_PLAYERS #undef CHALLENGE_SHUTTLE_DELAY