wootook-reloaded/includes/functions/CheckPlanetBuildingQueue.php
Gregory PLANCHAT d7619777af Initial commit
2011-06-07 09:23:48 +02:00

156 lines
No EOL
5.2 KiB
PHP

<?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 CheckPlanetBuildingQueue ( &$CurrentPlanet, &$CurrentUser ) {
global $lang, $resource;
// Table des batiments donnant droit de l'experience minier
$XPBuildings = array( 1, 2, 3, 22, 23, 24);
$RetValue = false;
if ($CurrentPlanet['b_building_id'] != 0) {
$CurrentQueue = $CurrentPlanet['b_building_id'];
if ($CurrentQueue != 0) {
$QueueArray = explode ( ";", $CurrentQueue );
$ActualCount = count ( $QueueArray );
}
$BuildArray = explode (",", $QueueArray[0]);
$BuildEndTime = floor($BuildArray[3]);
$BuildMode = $BuildArray[4];
$Element = $BuildArray[0];
array_shift ( $QueueArray );
if ($BuildMode == 'destroy') {
$ForDestroy = true;
} else {
$ForDestroy = false;
}
if ($BuildEndTime <= time()) {
// Mise a jours des points
$Needed = GetBuildingPrice ($CurrentUser, $CurrentPlanet, $Element, true, $ForDestroy);
$Units = $Needed['metal'] + $Needed['crystal'] + $Needed['deuterium'];
if ($ForDestroy == false) {
// Mise a jours de l'XP Minier
if (in_array($Element, $XPBuildings)) {
$AjoutXP = $Units / 1000;
$CurrentUser['xpminier'] += $AjoutXP;
}
} else {
// Mise a jours de l'XP Minier
if (in_array($Element, $XPBuildings)) {
$AjoutXP = ($Units * 3) / 1000;
$CurrentUser['xpminier'] -= $AjoutXP;
}
}
$current = intval($CurrentPlanet['field_current']);
$max = intval($CurrentPlanet['field_max']);
// Pour une lune
if ($CurrentPlanet['planet_type'] == 3) {
if ($Element == 41) {
// Base Lunaire
$current += 1;
$max += FIELDS_BY_MOONBASIS_LEVEL;
$CurrentPlanet[$resource[$Element]]++;
} elseif ($Element != 0) {
if ($ForDestroy == false) {
$current += 1;
$CurrentPlanet[$resource[$Element]]++;
} else {
$current -= 1;
$CurrentPlanet[$resource[$Element]]--;
}
}
} elseif ($CurrentPlanet['planet_type'] == 1) {
if ($ForDestroy == false) {
$current += 1;
$CurrentPlanet[$resource[$Element]]++;
} else {
$current -= 1;
$CurrentPlanet[$resource[$Element]]--;
}
}
if (count ( $QueueArray ) == 0) {
$NewQueue = 0;
} else {
$NewQueue = implode (";", $QueueArray );
}
$CurrentPlanet['b_building'] = 0;
$CurrentPlanet['b_building_id'] = $NewQueue;
$CurrentPlanet['field_current'] = $current;
$CurrentPlanet['field_max'] = $max;
$QryUpdatePlanet = "UPDATE {{table}} SET ";
$QryUpdatePlanet .= "`".$resource[$Element]."` = '".$CurrentPlanet[$resource[$Element]]."', ";
// Mise a 0 de l'heure de fin de construction ...
// Ca va activer la mise en place du batiment suivant de la queue
$QryUpdatePlanet .= "`b_building` = '". $CurrentPlanet['b_building'] ."' , ";
$QryUpdatePlanet .= "`b_building_id` = '". $CurrentPlanet['b_building_id'] ."' , ";
$QryUpdatePlanet .= "`field_current` = '" . $CurrentPlanet['field_current'] . "', ";
$QryUpdatePlanet .= "`field_max` = '" . $CurrentPlanet['field_max'] . "' ";
$QryUpdatePlanet .= "WHERE ";
$QryUpdatePlanet .= "`id` = '" . $CurrentPlanet['id'] . "';";
doquery( $QryUpdatePlanet, 'planets');
$QryUpdateUser = "UPDATE {{table}} SET ";
$QryUpdateUser .= "`xpminier` = '".$CurrentUser['xpminier']."' ";
$QryUpdateUser .= "WHERE ";
$QryUpdateUser .= "`id` = '" . $CurrentUser['id'] . "';";
doquery( $QryUpdateUser, 'users');
$RetValue = true;
} else {
$RetValue = false;
}
} else {
$CurrentPlanet['b_building'] = 0;
$CurrentPlanet['b_building_id'] = 0;
$QryUpdatePlanet = "UPDATE {{table}} SET ";
$QryUpdatePlanet .= "`b_building` = '". $CurrentPlanet['b_building'] ."' , ";
$QryUpdatePlanet .= "`b_building_id` = '". $CurrentPlanet['b_building_id'] ."' ";
$QryUpdatePlanet .= "WHERE ";
$QryUpdatePlanet .= "`id` = '" . $CurrentPlanet['id'] . "';";
doquery( $QryUpdatePlanet, 'planets');
$RetValue = false;
}
return $RetValue;
}
?>