Пример #1
0
    // UPDATE BARRACKS NEEDS MORE DATA (HERO AND UNIT INFORMATION DATA)
    public void UpdateBarracks()
    {
        TroopResourceBehavior troopsBehavior = PlayerGameManager.GetInstance.troopBehavior;
        KingdomUnitStorage    unitStorage    = myController.unitStorage;

        if (cardIdx == 0) // TRAIN NEW SOLDIER
        {
            // Placeholders, need proper Unit Storage later on
            float hp  = unitStorage.GetUnitInformation("Recruit").maxHealth;
            float dmg = unitStorage.GetUnitInformation("Recruit").maxDamage;
            float spd = unitStorage.GetUnitInformation("Recruit").origSpeed;
            spd *= 10;

            if (PlayerGameManager.GetInstance != null)
            {
                hp  += PlayerGameManager.GetInstance.troopBehavior.techHealth;
                dmg += PlayerGameManager.GetInstance.troopBehavior.techDmg;
            }

            int recruitCount = 0;
            if (playerData.troopsList == null)
            {
                playerData.troopsList = new List <TroopsInformation>();
            }
            if (playerData.troopsList.Find(x => x.unitInformation.unitName == "Recruit") != null)
            {
                recruitCount = playerData.troopsList.Find(x => x.unitInformation.unitName == "Recruit").totalUnitCount;
            }
            List <float> tmp = new List <float>(); tmp.Add(recruitCount);; tmp.Add(hp); tmp.Add(spd); tmp.Add(dmg);
            currentPage.informationPanelList[0].SetMultiCounter(tmp, "Recruits"); // HP DAMAGE SPEED

            string secondDescription = "Max trained units the barracks can support [" + playerData.barracksCapacity + "]";
            currentPage.informationPanelList[1].SetSingleCounter(playerData.barracksCapacity, secondDescription, "Barracks Capacity"); // BARRACKS CAPACITY

            string thirdDescription = "Training cost to arm a person.";
            currentPage.informationPanelList[2].SetSingleCounter(troopsBehavior.GetRecruitCoins, thirdDescription, "Training Cost"); // TRAINING COST
        }
        else if (cardIdx == 2)                                                                                                       // HEROES
        {
            if (PlayerGameManager.GetInstance != null)
            {
                if (PlayerGameManager.GetInstance.playerData.myHeroes != null && PlayerGameManager.GetInstance.playerData.myHeroes.Count > 0)
                {
                    BaseHeroInformationData curHero = PlayerGameManager.GetInstance.playerData.myHeroes[selectedHeroIdx];
                    currentPage.informationPanelList[0].SetGrowthCounter((int)curHero.unitInformation.maxHealth, curHero.healthGrowthRate, "HEALTH", curHero.unitInformation.unitName);
                    currentPage.informationPanelList[1].SetGrowthCounter((int)curHero.unitInformation.maxDamage, curHero.damageGrowthRate, "DAMAGE");
                    currentPage.informationPanelList[2].SetGrowthCounter((int)curHero.unitInformation.origSpeed, curHero.speedGrowthRate, "SPEED");
                }
                else
                {
                    myController.ShowInfoBlocker("Recruit Hero in Tavern");
                }
            }
        }
        else if (cardIdx == 1) // TRAIN SOLDIERS
        {
            // Placeholders, need proper Unit Storage later on
            float Sprhp = unitStorage.GetUnitInformation("Spearman").maxHealth, Sprdmg = unitStorage.GetUnitInformation("Spearman").maxDamage, Sprspd = unitStorage.GetUnitInformation("Spearman").origSpeed;
            float Swdhp = unitStorage.GetUnitInformation("Swordsman").maxHealth, Swddmg = unitStorage.GetUnitInformation("Swordsman").maxDamage, Swdspd = unitStorage.GetUnitInformation("Swordsman").origSpeed;
            float Archp = unitStorage.GetUnitInformation("Archer").maxHealth, Arcdmg = unitStorage.GetUnitInformation("Archer").maxDamage, Arcspd = unitStorage.GetUnitInformation("Archer").origSpeed;
            Sprspd *= 10; Arcspd *= 10; Swdspd *= 10;

            if (PlayerGameManager.GetInstance != null)
            {
                Sprhp  += PlayerGameManager.GetInstance.troopBehavior.techHealth;
                Swdhp  += PlayerGameManager.GetInstance.troopBehavior.techHealth;
                Archp  += PlayerGameManager.GetInstance.troopBehavior.techHealth;
                Sprdmg += PlayerGameManager.GetInstance.troopBehavior.techDmg;
                Swddmg += PlayerGameManager.GetInstance.troopBehavior.techDmg;
                Arcdmg += PlayerGameManager.GetInstance.troopBehavior.techDmg;
            }


            List <float> tmp = new List <float>();
            for (int i = 0; i < currentPage.informationPanelList.Count; i++)
            {
                if (i == 0)
                {
                    int count = 0;
                    if (playerData.troopsList == null)
                    {
                        playerData.troopsList = new List <TroopsInformation>();
                    }
                    if (playerData.troopsList.Find(x => x.unitInformation.unitName == "Swordsman") != null)
                    {
                        count = playerData.troopsList.Find(x => x.unitInformation.unitName == "Swordsman").totalUnitCount;
                    }
                    tmp.Add(count);
                    tmp.Add(Swdhp); tmp.Add(Swdspd); tmp.Add(Swddmg);

                    currentPage.informationPanelList[i].SetMultiCounter(tmp, "Swordsman");
                    currentPage.informationPanelList[i].panelIcon.sprite = TransitionManager.GetInstance.unitStorage.GetUnitIcon("Swordsman");
                }
                else if (i == 1)
                {
                    int count = 0;
                    if (playerData.troopsList == null)
                    {
                        playerData.troopsList = new List <TroopsInformation>();
                    }
                    if (playerData.troopsList.Find(x => x.unitInformation.unitName == "Spearman") != null)
                    {
                        count = playerData.troopsList.Find(x => x.unitInformation.unitName == "Spearman").totalUnitCount;
                    }
                    tmp.Add(count);
                    tmp.Add(Sprhp); tmp.Add(Sprspd); tmp.Add(Sprdmg);

                    currentPage.informationPanelList[i].SetMultiCounter(tmp, "Spearman");
                    currentPage.informationPanelList[i].panelIcon.sprite = TransitionManager.GetInstance.unitStorage.GetUnitIcon("Spearman");
                }
                else if (i == 2)
                {
                    int count = 0;
                    if (playerData.troopsList == null)
                    {
                        playerData.troopsList = new List <TroopsInformation>();
                    }
                    if (playerData.troopsList.Find(x => x.unitInformation.unitName == "Archer") != null)
                    {
                        count = playerData.troopsList.Find(x => x.unitInformation.unitName == "Archer").totalUnitCount;
                    }
                    tmp.Add(count);
                    tmp.Add(Archp); tmp.Add(Arcspd); tmp.Add(Arcdmg);

                    currentPage.informationPanelList[i].SetMultiCounter(tmp, "Archer");
                    currentPage.informationPanelList[i].panelIcon.sprite = TransitionManager.GetInstance.unitStorage.GetUnitIcon("Archer");
                }
                tmp.Clear();
            }
        }
    }
Пример #2
0
    public void UpdateTavern()
    {
        if (cardIdx == 0) // RECRUIT HEROES
        {
            if (playerData.tavernHeroes == null || playerData.tavernHeroes.Count <= 0)
            {
                myController.ShowInfoBlocker("No Heroes has Arrived");
            }
            else
            {
                for (int i = 0; i < currentPage.informationPanelList.Count; i++)
                {
                    if (playerData.tavernHeroes[i] == null)
                    {
                        break;
                    }
                    List <int> health = new List <int>();
                    health.Add((int)playerData.tavernHeroes[i].unitInformation.maxHealth);
                    health.Add((int)playerData.tavernHeroes[i].healthGrowthRate);
                    List <int> speed = new List <int>();
                    speed.Add((int)playerData.tavernHeroes[i].unitInformation.origSpeed);
                    speed.Add((int)playerData.tavernHeroes[i].speedGrowthRate);
                    List <int> damage = new List <int>();
                    damage.Add((int)playerData.tavernHeroes[i].unitInformation.minDamage);
                    damage.Add((int)playerData.tavernHeroes[i].unitInformation.maxDamage);
                    damage.Add((int)playerData.tavernHeroes[i].damageGrowthRate);

                    currentPage.informationPanelList[i].SetHeroCounter(health, damage, speed, playerData.tavernHeroes[i].unitInformation.attackType,
                                                                       playerData.tavernHeroes[i].unitInformation.unitName);
                }
            }
        }
        else if (cardIdx == 1) // GIVE DRINKS
        {
            List <float> tmp = new List <float>();
            tmp.Add(playerData.potentialCommonHero); tmp.Add(playerData.potentialRareHero); tmp.Add(playerData.potentialLegHero);
            currentPage.informationPanelList[0].SetMultiCounter(tmp, "Total Hero Chances");

            List <float> tmp1 = new List <float>();
            tmp1.Add(playerData.potentialGoodsMerchant); tmp1.Add(playerData.potentialEquipsMerchant); tmp1.Add(playerData.potentialExoticMerchant);
            currentPage.informationPanelList[1].SetMultiCounter(tmp1, "Total Merchant Chances");

            List <float> tmp2 = new List <float>();
            tmp2.Add(playerData.potentialCommonHero); tmp2.Add(playerData.potentialRareHero); tmp2.Add(playerData.potentialLegHero);
            currentPage.informationPanelList[2].SetMultiCounter(tmp, "Total Mercenary Chances");
        }
        else if (cardIdx == 2) // HIRE MERCENARIES
        {
            KingdomUnitStorage unitStorage = myController.unitStorage;

            float Sprhp = unitStorage.GetUnitInformation("Spearman").maxHealth, Sprdmg = unitStorage.GetUnitInformation("Spearman").maxDamage, Sprspd = unitStorage.GetUnitInformation("Spearman").origSpeed;
            float Swdhp = unitStorage.GetUnitInformation("Swordsman").maxHealth, Swddmg = unitStorage.GetUnitInformation("Swordsman").maxDamage, Swdspd = unitStorage.GetUnitInformation("Swordsman").origSpeed;
            float Archp = unitStorage.GetUnitInformation("Archer").maxHealth, Arcdmg = unitStorage.GetUnitInformation("Archer").maxDamage, Arcspd = unitStorage.GetUnitInformation("Archer").origSpeed;
            Sprspd *= 10; Arcspd *= 10; Swdspd *= 10;
            if (PlayerGameManager.GetInstance != null)
            {
                Sprhp  += PlayerGameManager.GetInstance.troopBehavior.techHealth;
                Swdhp  += PlayerGameManager.GetInstance.troopBehavior.techHealth;
                Archp  += PlayerGameManager.GetInstance.troopBehavior.techHealth;
                Sprdmg += PlayerGameManager.GetInstance.troopBehavior.techDmg;
                Swddmg += PlayerGameManager.GetInstance.troopBehavior.techDmg;
                Arcdmg += PlayerGameManager.GetInstance.troopBehavior.techDmg;
            }

            List <float> tmp = new List <float>();
            tmp.Add(playerData.ObtainMercenaryInformation("Swordsman").totalUnitCount); tmp.Add(Swdhp); tmp.Add(Swddmg); tmp.Add(Swdspd);
            currentPage.informationPanelList[0].SetMultiCounter(tmp, "Swordsman Available");

            List <float> tmp1 = new List <float>();
            tmp1.Add(playerData.ObtainMercenaryInformation("Spearman").totalUnitCount); tmp1.Add(Sprhp); tmp1.Add(Sprdmg); tmp1.Add(Sprspd);
            currentPage.informationPanelList[1].SetMultiCounter(tmp1, "Spearman Available");

            List <float> tmp2 = new List <float>();
            tmp2.Add(playerData.ObtainMercenaryInformation("Archer").totalUnitCount); tmp2.Add(Archp); tmp2.Add(Arcdmg); tmp2.Add(Arcspd);
            currentPage.informationPanelList[2].SetMultiCounter(tmp2, "Archer Available");
        }
    }