Esempio n. 1
0
    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;
                }
            }
        }
    }