public void GenerateDirectionPossibilities(PossibleDirections possibleDirections) { ClearState(); var directionsCount = MonsterDirection.CountPossibleDirections(possibleDirections); var equalPosibility = 1f / directionsCount; if ((possibleDirections & PossibleDirections.Up) == PossibleDirections.Up) { _possibilities.Add(PossibleDirections.Up, equalPosibility); } if ((possibleDirections & PossibleDirections.Down) == PossibleDirections.Down) { _possibilities.Add(PossibleDirections.Down, equalPosibility); } if ((possibleDirections & PossibleDirections.Left) == PossibleDirections.Left) { _possibilities.Add(PossibleDirections.Left, equalPosibility); } if ((possibleDirections & PossibleDirections.Right) == PossibleDirections.Right) { _possibilities.Add(PossibleDirections.Right, equalPosibility); } }