mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-14 08:34:16 +01:00
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into BookClub
This commit is contained in:
@@ -739,10 +739,6 @@ var/global/nologevent = 0
|
||||
if(ticker.mode.config_tag == "cult")
|
||||
return 2
|
||||
return 1
|
||||
if(M.mind in ticker.mode.malf_ai)
|
||||
if(ticker.mode.config_tag == "malfunction")
|
||||
return 2
|
||||
return 1
|
||||
if(M.mind in ticker.mode.syndicates)
|
||||
if(ticker.mode.config_tag == "nuclear")
|
||||
return 2
|
||||
|
||||
@@ -113,7 +113,8 @@ var/list/admin_verbs_event = list(
|
||||
|
||||
var/list/admin_verbs_spawn = list(
|
||||
/datum/admins/proc/spawn_atom, /*allows us to spawn instances*/
|
||||
/client/proc/respawn_character
|
||||
/client/proc/respawn_character,
|
||||
/client/proc/admin_deserialize
|
||||
)
|
||||
var/list/admin_verbs_server = list(
|
||||
/client/proc/ToRban,
|
||||
@@ -151,8 +152,6 @@ var/list/admin_verbs_debug = list(
|
||||
/client/proc/toggledebuglogs,
|
||||
/client/proc/qdel_toggle,
|
||||
/client/proc/gc_dump_hdl,
|
||||
/client/proc/gc_toggle_profiling,
|
||||
/client/proc/gc_show_del_report,
|
||||
/client/proc/debugNatureMapGenerator,
|
||||
/client/proc/check_bomb_impacts,
|
||||
/client/proc/test_movable_UI,
|
||||
@@ -161,7 +160,9 @@ var/list/admin_verbs_debug = list(
|
||||
/proc/machine_upgrade,
|
||||
/client/proc/map_template_load,
|
||||
/client/proc/map_template_upload,
|
||||
/client/proc/view_runtimes
|
||||
/client/proc/view_runtimes,
|
||||
/client/proc/admin_serialize,
|
||||
/client/proc/admin_deserialize
|
||||
)
|
||||
var/list/admin_verbs_possess = list(
|
||||
/proc/possess,
|
||||
|
||||
@@ -7,7 +7,9 @@
|
||||
#define AREAEDIT_BUILDMODE 7
|
||||
#define FILL_BUILDMODE 8
|
||||
#define LINK_BUILDMODE 9
|
||||
#define NUM_BUILDMODES 9
|
||||
#define BOOM_BUILDMODE 10
|
||||
#define SAVE_BUILDMODE 11
|
||||
#define NUM_BUILDMODES 11
|
||||
|
||||
/obj/screen/buildmode
|
||||
icon = 'icons/misc/buildmode.dmi'
|
||||
@@ -80,8 +82,11 @@
|
||||
/obj/effect/buildmode_reticule/New(var/turf/t, var/client/c)
|
||||
loc = t
|
||||
I = image('icons/mob/blob.dmi', t, "marker",19.0,2) // Sprite reuse wooo
|
||||
cl = c
|
||||
cl.images += I
|
||||
if(c)
|
||||
cl = c
|
||||
cl.images += I
|
||||
else
|
||||
log_debug("Buildmode reticule created without a client!")
|
||||
|
||||
/obj/effect/buildmode_reticule/proc/deselect()
|
||||
qdel(src)
|
||||
@@ -167,6 +172,14 @@
|
||||
var/list/link_lines = list()
|
||||
var/obj/link_obj
|
||||
var/valid_links = 0
|
||||
//Explosion mode
|
||||
var/devastation = -1
|
||||
var/heavy = -1
|
||||
var/light = -1
|
||||
var/flash = -1
|
||||
var/flames = -1
|
||||
// Saving mode
|
||||
var/use_json = TRUE
|
||||
|
||||
/datum/click_intercept/buildmode/New(client/c)
|
||||
..()
|
||||
@@ -250,6 +263,17 @@
|
||||
to_chat(user, "<span class='notice'>Left Mouse Button on obj = Select button to link</span>")
|
||||
to_chat(user, "<span class='notice'>Right Mouse Button on obj = Link/unlink to selected button")
|
||||
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
||||
if(BOOM_BUILDMODE)
|
||||
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
||||
to_chat(user, "<span class='notice'>Mouse Button on obj = Kaboom</span>")
|
||||
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
||||
if(SAVE_BUILDMODE)
|
||||
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
||||
to_chat(user, "<span class='notice'>Left Mouse Button on turf/obj/mob = Select corner</span>")
|
||||
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
||||
|
||||
|
||||
|
||||
|
||||
/datum/click_intercept/buildmode/proc/change_settings(mob/user)
|
||||
switch(mode)
|
||||
@@ -322,6 +346,20 @@
|
||||
if(ispath(objholder,/mob) && !check_rights(R_DEBUG,0))
|
||||
objholder = /obj/structure/closet
|
||||
deselect_region()
|
||||
if(BOOM_BUILDMODE)
|
||||
devastation = input("Range of total devastation. -1 to none", text("Input")) as num|null
|
||||
if(devastation == null) devastation = -1
|
||||
var/heavy = input("Range of heavy impact. -1 to none", text("Input")) as num|null
|
||||
if(heavy == null) heavy = -1
|
||||
var/light = input("Range of light impact. -1 to none", text("Input")) as num|null
|
||||
if(light == null) light = -1
|
||||
var/flash = input("Range of flash. -1 to none", text("Input")) as num|null
|
||||
if(flash == null) flash = -1
|
||||
var/flames = input("Range of flames. -1 to none", text("Input")) as num|null
|
||||
if(flames == null) flames = -1
|
||||
|
||||
if(SAVE_BUILDMODE)
|
||||
use_json = (alert("Would you like to use json (Default is \"Yes\")?",,"Yes","No") == "Yes")
|
||||
|
||||
/datum/click_intercept/buildmode/proc/change_dir()
|
||||
switch(build_dir)
|
||||
@@ -591,7 +629,7 @@
|
||||
var/obj/effect/buildmode_line/L2 = new(holder, P, M, "[M.name] to [P.name]") // Yes, reversed one so that you can see it from both sides.
|
||||
L2.color = L.color
|
||||
link_lines += L2
|
||||
for(var/obj/machinery/door/poddoor/P in world)
|
||||
for(var/obj/machinery/door/poddoor/P in airlocks)
|
||||
if(P.id_tag == M.id)
|
||||
var/obj/effect/buildmode_line/L = new(holder, M, P, "[M.name] to [P.name]")
|
||||
L.color = M.normaldoorcontrol ? "#993333" : "#339933"
|
||||
@@ -601,3 +639,29 @@
|
||||
var/obj/effect/buildmode_line/L2 = new(holder, P, M, "[M.name] to [P.name]") // Yes, reversed one so that you can see it from both sides.
|
||||
L2.color = L.color
|
||||
link_lines += L2
|
||||
if(BOOM_BUILDMODE)
|
||||
explosion(object, devastation, heavy, light, flash, null, null,flames)
|
||||
if(SAVE_BUILDMODE)
|
||||
if(!cornerA)
|
||||
cornerA = select_tile(get_turf(object))
|
||||
return
|
||||
if(!cornerB)
|
||||
cornerB = select_tile(get_turf(object))
|
||||
if(left_click)
|
||||
if(cornerA && cornerB)
|
||||
var/turf/A = get_turf(cornerA)
|
||||
var/turf/B = get_turf(cornerB)
|
||||
deselect_region() // So we don't read our own reticules
|
||||
var/map_name = input(holder, "Please select a name for your map", "Buildmode", "")
|
||||
if(map_name == "")
|
||||
return
|
||||
var/map_flags = 0
|
||||
if(use_json)
|
||||
map_flags = 32 // Magic number defined in `writer.dm` that I can't use directly
|
||||
// because #defines are for some reason our coding standard
|
||||
var/our_map = maploader.save_map(A,B,map_name,map_flags)
|
||||
holder << ftp(our_map) // send the map they've made! Or are stealing, whatever
|
||||
to_chat(holder, "Map saving complete! [our_map]")
|
||||
return
|
||||
|
||||
deselect_region()
|
||||
|
||||
@@ -24,6 +24,10 @@ var/list/admin_datums = list()
|
||||
rights = initial_rights
|
||||
admin_datums[ckey] = src
|
||||
|
||||
/datum/admins/Destroy()
|
||||
..()
|
||||
return QDEL_HINT_HARDDEL_NOW
|
||||
|
||||
/datum/admins/proc/associate(client/C)
|
||||
if(istype(C))
|
||||
owner = C
|
||||
@@ -85,7 +89,7 @@ you will have to do something like if(client.holder.rights & R_ADMIN) yourself.
|
||||
admin_datums -= ckey
|
||||
if(holder)
|
||||
holder.disassociate()
|
||||
del(holder)
|
||||
qdel(holder)
|
||||
return 1
|
||||
|
||||
//This proc checks whether subject has at least ONE of the rights specified in rights_required.
|
||||
|
||||
@@ -461,7 +461,7 @@
|
||||
dat += "<tr><td><i>Head not found!</i></td></tr>"
|
||||
dat += "</table>"
|
||||
|
||||
if(istype(ticker.mode, /datum/game_mode/blob))
|
||||
if(GAMEMODE_IS_BLOB)
|
||||
var/datum/game_mode/blob/mode = ticker.mode
|
||||
dat += "<br><table cellspacing=5><tr><td><B>Blob</B></td><td></td><td></td></tr>"
|
||||
dat += "<tr><td><i>Progress: [blobs.len]/[mode.blobwincount]</i></td></tr>"
|
||||
@@ -523,10 +523,6 @@
|
||||
if(ticker.mode.greyshirts.len)
|
||||
dat += check_role_table("Greyshirts", ticker.mode.greyshirts)
|
||||
|
||||
var/datum/game_mode/mutiny/mutiny = get_mutiny_mode()
|
||||
if(mutiny)
|
||||
dat += mutiny.check_antagonists_ui(src)
|
||||
|
||||
dat += "</body></html>"
|
||||
usr << browse(dat, "window=roundstatus;size=400x500")
|
||||
else
|
||||
|
||||
@@ -38,13 +38,7 @@
|
||||
<A href='?src=\ref[src];secretsfun=power'>Make all areas powered</A>
|
||||
<A href='?src=\ref[src];secretsfun=unpower'>Make all areas unpowered</A>
|
||||
<A href='?src=\ref[src];secretsfun=quickpower'>Power all SMES</A><BR>
|
||||
<BR>
|
||||
<B>Shuttle options</b><br>
|
||||
<A href='?src=\ref[src];secretsfun=launchshuttle'>Launch a shuttle</A>
|
||||
<A href='?src=\ref[src];secretsfun=forcelaunchshuttle'>Force launch a shuttle</A><BR>
|
||||
<A href='?src=\ref[src];secretsfun=jumpshuttle'>Jump a shuttle</A>
|
||||
<A href='?src=\ref[src];secretsfun=moveshuttle'>Move a shuttle</A><BR>
|
||||
<BR></center>
|
||||
</center>
|
||||
"}
|
||||
|
||||
else if(check_rights(R_SERVER,0)) //only add this if admin secrets are unavailiable; otherwise, it's added inline
|
||||
@@ -73,7 +67,7 @@
|
||||
<center>
|
||||
<h2><B>IC Events</B></h2>
|
||||
<b>Teams</b><br>
|
||||
<A href='?src=\ref[src];secretsfun=striketeam'>Send in a strike team</A>
|
||||
<A href='?src=\ref[src];secretsfun=striketeam'>Send in the Deathsquad</A>
|
||||
<A href='?src=\ref[src];secretsfun=striketeam_syndicate'>Send in a syndicate strike team</A>
|
||||
<A href='?src=\ref[src];secretsfun=honksquad'>Send in a HONKsquad</A><BR>
|
||||
<b>Change Security Level</b><BR>
|
||||
|
||||
+21
-70
@@ -48,22 +48,18 @@
|
||||
if(!src.makeCult())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
if("5")
|
||||
log_admin("[key_name(usr)] has spawned a malf AI.")
|
||||
if(!src.makeMalfAImode())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
if("6")
|
||||
log_admin("[key_name(usr)] has spawned a wizard.")
|
||||
if(!src.makeWizard())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
if("7")
|
||||
if("6")
|
||||
log_admin("[key_name(usr)] has spawned vampires.")
|
||||
if(!src.makeVampires())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
if("8")
|
||||
if("7")
|
||||
log_admin("[key_name(usr)] has spawned vox raiders.")
|
||||
if(!src.makeVoxRaiders())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
if("9")
|
||||
if("8")
|
||||
log_admin("[key_name(usr)] has spawned an abductor team.")
|
||||
if(!src.makeAbductorTeam())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
@@ -454,7 +450,7 @@
|
||||
add_note(M.ckey, "Appearance banned - [reason]", null, usr, 0)
|
||||
message_admins("\blue [key_name_admin(usr)] appearance banned [key_name_admin(M)]", 1)
|
||||
to_chat(M, "\red<BIG><B>You have been appearance banned by [usr.client.ckey].</B></BIG>")
|
||||
to_chat(M, "\red <B>The reason is: [reason]</B>")
|
||||
to_chat(M, "<span class='danger'>The reason is: [reason]</span>")
|
||||
to_chat(M, "\red Appearance ban can be lifted only upon request.")
|
||||
if(config.banappeals)
|
||||
to_chat(M, "\red To try to resolve this matter head to [config.banappeals]")
|
||||
@@ -818,7 +814,7 @@
|
||||
add_note(M.ckey, "Banned from [msg] - [reason]", null, usr, 0)
|
||||
message_admins("\blue [key_name_admin(usr)] banned [key_name_admin(M)] from [msg] for [mins] minutes", 1)
|
||||
to_chat(M, "\red<BIG><B>You have been jobbanned by [usr.client.ckey] from: [msg].</B></BIG>")
|
||||
to_chat(M, "\red <B>The reason is: [reason]</B>")
|
||||
to_chat(M, "<span class='danger'>The reason is: [reason]</span>")
|
||||
to_chat(M, "\red This jobban will be lifted in [mins] minutes.")
|
||||
href_list["jobban2"] = 1 // lets it fall through and refresh
|
||||
return 1
|
||||
@@ -838,7 +834,7 @@
|
||||
add_note(M.ckey, "Banned from [msg] - [reason]", null, usr, 0)
|
||||
message_admins("\blue [key_name_admin(usr)] banned [key_name_admin(M)] from [msg]", 1)
|
||||
to_chat(M, "\red<BIG><B>You have been jobbanned by [usr.client.ckey] from: [msg].</B></BIG>")
|
||||
to_chat(M, "\red <B>The reason is: [reason]</B>")
|
||||
to_chat(M, "<span class='danger'>The reason is: [reason]</span>")
|
||||
to_chat(M, "\red Jobban can be lifted only upon request.")
|
||||
href_list["jobban2"] = 1 // lets it fall through and refresh
|
||||
return 1
|
||||
@@ -1099,7 +1095,7 @@
|
||||
master_mode = href_list["c_mode2"]
|
||||
log_admin("[key_name(usr)] set the mode as [master_mode].")
|
||||
message_admins("\blue [key_name_admin(usr)] set the mode as [master_mode].", 1)
|
||||
to_chat(world, "\blue <b>The mode is now: [master_mode]</b>")
|
||||
to_chat(world, "<span class='boldnotice'>The mode is now: [master_mode]</span>")
|
||||
Game() // updates the main game menu
|
||||
world.save_mode(master_mode)
|
||||
.(href, list("c_mode"=1))
|
||||
@@ -1252,6 +1248,7 @@
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] back to the Lobby.")
|
||||
|
||||
var/mob/new_player/NP = new()
|
||||
non_respawnable_keys -= M.ckey
|
||||
NP.ckey = M.ckey
|
||||
qdel(M)
|
||||
|
||||
@@ -1552,53 +1549,7 @@
|
||||
|
||||
else if(href_list["adminmoreinfo"])
|
||||
var/mob/M = locate(href_list["adminmoreinfo"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "This can only be used on instances of type /mob")
|
||||
return
|
||||
|
||||
var/location_description = ""
|
||||
var/special_role_description = ""
|
||||
var/health_description = ""
|
||||
var/gender_description = ""
|
||||
var/turf/T = get_turf(M)
|
||||
|
||||
//Location
|
||||
if(isturf(T))
|
||||
if(isarea(T.loc))
|
||||
location_description = "([M.loc == T ? "at coordinates " : "in [M.loc] at coordinates "] [T.x], [T.y], [T.z] in area <b>[T.loc]</b>)"
|
||||
else
|
||||
location_description = "([M.loc == T ? "at coordinates " : "in [M.loc] at coordinates "] [T.x], [T.y], [T.z])"
|
||||
|
||||
//Job + antagonist
|
||||
if(M.mind)
|
||||
special_role_description = "Role: <b>[M.mind.assigned_role]</b>; Antagonist: <font color='red'><b>[M.mind.special_role]</b></font>; Has been rev: [(M.mind.has_been_rev)?"Yes":"No"]"
|
||||
else
|
||||
special_role_description = "Role: <i>Mind datum missing</i> Antagonist: <i>Mind datum missing</i>; Has been rev: <i>Mind datum missing</i>;"
|
||||
|
||||
//Health
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
var/status
|
||||
switch(M.stat)
|
||||
if(0) status = "Alive"
|
||||
if(1) status = "<font color='orange'><b>Unconscious</b></font>"
|
||||
if(2) status = "<font color='red'><b>Dead</b></font>"
|
||||
health_description = "Status = [status]"
|
||||
health_description += "<BR>Oxy: [L.getOxyLoss()] - Tox: [L.getToxLoss()] - Fire: [L.getFireLoss()] - Brute: [L.getBruteLoss()] - Clone: [L.getCloneLoss()] - Brain: [L.getBrainLoss()]"
|
||||
else
|
||||
health_description = "This mob type has no health to speak of."
|
||||
|
||||
//Gener
|
||||
switch(M.gender)
|
||||
if(MALE,FEMALE) gender_description = "[M.gender]"
|
||||
else gender_description = "<font color='red'><b>[M.gender]</b></font>"
|
||||
|
||||
to_chat(src.owner, "<b>Info about [M.name]:</b> ")
|
||||
to_chat(src.owner, "Mob type = [M.type]; Gender = [gender_description] Damage = [health_description]")
|
||||
to_chat(src.owner, "Name = <b>[M.name]</b>; Real_name = [M.real_name]; Mind_name = [M.mind?"[M.mind.name]":""]; Key = <b>[M.key]</b>;")
|
||||
to_chat(src.owner, "Location = [location_description];")
|
||||
to_chat(src.owner, "[special_role_description]")
|
||||
to_chat(src.owner, "(<a href='?src=\ref[usr];priv_msg=\ref[M]'>PM</a>) (<A HREF='?src=\ref[src];adminplayeropts=\ref[M]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[M]'>VV</A>) (<A HREF='?src=\ref[src];subtlemessage=\ref[M]'>SM</A>) (<A HREF='?src=\ref[src];adminplayerobservefollow=\ref[M]'>FLW</A>) (<A HREF='?src=\ref[src];secretsadmin=check_antagonist'>CA</A>)")
|
||||
admin_mob_info(M)
|
||||
|
||||
else if(href_list["adminspawncookie"])
|
||||
if(!check_rights(R_ADMIN|R_EVENT)) return
|
||||
@@ -2012,7 +1963,7 @@
|
||||
return
|
||||
else
|
||||
for(var/obj/machinery/photocopier/faxmachine/F in allfaxes)
|
||||
if((F.z in config.station_levels))
|
||||
if(is_station_level(F.z))
|
||||
spawn(0)
|
||||
if(!F.receivefax(P))
|
||||
to_chat(src.owner, "\red Message transmission to [F.department] failed.")
|
||||
@@ -2359,7 +2310,7 @@
|
||||
for(var/mob/living/carbon/human/H in mob_list)
|
||||
var/turf/loc = find_loc(H)
|
||||
var/security = 0
|
||||
if(!(loc.z in config.station_levels) || prisonwarped.Find(H))
|
||||
if(!is_station_level(loc.z) || prisonwarped.Find(H))
|
||||
|
||||
//don't warp them if they aren't ready or are already there
|
||||
continue
|
||||
@@ -2405,7 +2356,7 @@
|
||||
if(is_special_character(H)) continue
|
||||
//traitorize(H, objective, 0)
|
||||
ticker.mode.traitors += H.mind
|
||||
H.mind.special_role = "traitor"
|
||||
H.mind.special_role = SPECIAL_ROLE_TRAITOR
|
||||
var/datum/objective/new_objective = new
|
||||
new_objective.owner = H
|
||||
new_objective.explanation_text = objective
|
||||
@@ -2415,7 +2366,7 @@
|
||||
ticker.mode.finalize_traitor(H.mind)
|
||||
for(var/mob/living/silicon/A in player_list)
|
||||
ticker.mode.traitors += A.mind
|
||||
A.mind.special_role = "traitor"
|
||||
A.mind.special_role = SPECIAL_ROLE_TRAITOR
|
||||
var/datum/objective/new_objective = new
|
||||
new_objective.owner = A
|
||||
new_objective.explanation_text = objective
|
||||
@@ -2478,11 +2429,11 @@
|
||||
M.show_message(text("\blue The chilling wind suddenly stops..."), 1)
|
||||
/* if("shockwave")
|
||||
ok = 1
|
||||
to_chat(world, "\red <B><big>ALERT: STATION STRESS CRITICAL</big></B>")
|
||||
to_chat(world, "<span class='danger'><big>ALERT: STATION STRESS CRITICAL</big></span>")
|
||||
sleep(60)
|
||||
to_chat(world, "\red <B><big>ALERT: STATION STRESS CRITICAL. TOLERABLE LEVELS EXCEEDED!</big></B>")
|
||||
to_chat(world, "<span class='danger'><big>ALERT: STATION STRESS CRITICAL. TOLERABLE LEVELS EXCEEDED!</big></span>")
|
||||
sleep(80)
|
||||
to_chat(world, "\red <B><big>ALERT: STATION STRUCTURAL STRESS CRITICAL. SAFETY MECHANISMS FAILED!</big></B>")
|
||||
to_chat(world, "<span class='danger'><big>ALERT: STATION STRUCTURAL STRESS CRITICAL. SAFETY MECHANISMS FAILED!</big></span>")
|
||||
sleep(40)
|
||||
for(var/mob/M in world)
|
||||
shake_camera(M, 400, 1)
|
||||
@@ -2570,7 +2521,7 @@
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","RET")
|
||||
for(var/mob/living/carbon/human/H in player_list)
|
||||
to_chat(H, "\red <B>You suddenly feel stupid.</B>")
|
||||
to_chat(H, "<span class='danger'>You suddenly feel stupid.</span>")
|
||||
H.setBrainLoss(60)
|
||||
message_admins("[key_name_admin(usr)] made everybody retarded")
|
||||
if("fakeguns")
|
||||
@@ -2595,8 +2546,8 @@
|
||||
if("eagles")//SCRAW
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","EgL")
|
||||
for(var/obj/machinery/door/airlock/W in world)
|
||||
if((W.z in config.station_levels) && !istype(get_area(W), /area/bridge) && !istype(get_area(W), /area/crew_quarters) && !istype(get_area(W), /area/security/prison))
|
||||
for(var/obj/machinery/door/airlock/W in airlocks)
|
||||
if(is_station_level(W.z) && !istype(get_area(W), /area/bridge) && !istype(get_area(W), /area/crew_quarters) && !istype(get_area(W), /area/security/prison))
|
||||
W.req_access = list()
|
||||
message_admins("[key_name_admin(usr)] activated Egalitarian Station mode")
|
||||
command_announcement.Announce("Centcomm airlock control override activated. Please take this time to get acquainted with your coworkers.", new_sound = 'sound/AI/commandreport.ogg')
|
||||
@@ -2788,12 +2739,12 @@
|
||||
dat += "No-one has done anything this round!"
|
||||
usr << browse(dat, "window=admin_log")
|
||||
if("maint_access_brig")
|
||||
for(var/obj/machinery/door/airlock/maintenance/M in world)
|
||||
for(var/obj/machinery/door/airlock/maintenance/M in airlocks)
|
||||
if(access_maint_tunnels in M.req_access)
|
||||
M.req_access = list(access_brig)
|
||||
message_admins("[key_name_admin(usr)] made all maint doors brig access-only.")
|
||||
if("maint_access_engiebrig")
|
||||
for(var/obj/machinery/door/airlock/maintenance/M in world)
|
||||
for(var/obj/machinery/door/airlock/maintenance/M in airlocks)
|
||||
if(access_maint_tunnels in M.req_access)
|
||||
M.req_access = list()
|
||||
M.req_one_access = list(access_brig,access_engine)
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
|
||||
if("delete")
|
||||
for(var/datum/d in objs)
|
||||
del(d)
|
||||
qdel(d)
|
||||
|
||||
if("select")
|
||||
var/text = ""
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
/*if(C && C.last_pm_recieved + config.simultaneous_pm_warning_timeout > world.time && holder)
|
||||
//send a warning to admins, but have a delay popup for mods
|
||||
if(holder.rights & R_ADMIN)
|
||||
to_chat(src, "\red <b>Simultaneous PMs warning:</b> that player has been PM'd in the last [config.simultaneous_pm_warning_timeout / 10] seconds by: [C.ckey_last_pm]")
|
||||
to_chat(src, "<span class='danger'>Simultaneous PMs warning:</span> that player has been PM'd in the last [config.simultaneous_pm_warning_timeout / 10] seconds by: [C.ckey_last_pm]")
|
||||
else
|
||||
if(alert("That player has been PM'd in the last [config.simultaneous_pm_warning_timeout / 10] seconds by: [C.ckey_last_pm]","Simultaneous PMs warning","Continue","Cancel") == "Cancel")
|
||||
return*/
|
||||
|
||||
@@ -373,7 +373,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
|
||||
for(var/I in singularities)
|
||||
var/obj/singularity/S = I
|
||||
if(S.z == ZLEVEL_CENTCOMM || S.z >= MAX_Z)
|
||||
if(!is_level_reachable(S.z))
|
||||
continue
|
||||
qdel(S)
|
||||
log_admin("[key_name(src)] has deleted all Singularities and Tesla orbs.")
|
||||
@@ -593,17 +593,25 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
"tournament janitor",
|
||||
"pirate",
|
||||
"space pirate",
|
||||
"soviet tourist",
|
||||
"soviet soldier",
|
||||
"soviet admiral",
|
||||
"tunnel clown",
|
||||
"mime assassin",
|
||||
"survivor",
|
||||
"greytide",
|
||||
"greytide leader",
|
||||
"greytide xeno",
|
||||
"masked killer",
|
||||
"singuloth knight",
|
||||
"dark lord",
|
||||
"assassin",
|
||||
"spy",
|
||||
"vox",
|
||||
"death commando",
|
||||
"syndicate agent",
|
||||
"syndicate operative",
|
||||
"syndicate bomber",
|
||||
"syndicate strike team",
|
||||
"syndicate officer",
|
||||
"chrono legionnaire",
|
||||
@@ -648,7 +656,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
if(jobdatum)
|
||||
dresscode = "[jobdatum.title]"
|
||||
jobdatum.equip(M)
|
||||
equip_special_id(M,jobdatum.access,jobdatum.title, jobdatum.idtype)
|
||||
equip_special_id(M,jobdatum.get_access(),jobdatum.title, jobdatum.idtype)
|
||||
|
||||
if("standard space gear")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes)
|
||||
@@ -728,7 +736,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes)
|
||||
var/obj/item/weapon/storage/backpack/backpack = new(M)
|
||||
for(var/obj/item/I in backpack)
|
||||
del(I)
|
||||
qdel(I)
|
||||
M.equip_to_slot_or_del(backpack, slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/mop(M), slot_r_hand)
|
||||
var/obj/item/weapon/reagent_containers/glass/bucket/bucket = new(M)
|
||||
@@ -746,30 +754,29 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
|
||||
if("pirate")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/pirate(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/bandana(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword/pirate(M), slot_r_hand)
|
||||
equip_special_id(M,get_all_accesses(), "Pirate", /obj/item/weapon/card/id)
|
||||
equip_special_id(M,list(access_maint_tunnels), "Pirate", /obj/item/weapon/card/id)
|
||||
|
||||
if("space pirate")
|
||||
if("space pirate") // not spaceworthy, just has fancier coat.
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/pirate(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/pirate(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/pirate(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword/pirate(M), slot_r_hand)
|
||||
equip_special_id(M,get_all_accesses(), "Space Pirate", /obj/item/weapon/card/id)
|
||||
|
||||
if("soviet soldier")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/soviet(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(M), slot_head)
|
||||
equip_special_id(M,get_all_accesses(), "Soviet Soldier", /obj/item/weapon/card/id)
|
||||
equip_special_id(M,list(access_maint_tunnels), "Space Pirate", /obj/item/weapon/card/id)
|
||||
|
||||
if("tunnel clown")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/clown(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(M), slot_wear_mask)
|
||||
@@ -780,25 +787,106 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/chaplain_hoodie(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/food/snacks/grown/banana(M), slot_l_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/bikehorn(M), slot_r_store)
|
||||
equip_special_id(M,get_all_accesses(), "Tunnel Clown", /obj/item/weapon/card/id)
|
||||
equip_special_id(M,list(access_clown, access_theatre, access_maint_tunnels), "Tunnel Clown", /obj/item/weapon/card/id)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/flashlight(M), slot_in_backpack)
|
||||
var/obj/item/weapon/twohanded/fireaxe/fire_axe = new(M)
|
||||
M.equip_to_slot_or_del(fire_axe, slot_r_hand)
|
||||
|
||||
|
||||
if("mime assassin")
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/mime(M), slot_back)
|
||||
if(M.gender == FEMALE)
|
||||
M.equip_or_collect(new /obj/item/clothing/under/sexymime(M), slot_w_uniform)
|
||||
M.equip_or_collect(new /obj/item/clothing/mask/gas/sexymime(M), slot_wear_mask)
|
||||
else
|
||||
M.equip_or_collect(new /obj/item/clothing/under/mime(M), slot_w_uniform)
|
||||
M.equip_or_collect(new /obj/item/clothing/mask/gas/mime(M), slot_wear_mask)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/white(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/beret(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full/multitool(M), slot_belt)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/suspenders(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/syndie_kit/caneshotgun, slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/toy/crayon/mime, slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/automatic/pistol(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/suppressor(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/pen/sleepy(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/weapon/reagent_containers/food/snacks/syndidonkpocket(M), slot_in_backpack)
|
||||
var/obj/item/device/pda/mime/pda = new(M)
|
||||
pda.owner = M.real_name
|
||||
pda.ownjob = "Mime"
|
||||
pda.name = "PDA-[M.real_name] ([pda.ownjob])"
|
||||
M.equip_to_slot_or_del(pda, slot_wear_pda)
|
||||
equip_special_id(M,list(access_mime, access_theatre, access_maint_tunnels), "Mime", /obj/item/weapon/card/id/syndicate)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/flashlight(M), slot_in_backpack)
|
||||
|
||||
if("survivor")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/overalls(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/latex(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
|
||||
equip_special_id(M,get_all_accesses(), "Survivor", /obj/item/weapon/card/id)
|
||||
equip_special_id(M,list(access_maint_tunnels), "Survivor", /obj/item/weapon/card/id)
|
||||
for(var/obj/item/carried_item in M.contents)
|
||||
if(!istype(carried_item, /obj/item/weapon/implant))
|
||||
carried_item.add_blood(M)
|
||||
|
||||
if("greytide")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas(M), slot_wear_mask)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/toolbox/mechanical(M), slot_l_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/flag/grey(M), slot_r_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/flashlight(M), slot_in_backpack)
|
||||
equip_special_id(M,list(access_maint_tunnels), "Greytide", /obj/item/weapon/card/id)
|
||||
|
||||
if("greytide leader")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas(M), slot_wear_mask)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/toolbox/mechanical(M), slot_l_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/flag/grey(M), slot_r_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/yellow(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full/multitool(M), slot_belt)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/welding(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/flashlight(M), slot_in_backpack)
|
||||
equip_special_id(M,list(access_maint_tunnels), "Greytide Leader", /obj/item/weapon/card/id)
|
||||
|
||||
if("greytide xeno")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas(M), slot_wear_mask)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/xenos(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/xenos(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen/double/full(M), slot_l_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/toy/toy_xeno(M), slot_r_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/yellow(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full/multitool(M), slot_belt)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/welding(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/flashlight(M), slot_in_backpack)
|
||||
equip_special_id(M,list(access_maint_tunnels), "Legit Xenomorph", /obj/item/weapon/card/id)
|
||||
|
||||
if("masked killer")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/overalls(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/latex(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(M), slot_wear_mask)
|
||||
@@ -809,7 +897,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/kitchen/knife(M), slot_l_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/scalpel(M), slot_r_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/flashlight(M), slot_in_backpack)
|
||||
equip_special_id(M,get_all_accesses(), "Masked Killer", /obj/item/weapon/card/id/syndicate, "syndie")
|
||||
equip_special_id(M,list(access_maint_tunnels), "Masked Killer", /obj/item/weapon/card/id/syndicate, "syndie")
|
||||
var/obj/item/weapon/twohanded/fireaxe/fire_axe = new(M)
|
||||
M.equip_to_slot_or_del(fire_axe, slot_r_hand)
|
||||
for(var/obj/item/carried_item in M.contents)
|
||||
@@ -821,6 +909,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/flashlight(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/syndicate(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/twohanded/dualsaber/red(M), slot_l_hand)
|
||||
@@ -841,6 +930,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wcoat(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword/saber(M), slot_l_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/flashlight(M), slot_in_backpack)
|
||||
var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = new(M)
|
||||
for(var/obj/item/briefcase_item in sec_briefcase)
|
||||
@@ -859,7 +949,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
pda.owner = M.real_name
|
||||
pda.ownjob = "Reaper"
|
||||
pda.name = "PDA-[M.real_name] ([pda.ownjob])"
|
||||
M.equip_to_slot_or_del(pda, slot_belt)
|
||||
M.equip_to_slot_or_del(pda, slot_wear_pda)
|
||||
equip_special_id(M,get_all_accesses(), "Reaper", /obj/item/weapon/card/id/syndicate, "syndie")
|
||||
|
||||
if("spy")
|
||||
@@ -880,14 +970,39 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/pen/sleepy(M), slot_r_store)
|
||||
var/obj/item/weapon/implant/dust/DUST = new /obj/item/weapon/implant/dust(M)
|
||||
DUST.implant(M)
|
||||
var/obj/item/weapon/implant/dust/STOR = new /obj/item/weapon/implant/storage(M)
|
||||
STOR.implant(M)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/implanter/storage(M), slot_in_backpack)
|
||||
var/obj/item/device/pda/heads/pda = new(M)
|
||||
pda.owner = M.real_name
|
||||
pda.ownjob = "Spy"
|
||||
pda.name = "PDA-[M.real_name] ([pda.ownjob])"
|
||||
M.equip_to_slot_or_del(pda, slot_belt)
|
||||
equip_special_id(M,get_all_accesses(), "Spy", /obj/item/weapon/card/id/syndicate, "syndie")
|
||||
equip_special_id(M,list(access_maint_tunnels), "Spy", /obj/item/weapon/card/id/syndicate, "syndie")
|
||||
|
||||
|
||||
if("vox")
|
||||
if(istype(M, /mob/living/carbon/human/voxarmalis)) // have to do this, they cannot wear normal vox gear!
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/vox_grey(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/syndicate(M), slot_wear_mask)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/vox/carapace(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/vox/carapace(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/vox/vox_robes (M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/magboots/vox(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/card/id/syndicate/vox(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/syndicate, slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/yellow/vox, slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic, slot_l_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen/vox, slot_r_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle, slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/flashlight, slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs/cable/zipties, slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/flash, slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/noisecannon, slot_in_backpack)
|
||||
equip_special_id(M,get_all_accesses(), "Vox Armalis", /obj/item/weapon/card/id/syndicate/vox, "syndie")
|
||||
else
|
||||
M.equip_vox_raider()
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_l_hand)
|
||||
M.regenerate_icons()
|
||||
|
||||
if("death commando")
|
||||
M.equip_death_commando()
|
||||
@@ -909,15 +1024,31 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
U.hidden_uplink.uses = 20
|
||||
M.equip_to_slot_or_del(U, slot_r_store)
|
||||
|
||||
if("syndicate bomber")
|
||||
M.equip_or_collect(new /obj/item/clothing/under/syndicate(M), slot_w_uniform)
|
||||
M.equip_or_collect(new /obj/item/clothing/shoes/combat(M), slot_shoes)
|
||||
M.equip_or_collect(new /obj/item/clothing/gloves/combat(M), slot_gloves)
|
||||
M.equip_or_collect(new /obj/item/weapon/storage/backpack(M), slot_back)
|
||||
M.equip_or_collect(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/device/flashlight(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/card/emag(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/beacon/syndicate/bomb(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/beacon/syndicate/bomb(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/syndicatedetonator(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/weapon/storage/belt/utility/full/multitool(M), slot_belt)
|
||||
M.equip_or_collect(new /obj/item/weapon/reagent_containers/food/snacks/syndidonkpocket(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/device/radio/headset/syndicate(M), slot_l_ear)
|
||||
equip_special_id(M,get_syndicate_access("Syndicate Operative"), "Syndicate Bomber", /obj/item/weapon/card/id/syndicate, "syndie")
|
||||
|
||||
if("syndicate operative")
|
||||
M.equip_or_collect(new /obj/item/clothing/under/syndicate(M), slot_w_uniform)
|
||||
M.equip_or_collect(new /obj/item/clothing/shoes/combat(M), slot_shoes)
|
||||
M.equip_or_collect(new /obj/item/clothing/gloves/combat(M), slot_gloves)
|
||||
M.equip_or_collect(new /obj/item/weapon/storage/backpack(M), slot_back)
|
||||
M.equip_or_collect(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/weapon/reagent_containers/food/pill/initropidril(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/weapon/gun/projectile/automatic/pistol(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/ammo_box/magazine/m10mm(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/weapon/crowbar/red(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/clothing/glasses/night(M), slot_glasses)
|
||||
M.equip_or_collect(new /obj/item/weapon/storage/belt/military(M), slot_belt)
|
||||
@@ -948,8 +1079,8 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_or_collect(new /obj/item/clothing/shoes/combat(M), slot_shoes)
|
||||
M.equip_or_collect(new /obj/item/clothing/gloves/combat(M), slot_gloves)
|
||||
M.equip_or_collect(new /obj/item/weapon/storage/backpack(M), slot_back)
|
||||
M.equip_or_collect(new /obj/item/weapon/reagent_containers/food/pill/initropidril(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/weapon/reagent_containers/food/pill/initropidril(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/clothing/glasses/thermal(M), slot_glasses)
|
||||
M.equip_or_collect(new /obj/item/weapon/storage/belt/military(M), slot_belt)
|
||||
M.equip_or_collect(new /obj/item/weapon/pinpointer/advpinpointer(M), slot_l_store)
|
||||
@@ -974,9 +1105,10 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_or_collect(new /obj/item/clothing/shoes/black(M), slot_shoes)
|
||||
M.equip_or_collect(new /obj/item/clothing/gloves/color/black(M), slot_gloves)
|
||||
M.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
||||
M.equip_or_collect(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/clothing/head/that(M), slot_head)
|
||||
M.equip_or_collect(new /obj/item/device/radio/headset/ert(M), slot_l_ear)
|
||||
M.equip_or_collect(new /obj/item/device/pda/(M), slot_belt)
|
||||
M.equip_or_collect(new /obj/item/device/pda/(M), slot_wear_pda)
|
||||
equip_special_id(M,get_centcom_access("VIP Guest"), "VIP Guest", /obj/item/weapon/card/id/centcom)
|
||||
|
||||
if("nt navy officer")
|
||||
@@ -985,10 +1117,11 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_or_collect(new /obj/item/clothing/gloves/color/white(M), slot_gloves)
|
||||
M.equip_or_collect(new /obj/item/device/radio/headset/centcom(M), slot_l_ear)
|
||||
M.equip_or_collect(new /obj/item/clothing/head/beret/centcom/officer(M), slot_head)
|
||||
M.equip_or_collect(new /obj/item/device/pda/centcom(M), slot_belt)
|
||||
M.equip_or_collect(new /obj/item/device/pda/centcom(M), slot_wear_pda)
|
||||
M.equip_or_collect(new /obj/item/clothing/glasses/hud/security/sunglasses(M), slot_glasses)
|
||||
M.equip_or_collect(new /obj/item/weapon/gun/energy/pulse/pistol(M), slot_belt)
|
||||
M.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
||||
M.equip_or_collect(new /obj/item/weapon/gun/energy/pulse/pistol(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/weapon/implanter/dust(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/weapon/implanter/death_alarm(M), slot_in_backpack)
|
||||
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(M)
|
||||
@@ -1003,10 +1136,11 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_or_collect(new /obj/item/clothing/gloves/color/white(M), slot_gloves)
|
||||
M.equip_or_collect(new /obj/item/device/radio/headset/centcom(M), slot_l_ear)
|
||||
M.equip_or_collect(new /obj/item/clothing/head/beret/centcom/captain(M), slot_head)
|
||||
M.equip_or_collect(new /obj/item/device/pda/centcom(M), slot_belt)
|
||||
M.equip_or_collect(new /obj/item/device/pda/centcom(M), slot_wear_pda)
|
||||
M.equip_or_collect(new /obj/item/clothing/glasses/hud/security/sunglasses(M), slot_glasses)
|
||||
M.equip_or_collect(new /obj/item/weapon/gun/energy/pulse/pistol(M), slot_belt)
|
||||
M.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
||||
M.equip_or_collect(new /obj/item/weapon/gun/energy/pulse/pistol(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/weapon/implanter/dust(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/weapon/implanter/death_alarm(M), slot_in_backpack)
|
||||
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(M)
|
||||
@@ -1047,10 +1181,11 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/centcom(src), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/deathsquad/beret(M), slot_head) // job has /obj/item/clothing/head/beret/centcom/officer/navy
|
||||
M.equip_to_slot_or_del(new /obj/item/device/pda/centcom(M), slot_belt)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/pda/centcom(M), slot_wear_pda)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/cyber(M), slot_glasses) // job has /obj/item/clothing/glasses/hud/security/sunglasses
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol/m1911(M), slot_belt)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(M), slot_back)
|
||||
M.equip_or_collect(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/deathsquad/officer(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen/double/full(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/implanter/dust(M), slot_in_backpack)
|
||||
@@ -1075,9 +1210,10 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/centcom(src), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/deathsquad/beret(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/cyber(M), slot_glasses) // special
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol/m1911(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol/m1911(M), slot_belt)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar/cohiba(M), slot_wear_mask)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
||||
M.equip_or_collect(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/matches(M), slot_r_store)
|
||||
M.equip_or_collect(new /obj/item/weapon/melee/classic_baton/telescopic(M), slot_in_backpack)
|
||||
|
||||
@@ -1088,7 +1224,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
pda.name = "PDA-[M.real_name] ([pda.ownjob])"
|
||||
pda.desc = "A portable microcomputer by Thinktronic Systems, LTD. This is model is a special edition designed for military field work."
|
||||
|
||||
M.equip_or_collect(pda, slot_belt)
|
||||
M.equip_or_collect(pda, slot_wear_pda)
|
||||
M.equip_or_collect(new /obj/item/weapon/implanter/dust(M), slot_in_backpack)
|
||||
M.equip_or_collect(new /obj/item/weapon/implanter/death_alarm(M), slot_in_backpack)
|
||||
equip_special_id(M,get_centcom_access("Special Operations Officer"), "Special Operations Officer", /obj/item/weapon/card/id/centcom)
|
||||
@@ -1117,7 +1253,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/spellbook(M), slot_r_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/twohanded/staff(M), slot_l_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
|
||||
equip_special_id(M,get_all_accesses(), "Wizard", /obj/item/weapon/card/id)
|
||||
|
||||
if("red wizard")
|
||||
@@ -1130,7 +1266,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/spellbook(M), slot_r_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/twohanded/staff(M), slot_l_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
|
||||
equip_special_id(M,get_all_accesses(), "Wizard", /obj/item/weapon/card/id)
|
||||
|
||||
if("marisa wizard")
|
||||
@@ -1143,20 +1279,53 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/spellbook(M), slot_r_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/twohanded/staff(M), slot_l_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
|
||||
equip_special_id(M,get_all_accesses(), "Wizard", /obj/item/weapon/card/id)
|
||||
|
||||
if("soviet tourist")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/soviet(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(M), slot_in_backpack)
|
||||
equip_special_id(M,list(access_maint_tunnels), "Soviet Tourist", /obj/item/weapon/card/id)
|
||||
|
||||
if("soviet soldier")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/soviet(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/syndicate(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/card/emag(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/flashlight(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/grenade/plastic/c4(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/grenade/plastic/c4(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/revolver/mateba(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/ammo_box/a357(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/ammo_box/a357(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/ammo_box/a357(M), slot_in_backpack)
|
||||
equip_special_id(M,list(access_maint_tunnels), "Soviet Soldier", /obj/item/weapon/card/id)
|
||||
|
||||
if("soviet admiral")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/soviet(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/hgpiratecap(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/syndicate(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/eyepatch(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/hgpirate(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/revolver/mateba(M), slot_belt)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/soviet(M), slot_w_uniform)
|
||||
equip_special_id(M,get_all_accesses() + get_all_centcom_access(), "Admiral", /obj/item/weapon/card/id, "commander")
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/revolver/mateba(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/ammo_box/a357(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/ammo_box/a357(M), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/ammo_box/a357(M), slot_in_backpack)
|
||||
equip_special_id(M,get_all_accesses() + get_all_centcom_access(), "Soviet Admiral", /obj/item/weapon/card/id, "commander")
|
||||
//W.icon_state = "commander"
|
||||
|
||||
if("chrono legionnaire")
|
||||
@@ -1201,33 +1370,28 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
if(alert("Are you sure? This will start up the engine. Should only be used during debug!",,"Yes","No") != "Yes")
|
||||
return
|
||||
|
||||
for(var/obj/machinery/power/emitter/E in world)
|
||||
for(var/obj/machinery/power/emitter/E in machines)
|
||||
if(E.anchored)
|
||||
E.active = 1
|
||||
|
||||
for(var/obj/machinery/field/generator/F in world)
|
||||
if(F.anchored)
|
||||
F.Varedit_start = 1
|
||||
spawn(30)
|
||||
for(var/obj/machinery/the_singularitygen/G in world)
|
||||
if(G.anchored)
|
||||
var/obj/singularity/S = new /obj/singularity(get_turf(G), 50)
|
||||
spawn(0)
|
||||
qdel(G)
|
||||
S.energy = 1750
|
||||
S.current_size = 7
|
||||
S.icon = 'icons/effects/224x224.dmi'
|
||||
S.icon_state = "singularity_s7"
|
||||
S.pixel_x = -96
|
||||
S.pixel_y = -96
|
||||
S.grav_pull = 0
|
||||
//S.consume_range = 3
|
||||
S.dissipate = 0
|
||||
//S.dissipate_delay = 10
|
||||
//S.dissipate_track = 0
|
||||
//S.dissipate_strength = 10
|
||||
for(var/obj/machinery/field/generator/F in machines)
|
||||
if(F.active == 0)
|
||||
F.active = 1
|
||||
F.state = 2
|
||||
F.power = 250
|
||||
F.anchored = 1
|
||||
F.warming_up = 3
|
||||
F.start_fields()
|
||||
F.update_icon()
|
||||
|
||||
for(var/obj/machinery/power/rad_collector/Rad in world)
|
||||
spawn(30)
|
||||
for(var/obj/machinery/the_singularitygen/G in machines)
|
||||
if(G.anchored)
|
||||
var/obj/singularity/S = new /obj/singularity(get_turf(G))
|
||||
S.energy = 800
|
||||
break
|
||||
|
||||
for(var/obj/machinery/power/rad_collector/Rad in machines)
|
||||
if(Rad.anchored)
|
||||
if(!Rad.P)
|
||||
var/obj/item/weapon/tank/plasma/Plasma = new/obj/item/weapon/tank/plasma(Rad)
|
||||
@@ -1239,7 +1403,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
if(!Rad.active)
|
||||
Rad.toggle_power()
|
||||
|
||||
for(var/obj/machinery/power/smes/SMES in world)
|
||||
for(var/obj/machinery/power/smes/SMES in machines)
|
||||
if(SMES.anchored)
|
||||
SMES.input_attempt = 1
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ var/global/list/frozen_mob_list = list()
|
||||
|
||||
///mob freeze procs
|
||||
|
||||
/mob/living/var/frozen = 0 //used for preventing attacks on admin-frozen mobs
|
||||
/mob/living/var/frozen = null //used for preventing attacks on admin-frozen mobs
|
||||
/mob/living/var/admin_prev_sleeping = 0 //used for keeping track of previous sleeping value with admin freeze
|
||||
|
||||
/mob/living/proc/admin_Freeze(var/client/admin)
|
||||
@@ -34,7 +34,7 @@ var/global/list/frozen_mob_list = list()
|
||||
src.overlays += AO
|
||||
|
||||
anchored = 1
|
||||
frozen = 1
|
||||
frozen = AO
|
||||
admin_prev_sleeping = sleeping
|
||||
sleeping += 20000
|
||||
if(!(src in frozen_mob_list))
|
||||
@@ -46,15 +46,16 @@ var/global/list/frozen_mob_list = list()
|
||||
message_admins("\blue [key_name_admin(admin)] unfroze [key_name_admin(src)]")
|
||||
log_admin("[key_name(admin)] unfroze [key_name(src)]")
|
||||
|
||||
update_icons()
|
||||
|
||||
anchored = 0
|
||||
frozen = 0
|
||||
overlays -= frozen
|
||||
frozen = null
|
||||
sleeping = admin_prev_sleeping
|
||||
admin_prev_sleeping = null
|
||||
if(src in frozen_mob_list)
|
||||
frozen_mob_list -= src
|
||||
|
||||
update_icons()
|
||||
|
||||
|
||||
/mob/living/carbon/slime/admin_Freeze(admin)
|
||||
..(admin)
|
||||
@@ -89,7 +90,7 @@ var/global/list/frozen_mob_list = list()
|
||||
return
|
||||
var/obj/mecha/M = O
|
||||
if(!istype(M,/obj/mecha))
|
||||
to_chat(src, "\red <b>This can only be used on Mechs!</b>")
|
||||
to_chat(src, "<span class='danger'>This can only be used on Mechs!</span>")
|
||||
return
|
||||
else
|
||||
if(usr)
|
||||
|
||||
@@ -64,7 +64,7 @@ var/global/sent_honksquad = 0
|
||||
//So they don't forget their code or mission.
|
||||
new_honksquad.mind.store_memory("<B>Mission:</B> \red [input].")
|
||||
|
||||
to_chat(new_honksquad, "\blue You are a HONKsquad. [!honk_leader_selected?"commando":"<B>LEADER</B>"] in the service of Clown Planet. You are called in cases of exteme low levels of HONK. You are NOT authorized to kill. \nYour current mission is: \red<B>[input]</B>")
|
||||
to_chat(new_honksquad, "\blue You are a HONKsquad. [!honk_leader_selected?"commando":"<B>LEADER</B>"] in the service of Clown Planet. You are called in cases of exteme low levels of HONK. You are NOT authorized to kill. \nYour current mission is: <span class='danger'>[input]</span>")
|
||||
|
||||
honksquad_number--
|
||||
|
||||
@@ -92,7 +92,7 @@ var/global/sent_honksquad = 0
|
||||
//Creates mind stuff.
|
||||
new_honksquad.mind_initialize()
|
||||
new_honksquad.mind.assigned_role = "MODE"
|
||||
new_honksquad.mind.special_role = "HONKsquad"
|
||||
new_honksquad.mind.special_role = SPECIAL_ROLE_HONKSQUAD
|
||||
ticker.mode.traitors |= new_honksquad.mind//Adds them to current traitor list. Which is really the extra antagonist list.
|
||||
new_honksquad.equip_honksquad(honk_leader_selected)
|
||||
return new_honksquad
|
||||
@@ -111,7 +111,7 @@ var/global/sent_honksquad = 0
|
||||
equip_to_slot_or_del(new /obj/item/clothing/under/rank/clown(src), slot_w_uniform)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(src), slot_wear_mask)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes(src), slot_shoes)
|
||||
equip_to_slot_or_del(new /obj/item/device/pda/clown(src), slot_belt)
|
||||
equip_to_slot_or_del(new /obj/item/device/pda/clown(src), slot_wear_pda)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(src), slot_wear_mask)
|
||||
equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/food/snacks/grown/banana(src), slot_in_backpack)
|
||||
equip_to_slot_or_del(new /obj/item/weapon/bikehorn(src), slot_in_backpack)
|
||||
|
||||
@@ -139,7 +139,9 @@ var/list/admin_verbs_show_debug_verbs = list(
|
||||
/client/proc/print_jobban_old_filter,
|
||||
/client/proc/forceEvent,
|
||||
/client/proc/nanomapgen_DumpImage,
|
||||
/client/proc/reload_nanoui_resources
|
||||
/client/proc/reload_nanoui_resources,
|
||||
/client/proc/admin_redo_space_transitions,
|
||||
/client/proc/make_turf_space_map
|
||||
)
|
||||
|
||||
/client/proc/enable_debug_verbs()
|
||||
|
||||
@@ -17,37 +17,15 @@ client/proc/one_click_antag()
|
||||
<a href='?src=\ref[src];makeAntag=2'>Make Changelings</a><br>
|
||||
<a href='?src=\ref[src];makeAntag=3'>Make Revolutionaries</a><br>
|
||||
<a href='?src=\ref[src];makeAntag=4'>Make Cult</a><br>
|
||||
<a href='?src=\ref[src];makeAntag=5'>Make Malf AI</a><br>
|
||||
<a href='?src=\ref[src];makeAntag=6'>Make Wizard (Requires Ghosts)</a><br>
|
||||
<a href='?src=\ref[src];makeAntag=7'>Make Vampires</a><br>
|
||||
<a href='?src=\ref[src];makeAntag=8'>Make Vox Raiders (Requires Ghosts)</a><br>
|
||||
<a href='?src=\ref[src];makeAntag=9'>Make Abductor Team (Requires Ghosts)</a><br>
|
||||
<a href='?src=\ref[src];makeAntag=5'>Make Wizard (Requires Ghosts)</a><br>
|
||||
<a href='?src=\ref[src];makeAntag=6'>Make Vampires</a><br>
|
||||
<a href='?src=\ref[src];makeAntag=7'>Make Vox Raiders (Requires Ghosts)</a><br>
|
||||
<a href='?src=\ref[src];makeAntag=8'>Make Abductor Team (Requires Ghosts)</a><br>
|
||||
"}
|
||||
usr << browse(dat, "window=oneclickantag;size=400x400")
|
||||
return
|
||||
|
||||
|
||||
/datum/admins/proc/makeMalfAImode()
|
||||
|
||||
var/list/mob/living/silicon/AIs = list()
|
||||
var/mob/living/silicon/malfAI = null
|
||||
var/datum/mind/themind = null
|
||||
|
||||
for(var/mob/living/silicon/ai/ai in player_list)
|
||||
if(ai.client && (ROLE_MALF in ai.client.prefs.be_special))
|
||||
AIs += ai
|
||||
|
||||
if(AIs.len)
|
||||
malfAI = pick(AIs)
|
||||
|
||||
if(malfAI)
|
||||
themind = malfAI.mind
|
||||
themind.make_AI_Malf()
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
/datum/admins/proc/makeTraitors()
|
||||
var/datum/game_mode/traitor/temp = new
|
||||
|
||||
@@ -146,40 +124,16 @@ client/proc/one_click_antag()
|
||||
return 0
|
||||
|
||||
/datum/admins/proc/makeWizard()
|
||||
var/list/mob/candidates = list()
|
||||
var/mob/theghost = null
|
||||
var/time_passed = world.time
|
||||
|
||||
for(var/mob/G in respawnable_list)
|
||||
if(istype(G) && G.client && (ROLE_WIZARD in G.client.prefs.be_special))
|
||||
if(!jobban_isbanned(G, "wizard") && !jobban_isbanned(G, "Syndicate"))
|
||||
if(player_old_enough_antag(G.client,ROLE_WIZARD))
|
||||
spawn(0)
|
||||
switch(G.timed_alert("Do you wish to be considered for the position of Space Wizard Foundation 'diplomat'?","Please answer in 30 seconds!","No",300,"Yes","No"))//alert(G, "Do you wish to be considered for the position of Space Wizard Foundation 'diplomat'?","Please answer in 30 seconds!","Yes","No"))
|
||||
if("Yes")
|
||||
if((world.time-time_passed)>300)//If more than 30 game seconds passed.
|
||||
return
|
||||
candidates += G
|
||||
if("No")
|
||||
return
|
||||
else
|
||||
return
|
||||
|
||||
sleep(300)
|
||||
var/list/candidates = pollCandidates("Do you wish to be considered for the position of a Wizard Foundation 'diplomat'?", "wizard")
|
||||
|
||||
if(candidates.len)
|
||||
candidates = shuffle(candidates)
|
||||
for(var/mob/dead/observer/i in candidates)
|
||||
if(!i || !i.client) continue //Dont bother removing them from the list since we only grab one wizard
|
||||
var/mob/dead/observer/selected = pick(candidates)
|
||||
candidates -= selected
|
||||
|
||||
theghost = i
|
||||
break
|
||||
|
||||
if(theghost)
|
||||
var/mob/living/carbon/human/new_character=makeBody(theghost)
|
||||
var/mob/living/carbon/human/new_character = makeBody(selected)
|
||||
new_character.mind.make_Wizard()
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
@@ -379,7 +333,7 @@ client/proc/one_click_antag()
|
||||
//So they don't forget their code or mission.
|
||||
|
||||
|
||||
to_chat(new_syndicate_commando, "\blue You are an Elite Syndicate. [!syndicate_leader_selected?"commando":"<B>LEADER</B>"] in the service of the Syndicate. \nYour current mission is: \red<B> [input]</B>")
|
||||
to_chat(new_syndicate_commando, "\blue You are an Elite Syndicate. [!syndicate_leader_selected?"commando":"<B>LEADER</B>"] in the service of the Syndicate. \nYour current mission is: <span class='danger'> [input]</span>")
|
||||
|
||||
numagents--
|
||||
if(numagents >= 6)
|
||||
@@ -425,7 +379,7 @@ client/proc/one_click_antag()
|
||||
//Creates mind stuff.
|
||||
new_syndicate_commando.mind_initialize()
|
||||
new_syndicate_commando.mind.assigned_role = "MODE"
|
||||
new_syndicate_commando.mind.special_role = "Syndicate Commando"
|
||||
new_syndicate_commando.mind.special_role = SPECIAL_ROLE_SYNDICATE_DEATHSQUAD
|
||||
|
||||
//Adds them to current traitor list. Which is really the extra antagonist list.
|
||||
ticker.mode.traitors += new_syndicate_commando.mind
|
||||
@@ -486,7 +440,7 @@ client/proc/one_click_antag()
|
||||
new_vox.key = theghost.key
|
||||
ticker.mode.traitors += new_vox.mind
|
||||
|
||||
to_chat(new_vox, "\blue You are a Vox Primalis, fresh out of the Shoal. Your ship has arrived at the Tau Ceti system hosting the NSV Exodus... or was it the Luna? NSS? Utopia? Nobody is really sure, but everyong is raring to start pillaging! Your current goal is: \red<B> [input]</B>")
|
||||
to_chat(new_vox, "\blue You are a Vox Primalis, fresh out of the Shoal. Your ship has arrived at the Tau Ceti system hosting the NSV Exodus... or was it the Luna? NSS? Utopia? Nobody is really sure, but everyong is raring to start pillaging! Your current goal is: <span class='danger'> [input]</span>")
|
||||
to_chat(new_vox, "\red Don't forget to turn on your nitrogen internals!")
|
||||
|
||||
raiders--
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
A.copy_to(H)
|
||||
|
||||
ticker.mode.traitors += H.mind
|
||||
H.mind.special_role = "traitor"
|
||||
H.mind.special_role = SPECIAL_ROLE_TRAITOR
|
||||
|
||||
var/datum/objective/hijack/hijack_objective = new
|
||||
hijack_objective.owner = H.mind
|
||||
|
||||
@@ -81,7 +81,7 @@ var/list/sounds_cache = list()
|
||||
|
||||
for(var/O in global_intercoms)
|
||||
var/obj/item/device/radio/intercom/I = O
|
||||
if(I.z != ZLEVEL_STATION && !ignore_z)
|
||||
if(!is_station_level(I.z) && !ignore_z)
|
||||
continue
|
||||
if(!I.on && !ignore_power)
|
||||
continue
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
/proc/Centcomm_announce(var/text , var/mob/Sender)
|
||||
var/msg = sanitize(copytext(text, 1, MAX_MESSAGE_LEN))
|
||||
msg = "\blue <b><font color=orange>CENTCOMM: </font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) ([admin_jump_link(Sender, "holder")]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;CentcommReply=\ref[Sender]'>RPLY</A>):</b> [msg]"
|
||||
msg = "<span class='boldnotice'><font color=orange>CENTCOMM: </font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) ([admin_jump_link(Sender, "holder")]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;CentcommReply=\ref[Sender]'>RPLY</A>):</span> [msg]"
|
||||
for(var/client/X in admins)
|
||||
if(R_EVENT & X.holder.rights)
|
||||
to_chat(X, msg)
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
/proc/Syndicate_announce(var/text , var/mob/Sender)
|
||||
var/msg = sanitize(copytext(text, 1, MAX_MESSAGE_LEN))
|
||||
msg = "\blue <b><font color='#DC143C'>SYNDICATE: </font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) ([admin_jump_link(Sender, "holder")]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;SyndicateReply=\ref[Sender]'>REPLY</A>):</b> [msg]"
|
||||
msg = "<span class='boldnotice'><font color='#DC143C'>SYNDICATE: </font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) ([admin_jump_link(Sender, "holder")]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;SyndicateReply=\ref[Sender]'>REPLY</A>):</span> [msg]"
|
||||
for(var/client/X in admins)
|
||||
if(check_rights(R_EVENT,0,X.mob))
|
||||
to_chat(X, msg)
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/proc/HONK_announce(var/text , var/mob/Sender)
|
||||
var/msg = sanitize(copytext(text, 1, MAX_MESSAGE_LEN))
|
||||
msg = "\blue <b><font color=pink>HONK: </font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) ([admin_jump_link(Sender, "holder")]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;HONKReply=\ref[Sender]'>RPLY</A>):</b> [msg]"
|
||||
msg = "<span class='boldnotice'><font color=pink>HONK: </font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) ([admin_jump_link(Sender, "holder")]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;HONKReply=\ref[Sender]'>RPLY</A>):</span> [msg]"
|
||||
for(var/client/X in admins)
|
||||
if(R_EVENT & X.holder.rights)
|
||||
to_chat(X, msg)
|
||||
|
||||
@@ -235,19 +235,19 @@ proc/cmd_admin_mute(mob/M as mob, mute_type, automute = 0)
|
||||
if(g.antagHUD)
|
||||
g.antagHUD = 0 // Disable it on those that have it enabled
|
||||
g.has_enabled_antagHUD = 2 // We'll allow them to respawn
|
||||
to_chat(g, "\red <B>The Administrator has disabled AntagHUD </B>")
|
||||
to_chat(g, "<span class='danger'>The Administrator has disabled AntagHUD </span>")
|
||||
config.antag_hud_allowed = 0
|
||||
to_chat(src, "\red <B>AntagHUD usage has been disabled</B>")
|
||||
to_chat(src, "<span class='danger'>AntagHUD usage has been disabled</span>")
|
||||
action = "disabled"
|
||||
else
|
||||
for(var/mob/dead/observer/g in get_ghosts())
|
||||
if(!g.client.holder) // Add the verb back for all non-admin ghosts
|
||||
g.verbs += /mob/dead/observer/verb/toggle_antagHUD
|
||||
to_chat(g, "\blue <B>The Administrator has enabled AntagHUD </B>")// Notify all observers they can now use AntagHUD
|
||||
to_chat(g, "<span class='boldnotice'>The Administrator has enabled AntagHUD </span>")// Notify all observers they can now use AntagHUD
|
||||
|
||||
config.antag_hud_allowed = 1
|
||||
action = "enabled"
|
||||
to_chat(src, "\blue <B>AntagHUD usage has been enabled</B>")
|
||||
to_chat(src, "<span class='boldnotice'>AntagHUD usage has been enabled</span>")
|
||||
|
||||
|
||||
log_admin("[key_name(usr)] has [action] antagHUD usage for observers")
|
||||
@@ -264,19 +264,19 @@ proc/cmd_admin_mute(mob/M as mob, mute_type, automute = 0)
|
||||
var/action=""
|
||||
if(config.antag_hud_restricted)
|
||||
for(var/mob/dead/observer/g in get_ghosts())
|
||||
to_chat(g, "\blue <B>The administrator has lifted restrictions on joining the round if you use AntagHUD</B>")
|
||||
to_chat(g, "<span class='boldnotice'>The administrator has lifted restrictions on joining the round if you use AntagHUD</span>")
|
||||
action = "lifted restrictions"
|
||||
config.antag_hud_restricted = 0
|
||||
to_chat(src, "\blue <B>AntagHUD restrictions have been lifted</B>")
|
||||
to_chat(src, "<span class='boldnotice'>AntagHUD restrictions have been lifted</span>")
|
||||
else
|
||||
for(var/mob/dead/observer/g in get_ghosts())
|
||||
to_chat(g, "\red <B>The administrator has placed restrictions on joining the round if you use AntagHUD</B>")
|
||||
to_chat(g, "\red <B>Your AntagHUD has been disabled, you may choose to re-enabled it but will be under restrictions </B>")
|
||||
to_chat(g, "<span class='danger'>The administrator has placed restrictions on joining the round if you use AntagHUD</span>")
|
||||
to_chat(g, "<span class='danger'>Your AntagHUD has been disabled, you may choose to re-enabled it but will be under restrictions </span>")
|
||||
g.antagHUD = 0
|
||||
g.has_enabled_antagHUD = 0
|
||||
action = "placed restrictions"
|
||||
config.antag_hud_restricted = 1
|
||||
to_chat(src, "\red <B>AntagHUD restrictions have been enabled</B>")
|
||||
to_chat(src, "<span class='danger'>AntagHUD restrictions have been enabled</span>")
|
||||
|
||||
log_admin("[key_name(usr)] has [action] on joining the round if they use AntagHUD")
|
||||
message_admins("Admin [key_name_admin(usr)] has [action] on joining the round if they use AntagHUD", 1)
|
||||
@@ -810,7 +810,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
|
||||
to_chat(usr, text("\red <b>Attack Log for []</b>", mob))
|
||||
to_chat(usr, text("<span class='danger'>Attack Log for []</span>", mob))
|
||||
for(var/t in M.attack_log)
|
||||
to_chat(usr, t)
|
||||
feedback_add_details("admin_verb","ATTL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -873,8 +873,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
set name = "Reset Telecomms Scripts"
|
||||
set desc = "Blanks all telecomms scripts from all telecomms servers"
|
||||
|
||||
if(!holder || !holder.rights || !holder.rights & R_ADMIN)
|
||||
to_chat(usr, "<span class='warning'>Admin only.</span>")
|
||||
if(!check_rights(R_ADMIN, 1, src))
|
||||
return
|
||||
|
||||
var/confirm = alert(src, "You sure you want to blank all NTSL scripts?", "Confirm", "Yes", "No")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
/client/proc/admin_serialize()
|
||||
set name = "Serialize Marked Datum"
|
||||
set desc = "Turns your marked object into a JSON string you can later use to re-create the object"
|
||||
set category = "Debug"
|
||||
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
|
||||
if(!istype(holder.marked_datum, /atom/movable))
|
||||
to_chat(src, "The marked datum is not an atom/movable!")
|
||||
return
|
||||
|
||||
var/atom/movable/AM = holder.marked_datum
|
||||
to_chat(src, json_encode(AM.serialize()))
|
||||
|
||||
/client/proc/admin_deserialize()
|
||||
set name = "Deserialize JSON datum"
|
||||
set desc = "Creates an object from a JSON string"
|
||||
set category = "Debug"
|
||||
|
||||
if(!check_rights(R_ADMIN|R_DEBUG))
|
||||
return
|
||||
|
||||
var/json_text = input("Enter the JSON code:","Text") as message|null
|
||||
if(json_text)
|
||||
json_to_object(json_text, get_turf(usr))
|
||||
@@ -0,0 +1,41 @@
|
||||
/client/proc/admin_redo_space_transitions()
|
||||
set name = "Remake Space Transitions"
|
||||
set desc = "Re-assigns all space transitions"
|
||||
set category = "Debug"
|
||||
|
||||
if(!check_rights(R_ADMIN|R_DEBUG))
|
||||
return
|
||||
|
||||
var/choice = alert("Do you want to rebuild space transitions?",,"Yes", "No")
|
||||
|
||||
if(choice == "No")
|
||||
return
|
||||
|
||||
|
||||
message_admins("[key_name_admin(usr)] re-assigned all space transitions")
|
||||
space_manager.do_transition_setup()
|
||||
log_admin("[key_name(usr)] re-assigned all space transitions")
|
||||
|
||||
feedback_add_details("admin_verb","SPCRST") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
|
||||
|
||||
|
||||
/client/proc/make_turf_space_map()
|
||||
set name = "Make Space Map"
|
||||
set desc = "Create a map of the space levels as turfs at your feet"
|
||||
set category = "Debug"
|
||||
|
||||
if(!check_rights(R_ADMIN|R_DEBUG))
|
||||
return
|
||||
|
||||
var/choice = alert("Are you sure you want to make a space map out of turfs?",,"Yes","No")
|
||||
|
||||
if(choice == "No")
|
||||
return
|
||||
|
||||
message_admins("[key_name_admin(usr)] made a space map")
|
||||
|
||||
|
||||
space_manager.map_as_turfs(get_turf(usr))
|
||||
log_admin("[key_name(usr)] made a space map")
|
||||
@@ -71,7 +71,7 @@ var/global/sent_strike_team = 0
|
||||
new_commando.mind.store_memory("<B>Nuke Code:</B> \red [nuke_code].")
|
||||
new_commando.mind.store_memory("<B>Mission:</B> \red [input].")
|
||||
|
||||
to_chat(new_commando, "\blue You are a Special Ops. [!leader_selected?"commando":"<B>LEADER</B>"] in the service of Central Command. Check the table ahead for detailed instructions.\nYour current mission is: \red<B>[input]</B>")
|
||||
to_chat(new_commando, "\blue You are a Special Ops. [!leader_selected?"commando":"<B>LEADER</B>"] in the service of Central Command. Check the table ahead for detailed instructions.\nYour current mission is: <span class='danger'>[input]</span>")
|
||||
|
||||
commando_number--
|
||||
|
||||
@@ -115,7 +115,7 @@ var/global/sent_strike_team = 0
|
||||
//Creates mind stuff.
|
||||
new_commando.mind_initialize()
|
||||
new_commando.mind.assigned_role = "MODE"
|
||||
new_commando.mind.special_role = "Death Commando"
|
||||
new_commando.mind.special_role = SPECIAL_ROLE_DEATHSQUAD
|
||||
ticker.mode.traitors |= new_commando.mind//Adds them to current traitor list. Which is really the extra antagonist list.
|
||||
new_commando.equip_death_commando(leader_selected)
|
||||
return new_commando
|
||||
|
||||
@@ -78,7 +78,7 @@ var/global/sent_syndicate_strike_team = 0
|
||||
new_syndicate_commando.mind.store_memory("<B>Nuke Code:</B> \red [nuke_code].")
|
||||
new_syndicate_commando.mind.store_memory("<B>Mission:</B> \red [input].")
|
||||
|
||||
to_chat(new_syndicate_commando, "\blue You are an Elite Syndicate. [!syndicate_leader_selected?"commando":"<B>LEADER</B>"] in the service of the Syndicate. \nYour current mission is: \red<B>[input]</B>")
|
||||
to_chat(new_syndicate_commando, "\blue You are an Elite Syndicate. [!syndicate_leader_selected?"commando":"<B>LEADER</B>"] in the service of the Syndicate. \nYour current mission is: <span class='danger'>[input]</span>")
|
||||
|
||||
syndicate_commando_number--
|
||||
|
||||
@@ -118,7 +118,7 @@ var/global/sent_syndicate_strike_team = 0
|
||||
//Creates mind stuff.
|
||||
new_syndicate_commando.mind_initialize()
|
||||
new_syndicate_commando.mind.assigned_role = "MODE"
|
||||
new_syndicate_commando.mind.special_role = "Syndicate Commando"
|
||||
new_syndicate_commando.mind.special_role = SPECIAL_ROLE_SYNDICATE_DEATHSQUAD
|
||||
ticker.mode.traitors |= new_syndicate_commando.mind //Adds them to current traitor list. Which is really the extra antagonist list.
|
||||
new_syndicate_commando.equip_syndicate_commando(syndicate_leader_selected)
|
||||
qdel(spawn_location)
|
||||
|
||||
@@ -59,21 +59,6 @@ var/global/vox_tick = 1
|
||||
W.registered_user = src
|
||||
equip_to_slot_or_del(W, slot_wear_id)
|
||||
|
||||
/*
|
||||
var/obj/item/weapon/implant/cortical/I = new(src)
|
||||
I.imp_in = src
|
||||
I.implanted = 1
|
||||
|
||||
if(ticker.mode && ( istype(ticker.mode,/datum/game_mode/vox/heist) ) )
|
||||
var/datum/game_mode/vox/heist/M = ticker.mode
|
||||
M.cortical_stacks += I
|
||||
M.raiders[mind] = I
|
||||
else if(ticker.mode && ( istype(ticker.mode,/datum/game_mode/vox/trade) ) )
|
||||
var/datum/game_mode/vox/trade/M = ticker.mode
|
||||
M.cortical_stacks += I
|
||||
M.traders[mind] = I
|
||||
|
||||
*/
|
||||
vox_tick++
|
||||
if(vox_tick > 4) vox_tick = 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user