/obj/item/projectile/ion name = "ion bolt" icon_state = "ion" damage = 0 damage_type = BURN nodamage = 1 check_armour = "energy" light_range = 2 light_power = 0.5 light_color = "#55AAFF" var/pulse_range = 1 on_hit(var/atom/target, var/blocked = 0) empulse(target, pulse_range, pulse_range, pulse_range, pulse_range) return 1 /obj/item/projectile/ion/small pulse_range = 0 /obj/item/projectile/bullet/gyro name ="explosive bolt" icon_state= "bolter" damage = 50 check_armour = "bullet" sharp = 1 edge = 1 on_hit(var/atom/target, var/blocked = 0) explosion(target, -1, 0, 2) return 1 /obj/item/projectile/temp name = "freeze beam" icon_state = "ice_2" damage = 0 damage_type = BURN nodamage = 1 check_armour = "energy" var/temperature = 300 light_range = 2 light_power = 0.5 light_color = "#55AAFF" on_hit(var/atom/target, var/blocked = 0)//These two could likely check temp protection on the mob if(istype(target, /mob/living)) var/mob/M = target M.bodytemperature = temperature return 1 /obj/item/projectile/meteor name = "meteor" icon = 'icons/obj/meteor.dmi' icon_state = "smallf" damage = 0 damage_type = BRUTE nodamage = 1 check_armour = "bullet" Bump(atom/A as mob|obj|turf|area) if(A == firer) loc = A.loc return sleep(-1) //Might not be important enough for a sleep(-1) but the sleep/spawn itself is necessary thanks to explosions and metoerhits if(src)//Do not add to this if() statement, otherwise the meteor won't delete them if(A) A.ex_act(2) playsound(src.loc, 'sound/effects/meteorimpact.ogg', 40, 1) for(var/mob/M in range(10, src)) if(!M.stat && !istype(M, /mob/living/silicon/ai))\ shake_camera(M, 3, 1) qdel(src) return 1 else return 0 /obj/item/projectile/energy/floramut name = "alpha somatoray" icon_state = "energy" damage = 0 damage_type = TOX nodamage = 1 check_armour = "energy" light_range = 2 light_power = 0.5 light_color = "#33CC00" on_hit(var/atom/target, var/blocked = 0) var/mob/living/M = target if(ishuman(target)) var/mob/living/carbon/human/H = M if((H.species.flags & IS_PLANT) && (M.nutrition < 500)) if(prob(15)) M.apply_effect((rand(30,80)),IRRADIATE) M.Weaken(5) for (var/mob/V in viewers(src)) V.show_message("\red [M] writhes in pain as \his vacuoles boil.", 3, "\red You hear the crunching of leaves.", 2) if(prob(35)) // for (var/mob/V in viewers(src)) //Public messages commented out to prevent possible metaish genetics experimentation and stuff. - Cheridan // V.show_message("\red [M] is mutated by the radiation beam.", 3, "\red You hear the snapping of twigs.", 2) if(prob(80)) randmutb(M) domutcheck(M,null) else randmutg(M) domutcheck(M,null) else M.adjustFireLoss(rand(5,15)) M.show_message("\red The radiation beam singes you!") // for (var/mob/V in viewers(src)) // V.show_message("\red [M] is singed by the radiation beam.", 3, "\red You hear the crackle of burning leaves.", 2) else if(istype(target, /mob/living/carbon/)) // for (var/mob/V in viewers(src)) // V.show_message("The radiation beam dissipates harmlessly through [M]", 3) M.show_message("\blue The radiation beam dissipates harmlessly through your body.") else return 1 /obj/item/projectile/energy/floramut/gene name = "gamma somatoray" icon_state = "energy2" damage = 0 damage_type = TOX nodamage = 1 check_armour = "energy" var/decl/plantgene/gene = null /obj/item/projectile/energy/florayield name = "beta somatoray" icon_state = "energy2" damage = 0 damage_type = TOX nodamage = 1 check_armour = "energy" light_range = 2 light_power = 0.5 light_color = "#FFFFFF" on_hit(var/atom/target, var/blocked = 0) var/mob/M = target if(ishuman(target)) //These rays make plantmen fat. var/mob/living/carbon/human/H = M if((H.species.flags & IS_PLANT) && (M.nutrition < 500)) M.nutrition += 30 else if (istype(target, /mob/living/carbon/)) M.show_message("\blue The radiation beam dissipates harmlessly through your body.") else return 1 /obj/item/projectile/beam/mindflayer name = "flayer ray" on_hit(var/atom/target, var/blocked = 0) if(ishuman(target)) var/mob/living/carbon/human/M = target M.Confuse(rand(5,8)) /obj/item/projectile/chameleon name = "bullet" icon_state = "bullet" damage = 1 // stop trying to murderbone with a fake gun dumbass!!! embed_chance = 0 // nope nodamage = 1 damage_type = HALLOSS muzzle_type = /obj/effect/projectile/bullet/muzzle