diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 78e68ee46fd..67f3d777443 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -861,6 +861,20 @@ m_amt = 1000 origin_tech = "combat=2;materials=2" */ + +/obj/item/weapon/gun/projectile/detective + desc = "A cheap Martian knock-off of a Smith & Wesson Model 10. Uses .38-Special rounds." + name = ".38 revolver" + icon_state = "detective" + w_class = 3.0 + throw_speed = 2 + throw_range = 10 + force = 14.0 + m_amt = 1000 + origin_tech = "combat=2;materials=2" + + + /obj/item/weapon/hand_tele name = "hand tele" icon = 'device.dmi' @@ -1997,4 +2011,4 @@ Total SMES charging rate should not exceed total power generation rate, or an ov desc = "A container for hold compressed matter awaiting re-construction." origin_tech = "materials=5" rating = 3 - m_amt = 80 \ No newline at end of file + m_amt = 80 diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index b56be7c689f..101fa269593 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -99,7 +99,6 @@ var/global/datum/controller/gameticker/ticker if (S.name != "AI") del(S) - //Start master_controller.process() world << "Enjoy the game!" world << sound('welcome.ogg') // Skie @@ -109,6 +108,7 @@ var/global/datum/controller/gameticker/ticker event() spawn() supply_ticker() // Added to kick-off the supply shuttle regenerating points -- TLE + //Start master_controller.process() spawn master_controller.process() if (config.sql_enabled) spawn(3000) diff --git a/code/game/objects/items/weapons/guns_new.dm b/code/game/objects/items/weapons/guns_new.dm index f1aaefb5d49..37cbc1fe3ed 100644 --- a/code/game/objects/items/weapons/guns_new.dm +++ b/code/game/objects/items/weapons/guns_new.dm @@ -298,12 +298,12 @@ var/const/PROJECTILE_DART = 8 caliber = "38" New() - for(var/i = 1, i <= 5, i++) + for(var/i = 1, i <= 7, i++) loaded += new /obj/item/ammo_casing/c38(src) update_icon() special_check(var/mob/living/carbon/human/M) - if(istype(M) && M) + if(istype(M)) if(istype(M.w_uniform, /obj/item/clothing/under/det) && istype(M.head, /obj/item/clothing/head/det_hat) && istype(M.wear_suit, /obj/item/clothing/suit/det_suit)) return 1 M << "\red You just don't feel cool enough to use this gun looking like that." @@ -637,7 +637,9 @@ var/const/PROJECTILE_DART = 8 for(var/obj/O in contents) O.emp_act(severity) - afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj) + afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag) + if (flag) + return //we're placing gun on a table or in backpack --rastaf0 if(istype(target, /obj/machinery/recharger) && istype(src, /obj/item/weapon/gun/energy)) return if(istype(user, /mob/living)) @@ -648,20 +650,22 @@ var/const/PROJECTILE_DART = 8 M.drop_item() del(src) return - if ((istype(user, /mob/living/carbon/monkey)) && ticker.mode != "monkey") - user << "\red You don't have the dexterity to do this!" + if ( ! (istype(usr, /mob/living/carbon/human) || \ + istype(usr, /mob/living/silicon/robot) || \ + istype(usr, /mob/living/carbon/monkey) && ticker && ticker.mode.name == "monkey") ) + usr << "\red You don't have the dexterity to do this!" return add_fingerprint(user) var/turf/curloc = user.loc - var/atom/targloc = get_turf(target) - if (!targloc || !istype(targloc, /turf) || !curloc) + var/turf/targloc = get_turf(target) + if (!istype(targloc) || !istype(curloc)) return if(badmin) badmin_ammo() - else if(!special_check()) + else if(!special_check(user)) return else if(!load_into_chamber()) user << "\red *click* *click*"; diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index e4a96c9b584..1158794a47a 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -1375,9 +1375,9 @@ else AddBan(M.ckey, M.computer_id, "Autobanning due to previous warn", ckey, 1, AUTOBATIME) M << "\redYou have been autobanned by [ckey]. This is what we in the biz like to call a \"second warning\"." - M << "\red This is a temporary ban; it will automatically be removed in AUTOBATIME minutes." - log_admin("[ckey] warned [M.ckey], resulting in a AUTOBATIME minute autoban.") - message_admins("\blue [ckey] warned [M.ckey], resulting in a AUTOBATIME minute autoban.") + M << "\red This is a temporary ban; it will automatically be removed in [AUTOBATIME] minutes." + log_admin("[ckey] warned [M.ckey], resulting in a [AUTOBATIME] minute autoban.") + message_admins("\blue [ckey] warned [M.ckey], resulting in a [AUTOBATIME] minute autoban.") del(M.client) //del(M) diff --git a/maps/tgstation.2.0.7.dmm b/maps/tgstation.2.0.7.dmm index 3dbe49ce8e9..c312ca08737 100644 --- a/maps/tgstation.2.0.7.dmm +++ b/maps/tgstation.2.0.7.dmm @@ -895,7 +895,7 @@ "ark" = (/obj/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "arl" = (/obj/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/obj/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "arm" = (/obj/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) -"arn" = (/obj/rack{dir = 8},/obj/item/weapon/storage/briefcase,/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) +"arn" = (/obj/rack{dir = 8},/obj/item/weapon/storage/briefcase,/obj/item/ammo_magazine/c38,/obj/item/weapon/gun/projectile/detective,/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "aro" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "arp" = (/obj/machinery/power/apc{dir = 1; name = "Law Office APC"; pixel_y = 24},/obj/machinery/light_switch{pixel_x = -20; pixel_y = 0},/obj/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) "arq" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice)