mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-12 16:37:19 +01:00
Antag loadout refactor, also deathsquads I guess (#7308)
all antags that previously had massive equip chains now use the outfit datum system
commandos + deathsquad (aka Syndicate Commandos and NT Asset Protection) have been moved out of nested alert menu hell to the new ERT system as admin-spawned ERTs, they do not appear normally
all outfit datums will now take into account backpack preferences
made the ERT job announcement / details more obvious
This commit is contained in:
@@ -1,12 +0,0 @@
|
||||
/datum/admin_secret_item/fun_secret/send_strike_team
|
||||
name = "Send Strike Team"
|
||||
|
||||
/datum/admin_secret_item/fun_secret/send_strike_team/can_execute(var/mob/user)
|
||||
if(!ROUND_IS_STARTED)
|
||||
return 0
|
||||
return ..()
|
||||
|
||||
/datum/admin_secret_item/fun_secret/send_strike_team/execute(var/mob/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
return user.client.strike_team()
|
||||
@@ -1,55 +0,0 @@
|
||||
//STRIKE TEAMS
|
||||
var/const/commandos_possible = 6 //if more Commandos are needed in the future
|
||||
|
||||
/client/proc/strike_team()
|
||||
set category = "Fun"
|
||||
set name = "Spawn Strike Team"
|
||||
set desc = "Spawns a strike team if you want to run an admin event."
|
||||
|
||||
if(!src.holder)
|
||||
to_chat(src, "Only administrators may use this command.")
|
||||
return
|
||||
|
||||
if(!ROUND_IS_STARTED)
|
||||
to_chat(usr, "<font color='red'>The game hasn't started yet!</font>")
|
||||
return
|
||||
|
||||
if(world.time < 6000)
|
||||
to_chat(usr, "<font color='red'>There are [(6000-world.time)/10] seconds remaining before it may be called.</font>")
|
||||
return
|
||||
|
||||
var/datum/antagonist/deathsquad/team
|
||||
|
||||
var/choice = input(usr, "Select type of strike team:") as null|anything in list("Heavy Asset Protection", "Mercenaries")
|
||||
if(!choice)
|
||||
return
|
||||
|
||||
switch(choice)
|
||||
if("Heavy Asset Protection")
|
||||
team = deathsquad
|
||||
if("Mercenaries")
|
||||
team = commandos
|
||||
else
|
||||
return
|
||||
|
||||
if(team.deployed)
|
||||
to_chat(usr, "<font color='red'>Someone is already sending a team.</font>")
|
||||
return
|
||||
|
||||
if(alert("Do you want to send in a strike team? Once enabled, this is irreversible.",,"Yes","No")!="Yes")
|
||||
return
|
||||
|
||||
alert("This 'mode' will go on until everyone is dead or the station is destroyed. You may also admin-call the evac shuttle when appropriate. Spawned commandos have internals cameras which are viewable through a monitor inside the Spec. Ops. Office. Assigning the team's detailed task is recommended from there. While you will be able to manually pick the candidates from active ghosts, their assignment in the squad will be random.")
|
||||
|
||||
choice = null
|
||||
while(!choice)
|
||||
choice = sanitize(input(src, "Please specify which mission the strike team shall undertake.", "Specify Mission", ""))
|
||||
if(!choice)
|
||||
if(alert("Error, no mission set. Do you want to exit the setup process?",,"Yes","No")=="Yes")
|
||||
return
|
||||
|
||||
if(team.deployed)
|
||||
to_chat(usr, "Looks like someone beat you to it.")
|
||||
return
|
||||
|
||||
team.attempt_random_spawn()
|
||||
@@ -115,7 +115,7 @@
|
||||
//Proc executed after someone is spawned in
|
||||
/datum/ghostspawner/proc/post_spawn(mob/user)
|
||||
if(welcome_message)
|
||||
to_chat(user, welcome_message)
|
||||
to_chat(user, span("notice", welcome_message))
|
||||
return TRUE
|
||||
|
||||
//Proc to check if a specific user can edit this spawner (open/close/...)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/datum/ghostspawner/human/ert
|
||||
tags = list("External")
|
||||
tags = list("Response Teams")
|
||||
|
||||
enabled = FALSE
|
||||
req_perms = null
|
||||
@@ -20,6 +20,11 @@
|
||||
|
||||
mob_name = null
|
||||
|
||||
/datum/ghostspawner/human/ert/post_spawn(mob/user)
|
||||
if(name)
|
||||
to_chat(user, "<span class='danger'><font size=3>You are [max_count > 1 ? "a" : "the"] [name]!</font></span>")
|
||||
return ..()
|
||||
|
||||
//Nanotrasen ERT
|
||||
/datum/ghostspawner/human/ert/nanotrasen
|
||||
name = "Nanotrasen Responder"
|
||||
@@ -100,3 +105,53 @@
|
||||
max_count = 1
|
||||
desc = "The leader of the freelancer mercenary team."
|
||||
outfit = /datum/outfit/admin/ert/mercenary/leader
|
||||
|
||||
// Deathsquads, spawn via admin intervention only.
|
||||
|
||||
/datum/ghostspawner/human/ert/deathsquad
|
||||
name = "NT Asset Protection Specialist"
|
||||
short_name = "ntaps"
|
||||
max_count = 3
|
||||
desc = "Protectors of NanoTrasen's bottom line. The last thing you never see."
|
||||
welcome_message = "The NSS Aurora has been compromised. Recover NanoTrasen assets by any means necessary. Crew expendable."
|
||||
outfit = /datum/outfit/admin/deathsquad
|
||||
spawnpoints = list("DeathERTSpawn")
|
||||
mob_name_prefix = "Spec. "
|
||||
|
||||
var/deployed = TRUE
|
||||
|
||||
/datum/ghostspawner/human/ert/deathsquad/leader
|
||||
name = "NT Asset Protection Leader"
|
||||
short_name = "ntapl"
|
||||
max_count = 1
|
||||
desc = "Leader of NT's Asset Protection team."
|
||||
outfit = /datum/outfit/admin/deathsquad/leader
|
||||
mob_name_prefix = "Ldr. "
|
||||
|
||||
/datum/ghostspawner/human/ert/deathsquad/post_spawn(mob/user)
|
||||
var/datum/martial_art/sol_combat/F = new/datum/martial_art/sol_combat(null)
|
||||
F.teach(user)
|
||||
|
||||
return ..()
|
||||
|
||||
/datum/ghostspawner/human/ert/commando
|
||||
name = "Syndicate Commando"
|
||||
short_name = "syndc"
|
||||
max_count = 3
|
||||
desc = "Well-equipped commandos of the criminal Syndicate."
|
||||
welcome_message = "The order has been given - the Aurora and its crew are to be wiped off the star-charts, by any means necessary."
|
||||
outfit = /datum/outfit/admin/deathsquad/syndicate
|
||||
spawnpoints = list("SyndERTSpawn")
|
||||
|
||||
/datum/ghostspawner/human/ert/commando/leader
|
||||
name = "Syndicate Commando Leader"
|
||||
short_name = "syndl"
|
||||
max_count = 1
|
||||
desc = "The leader of the Syndicate's elite commandos."
|
||||
outfit = /datum/outfit/admin/deathsquad/syndicate/leader
|
||||
|
||||
/datum/ghostspawner/human/ert/commando/post_spawn(mob/user)
|
||||
var/datum/martial_art/sol_combat/F = new/datum/martial_art/sol_combat(null)
|
||||
F.teach(user)
|
||||
|
||||
return ..()
|
||||
Reference in New Issue
Block a user