diff --git a/baystation12.dme b/baystation12.dme index 90daa241aea..6b2c923ebf9 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -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" diff --git a/code/ATMOSPHERICS/components/unary/unary_base.dm b/code/ATMOSPHERICS/components/unary/unary_base.dm index 230296a9f48..b755071487e 100644 --- a/code/ATMOSPHERICS/components/unary/unary_base.dm +++ b/code/ATMOSPHERICS/components/unary/unary_base.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 diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm index 03a79934b0c..3388cfd9667 100644 --- a/code/ATMOSPHERICS/components/unary/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm @@ -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 diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm index a55e38140b1..6c427baab38 100644 --- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm +++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm @@ -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 diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm index da136715a58..71d9490160a 100644 --- a/code/ATMOSPHERICS/pipes.dm +++ b/code/ATMOSPHERICS/pipes.dm @@ -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) diff --git a/code/WorkInProgress/SkyMarshal/wardrobes.dm b/code/WorkInProgress/SkyMarshal/wardrobes.dm index e40eff552a7..8645d0dc62b 100755 --- a/code/WorkInProgress/SkyMarshal/wardrobes.dm +++ b/code/WorkInProgress/SkyMarshal/wardrobes.dm @@ -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) diff --git a/code/defines/obj/machinery.dm b/code/defines/obj/machinery.dm index 0d617c0f471..f7bae4ad200 100644 --- a/code/defines/obj/machinery.dm +++ b/code/defines/obj/machinery.dm @@ -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" diff --git a/code/defines/obj/supplypacks.dm b/code/defines/obj/supplypacks.dm index 0f3dad8132f..cc1940219ee 100755 --- a/code/defines/obj/supplypacks.dm +++ b/code/defines/obj/supplypacks.dm @@ -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" diff --git a/code/defines/obj/toy.dm b/code/defines/obj/toy.dm index 00ac66c93cc..68746bfc60d 100644 --- a/code/defines/obj/toy.dm +++ b/code/defines/obj/toy.dm @@ -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" diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index d04d7105ddb..eda6fa3a31c 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -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 diff --git a/code/defines/obj/window.dm b/code/defines/obj/window.dm index 62174ece4f3..5b4bdf29698 100644 --- a/code/defines/obj/window.dm +++ b/code/defines/obj/window.dm @@ -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 diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index 9cef526ae52..9a9b2d577a7 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -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 Rebooting due to destruction of station in [restart_timeout/10] seconds" else - feedback_set_details("end_proper","proper completion") + //feedback_set_details("end_proper","proper completion") world << "\blue Restarting in [restart_timeout/10] seconds" // send2irc(world.url,"Server Rebooting!") - feedback_set_details("round_end","[time2text(world.realtime)]") + if(blackbox) blackbox.save_all_data_to_sql() diff --git a/code/game/gamemodes/malfunction/malfunction.dm b/code/game/gamemodes/malfunction/malfunction.dm index 7d37ad039e3..42ea617dba7 100644 --- a/code/game/gamemodes/malfunction/malfunction.dm +++ b/code/game/gamemodes/malfunction/malfunction.dm @@ -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 << "AI Victory" world << "Everyone was killed by the self-destruct!" 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 << "Neutral Victory" world << "The AI has been killed! 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 << "AI Victory" world << "The AI has chosen not to explode you all!" 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 << "Neutral Victory" world << "Everyone was killed by the nuclear blast!" 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 << "Human Victory" world << "The AI has been killed! 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 << "Neutral Victory" world << "The Corporation has lose [station_name()]! All survived personnel will be fired!" 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 << "Neutral Victory" world << "Round was mysteriously interrupted!" ..() diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index 3e35b675abb..e13d4cd37a2 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -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 << "Resetting in 30 seconds!" - 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) diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index dc513705e96..c37c7937b90 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -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") diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 083c12c5378..f01c55134a8 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -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~ diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index ea8c3f2ff36..9c9d6c675af 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -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 << " [department] announcement: [html_encode(message)]" + world << "[department] announcement: [html_encode(message)]" announceAuth = 0 message = "" screen = 0 diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index fa3f10211c7..f696f28e9f5 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -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)) diff --git a/code/game/objects/devices/PDA/PDA.dm b/code/game/objects/devices/PDA/PDA.dm index 26139627de7..a5741d8e00f 100755 --- a/code/game/objects/devices/PDA/PDA.dm +++ b/code/game/objects/devices/PDA/PDA.dm @@ -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 diff --git a/code/game/objects/devices/PDA/cart.dm b/code/game/objects/devices/PDA/cart.dm index 2461604742a..9f8c9529d27 100644 --- a/code/game/objects/devices/PDA/cart.dm +++ b/code/game/objects/devices/PDA/cart.dm @@ -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 diff --git a/code/game/objects/devices/flashlight.dm b/code/game/objects/devices/flashlight.dm index 54fef1dd26b..ddbff34c407 100644 --- a/code/game/objects/devices/flashlight.dm +++ b/code/game/objects/devices/flashlight.dm @@ -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) \ No newline at end of file diff --git a/code/game/objects/devices/scanners.dm b/code/game/objects/devices/scanners.dm index 103d7c2a990..2c7815de4c8 100644 --- a/code/game/objects/devices/scanners.dm +++ b/code/game/objects/devices/scanners.dm @@ -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]°C ([M.bodytemperature*1.8-459.67]°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 diff --git a/code/game/objects/grille.dm b/code/game/objects/grille.dm index 23a05cf7be3..b584f5ec996 100644 --- a/code/game/objects/grille.dm +++ b/code/game/objects/grille.dm @@ -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)) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 908418e501d..45c7100ece6 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -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) diff --git a/code/game/objects/secstorage/secstorage.dm b/code/game/objects/secstorage/secstorage.dm index 0193fcb3977..e2d6a2599f8 100644 --- a/code/game/objects/secstorage/secstorage.dm +++ b/code/game/objects/secstorage/secstorage.dm @@ -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 diff --git a/code/game/objects/storage/storage.dm b/code/game/objects/storage/storage.dm index a43a1d6e6eb..4a463a51e99 100644 --- a/code/game/objects/storage/storage.dm +++ b/code/game/objects/storage/storage.dm @@ -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 ) diff --git a/code/game/objects/toys.dm b/code/game/objects/toys.dm index 499d0cb1540..1100fa13a1e 100644 --- a/code/game/objects/toys.dm +++ b/code/game/objects/toys.dm @@ -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." diff --git a/code/game/objects/window.dm b/code/game/objects/window.dm index e2d53d0c6ae..f1cd181fc4f 100644 --- a/code/game/objects/window.dm +++ b/code/game/objects/window.dm @@ -315,6 +315,8 @@ health = 40 if(opacity) icon_state = "twindow" + else + icon_state = "window" update_nearby_tiles(need_rebuild=1) relativewindow() diff --git a/code/game/verbs/sound.dm b/code/game/verbs/sound.dm index 2e64eabf73b..0ba65de787d 100644 --- a/code/game/verbs/sound.dm +++ b/code/game/verbs/sound.dm @@ -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 -*/ +*/ \ No newline at end of file diff --git a/code/game/vials.dm b/code/game/vials.dm deleted file mode 100644 index 9e127e4baba..00000000000 --- a/code/game/vials.dm +++ /dev/null @@ -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, iWorld will reboot in 10 seconds" - 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 World will reboot in 5 seconds" - 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() diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 93483db048b..769dd0d59f3 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -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 << "\redYou have been un-jobbanned by [usr.client.ckey] from [job]." - 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 << "\redYou have been jobbanned by [usr.client.ckey] from [job]." M << "\red The reason is: [reason]" 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 << "\redYou have been banned by [usr.client.ckey].\nReason: [reason]." 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 Transit signature detected." world << "\blue Incoming shuttle." /* @@ -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 You suddenly feel stupid." @@ -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("Jobban") dat += text("[foo]") 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 Restarting world! \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 [usr.client.stealth ? "Administrator" : usr.key] Announces:\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 << "The OOC channel has been globally disabled!" 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("[usr.key] has started the game.") + //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 << "Error: Start Now: Game has already started." 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 << "The AI job is chooseable now." 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 << "The game will start soon." 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 Rebooting world! \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 << "The tinted_weldhelh has been disabled!" 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 << "Guests may now enter the game." 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 "} 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*/ diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 5d9aa9f5d9f..728248df05c 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -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("[mob.control_object.name] 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 << "Disabled air processing." +// 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() diff --git a/code/modules/admin/verbs/possess.dm b/code/modules/admin/verbs/possess.dm new file mode 100644 index 00000000000..c76e1e84385 --- /dev/null +++ b/code/modules/admin/verbs/possess.dm @@ -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! \ No newline at end of file diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index e6f331a80a2..d03457cf60d 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -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() diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index f4ddf4d83bb..cbbb5505e8d 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -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 diff --git a/code/modules/mob/new_player/preferences.dm b/code/modules/mob/new_player/preferences.dm index 07c5f9436fa..e9cc815edf1 100644 --- a/code/modules/mob/new_player/preferences.dm +++ b/code/modules/mob/new_player/preferences.dm @@ -300,15 +300,21 @@ datum/preferences dat += "[copytext(flavor_text, 1, 37)]..." dat += "
" - if(!jobban_isbanned(user, "Syndicate")) + if(jobban_isbanned(user, "Syndicate")) + dat += "You are banned from antagonist roles." + 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 += "Be [i]: [src.be_special&(1<
" + if(jobban_isbanned(user, i)) + dat += "Be [i]: \[BANNED]
" + else if(i == "pai candidate") + if(jobban_isbanned(user, "pAI")) + dat += "Be [i]: \[BANNED]
" + else + dat += "Be [i]: [src.be_special&(1<
" n++ - else - dat += "You are banned from being Syndicate." - src.be_special = 0 dat += "
" // 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) diff --git a/code/modules/mob/screen.dm b/code/modules/mob/screen.dm index a2703504458..bdc63af18e5 100644 --- a/code/modules/mob/screen.dm +++ b/code/modules/mob/screen.dm @@ -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' diff --git a/code/modules/mob/simple_animal/life.dm b/code/modules/mob/simple_animal/life.dm index 7c780a9d0f1..29da09bb6ed 100644 --- a/code/modules/mob/simple_animal/life.dm +++ b/code/modules/mob/simple_animal/life.dm @@ -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) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 91bdf826277..a94f99506de 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -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" diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 36334802e8f..bed4696b342 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -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 diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index c190f64b6fe..b48d3085572 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -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("[usr] ([usr.ckey]) placed [GM] ([GM.ckey]) in a disposals unit.") + 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("[user] ([user.ckey]) climbed into a disposals unit.") + 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("[user] ([user.ckey]) placed [target] ([target.ckey]) in a disposals unit.") + 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) diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm index be24897cf11..721c5f00f70 100644 --- a/code/modules/research/message_server.dm +++ b/code/modules/research/message_server.dm @@ -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 diff --git a/icons/obj/doors/Doorcomglass.dmi b/icons/obj/doors/Doorcomglass.dmi index 1505ff3af0c..a66adcd6741 100644 Binary files a/icons/obj/doors/Doorcomglass.dmi and b/icons/obj/doors/Doorcomglass.dmi differ diff --git a/icons/obj/doors/Doorele.dmi b/icons/obj/doors/Doorele.dmi index 1a9fc618eb3..984ad3d0f1b 100644 Binary files a/icons/obj/doors/Doorele.dmi and b/icons/obj/doors/Doorele.dmi differ diff --git a/icons/obj/doors/Doorengglass.dmi b/icons/obj/doors/Doorengglass.dmi index 8b2b4d9115a..ac1ca2fe2b8 100644 Binary files a/icons/obj/doors/Doorengglass.dmi and b/icons/obj/doors/Doorengglass.dmi differ diff --git a/icons/obj/doors/Doorsecglass.dmi b/icons/obj/doors/Doorsecglass.dmi index 237abd8dfba..03171865755 100644 Binary files a/icons/obj/doors/Doorsecglass.dmi and b/icons/obj/doors/Doorsecglass.dmi differ diff --git a/icons/obj/doors/doormedglass.dmi b/icons/obj/doors/doormedglass.dmi index 61387b96135..250a82be855 100644 Binary files a/icons/obj/doors/doormedglass.dmi and b/icons/obj/doors/doormedglass.dmi differ diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm index 064e2442c39..0f703672598 100755 --- a/maps/tgstation.2.0.8.dmm +++ b/maps/tgstation.2.0.8.dmm @@ -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)