Пример #1
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); }));
             }
         }
     }
 }