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; }
private void HandleQueryPosition(GameQuery_Position q) { q.RegisterPosition(this.X, this.Y, this.BlocksMovement); }