Ejemplo n.º 1
0
        public void ZoneWalker(object sender, PropertyChangedEventArgs e)
        {
            if (e.PropertyName == "CurrentPosition")
            {
                var walker = sender as IWalker;
                Debug.Assert(walker != null, nameof(walker) + " != null");
                var position = walker.CurrentPosition;

                if (Traveler.AllBorderZonePoints.Contains(position) && walker.Zoning == false)
                {
                    var boundary = Traveler.GetZoneBorderToNameFromPoint(position);
                    Traveler.Walker.Zoning          = true;
                    Traveler.Walker.CurrentPosition = boundary.ToPosition;
                    Traveler.Position    = boundary.ToPosition;
                    Traveler.CurrentZone = World.GetZoneByName(boundary.ToZone);
                }
            }
        }
Ejemplo n.º 2
0
 public Zoner(Traveler traveler, World world)
 {
     Traveler = traveler;
     Traveler.Walker.PropertyChanged += ZoneWalker;
     World = world;
 }