public bool EvaluateHex(HexBattale evaluatedHex) { return(evaluatedHex.battaleState == HexState.active && !evaluatedHex.isStrtingHex && !evaluatedHex.isNeighboringHex); }
public void SetDistanceFromStartingHex(HexBattale initialHex) { distanceFromStartingPoint = initialHex.distanceText.distanceFromStartingPoint + initialHex.distanceText.stepsToGo; distanceText.text = distanceFromStartingPoint.ToString(); distanceText.color = new Color32(255, 255, 255, 255); }
private void Start() { IdentifyHexes(); AviablePosition hero = FindObjectOfType <AviablePosition>(); IAdjacentFinder adjacentFinder = new PositionsForFlying(); HexBattale startingHex = hero.GetComponentInParent <HexBattale>(); startingHex.DefineMeAsStartingHex(); hero.GetAvailablePositions(hero.GetComponentInParent <HexBattale>(), 4, adjacentFinder); }
public void GetAdjacentHexesExtended(HexBattale initialHex) { List <HexBattale> neighboursToCheck = NeighboursFinder.GetAdjacentHexes(initialHex, chcekHex); foreach (HexBattale hex in neighboursToCheck) { hex.isNeighboringHex = true; hex.distanceText.SetDistanceFromStartingHex(initialHex); hex.MakeMeAviable(); } }
public void GetAvailablePositions(HexBattale startingHex, int stepsLimit, IAdjacentFinder AdjFinder) { AdjFinder.GetAdjacentHexesExtended(startingHex); for (step = 2; step <= stepsLimit; step++) { initialHexes = GetNewInitialHexes(); foreach (HexBattale hex in initialHexes) { AdjFinder.GetAdjacentHexesExtended(hex); hex.isIncluded = true; } } }
public void GetAdjacentHexesExtended(HexBattale initialHex) { List <HexBattale> neighboursToCheck = NeighboursFinder.GetAdjacentHexes(initialHex, checkHex); foreach (HexBattale hex in neighboursToCheck) { //compare distances between two hexes if (hex.distanceText.EvaluateDistance(initialHex)) { OptimalPath.nextStep = hex; break; } } }
internal void MatchPath() { optimalPath.Clear(); targetHex = BattaleControler.targetToMove; optimalPath.Add(targetHex); //defines the distance from target hex int steps = targetHex.distanceText.distanceFromStartingPoint; for (int i = steps; i > 1;) { AdjacentOption.GetAdjacentHexesExtended(targetHex); targetHex = nextStep; i -= nextStep.distanceText.MakeMePartOfOptimalPath(); } ManagePath(); }
static public List <HexBattale> GetAdjacentHexes(HexBattale startingHex, IEvaluateHex chcekHex) { allNeighbours.Clear(); int initialX = startingHex.horizonalCoordinate - 1; int initialY = startingHex.verticalCoordinate - 1; for (int x = -1; x <= 1; x++) { for (int y = -1; y <= 1; y++) { if (x + y != 0 && chcekHex.EvaluateHex(FieldMenager.allHexesArray[initialX + x, initialY + y]) && FieldMenager.allHexesArray[initialX + x, initialY + y].battaleState == HexState.active) { allNeighbours.Add(FieldMenager.allHexesArray[initialX + x, initialY + y]); } } } return(allNeighbours); }
public bool EvaluateDistance(HexBattale initialHex) { return(distanceFromStartingPoint + stepsToGo == initialHex.distanceText.distanceFromStartingPoint); }
private void Start() { hex = GetComponentInParent <HexBattale>(); distanceText = GetComponent <Text>(); }
void Awake() { hex = GetComponent <HexBattale>(); fieldManager = FindObjectOfType <FieldMenager>(); }
public bool EvaluateHex(HexBattale evaluatedHex) { return(evaluatedHex.isNeighboringHex); }