mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 19:44:09 +01:00
Merge pull request #7640 from Kyep/gimmick_team
Adds Jani-ERT, Paranormal ERT, and Gimmick Teams in general
This commit is contained in:
@@ -721,6 +721,38 @@
|
||||
/obj/item/weapon/melee/classic_baton/telescopic = 1,
|
||||
/obj/item/ammo_box/magazine/m50 = 2)
|
||||
|
||||
/datum/outfit/admin/paranormal_ert
|
||||
name = "Paranormal ERT member"
|
||||
|
||||
uniform = /obj/item/clothing/under/syndicate
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal
|
||||
back = /obj/item/weapon/storage/backpack/ert/security
|
||||
belt = /obj/item/weapon/gun/energy/gun/nuclear
|
||||
gloves = /obj/item/clothing/gloves/color/black
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
head = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal
|
||||
l_ear = /obj/item/device/radio/headset/ert/alt
|
||||
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
|
||||
id = /obj/item/weapon/card/id/centcom
|
||||
pda = /obj/item/device/pda/centcom
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/storage/box/survival = 1,
|
||||
/obj/item/clothing/mask/gas/sechailer/swat = 1,
|
||||
/obj/item/weapon/storage/box/zipties = 1,
|
||||
/obj/item/device/flashlight = 1)
|
||||
|
||||
/datum/outfit/admin/paranormal_ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/weapon/card/id/I = H.wear_id
|
||||
if(istype(I))
|
||||
apply_to_card(I, H, get_centcom_access("Emergency Response Team Member"), "Emergency Response Team Member")
|
||||
|
||||
var/obj/item/weapon/implant/L = new /obj/item/weapon/implant/mindshield(H)
|
||||
L.implant(H)
|
||||
|
||||
/datum/outfit/admin/janitorial_ert
|
||||
name = "Janitorial ERT member"
|
||||
|
||||
@@ -731,16 +763,18 @@
|
||||
gloves = /obj/item/clothing/gloves/color/yellow
|
||||
shoes = /obj/item/clothing/shoes/galoshes
|
||||
head = /obj/item/clothing/head/helmet/space/hardsuit/ert/janitor
|
||||
l_ear = /obj/item/device/radio/headset/centcom
|
||||
l_ear = /obj/item/device/radio/headset/ert/alt
|
||||
glasses = /obj/item/clothing/glasses/sunglasses
|
||||
id = /obj/item/weapon/card/id/centcom
|
||||
pda = /obj/item/device/pda/centcom
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/caution = 2,
|
||||
/obj/item/weapon/storage/box/survival = 1,
|
||||
/obj/item/weapon/reagent_containers/spray/cleaner = 1,
|
||||
/obj/item/weapon/storage/bag/trash = 1,
|
||||
/obj/item/weapon/storage/box/lights/mixed = 1,
|
||||
/obj/item/weapon/holosign_creator = 1)
|
||||
/obj/item/weapon/holosign_creator = 1,
|
||||
/obj/item/device/flashlight = 1)
|
||||
|
||||
/datum/outfit/admin/janitorial_ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
|
||||
@@ -68,9 +68,10 @@
|
||||
<h2><B>IC Events</B></h2>
|
||||
<b>Teams</b><br>
|
||||
<A href='?src=[UID()];secretsfun=infiltrators_syndicate'>Send SIT - Syndicate Infiltration Team</A>
|
||||
<BR><A href='?src=[UID()];secretsfun=striketeam'>Send in the Deathsquad</A>
|
||||
<A href='?src=[UID()];secretsfun=striketeam_syndicate'>Send in a Syndie Strike Team</A>
|
||||
<BR><A href='?src=[UID()];secretsfun=striketeam'>Send in the Deathsquad</A>
|
||||
<A href='?src=[UID()];secretsfun=honksquad'>Send in a HONKsquad</A><BR>
|
||||
<A href='?src=[UID()];secretsfun=gimmickteam'>Send in a Gimmick Team</A><BR>
|
||||
<b>Change Security Level</b><BR>
|
||||
<A href='?src=[UID()];secretsfun=securitylevel0'>Security Level - Green</A>
|
||||
<A href='?src=[UID()];secretsfun=securitylevel1'>Security Level - Blue</A>
|
||||
|
||||
@@ -2524,6 +2524,10 @@
|
||||
if(usr.client.syndicate_infiltration_team())
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","SyndieInfiltrationTeam")
|
||||
if("gimmickteam")
|
||||
if(usr.client.gimmick_team())
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","GimmickTeam")
|
||||
if("tripleAI")
|
||||
usr.client.triple_ai()
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
// Gimmick Team
|
||||
// Spawns a group of player-controlled mobs with an outfit specified by the admin, at their location.
|
||||
|
||||
/client/proc/gimmick_team()
|
||||
set category = "Event"
|
||||
set name = "Send Gimmick Team"
|
||||
set desc = "Spawns a group of players in the specified outfit."
|
||||
if(!check_rights(R_EVENT))
|
||||
return
|
||||
if(!ticker)
|
||||
alert("The game hasn't started yet!")
|
||||
return
|
||||
if(alert("Do you want to spawn a Gimmick Team at YOUR CURRENT LOCATION?",,"Yes","No")=="No")
|
||||
return
|
||||
var/pick_manually = 0
|
||||
if(alert("Pick the team members manually? If you select yes, you pick from ghosts. If you select no, ghosts get offered the chance to join.",,"Yes","No")=="Yes")
|
||||
pick_manually = 1
|
||||
var/list/teamsizeoptions = list(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
|
||||
var/teamsize = input(src, "How many team members?") as null|anything in teamsizeoptions
|
||||
if(!(teamsize in teamsizeoptions))
|
||||
alert("Invalid team size specified. Aborting.")
|
||||
return
|
||||
var/themission = null
|
||||
while(!themission)
|
||||
themission = sanitize(copytext(input(src, "Please specify a briefing message for the team.", "Specify Mission", ""),1,MAX_MESSAGE_LEN))
|
||||
if(!themission)
|
||||
alert("No mission specified. Aborting.")
|
||||
return
|
||||
var/admin_outfits = subtypesof(/datum/outfit/admin)
|
||||
var/outfit_list = list()
|
||||
for(var/type in admin_outfits)
|
||||
var/datum/outfit/admin/O = type
|
||||
outfit_list[initial(O.name)] = type
|
||||
var/dresscode = input("Select Outfit", "Dress-a-mob") as null|anything in outfit_list
|
||||
if(isnull(dresscode))
|
||||
return
|
||||
|
||||
var/list/players_to_spawn = list()
|
||||
if(pick_manually)
|
||||
var/list/possible_ghosts = list()
|
||||
for(var/mob/dead/observer/G in player_list)
|
||||
if(!G.client.is_afk())
|
||||
if(!(G.mind && G.mind.current && G.mind.current.stat != DEAD))
|
||||
possible_ghosts += G
|
||||
for(var/i=teamsize,(i>0&&possible_ghosts.len),i--) //Decrease with every member selected.
|
||||
var/candidate = input("Pick characters to spawn. This will go on until there either no more ghosts to pick from, or the slots are full.", "Active Players") as null|anything in possible_ghosts // auto-picks if only one candidate
|
||||
possible_ghosts -= candidate
|
||||
players_to_spawn += candidate
|
||||
else
|
||||
to_chat(src, "Polling candidates...")
|
||||
players_to_spawn = pollCandidates("Do you want to play as an event character?")
|
||||
|
||||
if(!players_to_spawn.len)
|
||||
to_chat(src, "Nobody volunteered.")
|
||||
return 0
|
||||
|
||||
var/datum/outfit/O = outfit_list[dresscode]
|
||||
var/turf/T = get_turf(mob)
|
||||
for(var/mob/thisplayer in players_to_spawn)
|
||||
var/mob/living/carbon/human/H = new /mob/living/carbon/human(T)
|
||||
H.name = random_name(pick(MALE,FEMALE))
|
||||
var/datum/preferences/A = new() //Randomize appearance
|
||||
A.real_name = H.name
|
||||
A.copy_to(H)
|
||||
H.dna.ready_dna(H)
|
||||
|
||||
H.mind_initialize()
|
||||
H.mind.assigned_role = "MODE"
|
||||
H.mind.special_role = "Event Character"
|
||||
ticker.mode.traitors |= H.mind //Adds them to extra antag list
|
||||
|
||||
H.key = thisplayer.key
|
||||
|
||||
H.equipOutfit(O, FALSE)
|
||||
|
||||
to_chat(H, "<BR><span class='danger'><B>[themission]</B></span>")
|
||||
|
||||
|
||||
message_admins("[key_name_admin(src)] has spawned a Gimmick Team.", 1)
|
||||
log_admin("[key_name(src)] used Spawn Gimmick Team.")
|
||||
feedback_add_details("admin_verb","SPAWNGIM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
// ---------------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -1047,6 +1047,7 @@
|
||||
#include "code\modules\admin\verbs\dice.dm"
|
||||
#include "code\modules\admin\verbs\freeze.dm"
|
||||
#include "code\modules\admin\verbs\getlogs.dm"
|
||||
#include "code\modules\admin\verbs\gimmick_team.dm"
|
||||
#include "code\modules\admin\verbs\honksquad.dm"
|
||||
#include "code\modules\admin\verbs\infiltratorteam_syndicate.dm"
|
||||
#include "code\modules\admin\verbs\map_template_loadverb.dm"
|
||||
|
||||
Reference in New Issue
Block a user