function getBankProduction(&$objUser) { $production = array(); $iAllianceId = $objUser->get_stat(ALLIANCE); $iLand = $objUser->get_build(LAND); $arrMines = getMineProduction($objUser); $strRace = $objUser->get_stat(RACE); $citizens = $objUser->get_pop(CITIZENS); $iBanks = $objUser->get_build(BANKS); // Bank Income Formula $landratio = $iLand / 2000; $citzacre = max($citizens / $iLand * Min(pow($landratio, 2), 1), 1); $gold = $arrMines['per_each'] * 2 * exp(-50 / $citzacre); // Lowest Possible value if ($strRace == "Dragon" && $gold < 60) { $gold = 60; } elseif ($gold < 250) { $gold = 250; } $raw = $iBanks * $gold; // Research Bonus - New code January 09, 2008, Martel $arrResearch = getResearchBonuses($objUser->get_alliance()); $research_bonus = round($raw * $arrResearch['income']); $total = $raw + $research_bonus; $production['per_each'] = $gold; $production['raw'] = $raw; $production['research_bonus'] = $research_bonus; $production['total'] = $total; return $production; }
function getMaxPopulation(&$objUser) { $population = array(); $iAllianceId = $objUser->get_stat(KINGDOM); $strRace = $objUser->get_stat(RACE); $arrBuilds = $objUser->get_builds(); // Base Housing Capacities include_once 'inc/functions/build.php'; $arrBuildVars = getBuildingVariables($strRace); $homes_hold = $arrBuildVars['housing'][1]; $extra_hold = $arrBuildVars['housing'][2]; $hideouts_hold = $arrBuildVars['housing'][12]; // Maximum number of homes that will house population if ($strRace != "Mori Hai") { $max_homes = floor($arrBuilds[LAND] * 0.3); } else { $max_homes = floor($arrBuilds[LAND] * 0.45); } if ($arrBuilds[HOMES] >= $max_homes) { $arrBuilds[HOMES] = $max_homes; } // Various other buildings house population too $other_buildings = $arrBuilds[FARMS] + $arrBuilds[WALLS] + $arrBuilds[WEAPONRIES] + $arrBuilds[GUILDS] + $arrBuilds[MINES] + $arrBuilds[MARKETS] + $arrBuilds[LABS] + $arrBuilds[CHURCHES] + $arrBuilds[GUARDHOUSES] + $arrBuilds[BANKS] + $arrBuilds[ACADEMIES] + $arrBuilds[YARDS]; // Hideouts (is the same as other for most races) $hideouts = $arrBuilds[HIDEOUTS]; // Raw Housing Capacity of Buildings $homes = $arrBuilds[HOMES] * $homes_hold; $hideouts *= $hideouts_hold; $other_buildings *= $extra_hold; $other_buildings += $hideouts; $total_room = $homes + $other_buildings; // Population Spell Bonus (Elendian) $spellBonuses = getSpellBonuses($objUser); $spell_bonus = round($total_room * $spellBonuses['population'], 0); // Research Bonus - New code January 09, 2008, Martel $arrResearch = getResearchBonuses($objUser->get_alliance()); $research_bonus = round($total_room * $arrResearch['population']); // Population Fame bonus $arrFameBonuses = getFameBonuses($objUser); $fame_bonus = round($total_room * $arrFameBonuses['population']); // Total Population $total = floor($homes + $fame_bonus + $spell_bonus + $research_bonus + $other_buildings); // Max Citizens $arrPopulation = getPopulation($objUser); $max_citizens = floor($total - $arrPopulation['total_army']); // Total Citizens (How many citzizens there can be after update) $total_citizens = $arrPopulation['citizens']; // Get Growthrate $growthrate = getGrowthRate($objUser); $total_citizens = floor($total_citizens * $growthrate); if ($total_citizens > $max_citizens) { $total_citizens = $max_citizens; } if ($total_citizens < 200) { $total_citizens = 200; } $population['homes'] = $homes; // raw capacity of homes $population['extra_homes'] = $other_buildings; // raw of other buildings $population['total_raw'] = $total_room; $population['fame_bonus'] = $fame_bonus; $population['spell_bonus'] = $spell_bonus; $population['research_bonus'] = $research_bonus; $population['max_citizens'] = $max_citizens; $population['growth_rate'] = $growthrate; $population['total_citizens'] = $total_citizens; $population['total'] = $total; // total max population return $population; }