diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 360176c549e..4c2e77bc64e 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -173,7 +173,6 @@ ..() sleep(2) new /obj/item/clothing/under/det(src) - new /obj/item/clothing/suit/armor/det_suit(src) new /obj/item/clothing/suit/det_suit(src) new /obj/item/clothing/gloves/black(src) new /obj/item/clothing/head/det_hat(src) @@ -183,6 +182,10 @@ new /obj/item/weapon/clipboard(src) new /obj/item/device/detective_scanner(src) new /obj/item/weapon/storage/box/evidence(src) + new /obj/item/clothing/suit/armor/det_suit(src) + new /obj/item/ammo_magazine/c38(src) + new /obj/item/ammo_magazine/c38(src) + new /obj/item/weapon/gun/projectile/detective(src) return /obj/structure/closet/secure_closet/detective/update_icon() diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index fabeb724097..d801b486428 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -121,7 +121,7 @@ /obj/structure/stool/bed/chair/janicart/bullet_act(var/obj/item/projectile/Proj) if(buckled_mob) - if(prob(50)) + if(prob(65)) return buckled_mob.bullet_act(Proj) visible_message("[Proj] ricochets off the pimpin' ride!") diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index ba89628d03e..fa7567bcb28 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -10,7 +10,7 @@ name = "speed loader (.38)" icon_state = "38" ammo_type = "/obj/item/ammo_casing/c38" - max_ammo = 7 + max_ammo = 6 multiple_sprites = 1 diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index fbba8b87be9..649ad6fef16 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -25,17 +25,9 @@ proc/load_into_chamber() - return - - proc/special_check(var/mob/M) - return - - - load_into_chamber() return 0 - - special_check(var/mob/M) //Placeholder for any special checks, like detective's revolver. + proc/special_check(var/mob/M) //Placeholder for any special checks, like detective's revolver. return 1 @@ -49,11 +41,11 @@ if(istype(target, /obj/machinery/recharger) && istype(src, /obj/item/weapon/gun/energy)) return//Shouldnt flag take care of this? //Exclude lasertag guns from the CLUMSY check. - if(src.clumsy_check) + if(clumsy_check) if(istype(user, /mob/living)) var/mob/living/M = user if ((CLUMSY in M.mutations) && prob(50)) - M << "\red The [src.name] blows up in your face." + M << "[src] blows up in your face." M.take_organ_damage(0,20) M.drop_item() del(src) @@ -102,7 +94,7 @@ playsound(user, fire_sound, 10, 1) else playsound(user, fire_sound, 50, 1) - user.visible_message("\red [user.name] fires the [src.name]!", "\red You fire the [src.name]!", "\blue You hear a [istype(in_chamber, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!") + user.visible_message("[user] fires [src]!", "You fire [src]!", "You hear a [istype(in_chamber, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!") in_chamber.original = target in_chamber.loc = get_turf(user) diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index 1974b1adde8..9b9ea0f9b61 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -2,19 +2,22 @@ desc = "A cheap Martian knock-off of a Smith & Wesson Model 10. Uses .38-Special rounds." name = "revolver" icon_state = "detective" + max_shells = 6 caliber = "38" origin_tech = "combat=2;materials=2" ammo_type = "/obj/item/ammo_casing/c38" special_check(var/mob/living/carbon/human/M) - if(ishuman(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) || istype(M.wear_suit, /obj/item/clothing/suit/armor/det_suit))) - return 1 - M << "\red You just don't feel cool enough to use this gun looking like that." - return 0 - + if(caliber == initial(caliber)) + return 1 + if(prob(70 - (loaded.len * 10))) //minimum probability of 10, maximum of 60 + M << "[src] blows up in your face." + M.take_organ_damage(0,20) + M.drop_item() + del(src) + return 0 + return 1 verb/rename_gun() set name = "Name Gun" @@ -24,7 +27,7 @@ var/mob/M = usr if(!M.mind) return 0 if(!M.mind.assigned_role == "Detective") - M << "\red You don't feel cool enough to name this gun, chump." + M << "You don't feel cool enough to name this gun, chump." return 0 var/input = stripped_input(usr,"What do you want to name the gun?", ,"", MAX_NAME_LEN) @@ -34,11 +37,44 @@ M << "You name the gun [input]. Say hello to your new friend." return 1 + attackby(var/obj/item/A as obj, mob/user as mob) + ..() + if(istype(A, /obj/item/weapon/screwdriver)) + if(caliber == "38") + user << "You begin to reinforce the barrel of [src]." + if(loaded.len) + afterattack(user, user) //you know the drill + playsound(user, fire_sound, 50, 1) + user.visible_message("[src] goes off!", "[src] goes off in your face!") + return + if(do_after(user, 30)) + if(loaded.len) + user << "You can't modify it!" + return + caliber = "357" + desc = "The barrel and chamber assembly seems to have been modified." + user << "You reinforce the barrel of [src]! Now it will fire .357 rounds." + else + user << "You begin to revert the modifications to [src]." + if(loaded.len) + afterattack(user, user) //and again + playsound(user, fire_sound, 50, 1) + user.visible_message("[src] goes off!", "[src] goes off in your face!") + return + if(do_after(user, 30)) + if(loaded.len) + user << "You can't modify it!" + return + caliber = "38" + desc = initial(desc) + user << "You remove the modifications on [src]! Now it will fire .38 rounds." + + /obj/item/weapon/gun/projectile/mateba name = "mateba" - desc = "When you absolutely, positively need a 10mm hole in the other guy. Uses .357 ammo." + desc = "When you absolutely, positively need a 10mm hole in the other guy. Uses .357 ammo." //>10mm hole >.357 icon_state = "mateba" origin_tech = "combat=2;materials=2" @@ -47,7 +83,7 @@ /obj/item/weapon/gun/projectile/russian name = "Russian Revolver" - desc = "A Russian made revolver. Uses 357 ammo. It has a single slot in it's chamber for a bullet." + desc = "A Russian made revolver. Uses .357 ammo. It has a single slot in it's chamber for a bullet." max_shells = 6 origin_tech = "combat=2;materials=2" @@ -89,9 +125,9 @@ A.update_icon() if(num_loaded) - user.visible_message("[user] loads a single bullet into the revolver and spins the chamber.", "You load a single bullet into the chamber and spin it.") + user.visible_message("[user] loads a single bullet into the revolver and spins the chamber.", "You load a single bullet into the chamber and spin it.") else - user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.") + user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.") if(getAmmo() > 0) Spin() update_icon() @@ -99,7 +135,7 @@ /obj/item/weapon/gun/projectile/russian/attack_self(mob/user as mob) - user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.") + user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.") if(getAmmo() > 0) Spin() @@ -122,7 +158,7 @@ return var/obj/item/projectile/P = new AC.projectile_type playsound(user, fire_sound, 50, 1) - user.visible_message("\red [user.name] fires the [src.name] at his head!", "\red You fire the [src.name] at your head!", "\blue You hear a [istype(in_chamber, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!") + user.visible_message("[user.name] fires [src] at \his head!", "You fire [src] at your head!", "You hear a [istype(in_chamber, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!") if(!P.nodamage) user.apply_damage(300, BRUTE, affecting) // You are dead, dead, dead. return diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 61e818527db..8d5f47560a8 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -662,7 +662,7 @@ datum slimejam name = "Slime Jam" id = "m_jam" - result = "slime" + result = "slime Jelly" required_reagents = list("water" = 1) result_amount = 1 required_container = /obj/item/slime_core diff --git a/html/changelog.html b/html/changelog.html index 3fcc55f0e69..b77c2bdf918 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -48,6 +48,13 @@ Stuff which is in development and not yet visible to players or just code relate should be listed in the changelog upon commit tho. Thanks. --> +
+

11 December 2012

+

Petethegoat updated:

+ +

07 December 2012

Giacom updated:

diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 95d88d303af..8ca8da77f74 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/maps/tgstation.2.0.9.dmm b/maps/tgstation.2.0.9.dmm index aa85da7c0da..f0aca69817d 100644 --- a/maps/tgstation.2.0.9.dmm +++ b/maps/tgstation.2.0.9.dmm @@ -817,7 +817,7 @@ "apK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "apL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "apM" = (/obj/structure/closet/secure_closet/detective,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) -"apN" = (/obj/structure/table/woodentable,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/weapon/folder/red,/obj/item/weapon/hand_labeler,/obj/item/device/taperecorder{pixel_y = 0},/turf/simulated/floor/carpet,/area/security/detectives_office) +"apN" = (/obj/structure/table/woodentable,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/weapon/folder/red,/obj/item/weapon/hand_labeler,/turf/simulated/floor/carpet,/area/security/detectives_office) "apO" = (/obj/effect/landmark/start{name = "Detective"},/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/simulated/floor/carpet,/area/security/detectives_office) "apP" = (/obj/machinery/computer/security/wooden_tv,/obj/machinery/newscaster{pixel_x = 28},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "apQ" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor/wood,/area/lawoffice) @@ -902,7 +902,7 @@ "arr" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "ars" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "art" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/wall,/area/security/detectives_office) -"aru" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/structure/table/woodentable,/obj/item/ammo_magazine/c38,/obj/item/ammo_magazine/c38,/obj/item/weapon/gun/projectile/detective,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) +"aru" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/structure/table/woodentable,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/device/taperecorder{pixel_y = 0},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "arv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "arw" = (/obj/machinery/camera{c_tag = "Detective's Office"; dir = 1},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "arx" = (/obj/machinery/computer/med_data,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office)