diff --git a/_maps/RandomRuins/SpaceRuins/hauntedtradingpost.dmm b/_maps/RandomRuins/SpaceRuins/hauntedtradingpost.dmm
index a13a217767d..87eabe4cad1 100644
--- a/_maps/RandomRuins/SpaceRuins/hauntedtradingpost.dmm
+++ b/_maps/RandomRuins/SpaceRuins/hauntedtradingpost.dmm
@@ -2104,7 +2104,7 @@
/obj/structure/table/reinforced/plastitaniumglass,
/obj/effect/spawner/random/exotic/technology,
/obj/effect/mapping_helpers/apc/syndicate_access,
-/obj/item/gun/energy/laser/carbine/cybersun,
+/obj/item/gun/energy/laser/cybersun,
/obj/effect/mapping_helpers/apc/full_charge,
/obj/machinery/power/apc/auto_name/directional/south{
cable_layer = 1
diff --git a/_maps/RandomZLevels/caves.dmm b/_maps/RandomZLevels/caves.dmm
index c54bb699035..f3f34b78b3f 100644
--- a/_maps/RandomZLevels/caves.dmm
+++ b/_maps/RandomZLevels/caves.dmm
@@ -1190,7 +1190,7 @@
"yS" = (
/obj/structure/closet/crate,
/obj/item/paper/fluff/awaymissions/caves/shipment_receipt,
-/obj/item/gun/energy/laser,
+/obj/item/gun/energy/laser/soul,
/obj/item/slimepotion/fireproof,
/obj/item/slimepotion/fireproof,
/obj/item/clothing/glasses/thermal,
diff --git a/_maps/map_files/NebulaStation/NebulaStation.dmm b/_maps/map_files/NebulaStation/NebulaStation.dmm
index 854aa550d28..10e15e9a29d 100644
--- a/_maps/map_files/NebulaStation/NebulaStation.dmm
+++ b/_maps/map_files/NebulaStation/NebulaStation.dmm
@@ -95541,7 +95541,7 @@
/area/station/security/checkpoint/customs)
"oil" = (
/obj/structure/rack,
-/obj/effect/spawner/random/armory/laser_gun,
+/obj/effect/spawner/random/armory/pick_laser_loadout,
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark/textured_large,
diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm
index d43a33c38c3..2b6cad7636b 100644
--- a/_maps/map_files/tramstation/tramstation.dmm
+++ b/_maps/map_files/tramstation/tramstation.dmm
@@ -29533,7 +29533,7 @@
/obj/structure/window/reinforced/spawner/directional/west,
/obj/structure/window/reinforced/spawner/directional/east,
/obj/structure/cable,
-/obj/effect/spawner/random/armory/laser_gun,
+/obj/effect/spawner/random/armory/pick_laser_loadout,
/turf/open/floor/iron,
/area/station/security/armory)
"juV" = (
diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm
index bae907d9ba9..6b5d564c391 100644
--- a/_maps/map_files/wawastation/wawastation.dmm
+++ b/_maps/map_files/wawastation/wawastation.dmm
@@ -29618,7 +29618,7 @@
"kkC" = (
/obj/machinery/light/small/directional/east,
/obj/structure/rack,
-/obj/effect/spawner/random/armory/laser_gun,
+/obj/effect/spawner/random/armory/pick_laser_loadout,
/obj/effect/turf_decal/tile/red/half/contrasted{
dir = 8
},
diff --git a/_maps/minigame/deathmatch/arena_station.dmm b/_maps/minigame/deathmatch/arena_station.dmm
index c3fb3ed3903..3252ca085dd 100644
--- a/_maps/minigame/deathmatch/arena_station.dmm
+++ b/_maps/minigame/deathmatch/arena_station.dmm
@@ -930,7 +930,7 @@
/area/deathmatch)
"LY" = (
/obj/structure/closet/secure_closet,
-/obj/item/gun/energy/xray,
+/obj/item/gun/energy/laser/xray,
/turf/open/indestructible/vault,
/area/deathmatch)
"Mc" = (
diff --git a/_maps/shuttles/pirate_default.dmm b/_maps/shuttles/pirate_default.dmm
index 978be5b4215..9b6f60d16a7 100644
--- a/_maps/shuttles/pirate_default.dmm
+++ b/_maps/shuttles/pirate_default.dmm
@@ -14,11 +14,11 @@
/obj/structure/table,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/recharger,
-/obj/item/gun/energy/laser{
+/obj/item/gun/energy/laser/soul{
pixel_x = -3;
pixel_y = 6
},
-/obj/item/gun/energy/laser{
+/obj/item/gun/energy/laser/soul{
pixel_y = 3
},
/obj/effect/turf_decal/tile/red/anticorner/contrasted{
diff --git a/_maps/shuttles/pirate_dutchman.dmm b/_maps/shuttles/pirate_dutchman.dmm
index a00fff6e7e9..0b50a136b41 100644
--- a/_maps/shuttles/pirate_dutchman.dmm
+++ b/_maps/shuttles/pirate_dutchman.dmm
@@ -931,7 +931,7 @@
/obj/item/restraints/legcuffs/bola,
/obj/item/restraints/legcuffs/bola,
/obj/item/restraints/legcuffs/bola,
-/obj/item/gun/energy/laser,
+/obj/item/gun/energy/laser/soul,
/obj/item/megaphone,
/obj/item/melee/chainofcommand/tailwhip/kitty,
/obj/item/claymore/cutlass,
diff --git a/_maps/shuttles/ruin_pirate_cutter.dmm b/_maps/shuttles/ruin_pirate_cutter.dmm
index a45eb013430..6422f2159b6 100644
--- a/_maps/shuttles/ruin_pirate_cutter.dmm
+++ b/_maps/shuttles/ruin_pirate_cutter.dmm
@@ -553,7 +553,7 @@
/obj/machinery/door/window/right/directional/south{
name = "Weapon Storage"
},
-/obj/item/gun/energy/laser,
+/obj/item/gun/energy/laser/soul,
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/dark,
/area/shuttle/ruin/caravan/pirate)
diff --git a/_maps/virtual_domains/xeno_nest.dmm b/_maps/virtual_domains/xeno_nest.dmm
index 895ba5e84c3..0e6cf4a740f 100644
--- a/_maps/virtual_domains/xeno_nest.dmm
+++ b/_maps/virtual_domains/xeno_nest.dmm
@@ -141,7 +141,7 @@
/area/virtual_domain/fullbright)
"F" = (
/obj/structure/table/greyscale,
-/obj/item/gun/energy/xray,
+/obj/item/gun/energy/laser/xray,
/obj/item/gun/energy/laser{
pixel_x = 4;
pixel_y = -6
diff --git a/code/datums/components/crafting/ranged_weapon.dm b/code/datums/components/crafting/ranged_weapon.dm
index 2a95cf32ce2..0c969659865 100644
--- a/code/datums/components/crafting/ranged_weapon.dm
+++ b/code/datums/components/crafting/ranged_weapon.dm
@@ -110,7 +110,7 @@
/datum/crafting_recipe/xraylaser
name = "X-ray Laser Gun"
- result = /obj/item/gun/energy/xray
+ result = /obj/item/gun/energy/laser/xray
reqs = list(
/obj/item/gun/energy/laser = 1,
/obj/item/weaponcrafting/gunkit/xray = 1,
diff --git a/code/datums/storage/subtypes/holsters.dm b/code/datums/storage/subtypes/holsters.dm
index e82007fea71..fd0ee9f5040 100644
--- a/code/datums/storage/subtypes/holsters.dm
+++ b/code/datums/storage/subtypes/holsters.dm
@@ -19,6 +19,7 @@
/obj/item/gun/energy/dueling,
/obj/item/food/grown/banana,
/obj/item/gun/energy/laser/thermal,
+ /obj/item/gun/energy/laser/pistol,
/obj/item/gun/ballistic/rifle/boltaction, //fits if you make it an obrez
/obj/item/gun/energy/laser/captain,
/obj/item/gun/energy/e_gun/hos,
@@ -37,6 +38,7 @@
/obj/item/gun/energy/laser/thermal,
/obj/item/gun/energy/recharge/ebow,
/obj/item/gun/energy/laser/captain,
+ /obj/item/gun/energy/laser/pistol,
/obj/item/gun/energy/e_gun/hos,
)
@@ -62,6 +64,7 @@
/obj/item/gun/energy/dueling,
/obj/item/gun/energy/laser/thermal,
/obj/item/gun/energy/laser/captain,
+ /obj/item/gun/energy/laser/pistol,
/obj/item/gun/energy/e_gun/hos,
/obj/item/gun/ballistic/rifle/boltaction, //fits if you make it an obrez
)
@@ -89,6 +92,7 @@
/obj/item/gun/energy/disabler,
/obj/item/gun/energy/dueling,
/obj/item/gun/energy/laser/captain,
+ /obj/item/gun/energy/laser/pistol,
/obj/item/gun/energy/e_gun/hos,
)
diff --git a/code/game/objects/effects/spawners/random/armory.dm b/code/game/objects/effects/spawners/random/armory.dm
index d4a14240539..3661a510ad0 100644
--- a/code/game/objects/effects/spawners/random/armory.dm
+++ b/code/game/objects/effects/spawners/random/armory.dm
@@ -62,6 +62,33 @@
icon_state = "laser_gun"
loot = list(/obj/item/gun/energy/laser)
+/obj/effect/spawner/random/armory/laser_pistol
+ name = "laser pistol spawner"
+ icon_state = "laser_gun"
+ spawn_loot_count = 6
+ loot = list(/obj/item/gun/energy/laser/pistol)
+
+/obj/effect/spawner/random/armory/laser_carbine
+ name = "laser_carbine spawner"
+ icon_state = "laser_gun"
+ loot = list(/obj/item/gun/energy/laser/carbine)
+
+/obj/effect/spawner/random/armory/assault_laser
+ name = "assault laser gun spawner"
+ icon_state = "laser_gun"
+ spawn_loot_count = 1
+ loot = list(/obj/item/gun/energy/laser/assault)
+
+/obj/effect/spawner/random/armory/pick_laser_loadout
+ name = "laser gun type randomizer"
+ icon_state = "laser_gun"
+ spawn_loot_count = 1
+ loot = list(
+ /obj/effect/spawner/random/armory/laser_gun = 30,
+ /obj/effect/spawner/random/armory/laser_carbine = 30,
+ /obj/effect/spawner/random/armory/laser_pistol = 10,
+ )
+
/obj/effect/spawner/random/armory/e_gun
name = "energy gun spawner"
icon_state = "e_gun"
diff --git a/code/game/objects/items/shooting_range.dm b/code/game/objects/items/shooting_range.dm
index 8ed78cccc87..9dc2872588b 100644
--- a/code/game/objects/items/shooting_range.dm
+++ b/code/game/objects/items/shooting_range.dm
@@ -32,7 +32,7 @@
if(isnull(always_leave_marks))
always_leave_marks = typecacheof(list(
/obj/projectile/beam/practice,
- /obj/projectile/beam/laser/carbine/practice,
+ /obj/projectile/beam/laser/rapid/practice,
))
var/is_invalid_damage = hitting_projectile.damage_type != BRUTE && hitting_projectile.damage_type != BURN
diff --git a/code/game/objects/items/storage/holsters.dm b/code/game/objects/items/storage/holsters.dm
index 5f191ae60f0..a4f9a271c17 100644
--- a/code/game/objects/items/storage/holsters.dm
+++ b/code/game/objects/items/storage/holsters.dm
@@ -37,9 +37,13 @@
desc = "A rather plain pair of shoulder holsters with a bit of insulated padding inside. Designed to hold energy weaponry. A production stamp indicates that it was shipped with a disabler."
/obj/item/storage/belt/holster/energy/disabler/PopulateContents()
- generate_items_inside(list(
- /obj/item/gun/energy/disabler = 1,
- ),src)
+ new /obj/item/gun/energy/disabler(src)
+
+/obj/item/storage/belt/holster/energy/laser_pistol
+ desc = "A rather plain pair of shoulder holsters with a bit of insulated padding inside. Designed to hold energy weaponry. A production stamp indicates that it was shipped with a Type 5C laser pistol."
+
+/obj/item/storage/belt/holster/energy/laser_pistol/PopulateContents()
+ new /obj/item/gun/energy/laser/pistol(src)
/obj/item/storage/belt/holster/energy/smoothbore
desc = "A rather plain pair of shoulder holsters with a bit of insulated padding inside. Designed to hold energy weaponry. Seems it was meant to fit two smoothbores."
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 97e76f53a8a..e51e0cda307 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -307,7 +307,7 @@
new /obj/item/storage/box/firingpins(src)
new /obj/item/gun/energy/ionrifle(src)
for(var/i in 1 to 3)
- new /obj/item/gun/energy/laser/thermal(src)
+ new /obj/item/gun/energy/laser/pistol(src)
/obj/structure/closet/secure_closet/armory3/populate_contents_immediate()
for(var/i in 1 to 3)
diff --git a/code/game/objects/structures/mystery_box.dm b/code/game/objects/structures/mystery_box.dm
index 3b3a4d9a9d9..7b71200fb47 100644
--- a/code/game/objects/structures/mystery_box.dm
+++ b/code/game/objects/structures/mystery_box.dm
@@ -23,6 +23,9 @@ GLOBAL_LIST_INIT(mystery_box_guns, list(
/obj/item/gun/energy/e_gun,
/obj/item/gun/energy/e_gun/nuclear,
/obj/item/gun/energy/laser,
+ /obj/item/gun/energy/laser/soul,
+ /obj/item/gun/energy/laser/pistol,
+ /obj/item/gun/energy/laser/assault,
/obj/item/gun/energy/laser/hellgun,
/obj/item/gun/energy/laser/captain,
/obj/item/gun/energy/laser/scatter,
diff --git a/code/modules/capture_the_flag/ctf_equipment.dm b/code/modules/capture_the_flag/ctf_equipment.dm
index 6360f763678..92394051ef6 100644
--- a/code/modules/capture_the_flag/ctf_equipment.dm
+++ b/code/modules/capture_the_flag/ctf_equipment.dm
@@ -157,6 +157,9 @@
ammo_x_offset = 2
shaded_charge = FALSE
+/obj/item/gun/energy/laser/instakill/add_deep_lore()
+ return
+
/obj/item/gun/energy/laser/instakill/Initialize(mapload)
. = ..()
AddElement(/datum/element/empprotection, EMP_PROTECT_ALL)
diff --git a/code/modules/cargo/exports/weapons.dm b/code/modules/cargo/exports/weapons.dm
index 03928077325..198d1c185f4 100644
--- a/code/modules/cargo/exports/weapons.dm
+++ b/code/modules/cargo/exports/weapons.dm
@@ -26,6 +26,20 @@
cost = CARGO_CRATE_VALUE
unit_name = "laser gun"
export_types = list(/obj/item/gun/energy/laser)
+ exclude_types = list(
+ /obj/item/gun/energy/laser/pistol,
+ /obj/item/gun/energy/laser/assault,
+ )
+
+/datum/export/weapon/laser_pistol
+ cost = CARGO_CRATE_VALUE * 0.2
+ unit_name = "laser pistol"
+ export_types = list(/obj/item/gun/energy/laser/pistol)
+
+/datum/export/weapon/laser_assault
+ cost = CARGO_CRATE_VALUE * 10
+ unit_name = "assault laser gun"
+ export_types = list(/obj/item/gun/energy/laser/assault)
/datum/export/weapon/disabler
cost = CARGO_CRATE_VALUE * 0.5
diff --git a/code/modules/cargo/goodies.dm b/code/modules/cargo/goodies.dm
index bbf03abe584..a9a2c941b35 100644
--- a/code/modules/cargo/goodies.dm
+++ b/code/modules/cargo/goodies.dm
@@ -99,19 +99,33 @@
contains = list(/obj/item/gun/energy/e_gun)
/datum/supply_pack/goody/laser_single
- name = "Laser Gun Single-Pack"
- desc = "Contains one laser gun, the lethal workhorse of Nanotrasen security everywhere."
+ name = "Type 5 Laser Gun Single-Pack"
+ desc = "Contains one Type 5 laser gun, the lethal workhorse of Nanotrasen security everywhere."
cost = PAYCHECK_COMMAND * 6
access_view = ACCESS_WEAPONS
contains = list(/obj/item/gun/energy/laser)
/datum/supply_pack/goody/carbine_single
- name = "Laser Carbine Single_Pack"
- desc = "Contains one laser carbines, capable of rapidly firing weak lasers."
+ name = "Type 5R Laser Carbine Single_Pack"
+ desc = "Contains one laser carbine. Fires a rapid burst of slightly weaker laser projectiles."
cost = PAYCHECK_COMMAND * 8
access_view = ACCESS_WEAPONS
contains = list(/obj/item/gun/energy/laser/carbine)
+/datum/supply_pack/goody/laser_pistol_single
+ name = "Type 5C Laser Pistol Single-Pack"
+ desc = "Contains one Type 5C laser pistol in an energy shoulder holster. Groovy."
+ cost = PAYCHECK_COMMAND * 2
+ access_view = ACCESS_WEAPONS
+ contains = list(/obj/item/storage/belt/holster/energy/laser_pistol)
+
+/datum/supply_pack/goody/laser_single_soul
+ name = "Type 3 Laser Gun Single-Pack"
+ desc = "Contains one Type 3 laser gun. They don't make 'em like they used to."
+ cost = PAYCHECK_COMMAND * 6
+ access_view = ACCESS_WEAPONS
+ contains = list(/obj/item/gun/energy/laser/soul)
+
/datum/supply_pack/goody/smg_single
name = "Disabler SMG Single_Pack"
desc = "Contains one disabler SMGs, capable of rapidly firing weak disabler beams."
diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm
index 41942e1ba47..48ffd674de8 100644
--- a/code/modules/cargo/packs/security.dm
+++ b/code/modules/cargo/packs/security.dm
@@ -241,19 +241,20 @@
crate_type = /obj/structure/closet/crate/secure/plasma
/datum/supply_pack/security/armory/laser
- name = "Lasers Crate"
- desc = "Contains three lethal, high-energy laser guns."
+ name = "Type 5 Laser Gun Crate"
+ desc = "Contains three Type 5 laser guns, developed by Nanotrasen. For when the going gets tough, you get going with the \
+ Type 5 Heat Delivery System. As developed by Nanotrasen."
cost = CARGO_CRATE_VALUE * 4
contains = list(/obj/item/gun/energy/laser = 3)
- crate_name = "laser crate"
+ crate_name = "\improper Type 5 laser crate"
crate_type = /obj/structure/closet/crate/secure/plasma
/datum/supply_pack/security/armory/laser_carbine
- name = "Laser Carbine Crate"
- desc = "Contains three laser carbines, capable of rapidly firing weak lasers."
+ name = "Type 5R Laser Carbine Crate"
+ desc = "Contains three Type 5R laser carbines, developed by Nanotrasen. Fires a rapid burst of slightly weaker laser projectiles."
cost = CARGO_CRATE_VALUE * 9
contains = list(/obj/item/gun/energy/laser/carbine = 3)
- crate_name = "laser carbine crate"
+ crate_name = "\improper Type 5R laser carbine crate"
crate_type = /obj/structure/closet/crate/secure/plasma
/datum/supply_pack/security/armory/disabler_smg
@@ -266,9 +267,9 @@
/datum/supply_pack/security/armory/battle_rifle
name = "NT BR-38 Crate"
- desc = "An experimental energy-based ballistic battle rifle. Only available to \
- Nanotrasen stations for security purposes. DO NOT RESELL TO OUTSIDE COMPANIES. \
- Contains three NT BR-38 rifles and 6 magazines containing .38 Standard."
+ desc = "An experimental energy-based ballistic battle rifle, as developed by Nanotrasen. \
+ Only available to Nanotrasen stations for security purposes. DO NOT RESELL TO OUTSIDE \
+ COMPANIES. Contains three NT BR-38 rifles and 6 magazines containing .38 Standard."
cost = CARGO_CRATE_VALUE * 100
contains = list(
/obj/item/gun/ballistic/automatic/battle_rifle = 3,
diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm
index 62655f3153c..93f352539da 100644
--- a/code/modules/clothing/outfits/ert.dm
+++ b/code/modules/clothing/outfits/ert.dm
@@ -54,12 +54,14 @@
/datum/outfit/centcom/ert/commander/alert
name = "ERT Commander - High Alert"
+ l_hand = /obj/item/gun/energy/disabler/smg
backpack_contents = list(
/obj/item/gun/energy/pulse/pistol/loyalpin = 1,
/obj/item/melee/baton/security/loaded = 1,
)
glasses = /obj/item/clothing/glasses/thermal/eyepatch
l_pocket = /obj/item/melee/energy/sword/saber
+ suit_store = /obj/item/gun/energy/laser/assault
/datum/outfit/centcom/ert/security
name = "ERT Security"
diff --git a/code/modules/mob/living/basic/trooper/pirate.dm b/code/modules/mob/living/basic/trooper/pirate.dm
index af8ae0cdfd2..08af919d87b 100644
--- a/code/modules/mob/living/basic/trooper/pirate.dm
+++ b/code/modules/mob/living/basic/trooper/pirate.dm
@@ -53,7 +53,7 @@
name = "Pirate Gunner"
mob_spawner = /obj/effect/mob_spawn/corpse/human/pirate/ranged
corpse = /obj/effect/mob_spawn/corpse/human/pirate/ranged
- r_hand = /obj/item/gun/energy/laser
+ r_hand = /obj/item/gun/energy/laser/soul
ai_controller = /datum/ai_controller/basic_controller/trooper/ranged
/// Type of bullet we use
var/projectiletype = /obj/projectile/beam/laser
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index 85a8371b2b5..366df8adbf9 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -97,6 +97,10 @@
name = "pulse pistol power cell"
maxcharge = STANDARD_CELL_CHARGE * 2
+/obj/item/stock_parts/power_store/cell/laser_pistol
+ name = "laser pistol power cell"
+ chargerate = STANDARD_CELL_RATE * 3
+
/obj/item/stock_parts/power_store/cell/ninja
name = "black power cell"
icon_state = "bscell"
diff --git a/code/modules/projectiles/ammunition/energy/laser.dm b/code/modules/projectiles/ammunition/energy/laser.dm
index 1168a2b3814..47621b757e9 100644
--- a/code/modules/projectiles/ammunition/energy/laser.dm
+++ b/code/modules/projectiles/ammunition/energy/laser.dm
@@ -8,25 +8,37 @@
e_cost = LASER_SHOTS(10, STANDARD_CELL_CHARGE)
select_name = "maim"
+/obj/item/ammo_casing/energy/laser/accelerator
+ projectile_type = /obj/projectile/beam/laser/accelerator
+ select_name = "accelerator"
+ fire_sound = 'sound/items/weapons/lasercannonfire.ogg'
+
/obj/item/ammo_casing/energy/lasergun
projectile_type = /obj/projectile/beam/laser
e_cost = LASER_SHOTS(16, STANDARD_CELL_CHARGE)
select_name = "kill"
-/obj/item/ammo_casing/energy/lasergun/carbine
- projectile_type = /obj/projectile/beam/laser/carbine
+/obj/item/ammo_casing/energy/lasergun/pistol
+ e_cost = LASER_SHOTS(10, STANDARD_CELL_CHARGE)
+
+/obj/item/ammo_casing/energy/lasergun/assault
+ projectile_type = /obj/projectile/beam/laser/rapid
e_cost = LASER_SHOTS(40, STANDARD_CELL_CHARGE)
+
+/obj/item/ammo_casing/energy/lasergun/carbine
+ projectile_type = /obj/projectile/beam/laser/rapid
+ e_cost = LASER_SHOTS(26, STANDARD_CELL_CHARGE)
select_name = "kill"
fire_sound = 'sound/items/weapons/laser2.ogg'
-/obj/item/ammo_casing/energy/lasergun/carbine/cybersun
- projectile_type = /obj/projectile/beam/laser/carbine/cybersun
+/obj/item/ammo_casing/energy/lasergun/cybersun
+ projectile_type = /obj/projectile/beam/laser/cybersun
e_cost = LASER_SHOTS(54, STANDARD_CELL_CHARGE)
select_name = "rapid fire"
fire_sound = 'sound/items/weapons/laser2.ogg'
/obj/item/ammo_casing/energy/lasergun/carbine/practice
- projectile_type = /obj/projectile/beam/laser/carbine/practice
+ projectile_type = /obj/projectile/beam/laser/rapid/practice
select_name = "practice"
harmful = FALSE
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index a8d8283ad69..1df59734b36 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -50,6 +50,11 @@
/// sound played when fire mode select is done
var/fire_mode_switch_sound = SFX_FIRE_MODE_SWITCH
+ // EMP related vars
+
+ /// A divide to the amount of charge lost when the weapon is EMP'd. Higher means more resistant.
+ var/emp_resistance = 1
+
/obj/item/gun/energy/fire_sounds()
// What frequency the energy gun's sound will make
var/pitch_to_use = 1
@@ -76,7 +81,7 @@
/obj/item/gun/energy/emp_act(severity)
. = ..()
if(!(. & EMP_PROTECT_CONTENTS))
- cell.use(round(cell.charge / severity))
+ cell.use(round(cell.charge / emp_resistance / severity))
chambered = null //we empty the chamber
recharge_newshot() //and try to charge a new shot
update_appearance()
diff --git a/code/modules/projectiles/guns/energy/crank_guns.dm b/code/modules/projectiles/guns/energy/crank_guns.dm
index 05139823fae..4d64602ae44 100644
--- a/code/modules/projectiles/guns/energy/crank_guns.dm
+++ b/code/modules/projectiles/guns/energy/crank_guns.dm
@@ -127,3 +127,50 @@
ammunition by manually spinning the weapon's nanite canister."
icon_state = "cryopistol"
ammo_type = list(/obj/item/ammo_casing/energy/nanite/cryo)
+
+// The Deep Lore //
+
+// Laser Musket
+
+/obj/item/gun/energy/laser/musket/add_deep_lore()
+ AddElement(/datum/element/examine_lore, \
+ lore_hint = span_notice("You can [EXAMINE_HINT("think carefully")] to learn a little more about [src]."), \
+ lore = "The first examples of laser muskets emerged somewhat recently, even though improvised firearms have had \
+ a rich history throughout human, Mothic and Tiziran history.
\
+
\
+ Laser muskets often started to emerge when conventional weaponry or ammunition started to grow scarcer, and the amount \
+ of scrap electronics and materials outpaced the speed at which engineering crews could repair structural defenses and \
+ infrastructure. They're regarded as weapons of extreme desperation, but also of unmatched grit in the face of a hopeless situation.
\
+
\
+ Constructing one of these is sometimes seen as a rite of passage amongst militia groups and rebel forces. Each one as unique \
+ as the next.
\
+
\
+ What will this one's name be? What history will it write? Time will surely tell." \
+ )
+
+// Thermal Pistols
+
+/obj/item/gun/energy/laser/thermal/add_deep_lore()
+ AddElement(/datum/element/examine_lore, \
+ lore_hint = span_notice("You can [EXAMINE_HINT("look closer")] to learn a little more about [src]."), \
+ lore = "A weapon with no name, more a pattern of design. Examples of thermal pistols vary heavily based on the \
+ manufacturer or craftsperson. However, the original inventor of the thermal pistol is largely clouded in mystery. \
+ Replica versions of the pistol were circulating long before weaponized nanites were banned by the \
+ TerraGov Subdermal Weapons Accord, and have continued to exist as a means of disposing of the self-replicating stocks \
+ of weaponized nanites.
\
+
\
+ This is an example of Nanotrasen's Viper Classic model, based on earlier models of the weapon in appearance, but using \
+ up to date nanite breeding chambers that respond to user articulation. That is, the weapons can be charged with a vigorous \
+ shake. Though most users prefer to use the custom trick triggerguard to twirl them on their finger. Mostly for showmanship.
\
+
\
+ Due to various movies and television programs, or perhaps spacer legends of fancy, the weapons are often associated with the \
+ 'Space Rangers' that roam the periphery and Australicus regions of space. Polarizing tales of rugged gun fighters roaming \
+ from outpost to outpost, leaving justice, death or merely a large quantity of buzzing nanite clouds in their wake. \
+ Robber barons, frontier lawbringers. Even the occasional hard-boiled detective. These weapons are sometimes associated \
+ with cultural imagery around rugged individualism, tenacity and nonconformity, as well as a bygone age of noble warriors and \
+ ruthless villains. Using these weapons today is largely seen as a way to evoke this imagery, even if it comes across \
+ as mildly tacky.
\
+
\
+ It isn't fully understood who started the practice of 'pairing' the pistols, though the custom has remained as long as \
+ living memory. Every thermal pistol has a mate, and it is considered ill fortune to separate them purposefully." \
+ )
diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm
index 411f627f0e8..bef2954c7c1 100644
--- a/code/modules/projectiles/guns/energy/laser.dm
+++ b/code/modules/projectiles/guns/energy/laser.dm
@@ -1,13 +1,12 @@
/obj/item/gun/energy/laser
- name = "laser gun"
- desc = "A basic energy-based laser gun that fires concentrated beams of light which pass through glass and thin metal."
+ name = "\improper Type 5 laser gun"
+ desc = "The Type 5 Heat Delivery System, developed by Nanotrasen. The workhorse of Nanotrasen's security forces."
icon_state = "laser"
inhand_icon_state = "laser"
w_class = WEIGHT_CLASS_BULKY
custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT)
ammo_type = list(/obj/item/ammo_casing/energy/lasergun)
- ammo_x_offset = 1
- shaded_charge = 1
+ shaded_charge = TRUE
/obj/item/gun/energy/laser/Initialize(mapload)
. = ..()
@@ -20,6 +19,8 @@
/datum/element/slapcrafting,\
slapcraft_recipes = slapcraft_recipe_list,\
)
+ add_deep_lore()
+
/obj/item/gun/energy/laser/add_seclight_point()
AddComponent(/datum/component/seclite_attachable, \
light_overlay_icon = 'icons/obj/weapons/guns/flashlights.dmi', \
@@ -27,69 +28,128 @@
overlay_x = 18, \
overlay_y = 12)
+/obj/item/gun/energy/laser/pistol
+ name = "\improper Type 5C laser pistol"
+ desc = "The Type 5 Heat Delivery System Compact Variant, developed by Nanotrasen. The workhorse of Nanotrasen's security forces, but in a more portable size."
+ icon_state = "laser_pistol"
+ w_class = WEIGHT_CLASS_NORMAL
+ projectile_damage_multiplier = 0.8
+ cell_type = /obj/item/stock_parts/power_store/cell/laser_pistol
+ ammo_type = list(/obj/item/ammo_casing/energy/lasergun/pistol)
+
+/obj/item/gun/energy/laser/pistol/add_seclight_point()
+ return
+
+/obj/item/gun/energy/laser/assault
+ name = "\improper Type 5A assault laser rifle"
+ desc = "The Type 5 Heat Delivery System Assault Variant, developed by Nanotrasen. The workhorse of Nanotrasen's security forces and paramilitary organizations."
+ icon = 'icons/obj/weapons/guns/wide_guns.dmi'
+ icon_state = "assault_laser"
+ inhand_icon_state = "assault_laser"
+ worn_icon_state = "assault_laser"
+ slot_flags = ITEM_SLOT_BACK
+ burst_size = 2
+ fire_delay = 1
+ ammo_type = list(/obj/item/ammo_casing/energy/lasergun/assault)
+ emp_resistance = 2
+ weapon_weight = WEAPON_HEAVY
+ projectile_speed_multiplier = 1.5
+ SET_BASE_PIXEL(-8, 0)
+
+/obj/item/gun/energy/laser/assault/add_seclight_point()
+ AddComponent(/datum/component/seclite_attachable, \
+ light_overlay_icon = 'icons/obj/weapons/guns/flashlights.dmi', \
+ light_overlay = "flight", \
+ overlay_x = 18, \
+ overlay_y = 30)
+
/obj/item/gun/energy/laser/practice
name = "practice laser gun"
- desc = "A modified version of the basic laser gun, this one fires less concentrated energy bolts designed for target practice."
+ desc = "A modified version of the Type 5 laser gun. Fires entirely harmless bolts of directed energy. Safe AND entertaining to fire with abandon."
ammo_type = list(/obj/item/ammo_casing/energy/laser/practice)
clumsy_check = FALSE
item_flags = NONE
gun_flags = NOT_A_REAL_GUN
+/obj/item/gun/energy/laser/practice/add_deep_lore()
+ return
+
/obj/item/gun/energy/laser/retro
- name ="retro laser gun"
+ name ="\improper Type 1 laser gun"
+ desc = "The Type 1 Heat Delivery System, developed by Nanotrasen. No longer used by Nanotrasen's private security or military forces. Nevertheless, \
+ it is still quite deadly and easy to maintain, making it a favorite amongst pirates and other outlaws."
icon_state = "retro"
- desc = "An older model of the basic lasergun, no longer used by Nanotrasen's private security or military forces. Nevertheless, it is still quite deadly and easy to maintain, making it a favorite amongst pirates and other outlaws."
ammo_x_offset = 3
+/obj/item/gun/energy/laser/soul
+ name ="\improper Type 3 laser gun"
+ desc = "The Type 3 Heat Delivery System, developed by Nanotrasen. Quite possibly the most popular model of HDS ever made by Nanotrasen. They don't make them like they used too."
+ icon_state = "laser_soulful"
+ inhand_icon_state = "laser_soulful"
+ ammo_x_offset = 1
+
/obj/item/gun/energy/laser/carbine
- name = "laser carbine"
- desc = "A modified laser gun which can shoot far faster, but each shot is far less damaging."
+ name = "\improper Type 5R laser carbine"
+ desc = "The burst fire Type 5R Rapid Heat Delivery System, developed by Nanotrasen. Capable of firing a sustained volley of directed energy projectiles, though each individual projectile lacks the punch of the Type 5."
icon_state = "laser_carbine"
+ burst_size = 2
+ fire_delay = 2
+ projectile_damage_multiplier = 0.75
+ projectile_speed_multiplier = 1.5
ammo_type = list(/obj/item/ammo_casing/energy/lasergun/carbine)
+ weapon_weight = WEAPON_MEDIUM
-/obj/item/gun/energy/laser/carbine/Initialize(mapload)
- . = ..()
- AddComponent(/datum/component/automatic_fire, 0.15 SECONDS, allow_akimbo = FALSE)
-
-/obj/item/gun/energy/laser/carbine/cybersun
+/obj/item/gun/energy/laser/cybersun
name = "\improper Cybersun S-120"
desc = "A laser gun primarily used by syndicate security guards. It fires a rapid spray of low-power plasma beams."
icon_state = "cybersun_s120"
inhand_icon_state = "s120"
- ammo_type = list(/obj/item/ammo_casing/energy/lasergun/carbine/cybersun)
+ ammo_type = list(/obj/item/ammo_casing/energy/lasergun/cybersun)
spread = 14
pin = /obj/item/firing_pin/implant/pindicate
+ ammo_x_offset = 1
-/obj/item/gun/energy/laser/carbine/cybersun/unrestricted
+/obj/item/gun/energy/laser/cybersun/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/automatic_fire, 0.15 SECONDS, allow_akimbo = FALSE)
+
+/obj/item/gun/energy/laser/cybersun/add_deep_lore()
+ return
+
+/obj/item/gun/energy/laser/cybersun/unrestricted
pin = /obj/item/firing_pin
/obj/item/gun/energy/laser/carbine/practice
name = "practice laser carbine"
- desc = "A modified version of the laser carbine, this one fires even less concentrated energy bolts designed for target practice."
+ desc = "A modified version of the Type 5R laser carbine. Fires entirely harmless bolts of directed energy. Safe AND entertaining to fire with abandon."
ammo_type = list(/obj/item/ammo_casing/energy/lasergun/carbine/practice)
clumsy_check = FALSE
item_flags = NONE
gun_flags = NOT_A_REAL_GUN
+/obj/item/gun/energy/laser/carbine/practice/add_deep_lore()
+ return
+
/obj/item/gun/energy/laser/retro/old
- name ="laser gun"
- icon_state = "retro"
- desc = "First generation lasergun, developed by Nanotrasen. Suffers from ammo issues but its unique ability to recharge its ammo without the need of a magazine helps compensate. You really hope someone has developed a better lasergun while you were in cryo."
+ desc = "The NT Type 1 Heat Delivery System, developed by Nanotrasen. Although, this one looks downright ancient. What the hell happened to it?"
ammo_type = list(/obj/item/ammo_casing/energy/lasergun/old)
- ammo_x_offset = 3
+
+/obj/item/gun/energy/laser/retro/old/add_deep_lore()
+ return
/obj/item/gun/energy/laser/hellgun
- name ="hellfire laser gun"
- desc = "A relic of a weapon, built before NT began installing regulators on its laser weaponry. This pattern of laser gun became infamous for the gruesome burn wounds it caused, and was quietly discontinued once it began to affect NT's reputation."
- icon_state = "hellgun"
+ name = "\improper Type 2 'hellfire' laser gun"
+ desc = "The Type 2 Heat Delivery System, developed by Nanotrasen. Technically speaking, it is an improvement. Legally speaking, possession of this weapon is restricted in most occupied sectors of space. \
+ The Type 2 is notorious for its ability to render victims a carbonized husk with ease, melting flesh and bone as easily as butter. A painful, gruesome death awaits anyone on the wrong ends of this gun."
ammo_type = list(/obj/item/ammo_casing/energy/laser/hellfire)
+ ammo_x_offset = 1
/obj/item/gun/energy/laser/captain
name = "antique laser gun"
+ desc = "This is an antique laser gun. All craftsmanship is of the highest quality. It is decorated with assistant leather and chrome. The object menaces with spikes of energy. On the item is an image of Space Station 13. The station is exploding."
icon_state = "caplaser"
w_class = WEIGHT_CLASS_NORMAL
inhand_icon_state = null
- desc = "This is an antique laser gun. All craftsmanship is of the highest quality. It is decorated with assistant leather and chrome. The object menaces with spikes of energy. On the item is an image of Space Station 13. The station is exploding."
force = 10
ammo_x_offset = 3
selfcharge = 1
@@ -99,26 +159,39 @@
/obj/item/gun/energy/laser/captain/scattershot
name = "scatter shot laser rifle"
+ desc = "An industrial-grade heavy-duty laser rifle with a modified laser lens to scatter its shot into multiple smaller lasers. The inner-core can self-charge for theoretically infinite use."
icon_state = "lasercannon"
w_class = WEIGHT_CLASS_BULKY
inhand_icon_state = "laser"
- desc = "An industrial-grade heavy-duty laser rifle with a modified laser lens to scatter its shot into multiple smaller lasers. The inner-core can self-charge for theoretically infinite use."
ammo_type = list(/obj/item/ammo_casing/energy/laser/scatter, /obj/item/ammo_casing/energy/laser)
shaded_charge = FALSE
+ ammo_x_offset = 1
+
+
+/obj/item/gun/energy/laser/captain/scattershot/add_deep_lore()
+ return
/obj/item/gun/energy/laser/cyborg
can_charge = FALSE
desc = "An energy-based laser gun that draws power from the cyborg's internal energy cell directly. So this is what freedom looks like?"
use_cyborg_cell = TRUE
+ ammo_x_offset = 1
/obj/item/gun/energy/laser/cyborg/Initialize(mapload)
. = ..()
AddElement(/datum/element/empprotection, EMP_PROTECT_ALL)
+/obj/item/gun/energy/laser/cyborg/add_deep_lore()
+ return
+
/obj/item/gun/energy/laser/scatter
name = "scatter laser gun"
desc = "A laser gun equipped with a refraction kit that spreads bolts."
ammo_type = list(/obj/item/ammo_casing/energy/laser/scatter, /obj/item/ammo_casing/energy/laser)
+ ammo_x_offset = 1
+
+/obj/item/gun/energy/laser/scatter/add_deep_lore()
+ return
/obj/item/gun/energy/laser/scatter/shotty
name = "energy shotgun"
@@ -126,10 +199,11 @@
icon_state = "cshotgun"
inhand_icon_state = "shotgun"
desc = "A combat shotgun gutted and refitted with an internal laser system. Can switch between taser and scattered disabler shots."
- shaded_charge = 0
+ shaded_charge = FALSE
pin = /obj/item/firing_pin/implant/mindshield
ammo_type = list(/obj/item/ammo_casing/energy/laser/scatter/disabler, /obj/item/ammo_casing/energy/electrode)
automatic_charge_overlays = FALSE
+ ammo_x_offset = 1
///Laser Cannon
@@ -147,35 +221,17 @@
pin = null
ammo_x_offset = 3
-/obj/item/ammo_casing/energy/laser/accelerator
- projectile_type = /obj/projectile/beam/laser/accelerator
- select_name = "accelerator"
- fire_sound = 'sound/items/weapons/lasercannonfire.ogg'
-
-/obj/projectile/beam/laser/accelerator
- name = "accelerator laser"
- icon_state = "scatterlaser"
- range = 255
- damage = 6
- var/size_per_tile = 0.1
- var/max_scale = 4
-
-/obj/projectile/beam/laser/accelerator/reduce_range()
- ..()
- damage += 7
- transform = matrix()
- transform *= min(1 + (maximum_range - range) * size_per_tile, max_scale)
-
///X-ray gun
-/obj/item/gun/energy/xray
- name = "\improper X-ray laser gun"
- desc = "A high-power laser gun capable of expelling concentrated X-ray blasts that pass through multiple soft targets and heavier materials."
+/obj/item/gun/energy/laser/xray
+ name = "\improper Type 6 X-ray laser gun"
+ desc = "The Type 6 Heat Delivery System, developed by Nanotrasen. Capable of expelling concentrated 'X-ray' blasts that pass through multiple soft targets and heavier materials."
icon_state = "xray"
w_class = WEIGHT_CLASS_BULKY
inhand_icon_state = null
ammo_type = list(/obj/item/ammo_casing/energy/xray)
ammo_x_offset = 3
+ shaded_charge = FALSE
////////Laser Tag////////////////////
@@ -194,6 +250,9 @@
/obj/item/gun/energy/laser/bluetag/hitscan
ammo_type = list(/obj/item/ammo_casing/energy/laser/bluetag/hitscan)
+/obj/item/gun/energy/laser/bluetag/add_deep_lore()
+ return
+
/obj/item/gun/energy/laser/redtag
name = "laser tag gun"
icon_state = "redtag"
@@ -206,6 +265,9 @@
selfcharge = TRUE
gun_flags = NOT_A_REAL_GUN
+/obj/item/gun/energy/laser/redtag/add_deep_lore()
+ return
+
/obj/item/gun/energy/laser/redtag/hitscan
ammo_type = list(/obj/item/ammo_casing/energy/laser/redtag/hitscan)
@@ -218,3 +280,168 @@
name = "luxurious laser gun"
desc = "A laser gun modified to cost 20 credits to fire. Point towards poor people."
pin = /obj/item/firing_pin/paywall/luxury
+
+
+// The Deep Lore //
+
+// Laser Gun
+
+/obj/item/gun/energy/laser/proc/add_deep_lore()
+ AddElement(/datum/element/examine_lore, \
+ lore_hint = span_notice("You can [EXAMINE_HINT("look closer")] to learn a little more about [src]."), \
+ lore = "The NT Type 5 Heat Delivery System (sometimes referred to as the HDS5 in promotional material) is what truly put Nanotrasen \
+ head and shoulders above most weapon manufacturers in the modern era. All modern energy weaponry offered by the company have \
+ the success of the Type 5 to thank for setting the standard for energy-based weapon platforms.
\
+
\
+ Adopted as the standard infantry firearm for Nanotrasen military forces, as well as private security lethal armaments, few can deny \
+ the weapon's reliability. And at an affordable price!
\
+
\
+ However, the weapon platform still possesses many of the vulnerabilities of previous energy-based weaponry. Onboard power supplies \
+ cannot be adequately shielded from external electromagnetic pulses that might interfere with the weapon's functionality without \
+ also severely jeopardizing thermal distribution into the weapon's heatsink. The Type 4, which never saw wider adoption, remains a \
+ haunting example to Nanotrasen's weapons division as to the consequences when a HDS is unable to expel thermal buildup safely.
\
+
\
+ Certainly, the Melted Veterans of Galpha 5 advocacy group will never let them forget it." \
+ )
+
+// Retro Laser Gun
+
+/obj/item/gun/energy/laser/retro/add_deep_lore()
+ AddElement(/datum/element/examine_lore, \
+ lore_hint = span_notice("You can [EXAMINE_HINT("look closer")] to learn a little more about [src]."), \
+ lore = "The NT Type 1 Heat Delivery System (sometimes referred to as the HDS1 in older weapon catalogs) was a weapon that \
+ marked the beginning of a new era of firearm development.
\
+
\
+ Invented in the thinktank laboritories of Nanotrasen's weapon development team towards the end of the 24th century, the Type 1 found \
+ itself adopted broadly by various factions and military entities vying for control over the frontier once it hit the market. One \
+ hallmark of those who stood successful in these conflicts were those groups that had adopted the Type 1 as a standard infantry \
+ weapon. The logistics required to maintain the operational peak of the HDS1 allowed most quartermasters to merely dump a half \
+ dozen of the weapons into the hands of bloodythirsty marines, knowing full well the weapons were rugged enough to survive \
+ most anything thrown at them, and only needing a recharging station with a power supply to keep operational once they run empty.
\
+
\
+ So many of these weapons exist today that even modern conflicts may see more usage of the HDS1 than the updated and equally \
+ reliable HDS5 employed by Nanotrasen's modern combat forces. Nanotrasen, despite their best efforts, still have not managed \
+ to encourage potential customers to swap for the new model despite a generous exchange discount." \
+ )
+
+// Soulful Laser Gun
+
+/obj/item/gun/energy/laser/soulful/add_deep_lore()
+ AddElement(/datum/element/examine_lore, \
+ lore_hint = span_notice("You can [EXAMINE_HINT("look closer")] to learn a little more about [src]."), \
+ lore = "The NT Type 3 Heat Delivery System (sometimes referred to as the HDS3 in the memories of security officers) is quite possibly \
+ the most common type of HDS still available on the market. Fondly regarded, with quite a few diehard fans still clinging to their \
+ Type 3's like their lives depended on it, the weapon has its own place in history as the 'gun that could do it all'.
\
+
\
+ The Type 3 line ran for several decades before attempts to replace it ever even crossed Nanotrasen's minds. When people think \
+ 'laser gun', the Type 3 is usually what comes to mind.
\
+
\
+ When Nanotrasen announced its replacement, the Type 4, skeptics were quick to pan the weapon, claiming that it lacked several notable \
+ features that users of the Type 3 had enjoyed for years. As it turns out, most of those critics would end up vindicated after word of \
+ Gulpha 5 and the terrible, terrible consequences of the Type 4's volatile nature came to light. Most stuck to the Type 3 and never \
+ looked back, even when the Type 5 rolled out to considerable success in its own right.
\
+
\
+ Nanotrasen still services Type 3's, with many of the parts used in the weapon sharing compatible cousins in the Type 5. Most \
+ examples of the Type 3 today may actually be closer in function and form to the Type 5 than they were during their original \
+ construction, depending on how often it is serviced." \
+ )
+
+// hellfire laser gun
+
+/obj/item/gun/energy/laser/hellgun/add_deep_lore()
+ AddElement(/datum/element/examine_lore, \
+ lore_hint = span_notice("You can [EXAMINE_HINT("look closer")] to learn a little more about [src]."), \
+ lore = "The NT Type 2 Heat Delivery System (sometimes referred to as the HDS2 in legal documentation) is considered a notable \
+ example of Nanotrasen flying too close to the sun for its own good.
\
+
\
+ The success of the Type 1 resulted in shareholders urging marketing to bring out the 'next best thing' in energy-based weaponry. \
+ At the time, Nanotrasen's weapons division had a prototype still in the works. However, there were some concerns raised amongst \
+ researchers as to the 'moral implications' that might result from unleashing 'that much directed radioactive material' towards \
+ a living being. Executives at the time brushed off such concerns, as there was money to be made and already ultrawealthy shareholders \
+ to feed the earnings.
\
+
\
+ The Type 2 was rushed onto the market within the next quarter, even before most common safety mechanisms had been properly tested and implemented.\
+ Reports immediately began flooding in of horrific accidental dischargess, battlefield atrocities and unexpected spontaneous combustion \
+ from excessive exposure to the untested experimental heat distribution systems 'taking its pound of flesh' for the 'hell it unleashed'.
\
+
\
+ News outlets and tabloids alike railed against the company for creating what was now being called the 'hellfire' laser gun. In response, most \
+ legal bodies rushed to ban the firearm from sales within their region of space, and the weapon became infamous for its unethical means of ending \
+ sentient life. Laws were passed to ensure power regulators were installed in all future energy-based weaponry sold by Nanotrasen. Nanotrasen quickly \
+ discontinued the Type 2 in response, and it never saw production from that day forth. However, retrofit kits still exist \
+ on the black market and in some of Nanotrasen's own warehouses. While legally, it is unlawful to sell and possess a Type 2, Nanotrasen itself \
+ does not regulate possession of the firearm aboard its own stations. Nor does any legal body intend on preventing them from utilizing it in defense \
+ of its own assets." \
+ )
+
+// Antique Laser Gun
+
+/obj/item/gun/energy/laser/captain/add_deep_lore()
+ AddElement(/datum/element/examine_lore, \
+ lore_hint = span_notice("You can [EXAMINE_HINT("look closer")] to learn a little more about [src]."), \
+ lore = "For a brief period, Nanotrasen produced a series of custom-made Type 2 laser guns for a select group of \
+ clients. Largely, various wealthy starship captains, politicians and military leaders looking to demonstrate prestige before \
+ the common folk.
\
+
\
+ The Type 2 was a commercial failure, but this particular variant earned its own infamy, linked to narratives of crazed \
+ despots using it to put down political rivals and dissidents. As well as tales of mad generals marching ahead of their \
+ forces, this weapon brandished, running hot, in an outstretched arm towards any moving target they could find on the \
+ battlefield.
\
+
\
+ Copies of this firearm are now prohibited within TerraGov space, and any captured are quickly decommissioned.\
+ This is largely why Nanotrasen insists that any examples held by ranking officers be kept under lock and key. \
+ All records of the schematics surrounding this variant of the Type 2 were seized and destroyed, and the creator behind \
+ it detained in a maximum security TerraGov sanitorium. When they found her, she appeared to have smeared the walls in her \
+ own blood, claiming that 'She' was coming, and that she had paid dearly for the knowledge of how to make the weapon.
\
+ Even the microfusion breeder cell housed inside the weapon is practically a lost technology, and Nanotrasen have been unable \
+ to reverse engineer the devices exact means of functionality.
\
+
\
+ The Syndicate are obviously just as interested in exactly how this weapon is capable of self-perpetuation. Hence why the collective \
+ seem hell-bent on capturing them whenever possible. Maybe keep this somewhere safe. Or don't." \
+ )
+
+// X-ray Laser Gun
+
+/obj/item/gun/energy/laser/xray/add_deep_lore()
+ AddElement(/datum/element/examine_lore, \
+ lore_hint = span_notice("You can [EXAMINE_HINT("look closer")] to learn a little more about [src]."), \
+ lore = "The NT Type 6 Heat Delivery System (sometimes referred to as the HDS6 in research notes) is a breakthrough in the \
+ development of directed energy weaponry.
\
+
\
+ Very little is known about the Type 6, as it is a relatively new experimental weapon only accessible to Nanotrasen security forces.\
+ Somehow, Nanotrasen has found a means to 'slip' the energy beams produced by the Type 6 through unintended targets, only impacting \
+ once it has made contact with a pre-designated target by the weapon's user. It appears to be unable to slip past organic matter reliably, \
+ which hampers its potential for eliminating friendly-fire. However, inorganic targets are left unscathed unless the weapon is directed towards \
+ firing upon the object. This makes the weapon exceptional for asset recovery and defense entrenchment and assaults on defensive structures.
\
+
\
+ Nanotrasen claims that this phenomenon is achieved 'through the power of X-rays'. Most critics have highlighted that this is total nonsense. Some claim \
+ that Nanotrasen has discovered a yet uknown state of matter that the company is exploiting for weapons development and manufacturing. The most \
+ conspiratorially minded of Nanotrasen's critics have even gone as far as to claim it is 'proof of ectoplasm as the sixth element'.\
+ And that, perhaps, the weapon may be operating through supernatural means. Maybe even powered by the 'spirits of the damned'.
\
+
\
+ Whatever the truth may be, the weapon seems to function as advertized, and is even more energy efficient than the Type 5. Nanotrasen \
+ expects full commercial rollout sometime in the next quarter." \
+ )
+
+// Laser Carbine
+
+/obj/item/gun/energy/laser/carbine/add_deep_lore()
+ AddElement(/datum/element/examine_lore, \
+ lore_hint = span_notice("You can [EXAMINE_HINT("look closer")] to learn a little more about [src]."), \
+ lore = "The NT Type 5R Rapid Heat Delivery System (sometimes referred to as the RHDS5R in briefing manuals, and 'that piece of shit flashlight' amongst \
+ TGMC troopers) was a shaky first step into automatic directed energy weaponry.
\
+
\
+ Intended for use in special operations, particularly in the hands of orbital drop shock troopers, the Type 5R was foreseen to be an excellent \
+ addition to Nanotrasen's arsenal of offerings to military forces across occupied space. However, field performance proved grim.
\
+
\
+ The advantages of directed energy weapons is the lightweight impacts felt on the supply chain for logistical officers and quartermasters due to the \
+ only necessary upkeep for the weapons being a consistent power supply, either established or brought to the front, and the occassional cleaning.
\
+
\
+ This, however, is not a benefit that soldiers operating behind enemy lines or during tactical deployments are capable of exploiting. As a result, \
+ operators often chaffed against the limited ammunition supply compared to conventional ballistic firearms, and the weapon quickly was abandoned by \
+ most special forces units.
\
+
\
+ Instead, the weapon found favour in the hands of private security teams, who enjoyed the volume of fire it provided, while maintaining \
+ exceptional accuracy even at long ranges, as well as being compact enough to allow a high of discretion compared to a full sized rifle. \
+ The weapon is also often utilized by rim pirates and marauders, giving the weapon something of an ill reputation." \
+ )
diff --git a/code/modules/projectiles/guns/energy/mounted.dm b/code/modules/projectiles/guns/energy/mounted.dm
index 7e33567aa0e..13e6c40d0d6 100644
--- a/code/modules/projectiles/guns/energy/mounted.dm
+++ b/code/modules/projectiles/guns/energy/mounted.dm
@@ -22,6 +22,9 @@
selfcharge = 1
trigger_guard = TRIGGER_GUARD_ALLOW_ALL
+/obj/item/gun/energy/laser/mounted/add_deep_lore()
+ return
+
/obj/item/gun/energy/laser/mounted/augment
icon = 'icons/obj/medical/organs/organs.dmi'
icon_state = "arm_laser"
diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm
index 161c9c9a698..95192c6c7bc 100644
--- a/code/modules/projectiles/projectile/beams.dm
+++ b/code/modules/projectiles/projectile/beams.dm
@@ -28,17 +28,18 @@
damage = 25
exposed_wound_bonus = 40
-/obj/projectile/beam/laser/carbine
+/obj/projectile/beam/laser/rapid
+ name = "rapid fire laser"
icon_state = "carbine_laser"
impact_effect_type = /obj/effect/temp_visual/impact_effect/yellow_laser
- damage = 10
+ damage = 20
-/obj/projectile/beam/laser/carbine/practice
- name = "practice laser"
+/obj/projectile/beam/laser/rapid/practice
+ name = "practice rapid fire laser"
impact_effect_type = /obj/effect/temp_visual/impact_effect/yellow_laser
damage = 0
-/obj/projectile/beam/laser/carbine/cybersun
+/obj/projectile/beam/laser/cybersun
name = "red plasma beam"
icon_state = "lava"
light_color = COLOR_DARK_RED
@@ -47,6 +48,20 @@
wound_bonus = -40
speed = 0.9
+/obj/projectile/beam/laser/accelerator
+ name = "accelerator laser"
+ icon_state = "scatterlaser"
+ range = 255
+ damage = 6
+ var/size_per_tile = 0.1
+ var/max_scale = 4
+
+/obj/projectile/beam/laser/accelerator/reduce_range()
+ ..()
+ damage += 7
+ transform = matrix()
+ transform *= min(1 + (maximum_range - range) * size_per_tile, max_scale)
+
//overclocked laser, does a bit more damage but has much higher wound power (-0 vs -20)
/obj/projectile/beam/laser/hellfire
name = "hellfire laser"
diff --git a/code/modules/spells/spell_types/right_and_wrong.dm b/code/modules/spells/spell_types/right_and_wrong.dm
index ecd4d75320e..10203bc7bf3 100644
--- a/code/modules/spells/spell_types/right_and_wrong.dm
+++ b/code/modules/spells/spell_types/right_and_wrong.dm
@@ -55,8 +55,11 @@ GLOBAL_LIST_INIT(summoned_guns, list(
/obj/item/gun/energy/e_gun/advtaser,
/obj/item/gun/energy/e_gun/nuclear,
/obj/item/gun/energy/laser,
+ /obj/item/gun/energy/laser/soul,
+ /obj/item/gun/energy/laser/pistol,
+ /obj/item/gun/energy/laser/assault,
/obj/item/gun/energy/laser/carbine,
- /obj/item/gun/energy/laser/carbine/cybersun/unrestricted,
+ /obj/item/gun/energy/laser/cybersun/unrestricted,
/obj/item/gun/energy/laser/hellgun,
/obj/item/gun/energy/laser/scatter,
/obj/item/gun/energy/laser/thermal,
diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi
index 0f43a1b2850..af5a6d9bf8c 100644
Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ
diff --git a/icons/mob/clothing/belt_mirror.dmi b/icons/mob/clothing/belt_mirror.dmi
index d828d72ed41..0ee693af893 100644
Binary files a/icons/mob/clothing/belt_mirror.dmi and b/icons/mob/clothing/belt_mirror.dmi differ
diff --git a/icons/mob/inhands/weapons/guns_lefthand.dmi b/icons/mob/inhands/weapons/guns_lefthand.dmi
index 236df169bdd..782e3cab22e 100644
Binary files a/icons/mob/inhands/weapons/guns_lefthand.dmi and b/icons/mob/inhands/weapons/guns_lefthand.dmi differ
diff --git a/icons/mob/inhands/weapons/guns_righthand.dmi b/icons/mob/inhands/weapons/guns_righthand.dmi
index e82b236027c..3ef8524655c 100644
Binary files a/icons/mob/inhands/weapons/guns_righthand.dmi and b/icons/mob/inhands/weapons/guns_righthand.dmi differ
diff --git a/icons/obj/weapons/guns/energy.dmi b/icons/obj/weapons/guns/energy.dmi
index bbb4ff06316..3b91f79ef7d 100644
Binary files a/icons/obj/weapons/guns/energy.dmi and b/icons/obj/weapons/guns/energy.dmi differ
diff --git a/icons/obj/weapons/guns/wide_guns.dmi b/icons/obj/weapons/guns/wide_guns.dmi
index 15a281a3c1a..8e375515a75 100644
Binary files a/icons/obj/weapons/guns/wide_guns.dmi and b/icons/obj/weapons/guns/wide_guns.dmi differ