Turf Overlays in Developer Help
|
|
Code:
turf wildgrass 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 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 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
|
|