Initial commit
This commit is contained in:
commit
d7619777af
915 changed files with 59386 additions and 0 deletions
114
includes/functions/CancelBuildingFromQueue.php
Normal file
114
includes/functions/CancelBuildingFromQueue.php
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
<?php
|
||||
/**
|
||||
* This file is part of XNova:Legacies
|
||||
*
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.txt
|
||||
* @see http://www.xnova-ng.org/
|
||||
*
|
||||
* Copyright (c) 2009-Present, XNova Support Team <http://www.xnova-ng.org>
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* --> 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.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
* @deprecated
|
||||
* @param unknown_type $CurrentPlanet
|
||||
* @param unknown_type $CurrentUser
|
||||
*/
|
||||
function CancelBuildingFromQueue ( &$CurrentPlanet, &$CurrentUser ) {
|
||||
|
||||
$CurrentQueue = $CurrentPlanet['b_building_id'];
|
||||
if ($CurrentQueue != 0) {
|
||||
// Creation du tableau de la liste de construction
|
||||
$QueueArray = explode ( ";", $CurrentQueue );
|
||||
// Comptage du nombre d'elements dans la liste
|
||||
$ActualCount = count ( $QueueArray );
|
||||
|
||||
// Stockage de l'element a 'interrompre'
|
||||
$CanceledIDArray = explode ( ",", $QueueArray[0] );
|
||||
$Element = $CanceledIDArray[0];
|
||||
$BuildMode = $CanceledIDArray[4]; // pour savoir si on construit ou detruit
|
||||
|
||||
$nb_item = $Element;
|
||||
|
||||
if ($ActualCount > 1) {
|
||||
array_shift( $QueueArray );
|
||||
$NewCount = count( $QueueArray );
|
||||
// Mise a jour de l'heure de fin de construction theorique du batiment
|
||||
$BuildEndTime = time();
|
||||
|
||||
for ($ID = 0; $ID < $NewCount ; $ID++ ) {
|
||||
$ListIDArray = explode ( ",", $QueueArray[$ID] );
|
||||
|
||||
// Pour diminuer le niveau et le temps de construction
|
||||
// si le bâtiment qui est annulé se trouve plusieurs fois dans la queue
|
||||
// Exemple de queue de construction :
|
||||
// Mine de métal (Niveau 40) | Silo de missile (Niveau 30) | Silo de missiles (Niveau 31) | Mine de métal (Niveau 41)
|
||||
|
||||
// Si on supprime le premier bâtiment, on aura dans la queue de construction :
|
||||
// Silo de missile (Niveau 30) | Silo de missiles (Niveau 31) | Mine de métal (Niveau 40)
|
||||
if ( $nb_item == $ListIDArray[0])
|
||||
{
|
||||
$ListIDArray[1] -= 1;
|
||||
$ListIDArray[2] = GetBuildingTimeLevel($CurrentUser, $CurrentPlanet, $ListIDArray[0], $ListIDArray[1]);
|
||||
}
|
||||
$BuildEndTime += $ListIDArray[2];
|
||||
$ListIDArray[3] = $BuildEndTime;
|
||||
$QueueArray[$ID] = implode ( ",", $ListIDArray );
|
||||
}
|
||||
$NewQueue = implode(";", $QueueArray );
|
||||
$ReturnValue = true;
|
||||
$BuildEndTime = '0';
|
||||
} else {
|
||||
$NewQueue = '0';
|
||||
$ReturnValue = false;
|
||||
$BuildEndTime = '0';
|
||||
}
|
||||
|
||||
// Ici on va rembourser les ressources engagées ...
|
||||
// Deja le mode (car quand on detruit ca ne coute que la moitié du prix de construction classique
|
||||
if ($BuildMode == 'destroy') {
|
||||
$ForDestroy = true;
|
||||
} else {
|
||||
$ForDestroy = false;
|
||||
}
|
||||
|
||||
if ( $Element != false ) {
|
||||
$Needed = GetBuildingPrice ($CurrentUser, $CurrentPlanet, $Element, true, $ForDestroy);
|
||||
$CurrentPlanet['metal'] += $Needed['metal'];
|
||||
$CurrentPlanet['crystal'] += $Needed['crystal'];
|
||||
$CurrentPlanet['deuterium'] += $Needed['deuterium'];
|
||||
}
|
||||
|
||||
} else {
|
||||
$NewQueue = '0';
|
||||
$BuildEndTime = '0';
|
||||
$ReturnValue = false;
|
||||
}
|
||||
|
||||
$CurrentPlanet['b_building_id'] = $NewQueue;
|
||||
$CurrentPlanet['b_building'] = $BuildEndTime;
|
||||
|
||||
return $ReturnValue;
|
||||
}
|
||||
|
||||
?>
|
||||
Loading…
Reference in a new issue