diff --git a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm index 61c46bad876..bb50f35b41d 100644 --- a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm +++ b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm @@ -455,7 +455,7 @@ "aiM" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/security/prison) "aiN" = (/obj/machinery/flasher/portable,/obj/machinery/flasher/portable,/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = 29},/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) "aiO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden) -"aiP" = (/obj/structure/rack,/obj/item/weapon/gun/energy/advtaser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/advtaser,/obj/item/weapon/gun/energy/advtaser{pixel_x = 3; pixel_y = -3},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/security/warden) +"aiP" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/gun/advtaser,/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = 3; pixel_y = -3},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/security/warden) "aiQ" = (/obj/machinery/syndicatebomb/training,/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) "aiR" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/laser,/obj/item/weapon/gun/energy/laser{pixel_x = 3; pixel_y = -3},/turf/simulated/floor/plasteel{tag = "icon-vault (EAST)"; icon_state = "vault"; dir = 4},/area/security/warden) "aiS" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden) @@ -1679,7 +1679,7 @@ "aGo" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 6},/area/security/nuke_storage) "aGp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{icon_state = "vault"},/area/security/nuke_storage) "aGq" = (/obj/machinery/camera/motion{c_tag = "Vault"; dir = 1; network = list("MiniSat")},/obj/machinery/light,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 10},/area/security/nuke_storage) -"aGr" = (/obj/structure/safe,/obj/item/weapon/storage/secure/briefcase{contents = newlist(/obj/item/clothing/suit/armor/vest,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/suppressor,/obj/item/clothing/mask/balaclava,/obj/item/bodybag,/obj/item/weapon/soap/nanotrasen)},/obj/item/weapon/storage/backpack/duffel{contents = newlist(/obj/item/clothing/under/lawyer,/obj/item/clothing/accessory/waistcoat,/obj/item/clothing/shoes/laceup,/obj/item/clothing/gloves/color/black,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/fedora); desc = "A large dufflebag for holding extra things. There is a NanoTrasen logo on the back."; icon_state = "duffle-syndieammo"; item_state = "duffle-syndieammo"},/obj/item/weapon/card/id/silver{access = list(12); assignment = "Reaper"; name = "Thirteen's ID Card (Reaper)"; registered_name = "Thirteen"},/obj/item/weapon/lazarus_injector,/obj/item/weapon/gun/energy/advtaser,/obj/item/weapon/gun/projectile/revolver/russian,/obj/item/ammo_box/a357,/obj/item/clothing/accessory/stethoscope,/obj/item/weapon/book{desc = "An undeniably handy book."; icon_state = "bookknock"; name = "A Simpleton's Guide to Safe-cracking with Stethoscopes"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 4},/area/security/nuke_storage) +"aGr" = (/obj/structure/safe,/obj/item/weapon/storage/secure/briefcase{contents = newlist(/obj/item/clothing/suit/armor/vest,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/suppressor,/obj/item/clothing/mask/balaclava,/obj/item/bodybag,/obj/item/weapon/soap/nanotrasen)},/obj/item/weapon/storage/backpack/duffel{contents = newlist(/obj/item/clothing/under/lawyer,/obj/item/clothing/accessory/waistcoat,/obj/item/clothing/shoes/laceup,/obj/item/clothing/gloves/color/black,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/fedora); desc = "A large dufflebag for holding extra things. There is a NanoTrasen logo on the back."; icon_state = "duffle-syndieammo"; item_state = "duffle-syndieammo"},/obj/item/weapon/card/id/silver{access = list(12); assignment = "Reaper"; name = "Thirteen's ID Card (Reaper)"; registered_name = "Thirteen"},/obj/item/weapon/lazarus_injector,/obj/item/weapon/gun/energy/gun/advtaser,/obj/item/weapon/gun/projectile/revolver/russian,/obj/item/ammo_box/a357,/obj/item/clothing/accessory/stethoscope,/obj/item/weapon/book{desc = "An undeniably handy book."; icon_state = "bookknock"; name = "A Simpleton's Guide to Safe-cracking with Stethoscopes"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 4},/area/security/nuke_storage) "aGs" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/simulated/shuttle/plating,/area/shuttle/siberia) "aGt" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/hallway/primary/fore) "aGu" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id_tag = "Secure Gate"; name = "brig shutters"},/turf/simulated/floor/plating,/area/security/brig) diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index a2f06af2b25..8aa2bd887e4 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -225,7 +225,7 @@ "aeq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/security/interrogationobs) "aer" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/camera{c_tag = "Brig Prison Hallway"; dir = 4; network = list("Prison","SS13")},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/permabrig) "aes" = (/obj/structure/lattice,/obj/machinery/camera{c_tag = "Brig Secure Armory Exterior South"; dir = 8; network = list("SS13")},/turf/space,/area/security/permabrig) -"aet" = (/obj/structure/rack,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/item/weapon/gun/energy/advtaser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/advtaser{pixel_x = 0; pixel_y = 0},/obj/item/weapon/gun/energy/advtaser{pixel_x = 3; pixel_y = -3},/turf/simulated/floor/plasteel{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/security/securearmoury) +"aet" = (/obj/structure/rack,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = 0; pixel_y = 0},/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = 3; pixel_y = -3},/turf/simulated/floor/plasteel{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/security/securearmoury) "aeu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/warning_stripes/southeast,/obj/vehicle/secway,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/securearmoury) "aev" = (/obj/structure/rack,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot,/turf/simulated/floor/plasteel{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/security/securearmoury) "aew" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/carpet,/area/security/hos) diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm index 65b00ea2f84..6019bc78c54 100644 --- a/_maps/map_files/cyberiad/z2.dmm +++ b/_maps/map_files/cyberiad/z2.dmm @@ -1141,7 +1141,7 @@ "Fd" = (/obj/structure/rack,/obj/item/ammo_box/magazine/m556,/obj/item/ammo_box/magazine/m556,/obj/item/ammo_box/magazine/m556,/obj/item/ammo_box/magazine/m556,/obj/item/ammo_box/magazine/m556,/obj/item/ammo_box/magazine/m556,/obj/item/ammo_box/a40mm,/obj/item/ammo_box/a40mm,/obj/item/ammo_box/a40mm,/obj/item/ammo_box/a40mm,/obj/item/weapon/gun/projectile/automatic/m90,/obj/item/weapon/gun/projectile/automatic/m90{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "Fe" = (/obj/structure/mirror{dir = 4; pixel_x = 0; pixel_y = -32},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "Ff" = (/obj/machinery/optable,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/admin) -"Fh" = (/obj/structure/table,/obj/item/weapon/gun/energy/pulse_rifle/pistol,/obj/machinery/door_control{desc = "A remote control switch to lock down the admin lab."; icon_state = "doorctrl0"; id = "ADMINCHEMLOCKDOWN"; name = "Lockdown"; pixel_y = 24; req_access_txt = "0"},/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/admin) +"Fh" = (/obj/structure/table,/obj/item/weapon/gun/energy/pulse/pistol,/obj/machinery/door_control{desc = "A remote control switch to lock down the admin lab."; icon_state = "doorctrl0"; id = "ADMINCHEMLOCKDOWN"; name = "Lockdown"; pixel_y = 24; req_access_txt = "0"},/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/admin) "Fi" = (/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/admin) "Fj" = (/obj/machinery/computer/secure_data,/obj/item/weapon/paper/sop,/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/admin) "Fk" = (/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/turf/unsimulated/wall{dir = 8; icon = 'icons/turf/shuttle.dmi'; icon_state = "diagonalWall3"},/area/admin) @@ -1163,7 +1163,7 @@ "FA" = (/obj/structure/table,/obj/structure/window/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/unsimulated/floor{dir = 10; icon_state = "carpetside"},/area/admin) "FB" = (/obj/structure/table,/obj/machinery/door/window/southleft{name = "security checkpoint"; req_access_txt = "0"},/turf/unsimulated/floor{dir = 2; icon_state = "carpetside"},/area/admin) "FC" = (/obj/structure/table,/obj/structure/window/reinforced,/obj/machinery/recharger,/turf/unsimulated/floor{dir = 6; icon_state = "carpetside"},/area/admin) -"FD" = (/obj/machinery/recharger/wallcharger{pixel_x = 30},/obj/structure/rack,/obj/item/weapon/gun/energy/pulse_rifle/pistol/m1911,/obj/item/weapon/gun/energy/pulse_rifle/pistol/m1911{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) +"FD" = (/obj/machinery/recharger/wallcharger{pixel_x = 30},/obj/structure/rack,/obj/item/weapon/gun/energy/pulse/pistol/m1911,/obj/item/weapon/gun/energy/pulse/pistol/m1911{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "FE" = (/obj/structure/table,/obj/item/weapon/tank/oxygen/yellow,/obj/random/bomb_supply,/obj/item/clothing/under/rebeloutfit,/obj/item/clothing/suit/poncho/ponchoshame,/obj/item/clothing/head/sombrero/shamebrero,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin) "FF" = (/obj/machinery/door/airlock/hatch{name = "Tool Storage"; req_access_txt = "0"},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin) "FG" = (/obj/structure/table,/obj/item/weapon/FixOVein,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/admin) @@ -1175,7 +1175,7 @@ "FM" = (/obj/structure/rack,/obj/item/weapon/gun/energy/meteorgun,/obj/item/weapon/gun/energy/meteorgun{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "FN" = (/obj/structure/rack,/obj/item/weapon/twohanded/knighthammer{pixel_x = -3; pixel_y = 3},/obj/item/weapon/twohanded/mjollnir,/obj/item/weapon/twohanded/singularityhammer{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "FO" = (/obj/structure/rack,/obj/item/weapon/gun/energy/kinetic_accelerator/crossbow,/obj/item/weapon/gun/energy/kinetic_accelerator/crossbow{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) -"FP" = (/obj/machinery/recharger/wallcharger{pixel_x = 30},/obj/structure/rack,/obj/item/weapon/gun/energy/pulse_rifle,/obj/item/weapon/gun/energy/pulse_rifle{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) +"FP" = (/obj/machinery/recharger/wallcharger{pixel_x = 30},/obj/structure/rack,/obj/item/weapon/gun/energy/pulse,/obj/item/weapon/gun/energy/pulse{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "FQ" = (/obj/structure/table,/obj/random/tool,/obj/item/clothing/gloves/color/yellow,/obj/item/weapon/pinpointer/advpinpointer,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin) "FR" = (/obj/structure/table,/obj/item/weapon/grenade/syndieminibomb{pixel_x = 4; pixel_y = 2; pixel_z = 0},/obj/item/weapon/grenade/syndieminibomb{pixel_x = -1},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin) "FS" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 0},/obj/item/toy/cards/deck/syndicate/black,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 35274d2102d..000618dd9c4 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -74,7 +74,7 @@ if(!locate(/turf) in list(A,A.loc)) // Prevents inventory from being drilled return var/obj/mecha/M = loc - return M.click_action(A,src) + return M.click_action(A, src) if(restrained()) changeNext_move(CLICK_CD_HANDCUFFED) //Doing shit in cuffs shall be vey slow diff --git a/code/datums/spells/dumbfire.dm b/code/datums/spells/dumbfire.dm index c1eb4889a93..7b5c77b7d21 100644 --- a/code/datums/spells/dumbfire.dm +++ b/code/datums/spells/dumbfire.dm @@ -79,8 +79,11 @@ qdel(trail) current_loc = projectile.loc + var/matrix/M = new + M.Turn(dir2angle(projectile.dir)) + projectile.transform = M sleep(proj_step_delay) if(projectile) - qdel(projectile) \ No newline at end of file + qdel(projectile) diff --git a/code/game/gamemodes/wizard/rightandwrong.dm b/code/game/gamemodes/wizard/rightandwrong.dm index eb1e8bce930..626771d23d6 100644 --- a/code/game/gamemodes/wizard/rightandwrong.dm +++ b/code/game/gamemodes/wizard/rightandwrong.dm @@ -34,7 +34,7 @@ if("gyrojet") new /obj/item/weapon/gun/projectile/automatic/gyropistol(get_turf(H)) if("pulse") - new /obj/item/weapon/gun/energy/pulse_rifle(get_turf(H)) + new /obj/item/weapon/gun/energy/pulse(get_turf(H)) if("suppressed") new /obj/item/weapon/gun/projectile/automatic/pistol(get_turf(H)) new /obj/item/weapon/suppressor(get_turf(H)) @@ -71,7 +71,7 @@ if("turret") new /obj/item/weapon/gun/energy/gun/turret(get_turf(H)) if("pulsecarbine") - new /obj/item/weapon/gun/energy/pulse_rifle/carbine(get_turf(H)) + new /obj/item/weapon/gun/energy/pulse/carbine(get_turf(H)) if("decloner") new /obj/item/weapon/gun/energy/decloner(get_turf(H)) if("mindflayer") diff --git a/code/game/jobs/job/supervisor.dm b/code/game/jobs/job/supervisor.dm index 2475df770b3..d0281c4b7c1 100644 --- a/code/game/jobs/job/supervisor.dm +++ b/code/game/jobs/job/supervisor.dm @@ -174,10 +174,10 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) if(H.backbag == 1) H.equip_or_collect(new /obj/item/weapon/storage/box/deathimp(H), slot_r_hand) - H.equip_or_collect(new /obj/item/weapon/gun/energy/blueshield(H), slot_l_hand) + H.equip_or_collect(new /obj/item/weapon/gun/energy/gun/blueshield(H), slot_l_hand) else H.equip_or_collect(new /obj/item/weapon/storage/box/deathimp(H.back), slot_in_backpack) - H.equip_or_collect(new /obj/item/weapon/gun/energy/blueshield(H.back), slot_in_backpack) + H.equip_or_collect(new /obj/item/weapon/gun/energy/gun/blueshield(H.back), slot_in_backpack) var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) L.imp_in = H L.implanted = 1 @@ -263,4 +263,4 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) L.imp_in = H L.implanted = 1 H.sec_hud_set_implants() - return 1 \ No newline at end of file + return 1 diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index 7378cae2b85..e2d87ddf9c8 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -99,12 +99,12 @@ one_access = 0 /obj/machinery/porta_turret/proc/setup() - var/obj/item/weapon/gun/energy/E = installation //All energy-based weapons are applicable + var/obj/item/weapon/gun/energy/E= new installation //All energy-based weapons are applicable var/obj/item/ammo_casing/shottype = E.ammo_type[1] projectile = shottype.projectile_type eprojectile = projectile - shot_sound = initial(E.fire_sound) + shot_sound = shottype.fire_sound eshot_sound = shot_sound weapon_setup(installation) diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index f79c43068ee..05b3dac0e63 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -384,7 +384,7 @@ /obj/item/mecha_parts/mecha_equipment/tool/syringe_gun name = "Syringe Gun" desc = "Exosuit-mounted chem synthesizer with syringe gun. Reagents inside are held in stasis, so no reactions will occur. (Can be attached to: Medical Exosuits)" - icon = 'icons/obj/gun.dmi' + icon = 'icons/obj/guns/projectile.dmi' icon_state = "syringegun" item_state = "syringegun" lefthand_file = 'icons/mob/inhands/guns_lefthand.dmi' @@ -666,4 +666,4 @@ for(var/reagent in S.processed_reagents) S.reagents.add_reagent(reagent,amount) S.chassis.use_power(energy_drain) - return 1 \ No newline at end of file + return 1 diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 25ade73eb38..f2f07174ec5 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -1318,7 +1318,7 @@ obj/item/toy/cards/deck/syndicate/black /obj/item/toy/russian_revolver name = "russian revolver" desc = "for fun and games!" - icon = 'icons/obj/gun.dmi' + icon = 'icons/obj/guns/projectile.dmi' icon_state = "detective_gold" item_state = "gun" lefthand_file = 'icons/mob/inhands/guns_lefthand.dmi' diff --git a/code/game/response_team.dm b/code/game/response_team.dm index 241e317c24b..bfed4a30f0b 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -532,7 +532,7 @@ var/send_emergency_team M.equip_to_slot_or_del(new /obj/item/weapon/rcd_ammo/large(M), slot_in_backpack) M.equip_to_slot_or_del(new /obj/item/weapon/rcd_ammo/large(M), slot_in_backpack) M.equip_to_slot_or_del(new /obj/item/weapon/rcd_ammo/large(M), slot_in_backpack) - M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse_rifle/pistol(M), slot_in_backpack) + M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol(M), slot_in_backpack) M.equip_to_slot_or_del(new /obj/item/device/t_scanner/extended_range(M), slot_l_store) M.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(M), slot_r_store) @@ -553,7 +553,7 @@ var/send_emergency_team M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/flashbangs(M), slot_in_backpack) M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/ionrifle/carbine(M), slot_in_backpack) - M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse_rifle/carbine(M), slot_r_hand) + M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/carbine(M), slot_r_hand) if("Medic") M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes) @@ -566,7 +566,7 @@ var/send_emergency_team M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/ert/medical(M), slot_in_backpack) M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer/swat(M), slot_in_backpack) M.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/surgery(M), slot_in_backpack) - M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse_rifle/pistol(M), slot_in_backpack) + M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol(M), slot_in_backpack) M.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/hypospray/combat/nanites(src), slot_l_store) M.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(M), slot_r_store) @@ -585,7 +585,7 @@ var/send_emergency_team M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer/swat(M), slot_in_backpack) M.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(M), slot_in_backpack) M.equip_to_slot_or_del(new /obj/item/weapon/storage/lockbox/loyalty(M), slot_in_backpack) - M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse_rifle/pistol(M), slot_in_backpack) + M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol(M), slot_in_backpack) M.equip_to_slot_or_del(new /obj/item/weapon/pinpointer(M), slot_l_store) M.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(M), slot_r_store) @@ -610,4 +610,4 @@ var/send_emergency_team new /obj/item/device/radio/centcom( src ) new /obj/item/weapon/reagent_containers/food/pill/salicylic( src ) new /obj/item/weapon/reagent_containers/food/pill/patch/synthflesh( src ) - return \ No newline at end of file + return diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 090955de57a..dc7cc24d6b7 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2483,7 +2483,7 @@ 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 - W.icon = 'icons/obj/gun.dmi' + W.icon = 'icons/obj/guns/projectile.dmi' W.icon_state = "revolver" W.item_state = "gun" message_admins("[key_name_admin(usr)] made every item look like a gun") diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 6b3c78cf954..e02ac49b821 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -690,7 +690,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(M), slot_wear_suit) M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/thunderdome(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse_rifle/destroyer(M), slot_r_hand) + M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/destroyer(M), slot_r_hand) M.equip_to_slot_or_del(new /obj/item/weapon/kitchen/knife(M), slot_l_hand) M.equip_to_slot_or_del(new /obj/item/weapon/grenade/smokebomb(M), slot_r_store) @@ -881,7 +881,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_or_collect(pda, slot_r_store) M.equip_or_collect(new /obj/item/clothing/glasses/sunglasses(M), slot_l_store) - M.equip_or_collect(new /obj/item/weapon/gun/energy/pulse_rifle/pistol(M), slot_belt) + M.equip_or_collect(new /obj/item/weapon/gun/energy/pulse/pistol(M), slot_belt) var/obj/item/weapon/card/id/centcom/W = new(M) W.name = "[M.real_name]'s ID Card (Nanotrasen Navy Officer)" @@ -904,7 +904,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_or_collect(pda, slot_r_store) M.equip_or_collect(new /obj/item/clothing/glasses/sunglasses(M), slot_l_store) - M.equip_or_collect(new /obj/item/weapon/gun/energy/pulse_rifle/pistol(M), slot_belt) + M.equip_or_collect(new /obj/item/weapon/gun/energy/pulse/pistol(M), slot_belt) var/obj/item/weapon/card/id/centcom/W = new(M) W.name = "[M.real_name]'s ID Card (Nanotrasen Navy Captain)" @@ -967,7 +967,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/cyber(M), slot_glasses) M.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar/cohiba(M), slot_wear_mask) M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/deathsquad/beret(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse_rifle/pistol/m1911(M), slot_belt) + M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol/m1911(M), slot_belt) M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/matches(M), slot_r_store) M.equip_to_slot_or_del(new /obj/item/weapon/twohanded/dualsaber/red(M), slot_l_store) @@ -996,7 +996,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/deathsquad/beret(M), slot_head) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/cyber(M), slot_glasses) M.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar/cohiba(M), slot_wear_mask) - M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse_rifle/pistol/m1911(M), slot_belt) + M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol/m1911(M), slot_belt) M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back) M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/matches(M), slot_r_store) M.equip_or_collect(new /obj/item/weapon/melee/classic_baton/telescopic(M), slot_l_store) @@ -1233,4 +1233,4 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that assets.register() // Clear the user's cache so they get resent. - usr.client.cache = list() \ No newline at end of file + usr.client.cache = list() diff --git a/code/modules/admin/verbs/striketeam.dm b/code/modules/admin/verbs/striketeam.dm index a5b98bc888c..142bb8203cd 100644 --- a/code/modules/admin/verbs/striketeam.dm +++ b/code/modules/admin/verbs/striketeam.dm @@ -154,7 +154,7 @@ var/global/sent_strike_team = 0 equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen/double/full(src), slot_s_store) equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/revolver/mateba(src), slot_belt) - equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse_rifle(src), slot_r_hand) + equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse(src), slot_r_hand) var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(src)//Here you go Deuryn @@ -170,4 +170,4 @@ var/global/sent_strike_team = 0 W.registered_name = real_name equip_to_slot_or_del(W, slot_wear_id) - return 1 \ No newline at end of file + return 1 diff --git a/code/modules/awaymissions/mission_code/stationCollision.dm b/code/modules/awaymissions/mission_code/stationCollision.dm index 0adf55229e0..682e2137d2a 100644 --- a/code/modules/awaymissions/mission_code/stationCollision.dm +++ b/code/modules/awaymissions/mission_code/stationCollision.dm @@ -61,10 +61,8 @@ */ //Captain's retro laser - Fires practice laser shots instead. obj/item/weapon/gun/energy/laser/retro/sc_retro - name ="retro laser" - icon_state = "retro" desc = "An older model of the basic lasergun, no longer used by Nanotrasen's security or military forces." -// projectile_type = "/obj/item/projectile/practice" + ammo_type = list(/obj/item/ammo_casing/energy/laser/practice) clumsy_check = 0 //No sense in having a harmless gun blow up in the clowns face //Syndicate sub-machine guns. @@ -196,4 +194,4 @@ var/sc_safecode5 = "[rand(0,9)]" return /obj/singularity/narsie/sc_Narsie/ex_act() - return \ No newline at end of file + return diff --git a/code/modules/clothing/spacesuits/ert.dm b/code/modules/clothing/spacesuits/ert.dm index 4015f107e51..9130871439c 100644 --- a/code/modules/clothing/spacesuits/ert.dm +++ b/code/modules/clothing/spacesuits/ert.dm @@ -34,7 +34,7 @@ armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 100, rad = 60) allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank, /obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/crowbar, \ /obj/item/weapon/screwdriver, /obj/item/weapon/weldingtool, /obj/item/weapon/wirecutters, /obj/item/weapon/wrench, /obj/item/device/multitool, \ - /obj/item/device/radio, /obj/item/device/analyzer, /obj/item/weapon/gun/energy/laser, /obj/item/weapon/gun/energy/pulse_rifle, \ + /obj/item/device/radio, /obj/item/device/analyzer, /obj/item/weapon/gun/energy/laser, /obj/item/weapon/gun/energy/pulse, \ /obj/item/weapon/gun/energy/advtaser, /obj/item/weapon/melee/baton, /obj/item/weapon/gun/energy/gun) strip_delay = 130 @@ -121,4 +121,4 @@ /obj/item/clothing/suit/space/rig/ert/paranormal/New() ..() - new /obj/item/weapon/nullrod(src) \ No newline at end of file + new /obj/item/weapon/nullrod(src) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index c4088d9a53f..45ef929967a 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -695,7 +695,7 @@ var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/ite halitem.layer = 50 switch(rand(1,6)) if(1) //revolver - halitem.icon = 'icons/obj/gun.dmi' + halitem.icon = 'icons/obj/guns/projectile.dmi' halitem.icon_state = "revolver" halitem.name = "Revolver" if(2) //c4 @@ -780,4 +780,4 @@ var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/ite if(client) client.images += halbody spawn(rand(50,80)) //Only seen for a brief moment. if(client) client.images -= halbody - halbody = null \ No newline at end of file + halbody = null diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index c30e02f5881..3a935e5e449 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -27,7 +27,7 @@ emp_act P.current = curloc P.yo = new_y - curloc.y P.xo = new_x - curloc.x - P.Angle = ""//round(Get_Angle(P,P.original)) + P.Angle = null return -1 // complete projectile permutation diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 12030e52773..7fb1ba0a8aa 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -337,7 +337,7 @@ src.modules += new /obj/item/device/flash/cyborg(src) src.modules += new /obj/item/borg/sight/thermal(src) src.modules += new /obj/item/weapon/melee/energy/sword/cyborg(src) - src.modules += new /obj/item/weapon/gun/energy/pulse_rifle/cyborg(src) + src.modules += new /obj/item/weapon/gun/energy/pulse/cyborg(src) src.modules += new /obj/item/weapon/tank/jetpack/carbondioxide(src) src.modules += new /obj/item/weapon/crowbar(src) src.emag = null diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm index 980e9fb16bc..205d9668188 100644 --- a/code/modules/projectiles/ammunition/ammo_casings.dm +++ b/code/modules/projectiles/ammunition/ammo_casings.dm @@ -292,7 +292,7 @@ desc = "It's nerf or nothing! Ages 8 and up." projectile_type = /obj/item/projectile/bullet/reusable/foam_dart caliber = "foam_force" - icon = 'icons/obj/toyguns.dmi' + icon = 'icons/obj/guns/toy.dmi' icon_state = "foamdart" var/modified = 0 diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index 3a82a0b625e..894b5ac25b1 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -93,7 +93,7 @@ //FOAM DARTS /obj/item/ammo_box/foambox name = "ammo box (Foam Darts)" - icon = 'icons/obj/toyguns.dmi' + icon = 'icons/obj/guns/toy.dmi' icon_state = "foambox" ammo_type = /obj/item/ammo_casing/caseless/foam_dart max_ammo = 40 diff --git a/code/modules/projectiles/ammunition/energy.dm b/code/modules/projectiles/ammunition/energy.dm index 4fc5295e8ae..082feef351e 100644 --- a/code/modules/projectiles/ammunition/energy.dm +++ b/code/modules/projectiles/ammunition/energy.dm @@ -25,7 +25,7 @@ /obj/item/ammo_casing/energy/laser/scatter projectile_type = /obj/item/projectile/beam/scatter pellets = 5 - variance = 0.8 + variance = 25 select_name = "scatter" /obj/item/ammo_casing/energy/laser/heavy @@ -216,7 +216,7 @@ projectile_type = /obj/item/projectile/beam/sniper fire_sound = 'sound/weapons/marauder.ogg' delay = 50 - select_name = "sniper beam" + select_name = "snipe" /obj/item/ammo_casing/energy/teleport projectile_type = /obj/item/projectile/energy/teleport diff --git a/code/modules/projectiles/firing.dm b/code/modules/projectiles/firing.dm index c17a7948fcb..813edec4c30 100644 --- a/code/modules/projectiles/firing.dm +++ b/code/modules/projectiles/firing.dm @@ -1,4 +1,4 @@ -/obj/item/ammo_casing/proc/fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, params, distro, quiet, zone_override = "",spread) +/obj/item/ammo_casing/proc/fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, params, distro, quiet, zone_override = "", spread) distro += variance for (var/i = max(1, pellets), i > 0, i--) var/targloc = get_turf(target) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 8233a172af8..eb135b6e0b9 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -1,7 +1,7 @@ /obj/item/weapon/gun name = "gun" desc = "It's a gun. It's pretty terrible, though." - icon = 'icons/obj/gun.dmi' + icon = 'icons/obj/guns/projectile.dmi' icon_state = "detective" item_state = "gun" flags = CONDUCT @@ -182,7 +182,12 @@ obj/item/weapon/gun/proc/newshot() if( i>1 && !(src in get_both_hands(user))) //for burst firing break if(chambered) - if(!chambered.fire(target, user, params, , suppressed, zone_override)) + var/sprd = 0 + if(randomspread) + sprd = round((rand() - 0.5) * spread) + else + sprd = round((i / burst_size - 0.5) * spread) + if(!chambered.fire(target, user, params, suppressed, zone_override, sprd)) shoot_with_empty_chamber(user) break else diff --git a/code/modules/projectiles/guns/alien.dm b/code/modules/projectiles/guns/alien.dm index a503e92dd6b..0cb6e4034d2 100644 --- a/code/modules/projectiles/guns/alien.dm +++ b/code/modules/projectiles/guns/alien.dm @@ -3,14 +3,12 @@ name = "alien heavy cannon" desc = "It's some kind of enormous alien weapon, as long as a man is tall." - icon = 'icons/obj/gun.dmi' //Actual on-sprite is handled by icon_override. icon_state = "noisecannon" item_state = "noisecannon" recoil = 1 force = 10 - ammo_type = "/obj/item/projectile/energy/sonic" + ammo_type = list(/obj/item/ammo_casing/energy/sonic) cell_type = "/obj/item/weapon/stock_parts/cell/super" - fire_sound = 'sound/effects/basscannon.ogg' /obj/item/weapon/gun/energy/noisecannon/attack_hand(mob/user as mob) if(loc != user) diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 32c3009f312..b699cfe104c 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -2,7 +2,7 @@ icon_state = "energy" name = "energy gun" desc = "A basic energy-based gun." - fire_sound = 'sound/weapons/Taser.ogg' + icon = 'icons/obj/guns/energy.dmi' fire_sound_text = "laser blast" var/obj/item/weapon/stock_parts/cell/power_supply //What type of power cell this uses diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index ff9ef57a322..511fc3eee59 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -1,7 +1,7 @@ /obj/item/weapon/gun/energy/gun name = "energy gun" desc = "A basic energy-based gun with two settings: kill and disable." - icon_state = "energystun100" + icon_state = "energy" item_state = null //so the human update icon uses the icon_state instead. ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser) origin_tech = "combat=3;magnets=2" @@ -37,10 +37,10 @@ can_flashlight = 0 // Can't attach or detach the flashlight, and override it's icon update /obj/item/weapon/gun/energy/gun/mini/New() - power_supply.maxcharge = 6000 - power_supply.charge = 6000 F = new /obj/item/device/flashlight/seclite(src) ..() + power_supply.maxcharge = 6000 + power_supply.charge = 6000 /obj/item/weapon/gun/energy/gun/mini/update_icon() ..() @@ -55,10 +55,10 @@ ammo_type = list(/obj/item/ammo_casing/energy/electrode/hos, /obj/item/ammo_casing/energy/laser/hos, /obj/item/ammo_casing/energy/disabler) ammo_x_offset = 4 -/obj/item/weapon/gun/energy/blueshield +/obj/item/weapon/gun/energy/gun/blueshield name = "advanced stun revolver" desc = "An advanced stun revolver with the capacity to shoot both electrodes and lasers." - icon_state = "bsgun_stun" + icon_state = "bsgun" force = 7 ammo_type = list(/obj/item/ammo_casing/energy/electrode/hos, /obj/item/ammo_casing/energy/laser/hos) ammo_x_offset = 4 diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index 0587040afe4..6b398426e4e 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -16,13 +16,13 @@ /obj/item/weapon/gun/energy/pulse/isHandgun() return 0 -/obj/item/weapon/gun/energy/pulse_rifle/cyborg +/obj/item/weapon/gun/energy/pulse/cyborg -/obj/item/weapon/gun/energy/pulse_rifle/cyborg/newshot() +/obj/item/weapon/gun/energy/pulse/cyborg/newshot() ..() robocharge() -/obj/item/weapon/gun/energy/pulse_rifle/carbine +/obj/item/weapon/gun/energy/pulse/carbine name = "pulse carbine" desc = "A compact variant of the pulse rifle with less firepower but easier storage." w_class = 3 @@ -34,7 +34,7 @@ flight_x_offset = 18 flight_y_offset = 12 -/obj/item/weapon/gun/energy/pulse_rifle/pistol +/obj/item/weapon/gun/energy/pulse/pistol name = "pulse pistol" desc = "A pulse rifle in an easily concealed handgun package with low capacity." w_class = 2 @@ -44,10 +44,10 @@ cell_type = "/obj/item/weapon/stock_parts/cell/pulse/pistol" can_charge = 0 -/obj/item/weapon/gun/energy/pulse_rifle/pistol/isHandgun() +/obj/item/weapon/gun/energy/pulse/pistol/isHandgun() return 1 -/obj/item/weapon/gun/energy/pulse_rifle/destroyer +/obj/item/weapon/gun/energy/pulse/destroyer name = "pulse destroyer" desc = "A heavy-duty, pulse-based energy weapon." cell_type = "/obj/item/weapon/stock_parts/cell/infinite" @@ -56,12 +56,17 @@ /obj/item/weapon/gun/energy/pulse/destroyer/attack_self(mob/living/user) to_chat(user, "[name] has three settings, and they are all DESTROY.") -/obj/item/weapon/gun/energy/pulse_rifle/pistol/m1911 +/obj/item/weapon/gun/energy/pulse/destroyer/annihilator + name = "pulse ANNIHILATOR" + desc = "For when the situation calls for a little more than a pulse destroyer." + ammo_type = list(/obj/item/ammo_casing/energy/laser/scatter/pulse) + +/obj/item/weapon/gun/energy/pulse/pistol/m1911 name = "\improper M1911-P" desc = "A compact pulse core in a classic handgun frame for Nanotrasen officers. It's not the size of the gun, it's the size of the hole it puts through people." icon_state = "m1911-p" item_state = "gun" cell_type = "/obj/item/weapon/stock_parts/cell/infinite" -/obj/item/weapon/gun/energy/pulse_rifle/pistol/m1911/isHandgun() +/obj/item/weapon/gun/energy/pulse/pistol/m1911/isHandgun() return 1 diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 949e0ef7d7d..47adcd9a946 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -45,7 +45,7 @@ /obj/item/weapon/gun/energy/floragun name = "floral somatoray" desc = "A tool that discharges controlled radiation which induces mutation in plant cells." - icon_state = "floramut100" + icon_state = "flora" item_state = "gun" fire_sound = 'sound/effects/stealthoff.ogg' ammo_type = list(/obj/item/ammo_casing/energy/flora/yield, /obj/item/ammo_casing/energy/flora/mut) @@ -57,6 +57,7 @@ /obj/item/weapon/gun/energy/meteorgun name = "meteor gun" desc = "For the love of god, make sure you're aiming this the right way!" + icon = 'icons/obj/guns/projectile.dmi' icon_state = "riotgun" item_state = "c20r" w_class = 4 @@ -320,7 +321,7 @@ name = "cyborg lmg" desc = "A machinegun that fires 3d-printed flachettes slowly regenerated using a cyborg's internal power source." icon_state = "l6closed0" - icon = 'icons/obj/gun.dmi' + icon = 'icons/obj/guns/projectile.dmi' cell_type = "/obj/item/weapon/stock_parts/cell/secborg" ammo_type = list(/obj/item/ammo_casing/energy/c3dbullet) can_charge = 0 @@ -370,7 +371,7 @@ obj/item/weapon/gun/energy/staff/focus /obj/item/weapon/gun/energy/clown name = "HONK Rifle" desc = "Clown Planet's finest." - icon_state = "energy" + icon_state = "disabler" ammo_type = list(/obj/item/ammo_casing/energy/clown) clumsy_check = 0 @@ -386,9 +387,7 @@ obj/item/weapon/gun/energy/staff/focus /obj/item/weapon/gun/energy/sniperrifle name = "L.W.A.P. Sniper Rifle" desc = "A rifle constructed of lightweight materials, fitted with a SMART aiming-system scope." - icon = 'icons/obj/gun.dmi' icon_state = "esniper" - fire_sound = 'sound/weapons/marauder.ogg' origin_tech = "combat=6;materials=5;powerstorage=4" ammo_type = list(/obj/item/ammo_casing/energy/sniper) slot_flags = SLOT_BACK @@ -398,7 +397,7 @@ obj/item/weapon/gun/energy/staff/focus /obj/item/weapon/gun/energy/temperature name = "temperature gun" - icon = 'icons/obj/gun_temperature.dmi' + icon = 'icons/obj/guns/gun_temperature.dmi' icon_state = "tempgun_4" item_state = "tempgun_4" slot_flags = SLOT_BACK diff --git a/code/modules/projectiles/guns/grenade_launcher.dm b/code/modules/projectiles/guns/grenade_launcher.dm index 7af9c18ea7d..5abac9ebad9 100644 --- a/code/modules/projectiles/guns/grenade_launcher.dm +++ b/code/modules/projectiles/guns/grenade_launcher.dm @@ -1,7 +1,7 @@ /obj/item/weapon/gun/grenadelauncher name = "grenade launcher" desc = "a terrible, terrible thing. it's really awful!" - icon = 'icons/obj/gun.dmi' + icon = 'icons/obj/guns/projectile.dmi' icon_state = "riotgun" item_state = "riotgun" w_class = 4 diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index 299c87b536f..3de33a805fe 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -1,10 +1,9 @@ /obj/item/weapon/gun/magic name = "staff of nothing" desc = "This staff is boring to watch because even though it came first you've seen everything it can do in other staves for years." - icon = 'icons/obj/gun.dmi' + icon = 'icons/obj/guns/magic.dmi' icon_state = "staffofnothing" item_state = "staff" - fire_sound = 'sound/weapons/emitter.ogg' fire_sound_text = "energy blast" flags = CONDUCT w_class = 5 diff --git a/code/modules/projectiles/guns/mounted.dm b/code/modules/projectiles/guns/mounted.dm index 592908a6b87..d40b51fa607 100644 --- a/code/modules/projectiles/guns/mounted.dm +++ b/code/modules/projectiles/guns/mounted.dm @@ -1,8 +1,8 @@ -/obj/item/weapon/gun/energy/advtaser/mounted +/obj/item/weapon/gun/energy/gun/advtaser/mounted name = "mounted taser" desc = "An arm mounted dual-mode weapon that fires electrodes and disabler shots." - icon_state = "taser" - item_state = "armcannonstun4" + icon_state = "armcannon" + item_state = "armcannon" force = 5 flags = NODROP w_class = 5 @@ -10,14 +10,14 @@ selfcharge = 1 trigger_guard = TRIGGER_GUARD_ALLOW_ALL // Has no trigger at all, uses neural signals instead -/obj/item/weapon/gun/energy/advtaser/mounted/dropped()//if somebody manages to drop this somehow... +/obj/item/weapon/gun/energy/gun/advtaser/mounted/dropped()//if somebody manages to drop this somehow... ..() loc = null//send it to nullspace to get retrieved by the implant later on. gotta cover those edge cases. /obj/item/weapon/gun/energy/laser/mounted name = "mounted laser" desc = "An arm mounted cannon that fires lethal lasers. Doesn't come with a charge beam." - icon_state = "laser" + icon_state = "armcannon" item_state = "armcannonlase" force = 5 flags = NODROP diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index 3fc01b0a5b5..a46bc9a276c 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -154,7 +154,7 @@ /obj/item/weapon/suppressor name = "suppressor" desc = "A universal syndicate small-arms suppressor for maximum espionage." - icon = 'icons/obj/gun.dmi' + icon = 'icons/obj/guns/projectile.dmi' icon_state = "suppressor" item_state = "suppressor" w_class = 2 @@ -164,5 +164,5 @@ /obj/item/weapon/suppressor/specialoffer name = "cheap suppressor" desc = "A foreign knock-off suppressor, it feels flimsy, cheap, and brittle. Still fits all weapons." - icon = 'icons/obj/gun.dmi' + icon = 'icons/obj/guns/projectile.dmi' icon_state = "suppressor" diff --git a/code/modules/projectiles/guns/projectile/rocket.dm b/code/modules/projectiles/guns/projectile/rocket.dm index b2d01b303ed..36608844b94 100644 --- a/code/modules/projectiles/guns/projectile/rocket.dm +++ b/code/modules/projectiles/guns/projectile/rocket.dm @@ -15,6 +15,7 @@ var/max_rockets = 1 var/list/rockets = new/list() + /obj/item/weapon/gun/rocketlauncher/examine(mob/user) if(..(user, 2)) to_chat(user, "[rockets.len] / [max_rockets] rockets.") @@ -24,6 +25,9 @@ qdel(D) rockets = null +/obj/item/weapon/gun/rocketlauncher/update_icon() + return + /obj/item/weapon/gun/rocketlauncher/attackby(obj/item/I as obj, mob/user as mob, params) if(istype(I, /obj/item/ammo_casing/rocket)) if(rockets.len < max_rockets) @@ -41,7 +45,7 @@ /obj/item/weapon/gun/rocketlauncher/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override = "") if(rockets.len) var/obj/item/ammo_casing/rocket/I = rockets[1] - var/obj/item/missile/M = new projectile(user.loc) + var/obj/item/missile/M = new /obj/item/missile(user.loc) playsound(user.loc, 'sound/effects/bang.ogg', 50, 1) M.primed = 1 M.throw_at(target, missile_range, missile_speed,user) diff --git a/code/modules/projectiles/guns/projectile/toy.dm b/code/modules/projectiles/guns/projectile/toy.dm index e533710b604..c0465a83beb 100644 --- a/code/modules/projectiles/guns/projectile/toy.dm +++ b/code/modules/projectiles/guns/projectile/toy.dm @@ -1,7 +1,7 @@ /obj/item/weapon/gun/projectile/automatic/toy name = "foam force SMG" desc = "A prototype three-round burst toy submachine gun. Ages 8 and up." - icon = 'icons/obj/toyguns.dmi' + icon = 'icons/obj/guns/toy.dmi' icon_state = "saber" item_state = "gun" mag_type = /obj/item/ammo_box/magazine/toy/smg @@ -44,7 +44,7 @@ /obj/item/weapon/gun/projectile/shotgun/toy name = "foam force shotgun" desc = "A toy shotgun with wood furniture and a four-shell capacity underneath. Ages 8 and up." - icon = 'icons/obj/toyguns.dmi' + icon = 'icons/obj/guns/toy.dmi' force = 0 throwforce = 0 origin_tech = null @@ -70,7 +70,7 @@ /obj/item/weapon/gun/projectile/automatic/c20r/toy name = "donksoft SMG" desc = "A bullpup two-round burst toy SMG, designated 'C-20r'. Ages 8 and up." - icon = 'icons/obj/toyguns.dmi' + icon = 'icons/obj/guns/toy.dmi' can_suppress = 0 needs_permit = 0 mag_type = /obj/item/ammo_box/magazine/toy/smgm45 @@ -81,7 +81,7 @@ /obj/item/weapon/gun/projectile/automatic/l6_saw/toy name = "donksoft LMG" desc = "A heavily modified toy light machine gun, designated 'L6 SAW'. Ages 8 and up." - icon = 'icons/obj/toyguns.dmi' + icon = 'icons/obj/guns/toy.dmi' can_suppress = 0 needs_permit = 0 mag_type = /obj/item/ammo_box/magazine/toy/m762 @@ -92,7 +92,7 @@ /obj/item/weapon/gun/projectile/shotgun/toy/tommygun name = "tommy gun" desc = "Looks almost like the real thing! Great for practicing Drive-bys. Ages 8 and up." - icon = 'icons/obj/gun.dmi' + icon = 'icons/obj/guns/projectile.dmi' icon_state = "tommy" item_state = "shotgun" mag_type = /obj/item/ammo_box/magazine/internal/shot/toy/tommygun diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 9816fa7a804..f8ea87b227b 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -107,16 +107,16 @@ var/distance = get_dist(get_turf(A), starting) // Get the distance between the turf shot from and the mob we hit and use that for the calculations. def_zone = ran_zone(def_zone, max(100-(7*distance), 5)) //Lower accurancy/longer range tradeoff. 7 is a balanced number to use. - if(ishuman(A)) - var/mob/living/carbon/human/H = A - var/obj/item/organ/external/organ = H.get_organ(check_zone(def_zone)) - if(isnull(organ)) - return - else if(isturf(A) && hitsound_wall) + if(isturf(A) && hitsound_wall) var/volume = Clamp(vol_by_damage() + 20, 0, 100) if(suppressed) volume = 5 playsound(loc, hitsound_wall, volume, 1, -1) + else if(ishuman(A)) + var/mob/living/carbon/human/H = A + var/obj/item/organ/external/organ = H.get_organ(check_zone(def_zone)) + if(isnull(organ)) + return var/turf/target_turf = get_turf(A) diff --git a/code/modules/projectiles/projectile/reusable.dm b/code/modules/projectiles/projectile/reusable.dm index 466a8ba8e99..12e7b30c759 100644 --- a/code/modules/projectiles/projectile/reusable.dm +++ b/code/modules/projectiles/projectile/reusable.dm @@ -30,7 +30,7 @@ damage = 0 // It's a damn toy. damage_type = OXY nodamage = 1 - icon = 'icons/obj/toyguns.dmi' + icon = 'icons/obj/guns/toy.dmi' icon_state = "foamdart" ammo_type = /obj/item/ammo_casing/caseless/foam_dart range = 10 diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index 56b4875002b..e9414888a50 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -103,7 +103,7 @@ /obj/item/projectile/meteor name = "meteor" icon = 'icons/obj/meteor.dmi' - icon_state = "smallf" + icon_state = "small" damage = 0 damage_type = BRUTE nodamage = 1 diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 32a0e752913..efc6a48b1f9 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -155,7 +155,7 @@ /obj/item/weapon/reagent_containers/spray/chemsprayer name = "chem sprayer" desc = "A utility used to spray large amounts of reagents in a given area." - icon = 'icons/obj/gun.dmi' + icon = 'icons/obj/guns/projectile.dmi' icon_state = "chemsprayer" item_state = "chemsprayer" throwforce = 0 @@ -234,4 +234,4 @@ if (istype(A, /obj/effect/blob)) // blob damage in blob code return - ..() \ No newline at end of file + ..() diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index a5af2caca3d..7eee7447da0 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -315,7 +315,7 @@ organ_action_name = "Toggle Arm Cannon Taser" /obj/item/organ/internal/cyberimp/chest/arm_mod/tase/New()//when the implant is created... - holder = new /obj/item/weapon/gun/energy/advtaser/mounted(src)//assign a brand new item to it. (in this case, a gun) + holder = new /obj/item/weapon/gun/energy/gun/advtaser/mounted(src)//assign a brand new item to it. (in this case, a gun) /obj/item/organ/internal/cyberimp/chest/arm_mod/lase//mounted, self-charging laser! name = "Arm-cannon laser implant" @@ -351,4 +351,4 @@ var/implant while(contents.len <= amount + 1) // +1 for the autoimplanter. implant = pick(boxed) - new implant(src) \ No newline at end of file + new implant(src) diff --git a/icons/mob/inhands/guns_lefthand.dmi b/icons/mob/inhands/guns_lefthand.dmi index 63fbda7a4bd..aeefc778615 100644 Binary files a/icons/mob/inhands/guns_lefthand.dmi and b/icons/mob/inhands/guns_lefthand.dmi differ diff --git a/icons/mob/inhands/guns_righthand.dmi b/icons/mob/inhands/guns_righthand.dmi index d8fada37744..392202c343d 100644 Binary files a/icons/mob/inhands/guns_righthand.dmi and b/icons/mob/inhands/guns_righthand.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 7e588ec2210..70ac286722c 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi deleted file mode 100644 index 45e4265c292..00000000000 Binary files a/icons/obj/gun.dmi and /dev/null differ diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi new file mode 100644 index 00000000000..cc0f4c61255 Binary files /dev/null and b/icons/obj/guns/energy.dmi differ diff --git a/icons/obj/gun_temperature.dmi b/icons/obj/guns/gun_temperature.dmi similarity index 100% rename from icons/obj/gun_temperature.dmi rename to icons/obj/guns/gun_temperature.dmi diff --git a/icons/obj/guns/magic.dmi b/icons/obj/guns/magic.dmi new file mode 100644 index 00000000000..2f3fc52957a Binary files /dev/null and b/icons/obj/guns/magic.dmi differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi new file mode 100644 index 00000000000..3a026057f86 Binary files /dev/null and b/icons/obj/guns/projectile.dmi differ diff --git a/icons/obj/toyguns.dmi b/icons/obj/guns/toy.dmi similarity index 81% rename from icons/obj/toyguns.dmi rename to icons/obj/guns/toy.dmi index bd2ff273a40..d05231e7718 100644 Binary files a/icons/obj/toyguns.dmi and b/icons/obj/guns/toy.dmi differ diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index 23ee204e96a..04cffbdfb8e 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi index 6e6d268c9bd..b7f40b4cdbb 100644 Binary files a/icons/obj/toy.dmi and b/icons/obj/toy.dmi differ