public void displayPanelForAssets(AssetTuple playerAssets, int delta, bool isPositive) { neededDiscards = delta; leftDiscards = neededDiscards; foreach (Text text in assetNumTexts) { text.text = "0"; } for (int i = 0; i < assetSliders.Length; i++) { if (isPositive) { assetSliders [i].maxValue = delta; } else { assetSliders [i].maxValue = playerAssets.GetValueAtIndex(i); } assetSliders [i].minValue = assetSliders [i].value = 0; } currentTuple = playerAssets; selectionMade = false; this.gameObject.SetActive(true); }
public void upgradeScience() { CityImprovementType science = CityImprovementType.Science; if (CatanManager.instance.currentPlayerTurn == PhotonNetwork.player.ID - 1 && CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].canUpgrade(science)) { AssetTuple upgradeCost = CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].cityImprovements.nextImprovementCost(science); if (CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].playedCrane) { upgradeCost.SetValueAtIndex(5, upgradeCost.GetValueAtIndex(5) - 1); CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].playedCrane = false; } EventTransferManager.instance.OnTradeWithBank(CatanManager.instance.currentPlayerTurn, false, upgradeCost); EventTransferManager.instance.OnUpgradeCity(CatanManager.instance.currentPlayerTurn, (int)science); int scienceLevel = CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].cityImprovements.cityImprovements [CityImprovementType.Science]; int politicsLevel = CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].cityImprovements.cityImprovements [CityImprovementType.Politics]; int tradeLevel = CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].cityImprovements.cityImprovements [CityImprovementType.Trade]; openPanel(tradeLevel, politicsLevel, scienceLevel); } }
public void OpenPanel(AssetTuple playerAssets) { for (int i = 0; i < FishTokens.Length; i++) { FishTokens [i].maxValue = playerAssets.GetValueAtIndex(i + 8); FishTokens [i].minValue = FishTokens [i].value = 0; } //set texts to 0 for (int i = 0; i < TokensText.Length; i++) { TokensText [i].text = "0"; } tokensValue = 0; //all rewards disabled for (int i = 0; i < optionsPanel.Count; i++) { optionsPanel [i].GetComponent <FishTradePanelButton> ().instance = this; optionsPanel [i].gameObject.SetActive(false); } selectionGlow.gameObject.SetActive(false); this.gameObject.SetActive(true); }
public void OpenRespond(Player sender, AssetTuple give, AssetTuple recieve) { this.gameObject.SetActive(true); selectionGlow.gameObject.SetActive(false); //setting texts confirmtext.text = "Accept Offer"; canceltext.text = "Reject Offer"; playertext.text = "Offer From"; waiting.text = "Waiting For Response..."; confirm.onClick.RemoveAllListeners(); cancel.onClick.RemoveAllListeners(); //texts start out disabled confirmtext.gameObject.SetActive(false); canceltext.gameObject.SetActive(false); waiting.gameObject.SetActive(false); //confirm is now accept trade confirm.onClick.AddListener(sendResponse); //activate counter button and add listener counter.onClick.AddListener(Counter); counter.gameObject.SetActive(true); //change cancel to reject cancel.onClick.AddListener(Reject); selectionGlow.gameObject.SetActive(false); //fill assets in reverse and disable changing them for (int i = 0; i < giveAssetSliders.Length; i++) { giveAssetSliders [i].maxValue = 10; getAssetSliders [i].maxValue = 10; giveAssetSliders [i].value = recieve.GetValueAtIndex(i); getAssetSliders [i].value = give.GetValueAtIndex(i); giveAssetSliders [i].enabled = false; getAssetSliders [i].enabled = false; } //only 1 player display is needed optionsPanel [0].gameObject.SetActive(true); optionsPanel [1].gameObject.SetActive(false); optionsPanel [2].gameObject.SetActive(false); //1st player panel is enabled but changing it is not possible optionsPanel [0].enabled = false; //set the color and avatar of the panel optionsPanel [0].image.color = sender.playerColor; TradePlayerPanelButton current = optionsPanel [0].GetComponentInChildren <TradePlayerPanelButton>(); //set values for the buttons current.instance = this; //no offset this is correct current.playernumber = sender.playerNumber - 1; current.avatar.sprite = sender.avatar; selectionMade = true; ahack = current; //set button glow current.UpdateSelection(); this.gameObject.SetActive(false); this.gameObject.SetActive(true); }
private IEnumerator playMasterMerchant() { CatanManager clientCatanManager = GameObject.FindGameObjectWithTag("CatanManager").GetComponent <CatanManager> (); //first get possible players List <Player> possibleplayer = new List <Player>(); for (int i = 0; i < PhotonNetwork.playerList.Length; i++) { if (PhotonNetwork.player.ID - 1 != i && clientCatanManager.players [i].getVpPoints() >= clientCatanManager.players [PhotonNetwork.player.ID].getVpPoints()) { possibleplayer.Add(clientCatanManager.players [i]); } } //make user select 1 of the players clientCatanManager.uiManager.robberStealPanel.displayPanelForChoices(possibleplayer); bool selectionMade = false; //get the selection while (!selectionMade) { if (!CatanManager.instance.uiManager.robberStealPanel.selectionMade) { yield return(StartCoroutine(CatanManager.instance.uiManager.robberStealPanel.waitUntilButtonDown())); } if (CatanManager.instance.uiManager.robberStealPanel.selectionMade) { selectionMade = true; } } //get player selection int selection = clientCatanManager.uiManager.robberStealPanel.selection; Debug.Log("selection: " + selection); //take off robber steal panel clientCatanManager.uiManager.robberStealPanel.selectionMade = false; clientCatanManager.uiManager.robberStealPanel.gameObject.SetActive(false); //now show resource selection clientCatanManager.uiManager.discardPanel.title.text = "Select 2 resources to take"; clientCatanManager.uiManager.discardPanel.displayPanelMasterMerchant(clientCatanManager.players [selection].assets, 2); selectionMade = false; while (!selectionMade) { if (!CatanManager.instance.uiManager.discardPanel.selectionMade) { yield return(StartCoroutine(CatanManager.instance.uiManager.discardPanel.waitUntilButtonDown())); } if (CatanManager.instance.uiManager.discardPanel.selectionMade) { selectionMade = true; } } AssetTuple temptuple = clientCatanManager.uiManager.discardPanel.discardTuple; clientCatanManager.uiManager.discardPanel.selectionMade = false; clientCatanManager.uiManager.discardPanel.gameObject.SetActive(false); clientCatanManager.uiManager.discardPanel.title.text = "Discard:"; EventTransferManager.instance.OnTradeWithBank(selection, false, temptuple); EventTransferManager.instance.OnTradeWithBank(PhotonNetwork.player.ID - 1, true, temptuple); //build notification message string message = clientCatanManager.players [PhotonNetwork.player.ID - 1].playerName + " has played the Master Merchant card.and forced you to give: "; for (int i = 0; i < 8; i++) { if (temptuple.GetValueAtIndex(i) > 0) { if (i < 5) { message = message + temptuple.GetValueAtIndex(i) + " " + ((ResourceType)i).ToString() + " and "; } else { message = message + temptuple.GetValueAtIndex(i) + " " + ((CommodityType)(i - 5)).ToString() + " and "; } } } message = message.Substring(0, message.Length - 4); EventTransferManager.instance.sendNotification(message, selection); returnCardToStack(ProgressCardColor.Yellow, ProgressCardType.MasterMerchant); }