mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-29 03:22:12 +00:00
* Removes Captain as a title, sets default to Station Administrator, and adds a new title, Site Manager * Fix atmo_control interface temperature reading * Adds Multiple Alternative Titles * Removed Supply Assistant * Removed Sergeant * Removed Computer Scientist * Revert "Revert "Frame Cleanup"" This reverts commit82722ba42f. * Changed Supply Officer to Requisitions Officer * Changed Requisitions Officer to Supply Chief and Removed Courier * Removed Life Support Technician * Removed Brig Officer * Tweaks the lowest level of heat damage to be less insane * Corrects damage amount for heat_damage_level_1 * Maybe Perhaps Last Major Technomancer PR Adds ability to sort the spells section of the catalog into categories. The categories available are 'All', 'Offensive', 'Defensive', 'Utility', and 'Support'. Removes preset section on catalog as it was unused. Projectile spells now have a sound when fired. Haste lasts five seconds instead of three. Repel Missiles lasts for five minutes instead of two. All healing spells work five times as fast, healing in five seconds instead of twenty five seconds. The amount of instability and healing done has been multiplied to remain consistent. Passwall can now be used on more than just walls, if there's something dense on the same tile. Force Missile is now 25% cheaper to cast, and has a cooldown of .5 seconds instead of one second, and does 5 more damage. Beam's damage is increased by 10, and energy cost decreased by 25%. Lightning's warm-up time is now one second instead of two. Overload now costs 10% of total energy instead of 15%, and damage scaled with 4% of their current energy reserves, and 5% with the Scepter, instead of 3%/4%. Additionally, instability per shot is lowered to 12 from 15. Track now costs 25 points instead of 30 in the catalog, because roundness. Fire Aura should look more impressive without a Scepter. Fixes bug where shooting Lightning made you motionless for twenty seconds. * Adds Multiple New Clothing Items * Makes Loincloths only Availiable to Taj and Unathi * Tweaks the contents of the captain's closet * Smokables now give an approximation of how much longer they'll burn once lit * make teshari not bad to play * Tea Tweaks - Minor changes to the color of some of the drinks such as tea and iced tea. Still not happy with the colors, but they seem better than before. - Modification to the British cup sprite. - Addition of a tea sprite for the coffee cups. * fixes exception handling runtiming * Adds missing error handler that made it difficult to debug runtimes. * Corrects error handling proc * Adds missing runtime viewer Topic calls. Relocates them to the datum itself rather than it being an admin topic for maximum self-containment. Also adds 'adminplayerobservefollow', making it possible for admins to not only jump to mobs but also follow them with a single click. Misc tweaks from Paradise. * gib population * Adds the ash() mob proc, preps ninja suit * Fixes #2352 * Changelog * alt title * Rigs now have suit coolers * Map edit - Fixes lighting in Security. Again. - Fixes lighting in Library. - Adds a new maint tunnel between engineering solars and atmos, now outside the blast radius of SME explosions. * Almost forgot emergency shutters. * Examine Cigarette Lore * Fixes Capitalization * Eliminates colon * Should clear up the usr issue * Fixes cryopods of all types not setting occupant correctly. * updates changelog * Fixes runtime that occured if someone touched a blast door with an empty hand. * Fixes check_rights() runtime. * Adds magboots to ling spacesuits * Adds Changelog * Turret Fix Turrets can now deploy properly and not be stuck in a state of deploying forever if a target is in range. * Revert "Adds hub passwordu" * Makes changeling recursive enhancement a passive power * Corrects a description * Adss changelog * Add files via upload * Changeling/Wizard/Future Stuff Hud Button Fix Hopefully this stops the roundstop changeling hud wonkiness. * Changes Mining Hardsuit slowdown to 1, from 3 * Widened hallway * Speeds up arm_guard and leg_guard wearers slightly * Forgot to use map cleanup tool. * Adds changelog * Adds changelog * Minor Emitter Tweaks Emitters no longer die by shooting a taser or laser tag gun at it. Emitters don't explode if they are not on a powered wire with sufficient electricity in it. They will just crumple away instead if integrity is reduced to zero. Taking any damage to the emitter no longer results in instant death due to me being an idiot awhile ago. Emitters can be examined to see if they are damaged, and can be repaired by applying metal sheets to it. * Github, stop being stupid! * Tweaks Sec Voidsuit values * Fixes external airlocks * Elevator-MMI fix * Shoveling Snow * Laptop ID Computer Fix The manifest should now be updated correctly when using laptops. * do_after is more immersive * Fixes second bug involving inability to change title to station admin. * Adds more unathi hair and facial options * Adds the changelog * Retweaks secret player requirements * Updates changelog * Fixes sprite not updating to not be floating when leaving non-gravity * Adds changelog * Fixes changeling revive not working when you're missing a limb * Fixes #860 * Adds changelog * Makes flash confused duration the same length as the flash blurry eyes * Increases the change of lung rupturing * Adds vomit as an emote * Adds changelog * Removes revolution shuttle delay * Adds changelog * Projectile flash rounds will now do the same as a flash when hitting a target * Adds changelog * Fixes dna-lockable gun explosion security level * Drink Container Lore * Decapitalizes 'Sleeper' Because Why * Fixes Grammatical/Flow/Sarcasm Errors * Completes dna lockable guns implementation by adding a dna chip that can be added to guns * Fixes + forgotten file * Moves DNA locking stuff down to the item level rather than gun, also adds the ability to emag to remove the lock * Adds changelog * Adds the ability to wear ponchos as an accessory, also adds the ability to have ponchos as a suit accessory * Adds changelog * Closes 2 missing spans * Adds secure briefcase to custom loadout * Adds changelog * Headgear Additions, and an Undershirt * Medical splint buff and new ghetto splints. Adds hands and feet to splint-splintable organs. Also adds ghetto splints that can't do hands and feet. * Fixed Sleeper... Again * Renames "poncho" slot to "over" * Speeds Hyperzine metabolism * 1.5.8 Map bug fixes -Fixed brit cup sprite. - Replaced a maintenance door leading into atmospherics with one with the proper access. - Fixed Missing Disposals pipe next to atmos. - Tweaked some light placement in the main hallways. - AI core redesign. - Turned off medbay lobby intercom. - Cyborg charging station added to prison wing. - Cyborg charging station added to the research outpost. - Medical rig suit added to medical. - EVA rig suit for engineering added to EVA. - Second residential elevator installed. Due to budget cuts the size of the elevators has been reduced. * Updates changelog * Sombrero Code * Fixes #2365 * Adds changelog * Sleeper is evil. * no message * Changelog * Stops observers from leaving prints on the ground. No more spooking the mortals, ghosts. * Allows autotraitor in secret to start with 0 players * Adds changelog * Makes diona slightly less slow * Adds changelog * Bowling Shirts * Updates changelog * Adds a missing description * Flat Cap Changes and Hair Bow * Fixed Error * Adds an in-hand * Lower Torso cannot be amputated * Smoke works, adds changelog * Updates changelog * Makes Unathi Voidsuits Less Fat * Medical related fixes * Fuzzy Cuffs * Tube Top * Made Icons for Security Suit Less Gaunt * Revert "Medical related fixes" This reverts commitd7c59520e6. * Just the fix to random med item now * Fixes Evening Glove Coloring * HAZMAT Suits * Changes Unathi sprite slightly * Tweaks skirt pathing * Corrects changelog * Adds changelog * Construction Voidsuits * makes people bleed real good * adderino changeling * Revert "Revert "Adds hub passwordu"" * Explosive implants should no longer gib on limbs. * I still have no idea what I am doing. * Resolves #331
972 lines
39 KiB
Plaintext
972 lines
39 KiB
Plaintext
/client/proc/Debug2()
|
|
set category = "Debug"
|
|
set name = "Debug-Game"
|
|
if(!check_rights(R_DEBUG)) return
|
|
|
|
if(Debug2)
|
|
Debug2 = 0
|
|
message_admins("[key_name(src)] toggled debugging off.")
|
|
log_admin("[key_name(src)] toggled debugging off.")
|
|
else
|
|
Debug2 = 1
|
|
message_admins("[key_name(src)] toggled debugging on.")
|
|
log_admin("[key_name(src)] toggled debugging on.")
|
|
|
|
feedback_add_details("admin_verb","DG2") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
// callproc moved to code/modules/admin/callproc
|
|
|
|
/client/proc/Cell()
|
|
set category = "Debug"
|
|
set name = "Cell"
|
|
if(!mob)
|
|
return
|
|
var/turf/T = mob.loc
|
|
|
|
if (!( istype(T, /turf) ))
|
|
return
|
|
|
|
var/datum/gas_mixture/env = T.return_air()
|
|
|
|
var/t = "\blue Coordinates: [T.x],[T.y],[T.z]\n"
|
|
t += "\red Temperature: [env.temperature]\n"
|
|
t += "\red Pressure: [env.return_pressure()]kPa\n"
|
|
for(var/g in env.gas)
|
|
t += "\blue [g]: [env.gas[g]] / [env.gas[g] * R_IDEAL_GAS_EQUATION * env.temperature / env.volume]kPa\n"
|
|
|
|
usr.show_message(t, 1)
|
|
feedback_add_details("admin_verb","ASL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_admin_robotize(var/mob/M in mob_list)
|
|
set category = "Fun"
|
|
set name = "Make Robot"
|
|
|
|
if(!ticker)
|
|
alert("Wait until the game starts")
|
|
return
|
|
if(istype(M, /mob/living/carbon/human))
|
|
log_admin("[key_name(src)] has robotized [M.key].")
|
|
spawn(10)
|
|
M:Robotize()
|
|
|
|
else
|
|
alert("Invalid mob")
|
|
|
|
/client/proc/cmd_admin_animalize(var/mob/M in mob_list)
|
|
set category = "Fun"
|
|
set name = "Make Simple Animal"
|
|
|
|
if(!ticker)
|
|
alert("Wait until the game starts")
|
|
return
|
|
|
|
if(!M)
|
|
alert("That mob doesn't seem to exist, close the panel and try again.")
|
|
return
|
|
|
|
if(istype(M, /mob/new_player))
|
|
alert("The mob must not be a new_player.")
|
|
return
|
|
|
|
log_admin("[key_name(src)] has animalized [M.key].")
|
|
spawn(10)
|
|
M.Animalize()
|
|
|
|
|
|
/client/proc/makepAI(var/turf/T in mob_list)
|
|
set category = "Fun"
|
|
set name = "Make pAI"
|
|
set desc = "Specify a location to spawn a pAI device, then specify a key to play that pAI"
|
|
|
|
var/list/available = list()
|
|
for(var/mob/C in mob_list)
|
|
if(C.key)
|
|
available.Add(C)
|
|
var/mob/choice = input("Choose a player to play the pAI", "Spawn pAI") in available
|
|
if(!choice)
|
|
return 0
|
|
if(!istype(choice, /mob/observer/dead))
|
|
var/confirm = input("[choice.key] isn't ghosting right now. Are you sure you want to yank them out of them out of their body and place them in this pAI?", "Spawn pAI Confirmation", "No") in list("Yes", "No")
|
|
if(confirm != "Yes")
|
|
return 0
|
|
var/obj/item/device/paicard/card = new(T)
|
|
var/mob/living/silicon/pai/pai = new(card)
|
|
pai.name = sanitizeSafe(input(choice, "Enter your pAI name:", "pAI Name", "Personal AI") as text)
|
|
pai.real_name = pai.name
|
|
pai.key = choice.key
|
|
card.setPersonality(pai)
|
|
for(var/datum/paiCandidate/candidate in paiController.pai_candidates)
|
|
if(candidate.key == choice.key)
|
|
paiController.pai_candidates.Remove(candidate)
|
|
feedback_add_details("admin_verb","MPAI") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_admin_slimeize(var/mob/M in mob_list)
|
|
set category = "Fun"
|
|
set name = "Make slime"
|
|
|
|
if(!ticker)
|
|
alert("Wait until the game starts")
|
|
return
|
|
if(ishuman(M))
|
|
log_admin("[key_name(src)] has slimeized [M.key].")
|
|
spawn(10)
|
|
M:slimeize()
|
|
feedback_add_details("admin_verb","MKMET") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
log_admin("[key_name(usr)] made [key_name(M)] into a slime.")
|
|
message_admins("\blue [key_name_admin(usr)] made [key_name(M)] into a slime.", 1)
|
|
else
|
|
alert("Invalid mob")
|
|
|
|
/*
|
|
/client/proc/cmd_admin_monkeyize(var/mob/M in world)
|
|
set category = "Fun"
|
|
set name = "Make Monkey"
|
|
|
|
if(!ticker)
|
|
alert("Wait until the game starts")
|
|
return
|
|
if(istype(M, /mob/living/carbon/human))
|
|
var/mob/living/carbon/human/target = M
|
|
log_admin("[key_name(src)] is attempting to monkeyize [M.key].")
|
|
spawn(10)
|
|
target.monkeyize()
|
|
else
|
|
alert("Invalid mob")
|
|
|
|
/client/proc/cmd_admin_changelinginize(var/mob/M in world)
|
|
set category = "Fun"
|
|
set name = "Make Changeling"
|
|
|
|
if(!ticker)
|
|
alert("Wait until the game starts")
|
|
return
|
|
if(istype(M, /mob/living/carbon/human))
|
|
log_admin("[key_name(src)] has made [M.key] a changeling.")
|
|
spawn(10)
|
|
M.absorbed_dna[M.real_name] = M.dna.Clone()
|
|
M.make_changeling()
|
|
if(M.mind)
|
|
M.mind.special_role = "Changeling"
|
|
else
|
|
alert("Invalid mob")
|
|
*/
|
|
/*
|
|
/client/proc/cmd_admin_abominize(var/mob/M in world)
|
|
set category = null
|
|
set name = "Make Abomination"
|
|
|
|
usr << "Ruby Mode disabled. Command aborted."
|
|
return
|
|
if(!ticker)
|
|
alert("Wait until the game starts.")
|
|
return
|
|
if(istype(M, /mob/living/carbon/human))
|
|
log_admin("[key_name(src)] has made [M.key] an abomination.")
|
|
|
|
// spawn(10)
|
|
// M.make_abomination()
|
|
|
|
*/
|
|
/*
|
|
/client/proc/make_cultist(var/mob/M in world) // -- TLE, modified by Urist
|
|
set category = "Fun"
|
|
set name = "Make Cultist"
|
|
set desc = "Makes target a cultist"
|
|
if(!cultwords["travel"])
|
|
runerandom()
|
|
if(M)
|
|
if(M.mind in ticker.mode.cult)
|
|
return
|
|
else
|
|
if(alert("Spawn that person a tome?",,"Yes","No")=="Yes")
|
|
M << "\red You catch a glimpse of the Realm of Nar-Sie, The Geometer of Blood. You now see how flimsy the world is, you see that it should be open to the knowledge of Nar-Sie. A tome, a message from your new master, appears on the ground."
|
|
new /obj/item/weapon/book/tome(M.loc)
|
|
else
|
|
M << "\red You catch a glimpse of the Realm of Nar-Sie, The Geometer of Blood. You now see how flimsy the world is, you see that it should be open to the knowledge of Nar-Sie."
|
|
var/glimpse=pick("1","2","3","4","5","6","7","8")
|
|
switch(glimpse)
|
|
if("1")
|
|
M << "\red You remembered one thing from the glimpse... [cultwords["travel"]] is travel..."
|
|
if("2")
|
|
M << "\red You remembered one thing from the glimpse... [cultwords["blood"]] is blood..."
|
|
if("3")
|
|
M << "\red You remembered one thing from the glimpse... [cultwords["join"]] is join..."
|
|
if("4")
|
|
M << "\red You remembered one thing from the glimpse... [cultwords["hell"]] is Hell..."
|
|
if("5")
|
|
M << "\red You remembered one thing from the glimpse... [cultwords["destroy"]] is destroy..."
|
|
if("6")
|
|
M << "\red You remembered one thing from the glimpse... [cultwords["technology"]] is technology..."
|
|
if("7")
|
|
M << "\red You remembered one thing from the glimpse... [cultwords["self"]] is self..."
|
|
if("8")
|
|
M << "\red You remembered one thing from the glimpse... [cultwords["see"]] is see..."
|
|
|
|
if(M.mind)
|
|
M.mind.special_role = "Cultist"
|
|
ticker.mode.cult += M.mind
|
|
src << "Made [M] a cultist."
|
|
*/
|
|
|
|
//TODO: merge the vievars version into this or something maybe mayhaps
|
|
/client/proc/cmd_debug_del_all()
|
|
set category = "Debug"
|
|
set name = "Del-All"
|
|
|
|
// to prevent REALLY stupid deletions
|
|
var/blocked = list(/obj, /mob, /mob/living, /mob/living/carbon, /mob/living/carbon/human, /mob/observer/dead, /mob/living/silicon, /mob/living/silicon/robot, /mob/living/silicon/ai)
|
|
var/hsbitem = input(usr, "Choose an object to delete.", "Delete:") as null|anything in typesof(/obj) + typesof(/mob) - blocked
|
|
if(hsbitem)
|
|
for(var/atom/O in world)
|
|
if(istype(O, hsbitem))
|
|
qdel(O)
|
|
log_admin("[key_name(src)] has deleted all instances of [hsbitem].")
|
|
message_admins("[key_name_admin(src)] has deleted all instances of [hsbitem].", 0)
|
|
feedback_add_details("admin_verb","DELA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_debug_make_powernets()
|
|
set category = "Debug"
|
|
set name = "Make Powernets"
|
|
makepowernets()
|
|
log_admin("[key_name(src)] has remade the powernet. makepowernets() called.")
|
|
message_admins("[key_name_admin(src)] has remade the powernets. makepowernets() called.", 0)
|
|
feedback_add_details("admin_verb","MPWN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_debug_tog_aliens()
|
|
set category = "Server"
|
|
set name = "Toggle Aliens"
|
|
|
|
config.aliens_allowed = !config.aliens_allowed
|
|
log_admin("[key_name(src)] has turned aliens [config.aliens_allowed ? "on" : "off"].")
|
|
message_admins("[key_name_admin(src)] has turned aliens [config.aliens_allowed ? "on" : "off"].", 0)
|
|
feedback_add_details("admin_verb","TAL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_admin_grantfullaccess(var/mob/M in mob_list)
|
|
set category = "Admin"
|
|
set name = "Grant Full Access"
|
|
|
|
if (!ticker)
|
|
alert("Wait until the game starts")
|
|
return
|
|
if (istype(M, /mob/living/carbon/human))
|
|
var/mob/living/carbon/human/H = M
|
|
if (H.wear_id)
|
|
var/obj/item/weapon/card/id/id = H.wear_id
|
|
if(istype(H.wear_id, /obj/item/device/pda))
|
|
var/obj/item/device/pda/pda = H.wear_id
|
|
id = pda.id
|
|
id.icon_state = "gold"
|
|
id.access = get_all_accesses()
|
|
else
|
|
var/obj/item/weapon/card/id/id = new/obj/item/weapon/card/id(M);
|
|
id.icon_state = "gold"
|
|
id.access = get_all_accesses()
|
|
id.registered_name = H.real_name
|
|
id.assignment = "Station Administrator"
|
|
id.name = "[id.registered_name]'s ID Card ([id.assignment])"
|
|
H.equip_to_slot_or_del(id, slot_wear_id)
|
|
H.update_inv_wear_id()
|
|
else
|
|
alert("Invalid mob")
|
|
feedback_add_details("admin_verb","GFA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
log_admin("[key_name(src)] has granted [M.key] full access.")
|
|
message_admins("\blue [key_name_admin(usr)] has granted [M.key] full access.", 1)
|
|
|
|
/client/proc/cmd_assume_direct_control(var/mob/M in mob_list)
|
|
set category = "Admin"
|
|
set name = "Assume direct control"
|
|
set desc = "Direct intervention"
|
|
|
|
if(!check_rights(R_DEBUG|R_ADMIN)) return
|
|
if(M.ckey)
|
|
if(alert("This mob is being controlled by [M.ckey]. Are you sure you wish to assume control of it? [M.ckey] will be made a ghost.",,"Yes","No") != "Yes")
|
|
return
|
|
else
|
|
var/mob/observer/dead/ghost = new/mob/observer/dead(M,1)
|
|
ghost.ckey = M.ckey
|
|
message_admins("\blue [key_name_admin(usr)] assumed direct control of [M].", 1)
|
|
log_admin("[key_name(usr)] assumed direct control of [M].")
|
|
var/mob/adminmob = src.mob
|
|
M.ckey = src.ckey
|
|
if( isobserver(adminmob) )
|
|
qdel(adminmob)
|
|
feedback_add_details("admin_verb","ADC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/client/proc/cmd_admin_areatest()
|
|
set category = "Mapping"
|
|
set name = "Test areas"
|
|
|
|
var/list/areas_all = list()
|
|
var/list/areas_with_APC = list()
|
|
var/list/areas_with_air_alarm = list()
|
|
var/list/areas_with_RC = list()
|
|
var/list/areas_with_light = list()
|
|
var/list/areas_with_LS = list()
|
|
var/list/areas_with_intercom = list()
|
|
var/list/areas_with_camera = list()
|
|
|
|
for(var/area/A in world)
|
|
if(!(A.type in areas_all))
|
|
areas_all.Add(A.type)
|
|
|
|
for(var/obj/machinery/power/apc/APC in world)
|
|
var/area/A = get_area(APC)
|
|
if(!(A.type in areas_with_APC))
|
|
areas_with_APC.Add(A.type)
|
|
|
|
for(var/obj/machinery/alarm/alarm in world)
|
|
var/area/A = get_area(alarm)
|
|
if(!(A.type in areas_with_air_alarm))
|
|
areas_with_air_alarm.Add(A.type)
|
|
|
|
for(var/obj/machinery/requests_console/RC in world)
|
|
var/area/A = get_area(RC)
|
|
if(!(A.type in areas_with_RC))
|
|
areas_with_RC.Add(A.type)
|
|
|
|
for(var/obj/machinery/light/L in world)
|
|
var/area/A = get_area(L)
|
|
if(!(A.type in areas_with_light))
|
|
areas_with_light.Add(A.type)
|
|
|
|
for(var/obj/machinery/light_switch/LS in world)
|
|
var/area/A = get_area(LS)
|
|
if(!(A.type in areas_with_LS))
|
|
areas_with_LS.Add(A.type)
|
|
|
|
for(var/obj/item/device/radio/intercom/I in world)
|
|
var/area/A = get_area(I)
|
|
if(!(A.type in areas_with_intercom))
|
|
areas_with_intercom.Add(A.type)
|
|
|
|
for(var/obj/machinery/camera/C in world)
|
|
var/area/A = get_area(C)
|
|
if(!(A.type in areas_with_camera))
|
|
areas_with_camera.Add(A.type)
|
|
|
|
var/list/areas_without_APC = areas_all - areas_with_APC
|
|
var/list/areas_without_air_alarm = areas_all - areas_with_air_alarm
|
|
var/list/areas_without_RC = areas_all - areas_with_RC
|
|
var/list/areas_without_light = areas_all - areas_with_light
|
|
var/list/areas_without_LS = areas_all - areas_with_LS
|
|
var/list/areas_without_intercom = areas_all - areas_with_intercom
|
|
var/list/areas_without_camera = areas_all - areas_with_camera
|
|
|
|
world << "<b>AREAS WITHOUT AN APC:</b>"
|
|
for(var/areatype in areas_without_APC)
|
|
world << "* [areatype]"
|
|
|
|
world << "<b>AREAS WITHOUT AN AIR ALARM:</b>"
|
|
for(var/areatype in areas_without_air_alarm)
|
|
world << "* [areatype]"
|
|
|
|
world << "<b>AREAS WITHOUT A REQUEST CONSOLE:</b>"
|
|
for(var/areatype in areas_without_RC)
|
|
world << "* [areatype]"
|
|
|
|
world << "<b>AREAS WITHOUT ANY LIGHTS:</b>"
|
|
for(var/areatype in areas_without_light)
|
|
world << "* [areatype]"
|
|
|
|
world << "<b>AREAS WITHOUT A LIGHT SWITCH:</b>"
|
|
for(var/areatype in areas_without_LS)
|
|
world << "* [areatype]"
|
|
|
|
world << "<b>AREAS WITHOUT ANY INTERCOMS:</b>"
|
|
for(var/areatype in areas_without_intercom)
|
|
world << "* [areatype]"
|
|
|
|
world << "<b>AREAS WITHOUT ANY CAMERAS:</b>"
|
|
for(var/areatype in areas_without_camera)
|
|
world << "* [areatype]"
|
|
|
|
/client/proc/cmd_admin_dress()
|
|
set category = "Fun"
|
|
set name = "Select equipment"
|
|
|
|
var/mob/living/carbon/human/M = input("Select mob.", "Select equipment.") as null|anything in human_mob_list
|
|
if(!M) return
|
|
|
|
//log_admin("[key_name(src)] has alienized [M.key].")
|
|
var/list/dresspacks = list(
|
|
"strip",
|
|
"job",
|
|
"standard space gear",
|
|
"tournament standard red",
|
|
"tournament standard green",
|
|
"tournament gangster",
|
|
"tournament chef",
|
|
"tournament janitor",
|
|
"pirate",
|
|
"space pirate",
|
|
"soviet admiral",
|
|
"tunnel clown",
|
|
"masked killer",
|
|
"assassin",
|
|
"death commando",
|
|
"syndicate commando",
|
|
"special ops officer",
|
|
"blue wizard",
|
|
"red wizard",
|
|
"marisa wizard",
|
|
"emergency response team",
|
|
"nanotrasen representative",
|
|
"nanotrasen officer",
|
|
"nanotrasen captain"
|
|
)
|
|
var/dresscode = input("Select dress for [M]", "Robust quick dress shop") as null|anything in dresspacks
|
|
if (isnull(dresscode))
|
|
return
|
|
feedback_add_details("admin_verb","SEQ") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
for (var/obj/item/I in M)
|
|
if (istype(I, /obj/item/weapon/implant))
|
|
continue
|
|
M.drop_from_inventory(I)
|
|
if(I.loc != M)
|
|
qdel(I)
|
|
switch(dresscode)
|
|
if ("strip")
|
|
//do nothing
|
|
if ("job")
|
|
var/selected_job = input("Select job", "Robust quick dress shop") as null|anything in joblist
|
|
if (isnull(selected_job))
|
|
return
|
|
|
|
var/datum/job/job = job_master.GetJob(selected_job)
|
|
if(!job)
|
|
return
|
|
|
|
job.equip(M)
|
|
job.apply_fingerprints(M)
|
|
job_master.spawnId(M, selected_job)
|
|
|
|
if ("standard space gear")
|
|
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/under/color/grey(M), slot_w_uniform)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space(M), slot_wear_suit)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space(M), slot_head)
|
|
var /obj/item/weapon/tank/jetpack/J = new /obj/item/weapon/tank/jetpack/oxygen(M)
|
|
M.equip_to_slot_or_del(J, slot_back)
|
|
J.toggle()
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/mask/breath(M), slot_wear_mask)
|
|
J.Topic(null, list("stat" = 1))
|
|
if ("tournament standard red","tournament standard green") //we think stunning weapon is too overpowered to use it on tournaments. --rastaf0
|
|
if (dresscode=="tournament standard red")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/red(M), slot_w_uniform)
|
|
else
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/green(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/suit/armor/vest(M), slot_wear_suit)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/thunderdome(M), slot_head)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse_rifle/destroyer(M), slot_r_hand)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/material/knife(M), slot_l_hand)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/grenade/smokebomb(M), slot_r_store)
|
|
|
|
|
|
if ("tournament gangster") //gangster are supposed to fight each other. --rastaf0
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/under/det(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/suit/storage/det_trench(M), slot_wear_suit)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/plain/monocle(M), slot_glasses)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/head/det(M), slot_head)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/revolver(M), slot_r_hand)
|
|
M.equip_to_slot_or_del(new /obj/item/ammo_magazine/a357(M), slot_l_store)
|
|
|
|
if ("tournament chef") //Steven Seagal FTW
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chef(M), slot_w_uniform)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/suit/chef(M), slot_wear_suit)
|
|
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/chefhat(M), slot_head)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/material/kitchen/rollingpin(M), slot_r_hand)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/material/knife(M), slot_l_hand)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/material/knife(M), slot_r_store)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/material/knife(M), slot_s_store)
|
|
|
|
if ("tournament janitor")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/janitor(M), slot_w_uniform)
|
|
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)
|
|
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)
|
|
bucket.reagents.add_reagent("water", 70)
|
|
M.equip_to_slot_or_del(bucket, slot_l_hand)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/grenade/chem_grenade/cleaner(M), slot_r_store)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/grenade/chem_grenade/cleaner(M), slot_l_store)
|
|
M.equip_to_slot_or_del(new /obj/item/stack/tile/floor(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/stack/tile/floor(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/stack/tile/floor(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/stack/tile/floor(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/stack/tile/floor(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/stack/tile/floor(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/stack/tile/floor(M), slot_in_backpack)
|
|
|
|
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/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)
|
|
|
|
if ("space 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/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)
|
|
|
|
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)
|
|
|
|
if("tunnel clown")//Tunnel clowns rule!
|
|
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/clothing/shoes/clown_shoes(M), slot_shoes)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(M), slot_gloves)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(M), slot_wear_mask)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/head/chaplain_hood(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/clothing/glasses/thermal/plain/monocle(M), slot_glasses)
|
|
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/bikehorn(M), slot_r_store)
|
|
|
|
var/obj/item/weapon/card/id/W = new(M)
|
|
W.name = "[M.real_name]'s ID Card"
|
|
W.access = get_all_station_access()
|
|
W.assignment = "Tunnel Clown!"
|
|
W.registered_name = M.real_name
|
|
M.equip_to_slot_or_del(W, slot_wear_id)
|
|
|
|
var/obj/item/weapon/material/twohanded/fireaxe/fire_axe = new(M)
|
|
M.equip_to_slot_or_del(fire_axe, slot_r_hand)
|
|
|
|
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/clothing/shoes/white(M), slot_shoes)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(M), slot_gloves)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(M), slot_wear_mask)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/head/welding(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/clothing/glasses/thermal/plain/monocle(M), slot_glasses)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/suit/apron(M), slot_wear_suit)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/material/knife(M), slot_l_store)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/scalpel(M), slot_r_store)
|
|
|
|
var/obj/item/weapon/material/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)
|
|
if(!istype(carried_item, /obj/item/weapon/implant))//If it's not an implant.
|
|
carried_item.add_blood(M)//Oh yes, there will be blood...
|
|
|
|
if("assassin")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket(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/gloves/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/clothing/glasses/sunglasses(M), slot_glasses)
|
|
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(M), slot_l_store)
|
|
|
|
var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = new(M)
|
|
for(var/obj/item/briefcase_item in sec_briefcase)
|
|
qdel(briefcase_item)
|
|
for(var/i=3, i>0, i--)
|
|
sec_briefcase.contents += new /obj/item/weapon/spacecash/c1000
|
|
sec_briefcase.contents += new /obj/item/weapon/gun/energy/crossbow
|
|
sec_briefcase.contents += new /obj/item/weapon/gun/projectile/revolver/mateba
|
|
sec_briefcase.contents += new /obj/item/ammo_magazine/a357
|
|
sec_briefcase.contents += new /obj/item/weapon/plastique
|
|
M.equip_to_slot_or_del(sec_briefcase, slot_l_hand)
|
|
|
|
var/obj/item/device/pda/heads/pda = new(M)
|
|
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)
|
|
|
|
var/obj/item/weapon/card/id/syndicate/W = new(M)
|
|
W.name = "[M.real_name]'s ID Card"
|
|
W.access = get_all_station_access()
|
|
W.assignment = "Reaper"
|
|
W.registered_name = M.real_name
|
|
M.equip_to_slot_or_del(W, slot_wear_id)
|
|
|
|
if("death commando")//Was looking to add this for a while.
|
|
deathsquad.equip(M)
|
|
|
|
if("syndicate commando")
|
|
commandos.equip(M)
|
|
|
|
if("nanotrasen representative")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom(M), slot_w_uniform)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(M), slot_shoes)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(M), slot_gloves)
|
|
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/hop(M), slot_l_ear)
|
|
|
|
var/obj/item/device/pda/heads/pda = new(M)
|
|
pda.owner = M.real_name
|
|
pda.ownjob = "NanoTrasen Navy Representative"
|
|
pda.name = "PDA-[M.real_name] ([pda.ownjob])"
|
|
|
|
M.equip_to_slot_or_del(pda, slot_r_store)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_l_store)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/clipboard(M), slot_belt)
|
|
|
|
var/obj/item/weapon/card/id/W = new(M)
|
|
W.name = "[M.real_name]'s ID Card"
|
|
W.icon_state = "centcom"
|
|
W.item_state = "id_inv"
|
|
W.access = get_all_station_access()
|
|
W.access += list("VIP Guest","Custodian","Thunderdome Overseer","Intel Officer","Medical Officer","Death Commando","Research Officer")
|
|
W.assignment = "NanoTrasen Navy Representative"
|
|
W.registered_name = M.real_name
|
|
M.equip_to_slot_or_del(W, slot_wear_id)
|
|
|
|
if("nanotrasen officer")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(M), slot_shoes)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(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/clothing/head/beret/centcom/officer(M), slot_head)
|
|
|
|
var/obj/item/device/pda/heads/pda = new(M)
|
|
pda.owner = M.real_name
|
|
pda.ownjob = "NanoTrasen Navy Officer"
|
|
pda.name = "PDA-[M.real_name] ([pda.ownjob])"
|
|
|
|
M.equip_to_slot_or_del(pda, slot_r_store)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_l_store)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy(M), slot_belt)
|
|
|
|
var/obj/item/weapon/card/id/centcom/W = new(M)
|
|
W.name = "[M.real_name]'s ID Card"
|
|
W.access = get_all_station_access()
|
|
W.access += get_all_centcom_access()
|
|
W.assignment = "NanoTrasen Navy Officer"
|
|
W.registered_name = M.real_name
|
|
M.equip_to_slot_or_del(W, slot_wear_id)
|
|
|
|
|
|
if("nanotrasen captain")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_captain(M), slot_w_uniform)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(M), slot_shoes)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(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/clothing/head/beret/centcom/captain(M), slot_head)
|
|
|
|
var/obj/item/device/pda/heads/pda = new(M)
|
|
pda.owner = M.real_name
|
|
pda.ownjob = "NanoTrasen Navy Captain"
|
|
pda.name = "PDA-[M.real_name] ([pda.ownjob])"
|
|
|
|
M.equip_to_slot_or_del(pda, slot_r_store)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_l_store)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy(M), slot_belt)
|
|
|
|
var/obj/item/weapon/card/id/centcom/W = new(M)
|
|
W.name = "[M.real_name]'s ID Card"
|
|
W.access = get_all_station_access()
|
|
W.access += get_all_centcom_access()
|
|
W.assignment = "NanoTrasen Navy Captain"
|
|
W.registered_name = M.real_name
|
|
M.equip_to_slot_or_del(W, slot_wear_id)
|
|
|
|
if("emergency response team")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(M), slot_shoes)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(M), slot_gloves)
|
|
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(M), slot_l_ear)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_belt)
|
|
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)
|
|
|
|
var/obj/item/weapon/card/id/W = new(M)
|
|
W.name = "[M.real_name]'s ID Card"
|
|
W.icon_state = "centcom"
|
|
W.access = get_all_station_access()
|
|
W.access += get_all_centcom_access()
|
|
W.assignment = "Emergency Response Team"
|
|
W.registered_name = M.real_name
|
|
M.equip_to_slot_or_del(W, slot_wear_id)
|
|
|
|
if("special ops officer")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate/combat(M), slot_w_uniform)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/swat/officer(M), slot_wear_suit)
|
|
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/clothing/glasses/thermal/plain/eyepatch(M), slot_glasses)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/mask/smokable/cigarette/cigar/havana(M), slot_wear_mask)
|
|
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/weapon/gun/energy/pulse_rifle/M1911(M), slot_belt)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/flame/lighter/zippo(M), slot_r_store)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
|
|
|
var/obj/item/weapon/card/id/W = new(M)
|
|
W.name = "[M.real_name]'s ID Card"
|
|
W.icon_state = "centcom"
|
|
W.access = get_all_station_access()
|
|
W.access += get_all_centcom_access()
|
|
W.assignment = "Special Operations Officer"
|
|
W.registered_name = M.real_name
|
|
M.equip_to_slot_or_del(W, slot_wear_id)
|
|
|
|
if("blue wizard")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(M), slot_w_uniform)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(M), slot_wear_suit)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes)
|
|
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/head/wizard(M), slot_head)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(M), slot_r_store)
|
|
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/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)
|
|
|
|
if("red wizard")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(M), slot_w_uniform)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/red(M), slot_wear_suit)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes)
|
|
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/head/wizard/red(M), slot_head)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(M), slot_r_store)
|
|
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/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)
|
|
|
|
if("marisa wizard")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(M), slot_w_uniform)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/marisa(M), slot_wear_suit)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/marisa(M), slot_shoes)
|
|
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/head/wizard/marisa(M), slot_head)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(M), slot_r_store)
|
|
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/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)
|
|
if("soviet admiral")
|
|
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/clothing/glasses/thermal/plain/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)
|
|
var/obj/item/weapon/card/id/W = new(M)
|
|
W.name = "[M.real_name]'s ID Card"
|
|
W.icon_state = "centcom"
|
|
W.access = get_all_station_access()
|
|
W.access += get_all_centcom_access()
|
|
W.assignment = "Admiral"
|
|
W.registered_name = M.real_name
|
|
M.equip_to_slot_or_del(W, slot_wear_id)
|
|
|
|
M.regenerate_icons()
|
|
|
|
log_admin("[key_name(usr)] changed the equipment of [key_name(M)] to [dresscode].")
|
|
message_admins("\blue [key_name_admin(usr)] changed the equipment of [key_name_admin(M)] to [dresscode]..", 1)
|
|
return
|
|
|
|
/client/proc/startSinglo()
|
|
|
|
set category = "Debug"
|
|
set name = "Start Singularity"
|
|
set desc = "Sets up the singularity and all machines to get power flowing through the station"
|
|
|
|
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)
|
|
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/power/rad_collector/Rad in world)
|
|
if(Rad.anchored)
|
|
if(!Rad.P)
|
|
var/obj/item/weapon/tank/phoron/Phoron = new/obj/item/weapon/tank/phoron(Rad)
|
|
Phoron.air_contents.gas["phoron"] = 70
|
|
Rad.drainratio = 0
|
|
Rad.P = Phoron
|
|
Phoron.loc = Rad
|
|
|
|
if(!Rad.active)
|
|
Rad.toggle_power()
|
|
|
|
for(var/obj/machinery/power/smes/SMES in world)
|
|
if(SMES.anchored)
|
|
SMES.input_attempt = 1
|
|
|
|
/client/proc/setup_supermatter_engine()
|
|
set category = "Debug"
|
|
set name = "Setup supermatter"
|
|
set desc = "Sets up the supermatter engine"
|
|
|
|
if(!check_rights(R_DEBUG|R_ADMIN)) return
|
|
|
|
var/response = alert("Are you sure? This will start up the engine. Should only be used during debug!",,"Setup Completely","Setup except coolant","No")
|
|
|
|
if(response == "No")
|
|
return
|
|
|
|
var/found_the_pump = 0
|
|
var/obj/machinery/power/supermatter/SM
|
|
|
|
for(var/obj/machinery/M in world)
|
|
if(!M)
|
|
continue
|
|
if(!M.loc)
|
|
continue
|
|
if(!M.loc.loc)
|
|
continue
|
|
|
|
if(istype(M.loc.loc,/area/engineering/engine_room))
|
|
if(istype(M,/obj/machinery/power/rad_collector))
|
|
var/obj/machinery/power/rad_collector/Rad = M
|
|
Rad.anchored = 1
|
|
Rad.connect_to_network()
|
|
|
|
var/obj/item/weapon/tank/phoron/Phoron = new/obj/item/weapon/tank/phoron(Rad)
|
|
|
|
Phoron.air_contents.gas["phoron"] = 29.1154 //This is a full tank if you filled it from a canister
|
|
Rad.P = Phoron
|
|
|
|
Phoron.loc = Rad
|
|
|
|
if(!Rad.active)
|
|
Rad.toggle_power()
|
|
Rad.update_icon()
|
|
|
|
else if(istype(M,/obj/machinery/atmospherics/binary/pump)) //Turning on every pump.
|
|
var/obj/machinery/atmospherics/binary/pump/Pump = M
|
|
if(Pump.name == "Engine Feed" && response == "Setup Completely")
|
|
found_the_pump = 1
|
|
Pump.air2.gas["nitrogen"] = 3750 //The contents of 2 canisters.
|
|
Pump.air2.temperature = 50
|
|
Pump.air2.update_values()
|
|
Pump.use_power=1
|
|
Pump.target_pressure = 4500
|
|
Pump.update_icon()
|
|
|
|
else if(istype(M,/obj/machinery/power/supermatter))
|
|
SM = M
|
|
spawn(50)
|
|
SM.power = 320
|
|
|
|
else if(istype(M,/obj/machinery/power/smes)) //This is the SMES inside the engine room. We don't need much power.
|
|
var/obj/machinery/power/smes/SMES = M
|
|
SMES.input_attempt = 1
|
|
SMES.input_level = 200000
|
|
SMES.output_level = 75000
|
|
|
|
else if(istype(M.loc.loc,/area/engineering/engine_smes)) //Set every SMES to charge and spit out 300,000 power between the 4 of them.
|
|
if(istype(M,/obj/machinery/power/smes))
|
|
var/obj/machinery/power/smes/SMES = M
|
|
SMES.input_attempt = 1
|
|
SMES.input_level = 200000
|
|
SMES.output_level = 75000
|
|
|
|
if(!found_the_pump && response == "Setup Completely")
|
|
src << "\red Unable to locate air supply to fill up with coolant, adding some coolant around the supermatter"
|
|
var/turf/simulated/T = SM.loc
|
|
T.zone.air.gas["nitrogen"] += 450
|
|
T.zone.air.temperature = 50
|
|
T.zone.air.update_values()
|
|
|
|
|
|
log_admin("[key_name(usr)] setup the supermatter engine [response == "Setup except coolant" ? "without coolant" : ""]")
|
|
message_admins("\blue [key_name_admin(usr)] setup the supermatter engine [response == "Setup except coolant" ? "without coolant": ""]", 1)
|
|
return
|
|
|
|
|
|
|
|
/client/proc/cmd_debug_mob_lists()
|
|
set category = "Debug"
|
|
set name = "Debug Mob Lists"
|
|
set desc = "For when you just gotta know"
|
|
|
|
switch(input("Which list?") in list("Players","Admins","Mobs","Living Mobs","Dead Mobs", "Clients"))
|
|
if("Players")
|
|
usr << jointext(player_list,",")
|
|
if("Admins")
|
|
usr << jointext(admins,",")
|
|
if("Mobs")
|
|
usr << jointext(mob_list,",")
|
|
if("Living Mobs")
|
|
usr << jointext(living_mob_list,",")
|
|
if("Dead Mobs")
|
|
usr << jointext(dead_mob_list,",")
|
|
if("Clients")
|
|
usr << jointext(clients,",")
|
|
|
|
// DNA2 - Admin Hax
|
|
/client/proc/cmd_admin_toggle_block(var/mob/M,var/block)
|
|
if(!ticker)
|
|
alert("Wait until the game starts")
|
|
return
|
|
if(istype(M, /mob/living/carbon))
|
|
M.dna.SetSEState(block,!M.dna.GetSEState(block))
|
|
domutcheck(M,null,MUTCHK_FORCED)
|
|
M.update_mutations()
|
|
var/state="[M.dna.GetSEState(block)?"on":"off"]"
|
|
var/blockname=assigned_blocks[block]
|
|
message_admins("[key_name_admin(src)] has toggled [M.key]'s [blockname] block [state]!")
|
|
log_admin("[key_name(src)] has toggled [M.key]'s [blockname] block [state]!")
|
|
else
|
|
alert("Invalid mob")
|
|
|
|
/datum/admins/proc/view_runtimes()
|
|
set category = "Debug"
|
|
set name = "View Runtimes"
|
|
set desc = "Open the Runtime Viewer"
|
|
|
|
if(!check_rights(R_DEBUG))
|
|
return
|
|
|
|
error_cache.showTo(usr)
|