Exemple #1
0
        /// <summary>
        /// returns the special event at the specified location
        /// </summary>
        /// <param name="x"></param>
        /// <param name="y"></param>
        /// <returns></returns>
        public IEventExtender GetEvent(int x, int y, int border)
        {
            for (int i = 0; i < mEvents.Count; i++)
            {
                IEventExtender e = mEvents[i];

                if (x >= e.Rectangle.X - border && y >= e.Rectangle.Y - border &&
                    x < e.Rectangle.Right + border && y < e.Rectangle.Bottom + border)
                {
                    return(e);
                }
            }

            return(null);
        }
Exemple #2
0
        protected virtual async Task <bool> CanPlayerStep(int dx, int dy)
        {
            IEventExtender evt = GetEvent(Player.X + dx, Player.Y + dy, 0);

            if (evt != null)
            {
                bool allowStep = await evt.TryToStepOn(dx, dy);

                if (allowStep == false)
                {
                    return(false);
                }
            }

            return(CanPlayerStepIntoImpl(Player.X + dx, Player.Y + dy));
        }