/* * Laser Rifle */ /obj/item/gun/energy/laser name = "laser rifle" desc = "A Hephaestus Industries G40E rifle, designed to kill with concentrated energy blasts. This variant has the ability to \ switch between standard fire and a more efficent but weaker 'suppressive' fire." description_fluff = "The leading arms producer in the SCG, Hephaestus typically only uses its 'top level' branding for its military-grade equipment used by armed forces across human space." icon_state = "laser" item_state = "laser" wielded_item_state = "laser-wielded" fire_delay = 8 slot_flags = SLOT_BELT|SLOT_BACK w_class = ITEMSIZE_LARGE //CHOMP Edit - huge was dumb for this. force = 10 origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2) matter = list(MAT_STEEL = 2000) projectile_type = /obj/item/projectile/beam/midlaser one_handed_penalty = 30 firemodes = list( list(mode_name="normal", fire_delay=8, projectile_type=/obj/item/projectile/beam/midlaser, charge_cost = 240), list(mode_name="suppressive", fire_delay=5, projectile_type=/obj/item/projectile/beam/weaklaser, charge_cost = 60), ) /obj/item/gun/energy/laser/empty cell_type = null /obj/item/gun/energy/laser/mounted self_recharge = 1 use_external_power = 1 one_handed_penalty = 0 // Not sure if two-handing gets checked for mounted weapons, but better safe than sorry. /obj/item/gun/energy/laser/mounted/augment name = "arm-laser" desc = "A cruel malformation of a Hephaestus Industries G40E rifle, designed to kill with concentrated energy blasts, all while being stowable in the arm. This variant has the ability to \ switch between standard fire and a more efficent but weaker 'suppressive' fire." use_external_power = FALSE use_organic_power = TRUE wielded_item_state = null item_state = "augment_laser" canremove = FALSE one_handed_penalty = 5 battery_lock = 1 /obj/item/gun/energy/laser/practice name = "practice laser carbine" desc = "A modified version of the HI G40E, this one fires less concentrated energy bolts designed for target practice." projectile_type = /obj/item/projectile/beam/practice charge_cost = 48 cell_type = /obj/item/cell/device firemodes = list( list(mode_name="normal", projectile_type=/obj/item/projectile/beam/practice, charge_cost = 48), list(mode_name="suppressive", projectile_type=/obj/item/projectile/beam/practice, charge_cost = 12), ) /* * Sleek Laser Rifle */ /obj/item/gun/energy/laser/sleek name = "\improper LR1 \"Shishi\"" desc = "A Bishamonten Company LR1 \"Shishi\" rifle, a rare early 23rd century futurist design with a nonetheless timeless ability to kill." description_fluff = "Bisamonten was arms company that operated from roughly 2150-2280 - the height of the first extrasolar colonisation boom - before filing for \ bankruptcy and selling off its assets to various companies that would go on to become today’s TSCs. Focused on sleek ‘futurist’ designs which have largely \ fallen out of fashion but remain popular with collectors and people hoping to make some quick thalers from replica weapons. Their weapons tended to be form \ over function - despite their flashy looks, most were completely unremarkable one way or another as weapons and used very standard firing mechanisms." icon_state = "lrifle" item_state = "lrifle" origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 3) /* * Retro Laser Rifle */ /obj/item/gun/energy/retro name = "retro laser" icon_state = "retro" item_state = "retro" desc = "A 23rd century model of the basic lasergun. Nevertheless, it is still quite deadly and easy to maintain, making it a favorite amongst pirates and other outlaws." slot_flags = SLOT_BELT w_class = ITEMSIZE_NORMAL projectile_type = /obj/item/projectile/beam fire_delay = 10 //old technology /obj/item/gun/energy/retro/mounted self_recharge = 1 use_external_power = 1 /obj/item/gun/energy/retro/empty icon_state = "retro" cell_type = null /* * Alien Pistol */ /datum/category_item/catalogue/anomalous/precursor_a/alien_pistol name = "Precursor Alpha Weapon - Appendageheld Laser" desc = "This object strongly resembles a weapon, and if one were to pull the \ trigger located on the handle of the object, it would fire a deadly \ laser at whatever it was pointed at. The beam fired appears to cause too \ much damage to whatever it would hit to have served as a long ranged repair tool, \ therefore this object was most likely designed to be a deadly weapon. If so, this \ has several implications towards its creators;\

\ Firstly, it implies that these precursors, at some point during their development, \ had needed to defend themselves, or otherwise had a need to utilize violence, and \ as such created better tools to do so. It is unclear if violence was employed against \ themselves as a form of in-fighting, or if violence was exclusive to outside species.\

\ Secondly, the shape and design of the weapon implies that the creators of this \ weapon were able to grasp objects, and be able to manipulate the trigger independently \ from merely holding onto the weapon, making certain types of appendages like tentacles be \ unlikely.\

\ An interesting note about this weapon, when compared to contemporary energy weapons, is \ that this gun appears to be only slightly superior to modern laser weapons. The beam fired has \ roughly the same ability to harm, yet the power consumption is higher than average \ for a human-made energy side-arm. One possible explaination is that the creators of this \ weapon, in their later years, had less of a need to optimize their capability for war, \ and instead focused on other endeavors. Another explanation is that the vast age of the weapon \ may have caused it to degrade, yet still remain functional at a reduced capability." //CHOMPedit changed description to be accurate with new projectile value = CATALOGUER_REWARD_MEDIUM /obj/item/gun/energy/alien name = "alien pistol" desc = "A weapon that works very similarly to a traditional energy weapon. How this came to be will likely be a mystery for the ages." catalogue_data = list(/datum/category_item/catalogue/anomalous/precursor_a/alien_pistol) icon = 'icons/obj/gun.dmi' // CHOMPStation Edit: Override back to base gun.dmi icon_state = "alienpistol" item_state = "alienpistol" fire_delay = 9 //CHOMPedit changed cooldown from 10 to 9. charge_cost = 380 // CHOMPedit changed from 480 to 380. Aka five shots to six shots. projectile_type = /obj/item/projectile/beam/precursor //CHOMPedit changed beam type cell_type = /obj/item/cell/device/weapon/recharge/alien // Self charges. origin_tech = list(TECH_COMBAT = 8, TECH_MAGNET = 7) modifystate = "alienpistol" battery_lock = 1 //CHOMPedit adds battery lock. move_delay = 0 // CHOMPEdit: Pistols have move_delay of 0 /* * Antique Laser Gun */ /obj/item/gun/energy/captain name = "antique laser gun" icon_state = "caplaser" item_state = "caplaser" desc = "A rare weapon, produced by the Lunar Arms Company around 2105 - one of humanity's first wholly extra-terrestrial weapon designs. It's certainly aged well." description_fluff = "The Lunar Arms Company was founded to provide home-grown arms to the Selene Federation from 2101-2108 during the Second Cold War, the conflict that sparked the \ formation of the SCG. The LAC produced the first weapons wholly designed and produced outside of Earth. Post-war, the company relocated and rebranded as MarsTech, which survives \ to this day as a major subsidiary of Hephaestus Industries." force = 5 slot_flags = SLOT_BELT w_class = ITEMSIZE_NORMAL unacidable = TRUE projectile_type = /obj/item/projectile/beam origin_tech = null fire_delay = 10 //Old pistol charge_cost = 480 //to compensate a bit for self-recharging cell_type = /obj/item/cell/device/weapon/recharge/captain battery_lock = 1 /* var/remainingshots = 0 //you may get a limited number of shots regardless of the charge //CHOMPedit: no var/failurechance = 0 //chance per shot of something going awry /obj/item/gun/energy/captain/Initialize() //it's an antique and it's been sitting in a case, unmaintained, for who the hell knows how long - who knows what'll happen when you pull it out? ..() //first, we decide, does it have a different type of beam? 75% of just being a 40-damage laser, 15% of being less or 0, 10% of being better projectile_type = pick(prob(1);/obj/item/projectile/beam/pulse, prob(2);/obj/item/projectile/beam/heavylaser/cannon, prob(2);/obj/item/projectile/beam/heavylaser, prob(5);/obj/item/projectile/beam/sniper, prob(45);/obj/item/projectile/beam, prob(10);/obj/item/projectile/beam/cyan, prob(10);/obj/item/projectile/beam/eluger, prob(10);/obj/item/projectile/beam/imperial, prob(10);/obj/item/projectile/beam/weaklaser, prob(5);/obj/item/projectile/beam/practice) //now, decide whether it has a shot limit and if so how many if(prob(50)) remainingshots = rand(1,40) if(prob(50)) failurechance = rand(1,5) //finally, update the description so it has a tell if it's gonna burn out on you if(remainingshots || failurechance) desc = "A rare weapon, produced by the Lunar Arms Company around 2105 - one of humanity's first wholly extra-terrestrial weapon designs. It's been reasonably well-preserved." /obj/item/gun/energy/captain/special_check(var/mob/user) if(remainingshots) remainingshots -= 1 if(!remainingshots) //you've shot your load, sonny burnout(user) return 0 else if(prob(failurechance)) malfunction(user) return 0 return ..() /obj/item/gun/energy/captain/proc/burnout(var/mob/user) //your gun is now rendered useless projectile_type = /obj/item/projectile/beam/practice //just in case you somehow manage to get it to fire again, its beam type is set to one that sucks power_supply.charge = 0 power_supply.maxcharge = 1 //just to avoid div/0 runtimes desc = "A rare weapon, produced by the Lunar Arms Company around 2105 - one of humanity's first wholly extra-terrestrial weapon designs. It looks to have completely burned out." user.visible_message(span_warning("\The [src] erupts in a shower of sparks!"), span_danger("\the [src] bursts into a shower of sparks!")) var/turf/T = get_turf(src) var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() sparks.set_up(2, 1, T) sparks.start() update_icon() /obj/item/gun/energy/captain/proc/malfunction(var/mob/user) var/screwup = rand(1,10) switch(screwup) if(1 to 5) //50% of just draining the battery and making future malfunctions more likely power_supply.charge = 0 var/turf/T = get_turf(src) var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() sparks.set_up(2, 1, T) sparks.start() update_icon() user.visible_message(span_warning("\The [src] shorts out!"), span_danger("\the [src] shorts out!")) failurechance += rand(1,5) return if(6 to 7) //20% chance of weakening the beam type, possibly to uselessness var/obj/item/projectile/beam/B = new projectile_type switch(B.damage) if(0) return //can't weaken it any further if(1 to 15) //weaklaser becomes practice projectile_type = /obj/item/projectile/beam/practice if(16 to 40) //regular becomes weaklaser projectile_type = /obj/item/projectile/beam/weaklaser if(41 to 50) //sniper becomes regular projectile_type = /obj/item/projectile/beam if(51 to 60) //heavy becomes sniper projectile_type = /obj/item/projectile/beam/sniper if(61 to 80) //cannon becomes heavy projectile_type = /obj/item/projectile/beam/heavylaser if(81 to 100) //pulse becomes cannon projectile_type = /obj/item/projectile/beam/heavylaser/cannon user.visible_message(span_warning("\The [src] dims slightly!"), span_danger("\the [src] dims slightly!")) return if(8) //10% chance of reducing the number of shots you have left, or giving you a limit if there isn't one if(!remainingshots) remainingshots = rand(1,40) else remainingshots = min(1, round(remainingshots/2)) user.visible_message(span_warning("\The [src] lets out a faint pop."), span_danger("\the [src] lets out a faint pop.")) if(9) //10% chance of permanently reducing the cell's max charge power_supply.maxcharge = power_supply.maxcharge/2 power_supply.charge = min(power_supply.charge, power_supply.maxcharge) user.visible_message(span_warning("\The [src] sparks,letting off a puff of smoke!"), span_danger("\the [src] sparks,letting off a puff of smoke!")) var/turf/T = get_turf(src) var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() sparks.set_up(2, 1, T) sparks.start() update_icon() if(10) //10% chance of just straight-up breaking on the spot burnout(user) return */ /* * Laser Cannon */ /obj/item/gun/energy/lasercannon name = "laser cannon" desc = "With the laser cannon, the lasing medium is enclosed in a tube lined with uranium-235 and subjected to high neutron \ flux in a nuclear reactor core. This incredible technology may help YOU achieve high excitation rates with small laser volumes!" icon = 'icons/obj/gun.dmi' // CHOMPStation Edit: Override back to base gun.dmi icon_state = "lasercannon" item_state = null wielded_item_state = "mhdhowitzer-wielded" //Placeholder origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 6, TECH_POWER = 6) //ChompEdit improved. slot_flags = SLOT_BELT|SLOT_BACK projectile_type = /obj/item/projectile/beam/heavylaser/cannon battery_lock = 0 //ChompEdit This thing is worthless with this. fire_delay = 20 w_class = ITEMSIZE_HUGE //CHOMP Edit. Lol a cannon used to be just large size? Are you kidding me? A CANNON. Deserves this. one_handed_penalty = 90 // The thing's heavy and huge. accuracy = 45 charge_cost = 400 //CHOMP Edit. Let's give this thing some more shots, seeing as it needs to be recharged at a charger - Most everything else is cheaper on charge cost now or smaller, this can stay the same, but with replacable batteries. /obj/item/gun/energy/lasercannon/mounted name = "mounted laser cannon" self_recharge = 1 use_external_power = 1 recharge_time = 10 accuracy = 0 // Mounted cannons are just fine the way they are. one_handed_penalty = 0 // Not sure if two-handing gets checked for mounted weapons, but better safe than sorry. projectile_type = /obj/item/projectile/beam/heavylaser charge_cost = 400 fire_delay = 20 /* * X-ray */ /obj/item/gun/energy/xray name = "xray laser gun" desc = "A high-power laser gun capable of expelling concentrated xray blasts, which are able to penetrate matter easier than \ standard photonic beams, resulting in an effective 'anti-armor' energy weapon." icon = 'icons/obj/gun.dmi' // CHOMPStation Edit: Override back to base gun.dmi icon_state = "xray" item_state = "xray" origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 3, TECH_MAGNET = 2) projectile_type = /obj/item/projectile/beam/xray charge_cost = 200 w_class = ITEMSIZE_LARGE //CHOMP Edit. - huge is too big, this thing hits for 25 /* * Marksman Rifle */ /obj/item/gun/energy/sniperrifle name = "marksman energy rifle" desc = "The HI DMR 9E is an older design of Hephaestus Industries. A designated marksman rifle capable of shooting powerful \ ionized beams, this is a weapon to kill from a distance." description_fluff = "The leading arms producer in the SCG, Hephaestus typically only uses its 'top level' branding for its military-grade equipment used by armed forces across human space." icon = 'icons/obj/64x32guns_ch.dmi' // CHOMPEdit: Gun Sprites icon_expected_width = 64 // CHOMPEdit: Gun Sprites icon_state = "sniper" item_state = "sniper" item_state_slots = list(slot_r_hand_str = "lsniper", slot_l_hand_str = "lsniper") wielded_item_state = "lsniper-wielded" origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 5, TECH_POWER = 4) projectile_type = /obj/item/projectile/beam/sniper slot_flags = SLOT_BACK actions_types = list(/datum/action/item_action/use_scope) //Begin CHOMPstation Edit for making this thing not trash //battery_lock = 0 charge_cost = 360 fire_delay = 40 force = 10 w_class = ITEMSIZE_HUGE // So it can't fit in a backpack. accuracy = -30 //shooting at the hip scoped_accuracy = 100 one_handed_penalty = 60 // The weapon itself is heavy, and the long barrel makes it hard to hold steady with just one hand. //End CHOMP Edit. /obj/item/gun/energy/sniperrifle/ui_action_click(mob/user, actiontype) scope() /obj/item/gun/energy/sniperrifle/verb/scope() set category = "Object" set name = "Use Scope" set popup_menu = 1 toggle_scope(2.0) /* * Laser Scattergun (proof of concept) */ /obj/item/gun/energy/lasershotgun name = "laser scattergun" icon = 'icons/obj/energygun.dmi' item_state = "laser" icon_state = "scatter" desc = "A strange Almachi weapon, utilizing a refracting prism to turn a single laser blast into a diverging cluster." origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 1, TECH_MATERIAL = 4) projectile_type = /obj/item/projectile/scatter/laser w_class = ITEMSIZE_HUGE //CHOMP Edit. slot_flags = SLOT_BELT|SLOT_BACK //CHOMP Edit because you can still holster it despite it not fitting in a backpack. /* * Imperial Pistol */ /obj/item/gun/energy/imperial name = "imperial energy pistol" desc = "An elegant weapon developed by the Imperium Auream. Their weaponsmiths have cleverly found a way to make a gun that \ is only about the size of an average energy pistol, yet with the fire power of a laser carbine." icon = 'icons/obj/gun_vr.dmi' icon_override = 'icons/obj/gun_vr.dmi' icon_state = "ge_pistol" item_state = "ge_pistol" slot_flags = SLOT_BELT w_class = ITEMSIZE_NORMAL force = 10 origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 2) matter = list(MAT_STEEL = 2000) fire_sound = 'sound/weapons/mandalorian.ogg' projectile_type = /obj/item/projectile/beam/imperial /* * Mining-Laser Rifle */ /obj/item/gun/energy/mininglaser name = "mining-laser rifle" desc = "An industrial grade mining laser. Comes with a built-in 'stun' mode for encounters with local wildlife." icon = 'icons/obj/gun.dmi' icon_state = "mininglaser" item_state = "mininglaser" fire_delay = 8 slot_flags = SLOT_BELT|SLOT_BACK w_class = ITEMSIZE_LARGE force = 15 origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2) matter = list(MAT_STEEL = 2000) projectile_type = /obj/item/projectile/beam/mininglaser firemodes = list( list(mode_name="mining", fire_delay=8, projectile_type=/obj/item/projectile/beam/mininglaser, charge_cost = 200), list(mode_name="deter", fire_delay=5, projectile_type=/obj/item/projectile/beam/weaklaser, charge_cost = 80), ) /* * Old Laser Rifle */ /obj/item/gun/energy/laser/old name = "vintage laser rifle" desc = "A Hephaestus Industries G32E rifle, designed to kill with concentrated energy blasts. This older model laser rifle only has one firemode." description_fluff = "The leading arms producer in the SCG, Hephaestus typically only uses its 'top level' branding for its military-grade \ equipment used by armed forces across human space." icon_state = "oldlaser" item_state = "laser" fire_delay = 6 slot_flags = SLOT_BELT w_class = ITEMSIZE_NORMAL force = 8 origin_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 1) //Older rifle - less tech matter = list(MAT_STEEL = 1500) projectile_type = /obj/item/projectile/beam/midlaser /* * Mono-Rifle */ /obj/item/gun/energy/monorifle name = "antique mono-rifle" desc = "An old model laser rifle with a nice wood finish. This weapon was only designed to fire once before requiring a recharge." description_fluff = "Modeled after ancient hunting rifles designs, this rifle was dubbed the 'Rainy Day Special' by some, due to its use as the \ choice \"fight-stopper\" of barkeeps. One shot is all it takes... so they say." icon_state = "mono" item_state = "shotgun" origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 4, TECH_POWER = 3) projectile_type = /obj/item/projectile/beam/sniper slot_flags = SLOT_BACK actions_types = list(/datum/action/item_action/aim_down_sights) charge_cost = 2400 fire_delay = 20 force = 8 w_class = ITEMSIZE_HUGE //CHOMP Edit. accuracy = 10 scoped_accuracy = 15 charge_meter = FALSE var/scope_multiplier = 1.5 /obj/item/gun/energy/monorifle/ui_action_click(mob/user, actiontype) sights() /obj/item/gun/energy/monorifle/verb/sights() set category = "Object" set name = "Aim Down Sights" set popup_menu = 1 toggle_scope(scope_multiplier) /obj/item/gun/energy/monorifle/combat name = "combat mono-rifle" desc = "A modernized version of the classic mono-rifle. This one has an optimized capacitor bank that allows the rifle to fire twice before requiring a recharge." description_fluff = "A modern design of a classic rifle produced by a small arms company operating out of Saint Columbia. It was based on the \ antique mono-rifle design that was dubbed the 'Rainy Day Special' by many of its users." icon_state = "cmono" item_state = "cshotgun" charge_cost = 1200 force = 12 accuracy = 0 scoped_accuracy = 20