ID:139374
 
Code:
turf
wildgrass // tall grass
icon = 'wildgrass.dmi'
Enter(atom/A)
if(ismob(A))
var/mob/player/M = A

if(M.dir == NORTH)
var/turf/T=new(locate(usr.x,usr.y+1,usr.z))
T.overlays.Add(/turf/wildgrass)
T.overlays.Add(/turf/wildgrassW)
spawn(6)
T.overlays.Remove(/turf/wildgrassW)
T.overlays.Add(/turf/wildgrass)
else if(M.dir == SOUTH)
var/turf/T=new(locate(usr.x,usr.y-1,usr.z))
T.overlays.Add(/turf/wildgrass)
T.overlays.Add(/turf/wildgrassW)
spawn(6)
T.overlays.Remove(/turf/wildgrassW)
T.overlays.Add(/turf/wildgrass)
else if(M.dir == EAST)
var/turf/T=new(locate(usr.x+1,usr.y,usr.z))
T.overlays.Add(/turf/wildgrass)
T.overlays.Add(/turf/wildgrassW)
spawn(6)
T.overlays.Remove(/turf/wildgrassW)
else if(M.dir == WEST)
var/turf/T=new(locate(usr.x-1,usr.y,usr.z))
T.overlays.Add(/turf/wildgrass)
T.overlays.Add(/turf/wildgrassW)
spawn(6)
T.overlays.Remove(/turf/wildgrassW)
T.overlays.Add(/turf/wildgrass)

if(prob(5))
M<<"Pokemon Battle! :O"
return 1
else
return 0


Problem description:
Once I walk on the turf and the overlay is added, I can't get the overlay to go again once I try to walk on it again.

I know this is a really messy piece of code, but it's all I could come up with after being away from BYOND for so long.

Thanks in advance,
Vector2.


*edit*
I've also tried this with flicks, producing no luck at all. It simply deletes the turf under it.



*edit edit*
Nevermind, I've fixed it. For those of you wondering, this is my new code.

turf
wildgrass // tall grass
icon = 'wildgrass.dmi'
Enter(atom/A)
if(ismob(A))
var/mob/player/M = A
var/turf/O = /turf/wildgrassW
src.overlays.Add(O)
spawn(6)
src.overlays.Remove(O)

if(prob(6))
M<<"Pokemon Battle!"
return 1
else
return
New()
..()
var/turf/O = /turf/wildgrassNull
src.overlays.Add(O)



wildgrassW // tall grass while being walked on
icon = 'wildgrassW.dmi'
is = "walk"
layer = MOB_LAYER+1
Enter(atom/A)
if(ismob(A))
var/mob/player/M = A
return 1
else
return 0
wildgrassNull
icon = 'wildgrassW.dmi'
layer = MOB_LAYER+1