My projectile system only recognizes the default Range(8). I can't get it to override (when no Range has been specified) the default range, and change it to the range of the actual obj being used. Can somebody tell me where I am going wrong about this?
Also, any other inefficiencies or ways to enhance the code down below would be appreciated.
Thanks
Projectile
parent_type = /obj
density = 1
layer = MOB_LAYER+2
var
Range = 8
Bump(atom/A)
if(A.density)
Null_Projectile(src)
if(ismob(A))
Null_Projectile(src)
A.overlays += image('Explosion.dmi',icon_state="",layer=EFFECTS_LAYER)
sleep(5)
A.overlays -= image('Explosion.dmi',icon_state="",layer=EFFECTS_LAYER)
proc
Null_Projectile(obj/A)
A.icon = null
A.loc = null
Skill(var/mob/M, _Skill, Range)
Range = src.Range
world<<Range
var/Path = text2path("/Projectile/[_Skill]")
if(!Path)return
var/obj/Skill = new Path(M.loc)
switch(M.dir)
if(NORTH)
Skill.dir = turn(Skill.dir,-180)
Skill.icon = turn(Skill.icon,-180)
if(SOUTH)
Skill.dir = turn(Skill.dir,0)
Skill.icon = turn(Skill.icon,0)
if(WEST)
Skill.dir = turn(Skill.dir,-90)
Skill.icon = turn(Skill.icon,-90)
if(EAST)
Skill.dir = turn(Skill.dir,90)
Skill.icon = turn(Skill.icon,90)
for(var/Travelled=0, Travelled<Range, Travelled++)
step(Skill,Skill.dir)
sleep(1)
Null_Projectile(Skill)
FireBall
icon='Fireball.dmi'
Range = 3
mob/proc
Skill(var/mob/M, _Skill, Range)
var/Projectile/projectile = new
projectile.Skill(M,_Skill,Range)
mob/verb
Fireball()
Skill(usr,"FireBall")