public void PlayersTurn(IInitialHexes getInitialHexes) { IAdjacentFinder adjFinder = GetTypeOfHero(); // determina el tipo de movimiento int stepsLimit = heroData.CurrentVelocity; // obtiene la velocidad actual del atacante // determina posibles posiciones para el regimiento de un jugador GetComponent <AvailablePos>().GetAvailablePositions(stepsLimit, adjFinder, getInitialHexes); DefineTargets();// muestra objetivos potenciales }
public void PlayersTurn(IInitialHexes getInitialHexes) { IAdjacentFinder adjFinder = GetTypeOfHero(); //determines the type of movement int stepsLimit = heroData.CurrentVelocity; //gets current velocity of the atacker //determines possible positions for a player’s regiment GetComponent <AvailablePos>().GetAvailablePositions(stepsLimit, adjFinder, getInitialHexes); DefineTargets();//displays potencial targets }
void AIIStartsMoving(BattleHex targetToAttack) //determines the distance from the attack target to each hex { battleController.CleanField(); //clear properties of all hexes before new calculation targetToAttack.DefineMeAsStartingHex(); //the starting hex is the hex occupied by the target of the attack int stepsLimit = battleController.stepsToCheckWholeField; //number of steps enough to check the entire battlefield IInitialHexes getInitialHexes = new InitialPos(); //each hex validation rule //determines the distance from the attack target to each hex tocheckTheField.GetAvailablePositions(stepsLimit, getInitialHexes, targetToAttack); IAdjacentFinder adjFinder = BattleController.currentAtacker.GetTypeOfHero(); //determines the type of movement AIDefinesPath(adjFinder); //determines the optimal path and starts moving }
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; } } }
void AIIStartsMoving(BattleHex targetToAttack) // determina la distancia desde el objetivo del ataque a cada hex { battleController.CleanField(); // borrar las propiedades de todos los hexes antes de un nuevo cálculo targetToAttack.DefineMeAsStartingHex(); // el hex de inicio es el hex ocupado por el objetivo del ataque int stepsLimit = battleController.stepsToCheckWholeField; // número de pasos suficientes para comprobar todo el campo de batalla IInitialHexes getInitialHexes = new InitialPos(); // cada regla de validación hexadecimal // determina la distancia desde el objetivo del ataque a cada hex tocheckTheField.GetAvailablePositions(stepsLimit, getInitialHexes, targetToAttack); IAdjacentFinder adjFinder = BattleController.currentAtacker.GetTypeOfHero(); // determina el tipo de movimiento AIDefinesPath(adjFinder); // determina la ruta óptima y comienza a moverse }
void AIDefinesPath(IAdjacentFinder adjFinder)//determines the optimal path and starts moving { //assigns a value to the static variable used by the Move and Optimal Path classes BattleController.targetToMove = AISelectsPosToOcuppy(); battleController.CleanField(); // clear the entire battlefield from previous calculations IInitialHexes getInitialHexes = new InitialPos(); //each hex validation rule int stepsLimit = hero.heroData.CurrentVelocity; BattleHex startingHex = BattleController.currentAtacker.GetComponentInParent <BattleHex>(); startingHex.DefineMeAsStartingHex();//marks a new starting hex //select all the hexes that the troll can occupy availablePos.GetAvailablePositions(stepsLimit, adjFinder, getInitialHexes); GetComponent <OptimalPath>().MatchPath(); //determine the optimal path move.StartsMoving(); //troll begins to move }
void AIDefinesPath(IAdjacentFinder adjFinder)// determina la ruta óptima y comienza a moverse { // asigna un valor a la variable estática utilizada por las clases Move y Optimal Path BattleController.targetToMove = AISelectsPosToOcuppy(); battleController.CleanField(); // limpia todo el campo de batalla de los cálculos anteriores IInitialHexes getInitialHexes = new InitialPos(); // cada regla de validación hexadecimal int stepsLimit = hero.heroData.CurrentVelocity; BattleHex startingHex = BattleController.currentAtacker.GetComponentInParent <BattleHex>(); startingHex.DefineMeAsStartingHex();// marca un nuevo hexadecimal inicial // selecciona todos los hexes que puede ocupar el troll availablePos.GetAvailablePositions(stepsLimit, adjFinder, getInitialHexes); GetComponent <OptimalPath>().MatchPath(); // determina la ruta óptima move.StartsMoving(); // El troll comienza a moverse }
List <BattleHex> initialHexes = new List <BattleHex>(); //collects neighbouring hexes for evaluated hex public void GetAvailablePositions(int stepsLimit, IAdjacentFinder AdjFinder, IInitialHexes getHexesToCheck)//looks for all positions available { BattleHex startingHex = BattleController.currentAtacker.GetComponentInParent <BattleHex>(); AdjFinder.GetAdjacentHexesExtended(startingHex);//looks for hexes adjacent to starting hex. Flying unit for now //runs iterations to find all positions available. steps=number of iterations for (step = 2; step <= stepsLimit; step++) { initialHexes = getHexesToCheck.GetNewInitialHexes();//collects hexes ready for a new iteration foreach (BattleHex hex in initialHexes) { AdjFinder.GetAdjacentHexesExtended(hex); // defines neighbouring hexes for each hex in the collection hex.isIncluded = true; //defines evaluated hex as available position } } }
List <BattleHex> initialHexes = new List <BattleHex>(); // recopila los hexes vecinos para el hex evaluado public void GetAvailablePositions(int stepsLimit, IAdjacentFinder AdjFinder, IInitialHexes getHexesToCheck)// busca todas las posiciones disponibles { BattleHex startingHex = BattleController.currentAtacker.GetComponentInParent <BattleHex>(); AdjFinder.GetAdjacentHexesExtended(startingHex);// busca hexágonos adyacentes al hex inicial. Unidad voladora por ahora // ejecuta iteraciones para encontrar todas las posiciones disponibles. pasos = número de iteraciones for (step = 2; step <= stepsLimit; step++) { initialHexes = getHexesToCheck.GetNewInitialHexes();// recopila hexágonos listos para una nueva iteración foreach (BattleHex hex in initialHexes) { AdjFinder.GetAdjacentHexesExtended(hex); // define los hexes vecinos para cada hex de la colección hex.isIncluded = true; // define el hexadecimal evaluado como posición disponible } } }