Exemplo n.º 1
0
 public void UpgradeByExp(System.Action then)
 {
     if (_baseCharacter == null || _baseCharacter is Object && _baseCharacter.Equals(null))
     {
         return;
     }
     _currency.PurchaseByExperencePoint(upgradedCost.ExperencePoint, () =>
     {
         _baseCharacter.attackPower *= (1 + upgradedAttackRate);
         _baseCharacter.hp          *= (1 + upgradedHpRate);
         ++_baseCharacter.level;
         _baseCharacter.AssignUpgradedDisplay();
         attackPower                       = _baseCharacter.attackPower;
         hp                                = _baseCharacter.hp;
         level                             = _baseCharacter.level;
         display                           = _baseCharacter.displayPrefab;
         var upgradedGoldRate              = GetUpgradedCostRate();
         _baseCharacter.upgradedCost.Gold *= (1 + upgradedGoldRate);
         upgradedCost                      = _baseCharacter.upgradedCost;
         if (then != null)
         {
             then();
         }
     });
 }