Files
Aurora-Old/code/modules/projectiles/guns/projectile/reloadlaser.dm
T
Duck- a7dcf886ae Reloadable lasers- needs sprites
Reloadable lasers plus upgrade thing stuff.  Tested, works.  Not added
to game yet.  Not twohanded yet-- maybe we should leave it onehanded?

Numbers for the laser are still up in the air.  It's pretty neat.  You
can load it with different types of lasers and stuff.
2014-12-23 00:53:22 -05:00

180 lines
5.7 KiB
Plaintext

/obj/item/weapon/gun/projectile/laser //butts
desc = "a basic weapon designed to kill with concentrated energy bolts."
name = "laser rifle"
caliber = "laser"
w_class = 3.0
recoil = 0
ammo_type = "/obj/item/ammo_casing/laser"
max_shells = 100
load_method = 2 //0 = Single shells or quick loader, 1 = box, 2 = magazine
fire_delay = 6
ejectshell = 0
slot_flags = SLOT_BACK
var/modded = 0
var/obj/item/weapon/reloadlasermodkit/mod
//placeholders//
icon_state = "laser"
item_state = "laser"
fire_sound = 'sound/weapons/Laser.ogg'
//placeholders// Well, okay, not the sound.
New()
for(var/i = 1, i <= 30, i++)
loaded += new ammo_type(src)
update_icon()
empty_mag = new /obj/item/ammo_magazine/laser/empty(src)
update_icon()
return
/obj/item/ammo_magazine/laser/empty
max_ammo = 0
/obj/item/ammo_magazine/laser
name = "charge cell (laser)"
desc = "A standard 30-shot cell."
icon_state = "12mm"
origin_tech = "combat=2"
ammo_type = "/obj/item/ammo_casing/laser"
max_ammo = 30
// multiple_sprites = 1
/obj/item/ammo_magazine/laser/pulse
name = "charge cell (pulse)"
desc = "A heavy-duty 15-shot pulse cell."
ammo_type = "/obj/item/ammo_casing/laser/pulse"
max_ammo = 15
/obj/item/ammo_magazine/laser/heavy
name = "charge cell (heavy)"
desc = "A 15-shot cell designed to overload your projectiles with an extremely heavy charge."
ammo_type = "/obj/item/ammo_casing/laser/heavy"
max_ammo = 15
/obj/item/ammo_magazine/laser/practice
name = "charge cell (practice)"
desc = "A hundred-shot cell keyed in to a harmless wavelength for practice shooting."
ammo_type = "/obj/item/ammo_casing/laser/practice"
max_ammo = 100
/obj/item/ammo_magazine/laser/light
name = "charge cell (light)"
desc = "A 60-shot cell designed with capacity in mind. The lasers are weaker, though."
ammo_type = "/obj/item/ammo_casing/laser/light"
max_ammo = 60
/obj/item/ammo_magazine/laser/stun
name = "charge cell (stun)"
desc = "A 20-shot cell that fires lethal incapacitating bolts. Not standard issue."
ammo_type = "/obj/item/ammo_casing/laser/stun"
max_ammo = 20
////////////////////////////
//Shells for the magazines//
////////////////////////////
//don't spawn these you butts//
/obj/item/ammo_casing/laser
desc = "A LASER SHELL. You shouldn't be seeing this."
caliber = "laser"
projectile_type = "/obj/item/projectile/beam"
/obj/item/ammo_casing/laser/pulse
desc = "A PULSE SHELL. You shouldn't be seeing this."
caliber = "laser"
projectile_type = "/obj/item/projectile/beam/pulse"
/obj/item/ammo_casing/laser/heavy
desc = "A LASER CANNON SHELL. You shouldn't be seeing this."
caliber = "laser"
projectile_type = "/obj/item/projectile/beam/heavylaser"
/obj/item/ammo_casing/laser/practice
desc = "A PRACTICE BLANK FAKE LASER SHELL. You shouldn't be seeing this."
caliber = "laser"
projectile_type = "/obj/item/projectile/beam/practice"
/obj/item/ammo_casing/laser/light
desc = "A LIGHT LASER XRAY SHELL. You shouldn't be seeing this."
caliber = "laser"
projectile_type = "/obj/item/projectile/beam/xray/burst"
/obj/item/ammo_casing/laser/stun
desc = "A STUN LASER SHELL. You shouldn't be seeing this."
caliber = "laser"
projectile_type = "/obj/item/projectile/beam/stun"
////////////////////////////////
//////////////mods//////////////
////////////////////////////////
/obj/item/weapon/reloadlasermodkit
desc = "A cheap, disposable modkit designed to rapidly and permanently augment NT-standard laser rifles."
name = "rifle nanokit"
var/modtype = 0
var/uses = 1
var/emagged
icon = 'icons/obj/assemblies.dmi'
icon_state = "posibrain" //the placeholders are real
/* Not sure about this yet.
/obj/item/device/megaphone/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/weapon/card/emag) && !emagged)
user << "\red You sneakily unlock the highly illegal military-grade burstfire augment."
emagged = 1
return
return
*/
/obj/item/weapon/reloadlasermodkit/attack_self(var/mob/user as mob)
if (!emagged)
if (modtype == 0)
user << "<span class='notice'>Size modification selected.</span>"
modtype = 1
else if (modtype == 1)
user << "<span class='notice'>Rapid-fire modification selected.</span>"
modtype = 2
else if (modtype == 2)
user << "<span class='notice'>Silencer modification selected.</span>"
modtype = 0
else if (emagged) //We'll see. Burst is ridiculous, especially on a full-power laser.
user << "<span class='notice'>Burstfire modification selected.</span>"
modtype = 3
/obj/item/weapon/gun/projectile/laser/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, /obj/item/weapon/reloadlasermodkit))
if(user.l_hand != src && user.r_hand != src) //if we're not in his hands
user << "<span class='notice'>You'll need [src] in your hands to do that.</span>"
return
if(src.modded == 1)
user << "<span class='notice'>The frame can only handle one mod.</span>"
return
user.drop_item()
user << "<span class='notice'>You activate the modkit and watch the nanites swarm over [src].</span>"
I.loc = src.mod
src.mod = I
src.modded = 1
if (mod.modtype == 0)
user << "<span class='notice'>[src]'s firerate has been increased.</span>"
src.fire_delay = 4
else if (mod.modtype == 1)
user << "<span class='notice'>[src]'s shape changes rapidly, becoming smaller and more economical.</span>"
src.w_class = 3
else if (mod.modtype == 2)
user << "<span class='notice'>[src] sprouts wave-cancelling emitters. Its shots are now silenced.</span>"
src.silenced = 1
else if (mod.modtype == 3)
user << "<span class='notice'>[src] rapidly reshapes its firing mechanism. It now fires in bursts.</span>"
src.fire_delay = 0
src.projectiles_per_shot = 3
src.fire_cooldown = 1
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
return
..()