Finished install script

Updated configuration data loading
Added Website and Game models

Signed-off-by: Gregory PLANCHAT <g.planchat@gmail.com>
This commit is contained in:
Gregory PLANCHAT 2011-12-27 19:37:28 +01:00
commit dfa3dfb086
34 changed files with 362 additions and 510 deletions

View file

@ -1,70 +0,0 @@
<?php
/**
* This file is part of Wootook
*
* @license http://www.gnu.org/licenses/gpl-3.0.txt
* @see http://www.wootook.com/
*
* Copyright (c) 2009-Present, Wootook 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 Wootook.
*
*/
define('INSIDE' , true);
define('INSTALL' , false);
require_once dirname(__FILE__) .'/application/bootstrap.php';
$dpath = (!$userrow["dpath"]) ? DEFAULT_SKINPATH : $userrow["dpath"];
if(!is_numeric($_GET["a"]) || !$_GET["a"] ){ message("Ung&uuml;ltige Allianz-ID","Fehler");}
$allyrow = doquery("SELECT ally_name,ally_tag,ally_description,ally_web,ally_image FROM {{table}} WHERE id=".intval($_GET["a"]),"alliance",true);
if(!$allyrow){ message("Alliance non trouv&eacute;e","Erreur");}
$count = doquery("SELECT COUNT(DISTINCT(id)) FROM {{table}} WHERE ally_id=".intval($_GET["a"]).";","users",true);
$ally_member_scount = $count[0];
$page .="<table width=519><tr><td class=c colspan=2>Informations sur l'alliance</td></tr>";
if($allyrow["ally_image"] != ""){
$page .= "<tr><th colspan=2><img src=\"".$allyrow["ally_image"]."\"></td></tr>";
}
$page .= "<tr><th>Tag</th><th>".$allyrow["ally_tag"]."</th></tr><tr><th>Nom</th><th>".$allyrow["ally_name"]."</th></tr><tr><th>Membres</th><th>$ally_member_scount</th></tr>";
if($allyrow["ally_description"] != ""){
$page .= "<tr><th colspan=2 height=100>".$allyrow["ally_description"]."</th></tr>";
}
if($allyrow["ally_web"] != ""){
$page .="<tr>
<th>Site internet</th>
<th><a href=\"".$allyrow["ally_web"]."\">".$allyrow["ally_web"]."</a></th>
</tr>";
}
$page .= "</table>";
display($page,"Information sur l'alliance [".$allyrow["ally_name"]."]",false);
?>

View file

@ -142,19 +142,6 @@ SQL_EOF;
$this->query($sql);
$sql = <<<SQL_EOF
CREATE TABLE IF NOT EXISTS {$this->getTableName('errors')} (
`error_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`error_sender` VARCHAR(32) NOT NULL,
`error_time` TIMESTAMP NOT NULL,
`error_type` VARCHAR(32) NOT NULL DEFAULT 'unknown',
`error_text` TEXT,
PRIMARY KEY (`error_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
SQL_EOF;
$this->query($sql);
$sql = <<<SQL_EOF
CREATE TABLE IF NOT EXISTS {$this->getTableName('fleets')} (
`fleet_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,

View file

@ -84,12 +84,6 @@ SQL_EOF;
$this->query($sql);
$sql = <<<SQL_EOF
DROP TABLE {$this->getTableName('errors')};
SQL_EOF;
$this->query($sql);
$sql = <<<SQL_EOF
DROP TABLE {$this->getTableName('fleets')};
SQL_EOF;

View file

@ -400,7 +400,7 @@ class Wootook
self::$_websitesById[$websiteId] = $website;
self::$_websitesByCode[$websiteCode] = $website;
} catch (Wootook_Core_Exception_DataAccessException $e) {
throw new Wootook_Core_Exception_RuntimeException('Could not load website entity.', null, $e);
throw new Wootook_Core_Exception_WebsiteError('Could not load website entity.', null, $e);
}
return $website;
@ -417,7 +417,7 @@ class Wootook
self::$_websitesById[$websiteId] = $website;
self::$_websitesByCode[$websiteCode] = $website;
} catch (Wootook_Core_Exception_DataAccessException $e) {
throw new Wootook_Core_Exception_RuntimeException('Could not load website entity.', null, $e);
throw new Wootook_Core_Exception_WebsiteError('Could not load website entity.', null, $e);
}
return $website;
@ -438,7 +438,7 @@ class Wootook
self::$_gamesById[$gameId] = $game;
self::$_gamesByCode[$gameCode] = $game;
} catch (Wootook_Core_Exception_DataAccessException $e) {
throw new Wootook_Core_Exception_RuntimeException('Could not load game entity.', null, $e);
throw new Wootook_Core_Exception_GameError('Could not load game entity.', null, $e);
}
return $game;
@ -455,7 +455,7 @@ class Wootook
self::$_gamesById[$gameId] = $game;
self::$_gamesByCode[$gameCode] = $game;
} catch (Wootook_Core_Exception_DataAccessException $e) {
throw new Wootook_Core_Exception_RuntimeException('Could not load game entity.', null, $e);
throw new Wootook_Core_Exception_GameError('Could not load game entity.', null, $e);
}
return $game;
@ -472,8 +472,8 @@ class Wootook
public static function setGame($gameId, $game)
{
$gameKey = $game->getData('code');
self::$_gameById[$gameId] = $game;
self::$_gameByCode[$gameKey] = $game;
self::$_gamesById[$gameId] = $game;
self::$_gamesByCode[$gameKey] = $game;
}
protected static function _initWebsiteConfig($websiteId)

View file

@ -69,6 +69,8 @@ SQL_EOF;
protected function _save()
{
$database = $this->getWriteConnection();
if ($this->getId() !== null) {
$fields = array();
$values = array();
@ -76,7 +78,7 @@ SQL_EOF;
if ($field == self::getIdFieldName()) {
continue;
}
$fields[] = "{$field}=:{$field}";
$fields[] = "{$database->quoteIdentifier($field)}=:{$field}";
$values[$field] = $value;
}
@ -84,7 +86,6 @@ SQL_EOF;
$idFieldName = self::getIdFieldName();
$values[$idFieldName] = $this->getId();
$database = $this->getWriteConnection();
if ($database === null) {
throw new Wootook_Core_Exception_DataAccessException('Could not load data: no write connection configured.');
}
@ -99,8 +100,8 @@ SQL_EOF;
$statement->execute($values);
} else {
$datas = $this->getAllDatas();
$fieldsImploded = implode(', ', array_keys($datas));
$fields = array();
$tokens = array();
$values = array();
foreach ($datas as $field => $value) {
@ -108,24 +109,27 @@ SQL_EOF;
continue;
}
$tokens[] = ":{$field}";
$values[$field] = $value;
$fields[] = $database->quoteIdentifier($field);
$values[$field] = strval($value);
}
$tokensImploded = implode(', ', $tokens);
$fieldsImploded = implode(', ', $fields);
$database = $this->getWriteConnection();
if ($database === null) {
throw new Wootook_Core_Exception_DataAccessException('Could not load data: no write connection configured.');
}
$table = $database->getTable($this->getTableName());
$sql =<<<SQL_EOF
INSERT INTO {$database->getTable($this->getTableName())} ($fieldsImploded)
VALUES ({$tokensImploded})
INSERT INTO {$database->quoteIdentifier($table)} ({$database->quoteIdentifier($this->getIdFieldName())}, $fieldsImploded)
VALUES (NULL, {$tokensImploded})
SQL_EOF;
$statement = $database->prepare($sql);
$statement->execute($values);
$this->setId($database->lastInsertId());
$id = $database->lastInsertId($table);
$this->setId($id);
}
return $this;

View file

@ -90,6 +90,11 @@ class Wootook_Core_ErrorProfiler
return true;
}
public function addException($exception)
{
$this->_exceptions[] = $exception;
}
public function exceptionManager($exception)
{
if (!$this->_listen) {

View file

@ -0,0 +1,7 @@
<?php
class Wootook_Core_Exception_Deprecated
extends Wootook_Core_Exception_RuntimeException
{
}

View file

@ -0,0 +1,7 @@
<?php
class Wootook_Core_Exception_GameError
extends Wootook_Core_Exception_RuntimeException
{
}

View file

@ -0,0 +1,7 @@
<?php
class Wootook_Core_Exception_WebsiteError
extends Wootook_Core_Exception_RuntimeException
{
}

View file

@ -21,6 +21,10 @@ class Wootook_Core_Model_Session
protected static $_levels = null;
const COOKIE_LIFETIME_CONFIG_KEY = 'web/session/time';
const COOKIE_DOMAIN_CONFIG_KEY = 'web/session/domain';
const COOKIE_PATH_CONFIG_KEY = 'web/session/path';
public static function factory($namespace)
{
$namespace = (string) $namespace;
@ -43,6 +47,7 @@ class Wootook_Core_Model_Session
public function __construct($namespace)
{
if (session_id() == '') {
session_set_cookie_params($this->getCookieLifetime(), $this->getCookiePath(), $this->getCookieDomain(), false, true);
session_start();
}
@ -56,6 +61,26 @@ class Wootook_Core_Model_Session
}
}
public function getCookieLifetime()
{
$lifetime = Wootook::getWebsiteConfig(self::COOKIE_LIFETIME_CONFIG_KEY);
if ($lifetime <= 0) {
return 900;
}
return $lifetime;
}
public function getCookieDomain()
{
return Wootook::getWebsiteConfig(self::COOKIE_DOMAIN_CONFIG_KEY);
}
public function getCookiePath()
{
return Wootook::getWebsiteConfig(self::COOKIE_PATH_CONFIG_KEY);
}
public function getMessages($clear = true)
{
$messages = $this->_data['messages'];

View file

@ -166,6 +166,12 @@ INSERT IGNORE INTO {$this->getTableName('core_config')} (`website_id`, `game_id`
(0, 0, 'web/cookie/domain', ''),
(0, 0, 'web/cookie/path', ''),
(1, 1, 'web/cookie/name', '__wtk_1_1'),
(0, 0, 'web/session/time', '900'),
(0, 0, 'web/session/domain', '.wootook.org'),
(0, 0, 'web/session/path', '/'),
(0, 0, 'engine/options/bbcode', '1'),
(0, 0, 'engine/options/ga', '1'),
(0, 0, 'engine/options/announces', '0'),
@ -184,12 +190,18 @@ INSERT IGNORE INTO {$this->getTableName('core_config')} (`website_id`, `game_id`
(0, 0, 'engine/bot/name', 'Woot'),
(0, 0, 'engine/bot/email', 'contact@wootook.org');
SQL_EOF;
/**
* TODO: change these paths
* (0, 0, 'BuildLabWhileRun', '0')
* (0, 0, 'ExtCopyFrame', '0')
* (0, 0, 'ExtCopyOwner', '')
* (0, 0, 'ExtCopyFunct', '')
*/
$this->query($sql);
$sql = <<<SQL_EOF
CREATE TABLE IF NOT EXISTS {$this->getTableName('errors')} (
`error_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`error_sender` VARCHAR(32) NOT NULL,
`error_time` TIMESTAMP NOT NULL,
`error_type` VARCHAR(32) NOT NULL DEFAULT 'unknown',
`error_text` TEXT,
PRIMARY KEY (`error_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
SQL_EOF;
$this->query($sql);

View file

@ -40,7 +40,7 @@
*
*/
$this->setSetupConnection('legacies_setup');
$this->setSetupConnection('core_setup');
$sql = <<<SQL_EOF
DROP TABLE {$this->getTableName('core_website')};
@ -65,3 +65,9 @@ DROP TABLE {$this->getTableName('core_config')};
SQL_EOF;
$this->query($sql);
$sql = <<<SQL_EOF
DROP TABLE {$this->getTableName('errors')};
SQL_EOF;
$this->query($sql);

View file

@ -22,6 +22,11 @@ class Wootook_Database
return self::getConnection(self::DEFAULT_CONNECTION_NAME);
}
public function quoteIdentifier($identifier)
{
return "`$identifier`";
}
public static function getConnection($connectionName)
{
if (empty($connectionName) || $connectionName === null) {

View file

@ -918,67 +918,6 @@ class Wootook_Empire_Model_Planet
return $this->getBuildingQueue()->getBuildingTime($buildingId, $level);
}
public static function registrationListener($eventData)
{
if (isset($eventData['user'])) {
$user = $eventData['user'];
if ($user === null || !$user instanceof Wootook_Empire_Model_User || !$user->getId()) {
return;
}
$collection = self::searchMostFreeSystems();
$collection->limit(1)->load();
if ($collection->count() == 0) {
throw new Exception('No more planet to colonize!'); // Oops, no more free place
}
$systemInfo = $collection->current();
if ($systemInfo->getData('count') >= MAX_PLANET_IN_SYSTEM) {
throw new Exception('No more planet to colonize!'); // Oops, no more free place
}
$collection = new Wootook_Core_Collection(array('planet' => 'planets'));
$collection
->column(array('position' => 'planet.planet'))
->where('planet.planet_type=1')
->where('planet.galaxy=:galaxy')
->where('planet.system=:system')
->load(array(
'galaxy' => $systemInfo->getData('galaxy'),
'system' => $systemInfo->getData('system'),
))
;
$positions = range(1, MAX_PLANET_IN_SYSTEM);
foreach ($collection as $planet) {
$key = array_search($planet->getData('position'), $positions);
if ($key !== false) {
unset($positions[$key]);
}
}
$key = array_rand($positions, 1);
$finalPosition = $positions[$key];
$planet = $user->createNewPlanet(
$systemInfo->getData('galaxy'),
$systemInfo->getData('system'),
$finalPosition,
Wootook_Empire_Model_Planet::TYPE_PLANET,
Wootook::getRequest()->getParam('planet'),
Wootook::getGameConfig('resource/initial/fields')
);
$user
->setData('id_planet', $planet->getId())
->setData('current_planet', $planet->getId())
->setData('galaxy', $planet->getGalaxy())
->setData('system', $planet->getSystem())
->setData('planet', $planet->getPosition())
;
}
}
public static function searchMostFreeSystems($galaxyList = null, $systemList = null)
{
$collection = new Wootook_Core_Collection(array('galaxy' => 'galaxy'));
@ -1011,15 +950,15 @@ class Wootook_Empire_Model_Planet
}
$orders = array(
"COUNT(*) / {$collection->quote(MAX_PLANET_IN_SYSTEM)}",
"1 + ABS(galaxy.galaxy - CEIL({$collection->quote(MAX_GALAXY_IN_WORLD)} / 2))",
"1 + 2 * ABS(galaxy.system - CEIL({$collection->quote(MAX_SYSTEM_IN_GALAXY)} / 2))",
"COUNT(*) / {$collection->quote(Wootook::getGameConfig('engine/universe/positions'))}",
"1 + ABS(galaxy.galaxy - CEIL({$collection->quote(Wootook::getGameConfig('engine/universe/galaxies'))} / 2))",
"1 + 2 * ABS(galaxy.system - CEIL({$collection->quote(Wootook::getGameConfig('engine/universe/systems'))} / 2))",
"RAND() / 1000",
);
$collection
->order('((' . implode(') * (', $orders) . '))', 'ASC')
//->order("ABS(galaxy.system - CEIL({$collection->quote(MAX_SYSTEM_IN_GALAXY)} / 2))", 'ASC')
//->order("ABS(galaxy.galaxy - CEIL({$collection->quote(MAX_GALAXY_IN_WORLD)} / 2))", 'ASC')
//->order("ABS(galaxy.system - CEIL({$collection->quote(Wootook::getGameConfig('engine/universe/systems'))} / 2))", 'ASC')
//->order("ABS(galaxy.galaxy - CEIL({$collection->quote(Wootook::getGameConfig('engine/universe/galaxies'))} / 2))", 'ASC')
//->order("1.5 / COUNT(*)", 'ASC')
->order('RAND()', 'ASC');

View file

@ -23,18 +23,48 @@ class Wootook_Empire_Model_User
protected $_currentPlanet = null;
const SESSION_KEY = 'user';
const COOKIE_NAME = 'Wootook';
const COOKIE_NAME = '__wtk';
const COOKIE_LIFETIME = 2592000;
const COOKIE_NAME_CONFIG_KEY = 'web/cookie/name';
const COOKIE_LIFETIME_CONFIG_KEY = 'web/cookie/time';
const COOKIE_DOMAIN_CONFIG_KEY = 'web/cookie/domain';
const COOKIE_PATH_CONFIG_KEY = 'web/cookie/path';
const PLANET_SORT_DATE = 0;
const PLANET_SORT_POSITION = 1;
const PLANET_SORT_NAME = 2;
protected static $_cookieName = self::COOKIE_NAME;
public static function setCookieName($name)
public static function getCookieName()
{
self::$_cookieName = $name;
$cookieName = Wootook::getWebsiteConfig(self::COOKIE_NAME_CONFIG_KEY);
if (is_null($cookieName)) {
return self::COOKIE_NAME;
}
return $cookieName;
}
public static function getCookieLifetime()
{
$cookieLifetime = Wootook::getWebsiteConfig(self::COOKIE_LIFETIME_CONFIG_KEY);
if (is_null($cookieLifetime)) {
return self::COOKIE_LIFETIME;
}
return $cookieLifetime;
}
public static function getCookieDomain()
{
return Wootook::getWebsiteConfig(self::COOKIE_DOMAIN_CONFIG_KEY);
}
public static function getCookiePath()
{
return Wootook::getWebsiteConfig(self::COOKIE_PATH_CONFIG_KEY);
}
public static function factory($id)
@ -64,8 +94,7 @@ class Wootook_Empire_Model_User
$session = Wootook::getSession(self::SESSION_KEY);
if ($session->hasData('user_id')) {
$id = intval($session->getData('user_id'));
} else if (Wootook::getRequest() !== null && ($cookieData = Wootook::getRequest()->getCookie(self::$_cookieName)) !== null) {
//$cookieData = unserialize(stripslashes($cookie));
} else if (Wootook::getRequest() !== null && ($cookieData = Wootook::getRequest()->getCookie(self::getCookieName())) !== null) {
if (is_array($cookieData)) {
$collection = new Wootook_Core_Collection(array('user' => 'users'));
$cookieData = array(
@ -86,6 +115,9 @@ class Wootook_Empire_Model_User
$session->addError('Your session has expired, please login.');
return null;
}
} else {
$session->addError('Your session has expired, please login.');
return null;
}
} else {
$session->addError('Your session has expired, please login.');
@ -132,7 +164,7 @@ class Wootook_Empire_Model_User
public function logout()
{
Wootook::getResponse()->unsetCookie(self::$_cookieName);
Wootook::getResponse()->unsetCookie(self::getCookieName());
Wootook_Core_Model_Session::destroy();
}
@ -184,7 +216,13 @@ class Wootook_Empire_Model_User
}
if (isset($_POST["rememberme"]) && Wootook::getResponse() !== null) {
Wootook::getResponse()->setCookie(self::$_cookieName, array('id' => $login['id'], 'key' => $login['login_rememberme']), self::COOKIE_LIFETIME);
Wootook::getResponse()->setCookie(
self::getCookieName(),
array('id' => $login['id'], 'key' => $login['login_rememberme']),
self::getCookieLifetime(),
self::getCookiePath(),
self::getCookieDomain()
);
}
return self::setLoggedIn(self::factory($login['id']));
@ -223,20 +261,81 @@ class Wootook_Empire_Model_User
'user_agent' => $request->getServer('HTTP_USER_AGENT')
));
$user->getWriteConnection()->beginTransaction();
$user->save();
$collection = Wootook_Empire_Model_Planet::searchMostFreeSystems();
$collection->limit(1)->load();
if ($collection->count() == 0) {
throw new Wootook_Empire_Exception_RuntimeException('No more planet to colonize!'); // Oops, no more free place
}
$systemInfo = $collection->current();
if ($systemInfo->getData('count') >= Wootook::getGameConfig('engine/universe/positions')) {
throw new Wootook_Empire_Exception_RuntimeException('No more planet to colonize!'); // Oops, no more free place
}
$collection = new Wootook_Core_Collection(array('planet' => 'planets'));
$collection
->column(array('position' => 'planet.planet'))
->where('planet.planet_type=1')
->where('planet.galaxy=:galaxy')
->where('planet.system=:system')
->load(array(
'galaxy' => $systemInfo->getData('galaxy'),
'system' => $systemInfo->getData('system'),
))
;
$positions = range(1, Wootook::getGameConfig('engine/universe/positions'));
foreach ($collection as $planet) {
$key = array_search($planet->getData('position'), $positions);
if ($key !== false) {
unset($positions[$key]);
}
}
$key = array_rand($positions, 1);
$finalPosition = $positions[$key];
$planet = $user->createNewPlanet(
$systemInfo->getData('galaxy'),
$systemInfo->getData('system'),
$finalPosition,
Wootook_Empire_Model_Planet::TYPE_PLANET,
Wootook::getRequest()->getParam('planet'),
Wootook::getGameConfig('resource/initial/fields')
);
$user
->setData('id_planet', $planet->getId())
->setData('current_planet', $planet->getId())
->setData('galaxy', $planet->getGalaxy())
->setData('system', $planet->getSystem())
->setData('planet', $planet->getPosition())
;
Wootook::dispatchEvent('user.init', array(
'user' => $user
));
$user->save();
} catch (Wootook_Core_Exception_DataAccessException $e) {
$user->getWriteConnection()->rollback();
$session = Wootook_Core_Model_Session::factory(Wootook_Empire_Model_User::SESSION_KEY);
Wootook_Core_ErrorProfiler::getSingleton()->exceptionManager($e);
$session->addError($e->getMessage());
return null;
} catch (Wootook_Empire_Exception_RuntimeException $e) {
$user->getWriteConnection()->rollback();
$session = Wootook_Core_Model_Session::factory(Wootook_Empire_Model_User::SESSION_KEY);
Wootook_Core_ErrorProfiler::getSingleton()->exceptionManager($e);
$session->addError($e->getMessage());
return null;
}
$user->getWriteConnection()->commit();
return $user;
}
@ -265,17 +364,18 @@ class Wootook_Empire_Model_User
->setData('field_current', 0)
;
$resourceConfig = Wootook::getGameConfig('resource/initial');
$resourceList = Wootook_Empire_Model_Game_Resources::getSingleton();
$resourceConfig = Wootook::getGameConfig('resource/initial');
foreach ($resourceList as $resource => $resourceData) {
$planet->setData($resourceData['storage_field'], $resourceConfig[$resource]);
}
$resourceConfig = Wootook::getGameConfig('resource/base-income');
foreach ($resourceList as $resource => $resourceData) {
$planet->setData($resourceData['production_field'], $resourceConfig[$resource]);
}
$planet->save();
var_dump($planet->getId());
die();
Wootook::dispatchEvent('planet.init', array(
'planet' => $planet,
'user' => $this
@ -608,6 +708,10 @@ class Wootook_Empire_Model_User
$layout = $eventData['layout'];
$navigation = $layout->getBlock('navigation');
if ($navigation === null) {
return;
}
if (!defined('IN_ADMIN')) {
$navigation->addLink('tools/admin', 'Admin Panel', 'Admin Panel', 'admin/overview.php', array(), array('admin'));
} else {

View file

@ -18,5 +18,4 @@
<th width="278">UGamela<br >Britania </th>
<th width="279"><?php echo $this->getData('cred_based')?><br><?php echo $this->getData('cred_start')?></th>
</tr>
<?php echo $this->getData('ExtCopyFrame')?>
</table>

View file

@ -8,17 +8,13 @@
'logout.success' => array(),
'register.before' => array(),
'register.failure' => array(),
'register.success' => array(
array('Wootook_Empire_Model_Planet', 'registrationListener')
),
'register.success' => array(),
'planet.update' => array(
array('Wootook_Empire_Model_Planet', 'planetUpdateListener'),
array('Legacies_Empire_Model_Planet_Building_Shipyard', 'planetUpdateListener'),
array('Legacies_Officers_Model_Observer', 'planetUpdateListener')
),
'user.init' => array(
array('Wootook_Empire_Model_Planet', 'registrationListener')
),
'user.init' => array(),
'planet.init' => array(
array('Wootook_Empire_Model_Galaxy_Position', 'initPlanetListerner')
),

View file

@ -13,12 +13,12 @@ if (!defined('DEBUG')) {
@error_reporting(E_ALL | E_STRICT);
}
defined('ROOT_PATH') || define('ROOT_PATH', dirname(dirname(dirname(dirname(__FILE__)))) . DIRECTORY_SEPARATOR);
defined('APPLICATION_PATH') || define('APPLICATION_PATH', ROOT_PATH . 'includes' . DIRECTORY_SEPARATOR . 'application' . DIRECTORY_SEPARATOR);
defined('ROOT_PATH') || define('ROOT_PATH', dirname(dirname(dirname(__FILE__))) . DIRECTORY_SEPARATOR);
defined('APPLICATION_PATH') || define('APPLICATION_PATH', ROOT_PATH . 'application' . DIRECTORY_SEPARATOR);
defined('PHPEXT') || define('PHPEXT', require ROOT_PATH . 'extension.inc');
defined('PHPEXT') || define('PHPEXT', 'php');
defined('VERSION') || define('VERSION', '2009.5');
defined('VERSION') || define('VERSION', '1.5');
set_include_path(implode(PATH_SEPARATOR, array(
APPLICATION_PATH . DIRECTORY_SEPARATOR . 'code' . DIRECTORY_SEPARATOR . 'core',

View file

@ -2,42 +2,8 @@
include './bootstrap.php';
$username = uniqid();
$email = $username . '@wootook.org';
$password = substr(sha1(uniqid()), mt_rand(0, 32), 8);
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="test.csv"');
/*
$datas = array(
'galaxy' => array(),
'system' => array(),
);
*/
for ($i = 0; $i < 10000; $i++) {
$collection = Legacies_Empire_Model_Planet::searchMostFreeSystems();
$collection->limit(1)->load();
$systemInfo = $collection->current();
//var_dump($systemInfo->getallDatas());
echo $systemInfo->getData('galaxy') . ';' . $systemInfo->getData('system') . PHP_EOL;
/*
$galaxy = $systemInfo->getData('galaxy');
if (!isset($datas['galaxy'][$galaxy])) {
$datas['galaxy'][$galaxy] = 1;
} else {
$datas['galaxy'][$galaxy]++;
}
$system = $systemInfo->getData('system');
if (!isset($datas['system'][$system])) {
$datas['system'][$system] = 1;
} else {
$datas['system'][$system]++;
}
*/
}
/*
asort($datas['galaxy'], SORT_NUMERIC);
asort($datas['system'], SORT_NUMERIC);
var_dump($datas);
*/
Wootook_Empire_Model_User::register($username, $email, $password);

View file

@ -73,13 +73,13 @@ $planet = $user->getCurrentPlanet();
$MaxFlyingFleets = $user->getFleetCount();
if ($galaxy <= 0 || $galaxy > MAX_GALAXY_IN_WORLD) {
if ($galaxy <= 0 || $galaxy > Wootook::getGameConfig('engine/universe/galaxies')) {
$galaxy = $planet['galaxy'];
}
if ($system <= 0 || $system > MAX_SYSTEM_IN_GALAXY) {
if ($system <= 0 || $system > Wootook::getGameConfig('engine/universe/systems')) {
$system = $planet['system'];
}
if ($position <= 0 || $position > MAX_PLANET_IN_SYSTEM) {
if ($position <= 0 || $position > Wootook::getGameConfig('engine/universe/positions')) {
$position = $planet['planet'];
}

View file

@ -64,9 +64,9 @@ if ($mode) {
$r = array();
$r[0] = preg_replace('#[^[:alnum:]\s\-\_\']#', '', $name);
$r[1] = (isset($_POST['g']) && intval($_POST['g']) > 0 && intval($_POST['g']) <= MAX_GALAXY_IN_WORLD) ? intval($_POST['g']) : '1';
$r[2] = (isset($_POST['s']) && intval($_POST['s']) > 0 && intval($_POST['s']) <= MAX_SYSTEM_IN_GALAXY) ? intval($_POST['s']) : '1';
$r[3] = (isset($_POST['p']) && intval($_POST['p']) > 0 && intval($_POST['p']) <= MAX_PLANET_IN_SYSTEM) ? intval($_POST['p']) : '1';
$r[1] = (isset($_POST['g']) && intval($_POST['g']) > 0 && intval($_POST['g']) <= Wootook::getGameConfig('engine/universe/galaxies')) ? intval($_POST['g']) : '1';
$r[2] = (isset($_POST['s']) && intval($_POST['s']) > 0 && intval($_POST['s']) <= Wootook::getGameConfig('engine/universe/systems')) ? intval($_POST['s']) : '1';
$r[3] = (isset($_POST['p']) && intval($_POST['p']) > 0 && intval($_POST['p']) <= Wootook::getGameConfig('engine/universe/positions')) ? intval($_POST['p']) : '1';
$r[4] = (isset($_POST['t']) && intval($_POST['t']) > 0 && in_array(intval($_POST['t']), $planetTypes)) ? intval($_POST['t']) : '1';
$user['fleet_shortcut'] .= implode(",", $r);
@ -123,9 +123,9 @@ if ($mode) {
Wootook_Empire_Model_Planet::TYPE_MOON
);
$r[0] = preg_replace('#[^[:alnum:]\s\-\_\']#', '', $name);
$r[1] = (isset($_POST['g']) && intval($_POST['g']) > 0 && intval($_POST['g']) <= MAX_GALAXY_IN_WORLD) ? intval($_POST['g']) : $r[1];
$r[2] = (isset($_POST['s']) && intval($_POST['s']) > 0 && intval($_POST['s']) <= MAX_SYSTEM_IN_GALAXY) ? intval($_POST['s']) : $r[2];
$r[3] = (isset($_POST['p']) && intval($_POST['p']) > 0 && intval($_POST['p']) <= MAX_PLANET_IN_SYSTEM) ? intval($_POST['p']) : $r[3];
$r[1] = (isset($_POST['g']) && intval($_POST['g']) > 0 && intval($_POST['g']) <= Wootook::getGameConfig('engine/universe/galaxies')) ? intval($_POST['g']) : $r[1];
$r[2] = (isset($_POST['s']) && intval($_POST['s']) > 0 && intval($_POST['s']) <= Wootook::getGameConfig('engine/universe/systems')) ? intval($_POST['s']) : $r[2];
$r[3] = (isset($_POST['p']) && intval($_POST['p']) > 0 && intval($_POST['p']) <= Wootook::getGameConfig('engine/universe/positions')) ? intval($_POST['p']) : $r[3];
$r[4] = (isset($_POST['t']) && intval($_POST['t']) > 0 && in_array(intval($_POST['t']), $planetTypes)) ? intval($_POST['t']) : $r[4];
$scarray[$a] = implode(",", $r);

View file

@ -54,13 +54,13 @@ $s = isset($_POST['system']) ? intval($_POST['system']) : 0;
$p = isset($_POST['planet']) ? intval($_POST['planet']) : 0;
$t = isset($_POST['planet_type']) ? intval($_POST['planet_type']) : 0;
if ($g <= 0 || $g > MAX_GALAXY_IN_WORLD) {
if ($g <= 0 || $g > Wootook::getGameConfig('engine/universe/galaxies')) {
$g = $planetrow['galaxy'];
}
if ($s <= 0 || $s > MAX_SYSTEM_IN_GALAXY) {
if ($s <= 0 || $s > Wootook::getGameConfig('engine/universe/systems')) {
$s = $planetrow['system'];
}
if ($p <= 0 || $p > MAX_PLANET_IN_SYSTEM) {
if ($p <= 0 || $p > Wootook::getGameConfig('engine/universe/positions')) {
$p = $planetrow['planet'];
}
$allowedPlanetTypes = array(

View file

@ -66,7 +66,7 @@ $fleetArray = $session['fleet'];
$missionTypes = array();
// Determinons les type de missions possibles par rapport a la planete cible
if ($position == (MAX_PLANET_IN_SYSTEM + 1)) {
if ($position == (Wootook::getGameConfig('engine/universe/positions') + 1)) {
$missionTypes[Legacies_Empire::ID_MISSION_EXPEDITION] = $lang['type_mission'][Legacies_Empire::ID_MISSION_EXPEDITION];
} else {
if ($planettype == Wootook_Empire_Model_Planet::TYPE_DEBRIS) {
@ -98,7 +98,7 @@ if ($position == (MAX_PLANET_IN_SYSTEM + 1)) {
(isset($fleetArray[Legacies_Empire::ID_SHIP_BATTLESHIP]) && $fleetArray[Legacies_Empire::ID_SHIP_BATTLESHIP] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_COLONY_SHIP]) && $fleetArray[Legacies_Empire::ID_SHIP_COLONY_SHIP] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_RECYCLER]) && $fleetArray[Legacies_Empire::ID_SHIP_RECYCLER] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_SPY_DRONE]) && $fleetArray[Legacies_Empire::ID_SHIP_SPY_DRONE] > 0 && ALLOW_SPY_DRONE_ATTACKS) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_SPY_DRONE]) && $fleetArray[Legacies_Empire::ID_SHIP_SPY_DRONE] > 0 && Wootook::getGameConfig('engine/combat/allow_spy_drone_attacks')) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_BOMBER]) && $fleetArray[Legacies_Empire::ID_SHIP_BOMBER] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_DESTRUCTOR]) && $fleetArray[Legacies_Empire::ID_SHIP_DESTRUCTOR] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_DEATH_STAR]) && $fleetArray[Legacies_Empire::ID_SHIP_DEATH_STAR] > 0) ||
@ -144,7 +144,7 @@ $session['type'] = $planettype;
$MissionSelector = "";
if (count($missionTypes) > 0) {
if ($planet == (MAX_PLANET_IN_SYSTEM + 1)) {
if ($planet == (Wootook::getGameConfig('engine/universe/positions') + 1)) {
$MissionSelector .= "<tr height=\"20\">";
$MissionSelector .= "<th>";
$MissionSelector .= "<input type=\"radio\" name=\"mission\" value=\"15\" checked=\"checked\">". $lang['type_mission'][Legacies_Empire::ID_MISSION_EXPEDITION] ."<br /><br />";
@ -265,7 +265,7 @@ $page .= "<th colspan=\"3\"><a href=\"javascript:maxResources()\">". $lang['fl_a
$page .= "</tr><tr height=\"20\">\n";
$page .= "<th colspan=\"3\">&nbsp;</th>\n";
$page .= "</tr>\n";
if ($planet == (MAX_PLANET_IN_SYSTEM + 1)) {
if ($planet == (Wootook::getGameConfig('engine/universe/positions') + 1)) {
$page .= "<tr height=\"20\">";
$page .= "<td class=\"c\" colspan=\"3\">". $lang['fl_expe_staytime'] ."</td>";
$page .= "</tr>";

View file

@ -136,7 +136,7 @@ if ($destination->getUserId() == $user['id']) {
$missionTypes = array();
// Determinons les type de missions possibles par rapport a la planete cible
if ($position == (MAX_PLANET_IN_SYSTEM + 1)) {
if ($position == (Wootook::getGameConfig('engine/universe/positions') + 1)) {
$missionTypes[Legacies_Empire::ID_MISSION_EXPEDITION] = $lang['type_mission'][Legacies_Empire::ID_MISSION_EXPEDITION];
} else {
if ($type == Wootook_Empire_Model_Planet::TYPE_DEBRIS) {
@ -168,7 +168,7 @@ if ($position == (MAX_PLANET_IN_SYSTEM + 1)) {
(isset($fleetArray[Legacies_Empire::ID_SHIP_BATTLESHIP]) && $fleetArray[Legacies_Empire::ID_SHIP_BATTLESHIP] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_COLONY_SHIP]) && $fleetArray[Legacies_Empire::ID_SHIP_COLONY_SHIP] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_RECYCLER]) && $fleetArray[Legacies_Empire::ID_SHIP_RECYCLER] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_SPY_DRONE]) && $fleetArray[Legacies_Empire::ID_SHIP_SPY_DRONE] > 0 && ALLOW_SPY_DRONE_ATTACKS) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_SPY_DRONE]) && $fleetArray[Legacies_Empire::ID_SHIP_SPY_DRONE] > 0 && Wootook::getGameConfig('engine/combat/allow_spy_drone_attacks')) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_BOMBER]) && $fleetArray[Legacies_Empire::ID_SHIP_BOMBER] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_DESTRUCTOR]) && $fleetArray[Legacies_Empire::ID_SHIP_DESTRUCTOR] > 0) ||
(isset($fleetArray[Legacies_Empire::ID_SHIP_DEATH_STAR]) && $fleetArray[Legacies_Empire::ID_SHIP_DEATH_STAR] > 0) ||
@ -295,15 +295,15 @@ if (!in_array($speed, $possibleSpeeds)) {
$error = 0;
$errorlist = "";
if ($galaxy > MAX_GALAXY_IN_WORLD || $galaxy < 1) {
if ($galaxy > Wootook::getGameConfig('engine/universe/galaxies') || $galaxy < 1) {
$error++;
$errorlist .= $lang['fl_limit_galaxy'];
}
if ($system > MAX_SYSTEM_IN_GALAXY || $system < 1) {
if ($system > Wootook::getGameConfig('engine/universe/systems') || $system < 1) {
$error++;
$errorlist .= $lang['fl_limit_system'];
}
if ($position > (MAX_PLANET_IN_SYSTEM + 1) || $position < 1) {
if ($position > (Wootook::getGameConfig('engine/universe/positions') + 1) || $position < 1) {
$error++;
$errorlist .= $lang['fl_limit_planet'];
}

View file

@ -69,36 +69,36 @@ if ($mode == 0) {
$system = $CurrentSystem;
} elseif ($mode == 1 || $mode == 3) {
if (isset($_POST["galaxyLeft"])) {
if (!isset($_POST["galaxy"]) || $_POST["galaxy"] <= 1 || $_POST["galaxy"] > MAX_GALAXY_IN_WORLD) {
if (!isset($_POST["galaxy"]) || $_POST["galaxy"] <= 1 || $_POST["galaxy"] > Wootook::getGameConfig('engine/universe/galaxies')) {
$galaxy = 1;
} else {
$galaxy = intval($_POST["galaxy"]) - 1;
}
} elseif (isset($_POST["galaxyRight"])) {
if (!isset($_POST["galaxy"]) || $_POST["galaxy"] >= MAX_GALAXY_IN_WORLD) {
$galaxy = MAX_GALAXY_IN_WORLD;
if (!isset($_POST["galaxy"]) || $_POST["galaxy"] >= Wootook::getGameConfig('engine/universe/galaxies')) {
$galaxy = Wootook::getGameConfig('engine/universe/galaxies');
} else {
$galaxy = intval($_POST["galaxy"]) + 1;
}
} else if (!isset($_POST["galaxy"]) || $_POST["galaxy"] <= 1 || $_POST["galaxy"] > MAX_GALAXY_IN_WORLD) {
} else if (!isset($_POST["galaxy"]) || $_POST["galaxy"] <= 1 || $_POST["galaxy"] > Wootook::getGameConfig('engine/universe/galaxies')) {
$galaxy = 1;
} else {
$galaxy = intval($_POST["galaxy"]);
}
if (isset($_POST["systemLeft"])) {
if (!isset($_POST["system"]) || $_POST["system"] <= 1 || $_POST["system"] > MAX_SYSTEM_IN_GALAXY) {
if (!isset($_POST["system"]) || $_POST["system"] <= 1 || $_POST["system"] > Wootook::getGameConfig('engine/universe/systems')) {
$system = 1;
} else {
$system = intval($_POST["system"]) - 1;
}
} elseif (isset($_POST["systemRight"])) {
if (!isset($_POST["system"]) || $_POST["system"] >= MAX_SYSTEM_IN_GALAXY) {
$system = MAX_SYSTEM_IN_GALAXY;
if (!isset($_POST["system"]) || $_POST["system"] >= Wootook::getGameConfig('engine/universe/systems')) {
$system = Wootook::getGameConfig('engine/universe/systems');
} else {
$system = intval($_POST["system"]) + 1;
}
} else if (!isset($_POST["system"]) || $_POST["system"] <= 1 || $_POST["system"] > MAX_SYSTEM_IN_GALAXY) {
} else if (!isset($_POST["system"]) || $_POST["system"] <= 1 || $_POST["system"] > Wootook::getGameConfig('engine/universe/systems')) {
$system = 1;
} else {
$system = intval($_POST["system"]);
@ -106,24 +106,24 @@ if ($mode == 0) {
} elseif ($mode == 2) {
if (!isset($_POST["galaxy"]) || $_POST["galaxy"] <= 0) {
$galaxy = 1;
} else if ($_POST["galaxy"] >= MAX_GALAXY_IN_WORLD) {
$galaxy = MAX_GALAXY_IN_WORLD;
} else if ($_POST["galaxy"] >= Wootook::getGameConfig('engine/universe/galaxies')) {
$galaxy = Wootook::getGameConfig('engine/universe/galaxies');
} else {
$galaxy = intval($_POST["galaxy"]) + 1;
}
if (!isset($_POST["system"]) || $_POST["system"] <= 0) {
$system = 1;
} else if ($_POST["system"] >= MAX_SYSTEM_IN_GALAXY) {
$system = MAX_SYSTEM_IN_GALAXY;
} else if ($_POST["system"] >= Wootook::getGameConfig('engine/universe/systems')) {
$system = Wootook::getGameConfig('engine/universe/systems');
} else {
$system = intval($_POST["system"]) + 1;
}
if (!isset($_POST["planet"]) || $_POST["planet"] <= 0) {
$planet = 1;
} else if ($_POST["planet"] >= MAX_PLANET_IN_SYSTEM) {
$planet = MAX_PLANET_IN_SYSTEM;
} else if ($_POST["planet"] >= Wootook::getGameConfig('engine/universe/positions')) {
$planet = Wootook::getGameConfig('engine/universe/positions');
} else {
$planet = intval($_POST["planet"]) + 1;
}

View file

@ -32,12 +32,7 @@ defined('E_USER_DEPRECATED') || define('E_USER_DEPRECATED', E_USER_WARNING); //
define('ADMINEMAIL', "no-reply@wootook.org");
// Definition du monde connu !
defined('MAX_GALAXY_IN_WORLD') || define('MAX_GALAXY_IN_WORLD', Wootook::getGameConfig('engine/universe/galaxies'));
defined('MAX_SYSTEM_IN_GALAXY') || define('MAX_SYSTEM_IN_GALAXY', Wootook::getGameConfig('engine/universe/systems'));
defined('MAX_PLANET_IN_SYSTEM') || define('MAX_PLANET_IN_SYSTEM', Wootook::getGameConfig('engine/universe/positions'));
defined('BCNUMBERS') || define('BCNUMBERS', Wootook::getConfig('default/engine/core/use_large_numbers'));
defined('BCNUMBERS') || define('BCNUMBERS', Wootook::getGameConfig('engine/core/use_large_numbers'));
/**
* User level constants
@ -51,8 +46,6 @@ define('LEVEL_PLAYER', 0);
* }}}
*/
define('ALLOW_SPY_DRONE_ATTACKS', Wootook::getConfig('default/engine/combat/allow_spy_drone_attacks'));
// Nombre de colones pour les rapports d'espionnage
define('SPY_REPORT_ROW', 2);
@ -76,9 +69,6 @@ define('SHOW_ADMIN_IN_RECORDS', false);
// Valeurs de bases pour les colonies ou planetes fraichement crées
define('BASE_STORAGE_SIZE', 100000);
define('BUILD_METAL', 500);
define('BUILD_CRISTAL', 500);
define('BUILD_DEUTERIUM', 0);
// Chemin vers le skin de base
define('DEFAULT_SKINPATH', 'skin/base/default/');

View file

@ -39,7 +39,7 @@
*/
function AddBuildingToQueue($currentPlanet, $currentUser, $buildingId, $AddMode = true)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -59,7 +59,7 @@ function AddBuildingToQueue($currentPlanet, $currentUser, $buildingId, $AddMode
*/
function BuildingSavePlanetRecord($currentPlanet)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -77,7 +77,7 @@ function BuildingSavePlanetRecord($currentPlanet)
*/
function BuildingSaveUserRecord($currentUser)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentUser instanceof Wootook_Empire_Model_User) {
trigger_error('$currentUser should be an instance of Wootook_Empire_Model_User', E_USER_WARNING);
@ -94,7 +94,7 @@ function BuildingSaveUserRecord($currentUser)
*/
function CheckPlanetBuildingQueue($currentPlanet, $currentUser)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -116,7 +116,7 @@ function CheckPlanetBuildingQueue($currentPlanet, $currentUser)
*/
function CheckPlanetUsedFields($currentPlanet)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -137,7 +137,7 @@ function CheckPlanetUsedFields($currentPlanet)
*/
function GetBuildingPrice($currentUser, $currentPlanet, $buildingId, $incremental = true, $destroy = false)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -190,7 +190,7 @@ function GetBuildingPrice($currentUser, $currentPlanet, $buildingId, $incrementa
*/
function GetBuildingTime($currentUser, $currentPlanet, $buildingId)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -225,7 +225,7 @@ function GetBuildingTime($currentUser, $currentPlanet, $buildingId)
*/
function GetBuildingTimeLevel($currentUser, $currentPlanet, $buildingId, $level)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -260,7 +260,7 @@ function GetBuildingTimeLevel($currentUser, $currentPlanet, $buildingId, $level)
*/
function GetElementPrice($currentUser, $currentPlanet, $buildingId, $userfactor = true)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -318,7 +318,7 @@ function GetElementPrice($currentUser, $currentPlanet, $buildingId, $userfactor
*/
function GetElementRessources($elementId, $count)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
$currentUser = Wootook_Empire_Model_User::getSingleton();
$currentPlanet = $currentUser->getCurrentPlanet();
@ -337,7 +337,7 @@ function GetElementRessources($elementId, $count)
*/
function HandleElementBuildingQueue($currentUser, $currentPlanet, $productionTime)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
return array();
}
@ -351,7 +351,7 @@ function HandleElementBuildingQueue($currentUser, $currentPlanet, $productionTim
*/
function CheckCookies($isUserChecked)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
$user = Wootook_Empire_Model_User::getSingleton();
@ -377,7 +377,7 @@ function CheckCookies($isUserChecked)
*/
function CheckTheUser($isUserChecked)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
$result = CheckCookies($isUserChecked);
@ -398,7 +398,7 @@ function CheckTheUser($isUserChecked)
*/
function UpdatePlanetBatimentQueueList($currentPlanet, $currentUser)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -417,7 +417,7 @@ function UpdatePlanetBatimentQueueList($currentPlanet, $currentUser)
*/
function CalculateMaxPlanetFields($currentPlanet)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -436,7 +436,7 @@ function CalculateMaxPlanetFields($currentPlanet)
*/
function AbandonColony($currentUser, $currentPlanet)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -459,7 +459,7 @@ function AbandonColony($currentUser, $currentPlanet)
*/
function CheckFleets($currentPlanet)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -477,7 +477,7 @@ function CheckFleets($currentPlanet)
*/
function CancelBuildingFromQueue($currentPlanet, $currentUser)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
if (!$currentPlanet instanceof Wootook_Empire_Model_Planet) {
trigger_error('$currentPlanet should be an instance of Wootook_Empire_Model_Planet', E_USER_WARNING);
@ -529,7 +529,7 @@ class Deprecated
*/
function display($page, $title = '', $topnav = true, $metatags = '', $adminPage = false)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
// TODO: implement extra meta tags
$layout = Deprecated::getLayout($adminPage);
@ -563,7 +563,7 @@ function display($page, $title = '', $topnav = true, $metatags = '', $adminPage
*/
function parsetemplate($template, $array)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
static $baseUrl = null;
if ($baseUrl === null) {
@ -589,7 +589,7 @@ function parsetemplate($template, $array)
*/
function ReadFromFile($filename)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
return file_get_contents($filename);
}
@ -603,7 +603,7 @@ function ReadFromFile($filename)
*/
function saveToFile($filename, $content)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
file_put_contents($filename, $content);
}
@ -616,7 +616,7 @@ function saveToFile($filename, $content)
*/
function getTemplate($templateName)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
return $templateName;
}
@ -632,7 +632,7 @@ function getTemplate($templateName)
*/
function doquery($query, $table, $fetch = false)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
/**
* @var Wootook_Database $database
@ -666,7 +666,7 @@ function doquery($query, $table, $fetch = false)
*/
function ResetThisFuckingCheater($userId)
{
defined('DEPRECATION') || trigger_error(sprintf('%s is deprecated', __FUNCTION__), E_USER_DEPRECATED);
defined('DEPRECATION') || Wootook_Core_ErrorProfiler::getSingleton()->addException(new Wootook_Core_Exception_Deprecated(sprintf('Function "%s" is deprecated', __FUNCTION__)));
$user = Wootook_Empire_Model_User::factory($userId);
$username = $user->getData('username');

View file

@ -38,7 +38,7 @@ function ShowGalaxyRows ($Galaxy, $System) {
global $lang, $planetcount, $CurrentRC, $dpath, $user;
$Result = "";
for ($Planet = 1; $Planet <= MAX_PLANET_IN_SYSTEM; $Planet++) {
for ($Planet = 1; $Planet <= Wootook::getGameConfig('engine/universe/positions'); $Planet++) {
$GalaxyRowPlanet = array();
$GalaxyRowMoon = array();

View file

@ -37,14 +37,14 @@
function ShowGalaxySelector ( $Galaxy, $System ) {
global $lang;
if ($Galaxy > MAX_GALAXY_IN_WORLD) {
$Galaxy = MAX_GALAXY_IN_WORLD;
if ($Galaxy > Wootook::getGameConfig('engine/universe/galaxies')) {
$Galaxy = Wootook::getGameConfig('engine/universe/galaxies');
}
if ($Galaxy < 1) {
$Galaxy = 1;
}
if ($System > MAX_SYSTEM_IN_GALAXY) {
$System = MAX_SYSTEM_IN_GALAXY;
if ($System > Wootook::getGameConfig('engine/universe/systems')) {
$System = Wootook::getGameConfig('engine/universe/systems');
}
if ($System < 1) {
$System = 1;

View file

@ -28,17 +28,69 @@
*
*/
define('INSIDE' , true);
define('INSTALL', false);
define('IN_INSTALL', true);
define('STEP_SYSTEM', 1);
define('STEP_DATABASE', 2);
define('STEP_UNIVERSE', 3);
define('STEP_PROFILE', 4);
define('STEP_CONFIG', 5);
require_once dirname(dirname(__FILE__)) . '/application/bootstrap.php';
if (!defined('DEBUG') && ($env = getenv('DEBUG')) !== false && in_array(strtolower($env), array('1', 'on', 'true'))) {
define('DEBUG', true);
} else if (!defined('DEBUG') && isset($_SERVER['DEBUG']) && in_array(strtolower($_SERVER['DEBUG']), array('1', 'on', 'true'))) {
define('DEBUG', true);
}
if (!defined('DEPRECATION') && ($env = getenv('DEPRECATION')) !== false && in_array(strtolower($env), array('1', 'on', 'true'))) {
define('DEPRECATION', true);
} else if (!defined('DEPRECATION') && isset($_SERVER['DEPRECATION']) && in_array(strtolower($_SERVER['DEPRECATION']), array('1', 'on', 'true'))) {
define('DEPRECATION', true);
}
if (!defined('BCNUMBERS') && ($env = getenv('BCNUMBERS')) !== false && in_array(strtolower($env), array('1', 'on', 'true'))) {
define('BCNUMBERS', true);
} else if (!defined('BCNUMBERS') && isset($_SERVER['BCNUMBERS']) && in_array(strtolower($_SERVER['BCNUMBERS']), array('1', 'on', 'true'))) {
define('BCNUMBERS', true);
}
if (!defined('DEBUG')) {
@ini_set('display_errors', false);
} else {
@ini_set('display_errors', true);
@error_reporting(E_ALL | E_STRICT);
}
defined('ROOT_PATH') || define('ROOT_PATH', dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR);
defined('APPLICATION_PATH') || define('APPLICATION_PATH', ROOT_PATH . 'application' . DIRECTORY_SEPARATOR);
defined('PHPEXT') || define('PHPEXT', 'php');
defined('VERSION') || define('VERSION', '1.5.0-beta2');
set_include_path(implode(PATH_SEPARATOR, array(
APPLICATION_PATH . DIRECTORY_SEPARATOR . 'code' . DIRECTORY_SEPARATOR . 'libraries',
APPLICATION_PATH . DIRECTORY_SEPARATOR . 'code' . DIRECTORY_SEPARATOR . 'local',
APPLICATION_PATH . DIRECTORY_SEPARATOR . 'code' . DIRECTORY_SEPARATOR . 'community',
APPLICATION_PATH . DIRECTORY_SEPARATOR . 'code' . DIRECTORY_SEPARATOR . 'core',
get_include_path()
)));
function __autoload($class) {
include_once str_replace('_', '/', $class) . '.php';
}
$website = new Wootook_Core_Model_Website();
$website->setId(1)->setData('code', Wootook_Core_Model_Website::DEFAULT_CODE);
Wootook::setWebsite(1, $website);
$game = new Wootook_Core_Model_Game();
$game->setId(1)->setData('website_id', $website->getId())->setData('code', Wootook_Core_Model_Game::DEFAULT_CODE);
Wootook::setGame(1, $game);
include ROOT_PATH . 'includes' . DIRECTORY_SEPARATOR . 'constants.php';
Wootook_Core_Time::init();
Wootook_Core_ErrorProfiler::register();
Wootook_Core_Model_Config_Events::registerEvents();
$mode = isset($_GET['mode']) ? strval($_GET['mode']) : 'intro';
$step = isset($_GET['step']) ? intval($_GET['step']) : 1;
@ -86,6 +138,7 @@ $config = unserialize($session->getData('config'));
if (!is_array($config)) {
$config = array();
}
Wootook::loadConfig(array_merge_recursive($config, $configRewrites));
$layout = new Wootook_Core_Layout();
@ -419,6 +472,8 @@ case 'install':
Wootook_Empire_Model_User::setLoggedIn($user);
$user->setData('authlevel', LEVEL_ADMIN)->save();
$user->getHomePlanet()->setName(Wootook::__('Planet'))->save();
}
$session->setData('step', STEP_CONFIG);

View file

@ -1,90 +0,0 @@
INSERT INTO `game_galaxy` (`galaxy`, `system`, `planet`, `id_planet`, `metal`, `crystal`, `id_luna`, `luna`)
SELECT _increment.galaxy, _increment.system, 0, 0, 0, 0, 0, 0
FROM (
SELECT _galaxy.galaxy, (1 + _10e0.system + _10e1.system + _10e2.system) system
FROM (
SELECT 0 AS system
UNION ALL
SELECT 1 AS system
UNION ALL
SELECT 2 AS system
UNION ALL
SELECT 3 AS system
UNION ALL
SELECT 4 AS system
UNION ALL
SELECT 5 AS system
UNION ALL
SELECT 6 AS system
UNION ALL
SELECT 7 AS system
UNION ALL
SELECT 8 AS system
UNION ALL
SELECT 9 AS system
) _10e0
CROSS JOIN (
SELECT 0 AS system
UNION ALL
SELECT 10 AS system
UNION ALL
SELECT 20 AS system
UNION ALL
SELECT 30 AS system
UNION ALL
SELECT 40 AS system
UNION ALL
SELECT 50 AS system
UNION ALL
SELECT 60 AS system
UNION ALL
SELECT 70 AS system
UNION ALL
SELECT 80 AS system
UNION ALL
SELECT 90 AS system
) _10e1
CROSS JOIN (
SELECT 0 AS system
UNION ALL
SELECT 100 AS system
UNION ALL
SELECT 200 AS system
UNION ALL
SELECT 300 AS system
UNION ALL
SELECT 400 AS system
UNION ALL
SELECT 500 AS system
UNION ALL
SELECT 600 AS system
UNION ALL
SELECT 700 AS system
UNION ALL
SELECT 800 AS system
UNION ALL
SELECT 900 AS system
) _10e2
CROSS JOIN (
SELECT 1 AS galaxy
UNION ALL
SELECT 2 AS galaxy
UNION ALL
SELECT 3 AS galaxy
UNION ALL
SELECT 4 AS galaxy
UNION ALL
SELECT 5 AS galaxy
UNION ALL
SELECT 6 AS galaxy
UNION ALL
SELECT 7 AS galaxy
UNION ALL
SELECT 8 AS galaxy
UNION ALL
SELECT 9 AS galaxy
) _galaxy
) _increment
WHERE _increment.galaxy<=3
AND _increment.system<=100

View file

@ -1,98 +0,0 @@
<?php
$galaxyCount = 3;
$systemCount = 100;
$sql = <<<SQL_EOF
INSERT INTO `game_galaxy` (`galaxy`, `system`, `planet`, `id_planet`, `metal`, `crystal`, `id_luna`, `luna`)
SELECT _increment.galaxy, _increment.system, 0, 0, 0, 0, 0, 0
FROM (
SELECT _galaxy.galaxy, (1 + _10e0.system + _10e1.system + _10e2.system) system
FROM (
SELECT 0 AS system
UNION ALL
SELECT 1 AS system
UNION ALL
SELECT 2 AS system
UNION ALL
SELECT 3 AS system
UNION ALL
SELECT 4 AS system
UNION ALL
SELECT 5 AS system
UNION ALL
SELECT 6 AS system
UNION ALL
SELECT 7 AS system
UNION ALL
SELECT 8 AS system
UNION ALL
SELECT 9 AS system
) _10e0
CROSS JOIN (
SELECT 0 AS system
UNION ALL
SELECT 10 AS system
UNION ALL
SELECT 20 AS system
UNION ALL
SELECT 30 AS system
UNION ALL
SELECT 40 AS system
UNION ALL
SELECT 50 AS system
UNION ALL
SELECT 60 AS system
UNION ALL
SELECT 70 AS system
UNION ALL
SELECT 80 AS system
UNION ALL
SELECT 90 AS system
) _10e1
CROSS JOIN (
SELECT 0 AS system
UNION ALL
SELECT 100 AS system
UNION ALL
SELECT 200 AS system
UNION ALL
SELECT 300 AS system
UNION ALL
SELECT 400 AS system
UNION ALL
SELECT 500 AS system
UNION ALL
SELECT 600 AS system
UNION ALL
SELECT 700 AS system
UNION ALL
SELECT 800 AS system
UNION ALL
SELECT 900 AS system
) _10e2
CROSS JOIN (
SELECT 1 AS galaxy
UNION ALL
SELECT 2 AS galaxy
UNION ALL
SELECT 3 AS galaxy
UNION ALL
SELECT 4 AS galaxy
UNION ALL
SELECT 5 AS galaxy
UNION ALL
SELECT 6 AS galaxy
UNION ALL
SELECT 7 AS galaxy
UNION ALL
SELECT 8 AS galaxy
UNION ALL
SELECT 9 AS galaxy
) _galaxy
) _increment
WHERE _increment.galaxy<={$galaxyCount}
AND _increment.system<={$systemCount}
SQL_EOF;

View file

@ -35,8 +35,10 @@ require_once dirname(__FILE__) . '/application/bootstrap.php';
includeLang('login');
if (!empty($_POST) && isset($_POST['username']) && isset($_POST['password'])) {
$user = Wootook_Empire_Model_User::login($_POST['username'], $_POST['password'], isset($_POST['rememberme']) && !empty($_POST['rememberme']));
$request = Wootook::getRequest();
if ($request->isPost() && $request->getPost('username') !== null && $request->getPost('password') !== null) {
$user = Wootook_Empire_Model_User::login($request->getPost('username'), $request->getPost('password'), (bool) $request->getPost('rememberme'));
$session = Wootook::getSession(Wootook_Empire_Model_User::SESSION_KEY);
if ($user !== null && $user->getId()) {
@ -70,6 +72,7 @@ $onlinePlayersStatement->execute();
$onlinePlayers = $onlinePlayersStatement->fetch(Wootook_Database::FETCH_COLUMN, 0);
$layout = new Wootook_Core_Layout();
$layout->getMessagesBlock()->prepareMessages(Wootook_Empire_Model_User::SESSION_KEY)
$layout->load('login');
$block = $layout->getBlock('login');