public void OpenImportOps() { List <KeyValuePair <string, UnityAction> > importOptions = new List <KeyValuePair <string, UnityAction> >(); GameInterface GI = GameInterface.instance; importOptions.Add(new KeyValuePair <string, UnityAction>("JSON Array - Don't use if attackers and defenders share troop types", () => { GI.textInputPanel.SetPanelInfo("JSON Text to Import", "insert the JSON string here", "", "Import", () => { SerializedTroop[] readTroops = JsonHandlingUtils.JsonToSerializedTroopArray (GI.textInputPanel.theInputField.text); if (readTroops == null) { ModalPanel.Instance().OkBox("Json Import Failed", "Please check your JSON string, it must be something like [{'name':'troop', 'amount':5}]"); return; } TroopList attackersRemaining = new TroopList(), defendersRemaining = new TroopList(); foreach (SerializedTroop tnp in readTroops) { //Debug.Log("got this kvp: " + tnp.name + " : " + tnp.amount); TroopNumberPair convertedTNP = JsonHandlingUtils.SerializedTroopToTroopNumberPair(tnp); if (convertedTNP.troopAmount > 0) { if (battlePhase.battleData.defenderSideInfo.sideArmy.IndexOfTroopInThisList(convertedTNP.troopTypeID) != -1) { defendersRemaining.Add(convertedTNP); } else if (battlePhase.battleData.attackerSideInfo.sideArmy.IndexOfTroopInThisList(convertedTNP.troopTypeID) != -1) { attackersRemaining.Add(convertedTNP); } } } battlePhase.battleData.defenderSideInfo.SetPostBattleArmyData_RemainingArmy(defendersRemaining); battlePhase.battleData.attackerSideInfo.SetPostBattleArmyData_RemainingArmy(attackersRemaining); if (!battlePhase.battleData.BattleEndCheck()) { //we only need to update side info displays if the battle hasn't ended yet, //because the delegate would take care of it otherwise UpdateArmyDisplays(); } GI.textInputPanel.Close(); }); GI.textInputPanel.Open(); GI.exportOpsPanel.gameObject.SetActive(false); })); //when done preparing options, open the import ops panel GI.exportOpsPanel.Open("Remaining Armies: Import Options", importOptions); }
public void AddTroopEntry(TroopNumberPair tnp) { GameObject newEntry = Instantiate(troopEntryPrefab, troopEntriesContainer); LayoutTooltipTwoTextEntry entryScript = newEntry.GetComponent <LayoutTooltipTwoTextEntry>(); entryScript.leftTxt.text = GameController.GetTroopTypeByID(tnp.troopTypeID).name; entryScript.rightTxt.text = tnp.troopAmount.ToString(); }
public static int CompareTroopNumberPairsByAutocalcPower(TroopNumberPair x, TroopNumberPair y) { return(GameController.GetTroopTypeByID(x.troopTypeID). autoResolvePower.CompareTo(GameController.GetTroopTypeByID(y.troopTypeID).autoResolvePower)); }