<?php

/**
 * MissionCaseStayAlly.php
 *
 * @version 1.0
 * @copyright 2008 by Chlorel for XNova
 */


// ----------------------------------------------------------------------------------------------------------------
// Mission Case 11: -> Exploiter
//
function MissionCaseExtraction ($FleetRow) {
global $pricelist, $lang;

//si on est bien sur l'aller
if ($FleetRow["fleet_mess"] == "0") {

//si l'impact a  eu lieu
if ($FleetRow['fleet_start_time'] <= time()) {

//on recup les VE
$FleetRecord         = explode(";", $FleetRow['fleet_array']);
			$ExtCapacity    = 0;
			$OtherFleetCapacity  = 0;
			foreach ($FleetRecord as $Item => $Group) {
				if ($Group != '') {
					$Class        = explode (",", $Group);
					if ($Class[0] == 235) {
						$ExtCapacity   += $pricelist[$Class[0]]["capacity"] * $Class[1];
					} else {
						$OtherFleetCapacity += $pricelist[$Class[0]]["capacity"] * $Class[1];
					}
				}
			}		
// pour avoir la capa des VE meme si y a d'autre flotte		  
$IncomingFleetGoods = $FleetRow["fleet_resource_metal"] + $FleetRow["fleet_resource_crystal"] + $FleetRow["fleet_resource_deuterium"];
			if ($IncomingFleetGoods > $OtherFleetCapacity) {
				$ExtCapacity -= ($IncomingFleetGoods - $OtherFleetCapacity);
			}
//taux de ressources ramené, peut etre modifié
		  $Met_Ext= ($ExtCapacity/3)*2;
		  $Cry_Ext= ($ExtCapacity/3)*1;
		  
//provisoirement le temps d extraction est fixe: 1h (3600 secondes)
$Extraction = $FleetRow['fleet_start_time']+3600;
$Temps_Fin= ($FleetRow['fleet_end_time']-$FleetRow['fleet_start_time'])/2;


//on creer le remplissage par seconde:
$Prod_Seconde = $ExtCapacity/3600;
	
//on update le tt
			$QryUpFleet  = "UPDATE {{table}} SET ";
            $QryUpFleet .= "`fleet_resource_metal` = `fleet_resource_metal`, ";
            $QryUpFleet .= "`fleet_resource_crystal` = `fleet_resource_crystal`, ";
            $QryUpFleet .= "`fleet_mess` = '1', ";
			$QryUpFleet .= "`fleet_ve_prod` = '".time()."', ";
			$QryUpFleet .= "`fleet_end_stay` = '".$Extraction."', ";
			$QryUpFleet .= "`fleet_end_time` = '".$Temps_Fin."' ";
            $QryUpFleet .= "WHERE ";
            $QryUpFleet .= "`fleet_id` = '".$FleetRow['fleet_id']."' ";
            $QryUpFleet .= "LIMIT 1;";
            doquery( $QryUpFleet, 'fleets');

//message d'extraction
$TargetAdress = sprintf ($lang['sys_adress_planet'], $FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet']);
$TheMessage = $lang['sys_colo_arrival'] . $TargetAdress . $lang['sys_ext_ok'];
					SendSimpleMessage ( $FleetRow['fleet_owner'], '', $FleetRow['fleet_start_time'], 0, $lang['sys_ext_mess_from'], $lang['sys_ext_mess_report'], $TheMessage);
			
}
}
elseif($FleetRow['fleet_end_stay']>=time()){

//on recup les VE
$FleetRecord         = explode(";", $FleetRow['fleet_array']);
			$ExtCapacity    = 0;
			$OtherFleetCapacity  = 0;
			foreach ($FleetRecord as $Item => $Group) {
				if ($Group != '') {
					$Class        = explode (",", $Group);
					if ($Class[0] == 235) {
						$ExtCapacity   += $pricelist[$Class[0]]["capacity"] * $Class[1];
					} else {
						$OtherFleetCapacity += $pricelist[$Class[0]]["capacity"] * $Class[1];
					}
				}
			}		
// pour avoir la capa des VE meme si y a d'autre flotte		  
$IncomingFleetGoods = $FleetRow["fleet_resource_metal"] + $FleetRow["fleet_resource_crystal"] + $FleetRow["fleet_resource_deuterium"];
			if ($IncomingFleetGoods > $OtherFleetCapacity) {
				$ExtCapacity -= ($IncomingFleetGoods - $OtherFleetCapacity);
			}
//on creer le remplissage par seconde:

//provisoirement le temps d extraction est fixe: 1h (3600 secondes)
$Extraction = $FleetRow['fleet_start_time']+3600;

//temps qu'il reste avant que la flotte rentre
$Temps_Fini= $Extraction -time();

//remplissage par seconde
$Combien = $ExtCapacity/3600;

//depuis quand on a pas actualisé(pour savoir de combien doivent se remplir les soutes
$Entre_Deux= time()-$FleetRow['fleet_ve_prod'];

//prod metal
$Prod_Tot_Met=($Entre_Deux*$Combien/5)*3;

//prod crystal
$Prod_Tot_Cri=($Entre_Deux*$Combien/5)*2;

//si il reste du temps d'extraction on update
if ($Temps_Fini>=0){

$QryUpFleet  = "UPDATE {{table}} SET ";
            $QryUpFleet .= "`fleet_resource_metal` = `fleet_resource_metal` + '".$Prod_Tot_Met."', ";
            $QryUpFleet .= "`fleet_resource_crystal` = `fleet_resource_crystal` + '".$Prod_Tot_Cri."', ";
			$QryUpFleet .= "`fleet_ve_prod` = '".time()."' ";
            $QryUpFleet .= "WHERE ";
            $QryUpFleet .= "`fleet_id` = '".$FleetRow['fleet_id']."' ";
            $QryUpFleet .= "LIMIT 1;";
            doquery( $QryUpFleet, 'fleets');
}
}
else{

//si c l'heure de rentrer
if($FleetRow['fleet_end_time']<=time()){

//le message
$TargetAdressRet = sprintf ($lang['sys_adress_planet'], $FleetRow['fleet_start_galaxy'], $FleetRow['fleet_start_system'], $FleetRow['fleet_start_planet']);
$TheMessageRet = $lang['sys_colo_retour'] . $TargetAdressRet . $lang['sys_ext_ret'] . number_format($FleetRow['fleet_resource_metal']) . $lang['sys_ext_met'] . $lang['sys_ext_et'] . number_format($FleetRow['fleet_resource_crystal']) . $lang['sys_ext_cry'];
					SendSimpleMessage ( $FleetRow['fleet_owner'], '', $FleetRow['fleet_end_time'], 0, $lang['sys_ext_mess_from'], $lang['sys_ext_mess_report'], $TheMessageRet);
	
//on remet la flotte sur la colo			
RestoreFleetToPlanet ( $FleetRow, true );

//et on l'efface des flottes en vol
doquery("DELETE FROM {{table}} WHERE `fleet_id` = '". $FleetRow["fleet_id"] ."';", 'fleets');
}		
                    }

                }

?>