예제 #1
0
    protected override void MakeLocalUpgrades()
    {
        // Increase gathering amount
        localUpgradesList.Add(new LocalUpgrade[1]);
        localUpgradesList[0][0] = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.ResourceStats, 0, 0.5f, "-Increase gathering amount\n per " + unitName + " by \r %", new float[3], 1.5f);
        localUpgradesList [0] [0].descriptionAsPercentage = true;
        localUpgradesList [0] [0].miscUpgradeSprite       = LocalUpgradesMenu.statSpritesDick [StatsType.TimeStats];
        // Increase max units
        localUpgradesList.Add(new LocalUpgrade[1]);
        float[] secondCostArray = new float[] { 0f, 0f, 30f };
        localUpgradesList [1] [0]              = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.MobTrainerStats, 0, 1f, "-Increase max " + unitName + "s by \r", secondCostArray, 1.5f);
        localUpgradesList [1] [0].asAddition   = true;
        localUpgradesList [1] [0].messageArray = new string[] { "IncreaseIdealUnits" };
        if (buildingArea)
        {
            // Increase building health, crush defense, and buildingArea
            localUpgradesList.Add(new LocalUpgrade[2]);
            float[] thirdCostArray = new float[] { 0f, 200f, 0f };
            localUpgradesList [2] [0]            = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.Health, 1, 0.15f, "-Increase building health \nby \r hp\n", thirdCostArray, 1.3f);
            localUpgradesList [2] [1]            = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.Defense, 2, 0.12f, "-Increase building crush\ndefense by \r%\n");
            localUpgradesList [2] [1].asAddition = true;
            localUpgradesList [2] [1].descriptionAsPercentage = true;
//			localUpgradesList [2] [2] = LocalUpgradesMenu.MakeLocalUpgrade (StatsType.StratStats, 0, 0.10f, "-Increase the building area \nradius by \r%\n");
//			localUpgradesList [2] [2].descriptionAsPercentage = true;
//			localUpgradesList[2][2].miscUpgradeSprite = LocalUpgradesMenu.statSpritesDick[StatsType.RangedStats];
//			localUpgradesList [2] [2].messageArray = new string[] {"SetBuildingAreaSize"};
        }
    }
예제 #2
0
 public void ChangeEvoProgress(Player player, float amount)
 {
     // if the player enters a new era
     if (playerEvoProgressDick[player] + amount / eraTimeStatsDick[player.Era][0] >= eraTimeStatsDick[player.Era][1])
     {
         float excessRes = (playerEvoProgressDick[player] + amount / eraTimeStatsDick[player.Era][0] - eraTimeStatsDick[player.Era][1]) * eraTimeStatsDick[player.Era][0];
         float newAmount = amount - excessRes;
         playerEvoProgressDick [player] += newAmount / eraTimeStatsDick[player.Era][0];
         Eras nextEra = GameManager.orderEraDick[GameManager.eraOrderDick[player.Era] + 1];
         playerEvoProgressDick [player] += excessRes / eraTimeStatsDick[nextEra][0];
     }
     else
     {
         playerEvoProgressDick [player] += amount / eraTimeStatsDick[player.Era][0];
     }
     if (player == GameManager.HumanPlayer && playerEvoProgressDick[player] < player.GetMaxTotalUnique())
     {
         evoProgressBar.rectTransform.anchorMax = new Vector2(playerEvoProgressDick[player], evoProgressBar.rectTransform.anchorMax.y);
         for (int i = nextUnlockableEPB; i < evoPanButts.Length; i++)
         {
             SpecializationButton sp = evoPanButts[i] as SpecializationButton;
             if (evoPanButts[i].position <= playerEvoProgressDick[player] && (sp == null || !sp.disabled && (sp.Era == Eras.StoneAge || sp.initiated)))
             {
                 evoPanButts[i].button.interactable = true;
             }
             else if (evoPanButts[i].position > playerEvoProgressDick[player])
             {
                 nextUnlockableEPB = i;
                 break;
             }
         }
     }
     // if New Era
     if (playerEvoProgressDick[player] >= eraTimeStatsDick[player.Era][1] && player.Era != Eras.Information)
     {
         player.NewEra();
         if (player == GameManager.HumanPlayer)
         {
             GameManager.Hud.EraText.text = player.Era.ToString();
             BuildMenu.NextEra(player.Era);
             LocalUpgradesMenu.NewEra();
             if (gameObject.activeSelf)
             {
                 StartCoroutine(newEraAnnouncement.NewEraBitches(player.Era));
             }
             else
             {
                 openNewEraOnNextEnable = true;
                 GameManager.Hud.StartFlashButton(evolutionButton.image, new BoolMethod(delegate { return(openNewEraOnNextEnable); }));
             }
         }
     }
 }
 public void Initiate(int thisLocUpIndex)
 {
     locUpMenu  = GetComponentInParent <LocalUpgradesMenu> ();
     locUpIndex = thisLocUpIndex;
     button     = GetComponent <Button> ();
     Image[] allImages = GetComponentsInChildren <Image> ();
     statImages = new Image[allImages.Length - 1];
     for (int i = 1; i < allImages.Length; i++)
     {
         statImages[i - 1] = allImages[i];
         statImages[i - 1].gameObject.SetActive(false);
     }
 }
예제 #4
0
 private IEnumerator UpgradeBuilding()
 {
     lUArray[1] = lUBaseTime * localUpgradesList[(int)lUArray[2]][0].rank * lURanktTimeIncrease;
     for (lUArray[0] = 0f; lUArray[0] < lUArray[1] && isAlive && isUpgrading; lUArray[0] += Time.deltaTime)
     {
         yield return(null);
     }
     if (lUArray[0] >= lUArray[1])
     {
         remainingLocUpgrades--;
         LocalUpgradesMenu.FinishUpgrade(this, (int)lUArray[2]);
     }
     isUpgrading = false;
 }
예제 #5
0
 protected override void MakeLocalUpgrades()
 {
     // Increase the knowledge gain from experiments
     localUpgradesList.Add(new LocalUpgrade[1]);
     float[] firstCostArray = new float[] { 200f, 150f, 0f };
     localUpgradesList [0] [0] = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.UniqueStats, 0, 0.2f, "-Increase the knowledge gain\nfrom your experiments by \r%\n", firstCostArray, 1.75f);
     localUpgradesList [0] [0].descriptionAsPercentage = true;
     localUpgradesList [0] [0].miscUpgradeSprite       = HUD.speciesResourceSpriteDick [GetSpecies()] [ResourceType.Unique];
     // Decrease expCost and cooldown
     localUpgradesList.Add(new LocalUpgrade[2]);
     float[] secondCostArray = new float[] { 0f, 0f, 50f };
     localUpgradesList [1] [0] = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.UniqueStats, 2, -0.25f, "-Decrease experiment cost\nby \r %\n", secondCostArray, 1.4f);
     localUpgradesList [1] [0].descriptionAsPercentage = true;
     localUpgradesList [1] [0].miscUpgradeSprite       = HUD.speciesResourceSpriteDick [GetSpecies()] [ResourceType.Gold];
     localUpgradesList [1] [1] = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.UniqueStats, 3, -0.15f, "-Decrease experiment cool\ndown by \r s\n");
     localUpgradesList [1] [1].miscUpgradeSprite = LocalUpgradesMenu.statSpritesDick[StatsType.TimeStats];
 }
예제 #6
0
 protected override void MakeLocalUpgrades()
 {
     // Increase unit attack
     localUpgradesList.Add(new LocalUpgrade[1]);
     float[] firstCostArray = new float[] { 100f, 100f, 0f };
     localUpgradesList[0][0] = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.Attack, 0, 0.1f, "-Increase " + unitName + " attack\n by \r dps\n", firstCostArray, 1.5f);
     localUpgradesList [0] [0].isUnitUpgrade = true;
     // Increase unit range
     localUpgradesList.Add(new LocalUpgrade[1]);
     float[] secondCostArray = new float[] { 50f, 75f, 0f };
     localUpgradesList [1] [0] = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.RangedStats, 0, 0.15f, "-Increase " + unitName + " range\n by \r m", secondCostArray, 1.5f);
     localUpgradesList [1] [0].isUnitUpgrade = true;
     // Increase max units
     localUpgradesList.Add(new LocalUpgrade[1]);
     float[] thirdCostArray = new float[] { 150f, 150f, 0f };
     localUpgradesList [2] [0]              = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.MobTrainerStats, 0, 1f, "-Increase max " + unitName + "s by \r", thirdCostArray, 1.5f);
     localUpgradesList [2] [0].asAddition   = true;
     localUpgradesList [2] [0].messageArray = new string[] { "InstantiateNewUnit" };
 }
예제 #7
0
 protected override void MakeLocalUpgrades()
 {
     // Increase unit attack
     localUpgradesList.Add(new LocalUpgrade[1]);
     float[] firstCostArray = new float[] { 0f, 150f, 25f };
     localUpgradesList[0][0] = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.Attack, 0, 0.1f, "-Increase unit attack\n by \r dps\n", firstCostArray, 1.5f);
     localUpgradesList [0] [0].isUnitUpgrade = true;
     // Increase unit health
     localUpgradesList.Add(new LocalUpgrade[1]);
     float[] secondCostArray = new float[] { 100f, 100f, 0f };
     localUpgradesList [1] [0] = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.Health, 1, 0.15f, "-Increase unit health\n by \r hp", secondCostArray, 1.5f);
     localUpgradesList [1] [0].isUnitUpgrade = true;
     // Decrease trainingTime and unit incendiary defense
     localUpgradesList.Add(new LocalUpgrade[2]);
     float[] thirdCostArray = new float[] { 50f, 150f, 0f };
     localUpgradesList [2] [0] = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.MobTrainerStats, 1, -0.1f, "-Decrease training time\n by \r s\n", thirdCostArray, 1.5f);
     localUpgradesList [2] [0].miscUpgradeSprite = LocalUpgradesMenu.statSpritesDick [StatsType.TimeStats];
     localUpgradesList [2] [1] = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.Defense, 3, 0.15f, "-Increase unit incendiary\n defense by \r %");
     localUpgradesList [2] [1].isUnitUpgrade           = true;
     localUpgradesList [2] [1].asAddition              = true;
     localUpgradesList [2] [1].descriptionAsPercentage = true;
 }
예제 #8
0
 protected override void MakeLocalUpgrades()
 {
     // Increase unit attack and health
     localUpgradesList.Add(new LocalUpgrade[2]);
     float[] firstCostArray = new float[] { 100f, 75f, 0f };
     localUpgradesList [0] [0] = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.Attack, 0, 0.2f, "-Increase unit attack\n by \r dps\n", firstCostArray, 1.5f);
     localUpgradesList [0] [0].isUnitUpgrade = true;
     localUpgradesList [0] [1] = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.Health, 1, 0.15f, "-Increase unit health\n by \r hp");
     localUpgradesList [0] [1].isUnitUpgrade = true;
     // Increase max units
     localUpgradesList.Add(new LocalUpgrade[1]);
     float[] secondCostArray = new float[] { 75f, 50f, 25f };
     localUpgradesList [1] [0]              = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.MobTrainerStats, 0, 1f, "-Increase max " + unitName + "s\nby \r \n", secondCostArray, 1.5f);
     localUpgradesList [1] [0].asAddition   = true;
     localUpgradesList [1] [0].messageArray = new string[] { "InstantiateNewUnit", "StartTraining" };
     // Decrease training time and increase building health
     localUpgradesList.Add(new LocalUpgrade[2]);
     float[] thirdCostArray = new float[] { 50f, 100f, 0f };
     localUpgradesList [2] [0] = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.MobTrainerStats, 0, 1f, "-Decrease training time by \r s\n", thirdCostArray, 1.25f);
     localUpgradesList [2] [0].miscUpgradeSprite = LocalUpgradesMenu.statSpritesDick [StatsType.TimeStats];
     localUpgradesList [2] [1] = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.Health, 1, 0.2f, "-Increase building health\nby \r hp\n");
 }
예제 #9
0
 protected override void MakeLocalUpgrades()
 {
     // Increase repair rate and decrease multi construction penalty
     localUpgradesList.Add(new LocalUpgrade[2]);
     float[] firstCostArray = new float[] { 150f, 150f, 0f };
     localUpgradesList[0][0] = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.CapitalStats, 1, 0.25f, "-Increase repair rate\nby \r %\n", firstCostArray, 1.5f);
     localUpgradesList [0] [0].descriptionAsPercentage = true;
     localUpgradesList[0][1] = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.CapitalStats, 2, -0.1f, "-Decrease multi-construction\ndelay by \r%");
     localUpgradesList [0] [1].descriptionAsPercentage = true;
     // Increase caravan capacity, health, and speed
     localUpgradesList.Add(new LocalUpgrade[3]);
     float[] secondCostArray = new float[] { 75f, 75f, 0f };
     localUpgradesList [1] [0]              = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.CaravanStats, 0, 2f, "-Increase caravan capacity\nby \r\n", secondCostArray, 1.5f);
     localUpgradesList [1] [0].asAddition   = true;
     localUpgradesList [1] [1]              = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.CaravanStats, 1, 0.1f, "-Increase caravan health\nby \r hp\n");
     localUpgradesList [1] [2]              = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.CaravanStats, 2, 0.25f, "-Increase caravan speed\nby \r m/s");
     localUpgradesList [1] [2].messageArray = new string[] { "IncreaseCurrentCaravansStats" };
     // Increase max builders
     localUpgradesList.Add(new LocalUpgrade[1]);
     float[] thirdCostArray = new float[] { 0f, 0f, 75f };
     localUpgradesList [2] [0]              = LocalUpgradesMenu.MakeLocalUpgrade(StatsType.MobTrainerStats, 0, 2f, "-Increase max " + unitName + "s by \r", thirdCostArray, 1.5f);
     localUpgradesList [2] [0].asAddition   = true;
     localUpgradesList [2] [0].messageArray = new string[] { "IncreaseIdealUnits" };
 }