/obj/item/gun/energy/ionrifle name = "ion rifle" desc = "A man-portable anti-armor weapon designed to disable mechanical threats at range." icon_state = "ionrifle" item_state = null //so the human update icon uses the icon_state instead. can_flashlight = 1 w_class = WEIGHT_CLASS_HUGE flags_1 = CONDUCT_1 slot_flags = SLOT_BACK ammo_type = list(/obj/item/ammo_casing/energy/ion) ammo_x_offset = 3 flight_x_offset = 17 flight_y_offset = 9 /obj/item/gun/energy/ionrifle/emp_act(severity) return /obj/item/gun/energy/ionrifle/carbine name = "ion carbine" desc = "The MK.II Prototype Ion Projector is a lightweight carbine version of the larger ion rifle, built to be ergonomic and efficient." icon_state = "ioncarbine" w_class = WEIGHT_CLASS_NORMAL slot_flags = SLOT_BELT pin = null ammo_x_offset = 2 flight_x_offset = 18 flight_y_offset = 11 /obj/item/gun/energy/decloner name = "biological demolecularisor" desc = "A gun that discharges high amounts of controlled radiation to slowly break a target into component elements." icon_state = "decloner" ammo_type = list(/obj/item/ammo_casing/energy/declone) pin = null ammo_x_offset = 1 /obj/item/gun/energy/decloner/update_icon() ..() var/obj/item/ammo_casing/energy/shot = ammo_type[select] if(cell.charge > shot.e_cost) add_overlay("decloner_spin") /obj/item/gun/energy/floragun name = "floral somatoray" desc = "A tool that discharges controlled radiation which induces mutation in plant cells." icon_state = "flora" item_state = "gun" ammo_type = list(/obj/item/ammo_casing/energy/flora/yield, /obj/item/ammo_casing/energy/flora/mut) modifystate = 1 ammo_x_offset = 1 selfcharge = 1 /obj/item/gun/energy/meteorgun name = "meteor gun" desc = "For the love of god, make sure you're aiming this the right way!" icon_state = "meteor_gun" item_state = "c20r" w_class = WEIGHT_CLASS_BULKY ammo_type = list(/obj/item/ammo_casing/energy/meteor) cell_type = "/obj/item/stock_parts/cell/potato" clumsy_check = 0 //Admin spawn only, might as well let clowns use it. selfcharge = 1 /obj/item/gun/energy/meteorgun/pen name = "meteor pen" desc = "The pen is mightier than the sword." icon = 'icons/obj/bureaucracy.dmi' icon_state = "pen" item_state = "pen" lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' righthand_file = 'icons/mob/inhands/items_righthand.dmi' w_class = WEIGHT_CLASS_TINY /obj/item/gun/energy/mindflayer name = "\improper Mind Flayer" desc = "A prototype weapon recovered from the ruins of Research-Station Epsilon." icon_state = "xray" item_state = null ammo_type = list(/obj/item/ammo_casing/energy/mindflayer) ammo_x_offset = 2 /obj/item/gun/energy/kinetic_accelerator/crossbow name = "mini energy crossbow" desc = "A weapon favored by syndicate stealth specialists." icon_state = "crossbow" item_state = "crossbow" w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=2000) suppressed = TRUE ammo_type = list(/obj/item/ammo_casing/energy/bolt) weapon_weight = WEAPON_LIGHT obj_flags = 0 overheat_time = 20 holds_charge = TRUE unique_frequency = TRUE can_flashlight = 0 max_mod_capacity = 0 empty_state = null /obj/item/gun/energy/kinetic_accelerator/crossbow/halloween name = "candy corn crossbow" desc = "A weapon favored by Syndicate trick-or-treaters." icon_state = "crossbow_halloween" item_state = "crossbow" ammo_type = list(/obj/item/ammo_casing/energy/bolt/halloween) /obj/item/gun/energy/kinetic_accelerator/crossbow/large name = "energy crossbow" desc = "A reverse engineered weapon using syndicate technology." icon_state = "crossbowlarge" w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL=4000) suppressed = null ammo_type = list(/obj/item/ammo_casing/energy/bolt/large) pin = null /obj/item/gun/energy/plasmacutter name = "plasma cutter" desc = "A mining tool capable of expelling concentrated plasma bursts. You could use it to cut limbs off xenos! Or, you know, mine stuff." icon_state = "plasmacutter" item_state = "plasmacutter" ammo_type = list(/obj/item/ammo_casing/energy/plasma) flags_1 = CONDUCT_1 attack_verb = list("attacked", "slashed", "cut", "sliced") force = 12 sharpness = IS_SHARP can_charge = 0 heat = 3800 usesound = list('sound/items/welder.ogg', 'sound/items/welder2.ogg') tool_behaviour = TOOL_WELDER toolspeed = 0.7 //plasmacutters can be used as welders, and are faster than standard welders /obj/item/gun/energy/plasmacutter/Initialize() . = ..() AddComponent(/datum/component/butchering, 25, 105, 0, 'sound/weapons/plasma_cutter.ogg') /obj/item/gun/energy/plasmacutter/examine(mob/user) ..() if(cell) to_chat(user, "[src] is [round(cell.percent())]% charged.") /obj/item/gun/energy/plasmacutter/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/stack/sheet/mineral/plasma)) I.use(1) cell.give(1000) to_chat(user, "You insert [I] in [src], recharging it.") else if(istype(I, /obj/item/stack/ore/plasma)) I.use(1) cell.give(500) to_chat(user, "You insert [I] in [src], recharging it.") else ..() // Tool procs, in case plasma cutter is used as welder /obj/item/gun/energy/plasmacutter/tool_use_check(mob/living/user, amount) if(cell.charge >= amount * 100) return TRUE to_chat(user, "You need more charge to complete this task!") return FALSE /obj/item/gun/energy/plasmacutter/use(amount) return cell.use(amount * 100) /obj/item/gun/energy/plasmacutter/update_icon() return /obj/item/gun/energy/plasmacutter/adv name = "advanced plasma cutter" icon_state = "adv_plasmacutter" force = 15 ammo_type = list(/obj/item/ammo_casing/energy/plasma/adv) /obj/item/gun/energy/wormhole_projector name = "bluespace wormhole projector" desc = "A projector that emits high density quantum-coupled bluespace beams." ammo_type = list(/obj/item/ammo_casing/energy/wormhole, /obj/item/ammo_casing/energy/wormhole/orange) item_state = null icon_state = "wormhole_projector" var/obj/effect/portal/p_blue var/obj/effect/portal/p_orange /obj/item/gun/energy/wormhole_projector/update_icon() icon_state = "[initial(icon_state)][select]" item_state = icon_state return /obj/item/gun/energy/wormhole_projector/process_chamber() ..() select_fire() /obj/item/gun/energy/wormhole_projector/proc/on_portal_destroy(obj/effect/portal/P) if(P == p_blue) p_blue = null else if(P == p_orange) p_orange = null /obj/item/gun/energy/wormhole_projector/proc/has_blue_portal() if(istype(p_blue) && !QDELETED(p_blue)) return TRUE return FALSE /obj/item/gun/energy/wormhole_projector/proc/has_orange_portal() if(istype(p_orange) && !QDELETED(p_orange)) return TRUE return FALSE /obj/item/gun/energy/wormhole_projector/proc/crosslink() if(!has_blue_portal() && !has_orange_portal()) return if(!has_blue_portal() && has_orange_portal()) p_orange.link_portal(null) return if(!has_orange_portal() && has_blue_portal()) p_blue.link_portal(null) return p_orange.link_portal(p_blue) p_blue.link_portal(p_orange) /obj/item/gun/energy/wormhole_projector/proc/create_portal(obj/item/projectile/beam/wormhole/W, turf/target) var/obj/effect/portal/P = new /obj/effect/portal(target, src, 300, null, FALSE, null) if(istype(W, /obj/item/projectile/beam/wormhole/orange)) qdel(p_orange) p_orange = P P.icon_state = "portal1" else qdel(p_blue) p_blue = P crosslink() /* 3d printer 'pseudo guns' for borgs */ /obj/item/gun/energy/printer name = "cyborg lmg" desc = "A machinegun that fires 3d-printed flechettes slowly regenerated using a cyborg's internal power source." icon_state = "l6closed0" icon = 'icons/obj/guns/projectile.dmi' cell_type = "/obj/item/stock_parts/cell/secborg" ammo_type = list(/obj/item/ammo_casing/energy/c3dbullet) can_charge = 0 use_cyborg_cell = 1 /obj/item/gun/energy/printer/update_icon() return /obj/item/gun/energy/printer/emp_act() return /obj/item/gun/energy/temperature name = "temperature gun" icon_state = "freezegun" desc = "A gun that changes temperatures." ammo_type = list(/obj/item/ammo_casing/energy/temp, /obj/item/ammo_casing/energy/temp/hot) cell_type = "/obj/item/stock_parts/cell/high" pin = null /obj/item/gun/energy/temperature/security name = "security temperature gun" desc = "A weapon that can only be used to its full potential by the truly robust." pin = /obj/item/device/firing_pin /obj/item/gun/energy/laser/instakill name = "instakill rifle" icon_state = "instagib" item_state = "instagib" desc = "A specialized ASMD laser-rifle, capable of flat-out disintegrating most targets in a single hit." ammo_type = list(/obj/item/ammo_casing/energy/instakill) force = 60 /obj/item/gun/energy/laser/instakill/red desc = "A specialized ASMD laser-rifle, capable of flat-out disintegrating most targets in a single hit. This one has a red design." icon_state = "instagibred" item_state = "instagibred" ammo_type = list(/obj/item/ammo_casing/energy/instakill/red) /obj/item/gun/energy/laser/instakill/blue desc = "A specialized ASMD laser-rifle, capable of flat-out disintegrating most targets in a single hit. This one has a blue design." icon_state = "instagibblue" item_state = "instagibblue" ammo_type = list(/obj/item/ammo_casing/energy/instakill/blue) /obj/item/gun/energy/laser/instakill/emp_act() //implying you could stop the instagib return /obj/item/gun/energy/gravity_gun name = "one-point bluespace-gravitational manipulator" desc = "An experimental, multi-mode device that fires bolts of Zero-Point Energy, causing local distortions in gravity." ammo_type = list(/obj/item/ammo_casing/energy/gravityrepulse, /obj/item/ammo_casing/energy/gravityattract, /obj/item/ammo_casing/energy/gravitychaos) item_state = "gravity_gun" icon_state = "gravity_gun" var/power = 4