Ejemplo n.º 1
0
    ResourceTuple getResourceForTile(GameTile tile, int numCollected)
    {
        ResourceTuple resourceCollected = new ResourceTuple();
        ResourceType  typeOfResource    = GameAsset.getResourceOfHex(tile.tileType);

        if (typeOfResource != ResourceType.Null)
        {
            resourceCollected.resourceTuple [typeOfResource] = numCollected;
        }

        return(resourceCollected);
    }
Ejemplo n.º 2
0
    /*public void tradeGoldDone(){
     *      Debug.Log ("trade ini");
     *      Debug.Log ("gold cnt: " + CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].getGoldCoinsCnt ());
     *      AssetTuple assetsToReceive = GameAsset.getAssetOfIndex (tradePanel.getGoldChoiceInt(), 1);
     *      if (CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].getGoldCoinsCnt() >= 2) {
     *              EventTransferManager.instance.GoldTrade (PhotonNetwork.player.ID - 1);
     *              EventTransferManager.instance.OnTradeWithBank(CatanManager.instance.currentPlayerTurn, true, assetsToReceive);
     *              tradePanel.hideErrorText ();
     *              tradePanel.gameObject.SetActive (false);
     *              EventTransferManager.instance.OnOperationFailure ();
     *      }
     * }*/
    public void tradeDone()
    {
        int tradeRatio = CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].getMinimumTradeValue(tradePanel.getTradeChoiceInt());

        if (tradePanel.getTradeChoiceInt() >= 5 && CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].unlockedTradingHouse())
        {
            tradeRatio = 2;
        }
        if (CatanManager.instance.players [PhotonNetwork.player.ID - 1].playedMerchantFleet && tradePanel.getTradeChoiceInt() == CatanManager.instance.players [PhotonNetwork.player.ID - 1].merchantFleetSelection)
        {
            tradeRatio = 2;
        }
        if (CatanManager.instance.merchantController == PhotonNetwork.player.ID - 1)
        {
            ResourceType typeOfResource = GameAsset.getResourceOfHex(GameObject.FindGameObjectWithTag("Merchant").GetComponent <Merchant> ().occupyingTile.tileType);
            if ((int)typeOfResource == tradePanel.getTradeChoiceInt())
            {
                tradeRatio = 2;
            }
        }
        AssetTuple assetsToSpend   = GameAsset.getAssetOfIndex(tradePanel.getTradeChoiceInt(), tradeRatio);
        AssetTuple assetsToReceive = GameAsset.getAssetOfIndex(tradePanel.getReceiveChoiceInt(), 1);

        if (CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].hasAvailableAssets(assetsToSpend))
        {
            //CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].spendAssets (assetsToSpend);
            //CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].receiveAssets (assetsToReceive);
            EventTransferManager.instance.OnTradeWithBank(CatanManager.instance.currentPlayerTurn, false, assetsToSpend);
            EventTransferManager.instance.OnTradeWithBank(CatanManager.instance.currentPlayerTurn, true, assetsToReceive);

            //print (players [currentPlayerTurn].playerName + " gives 4 " + tradePanel.getTradeChoiceInt ().ToString () + " to the bank and receives 1 " + assetsToReceive.ToString());
            tradePanel.hideErrorText();
            tradePanel.gameObject.SetActive(false);

            EventTransferManager.instance.OnOperationFailure();
        }
        else
        {
            print("Insufficient resources! Please try again...");
            tradePanel.showNotEnoughError(tradePanel.getTradeChoiceInt());
        }
    }
Ejemplo n.º 3
0
    void resourceCollectionEvent(int diceOutcome)
    {
        for (int i = 0; i < players.Count; i++)
        {
            if (setupPhase && i != currentPlayerTurn)
            {
                continue;
            }
            else
            {
                List <GameTile> eligibleTilesForPlayer = getTilesWithDiceValue(players [i], diceOutcome, false);

                for (int j = 0; j < eligibleTilesForPlayer.Count; j++)
                {
                    if (eligibleTilesForPlayer [j].canProduce())
                    {
                        print(players [i].playerName + " gets " + "1 " + GameAsset.getResourceOfHex(eligibleTilesForPlayer [j].tileType));
                        giveResourcesToPlayer(players [i], getResourceForTile(eligibleTilesForPlayer [j], 1));
                    }
                }
            }
        }
    }
Ejemplo n.º 4
0
 // Update is called once per frame
 void Update()
 {
     if (CatanManager.instance.players [PhotonNetwork.player.ID - 1].playedMerchantFleet && giveselection == CatanManager.instance.players [PhotonNetwork.player.ID - 1].merchantFleetSelection)
     {
         Text giveText = GetComponentsInChildren <Text> () [0];
         giveText.text = "Give 2: ";
     }
     if (CatanManager.instance.merchantController == PhotonNetwork.player.ID - 1)
     {
         ResourceType typeOfResource = GameAsset.getResourceOfHex(GameObject.FindGameObjectWithTag("Merchant").GetComponent <Merchant> ().occupyingTile.tileType);
         if ((int)typeOfResource == giveselection)
         {
             Text giveText = GetComponentsInChildren <Text> () [0];
             giveText.text = "Give 2: ";
         }
         else
         {
             int tradeRatio = CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].getMinimumTradeValue(giveselection);
             if (getTradeChoiceInt() >= 5 && CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].unlockedTradingHouse())
             {
                 tradeRatio = 2;
             }
             Text giveText = GetComponentsInChildren <Text> () [0];
             giveText.text = "Give " + tradeRatio + ":";
         }
     }
     else
     {
         int tradeRatio = CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].getMinimumTradeValue(giveselection);
         if (getTradeChoiceInt() >= 5 && CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].unlockedTradingHouse())
         {
             tradeRatio = 2;
         }
         Text giveText = GetComponentsInChildren <Text> () [0];
         giveText.text = "Give " + tradeRatio + ":";
     }
 }