//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; } }