Merge pull request #905 from Erthilo/TGUpdates

TG Updates up to r3115
This commit is contained in:
SkyMarshal
2012-04-22 14:04:39 -07:00
49 changed files with 819 additions and 741 deletions
+1 -1
View File
@@ -382,7 +382,6 @@
#include "code\game\throwing.dm"
#include "code\game\topic.dm"
#include "code\game\turf.dm"
#include "code\game\vials.dm"
#include "code\game\vote.dm"
#include "code\game\area\ai_monitored.dm"
#include "code\game\area\areas.dm"
@@ -785,6 +784,7 @@
#include "code\modules\admin\verbs\modifyvariables.dm"
#include "code\modules\admin\verbs\onlyone.dm"
#include "code\modules\admin\verbs\playsound.dm"
#include "code\modules\admin\verbs\possess.dm"
#include "code\modules\admin\verbs\pray.dm"
#include "code\modules\admin\verbs\randomverbs.dm"
#include "code\modules\admin\verbs\striketeam.dm"
@@ -1,6 +1,7 @@
/obj/machinery/atmospherics/unary
dir = SOUTH
initialize_directions = SOUTH
layer = TURF_LAYER+0.1
var/datum/gas_mixture/air_contents
@@ -6,7 +6,6 @@
desc = "Has a valve and pump attached to it"
level = 1
layer = TURF_LAYER
var/area_uid
var/id_tag = null
power_channel = ENVIRON
@@ -6,7 +6,6 @@
desc = "Has a valve and pump attached to it"
level = 1
layer = TURF_LAYER
var/id_tag = null
var/frequency = 1439
+2 -1
View File
@@ -6,7 +6,7 @@ obj/machinery/atmospherics/pipe
var/volume = 0
var/force = 20
layer = 2.4 //under wires with their 2.5
layer = 2.4 //under wires with their 2.44
var/alert_pressure = 80*ONE_ATMOSPHERE
//minimum pressure before check_pressure(...) should be called
@@ -605,6 +605,7 @@ obj/machinery/atmospherics/pipe
var/obj/machinery/atmospherics/node3
level = 1
layer = 2.4 //under wires with their 2.44
New()
switch(dir)
+1 -1
View File
@@ -172,7 +172,7 @@
new /obj/item/weapon/storage/toolbox/mechanical(src)
new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/gloves/black(src)
new /obj/item/device/radio/headset/headset_eng(src)
new /obj/item/device/radio/headset/headset_rob(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/under/rank/roboticist(src)
+1 -1
View File
@@ -43,7 +43,7 @@
/obj/machinery/camera
name = "security camera"
desc = "This is used to monitor rooms."
desc = "It's used to monitor rooms."
icon = 'monitors.dmi'
icon_state = "camera"
var/network = "SS13"
+3 -10
View File
@@ -313,18 +313,11 @@
containertype = "/obj/structure/closet/crate"
containername = "Janitorial supplies"
/obj/item/weapon/storage/lightbox/tubes
/datum/supply_packs/lightbulbs
name = "Replacement lights"
contains = list("/obj/item/weapon/storage/lightbox/tubes",
"/obj/item/weapon/storage/lightbox/tubes",
"/obj/item/weapon/storage/lightbox/tubes",
"/obj/item/weapon/storage/lightbox/tubes",
"/obj/item/weapon/storage/lightbox/tubes",
"/obj/item/weapon/storage/lightbox/tubes",
"/obj/item/weapon/storage/lightbox/bulbs",
"/obj/item/weapon/storage/lightbox/bulbs")
contains = list("/obj/item/weapon/storage/lightbox/mixed",
"/obj/item/weapon/storage/lightbox/mixed",
"/obj/item/weapon/storage/lightbox/mixed")
cost = 5
containertype = "/obj/structure/closet/crate"
containername = "Replacement lights"
+6 -2
View File
@@ -241,12 +241,16 @@
user.Weaken(5)
return
/obj/item/toy/crayonbox
/obj/item/weapon/storage/crayonbox
name = "box of crayons"
desc = "A box of crayons for all your drawing needs."
desc = "A box of crayons for all your rune drawing needs."
icon = 'crayons.dmi'
icon_state = "crayonbox"
w_class = 2.0
storage_slots = 6
can_hold = list(
"/obj/item/toy/crayon"
)
/obj/item/toy/crayon
name = "crayon"
-1
View File
@@ -560,7 +560,6 @@
var/access = list()
var/registered_name = null
var/assignment = null
var/obj/item/weapon/photo/PHOTO = null
var/over_jumpsuit = 1 // If set to 0, it won't display on top of the mob's jumpsuit
var/dorm = 0 // determines if this ID has claimed a dorm already
-24
View File
@@ -23,30 +23,6 @@
/obj/structure/window/basic
icon_state = "window"
/obj/structure/window/basic/north
dir = NORTH
/obj/structure/window/basic/east
dir = EAST
/obj/structure/window/basic/west
dir = WEST
/obj/structure/window/basic/south
dir = SOUTH
/obj/structure/window/basic/northwest
dir = NORTHWEST
/obj/structure/window/basic/northeast
dir = NORTHEAST
/obj/structure/window/basic/southwest
dir = SOUTHWEST
/obj/structure/window/basic/southeast
dir = SOUTHEAST
// Reinforced
/obj/structure/window/reinforced
+3 -3
View File
@@ -177,14 +177,14 @@ var/datum/roundinfo/roundinfo = new()
spawn(50)
if (mode.station_was_nuked)
feedback_set_details("end_proper","nuke")
//feedback_set_details("end_proper","nuke")
world << "\blue <B>Rebooting due to destruction of station in [restart_timeout/10] seconds</B>"
else
feedback_set_details("end_proper","proper completion")
//feedback_set_details("end_proper","proper completion")
world << "\blue <B>Restarting in [restart_timeout/10] seconds</B>"
// send2irc(world.url,"Server Rebooting!")
feedback_set_details("round_end","[time2text(world.realtime)]")
if(blackbox)
blackbox.save_all_data_to_sql()
@@ -42,8 +42,8 @@
world << "Uh oh, its malfunction and there is no AI! Please report this."
world << "Rebooting world in 5 seconds."
feedback_set_details("end_error","malf - no AI")
feedback_set_details("round_end","[time2text(world.realtime)]")
//feedback_set_details("end_error","malf - no AI")
if(blackbox)
blackbox.save_all_data_to_sql()
sleep(50)
@@ -203,37 +203,37 @@
var/crew_evacuated = (emergency_shuttle.location==2)
if ( station_captured && station_was_nuked)
feedback_set_details("round_end_result","win - AI win - nuke")
//feedback_set_details("round_end_result","win - AI win - nuke")
world << "<FONT size = 3><B>AI Victory</B></FONT>"
world << "<B>Everyone was killed by the self-destruct!</B>"
else if ( station_captured && malf_dead && !station_was_nuked)
feedback_set_details("round_end_result","halfwin - AI killed, staff lost control")
//feedback_set_details("round_end_result","halfwin - AI killed, staff lost control")
world << "<FONT size = 3><B>Neutral Victory</B></FONT>"
world << "<B>The AI has been killed!</B> The staff has lose control over the station."
else if ( station_captured && !malf_dead && !station_was_nuked)
feedback_set_details("round_end_result","win - AI win - no explosion")
//feedback_set_details("round_end_result","win - AI win - no explosion")
world << "<FONT size = 3><B>AI Victory</B></FONT>"
world << "<B>The AI has chosen not to explode you all!</B>"
else if (!station_captured && station_was_nuked)
feedback_set_details("round_end_result","halfwin - everyone killed by nuke")
//feedback_set_details("round_end_result","halfwin - everyone killed by nuke")
world << "<FONT size = 3><B>Neutral Victory</B></FONT>"
world << "<B>Everyone was killed by the nuclear blast!</B>"
else if (!station_captured && malf_dead && !station_was_nuked)
feedback_set_details("round_end_result","loss - staff win")
//feedback_set_details("round_end_result","loss - staff win")
world << "<FONT size = 3><B>Human Victory</B></FONT>"
world << "<B>The AI has been killed!</B> The staff is victorious."
else if (!station_captured && !malf_dead && !station_was_nuked && crew_evacuated)
feedback_set_details("round_end_result","halfwin - evacuated")
//feedback_set_details("round_end_result","halfwin - evacuated")
world << "<FONT size = 3><B>Neutral Victory</B></FONT>"
world << "<B>The Corporation has lose [station_name()]! All survived personnel will be fired!</B>"
else if (!station_captured && !malf_dead && !station_was_nuked && !crew_evacuated)
feedback_set_details("round_end_result","nalfwin - interrupted")
//feedback_set_details("round_end_result","nalfwin - interrupted")
world << "<FONT size = 3><B>Neutral Victory</B></FONT>"
world << "<B>Round was mysteriously interrupted!</B>"
..()
+1 -2
View File
@@ -217,8 +217,7 @@
if(!ticker.mode.check_finished())//If the mode does not deal with the nuke going off so just reboot because everyone is stuck as is
world << "<B>Resetting in 30 seconds!</B>"
feedback_set_details("end_error","nuke - unhandled ending")
feedback_set_details("round_end","[time2text(world.realtime)]")
//feedback_set_details("end_error","nuke - unhandled ending")
if(blackbox)
blackbox.save_all_data_to_sql()
sleep(300)
+1 -1
View File
@@ -174,7 +174,7 @@
if("Geneticist")
return list(access_medical, access_morgue, access_medlab)
if("Station Engineer")
return list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks)
return list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction)
if("Assistant")
return list()
if("Chaplain")
+1 -1
View File
@@ -143,7 +143,7 @@
new /obj/item/clothing/suit/syndicatefake(src.loc)
new /obj/item/clothing/head/syndicatefake(src.loc)
if(8)
new /obj/item/toy/crayonbox(src.loc)
new /obj/item/weapon/storage/crayonbox(src.loc)
if(9)
new /obj/item/toy/spinningtoy(src.loc)
// if(10) //Commented out on Urist-chan's orders~
+2 -2
View File
@@ -19,7 +19,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
// 1 = assistance
// 2 = supplies
// 3 = info
// 4 = ass + sup
// 4 = ass + sup //Erro goddamn you just HAD to shorten "assistance" down to "ass"
// 5 = ass + info
// 6 = sup + info
// 7 = ass + sup + info
@@ -217,7 +217,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
announceAuth = 0;
screen = 0
if(href_list["sendAnnouncement"])
world << "<b><font size = 3> <font color = red>[department] announcement:</font color> [html_encode(message)]</font size></b>"
world << "<b><font size = 3><font color = red>[department] announcement:</font color> [html_encode(message)]</font size></b>"
announceAuth = 0
message = ""
screen = 0
+7 -5
View File
@@ -50,7 +50,6 @@ To combat this, I changed the window name. -- Doohl
//Add hidden inventory
src.build_inventory(temp_hidden,temp_hiddenprices,1)
src.build_inventory(temp_coin,temp_coin_amt, 0, 1)
power_change()
return
@@ -302,18 +301,21 @@ To combat this, I changed the window name. -- Doohl
FOLKS IN IRC RULED THAT THIS WAS SHITTY -- Doohl
No more delays! Go nuts~~~~~~~~~~~
if(((src.last_reply + (src.vend_delay + 200)) <= world.time) && src.vend_reply)
A 20 second delay is stupid, a 2 second delay however, is not. -- Nodrak
No more greyshirts intentionally crashing clients through vended item spam!
*/
if(((src.last_reply + (src.vend_delay + 50)) <= world.time) && src.vend_reply)
spawn(0)
src.speak(src.vend_reply)
src.last_reply = world.time
*/
use_power(5)
if (src.icon_vend) //Show the vending animation if needed
flick(src.icon_vend,src)
// spawn(src.vend_delay) NOPE.jpg
//src.vend_ready = 1
spawn(src.vend_delay)
src.vend_ready = 1
if(R.price <= points)
new product_path(get_turf(src))
+1 -1
View File
@@ -567,7 +567,7 @@
playsound(P.loc, 'twobeep.ogg', 50, 1)
// log_pda("[usr] (PDA: [src.name]) sent \"[t]\" to [P.name]")
log_pda("[usr] (PDA: [src.name]) sent \"[t]\" to [P.name]")
if("Send Honk")//Honk virus
+1 -1
View File
@@ -564,7 +564,7 @@ Code:
/obj/item/weapon/cartridge/Topic(href, href_list)
..()
if (usr.stat || usr.restrained() || !in_range(loc, usr))
if (!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
usr.machine = null
usr << browse(null, "window=pda")
return
+36 -8
View File
@@ -13,18 +13,36 @@
icon_on = "flight1"
icon_off = "flight0"
/obj/item/device/flashlight/initialize()
..()
if (on)
icon_state = icon_on
src.sd_SetLuminosity(brightness_on)
else
icon_state = icon_off
src.sd_SetLuminosity(0)
/obj/item/device/flashlight/proc/update_brightness(var/mob/user = null)
if (on)
icon_state = icon_on
if(src.loc == user)
user.total_luminosity += brightness_on
else if (isturf(src.loc))
src.sd_SetLuminosity(brightness_on)
else
icon_state = icon_off
if(src.loc == user)
user.total_luminosity -= brightness_on
else if (isturf(src.loc))
src.sd_SetLuminosity(0)
/obj/item/device/flashlight/attack_self(mob/user)
if(!isturf(user.loc))
user << "You cannot turn the light on while in this [user.loc]" //To prevent some lighting anomalities.
return
on = !on
if (on)
icon_state = icon_on
user.total_luminosity += brightness_on
else
icon_state = icon_off
user.total_luminosity -= brightness_on
update_brightness(user)
return
@@ -64,8 +82,8 @@
/obj/item/device/flashlight/pickup(mob/user)
if(on)
src.sd_SetLuminosity(0)
user.total_luminosity += brightness_on
src.sd_SetLuminosity(0)
/obj/item/device/flashlight/dropped(mob/user)
@@ -136,10 +154,20 @@
/obj/item/clothing/head/helmet/hardhat/pickup(mob/user)
if(on)
src.sd_SetLuminosity(0)
user.total_luminosity += brightness_on
user.UpdateLuminosity()
src.sd_SetLuminosity(0)
/obj/item/clothing/head/helmet/hardhat/dropped(mob/user)
if(on)
user.total_luminosity -= brightness_on
user.UpdateLuminosity()
src.sd_SetLuminosity(brightness_on)
/obj/item/device/flashlight/lamp/verb/toggle_light()
set name = "Toggle light"
set category = "Object"
set src in oview(1)
if(!usr.stat)
attack_self(usr)
+2 -1
View File
@@ -290,7 +290,7 @@ proc/analyze_health_less_info(mob/living/carbon/M as mob, mob/user as mob)
user.show_message(text("\blue \t Damage Specifics: []-[]-[]-[]", M.getOxyLoss() > 50 ? "\red [M.getOxyLoss()]" : M.getOxyLoss(), M.getToxLoss() > 50 ? "\red [M.getToxLoss()]" : M.getToxLoss(), M.getFireLoss() > 50 ? "\red[M.getFireLoss()]" : M.getFireLoss(), M.getBruteLoss() > 50 ? "\red[M.getBruteLoss()]" : M.getBruteLoss()), 1)
user.show_message("\blue Key: Suffocation/Toxin/Burns/Brute", 1)
user.show_message("\blue Body Temperature: [M.bodytemperature-T0C]&deg;C ([M.bodytemperature*1.8-459.67]&deg;F)", 1)
if(istype(M, /mob/living/carbon/human))
if(mode == 1 && istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/H = M
var/list/damaged = H.get_damaged_organs(1,1)
user.show_message("\blue Localized Damage, Brute/Burn:",1)
@@ -299,6 +299,7 @@ proc/analyze_health_less_info(mob/living/carbon/M as mob, mob/user as mob)
user.show_message(text("\blue \t []: []\blue-[]",capitalize(org.getDisplayName()),(org.brute_dam > 0)?"\red [org.brute_dam]":0,(org.burn_dam > 0)?"\red [org.burn_dam]":0),1)
else
user.show_message("\blue \t Limbs are OK.",1)
if((M.changeling && M.changeling.changeling_fakedeath) || (M.reagents && M.reagents.has_reagent("zombiepowder")))
user.show_message(text("\blue [] | [] | [] | []", fake_oxy > 50 ? "\red Severe oxygen deprivation detected\blue" : "Subject bloodstream oxygen level normal", M.getToxLoss() > 50 ? "\red Dangerous amount of toxins detected\blue" : "Subject bloodstream toxin level minimal", M.getFireLoss() > 50 ? "\red Severe burn damage detected\blue" : "Subject burn injury status O.K", M.getBruteLoss() > 50 ? "\red Severe anatomical damage detected\blue" : "Subject brute-force injury status O.K"), 1)
else
+43
View File
@@ -117,6 +117,49 @@
for(var/mob/O in oviewers())
O << text("\red [user] [src.anchored ? "fastens" : "unfastens"] the grille.")
return
else if( istype(W,/obj/item/stack/sheet/rglass) || istype(W,/obj/item/stack/sheet/glass) )
var/dir_to_set = 1
if(src.loc == usr.loc)
dir_to_set = usr.dir
else
if( ( src.x == usr.x ) || (src.y == usr.y) ) //Only supposed to work for cardinal directions.
if( src.x == usr.x )
if( src.y > usr.y )
dir_to_set = 2
else
dir_to_set = 1
else if( src.y == usr.y )
if( src.x > usr.x )
dir_to_set = 8
else
dir_to_set = 4
else
usr << "\red You can't reach there.."
return //Only works for cardinal direcitons, diagonals aren't supposed to work like this.
for(var/obj/structure/window/WINDOW in src.loc)
if(WINDOW.dir == dir_to_set)
usr << "\red There is already a window facing this way there."
return
usr << "\blue You start placing the window"
if(do_after(user,20))
if(!src) return //Grille destroyed while waiting
for(var/obj/structure/window/WINDOW in src.loc)
if(WINDOW.dir == dir_to_set)//checking this for a 2nd time to check if a window was made while we were waiting.
usr << "\red There is already a window facing this way there."
return
var/obj/structure/window/WD
if(istype(W,/obj/item/stack/sheet/rglass))
WD = new/obj/structure/window(src.loc,1) //reinforced window
else
WD = new/obj/structure/window(src.loc,0) //normal window
WD.dir = dir_to_set
WD.ini_dir = dir_to_set
WD.anchored = 0
WD.state = 0
var/obj/item/stack/ST = W
ST.use(1)
usr << "\blue You place the [WD] on the [src]"
return
else if(istype(W, /obj/item/weapon/shard))
src.health -= W.force * 0.1
else if(!shock(user, 70))
-5
View File
@@ -253,11 +253,6 @@
del(src)
return
/obj/screen/close/DblClick()
if (src.master)
src.master:close(usr)
return
//What the fuck is this code Looks to be the parrying code. If you're grabbing someone, it might hit them instead... or something.--SkyMarshal
/mob/attackby(obj/item/weapon/W as obj, mob/user as mob)
+2 -5
View File
@@ -75,6 +75,7 @@
if (cx > mx)
cx = tx
cy--
//Foreach goto(56)
src.closer.screen_loc = text("[],[]", mx, my)
return
@@ -94,7 +95,7 @@
/obj/item/weapon/secstorage/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
if ((istype(W, /obj/item/weapon/card/emag)||istype(W, /obj/item/weapon/melee/energy/blade)) && (src.locked == 1) && (!src.emagged))
if ( (istype(W, /obj/item/weapon/card/emag)||istype(W, /obj/item/weapon/melee/energy/blade)) && (src.locked == 1) && (!src.emagged))
if(istype(W, /obj/item/weapon/card/emag))
var/obj/item/weapon/card/emag/E = W
if(E.uses)
@@ -260,7 +261,3 @@
src.orient_objs(7, 8, 10, 7)
return
return
/obj/screen/storage/attackby(W, mob/user as mob)
src.master.attackby(W, user)
return
-3
View File
@@ -244,9 +244,6 @@
O.emp_act(severity)
..()
/obj/screen/storage/attackby(W, mob/user as mob)
src.master.attackby(W, user)
return
// BubbleWrap - A box can be folded up to make card
/obj/item/weapon/storage/attack_self(mob/user as mob)
if ( contents.len )
+40 -29
View File
@@ -2,7 +2,7 @@
//CONTAINS
CRAYONS
--------*/
/obj/item/toy/crayonbox/New()
/obj/item/weapon/storage/crayonbox/New()
..()
new /obj/item/toy/crayon/red(src)
new /obj/item/toy/crayon/orange(src)
@@ -12,13 +12,13 @@ CRAYONS
new /obj/item/toy/crayon/purple(src)
updateIcon()
/obj/item/toy/crayonbox/proc/updateIcon()
/obj/item/weapon/storage/crayonbox/proc/updateIcon()
overlays = list() //resets list
overlays += image('crayons.dmi',"crayonbox")
for(var/obj/item/toy/crayon/crayon in contents)
overlays += image('crayons.dmi',crayon.colourName)
/obj/item/toy/crayonbox/attackby(obj/item/W as obj, mob/user as mob)
/obj/item/weapon/storage/crayonbox/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W,/obj/item/toy/crayon))
switch(W:colourName)
if("mime")
@@ -27,34 +27,37 @@ CRAYONS
if("rainbow")
usr << "This crayon is too powerful to be contained in this box."
return
else
usr << "You add the crayon to the box."
user.drop_item()
W.loc = src
add_fingerprint(user)
updateIcon()
return
else
..()
..()
updateIcon()
/obj/item/toy/crayonbox/attack_hand(mob/user as mob)
if(user.r_hand == src || user.l_hand == src)
if(!contents.len)
user << "\red You're out of crayons!"
/obj/item/weapon/storage/crayonbox/attack_hand(mob/user as mob)
updateIcon()
..()
/obj/item/weapon/storage/crayonbox/MouseDrop(obj/over_object as obj)
if (ishuman(usr) || ismonkey(usr))
var/mob/M = usr
if (!( istype(over_object, /obj/screen) ))
return ..()
if ((!( M.restrained() ) && !( M.stat )))
if (over_object.name == "r_hand")
if (!( M.r_hand ))
M.u_equip(src)
M.r_hand = src
else
if (over_object.name == "l_hand")
if (!( M.l_hand ))
M.u_equip(src)
M.l_hand = src
M.update_clothing()
src.add_fingerprint(usr)
return
if(over_object == usr && in_range(src, usr) || usr.contents.Find(src))
if (usr.s_active)
usr.s_active.close(usr)
src.show_to(usr)
return
else
var/list/crayons = new()
for(var/obj/item/toy/crayon/C in contents)
crayons[C:colourName] = C
var/choice = input(user, "Pick a color:", "Crayon Box") in crayons as text|null
if(choice)
var/obj/crayon = crayons[choice]
user.put_in_hand(crayon)
user << "You take the [crayon:colourName] crayon out of the box."
updateIcon()
else
return ..()
icon_state = "crayonbox[contents.len]"
return
/obj/item/toy/crayon/red
@@ -157,6 +160,14 @@ CRAYONS
else
..()
/obj/item/toy/crayon/attack_hand(mob/user as mob)
var/obj/item/weapon/storage/crayonbox/CB
if(istype(src.loc, /obj/item/weapon/storage/crayonbox))
CB = src.loc
..()
if(CB)
CB.updateIcon()
/obj/effect/decal/cleanable/crayon
name = "rune"
desc = "A rune drawn in crayon."
+2
View File
@@ -315,6 +315,8 @@
health = 40
if(opacity)
icon_state = "twindow"
else
icon_state = "window"
update_nearby_tiles(need_rebuild=1)
relativewindow()
+2 -1
View File
@@ -15,6 +15,7 @@
return
/* why is something that only is usable in the lobby a mob verb?
/mob/verb/toggletitlemusic()
set category = "Special Verbs"
set name = "Toggle Pregame Music"
@@ -27,4 +28,4 @@
M << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // stop the jamsz
return
*/
*/
-314
View File
@@ -1,314 +0,0 @@
//NOTE:
//This file contains the worst code ive ever written.
//I dont fucking care. It looks pretty awesome.
//////////////////////////////////////////////////////////
/obj/effect/dummy/liquid
name = "water"
icon = 'effects.dmi'
icon_state = "nothing"
invisibility = 101
var/canmove = 1
density = 0
anchored = 1
/obj/item/weapon/vial
name = "glass vial"
icon = 'chemical.dmi'
desc = "a glass vial filled with a strange liquid"
icon_state = "vialgreen"
item_state = "vialgreen"
throwforce = 3.0
throw_speed = 1
throw_range = 8
force = 3.0
w_class = 1.0
/obj/item/weapon/vial/green
name = "glass vial"
icon = 'chemical.dmi'
desc = "a glass vial filled with a strange green liquid"
icon_state = "vialgreen"
item_state = "vialgreen"
/obj/item/weapon/vial/blue
name = "glass vial"
icon = 'chemical.dmi'
desc = "a glass vial filled with a shimmering blue liquid"
icon_state = "vialblue"
item_state = "vialblue"
//////////////////////////////////////////////////////////
///////////////////////////////////////////////////////***
/obj/item/weapon/vial/attack(target as mob, mob/user as mob)
if(target == user) return attack_self(user)
user << "\blue The vial shatters."
src.shatter()
/obj/item/weapon/vial/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
user << "\blue The vial shatters."
src.shatter()
/obj/item/weapon/vial/attack_self(mob/user as mob)
user << "\blue You uncork the vial and drink the liquid."
src.drink(user)
/obj/item/weapon/vial/proc/shatter()
return
/obj/item/weapon/vial/proc/drink(user)
return
///////////////////////////////////////////////////////***
/////////////////////////////////////////////////////green
/obj/item/weapon/vial/green/drink(mob/living/user as mob)
var/A = src
src = null
del(A)
switch(pick(1,2,3))
if(1)
spawn(300)
user.gib()
if(2)
user.Weaken(5)
user.contract_disease(new /datum/disease/gbs,1)
if(3)
spawn(200)
user.contract_disease(new /datum/disease/gbs,1)
/obj/item/weapon/vial/green/shatter()
var/A = src
var/atom/sourceloc = get_turf(src.loc)
src = null
del(A)
var/obj/effect/overlay/O = new /obj/effect/overlay( sourceloc )
var/obj/effect/overlay/O2 = new /obj/effect/overlay( sourceloc )
O.name = "green liquid"
O.density = 0
O.anchored = 1
O.icon = 'effects.dmi'
O.icon_state = "greenshatter"
O2.name = "broken bits of glass"
O2.density = 0
O2.anchored = 1
O2.icon = 'objects.dmi'
O2.icon_state = "shards"
for(var/mob/living/carbon/human/H in view(5, sourceloc))
H.contract_disease(new /datum/disease/gbs,1)
var/i
for(i=0, i<5, i++)
for(var/mob/living/carbon/human/H in view(5, sourceloc))
H.contract_disease(new /datum/disease/gbs,1)
sleep(20)
flick("greenshatter2",O)
O.icon_state = "nothing"
sleep(5)
del(O)
/////////////////////////////////////////////////////green
/////////////////////////////////////////////////////blue
/obj/item/weapon/vial/blue/drink(user)
var/A = src
var/atom/sourceloc = get_turf(src.loc)
src = null
del(A)
var/obj/effect/overlay/O = new /obj/effect/overlay( sourceloc )
var/obj/effect/overlay/O2 = new /obj/effect/overlay( sourceloc )
O.name = "green liquid"
O.density = 0
O.anchored = 1
O.icon = 'effects.dmi'
O.icon_state = "blueshatter"
O2.name = "broken bits of glass"
O2.density = 0
O2.anchored = 1
O2.icon = 'objects.dmi'
O2.icon_state = "shards"
liquify(user)
sleep(20)
flick("blueshatter2",O)
O.icon_state = "nothing"
sleep(5)
del(O)
/obj/item/weapon/vial/blue/shatter()
var/A = src
var/atom/sourceloc = get_turf(src.loc)
src = null
del(A)
var/obj/effect/overlay/O = new /obj/effect/overlay( sourceloc )
var/obj/effect/overlay/O2 = new /obj/effect/overlay( sourceloc )
O.name = "green liquid"
O.density = 0
O.anchored = 1
O.icon = 'effects.dmi'
O.icon_state = "blueshatter"
O2.name = "broken bits of glass"
O2.density = 0
O2.anchored = 1
O2.icon = 'objects.dmi'
O2.icon_state = "shards"
for(var/mob/living/carbon/human/H in view(1, sourceloc))
liquify(H)
sleep(20)
flick("blueshatter2",O)
O.icon_state = "nothing"
sleep(5)
del(O)
/proc/liquify(var/mob/H, time = 150)
if(H.stat) return
spawn(0)
var/mobloc = get_turf(H.loc)
var/obj/effect/dummy/liquid/holder = new /obj/effect/dummy/liquid( mobloc )
var/atom/movable/overlay/animation = new /atom/movable/overlay( mobloc )
animation.name = "water"
animation.density = 0
animation.anchored = 1
animation.icon = 'mob.dmi'
animation.icon_state = "liquify"
animation.layer = 5
animation.master = holder
flick("liquify",animation)
H.canmove = 0
sleep(4)
H.loc = holder
H.canmove = 1
H.client.eye = holder
spawn(0)
var/i
for(i=0, i<10, i++)
spawn(0)
var/obj/effect/effect/water/water1 = new /obj/effect/effect/water( mobloc )
var/direction = pick(alldirs)
water1.name = "water"
water1.density = 0
water1.icon = 'water.dmi'
water1.icon_state = "extinguish"
for(i=0, i<pick(1,2,3), i++)
sleep(5)
step(water1,direction)
spawn(20)
del(water1)
sleep(time)
H.canmove = 0
mobloc = get_turf(H.loc)
animation.loc = mobloc
var/b
for(b=0, b<10, b++)
spawn(0)
var/turf = mobloc
var/direction = pick(alldirs)
var/c
for(c=0, c<pick(1,2,3), c++)
turf = get_step(turf,direction)
var/obj/effect/effect/water/water2 = new /obj/effect/effect/water( turf )
water2.name = "water"
water2.icon = 'water.dmi'
water2.icon_state = "extinguish"
walk_to(water2,mobloc,-1,5)
sleep(20)
del(water2)
sleep(20)
flick("reappear",animation)
sleep(5)
H.loc = mobloc
H.canmove = 1
H.client.eye = H
del(animation)
del(holder)
/obj/effect/dummy/liquid/relaymove(var/mob/user, direction)
if (!src.canmove) return
//writing my own movement because step is broken.
switch(direction)
if(NORTH)
src.y++
if(SOUTH)
src.y--
if(EAST)
src.x++
if(WEST)
src.x--
if(NORTHEAST)
src.y++
src.x++
if(NORTHWEST)
src.y++
src.x--
if(SOUTHEAST)
src.y--
src.x++
if(SOUTHWEST)
src.y--
src.x--
src.canmove = 0
spawn(20) canmove = 1
/obj/effect/dummy/liquid/ex_act(blah)
return
/obj/effect/dummy/liquid/bullet_act(blah,blah)
return
///atom/relaymove - change to obj to restore
/obj/relaymove(var/mob/user, direction) //testing something
//if(anchored) return
//step(src, direction)
/proc/possess(obj/O as obj in world)
set name = "Possess Obj"
set category = "Object"
var/turf/T = get_turf(O)
if(T)
log_admin("[key_name(usr)] has possessed [O] ([O.type]) at ([T.x], [T.y], [T.z])")
message_admins("[key_name(usr)] has possessed [O] ([O.type]) at ([T.x], [T.y], [T.z])", 1)
else
log_admin("[key_name(usr)] has possessed [O] ([O.type]) at an unknown location")
message_admins("[key_name(usr)] has possessed [O] ([O.type]) at an unknown location", 1)
if(!usr.control_object) //If you're not already possessing something...
usr.name_archive = usr.real_name
usr.loc = O
usr.real_name = O.name
usr.name = O.name
usr.client.eye = O
usr.control_object = O
/proc/release(obj/O as obj in world)
set name = "Release Obj"
set category = "Object"
//usr.loc = get_turf(usr)
if(usr.control_object && usr.name_archive) //if you have a name archived and if you are actually relassing an object
usr.real_name = usr.name_archive
usr.name = usr.real_name
usr.update_clothing() //So the name is updated properly
usr.loc = O.loc // Appear where the object you were controlling is -- TLE
usr.client.eye = usr
usr.control_object = null
/proc/givetestverbs(mob/M as mob in world)
set desc = "Give this guy possess/release verbs"
set category = "Debug"
set name = "Give Possessing Verbs"
M.verbs += /proc/possess
M.verbs += /proc/release
/////////////////////////////////////////////////////blue
+4 -4
View File
@@ -87,8 +87,8 @@
if(ticker && ticker.mode)
world <<"\red <B>World will reboot in 10 seconds</B>"
feedback_set_details("end_error","mode vote - [winner]")
feedback_set_details("round_end","[time2text(world.realtime)]")
//feedback_set_details("end_error","mode vote - [winner]")
if(blackbox)
blackbox.save_all_data_to_sql()
@@ -108,8 +108,8 @@
world <<"\red <B>World will reboot in 5 seconds</B>"
feedback_set_details("end_error","restart vote")
feedback_set_details("round_end","[time2text(world.realtime)]")
//feedback_set_details("end_error","restart vote")
if(blackbox)
blackbox.save_all_data_to_sql()
+115 -17
View File
@@ -189,7 +189,7 @@ var/global/BSACooldown = 0
Banlist["minutes"] << (mins + CMinutes)
Banlist["bannedby"] << usr.ckey
Banlist.cd = "/base"
feedback_inc("ban_edit",1)
//feedback_inc("ban_edit",1)
unbanpanel()
/////////////////////////////////////new ban stuff
@@ -253,7 +253,7 @@ var/global/BSACooldown = 0
log_admin("[key_name(usr)] unbanned [key_name(M)] from [job]")
ban_unban_log_save("[key_name(usr)] unjobbanned [key_name(M)] from [job]")
M << "\red<BIG><B>You have been un-jobbanned by [usr.client.ckey] from [job].</B></BIG>"
feedback_inc("ban_job_unban",1)
//feedback_inc("ban_job_unban",1)
message_admins("\blue [key_name_admin(usr)] unbanned [key_name_admin(M)] from [job]", 1)
jobban_unban(M, job)
href_list["jobban2"] = 1
@@ -263,7 +263,7 @@ var/global/BSACooldown = 0
return
ban_unban_log_save("[key_name(usr)] jobbanned [key_name(M)] from [job]. reason: [reason]")
log_admin("[key_name(usr)] banned [key_name(M)] from [job]")
feedback_inc("ban_job",1)
//feedback_inc("ban_job",1)
M << "\red<BIG><B>You have been jobbanned by [usr.client.ckey] from [job].</B></BIG>"
M << "\red <B>The reason is: [reason]</B>"
M << "\red Jobban can be lifted only on demand."
@@ -320,7 +320,8 @@ var/global/BSACooldown = 0
ban_unban_log_save("[usr.client.ckey] has banned [M.ckey]. - Reason: [reason] - This will be removed in [mins] minutes.")
M << "\red<BIG><B>You have been banned by [usr.client.ckey].\nReason: [reason].</B></BIG>"
M << "\red This is a temporary ban, it will be removed in [mins] minutes."
feedback_inc("ban_tmp",1)
//feedback_inc("ban_tmp",1)
//feedback_inc("ban_tmp_mins",mins)
if(config.appeal_address)
M << "\red You may try to appeal this at [config.appeal_address]"
else
@@ -344,7 +345,7 @@ var/global/BSACooldown = 0
ban_unban_log_save("[usr.client.ckey] has permabanned [M.ckey]. - Reason: [reason] - This is a permanent ban.")
log_admin("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.")
message_admins("\blue[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.")
feedback_inc("ban_perma",1)
//feedback_inc("ban_perma",1)
del(M.client)
//del(M)
@@ -422,7 +423,8 @@ var/global/BSACooldown = 0
else
M << "\red No ban appeals URL has been set."
ban_unban_log_save("[usr.client.ckey] has jobbanned [M.ckey] from [job]. - Reason: [reason] - This will be removed in [mins] minutes.")
feedback_inc("ban_job",1)
//feedback_inc("ban_job",1)
//feedback_add_details("ban_job","- [job]")
log_admin("[usr.client.ckey] has banned [M.ckey] from [job].\nReason: [reason]\nThis will be removed in [mins] minutes.")
message_admins("\blue[usr.client.ckey] has banned [M.ckey] from [job].\nReason: [reason]\nThis will be removed in [mins] minutes.")
@@ -440,7 +442,8 @@ var/global/BSACooldown = 0
else
M << "\red No ban appeals URL has been set."
ban_unban_log_save("[usr.client.ckey] has banned [M.ckey] from [job]. - Reason: [reason] - This is a permanent ban.")
feedback_inc("ban_job_tmp",1)
//feedback_inc("ban_job_tmp",1)
//feedback_add_details("ban_job_tmp","- [job]")
log_admin("[usr.client.ckey] has banned [M.ckey] from [job].\nReason: [reason]\nThis is a permanent ban.")
message_admins("\blue[usr.client.ckey] has banned [M.ckey] from [job].\nReason: [reason]\nThis is a permanent ban.")
@@ -1263,14 +1266,20 @@ var/global/BSACooldown = 0
var/ok = 0
switch(href_list["secretsfun"])
if("sec_clothes")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","SC")
for(var/obj/item/clothing/under/O in world)
del(O)
ok = 1
if("sec_all_clothes")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","SAC")
for(var/obj/item/clothing/O in world)
del(O)
ok = 1
if("sec_classic1")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","SC1")
for(var/obj/item/clothing/suit/fire/O in world)
del(O)
for(var/obj/structure/grille/O in world)
@@ -1284,7 +1293,10 @@ var/global/BSACooldown = 0
del(O)
ok = 1*/
if("toxic")
/* for(var/obj/machinery/atmoalter/siphs/fullairsiphon/O in world)
/*
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","T")
for(var/obj/machinery/atmoalter/siphs/fullairsiphon/O in world)
O.t_status = 3
for(var/obj/machinery/atmoalter/siphs/scrubbers/O in world)
O.t_status = 1
@@ -1298,26 +1310,34 @@ var/global/BSACooldown = 0
*/
usr << "HEH"
if("monkey")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","M")
for(var/mob/living/carbon/human/H in world)
spawn(0)
H.monkeyize()
ok = 1
if("corgi")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","M")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","M")
for(var/mob/living/carbon/human/H in world)
spawn(0)
H.corgize()
ok = 1
if("power")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","P")
log_admin("[key_name(usr)] made all areas powered", 1)
message_admins("\blue [key_name_admin(usr)] made all areas powered", 1)
power_restore()
if("unpower")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","UP")
log_admin("[key_name(usr)] made all areas unpowered", 1)
message_admins("\blue [key_name_admin(usr)] made all areas unpowered", 1)
power_failure()
if("activateprison")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","AP")
world << "\blue <B>Transit signature detected.</B>"
world << "\blue <B>Incoming shuttle.</B>"
/*
@@ -1329,6 +1349,8 @@ var/global/BSACooldown = 0
message_admins("\blue [key_name_admin(usr)] sent the prison shuttle to the station.", 1)
if("deactivateprison")
/*
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","DP")
var/A = locate(/area/shuttle_prison)
for(var/atom/movable/AM as mob|obj in A)
AM.z = 2
@@ -1336,6 +1358,8 @@ var/global/BSACooldown = 0
*/
message_admins("\blue [key_name_admin(usr)] sent the prison shuttle back.", 1)
if("toggleprisonstatus")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","TPS")
for(var/obj/machinery/computer/prison_shuttle/PS in world)
PS.allowedtocall = !(PS.allowedtocall)
message_admins("\blue [key_name_admin(usr)] toggled status of prison shuttle to [PS.allowedtocall].", 1)
@@ -1343,6 +1367,8 @@ var/global/BSACooldown = 0
if(!ticker)
alert("The game hasn't started yet!", null, null, null, null, null)
return
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","PW")
message_admins("\blue [key_name_admin(usr)] teleported all players to the prison station.", 1)
for(var/mob/living/carbon/human/H in world)
var/turf/loc = find_loc(H)
@@ -1385,6 +1411,8 @@ var/global/BSACooldown = 0
var/objective = input("Enter an objective")
if(!objective)
return
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","TA([objective])")
for(var/mob/living/carbon/human/H in world)
if(H.stat == 2 || !H.client || !H.mind) continue
if(is_special_character(H)) continue
@@ -1415,6 +1443,8 @@ var/global/BSACooldown = 0
if ((src.rank in list( "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
if(mining_shuttle_moving)
return
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","ShM")
move_mining_shuttle()
message_admins("\blue [key_name_admin(usr)] moved mining shuttle", 1)
log_admin("[key_name(usr)] moved the mining shuttle")
@@ -1422,6 +1452,8 @@ var/global/BSACooldown = 0
alert("You're not of a high enough rank to do this")
if("moveadminshuttle")
if ((src.rank in list( "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","ShA")
move_admin_shuttle()
message_admins("\blue [key_name_admin(usr)] moved the centcom administration shuttle", 1)
log_admin("[key_name(usr)] moved the centcom administration shuttle")
@@ -1429,6 +1461,8 @@ var/global/BSACooldown = 0
alert("You're not of a high enough rank to do this")
if("moveferry")
if ((src.rank in list( "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","ShF")
move_ferry()
message_admins("\blue [key_name_admin(usr)] moved the centcom ferry", 1)
log_admin("[key_name(usr)] moved the centcom ferry")
@@ -1436,12 +1470,16 @@ var/global/BSACooldown = 0
alert("You're not of a high enough rank to do this")
if("movealienship")
if ((src.rank in list( "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","ShX")
move_alien_ship()
message_admins("\blue [key_name_admin(usr)] moved the alien dinghy", 1)
log_admin("[key_name(usr)] moved the alien dinghy")
else
alert("You're not of a high enough rank to do this")
if("flicklights")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","FL")
while(!usr.stat)
//knock yourself out to stop the ghosts
for(var/mob/M in world)
@@ -1513,6 +1551,8 @@ var/global/BSACooldown = 0
sleep(rand(30,400))
Wall.ex_act(rand(2,1)) */
if("wave")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","MW")
if ((src.rank in list("Trial Admin", "Badmin", "Game Admin", "Game Master" )))
meteor_wave()
message_admins("[key_name_admin(usr)] has spawned meteors", 1)
@@ -1522,6 +1562,8 @@ var/global/BSACooldown = 0
alert("You cannot perform this action. You must be of a higher administrative rank!", null, null, null, null, null)
return
if("gravanomalies")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","GA")
command_alert("Gravitational anomalies detected on the station. There is no additional data.", "Anomaly Alert")
world << sound('granomalies.ogg')
var/turf/T = pick(blobstart)
@@ -1551,41 +1593,61 @@ var/global/BSACooldown = 0
spawn(rand(300,600))
del(P)
if("goblob")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","BL")
mini_blob_event()
message_admins("[key_name_admin(usr)] has spawned blob", 1)
if("aliens")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","AL")
if(aliens_allowed)
Force_Event(/datum/event/alieninfestation)
message_admins("[key_name_admin(usr)] has spawned aliens", 1)
if("spaceninja")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","SN")
if(toggle_space_ninja)
if(space_ninja_arrival())//If the ninja is actually spawned. They may not be depending on a few factors.
message_admins("[key_name_admin(usr)] has sent in a space ninja", 1)
if("carp")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","C")
var/choice = input("You sure you want to spawn carp?") in list("Badmin", "Cancel")
if(choice == "Badmin")
message_admins("[key_name_admin(usr)] has spawned carp.", 1)
Force_Event(/datum/event/spacecarp)
if("radiation")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","R")
message_admins("[key_name_admin(usr)] has has irradiated the station", 1)
Force_Event(/datum/event/radiation)
if("immovable")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","IR")
message_admins("[key_name_admin(usr)] has sent an immovable rod to the station", 1)
immovablerod()
if("prison_break")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","PB")
message_admins("[key_name_admin(usr)] has allowed a prison break", 1)
Force_Event(/datum/event/prisonbreak)
if("electric")
message_admins("[key_name_admin(usr)] has triggered an electrical storm", 1)
Force_Event(/datum/event/electricalstorm)
if("lightsout")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","LO")
message_admins("[key_name_admin(usr)] has broke a lot of lights", 1)
lightsout(1,2)
if("blackout")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","BO")
message_admins("[key_name_admin(usr)] broke all lights", 1)
SpawnEvent()
lightsout(0,0)
if("virus")
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","V")
var/answer = alert("Do you want this to be a random disease or do you have something in mind?",,"Virus2","Random","Choose")
if(answer=="Random")
Force_Event(/datum/event/viralinfection)
@@ -1608,6 +1670,8 @@ var/global/BSACooldown = 0
trigger_armed_response_team(1)
if("retardify")
if (src.rank in list("Badmin", "Game Admin", "Game Master"))
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","RET")
for(var/mob/living/carbon/human/H in world)
if(H.client)
H << "\red <B>You suddenly feel stupid.</B>"
@@ -1618,6 +1682,8 @@ var/global/BSACooldown = 0
return
if("fakeguns")
if (src.rank in list("Badmin", "Game Admin", "Game Master"))
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","FG")
for(var/obj/item/W in world)
if(istype(W, /obj/item/clothing) || istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/weapon/disk) || istype(W, /obj/item/weapon/tank))
continue
@@ -1636,6 +1702,8 @@ var/global/BSACooldown = 0
return*/
if("dorf")
if (src.rank in list("Badmin","Game Admin", "Game Master"))
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","DF")
for(var/mob/living/carbon/human/B in world)
B.face_icon_state = "facial_wise"
B.update_face()
@@ -1645,6 +1713,8 @@ var/global/BSACooldown = 0
return
if("ionstorm")
if (src.rank in list("Badmin","Game Admin", "Game Master"))
//feedback_inc("admin_secrets_fun_used",1)
//feedback_add_details("admin_secrets_fun_used","I")
Force_Event(/datum/event/ionstorm)
message_admins("[key_name_admin(usr)] triggered an ion storm")
var/show_log = alert(usr, "Show ion message?", "Message", "Yes", "No")
@@ -1922,7 +1992,7 @@ var/global/BSACooldown = 0
log_admin("[user.ckey] warned [M.ckey], resulting in a [AUTOBANTIME] minute autoban.")
ban_unban_log_save("[user.ckey] warned [M.ckey], resulting in a [AUTOBANTIME] minute autoban.")
message_admins("\blue [user.ckey] warned [M.ckey], resulting in a [AUTOBANTIME] minute autoban.")
feedback_inc("ban_warn",1)
//feedback_inc("ban_warn",1)
del(M.client)
@@ -1989,6 +2059,7 @@ var/global/BSACooldown = 0
foo += text("<A href='?src=\ref[src];jobban2=\ref[M]'>Jobban</A>")
dat += text("<body>[foo]</body></html>")
usr << browse(dat, "window=adminplayeropts;size=480x150")
//feedback_add_details("admin_verb","SPP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/datum/player_info/var
@@ -2345,6 +2416,7 @@ var/global/BSACooldown = 0
CM.client.vote = "none"
else
CM.client.vote = "default"
//feedback_add_details("admin_verb","SV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/admins/proc/votekill()
set category = "Server"
@@ -2365,6 +2437,7 @@ var/global/BSACooldown = 0
if(M.client)
M << browse(null, "window=vote")
M.client.showvote = 0
//feedback_add_details("admin_verb","AV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/admins/proc/voteres()
set category = "Server"
@@ -2387,6 +2460,7 @@ var/global/BSACooldown = 0
if(config.allow_vote_mode)
vote.nextvotetime = world.timeofday
//feedback_add_details("admin_verb","TV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/admins/proc/restart()
set category = "Server"
@@ -2401,8 +2475,9 @@ var/global/BSACooldown = 0
world << "\red <b>Restarting world!</b> \blue Initiated by [usr.client.stealth ? "Admin" : usr.key]!"
log_admin("[key_name(usr)] initiated a reboot.")
feedback_set_details("end_error","admin reboot - by [usr.key] [usr.client.stealth ? "(stealth)" : ""]")
feedback_set_details("round_end","[time2text(world.realtime)]")
//feedback_set_details("end_error","admin reboot - by [usr.key] [usr.client.stealth ? "(stealth)" : ""]")
//feedback_add_details("admin_verb","R") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
if(blackbox)
blackbox.save_all_data_to_sql()
//send2irc(world.url,"Server Rebooting!")
@@ -2419,6 +2494,7 @@ var/global/BSACooldown = 0
message = adminscrub(message,500)
world << "\blue <b>[usr.client.stealth ? "Administrator" : usr.key] Announces:</b>\n \t [message]"
log_admin("Announce: [key_name(usr)] : [message]")
//feedback_add_details("admin_verb","A") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/admins/proc/toggleooc()
set category = "Server"
@@ -2431,6 +2507,7 @@ var/global/BSACooldown = 0
world << "<B>The OOC channel has been globally disabled!</B>"
log_admin("[key_name(usr)] toggled OOC.")
message_admins("[key_name_admin(usr)] toggled OOC.", 1)
//feedback_add_details("admin_verb","TOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/admins/proc/toggleoocdead()
set category = "Server"
@@ -2440,6 +2517,7 @@ var/global/BSACooldown = 0
log_admin("[key_name(usr)] toggled OOC.")
message_admins("[key_name_admin(usr)] toggled Dead OOC.", 1)
//feedback_add_details("admin_verb","TDOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/admins/proc/toggletraitorscaling()
set category = "Server"
@@ -2448,6 +2526,7 @@ var/global/BSACooldown = 0
traitor_scaling = !traitor_scaling
log_admin("[key_name(usr)] toggled Traitor Scaling to [traitor_scaling].")
message_admins("[key_name_admin(usr)] toggled Traitor Scaling [traitor_scaling ? "on" : "off"].", 1)
//feedback_add_details("admin_verb","TTS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/admins/proc/startnow()
set category = "Server"
@@ -2460,9 +2539,10 @@ var/global/BSACooldown = 0
ticker.current_state = GAME_STATE_SETTING_UP
log_admin("[usr.key] has started the game.")
message_admins("<font color='blue'>[usr.key] has started the game.</font>")
//feedback_add_details("admin_verb","SN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return 1
else
alert("Game has already started you fucking jerk, stop spamming up the chat :ARGH:")
usr << "<font color='red'>Error: Start Now: Game has already started.</font>"
return 0
/obj/admins/proc/toggleenter()
@@ -2477,6 +2557,7 @@ var/global/BSACooldown = 0
log_admin("[key_name(usr)] toggled new player game entering.")
message_admins("\blue [key_name_admin(usr)] toggled new player game entering.", 1)
world.update_status()
//feedback_add_details("admin_verb","TE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/admins/proc/toggleAI()
set category = "Server"
@@ -2489,6 +2570,7 @@ var/global/BSACooldown = 0
world << "<B>The AI job is chooseable now.</B>"
log_admin("[key_name(usr)] toggled AI allowed.")
world.update_status()
//feedback_add_details("admin_verb","TAI") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/admins/proc/toggleaban()
set category = "Server"
@@ -2502,6 +2584,7 @@ var/global/BSACooldown = 0
message_admins("\blue [key_name_admin(usr)] toggled respawn to [abandon_allowed ? "On" : "Off"].", 1)
log_admin("[key_name(usr)] toggled respawn to [abandon_allowed ? "On" : "Off"].")
world.update_status()
//feedback_add_details("admin_verb","TR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/admins/proc/toggle_aliens()
set category = "Server"
@@ -2510,6 +2593,7 @@ var/global/BSACooldown = 0
aliens_allowed = !aliens_allowed
log_admin("[key_name(usr)] toggled Aliens to [aliens_allowed].")
message_admins("[key_name_admin(usr)] toggled Aliens [aliens_allowed ? "on" : "off"].", 1)
//feedback_add_details("admin_verb","TA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/admins/proc/toggle_space_ninja()
set category = "Server"
@@ -2518,6 +2602,7 @@ var/global/BSACooldown = 0
toggle_space_ninja = !toggle_space_ninja
log_admin("[key_name(usr)] toggled Space Ninjas to [toggle_space_ninja].")
message_admins("[key_name_admin(usr)] toggled Space Ninjas [toggle_space_ninja ? "on" : "off"].", 1)
//feedback_add_details("admin_verb","TSN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/admins/proc/delay()
set category = "Server"
@@ -2538,6 +2623,7 @@ var/global/BSACooldown = 0
else
world << "<b>The game will start soon.</b>"
log_admin("[key_name(usr)] removed the delay.")
//feedback_add_details("admin_verb","DELAY") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/admins/proc/adjump()
set category = "Server"
@@ -2545,6 +2631,7 @@ var/global/BSACooldown = 0
set name="Toggle Jump"
config.allow_admin_jump = !(config.allow_admin_jump)
message_admins("\blue Toggled admin jumping to [config.allow_admin_jump].")
//feedback_add_details("admin_verb","TJ") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/admins/proc/adspawn()
set category = "Server"
@@ -2552,6 +2639,7 @@ var/global/BSACooldown = 0
set name="Toggle Spawn"
config.allow_admin_spawning = !(config.allow_admin_spawning)
message_admins("\blue Toggled admin item spawning to [config.allow_admin_spawning].")
//feedback_add_details("admin_verb","TAS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/admins/proc/adrev()
set category = "Server"
@@ -2559,6 +2647,7 @@ var/global/BSACooldown = 0
set name="Toggle Revive"
config.allow_admin_rev = !(config.allow_admin_rev)
message_admins("\blue Toggled reviving to [config.allow_admin_rev].")
//feedback_add_details("admin_verb","TAR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/admins/proc/immreboot()
set category = "Server"
@@ -2569,8 +2658,9 @@ var/global/BSACooldown = 0
world << "\red <b>Rebooting world!</b> \blue Initiated by [usr.client.stealth ? "Admin" : usr.key]!"
log_admin("[key_name(usr)] initiated an immediate reboot.")
feedback_set_details("end_error","immediate admin reboot - by [usr.key] [usr.client.stealth ? "(stealth)" : ""]")
feedback_set_details("round_end","[time2text(world.realtime)]")
//feedback_set_details("end_error","immediate admin reboot - by [usr.key] [usr.client.stealth ? "(stealth)" : ""]")
//feedback_add_details("admin_verb","IR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
if(blackbox)
blackbox.save_all_data_to_sql()
@@ -2586,6 +2676,7 @@ var/global/BSACooldown = 0
else
deadchat = 0
usr << "Deadchat turned off"
//feedback_add_details("admin_verb","TDV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/toggleprayers()
set category = "Admin"
@@ -2597,6 +2688,7 @@ var/global/BSACooldown = 0
else
seeprayers = 0
usr << "Prayer visibility turned off"
//feedback_add_details("admin_verb","TP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/admins/proc/unprison(var/mob/M in world)
set category = "Admin"
@@ -2610,6 +2702,7 @@ var/global/BSACooldown = 0
alert("Admin jumping disabled")
else
alert("[M.name] is not prisoned.")
//feedback_add_details("admin_verb","UP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
////////////////////////////////////////////////////////////////////////////////////////////////ADMIN HELPER PROCS
@@ -2704,10 +2797,10 @@ var/global/BSACooldown = 0
log_admin("[key_name(usr)] spawned [chosen] at ([usr.x],[usr.y],[usr.z])")
else
alert("You cannot perform this action. You must be of a higher administrative rank!", null, null, null, null, null)
return
//feedback_add_details("admin_verb","SA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/admins/proc/show_traitor_panel(var/mob/M in world)
@@ -2719,6 +2812,7 @@ var/global/BSACooldown = 0
usr << "Sorry, this mob has no mind!"
return
M.mind.edit_memory()
//feedback_add_details("admin_verb","STP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/admins/proc/toggletintedweldhelmets()
@@ -2732,6 +2826,7 @@ var/global/BSACooldown = 0
world << "<B>The tinted_weldhelh has been disabled!</B>"
log_admin("[key_name(usr)] toggled tinted_weldhelh.")
message_admins("[key_name_admin(usr)] toggled tinted_weldhelh.", 1)
//feedback_add_details("admin_verb","TTWH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/*
/obj/admins/proc/toggleguests()
@@ -2745,6 +2840,7 @@ var/global/BSACooldown = 0
world << "<B>Guests may now enter the game.</B>"
log_admin("[key_name(usr)] toggled guests game entering [guests_allowed?"":"dis"]allowed.")
message_admins("\blue [key_name_admin(usr)] toggled guests game entering [guests_allowed?"":"dis"]allowed.", 1)
//feedback_add_details("admin_verb","TGU") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
*/
@@ -2766,6 +2862,7 @@ var/global/BSACooldown = 0
</html>"}
usr << browse(output,"window=server_logfile")
onclose(usr,"server_logfile")
//feedback_add_details("admin_verb","VTL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
/obj/admins/proc/view_atk_log()
@@ -2793,6 +2890,7 @@ var/global/BSACooldown = 0
set category = "Admin"
if (src.holder)
src.holder.unjobbanpanel()
//feedback_add_details("admin_verb","UJBP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return*/
+292 -235
View File
@@ -8,8 +8,7 @@
// verbs += /client/proc/radio_report //for radio debugging dont think its been used in a very long time
// verbs += /client/proc/fix_next_move //has not been an issue in a very very long time
// Mapping helpers added via enable_mapping_debug verb
// Mapping helpers added via enable_debug_verbs verb
// verbs += /client/proc/do_not_use_these
// verbs += /client/proc/camera_view
// verbs += /client/proc/sec_camera_report
@@ -40,38 +39,23 @@
switch (rank)
if ("Game Master")
deadchat = 1
seeprayers = 1
holder.level = 6
if ("Game Admin")
deadchat = 1
seeprayers = 1
holder.level = 5
if ("Badmin")
deadchat = 1
seeprayers = 1
holder.level = 4
if ("Trial Admin")
deadchat = 1
seeprayers = 1
holder.level = 3
if(holder.state == 2) // if observing
// Debug
verbs += /client/proc/debug_variables
//verbs += /client/proc/cmd_modify_object_variables --Merged with view variables
verbs += /client/proc/cmd_modify_ticker_variables
verbs += /client/proc/toggleadminhelpsound
// Admin helpers
verbs += /client/proc/toggle_view_range
// Admin game intrusion
verbs += /client/proc/Getmob
verbs += /client/proc/Getkey
@@ -84,36 +68,32 @@
verbs += /client/proc/cmd_admin_add_freeform_ai_law
verbs += /client/proc/cmd_admin_rejuvenate
verbs += /client/proc/cmd_admin_drop_everything
//verbs += /client/proc/cmd_modify_object_variables --Merged with view variables
if ("Admin Candidate")
holder.level = 2
if(holder.state == 2) // if observing
deadchat = 1
// Settings
verbs += /obj/admins/proc/toggleaban //abandon mob
verbs += /client/proc/deadchat //toggles deadchat
verbs += /obj/admins/proc/toggleaban //abandon mob
verbs += /client/proc/deadchat //toggles deadchat
// Admin helpers
//verbs += /client/proc/cmd_admin_attack_log //Use view variables
verbs += /client/proc/cmd_admin_check_contents
// Admin game intrusion
verbs += /client/proc/Jump
verbs += /client/proc/jumptokey
verbs += /client/proc/jumptomob
//verbs += /client/proc/cmd_admin_attack_log --Merged with view variables
if ("Temporary Admin")
holder.level = 1
if ("Moderator")
holder.level = 0
if ("Admin Observer")
holder.level = -1
if ("Banned")
holder.level = -2
del(src)
@@ -126,139 +106,31 @@
del(holder)
return
if (holder)//Slightly easier to edit way of granting powers
if (holder) //THE BELOW handles granting powers. The above is for special cases only!
holder.owner = src
if (holder.level >= 6)//Game Master********************************************************************
verbs += /client/proc/callproc
verbs += /obj/admins/proc/adjump
verbs += /client/proc/get_admin_state
verbs += /client/proc/reload_admins
verbs += /client/proc/kill_air
verbs += /client/proc/cmd_debug_make_powernets
verbs += /client/proc/enable_mapping_debug
verbs += /client/proc/everyone_random
verbs += /client/proc/only_one // Fateweaver suggested I do this - Doohl
verbs += /client/proc/callprocgen
verbs += /client/proc/callprocobj
verbs += /client/proc/rnd_check_designs
verbs += /client/proc/CarbonCopy
verbs += /client/proc/getruntimelog //used by coders to retrieve runtime logs
if (holder.level >= 5)//Game Admin********************************************************************
verbs += /obj/admins/proc/view_txt_log
verbs += /obj/admins/proc/view_atk_log
//verbs += /client/proc/cmd_mass_modify_object_variables --Merged with view variables
verbs += /client/proc/cmd_admin_list_open_jobs
verbs += /client/proc/cmd_admin_direct_narrate
verbs += /client/proc/cmd_admin_world_narrate
verbs += /client/proc/cmd_debug_del_all
verbs += /client/proc/cmd_debug_tog_aliens
verbs += /client/proc/ticklag
verbs += /client/proc/mapload
verbs += /obj/admins/proc/spawn_atom
verbs += /client/proc/check_words
verbs += /client/proc/drop_bomb
//verbs += /client/proc/give_spell --moved to view variables
//verbs += /client/proc/cmd_admin_ninjafy --now in view vars
verbs += /client/proc/cmd_admin_grantfullaccess
//verbs += /client/proc/cmd_admin_explosion --now in view vars
//verbs += /client/proc/cmd_admin_emp --now in view vars
verbs += /client/proc/jump_to_dead_group
verbs += /client/proc/cmd_admin_drop_everything
verbs += /client/proc/make_sound
verbs += /client/proc/play_local_sound
verbs += /client/proc/send_space_ninja
verbs += /client/proc/restartcontroller //Can call via aproccall --I_hate_easy_things.jpg, Mport --Agouri
verbs += /client/proc/Blobize//I need to remember to move/remove this later
verbs += /client/proc/toggle_clickproc //TODO ERRORAGE (Temporary proc while the enw clickproc is being tested)
verbs += /client/proc/toggle_gravity_on
verbs += /client/proc/toggle_gravity_off
verbs += /client/proc/toggle_random_events
// Moved over from tg's Game Master:
verbs += /client/proc/colorooc
verbs += /obj/admins/proc/toggle_aliens //toggle aliens
verbs += /obj/admins/proc/toggle_space_ninja //toggle ninjas
verbs += /client/proc/triple_ai
verbs += /client/proc/object_talk
verbs += /client/proc/strike_team
verbs += /client/proc/admin_invis
verbs += /client/proc/cmd_admin_godmode
verbs += /client/proc/delbook
verbs += /client/proc/Force_Event_admin
verbs += /client/proc/radioalert
verbs += /client/proc/make_tajaran
verbs += /client/proc/CarbonCopy
//Admin Observer
if (holder.level >= -1)
verbs += /client/proc/cmd_admin_say
verbs += /client/proc/cmd_admin_gib_self
verbs += /client/proc/deadmin_self
else if (holder.level == -3) // Retired Admin
verbs += /client/proc/cmd_admin_say
return
else return
if (holder.level >= 4)//Badmin********************************************************************
verbs += /obj/admins/proc/adrev //toggle admin revives
verbs += /obj/admins/proc/adspawn //toggle admin item spawning
verbs += /client/proc/debug_variables
//verbs += /client/proc/cmd_modify_object_variables --Merged with view variables
verbs += /client/proc/cmd_modify_ticker_variables
verbs += /client/proc/Debug2 //debug toggle switch
verbs += /client/proc/toggle_view_range
verbs += /client/proc/Getmob
verbs += /client/proc/Getkey
verbs += /client/proc/sendmob
verbs += /client/proc/Jump
verbs += /client/proc/jumptokey
verbs += /client/proc/jumptomob
verbs += /client/proc/jumptoturf
verbs += /client/proc/cmd_admin_add_freeform_ai_law
verbs += /client/proc/cmd_admin_add_random_ai_law
//verbs += /client/proc/cmd_admin_godmode --now in view variables
verbs += /client/proc/cmd_admin_rejuvenate
//verbs += /client/proc/cmd_admin_gib --View vars menu
verbs += /client/proc/cmd_admin_delete
//verbs += /proc/togglebuildmode --now in view vars
verbs += /client/proc/toggleadminhelpsound
verbs += /client/proc/togglebuildmodeself
verbs += /client/proc/hide_most_verbs
verbs += /client/proc/tension_report
verbs += /client/proc/jumptocoord
if (holder.level >= 3)//Trial Admin********************************************************************
verbs += /obj/admins/proc/toggleaban //abandon mob
verbs += /client/proc/cmd_admin_remove_plasma
verbs += /client/proc/admin_call_shuttle
verbs += /client/proc/admin_cancel_shuttle
verbs += /client/proc/admin_deny_shuttle
verbs += /obj/admins/proc/show_traitor_panel
verbs += /client/proc/cmd_admin_dress
verbs += /client/proc/cmd_admin_christmas
verbs += /client/proc/respawn_character
verbs += /client/proc/spawn_xeno
verbs += /proc/possess
verbs += /proc/release
verbs += /client/proc/toggleprayers
verbs += /client/proc/editappear
if (holder.level >= 2)//Admin Candidate********************************************************************
verbs += /client/proc/cmd_admin_add_random_ai_law
verbs += /client/proc/secrets
verbs += /client/proc/play_sound
verbs += /client/proc/stealth
if (holder.level >= 1)//Temp Admin********************************************************************
//verbs += /client/proc/cmd_admin_attack_log //use view variables
verbs += /client/proc/cmd_admin_check_contents
verbs += /obj/admins/proc/delay //game start delay
verbs += /obj/admins/proc/immreboot //immediate reboot
verbs += /obj/admins/proc/restart //restart
verbs += /client/proc/cmd_admin_create_centcom_report
verbs += /client/proc/toggle_hear_deadcast
verbs += /client/proc/toggle_hear_radio
verbs += /client/proc/cmd_admin_change_custom_event
if (holder.level >= 0)//Mod********************************************************************
verbs += /obj/admins/proc/toggleAI //Toggle the AI
verbs += /obj/admins/proc/toggleenter //Toggle enterting
// verbs += /obj/admins/proc/toggleguests //Toggle guests entering
verbs += /obj/admins/proc/toggleooc //toggle ooc
verbs += /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
verbs += /obj/admins/proc/voteres //toggle votes
verbs += /client/proc/deadchat //toggles deadchat
//Moderator
if (holder.level >= 0)
verbs += /obj/admins/proc/toggleAI //Toggle the AI
verbs += /obj/admins/proc/toggleenter //Toggle enterting
// verbs += /obj/admins/proc/toggleguests //Toggle guests entering
verbs += /obj/admins/proc/toggleooc //toggle ooc
verbs += /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
verbs += /obj/admins/proc/voteres //toggle votes
verbs += /obj/admins/proc/vmode
verbs += /obj/admins/proc/votekill
verbs += /obj/admins/proc/show_player_panel
verbs += /client/proc/deadchat //toggles deadchat
verbs += /client/proc/cmd_admin_mute
verbs += /client/proc/cmd_admin_pm
verbs += /client/proc/cmd_admin_subtle_message
@@ -274,36 +146,192 @@
verbs += /client/proc/unban_panel
verbs += /client/proc/jobbans
verbs += /client/proc/playernotes
verbs += /obj/admins/proc/show_skills
verbs += /obj/admins/proc/vmode
verbs += /obj/admins/proc/votekill
verbs += /client/proc/voting
verbs += /obj/admins/proc/show_player_panel
//verbs += /client/proc/cmd_admin_prison --in player panel
//verbs += /obj/admins/proc/unprison --in player panel
verbs += /client/proc/hide_verbs
verbs += /client/proc/general_report
verbs += /client/proc/air_report
verbs += /client/proc/deadmin_self
//verbs += /client/proc/cmd_admin_prison --Merged with player panel
//verbs += /obj/admins/proc/unprison --Merged with player panel
verbs += /obj/admins/proc/show_skills
else return
//Temporary Admin
if (holder.level >= 1)
verbs += /obj/admins/proc/delay //game start delay
verbs += /obj/admins/proc/immreboot //immediate reboot
verbs += /obj/admins/proc/restart //restart
verbs += /client/proc/cmd_admin_check_contents
verbs += /client/proc/cmd_admin_create_centcom_report
verbs += /client/proc/toggle_hear_deadcast
verbs += /client/proc/toggle_hear_radio
verbs += /client/proc/deadmin_self
//verbs += /client/proc/cmd_admin_attack_log --Merged with view variables
verbs += /client/proc/cmd_admin_change_custom_event
else return
if (holder.level >= -1)//Admin Observer
verbs += /client/proc/cmd_admin_say
verbs += /client/proc/cmd_admin_gib_self
//Admin Candidate
if (holder.level >= 2)
verbs += /client/proc/cmd_admin_add_random_ai_law
verbs += /client/proc/secrets
verbs += /client/proc/play_sound
verbs += /client/proc/stealth
verbs += /client/proc/deadmin_self
else return
if (holder.level == -3)//Retired Admin, skips banned
verbs += /client/proc/cmd_admin_say
//Trial Admin
if (holder.level >= 3)
deadchat = 1
seeprayers = 1
verbs += /obj/admins/proc/toggleaban //abandon mob
verbs += /obj/admins/proc/show_traitor_panel
verbs += /client/proc/cmd_admin_remove_plasma
verbs += /client/proc/admin_call_shuttle
verbs += /client/proc/admin_cancel_shuttle
verbs += /client/proc/cmd_admin_dress
verbs += /client/proc/respawn_character
verbs += /client/proc/spawn_xeno
verbs += /client/proc/toggleprayers
verbs += /client/proc/deadmin_self
verbs += /proc/possess
verbs += /proc/release
verbs += /client/proc/admin_deny_shuttle
verbs += /client/proc/cmd_admin_christmas
verbs += /client/proc/editappear
else return
//Badmin
if (holder.level >= 4)
verbs += /obj/admins/proc/adrev //toggle admin revives
verbs += /obj/admins/proc/adspawn //toggle admin item spawning
verbs += /client/proc/debug_variables
verbs += /client/proc/cmd_modify_ticker_variables
verbs += /client/proc/Debug2 //debug toggle switch
verbs += /client/proc/toggle_view_range
verbs += /client/proc/Getmob
verbs += /client/proc/Getkey
verbs += /client/proc/sendmob
verbs += /client/proc/Jump
verbs += /client/proc/jumptokey
verbs += /client/proc/jumptomob
verbs += /client/proc/jumptoturf
verbs += /client/proc/cmd_admin_delete
verbs += /client/proc/cmd_admin_add_freeform_ai_law
verbs += /client/proc/cmd_admin_add_random_ai_law
verbs += /client/proc/cmd_admin_rejuvenate
verbs += /client/proc/hide_most_verbs
verbs += /client/proc/jumptocoord
verbs += /client/proc/deadmin_self
//verbs += /client/proc/cmd_admin_godmode --Merged with view variables
//verbs += /client/proc/cmd_admin_gib --Merged with view variables
//verbs += /proc/togglebuildmode --Merged with view variables
//verbs += /client/proc/cmd_modify_object_variables --Merged with view variables
verbs += /client/proc/togglebuildmodeself
verbs += /client/proc/tension_report
verbs += /client/proc/toggleadminhelpsound
else return
//Game Admin
if (holder.level >= 5)
verbs += /obj/admins/proc/spawn_atom
verbs += /obj/admins/proc/view_txt_log
verbs += /obj/admins/proc/view_atk_log
verbs += /client/proc/cmd_admin_list_open_jobs
verbs += /client/proc/cmd_admin_direct_narrate
verbs += /client/proc/colorooc
verbs += /client/proc/cmd_admin_world_narrate
verbs += /client/proc/cmd_debug_del_all
verbs += /client/proc/cmd_debug_tog_aliens
verbs += /client/proc/ticklag
verbs += /client/proc/mapload
verbs += /client/proc/check_words
verbs += /client/proc/drop_bomb
verbs += /client/proc/cmd_admin_grantfullaccess
verbs += /client/proc/cmd_admin_drop_everything
verbs += /client/proc/make_sound
verbs += /client/proc/play_local_sound
verbs += /client/proc/send_space_ninja
verbs += /client/proc/restartcontroller //Can call via aproccall --I_hate_easy_things.jpg, Mport --Agouri
verbs += /client/proc/Blobize //I need to remember to move/remove this later
verbs += /client/proc/toggle_clickproc //TODO ERRORAGE (Temporary proc while the new clickproc is being tested)
verbs += /client/proc/toggle_gravity_on
verbs += /client/proc/toggle_gravity_off
verbs += /client/proc/toggle_random_events
verbs += /client/proc/deadmin_self
//verbs += /client/proc/cmd_mass_modify_object_variables --Merged with view variables
//verbs += /client/proc/cmd_admin_explosion --Merged with view variables
//verbs += /client/proc/cmd_admin_emp --Merged with view variables
//verbs += /client/proc/give_spell --Merged with view variables
//verbs += /client/proc/cmd_admin_ninjafy --Merged with view variables
// Moved over from tg's Game Master:
verbs += /obj/admins/proc/toggle_aliens //toggle aliens
verbs += /obj/admins/proc/toggle_space_ninja //toggle ninjas
verbs += /client/proc/triple_ai
verbs += /client/proc/object_talk
verbs += /client/proc/strike_team
verbs += /client/proc/admin_invis
verbs += /client/proc/cmd_admin_godmode
verbs += /client/proc/delbook
verbs += /client/proc/Force_Event_admin
verbs += /client/proc/radioalert
verbs += /client/proc/make_tajaran
verbs += /client/proc/CarbonCopy
verbs += /client/proc/jump_to_dead_group
else return
//Game Master
if (holder.level >= 6)
verbs += /obj/admins/proc/adjump
verbs += /client/proc/callproc
verbs += /client/proc/get_admin_state
verbs += /client/proc/reload_admins
verbs += /client/proc/cmd_debug_make_powernets
verbs += /client/proc/everyone_random
verbs += /client/proc/only_one
verbs += /client/proc/deadmin_self
verbs += /client/proc/getruntimelog //used by coders to retrieve runtime logs
verbs += /client/proc/enable_mapping_debug
verbs += /client/proc/kill_air
verbs += /client/proc/callprocgen
verbs += /client/proc/callprocobj
verbs += /client/proc/rnd_check_designs
verbs += /client/proc/CarbonCopy
else return
return
/client/proc/clear_admin_verbs()
deadchat = 0
verbs -= /obj/admins/proc/vmode
verbs -= /obj/admins/proc/votekill
verbs -= /obj/admins/proc/announce
verbs -= /obj/admins/proc/startnow
verbs -= /obj/admins/proc/toggleAI //Toggle the AI
verbs -= /obj/admins/proc/toggleenter //Toggle enterting
// verbs -= /obj/admins/proc/toggleguests //Toggle guests entering
verbs -= /obj/admins/proc/toggleooc //toggle ooc
verbs -= /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
verbs -= /obj/admins/proc/voteres //toggle votes
verbs -= /obj/admins/proc/delay //game start delay
verbs -= /obj/admins/proc/immreboot //immediate reboot
verbs -= /obj/admins/proc/restart //restart
verbs -= /obj/admins/proc/show_traitor_panel
verbs -= /obj/admins/proc/show_player_panel
verbs -= /obj/admins/proc/toggle_aliens //toggle aliens
verbs -= /obj/admins/proc/toggle_space_ninja //toggle ninjas
verbs -= /obj/admins/proc/adjump
verbs -= /obj/admins/proc/view_txt_log
verbs -= /obj/admins/proc/view_atk_log
verbs -= /obj/admins/proc/spawn_atom
verbs -= /obj/admins/proc/adrev //toggle admin revives
verbs -= /obj/admins/proc/adspawn //toggle admin item spawning
verbs -= /obj/admins/proc/toggleaban //abandon mob
verbs -= /client/proc/hide_verbs
verbs -= /client/proc/hide_most_verbs
verbs -= /client/proc/show_verbs
verbs -= /client/proc/colorooc
verbs -= /obj/admins/proc/toggle_aliens //toggle aliens
verbs -= /obj/admins/proc/toggle_space_ninja //toggle ninjas
verbs -= /obj/admins/proc/adjump
verbs -= /client/proc/triple_ai
verbs -= /client/proc/get_admin_state
verbs -= /client/proc/reload_admins
@@ -311,8 +339,6 @@
verbs -= /client/proc/cmd_debug_make_powernets
verbs -= /client/proc/object_talk
verbs -= /client/proc/strike_team
verbs -= /obj/admins/proc/view_txt_log
//verbs -= /client/proc/cmd_mass_modify_object_variables --Merged with view variables
verbs -= /client/proc/cmd_admin_list_open_jobs
verbs -= /client/proc/cmd_admin_direct_narrate
verbs -= /client/proc/cmd_admin_world_narrate
@@ -322,25 +348,16 @@
verbs -= /client/proc/cmd_debug_tog_aliens
verbs -= /client/proc/ticklag
verbs -= /client/proc/mapload
verbs -= /obj/admins/proc/spawn_atom
verbs -= /client/proc/check_words
verbs -= /client/proc/drop_bomb
//verbs -= /client/proc/give_spell --moved to view variables
//verbs -= /client/proc/cmd_admin_ninjafy --now in view vars
verbs -= /client/proc/cmd_admin_grantfullaccess
//verbs -= /client/proc/cmd_admin_explosion --now in view vars
//verbs -= /client/proc/cmd_admin_emp --now in view vars
verbs -= /client/proc/cmd_admin_drop_everything
verbs -= /client/proc/make_sound
verbs -= /client/proc/only_one
verbs -= /client/proc/send_space_ninja
verbs -= /obj/admins/proc/adrev //toggle admin revives
verbs -= /obj/admins/proc/adspawn //toggle admin item spawning
verbs -= /obj/admins/proc/toggleaban //abandon mob
verbs -= /client/proc/debug_variables
//verbs -= /client/proc/cmd_modify_object_variables --merged with view variables
verbs -= /client/proc/cmd_modify_ticker_variables
verbs -= /client/proc/Debug2 //debug toggle switch
verbs -= /client/proc/Debug2 //debug toggle switch
verbs -= /client/proc/toggle_view_range
verbs -= /client/proc/Getmob
verbs -= /client/proc/Getkey
@@ -351,64 +368,35 @@
verbs -= /client/proc/jumptoturf
verbs -= /client/proc/cmd_admin_add_freeform_ai_law
verbs -= /client/proc/cmd_admin_add_random_ai_law
//verbs -= /client/proc/cmd_admin_godmode --now in view variables
verbs -= /client/proc/cmd_admin_rejuvenate
//verbs -= /client/proc/cmd_admin_gib --view vars menu
verbs -= /client/proc/cmd_admin_delete
//verbs -= /proc/togglebuildmode --now in view vars
verbs -= /client/proc/toggleadminhelpsound
verbs -= /client/proc/togglebuildmodeself
verbs -= /client/proc/cmd_admin_remove_plasma
verbs -= /client/proc/admin_call_shuttle
verbs -= /client/proc/admin_cancel_shuttle
verbs -= /client/proc/admin_deny_shuttle
verbs -= /obj/admins/proc/show_traitor_panel
verbs -= /client/proc/cmd_admin_dress
verbs -= /client/proc/cmd_admin_christmas
verbs -= /client/proc/respawn_character
verbs -= /client/proc/spawn_xeno
verbs -= /proc/possess
verbs -= /proc/release
verbs -= /client/proc/cmd_admin_add_random_ai_law
verbs -= /client/proc/secrets
verbs -= /client/proc/play_sound
verbs -= /client/proc/stealth
//verbs -= /client/proc/cmd_admin_attack_log //use view variables
verbs -= /client/proc/cmd_admin_check_contents
verbs -= /obj/admins/proc/delay //game start delay
verbs -= /obj/admins/proc/immreboot //immediate reboot
verbs -= /obj/admins/proc/restart //restart
verbs -= /client/proc/cmd_admin_create_centcom_report
verbs -= /obj/admins/proc/toggleAI //Toggle the AI
verbs -= /obj/admins/proc/toggleenter //Toggle enterting
// verbs -= /obj/admins/proc/toggleguests //Toggle guests entering
verbs -= /obj/admins/proc/toggleooc //toggle ooc
verbs -= /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
verbs -= /obj/admins/proc/voteres //toggle votes
verbs -= /client/proc/deadchat //toggles deadchat
verbs -= /client/proc/deadchat //toggles deadchat
verbs -= /client/proc/cmd_admin_mute
verbs -= /client/proc/cmd_admin_pm
verbs -= /client/proc/cmd_admin_say
verbs -= /client/proc/cmd_admin_subtle_message
verbs -= /client/proc/warn
verbs -= /obj/admins/proc/announce
verbs -= /obj/admins/proc/startnow
verbs -= /client/proc/dsay
verbs -= /client/proc/admin_play
verbs -= /client/proc/admin_observe
verbs -= /client/proc/game_panel
// verbs -= /client/proc/player_panel
verbs -= /client/proc/player_panel_new
verbs -= /client/proc/unban_panel
verbs -= /client/proc/jobbans
verbs -= /client/proc/playernotes
verbs -= /obj/admins/proc/show_skills
verbs -= /obj/admins/proc/vmode
verbs -= /obj/admins/proc/votekill
verbs -= /client/proc/voting
verbs -= /obj/admins/proc/show_player_panel
//verbs -= /client/proc/cmd_admin_prison --in player panel
//verbs -= /obj/admins/proc/unprison --in player panel
verbs -= /client/proc/hide_verbs
verbs -= /client/proc/general_report
verbs -= /client/proc/air_report
@@ -416,18 +404,19 @@
verbs -= /client/proc/cmd_admin_gib_self
verbs -= /client/proc/restartcontroller
verbs -= /client/proc/play_local_sound
verbs -= /client/proc/enable_mapping_debug
verbs -= /client/proc/toggleprayers
verbs -= /client/proc/editappear
verbs -= /client/proc/jump_to_dead_group
verbs -= /client/proc/Blobize
verbs -= /client/proc/toggle_clickproc //TODO ERRORAGE (Temporary proc while the enw clickproc is being tested)
verbs -= /client/proc/toggle_clickproc //TODO ERRORAGE (Temporary proc while the enw clickproc is being tested)
verbs -= /client/proc/toggle_hear_deadcast
verbs -= /client/proc/toggle_hear_radio
verbs -= /client/proc/tension_report
verbs -= /client/proc/player_panel_new
verbs -= /client/proc/toggle_gravity_on
verbs -= /client/proc/toggle_gravity_off
verbs -= /client/proc/toggle_random_events
verbs -= /client/proc/deadmin_self
verbs -= /client/proc/jumptocoord
verbs -= /client/proc/everyone_random
verbs -= /client/proc/cmd_admin_change_custom_event
verbs -= /client/proc/admin_invis
verbs -= /client/proc/callprocgen
@@ -440,6 +429,29 @@
verbs -= /client/proc/make_tajaran
verbs -= /client/proc/CarbonCopy
verbs -= /client/proc/getruntimelog //used by coders to retrieve runtime logs
verbs -= /proc/possess
verbs -= /proc/release
//verbs -= /client/proc/give_spell --Merged with view variables
//verbs -= /client/proc/cmd_admin_ninjafy --Merged with view variables
//verbs -= /client/proc/cmd_modify_object_variables --Merged with view variables
//verbs -= /client/proc/cmd_admin_explosion --Merged with view variables
//verbs -= /client/proc/cmd_admin_emp --Merged with view variables
//verbs -= /client/proc/cmd_admin_godmode --Merged with view variables
//verbs -= /client/proc/cmd_admin_gib --Merged with view variables
//verbs -= /client/proc/cmd_mass_modify_object_variables --Merged with view variables
//verbs -= /client/proc/cmd_admin_attack_log --Merged with view variables
//verbs -= /proc/togglebuildmode --Merged with view variables
//verbs -= /client/proc/cmd_admin_prison --Merged with player panel
//verbs -= /obj/admins/proc/unprison --Merged with player panel
//verbs -= /client/proc/cmd_switch_radio --removed because tcommsat is staying
verbs -= /client/proc/togglebuildmodeself
verbs -= /client/proc/admin_deny_shuttle
verbs -= /client/proc/cmd_admin_christmas
verbs -= /client/proc/editappear
verbs -= /client/proc/jump_to_dead_group
verbs -= /client/proc/playernotes
verbs -= /obj/admins/proc/show_skills
verbs -= /client/proc/enable_mapping_debug
return
@@ -461,6 +473,7 @@
mob.admin_observing = 1
mob.adminghostize(1)
src << "\blue You are now observing"
// feedback_add_details("admin_verb","O") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/admin_play()
set category = "Admin"
@@ -478,6 +491,7 @@
if(istype(mob, /mob/dead/observer))
mob:reenter_corpse()
src << "\blue You are now playing"
// feedback_add_details("admin_verb","P") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/get_admin_state()
set name = "Get Admin State"
@@ -490,20 +504,24 @@
src << "[M.key] is observing - [M.client.holder.state]"
else
src << "[M.key] is undefined - [M.client.holder.state]"
// feedback_add_details("admin_verb","GAS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
///client/proc/player_panel()
// set name = "Player Panel-Old"
// set category = "Admin"
// if(holder)
// holder.player_panel_old()
// return
/*
/client/proc/player_panel()
set name = "Player Panel-Old"
set category = "Admin"
if(holder)
holder.player_panel_old()
// feedback_add_details("admin_verb","PP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
*/
/client/proc/player_panel_new()
set name = "Player Panel"
set category = "Admin"
if(holder)
holder.player_panel_new()
// feedback_add_details("admin_verb","PPN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
/client/proc/jobbans()
@@ -511,27 +529,23 @@
set category = "Admin"
if(holder)
holder.Jobbans()
return
/client/proc/playernotes()
set name = "Show Player Info"
set category = "Admin"
if(holder)
holder.PlayerNotes()
// feedback_add_details("admin_verb","VJB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
/client/proc/unban_panel()
set name = "Unban Panel"
set category = "Admin"
if (holder)
if(holder)
holder.unbanpanel()
// feedback_add_details("admin_verb","UBP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
/client/proc/game_panel()
set name = "Game Panel"
set category = "Admin"
if (holder)
if(holder)
holder.Game()
// feedback_add_details("admin_verb","GP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
/client/proc/secrets()
@@ -539,6 +553,7 @@
set category = "Admin"
if (holder)
holder.Secrets()
// feedback_add_details("admin_verb","S") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
/client/proc/voting()
@@ -546,11 +561,13 @@
set category = "Admin"
if (holder)
holder.Voting()
// feedback_add_details("admin_verb","VO") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/colorooc()
set category = "Fun"
set name = "OOC Text Color"
ooccolor = input(src, "Please select your OOC colour.", "OOC colour") as color
// feedback_add_details("admin_verb","OC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
/client/proc/stealth()
@@ -573,6 +590,14 @@
fakekey = null
log_admin("[key_name(usr)] has turned stealth mode [stealth ? "ON" : "OFF"]")
message_admins("[key_name_admin(usr)] has turned stealth mode [stealth ? "ON" : "OFF"]", 1)
// feedback_add_details("admin_verb","SM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/playernotes()
set name = "Show Player Info"
set category = "Admin"
if(holder)
holder.PlayerNotes()
return
#define AUTOBANTIME 10
/client/proc/warn(var/mob/M in world)
@@ -600,6 +625,7 @@
feedback_inc("ban_warn",1)
del(M.client)
// feedback_add_details("admin_verb","WARN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/drop_bomb() // Some admin dickery that can probably be done better -- TLE
@@ -626,6 +652,7 @@
var/flash_range = input("Flash range (in tiles):") as num
explosion(epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range)
message_admins("\blue [ckey] creating an admin explosion at [epicenter.loc].")
// feedback_add_details("admin_verb","DB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/give_spell(mob/T as mob in world) // -- Urist
set category = "Fun"
@@ -634,6 +661,7 @@
var/obj/effect/proc_holder/spell/S = input("Choose the spell to give to that guy", "ABRAKADABRA") as null|anything in spells
if(!S) return
T.spell_list += new S
// feedback_add_details("admin_verb","GS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/make_sound(var/obj/O in world) // -- TLE
set category = "Special Verbs"
@@ -645,12 +673,16 @@
return
for (var/mob/V in hearers(O))
V.show_message(message, 2)
// feedback_add_details("admin_verb","MS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/togglebuildmodeself()
set name = "Toggle Build Mode Self"
set category = "Special Verbs"
if(src.mob)
togglebuildmode(src.mob)
// feedback_add_details("admin_verb","TBMS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/toggleadminhelpsound()
set name = "Toggle Adminhelp Sound"
@@ -660,6 +692,7 @@
usr << "You will now hear a sound when adminhelps arrive"
else
usr << "You will no longer hear a sound when adminhelps arrive"
// feedback_add_details("admin_verb","AHS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/object_talk(var/msg as text) // -- TLE
set category = "Special Verbs"
@@ -670,6 +703,7 @@
return
for (var/mob/V in hearers(mob.control_object))
V.show_message("<b>[mob.control_object.name]</b> says: \"" + msg + "\"", 2)
// feedback_add_details("admin_verb","OT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/kill_air() // -- TLE
set category = "Debug"
@@ -681,6 +715,7 @@
else
kill_air = 1
usr << "<b>Disabled air processing.</b>"
// feedback_add_details("admin_verb","KA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/show_verbs()
set name = "Toggle admin verb visibility"
@@ -691,14 +726,16 @@
clear_admin_verbs()
update_admins(holder.rank)
deadchat = temp
// feedback_add_details("admin_verb","TAVVS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/toggle_clickproc() //TODO ERRORAGE (This is a temporary verb here while I test the new clicking proc)
set name = "Toggle NewClickProc"
set category = "Admin"
set category = "Debug"
if(!holder) return
using_new_click_proc = !using_new_click_proc
world << "Testing of new click proc [using_new_click_proc ? "enabled" : "disabled"]"
// feedback_add_details("admin_verb","TNCP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/toggle_hear_deadcast()
set name = "Toggle Hear Deadcast"
@@ -706,7 +743,8 @@
if(!holder) return
STFU_ghosts = !STFU_ghosts
usr << "You will now [STFU_ghosts ? "hear" : "not hear"] ghosts"
usr << "You will now [STFU_ghosts ? "not hear" : "hear"] ghosts"
// feedback_add_details("admin_verb","THDC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/toggle_hear_radio()
set name = "Toggle Hear Radio"
@@ -714,7 +752,24 @@
if(!holder) return
STFU_radio = !STFU_radio
usr << "You will now [STFU_radio ? "hear" : "not hear"] radio chatter from nearby radios or speakers"
usr << "You will now [STFU_radio ? "not hear" : "hear"] radio chatter from nearby radios or speakers"
// feedback_add_details("admin_verb","THR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/deadmin_self()
set name = "De-admin self"
set category = "Admin"
if(src.holder)
if(alert("Confirm self-deadmin for the round? You can't re-admin yourself without someont promoting you.",,"Yes","No") == "Yes")
del(holder)
log_admin("[src] deadmined themself.")
message_admins("[src] deadmined themself.", 1)
src.clear_admin_verbs()
src.update_admins(null)
admins.Remove(src.ckey)
usr << "You are now a normal player."
// feedback_add_details("admin_verb","DAS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/hide_most_verbs()//Allows you to keep some functionality while hiding some verbs
set name = "Toggle most admin verb visibility"
@@ -728,7 +783,7 @@
verbs -= /client/proc/hide_most_verbs
verbs += /client/proc/show_verbs
if(holder.level >= 6)//Game Master********************************************************************
if(holder.level >= 5)//Game Admin********************************************************************
verbs += /client/proc/colorooc
if(holder.level >= 4)//Badmin********************************************************************
@@ -752,6 +807,7 @@
verbs += /obj/admins/proc/toggleooc //toggle ooc
verbs += /client/proc/cmd_admin_say//asay
verbs += /client/proc/toggleadminhelpsound
// feedback_add_details("admin_verb","HMV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
@@ -770,6 +826,7 @@
verbs += /client/proc/deadchat //toggles deadchat
verbs += /obj/admins/proc/toggleooc //toggle ooc
verbs += /client/proc/cmd_admin_say//asay
// feedback_add_details("admin_verb","TAVVH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
/client/proc/admin_invis()
+50
View File
@@ -0,0 +1,50 @@
/proc/possess(obj/O as obj in world)
set name = "Possess Obj"
set category = "Object"
if(istype(O,/obj/machinery/singularity))
if(config.forbid_singulo_possession)
usr << "It is forbidden to possess singularities."
return
var/turf/T = get_turf(O)
if(T)
log_admin("[key_name(usr)] has possessed [O] ([O.type]) at ([T.x], [T.y], [T.z])")
message_admins("[key_name(usr)] has possessed [O] ([O.type]) at ([T.x], [T.y], [T.z])", 1)
else
log_admin("[key_name(usr)] has possessed [O] ([O.type]) at an unknown location")
message_admins("[key_name(usr)] has possessed [O] ([O.type]) at an unknown location", 1)
if(!usr.control_object) //If you're not already possessing something...
usr.name_archive = usr.real_name
usr.loc = O
usr.real_name = O.name
usr.name = O.name
usr.client.eye = O
usr.control_object = O
feedback_add_details("admin_verb","PO") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/proc/release(obj/O as obj in world)
set name = "Release Obj"
set category = "Object"
//usr.loc = get_turf(usr)
if(usr.control_object && usr.name_archive) //if you have a name archived and if you are actually relassing an object
usr.real_name = usr.name_archive
usr.name = usr.real_name
usr.update_clothing() //So the name is updated properly
usr.loc = O.loc // Appear where the object you were controlling is -- TLE
usr.client.eye = usr
usr.control_object = null
feedback_add_details("admin_verb","RO") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/proc/givetestverbs(mob/M as mob in world)
set desc = "Give this guy possess/release verbs"
set category = "Debug"
set name = "Give Possessing Verbs"
M.verbs += /proc/possess
M.verbs += /proc/release
feedback_add_details("admin_verb","GPV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+1 -1
View File
@@ -122,7 +122,7 @@
world << "Aborting world restart!"
return
feedback_set_details("end_error","no live players")
//feedback_set_details("end_error","no live players")
if(blackbox)
blackbox.save_all_data_to_sql()
@@ -214,6 +214,8 @@
observer.real_name = observer.name
observer.original_name = observer.name //Original name is only used in ghost chat! It is not to be edited by anything!
preferences.copy_to_observer(observer)
del(src)
return 1
+44 -17
View File
@@ -300,15 +300,21 @@ datum/preferences
dat += "[copytext(flavor_text, 1, 37)]..."
dat += "<hr>"
if(!jobban_isbanned(user, "Syndicate"))
if(jobban_isbanned(user, "Syndicate"))
dat += "<b>You are banned from antagonist roles.</b>"
src.be_special = 0
else
var/n = 0
for (var/i in special_roles)
if(special_roles[i]) //if mode is available on the server
dat += "<b>Be [i]:</b> <a href=\"byond://?src=\ref[user];preferences=1;be_special=[n]\"><b>[src.be_special&(1<<n) ? "Yes" : "No"]</b></a><br>"
if(jobban_isbanned(user, i))
dat += "<b>Be [i]:</b> <font color=red><b> \[BANNED]</b></font><br>"
else if(i == "pai candidate")
if(jobban_isbanned(user, "pAI"))
dat += "<b>Be [i]:</b> <font color=red><b> \[BANNED]</b></font><br>"
else
dat += "<b>Be [i]:</b> <a href=\"byond://?src=\ref[user];preferences=1;be_special=[n]\"><b>[src.be_special&(1<<n) ? "Yes" : "No"]</b></a><br>"
n++
else
dat += "<b>You are banned from being Syndicate.</b>"
src.be_special = 0
dat += "<hr>"
// slot options
@@ -599,12 +605,23 @@ datum/preferences
switch(link_tags["real_name"])
if("input")
new_name = input(user, "Please select a name:", "Character Generation") as text
var/list/bad_characters = list("_", "'", "\"", "<", ">", ";", "[", "]", "{", "}", "|", "\\")
var/list/bad_characters = list("_", "'", "\"", "<", ">", ";", "\[", "\]", "{", "}", "|", "\\","0","1","2","3","4","5","6","7","8","9")
for(var/c in bad_characters)
new_name = dd_replacetext(new_name, c, "")
if(!new_name || (new_name == "Unknown") || (new_name == "floor") || (new_name == "wall") || (new_name == "r-wall"))
alert("Don't do this")
alert("Invalid name. Don't do that!")
return
if(length(new_name) >= 26)
alert("That name is too long.")
return
//Carn: To fix BYOND text-parsing errors caused by people using dumb capitalisation in their names.
var/tempname
for(var/N in dd_text2list(new_name, " "))
if(N && tempname) //if both aren't null strings
tempname += " "
tempname += capitalize(lowertext(N))
new_name = tempname
if("random")
randomize_name()
@@ -617,9 +634,9 @@ datum/preferences
if(link_tags["age"])
switch(link_tags["age"])
if("input")
var/new_age = input(user, "Please select type in age: 20-45", "Character Generation") as num
var/new_age = input(user, "Please select type in age: 15-45", "Character Generation") as num
if(new_age)
age = max(min(round(text2num(new_age)), 45), 20)
age = max(min(round(text2num(new_age)), 45), 15)
if("random")
age = rand (20, 45)
@@ -761,7 +778,8 @@ datum/preferences
UI = UI_OLD
if(link_tags["midis"])
midis = (midis+1)%2
midis = !midis
if(link_tags["ghost_ears"])
ghost_ears = !ghost_ears
@@ -947,8 +965,6 @@ datum/preferences
backbag = 1 //Same as above
character.backbag = backbag
character.underwear = underwear == 1 ? pick(1,2,3,4,5) : 0
character.used_skillpoints = used_skillpoints
character.skill_specialization = skill_specialization
character.skills = skills
@@ -959,11 +975,22 @@ datum/preferences
if(!safety)//To prevent run-time errors due to null datum when using randomize_appearance_for()
spawn(10)
if(character&&character.client)
character.client.midis = midis
character.client.ooccolor = ooccolor
character.client.be_alien = be_special&BE_ALIEN
character.client.be_pai = be_special&BE_PAI
character.client.be_syndicate = be_special
setup_client(character.client)
proc/copy_to_observer(mob/dead/observer/character)
spawn(10)
if(character && character.client)
setup_client(character.client)
proc/setup_client(var/client/C)
if(C)
C.midis = src.midis
C.ooccolor = src.ooccolor
C.be_alien = be_special & BE_ALIEN
C.be_pai = be_special & BE_PAI
C.be_syndicate = be_special
if(isnull(src.ghost_ears)) src.ghost_ears = 1 //There were problems where the default was null before someone saved their profile.
C.ghost_ears = src.ghost_ears
proc/copydisabilities(mob/living/carbon/human/character)
if(disabilities & 1)
+9
View File
@@ -11,6 +11,11 @@
name = "close"
master = null
/obj/screen/close/DblClick()
if (src.master)
src.master:close(usr)
return
/obj/screen/grab
name = "grab"
master = null
@@ -19,6 +24,10 @@
name = "storage"
master = null
/obj/screen/storage/attackby(W, mob/user as mob)
src.master.attackby(W, user)
return
/obj/screen/zone_sel
name = "Damage Zone"
icon = 'zone_sel.dmi'
+2
View File
@@ -271,6 +271,8 @@
if ("grab")
if (M == src)
return
if (nopush)
return
var/obj/item/weapon/grab/G = new /obj/item/weapon/grab( M )
G.assailant = M
if (M.hand)
+17 -15
View File
@@ -172,7 +172,6 @@
/obj/machinery/light/attackby(obj/item/W, mob/user)
// attempt to insert light
if(istype(W, /obj/item/weapon/light))
if(status != LIGHT_EMPTY)
@@ -457,7 +456,7 @@
flags = FPRINT | TABLEPASS
force = 2
throwforce = 5
w_class = 2
w_class = 1
var/status = 0 // LIGHT_OK, LIGHT_BURNED or LIGHT_BROKEN
var/base_state
var/switchcount = 0 // number of times switched
@@ -476,6 +475,7 @@
brightness = 8
large
w_class = 2
name = "large light tube"
brightness = 15
@@ -524,6 +524,7 @@
// also repairing them with wire and screwdriver
// and glass if it's broken
/obj/item/weapon/light/attackby(var/obj/item/I, var/mob/user)
if(istype(I, /obj/item/weapon/reagent_containers/syringe))
var/obj/item/weapon/reagent_containers/syringe/S = I
@@ -600,13 +601,8 @@
/obj/item/weapon/storage/lightbox/bulbs/New()
..()
new /obj/item/weapon/light/bulb(src)
new /obj/item/weapon/light/bulb(src)
new /obj/item/weapon/light/bulb(src)
new /obj/item/weapon/light/bulb(src)
new /obj/item/weapon/light/bulb(src)
new /obj/item/weapon/light/bulb(src)
for(var/i = 0; i < 21; i++)
new /obj/item/weapon/light/bulb(src)
/obj/item/weapon/storage/lightbox/tubes
name = "replacement tubes"
@@ -614,13 +610,19 @@
/obj/item/weapon/storage/lightbox/tubes/New()
..()
new /obj/item/weapon/light/tube(src)
new /obj/item/weapon/light/tube(src)
new /obj/item/weapon/light/tube(src)
for(var/i = 0; i < 21; i++)
new /obj/item/weapon/light/tube(src)
new /obj/item/weapon/light/tube(src)
new /obj/item/weapon/light/tube(src)
new /obj/item/weapon/light/tube(src)
/obj/item/weapon/storage/lightbox/mixed
name = "replacement lights"
icon_state = "lightmixed"
/obj/item/weapon/storage/lightbox/mixed/New()
..()
for(var/i = 0; i < 14; i++)
new /obj/item/weapon/light/tube(src)
for(var/i = 0; i < 7; i++)
new /obj/item/weapon/light/bulb(src)
/obj/structure/light_frame
name = "Light Fixture Frame"
+21
View File
@@ -126,6 +126,7 @@
// attack with item, place item on conveyor
/obj/machinery/conveyor/attackby(var/obj/item/I, mob/user)
if(isrobot(user)) return //Carn: fix for borgs dropping their modules on conveyor belts
user.drop_item()
if(I && I.loc) I.loc = src.loc
return
@@ -263,6 +264,26 @@
S.position = position
S.update()
/obj/machinery/conveyor_switch/oneway
var/convdir = 1 //Set to 1 or -1 depending on which way you want the convayor to go. (In other words keep at 1 and set the proper dir on the belts.)
desc = "A conveyor control switch. It appears to only go in one direction."
// attack with hand, switch position
/obj/machinery/conveyor_switch/oneway/attack_hand(mob/user)
if(position == 0)
position = convdir
else
position = 0
operated = 1
update()
// find any switches with same id as this one, and set their positions to match us
for(var/obj/machinery/conveyor_switch/S in world)
if(S.id == src.id)
S.position = position
S.update()
// converyor diverter
// extendable arm that can be switched so items on the conveyer are diverted sideways
// situate in same turf as conveyor
+25 -4
View File
@@ -45,6 +45,9 @@
if(stat & BROKEN || !I || !user)
return
if(isrobot(user) && !istype(I, /obj/item/weapon/trashbag))
return
if(istype(I, /obj/item/weapon/melee/energy/blade))
user << "You can't place that item inside the disposal unit."
return
@@ -58,10 +61,6 @@
update()
return
//robots shouldn't be able to grab/carry stuff anyway
if(isrobot(user))
return
if(istype(I, /obj/item/ashtray) && (I.health > 0))
user << "\blue You empty the ashtray into [src]."
for(var/obj/item/O in I.contents)
@@ -103,6 +102,11 @@
GM.client.eye = src
GM.loc = src
for (var/mob/C in viewers(src))
log_attack("<font color='red'>[usr] ([usr.ckey]) placed [GM] ([GM.ckey]) in a disposals unit.</font>")
log_admin("ATTACK: [usr] ([usr.ckey]) placed [GM] ([GM.ckey]) in a disposals unit.")
message_admins("ATTACK: [usr] ([usr.ckey]) placed [GM] ([GM.ckey]) in a disposals unit.")
C.show_message("\red [GM.name] has been placed in the [src] by [user].", 3)
del(G)
else
@@ -144,9 +148,19 @@
if(!do_after(usr, 20))
return
if(target == user && !user.stat && !user.weakened && !user.stunned && !user.paralysis) // if drop self, then climbed in // must be awake, not stunned or whatever
log_attack("<font color='red'>[user] ([user.ckey]) climbed into a disposals unit.</font>")
log_admin("ATTACK: [user] ([user.ckey]) climbed into in a disposals unit.")
message_admins("ATTACK: [user] ([user.ckey]) climbed into in a disposals unit.")
msg = "[user.name] climbs into the [src]."
user << "You climb into the [src]."
else if(target != user && !user.restrained() && !user.stat && !user.weakened && !user.stunned && !user.paralysis)
log_attack("<font color='red'>[user] ([user.ckey]) placed [target] ([target.ckey]) in a disposals unit.</font>")
log_admin("ATTACK: [user] ([user.ckey]) placed [target] ([target.ckey]) in a disposals unit.")
message_admins("ATTACK: [user] ([user.ckey]) placed [target] ([target.ckey]) in a disposals unit.")
msg = "[user.name] stuffs [target.name] into the [src]!"
user << "You stuff [target.name] into the [src]!"
else
@@ -239,10 +253,14 @@
// human interact with machine
attack_hand(mob/user as mob)
if(user && user.loc == src)
usr << "\red You cannot reach the controls from inside."
return
interact(user, 0)
// user interaction
proc/interact(mob/user, var/ai=0)
src.add_fingerprint(user)
if(stat & BROKEN)
user.machine = null
@@ -277,6 +295,9 @@
// handle machine interaction
Topic(href, href_list)
if(usr.loc == src)
usr << "\red You cannot reach the controls from inside."
return
..()
src.add_fingerprint(usr)
if(stat & BROKEN)
+67 -12
View File
@@ -132,19 +132,19 @@ var/obj/machinery/blackbox_recorder/blackbox
use_power = 1
idle_power_usage = 10
active_power_usage = 100
var/messages = list()
var/messages_admin = list()
var/list/messages = list() //Stores messages of non-standard frequencies
var/list/messages_admin = list()
var/msg_common = list()
var/msg_science = list()
var/msg_command = list()
var/msg_medical = list()
var/msg_engineering = list()
var/msg_security = list()
var/msg_deathsquad = list()
var/msg_syndicate = list()
var/msg_mining = list()
var/msg_cargo = list()
var/list/msg_common = list()
var/list/msg_science = list()
var/list/msg_command = list()
var/list/msg_medical = list()
var/list/msg_engineering = list()
var/list/msg_security = list()
var/list/msg_deathsquad = list()
var/list/msg_syndicate = list()
var/list/msg_mining = list()
var/list/msg_cargo = list()
var/list/datum/feedback_variable/feedback = new()
@@ -155,6 +155,28 @@ var/obj/machinery/blackbox_recorder/blackbox
del(src)
blackbox = src
Del()
var/turf/T = locate(1,1,2)
if(T)
blackbox = null
var/obj/machinery/blackbox_recorder/BR = new/obj/machinery/blackbox_recorder(T)
BR.msg_common = msg_common
BR.msg_science = msg_science
BR.msg_command = msg_command
BR.msg_medical = msg_medical
BR.msg_engineering = msg_engineering
BR.msg_security = msg_security
BR.msg_deathsquad = msg_deathsquad
BR.msg_syndicate = msg_syndicate
BR.msg_mining = msg_mining
BR.msg_cargo = msg_cargo
BR.feedback = feedback
BR.messages = messages
BR.messages_admin = messages_admin
if(blackbox != BR)
blackbox = BR
..()
proc/find_feedback_datum(var/variable)
for(var/datum/feedback_variable/FV in feedback)
if(FV.get_variable() == variable)
@@ -166,10 +188,43 @@ var/obj/machinery/blackbox_recorder/blackbox
proc/get_round_feedback()
return feedback
proc/round_end_data_gathering()
var/pda_msg_amt = 0
var/rc_msg_amt = 0
for(var/obj/machinery/message_server/MS in world)
if(MS.pda_msgs.len > pda_msg_amt)
pda_msg_amt = MS.pda_msgs.len
if(MS.rc_msgs.len > rc_msg_amt)
rc_msg_amt = MS.rc_msgs.len
/*
feedback_set_details("radio_usage","")
feedback_add_details("radio_usage","COM-[msg_common.len]")
feedback_add_details("radio_usage","SCI-[msg_science.len]")
feedback_add_details("radio_usage","HEA-[msg_command.len]")
feedback_add_details("radio_usage","MED-[msg_medical.len]")
feedback_add_details("radio_usage","ENG-[msg_engineering.len]")
feedback_add_details("radio_usage","SEC-[msg_security.len]")
feedback_add_details("radio_usage","DTH-[msg_deathsquad.len]")
feedback_add_details("radio_usage","SYN-[msg_syndicate.len]")
feedback_add_details("radio_usage","MIN-[msg_mining.len]")
feedback_add_details("radio_usage","CAR-[msg_cargo.len]")
feedback_add_details("radio_usage","OTH-[messages.len]")
feedback_add_details("radio_usage","PDA-[pda_msg_amt]")
feedback_add_details("radio_usage","RC-[rc_msg_amt]")
feedback_set_details("round_end","[time2text(world.realtime)]") //This one MUST be the last one that gets set.
*/
//This proc is only to be called at round end.
proc/save_all_data_to_sql()
if(!feedback) return
round_end_data_gathering() //round_end time logging and some other data processing
var/user = sqlfdbklogin
var/pass = sqlfdbkpass
var/db = sqlfdbkdb
Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 21 KiB

+2 -2
View File
@@ -873,7 +873,7 @@
"aqO" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{icon_state = "carpet"},/area/crew_quarters)
"aqP" = (/turf/simulated/floor,/area/crew_quarters)
"aqQ" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor,/area/crew_quarters)
"aqR" = (/obj/structure/table/woodentable,/obj/item/toy/crayonbox,/turf/simulated/floor,/area/crew_quarters)
"aqR" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/crayonbox,/turf/simulated/floor,/area/crew_quarters)
"aqS" = (/obj/structure/table/woodentable,/turf/simulated/floor,/area/crew_quarters)
"aqT" = (/obj/structure/table/woodentable,/obj/item/weapon/rag,/turf/simulated/floor,/area/crew_quarters)
"aqU" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 8},/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"},/turf/simulated/floor,/area/crew_quarters/fitness)
@@ -6388,7 +6388,7 @@
"csR" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
"csS" = (/obj{anchored = 1; icon = 'shuttle.dmi'; icon_state = "floor"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_f10"; layer = 2; tag = "icon-swall_f10"},/area/shuttle/escape/centcom)
"csT" = (/obj/structure/closet/emcloset,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
"csU" = (/obj/structure/rack,/obj/item/toy/crayonbox,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
"csU" = (/obj/structure/rack,/obj/item/weapon/storage/crayonbox,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
"csV" = (/obj/machinery/vending/coffee,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
"csW" = (/obj/effect/overlay{anchored = 1; icon = 'beach.dmi'; icon_state = "crab"; name = "crab"},/turf/unsimulated/floor{icon = 'icons/misc/beach2.dmi'; icon_state = "sandwater"},/area/centcom/holding)
"csX" = (/turf/unsimulated/floor{icon = 'icons/misc/beach2.dmi'; icon_state = "sandwater"},/area/centcom/holding)