Esempio n. 1
0
        public void DeterminePatrolPath(ArenaState state, IRandom rand)
        {
            this.PatrolStart = this.Parent.TryGetPosition();
            var  cells = state.WalkableCells();
            Cell cell  = rand.RandomElement(cells);

            while (Config.MinPatrolDistance < ArenaState.DistanceBetweenPositions(this.PatrolStart.X,
                                                                                  this.PatrolStart.Y, cell.X, cell.Y))
            {
                cell = rand.RandomElement(cells);
            }
            var endPos = new GameQuery_Position();

            endPos.RegisterPosition(cell.X, cell.Y, false);
            this.PatrolEnd = endPos;
        }
Esempio n. 2
0
 private void HandleQueryPosition(GameQuery_Position q)
 {
     q.RegisterPosition(this.X, this.Y, this.BlocksMovement);
 }