From f91dfe2e0dba1b7a8b9a0fa18251340920979a62 Mon Sep 17 00:00:00 2001 From: "petethegoat@gmail.com" Date: Sun, 22 Apr 2012 03:18:17 +0000 Subject: [PATCH] Updated the barman's shotgun, it acts like a double-barrel now, and he can saw it off. Added Khodoque's new shotgun sprites. Added my new gasmask sprites. Removed emergency gasmasks, as the distinction is non-existent. Very slightly reshuffled some mask stuff around, but it's still godawful. Medical masks are now /obj/item/clothing/mask/breath/medical Removed the define for HALFMASK, as it was completely unused. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3493 316c924e-a436-60f5-8080-3fe189b3f50e --- code/defines/obj/clothing/mask.dm | 23 +++-- code/game/gamemodes/wizard/rightandwrong.dm | 2 +- code/game/jobs/job/security.dm | 4 +- code/game/objects/closets/secure/medical.dm | 6 +- code/modules/mob/living/silicon/ai/ai.dm | 2 +- code/modules/paperwork/folders.dm | 4 +- code/modules/projectiles/ammunition.dm | 4 +- code/modules/projectiles/gun.dm | 1 + code/modules/projectiles/guns/projectile.dm | 8 +- .../projectiles/guns/projectile/shotgun.dm | 82 +++++++++++++++--- code/modules/projectiles/projectile.dm | 6 +- code/setup.dm | 7 +- html/changelog.html | 16 +++- icons/mob/back.dmi | Bin 27752 -> 29337 bytes icons/mob/items_lefthand.dmi | Bin 108651 -> 108973 bytes icons/mob/items_righthand.dmi | Bin 108450 -> 108737 bytes icons/mob/mask.dmi | Bin 18358 -> 18340 bytes icons/mob/monkey.dmi | Bin 15718 -> 15648 bytes icons/obj/clothing/masks.dmi | Bin 9382 -> 9501 bytes icons/obj/gun.dmi | Bin 41974 -> 39227 bytes maps/tgstation.2.0.8.dmm | 6 +- 21 files changed, 125 insertions(+), 46 deletions(-) diff --git a/code/defines/obj/clothing/mask.dm b/code/defines/obj/clothing/mask.dm index b17a44ea2c7a6..c6b45b5d23e0d 100644 --- a/code/defines/obj/clothing/mask.dm +++ b/code/defines/obj/clothing/mask.dm @@ -1,4 +1,6 @@ // MASK WAS THAT MOVIE WITH THAT GUY WITH THE MESSED UP FACE. WHAT'S HIS NAME . . . JIM CARREY, I THINK. +//why is this up here -Pete +//also: please someone make this less terrible, why are things that work with internals not all under one parent, why why why why why whyyyyyyyyyyyyyyy /obj/item/clothing/mask name = "mask" @@ -12,24 +14,20 @@ name = "breath mask" icon_state = "breath" item_state = "breath" - flags = FPRINT | TABLEPASS | SUITSPACE | HEADSPACE | MASKCOVERSMOUTH | HALFMASK + flags = FPRINT | TABLEPASS | SUITSPACE | HEADSPACE | MASKCOVERSMOUTH w_class = 2 protective_temperature = 420 heat_transfer_coefficient = 0.90 gas_transfer_coefficient = 0.10 permeability_coefficient = 0.50 -/obj/item/clothing/mask/medical +/obj/item/clothing/mask/breath/medical desc = "A close-fitting sterile mask that can be connected to an air supply." name = "medical mask" icon_state = "medical" item_state = "medical" - flags = FPRINT|TABLEPASS|SUITSPACE|HEADSPACE|MASKCOVERSMOUTH - w_class = 3 - protective_temperature = 420 - gas_transfer_coefficient = 0.10 - permeability_coefficient = 0.10 +//WHY DOES THIS EXIST /obj/item/clothing/mask/spiderman desc = "A mask of Deadpool!" name = "\improper Deadpool mask" @@ -61,14 +59,15 @@ permeability_coefficient = 0.05 armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 75, rad = 0) +//This now uses the alt sprites, like the emergency gasmask. -Pete /obj/item/clothing/mask/gas name = "gas mask" desc = "A face-covering mask that can be connected to an air supply." - icon_state = "gas_mask" + icon_state = "gas_alt" flags = FPRINT|TABLEPASS|SUITSPACE|MASKCOVERSMOUTH|MASKCOVERSEYES w_class = 3.0 see_face = 0.0 - item_state = "gas_mask" + item_state = "gas_alt" protective_temperature = 500 heat_transfer_coefficient = 0.01 gas_transfer_coefficient = 0.01 @@ -80,13 +79,13 @@ icon_state = "plaguedoctor" item_state = "gas_mask" armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 75, rad = 0) - +/* /obj/item/clothing/mask/gas/emergency name = "emergency gas mask" desc = "A face-covering mask that can be connected to an air supply. For use in emergencies." icon_state = "gas_alt" item_state = "gas_alt" - +*/ /obj/item/clothing/mask/gas/swat name = "\improper SWAT mask" desc = "A close-fitting tactical mask that can be connected to an air supply." @@ -100,7 +99,6 @@ /obj/item/clothing/mask/gas/voice name = "gas mask" //desc = "A face-covering mask that can be connected to an air supply. It seems to house some odd electronics." - icon_state = "gas_mask" var/mode = 0// 0==Scouter | 1==Night Vision | 2==Thermal | 3==Meson var/voice = "Unknown" var/vchange = 0//This didn't do anything before. It now checks if the mask has special functions/N @@ -143,6 +141,7 @@ icon_state = "sexymime" item_state = "sexymime" +//WHY IS THIS A GASMASK /obj/item/clothing/mask/gas/fakemoustache name = "fake moustache" desc = "Warning: moustache is fake." diff --git a/code/game/gamemodes/wizard/rightandwrong.dm b/code/game/gamemodes/wizard/rightandwrong.dm index ac4f4b32e4033..2d72f5c452fce 100644 --- a/code/game/gamemodes/wizard/rightandwrong.dm +++ b/code/game/gamemodes/wizard/rightandwrong.dm @@ -44,7 +44,7 @@ if("cannon") new /obj/item/weapon/gun/energy/lasercannon(get_turf(H)) if("shotgun") - new /obj/item/weapon/gun/projectile/shotgun/combat(get_turf(H)) + new /obj/item/weapon/gun/projectile/shotgun/pump/combat(get_turf(H)) if("freeze") new /obj/item/weapon/gun/energy/temperature(get_turf(H)) if("uzi") diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index ded3875298af1..981d0bb563db8 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -21,7 +21,7 @@ H.equip_if_possible(new /obj/item/clothing/suit/armor/hos(H), H.slot_wear_suit) H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves) H.equip_if_possible(new /obj/item/clothing/head/helmet/HoS(H), H.slot_head) - H.equip_if_possible(new /obj/item/clothing/mask/gas/emergency(H), H.slot_wear_mask) + H.equip_if_possible(new /obj/item/clothing/mask/gas(H), H.slot_wear_mask) H.equip_if_possible(new /obj/item/clothing/glasses/sunglasses/sechud(H), H.slot_glasses) H.equip_if_possible(new /obj/item/weapon/gun/energy/gun(H), H.slot_s_store) if(H.backbag == 1) @@ -60,7 +60,7 @@ H.equip_if_possible(new /obj/item/clothing/head/helmet/warden(H), H.slot_head) H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves) H.equip_if_possible(new /obj/item/clothing/glasses/sunglasses/sechud(H), H.slot_glasses) - H.equip_if_possible(new /obj/item/clothing/mask/gas/emergency(H), H.slot_wear_mask) + H.equip_if_possible(new /obj/item/clothing/mask/gas(H), H.slot_wear_mask) H.equip_if_possible(new /obj/item/device/flash(H), H.slot_l_store) if(H.backbag == 1) H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H), H.slot_r_hand) diff --git a/code/game/objects/closets/secure/medical.dm b/code/game/objects/closets/secure/medical.dm index 5324f278ad9a3..6f011ca15d8fe 100644 --- a/code/game/objects/closets/secure/medical.dm +++ b/code/game/objects/closets/secure/medical.dm @@ -44,9 +44,9 @@ new /obj/item/weapon/tank/anesthetic(src) new /obj/item/weapon/tank/anesthetic(src) new /obj/item/weapon/tank/anesthetic(src) - new /obj/item/clothing/mask/medical(src) - new /obj/item/clothing/mask/medical(src) - new /obj/item/clothing/mask/medical(src) + new /obj/item/clothing/mask/breath/medical(src) + new /obj/item/clothing/mask/breath/medical(src) + new /obj/item/clothing/mask/breath/medical(src) return diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 76b2fc084932f..90bd7568d7129 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -453,7 +453,7 @@ malf_picker.use(src) -//I am the icon meister. Bow fefore me. +//I am the icon meister. Bow fefore me. //>fefore /mob/living/silicon/ai/proc/ai_hologram_change() set name = "Change Hologram" set desc = "Change the default hologram available to AI to something else." diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index 3d4915300337f..0f4fba2aff29c 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -29,7 +29,7 @@ return /obj/item/weapon/folder/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/paper)) + if(istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/photo)) user.drop_item() W.loc = src user << "\blue You put the [W] into the folder." @@ -46,6 +46,8 @@ for(var/obj/item/weapon/paper/P in src) dat += "Remove - [P.name]
" + for(var/obj/item/weapon/photo/Ph in src) + dat += "Remove - [Ph.name]
" user << browse(dat, "window=folder") onclose(user, "folder") add_fingerprint(usr) diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index bf621d52ca0db..a8802a7f1a31a 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -50,5 +50,5 @@ update_icon() if(multiple_sprites) - icon_state = text("[initial(icon_state)]-[]", stored_ammo.len) - desc = text("There are [] shell\s left!", stored_ammo.len) + icon_state = "[initial(icon_state)]-[stored_ammo.len]" + desc = "There are [stored_ammo.len] shell\s left!" diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 3916cc1623019..b22cf2eebb62a 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -19,6 +19,7 @@ caliber = "" silenced = 0 recoil = 0 + ejectshell = 1 proc load_into_chamber() diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index b0843fe1c5a78..ab72471fe71e1 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -29,6 +29,7 @@ var/obj/item/ammo_casing/AC = loaded[1] //load next casing. loaded -= AC //Remove casing from loaded list. AC.loc = get_turf(src) //Eject casing onto ground. + AC.desc += " This one is spent." //descriptions are magic if(AC.BB) in_chamber = AC.BB //Load projectile into chamber. @@ -63,13 +64,14 @@ loaded += AC num_loaded++ if(num_loaded) - user << text("\blue You load [] shell\s into the gun!", num_loaded) + user << "\blue You load [num_loaded] shell\s into the gun!" A.update_icon() update_icon() return - update_icon() - desc = initial(desc) + text(" Has [] rounds remaining.", loaded.len) + examine() + ..() + usr << "Has [loaded.len] round\s remaining." return diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index c334fb755d4b8..551c469f41148 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -1,13 +1,14 @@ -/obj/item/weapon/gun/projectile/shotgun +/obj/item/weapon/gun/projectile/shotgun/pump name = "shotgun" desc = "Useful for sweeping alleys." icon_state = "shotgun" - max_shells = 2 + item_state = "shotgun" + max_shells = 4 w_class = 4.0 force = 10 flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY | ONBACK caliber = "shotgun" - origin_tech = "combat=3;materials=1" + origin_tech = "combat=4;materials=2" ammo_type = "/obj/item/ammo_casing/shotgun/beanbag" var recentpump = 0 // to prevent spammage @@ -29,7 +30,7 @@ return - proc/pump(mob/M) + proc/pump(mob/M as mob) playsound(M, 'shotgunpump.ogg', 60, 1) pumped = 0 if(current_shell)//We have a shell in the chamber @@ -43,20 +44,79 @@ current_shell = AC if(AC.BB) in_chamber = AC.BB //Load projectile into chamber. + update_icon() //I.E. fix the desc return 1 - - -/obj/item/weapon/gun/projectile/shotgun/combat +/obj/item/weapon/gun/projectile/shotgun/pump/combat name = "combat shotgun" icon_state = "cshotgun" max_shells = 8 + origin_tech = "combat=5;materials=2" ammo_type = "/obj/item/ammo_casing/shotgun" +//this is largely hacky and bad :( -Pete +/obj/item/weapon/gun/projectile/shotgun/doublebarrel + name = "double-barreled shotgun" + desc = "A true classic." + icon_state = "dshotgun" + item_state = "shotgun" + max_shells = 2 + w_class = 4.0 + force = 10 + flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY | ONBACK + caliber = "shotgun" + origin_tech = "combat=3;materials=1" + ammo_type = "/obj/item/ammo_casing/shotgun/beanbag" + + load_into_chamber() + if(!loaded.len) return 0 + var/obj/item/ammo_casing/AC = loaded[1] //load next casing. + loaded -= AC //Remove casing from loaded list. + AC.desc += " This one is spent." -/obj/item/weapon/gun/projectile/shotgun/combat2 - name = "security combat shotgun" - icon_state = "cshotgun" - max_shells = 4 + if(AC.BB) + in_chamber = AC.BB //Load projectile into chamber. + AC.BB.loc = src //Set projectile loc to gun. + return 1 + return 0 + + attack_self(mob/living/user as mob) + if(!(locate(/obj/item/ammo_casing/shotgun) in src) && !loaded.len) + user << "\The [src] is empty." + return + + for(var/obj/item/ammo_casing/shotgun/shell in src) //This feels like a hack. //don't code at 3:30am kids!! + if(shell in loaded) + loaded -= shell + shell.loc = get_turf(src.loc) + + user << "You break \the [src]." + update_icon() + attackby(var/obj/item/A as obj, mob/user as mob) + if(istype(A, /obj/item/ammo_casing) && !load_method) + var/obj/item/ammo_casing/AC = A + if(AC.caliber == caliber && (loaded.len < max_shells) && (contents.len < max_shells)) //forgive me father, for i have sinned + user.drop_item() + AC.loc = src + loaded += AC + user << "You load a shell into \the [src]!" + A.update_icon() + update_icon() + if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter)) + user << "You begin to shorten the barrel of \the [src]." + if(loaded.len) + afterattack(user, user) //will this work? + playsound(user, fire_sound, 50, 1) + user.visible_message("The shotgun goes off!", "The shotgun goes off in your face!") + return + if(do_after(user, 30)) //SHIT IS STEALTHY EYYYYY + icon_state = "sawnshotgun" + w_class = 3.0 + item_state = "gun" + flags &= ~ONBACK //you can't sling it on your back + flags |= ONBELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) + name = "sawn-off shotgun" + desc = "Omar's coming!" + user << "You shorten the barrel of \the [src]!" \ No newline at end of file diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 3e5d4e1c0d799..860527fa86157 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -76,12 +76,12 @@ else M << "\red You've been shot!" if(istype(firer, /mob)) - M.attack_log += text("\[[]\] []/[] shot []/[] with a []", time_stamp(), firer, firer.ckey, M, M.ckey, src) - firer.attack_log += text("\[[]\] []/[] shot []/[] with a []", time_stamp(), firer, firer.ckey, M, M.ckey, src) + M.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [M]/[M.ckey] with a [src]" + firer.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [M]/[M.ckey] with a [src]" log_attack("[firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src]") else - M.attack_log += text("\[[]\] UNKNOWN SUBJECT (No longer exists) shot []/[] with a []", time_stamp(), M, M.ckey, src) + M.attack_log += "\[[time_stamp()]\] UNKNOWN SUBJECT (No longer exists) shot [M]/[M.ckey] with a [src]" log_attack("UNKNOWN shot [M] ([M.ckey]) with a [src]") diff --git a/code/setup.dm b/code/setup.dm index 8018baa09655f..e3f3d9a196187 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -101,7 +101,12 @@ var/MAX_EXPLOSION_RANGE = 14 //FLAGS BITMASK #define ONBACK 1 // can be put in back slot #define TABLEPASS 2 // can pass by a table or rack -#define HALFMASK 4 // mask only gets 1/2 of air supply from internals + +/******************************************************************************** +* WOO WOO WOO THIS IS UNUSED WOO WOO WOO * +* #define HALFMASK 4 // mask only gets 1/2 of air supply from internals * +* WOO WOO WOO THIS IS UNUSED WOO WOO WOO * +********************************************************************************/ #define HEADSPACE 4 // head wear protects against space diff --git a/html/changelog.html b/html/changelog.html index 2d2adf39be7ea..23f40033f72b8 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -94,16 +94,26 @@

Changelog

-

21 April 2012

+

Sunday, April 22nd

+

Petethegoat updated:

+ +
+ +
+

Saturday, April 21st

Errorage updated:

-
-

19 April 2012

+

Thursday, April 19th

Carn updated: