Exemplo n.º 1
0
    /**
     * method acs_steal
     * param $attackFleets
     * param $defenderPlanet
     * param $ForSim
     * return the steal result
     */
    private function acs_steal($attackFleets, $defenderPlanet, $ForSim = FALSE)
    {
        $SortFleets = array();
        foreach ($attackFleets as $FleetID => $Attacker) {
            foreach ($Attacker['detail'] as $Element => $amount) {
                if ($Element != 210) {
                    //fix probos capacity in attack by jstar
                    $SortFleets[$FleetID] += $this->_pricelist[$Element]['capacity'] * $amount;
                }
            }
            $SortFleets[$FleetID] -= $Attacker['fleet']['fleet_resource_metal'] - $Attacker['fleet']['fleet_resource_crystal'] - $Attacker['fleet']['fleet_resource_deuterium'];
        }
        $Sumcapacity = array_sum($SortFleets);
        //FIX JTSAMPER
        $booty['deuterium'] = min($Sumcapacity / 3, $defenderPlanet['planet_deuterium'] / 2);
        $Sumcapacity -= $booty['deuterium'];
        $booty['crystal'] = min($Sumcapacity / 2, $defenderPlanet['planet_crystal'] / 2);
        $Sumcapacity -= $booty['crystal'];
        $booty['metal'] = min($Sumcapacity, $defenderPlanet['planet_metal'] / 2);
        $Sumcapacity -= $booty['metal'];
        $oldMetalBooty = $booty['crystal'];
        $booty['crystal'] += min($Sumcapacity / 2, max($defenderPlanet['planet_crystal'] / 2 - $booty['crystal'], 0));
        $Sumcapacity += $oldMetalBooty - $booty['crystal'];
        $booty['metal'] += min($Sumcapacity, max($defenderPlanet['planet_metal'] / 2 - $booty['metal'], 0));
        $booty['metal'] = max($booty['metal'], 0);
        $booty['crystal'] = max($booty['crystal'], 0);
        $booty['deuterium'] = max($booty['deuterium'], 0);
        //END FIX
        $steal = array_map('floor', $booty);
        if ($ForSim) {
            return $steal;
        }
        $AllCapacity = array_sum($SortFleets);
        $QryUpdateFleet = '';
        if ($AllCapacity != 0) {
            foreach ($SortFleets as $FleetID => $Capacity) {
                parent::$db->query('UPDATE ' . FLEETS . ' SET
										`fleet_resource_metal` = `fleet_resource_metal` + ' . Format_Lib::float_to_string($steal['metal'] * ($Capacity / $AllCapacity)) . ',
										`fleet_resource_crystal` = `fleet_resource_crystal` +' . Format_Lib::float_to_string($steal['crystal'] * ($Capacity / $AllCapacity)) . ',
										`fleet_resource_deuterium` = `fleet_resource_deuterium` +' . Format_Lib::float_to_string($steal['deuterium'] * ($Capacity / $AllCapacity)) . '
										WHERE fleet_id = ' . $FleetID . '
										LIMIT 1;');
            }
        } else {
            $steal = 0;
        }
        return $steal;
    }