mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-30 15:37:36 +01:00
Nuclear Challenge Mode
This commit is contained in:
@@ -173,6 +173,10 @@ proc/issyndicate(mob/living/M as mob)
|
||||
synd_mind.current.real_name = "[syndicate_name()] Team [leader_title]"
|
||||
synd_mind.current << "<B>You are the Syndicate leader for this mission. You are responsible for the distribution of telecrystals and your ID is the only one who can open the launch bay doors.</B>"
|
||||
synd_mind.current << "<B>If you feel you are not up to this task, give your ID to another operative.</B>"
|
||||
synd_mind.current << "<B>In your hand you will find a special item capable of triggering a greater challenge for your team. Examine it carefully and consult with your fellow operatives before activating it.</B>"
|
||||
|
||||
var/obj/item/device/nuclear_challenge/challenge = new /obj/item/device/nuclear_challenge
|
||||
synd_mind.current.equip_to_slot_or_del(challenge, slot_r_hand)
|
||||
|
||||
var/list/foundIDs = synd_mind.current.search_contents_for(/obj/item/weapon/card/id)
|
||||
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
#define CHALLENGE_TIME_LIMIT 3000
|
||||
#define MIN_CHALLENGE_PLAYERS 50
|
||||
|
||||
/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."
|
||||
|
||||
|
||||
|
||||
/obj/item/device/nuclear_challenge/attack_self(mob/living/user)
|
||||
if(player_list.len < MIN_CHALLENGE_PLAYERS)
|
||||
user << "The enemy crew is too small to be worth declaring war on."
|
||||
return
|
||||
if(user.z != ZLEVEL_CENTCOMM)
|
||||
user << "You have to be at your base to use this."
|
||||
return
|
||||
|
||||
if(world.time > CHALLENGE_TIME_LIMIT)
|
||||
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
|
||||
|
||||
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?", "Declare war?", "Yes", "No")
|
||||
if(are_you_sure == "No")
|
||||
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."
|
||||
command_announcement.Announce(war_declaration, "Declaration of War", 'sound/effects/siren.ogg')
|
||||
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/obj/machinery/computer/shuttle/syndicate/S in machines)
|
||||
S.challenge = TRUE
|
||||
|
||||
var/obj/item/device/radio/uplink/U = new /obj/item/device/radio/uplink(get_turf(user))
|
||||
U.hidden_uplink.uplink_owner= "[user.key]"
|
||||
U.hidden_uplink.uses = 280
|
||||
qdel(src)
|
||||
|
||||
|
||||
#undef CHALLENGE_TIME_LIMIT
|
||||
#undef MIN_CHALLENGE_PLAYERS
|
||||
@@ -317,6 +317,8 @@
|
||||
return power_station
|
||||
|
||||
/obj/machinery/teleport/hub/Bumped(M as mob|obj)
|
||||
if(z == ZLEVEL_CENTCOMM)
|
||||
M << "You can't use this here."
|
||||
if(power_station && power_station.engaged && !panel_open)
|
||||
//--FalseIncarnate
|
||||
//Prevents AI cores from using the teleporter, prints out failure messages for clarity
|
||||
|
||||
@@ -676,6 +676,7 @@
|
||||
shuttleId = "whiteship"
|
||||
possible_destinations = "whiteship_away;whiteship_home;whiteship_z4"
|
||||
|
||||
#define SYNDICATE_CHALLENGE_TIMER 12000 //20 minutes
|
||||
|
||||
/obj/machinery/computer/shuttle/syndicate
|
||||
name = "syndicate shuttle terminal"
|
||||
@@ -684,11 +685,21 @@
|
||||
req_access = list(access_syndicate)
|
||||
shuttleId = "syndicate"
|
||||
possible_destinations = "syndicate_away;syndicate_z5;syndicate_z3;syndicate_ne;syndicate_nw;syndicate_n;syndicate_se;syndicate_sw;syndicate_s"
|
||||
var/challenge = FALSE
|
||||
|
||||
/obj/machinery/computer/shuttle/syndicate/recall
|
||||
name = "syndicate shuttle recall terminal"
|
||||
possible_destinations = "syndicate_away"
|
||||
|
||||
/obj/machinery/computer/shuttle/syndicate/Topic(href, href_list)
|
||||
if(href_list["move"])
|
||||
if(challenge && world.time < SYNDICATE_CHALLENGE_TIMER)
|
||||
usr << "<span class='warning'>You've issued a combat challenge to the station! You've got to give them at least [round(((SYNDICATE_CHALLENGE_TIMER - world.time) / 10) / 60)] more minutes to allow them to prepare.</span>"
|
||||
return 0
|
||||
..()
|
||||
|
||||
#undef SYNDICATE_CHALLENGE_TIMER
|
||||
|
||||
/obj/machinery/computer/shuttle/vox
|
||||
name = "skipjack control console"
|
||||
req_access = list(access_vox)
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 32 KiB |
@@ -355,6 +355,7 @@
|
||||
#include "code\game\gamemodes\nations\nationsdatums.dm"
|
||||
#include "code\game\gamemodes\nations\nationsprocs.dm"
|
||||
#include "code\game\gamemodes\nuclear\nuclear.dm"
|
||||
#include "code\game\gamemodes\nuclear\nuclear_challenge.dm"
|
||||
#include "code\game\gamemodes\nuclear\nuclearbomb.dm"
|
||||
#include "code\game\gamemodes\nuclear\pinpointer.dm"
|
||||
#include "code\game\gamemodes\revolution\revolution.dm"
|
||||
|
||||
Reference in New Issue
Block a user