Files
2016-03-06 20:52:14 +01:00

125 lines
2.7 KiB
Plaintext

/datum/projectile/special
name = "special"
icon = 'icons/obj/projectiles.dmi'
icon_state = "laser"
power = 15
cost = 25
dissipation_rate = 1
dissipation_delay = 0
ks_ratio = 1.0
sname = "laser"
shot_sound = 'sound/weapons/Taser.ogg'
shot_number = 1
damage_type = D_SPECIAL
hit_ground_chance = 50
window_pass = 0
on_hit(atom/hit, direction, projectile)
return
/datum/projectile/special/acid
name = "acid"
icon_state = "radbolt"
power = 45
dissipation_rate = 30
dissipation_delay = 10
sname = "acid"
on_hit(atom/hit, direction, var/obj/projectile/projectile)
var/power = projectile.power
hit.damage_corrosive(power)
potent
power = 100
weak
power = 15
/datum/projectile/special/ice
name = "ice"
icon_state = "ice"
power = 120
dissipation_rate = 10
dissipation_delay = 3
sname = "ice"
on_hit(atom/hit, direction, var/obj/projectile/projectile)
hit.damage_cold(projectile.power / 10)
if (ishuman(hit))
var/mob/living/L = hit
L.bodytemperature -= projectile.power
/datum/projectile/special/shock_orb
name = "energy sphere"
icon = 'icons/obj/artifacts/puzzles.dmi'
icon_state = "sphere"
power = 75
cost = 75
sname = "energy bolt"
dissipation_delay = 15
shot_sound = 'sound/machines/ArtifactPre1.ogg'
color_red = 0.1
color_green = 0.3
color_blue = 1
ks_ratio = 0.8
var/shock_range = 3
var/wattage = 7500
tick(var/obj/projectile/P)
var/list/sfloors = list()
for (var/turf/T in view(shock_range, P))
if (!T.density)
sfloors += T
var/shocks = rand(1, 5)
while (shocks && sfloors.len)
shocks--
var/turf/Q = pick(sfloors)
arcFlashTurf(P, Q, wattage)
sfloors -= Q
/datum/projectile/special/shock_orb/always_mob
tick(var/obj/projectile/P)
var/list/smobs = list()
for (var/mob/M in view(shock_range, P))
smobs += M
var/shocks = rand(1, 5)
while (shocks && smobs.len)
shocks--
var/mob/Q = pick(smobs)
arcFlash(P, Q, wattage)
smobs -= Q
/datum/projectile/special/midas
name = "Touch of Midas"
icon_state = "ice"
power = 1
dissipation_rate = 1
dissipation_delay = 25
sname = "ice"
color_icon = "#aaff00"
tick(var/obj/projectile/P)
var/turf/T = get_turf(P)
if (T)
T.setMaterial(getCachedMaterial("gold"))
on_hit(var/atom/A)
A.setMaterial(getCachedMaterial("gold"))
/datum/projectile/special/volatile_goo
name = "Volatile Goo"
icon_state = "ice"
power = 1
dissipation_rate = 1
dissipation_delay = 25
sname = "ice"
color_icon = "#ff0000"
tick(var/obj/projectile/P)
var/turf/T = get_turf(P)
if (T)
T.setMaterial(getCachedMaterial("erebite"))
on_hit(var/atom/A)
A.setMaterial(getCachedMaterial("erebite"))