コード例 #1
0
 public bool EvaluateHex(HexBattale evaluatedHex)
 {
     return(evaluatedHex.battaleState
            == HexState.active &&
            !evaluatedHex.isStrtingHex &&
            !evaluatedHex.isNeighboringHex);
 }
コード例 #2
0
    public void SetDistanceFromStartingHex(HexBattale initialHex)
    {
        distanceFromStartingPoint = initialHex.distanceText.distanceFromStartingPoint
                                    + initialHex.distanceText.stepsToGo;

        distanceText.text  = distanceFromStartingPoint.ToString();
        distanceText.color = new Color32(255, 255, 255, 255);
    }
コード例 #3
0
    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);
    }
コード例 #4
0
    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();
        }
    }
コード例 #5
0
 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;
         }
     }
 }
コード例 #6
0
ファイル: PosForPath.cs プロジェクト: EwaLchowicz/Cywilizacja
    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;
            }
        }
    }
コード例 #7
0
    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();
    }
コード例 #8
0
    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);
    }
コード例 #9
0
 public bool EvaluateDistance(HexBattale initialHex)
 {
     return(distanceFromStartingPoint + stepsToGo ==
            initialHex.distanceText.distanceFromStartingPoint);
 }
コード例 #10
0
 private void Start()
 {
     hex          = GetComponentInParent <HexBattale>();
     distanceText = GetComponent <Text>();
 }
コード例 #11
0
ファイル: ClickOnMe.cs プロジェクト: EwaLchowicz/Cywilizacja
 void Awake()
 {
     hex          = GetComponent <HexBattale>();
     fieldManager = FindObjectOfType <FieldMenager>();
 }
コード例 #12
0
 public bool EvaluateHex(HexBattale evaluatedHex)
 {
     return(evaluatedHex.isNeighboringHex);
 }