Exemple #1
0
    //getting possible upgrades for each unit
    //returns null if there is no possible upgrade remaining
    public List <Action> PossibleUpgrades()
    {
        List <Action> upgradesAvailable = new List <Action>();

        switch (unitType)
        {
        case (UnitType.MELEE):
            if (unitRank.Equals(UnitRank.RECRUIT))
            {
                upgradesAvailable.Add(UpgradeToMelee1);
                upgradesAvailable.Add(UpgradeToRanged1);
            }
            else if (unitRank.Equals(UnitRank.MELEE1))
            {
                upgradesAvailable.Add(UpgradeToMelee2);
            }
            else if (unitRank.Equals(UnitRank.MELEE2))
            {
                upgradesAvailable.Add(UpgradeToMelee3);
                upgradesAvailable.Add(UpgradeToCavalry1);
            }
            else if (unitRank.Equals(UnitRank.MELEE3))
            {
                //end up the line
            }
            break;

        case (UnitType.RANGED):
            if (unitRank.Equals(UnitRank.RANGED1))
            {
                upgradesAvailable.Add(UpgradeToRanged2);
            }
            if (unitRank.Equals(UnitRank.RANGED2))
            {
                upgradesAvailable.Add(UpgradeToRanged3);
            }
            if (unitRank.Equals(UnitRank.RANGED3))
            {
                //end of the line
            }
            break;

        case (UnitType.CAVALRY):
            if (unitRank.Equals(UnitRank.CAVALRY1))
            {
                //end of the line
            }
            break;
        }
        return(upgradesAvailable);
    }
 private void HandleSetup(RaycastHit[] hits, bool selectable, BoardPosition position, UnitPiece unit, Vector3 tileVector)
 {
     //Handle mouse click
     if (Input.GetMouseButtonDown(0))
     {
         if (hits.Length == 0)
         {
             highlightCube.SetActive(false);
         }
         else if (selectable && !placementRank.Equals(UnitRank.Unknown))
         {
             UnitManager.AddPiece(position, placementRank);
         }
     }
     else if (Input.GetMouseButtonDown(1))
     {
         //Remove existing piece
         if (!unit.Rank.Equals(UnitRank.Unknown))
         {
             UnitManager.RemovePiece(position);
         }
     }
 }
    //call this from inside button() method
    //sets current button, and purchasable buttons
    //also can set the text etc
    public void SetButtons(Unit unit)
    {
        oldUnitRef = unit;

        purchasableButtons = new Button[2];
        disabledButtons    = new Button[8]; // dont need/
        UnitType t = unit.unitType;
        UnitRank r = unit.unitRank;

        Debug.Log(" unit type " + t.ToString() + ", unit rank: " + r.ToString());
        switch (t)
        {
        case (UnitType.MELEE):
            if (r.Equals(UnitRank.RECRUIT))
            {
                currentButton         = recruitButton;
                purchasableButtons[0] = (meleeButtons[0]);
                purchasableButtons[1] = (rangedButtons[0]);
            }
            else if (r.Equals(UnitRank.MELEE1))
            {
                currentButton         = meleeButtons[0];
                purchasableButtons    = new Button[1];
                purchasableButtons[0] = (meleeButtons[1]);
            }
            else if (r.Equals(UnitRank.MELEE2))
            {
                currentButton         = meleeButtons[1];
                purchasableButtons[0] = (cavalryButtons[0]);
                purchasableButtons[1] = (meleeButtons[2]);
            }
            else if (r.Equals(UnitRank.MELEE3))
            {
                currentButton      = meleeButtons[2];
                purchasableButtons = new Button[0];
            }
            break;

        case (UnitType.RANGED):
            if (r.Equals(UnitRank.RANGED1))
            {
                currentButton         = rangedButtons[0];
                purchasableButtons    = new Button[1];
                purchasableButtons[0] = (rangedButtons[1]);
            }
            if (r.Equals(UnitRank.RANGED2))
            {
                currentButton         = rangedButtons[1];
                purchasableButtons    = new Button[1];
                purchasableButtons[0] = (rangedButtons[2]);
            }
            if (r.Equals(UnitRank.RANGED3))
            {
                currentButton      = rangedButtons[2];
                purchasableButtons = new Button[0];
                //purchasableButtons[0] = (rangedButtons[3]);
            }
            break;

        case (UnitType.CAVALRY):
            if (r.Equals(UnitRank.CAVALRY1))
            {
                currentButton      = cavalryButtons[0];
                purchasableButtons = new Button[0];
            }
            break;
        }
    }