Example #1
0
    public static void payForFactory(Nation player, MyEnum.Goods factoryType)
    {
        int factoryLevel = player.industry.getFactoryLevel(factoryType);

        if (factoryLevel == 0)
        {
            player.consumeGoods(MyEnum.Goods.parts, 1);
            player.consumeGoods(MyEnum.Goods.lumber, 1);
            player.UseAP(1);
            player.useIP(1);
        }
        if (factoryLevel == 1)
        {
            player.consumeGoods(MyEnum.Goods.parts, 2);
            player.consumeGoods(MyEnum.Goods.lumber, 2);
            player.UseAP(1);
            player.useIP(2);
        }
        if (factoryLevel == 2)
        {
            player.consumeGoods(MyEnum.Goods.parts, 2);
            player.consumeGoods(MyEnum.Goods.lumber, 2);
            player.consumeGoods(MyEnum.Goods.gear, 2);
            player.UseAP(2);
            player.useIP(3);
        }
    }
Example #2
0
    private void performGoodTransaction(Nation seller, Nation buyer, Signal offer, Signal bid)
    {
        Market market = State.market;

        MyEnum.Goods good  = offer.getGoodType();
        float        price = market.getPriceOfGood(good);

        if (bid.getOffBidLevel() == MyEnum.OffBidLevels.high)
        {
            price = price * 1.25f;
        }
        if (bid.getOffBidLevel() == MyEnum.OffBidLevels.low)
        {
            price = price * 75f;
        }
        seller.receiveGold(price);
        buyer.payGold(price);
        seller.consumeGoods(good, 1);
        buyer.collectGoods(good, 1);
        market.removeGoodBid(good, bid);
        market.removeGoodOffer(good, offer);
        market.addGoodSold(good);
        seller.addToExportValue(price);
        buyer.addToImportValue(price);
        bid.setPriceSold(price);
        offer.setPriceSold(price);
        seller.addExport(bid);
        buyer.addImport(offer);
    }
Example #3
0
    private void updatePanel(Nation player)
    {
        if (player.getNumberGood(MyEnum.Goods.lumber) < 1 || player.getAP() < 1)
        {
            expand.interactable = false;
        }

        storageCapacity.text = player.numberOfResourcesAndGoods().ToString() + "/" +
                               player.GetCurrentWarehouseCapacity().ToString();

        int numResources = 11;

        for (int i = 0; i < numResources; i++)
        {
            string           name   = storage.GetChild(i).name;
            MyEnum.Resources res    = (MyEnum.Resources)System.Enum.Parse(typeof(MyEnum.Resources), name);
            Text             amount = storage.GetChild(i).GetComponentInChildren <Text>();
            amount.text = player.getNumberResource(res).ToString();
        }

        int beginGoods        = 11;
        int endOfStoragePanel = 25;

        for (int i = beginGoods; i < endOfStoragePanel; i++)
        {
            string       name = storage.GetChild(i).name;
            MyEnum.Goods good = (MyEnum.Goods)System.
                                Enum.Parse(typeof(MyEnum.Goods), name);

            Text amount = storage.GetChild(i).GetComponentInChildren <Text>();
            amount.text = player.getNumberGood(good).ToString();
        }
    }
Example #4
0
    public void registerOfferBid(Dropdown dropdown)
    {
        Debug.Log("value Changed");
        App app = UnityEngine.Object.FindObjectOfType <App>();

        int value = Int32.Parse(inputComponent.text);

        if (value == 0)
        {
            return;
        }
        int    action   = dropdown.value;
        Nation player   = State.getNations()[app.GetHumanIndex()];
        string itemType = inputComponent.name;

        MyEnum.Goods good = (MyEnum.Goods)System.
                            Enum.Parse(typeof(MyEnum.Goods), itemType);
        if (action.Equals(0))
        {
            player.setGoodOfferItem(good, value);
            Debug.Log("Offer - value is: " + value + " Resource is" + good);
        }
        if (action.Equals(1))
        {
            player.setGoodBidItem(good, value);
            Debug.Log("Bid - value is: " + value + " Resource is" + good);
        }
    }
    private void cancelProduction()
    {
        MyEnum.Goods factoryType    = (MyEnum.Goods)System.Enum.Parse(typeof(MyEnum.Goods), goodType.text);
        App          app            = UnityEngine.Object.FindObjectOfType <App>();
        Nation       player         = State.getNations()[app.GetHumanIndex()];
        int          amountToCancel = player.industry.getGoodProducing(factoryType);

        PlayerReceiver.receiveFromCancelingProduction(player, factoryType, amountToCancel);
        cancel.transform.localScale       = new Vector3(0, 0, 0);
        cancel.interactable               = false;
        produceGoods.transform.localScale = new Vector3(1, 1, 1);
        float ableToProduce = player.industry.determineCanProduce(factoryType, player);

        canProduce.text        = ableToProduce.ToString();
        factorySlider.maxValue = (float)Math.Floor(ableToProduce);
        factorySlider.value    = 0;
        Debug.Log("Max slider value: " + factorySlider.maxValue);

        if (factorySlider.maxValue >= 1 && player.industry.getGoodProducing(factoryType) == 0)
        {
            factorySlider.interactable = true;
            produceGoods.interactable  = true;
        }
        else
        {
            factorySlider.interactable = false;
            produceGoods.interactable  = false;
        }
    }
    void passOnItem()
    {
        if (pass.isOn)
        {
            High.interactable   = false;
            Medium.interactable = false;
            Low.interactable    = false;
            plus.interactable   = false;
            minus.interactable  = false;
            numOffBid.text      = "0";
            currentItem         = MarketHelper.currentItem;

            if (ress.Contains(currentItem))
            {
                MyEnum.Resources _item = (MyEnum.Resources)Enum.Parse(typeof(MyEnum.Resources), currentItem);
                Debug.Log("Clear 100 " + _item.ToString());

                revertToZeroResource(_item);
                MarketHelper.ResourceOfferBid[_item] = MyEnum.marketChoice.pass;
            }
            else
            {
                MyEnum.Goods _item = (MyEnum.Goods)Enum.Parse(typeof(MyEnum.Goods), currentItem);
                revertToZeroGood(_item);
                MarketHelper.GoodsOfferBid[_item] = MyEnum.marketChoice.pass;
            }
        }
    }
Example #7
0
 public Signal(MyEnum.marketChoice type, int playerIndex, MyEnum.Resources resource, MyEnum.Goods good,
               float quality, MyEnum.OffBidLevels offerLevel)
 {
     this.type       = type;
     this.ownerIndex = playerIndex;
     this.resource   = resource;
     this.good       = good;
     this.quality    = quality;
     this.offerLevel = offerLevel;
 }
 void updateGoodsMinus(MyEnum.Goods _item)
 {
     if (MarketHelper.GoodsOfferBidAmount[_item] >= 1)
     {
         minus.interactable = true;
     }
     else
     {
         minus.interactable = false;
     }
 }
 public static bool checkIfCanAffordGood(Nation player, MyEnum.Goods good)
 {
     if (player.getGold() - player.getTotalCurrentBiddingCost() < State.market.getPriceOfGood(good))
     {
         return(false);
     }
     else
     {
         return(true);
     }
 }
    void registerOffer()
    {
        if (offer.isOn)
        {
            currentItem = MarketHelper.currentItem;

            App    app         = UnityEngine.Object.FindObjectOfType <App>();
            int    playerIndex = app.GetHumanIndex();
            Nation player      = State.getNations()[playerIndex];

            if (ress.Contains(currentItem))
            {
                MyEnum.Resources _item = (MyEnum.Resources)Enum.Parse(typeof(MyEnum.Resources), currentItem);
                if (MarketHelper.ResourceOfferBid[_item] == MyEnum.marketChoice.bid)
                {
                    Debug.Log("Clear 207 " + _item.ToString());

                    revertToZeroResource(_item);
                }
                MarketHelper.ResourceOfferBid[_item] = MyEnum.marketChoice.offer;
                Debug.Log("Player has " + player.getNumberResource(_item) + " " + _item);
                if (player.getNumberResource(_item) - MarketHelper.ResourceOfferBidAmount[_item] < 1)
                {
                    plus.interactable = false;
                }
                else
                {
                    plus.interactable = true;
                }
                updateResourceMinus(_item);
            }
            else
            {
                MyEnum.Goods _item = (MyEnum.Goods)Enum.Parse(typeof(MyEnum.Goods), currentItem);
                if (MarketHelper.GoodsOfferBid[_item] == MyEnum.marketChoice.bid)
                {
                    revertToZeroGood(_item);
                }
                MarketHelper.GoodsOfferBid[_item] = MyEnum.marketChoice.offer;
                if (player.getNumberGood(_item) - MarketHelper.GoodsOfferBidAmount[_item] < 1)
                {
                    plus.interactable = false;
                }
                else
                {
                    plus.interactable = true;
                }
                updateGoodsMinus(_item);
            }
            High.interactable   = false;
            Medium.interactable = false;
            Low.interactable    = false;
        }
    }
Example #11
0
    public float determineCanProduce(MyEnum.Goods good, Nation player)
    {
        Dictionary <string, float> costs = ProductionCosts.GetCosts(good);
        float bottleNeck    = 1000f;
        float nextComponent = 0.0f;
        float ratio;
        float materialMod = DetermineMaterialMod(player);

        foreach (string item in costs.Keys)
        {
            if (Enum.IsDefined(typeof(MyEnum.Goods), item))
            {
                MyEnum.Goods itemType = (MyEnum.Goods)System.
                                        Enum.Parse(typeof(MyEnum.Goods), item);
                nextComponent = player.getNumberGood(itemType) * materialMod;
                ratio         = nextComponent / costs[item];
            }
            else
            {
                MyEnum.Resources itemType = (MyEnum.Resources)System.
                                            Enum.Parse(typeof(MyEnum.Resources), item);
                nextComponent = player.getNumberResource(itemType) * materialMod;
                ratio         = nextComponent / costs[item];
            }
            if (ratio < bottleNeck)
            {
                bottleNeck = ratio;
            }
        }
        int value        = 0;
        int factoryLevel = getFactoryLevel(good);

        if (factoryLevel == 0)
        {
            value = 0;
        }
        if (factoryLevel == 1)
        {
            value = (int)Math.Min(4, bottleNeck);
        }
        if (factoryLevel == 2)
        {
            value = (int)Math.Min(8, bottleNeck);
        }
        float corruptionFactor    = PlayerCalculator.getCorruptionFactor(player);
        float industrialExpFactor = PlayerCalculator.getIndustrialExperienceFactor(player);

        /*Later additional modifiers will affect this including:
         * Corruptuon, happiness, management level, and perhaps some
         * technologies */
        value = (int)(value * corruptionFactor * industrialExpFactor);
        return(value);
    }
 void registerHigh()
 {
     if (ress.Contains(currentItem))
     {
         MyEnum.Resources _item = (MyEnum.Resources)Enum.Parse(typeof(MyEnum.Resources), currentItem);
         MarketHelper.ResourceOfferBidLevel[_item] = MyEnum.OffBidLevels.high;
     }
     else
     {
         MyEnum.Goods _item = (MyEnum.Goods)Enum.Parse(typeof(MyEnum.Goods), currentItem);
         MarketHelper.GoodsOfferBidLevel[_item] = MyEnum.OffBidLevels.high;;
     }
 }
Example #13
0
    private void makeGoodWorkshop()
    {
        good = (MyEnum.Goods)System.Enum.Parse(typeof(MyEnum.Goods), goodString.text);
        Debug.Log("Should make " + good.ToString());
        App    app    = UnityEngine.Object.FindObjectOfType <App>();
        Nation player = State.getNations()[app.GetHumanIndex()];

        player.UseAP(1);
        player.industry.consumeGoodsMaterial(good, player);
        player.industry.setGoodProducing(good, 1);
        Debug.Log("Done");
        makeGood.interactable = false;
        AP.text = player.getAP().ToString();
        numberProducing.text = "Producing: " + player.industry.getGoodProducing(good);
    }
Example #14
0
    private void upgradeFactory()
    {
        {
            Debug.Log("Upgrade Factory");
            Debug.Log("Good Type: " + goodType.text);
            App app = UnityEngine.Object.FindObjectOfType <App>();
            //string type = GetComponentInChildren<Text>().text;
            //    MyEnum.Goods goodType = (MyEnum.Goods)System.Enum.Parse(typeof(MyEnum.Goods), type);
            factoryType = (MyEnum.Goods)System.Enum.Parse(typeof(MyEnum.Goods), goodType.text);

            Nation player = State.getNations()[app.GetHumanIndex()];
            PlayerPayer.payForFactory(player, factoryType);
            player.industry.setFactoryLevel(factoryType, player.industry.getFactoryLevel(factoryType) + 1);
            int factoryLevel = player.industry.getFactoryLevel(factoryType);
            if (factoryLevel == 1)
            {
                factoryLevelImage.sprite = Resources.Load("Sprites/factorySmall", typeof(Sprite)) as Sprite;
            }
            if (factoryLevel == 2)
            {
                factoryLevelImage.sprite = Resources.Load("Sprites/factoryMedium", typeof(Sprite)) as Sprite;
            }
            if (factoryLevel == 3)
            {
                factoryLevelImage.sprite = Resources.Load("Sprites/FactoryBig", typeof(Sprite)) as Sprite;
            }
            factoryLevelText.text = "Factory Level: " + factoryLevel;

            // float ableToProduce = player.industry.determineCanProduce(factoryType, player);
            canProduce.text        = "0";
            factorySlider.maxValue = 0;
            AP.text = player.getAP().ToString();
            upgrade.interactable      = false;
            produceGoods.interactable = false;
            int index = getBuildingIndex();


            Transform buildingStubb = buildingModel.transform.GetChild(index);
            Debug.Log("Name of object: " + buildingStubb.name);
            GameObject building = buildingStubb.GetChild(1).gameObject;
            building.SetActive(true);
            // Debug.Log("Name of object: " + cube.name);
        }
    }
    void revertToZeroGood(MyEnum.Goods good)
    {
        App    app         = UnityEngine.Object.FindObjectOfType <App>();
        int    playerIndex = app.GetHumanIndex();
        Nation player      = State.getNations()[playerIndex];
        Market market      = State.market;

        MyEnum.Goods _item = (MyEnum.Goods)Enum.Parse(typeof(MyEnum.Goods), currentItem);

        if (MarketHelper.GoodsOfferBid[_item] == MyEnum.marketChoice.bid)
        {
            player.increaseTotalCurrentBiddingCost(-1 * MarketHelper.GoodsOfferBidAmount[_item] *
                                                   market.getPriceOfGood(_item));
        }

        MarketHelper.GoodsOfferBidAmount[good] = 0;
        MarketHelper.GoodsOfferBidLevel[good]  = MyEnum.OffBidLevels.medium;
        numOffBid.text = MarketHelper.GoodsOfferBidAmount[good].ToString();
    }
 void registerBid()
 {
     if (bid.isOn)
     {
         App    app         = UnityEngine.Object.FindObjectOfType <App>();
         int    playerIndex = app.GetHumanIndex();
         Nation player      = State.getNations()[playerIndex];
         Market market      = State.market;
         currentItem = MarketHelper.currentItem;
         if (ress.Contains(currentItem))
         {
             MyEnum.Resources _item = (MyEnum.Resources)Enum.Parse(typeof(MyEnum.Resources), currentItem);
             if (MarketHelper.ResourceOfferBid[_item] == MyEnum.marketChoice.offer)
             {
                 Debug.Log("Clear 126 " + _item.ToString());
                 revertToZeroResource(_item);
             }
             MarketHelper.ResourceOfferBid[_item] = MyEnum.marketChoice.bid;
             updateResourceMinus(_item);
         }
         else
         {
             MyEnum.Goods _item = (MyEnum.Goods)Enum.Parse(typeof(MyEnum.Goods), currentItem);
             if (MarketHelper.GoodsOfferBid[_item] == MyEnum.marketChoice.offer)
             {
                 revertToZeroGood(_item);
             }
             MarketHelper.GoodsOfferBid[_item] = MyEnum.marketChoice.bid;
             updateGoodsMinus(_item);
         }
         if (player.getTotalCurrentBiddingCost() > player.getGold())
         {
             plus.interactable = false;
         }
         else
         {
             High.interactable   = true;
             Medium.interactable = true;
             Low.interactable    = true;
             plus.interactable   = true;
         }
     }
 }
Example #17
0
    public void  returnGoodsMaterial(MyEnum.Goods good, Nation player)
    {
        Dictionary <string, float> costs = ProductionCosts.GetCosts(good);

        foreach (string item in costs.Keys)
        {
            if (Enum.IsDefined(typeof(MyEnum.Goods), item))
            {
                MyEnum.Goods itemType = (MyEnum.Goods)System.
                                        Enum.Parse(typeof(MyEnum.Goods), item);
                player.collectGoods(itemType, costs[item]);
            }
            else
            {
                MyEnum.Resources itemType = (MyEnum.Resources)System.
                                            Enum.Parse(typeof(MyEnum.Resources), item);
                player.collectResource(itemType, costs[item]);
            }
        }
    }
    private void ProduceGoods()
    {
        MyEnum.Goods factoryType = (MyEnum.Goods)System.Enum.Parse(typeof(MyEnum.Goods), goodType.text);

        App    app    = UnityEngine.Object.FindObjectOfType <App>();
        Nation player = State.getNations()[app.GetHumanIndex()];
        int    amount = (int)factorySlider.value;

        PlayerPayer.payForFactoryProduction(player, factoryType, amount);
        player.industry.setGoodProducing(factoryType, amount);

        AP.text           = player.getAP().ToString();
        amountToMake.text = player.industry.getGoodProducing(factoryType).ToString();
        float ableToProduce = player.industry.determineCanProduce(factoryType, player);

        factorySlider.interactable        = false;
        produceGoods.interactable         = false;
        produceGoods.transform.localScale = new Vector3(0, 0, 0);
        cancel.transform.localScale       = new Vector3(1, 1, 1);
        cancel.interactable = true;
    }
Example #19
0
    public void consumeGoodsMaterial(MyEnum.Goods good, Nation player)
    {
        Debug.Log("Consume materials for " + good.ToString());
        Dictionary <string, float> costs = ProductionCosts.GetCosts(good);

        foreach (string item in costs.Keys)
        {
            if (Enum.IsDefined(typeof(MyEnum.Goods), item))
            {
                MyEnum.Goods itemType = (MyEnum.Goods)System.
                                        Enum.Parse(typeof(MyEnum.Goods), item);
                player.consumeGoods(itemType, costs[item]);
            }
            else
            {
                MyEnum.Resources itemType = (MyEnum.Resources)System.
                                            Enum.Parse(typeof(MyEnum.Resources), item);
                player.consumeResource(itemType, costs[item]);
            }
        }
    }
    public void updateAfterBuild(MyEnum.Goods good, int amount)
    {
        App    app    = UnityEngine.Object.FindObjectOfType <App>();
        Nation player = State.getNations()[app.GetHumanIndex()];

        APValue.text   = player.getAP().ToString();
        producing.text = player.industry.getGoodProducing(good).ToString();
        float ableToProduce = player.industry.determineCanProduce(good, player);

        slider.maxValue = (float)Math.Floor(ableToProduce);
        if (ableToProduce < 1 || amount > 0)
        {
            confirmBuild.interactable = false;
        }

        // bool check = CheckIfCanUpgrade(good);
        // if (check == true)
        // {
        //    upgradeButton.interactable = true;
        //   upgradeButton.GetComponentInChildren<Text>().text = "Upgraded?";
    }
Example #21
0
    private void updateInventoryPanel()
    {
        App    app         = UnityEngine.Object.FindObjectOfType <App>();
        int    playerIndex = app.GetHumanIndex();
        Nation player      = State.getNations()[playerIndex];

        if (PlayerCalculator.canUpgradeWarehouse(player))
        {
            expandWarehouseButton.interactable = true;
        }
        else
        {
            expandWarehouseButton.interactable = false;
        }
        storageCapacity.text = player.numberOfResourcesAndGoods().ToString() + "/" +
                               player.GetCurrentWarehouseCapacity().ToString();

        int       numResources = 11;
        Transform storage      = inventoryContent.GetComponent <Transform>();

        for (int i = 0; i < numResources; i++)
        {
            string           name   = storage.GetChild(i).name;
            MyEnum.Resources res    = (MyEnum.Resources)System.Enum.Parse(typeof(MyEnum.Resources), name);
            Text             amount = storage.GetChild(i).GetComponentInChildren <Text>();
            amount.text = player.getNumberResource(res).ToString();
        }
        int beginGoods        = 11;
        int endOfStoragePanel = 23;

        for (int i = beginGoods; i < endOfStoragePanel; i++)
        {
            string       name = storage.GetChild(i).name;
            MyEnum.Goods good = (MyEnum.Goods)System.
                                Enum.Parse(typeof(MyEnum.Goods), name);

            Text amount = storage.GetChild(i).GetComponentInChildren <Text>();
            amount.text = player.getNumberGood(good).ToString();
        }
    }
Example #22
0
    private void updateWarehousePanel()
    {
        App    app         = UnityEngine.Object.FindObjectOfType <App>();
        int    playerIndex = app.GetHumanIndex();
        Nation player      = State.getNations()[playerIndex];

        if (player.getNumberGood(MyEnum.Goods.lumber) < 1 || player.getAP() < 1)
        {
            expandWarehouse.interactable = false;
        }

        storageCapacity.text = player.numberOfResourcesAndGoods().ToString() + "/" +
                               player.GetCurrentWarehouseCapacity().ToString();

        int numResources = 11;

        for (int i = 0; i < numResources; i++)
        {
            string           name   = storage.GetChild(i).name;
            MyEnum.Resources res    = (MyEnum.Resources)System.Enum.Parse(typeof(MyEnum.Resources), name);
            Text             amount = storage.GetChild(i).GetComponentInChildren <Text>();
            amount.text = player.getNumberResource(res).ToString();
        }

        int beginGoods        = 11;
        int endOfStoragePanel = 25;

        for (int i = beginGoods; i < endOfStoragePanel; i++)
        {
            string       name = storage.GetChild(i).name;
            MyEnum.Goods good = (MyEnum.Goods)System.
                                Enum.Parse(typeof(MyEnum.Goods), name);

            Text amount = storage.GetChild(i).GetComponentInChildren <Text>();
            amount.text = player.getNumberGood(good).ToString();
        }
    }
Example #23
0
 public static void receiveFromCancelingProduction(Nation player, MyEnum.Goods good, int amount)
 {
     if (amount == 1)
     {
         player.addAP(1);
     }
     if (amount > 1 && amount <= 4)
     {
         player.addAP(2);
     }
     if (amount > 4 && amount <= 7)
     {
         player.addAP(3);
     }
     if (amount > 7)
     {
         player.addAP(4);
     }
     player.industry.setGoodProducing(good, amount);
     for (int k = 0; k < amount; k++)
     {
         player.industry.returnGoodsMaterial(good, player);
     }
 }
Example #24
0
 public static void payForFactoryProduction(Nation player, MyEnum.Goods good, int amount)
 {
     if (amount == 1)
     {
         player.UseAP(1);
     }
     if (amount > 1 && amount <= 4)
     {
         player.UseAP(2);
     }
     if (amount > 4 && amount <= 8)
     {
         player.UseAP(3);
     }
     if (amount > 8)
     {
         player.UseAP(4);
     }
     player.industry.setGoodProducing(good, amount);
     for (int k = 0; k < amount; k++)
     {
         player.industry.consumeGoodsMaterial(good, player);
     }
 }
Example #25
0
 public void upgradeFactory(MyEnum.Goods good)
 {
     this.factories[good] += 1;
 }
Example #26
0
    private void selectGood()
    {
        App    app        = UnityEngine.Object.FindObjectOfType <App>();
        int    humanIndex = app.GetHumanIndex();
        Nation player     = State.getNations()[humanIndex];
        string type       = thisGood.name;

        currentGood.text      = type;
        good                  = (MyEnum.Goods)System.Enum.Parse(typeof(MyEnum.Goods), type);
        numberProducing.text  = "Producing: " + player.industry.getGoodProducing(good).ToString();
        inventory.text        = "Inventory: " + player.getNumberGood(good).ToString();
        makeGood.interactable = true;
        if (player.getAP() < 1 || player.industry.getGoodProducing(good) > 0)
        {
            makeGood.interactable = false;
        }
        if (good == MyEnum.Goods.lumber || good == MyEnum.Goods.parts || good == MyEnum.Goods.arms ||
            good == MyEnum.Goods.fabric || good == MyEnum.Goods.paper)
        {
            singleInput.SetActive(true);
            doubleInput.SetActive(false);
            product.sprite = Resources.Load("FinishedGoods/" + type, typeof(Sprite)) as Sprite;
            if (good == MyEnum.Goods.lumber)
            {
                materialInput.sprite = Resources.Load("Resource/wood", typeof(Sprite)) as Sprite;
                if (player.getNumberResource(MyEnum.Resources.wood) < 1)
                {
                    makeGood.interactable = false;
                }
            }
            if (good == MyEnum.Goods.parts || good == MyEnum.Goods.arms)
            {
                materialInput.sprite = Resources.Load("FinishedGoods/steel", typeof(Sprite)) as Sprite;
                if (player.getNumberGood(MyEnum.Goods.steel) < 1)
                {
                    makeGood.interactable = false;
                }
            }
            if (good == MyEnum.Goods.fabric)
            {
                materialInput.sprite = Resources.Load("Resource/cotton", typeof(Sprite)) as Sprite;
                if (player.getNumberResource(MyEnum.Resources.cotton) < 1)
                {
                    makeGood.interactable = false;
                }
            }
            if (good == MyEnum.Goods.paper)
            {
                materialInput.sprite = Resources.Load("Resource/wood", typeof(Sprite)) as Sprite;
                if (player.getNumberResource(MyEnum.Resources.wood) < 1)
                {
                    makeGood.interactable = false;
                }
            }
        }
        else
        {
            singleInput.SetActive(false);
            doubleInput.SetActive(true);
            productD.sprite = Resources.Load("FinishedGoods/" + type, typeof(Sprite)) as Sprite;
            if (good == MyEnum.Goods.clothing || good == MyEnum.Goods.furniture || good == MyEnum.Goods.steel)
            {
                if (good == MyEnum.Goods.clothing)
                {
                    materialOne.sprite     = Resources.Load("FinishedGoods/fabric", typeof(Sprite)) as Sprite;
                    materialOneAmount.text = "0.8";
                    materialTwo.sprite     = Resources.Load("Resource/dyes", typeof(Sprite)) as Sprite;
                    materialTwoAmount.text = "0.2";
                }
                if (good == MyEnum.Goods.furniture)
                {
                    materialOne.sprite     = Resources.Load("FinishedGoods/lumber", typeof(Sprite)) as Sprite;
                    materialOneAmount.text = "0.75";
                    materialTwo.sprite     = Resources.Load("FinishedGoods/fabric", typeof(Sprite)) as Sprite;
                    materialTwoAmount.text = "0.25";
                }
                if (good == MyEnum.Goods.steel)
                {
                    materialOne.sprite     = Resources.Load("Resource/iron", typeof(Sprite)) as Sprite;
                    materialOneAmount.text = "0.67";
                    materialTwo.sprite     = Resources.Load("Resource/coal", typeof(Sprite)) as Sprite;
                    materialTwoAmount.text = "0.33";
                }
            }
        }
    }
Example #27
0
 public static void increaseFactoryLevel(Nation player, MyEnum.Goods good)
 {
     player.industry.upgradeFactory(good);
 }
    void viewGoodResource()
    {
        plus.interactable   = false;
        minus.interactable  = false;
        offer.isOn          = false;
        bid.isOn            = false;
        High.interactable   = false;
        Medium.interactable = false;
        Low.interactable    = false;
        Debug.Log("Was clicked");
        App    app         = UnityEngine.Object.FindObjectOfType <App>();
        int    playerIndex = app.GetHumanIndex();
        Nation player      = State.getNations()[playerIndex];
        Market market      = State.market;

        MarketHelper.currentItem = SelectionButton.transform.parent.parent.name;
        Debug.Log("Grandparent name: " + currentItem);
        if (ress.Contains(currentItem))
        {
            itemImage.sprite = Resources.Load("Resource/" + currentItem, typeof(Sprite)) as Sprite;
            MyEnum.Resources _item = (MyEnum.Resources)Enum.Parse(typeof(MyEnum.Resources), currentItem);
            numOffBid.text = MarketHelper.ResourceOfferBidAmount[_item].ToString();

            if (State.turn > 1)
            {
                offeredLastTurn.text = "Offered Last Turn: " + market.getNumberOfResourcesOffered(_item).ToString();
                soldLastTurn.text    = "Sold Last Turn: " + market.getNumberResourcesSold(_item).ToString();
            }
            else
            {
                offeredLastTurn.text = "Offered Last Turn: 0";
                soldLastTurn.text    = "Sold Last Turn: 0";
            }
            priceHistory = market.getResourcePriceHistory(_item);
        }
        else
        {
            itemImage.sprite = Resources.Load("FinishedGoods/" + currentItem, typeof(Sprite)) as Sprite;
            MyEnum.Goods _item = (MyEnum.Goods)Enum.Parse(typeof(MyEnum.Goods), currentItem);
            numOffBid.text = MarketHelper.GoodsOfferBidAmount[_item].ToString();
            if (State.turn > 1)
            {
                offeredLastTurn.text = "Offered Last Turn: " + market.getNumberGoodsOffered(_item).ToString();
                soldLastTurn.text    = "Sold Last Turn: " + market.getNumberOfGoodsSoldLastTurn(_item).ToString();
                priceHistory         = market.getGoodPriceHistory(_item);
            }
            else
            {
                offeredLastTurn.text = "Offered Last Turn: 0";
                soldLastTurn.text    = "Sold Last Turn: 0";
            }
            priceHistory = market.getGoodPriceHistory(_item);
        }

        GameObject history = dataDiagram.AddLine(player.getName(), player.getColor());

        for (int i = 0; i < priceHistory.Count; i++)
        {
            dataDiagram.InputPoint(history, new Vector2(i, priceHistory[i]));
        }
    }
    void subtractAmount()
    {
        App    app         = UnityEngine.Object.FindObjectOfType <App>();
        int    playerIndex = app.GetHumanIndex();
        Nation player      = State.getNations()[playerIndex];
        Market market      = State.market;
        int    turn        = State.turn;
        float  cost;

        if (ress.Contains(currentItem))
        {
            MyEnum.Resources _item = (MyEnum.Resources)Enum.Parse(typeof(MyEnum.Resources), currentItem);
            if (MarketHelper.ResourceOfferBidAmount[_item] > 0)
            {
                MarketHelper.ResourceOfferBidAmount[_item] -= 1;

                if (MarketHelper.ResourceOfferBid[_item] == MyEnum.marketChoice.bid)
                {
                    cost = market.getPriceOfResource(_item);
                    player.increaseTotalCurrentBiddingCost(-cost);
                    Debug.Log("Current Bid Cost " + player.getTotalCurrentBiddingCost());

                    if (player.getTotalCurrentBiddingCost() < player.getGold())
                    {
                        plus.interactable = true;
                    }
                }
                else if (MarketHelper.ResourceOfferBid[_item] == MyEnum.marketChoice.offer)
                {
                    if (MarketHelper.ResourceOfferBidAmount[_item] < player.getNumberResource(_item))
                    {
                        plus.interactable = true;
                    }
                    updateResourceMinus(_item);
                }
            }
            else
            {
                minus.enabled = false;
            }
            numOffBid.text = MarketHelper.ResourceOfferBidAmount[_item].ToString();
        }
        else
        {
            MyEnum.Goods _item = (MyEnum.Goods)Enum.Parse(typeof(MyEnum.Goods), currentItem);
            if (MarketHelper.GoodsOfferBidAmount[_item] > 0)
            {
                MarketHelper.GoodsOfferBidAmount[_item] -= 1;
                if (MarketHelper.GoodsOfferBid[_item] == MyEnum.marketChoice.bid)
                {
                    if (turn > 1)
                    {
                        cost = market.getPriceOfGood(_item);
                    }
                    else
                    {
                        cost = 5;
                    }
                    player.increaseTotalCurrentBiddingCost(-cost);
                    if (player.getTotalCurrentBiddingCost() > player.getGold())
                    {
                        plus.interactable = true;
                    }
                    updateGoodsMinus(_item);
                }
            }
            if (MarketHelper.GoodsOfferBid[_item] == MyEnum.marketChoice.offer)
            {
                if (player.getNumberGood(_item) - MarketHelper.GoodsOfferBidAmount[_item] >= 1)
                {
                    plus.interactable = true;
                }
                else
                {
                    plus.interactable = false;
                }
                updateGoodsMinus(_item);
            }

            numOffBid.text = MarketHelper.GoodsOfferBidAmount[_item].ToString();
        }
    }
    void addAmount()
    {
        Debug.Log("Adding...");
        App    app         = UnityEngine.Object.FindObjectOfType <App>();
        int    playerIndex = app.GetHumanIndex();
        Nation player      = State.getNations()[playerIndex];
        Market market      = State.market;
        int    turn        = State.turn;
        float  cost;

        if (ress.Contains(currentItem))
        {
            MyEnum.Resources _item = (MyEnum.Resources)Enum.Parse(typeof(MyEnum.Resources), currentItem);
            MarketHelper.ResourceOfferBidAmount[_item] += 1;
            Debug.Log("166 " + MarketHelper.ResourceOfferBidAmount[_item]);
            numOffBid.text = MarketHelper.ResourceOfferBidAmount[_item].ToString();
            Debug.Log("Res off bid " + MarketHelper.ResourceOfferBid[_item]);
            if (MarketHelper.ResourceOfferBid[_item] == MyEnum.marketChoice.bid)
            {
                if (turn > 1)
                {
                    cost = market.getPriceOfResource(_item);
                }
                else
                {
                    cost = 3;
                }
                player.increaseTotalCurrentBiddingCost(cost);
                Debug.Log("Current Bid Cost " + player.getTotalCurrentBiddingCost());
                if (player.getTotalCurrentBiddingCost() + cost > player.getGold())
                {
                    plus.interactable = false;
                }
                else
                {
                    plus.interactable = true;
                }
                updateResourceMinus(_item);
            }
            else if (MarketHelper.ResourceOfferBid[_item] == MyEnum.marketChoice.offer)
            {
                Debug.Log("Player has " + player.getNumberResource(_item).ToString());
                Debug.Log("Player has offered " + MarketHelper.ResourceOfferBidAmount[_item]);
                if (player.getNumberResource(_item) - MarketHelper.ResourceOfferBidAmount[_item] < 1)
                {
                    plus.interactable = false;
                }
                else
                {
                    plus.interactable = true;
                }
                updateResourceMinus(_item);
            }
        }
        else
        {
            MyEnum.Goods _item = (MyEnum.Goods)Enum.Parse(typeof(MyEnum.Goods), currentItem);
            MarketHelper.GoodsOfferBidAmount[_item] += 1;
            Debug.Log("156 " + MarketHelper.GoodsOfferBidAmount[_item]);
            numOffBid.text = MarketHelper.GoodsOfferBidAmount[_item].ToString();
            if (MarketHelper.GoodsOfferBid[_item] == MyEnum.marketChoice.bid)
            {
                if (turn > 1)
                {
                    cost = market.getPriceOfGood(_item);
                }
                else
                {
                    cost = 5;
                }
                player.increaseTotalCurrentBiddingCost(cost);
                Debug.Log("Current Bid Cost " + player.getTotalCurrentBiddingCost());

                if (player.getTotalCurrentBiddingCost() > player.getGold())
                {
                    plus.interactable = false;
                }
                else
                {
                    plus.interactable = true;
                }
                Debug.Log("Bid Amount " + MarketHelper.GoodsOfferBidAmount[_item]);
                updateGoodsMinus(_item);
            }
            else if (MarketHelper.GoodsOfferBid[_item] == MyEnum.marketChoice.offer)
            {
                Debug.Log("Player has " + player.getNumberGood(_item).ToString());
                Debug.Log("Player has offered " + MarketHelper.GoodsOfferBidAmount[_item]);
                Debug.Log("Current Bid Cost " + player.getTotalCurrentBiddingCost());

                if (player.getNumberGood(_item) - MarketHelper.GoodsOfferBidAmount[_item] < 1)
                {
                    plus.interactable = false;
                }
                else
                {
                    plus.interactable = true;
                }
                updateGoodsMinus(_item);
            }
        }
    }