public void wander() { var offset = UnityEngine.Random.Range(0, 4); for (var @base = 0; @base < 4; @base += 1) { var ordinal = (offset + @base) % 4; var dir = (OrthoDir)ordinal; var newPos = mapEvent.Position + dir.XY2D(); if (mapEvent.Map.IsChipPassableAt(newPos)) { if (Global.Instance().Maps.Avatar.Parent.Position == newPos) { mapEvent.GetComponent <CharaEvent>().Facing = dir; Run(MapEvent.PropertyLuaCollide); break; } else if (mapEvent.CanPassAt(newPos) && mapEvent.Map.GetEventAt <MapEvent>(newPos) == null) { context.RunRoutineFromLua(mapEvent.StepRoutine(dir)); break; } } } }