Esempio n. 1
0
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;
}
Esempio n. 2
0
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;
}