/obj/item/projectile/energy name = "energy" icon_state = "spark" damage = 0 damage_type = BURN check_armour = "energy" var/flash_strength = 10 //releases a burst of light on impact or after travelling a distance /obj/item/projectile/energy/flash name = "chemical shell" icon_state = "bullet" damage = 5 kill_count = 15 //if the shell hasn't hit anything after travelling this far it just explodes. var/flash_range = 0 var/brightness = 7 var/light_colour = "#ffffff" /obj/item/projectile/energy/flash/on_impact(var/atom/A) var/turf/T = flash_range? src.loc : get_turf(A) if(!istype(T)) return //blind adjacent people for (var/mob/living/carbon/M in viewers(T, flash_range)) if(M.eyecheck() < 1) M.flash_eyes() if(ishuman(M)) var/mob/living/carbon/human/H = M flash_strength *= H.species.flash_mod if(flash_strength > 0) H.confused = max(H.confused, flash_strength + 5) H.eye_blind = max(H.eye_blind, flash_strength) H.eye_blurry = max(H.eye_blurry, flash_strength + 5) H.adjustHalLoss(22) // Five flashes to stun. Bit weaker than melee flashes due to being ranged. //snap pop playsound(src, 'sound/effects/snap.ogg', 50, 1) src.visible_message("\The [src] explodes in a bright flash!") var/datum/effect/effect/system/spark_spread/sparks = PoolOrNew(/datum/effect/effect/system/spark_spread) sparks.set_up(2, 1, T) sparks.start() new /obj/effect/decal/cleanable/ash(src.loc) //always use src.loc so that ash doesn't end up inside windows new /obj/effect/effect/smoke/illumination(T, 5, brightness, brightness, light_colour) //blinds people like the flash round, but can also be used for temporary illumination /obj/item/projectile/energy/flash/flare damage = 10 flash_range = 1 brightness = 15 flash_strength = 20 /obj/item/projectile/energy/flash/flare/on_impact(var/atom/A) light_colour = pick("#e58775", "#ffffff", "#90ff90", "#a09030") ..() //initial flash //residual illumination new /obj/effect/effect/smoke/illumination(src.loc, rand(190,240) SECONDS, range=8, power=3, color=light_colour) //same lighting power as flare /obj/item/projectile/energy/electrode name = "electrode" icon_state = "spark" nodamage = 1 taser_effect = 1 agony = 40 damage_type = HALLOSS light_range = 2 light_power = 0.5 light_color = "#FFFFFF" //Damage will be handled on the MOB side, to prevent window shattering. /obj/item/projectile/energy/electrode/strong agony = 55 /obj/item/projectile/energy/electrode/stunshot name = "stunshot" damage = 5 taser_effect = 1 agony = 80 /obj/item/projectile/energy/declone name = "declone" icon_state = "declone" nodamage = 1 damage_type = CLONE irradiate = 40 light_range = 2 light_power = 0.5 light_color = "#33CC00" /obj/item/projectile/energy/dart name = "dart" icon_state = "toxin" damage = 5 damage_type = TOX agony = 120 check_armour = "energy" /obj/item/projectile/energy/bolt name = "bolt" icon_state = "cbbolt" damage = 10 damage_type = TOX nodamage = 0 agony = 40 stutter = 10 /obj/item/projectile/energy/bolt/large name = "largebolt" damage = 20 /obj/item/projectile/energy/neurotoxin name = "neuro" icon_state = "neurotoxin" damage = 5 damage_type = TOX weaken = 5 /obj/item/projectile/energy/phoron name = "phoron bolt" icon_state = "energy" damage = 20 damage_type = TOX irradiate = 20 light_range = 2 light_power = 0.5 light_color = "#33CC00"