diff --git a/code/defines/obj/storage.dm b/code/defines/obj/storage.dm index c7879d2ed10..584b7e585f2 100644 --- a/code/defines/obj/storage.dm +++ b/code/defines/obj/storage.dm @@ -175,7 +175,7 @@ /obj/item/weapon/storage/gl_kit name = "Prescription Glasses" - desc = "This box contains nerd glasses." + desc = "This box contains vision correcting glasses." icon_state = "glasses" item_state = "syringe_kit" @@ -213,7 +213,7 @@ /obj/item/weapon/storage/trackimp_kit name = "Tracking Implant Kit" - desc = "Box full of scum-bag tracking utensils." + desc = "Box full of tracking utensils." icon_state = "implant" item_state = "syringe_kit" diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 46357c867cf..b326f0fcbfe 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -13,7 +13,7 @@ /obj/item/weapon/shield/riot name = "riot shield" - desc = "A shield adept at blocking blunt objects from connecting with the torso of the shield wielder." + desc = "A shield adept at blocking blunt objects." icon = 'weapons.dmi' icon_state = "riot" flags = FPRINT | TABLEPASS| CONDUCT| ONBACK @@ -29,7 +29,7 @@ IsShield() return 1 -/obj/item/weapon/sord +/*/obj/item/weapon/sord name = "SORD" desc = "This thing is so unspeakably shitty you are having a hard time even holding it." icon_state = "sord" @@ -37,11 +37,11 @@ flags = FPRINT | ONBELT | TABLEPASS force = 2 throwforce = 1 - w_class = 3 + w_class = 3 */ /obj/item/weapon/claymore name = "claymore" - desc = "what are you standing around staring at this for? get to killing!" + desc = "BLOOD FOR THE BLOOD GOD." //SKULLS FOR THE SKULL THRONE. --SkyMarshal icon_state = "claymore" item_state = "claymore" flags = FPRINT | ONBELT | TABLEPASS @@ -54,7 +54,7 @@ /obj/item/weapon/bodybag name = "body bag" - desc = "Bag mixed with a bit of body." + desc = "A bag used to deal with a corpse." icon = 'closet.dmi' icon_state = "bodybag" flags = FPRINT | TABLEPASS| CONDUCT @@ -170,7 +170,7 @@ /obj/item/weapon/melee/baton name = "Stun Baton" - desc = "A stun baton for hitting people with." + desc = "The police baton of the future." icon_state = "stunbaton" item_state = "baton" flags = FPRINT | ONBELT | TABLEPASS @@ -182,7 +182,7 @@ var/status = 0 origin_tech = "combat=2" -/obj/item/weapon/melee/chainofcommand +/*/obj/item/weapon/melee/chainofcommand name = "Chain of Command" desc = "The Captain is first and all other heads are last." icon_state = "chainofcommand" @@ -194,7 +194,7 @@ var/charges = 50.0 var/maximum_charges = 50.0 var/status = 1 - origin_tech = "combat=4" + origin_tech = "combat=4" */ /obj/item/weapon/melee/energy var/active = 0 @@ -214,7 +214,7 @@ /obj/item/weapon/melee/energy/sword var/color name = "energy sword" - desc = "May the force be within you." + desc = "It cuts AND cooks at the same time!." icon_state = "sword0" force = 3.0 throwforce = 5.0 @@ -272,7 +272,7 @@ icon_state = "soapnt" /obj/item/weapon/soap/deluxe - desc = "A deluxe Waffle Co. brand bar of soap. Smells of comdoms." + desc = "A deluxe Waffle Co. brand bar of soap." //What is this I don't even. "Smells of comdoms." --SkyMarshal icon_state = "soapdeluxe" /obj/item/weapon/soap/syndie @@ -443,15 +443,15 @@ data = "Clown Land" /obj/item/weapon/card/emag - desc = "It's a card with a magnetic strip attached to some circuitry." - name = "cryptographic sequencer" + desc = "An identification card. Seems to have some funny chip on it, though." + name = "identification card" icon_state = "emag" item_state = "card-id" origin_tech = "magnets=2;syndicate=2" /obj/item/weapon/card/id name = "identification card" - desc = "An identification card. No shit." + desc = "An identification card." icon_state = "id" item_state = "card-id" var/access = list() @@ -525,7 +525,7 @@ throw_range = 10 origin_tech = "combat=3;materials=3;engineering=3" -/obj/item/weapon/pepperspray +/obj/item/weapon/pepperspray //This is riot control desc = "Manufactred by UhangInc., used to blind and down an opponent quickly." icon = 'weapons.dmi' name = "pepperspray" @@ -537,6 +537,23 @@ throw_speed = 2 throw_range = 10 var/catch = 1 + var/BottleSize = 1 + var/ReagentAmount = 30 + +/obj/item/weapon/pepperspray/small //And this is for personal defense. + desc = "This appears to be a small, nonlethal, single use personal defense weapon. Hurts like a bitch, though." + icon = 'weapons.dmi' + name = "mace" + icon_state = "pepperspray" + item_state = "pepperspray" + flags = ONBELT|TABLEPASS|OPENCONTAINER|FPRINT|USEDELAY + throwforce = 3 + w_class = 1.0 + throw_speed = 2 + throw_range = 10 + catch = 1 + BottleSize = 0 + ReagentAmount = 1 /obj/item/weapon/clipboard name = "clipboard" @@ -602,7 +619,7 @@ /obj/item/weapon/fireaxe // DEM AXES MAN, marker -Agouri icon_state = "fireaxe0" name = "Fire axe" - desc = "Truly, the tool of a madman. Who would possibly think to fight fire with an axe?" + desc = "A tool for breaking down those obstructions that stop you from fighting that fire." //Less ROBUST. --SkyMarshal force = 5 w_class = 4.0 flags = ONBACK @@ -612,7 +629,7 @@ /obj/item/weapon/cane name = "cane" - desc = "A cane used by a true gentlemen. Or a clown." + desc = "A cane used by a true gentlemen." icon = 'weapons.dmi' icon_state = "cane" flags = FPRINT | TABLEPASS| CONDUCT @@ -645,7 +662,7 @@ /obj/item/weapon/extinguisher name = "fire extinguisher" - desc = "Contains water....dangit..." + desc = "Contains water..." icon = 'items.dmi' icon_state = "fire_extinguisher0" var/last_use = 1.0 @@ -776,7 +793,7 @@ /obj/item/weapon/mop - desc = "The world of janitalia wouldn't be complete without a mop." + desc = "The world of the janitor wouldn't be complete without a mop." name = "mop" icon = 'janitor.dmi' icon_state = "mop" @@ -909,7 +926,7 @@ throw_range = 15 /obj/item/weapon/pen/sleepypen - desc = "It's a normal black ink pen with a sharp point and a carefully engraved \"Waffle Co.\"" + desc = "It's a normal black ink pen with a sharp point." flags = FPRINT | ONBELT | TABLEPASS | OPENCONTAINER origin_tech = "materials=2;biotech=1;syndicate=7" @@ -1239,7 +1256,7 @@ /obj/item/weapon/kitchen/rollingpin name = "rolling pin" - desc = "Used to knock out the Bartender." + desc = "Used to flatten dough." icon_state = "rolling_pin" force = 8.0 throwforce = 10.0 @@ -1265,7 +1282,7 @@ name = "Butcher's Cleaver" icon = 'kitchen.dmi' icon_state = "butch" - desc = "A huge thing used for chopping and chopping up meat. This includes clowns and clown-by-products." + desc = "A huge thing used for chopping and chopping up meat." flags = FPRINT | TABLEPASS | CONDUCT force = 15.0 w_class = 2.0 @@ -1493,6 +1510,13 @@ icon_state = "mousetraparmed" armed = 1 +/obj/item/weapon/dice/d4 // -- SkyMarshal + name = "d4" + desc = "A dice with four sides." + sides = 4 + icon_state = "d20" + item_state = "dice" + /obj/item/weapon/dice // -- TLE name = "d6" desc = "A dice with six sides." @@ -1500,6 +1524,20 @@ icon_state = "dice" item_state = "dice" +/obj/item/weapon/dice/d8 // -- SkyMarshal + name = "d8" + desc = "A dice with eight sides." + sides = 8 + icon_state = "d20" + item_state = "dice" + +/obj/item/weapon/dice/d12 // -- SkyMarshal + name = "d12" + desc = "A dice with twelve sides." + sides = 12 + icon_state = "d20" + item_state = "dice" + /obj/item/weapon/dice/d20 // -- TLE name = "d20" desc = "A dice with...hell that is many sides." diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index c45e01fbadf..fc2feda15b7 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -73,16 +73,18 @@ H.equip_if_possible(new /obj/item/clothing/shoes/brown(H), H.slot_shoes) H.equip_if_possible(new /obj/item/device/pda/detective(H), H.slot_belt) H.equip_if_possible(new /obj/item/clothing/head/det_hat(H), H.slot_head) - var/obj/item/clothing/mask/cigarette/CIG = new /obj/item/clothing/mask/cigarette(H) +/* var/obj/item/clothing/mask/cigarette/CIG = new /obj/item/clothing/mask/cigarette(H) CIG.light("") - H.equip_if_possible(CIG, H.slot_wear_mask) + H.equip_if_possible(CIG, H.slot_wear_mask) */ + //Fuck that thing. --SkyMarshal H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves) H.equip_if_possible(new /obj/item/weapon/storage/fcard_kit(H.back), H.slot_in_backpack) H.equip_if_possible(new /obj/item/weapon/fcardholder(H), H.slot_in_backpack) H.equip_if_possible(new /obj/item/clothing/suit/det_suit(H), H.slot_wear_suit) H.equip_if_possible(new /obj/item/device/detective_scanner(H), H.slot_in_backpack) H.equip_if_possible(new /obj/item/weapon/zippo(H), H.slot_l_store) - H.equip_if_possible(new /obj/item/weapon/reagent_containers/food/snacks/candy_corn(H), H.slot_h_store) +// H.equip_if_possible(new /obj/item/weapon/reagent_containers/food/snacks/candy_corn(H), H.slot_h_store) +// No... just no. --SkyMarshal var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) L.imp_in = H L.implanted = 1 diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 7014680b9de..3d7902590d0 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -18,10 +18,36 @@ if(1.0) dat += text("Search Records
\nList Records
\nSearch Fingerprints
\nNew General Record
\n
\nRecord Maintenance
\n{Log Out}
\n", src, src, src, src, src, src) if(2.0) - dat += "Record List:
" + dat += {"Record List:
+ + + + + + + "} for(var/datum/data/record/R in data_core.general) - dat += text("[]: []
", src, R, R.fields["id"], R.fields["name"]) - dat += text("
Back", src) + var/crimstat = "" + for(var/datum/data/record/E in data_core.security) + if ((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"])) + crimstat = E.fields["criminal"] + var/background + switch(crimstat) + if("*Arrest*") + background = "'background-color:#DC143C;'" + if("Incarcerated") + background = "'background-color:#CD853F;'" + if("Parolled") + background = "'background-color:#CD853F;'" + if("Released") + background = "'background-color:#3BB9FF;'" + if("None") + background = "'background-color:#00FF7F;'" + dat += text("", background, src, R, R.fields["name"], R.fields["id"]) + dat += text("", R.fields["rank"]) + dat += text("", R.fields["fingerprint"]) + dat += text("", crimstat) + dat += text("
Name (ID#)RankFingerprintsCriminal Status
[] (ID:[])[][][]


Back", src) if(3.0) dat += text("Records Maintenance
\nDelete All Records
\n
\nBack", src, src) if(4.0) diff --git a/code/game/objects/closets/secure/security.dm b/code/game/objects/closets/secure/security.dm index d6e5518fecc..fc5d24bdeff 100644 --- a/code/game/objects/closets/secure/security.dm +++ b/code/game/objects/closets/secure/security.dm @@ -134,6 +134,7 @@ new /obj/item/weapon/fcardholder(src) new /obj/item/weapon/clipboard(src) new /obj/item/device/detective_scanner(src) + new /obj/item/weapon/pepperspray/small(src) return diff --git a/code/game/objects/items/weapons/mops_cleaners.dm b/code/game/objects/items/weapons/mops_cleaners.dm index ca4ce5544a4..ad0989bdcbc 100644 --- a/code/game/objects/items/weapons/mops_cleaners.dm +++ b/code/game/objects/items/weapons/mops_cleaners.dm @@ -14,15 +14,14 @@ MOP return /obj/item/weapon/cleaner/attack_self(var/mob/user as mob) - switch(catch) - if(0) - user << "\blue You flip the safety back on." - catch = 1 - return - if(1) - user << "\blue You flip the safety off." - catch = 0 - return + if(catch) + user << "\blue You flip the safety off." + catch = 0 + return + else + user << "\blue You flip the safety on." + catch = 1 + return /obj/item/weapon/cleaner/afterattack(atom/A as mob|obj, mob/user as mob) if (istype(A, /obj/item/weapon/storage )) @@ -179,25 +178,26 @@ MOP return +//Pepper spray, set up to make the 2 different types + /obj/item/weapon/pepperspray/New() - var/datum/reagents/R = new/datum/reagents(45) + var/datum/reagents/R = new/datum/reagents(ReagentAmount) reagents = R R.my_atom = src - R.add_reagent("condensedcapsaicin", 45) + R.add_reagent("condensedcapsaicin", ReagentAmount) /obj/item/weapon/pepperspray/attack(mob/living/carbon/human/M as mob, mob/user as mob) return /obj/item/weapon/pepperspray/attack_self(var/mob/user as mob) - switch(catch) - if(0) - user << "\blue You flip the safety on." - catch = 1 - return - if(1) - user << "\blue You flip the safety off." - catch = 0 - return + if(catch) + user << "\blue You flip the safety off." + catch = 0 + return + else + user << "\blue You flip the safety on." + catch = 1 + return /obj/item/weapon/pepperspray/afterattack(atom/A as mob|obj, mob/user as mob) if (istype(A, /obj/item/weapon/storage )) @@ -205,8 +205,8 @@ MOP if (istype(A, /obj/effect/proc_holder/spell )) return else if (istype(A, /obj/structure/reagent_dispensers/peppertank) && get_dist(src,A) <= 1) - if(src.reagents.total_volume < 45) - A.reagents.trans_to(src, 45 - src.reagents.total_volume) + if(src.reagents.total_volume < ReagentAmount) + A.reagents.trans_to(src, ReagentAmount - src.reagents.total_volume) user << "\blue Pepper spray refilled" playsound(src.loc, 'refill.ogg', 50, 1, -6) return @@ -221,14 +221,23 @@ MOP return playsound(src.loc, 'spray2.ogg', 50, 1, -6) - var/Sprays[3] - for(var/i=1, i<=3, i++) // intialize sprays + var/SprayNum = 0 //Setting up the differentiation for the 2 bottles. --SkyMarshal + var/SprayAmt = 0 + if(BottleSize) + SprayNum = 3 + SprayAmt = 5 + else + SprayNum = 1 + SprayAmt = 1 + + var/Sprays[SprayNum] + for(var/i=1, i<=SprayNum, i++) // intialize sprays if(src.reagents.total_volume < 1) break var/obj/effect/decal/D = new/obj/effect/decal(get_turf(src)) D.name = "chemicals" D.icon = 'chempuff.dmi' - D.create_reagents(5) - src.reagents.trans_to(D, 5) + D.create_reagents(SprayAmt) + src.reagents.trans_to(D, SprayAmt) var/rgbcolor[3] var/finalcolor @@ -263,11 +272,23 @@ MOP var/obj/effect/decal/D = Sprays[i] if(!D) continue + var/turf/my_target = null // Spreads the sprays a little bit - var/turf/my_target = pick(the_targets) + if(i == 1) + my_target = T + else + my_target = pick(the_targets) + the_targets -= my_target - for(var/j=1, j<=rand(6,8), j++) + var/Dist = 0 + + if(BottleSize) + Dist = rand(6,8) + else + Dist = rand(2,3) + + for(var/j=1, j<=Dist, j++) step_towards(D, my_target) D.reagents.reaction(get_turf(D)) for(var/atom/t in get_turf(D)) @@ -287,9 +308,14 @@ MOP /obj/item/weapon/pepperspray/examine() set src in usr - usr << text("\icon[] [] units of pepperspray left!", src, src.reagents.total_volume) - ..() - return + if(BottleSize) + usr << text("\icon[] [] units of pepperspray left!", src, src.reagents.total_volume) + ..() + return + else + usr << text("\icon[] [] use(s) remaining!", src, src.reagents.total_volume) + ..() + return // MOP diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index b676da8ffbd..e1227e6eb45 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -727,6 +727,40 @@ alert("You cannot perform this action. You must be of a higher administrative rank!", null, null, null, null, null) return + if (href_list["defense"]) + if ((src.rank in list( "Trial Admin", "Badmin", "Game Admin", "Game Master" ))) + var/mob/living/M = locate(href_list["defense"]) + if (isliving(M) && istype(M, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + switch(alert("Shall they be equipped with a flash or mace?",,"Flash","Mace", "Cancel")) + if("Flash") + if(!H.s_store) + H.equip_if_possible(new /obj/item/device/flash(H), H.slot_l_store) + else if(!H.s_store) + H.equip_if_possible(new /obj/item/device/flash(H), H.slot_s_store) + else + alert("The target lacked an open pocket.", null, null, null, null, null) + return + if("Mace") + if(!H.s_store) + H.equip_if_possible(new /obj/item/weapon/pepperspray/small(H), H.slot_l_store) + else if(!H.s_store) + H.equip_if_possible(new /obj/item/weapon/pepperspray/small(H), H.slot_s_store) + else + alert("The target lacked an open pocket.", null, null, null, null, null) + return + if("Cancel") + return + message_admins("\red Admin [key_name_admin(usr)] gave [key_name_admin(M)] something to defend themselves!", 1) + log_admin("[key_name(usr)] defensified [key_name(M)]") + return + else + alert("This action can only be performed on living humans.", null, null, null, null, null) + return + else + alert("You cannot perform this action. You must be of a higher administrative rank!", null, null, null, null, null) + return + if (href_list["makeai"]) //Yes, im fucking lazy, so what? it works ... hopefully if (src.level>=3) var/mob/M = locate(href_list["makeai"]) @@ -1774,6 +1808,7 @@ foo += text("Prison | ") // foo += text("Maze | ") foo += text("Heal/Revive | ") + foo += text("Defensize | ") else foo += text("Hasn't Entered Game | ") foo += text("Forcesay | ") diff --git a/code/modules/chemical/Chemistry-Reagents.dm b/code/modules/chemical/Chemistry-Reagents.dm index 8e4e7863458..b24a338f661 100644 --- a/code/modules/chemical/Chemistry-Reagents.dm +++ b/code/modules/chemical/Chemistry-Reagents.dm @@ -1709,13 +1709,13 @@ datum M << "\red Your glasses protect you from most of the pepperspray!" M:emote("scream") M.eye_blurry = max(M.eye_blurry, 20) - M.eye_blind = max(M.eye_blind, 6) + M.eye_blind = max(M.eye_blind, 4) return M:emote("scream") M << "\red You're sprayed directly in the eyes with pepperspray!" M.eye_blurry = max(M.eye_blurry, 60) - M.eye_blind = max(M.eye_blind, 20) - M:paralysis = max(M:paralysis, 16) + M.eye_blind = max(M.eye_blind, 12) + M:weakened = max(M:weakened, 20) M.drop_item() frostoil diff --git a/code/modules/chemical/Chemistry-Tools.dm b/code/modules/chemical/Chemistry-Tools.dm index 2eebb272aca..8f9d55fdab3 100644 --- a/code/modules/chemical/Chemistry-Tools.dm +++ b/code/modules/chemical/Chemistry-Tools.dm @@ -2740,7 +2740,7 @@ icon_state = "peppertank" anchored = 1 density = 0 - amount_per_transfer_from_this = 45 + amount_per_transfer_from_this = 30 New() ..() reagents.add_reagent("condensedcapsaicin",1000) diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi index b49faa386b7..aa88951b244 100644 Binary files a/icons/obj/card.dmi and b/icons/obj/card.dmi differ diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm index 6cc9a07920c..726b1420b8d 100644 --- a/maps/tgstation.2.0.8.dmm +++ b/maps/tgstation.2.0.8.dmm @@ -2344,7 +2344,7 @@ "aTd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/crew_quarters/captain) "aTe" = (/obj/item/weapon/pinpointer,/obj/item/weapon/disk/nuclear,/obj/structure/table/woodentable,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) "aTf" = (/obj/item/weapon/camera_test,/obj/item/weapon/storage/photo_album{pixel_y = -10},/obj/structure/table/woodentable,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) -"aTg" = (/obj/machinery/recharger{pixel_y = 4},/obj/item/weapon/melee/chainofcommand,/obj/structure/table/woodentable,/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) +"aTg" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table/woodentable,/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) "aTh" = (/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) "aTi" = (/obj/machinery/requests_console{department = "Captain's Quarters"; departmentType = 5; pixel_y = 30},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) "aTj" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)