Files
Bubberstation/code/modules/projectiles/guns/energy/laser.dm
Da Cool Boss cb37ca225f Updates summon guns / gun mystery box list (#93062)
## About The Pull Request
Updates the guns that the event can spawn. Mystery boxes use the same
list.

List now contains all lethal guns currently in the game, besides
cosmetic/downgraded variants of other guns (some exceptions made if the
variants are cool/iconic), craftable guns, and unique heist targets.
Some of the newer guns weren't added to this list and now they're there.
This means the sci portal guns are gone, gimmick guns are gone, if you
get a gun from this you can immediately use it to harm someone as
intended. Medbeam stays as the sole "dud" gun.

Tasers and disablers stay in the list because they are used in the same
way as lethal guns. You can shoot someone with them until they fall
over. That counts, IMO.

List now uses the unrestricted guns, for those with firing pins. This
ensures non nukies can actually use them out of the box. Having to
source a firing pin to make the gun that magically appeared in your
hands actually work sucked, and went against the theme of the event.

Alphabetises the list too.
## Why It's Good For The Game
Event did dumb stuff like giving people non-guns or guns they couldn't
use. List was also dated so some of the new cool guns weren't spawned.
## Changelog
🆑
fix: Summon Guns event will no longer spawn guns with restricted firing
pins.
fix: Summon Guns event will now only spawn guns that are intended to
harm people (except the medbeam)
balance: Added more guns to the Summon Guns event.
/🆑
2025-09-26 15:10:06 -04:00

222 lines
8.5 KiB
Plaintext

/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."
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
/obj/item/gun/energy/laser/Initialize(mapload)
. = ..()
// Only actual lasguns can be converted
if(type != /obj/item/gun/energy/laser)
return
var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/xraylaser, /datum/crafting_recipe/hellgun, /datum/crafting_recipe/ioncarbine)
AddElement(
/datum/element/slapcrafting,\
slapcraft_recipes = slapcraft_recipe_list,\
)
/obj/item/gun/energy/laser/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 = 12)
/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."
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/retro
name ="retro laser gun"
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/carbine
name = "laser carbine"
desc = "A modified laser gun which can shoot far faster, but each shot is far less damaging."
icon_state = "laser_carbine"
ammo_type = list(/obj/item/ammo_casing/energy/lasergun/carbine)
/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
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)
spread = 14
pin = /obj/item/firing_pin/implant/pindicate
/obj/item/gun/energy/laser/carbine/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."
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/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."
ammo_type = list(/obj/item/ammo_casing/energy/lasergun/old)
ammo_x_offset = 3
/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"
ammo_type = list(/obj/item/ammo_casing/energy/laser/hellfire)
/obj/item/gun/energy/laser/captain
name = "antique laser gun"
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
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
flags_1 = PREVENT_CONTENTS_EXPLOSION_1
ammo_type = list(/obj/item/ammo_casing/energy/laser/hellfire)
/obj/item/gun/energy/laser/captain/scattershot
name = "scatter shot laser rifle"
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
/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
/obj/item/gun/energy/laser/cyborg/Initialize(mapload)
. = ..()
AddElement(/datum/element/empprotection, EMP_PROTECT_ALL)
/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)
/obj/item/gun/energy/laser/scatter/shotty
name = "energy shotgun"
icon = 'icons/obj/weapons/guns/ballistic.dmi'
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
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
///Laser Cannon
/obj/item/gun/energy/lasercannon
name = "accelerator laser cannon"
desc = "An advanced laser cannon that does more damage the farther away the target is."
icon_state = "lasercannon"
inhand_icon_state = "laser"
worn_icon_state = null
w_class = WEIGHT_CLASS_BULKY
force = 10
obj_flags = CONDUCTS_ELECTRICITY
slot_flags = ITEM_SLOT_BACK
ammo_type = list(/obj/item/ammo_casing/energy/laser/accelerator)
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."
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
////////Laser Tag////////////////////
/obj/item/gun/energy/laser/bluetag
name = "laser tag gun"
icon_state = "bluetag"
desc = "A retro laser gun modified to fire harmless blue beams of light. Sound effects included!"
ammo_type = list(/obj/item/ammo_casing/energy/laser/bluetag)
item_flags = NONE
clumsy_check = FALSE
pin = /obj/item/firing_pin/tag/blue
ammo_x_offset = 2
selfcharge = TRUE
gun_flags = NOT_A_REAL_GUN
/obj/item/gun/energy/laser/bluetag/hitscan
ammo_type = list(/obj/item/ammo_casing/energy/laser/bluetag/hitscan)
/obj/item/gun/energy/laser/redtag
name = "laser tag gun"
icon_state = "redtag"
desc = "A retro laser gun modified to fire harmless beams red of light. Sound effects included!"
ammo_type = list(/obj/item/ammo_casing/energy/laser/redtag)
item_flags = NONE
clumsy_check = FALSE
pin = /obj/item/firing_pin/tag/red
ammo_x_offset = 2
selfcharge = TRUE
gun_flags = NOT_A_REAL_GUN
/obj/item/gun/energy/laser/redtag/hitscan
ammo_type = list(/obj/item/ammo_casing/energy/laser/redtag/hitscan)
// luxury shuttle funnies
/obj/item/firing_pin/paywall/luxury
multi_payment = TRUE
owned = TRUE
payment_amount = 20
/obj/item/gun/energy/laser/luxurypaywall
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