// rewardQty * 3600 / (hpOfCurrentZone / (dps * idleDpsMult) + 0.5) * hpOfCurrentZone / 5 * goldHeroUpgradesMult * mammonMult * (1 + chestChance * (chestMult - 1)) * idleGoldMult * fortunaMult * mercLevel * (1 + rarityBonus) public function finishQuest() : Object { //... _loc7_ = this.getTotalGoldReward(this.lastQuestGoldRewardQty); _loc1_.addGold(_loc7_); //... } // getPurchaseGoldAmount(rewardQty) * mercLevel * (1 + rarityBonus) public function getTotalGoldReward(param1:Number) : BigDecimal { var _loc3_:BigDecimal = null; var _loc2_:UserData = CurrentUser.instance as UserData; if(this.statId == BONUS_GOLD) { _loc3_ = _loc2_.getPurchaseGoldAmount(param1).multiply(new BigDecimal(this.level * (1 + stats[BONUS_GOLD]["baseValue"] * rarities[this.rarity]["multiplier"]))); } else { _loc3_ = _loc2_.getPurchaseGoldAmount(param1).multiply(new BigDecimal(this.level)); } _loc3_ = _loc3_.ceil(); return _loc3_; } // getNumberOfEnemiesKilledInTime * monsterGoldFormula1 * (1 + chestChance * (chestMult - 1)) * idleGoldMult * fortunaMult // param1 = rewardQty public function getPurchaseGoldAmount(param1:Number = 8, param2:Boolean = false) : BigDecimal { var _loc3_:Monster = this.getDefaultMonster(); var _loc4_:Number = this.getNumberOfEnemiesKilledInTime(_loc3_,param1); var _loc5_:BigDecimal = Formulas.instance.monsterGoldFormula1(_loc3_,true); var _loc6_:BigDecimal = new BigDecimal(_loc4_).multiply(_loc5_); var _loc7_:BigDecimal = new BigDecimal(1 + this.getTreasureChestChance() * (this.getTreasureChestMultiplier() - 1)); _loc6_ = _loc6_.multiply(_loc7_); var _loc8_:BigDecimal = new BigDecimal(this.ancients.idleGoldPercent * 0.01 + 1); _loc6_ = _loc6_.multiply(_loc8_); var _loc9_:Number = this.ancients.tenXGoldChance; _loc6_ = _loc6_.multiply(new BigDecimal(1 + _loc9_ * 0.09)); if(param2) { if(_loc6_.ltN(1000)) { _loc6_ = new BigDecimal(1000); } } else if(_loc6_.ltN(0)) { _loc6_ = new BigDecimal(0); } return _loc6_; } private function getDefaultMonster() : Monster { var _loc1_:Monster = new Monster(); _loc1_.id = 1; _loc1_.level = this.highestFinishedZone + 1; return _loc1_; } // rewardQty * 3600 / (hpOfCurrentZone / (dps * idleDpsMult) + 0.5) // param2 = rewardQty public function getNumberOfEnemiesKilledInTime(param1:Monster, param2:Number = 8) : Number { var _loc8_:BigDecimal = null; var _loc3_:BigDecimal = this.attributes.currentAttackUnmodified; // current dps if(_loc3_.ltN(1) || isNaN(_loc3_.numberValue())) { _loc3_ = new BigDecimal(1); } _loc3_ = _loc3_.multiply(new BigDecimal(this.ancients.idleDpsPercent * 0.01 + 1)); var _loc4_:BigDecimal = new BigDecimal(60 * 60 * param2); var _loc5_:Number = 0.5; var _loc6_:BigDecimal = Formulas.instance.monsterLifeFormula1(param1); // hp of highestFinishedZone + 1 var _loc7_:BigDecimal = _loc6_.divide(_loc3_).add(new BigDecimal(_loc5_)); _loc8_ = _loc4_; _loc8_ = _loc8_.divide(_loc7_); return _loc8_.numberValue(); } // hpOfCurrentZone / 5 * goldHeroUpgradesMult * mammonMult // param2 = true public function monsterGoldFormula1(param1:Monster, param2:Boolean = false) : BigDecimal { var _loc3_:BigDecimal = this.monsterLifeFormula1(param1); // hp of highestFinishedZone + 1 var _loc4_:Number = 1; var _loc5_:Number = 1; if(param1.level > 75) { _loc5_ = Math.min(3,Math.pow(1.025,param1.level - 75)); } if(param1.id == 86) { _loc4_ = (CurrentUser.instance as UserData).getTreasureChestMultiplier(); } var _loc6_:BigDecimal = _loc3_; _loc6_ = _loc6_.divide(new BigDecimal(15)); _loc6_ = _loc6_.multiply(new BigDecimal((CurrentUser.instance as UserData).goldMultiplier)); // hero upgrades _loc6_ = _loc6_.multiply(new BigDecimal(param2?1:(CurrentUser.instance as UserData).getSkillBonus("skillGoldBonus") + 1)); _loc6_ = _loc6_.multiply(new BigDecimal(_loc4_)); _loc6_ = _loc6_.multiply(new BigDecimal((CurrentUser.instance as UserData).ancients.goldPercent * 0.01 + 1)); // mammon ancients + relics _loc6_ = _loc6_.multiply(new BigDecimal(_loc5_)); _loc6_ = _loc6_.ceil(); return _loc6_; } public function monsterLifeFormula1(param1:Monster) : BigDecimal { var _loc2_:BigDecimal = null; var _loc5_:* = NaN; var _loc6_:* = NaN; var _loc10_:BigDecimal = null; var _loc3_:Number = 1.6; var _loc4_:Number = 1.15; var _loc7_:Number = 140; if(param1.level < _loc7_) { _loc5_ = param1.level; _loc6_ = 0; } else { _loc5_ = _loc7_; _loc6_ = param1.level - _loc7_; } var _loc8_:Number = 0; var _loc9_:BigDecimal = new BigDecimal(_loc3_); _loc9_ = _loc9_.pow(new BigDecimal(_loc5_ - 1)); _loc2_ = param1.baseLife; _loc2_ = _loc2_.multiply(_loc9_); _loc2_ = _loc2_.add(new BigDecimal((_loc5_ - 1) * 10)); if(param1.isBoss) { _loc2_ = _loc2_.multiply(new BigDecimal((CurrentUser.instance as UserData).getBossHpMultiplier())); } if(_loc6_) { _loc10_ = new BigDecimal(_loc4_); _loc10_ = _loc10_.pow(new BigDecimal(_loc6_)); _loc2_ = _loc2_.multiply(_loc10_); } _loc2_ = _loc2_.ceil(); return _loc2_; }