Files
Paradise/code/modules/projectiles/guns/alien.dm
2018-07-18 01:13:24 -04:00

104 lines
3.0 KiB
Plaintext

/obj/item/gun/projectile/automatic/spikethrower
name = "\improper Vox spike thrower"
desc = "A vicious alien projectile weapon. Parts of it quiver gelatinously, as though the thing is insectile and alive."
icon_state = "spikethrower"
item_state = "spikethrower"
w_class = WEIGHT_CLASS_SMALL
fire_sound_text = "a strange noise"
mag_type = /obj/item/ammo_box/magazine/internal/spikethrower
burst_size = 2
fire_delay = 3
can_suppress = 0
var/charge_tick = 0
var/charge_delay = 15
restricted_species = list(/datum/species/vox)
/obj/item/gun/projectile/automatic/spikethrower/New()
..()
processing_objects.Add(src)
/obj/item/gun/projectile/automatic/spikethrower/Destroy()
processing_objects.Remove(src)
return ..()
/obj/item/gun/projectile/automatic/spikethrower/update_icon()
return
/obj/item/gun/projectile/automatic/spikethrower/process()
charge_tick++
if(charge_tick < charge_delay || !magazine)
return
charge_tick = 0
var/obj/item/ammo_casing/caseless/spike/S = new(get_turf(src))
magazine.give_round(S)
return 1
/obj/item/gun/projectile/automatic/spikethrower/attack_self()
return
/obj/item/gun/projectile/automatic/spikethrower/process_chamber(eject_casing = 0, empty_chamber = 1)
..()
/obj/item/ammo_box/magazine/internal/spikethrower
name = "\improper Vox spikethrower internal magazine"
ammo_type = /obj/item/ammo_casing/caseless/spike
caliber = "spike"
max_ammo = 10
/obj/item/ammo_casing/caseless/spike
name = "alloy spike"
desc = "A broadhead spike made out of a weird silvery metal."
projectile_type = /obj/item/projectile/bullet/spike
throwforce = 5
w_class = WEIGHT_CLASS_NORMAL
caliber = "spike"
icon_state = "bolt"
fire_sound = 'sound/weapons/bladeslice.ogg'
/obj/item/projectile/bullet/spike
name = "alloy spike"
desc = "It's about a foot of weird silvery metal with a wicked point."
damage = 25
stun = 1
armour_penetration = 30
icon_state = "magspear"
/obj/item/projectile/bullet/spike/on_hit(atom/target, blocked = 0)
if((blocked != 100) && istype(target, /mob/living/carbon/human))
var/mob/living/carbon/human/H = target
H.bleed(50)
..()
//This gun only functions for armalis. The on-sprite is too huge to render properly on other sprites.
/obj/item/gun/energy/noisecannon
name = "alien heavy cannon"
desc = "It's some kind of enormous alien weapon, as long as a man is tall."
icon_state = "noisecannon"
item_state = "noisecannon"
recoil = 1
force = 10
ammo_type = list(/obj/item/ammo_casing/energy/sonic)
cell_type = /obj/item/stock_parts/cell/super
restricted_species = list(/datum/species/vox/armalis)
/obj/item/gun/energy/noisecannon/update_icon()
return
//Casing
/obj/item/ammo_casing/energy/sonic
projectile_type = /obj/item/projectile/energy/sonic
fire_sound = 'sound/effects/basscannon.ogg'
delay = 40
//Projectile.
/obj/item/projectile/energy/sonic
name = "distortion"
icon_state = "particle"
damage = 60
damage_type = BRUTE
flag = "bullet"
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
weaken = 5
stun = 5