* All rights reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*
* --> NOTICE <--
* This file is part of the core development branch, changing its contents will
* make you unable to use the automatic updates manager. Please refer to the
* documentation for further information about customizing XNova.
*
*/
function FleetBuildingPage ( &$CurrentPlanet, $CurrentUser ) {
global $pricelist, $lang, $resource, $dpath, $_POST;
if (isset($_POST['fmenge'])) {
// On vient de Cliquer ' Construire '
// Et y a une liste de dol�ances
$AddedInQueue = false;
// Ici, on sait precisement ce qu'on aimerait bien construire ...
foreach($_POST['fmenge'] as $Element => $Count) {
// Construction d'Element recuper�s sur la page de Flotte ...
// ATTENTION ! La file d'attente Flotte est Commune a celle des Defenses
// Dans fmenge, on devrait trouver un tableau des elements constructibles et du nombre d'elements souhait�s
$Element = intval($Element);
$Count = ereg_replace("[^0-9]",'',$Count);
if ($Count > MAX_FLEET_OR_DEFS_PER_ROW) {
$Count = MAX_FLEET_OR_DEFS_PER_ROW;
}
if ($Count != 0) {
// On verifie si on a les technologies necessaires a la construction de l'element
if ( IsTechnologieAccessible ($CurrentUser, $CurrentPlanet, $Element) ) {
// On verifie combien on sait faire de cet element au max
$MaxElements = GetMaxConstructibleElements ( $Element, $CurrentPlanet );
// Si pas assez de ressources, on ajuste le nombre d'elements
if ($Count > $MaxElements) {
$Count = $MaxElements;
}
$Ressource = GetElementRessources ( $Element, $Count );
$BuildTime = GetBuildingTime($CurrentUser, $CurrentPlanet, $Element);
if ($Count >= 1) {
if ($BuildTime > 0) {
$CurrentPlanet['metal'] -= $Ressource['metal'];
$CurrentPlanet['crystal'] -= $Ressource['crystal'];
$CurrentPlanet['deuterium'] -= $Ressource['deuterium'];
if ($Element == 214 && $CurrentUser['rpg_destructeur'] == 1) {
$Count = $Count * 2; //On multiplie les EDLM par 2
}
// 1° Vaisseau à rajouter dans la queue
if ($CurrentPlanet['b_hangar'] == 0)
{
// On prends la valeur du temps actuel
$TimeStart = time();
// On calcule quand çà sera terminé en rajoutant
// le temps de construction d'un vaisseau
// multiplié par le nombre
$TimeFinish = $TimeStart + $BuildTime * $Count;
// On garde en mémoire l'heure de fin
$CurrentPlanet['b_hangar'] = $TimeFinish;
}
else
{
// Plus d'un type de vaisseau à construire
// On prends comme référence pour l'heure du début,
// l'heure de fin du précédent type de vaisseau
$TimeStart = $CurrentPlanet['b_hangar'];
// On calcule l'heure de fin pour ce type de
// vaisseau
$TimeFinish = $TimeStart + $BuildTime * $Count;
// On stocke en mémoire l'heure de fin pour le
// prochain type de vaisseau
$CurrentPlanet['b_hangar'] = $TimeFinish;
}
$CurrentPlanet['b_hangar_id'] .= "". $Element .",". $Count .",". $TimeStart .",". $TimeFinish .";";
} else {
$res=doquery("SELECT ".$resource[$Element]." FROM {{table}} WHERE id = '". $CurrentPlanet['id'] ."' ;",'planets');
$NombreVaisseauxActuel=mysql_result($res,0,$resource[$Element]);
$CurrentPlanet['metal'] -= $Ressource['metal'];
$CurrentPlanet['crystal'] -= $Ressource['crystal'];
$CurrentPlanet['deuterium'] -= $Ressource['deuterium'];
$NewFleetNumber = $CurrentPlanet[$resource[$Element]] + $Count;
if ($Element == 214 && $CurrentUser['rpg_destructeur'] == 1) {
$Count = $Count * 2; //On multiplie les EDLM par 2
}
$QryUpdatefleet = "UPDATE {{table}} SET ";
$QryUpdatefleet .= "`$resource[$Element]` = '".$NombreVaisseauxActuel."' + '".$Count."' ";
$QryUpdatefleet .= "WHERE ";
$QryUpdatefleet .= "`id` = '". $CurrentPlanet['id'] ."'";
doquery ( $QryUpdatefleet, 'planets');
}
}
}
}
}
//$Qry = << $ElementName) {
if ($Element > 201 && $Element <= 399) {
if (IsTechnologieAccessible($CurrentUser, $CurrentPlanet, $Element)) {
// Disponible à la construction
// On regarde si on peut en acheter au moins 1
$CanBuildOne = IsElementBuyable($CurrentUser, $CurrentPlanet, $Element, false);
// On regarde combien de temps il faut pour construire l'element
$BuildOneElementTime = GetBuildingTime($CurrentUser, $CurrentPlanet, $Element);
// Disponibilité actuelle
$ElementCount = $CurrentPlanet[$resource[$Element]];
$ElementNbre = ($ElementCount == 0) ? "" : " (".$lang['dispo'].": " . pretty_number($ElementCount) . ")";
// Construction des 3 cases de la ligne d'un element dans la page d'achat !
// Début de ligne
$PageTable .= "\n
";
// Imagette + Link vers la page d'info
$PageTable .= "
";
$PageTable .= "".$ElementName." ".$ElementNbre." ";
$PageTable .= "".$lang['res']['descriptions'][$Element]." ";
// On affiche le 'prix' avec eventuellement ce qui manque en ressource
$PageTable .= GetElementPrice($CurrentUser, $CurrentPlanet, $Element, false);
// On affiche le temps de construction (c'est toujours tellement plus joli)
$PageTable .= ShowBuildTime($BuildOneElementTime);
$PageTable .= "
";
// Case nombre d'elements a construire
$PageTable .= "
";
// Si ... Et Seulement si je peux construire je mets la p'tite zone de saisie
if ($CanBuildOne) {
$TabIndex++;
$PageTable .= "";
$MaxElements = GetMaxConstructibleElements ( $Element, $CurrentPlanet );
if($MaxElements>MAX_FLEET_OR_DEFS_PER_ROW)
$MaxElements=MAX_FLEET_OR_DEFS_PER_ROW;
$PageTable.='
';
}
else
{
$PageTable .= $lang['no_enought_res'] . '';
}
// Fin de ligne (les 3 cases sont construites !!
$PageTable .= "
";
}
}
}
if ($CurrentPlanet['b_hangar_id'] != '') {
$BuildQueue .= ElementBuildListBox( $CurrentUser, $CurrentPlanet );
}
$parse = $lang;
// La page se trouve dans $PageTable;
$parse['buildlist'] = $PageTable;
// Et la liste de constructions en cours dans $BuildQueue;
$parse['buildinglist'] = $BuildQueue;
$page .= parsetemplate(gettemplate('buildings_fleet'), $parse);
display($page, $lang['Fleet']);
}