chore: reorganize files for easier Docker integration

This commit is contained in:
Emmanuel BENOîT 2025-01-02 14:02:30 +01:00
parent ab00e5ee08
commit 99511fe11f
Signed by: Emmanuel BENOîT
SSH key fingerprint: SHA256:l7PFUUF5TCDsvYeQC9OnTNz08dFY7Fvf4Hv3neIqYpg
1222 changed files with 0 additions and 0 deletions
game
admin
manual/beta5/en

19
game/admin/as_log.inc Normal file
View file

@ -0,0 +1,19 @@
<?php
/** This function writes an entry to the system log. */
function __logAdmin($txt, $level = null) {
static $logInit = false;
if (!$logInit) {
global $__logPrefix;
openlog("lwControl", LOG_PID, LOG_USER);
$logInit = true;
}
if (is_null($level)) {
$level = LOG_INFO;
}
syslog($level, "*** ADMIN {$_SERVER['PHP_AUTH_USER']} $txt");
}
?>

24
game/admin/as_manager.inc Normal file
View file

@ -0,0 +1,24 @@
<?php
function __isManagerRunning() {
global $aConfig;
$fName = $aConfig['ctrlPath'] . "/tickManager.pid";
if (!file_exists($fName)) {
return false;
}
$file = fopen($fName, "r");
$line = rtrim(fgets($file));
fclose($file);
list($pid, $time) = explode(" ", $line);
if (time() - $time > 22) {
return false;
}
return $pid;
}
?>

54
game/admin/cg_done.php Normal file
View file

@ -0,0 +1,54 @@
<?php
session_start();
?>
<html>
<head>
<title>Legacy Worlds Beta 5 > Administration > Create game</title>
</head>
<body style="background-color: #dfdfff">
<table style="margin: 50px 0; padding: 0px;width:100%" cellspacing="0" cellpadding="0">
<tr>
<td width="33%">&nbsp;</td>
<td width="34%"><table style="border: 4px solid blue; background-color:white; padding: 5px;width: 100%">
<tr>
<td colspan="3" style="padding: 2px 0px;font-size:150%;color:blue;text-align:center">LegacyWorlds Beta 5</td>
</tr>
<tr>
<td colspan="3" style="padding: 2px 0px;font-size:150%;color:red;text-align:center"><?=$_SESSION['lw_new_game']['name']?></td>
</tr>
<tr><td colspan="3" style="height:5px;font-size:1pt">&nbsp;</td></tr>
<tr><td colspan="3" style="padding: 2px 0px;color:#3f3fff;text-align:center">Game creation complete!</td></tr>
<tr>
<td style="width:10%">&nbsp;</td>
<td><table style="border: 1px solid black; padding: 1px; margin: 0px; width: 100%; height: 16px"><tr>
<td style='font-size:1pt;background-color:#00007f'>&nbsp;</td>
</tr></table></td>
<td style="width:10%">&nbsp;</td>
</tr>
<tr><td colspan="3" style="padding: 2px 0px;color:#ff3f3f;text-align:center">100% complete</td></tr>
<tr><td colspan="3">&nbsp;</td></tr>
</table></td>
<td width="33%">&nbsp;</td>
<tr><td colspan="3">&nbsp;</td></tr>
<tr>
<td>&nbsp;</td>
<td style="text-align:center">
The new game has been created; however, it is not visible from the interface yet, you will have to
<a href="game_status.php">make it visible</a><br/>
<br/>
The server is still in <a href="maintenance.php">maintenance mode</a>, you will have to disable it manually.<br/>
<br/>
<a href="index.html">Main admin page</a>
</td>
<td>&nbsp;</td>
</tr>
</table>
</body>
</html>
<?php
$_SESSION['lw_new_game']['started'] = false;
?>

View file

@ -0,0 +1,45 @@
<html>
<head>
<title>Legacy Worlds Beta 5 > Administration > Create game</title>
</head>
<body style="background-color: #ffdfdf">
<table style="margin: 50px 0; padding: 0px;width:100%" cellspacing="0" cellpadding="0">
<tr>
<td width="33%">&nbsp;</td>
<td width="34%"><table style="border: 4px solid red; background-color:white; padding: 5px;width: 100%">
<tr>
<td colspan="3" style="padding: 2px 0px;font-size:150%;color:red;text-align:center">LegacyWorlds Beta 5</td>
</tr>
<tr>
<td colspan="3" style="padding: 2px 0px;font-size:150%;color:red;text-align:center">Game creation in progress</td>
</tr>
<tr><td colspan="3" style="height:5px;font-size:1pt">&nbsp;</td></tr>
<tr><td colspan="3" style="padding: 2px 0px;color:#ff3f3f;text-align:center"><?=$op['text']?></td></tr>
<tr>
<td style="width:10%">&nbsp;</td>
<td><table style="border: 1px solid black; padding: 1px; margin: 0px; width: 100%; height: 16px"><tr>
<?php
if ($op['pc'] == 0) {
print "<td style='font-size:1pt'>&nbsp;</td>";
} elseif ($op['pc'] == 100) {
print "<td style='font-size:1pt;background-color:#7f0000'>&nbsp;</td>";
} else {
print "<td style='font-size:1pt;background-color:#7f0000;width:" . $op['pc'] . "%'>&nbsp;</td>"
. "<td style='font-size:1pt'>&nbsp;</td>";
}
?>
</tr></table></td>
<td style="width:10%">&nbsp;</td>
</tr>
<tr><td colspan="3" style="padding: 2px 0px;color:#ff3f3f;text-align:center"><?=$op['pc']?>% complete</td></tr>
<tr><td colspan="3">&nbsp;</td></tr>
</table></td>
<td width="33%">&nbsp;</td>
</table>
<script language="JavaScript">
window.setTimeout('window.location="<?=$op['to']?>"', <?=$op['delay']*1000?>);
</script>
</body>
</html>

22
game/admin/cg_step0.php Normal file
View file

@ -0,0 +1,22 @@
<?php
session_start();
if (!is_array($_SESSION['lw_new_game']) || !$_SESSION['lw_new_game']['do_it_now'] || $_SESSION['lw_new_game']['started']) {
echo "Sorry, can't do that.";
exit(0);
}
$_SESSION['lw_new_game']['started'] = true;
include("as_log.inc");
__logAdmin("is creating game {$_SESSION['lw_new_game']['name']}");
$op = array(
"pc" => 0,
"text" => "Initialising ...",
"delay" => 1,
"to" => "cg_step1.php"
);
include('cg_operation.inc');
?>

28
game/admin/cg_step1.php Normal file
View file

@ -0,0 +1,28 @@
<?php
session_start();
if (!is_array($_SESSION['lw_new_game']) || !$_SESSION['lw_new_game']['do_it_now'] || !$_SESSION['lw_new_game']['started']) {
echo "Sorry, can't do that.";
exit(0);
}
$_SESSION['lw_new_game']['started'] = true;
include("../scripts/config.inc");
if (is_null($config['maintenance'])) {
$text = "Enabling maintenance mode";
$next = "cg_step2.php";
} else {
$text = "Checking existing IDs";
$next = "cg_step4.php";
}
$op = array(
"pc" => 5,
"text" => $text,
"delay" => 1,
"to" => $next
);
include('cg_operation.inc');
?>

26
game/admin/cg_step10.php Normal file
View file

@ -0,0 +1,26 @@
<?php
session_start();
if (!is_array($_SESSION['lw_new_game']) || !$_SESSION['lw_new_game']['do_it_now'] || !$_SESSION['lw_new_game']['started']) {
echo "Sorry, can't do that.";
exit(0);
}
/* Execute an universe tick manually */
$ns = $_SESSION['lw_new_game']['found_id'];
$__runFromAdmin = true;
$__adminParams = array($ns, 'universe');
include("../scripts/ticks.php");
$op = array(
"pc" => 85,
"text" => "Adding silent admins",
"delay" => 1,
"to" => "cg_step11.php"
);
include('cg_operation.inc');
?>

58
game/admin/cg_step11.php Normal file
View file

@ -0,0 +1,58 @@
<?php
session_start();
if (!is_array($_SESSION['lw_new_game']) || !$_SESSION['lw_new_game']['do_it_now'] || !$_SESSION['lw_new_game']['started']) {
echo "Sorry, can't do that.";
exit(0);
}
include("config.inc");
include('as_manager.inc');
/* Insert "silent admins" into the new game's player table */
$cnx = __dbConnect();
if (!$cnx) {
$argh = "Could not connect to the database";
} else {
$ns = $_SESSION['lw_new_game']['found_id'];
$error = false;
foreach ($_SESSION['lw_new_game']['silent'] as $aId) {
if (!pg_query($cnx, "INSERT INTO \"{$ns}\".player (userid, first_planet, hidden) VALUES ($aId, 1, TRUE)")) {
$error = true;
break;
}
}
if ($error) {
$argh = "Failed to insert silent admin data";
} else {
$argh = null;
}
pg_close($cnx);
}
if (!is_null($argh)) {
include('cg_argh.inc');
exit(0);
}
if (__isManagerRunning()) {
$op = array(
"pc" => 90,
"text" => "Restarting ticks",
"delay" => 1,
"to" => "cg_step12.php"
);
} else {
$op = array(
"pc" => 100,
"text" => "Cleaning up",
"delay" => 1,
"to" => "cg_done.php"
);
}
include('cg_operation.inc');
?>

33
game/admin/cg_step12.php Normal file
View file

@ -0,0 +1,33 @@
<?php
session_start();
if (!is_array($_SESSION['lw_new_game']) || !$_SESSION['lw_new_game']['do_it_now'] || !$_SESSION['lw_new_game']['started']) {
echo "Sorry, can't do that.";
exit(0);
}
include("config.inc");
include("as_manager.inc");
include("../scripts/config.inc");
if (!__isManagerRunning() || !file_exists($config['cachedir'] . "/ticks_stopped")) {
$op = array(
"pc" => 100,
"text" => "Cleaning up",
"delay" => 1,
"to" => "cg_done.php"
);
} else {
touch($config['cachedir'] . "/start_ticks");
$op = array(
"pc" => 95,
"text" => "Waiting for ticks to restart",
"delay" => 1,
"to" => "cg_step13.php"
);
}
include('cg_operation.inc');
?>

31
game/admin/cg_step13.php Normal file
View file

@ -0,0 +1,31 @@
<?php
session_start();
if (!is_array($_SESSION['lw_new_game']) || !$_SESSION['lw_new_game']['do_it_now'] || !$_SESSION['lw_new_game']['started']) {
echo "Sorry, can't do that.";
exit(0);
}
include("config.inc");
include("as_manager.inc");
include("../scripts/config.inc");
if (__isManagerRunning() && file_exists($config['cachedir'] . "/ticks_stopped")) {
$op = array(
"pc" => 95,
"text" => "Waiting for ticks to restart",
"delay" => 1,
"to" => "cg_step13.php"
);
} else {
$op = array(
"pc" => 100,
"text" => "Cleaning up",
"delay" => 1,
"to" => "cg_done.php"
);
}
include('cg_operation.inc');
?>

29
game/admin/cg_step2.php Normal file
View file

@ -0,0 +1,29 @@
<?php
session_start();
if (!is_array($_SESSION['lw_new_game']) || !$_SESSION['lw_new_game']['do_it_now'] || !$_SESSION['lw_new_game']['started']) {
echo "Sorry, can't do that.";
exit(0);
}
$maintenance = array(
"until" => time() + 15 * 60,
"reason" => "Creating game " . $_SESSION['lw_new_game']['name']
);
include("../scripts/config.inc");
$f = fopen($config['cachedir'] . '/maintenance.ser', "w");
fwrite($f, serialize($maintenance));
fclose($f);
$_SESSION['lw_new_game']['menable'] = time();
$op = array(
"pc" => 10,
"text" => "Waiting ...",
"delay" => 1,
"to" => "cg_step3.php"
);
include('cg_operation.inc');
?>

27
game/admin/cg_step3.php Normal file
View file

@ -0,0 +1,27 @@
<?php
session_start();
if (!is_array($_SESSION['lw_new_game']) || !$_SESSION['lw_new_game']['do_it_now'] || !$_SESSION['lw_new_game']['started']) {
echo "Sorry, can't do that.";
exit(0);
}
$t = time() - $_SESSION['lw_new_game']['menable'];
if ($t < 20) {
$text = "Waiting ...";
$next = "cg_step3.php";
} else {
$text = "Checking existing IDs";
$next = "cg_step4.php";
}
$op = array(
"pc" => 10 + floor($t/2),
"text" => $text,
"delay" => 1,
"to" => $next
);
include('cg_operation.inc');
?>

39
game/admin/cg_step4.php Normal file
View file

@ -0,0 +1,39 @@
<?php
session_start();
if (!is_array($_SESSION['lw_new_game']) || !$_SESSION['lw_new_game']['do_it_now'] || !$_SESSION['lw_new_game']['started']) {
echo "Sorry, can't do that.";
exit(0);
}
include("config.inc");
$cnx = __dbConnect();
$minId = 1;
$gameType = "b5" . ($_SESSION['lw_new_game']['game_type'] == 'r' ? 'r' : 'm');
do {
$minId ++;
$q = pg_query($cnx, "SELECT nspname FROM pg_namespace WHERE nspname='{$gameType}{$minId}'");
} while ($q && pg_num_rows($q) == 1);
pg_close($cnx);
if (!$q) {
$argh = "Error while accessing the database";
include('cg_argh.inc');
exit(1);
}
$_SESSION['lw_new_game']['found_id'] = $gameType . $minId;
$op = array(
"pc" => 25,
"text" => "Inserting data for ID $gameType$minId",
"delay" => 1,
"to" => "cg_step5.php"
);
include('cg_operation.inc');
?>

203
game/admin/cg_step5.php Normal file
View file

@ -0,0 +1,203 @@
<?php
session_start();
if (!is_array($_SESSION['lw_new_game']) || !$_SESSION['lw_new_game']['do_it_now'] || !$_SESSION['lw_new_game']['started']) {
echo "Sorry, can't do that.";
exit(0);
}
include("config.inc");
include("as_manager.inc");
class dbParser {
static private $instructions = array();
static private $aConnection;
static private $uConnection;
static private $cConnection = null;
static public function parse($contents) {
$all = explode("\n", $contents);
$state = 0;
foreach ($all as $line) {
// print "PARSING LINE: $line<br/>\n";
if ($state == 0) {
// Remove comments
$line = preg_replace('/\s*--.*$/', '', $line);
if ($line == '') {
continue;
}
// \c ?
if (preg_match('/^\\\\c\s+[^\s]+\s([^\s]+)\s*$/', $line, $match)) {
if ($match[1] == "legacyworlds_admin") {
//echo "<b>CONNECT AS ADMIN</b><br/>";
array_push(self::$instructions, array("CADM"));
} else {
//echo "<b>CONNECT AS USER</b><br/>";
array_push(self::$instructions, array("CUSR"));
}
}
// \i ?
elseif (preg_match('/^\\\\i\s+([^\s]+)\s*$/', $line, $match)) {
self::parseFile($match[1]);
}
// COPY table FROM STDIN ?
elseif (preg_match('/^COPY\s+([^\s]+)\s+FROM\s+STDIN\s*;\s*$/i', $line, $match)) {
//echo "<b>COPY DATA</b> INTO {$match[1]}: ";
array_push(self::$instructions, array("COPY", $match[1]));
$state = 1;
$copyArray = array();
}
// Other commands
else {
$rv = self::parseCommand($line);
if ($rv[0]) {
//echo "<b>EXECUTE QUERY</b> " . htmlentities($rv[1]) . "<br/>\n";
array_push(self::$instructions, array("QUERY", $rv[1]));
} else {
$buffer = $rv[1];
$state = 2;
}
}
} elseif ($state == 1) {
if ($line == "\\.") {
//echo count($copyArray) . " LINE(S) OF DATA<br/>\n";
self::$instructions[count(self::$instructions) - 1][2] = $copyArray;
$state = 0;
} else {
array_push($copyArray, "$line\n");
}
} elseif ($state == 2) {
$rv = self::parseCommand($line, $buffer);
if ($rv[0]) {
//echo "<b>EXECUTE QUERY</b> " . htmlentities($rv[1]) . "<br/>\n";
array_push(self::$instructions, array("QUERY", $rv[1]));
$state = 0;
} else {
$buffer = $rv[1];
}
}
}
}
private static function parseFile($fileName) {
$file = fopen("../sql/$fileName", "r");
$text = "";
while (($line = fgets($file)) !== FALSE) {
$text .= $line;
}
fclose($file);
self::parse($text);
}
private static function parseCommand($line, $buffer = "") {
$state = 0;
for ($i = 0; $i < strlen($line); $i ++) {
if ($state == 0) {
if ($line[$i] == ';') {
return array(true, $buffer);
}
$buffer .= $line[$i];
if ($line[$i] == "'") {
$state = 1;
}
} else {
$buffer .= $line[$i];
if ($line[$i] == "'") {
$state = 0;
}
}
}
return array(false, "$buffer ");
}
public static function connect() {
self::$uConnection = __dbConnect(false);
if (!self::$uConnection) {
$argh = "Error while accessing the database in user mode";
include('cg_argh.inc');
exit(1);
}
self::$aConnection = __dbConnect(true);
if (!self::$aConnection) {
$argh = "Error while accessing the database in admin mode";
include('cg_argh.inc');
exit(1);
}
}
public static function execute($schema) {
foreach (self::$instructions as $instr) {
$iType = array_shift($instr);
if ($iType == 'CADM') {
self::setConnection(self::$aConnection);
} elseif ($iType == 'CUSR') {
self::setConnection(self::$aConnection);
} elseif ($iType == 'QUERY') {
if (!pg_query(self::$cConnection, $instr[0])) {
$argh = "Could not execute query {$instr[0]}";
pg_query(self::$aConnection, "DROP SCHEMA \"$schema\" CASCADE");
include('cg_argh.inc');
exit(1);
}
} elseif ($iType == 'COPY') {
if (!pg_copy_from(self::$cConnection, $instr[0], $instr[1])) {
$argh = "Copy failed for table {$instr[0]}";
pg_query(self::$aConnection, "DROP SCHEMA \"$schema\" CASCADE");
include('cg_argh.inc');
exit(1);
}
}
}
}
public static function setConnection($cnx) {
self::$cConnection = $cnx;
}
}
$gtData = array(
"r" => array('round', 'r'),
"m" => array('match', 'm'),
"c" => array('ctf', 'm'),
);
$gData = $gtData[$_SESSION['lw_new_game']['game_type']];
$substStr = "b5" . $gData[1] . "X";
// Load base match script
$fileName = "../sql/beta5/beta5-" . $gData[0] . ".sql";
$baseFile = fopen($fileName, "r");
$base = "";
while (($line = fgets($baseFile)) !== FALSE) {
$base .= preg_replace("/$substStr/", $_SESSION['lw_new_game']['found_id'], $line);
}
fclose($baseFile);
dbParser::parse($base);
dbParser::connect();
dbParser::execute($_SESSION['lw_new_game']['found_id']);
if (__isManagerRunning()) {
$op = array(
"pc" => 50,
"text" => "Stopping all ticks",
"delay" => 1,
"to" => "cg_step6.php"
);
} else {
$op = array(
"pc" => 60,
"text" => "Generating configuration",
"delay" => 1,
"to" => "cg_step8.php"
);
}
include('cg_operation.inc');
?>

33
game/admin/cg_step6.php Normal file
View file

@ -0,0 +1,33 @@
<?php
session_start();
if (!is_array($_SESSION['lw_new_game']) || !$_SESSION['lw_new_game']['do_it_now'] || !$_SESSION['lw_new_game']['started']) {
echo "Sorry, can't do that.";
exit(0);
}
include("config.inc");
include("as_manager.inc");
include("../scripts/config.inc");
if (!__isManagerRunning() || file_exists($config['cachedir'] . "/ticks_stopped")) {
$op = array(
"pc" => 60,
"text" => "Generating configuration",
"delay" => 1,
"to" => "cg_step8.php"
);
} else {
touch($config['cachedir'] . "/stop_ticks");
$op = array(
"pc" => 55,
"text" => "Waiting for ticks to stop",
"delay" => 1,
"to" => "cg_step7.php"
);
}
include('cg_operation.inc');
?>

31
game/admin/cg_step7.php Normal file
View file

@ -0,0 +1,31 @@
<?php
session_start();
if (!is_array($_SESSION['lw_new_game']) || !$_SESSION['lw_new_game']['do_it_now'] || !$_SESSION['lw_new_game']['started']) {
echo "Sorry, can't do that.";
exit(0);
}
include("config.inc");
include("as_manager.inc");
include("../scripts/config.inc");
if (__isManagerRunning() && !file_exists($config['cachedir'] . "/ticks_stopped")) {
$op = array(
"pc" => 55,
"text" => "Waiting for ticks to stop",
"delay" => 1,
"to" => "cg_step7.php"
);
} else {
$op = array(
"pc" => 60,
"text" => "Generating configuration",
"delay" => 1,
"to" => "cg_step8.php"
);
}
include('cg_operation.inc');
?>

107
game/admin/cg_step8.php Normal file
View file

@ -0,0 +1,107 @@
<?php
session_start();
if (!is_array($_SESSION['lw_new_game']) || !$_SESSION['lw_new_game']['do_it_now'] || !$_SESSION['lw_new_game']['started']) {
echo "Sorry, can't do that.";
exit(0);
}
require_once("config.inc");
function makeCTFParams() {
$cnx = __dbConnect();
if (!$cnx) {
print "<b>DATABASE CONNECTION ERROR</b>";
exit(1);
}
$query = pg_query("SELECT * FROM main.ctf_map_def ORDER BY name");
if (!$query) {
print "<b>DATABASE ERROR</b>";
exit(1);
}
$ctfMaps = array();
while ($r = pg_fetch_assoc($query)) {
$ctfMaps[$r['id']] = $r;
$query2 = pg_query("SELECT COUNT(*) FROM main.ctf_map_layout WHERE map={$r['id']} AND spawn_here");
if (!$query2) {
print "<b>DATABASE ERROR</b>";
exit(1);
}
list($ctfMaps[$r['id']]['players']) = pg_fetch_array($query2);
pg_free_result($query2);
}
pg_free_result($query);
pg_close($cnx);
$map = $ctfMaps[$_SESSION['lw_new_game']['ctfmap']];
$cParams = $_SESSION['lw_new_game']['ctfparams'];
$params = array(
'usemap' => $map['id'],
'maxplayers' => $map['players'],
'norealloc' => 1,
'partialtechs' => 0,
'lockalliances' => $map['alliances'],
'alliancecap' => 0,
'victory' => 2,
'novacation' => 1
);
foreach ($cParams as $p => $v) {
$params[$p] = $v;
}
return $params;
}
$ns = $_SESSION['lw_new_game']['found_id'];
$newConfig = "\t\t<!-- Game added automatically by the game creation tool -->\n"
. "\t\t<Game id=\"$ns\" version=\"beta5\" namespace=\"$ns\" text=\""
. $_SESSION['lw_new_game']['name'] . "\" public=\"0\" canjoin=\"0\">\n"
. "\t\t\t<!-- Game parameters -->\n";
if ($_SESSION['lw_new_game']['game_type'] == 'c') {
$_SESSION['lw_new_game']['params'] = makeCTFParams();
}
foreach ($_SESSION['lw_new_game']['params'] as $p => $v) {
$newConfig .= "\t\t\t<Param name=\"$p\" value=\"$v\" />\n";
}
$newConfig .= "\n"
. "\t\t\t<!-- Description -->\n"
. "\t\t\t<Description lang=\"en\">\n"
. "\t\t\t\t" . $_SESSION['lw_new_game']['descr'] . "\n"
. "\t\t\t</Description>\n\n"
. "\t\t\t<!-- Ticks -->\n\n";
require_once("cg_ticks_schedule.inc");
$ticks = __computeTicks($_SESSION['lw_new_game']['ft_y'],
$_SESSION['lw_new_game']['ft_m'], $_SESSION['lw_new_game']['ft_d'],
$_SESSION['lw_new_game']['speed'], $_SESSION['lw_new_game']['shift_ticks']);
foreach ($ticks as $tid => $data) {
$time = $data[1];
$time = ($time - ($secs = $time % 60)) / 60;
$time = ($time - ($mins = $time % 60)) / 60;
$newConfig .= "\t\t\t<!-- \"$tid\" tick: first tick " . gmstrftime("%H:%M:%S on %Y-%m-%d", $data[0])
. ", interval {$time}h, {$mins}min, {$secs}s -->\n"
. "\t\t\t<Tick script=\"$tid\" first=\"{$data[0]}\" interval=\"{$data[1]}\" />\n";
}
$newConfig .= "\t\t</Game>\n";
$file = fopen($aConfig['ctrlPath'] . "/config.$ns.xml", "w");
fwrite($file, $newConfig);
fclose($file);
$op = array(
"pc" => 70,
"text" => "Merging configuration",
"delay" => 1,
"to" => "cg_step9.php"
);
include('cg_operation.inc');
?>

25
game/admin/cg_step9.php Normal file
View file

@ -0,0 +1,25 @@
<?php
session_start();
if (!is_array($_SESSION['lw_new_game']) || !$_SESSION['lw_new_game']['do_it_now'] || !$_SESSION['lw_new_game']['started']) {
echo "Sorry, can't do that.";
exit(0);
}
include("config.inc");
$ns = $_SESSION['lw_new_game']['found_id'];
$file = fopen($aConfig['ctrlFifo'], "w");
fwrite($file, "MERGE $ns\n");
fclose($file);
$op = array(
"pc" => 75,
"text" => "Initialising universe",
"delay" => 1,
"to" => "cg_step10.php"
);
include('cg_operation.inc');
?>

View file

@ -0,0 +1,86 @@
<?php
function __computeTicks($year, $month, $day, $speed, $shift) {
$tickDefs = array(
// Modifiable ticks
"hour" => array(
'now' => false,
'change' => true,
'interval' => 60 * 60,
'desync' => 60 * 60
),
"battle" => array(
'now' => false,
'change' => true,
'interval' => 4 * 60 * 60,
'desync' => 55 * 60,
),
"cash" => array(
'now' => false,
'change' => true,
'interval' => 12 * 60 * 60,
'desync' => (12 * 60 + 5) * 60
),
"day" => array(
'now' => false,
'change' => true,
'interval' => 24 * 60 * 60,
'desync' => (24 * 60 + 10) * 60
),
"move" => array(
'now' => false,
'change' => true,
'interval' => 60,
'desync' => 60 * 60 + 27
),
// Immediate ticks
'universe' => array(
'now' => true,
'change' => false,
'interval' => 60 * 5,
'desync' => 57
),
'punishment' => array(
'now' => true,
'change' => false,
'interval' => 39,
'desync' => 28
),
// Immutable ticks
'quit' => array(
'now' => false,
'change' => false,
'interval' => 50,
'desync' => 7
),
'sales' => array(
'now' => false,
'change' => false,
'interval' => 21,
'desync' => 13
),
);
$startTime = gmmktime(7, 0, 0, $month, $day, $year);
$now = time();
$results = array();
foreach ($tickDefs as $tid => $def) {
$interval = $def['change'] ? ceil($def['interval']/$speed) : $def['interval'];
if ($def['now']) {
$first = $startTime + $def['desync'];
while ($first > $now) {
$first -= $def['interval'];
}
} else {
$first = $startTime + ($def['change'] ? ceil($def['desync']/$speed) : $def['desync']);
}
$results[$tid] = array($first + $shift * 60, $interval);
}
return $results;
}
?>

View file

@ -0,0 +1,12 @@
<h2>Step 1 / 6 : game type</h2>
<p>Please select the type of game you want to create from the form below.</p>
<form method="GET" action="?">
<p>
<input type="radio" value="m" name="gt" id="gtm" <?=$_SESSION['lw_new_game']['game_type'] == 'm' ? "checked='checked'" : ""?>/> <label for="gtm"><b>Match</b></label><br/>
<input type="radio" value="r" name="gt" id="gtr" <?=$_SESSION['lw_new_game']['game_type'] == 'r' ? "checked='checked'" : ""?>/> <label for="gtr"><b>Round</b></label><br/>
<input type="radio" value="c" name="gt" id="gtc" <?=$_SESSION['lw_new_game']['game_type'] == 'c' ? "checked='checked'" : ""?>/> <label for="gtc"><b>Kings of the Hill</b></label>
</p>
<p>
<input type="submit" value="Proceed >>" />
</p>
</form>

View file

@ -0,0 +1,30 @@
<h2>Step 2 / 6 : game description</h2>
<p>Please type in the name and description of the new game.</p>
<form method="POST" action="?">
<p>
<b>Game name:</b> <input type="text" name="gn" size="31" maxlength="30" value="<?=htmlentities($_SESSION['lw_new_game']['name'], ENT_QUOTES)?>" /><?php
switch ($err1) :
case 1: print " <span style='color:red;font-weigth:bold'>Too short!</span>\n"; break;
case 2: print " <span style='color:red;font-weigth:bold'>Invalid characters!</span>\n"; break;
endswitch;
?><br/>
This is the name that will appear in menus and lists.
</p>
<p>
<b>Description:</b> <input type="text" name="gd" size="50" maxlength="200" value="<?=htmlentities($_SESSION['lw_new_game']['descr'], ENT_QUOTES)?>" /><?php
switch ($err2) :
case 1: print " <span style='color:red;font-weigth:bold'>Too short!</span>\n"; break;
case 2: print " <span style='color:red;font-weigth:bold'>Invalid characters!</span>\n"; break;
endswitch;
?><br/>
This is the description that will appear next to the name on people's account pages.
</p>
<p>
<input type="submit" name="back" value="<< Back" />
<input type="submit" name="go" value="Proceed >>" />
</p>
</form>

View file

@ -0,0 +1,111 @@
<?php
if ($_SESSION['lw_new_game']['game_type'] == 'c') {
include('cg_user_dsp_3ctf.inc');
return;
}
if (!is_array($errors)) {
$errors = array();
}
$params = array(
array(
'id' => 'maxplayers',
'title' => 'Maximum amount of players',
'notes' => '0 for unlimited, -1 for "1/system"'
),
array(
'id' => 'minsystems',
'title' => 'Minimum amount of free systems',
'notes' => 'Also influences the initial universe'
),
array(
'id' => 'maxsystems',
'title' => 'Maximum amount of systems',
'notes' => '0 for unlimited'
),
array(
'id' => 'partialtechs',
'title' => 'Partial tech graph',
'notes' => '0 for complete tech graph, 1 for partial'
),
array(
'id' => 'initialcash',
'title' => 'Initial amount of money',
'notes' => '0 for default (20,000)'
),
array(
'id' => 'zonesize',
'title' => 'Universe generator: zone size',
'notes' => '0 = default (5x5); 1 for 3x3, 2 for 5x5, etc...'
),
array(
'id' => 'nebulaprob',
'title' => 'Probability of a nebula',
'notes' => '0 .. 20, -1 = default'
),
array(
'id' => 'norealloc',
'title' => 'Prevent planet reallocation',
'notes' => '0 to allow players to get new planets'
),
array(
'id' => 'novacation',
'title' => 'Disable vacation mode',
'notes' => '0 = normal / 1 = disable'
),
array(
'id' => 'victory',
'title' => 'Victory conditions',
'notes' => '0 = none / 1 = alliance holds 75% of the planets for 1 week'
),
array(
'id' => 'lockalliances',
'title' => 'Use predefined alliances',
'notes' => 'Disabled if smaller than 2; maximum value = 8'
),
array(
'id' => 'alliancecap',
'title' => 'Alliance capping %',
'notes' => '% of players; 0 to disable (no effect on predefined alliances)'
),
array(
'id' => 'prot_after',
'title' => 'Protection after',
'notes' => 'Day ticks. Only applies to rounds.'
),
array(
'id' => 'prot_duration',
'title' => 'Protection duration',
'notes' => 'Day ticks. Only applies to rounds.'
)
);
?>
<h2>Step 3 / 6 : parameters</h2>
<p>Define the new game's parameters here.</p>
<form method="POST" action="?">
<table border="1">
<?php
foreach ($params as $p) {
print "<tr><th style='align:right";
if (in_array($p['id'], $errors)) {
print ";color:red";
}
print "'>" . htmlentities($p['title']) . " : </th><td>"
. "<input type='text' name='p_{$p['id']}' size='10' maxlength='10' value='"
. $_SESSION['lw_new_game']['params'][$p['id']] . "' /></td><td><i>"
. htmlentities($p['notes']) . "</i></td></tr>";
}
?>
<tr><td colspan="3"><input type="submit" name="gtdef" value="Game type defaults" style="width: 100%" /></td></tr>
</table>
<p>
<input type="submit" name="back" value="<< Back" />
<input type="submit" name="go" value="Proceed >>" />
</p>
</form>

View file

@ -0,0 +1,137 @@
<?php
if (!is_array($ctfMaps)) {
require_once("config.inc");
$cnx = __dbConnect();
if (!$cnx) {
print "<b>DATABASE CONNECTION ERROR</b>";
exit(1);
}
$query = pg_query("SELECT * FROM main.ctf_map_def ORDER BY name");
if (!$query) {
print "<b>DATABASE ERROR</b>";
exit(1);
}
$ctfMaps = array();
while ($r = pg_fetch_assoc($query)) {
$ctfMaps[$r['id']] = $r;
$query2 = pg_query("SELECT COUNT(*) FROM main.ctf_map_layout WHERE map={$r['id']} AND spawn_here");
if (!$query2) {
print "<b>DATABASE ERROR</b>";
exit(1);
}
list($ctfMaps[$r['id']]['players']) = pg_fetch_array($query2);
pg_free_result($query2);
}
pg_free_result($query);
pg_close($cnx);
}
if (!is_array($errors)) {
$errors = array();
}
$params = array(
array(
'id' => 'initialcash',
'title' => 'Initial amount of money',
'notes' => '0 for default (20,000)'
),
array(
'id' => 'v2time',
'title' => 'Time for victory',
'notes' => 'Number of hours an alliance must hold the targets to win'
),
array(
'id' => 'v2grace',
'title' => 'Grace period',
'notes' => 'Number of hours an alliance has to retake the targets. Set to 0 to disable.'
),
array(
'id' => 'v2points',
'title' => 'Points per victory',
'notes' => 'Number of points an alliance gains at each victory. Must be > 0 and < 100'
)
);
?>
<h2>Step 3 / 6 : parameters</h2>
<script language="JavaScript"><!--
var games = [];
<?php
foreach ($ctfMaps as $id => $map) {
print "games[$id] = {\n\tdescription: '" . addslashes($map['description'])
. "',\n\tsize: '{$map['width']}x{$map['height']}',\n\t"
. "alliances: {$map['alliances']},\n\tplayers: {$map['players']}\n};\n";
}
?>
function showDetails(selector) {
var sel = selector.options[selector.selectedIndex].value;
var str;
if (sel == '') {
str = "&nbsp;";
} else {
str = "<h4>Map information</h4><p><b>Players:</b> " + games[sel].players
+ " - <b>Teams:</b> " + games[sel].alliances
+ " - <b>Size:</b> " + games[sel].size;
if (games[sel].description != '') {
str += '<br/><b>Description:</b> ' + games[sel].description;
}
str += '</p>';
}
document.getElementById('mapinfo').innerHTML = str;
}
// --></script>
<p>Define the new game's parameters here.</p>
<form method="POST" action="?">
<div id="mapinfo" style="float:right;width: 50%;padding: 0px 10px">&nbsp;</div>
<table border="1" width="45%">
<tr>
<th style='align:right<?php if (in_array('map', $errors)) { print ";color:red"; } ?>'>
Map to use:
</th>
<td colspan="2">
<select name="map" onChange="showDetails(this)">
<option value="">-- Select --</option>
<?php
foreach ($ctfMaps as $id => $map) {
print " <option value='$id'";
if ($_SESSION['lw_new_game']['ctfmap'] == $id) {
print " selected='selected'";
}
print ">" . htmlentities($map['name']) . "</option>\n";
}
?>
</select>
</td>
</tr>
<?php
foreach ($params as $p) {
print "<tr><th style='align:right";
if (in_array($p['id'], $errors)) {
print ";color:red";
}
print "'>" . htmlentities($p['title']) . " : </th><td>"
. "<input type='text' name='p_{$p['id']}' size='10' maxlength='10' value='"
. $_SESSION['lw_new_game']['ctfparams'][$p['id']] . "' /></td><td><i>"
. htmlentities($p['notes']) . "</i></td></tr>";
}
?>
</table>
<p>
<input type="submit" name="back" value="<< Back" />
<input type="submit" name="go" value="Proceed >>" />
</p>
</form>

View file

@ -0,0 +1,54 @@
<?php
$speeds = array(
"" => "-- select speed --",
"1" => "Normal",
"2" => "2x",
"3" => "3x",
"4" => "4x"
);
?>
<h2>Step 4 / 6 : ticks configuration</h2>
<p>Please indicate the speed of the game and the day the game will begin on.</p>
<form method="GET" action="?">
<p>
Game speed:
<select name="gs">
<?php
foreach ($speeds as $val => $disp) {
print "<option value='$val'";
if ($_SESSION['lw_new_game']['speed'] == $val) {
print " selected='selected'";
}
print ">$disp</option>\n";
}
?>
</select> (4x games = bad for the server!)
</p>
<p>
First tick on (YYYY-MM-DD):
<input type="text" name="ft_y" size="4" maxlength="4" value="<?=htmlentities($_SESSION['lw_new_game']['ft_y'], ENT_QUOTES)?>" /> -
<input type="text" name="ft_m" size="2" maxlength="2" value="<?=htmlentities($_SESSION['lw_new_game']['ft_m'], ENT_QUOTES)?>" /> -
<input type="text" name="ft_d" size="2" maxlength="2" value="<?=htmlentities($_SESSION['lw_new_game']['ft_d'], ENT_QUOTES)?>" /><br/>
<?php
if ($ftError) {
print "<span style='color:red'>Invalid date! Must be in the future.</span>";
} else {
print "Ticks will start on the specified day, at the first hour tick after 7:00 AM";
}
?>
</p>
<p>
Shift ticks by <input type="text" name="st" size="3" maxlength="3" value="<?=(int) $_SESSION['lw_new_game']['shift_ticks']?>" /> minutes
</p>
<p>
<input type="submit" name="back" value="<< Back" />
<input type="submit" name="go" value="Proceed >>" />
</p>
</form>

View file

@ -0,0 +1,43 @@
<?php
if (!is_array($allAdmins)) {
require_once("config.inc");
$cnx = __dbConnect();
if (!$cnx) {
print "<b>DATABASE CONNECTION ERROR</b>";
exit(1);
}
$query = pg_query("SELECT id,name FROM main.account WHERE admin AND NOT name LIKE 'AI>%' ORDER BY name");
if (!$query) {
print "<b>DATABASE CONNECTION ERROR</b>";
exit(1);
}
$allAdmins = array();
while ($r = pg_fetch_row($query)) {
$allAdmins[$r[0]] = $r[1];
}
pg_close($cnx);
}
?>
<h2>Step 5 / 6 : silent admins</h2>
<p>"Silent admins" are admins that will join the game for administrative purposes but won't play it. Please beware with this function, as a silent admin will no longer be able to join the game as a player.</p>
<form method="POST" action="?">
<p>
<?php
foreach ($allAdmins as $id => $name) {
?>
<input type="checkbox" name="sa[]" value="<?=$id?>" id="sa<?=$id?>" <?=(is_array($_SESSION['lw_new_game']['silent']) && in_array($id, $_SESSION['lw_new_game']['silent'])) ? "checked='checked'" : ""?> /> <label for="sa<?=$id?>"><?=htmlentities($name)?></label><br/>
<?php
}
?>
</p>
<p>
<input type="submit" name="back" value="<< Back" />
<input type="submit" name="go" value="Proceed >>" />
</p>
</form>

View file

@ -0,0 +1,213 @@
<?php
require_once("cg_ticks_schedule.inc");
require_once("config.inc");
require_once("as_manager.inc");
require_once("../scripts/config.inc");
$cnx = __dbConnect();
if (!$cnx) {
print "<b>DATABASE CONNECTION ERROR</b>";
exit(1);
}
$query = pg_query("SELECT id,name FROM main.account WHERE admin AND NOT name LIKE 'AI>%' ORDER BY name");
if (!$query) {
print "<b>DATABASE CONNECTION ERROR</b>";
exit(1);
}
$allAdmins = array();
while ($r = pg_fetch_row($query)) {
$allAdmins[$r[0]] = $r[1];
}
$query = pg_query("SELECT * FROM main.ctf_map_def ORDER BY name");
if (!$query) {
print "<b>DATABASE ERROR</b>";
exit(1);
}
$ctfMaps = array();
while ($r = pg_fetch_assoc($query)) {
$ctfMaps[$r['id']] = $r;
$query2 = pg_query("SELECT COUNT(*) FROM main.ctf_map_layout WHERE map={$r['id']} AND spawn_here");
if (!$query2) {
print "<b>DATABASE ERROR</b>";
exit(1);
}
list($ctfMaps[$r['id']]['players']) = pg_fetch_array($query2);
pg_free_result($query2);
}
pg_free_result($query);
pg_close($cnx);
function __start($title) {
?>
<h3><?=htmlentities($title)?></h3>
<table border="1" width="80%" style="margin: 5px 30px">
<?php
}
function __line($title, $contents) {
?>
<tr>
<th align="right" width="50%"><?=htmlentities($title)?>: </th>
<td><?=htmlentities($contents)?></td>
</tr>
<?php
}
function __end() {
echo "</table>\n";
}
$params = array(
array(
'id' => 'maxplayers',
'title' => 'Maximum amount of players',
),
array(
'id' => 'minsystems',
'title' => 'Minimum amount of free systems',
),
array(
'id' => 'maxsystems',
'title' => 'Maximum amount of systems',
),
array(
'id' => 'partialtechs',
'title' => 'Partial tech graph',
),
array(
'id' => 'initialcash',
'title' => 'Initial amount of money',
),
array(
'id' => 'zonesize',
'title' => 'Universe generator: zone size',
),
array(
'id' => 'nebulaprob',
'title' => 'Probability of a nebula',
),
array(
'id' => 'norealloc',
'title' => 'Prevent planet reallocation',
),
array(
'id' => 'novacation',
'title' => 'Disable vacation mode',
),
array(
'id' => 'victory',
'title' => 'Victory conditions',
),
array(
'id' => 'lockalliances',
'title' => 'Use predefined alliances',
),
array(
'id' => 'alliancecap',
'title' => 'Alliance capping %',
)
);
$ctfParams = array(
array(
'id' => 'initialcash',
'title' => 'Initial amount of money',
),
array(
'id' => 'v2time',
'title' => 'Time for victory',
),
array(
'id' => 'v2grace',
'title' => 'Grace period',
),
array(
'id' => 'v2points',
'title' => 'Points per victory',
)
);
?>
<h2>Step 6 / 6 : recap</h2>
<p>Please check the information below <b>CAREFULLY</b>.</p>
<?php
$gTypes = array(
'm' => 'Match',
'r' => 'Round',
'c' => 'Kings of the Hill'
);
__start("Main information");
__line("Game type", $gTypes[$_SESSION['lw_new_game']['game_type']]);
__line("Game name", $_SESSION['lw_new_game']['name']);
__line("Description", $_SESSION['lw_new_game']['descr']);
__end();
__start("Parameters");
if ($_SESSION['lw_new_game']['game_type'] == 'c') {
$map = $ctfMaps[$_SESSION['lw_new_game']['ctfmap']];
__line("Map name", $map['name']);
if ($map['description'] != '') {
__line("Description", $map['description']);
}
__line("Players", $map['players']);
__line("Teams", $map['alliances']);
__line("Size", $map['width'] . "x" . $map['height']);
foreach ($ctfParams as $p) {
__line($p['title'], $_SESSION['lw_new_game']['ctfparams'][$p['id']]);
}
} else {
foreach ($params as $p) {
__line($p['title'], $_SESSION['lw_new_game']['params'][$p['id']]);
}
}
__end();
$speeds = array("Normal", "2x", "3x", "4x");
__start("Ticks configuration");
__line("Speed", $speeds[$_SESSION['lw_new_game']['speed'] - 1]);
__line("First tick (YYYY-MM-DD)", $_SESSION['lw_new_game']['ft_y'] . "-" .
$_SESSION['lw_new_game']['ft_m'] . "-" . $_SESSION['lw_new_game']['ft_d']);
__end();
$ticks = __computeTicks($_SESSION['lw_new_game']['ft_y'],
$_SESSION['lw_new_game']['ft_m'], $_SESSION['lw_new_game']['ft_d'],
$_SESSION['lw_new_game']['speed'], $_SESSION['lw_new_game']['shift_ticks']);
__start("Ticks schedule");
foreach ($ticks as $tid => $data) {
__line("\"$tid\" / first tick", gmstrftime("%H:%M:%S on %Y-%m-%d", $data[0]));
$time = $data[1];
$time = ($time - ($secs = $time % 60)) / 60;
$time = ($time - ($mins = $time % 60)) / 60;
__line("\"$tid\" / interval", "{$time}h, {$mins}min, {$secs}s");
__line("\"$tid\" / numeric values", $data[0] . " / " . $data[1]);
}
__end();
__start("Silent admins");
foreach ($allAdmins as $id => $name) {
__line($name, in_array($id, $_SESSION['lw_new_game']['silent']) ? "YES" : "no");
}
__end();
__start("Server information");
__line("Maintenance mode", is_null($config['maintenance']) ? "No - will enable automatically (DANGEROUS)" : "yes");
__line("Ticks manager", __isManagerRunning() ? "running" : "stopped");
__end();
?>
<form method="GET" action="?">
<p>
<input type="submit" name="back" value="<< Back" />
<input type="submit" name="go" value="Proceed >>" />
</p>
</form>

View file

@ -0,0 +1,23 @@
<?php
$_SESSION['lw_new_game']['do_it_now'] = true;
?>
<br/><br/><br/>
<hr/>
<br/><br/><br/>
<h1 style="text-align:center;font-size:32pt">LAST CHANCE</h1>
<br/><br/>
<form method="GET" action="?">
<p style="text-align:center;font-size:150%">
This is your last chance to get back.<br/>
You are about to create a new LegacyWorlds game, which is no small operation.</br>
<br/>
Please, be reasonable and stop now, while you can. Any client crash during the operation could cause the server to be unusable.<br/>
<br/>
<input type="submit" name="back" value="Yes, please, take me back, I want the server to live on!" /><br/>
<br/>
Ok, you're still reading. That's bad news.<br/>
Scroll down to access the next step.
</p>
</form>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<p style="text-align:center"><a href="cg_step0.php">Alea jacta est.</a></p>

View file

@ -0,0 +1,8 @@
<?php
if (in_array($_GET['gt'], array('m','r', 'c'))) {
$_SESSION['lw_new_game']['game_type'] = $_GET['gt'];
$_SESSION['lw_new_game']['step'] = 2;
}
?>

View file

@ -0,0 +1,27 @@
<?php
function __checktext($text, $minLen, $okChars) {
if (strlen($text) < $minLen) {
return 1;
}
if (preg_match('/[^' . $okChars . ']/', $text)) {
return 2;
}
return 0;
}
if ($_POST['go']) {
$n = $_SESSION['lw_new_game']['name'] = stripslashes($_POST['gn']);
$d = $_SESSION['lw_new_game']['descr'] = stripslashes($_POST['gd']);
$err1 = __checktext($n, 5, 'A-Za-z0-9\.\-\ \,\#');
$err2 = __checktext($d, 15, 'A-Za-z0-9\\.\\- ,#!\'%');
if (!($err1 || $err2)) {
$_SESSION['lw_new_game']['step'] = 3;
}
} elseif ($_POST['back']) {
$_SESSION['lw_new_game']['name'] = stripslashes($_POST['gn']);
$_SESSION['lw_new_game']['descr'] = stripslashes($_POST['gd']);
$_SESSION['lw_new_game']['step'] = 1;
}
?>

View file

@ -0,0 +1,73 @@
<?php
if ($_SESSION['lw_new_game']['game_type'] == 'c') {
include('cg_user_hdl_3ctf.inc');
return;
}
$pDefaults = array(
'm' => array(
'maxplayers' => -1,
'minsystems' => 30,
'maxsystems' => 30,
'norealloc' => 1,
'partialtechs' => 0,
'initialcash' => 40000,
'zonesize' => 1,
'nebulaprob' => 15,
'lockalliances' => 4,
'alliancecap' => 0,
'victory' => 1,
'novacation' => 1,
'prot_after' => 0,
'prot_duration' => 0,
),
'r' => array(
'maxplayers' => 0,
'minsystems' => 40,
'maxsystems' => 0,
'norealloc' => 0,
'partialtechs' => 1,
'initialcash' => 0,
'zonesize' => 1,
'nebulaprob' => -1,
'lockalliances' => 0,
'alliancecap' => 20,
'victory' => 0,
'novacation' => 0,
'prot_after' => 20,
'prot_duration' => 20,
)
);
$pList = array_keys($pDefaults['m']);
if (!is_array($_SESSION['lw_new_game']['params'])) {
$_SESSION['lw_new_game']['params'] = array();
}
if ($_POST['gtdef']) {
$_SESSION['lw_new_game']['params'] = $pDefaults[$_SESSION['lw_new_game']['game_type']];
} elseif ($_POST['go']) {
$errors = array();
foreach ($pList as $pid) {
$val = $_POST["p_$pid"];
if (strcmp($val, (string)(int)$val)) {
array_push($errors, $pid);
}
$_SESSION['lw_new_game']['params'][$pid] = $val;
}
if (! count($errors)) {
$_SESSION['lw_new_game']['step'] = 4;
}
} elseif ($_POST['back']) {
foreach ($pList as $pid) {
$_SESSION['lw_new_game']['params'][$pid] = $_POST["p_$pid"];
}
$_SESSION['lw_new_game']['step'] = 2;
}
?>

View file

@ -0,0 +1,66 @@
<?php
require_once("config.inc");
$cnx = __dbConnect();
if (!$cnx) {
print "<b>DATABASE CONNECTION ERROR</b>";
exit(1);
}
$query = pg_query("SELECT * FROM main.ctf_map_def ORDER BY name");
if (!$query) {
print "<b>DATABASE ERROR</b>";
exit(1);
}
$ctfMaps = array();
while ($r = pg_fetch_assoc($query)) {
$ctfMaps[$r['id']] = $r;
$query2 = pg_query("SELECT COUNT(*) FROM main.ctf_map_layout WHERE map={$r['id']} AND spawn_here");
if (!$query2) {
print "<b>DATABASE ERROR</b>";
exit(1);
}
list($ctfMaps[$r['id']]['players']) = pg_fetch_array($query2);
pg_free_result($query2);
}
pg_free_result($query);
pg_close($cnx);
$pList = array('initialcash', 'v2time','v2grace','v2points');
if (!is_array($_SESSION['lw_new_game']['ctfparams'])) {
$_SESSION['lw_new_game']['ctfparams'] = array();
}
if ($_POST['go']) {
$errors = array();
$mapID = (int) $_POST['map'];
if (!array_key_exists($mapID, $ctfMaps)) {
$errors[0] = 'map';
} else {
$_SESSION['lw_new_game']['ctfmap'] = $mapID;
}
foreach ($pList as $pid) {
$val = $_POST["p_$pid"];
if (strcmp($val, (string)(int)$val)) {
array_push($errors, $pid);
}
$_SESSION['lw_new_game']['ctfparams'][$pid] = $val;
}
if (! count($errors)) {
$_SESSION['lw_new_game']['step'] = 4;
}
} elseif ($_POST['back']) {
foreach ($pList as $pid) {
$_SESSION['lw_new_game']['ctfparams'][$pid] = $_POST["p_$pid"];
}
$_SESSION['lw_new_game']['ctfmap'] = $_POST['map'];
$_SESSION['lw_new_game']['step'] = 2;
}
?>

View file

@ -0,0 +1,30 @@
<?php
if ($_GET['back'] || $_GET['go']) {
$_SESSION['lw_new_game']['ft_y'] = $_GET['ft_y'];
$_SESSION['lw_new_game']['ft_m'] = $_GET['ft_m'];
$_SESSION['lw_new_game']['ft_d'] = $_GET['ft_d'];
$_SESSION['lw_new_game']['shift_ticks'] = (int) $_GET['st'];
$_SESSION['lw_new_game']['speed'] = $_GET['gs'];
}
if ($_GET['back']) {
$_SESSION['lw_new_game']['step'] = 3;
} elseif ($_GET['go']) {
$speedOk = in_array($_GET['gs'], array("1","2","3","4"));
$mkts = mktime(7, 0, 0, (int)$_GET['ft_m'], (int)$_GET['ft_d'], (int)$_GET['ft_y']);
if ($mkts === FALSE || $mkts <= time()) {
$ftError = 1;
}
if ($_SESSION['lw_new_game']['shift_ticks'] < 0) {
$_SESSION['lw_new_game']['shift_ticks'] = 0;
}
if ($speedOk && !$ftError) {
$_SESSION['lw_new_game']['step'] = 5;
}
}
?>

View file

@ -0,0 +1,44 @@
<?php
require_once("config.inc");
$cnx = __dbConnect();
if (!$cnx) {
print "<b>DATABASE CONNECTION ERROR</b>";
exit(1);
}
$query = pg_query("SELECT id,name FROM main.account WHERE admin AND NOT name LIKE 'AI>%' ORDER BY name");
if (!$query) {
print "<b>DATABASE CONNECTION ERROR</b>";
exit(1);
}
$allAdmins = array();
while ($r = pg_fetch_row($query)) {
$allAdmins[$r[0]] = $r[1];
}
pg_close($cnx);
$sa = $_POST['sa'];
if (!is_array($sa)) {
$sa = array();
}
if ($_POST['go'] || $_POST['back']) {
$_SESSION['lw_new_game']['silent'] = array();
foreach ($sa as $saId) {
if (array_key_exists($saId, $allAdmins)) {
array_push($_SESSION['lw_new_game']['silent'], $saId);
}
}
} elseif (!is_array($_SESSION['lw_new_game']['silent'])) {
$_SESSION['lw_new_game']['silent'] = array();
}
if ( $_POST['back']) {
$_SESSION['lw_new_game']['step'] = 4;
} elseif ($_POST['go']) {
$_SESSION['lw_new_game']['step'] = 6;
}
?>

View file

@ -0,0 +1,10 @@
<?php
$_SESSION['lw_new_game']['do_it_now'] = false;
if ($_GET['back']) {
$_SESSION['lw_new_game']['step'] = 5;
} elseif ($_GET['go']) {
$_SESSION['lw_new_game']['step'] = 7;
}
?>

View file

@ -0,0 +1,8 @@
<?php
if ($_GET['back']) {
$_SESSION['lw_new_game']['step'] = 6;
$_SESSION['lw_new_game']['do_it_now'] = false;
}
?>

View file

@ -0,0 +1,9 @@
<html>
<head>
<title>LegacyWorlds Beta 5 > Administration > Create game</title>
</head>
<body>
<h1><a href="index.html">LWB5 > Administration</a> > Create game</h1>
<p>
This administrative tools allows you to create new LegacyWorlds games.
</p>

43
game/admin/config.inc Normal file
View file

@ -0,0 +1,43 @@
<?php
$aConfig = array(
'host' => '127.0.0.1',
'database' => 'legacyworlds',
'user' => 'legacyworlds',
'password' => 'password for the standard database user',
'adminUser' => 'legacyworlds_admin',
'adminPassword' => 'password for the administrative database user',
'ctrlFifo' =>'/tmp/.lwFifo',
'ctrlPath' =>'/tmp/.lwControl'
);
function __dbConnect($admin = false) {
global $aConfig;
$h = $aConfig['host'];
$d = $aConfig['database'];
$u = $aConfig[$admin ? 'adminUser' : 'user'];
$p = $aConfig[$admin ? 'adminPassword' : 'password'];
$cString = "dbname='$d' host='$h' sslmode='prefer' user='$u' password='$p'";
return pg_connect($cString);
}
function __sendControl($command) {
global $aConfig;
$fName = $aConfig['ctrlFifo'];
if (!file_exists($fName)) {
return false;
}
$fifo = @fopen($fName, "w");
if ($fifo === false) {
return false;
}
fwrite($fifo, "$command\n");
fclose($fifo);
return true;
}
?>

17
game/admin/create.php Normal file
View file

@ -0,0 +1,17 @@
<?php
session_start();
if (!is_array($_SESSION['lw_new_game']) || $_GET['reset']) {
$_SESSION['lw_new_game'] = array(
"step" => 1
);
}
include("cg_user_hdl_" . $_SESSION['lw_new_game']['step'] . ".inc");
include("cg_user_hdr.inc");
include("cg_user_dsp_" . $_SESSION['lw_new_game']['step'] . ".inc");
?>
</body>
</html>

425
game/admin/ctf_map.inc Normal file
View file

@ -0,0 +1,425 @@
<?php
class ctf_map_sys {
private $x;
private $y;
private $type;
private $alloc;
private $spawn;
public function __construct($x, $y, $type = null, $alloc = null, $spawn = null) {
$this->x = $x;
$this->y = $y;
$this->type = $type;
$this->alloc = $alloc;
if (is_bool($spawn)) {
$this->spawn = $spawn;
} elseif (is_string($spawn)) {
$this->spawn = ($spawn == 't');
} else {
$this->spawn = null;
}
}
public function setType($type) {
if (is_null($type) || !in_array((string) $type, array('S', '1', '2', '3', '4'))) {
throw new Exception('Invalid type');
}
$this->type = $type;
if ($this->type != 'S') {
$this->alloc = $this->spawn = null;
} elseif (is_null($this->alloc)) {
$this->alloc = 0;
$this->spawn = null;
}
}
public function setAllocation($alloc) {
if ($alloc < 0 || $this->type != 'S') {
throw new Exception('Invalid allocation type');
}
$this->alloc = $alloc;
if ($this->alloc != 0 && is_null($this->spawn)) {
$this->spawn = false;
} elseif ($this->alloc = 0) {
$this->spawn = null;
}
}
public function setSpawn($spawn) {
if (is_null($this->alloc) || $this->alloc == 0 || !is_bool($spawn)) {
throw new Exception("Invalid spawning value");
}
$this->spawn = $spawn;
}
public function getType() {
return $this->type;
}
public function getAllocation() {
return $this->alloc;
}
public function getSpawn() {
return $this->spawn;
}
public function getX() {
return $this->x;
}
public function getY() {
return $this->y;
}
public function store($db, $map) {
$q = pg_query_params($db, "INSERT INTO main.ctf_map_layout(map,sys_x,sys_y,sys_type,alloc_for,spawn_here)"
. " VALUES ($map,$1,$2,$3,$4,$5)", array(
$this->x, $this->y, $this->type, $this->alloc,
($this->type == 'S' && $this->alloc > 0) ? ($this->spawn ? 't' : 'f') : null
));
if (!$q) {
throw new Exception("Failed to store system at {$this->x};{$this->y}");
}
}
}
class ctf_map {
private $dbID;
private $name;
private $description;
private $width;
private $height;
private $alliances;
private $map;
public static function allMaps() {
$db = __dbConnect();
if (! $db) {
throw new Exception('Unable to connect to the database');
}
$result = pg_query($db, "SELECT id FROM main.ctf_map_def ORDER BY id");
if (!$result) {
throw new Exception("Database error");
}
$IDs = array();
while ($row = pg_fetch_array($result)) {
array_push($IDs, $row[0]);
}
pg_free_result($result);
pg_close($db);
$maps = array();
foreach ($IDs as $id) {
$maps[$id] = new ctf_map($id);
}
return $maps;
}
public function __construct($dbID = null) {
if (is_null($dbID)) {
$this->dbID = $this->name = $this->description = null;
$this->alliances = 2;
$this->width = $this->height = 3;
} else {
$db = __dbConnect();
if (! $db) {
throw new Exception("Unable to connect to the database");
}
$result = pg_query($db, "SELECT * FROM main.ctf_map_def WHERE id = $dbID");
if (!($result && pg_num_rows($result) == 1)) {
pg_close($db);
throw new Exception("Definition '$dbID' not found");
}
$row = pg_fetch_assoc($result);
pg_free_result($result);
pg_close($db);
$this->dbID = $dbID;
$this->name = $row['name'];
$this->description = $row['description'];
$this->width = $row['width'];
$this->height = $row['height'];
$this->alliances = $row['alliances'];
}
$this->map = null;
}
public function getID() {
return $this->dbID;
}
public function getName() {
return $this->name;
}
public function getDescription() {
return $this->description;
}
public function getWidth() {
return $this->width;
}
public function getHeight() {
return $this->height;
}
public function getAlliances() {
return $this->alliances;
}
public function setName($value) {
$this->name = $value;
}
public function setDescription($value) {
$this->description = ($value == '') ? null : $value;
}
public function setAlliances($value) {
$this->alliances = $value;
}
public function setWidth($value) {
if (is_null($this->map) && !is_null($this->dbID)) {
$this->load();
}
$this->width = $value;
if (is_array($this->map)) {
$this->initBlankMap();
}
}
public function setHeight($value) {
if (is_null($this->map) && !is_null($this->dbID)) {
$this->load();
}
$this->height = $value;
if (is_array($this->map)) {
$this->initBlankMap();
}
}
public function getMapInfo($x, $y) {
if (! is_array($this->map)) {
if ($this->dbID) {
$this->load();
} else {
return null;
}
}
$offset = $this->getOffset($x, $y);
return $this->map[$offset];
}
public function setSystemType($x, $y, $t) {
if (! is_array($this->map)) {
if ($this->dbID) {
$this->load();
} else {
$this->initBlankMap();
}
}
$offset = $this->getOffset($x, $y);
$v = $this->map[$offset];
if (is_null($v)) {
$v = $this->map[$offset] = new ctf_map_sys($x, $y, $t);
} else {
$v->setType($t);
}
}
public function setSystemAlloc($x, $y, $a) {
if (! is_array($this->map)) {
if ($this->dbID) {
$this->load();
} else {
$this->initBlankMap();
}
}
$offset = $this->getOffset($x, $y);
$v = $this->map[$offset];
if (is_null($v)) {
$v = $this->map[$offset] = new ctf_map_sys($x, $y, 'S');
}
if ($v->getType() != 'S') {
throw new Exception("Can't set allocation type for a nebula");
}
if ($a < 0 || $a > $this->alliances) {
throw new Exception("Invalid allocation type $a");
}
$v->setAllocation($a);
}
public function setSystemSpawn($x, $y, $s) {
if (! is_array($this->map)) {
if ($this->dbID) {
$this->load();
} else {
$this->initBlankMap();
}
}
$offset = $this->getOffset($x, $y);
$v = $this->map[$offset];
if (is_null($v)) {
$v = $this->map[$offset] = new ctf_map_sys($x, $y, 'S', 1, $s);
} else {
if ($v->getType() != 'S' || $v->getAllocation() < 1) {
throw new Exception("Can't set spawning point");
}
$v->setSpawn($s);
}
}
public function jsDump() {
$parts = array();
if (is_null($this->map)) {
if ($this->dbID) {
$this->load();
} else {
$this->initBlankMap();
}
}
foreach ($this->map as $s) {
if (is_null($s)) {
continue;
}
$str = '[' . $s->getX() . ',' . $s->getY() . ',"' . $s->getType() . '",';
if ($s->getType() != 'S') {
$str .= 'null,null';
} else {
$str .= $s->getAllocation() . ',';
if ($s->getAllocation()) {
$str .= $s->getSpawn() ? 'true' : 'false';
} else {
$str .= 'null';
}
}
array_push($parts, "$str]");
}
return join(',', $parts);
}
public function save() {
$db = __dbConnect();
if (!$db) {
throw new Exception("Database error");
}
pg_query($db, "BEGIN TRANSACTION");
pg_query($db, "SET search_path = public, main");
if ($this->dbID) {
$id = $this->dbID;
pg_query_params($db, "UPDATE main.ctf_map_def SET name=$2, description=$3, alliances=$4, "
. "width=$5, height=$6 WHERE id=$1", array(
$id, $this->name, $this->description, $this->alliances,
$this->width, $this->height
));
pg_query($db, "DELETE FROM main.ctf_map_layout WHERE map=$id");
} else {
pg_query_params($db, "INSERT INTO main.ctf_map_def(name,description,alliances,width,height) "
. "VALUES ($1, $2, $3, $4, $5)", array(
$this->name, $this->description, $this->alliances,
$this->width, $this->height
));
$q = pg_query($db, "SELECT last_inserted('ctf_map_def')");
if (!($q && pg_num_rows($q))) {
throw new Exception("Database error");
}
list($id) = pg_fetch_array($q);
}
foreach ($this->map as $sys) {
$sys->store($db, $id);
}
pg_query($db, "COMMIT");
pg_close($db);
$this->dbID = $id;
}
public function destroy() {
if (! $this->dbID) {
return;
}
$db = __dbConnect();
if (!$db) {
throw new Exception("Database error");
}
pg_query($db, "DELETE FROM main.ctf_map_def WHERE id={$this->dbID}");
pg_close($db);
}
private function load() {
$db = __dbConnect();
if (!$db) {
throw new Exception("Database error");
}
$result = pg_query($db, "SELECT * FROM main.ctf_map_layout WHERE map = {$this->dbID}");
if (!($result && pg_num_rows($result) == $this->height * $this->width)) {
throw new Exception("Unable to load map");
}
$map = array();
while ($row = pg_fetch_assoc($result)) {
$offset = $this->getOffset($row['sys_x'], $row['sys_y']);
$map[$offset] = new ctf_map_sys($row['sys_x'], $row['sys_y'],
$row['sys_type'], $row['alloc_for'], $row['spawn_here']);
}
$this->map = $map;
pg_free_result($result);
pg_close($db);
}
private function initBlankMap() {
$map = array();
for ($i = 0; $i < $this->width * $this->height; $i ++) {
$map[$i] = null;
}
$this->map = $map;
}
private function getOffset($x, $y) {
return $this->width * (floor($this->height / 2) + $y) + floor($this->width / 2) + $x;
}
}
?>

492
game/admin/deathofrats.php Normal file
View file

@ -0,0 +1,492 @@
<html>
<head>
<title>LegacyWorlds Beta 5 > Administration > Death of Rats</title>
</head>
<body>
<h1><a href="index.html">LWB5 > Administration</a> > Death of Rats</h1>
<p>
The Death of Rats is LegacyWorlds' experimental multi detection tool.<br/>
Select page:
<?php
include('config.inc');
switch ($_GET['p']) {
case 'e': $page = 'execution'; break;
case 'sl': $page = 'singlelog'; break;
case 'sp': $page = 'signlepoints'; break;
case 'ml': $page = 'multilog'; break;
case 'mp': $page = 'multipoints'; break;
case 'al': $page = 'actions'; break;
case 'fp': $page = 'finalpoints'; break;
case 'il': $page = 'ingamelog'; break;
default: $page = "status"; break;
}
$pages = array(
'status' => array('s', 'Current status', 'showStatus'),
'actions' => array('al', 'Actions taken', 'showActionLog'),
'finalpoints' => array('fp', 'Decision points', 'showFinalPoints'),
'ingamelog' => array('il', 'In-game checks', 'showInGameChecks'),
'multipoints' => array('mp', 'Multiplayer points', 'showMultiPoints'),
'multilog' => array('ml', 'Multiplayer log', 'showMultiLog'),
'signlepoints' => array('sp', 'Single player points', 'showSinglePoints'),
'singlelog' => array('sl', 'Single player events', 'showSingleLog'),
'execution' => array('e', 'Execution log', 'showExecLog'),
);
foreach ($pages as $pName => $data) {
if ($pName == $page) {
echo "<b>";
} else {
echo "<a href='?p={$data[0]}'>";
}
echo $data[1];
if ($pName == $page) {
echo "</b> ";
} else {
echo "</a> ";
}
}
echo "</p>";
$func = $pages[$page][2];
$func();
function showStatus() {
?>
<h2>Current status</h2>
<p>
The Death of Rats is still in an <b><u>experimental</u></b> stage at this time, and no actual action is taken. What
it <i>would</i> do if it were fully enabled is logged on the "Actions taken" page nonetheless.<br/>
Most of the information it provides can be trusted, tho; however, if you suspect it sent a warning or "punished" a
player for no good reason, manual checks should be performed.
</p>
<p>
The following checks are performed:
</p>
<ul>
<li>use of open proxies</li>
<li>cookie deletion</li>
<li>trying to log on with a banned account</li>
<li>passwords shared between multiple accounts</li>
<li>simple multiing, as well as pass sharing</li>
<li>"vicious" multiing, implying that the cookies are cleared between each use</li>
<li>in-game checks for donations, tech exchanges, gifts and sales, and planet retake after abandon</li>
</ul>
<p>
Checks for concurrent session from the same IP as well as more in-game checks (alliance, posts, messages,
TA list, battles) are still missing.
</p>
<h2>About the different pages</h2>
<p>
This tool consists in a few different pages which give different information about the Death of Rats' current status.
These pages are:
</p>
<ul>
<li>
<b>Actions taken</b>: the log of all actions the Death of Rats performed. This includes sending
warnings and deciding to punish players.
</li>
<li>
<b>Decision points</b>: the current amount of points for each pair of players that has been investigated thoroughly
by the Death of Rats. Pairs with over 100 points will cause the Death of Rats to act.
</li>
<li>
<b>In-game checks log</b>: the latest 400 entries of the checks performed in-game on suspicious players as well
as the results of these checks.
</li>
<li>
<b>Multiplayer points</b>: the current amount of points for each pair of accounts that could be multiing or
abusing pass-sharing.
</li>
<li>
<b>Multiplayer log</b>: the latest 200 entries of the suspicious events detected between pairs of accounts.
</li>
<li>
<b>Single player points</b>: the current amount of points for each account that has performed suspicious actions.
While these points are normally not a problem, they influence multiplayer scores.
</li>
<li>
<b>Single player log</b>: the latest 200 suspicious events detected for single accounts.
</li>
<li>
<b>Execution log</b>: the latest 200 runs of the Death of Rats.
</li>
</ul>
<?php
}
function showExecLog() {
$db = __dbConnect();
$entries = array();
$q = pg_query($db, "SELECT * FROM main.dor_exec ORDER BY ts DESC LIMIT 200");
while ($r = pg_fetch_assoc($q)) {
$entries[] = $r;
}
pg_close($db);
?>
<h2>Previous 200 runs of the Death of Rats</h2>
<p>
This page shows the log of the previous 200 executions of the Death of Rats tick. The <i>Changes</i> column indicates
the amount of changes (connection records, password updates) examined; the <i>Events</i> column indicates the amount
of entries added to either the single player log or the multiplayer log.
</p>
<table border="1">
<tr>
<th>Time &amp; date</th>
<th>Changes</th>
<th>Events</th>
</tr>
<?php
foreach ($entries as $entry) {
?>
<tr>
<td align="center"><?=$entry['events'] ? "<b>" : ""?><?=gmstrftime("%H:%M:%S / %Y-%m-%d", $entry['ts'])?><?=$entry['events'] ? "</b>" : ""?></td>
<td align="center"><?=$entry['events'] ? "<b>" : ""?><?=$entry['entries']?><?=$entry['events'] ? "</b>" : ""?></td>
<td align="center"><?=$entry['events'] ? "<b>" : ""?><?=$entry['events']?><?=$entry['events'] ? "</b>" : ""?></td>
</tr>
<?php
}
?>
</table>
<?php
}
function showSingleLog() {
$db = __dbConnect();
$entries = array();
$q = pg_query($db, "SELECT a.name,l.message,l.ts FROM main.dor_single l, main.account a WHERE a.id = l.account AND a.status NOT IN ('QUIT', 'INAC', 'KICKED') ORDER BY l.ts DESC,a.name ASC LIMIT 200");
while ($r = pg_fetch_assoc($q)) {
$entries[] = $r;
}
pg_close($db);
?>
<h2>Previous 200 single player log entries</h2>
<p>
This page shows the log of the previous 200 log entries generated for single players.
</p>
<table border="1">
<tr>
<th>Time &amp; date</th>
<th>Account</th>
<th align="left">Message</th>
</tr>
<?php
$messages = array(
"ASSHOLE" => "Tried to log on using a banned account",
"PROXY" => "Currently using an open proxy",
"CLCOOK-SIP" => "Cleared cookies from the same IP",
"CLCOOK-DIP" => "Cleared cookies from a different (but close) IP",
);
foreach ($entries as $entry) {
?>
<tr>
<td align="center"><?=gmstrftime("%H:%M:%S / %Y-%m-%d", $entry['ts'])?>
<td align="center"><?=htmlentities($entry['name'])?></td>
<td><?=$messages[$entry['message']]?></td>
</tr>
<?php
}
?>
</table>
<?php
}
function showSinglePoints() {
$db = __dbConnect();
$entries = array();
$q = pg_query($db, "SELECT a.name,l.points FROM main.dor_single_points l, main.account a WHERE a.id = l.account AND a.status NOT IN ('QUIT', 'INAC', 'KICKED') ORDER BY l.points DESC,a.name ASC");
while ($r = pg_fetch_assoc($q)) {
$entries[] = $r;
}
pg_close($db);
?>
<h2>Single player "badness points"</h2>
<p>
These points correspond to recent suspicious activities from active accounts.
</p>
<table border="1">
<tr>
<th>Account</th>
<th>Points</th>
</tr>
<?php
foreach ($entries as $entry) {
?>
<tr>
<td align="center"><?=htmlentities($entry['name'])?></td>
<td align="center"><?=$entry['points']?></td>
</tr>
<?php
}
?>
</table>
<?php
}
function showInGameChecks() {
$db = __dbConnect();
$entries = array();
$q = pg_query($db, "SELECT a1.name as name1, a2.name as name2, l.message, l.ts, l.game FROM main.dor_ingame_check l, main.account a1, main.account a2 WHERE a1.id = l.account1 AND a2.id = l.account2 AND a1.status NOT IN ('QUIT', 'INAC', 'KICKED') AND a2.status NOT IN ('QUIT', 'INAC', 'KICKED') ORDER BY l.ts DESC,a1.name ASC, a2.name ASC LIMIT 400");
while ($r = pg_fetch_assoc($q)) {
$entries[] = $r;
}
pg_close($db);
?>
<h2>Latest 400 in-game checks log entries</h2>
<p>
This page shows the log of the latest 400 log entries generated by in-game checks on players. Events logged here
belong to different categories:
</p>
<ul>
<li><b>Somewhat suspicious events</b>: donations of less than &euro;100,000; rejected tech offers</li>
<li>
<b>Suspicious events</b>: donations of less than &euro;1,000,000; pending tech offers; accepted techs offer with
a price greater than &euro;1,000; planets taken by a player within 5 days of being abandonned by the other; sales
of planets or fleets.
</li>
<li>
<b>Highly suspicious events</b>: donations of less than &euro;10,000,000; gifts; tech offers with a price lower
than &euro;1,000.
</li>
<li>
<b>Extremely suspicious events</b>: donations of more than &euro;10,000,000.
</li>
</ul>
<table border="1">
<tr>
<th>Time &amp; date</th>
<th>Game ID</th>
<th>Account 1</th>
<th>Account 2</th>
<th align="left">Message</th>
<th>Count</th>
</tr>
<?php
$messages = array(
"CHECK" => "Verifying accounts",
"VHSE" => "Extremely suspicious in-game events",
"HSE" => "Highly suspicious in-game events",
"SE" => "Suspicious in-game events",
"LSE" => "Somewhat suspicious in-game events"
);
foreach ($entries as $entry) {
list($message, $count) = explode('-', $entry['message']);
if ($message == 'CHECK') {
$count = "N/A";
}
?>
<tr>
<td align="center"><?=gmstrftime("%H:%M:%S / %Y-%m-%d", $entry['ts'])?>
<td align="center"><?=$entry['game']?></td>
<td align="center"><?=htmlentities($entry['name1'])?></td>
<td align="center"><?=htmlentities($entry['name2'])?></td>
<td><?=$messages[$message]?></td>
<td align="center"><?=$count?></td>
</tr>
<?php
}
?>
</table>
<?php
}
function showMultiLog() {
$db = __dbConnect();
$entries = array();
$q = pg_query($db, "SELECT (a1.id || ',' || a2.id) as id, a1.name as name1, a2.name as name2, l.message, l.ts FROM main.dor_multi l, main.account a1, main.account a2 WHERE a1.id = l.account1 AND a2.id = l.account2 AND a1.status NOT IN ('QUIT', 'INAC', 'KICKED') AND a2.status NOT IN ('QUIT', 'INAC', 'KICKED') ORDER BY l.ts DESC,a1.name ASC, a2.name ASC LIMIT 400");
while ($r = pg_fetch_assoc($q)) {
$entries[] = $r;
}
pg_close($db);
$displayed = array();
?>
<h2>Previous 200 multiplayer log entries</h2>
<p>
This page shows the log of the previous 200 log entries generated for pairs of players.
</p>
<table border="1">
<tr>
<th>Time &amp; date</th>
<th>Account 1</th>
<th>Account 2</th>
<th align="left">Message</th>
</tr>
<?php
$messages = array(
"SIMPLE" => "Simple multiing / open pass sharing detected",
"SIMPLE-10" => "Simple multiing / open pass sharing detected (within 10 seconds!)",
"PASS" => "Accounts are using the same password",
"NOPASS" => "Accounts are no longer using the same password",
"VICIOUS-LP" => "Potential attempt to conceal pass-sharing",
"VICIOUS-MP" => "Probable attempt to conceal pass-sharing",
"VICIOUS-HP" => "Highly probable attempt to conceal pass-sharing",
);
foreach ($entries as $entry) {
$id = explode(',', $entry['id']);
sort($id);
$id = join(',', $id) . "-" . $entry['ts'] . "-" . $entry['message'];
if (in_array($id, $displayed)) {
continue;
}
$displayed[] = $id;
?>
<tr>
<td align="center"><?=gmstrftime("%H:%M:%S / %Y-%m-%d", $entry['ts'])?>
<td align="center"><?=htmlentities($entry['name1'])?></td>
<td align="center"><?=htmlentities($entry['name2'])?></td>
<td><?=$messages[$entry['message']]?></td>
</tr>
<?php
}
?>
</table>
<?php
}
function showFinalPoints() {
$db = __dbConnect();
$entries = array();
$q = pg_query($db, "SELECT a1.name as name1, a2.name as name2, l.points FROM main.dor_final_points l, main.account a1, main.account a2 WHERE a1.id = l.account1 AND a2.id = l.account2 AND a1.status NOT IN ('QUIT', 'INAC', 'KICKED') AND a2.status NOT IN ('QUIT', 'INAC', 'KICKED') ORDER BY l.points DESC,a1.name ASC, a2.name ASC");
while ($r = pg_fetch_assoc($q)) {
$entries[] = $r;
}
pg_close($db);
?>
<h2>Final decision points</h2>
<p>
This page displays the current amount of points for each pair of players that has been investigated thoroughly
by the Death of Rats. Pairs will over 100 points will cause the Death of Rats to act.
</p>
<table border="1">
<tr>
<th>Account 1</th>
<th>Account 2</th>
<th>Points</th>
</tr>
<?php
foreach ($entries as $entry) {
?>
<tr>
<td align="center"><?=htmlentities($entry['name1'])?></td>
<td align="center"><?=htmlentities($entry['name2'])?></td>
<td><?=$entry['points']?></td>
</tr>
<?php
}
?>
</table>
<?php
}
function showMultiPoints() {
$db = __dbConnect();
$entries = array();
$q = pg_query($db, "SELECT (a1.id || ',' || a2.id) as id, a1.name as name1, a2.name as name2, l.points FROM main.dor_multi_points l, main.account a1, main.account a2 WHERE a1.id = l.account1 AND a2.id = l.account2 AND a1.status NOT IN ('QUIT', 'INAC', 'KICKED') AND a2.status NOT IN ('QUIT', 'INAC', 'KICKED') ORDER BY l.points DESC,a1.name ASC, a2.name ASC");
while ($r = pg_fetch_assoc($q)) {
$entries[] = $r;
}
pg_close($db);
$displayed = array();
?>
<h2>Multiplayer "badness points"</h2>
<p>
This page shows the list of "badness points" between pairs of accounts. The higher the badness points, the more likely
the accounts are multis.
</p>
<table border="1">
<tr>
<th>Account 1</th>
<th>Account 2</th>
<th>Points</th>
</tr>
<?php
foreach ($entries as $entry) {
$id = explode(',', $entry['id']);
sort($id);
$id = join(',', $id);
if (in_array($id, $displayed)) {
continue;
}
$displayed[] = $id;
?>
<tr>
<td align="center"><?=htmlentities($entry['name1'])?></td>
<td align="center"><?=htmlentities($entry['name2'])?></td>
<td><?=$entry['points']?></td>
</tr>
<?php
}
?>
</table>
<?php
}
function showActionLog() {
$db = __dbConnect();
$entries = array();
$q = pg_query($db,
"SELECT * FROM ("
. "SELECT a1.name AS name1, a2.name AS name2, l.ts AS ts, 'WARN' AS atype "
. "FROM main.dor_warning l, main.account a1, main.account a2 "
. "WHERE a1.id = l.account1 AND a2.id = l.account2 "
. "AND a1.status NOT IN ('QUIT', 'INAC', 'KICKED') "
. "AND a2.status NOT IN ('QUIT', 'INAC', 'KICKED') "
. "UNION SELECT a1.name AS name1, a2.name AS name2, l.ts AS ts, 'PUNISH' AS atype "
. "FROM main.dor_warning l, main.account a1, main.account a2 "
. "WHERE a1.id = l.account1 AND a2.id = l.account2 "
. "AND a1.status NOT IN ('QUIT', 'INAC', 'KICKED') "
. "AND a2.status NOT IN ('QUIT', 'INAC', 'KICKED')"
. ") AS t ORDER BY t.ts DESC, t.name1 ASC, t.name2 ASC"
);
while ($r = pg_fetch_assoc($q)) {
$entries[] = $r;
}
pg_close($db);
?>
<h2>Actions performed by the Death of Rats</h2>
<p>
This page lists all the actions the Death of Rats has performed.
</p>
<table border="1">
<tr>
<th>Time &amp; date</th>
<th>Account 1</th>
<th>Account 2</th>
<th align="left">Message</th>
</tr>
<?php
$messages = array(
"WARN" => "Warned player",
"PUNISH" => "Slaughtered player with a rat-sized scythe"
);
foreach ($entries as $entry) {
?>
<tr>
<td align="center"><?=gmstrftime("%H:%M:%S / %Y-%m-%d", $entry['ts'])?>
<td align="center"><?=htmlentities($entry['name1'])?></td>
<td align="center"><?=htmlentities($entry['name2'])?></td>
<td><?=$messages[$entry['atype']]?></td>
</tr>
<?php
}
?>
</table>
<?php
}
?>
</body>
</html>

240
game/admin/game_status.php Normal file
View file

@ -0,0 +1,240 @@
<?php
include("config.inc");
include("as_log.inc");
function redirect() {
?>
<html>
<head>
<title>LegacyWorlds Beta 5 > Administration > Game status</title>
</head>
<body>
<h1><a href="index.html">LWB5 > Administration</a> > Game status</h1>
<h2>Operation in progress...</h2>
<p>
A system operation is in progress. Please wait, the page will update in 5 seconds.
</p>
<script language="JavaScript">
window.setTimeout('window.location="game_status.php"', 5000);
</script>
</body>
</html>
<?php
exit(0);
}
function printStatus($status) {
static $styles = array(
"PRE" => array('yellow', 'red'),
"READY" => array('red', 'yellow'),
"RUNNING" => array('white', 'green'),
"VICTORY" => array('yellow', 'blue'),
"ENDING" => array('black', 'yellow'),
"FINISHED" => array("white", "black")
);
print "<th style='color:" . $styles[$status][0] . ";background-color:"
. $styles[$status][1] . "'>$status</th>";
}
function sendFifo($command) {
global $aConfig;
$fName = $aConfig['ctrlFifo'];
if (!file_exists($fName)) {
return false;
}
$fifo = fopen($fName, "w");
fwrite($fifo, "$command\n");
fclose($fifo);
redirect();
}
function handleCommand($command, $game) {
if ($command == 'mv' && $game->status() == 'PRE') {
__logAdmin("is making game {$game->name} visible");
sendFifo("READY {$game->name}");
} elseif ($command == 'te' && $game->status() == 'READY' && $game->firstTick() - time() > 24 * 60 * 60 + 30) {
__logAdmin("made game {$game->name} start 24h earlier");
sendFifo("START {$game->name} EARLY");
} elseif ($command == 'tl' && $game->status() == 'READY') {
__logAdmin("made game {$game->name} start 24h later");
sendFifo("START {$game->name} LATE");
} elseif ($command == 'en' && ($game->status() == 'RUNNING' || $game->status() == "VICTORY")) {
__logAdmin("terminated game {$game->name}");
sendFifo("SETEND {$game->name} 0");
} elseif ($command == 'e24' && $game->status() == 'RUNNING') {
__logAdmin("set game {$game->name} to end in 24h");
sendFifo("SETEND {$game->name} 24");
} elseif ($command == 'kr' && $game->status() == 'ENDING') {
__logAdmin("prevented game {$game->name} from ending");
sendFifo("NOEND {$game->name}");
} elseif ($command == 'ee' && $game->status() == 'ENDING' && $game->lastTick() - time() > 24 * 60 * 60 + 30) {
__logAdmin("made game {$game->name} end 24h earlier");
sendFifo("END {$game->name} EARLY");
} elseif ($command == 'el' && $game->status() == 'ENDING') {
__logAdmin("made game {$game->name} end 24h later");
sendFifo("END {$game->name} LATE");
} elseif ($command == 'en' && $game->status() == 'ENDING') {
__logAdmin("terminated game {$game->name}");
sendFifo("END {$game->name} NOW");
}
}
// Load the list of games
$oldDir = getcwd();
chdir("../scripts");
$__logPrefix = "lwControl";
$__loader = array(
'log', 'classloader',
'version', 'game', 'tick', 'config',
'db_connection', 'db_accessor', 'db',
'library'
);
require_once("loader.inc");
chdir($oldDir);
$games = config::getGames();
dbConnect();
// Handle commands
if ($_GET['c'] != '') {
$cGame = $_GET['g'];
if (array_key_exists($cGame, $games) && $cGame != 'main') {
handleCommand($_GET['c'], $games[$cGame]);
}
}
?>
<html>
<head>
<title>LegacyWorlds Beta 5 > Administration > Game status</title>
</head>
<body>
<h1><a href="index.html">LWB5 > Administration</a> > Game status</h1>
<h2>Game list</h2>
<p>
<b>WARNING:</b> make sure you know what you're doing here - there are no second chances on this page;
if you click something, that "something" <i>will</i> happen <i>at once</i>.
</p>
<table border="1" width="100%">
<tr>
<th style="text-align:left; width:10%">ID</th>
<th style="width:10%">Status</th>
<th style="text-align:left;width:20%">Name</th>
<th style="text-align:left">Ticks</th>
<th style="text-align:left;width:30%">Commands</th>
</tr>
<?php
foreach ($games as $name => $game) {
if ($name == 'main') {
continue;
}
$status = $game->status();
$firstTick = $game->firstTick();
$lastTick = $game->lastTick();
print " <tr>\n <td><b>$name</b></td>\n";
printStatus($status);
print " <td>" . htmlentities($game->text) . "</td>\n";
print " <td>";
if ($firstTick > time()) {
print "Starting at " . gmstrftime('%H:%M:%S on %Y-%m-%d', $firstTick);
} elseif ($lastTick == 0) {
print "Running since " . gmstrftime('%H:%M:%S on %Y-%m-%d', $firstTick);
} elseif ($lastTick > time()) {
print "Running until " . gmstrftime('%H:%M:%S on %Y-%m-%d', $lastTick);
} else {
print "Stopped since " . gmstrftime('%H:%M:%S on %Y-%m-%d', $lastTick);
}
if ($status == 'PRE') {
$cmd = array(
array('mv', 'Make visible')
);
} elseif ($status == 'READY') {
$cmd = array(
array('tl', 'Start 24h later')
);
if ($firstTick - time() > 24 * 60 * 60 + 30) {
array_push($cmd, array('te', 'Start 24h earlier'));
}
} elseif ($status == 'RUNNING') {
$cmd = array(
array('e24', 'End in 24h'),
array('en', 'End now')
);
} elseif ($status == 'VICTORY') {
$cmd = array(
array('en', 'End game')
);
} elseif ($status == 'ENDING') {
$cmd = array(
array('el', 'Postpone by 24h')
);
if ($lastTick - time() > 24 * 60 * 60 + 30) {
array_push($cmd, array('ee', 'End 24h earlier'));
}
array_push($cmd, array('en', 'End now'));
array_push($cmd, array('kr', 'Keep running'));
} else {
$cmd = array();
}
print "</td>\n <td>";
if (count($cmd)) {
$lk = array();
foreach ($cmd as $c) {
array_push($lk, "<a href='?c=" . $c[0] . "&g=$name' onclick=\"return confirm('You selected \\'"
. $c[1] . "\\' on game \\'$name\\'. Please confirm.');\">" . $c[1] . "</a>");
}
print join(' - ', $lk);
} else {
print "&nbsp;";
}
print "</td>\n </tr>\n";
}
?>
</table>
<h3>About game status</h3>
<p>Games can have the following status:</p>
<table>
<tr>
<?php printStatus('PRE');?>
<td>The game is configured, but is hidden for now</td>
</tr>
<tr>
<?php printStatus('READY');?>
<td>The game is visible, but ticks have not started</td>
</tr>
<tr>
<?php printStatus('RUNNING');?>
<td>The game is running normally</td>
</tr>
<tr>
<?php printStatus('VICTORY');?>
<td>The game is still running but someone reached victory</td>
</tr>
<tr>
<?php printStatus('ENDING');?>
<td>The game is still available but is about to end.</td>
</tr>
<tr>
<?php printStatus('FINISHED');?>
<td>The game is no longer running and only visible through the rankings page</td>
</tr>
</table>
</body>
</html>

23
game/admin/index.html Normal file
View file

@ -0,0 +1,23 @@
<html>
<head>
<title>LegacyWorlds Beta 5 > Administration</title>
</head>
<body>
<h1>LW Beta 5 administration tools</h1>
<h2>Game management</h2>
<ul>
<li><a href="game_status.php">Game status</a>: display and manage existing games</li>
<li><a href="create.php?reset=1">Game creation</a>: create new LegacyWorlds rounds or matches</li>
<li><a href="set_default.php">Default game</a> (game for which rankings are displayed)</li>
<li><a href="deathofrats.php">Death of Rats</a>: experimental multi detection tool</li>
</ul>
<h2>Server management</h2>
<ul>
<li><a href="ticks.php">Ticks</a>: enable / disable the tick manager, run ticks manually</li>
<li><a href="maintenance.php">Maintenance</a>: activate / de-activate maintenance mode</li>
<li><a href="maps.php">Maps management</a>: manage maps used for <i>Kings of the Hill</i> games</li>
</ul>
</body>
</html>

View file

@ -0,0 +1,77 @@
<html>
<head>
<title>LegacyWorlds Beta 5 > Administration > Maintenance mode</title>
</head>
<body>
<h1><a href="index.html">LWB5 > Administration</a> > Maintenance mode</h1>
<?php
include('../scripts/config.inc');
include('as_log.inc');
$err = $reason = $duration = null;
if ($_GET['disable'] == '1' && !is_null($config['maintenance'])) {
unlink($config['cachedir'] . '/maintenance.ser');
include('../scripts/config.inc');
__logAdmin("put the server out of maintenance mode");
} elseif ($_POST['enable'] != '' && is_null($config['maintenance'])) {
$reason = $_POST['reason'];
$duration = (int) $_POST['duration'];
if (strlen($reason) < 10) {
$err = "Reason too short (min 10 characters).";
} elseif ($duration < 5) {
$err = "Duration too short (min 5 minutes).";
} else {
$maintenance = array(
"until" => time() + $duration * 60,
"reason" => $reason
);
$f = fopen($config['cachedir'] . '/maintenance.ser', "w");
fwrite($f, serialize($maintenance));
fclose($f);
include('../scripts/config.inc');
__logAdmin("put the server in maintenance mode for reason: $reason");
}
}
if (is_null($config['maintenance'])) {
?>
<p>
Maintenance mode is currently inactive. Please use the form below to activate it.
</p>
<form method="POST" action="?">
<p>
Reason for maintenance: <input type="text" maxlength="100" name="reason" size="40" value="<?=htmlentities($reason)?>" /><br/>
Maintenance mode duration: <input type="text" maxlength="3" name="duration" size="4" value="<?=$duration?>" /> minutes
</p>
<?php
if ($err) {
print "<p style='color:red'>$err</p>\n";
}
?>
<p>
<input type="submit" name="enable" value="Activate maintenance mode" />
</p>
</form>
<?php
} else {
?>
<p>
Maintenance mode is currently <b>active</b>.
</p>
<p>
<u>Reason:</u> <?=$config['maintenance']['reason']?><br/>
<u>Until:</u> <?=gmstrftime("%H:%M:%S on %m/%d/%Y", $config['maintenance']['until'])?>
(current: <?=gmstrftime("%H:%M:%S on %m/%d/%Y", time())?>).
</p>
<p><a href="?disable=1">Disable maintenance mode</a></p>
<?php
}
?>
</body>
</html>

703
game/admin/map_edit.js Normal file
View file

@ -0,0 +1,703 @@
// Generic text input component
TextInput = function (id, title, multi, min, max, init) {
this.id = id;
this.title = title;
this.multi = multi;
var value = init;
this.min = min;
this.max = max;
this.valid = false;
this.onChange = null;
var readValue = function () {
var e = document.getElementById(id + '-input');
if (e) {
value = e.value;
}
};
this.getText = function () {
readValue();
return value;
};
this.draw = function () {
readValue();
var str = '<table style="width: 100%; border-style: none; padding: 2px; margin: 0px">'
+ '<tr><th style="text-align:right; padding: 0px 5px; width: 120px;vertical-align:top">'
+ this.title + ':</th><td style="text-align: center">';
var jsStr = '="TextInput.byId[\'' + this.id + '\'].__change(); return true"';
if (this.multi) {
str += '<textarea id="' + this.id + '-input" rows="5" style="width: 100%" onChange'
+ jsStr + ' onKeyUp' + jsStr + ' onClick' + jsStr + '></textarea>';
} else {
str += '<input type="text" id="' + this.id + '-input" style="width: 100%" onChange'
+ jsStr + ' onKeyUp' + jsStr + ' onClick' + jsStr + '/>';
}
str += '</td></tr></table>';
document.getElementById(this.id).innerHTML = str;
document.getElementById(this.id + '-input').value = value;
this.checkValidity();
};
this.checkValidity = function () {
this.valid = (this.min == 0 && this.max == 0);
if (!this.valid) {
this.valid = (this.min > 0 && value.length >= this.min || this.min == 0)
&& (this.max > 0 && value.length <= this.max || this.max == 0);
}
with (document.getElementById(this.id + '-input').style) {
color = this.valid ? 'black' : 'white';
backgroundColor = this.valid ? 'white' : 'red';
}
};
this.__change = function () {
readValue();
this.checkValidity();
if (this.onChange) {
this.onChange(value);
}
};
TextInput.byId[this.id] = this;
};
TextInput.byId = {};
// Generic numeric control for size and amount of alliances
NumericControl = function (id, title, min, max, init) {
this.id = id;
this.title = title;
this.min = min;
this.max = max;
this.value = init;
this.onChange = null;
this.draw = function () {
var str = '<table style="width: 100%; border-style: none; padding: 2px; margin: 0px">'
+ '<tr><th style="text-align:right; padding: 0px 5px">' + this.title
+ ':</th><td style="text-align: center; width: 20px">' + this.value
+ '</td><td style="width: 70px; text-align:center">'
+ '<input type="button" onClick="NumericControl.byId[\''
+ this.id + '\'].decrease()" value="-" style="width: 24px" /> '
+ '<input type="button" onClick="NumericControl.byId[\''
+ this.id + '\'].increase()" value="+" style="width: 24px" /></td>'
+ '</tr></table>';
document.getElementById(this.id).innerHTML = str;
};
this.increase = function () {
if (this.value == this.max) {
return;
}
this.value ++;
this.draw();
if (this.onChange) {
this.onChange(this.value);
}
};
this.decrease = function () {
if (this.value == this.min) {
return;
}
this.value --;
this.draw();
if (this.onChange) {
this.onChange(this.value);
}
};
NumericControl.byId[this.id] = this;
};
NumericControl.byId = {};
// A system on the map
MapLocation = function (type, alloc, spawn) {
this.type = type;
this.alloc = alloc;
this.spawn = spawn;
};
// The map itself
Map = function (initFrom) {
// Copy basic map information
this.name = initFrom.name;
this.description = initFrom.description;
this.alliances = initFrom.alliances;
this.width = initFrom.width;
this.height = initFrom.height;
// Copy the map
this.map = { };
for (var i in initFrom.map) {
var ma = initFrom.map[i];
this.map['x' + ma[0] + 'y' + ma[1]] = new MapLocation(ma[2], ma[3], ma[4]);
}
// Function that computes min/max x/y
this.updateCoordinates = function () {
this.minX = - Math.floor(this.width / 2);
this.maxX = this.minX + this.width - 1;
this.minY = - Math.floor(this.height / 2);
this.maxY = this.minY + this.height - 1;
};
// Creates a nebula area
this.setNebula = function (x, y, opacity) {
if (this.map['x' + x + 'y' + y]) {
this.map['x' + x + 'y' + y].type = opacity;
} else {
this.map['x' + x + 'y' + y] = new MapLocation(opacity, null, null);
}
};
// Creates a target system
this.setTarget = function (x, y) {
if (this.map['x' + x + 'y' + y]) {
this.map['x' + x + 'y' + y].type = 'S';
this.map['x' + x + 'y' + y].alloc = 0;
} else {
this.map['x' + x + 'y' + y] = new MapLocation('S', 0, null);
}
};
// Creates an alliance-controlled system
this.setAlliance = function (x, y, alliance) {
var sys = this.map['x' + x + 'y' + y];
if (sys) {
sys.type = 'S';
sys.alloc = alliance;
sys.spawn = false;
} else {
this.map['x' + x + 'y' + y] = new MapLocation('S', alliance, false);
}
};
// Switches spawning status for an alliance-controlled system
this.switchSpawnPoint = function (x, y) {
var sys = this.map['x' + x + 'y' + y];
if (sys && sys.type == 'S' && sys.alloc > 0) {
sys.spawn = !sys.spawn;
}
};
// Removes systems allocated to alliances which no longer exist
this.removeExtraAlliances = function () {
for (var i in this.map) {
var sys = this.map[i];
if (sys.type == 'S' && sys.alloc > this.alliances) {
this.map[i] = null;
}
}
};
this.updateCoordinates();
};
// The editor's grid
Grid = function (id, map) {
this.id = id;
this.map = map;
this.cX = 0;
this.cY = 0;
this.onClick = null;
// This function draws the grid in which the map is displayed
this.draw = function () {
var i, j;
var str = '<table style="border: 1px solid black; border-collapse: collapse; padding: 0px; margin: 0px">'
+ '<tr><td style="border: 1px solid black;width: 32px;height:32px">&nbsp;</td>'
+ '<td style="border: 1px solid black; width:416px" colspan="13" id="map-up">&nbsp;</td>'
+ '<td style="border: 1px solid black;width: 32px">&nbsp;</td></tr>'
+ '<tr><td style="border: 1px solid black; height:416px" rowspan="13" id="map-left">&nbsp;</td>'
+ '<td style="border: 1px solid black;width: 32px;height:32px">&nbsp;</td>';
for (i = 0; i < 11; i ++) {
str += '<td style="border: 1px solid black;width: 32px; height: 32px; text-align: center" '
+ 'id="top-x-' + i + '">&nbsp;</td>';
}
str += '<td style="border: 1px solid black;width: 32px;height:32px">&nbsp;</td>'
+ '<td style="border: 1px solid black; height:416px" rowspan="13" id="map-right">&nbsp;</td>'
+ '</tr>';
for (i = 0; i < 11; i ++) {
str += '<tr><td style="border: 1px solid black;width: 32px; height: 32px; text-align: center" '
+ 'id="left-y-' + i + '">&nbsp;</td>';
for (j = 0; j < 11; j ++) {
str += '<td style="border: 1px solid #7f7f7f; width: 32px; height: '
+ '32px; text-align:center" id="map-' + j + '-' + i
+ '" onclick="Editor.editor.mapClick(' + j + ',' + i +')">&nbsp;</td>';
}
str += '<td style="border: 1px solid black;width: 32px; height: 32px; text-align:center" '
+ 'id="right-y-' + i + '">&nbsp;</td></tr>';
}
str += '<tr><td style="border: 1px solid black;width: 32px;height:32px">&nbsp;</td>';
for (i = 0; i < 11; i ++) {
str += '<td style="border: 1px solid black;width: 32px; height: 32px;text-align:center" '
+ 'id="bottom-x-' + i + '">&nbsp;</td>';
}
str += '<td style="border: 1px solid black;width: 32px;height:32px">&nbsp;</td></tr>'
+ '<tr><td style="border: 1px solid black;width: 32px; height:32px">&nbsp;</td>'
+ '<td style="border: 1px solid black; width:416px" colspan="13" id="map-down">&nbsp;</td>'
+ '<td style="border: 1px solid black;width: 32px">&nbsp;</td></tr>'
+ '</table>';
document.getElementById(this.id).innerHTML = str;
this.drawMap();
};
// This function draws the map on the grid
this.drawMap = function () {
var i, j, str, x, y;
// Scroll buttons
if (this.cX - 5 > this.map.minX) {
str = '<input type="button" value="<" style="width:100%;height:100%;margin:0"'
+ ' onclick="Editor.editor.scroll(-1, 0)" />';
} else {
str = '&nbsp;';
}
document.getElementById('map-left').innerHTML = str;
if (this.cX + 5 < this.map.maxX) {
str = '<input type="button" value=">" style="width:100%;height:100%;margin:0"'
+ ' onclick="Editor.editor.scroll(1, 0)" />';
} else {
str = '&nbsp;';
}
document.getElementById('map-right').innerHTML = str;
if (this.cY - 5 > this.map.minY) {
str = '<input type="button" value="\\/" style="width:100%;height:100%;margin:0"'
+ ' onclick="Editor.editor.scroll(0, -1)" />';
} else {
str = '&nbsp;';
}
document.getElementById('map-down').innerHTML = str;
if (this.cY + 5 < this.map.maxY) {
str = '<input type="button" value="/\\" style="width:100%;height:100%;margin:0"'
+ ' onclick="Editor.editor.scroll(0, 1)" />';
} else {
str = '&nbsp;';
}
document.getElementById('map-up').innerHTML = str;
// Draw X coordinates
for (i = 0; i < 11; i ++) {
x = this.cX + i - 5;
if (x < this.map.minX || x > this.map.maxX) {
str = '&nbsp;';
} else {
str = '<b>' + x + '</b>';
}
document.getElementById('top-x-' + i).innerHTML =
document.getElementById('bottom-x-' + i).innerHTML = str;
}
// Draw Y coordinates
for (i = 0; i < 11; i ++) {
y = this.cY - i + 5;
if (y < this.map.minY || y > this.map.maxY) {
str = '&nbsp;';
} else {
str = '<b>' + y + '</b>';
}
document.getElementById('left-y-' + i).innerHTML =
document.getElementById('right-y-' + i).innerHTML = str;
}
// Draw contents
for (i = 0; i < 11; i ++) {
x = this.cX + i - 5;
for (j = 0; j < 11; j ++) {
y = this.cY - j + 5;
var cell = document.getElementById('map-' + i + '-' + j);
if (y < this.map.minY || y > this.map.maxY || x < this.map.minX || x > this.map.maxX) {
cell.innerHTML = '&nbsp;';
cell.style.backgroundColor = 'black';
continue;
}
var sys = this.map.map['x' + x + 'y' + y];
if (!sys) {
cell.innerHTML = '&nbsp;';
cell.style.backgroundColor = '#3f3f3f';
} else if (sys.type != 'S') {
cell.innerHTML = '<b>' + sys.type + '</b>';
cell.style.backgroundColor = '#afafaf';
cell.style.color = Grid.nebulaColours[parseInt(sys.type, 10) - 1];
} else if (sys.alloc == 0) {
cell.innerHTML = 'T';
cell.style.backgroundColor = 'black';
cell.style.color = 'white';
} else {
cell.style.color = 'black';
cell.style.backgroundColor = Grid.allianceColours[sys.alloc - 1];
cell.innerHTML = sys.spawn ? 'X' : '&nbsp;';
}
}
}
};
// This function handle clicks on the map
this.handleClick = function(i, j) {
x = this.cX + i - 5;
y = this.cY - j + 5;
if (x >= this.map.minX && x <= this.map.maxX
&& y >= this.map.minY && y <= this.map.maxY && this.onClick) {
this.onClick(x, y);
}
};
};
Grid.allianceColours = [
'ff0000', '00ff00', '0000ff', '007f7f', '7f007f', 'afaf00', 'ffaf3f', '003f7f'
];
Grid.nebulaColours = [
'#ff0000', '#ff2f00', '#ff5f00', '#ff7f00'
];
// Toolbox
Toolbox = function (id, map) {
this.id = id;
this.map = map;
this.currentTool = null;
var drawToolCell = function (id, title, ctxt, cbg, cfg) {
return str = '<tr><td><table style="width:100%;padding:6px;margin:0px" id="tool-' + id
+ '" onClick="Editor.editor.selectTool(\'' + id + '\');"><tr>'
+ '<td style="color:' + cfg + '; background-color: ' + cbg
+ '; text-align:center;width:32px;height:32px">' + ctxt + '</td>'
+ '<td style="text-align:center;font-weight:bold">' + title + '</td>'
+ '</tr></table></td></tr>';
};
this.draw = function () {
var i, str = '<table style="width: 200px; border-style: none">'
+ '<tr><th style="font-size: 120%">Map drawing tools</th></tr>'
+ '<tr><th>Nebulae</th></tr>';
for (i = 1; i < 5; i ++) {
str += drawToolCell('n' + i, 'Class ' + i + ' nebula', '<b>' + i + '</b>',
'#afafaf', Grid.nebulaColours[i - 1]);
}
str += '<tr><th>Misc</th></tr>'
+ drawToolCell('tg', 'Target system', 'T', 'black', 'white')
+ drawToolCell('sp', 'Spawing point', 'X', 'white', 'black')
+ '<tr><th>Alliances</th></tr>';
for (i = 1; i <= this.map.alliances; i ++) {
str += drawToolCell('a' + i, 'Alliance ' + i, '&nbsp;', Grid.allianceColours[i - 1], 'black');
}
str += '</table>';
document.getElementById(this.id).innerHTML = str;
if (this.currentTool) {
this.selectTool(this.currentTool);
}
};
this.selectTool = function(tool) {
if (this.currentTool && document.getElementById('tool-' + this.currentTool)) {
document.getElementById('tool-' + this.currentTool).style.borderStyle = 'none';
}
if (! document.getElementById('tool-' + tool)) {
this.currentTool = null;
return;
}
with (document.getElementById('tool-' + tool).style) {
borderColor = 'red';
borderWidth = '2px';
borderStyle = 'solid';
}
this.currentTool = tool;
};
};
// Validity check / submit button
CheckAndSubmit = function (id, map) {
this.id = id;
this.map = map;
this.error = "---";
var mapCheck = function (map) {
var ax = [];
var tgc = 0;
for (var i = 0; i < map.alliances; i ++) {
ax[i] = [0, 0];
}
for (var i = map.minX; i <= map.maxX; i ++) {
for (var j = map.minY; j <= map.maxY; j ++) {
var m = map.map['x' + i + 'y' + j];
if (! m) {
return 1;
}
if (m.type != 'S') {
continue;
}
if (m.alloc == 0) {
tgc ++;
continue;
}
ax[m.alloc - 1][0] ++;
if (m.spawn) {
ax[m.alloc - 1][1] ++;
}
}
}
if (tgc == 0) {
return 2;
}
var min = -1;
for (var i = 0; i < map.alliances; i ++) {
if (ax[i][0] == 0) {
return 3 + i;
}
if (min == -1) {
min = ax[i][0];
} else if (ax[i][0] < min) {
return 19;
} else if (ax[i][0] > min) {
return 19 + i;
}
}
min = -1;
for (var i = 0; i < map.alliances; i ++) {
if (ax[i][1] == 0) {
return 11 + i;
}
if (min == -1) {
min = ax[i][1];
} else if (ax[i][1] < min) {
return 27;
} else if (ax[i][1] > min) {
return 27 + i;
}
}
return 0;
};
this.draw = function () {
if (this.error == '---') {
this.check();
}
var str;
if (this.error == "") {
str = '<input type="button" value="Save map" onclick="Editor.editor.submit()" />';
} else {
str = '<span style="color:red;font-weight:bold">' + this.error + '</span>';
}
document.getElementById(this.id).innerHTML = str;
};
this.check = function () {
var error = "";
if (map.name.length < 4) {
error = "Name too short";
} else if (map.name.length > 32) {
error = "Name too long";
} else {
var i = mapCheck(this.map);
switch (i) {
case 0: break;
case 1: error = "Map has undefined areas"; break;
case 2: error = "Map has no target areas"; break;
default:
if (i < 11) {
i -= 2;
error = "Alliance " + i + " has no systems.";
} else if (i < 19) {
i -= 10;
error = "Alliance " + i + " has no spawning points.";
} else if (i < 27) {
i -= 18;
error = "Alliance " + i + " has too many systems.";
} else if (i < 35) {
i -= 26;
error = "Alliance " + i + " has too many spawning points.";
}
break;
}
}
if (this.error != error) {
this.error = error;
this.draw();
}
};
};
// Main editor object
Editor = function (initFrom) {
var map = new Map(initFrom);
var components = [];
var cSub = new CheckAndSubmit('check-and-send', map);
var tools = new Toolbox('tools', map);
components.push(tools);
var grid = new Grid('grid', map);
grid.onClick = function(x, y) {
var tool = tools.currentTool;
if (!tool) {
return;
}
if (tool.match(/^n[1-4]$/)) {
map.setNebula(x, y, tool.charAt(1));
} else if (tool == 'tg') {
map.setTarget(x, y);
} else if (tool.match(/^a[1-8]$/)) {
map.setAlliance(x, y, parseInt(tool.charAt(1), 10));
} else if (tool == 'sp') {
map.switchSpawnPoint(x, y);
}
grid.drawMap();
cSub.check();
};
components.push(grid);
var c;
c = new TextInput('name', 'Map name', false, 4, 32, map.name);
c.onChange = function (value) {
map.name = value;
cSub.check();
};
components.push(c);
c = new TextInput('desc', 'Description', true, 0, 0, map.description);
c.onChange = function (value) {
map.description = value;
};
components.push(c);
c = new NumericControl('n-alliances', 'Alliances', 2, 8, map.alliances);
c.onChange = function (value) {
var old = map.alliances;
map.alliances = value;
tools.draw();
if (value < old) {
map.removeExtraAlliances();
grid.drawMap();
}
cSub.check();
};
components.push(c);
c = new NumericControl('m-width', 'Map width', 3, 41, map.width);
c.onChange = function (value) {
map.width = value;
map.updateCoordinates();
grid.drawMap();
cSub.check();
};
components.push(c);
c = new NumericControl('m-height', 'Map height', 3, 41, map.height);
c.onChange = function (value) {
map.height = value;
map.updateCoordinates();
grid.drawMap();
cSub.check();
};
components.push(c);
components.push(cSub);
this.draw = function () {
var str = '<h3>Parameters</h3>'
+ '<table style="width: 100%; border-style: none; margin: 0px; padding: 0px">'
+ '<tr><td colspan="3" id="name">&nbsp;</td></tr>'
+ '<tr><td colspan="3" id="desc">&nbsp;</td></tr>'
+ '<tr><td style="width: 33%" id="n-alliances">&nbsp;</td>'
+ '<td style="width: 34%" id="m-width">&nbsp;</td>'
+ '<td style="width: 33%" id="m-height">&nbsp;</td></tr>'
+ '<tr><td colspan="3" id="check-and-send" style="text-align:center">&nbsp;</td></tr>'
+ '</table>'
+ '<h3>Map</h3>'
+ '<div><div id="tools" style="float:right">&nbsp;</div><div id="grid">&nbsp;</div></div>';
document.getElementById('mapedit').innerHTML = str;
for (var i in components) {
components[i].draw();
}
};
this.scroll = function (dx, dy) {
grid.cX += dx; grid.cY += dy;
grid.drawMap();
};
this.mapClick = function(x,y) {
grid.handleClick(x, y);
};
this.selectTool = function(tool) {
tools.selectTool(tool);
};
this.submit = function () {
document.getElementById('sf-name').value = map.name;
document.getElementById('sf-desc').value = map.description;
document.getElementById('sf-width').value = map.width;
document.getElementById('sf-height').value = map.height;
document.getElementById('sf-alliances').value = map.alliances;
var ma = [];
for (var j = map.minY; j <= map.maxY; j ++) {
var str = '';
for (var i = map.minX; i <= map.maxX; i ++) {
var m = map.map['x' + i + 'y' + j];
str += m.type;
if (m.type != 'S') {
continue;
}
str += m.alloc;
if (m.alloc == 0) {
continue;
}
str += m.spawn ? '1' : '0';
}
ma.push(str);
}
document.getElementById('sf-map').value = ma.join('#');
document.getElementById('sendform').submit();
};
};
Editor.editor = new Editor(initMap);
Editor.editor.draw();

189
game/admin/maps.php Normal file
View file

@ -0,0 +1,189 @@
<?php
include('config.inc');
include('ctf_map.inc');
session_start();
function handleInput() {
if ($_GET['c'] == 'n') {
$op = 'e';
$_SESSION['edit_map'] = new ctf_map();
} elseif ($_GET['c'] == 'e') {
$op = 'e';
$_SESSION['edit_map'] = new ctf_map($_GET['id']);
} elseif ($_GET['c'] == 'd') {
if ($_GET['ok']) {
$map = new ctf_map($_GET['id']);
$map->destroy();
$op = '';
} else if ($_GET['cancel']) {
$op = "";
} else {
$op = 'd';
}
} elseif ($_POST['c'] == 'ms' && $_SESSION['edit_map'] instanceof ctf_map) {
$map = $_SESSION['edit_map'];
$map->setName(stripslashes($_POST['name']));
$map->setDescription(stripslashes($_POST['desc']));
$map->setWidth((int) $_POST['width']);
$map->setHeight((int) $_POST['height']);
$map->setAlliances((int) $_POST['alliances']);
$minY = -floor($map->getHeight() / 2); $maxY = $minY + $map->getHeight() - 1;
$minX = -floor($map->getWidth() / 2); $maxX = $minX + $map->getWidth() - 1;
$layout = explode('#', $_POST['map']);
for ($y = $minY; $y <= $maxY; $y ++) {
$str = array_shift($layout);
for ($x = $minX; $x <= $maxX; $x ++) {
$type = $str[0];
$map->setSystemType($x, $y, $type);
if ($type != 'S') {
$str = substr($str, 1);
continue;
}
$alloc = (int) $str[1];
$map->setSystemAlloc($x, $y, $alloc);
if ($alloc == 0) {
$str = substr($str, 2);
continue;
}
$map->setSystemSpawn($x, $y, $str[2] == '1');
$str = substr($str, 3);
}
}
$map->save();
$_SESSION['edit_map'] = null;
$op = '';
} else {
$op = '';
}
return $op;
}
function listMaps() {
?>
<h2>Available maps</h2>
<?php
$maps = ctf_map::allMaps();
if (count($maps) == 0) {
?>
<p>
There are no maps on the server at this time.
</p>
<?php
} else {
?>
<table border="1">
<tr>
<th align="left">Name &amp; description</th>
<th align="center">Size</th>
<th align="center">Alliances</th>
<th align="left">&nbsp;</th>
</tr>
<?php
foreach ($maps as $map) {
?>
<tr>
<td style='vertical-align:top'><?="<u>" . htmlentities($map->getName()) . "</u>"
. (is_null($map->getDescription()) ? "" : ("<br/>" . htmlentities($map->getDescription())))?></td>
<td style='text-align:center'><?=$map->getWidth()?>x<?=$map->getHeight()?></td>
<td style='text-align:center'><?=$map->getAlliances()?></td>
<td><a href="?c=e&id=<?=$map->getID()?>">Edit</a> - <a href="?c=d&id=<?=$map->getID()?>">Delete</a></td>
</tr>
<?php
}
?>
</table>
<?php
}
?>
<p>
<a href='?c=n'>Create a map</a>
</p>
<?php
}
function editMap() {
?>
<h2>Map editor</h2>
<form method="POST" action="?" onSubmit="return false;">
<div id="mapedit"><p>Loading, please wait ...</p></div>
</form>
<form method="POST" action="?" id="sendform" style="display: none">
<input type="hidden" name="c" value="ms" />
<input type="hidden" id="sf-name" name="name" value="" />
<input type="hidden" id="sf-desc" name="desc" value="" />
<input type="hidden" id="sf-width" name="width" value="" />
<input type="hidden" id="sf-height" name="height" value="" />
<input type="hidden" id="sf-alliances" name="alliances" value="" />
<input type="hidden" id="sf-map" name="map" value="" />
</form>
<script language="JavaScript"><!--
var initMap = {
name: '<?=addslashes($_SESSION['edit_map']->getName())?>',
description: '<?=preg_replace(array('/\\n/', '/\\r/'), array('\\n', '\\r'), addslashes($_SESSION['edit_map']->getDescription()))?>',
alliances: <?=$_SESSION['edit_map']->getAlliances()?>,
width: <?=$_SESSION['edit_map']->getWidth()?>,
height: <?=$_SESSION['edit_map']->getHeight()?>,
map: [ <?=$_SESSION['edit_map']->jsDump()?> ]
};
//--></script>
<script language="JavaScript" src="map_edit.js"></script>
<?php
}
function confirmDelete() {
$map = new ctf_map((int)$_GET['id']);
?>
<h2>Map deletion</h2>
<p>
You are about to delete the map called <b><?=htmlentities($map->getName())?></b>.<br/>
Please confirm.
</p>
<form method="GET" action="?">
<input type="hidden" name="c" value="d" />
<input type="hidden" name="id" value="<?=$map->getID()?>" />
<input type="submit" name="ok" value="Confirm" />
<input type="submit" name="cancel" value="Cancel" />
</form>
<?php
}
?>
<html>
<head>
<title>LegacyWorlds Beta 5 > Administration > Maps management</title>
</head>
<body>
<h1><a href="index.html">LWB5 > Administration</a> > Maps management</h1>
<p>
The purpose of this tool is to create new maps, edit existing ones or delete unused ones.
</p>
<?php
$h = handleInput();
switch($h) :
case 'e':
editMap();
break;
case 'd':
confirmDelete();
break;
default:
listMaps();
break;
endswitch;
?>
</body>
</html>

102
game/admin/set_default.php Normal file
View file

@ -0,0 +1,102 @@
<?php
include('config.inc');
include('as_log.inc');
function redirect() {
?>
<html>
<head>
<title>LegacyWorlds Beta 5 > Administration > Default game</title>
</head>
<body>
<h1><a href="index.html">LWB5 > Administration</a> > Default game</h1>
<h2>Operation in progress...</h2>
<p>
A system operation is in progress. Please wait, the page will update in 2 seconds.
</p>
<script language="JavaScript">
window.setTimeout('window.location="set_default.php"', 2000);
</script>
</body>
</html>
<?php
exit(0);
}
function sendFifo($command) {
global $aConfig;
$fName = $aConfig['ctrlFifo'];
if (!file_exists($fName)) {
return false;
}
$fifo = fopen($fName, "w");
fwrite($fifo, "$command\n");
fclose($fifo);
}
// Load the list of games
$oldDir = getcwd();
chdir("../scripts");
$__logPrefix = "lwControl";
$__loader = array(
'log', 'classloader',
'version', 'game', 'tick', 'config',
'db_connection', 'db_accessor', 'db',
'library'
);
require_once("loader.inc");
chdir($oldDir);
dbConnect();
if ($_GET['d'] != '') {
$cDef = config::getDefaultGame();
$games = config::getGames();
if ($cDef->name != $_GET['d'] && array_key_exists($_GET['d'], $games) && $_GET['d'] != 'main') {
sendFifo("SETDEF {$_GET['d']}");
redirect();
}
}
$games = config::getGames();
$defGame = config::getDefaultGame();
?>
<html>
<head>
<title>LegacyWorlds Beta 5 > Administration > Default game</title>
</head>
<body>
<h1><a href="index.html">LWB5 > Administration</a> > Default game</h1>
<p>
The <b>default game</b> is the game for which overall round rankings are displayed on the site's
main page.
</p>
<form action="?" method="GET">
<p>
Current default game:
<select name="d">
<?php
foreach ($games as $id => $game) {
if ($id == "main" || $game->status() == 'PRE') {
continue;
}
print " <option value='$id'";
if ($defGame->name == $id) {
echo " selected='selected'";
}
echo ">" . htmlentities($game->text) . "</option>\n";
}
?>
</select>
<input type="submit" value="Change" />
</p>
</form>
</body>
</html>

220
game/admin/ticks.php Normal file
View file

@ -0,0 +1,220 @@
<?php
include('config.inc');
include('../scripts/config.inc');
include('as_manager.inc');
include('as_log.inc');
function redirect() {
?>
<html>
<head>
<title>LegacyWorlds Beta 5 > Administration > Ticks</title>
</head>
<body>
<h1><a href="index.html">LWB5 > Administration</a> > Ticks</h1>
<h2>Operation in progress...</h2>
<p>
A system operation is in progress. Please wait, the page will update in 5 seconds.
</p>
<script language="JavaScript">
window.setTimeout('window.location="ticks.php"', 5000);
</script>
</body>
</html>
<?php
exit(0);
}
function ticksActive() {
global $config;
$stopped = $config['cachedir'] . '/ticks_stopped';
$stop = $config['cachedir'] . '/stop_ticks';
$start = $config['cachedir'] . '/start_ticks';
return (file_exists($start) || file_exists($stop)) ? 'pending' : !file_exists($stopped);
}
function startManager() {
global $aConfig;
__logAdmin("is starting the ticks manager");
$fName = $aConfig['ctrlFifo'];
if (!file_exists($fName)) {
return false;
}
$fifo = fopen($fName, "w");
fwrite($fifo, "TMINIT\n");
fclose($fifo);
redirect();
}
function killManager() {
global $aConfig;
__logAdmin("is stopping the ticks manager");
$fName = $aConfig['ctrlFifo'];
if (!file_exists($fName)) {
return false;
}
$fifo = fopen($fName, "w");
fwrite($fifo, "TMSTOP\n");
fclose($fifo);
redirect();
}
function enableTicks() {
global $config;
touch($config['cachedir'] . "/start_ticks");
__logAdmin("is enabling the ticks");
}
function disableTicks() {
global $config;
touch($config['cachedir'] . "/stop_ticks");
__logAdmin("is disabling the ticks");
}
$statusMessage = "";
// Start / stop manager
$command = $_GET['c'] ?? '';
if ($command == 'sm') {
startManager();
} elseif ($command == 'km') {
killManager();
} else {
$mRunning = __isManagerRunning();
$tActive = ($mRunning !== false) ? ticksActive() : false;
// Run tick manually
if ($command == 'rt' && $_GET['g'] != '' && $_GET['t'] != '') {
$__runFromAdmin = true;
$__adminParams = array($_GET['g'], $_GET['t']);
__logAdmin("is running tick " . join("::", $__adminParams));
include("../scripts/ticks.php");
$statusMessage = is_null($argh)
? ("Tick <b>" . join("::", $__adminParams) . "</b> run successfully")
: ("<b>Error while running tick " . join("::", $__adminParams) . ":</b><br/>$argh");
} else {
// Enable / disable ticks
if ($tActive === true && $command == 'dt') {
disableTicks();
$tActive = 'pending';
} elseif ($mRunning !== false && $tActive === false && $command == 'et') {
enableTicks();
$tActive = 'pending';
}
}
}
// Load the list of games if no ticks were run
if (!class_exists('config')) {
$oldDir = getcwd();
chdir("../scripts");
$__logPrefix = "lwControl";
$__loader = array(
'log', 'classloader',
'version', 'game', 'tick', 'config'
);
require_once("loader.inc");
chdir($oldDir);
}
?>
<html>
<head>
<title>LegacyWorlds Beta 5 > Administration > Ticks</title>
</head>
<body>
<h1><a href="index.html">LWB5 > Administration</a> > Ticks</h1>
<h2>Manager status</h2>
<p>Tick manager status: <?php
if ($mRunning === false) {
?>
<b>not running</b> - <a href="?c=sm">Start manager</a>
<?php
} else {
?> <b>running</b>, process ID #<?=$mRunning?> - <a href="?c=km">Kill manager</a><br/>
<?php
if ($tActive === 'pending') {
?> Ticks status change pending; please <a href="?">reload</a> the page.<br/>
This can take up to 20 seconds, be patient.
<?php
} elseif ($tActive) {
?> Ticks are <b>active</b> - <a href="?c=dt">Disable ticks</a>
<?php
} else {
?> Ticks are <b>inactive</b> - <a href="?c=et">Enable ticks</a>
<?php
}
}
?>
</p>
<h2>Manual controls</h2>
<?php
if ($statusMessage != '') {
echo " <p>$statusMessage</p>\n";
}
?>
<form action="?" method="GET">
<input type="hidden" name="c" value="rt" />
<input type="hidden" name="g" value="main" />
<p>
Engine tick:
<select name="t">
<option value="">-- select --</option>
<option value="day">day</option>
<option value="deathofrats">deathofrats</option>
<option value="vacation">vacation</option>
<option value="session">session</option>
</select>
<input type="submit" value="Run" />
</p>
</form>
<form action="?" method="GET">
<input type="hidden" name="c" value="rt" />
<p>
Tick
<select name="t">
<option value="">-- select --</option>
<option>battle</option>
<option>cash</option>
<option>day</option>
<option>hour</option>
<option>move</option>
<option>quit</option>
<option>sales</option>
<option>universe</option>
<option>punishment</option>
</select>
for game
<select name="g">
<option value="">-- select --</option>
<?php
$games = config::getGames();
foreach (array_keys($games) as $game) {
if ($game == 'main') {
continue;
}
print " <option>$game</option>\n";
}
?>
</select>
<input type="submit" value="Run" />
</p>
</form>
</body>
</html>

View file

@ -0,0 +1,109 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Accounts and Games</title>
<section id="accga_intro" title="Introduction">
Each player in LegacyWorlds has a single <mlink to="accga_acc">account</mlink> which provides him access to all possible <mlink to="accga_gm">games</mlink> he wishes to play. This section of the manual explains in details how to <mlink to="accga_acc_new">create</mlink> and <mlink to="accga_acc_act">activate</mlink> an account along with <mlink to="accga_acc_del">account deletion</mlink> and how to <mlink to="accga_gm">manage games</mlink>.
</section>
<section id="accga_acc" title="Account management">
<section id="accga_acc_new" title="Account creation">
From the <mlink to="home_page">game home page</mlink>, clicking on the <i>Create Account</i> link directs you to account creation form. You have to fill in:<ul>
<li><i>Username</i>: your in game name</li>
<li><i>Language</i>: language in which you want everything to be displayed</li>
<li><i>E-mail</i>: a <i>valid</i> e-mail address to be associated with the account. This has to be typed in twice to avoid mistakes</li>
<li><i>Password</i>: the password to be used along with your username to access your account. This has to be typed in twice to avoid mistakes</li>
</ul>
Once your are satisfied with the data you've entered you can click the <i>Create Account</i> Button.
<br/>
If the account creation process has been successful an <i>e-mail is sent</i> to the provided e-mail address containing:<ul>
<li>a <i>reminder</i> about the typed in <i>account information</i></li>
<li>information about the <mlink to="accga_acc_act">account activation procedure</mlink></li>
</ul>
</section>
<section id="accga_acc_act" title="Account activation">
The <i>e-mail you have received</i> when <mlink to="accga_acc">creating an account</mlink> contains information to activate your account. In order to activate your account you have to look at the <mlink to="home_cons_left_top">top part of the left panel of the home page</mlink>. A logging form is displayed there. In the form, you have to provide:<ul>
<li><i>Username</i>: the in game username you've chosen</li>
<li><i>Password</i>: the password you've chosen</li>
</ul>
You can then click the <i>ok</i> button to log in.
<br/>
A new form is then displayed asking for a <i>confirmation code</i>. This code has been sent to you <i>in the e-mail</i> mentioned above. Type in the code in the provided text field and click on the <i>Confirm account creation</i> button. If you provide the right code you get directed towards the main game selection page.
</section>
<section id="accga_acc_clo" title="Closing Account">
<section id="accga_acc_clo_intro" title="Introduction">
<i>Closing your account</i> allows you to <i>delete all game data related to your account</i>. But be careful: <i>it doesn't deleted your account</i> and you can <mlink to="accga_acc_clo_rea">reactivate it</mlink> any time you wish. The next paragraphs will cover those topics more closely.
</section>
<section id="accga_acc_clo_pro" title="Procedure">
<section id="accga_acc_clo_pro_acc" title="Accessing the form">
The form to <i>close your account</i> is accessible from the <mlink to="home_cont_home_log_intro">home page of the game when you are logged it</mlink>. In order <i>to access the page</i> you have two options:<ul>
<li><i>if you're not logged in</i>, follow the <mlink to="home_cons_left_top">logging in procedure</mlink>. The bottom section of the page displayed in the body of the home page should be about closing your account. Below an introduction about the topic, Is displayed a <i>Close my account</i> button. Clicking the button opens the forms that lead to the path to closing your account</li>
<li>if you are logged in and playing a LegacyWorlds game, clicking on the <i>My Account</i> menu item gets you to the logged in home page of the game. As in the previous case below the introduction about the topic, is displayed the <i>Closing my account</i> button. Clicking the button opens the forms that lead to closing your account</li>
</ul>
</section>
<section id="accga_acc_clo_pro_clo" title="Closing the account">
<i>Clicking the button</i> opens a new <i>form</i> that you have to fill in in order to <i>close the account</i>. You have to provide the <i>following information</i>:<ul>
<li>Your <i>password</i> in the corresponding <i>textfield</i> to make sure you're really you're who you're saying you are</li>
<li>Optionally a <i>text area</i> is provided where you can if you wish <i>explain why you're closing your account</i></li>
</ul>
Below these two fields are displayed two buttons:<ul>
<li><i>I really want to close my account</i>: clicking this button starts a countdown to real account closing. You have a 24 to 48h delay to cancel the action</li>
<li><i>No, I was just kidding</i>: clicking this button cancels the account closing procedure</li>
</ul>
</section>
</section>
<section id="accga_acc_clo_can" title="Cancelling account closing">
<section id="accga_acc_clo_can_acc" title="Accessing the form">
During the delay to account closing you can still cancel the operation. The form to <i>cancel account closing</i> is accessible from the <mlink to="home_cont_home_log_intro">home page of the game when you are logged it</mlink>. In order <i>to access the page</i> you have two options:<ul>
<li><i>if you're not logged in</i>, follow the <mlink to="home_cons_left_top">logging in procedure</mlink>. The bottom section of the page displayed in the body of the home page should be about closing your account. Below an introduction about the topic and information about the time at which the account will be closed, is displayed a <i>Don't close my account</i> button. Clicking the button opens the forms that allow to cancel the closing operation</li>
<li>if you are logged in and playing a LegacyWorlds game, clicking on the <i>My Account</i> menu item gets you to the logged in home page of the game. As in the previous case below the introduction about the topic, is displayed the <i>Don't close my account</i> button. Clicking the button opens the forms that allow to cancel the operation</li>
</ul>
</section>
<section id="accga_acc_clo_can_can" title="Cancelling the operation">
<i>Clicking the button</i> opens a <i> new page</i> with <i>two buttons</i>:<ul>
<li><i>Yes, cancel the countdown</i>: clicking this button cancels account closing</li>
<li><i>No, get on with it</i>: clicking this button goes on with the account closing procedure</li>
</ul>
</section>
</section>
<section id="accga_acc_clo_abou" title="About closed accounts">
You have to be aware of the fact that <i>closing your account doesn't delete your account information from the LegacyWorlds database</i> but <i>only your game data</i>. This prevents anyone from using your player name at your place and impersonate you in game. It also allows you to reactivate your account.
<br/>
This also means that all information regarding your account and in particular <i>your personal data are permanently stored</i> in the LegacyWorlds database. If you want those <i>information to be erased from the database</i>, please contact the <a href="mailto:staff@legacyworlds.com">staff</a>.
</section>
<section id="accga_acc_clo_rea" title="Account reactivation">
If you want to <i>reactivate your account</i> you only have to log in as usual. <i>Joining a LegacyWorlds game</i> is then all the <mlink to="accga_acc_new">same as for new accounts</mlink>.
</section>
</section>
</section>
<section id="accga_login" title="Logging in">
In the login form of the <mlink to="home_cons_left_top">left panel of the home page</mlink> you have to fill in:<ul>
<li><i>Username</i>: the in game username you've chosen</li>
<li><i>Password</i>: the password you've chosen</li>
</ul>
You can then click the <i>Log in -></i> button to log in.
</section>
<section id="accga_gm" title="Games management">
<section id="accga_gm_intro" title="Introduction">
<i>Several LegacyWorlds games</i> may be running at once. You can <i>choose</i> which games you want to play from the main game selection page you reach when logging in.
</section>
<section id="accga_gm_join" title="Joining a new game">
The game selection list provides informations about current available games, including:<ul>
<li><i>Game name</i>: name of the game. This name is a link to join that particular game</li>
<li><i>Players</i>: number of players in this game</li>
<li><i>Running</i>: if you are not currently playing this game this field presents if the game is running or not thus informing you if you can join in or not</li>
</ul>
In order to <i>join</i> a particular game click on its name in the games list.
<br/>
You'll get then directed to a <mlink to="planet">planet</mlink> creation form. This form will allow you to choose the name of your first <mlink to="planet">planet</mlink> in the game. Type in the <mlink to="planet">planet</mlink> name in the provided text field and click the <i>ok</i> button to validate your input. You can now start taking care of your newborn <mlink to="empire">empire</mlink> in this game.
</section>
<section id="accga_gm_play" title="Playing a game you've joined">
A list of current games you are playing is also provided. This list presents:<ul>
<li><i>Game name</i>: name of the game. This name is a link to play that particular game</li>
<li><mlink to="planets">Planets</mlink>: number of <mlink to="planet">planets</mlink> in your <mlink to="empire">empire</mlink> in this game</li>
<li><mlink to="money">Cash</mlink>: amount of <mlink to="money">money</mlink> you have in this particular game</li>
</ul>
In order to <i>play a particular game</i> click on its name in the list. You'll get directed to the <mlink to="overview_page">overview page</mlink> for this particular game.
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,35 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Accounts</title>
<section id="acc" title="Introduction">
Along with the good practices, some rules apply to your account in Legacy Worlds. Those are summed up in this section of the manual.
</section>
<section id="acc_multi" title="Multiple Accounts">
As for every game of the kind the general rule is: one account per player and one account only.
<br/>
Having multiple accounts for one player provides too big an advantage to the player controlling them and it wouldn't be a fair game to allow such a behaviour. It's simply cheating.
<br/>
There might not be an automated Anti-Multi System in Legacy Worlds for now but the small number of current players allows for the game administration team to check in the game database and spot by hand suspect behaviours. An automated system will be set up in a future Beta so it doesn't cost much to get good habits from the beginning.
</section>
<section id="acc_share" title="Password sharing">
Occasional password sharing among a little group of players is tolerated as long as several accounts are in the control of the same player for only a short period of time. Holding a database or file of allied account information isn't forbidden either as long as the actual use of those data complies with the previous statement.
<br/>
The "trusted allies" list should provide you with most of the gains you might expect from password sharing. Use this feature...
</section>
<section id="acc_age" title="Account Age">
Depending on their ages, newly created accounts face a certain amount of limitations that are lifted over time:<ul>
<li>Your account has to be 10 days old to allow cash transfer</li>
<li>Your account has to be 10 days old to allow for diplomatic exchange of technologies</li>
</ul>
</section>
<section id="grule_acc_inact" title="Inactive accounts">
Inactive accounts are accounts on which no activity hasn't occured in a certain amount of time. Those accounts will be neutralised. This means they will still exist in the database but won't be involved in any current game anymore. You may be able to reactivate them but you'll have to rejoin all the games you were playing.
</section>
<section id="grule_acc_priv" title="Privacy Warning">
In order to check on suspicious behaviour from some players the game administrators might have to look into the database for insult messages and such. As a consequence you have to be aware that they might read your messages. So be careful about what you may say in those.
<br/>
You also have to be aware that no messages are actually deleted even if you delete them in-game. They are kept in the database with a "deleted" flag.
</section>
</lwdoc>

View file

@ -0,0 +1,28 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Alliance</title>
<section id="alliance_bas" title="Basic concepts">
An alliance is a group of players who have decided to team up and work together to be stronger in the game. An alliance is identified by its tag, which usual consists of a short hand for its name. An alliance has a leader and is composed of members of different custom ranks. Depending on the privileges attached to their rank members have access to various types of features on the alliance page. An alliance can be either a democracy (members can vote for their leader) or a dictature (no voting system). Alliance specific forums can also be created by members of sufficient rank and their access to members can be restricted according to their rank.
</section>
<section id="alliance_join" title="Creating / joining an alliance" linkto="alliance_create">
At the beginning of the game you don't belong to any alliance. You can then choose among several options:<ul>
<li>Remain a lone gunman</li>
<li>Join an existing alliance</li>
<li>Create a new alliance</li>
</ul>
We'll have a closer look at the two last options in the corresponding manual section.
</section>
<section id="alliance_memb" title="As member of an alliance">
The internal organisation of an alliance is usually set up by its leadership and we won't cover those matters in this manual.
<br/>
As member of an alliance and depending on your rank inside the alliance you may have access to various alliance management features. You are invited to read the manual sections covering the features you have access to to learn more about them.
</section>
<section id="alliance_manag" title="Alliance management" linkto="alliance_manage">
The alliance management pages provide you with useful information about the alliance in the same trend as the alliance information previously described or listings of members and controlled planets. It also offers means to manage members, alliance specific forums and ranks. The various sections of this part of the manual describe those features.
</section>
<section file="alliance_create.lwdoc"/>
<section file="alliance_manage.lwdoc"/>
</lwdoc>

View file

@ -0,0 +1,47 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Creating / Joining an Alliance</title>
<section id="ajoin_intro" title="Introduction">
At the beginning of the game you don't belong to any alliance. You can then choose among several options:<ul>
<li>Remain a lone gunman</li>
<li>Join an existing alliance</li>
<li>Create a new alliance</li>
</ul>
We'll have a closer look at the two last options in the following paragraphs.
</section>
<section id="ajoin_join" title="Join an alliance">
Before joining an alliance you have to know what the existing alliances are and which ones might be looking for new members. Several means at are your disposal:<ul>
<li>The general forums: among the general forums there is a recrutment forum in which alliances which are recruting new members can advertise. You can choose one from there</li>
<li>The rankings: on the ranking page, there is an alliance ranking section from which you can pick your future alliance.</li>
<li>The maps: there is an alliance display mode for the maps which reveals alliance tags on the map. You can select a neighbouring alliance to send a joining request to.</li>
</ul>
Once you've selected an alliance to join or in order to choose one you might be interested in getting more data on the alliance. The alliance information section of the alliance page allows you to do just that.
<br/>
Once you've made you decision about the alliance you want to join you may send a joining request. It's what the Join an alliance section of the page is for. In order to send a joining request you have to type the alliance tag in the relevant text field and click the Send request button.
<br/>
The section of the page now present a status on the current sent request. In case you'd change you mind you can click the Cancel Request button to cancel your request.
<br/>
A message will be sent to your account and stored in the Internal Transmission folder once your joining request is accepted or rejected.
<br/>
Keep also in mind that you can only send one request at once and can only be member of one alliance at a time.
</section>
<section id="ajoin_info" title="Alliance information">
Providing the alliance tag in the text field and clicking the display information button reveals:<ul>
<li>Alliance name: full length name of the alliance</li>
<li>Leader: name of the player leading the alliance</li>
<li>Rank: rank of the alliance in the alliance ranking</li>
<li>Points: number of points for the alliance in the rankings</li>
<li>Planets: total number of planets controlled by members of this alliance</li>
<li>Avg. coordinates: average coodinates of the planets controlled by this alliance</li>
</ul>
</section>
<section id="ajoin_creat" title="Create a new alliance">
In order to create a new alliance you have to provide two different elements in the relevant text fields of this section of the page:<ul>
<li>Alliance tag: it's the short hand used for joining request and diplays on the maps and so on</li>
<li>Alliance name: complete name of the alliance</li>
</ul>
You can now click the Create this alliance button. Your alliance will be created and you'll have a lot to do to manage it, as presented in other sections of this manual.
</section>
</lwdoc>

View file

@ -0,0 +1,173 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Alliance Management</title>
<section id="amanag_intro" title="Introduction">
The alliance management pages provide you with useful information about the alliance in the same trend as the alliance information previously described or listings of members and controlled planets. It also offers means to manage members, alliance specific forums and ranks. The various sections of this part of the manual describe those features.
</section>
<section id="amanag_main" title="Main page">
<section id="alliance_manag_main_intro" title="Introduction">
This section present the main elements concerning the alliance along with means to acquire data about other alliances and a way to leave it.
</section>
<section id="amanag_main_curr" title="Current alliance">
This part of the page displays your status inside the alliance (leader or member) along with useful data similar to those displayed in the Alliance Information part. See this manual section for an exact list.
<br/>
If you are leader of the alliance and have a successor you can choose to step down by clicking the corresponding button in this part of the page. Your successor will automatically become the new leader of the alliance.
<br/>
The Leave button also allows you to leave the alliance whenever you want.
</section>
<section id="amanag_main_sett" title="General settings">
The leader can change here some general settings for the alliance:<ul>
<li>Government: it can be either Dictatorial (members do have access to any voting facility to elect a new leader) or Democratic (members can vote for their leader). The goverment system can be chosen by using the radio button in front of the government system to select.</li>
<li>Successor: a member name can be put in the texfield. This member will automatically become the alliance leader if the current one loses all his planets, steps down or leaves the alliance.</li>
</ul>
Once data are changed in this section, two buttons appear. The Update button allows to take changes into account. The Reset button reverts to previous settings.
</section>
<section id="amanag_main_info" title="Alliance information">
It's the same system as when you have'nt joined an alliance yet.
</section>
</section>
<section id="amanag_list" title="Listings">
<section id="amanag_list_intro" title="Introduction">
This section provides different listings linked with alliances:<ul>
<li>Alliance Planets: lists the planets belonging to the alliance</li>
<li>Alliance Members: lists the players who are members of the alliance</li>
<li>Planets under Attack: lists the planets which are part of the alliance and currently are under attack</li>
</ul>
It also offers common features for all lists.
</section>
<section id="amanag_list_comm" title="Common features">
At the top of the page the Listing drop down list allows to switch among listings.
<br/>
You can also chose the number of elements to display per page with the coresponding drop down list. When several pages are necessary a specific drop down list appear to allow you to move between pages.
<br/>
A search facility is also provided. When it is relevant you can either choose to search a planet or a player name by selected the radio button before the item you're interested in. When filling in the search textfield the listing will be automatically limited to the items containing the string you've typed in wherever it may be in the whole name.
</section>
<section id="amanag_list_plan" title="Alliance Planets">
This lists all planets in the alliance including for each of them:<ul>
<li>Coordinates: coordinates of the planets</li>
<li>Planet: name of the planet</li>
<li>Owner: name of the player who owns the planet</li>
<li>Factories: total number of factories on the planet</li>
<li>Turrets: total number of turrets on the planet</li>
</ul>
In this listing, clicking on the title of one column allows to order the list according to the values of that field. Depending on the direction of the arrow which appears the order is ascending or descending. Clicking again on the same title changes the order from ascending to descending and the other way around.
<br/>
A colour code is used to allow you to see if planets are under attack at a glance; these are displayed in red.
</section>
<section id="amanag_list_memb" title="Alliance Members">
This lists all members in the alliance including:<ul>
<li>Name: name of the player</li>
<li>Rank: rank of the player inside the alliance; see rank administration of this manual to learn more about the alliance rank system</li>
</ul>
In this listing, clicking on the title of one column allows to order the list according to the values of that field. Depending on the direction of the arrow which appears the order is ascending or descending. Clicking again on the same title changes the order from ascending to descending and the other way around.
<br/>
If you have sufficient privileges a checkbox is diplayed before each member name. Checking the box displays some actions features at the bottom of the page including two buttons:<ul>
<li>Kick: to kick the selected members out of the alliance</li>
<li>Change their rank: to change the rank of the selected members to the rank selected in the drop down list displayed afterwards.</li>
</ul>
</section>
<section id="amanag_list_att" title="Planets under Attack">
This lists planets belonging to the alliance which are currently under attack along with useful information such as:<ul>
<li>Coordinates: coordinates of the planet under attack</li>
<li>Planet: name of the planet under attack</li>
<li>Owner: name of the player who owner the planet under attack</li>
<li>Def. Power: power of the fleets which defend the planet</li>
<li>Att. Power: power of the fleets which attack the planet</li>
<li>Defenders: list of names of players who are currently defending the planet</li>
<li>Attackers: list of names of players who are currently attacking the planet</li>
</ul>
For each planet under attack a colour code represents the current defense status compared to enemy fleets:<ul>
<li>Green: defending fleets have more than 3 times the enemy average power. It's very likely no support is needed and defending fleets should win</li>
<li>Red: attacking fleets have more than 3 times the defending average power. It's very like the defenses will be defeated</li>
<li>Grey: the average power difference between defending and attacking fleets isn't that big and the outcome of the battle isn't obvious</li>
</ul>
In this listing, clicking on the title of one column allows to order the list according to the values of that field. Depending on the direction of the arrow which appears the order is ascending or descending. Clicking again on the same title changes the order from ascending to descending and the other way around.
<br/>
You have to be aware that the information provided in this listing may not be 100% accurate. Indeed the are influenced by technologies of the communications area and are subject to electronic counter measures (encryption methods and such) as long as electronic counter counter measures (jamming). The accuracy of the data displayed depends both on the level of technology you and the enemy have in the field.
</section>
</section>
<section id="amanag_requ" title="Pending requests">
When a player requests to join an alliance for which you can manage pending joining requests a message is sent to your account and stored in the Internal Transmissions folder.
<br/>
The Pending Requests part of the Alliance page displays the list of pending joining requests. To accept or reject a given player you have to check the checkbox in front of his name and click the relevant button: Accept or Reject.
</section>
<section id="amanag_forum" title="Forums administration">
<section id="amanag_forum_intro" title="Introduction">
This section of the alliance management page allows you to perform administration tasks on the alliance specific forums. You can both create and manage those forums from here.
</section>
<section id="amanag_forum_creat" title="Create a forum">
The Create a forum link in the top right corner of the page directs you to a forum creating form you have to fill in properly in order to create a new forum. Before creating the forum you have to provide the following information:<ul>
<li>Forum name: in this textfield you have to type a new name for the future forum</li>
<li>New threads: you have to select who will be allowed to create new threads in the forum by clicking the radio button before the option you're interested in. It can be either Everyone or Moderators only</li>
<li>Initial position: this drop down list allows you to select where to place the forum in the forum management page compared to the other existing forums</li>
<li>Description: in this textarea you can type in a longer description of the forum</li>
<li>Forum access: in this section you have to decide for an access level for each of the customised ranks defined for the alliance. In order to do so you have to check the checkbox located before the rank(s) you want to change access for. Three buttons will appear at the bottom of the page to allow you to manage the access level of the given rank(s):<ul>
<li>No access: in order to forbid access to that forum to members of this rank click on the Give no access button</li>
<li>Standard access: in order to provide access with no extra privileges to the forum for members of that rank click the Give standard access button</li>
<li>Moderators: in order to give moderator privileges for that forum to the members of this rank click the Make moderator button</li>
</ul>
</li>
</ul>
You can now either click the OK button to create the forum or the Cancel one to cancel your changes.
</section>
<section id="amanag_forum_manag" title="Manage forums">
Once created, all forums are listed in the Alliance Forums page along with:<ul>
<li>Name and description: name and description of the forum along with useful links</li>
<li>New threads: information about who can create new threads in that forum</li>
</ul>
Along with each forum name and description a set of links allow to manage them:<ul>
<li>Edit: goes back to the forum creation form with prefilled data for the current forum so that you can make changes</li>
<li>Delete: allows you to delete the given forum</li>
<li>Move down: allows you to move the forum down in the list</li>
<li>Move up: allows you to move the forum up in the list</li>
</ul>
</section>
</section>
<section id="amanag_rank" title="Ranks admininistration">
<section id="alliance_manag_rank_intro" title="Introduction">
This section of the alliance management page allows you to both create and manage customised ranks of members of your alliance. These ranks are linked with a set of alliance features that you define here.
</section>
<section id="amanag_rank_creat" title="Create a Rank">
The Create a rank link at the top right corner of the page directs you to a rank creation for you have to fill in. In order to create a rank you have to provide the following information:<ul>
<li>Designation: name of the rank as it will appear in the members' listing</li>
<li>List access: this drop down list allows you to select which alliance listing will be displayed for players of this rank. It can be either:<ul>
<li>Detailed planet list: all lists are available</li>
<li>Planet list: a less complete planet list is displayed</li>
<li>Member list: only the member list is available, the planet list is hidden</li>
<li>No access: no listing is displayed</li>
</ul>
</li>
<li>List of planets under attack: check this checkbox so that the player can see the list of planets currently under attack</li>
<li>Diplomatic contact: use this radio buttons to make members of this rank diplomatic contact for the alliance or not. As diplomatic contact members receive messages sent to the alliance</li>
<li>Can vote: use this radio button to allow members of this rank to vote or not in democratic alliances</li>
<li>Can apply for presidency: use this radio button to allow members of this rank to apply for presidency or not in democratic alliances</li>
<li>Member management: the following items allow you to decide what role in member management the players of this rank will have:<ul>
<li>Accept pending requests: use this radio button to allow members of this rank to accept pending joining request</li>
<li>Kick members: use this radio button to allow members of this rank to kick members of not. If the Only members of a specific rank option is chosen, a list of all currently existing ranks will be displayed with checkboxes before each rank. Check the boxes before the ranks you want the members of ths rank to be allowed to kick.</li>
<li>Change ranks: use this radio button to allow members of this rank to change the rank of other members or not. If the Only members of a specific rank option is chosen, a list of all currently existing ranks will be displayed with checkboxes before each rank. Check the boxes before the ranks you want the members of this rank to be allowed to promote / demote.</li>
</ul>
</li>
<li>Forum access: the following items allow you to decide what forum access the members of the new rank will have:<ul>
<li>Forum administrator: use this radio button to make members of the new rank forum administrators. As such they'd have all privileges on all forums and the following items will be hidden</li>
<li>Forum access: for each existing forum a radio button allows you to chose an access level for members of the new rank. It can be either No access, User or Moderator.</li>
</ul>
</li>
</ul>
Once you've made your modificaction you can either click the Ok button to create the new rank or the cancel button to cancel the changes.
</section>
<section id="amanag_rank_manag" title="Manage ranks">
The Rank Administration page provides a list of all defined ranks for the alliance along with useful links including:<ul>
<li>Rank name: name of the rank as defined during its creation</li>
<li>Actions: actions which can be performed on the rank. It can be either edit or delete. The default rank Standard member can't be deleted but only edited</li>
<li>Members: number of members of this rank in the alliance</li>
</ul>
For each rank several actions are possible:<ul>
<li>[ + ]: clicking on this symbol before the name of the rank displays a short description based on the privileges attached to this rank</li>
<li>Edit: clicking on this link directs you to the rank creation page with prefilled values for the current rank so that you can make changes.</li>
<li>Delete: this link allows you to delete a rank. If the alliance has members who currently have this rank a drop down list of available ranks is displayed which allows you to choose to what rank to demote the members who have to rank to delete</li>
</ul>
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,27 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Trusted Allies</title>
<section id="tall_bas" title="Basic concepts">
In Legacy Worlds you can entrust other players with control of your fleets while you're not online. This page allows you to manage the list of players you want to trust with your fleets in those circumstances along as to know which players might trust you with their fleets.
</section>
<section id="tall_add" title="Add Ally">
Typing the name of a player in the provided textfield in this section of the page and clicking the Add button adds the player to your trusted allies list. You can add up to 5 players to the list.
</section>
<section id="tall_list" title="Allies List">
This list present your trusted allies in an ordered way. The different shades of green represent trust levels. When you're not online the player who can move your first is the first online player in the ordered trusted allies list, that is to say the online player with the higher trust level.
<br/>
A checkbox is displayed in front of each player name in the list. You have to check the checkbox in front of a name to select the corresponding player. You can perfom several actions on selected players:<ul>
<li>Remove: clicking on the Remove button removes the selected player from the trusted allies list</li>
<li>Up: clicking on the Up button moves the selected player up in the trusted allies list</li>
<li>Down: clicking on the down button moves the selected player down in the trusted allies list</li>
</ul>
</section>
<section id="tall_play" title="Players who trust you">
This list present all players who trust you, including:<ul>
<li>Player: name of the player who has you in his trusted allies list</li>
<li>Trust Level: level of trust at which you are located in this player's list, that is to say your rank in his trusted allies list</li>
</ul>
</section>
</lwdoc>

View file

@ -0,0 +1,17 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Background</title>
<section id="bg_holocaust" title="The holocaust">
Land, resources, religion, ideology, colour of skin, power... any cause is worth it. A fight, a war. It could be now, it could be tomorrow. Does it really matter? In the end, the result is all the same: devasted cities, wastelands, undrinkable water, polluted soil and scattered survivors. After years of internal conflicts and devastating wars humanity has finally achieved its ultimate goal: the devastation of its home planet, Earth. What hope is there for those faced with an impossible task: survival on a radioactive piece of rock which could collapse into space dust at any time. The only option left for the remaining survivors of the holocaust: flee to the stars in the hope of finding a new home and rebuilding their civilisation.
</section>
<section id="bg_journey" title="The long journey">
Hundreds of ships were launched into deep space. Their hope: finding a suitable planet, one that can sustain life as they knew it, one where they could settle and rebuild, one that they might take better care of than the previous one. They searched for years for such harbor, safe haven.Going deeper and deeper into the galaxy. Where noone has gone before.
</section>
<section id="bg_arrival" title="The arrival">
As commandant of a small group of colonists you've finally managed to find a planet matching the required parameters and you're about to start rebuilding on it. It will be up to you to make it grow into a new galactic empire within a hostile universe. To achieve that goal you'll have to find allies among the other Earth refugees who settled in the neighbouring star systems and fight those willing to spoil your hard work.
<br/>
It will also be up to you to provide your citizens with what they might need and encourage the scientists of the expedition in their research to achieve new technological breakthroughs. It will be up to you to fufill Earth's legacy...
</section>
</lwdoc>

View file

@ -0,0 +1,60 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Battles</title>
<section id="battle_intro" title="Introduction">
<i>Battles</i> regulate the way military engagements occure in LegacyWorlds. The next parapgraphs describe how battles are managed in game.
When entering into <i>battle mode</i>, fleets remain <i>unavailable</i> until a <mlink to="ticks_tick">battle tick</mlink> has occured on the stellar object they are orbiting.
</section>
<section id="battle_rul" title="Battle rules">
<section id="battle_rul_cond" title="Battle conditions">
Battles occure when the following conditions are met:<ul>
<li><mlink to="ipp_ot">Location</mlink>: the fleets have to be at the same location. Same location means <i>orbiting the same stellar object</i>. Two fleets <i>in <mlink to="move_gen_hypnorm_hyp">hyperspace</mlink> don't engage in battle</i> because the particular nature of this parallel dimension renders weapons inefficient</li>
<li><mlink to="move_pract_order_change_mod">Fleets' mode</mlink>: the <mlink to="move_pract_order_change_mod">modes</mlink> of the fleets have to be different ((one in defense and one in attack at least)</li>
<li><mlink to="vacation_mode">Vacation mode</mlink>: in the case of an attack on a planet, the attacked planet has to belong to a player who isn't in <mlink to="vacation_mode">vacation mode</mlink></li>
<li><mlink to="planet">Planet</mlink>: a battle also occures when a fleet is in attack mode on a planet, be it defended by <mlink to="fleets">fleets</mlink> or <mlink to="ship_cat_list">turrets</mlink> or not</li>
</ul>
</section>
<section id="battle_rul_comp" title="Battle computations">
<i>Battle computations</i> correspond to the calculation of the outcome of a battle. They are regulated by the <i>following rules</i>:<ul>
<li><i>Battle computations</i> take place at <mlink to="ticks_tick">Battle ticks</mlink>, every 4 hours</li>
<li>The <i>losses</i> of <mlink to="ships_cat_list">ships</mlink> and <mlink to="ship_cat_list">turrets</mlink> for each side are calculating <i>depending on relative average power</i> and <i>fleet composition</i> of each side</li>
<li>The <i>primary factor</i> taken into account is the <i>relative <mlink to="ship_cat_pow">power</mlink></i> between attacking and defending <mlink to="fleets">fleets</mlink>. The bigger the difference, the more losses the smaller fleet will sustain and the less losses the bigger fleet will have</li>
<li>The <i>number of <mlink to="ships_cat_list">ships of each type</mlink></i> being detroyed depends on <i>fleet composition</i>. The more ships of one category the more will be destroyed</li>
</ul>
</section>
</section>
<section id="battle_report" title="Battle reports">
Each time a <mlink to="ticks_tick">battle tick</mlink> during which you have been <i>engaged in battle has occured</i>, a <i>battle report</i> is sent in your <mlink to="msg_int">Internal Transmissions</mlink> folder by your <i>Military Advisor</i>. This report includes <i>for each location</i> a description of the <mlink to="fleets">fleets</mlink> in presence and the outcome:<ul>
<li><i>Fleet categories</i>: the report includes up to <i>three categories</i> of <mlink to="fleets">fleets</mlink>:<ul>
<li><i>own fleets</i> (green)</li>
<li><i>friendly fleets</i> (blue)</li>
<li><i>enemy fleets</i> (red)</li>
</ul></li>
<li><i>Fleet composition</i>: for each group of <mlink to="fleets">fleets</mlink> is displayed the <i>composition of the fleet</i> before the battle (<i>Start</i> Column) and the losses (<i>Losses</i> column) for <mlink to="ships_cat_list">each ship category</mlink> present and for <mlink to="ships_cat_list">Turrets</mlink> if any, along with the same data in <mlink to="ship_cat_pow">power of the fleet</mlink></li>
<li><i>Comment</i>: at the bottom of the <i>Battle Report</i> the <i>Military Advisor</i> provides some <i>insights on the next move to make</i></li>
</ul>
</section>
<section id="battle_ownchange" title="Planet owner change">
<section id="battle_ownchange_intro" title="Introduction">
<i>When attacking a planet with sufficient forces</i>, a point is reached where <i>all defenses have been destroyed</i>, be they <mlink to="ships_cat_list">ships</mlink> or <mlink to="ships_cat_list">turrets</mlink>. At the next <mlink to="ticks_tick">hour tick</mlink> is then computed if anyone could <i>take control of the planet</i>. Owner change is decided based on the rules described in the next paragraphs.
</section>
<section id="battle_ownchange_ga" title="Planetary control">
The <i>control over the planet</i> can only <i>change</i> if the <i>ground assault troups have a i<mlink to="ship_cat_ga">sufficient control</mlink> over the population</i>. A single company can't control a whole planet, whatever elite they are, can't they?
<br/>
As a consequence a player has to have more <mlink to="ship_cat_ga">GAs ships</mlink> than the number of <mlink to="ship_cat_ga">GA ships</mlink> required to <mlink to="ship_cat_ga">control the population</mlink>, in order <i>to take control of the planet</i>.
<br/>
At the <i>beginning of the game</i>, the troups transported in <i>1 GA ship</i> can control <i>200 population units</i>. This number can be increased through <mlink to="technology">technological advances</mlink> such as:<ul>
<li><mlink to="tech_39">Exoskeleton</mlink></li>
<li><mlink to="tech_26">Nanofiber Armor</mlink></li>
<li><mlink to="tech_54">Self-repairing Exoskeleton</mlink></li>
</ul>
</section>
<section id="battle_ownchange_play" title="Player gaining control">
In some cases, <i>several players</i> with <mlink to="fleets">fleets</mlink> including <mlink to="ship_cat_ga">GA ships</mlink> may be attacking the same <mlink to="planet">planet</mlink> at once. When <i>several players</i> are attacking the same <mlink to="planet">planet</mlink>, <i>control over the planet</i> is given to the one who <i>has the capacity to control the more population</i>.
<br/>
It doesn't necessarily mean that the player with the more <mlink to="ship_cat_ga">GA ships</mlink> will gain control. Everything depends on the level of <mlink to="technology">technology</mlink> each player involved has.
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,29 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Communications</title>
<section id="com_intro" title="Introduction">
There are two major means of communication in LegacyWorlds: a messaging system and forums. These allow you to keep in touch with other players both inside your own alliance and outside of it.
</section>
<section id="com_page" title="Communications Overview Page" linkto="communications_page">
This page sums up your current status towards the messaging system and the forums. It allows to see at a glance where to read and where you attention is needed when things come to communications. This manual page describes the contents of this page.
</section>
<section id="com_msg" title="Messaging System" linkto="messages">
The Messaging System in Legacy Worlds is very similar to a simple mail client. It allows for folder creation to manage and store messages and offers a linear or threaded view of messages. In the bottom left part of the messaging system pages there is a link that allows you to switch to the forums. The various features are described in more details in the Messaging System section of the manual.
</section>
<section id="com_for" title="Forums" linkto="forums">
Those forums are very similar to those you might find in any message board.
There are several categories of forums:<ul>
<li>Legacy Worlds Forums:- these are used by the staff to make announcements and by layers to report bugs and ask for new features.</li>
<li>General Forums:- these are used for general discussions about the game and beyond.</li>
<li>Legacy Worlds - Public beta 5:- these are public forums which are specific for Beta 5. They include alliance recruitment forums and such.</li>
<li>Alliance specific Forums:- these are the forums of each individual alliance. Their name correspond to the alliance name.</li>
</ul>
Forum features and forum categories are described more precisely in the Forums section of the manual.
</section>
<section file="communications_page.lwdoc"/>
<section file="messages.lwdoc"/>
<section file="forums.lwdoc"/>
</lwdoc>

View file

@ -0,0 +1,55 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Communications Overview Page</title>
<section id="comp_intro" title="Introduction">
This page sums up your current status towards the messaging system and the forums. It allows to see at a glance where to read and where you attention is needed when things come to communications. This manual page describes the contents of this page.
<br/>
This page in split in two sections:<ul>
<li>Private Messages: this left part of the page presents an overview of the status of your messaging system</li>
<li>Forums: this right part of the part provides a summary about both general and alliance forums</li>
</ul>
The next parts of the manual page will describe each.
</section>
<section id="comp_msg" title="Private Messages">
<section id="comp_msg_intro" title="Introduction">
This left part of the page presents data related to the messaging system.
<br/>
It first of all provides a Compose a Message which directs you to the message edition form where you can write a private message to send to either a player, a planet, or an alliance diplomatic staff.
<br/>
The next two sections of the page will be described in the next paragraphs.
</section>
<section id="comp_msg_def" title="Default Folders">
This part of the page presents the list of the three default folders that are available for all accounts:<ul>
<li>Inbox</li>
<li>Internal Transmissions</li>
<li>Outbox</li>
</ul>
For each of those folder, the name of the folder is the link to the contents of the folder.
<br/>
Next to the folder name, the total number of message contained in the folder is displayed. If unread messages are located in one folder, the number of unread messages is presented between brackets.
</section>
<section id="comp_msg_cus" title="Custom Folders">
This part of the page present the list of all the custom folders you have created, if any. For each of those folder, the name of the folder is the link to the contents of the folder.
<br/>
Next to the folder name, the total number of message contained in the folder is displayed. If unread messages are located in one folder, the number of unread messages is presented between brackets.
<br/>
Below the list of custom folders a Manage Custom folders link directs you to the folder management page.
</section>
</section>
<section id="comp_for" title="Forums">
<section id="comp_for_lists" title="List">
The right part of the page presents a list of all available forums. This list is split into two sections:<ul>
<li>General forums: those forums are available to all players. They are organised in categories that are also displayed in the list</li>
<li>Alliance forums: if you're a member of an alliance and the leadership of the alliance has created forums, the forums you have access to are listed here. Only specific members of the alliance have access to each alliance forum, depending on the access rules set up on the alliance forum management page.</li>
</ul>
</section>
<section id="comp_for_dat" title="Displayed data">
For each forum or forum category in the list, the name is the a link to the forum page of this particular forum or forum category.
<br/>
Along the name is displayed the number of topics or threads in the forum. If there are unread topics, the number of unread threads is displayed after the number of topics between brackets.
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,34 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Diplomacy</title>
<section id="diplo_intro" title="Introduction">
Diplomacy covers a lot of concepts concerning in game interactions of players outside of the direct communication means. The major element is the alliance system which allows players to build up teams. The diplomatic section of the game allows you also to manage list of enemy and trusted players. Diplomacy is also a way to acquire technologies you can't research on your own and to exchange planets and fleets through the marketplace. The main Diplomacy page provides an overview of all these topics.
</section>
<section id="diplo_page" title="Main Diplomacy Page" linkto="diplomacy_page">
This page provides an overview of your alliance if your part of one along with an overview of your allies and enemies and of your messaged. It includes shortcuts for the major elements in this area. The different sections of the page are the topic of the corresponding manual section.
</section>
<section id="diplo_alliance" title="Alliance" linkto="alliance">
An alliance is a group of players who have decided to team up and work together to be stronger in the game. Alliance related topics are detailed in the Alliance section of the manual.
</section>
<section id="diplo_enem" title="Enemies" linkto="enemies">
This page allows you to keep a list of enemy players and alliance. This topic is discussed in more details in the Enemies manual section.
</section>
<section id="diplo_tall" title="Trusted allies" linkto="allies.lwdoc">
In Legacy Worlds you can entrust other players with control of your fleets while you're not online. This page is presented in the manual in the Trusted Allies section.
</section>
<section id="diplo_res" title="Research exchanges" linkto="tech_exchange">
As the complete technological tree isn't available to one given player, you'll have to acquire some technologies from other players through diplomatic exchanges in order to obtain technologies you don't have access to. This feature is the topic of this manual section.
</section>
<section id="diplo_market" title="Marketplace">
They might not be diplomatic relations per se but economic relations might be considered as a first step towards establishing more solid agreements. As such the marketplace is the place where you can buy or accept and sell or give fleets and planets in LegacyWorlds.
</section>
<section file="diplomacy_page.lwdoc"/>
<section file="alliance.lwdoc"/>
<section file="enemies.lwdoc"/>
<section file="allies.lwdoc"/>
<section file="tech_exchange.lwdoc"/>
<section file="marketplace.lwdoc"/>
</lwdoc>

View file

@ -0,0 +1,29 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Main Diplomacy Page</title>
<section id="dpage_intro" title="Introduction">
This page provides an overview of your alliance if your part of one along with an overview of your allies and enemies and of your messaged. It includes shortcuts for the major elements in this area. The different sections of the page are the topic of the next paragraphs.
</section>
<section id="dpage_alliance" title="Alliance">
This overview provides a reminder of the alliance tag and name, its number of planets and coordinates, its rank and number of points. It also displays you status inside the alliance and a link to the alliance management page.
<br/>
It also includes a section about alliance specific forums. It lists them with links to each forum and number of threads in each.
</section>
<section id="dpage_allen" title="Allies and Enemies">
This overview presents the number of players that:<ul>
<li>you have in your trusted allies list</li>
<li>have you in their trusted allies list</li>
<li>you have on your enemies list</li>
</ul>
This section also provides links to allies and enemies management pages.
</section>
<section id="dpage_mess" title="Private Messages">
This section provides an overview of your messaging system including:<ul>
<li>Messages: total number of messages you have with a number of new ones; this title is a link to the message page</li>
<li>Internal Transmission: total number of internal transmissions you have with a number of new ones; this title is a link to the internal transmission folder</li>
<li>A link to the Compose a message page</li>
</ul>
</section>
</lwdoc>

View file

@ -0,0 +1,272 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Empire</title>
<section id="emp_into" title="Introduction">
Your <i>empire</i> is composed of a set of <mlink to="planets">planets</mlink>. Starting at first with one it will grow through <mlink to="battles">conquest</mlink> of uninhabited planets or enemy ones. The overall <mlink to="technology">technological advance</mlink> of your empire can be improved through <mlink to="technology">>research</mlink>. The <mlink to="fleets">fleets</mlink> you build will provide it with <i>defenses</i> against hostiles and help with its <mlink to="battles">expansion</mlink>. Of course all of this costs <mlink to="money">money</mlink>.
<br/>
In order to manage your <i>empire</i> you have to understand a set of <mlink to="emp_conc">basic concepts</mlink> that are discribed in the next section of this manual page.
<br/>
The last section introduces the set of <mlink to="emp_page">game pages</mlink> that allow <i>empire management</i> in game and provides links to manual sections discribing those pages more precisely.
</section>
<section id="emp_conc" title="Basic Concepts">
<section id="emp_conc_plan" title="Planets">
<section id="emp_conc_plan_intro" title="Introduction">
The individual elements composing your <i>empire</i> are <mlink to="planets">planets</mlink>. Those <mlink to="planets">planets</mlink> are identified by a <i>name</i> and are located at a specific <mlink to="maps">set of coordinates</mlink> in the galaxy in which the game take place. At the beginning of the <mlink to="accga_gm">game</mlink> you are provided with a single <mlink to="planet">planet</mlink>.
</section>
<section id="emp_conc_plan_acqu" title="Acquiring new planets">
It is up to you to get your <i>empire growing</i> by <mlink to="battle_ownchange">conquering</mlink> or <mlink to="market_buy">buying</mlink> other <mlink to="planets">planets</mlink>. Those <mlink to="planets">planets</mlink> are either considered <i>neutral</i> (they aren't owned by any real player) or they might <i>belong to another player</i>. In order to <mlink to="battle_ownchange">conquer another planet</mlink> you have to <mlink to="fleets_moving.lwdoc">send fleets</mlink> to that <mlink to="planet">planet</mlink> in sufficient quantity to <i>destroy its defenses</i>. Your <mlink to="fleets">fleets</mlink> also have to include a sufficient amount of <mlink to="ship_cat_ga">GA ships to control its population</mlink> so that it joins your <i>empire</i>.
<br/>
In order to <mlink to="buy_pub_buy_plan">buy a planet</mlink> you have to look at the <mlink to="marketplace">marketplace</mlink> and make a tempting enough offer so that its current owner agrees to sell it to you.
<br/>
Your friends can also <mlink to="buy_dir">give you planets</mlink>.
</section>
</section>
<section id="emp_conc_pop" title="Population">
<section id="emp_conc_pop_intro" title="Introduction">
What makes <i>great empires</i> is their <i>citizens</i>. The <i>population</i> of a given <mlink to="planet">planet</mlink> represents the <i>number of inhabitants</i> of the <mlink to="planet">planet</mlink>. The <i>population size</i> of a <mlink to="planet">planet</mlink> has an influence on the <mlink to="money">base income</mlink> of the <mlink to="planet">planet</mlink> and its <mlink to="emp_conc_happ">happiness</mlink>.
</section>
<section id="emp_conc_pop_grow" title="Population growth">
<i>Population growth</i> is essential: the more population the more <mlink to="emp_conc_fact">factories</mlink> and <mlink to="ship_cat">turrets</mlink> you can build without facing an <mlink to="emp_conc_happ">happiness decrease</mlink>. Each <mlink to="planet">planet</mlink>'s <i>population increases</i> every <mlink to="ticks_tick">day tick</mlink>.
<br/>
The population increase <i>calculation</i> is influenced by several factors including:<ul>
<li>the <mlink to="emp_conc_happ">planet's happiness</mlink></li>
<li>the <mlink to="emp_conc_pop_lim">maximum population the planet can hold</mlink></li>
<li><mlink to="technology">technologies</mlink> you possess</li>
</ul>
The following <mlink to="tech_list">technologies and laws</mlink> have an influence on <i>population growth</i>:<ul>
<li><mlink to="tech_10">Advanced Hospitals</mlink></li>
<li><mlink to="tech_33">Corpse Reanimation</mlink></li>
<li><mlink to="tech_34">Forced Human Cloning</mlink></li>
<li><mlink to="tech_30">Nurishment Purification</mlink></li>
</ul>
</section>
<section id="emp_conc_pop_lim" title="Population limit">
The <i>population</i> a given <mlink to="planet">planet</mlink> can hold is <i>limited</i>. The limit is <i>flexible around a fixed value</i>. At first the <i>maximum population</i> of a <mlink to="planet">planet</mlink> is <i>around 10,000</i> population units. <mlink to="technology">Technologies</mlink> can <i>increase</i> this value. Each <mlink to="tech_list">technology</mlink> increasing the maximum population size of a planet <i>adds around 10,000</i> to the limit. Those <mlink to="tech_list">technologies are</mlink>:<ul>
<li><mlink to="tech_35">Arcologies</mlink></li>
<li><mlink to="tech_83">Self-sustained Arcologies</mlink></li>
<li><mlink to="tech_73">Singularity Housing</mlink></li>
</ul>
Since there are 3 <mlink to="technology">technologies</mlink>, the <i>ultimate limit</i> lies <i>around 40,000</i>.
</section>
</section>
<section id="emp_conc_happ" title="Happiness">
<section id="emp_conc_happ_intro" title="Introduction">
One major factor in LegacyWorlds is <i>happiness</i>. It reflect the overall satisfaction of your citizens. Be careful to keep them happy or they might <mlink to="emp_conc_revo">revolt</mlink>. Just as <mlink to="emp_conc_pop_grow">population growth</mlink> and <mlink to="emp_conc_pop_lim">maximum size</mlink>, <i>happiness</i> is influenced by <i>several factors</i>, that are presented in the floowing paragraphs of the manual.
</section>
<section id="emp_conc_happ_plan" title="Total number of planets">
Citizens like when the <i>attention of their leader</i> is focused on them and solely on them. As the consequence, the <i>happiness</i> on each <mlink to="planet">planet</mlink> will <i>decrease as your empire grows</i>. The <i>more planets</i> you have in your empire the <i>harder</i> it will be too keep a high happiness. Theoritically the <i>happiest empire</i> would be one composed of a <i>single planet</i>.
</section>
<section id="emp_conc_happ_fact" title="Number of factories">
People don't like to be unemployed but they don't want to be overworked either. Therefore the <i>number</i> of <mlink to="emp_conc_fact">factories</mlink> on your <mlink to="planets">planets</mlink> has to be monitored. Up to one certain number of <mlink to="emp_conc_fact">factories</mlink> <i>happiness</i> will <i>increase</i>, but if you <i>add more</i> it will start to <i>decrease</i>. The <i>"ideal"</i> number of <mlink to="emp_conc_fact">factories</mlink> depends on the planet's <mlink to="emp_conc_pop">population</mlink>.
</section>
<section id="emp_conc_happ_turr" title="Number of turrets">
People like to feel safe but they don't enjoy a police state. As a consequence the <i>amount of turrets</i> has also to be right depending on the planet <mlink to="emp_conc_pop">population</mlink>. Just like with <mlink to="emp_conc_fact">factories</mlink> increasing the number of <i>turrets</i> on one <mlink to="planet">planet</mlink> will <i>increase its happiness</i> up to a point where it will <i>start having a negative effect</i>. The <i>"ideal" number of turrets</i> also depends on the planet's <mlink to="emp_conc_pop">population</mlink>.
</section>
<section id="emp_conc_happ_flee" title="Fleets">
Both your <i>total amount</i> of <mlink to="fleets">fleets</mlink> and the <i>size</i> of the <mlink to="fleets">fleet</mlink> stationned on one <mlink to="planet">planet</mlink> have an influence on <i>happiness</i>:<ul>
<li><i>Total fleet size</i>: your total fleet size is <i>compared to the average total fleet size</i> in your protection zone. If it is <i>higher</i> you get a happiness <i>bonus</i>, and a <i>malus</i> if it's <i>lower</i>.</li>
<li><i>Fleet stationned on a planet</i>: having a fleet stationned on a planet also <i>increases its happiness</i>. This <i>happiness bonus</i> is linked to the <i>percentage of your total fleet</i> that is stationned on that particular <mlink to="planet">planet</mlink></li>
</ul>
</section>
<section id="emp_conc_happ_tech" title="Technologies and laws">
<mlink to="tech_topic_stat">Technologies</mlink> you possess and <mlink to="tech_law">laws</mlink> you have enacted (or revoked) might also have an influence on <i>happiness</i>. Some increase happiness and other decrease it.
<br/>
<mlink to="technology">Technologies and laws</mlink> <i>increasing happiness</i> are:<ul>
<li><mlink to="tech_18">Advanced Communications</mlink></li>
<li><mlink to="tech_56">Ban Biological Drones</mlink></li>
<li><mlink to="tech_32">Biosphere Protection Pact</mlink></li>
<li><mlink to="tech_59">Civilian Communication Act</mlink></li>
<li><mlink to="tech_7">Civilian Transportation Act</mlink></li>
<li><mlink to="tech_31">Green Production</mlink></li>
<li><mlink to="tech_13">Legalize Space Weed</mlink></li>
<li><mlink to="tech_12">Safe Recreational Drugs</mlink></li>
<li><mlink to="tech_81">Wormholes</mlink></li>
</ul>
<mlink to="technology">Technologies and laws</mlink> <i>decreasing happiness</i> are:<ul>
<li><mlink to="tech_55">Biological Drones</mlink></li>
<li><mlink to="tech_34">Forced Human Cloning</mlink></li>
<li><mlink to="tech_69">Global Defense Bill</mlink></li>
<li><mlink to="tech_5">Martial law</mlink></li>
<li><mlink to="tech_76">Wild Capitalism</mlink></li>
<li><mlink to="tech_87">Wormhole Lockdown</mlink></li>
</ul>
</section>
<section id="emp_conc_happ_gam" title="Game actions">
Several decisions you might make in game might have an effect on the overall <i>happiness</i> of your <i>empire</i>, such as:<ul>
<li><i>Destroying a planet</i> with a <mlink to="tech_88">WormHole SuperNova</mlink> <i>decreases the happiness</i> of <i>all</i> the remaning planets of the empire</li>
<li><mlink to="market_sell">Giving away / selling planets</mlink> <i>decreases the happiness</i> of <i>all</i> your remaining planets</li>
</ul>
In those cases an happiness <i>malus</i> is applied <i>immediately</i> following the game action. This <i>malus decreases slowly over time</i> until the situation goes back to normal.
</section>
</section>
<section id="emp_conc_revo" title="Revolt">
<section id="emp_conc_revo_intro" title="Introduction">
When a <mlink to="planet">planet</mlink>'s <mlink to="emp_conc_happ">happiness</mlink> gets <i>too low</i>, there is a high <i>probability</i> the <mlink to="emp_conc_pop">population</mlink> might <i>revolt</i>. When citizens <i>revolt</i> on a given <mlink to="planet">planet</mlink>, they go on <i>strike</i> and stop working in <mlink to="emp_conc_fact">factories</mlink>, <i>riots</i> occure and <i>material destruction</i> have to be deplored.
</section>
<section id="emp_conc_revo_cond" title="Revolt conditions">
When the <mlink to="emp_conc_happ">happiness</mlink> of a <mlink to="planet">planet</mlink> gets <i>below 20%</i>, the planet gets in a status where a <i>revolt is possible</i>. The <i>lower the happiness</i> the <i>higher the probability</i> a revolt could occure.
<br/>
Each <mlink to="ticks_tick">hour tick</mlink> the <mlink to="planet">planet</mlink> is tested for <i>revolt</i> and in some cases the <i>revolt</i> actually happens. The event is more likely if the revolt probability is high that is to say if the <mlink to="emp_conc_happ">happiness</mlink> is very low.
</section>
<section id="emp_conc_revo_outcome" title="Outcome of a revolt">
What does it mean that a <mlink to="planet">planet</mlink> is revolting? It means that the citizens are quite unhappy with the way they are governed and that they express it. They go on <i>strike</i> and stop working in the <mlink to="emp_conc_fact">factories</mlink>. <mlink to="mon_ppl">No income</mlink> gets out of <mlink to="emp_conc_fact_ind">industrial factories</mlink> and <mlink to="emp_conc_fact_mil">military factories</mlink>' <i>production is halted</i>. They also <i>riot</i> which causes <i>material destructions</i>: <mlink to="ship_cat">turrets</mlink> and <mlink to="emp_conc_fact">factories</mlink> are their targets and their <i>number decreases</i>.
<br/>
<i>Destroying</i> <mlink to="emp_conc_fact">factories</mlink> and <mlink to="ship_cat">turrets</mlink> changes the <mlink to="emp_conc_happ">happiness</mlink> value of the <mlink to="planet">planet</mlink>. With luck, a single <i>revolt</i> episode might get the <mlink to="planet">planet</mlink>'s <mlink to="emp_conc_happ">happiness</mlink> above 20%. If not there is still a probability it will <i>revolt</i> each <mlink to="ticks_tick">hour tick</mlink> until the situation is corrected.
</section>
</section>
<section id="emp_conc_cor" title="Corruption">
<section id="emp_conc_cor_intro" title="Introduction">
As in every society, when a <mlink to="planet">planet</mlink> has been run by the same government for some time, a <i>corruption system</i>> starts appearing. People resort to bribery to gain an advantage over other people, individuals use goverment money to achieve their own personal goals.
</section>
<section id="emp_conc_cor_inc" title="Corruption increase">
In LegacyWorlds, each new <mlink to="planet">planet starts</mlink> with a <i>corruption level of 0%</i>. As soon as it get into the <i>control of a player</i> corruption level <i>starts rising</i>. The <i>rate of increase</i> is linked to the number of <mlink to="emp_conc_fact">factories</mlink> on the <mlink to="planet">planet</mlink>: the <i>more</i> <mlink to="emp_conc_fact">factories</mlink> the <i>faster it grows</i>. As soon as the <i>corruption</i> level of a <mlink to="planet">planet</mlink> reaches <i>10%</i>, the <mlink to="emp_conc_fact">factories</mlink> on the <mlink to="planet">planet</mlink> start <i>losing efficiency</i>: <mlink to="mon_ppl">income</mlink> is reduced and <mlink to="emp_conc_fact_mil">military factories</mlink> build <i>slowlier</i> as government officials use public money and factory workers to build swimming pools in their gardens.
</section>
<section id="emp_conc_cor_dec" title="Corruption decrease">
A <mlink to="planet">planet</mlink> with a high <i>corruption</i> level can see its <i>corruption level decrease</i> if it remains <i>neutral for some time</i>. The only option to restore a planet to a decent corruption level is to <i>abandon it and wait</i>.
</section>
</section>
<section id="emp_conc_fact" title="Factories">
<section id="emp_conc_fact_intro" title="Introduction">
Two kinds of <i>factories</i> are available:<ul>
<li><mlink to="emp_conc_fact_ind">Industrial factories</mlink> contribute to you empire's <mlink to="mon_ppl">income</mlink></li>
<li><mlink to="emp_conc_fact_mil">Military factories</mlink> allow to <mlink to="ipp_own_bw">build warefare</mlink></li>
</ul>
<mlink to="technology">Technologies</mlink> have an influence on <mlink to="emp_conc_fact_tech">factories productivity and production</mlink>. This manual section will cover all those topics.
</section>
<section id="emp_conc_fact_ind" title="Industrial factories">
<i>Industrial factories</i> produces goods from raw materials. Those goods are sold within the empire and beyond its borders, which generates <mlink to="money">money</mlink>. As a consequence the <i>more industrial factories</i> you have the <i>more money</i> you make. But there are workers in factories and they won't be too happy to have to work 3 jobs to get the planetary economy running. So there is a <i>limit</i> to the number of factories you can build without risking a <mlink to="emp_conc_revo">revolt</mlink>.
<br/>
<i>Industrial factories</i> can be built from the <mlink to="ipp_own_if">individual page</mlink> of each planet you own on from the <mlink to="pop_qb">quick builder</mlink> facility on the <mlink to="planets">planets page</mlink>.
</section>
<section id="emp_conc_fact_mil" title="Military factories">
<i>Military factories</i> are specialised factories producing <mlink to="ship_cat">ships and turrets</mlink>. The <i>speed</i> at wich items are built depends on the <i>number of military factories</i> on the <mlink to="planet">planet</mlink>. The <i>more factories</i> you have the <i>faster</i> it will go. But there are workers in factories and they won't be too happy to have to work 3 jobs to get the planetary weapon industry. So there is a <i>limit</i> to the number of factories you can build without risking a <mlink to="emp_conc_revo">revolt</mlink>.
<br/>
<i>Military factories</i> can be built from the <mlink to="ipp_own_if">individual page</mlink> of each planet you own on from the <mlink to="pop_qb">quick builder</mlink> facility on the <mlink to="planets">planets page</mlink>.
<br/>
The items <i>available</i> for construction in <i>military factories</i> depend on the <mlink to="technology">technologies</mlink> you possess. The following <mlink to="tech_list">technologies</mlink> provide you with new <mlink to="ship_cat">ships categories</mlink> to build:<ul>
<li><mlink to="tech_63">Battle Cruisers</mlink></li>
<li><mlink to="tech_6">Cruisers</mlink></li>
<li><mlink to="tech_1">Fighters</mlink></li>
</ul>
</section>
<section id="emp_conc_fact_tech" title="Technological influence on factories">
Several <mlink to="technology">technologies and laws</mlink> have either a positive or negative <i>influence on factories productivity</i>. They can either affect <i>only industrial</i> factories or <i>only military</i> factories or <i>both</i>.
<br/>
<mlink to="tech_list">Technologies and laws</mlink> increasing productivity are:<ul>
<li><mlink to="tech_37">Adaptive Materials</mlink></li>
<li><mlink to="tech_78">Anti-matter Generators</mlink></li>
<li><mlink to="tech_75">Automated Factories</mlink></li>
<li><mlink to="tech_4">Bio-engineering</mlink></li>
<li><mlink to="tech_55">Biological Drones</mlink></li>
<li><mlink to="tech_29">Cloning Vats</mlink></li>
<li><mlink to="tech_69">Global Defense Bill</mlink></li>
<li><mlink to="tech_24">Hardened Alloys</mlink></li>
<li><mlink to="tech_74">Intelligent Materials</mlink></li>
<li><mlink to="tech_5">Martial law</mlink></li>
<li><mlink to="tech_9">Nanotechnologies</mlink></li>
<li><mlink to="tech_36">Robotics</mlink></li>
<li><mlink to="tech_8">Room Temperature Superconductors</mlink></li>
<li><mlink to="tech_53">Self-healing Materials</mlink></li>
<li><mlink to="tech_76">Wild Capitalism</mlink></li>
<li><mlink to="tech_87">Wormhole Lockdown</mlink></li>
</ul>
<mlink to="tech_list">Technologies and laws</mlink> decreasing productivity are:<ul>
<li><mlink to="tech_56">Ban Biological Drones</mlink></li>
<li><mlink to="tech_32">Biosphere Protection Pact</mlink></li>
<li><mlink to="tech_69">Global Defense Bill</mlink></li>
<li><mlink to="tech_31">Green Production</mlink></li>
<li><mlink to="tech_23">Increased Research Grants</mlink></li>
<li><mlink to="tech_13">Legalize Space Weed</mlink></li>
<li><mlink to="tech_5">Martial law</mlink></li>
<li><mlink to="tech_43">Science Golden Age</mlink></li>
<li><mlink to="tech_76">Wild Capitalism</mlink></li>
<li><mlink to="tech_81">Wormholes</mlink></li>
</ul>
</section>
</section>
<section id="emp_conc_res" title="Research">
<section id="emp_conc_res_intro" title="Introduction">
At first your <i>empire</i> possesses a few <i>basic technologies</i> that allow for space travel and production. But in order to progress in the game you have to <i>acquire new technologies</i>, either by <mlink to="tech_topic_stat">researching them</mlink> inside your empire or by <mlink to="tech_exchange">diplomatic exchanges</mlink>.
</section>
<section id="emp_conc_res_out" title="Research output">
Each <mlink to="ticks_tick">day tick</mlink> the <mlink to="planets">planets</mlink> in your <i>empire</i> generate a certain amount of <i>research points</i>. This <i>research output</i> is linked to the <mlink to="planets">planets</mlink>' <mlink to="emp_conc_pop">population</mlink>. The number of points generated for each population unit can be modified by <mlink to="tech_list">technologies and laws</mlink> such as:<ul>
<li><mlink to="tech_42">Biological Computers</mlink> (increase)</li>
<li><mlink to="tech_23">Increased Research Grants</mlink> (increase)</li>
<li><mlink to="tech_62">Interstellar University</mlink> (increase)</li>
<li><mlink to="tech_17">Miniaturised Particle Colliders</mlink> (increase)</li>
<li><mlink to="tech_15">Nano-scale Computers</mlink> (increase)</li>
<li><mlink to="tech_20">Quantum Computers</mlink> (increase)</li>
<li><mlink to="tech_43">Science Golden Age</mlink> (increase)</li>
<li><mlink to="tech_76">Wild Capitalism</mlink> (decrease)</li>
</ul>
Those points are then used to research <mlink to="tech_topic_stat">new technologies</mlink> according to your <mlink to="tech_budg">research budget</mlink> as set on the <mlink to="technology">research page</mlink>.
</section>
<section id="emp_conc_res_acq" title="Acquiring technologies">
<mlink to="tech_list">Technologies</mlink> that are in the part of the <mlink to="tech_topic_graph">technology graph</mlink> that <i>you can access</i> get naturally researched using your <i>reseach points</i>.
<br/>
<mlink to="tech_list">Technologies</mlink> that <i>aren't in that part</i> of the <mlink to="tech_topic_graph">graph</mlink> have to be acquired using the <mlink to="tech_exchange">technology exchange</mlink> tool in the <mlink to="tech_exchange">diplomacy section</mlink> of the <mlink to="technology">research page</mlink>. See the <mlink to="tech_exchange">relevant section of the manual</mlink> for more details.
</section>
</section>
<section id="emp_conc_cash" title="Money">
<section id="emp_conc_cash_intro" title="Introduction">
In game <mlink to="money">money</mlink> has nothing to do with real money. It's an <i>imaginary currency</i> even if the sign used correspond to the euro sign (yes, yes, we're europeans...). <mlink to="money">Money</mlink> is the main mean used in LegacyWorlds to acquire items, be it by <mlink to="ipp_own_bw">building</mlink> them or <mlink to="market_buy">from other players</mlink>.
</section>
<section id="emp_conc_cash_make" title="Making money">
There are several ways to gain <mlink to="money">money</mlink>:<ul>
<li>Each <mlink to="planet">planet</mlink> has a <i>base income</i> linked with its <mlink to="emp_conc_pop">population</mlink></li>
<li><mlink to="emp_conc_fact_ind">Industrial factories</mlink> also provide <i>income</i>. See the <mlink to="emp_conc_fact_ind">relevant section</mlink> of the manual to know more about this topic.</li>
<li>You can also <mlink to="market_sell">sell planets and fleets</mlink>, through the <mlink to="marketplace">marketplace</mlink> facility</li>
<li>You can also receive <mlink to="mon_cf">cash donations</mlink> from other players</li>
</ul>
Several <mlink to="tech_list">technologies</mlink> have an influence on your <i>income</i>.
<br/>
Basically all <mlink to="tech_list">technologies</mlink> increasing the productivity of <mlink to="emp_conc_fact_ind">industrial factories</mlink> increase you total <i>income</i>. See the <mlink to="emp_conc_fact">factories</mlink> section of this page to learn more about them.
<br/>
Some other <mlink to="tech_list">technologies</mlink> have a <i>direct influence</i> on your income:<ul>
<li><mlink to="tech_21">Economy Globalisation</mlink> (increase)</li>
<li><mlink to="tech_23">Increased Research Grants</mlink> (decrease)</li>
<li><mlink to="tech_76">Wild Capitalism</mlink> (increase)</li>
</ul>
</section>
<section id="emp_conc_cash_use" title="Using money">
This <mlink to="money">money</mlink> can be used in various means:<ul>
<li><mlink to="money">Money</mlink> is necessary to build <i>planetary improvements</i> like <mlink to="ipp_own_po">factories</mlink> and <mlink to="ship_cat">turrets</mlink>. Each item has a specific <i>cost</i></li>
<li>You also have to buy the <mlink to="ipp_own_bw">ships you build</mlink>. Each <mlink to="ship_cat">category of ships</mlink> has a particular <i>price</i>.</li>
<li>In order to <mlink to="tech_topic_stat">implement a new technology</mlink> that you have discovered you have to pay a certain <i>fee</i></li>
<li><mlink to="money">Money</mlink> can also be used to <mlink to="market_buy">buy fleets and planets</mlink> from other players</li>
<li>You can also <mlink to="mon_cf">give money</mlink> to friends</li>
<li>A part of your <mlink to="mon_ppl">income</mlink> is automatically diverted to pay for the upkeep of <mlink to="mon_ppl">factories</mlink>, <mlink to="mon_fue">fleets</mlink> and <mlink to="mon_ppl">turrets</mlink></li>
</ul>
</section>
</section>
</section>
<section id="emp_page" title="Empire pages">
<section id="emp_page_ovp" title="Empire Overview Page" linkto="empire_overview">
This <mlink to="empire_overview">page</mlink> provides you with a status of your <i>empire</i> at a glance along with <i>shortcuts</i> to the most important items you might be interested in viewing. It is split into several sections, providing insights about your <mlink to="planets">planets</mlink>, <mlink to="technology">research progress</mlink>, <mlink to="money">finantial situation</mlink> and <mlink to="fleets">fleets</mlink> status.
</section>
<section id="emp_page_mon" title="Money Page" linkto="money">
This <mlink to="money">page</mlink> provides your with an overview of the <mlink to="money">finantial situation</mlink> of your <i>empire</i>. It is split into several sections that are detailed in a <mlink to="money">specific manual page</mlink>.
</section>
<section id="emp_page_pop" title="Planets Overview Page" linkto="planets">
This <mlink to="planets">page</mlink> provides you with a general overview of all your <mlink to="pop_cp">planets</mlink> at once along with a <mlink to="pop_qb">quick builder facility</mlink>. A link in the top right corner of the page allows to switch between two views:<ul>
<li><mlink to="pop_cp">List of controlled planets only</mlink></li>
<li><mlink to="pop_qb">Quickbuilder facility and list of controlled planets</mlink></li>
</ul>
Each of those two elements are described in other paragraphs of the <mlink to="planets">corresponding manual section</mlink>.
</section>
<section id="emp_page_ipp" title="Individual Planet Page" linkto="planet">
This <mlink to="planet">page</mlink> is the management center for any <mlink to="ipp_own">individual planet</mlink> you own or an <mlink to="ipp_pil">information page for other stellar objects</mlink>.
</section>
<section id="emp_bap" title="Beacons and Probes" linkto="probes">
Some <mlink to="tech_list">technologies</mlink> in game provide you with the ability to build other spatial objects than just <mlink to="fleets">fleets</mlink>: <mlink to="probes">probes and beacons</mlink> are just that and <mlink to="probes">this manual page</mlink> will provide you with all you need to know about them.
</section>
</section>
<section file="empire_overview.lwdoc"/>
<section file="money.lwdoc"/>
<section file="planets.lwdoc"/>
<section file="planet.lwdoc"/>
<section file="probes.lwdoc"/>
</lwdoc>

View file

@ -0,0 +1,68 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Empire Overview Page</title>
<section id="ovp" title="Introduction">
The <i>empire overview page</i> provides you with a status of your <mlink to="empire">empire</mlink> at a glance along with shortcuts to the most important items you might be interested in viewing. It is split into several sections.
</section>
<section id="ovp_pla" title="Planets">
This section provides you with important facts about the <mlink to="planets">planets</mlink> which compose your <mlink to="empire">empire:</mlink><ul>
<li><mlink to="planets">Planets owned</mlink>: number of <mlink to="planets">planets</mlink> in your <mlink to="empire">empire</mlink></li>
<li><mlink to="emp_conc_happ">Average happiness</mlink>: average <mlink to="emp_conc_happ">happiness</mlink> calculated based on <mlink to="emp_conc_happ">happiness</mlink> on each of your <mlink to="planets">planets</mlink></li>
<li><mlink to="emp_conc_cor">Average corruption</mlink>: average <mlink to="emp_conc_cor">corruption</mlink> calculated based on <mlink to="emp_conc_cor">corruption</mlink> on each of your <mlink to="planets">planets</mlink></li>
<li><mlink to="emp_conc_pop">Total population</mlink>: sum of the <mlink to="emp_conc_pop">populations</mlink> of each of your <mlink to="planets">planets</mlink></li>
<li><mlink to="emp_conc_pop">Average population</mlink>: total <mlink to="emp_conc_pop">population</mlink> divided by the number of <mlink to="planets">planets</mlink> in your <mlink to="empire">empire</mlink></li>
<li><mlink to="emp_conc_fact">Total factories</mlink>: total number of <mlink to="emp_conc_fact">factories</mlink> on all your <mlink to="planets">planets</mlink></li>
<li><mlink to="emp_conc_fact">Average factories</mlink>: total number of <mlink to="emp_conc_fact">factories</mlink> divided by the number of <mlink to="planets">planets</mlink> in your <mlink to="empire">empire</mlink></li>
<li><mlink to="ship_cat">Total turrets</mlink>: total number of <mlink to="ship_cat">turrets</mlink> in your <mlink to="empire">empire</mlink></li>
<li><mlink to="ship_cat">Average turrets</mlink>: total number of <mlink to="ship_cat">turrets</mlink> divided by the number of <mlink to="planets">planets</mlink> you own</li>
</ul>
It also provided <i>links</i> to:<ul>
<li>The <mlink to="planets">Planets overview page</mlink></li>
<li><mlink to="planet">Individual planet pages</mlink></li>
</ul>
</section>
<section id="ovp_res" title="Research">
This section provides you with informations about your <mlink to="tech_budg">research budget</mlink>. For each <mlink to="tech_topic_cat">research category</mlink>, it displays the <i>percentage</i> of <i>research points</i> allocated along with the <i>number of points per day</i> this currently represents.
<br/>
It also provided you with a link to the <mlink to="technology">research management page</mlink>.
</section>
<section id="ovp_flt" title="Fleets">
<section id="ovp_flt_intro" title="Introduction">
This section is split into several paragraphs, each presenting one important aspect of your <mlink to="fleets">fleet</mlink> power.
</section>
<section id="ovp_flt_over" title="Overview">
This overview provides a general view of your <mlink to="fleets">fleets</mlink>, including:<ul>
<li><mlink to="ship_cat_pow">Total fleet power</mlink>: sum of the <mlink to="ship_cat_pow">power</mlink> of all the ships you possess</li>
<li><mlink to="mon_fue">Fleet upkeep</mlink>: total <mlink to="mon_fue">cost to sustain</mlink> all your <mlink to="fleets">fleets</mlink></li>
<li><mlink to="fleets">Number of fleets</mlink>: total number of <mlink to="fleets">fleets</mlink></li>
<li><mlink to="battle">Fleets engaged in battle</mlink>: number of <mlink to="fleets">fleets</mlink> currently engaged <mlink to="battle">in combat</mlink> situations</li>
<li><mlink to="fleets_page">View fleets</mlink>: link to the <mlink to="fleets_page">Fleets management page</mlink></li>
</ul>
</section>
<section id="ovp_flt_home" title="Fleets at home">
This section provides specific information about <mlink to="fleets">fleets</mlink> located on your <mlink to="ipp_pil">own planets</mlink>, including:<ul>
<li><mlink to="fleets">Number of fleets</mlink>: total number of <mlink to="fleets">fleets</mlink> located on your <mlink to="ipp_pil">own planets</mlink></li>
<li><mlink to="battle">Fleets engaged in battle</mlink>: total number of <mlink to="fleets">fleets</mlink> engaged <mlink to="battle">in combat</mlink> on your <mlink to="ipp_pil">own planets</mlink></li>
</ul>
</section>
<section id="ovp_flt_oth" title="Other fleets">
This part of the page provides informations about <mlink to="fleets">fleets</mlink> that <i>aren't</i> located <mlink to="ipp_pil">on your own planets</mlink>, including:<ul>
<li><mlink to="fleets">Fleets</mlink> on <mlink to="ipp_pil">foreign planets</mlink>: total number of <mlink to="fleets">fleets</mlink> located on <mlink to="ipp_pil">planets you don't own</mlink></li>
<li><mlink to="battle">Fleets engaged in battle</mlink>: total number of <mlink to="fleets">fleets</mlink> engaged in <mlink to="battle">battle</mlink> on <mlink to="ipp_pil">planets you don't own</mlink></li>
<li><mlink to="fleets_moving">Moving fleets</mlink>: total number of <mlink to="fleets_moving">fleets in movement</mlink></li>
<li><mlink to="fleets">Fleets</mlink> waiting in <mlink to="move_gen_hypnorm">Hyperspace</mlink>: total number of <mlink to="fleets">fleets</mlink> in <mlink to="move_gen_hypnorm">stand-by in hyperspace</mlink></li>
</ul>
</section>
<section id="ovp_flt_stat" title="Statistics">
This section provides important <i>statistics</i> about your <mlink to="fleets">fleets</mlink>, including:<ul>
<li><mlink to="ship_cat">GA ships</mlink>: total number of <mlink to="ship_cat">GA ships</mlink></li>
<li><mlink to="ship_cat">Fighters</mlink>: total number of <mlink to="ship_cat">Fighters</mlink></li>
<li><mlink to="ship_cat">Cruisers</mlink>: total number of <mlink to="ship_cat">Cruisers</mlink></li>
<li><mlink to="ship_cat">Battle cruisers</mlink>: total number of <mlink to="ship_cat">Battle Cruisers</mlink></li>
<li><mlink to="ships">Total ships</mlink>: total number of <mlink to="ships">ships</mlink></li>
</ul>
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,19 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Enemies</title>
<section id="enem_intro" title="Introduction">
This page allows you to keep a list of enemy players and alliance. This has for consequence that each time a fleet belonging to one of your enemy arrives at one of your planets it gets automatically switched to attack mode. Moreover it's impossible for them to switch their fleets to defense mode on your planets.
</section>
<section id="enem_play" title="Player Enemy List">
In this section of the page you can add a new enemy to your list by typing its player name in the textfield and clicking the Add button. The player name get displayed in the list below.
<br/>
A checkbox is displayed before the name of each of the enemy players in your list. Checking those checkboxes make a new button appear. Clicking this Remove selected enemies button allows you to remove the players whose checkbox has be checked from the enemy list.
</section>
<section id="enem_all" title="Alliance Enemy List">
In this section of the page you can add a new enemy to your list by typing its tag in the textfield and clicking the Add button. The alliance tag get displayed in the list below.
<br/>
A checkbox is displayed before the name of each of the enemy tags in your list. Checking those checkboxes make a new button appear. Clicking this Remove selected enemies button allows you to remove the alliances whose checkbox has be checked from the enemy list.
</section>
</lwdoc>

View file

@ -0,0 +1,44 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Fleets</title>
<section id="fleet_intro" title="Introduction">
<i>Fleets</i> are one of the <i>major elements in LegacyWorlds</i>, since they allow you to <mlink to="fleets_moving">travel the universe</mlink>, <mlink to="battle_ownchange">conquer new planets</mlink> and <i>defend yourself</i> against enemies.
<i>Fleets</i> are sets of <mlink to="ships">ships</mlink> you can use either to <mlink to="battles">>defend yourself</mlink> or <mlink to="battles">attack other planets</mlink>. Each <i>fleet</i> can be composed of <mlink to="ships">ships</mlink> of several <mlink to="ship_cat_list">different categories</mlink>. Those <i>fleets</i> can be <mlink to="fleets_moving">moved from planet to planet</mlink> according to a particular <mlink to="move_gen_compute">set of rules</mlink>. When faced with <i>enemy fleets</i> they of course engage in <mlink to="battles">battle</mlink>.
<br/>
In order to have <i>fleets</i> you first of all have to possess the required <mlink to="tech_list">technologies</mlink>. You also have to <mlink to="emp_conc_fact_mil">build them</mlink>.
<br/>
Fleets building is covered more precisely in the following manual sections:<ul>
<li><mlink to="emp_conc_fact_mil">Military factories section of the empire manual page</mlink></li>
<li><mlink to="ipp_own_bw">Building warefare section of the individual planet page manual page</mlink></li>
<li><mlink to="pop_qb">Quickbuilder section of the planets overview manual page</mlink></li>
</ul>
<br/>
<i>Fleets</i> being <i>one of the major concepts to grasp in LegacyWorlds</i>, various <i>fleets related topics</i> will be studied in more details in <i>different subsections of the manual</i>. Those subsections are presented in the next paragraph.
</section>
<section id="fleet_sec" title="Fleets related topics">
<section id="flect_sec_ship" title="Ships" linkto="ships">
<i>Fleets</i> are composed of <mlink to="ships">ships</mlink>. It sounds only natural to start with <mlink to="ships">ships</mlink>. This section of the manual will present all topics linked with <mlink to="ship_cat">ships categories</mlink> and <i>caracteristics</i>.
</section>
<section id="fleet_sec_over" title="Fleets page" linkto="fleets_page">
The <mlink to="fleets_page">Fleets page</mlink> is the main entry point to <i>manage fleets</i>. This part of the manual will present this page more deeply. The <mlink to="fleets_page">fleet page</mlink> consists in three different sections:<ul>
<li><mlink to="fp_filter">Top part</mlink>: it includes a set of <mlink to="fp_filter">filters</mlink></li>
<li><mlink to="fp_list">Middle Part</mlink>: it's the actual <mlink to="fp_list">fleets list</mlink>. It's either a complete list or the result of the choices you've made with the <mlink to="fp_filter">filters</mlink></li>
<li><mlink to="fleets_actions">Bottom Part</mlink>: it's the <mlink to="fleets_actions">Action section</mlink> of the <mlink to="fleets_page">fleet page</mlink>, where you can actually act on the fleets.</li>
</ul>
The <mlink to="fleets_page">fleets page manual section</mlink> will describe each part of the page.
</section>
<section id="fleet_sec_act" title="Fleets Actions" linkto="fleets_actions">
Once you have <i>selected at least one fleet</i> in the <mlink to="fp_list">fleets list</mlink> of the <mlink to="fleets_page">fleets page</mlink>, a list of links, corresponding to <i>different actions you can perform with the fleets, is displayed</i>. This list include a selection among the total list of possible actions, depending on the circumstances. Those <mlink to="fleets_actions">actions</mlink> will be presented in the <mlink to="fleets_actions">Fleets actions</mlink> part of the manual.
</section>
<section id="fleet_sec_battle" title="Battles" linkto="battles">
The main goal of <i>fleets</i> is, obviously, to <mlink to="battles">fight</mlink>. The different <i>rules surrounding the battle</i> is the topic of the <mlink to="battles">Battles section</mlink> of the manual.
</section>
</section>
<section file="ships.lwdoc"/>
<section file="fleets_page.lwdoc"/>
<section file="fleets_actions.lwdoc"/>
<section file="battles.lwdoc"/>
</lwdoc>

View file

@ -0,0 +1,37 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Fleets Actions</title>
<section id="fa_intro" title="Introduction">
Once you have <i>selected at least one fleet</i> in the <mlink to="fp_list">fleets list</mlink>, a <i>list of links</i>, corresponding to <i>different actions</i> you can perform with the fleets, is <i>displayed at the bottom</i> of the <mlink to="fleets_page">fleets page</mlink>. This list include a <i>selection among the total list of possible actions</i>, depending on the circumstances.
</section>
<section id="fa_act_clear" title="Clear selection">
Once you have <i>selected a set of fleets</i> with the corresponding checkboxes, you may want to <i>unselect them all at once</i> without having to <i>click on all the checkboxes</i> one at a time. This feature does just that: click on this link to <i>unselect all selected fleets</i>.
</section>
<section id="fa_act_rename" title="Rename">
Clicking on this link <i>opens an alert window</i> where you can <i>type in a new name</i> for the fleet and <i>change it</i>. if <i>several fleets are selected</i> all selected fleets will be <i>renamed with the new name</i>.
</section>
<section id="fa_act_mov" title="Change orders" linkto="fleets_moving">
Clicking on this link directs you to a <mlink to="leets_moving">new page</mlink> where you can <mlink to="leets_moving">manage the movements of the selected fleets</mlink>. This topic is described more thoroughly in the <mlink to="leets_moving">fleets movements section</mlink> of the manual.
</section>
<section id="fa_act_split" title="Split" linkto="fleets_splitting">
Clicking on this link directs you to a <mlink to="fleets_splitting">new page</mlink> where you can define how to <mlink to="fleets_splitting">split the fleet</mlink>. This topic is described more closely in the <mlink to="fleets_splitting">splitting fleets section</mlink> of the manual.
</section>
<section id="fa_act_merge" title="Merge">
Clicking this link <i>opens an alert box</i> where you can <i>type in the name of the new merged fleet</i> and <i>validation</i> actually <i>merges the fleets</i>.
<br/>
Of course the fleets have to be <i>at the same location</i>. If fleets <i>on several locations</i> are selected, only <i>possible merges are performed</i>.
<br/>
The only other requirement is that <i>all fleets have to be available</i>. For instance you <i>can't merge fleets unavailable</i> because of battle but this action <i>can be performed on moving fleets</i>.
</section>
<section id="fa_act_sell" title="Sell" linkto="sell_put_fleet">
Clicking this link directs you to a <mlink to="sell_put_fleet">fleets sale page</mlink> which is described more closely in the <mlink to="marketplace">marketplace section</mlink> of the manual.
</section>
<section id="fa_act_dis" title="Disband">
Clicking this link <i>opens a confirmation alert box</i>. If you <i>validate</i> the action the <i>selected fleets will disappear</i> from the game.
</section>
<section file="fleets_moving.lwdoc"/>
<section file="fleets_splitting.lwdoc"/>
</lwdoc>

View file

@ -0,0 +1,199 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Fleets Movements</title>
<section id="move_gen" title="General concepts">
<section id="move_gen_hypnorm" title="Hyperspace versus normal space">
<section id="move_gen_hypnorm_intro" title="Introduction">
When coming to <i>fleets movements</i> in LegacyWorlds, <i>two different kinds of "space"</i> have to be considered:<ul>
<li><mlink to="move_gen_hypnorm_norm">normal space</mlink></li>
<li><mlink to="move_gen_hypnorm_hyp">hyperspace</mlink></li>
</ul>
Both types will be covered in the next parapgraphs.
</section>
<section id="move_gen_hypnorm_norm" title="Normal Space">
<i>Normal space</i> can be considered as the <i>"real world" space</i>, where stars, planets and other stellar objects are located. It's the space in which <mlink to="ship_cat_class">system ships</mlink> can travel with their <i>sub-light engines</i>. But <i>moving from one stellar system to another with that kind of engines would take centuries</i> and researchers in LegacyWorlds had to find <i>other means to allow space exploration</i> to be more practical. That's where <mlink to="move_gen_hypnorm_hyp">hyperspace travel</mlink> gets in.
</section>
<section id="move_gen_hypnorm_hyp" title="Hyperspace">
The scientists in the LegacyWorlds <mlink to="universe">universe</mlink> soon realised space could also be apprehended <i>on another plane</i> that they called <i>hyperspace</i>. Hyperspace could be considered as <i>another dimension</i>, adjacent to the real one, where the <i>distances between spatial bodies are significantly distorted</i>. As a consequence, <i>hyperspace travel is much faster than travel in normal space</i>. The main drawbacks are that:<ul>
<li><i>jumping between hyperspace and normal space used tremendous amounts of energy</i> which implies some <i>specialised engines to open hyperspace windows</i></li>
<li>the <i>lay-out of hyperspace is fluctuating</i> and <i>impossible to cartography</i>. As a consequence <i>moving ships</i> following a defined trajectory <i>reach their destination without problem</i>. But <i>ships stationned in hyperspace can derive from their location</i> and lose clear knowlegde of their position and <i>get definitively lost</i>, unless they have a <i>static point of reference</i> in the form of a <mlink to="probes">hyperspace beacon</mlink></li>
</ul>
</section>
</section>
<section id="move_gen_compute" title="Movement computation">
<section id="move_gen_compute_intro" title="Introduction">
<i>Movement computation</i> is the process that allows to define the <i>position of a moving fleet</i>. The <i>exact rules</i> behind this computation include general rules that are valid for all ravel types and others <i>depend on the type of space</i> the fleets are moving in. Rules for all movements, <mlink to="move_gen_compute_norm">normal space</mlink> and <mlink to="move_gen_compute_hyp">hyperspace</mlink> travel are the topics of the next two paragraphs.
</section>
<section id="move_gen_compute_gen" title="General rules">
All <i>space travels</i> are regulated according to <i>those rules</i> along with <i>rules specific to the type of travel</i>. These <i>general rules</i> are listed below:<ul>
<li><i>Movement computation and current position</i> of every moving fleets is <i>calculated every minute</i>. This allows for an <i>almost real time</i> effect of fleets movements</li>
<li>In case of a <i>change in the destination of a fleet</i>, the <i>new trajectory</i> is calculated using its <i>current location as starting point</i></li>
<li>Fleets <i>passing by a planet can't be spotted by its owner</i> unless they get into orbit around the planet</li>
<li><i>Fleets' speed</i> is influenced by the <i>type of objects</i> they pass by: <i>nebulas and planetary remains reduce the speed</i> of <mlink to="ships">ships</mlink> crossing their orbits</li>
</ul>
</section>
<section id="move_gen_compute_norm" title="Normal space travel rules">
<i>Normal space travel</i> is regulated by the <i>following rules</i>:<ul>
<li>Fleets <i>always travel in normal space inside a given stellar system</i> unless the fleet is <i>hyperspace capable</i> and an <i>hyperspace stand-by delay</i> has been set. In such a case the fleets <i>travel in hyperspace</i> but the <i>travel time remains the same</i> as for normal space travel</li>
<li>Between two stellar objects a fleet <i>follows the most direct trajectory between the two</i></li>
<li>The fleet always <i>crosses all the orbits between the two stellar objects</i> (its origin nd its destination). As a consequence moving from the first orbit to the 6th takes much longer than from the first to the second</li>
<li>Travelling <i>from one orbit to the orbit immediately next to it</i> takes <i>12 min</i>. The time to travel between two planets inside the same is then a multiple of 12, the <i>multiplication factor depending on the number of orbits to cross</i></li>
</ul>
</section>
<section id="move_gen_compute_hyp" title="Hyperspace travel rules">
<i>Hyperspace travel</i> is regulated by the <i>following rules</i>:<ul>
<li>When going <i>beyond the limits of a stellar system or a nebula</i>, a fleet has to <i>travel through hyperspace</i>. Fleets that aren't hyperspace capable can't go beyond the limits of a stellar system</li>
<li>When <i>leaving a stellar system</i>, a fleet has to <i>cross all orbits between its starting point and the edges of the system</i> before travelling to the next one</li>
<li>A fleet moving <i>between two stellar systems</i> follows the <i>most direct path to the destination</i> system</li>
<li>When <i>entering its destination system</i> a fleet <i>crosses again the necessary orbits until it reaches its destination planet</i></li>
<li><i>Whatever the origin and destination orbits</i> in the stellar system are <i>the time to go from one system to another is always the same</i></li>
<li><i>Hyperspace travel speed</i> can be increased through <mlink to="technology">technologies</mlink>. This topic is covered in the <mlink to="ship_cat_speed"> ship speed</mlink> of the <mlink to="ships">ships</mlink> section of the manual</li>
</ul>
</section>
</section>
</section>
<section id="move_pract" title="Practial fleet sending">
<section id="move_pract_access" title="Accessing the page">
There are <i>two different means</i> to <i>access the fleets' orders page</i>:<ul>
<li>On the <mlink to="planet">individual page</mlink> of each planet, planetary remains or nebula square, a <i>Send Fleets</i> link is available <i>below the name</i> of the stellar object. <i>Clicking this link</i> directs you to a <i>specific page</i> where you can <i>select the fleets you want to send to that particular location</i> and set up some <i>parameters for the movement</i> of the fleet</li>
<li>On the main <mlink to="fleets_page">fleet page</mlink>, when at least <i>one fleet is selected</i>, a <i>Change orders</i> link is displayed in the bottom <mlink to="fleets_actions">Actions section</mlink> of the page. <i>Clicking this link</i> also directs you to the <i>fleets' order change page</i></li>
</ul>
</section>
<section id="move_pract_order" title="Fleets' orders page">
<section id="move_pract_order_intro" title="Introduction">
The page includes some <i>actions links</i> and <i>three different sections</i>:<ul>
<li><mlink to="move_pract_order_change">New orders</mlink>: to define the <mlink to="move_pract_order_change">orders</mlink> you want the <i>selected fleets to perform</i></li>
<li><mlink to="move_pract_order_selec">Selected fleets</mlink>: this list displays all <mlink to="move_pract_order_selec">fleets selected</mlink> to perform the <mlink to="move_pract_order_change">action</mlink> defined in the <mlink to="move_pract_order_change">New orders</mlink> section</li>
<li><mlink to="move_pract_order_avai">Available fleets</mlink>: this lists includes <i>all fleets you can control</i> (bet it yours or those of your <mlink to="allies">off-line trusted allies</mlink>) which could <mlink to="move_pract_order_change">follow the orders</mlink></li>
</ul>
</section>
<section id="move_pract_order_change" title="Changing orders">
<section id="move_pract_order_change_intro" title="Introduction">
In this part of the page you can define three kinds of orders:<ul>
<li><mlink to="move_pract_order_change_des">Destination</mlink>: to choose where to <i>send the fleet</i></li>
<li><mlink to="move_pract_order_change_hy">Hyperspace stand-by orders</mlink>: to get a fleet to <i>stand-by in hyperspace</i></li>
<li><mlink to="move_pract_order_change_mod">Fleet mode</mlink>: to define the <i>mode</i> the fleet will be in <i>upon arrival</i></li>
</ul>
Each type of order willl be <i>detailed in the next paragraphs</i>.
</section>
<section id="move_pract_order_change_des" title="Destination">
The <i>Destination</i> line first defines the <i>fleet's destination</i> if any has already been set. The destination is <i>preset</i> for instance for <i>moving fleets</i> or when you access the page from the <i>Send Fleets</i> link of an <mlink to="planet">individual stellar object page</mlink>.
<br/>
To <i>change the destination</i> you have to click the <i>Set destination</i> link. You'll get directed to a <i>new page</i> describing <i>current destination</i> if any and providing a <i>destination selection tool</i>. This tool consists in a <i>minimap</i> and <i>several means to change the system</i> it is centered on:<ul>
<li><i>Minimap</i>: this minimap is <i>centered on</i> the system in which is located <i>your first planet</i> and <i>displays one stellar system</i> at a time. <i>Arrows</i> are diplayed around the minimap if the <i>selected fleets are hyperspace capable</i> or if you have hyperspace capable fleets in case no particular fleet is selected yet. Using the <i>arrows around the map</i> allows you to <i>change the focus of the minimap</i> and move around that system</li>
<li><i>Centre on coordinates</i>: you can <i>center the minimap</i> on a particular stellar system <i>based on its coordinates</i>. To do you you have to <i>select the relevant radio button</i> and <i>type the coordinates</i> of the stellar system in the provided <i>textfields</i>. Clicking the <i>Move</i> button <i>centers</i> the map on this system</li>
<li><i>Centre on own/allied planet</i>: you can also <i>center the minimap</i> on one of <mlink to="planets">your own planets</mlink> or one of your <mlink to="allies">trusted allies' planets</mlink>. To do so, select the <i>relevant radio button</i> and <i>choose the planet</i> you're interested in <i>in the drop down list</i>. Clicking the <i>Move</i> button <i>centers the minimap</i> on the system the planet is located in</li>
<li><i>Centre on planet</i>: you can also <i>center the minimap</i> on an stellar body <i>based on its name</i>. In that case select the <i>corresponding radio button</i> and type in the <i>name of the stellar object</i> in the <i>provided textfield</i>. Clicking the <i>Move</i> button <i>centers the minimap</i> on the system the planet is located in</li>
</ul>
Once you have <i>centered the minimap</i> you have to <i>choose the particular stellar object</i> you want to send your fleet to by <i>clicking its name in the minimap</i>. You can now either <i>validate</i> you destination by clicking the <i>Confirm</i> button or <i>cancel</i> your changes by clicking the <i>Cancel</i> button.
</section>
<section id="move_pract_order_change_hyp" title="Hyperspace stand-by orders">
Fleets <i>around a stellar object</i> can either:<ul>
<li><i>orbit it</i> in clear sight <mlink to="move_gen_hypnorm_norm">in normal space</mlink></li>
<li><i>stay</i> in its neighbourhood <mlink to="move_gen_hypnorm_hyp">in hyperspace</mlink></li>
</ul>
The <i>hyperspace stand-by orders</i> line first of all indicates <i>current orders</i>, that is to say <i>for how long</i> a fleet is supposed to <i>stay in hyperspace</i> without moving at its current location or at its destination.
<br/>
A <i>Set delay</i> link allows you to <i>define for how long</i> the fleet should <i>remain in <mlink to="move_gen_hypnorm_hyp">hyperspace</mlink></i> either at its current location or once it has reached its destination. Clicking the <i>Set Delay</i> link opens an <i>alert box</i> where you can type in the <i>number of <mlink to="ticks_tick">hour ticks</mlink></i> the fleet should spend in <mlink to="move_gen_hypnorm_hyp">hyperspace</mlink>. For instance a <i>delay of 1</i> means the fleet has to wait <i>until the next</i> <mlink to="ticks_tick">hour tick</mlink> and so on.
</section>
<section id="move_pract_order_change_mod" title="Fleet mode">
The <i>fleet</i> mode might be considered as the <i><mlink to="battles">battle</mlink> readiness of the fleet</i>. It might also be interpreted as the <i>intention of the fleet</i>: <i>hostile</i> or <i>friendly</i>.
<br/>
There are two different available modes for fleets in LegacyWorlds:<ul>
<li><i>Defense</i>: the fleet will <i>defend the destination</i> stellar object</li>
<li><i>Attack</i>: the fleet will <i>attack the destination</i> stellar object, attempting to <mlink to="battle_ownchange">take it over</mlink> if it's a planet</li>
</ul>
The <i>mode</i> in which the <i>fleet is sent</i> can be <i>changed</i> by using the provided <i>drop down list</i>. You just have to <i>select</i> between <i>Defense</i> and <i>Attack</i> in the list.
<br/>
Keep in mind you <i>can't send a fleet in attack mode to one of your own planets</i> but <i>no control</i> is exerced on <i>fleets sent to <mlink to="alliance">alliance</mlink> planets or planets belonging to your <mlink to="allies">trusted allies</mlink></i>.
<br/>
The <i>mode</i> the fleet will have upon <mlink to="move_arri">arrival at its destination</mlink> <i>isn't necessarily the mode it was sent with</i>. The rules behind this <mlink to="move_arri_mode">mode upon arrival</mlink> topic is discussed more closely in <mlink to="move_arri_mode">this paragraph</mlink>.
</section>
</section>
<section id="move_pract_order_selec" title="Selected fleets">
<section id="move_pract_order_selec_intro" title="Introduction">
This part of the page presents the <i>list of fleets</i> that are <i>selected to perfom the designed movement</i>. It consists in a <mlink to="move_pract_order_selec_lis">table describing each fleet</mlink> using a <mlink to="move_pract_order_selec_col">colour code</mlink> to represent fleets' ownership. <mlink to="move_pract_order_selec_act">Actions</mlink> can also be performed on the list.
</section>
<section id="move_pract_order_selec_lis" title="List contents">
The table includes <i>for each fleet</i>:<ul>
<li><i>Owner</i>: name of the owner of the fleet</li>
<li><i>Name</i>: name of the fleet</li>
<li><i>Haul</i>: fill rate of the haul of <mlink to="ship_cat_class">capital ships</mlink> carrying <mlink to="ship_cat_class">system ships</mlink>. It's either <i>N/A</i> for <i>system fleets</i> or a <i>percentage</i> for <i>fleets including capital ships</i>. Be careful if the <i>percentage isn't superior to 100%</i>: in that case the fleet <i>isn't <mlink to="move_gen_hypnorm">hyperspace</mlink> capable</i></li>
<li><i>Ships (G/F/C/B)</i>: fleet composition, including number of <mlink to="ship_cat_list">GA ships</mlink>, <mlink to="ship_cat_list">Fighters</mlink>, <mlink to="ship_cat_list">Cruisers</mlink> and <mlink to="ship_cat_list">Battle Cruisers</mlink></li>
<li><i>Power</i>: the <mlink to="ship_cat_pow">power</mlink> of the total fleet</li>
<li><i>Trajectory</i>: this field presents the <i>list of locations the fleets will go close by</i> along its path to its destination. For <i>stationnary fleets</i>, the value is <i>N/A</i>. For <i>moving fleets</i>, the trajectory is represented with a <i>drop down list</i> describing current and future status and locations</li>
</ul>
</section>
<section id="move_pract_order_selec_col" title="Colour code">
The <i>usual colour code</i> is used in the list:<ul>
<li><i>Green</i>: for your <i>own fleets</i></li>
<li><i>Blue</i>: for fleets belonging to <i>off-line players</i> who have you as <mlink to="allies">trusted allies</mlink> and that <i>you can currently control</i></li>
</ul>
</section>
<section id="move_pract_order_selec_act" title="List actions">
The only possible action in the list is to <i>remove a fleet</i>. Removing a fleet means that it <i>won't perform the orders</i> as the other fleets in the list. <i>Previous orders</i> for the fleets removed from the list <i>are executed</i>.
<br/>
In order <i>to remove a fleet</i> from the list you just have to <i>click on its line</i>.
</section>
</section>
<section id="move_pract_order_avai" title="Available fleets">
<section id="move_pract_order_avai_intro" title="Introduction">
This part of the page presents the list of fleets that are available for selection to perfom the designed movement. It consists in a <mlink to="move_pract_order_avai_lis">table describing each fleet</mlink> using a <mlink to="move_pract_order_avai_col">colour code</mlink> to represent fleets' ownership. <mlink to="move_pract_order_avai_act">Actions</mlink> can also be performed on the list.
<br/>
The <i>list of fleets</i> depends on the <i>set destination</i>. For instance <i>fleets that aren't hyperspace capable</i> aren't displayed if the defined destination implies <mlink to="move_gen_hypnorm">hyperspace travel</mlink>.
</section>
<section id="move_pract_order_avai_lis" title="List Contents">
The table includes for each fleet:<ul>
<li><i>Owner</i>: name of the owner of the fleet</li>
<li><i>Name</i>: name of the fleet</li>
<li><i>Haul</i>: fill rate of the haul of <mlink to="ship_cat_class">capital ships</mlink> carrying <mlink to="ship_cat_class">system ships</mlink>. It's either <i>N/A</i> for <i>system fleets</i> or a <i>percentage</i> for <i>fleets including capital ships</i>. Be careful if the <i>percentage isn't superior to 100%</i>: in that case the fleet <i>isn't <mlink to="move_gen_hypnorm">hyperspace</mlink> capable</i></li>
<li><i>Ships (G/F/C/B)</i>: fleet composition, including number of <mlink to="ship_cat_list">GA ships</mlink>, <mlink to="ship_cat_list">Fighters</mlink>, <mlink to="ship_cat_list">Cruisers</mlink> and <mlink to="ship_cat_list">Battle Cruisers</mlink></li>
<li><i>Power</i>: the <mlink to="ship_cat_pow">power</mlink> of the total fleet</li>
<li><i>Current orders</i>: the current status of the fleet (<i>defending</i> a planet, <i>moving</i> to a particular destination, <i>attacking</i> a planet and so on)</li>
</ul>
</section>
<section id="move_pract_order_avai_col" title="Colour code">
The <i>usual colour code</i> is used in the list:<ul>
<li><i>Green</i>: for your <i>own fleets</i></li>
<li><i>Blue</i>: for fleets belonging to <i>off-line players</i> who have you as <mlink to="allies">trusted allies</mlink> and that <i>you can currently control</i></li>
</ul>
</section>
<section id="move_pract_order_avai_act" title="List actions">
The only possible action in the list is to <i>add a fleet from the available fleets list to the selected fleets list</i>. Adding a fleet to the selected fleets list means that <i>the fleet will follow the same orders</i> as the other selected fleets.
<br/>
In order <i>to select a fleet</i> you just have to <i>click on its line</i>.
</section>
</section>
<section id="move_pract_order_change_send" title="Sending the fleet">
Once you are satisfied with the changes you have made in the different sections of the page you have to <i>validate your orders</i>.
<br/>
In order <i>to validate your orders</i> you have to click the <i>Confirm</i> link in the <i>top right section</i> of the page. Clicking the link actually <i>sends the fleets</i> and directs you back to the <mlink to="fleets_page">fleets page</mlink>.
<br/>
In the same area of the page a <i>Cancel</i> link <i>erases your changes</i> and directs you back to the <mlink to="fleets_page">fleets page</mlink>.
</section>
</section>
</section>
<section id="move_arri" title="Arriving at destination">
<section id="move_arri_orb" title="Getting into orbit">
Depending if you have set up an <mlink to="move_pract_order_change_hyp">hyperspace stand-by delay</mlink> or not <i>two cases</i> are possible:<ul>
<li><mlink to="move_pract_order_change_hyp">With hyperspace delay</mlink>: the fleet <i>doesn't get out of <mlink to="move_gen_hypnorm_hyp">hyperspace</mlink> into <mlink to="move_gen_hypnorm_norm">normal space</mlink></i> immediately and <i>remains in hyperspace</i> until the defined number of <mlink to="ticks_tick">hours ticks</mlink> have passed by. It then jumps into <mlink to="move_gen_hypnorm_norm">normal space</mlink> and <i>gets into orbit</i>. Getting into orbit is a <i>complicate process</i> which <i>consumes a lot of energy</i>. As such it causes the fleet getting out of <mlink to="move_gen_hypnorm_hyp">hyperspace</mlink> to remain <mlink to="move_arri_unav">unavailable</mlink> at least until the following <mlink to="ticks_tick">hour tick</mlink></li>
<li><mlink to="move_pract_order_change_hyp">Without hyperspace delay</mlink>: the fleet <i>directly gets out of <mlink to="move_gen_hypnorm_hyp">hyperspace</mlink></i> if it reached the planet through <mlink to="move_gen_hypnorm_hyp">hyperspace</mlink>, or settles in orbit around the planet if it arrived via <mlink to="move_gen_hypnorm_norm">normal space</mlink>. In any case, the process implies it remains <mlink to="move_arri_unav">unavailable</mlink> at least until the next <mlink to="ticks_tick">hour tick</mlink></li>
</ul>
</section>
<section id="move_arri_mode" title="Fleets' mode">
The <mlink to="move_pract_order_change_mod">mode</mlink> of a <i>fleet getting in orbit</i> around a planet depends on <i>various factors</i>:<ul>
<li><i>In most cases</i>: the fleet reaching orbit keeps the <i>same mode as the one it was sent with</i></li>
<li><i>You already have fleets on the planet</i>: if your different fleets <i>don't have the same mode</i> (some in attack and some in defense) the fleets get <i>switched to the mode of the fleet with the highest <mlink to="ship_cat_pow">power</mlink></i></li>
<li><i>Auto-attack mode</i>: if the owner of the planet has <mlink to="enem_play">you</mlink> or <mlink to="enem_all">your alliance</mlink> in <mlink to="enemies">his enemies list</mlink> whatever fleets you may send to any of his planets get <i>automatically switched to attack mode</i></li>
</ul>
</section>
<section id="move_arri_unav" title="Unavailability time">
When a <i>fleet reaches its destination</i> (eventually getting out of hyperspace on it) and starts orbiting it, it remains <i>unavailable</i> for some time. <i>Unavailability time</i> depends on two cases:<ul>
<li>Arrival in <i>attack mode</i> or on a planet whose owner has you in his <mlink to="enemies">enemy list (</mlink>be it you as a player or as member of a given alliance): the fleet is <i>unavailable until a <mlink to="ticks_tick">Battle tick</mlink> occurs</i></li>
<li><i>Other cases</i>: the fleet is unavailable until next <mlink to="ticks_tick">Hour tick</mlink></li>
</ul>
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,161 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Fleets Page</title>
<section id="fp_intro" title="Introduction">
The <i>Fleets page</i> is the main entry point to <i>manage fleets</i>. This part of the manual will present this page more deeply. The <i>fleet page</i> consists in <i>three different sections</i>:<ul>
<li><mlink to="fp_filter">Top part</mlink>: it includes a set of <mlink to="fp_filter">filters</mlink></li>
<li><mlink to="fp_list">Middle Part</mlink>: it's the actual <mlink to="fp_list">fleets list</mlink>. It's either a complete list or the result of the choices you've made with the <mlink to="fp_filter">filters</mlink></li>
<li><mlink to="fleets_actions">Bottom Part</mlink>: it's the <mlink to="fleets_actions">Action section</mlink> of the fleet page, where you can actually <i>act on the fleets</i></li>
</ul>
This manual section will describe the two first parts of the page. <mlink to="fleets_actions">Fleets actions</mlink> are the topic of another manual section that you can access <mlink to="fleets_actions">here</mlink>.
</section>
<section id="fp_filter" title="Filters">
<section id="fp_filter_intro" title="Introduction">
In order to <i>easily find a fleet</i> you're interested in, you can either use the <mlink to="fp_filter_search">search</mlink> feature or <i>combine whatever set of filters</i>. The <i>filters</i> and <mlink to="fp_filter_search">search</mlink> features are described below.
</section>
<section id="fp_filter_loc" title="Locations">
This filter allows you to <i>select fleets depending on the category of locations</i> there are on or moving to. You can choose to display <i>fleets located on</i>:<ul>
<li><i>All planets</i>: <i>no particular filter</i> is applied</li>
<li><i>Own planets</i>: only the fleets <i>located on planets you own</i> are displayed</li>
<li><i>Allied planets</i>: only the fleets <i>located on allied planets</i> are displayed</li>
<li><i>Other planets</i>: only the fleets <i>located on other planets</i> (that is to say planets or other stellar objects which don't fit in any other categories) are displayed</li>
</ul>
</section>
<section id="fp_filter_stat" title="Fleet status">
This filter allows you to <i>select fleets depending on their status</i>. You can choose to display <i>fleets which status is</i>:<ul>
<li><i>Any</i>: <i>no particular filter</i> is applied and all fleets are displayed</li>
<li><i>Idle</i>: only the fleets that <i>are orbiting a planet</i> and <i>can actually move</i> are displayed</li>
<li><i>Unavailable</i>: only the fleets that <i>are orbiting a planet</i> and <i>can't be moved</i> (because they are engaged in battle and so on) are displayed</li>
<li><i>Moving</i>: only the fleets that are currently <i>flying between planets</i> are displayed</li>
<li><i>H.S. Stand-By</i>: only the fleets that are currently <i>standing by in Hyperspace</i> are displayed</li>
<li><i>On Sale</i>: only the fleets that <i>you are currently selling</i> are displayed</li>
<li><i>Sold</i>: only the fleets that <i>you have sold</i> but <i>haven't been transfered to their new owner yet</i> are displayed</li>
</ul>
</section>
<section id="fp_filter_mode" title="Fleet mode">
This filter allows you to <i>select fleets according to the mode they are in</i>. You can either diplay <i>fleets whose mode is</i>:<ul>
<li><i>Any</i>: <i>no particular filter</i> is applied and all fleets are displayed</li>
<li><i>Defending</i>: only <i>defending fleets</i> are displayed</li>
<li><i>Attacking</i>: only attacking fleets are displayed</li>
</ul>
</section>
<section id="fp_filter_own" title="Fleet Owner">
This filters allows you to <i>select fleets according to their owner</i>. You can either display <i>fleets whose owner is</i>:<ul>
<li><i>Any</i>: <i>no particular filter</i> is applied and all fleets are displayed</li>
<li><i>Myself</i>: only the <i>fleets you own</i> are displayed</li>
<li><i>Trusted Allies</i>: only the <u>fleets belonging to players who have you in their <mlink to="allies">trusted allies</mlink> list</u> are displayed</li>
<li><i>Others</i>: only the <i>fleets of other players</i> (neither you nor those who have you as trusted allies) are displayed</li>
</ul>
</section>
<section id="fp_filter_search" title="Search">
The last "filtering" tool is in fact a <i>search facility</i>. In order <i>to search and display</i> only particular fleet you first of all have to <i>choose on what field you want to perform the search</i>. To do so you have to <i>select the relevant value</i> in the <i>Search form drop down list</i>. It can be either:<ul>
<li><i>Fleet</i>: the search is perfomed on the <i>name of the fleet</i></li>
<li><i>Location</i>: the search is perfomed on the <i>name of the location</i> (planet, nebula square, planetary remains) where the fleet is or is moving to</li>
<li><i>Player</i>: the search is performed on the <i>name of the player who owns the fleet</i></li>
</ul>
Then you have to <i>define the search string</i>. You have to <i>type it in the textfield</i> next to the drop down list. The selection on the fleets list is <i>performed automatically as you type</i> in the string in the textfield. A name containing the <i>search string wherever it may be in the name</i> is considered as a <i>positive match</i>.
</section>
</section>
<section id="fp_list" title="Fleets list">
<section id="fp_list_sec" title="Fleets list sections">
The <i>fleets list</i> part of the page is <i>divided into several sections</i>, depending on the <i>location the fleets</i> are at. Those sections consist in:<ul>
<li><i>Own planets</i>: you'll find here the list of all <i>fleets located on planets you own</i></li>
<li><i>Allied planets</i>: in this section are listed all <u>fleets located on planets belonging to players who have you as <mlink to="allies">trusted ally</mlink></u></li>
<li><i>Other planets</i>: you'll find here all <i>fleets located on other stellar objects</i>, be it planets, planetary remains or nebula squares</li>
<li><i>Moving Fleets</i>: in this section are displayed all <i>fleets moving between different stellar objects</i></li>
<li><i>Fleets standing by</i>: in this section are listed all <i>fleets standing-by in hyperspace</i></li>
</ul>
</section>
<section id="fp_list_detail" title="Fleets list details">
<section id="fp_list_detail_intro" title="Introduction">
For each of the <mlink to="fp_list_sec">previously described sections</mlink> you'll find a table proving <mlink to="fp_list_detail_flee">detailed fleets information</mlink> for each <mlink to="fp_list_detail_loc">location</mlink>. The table includes:<ul>
<li><mlink to="fp_list_detail_loc">Detailed information for the location</mlink></li>
<li><mlink to="fp_list_detail_flee">Detailed information for each fleet at this location</mlink></li>
</ul>
The next parapgraphs will describe both sections of the table.
</section>
<section id="fp_list_detail_loc" title="Location description">
<section id="fp_list_detail_loc_intro" title="Introduction">
The <i>location part of the table</i> provides a set of <i>data on the location</i>. Some are <i>common to all stellar objects</i> and others <i>depend on the type of stellar object</i>. All are listed in the next paragraphs.
</section>
<section id="fp_list_detail_loc_gen" title="General information">
For <i>all stellar objects</i>, the location description part of the table <i>includes</i>:<ul>
<li><i>name</i>: the <i>name of the object</i></li>
<li><i>coordinates</i>: the <i>coordinates</i> of the object on the <mlink to="maps">map</mlink></li>
</ul>
</section>
<section id="fp_list_detail_loc_plan" title="For planets">
For <mlink to="planets">planets</mlink>, the location description also displays:<ul>
<li><i>alliance tag</i>: tag of the <mlink to="alliance">alliance</mlink> the <i>owner of the planet belongs to</i></li>
<li><i>owner</i>: the <i>name of the owner</i> if the <i>planet isn't yours</i> but <u>belongs to one of your <mlink to="allies">trusted allies</mlink></u></li>
<li><i>population</i>: the total <mlink to="emp_conc_pop">population</mlink> of the <mlink to="planet">planet</mlink></li>
<li><i>turrets</i>: the number of <mlink to="ship_cat_list">turrets</mlink> located on the <mlink to="planet">planet</mlink></li>
<li><i>turrets' power</i>: the total <mlink to="ship_cat_pow">power</mlink> of the <mlink to="ship_cat_list">turrets</mlink> on the <mlink to="planet">planet</mlink></li>
</ul>
<i>When attacking</i>, below the fleets present on the location, <i>one sentense</i> presents the <mlink to="battle_ownchange">level of control</mlink> over the <mlink to="emp_conc_pop">population</mlink> the <i>player with the more control has</i>. It can be either:<ul>
<li><i>"xxx could take the planet."</i>: <i>if all defenses were destroyed</i> the player would have <mlink to="ship_cat_ga">enough GA ships</mlink> to <mlink to="battle_ownchange">gain control over the planet</mlink></li>
<li><i>"xxx would need x more GA Ships to take this planet."</i>: <i>even if the defenses are destroyed</i> the player <mlink to="ship_cat_ga">doesn't have enough GA sps</mlink> to <mlink to="battle_ownchange">take over the planet</mlink></li>
</ul>
</section>
<section id="fp_list_detail_loc_oth" title="For other stellar objects">
For <i>other stellar objects</i>, that is to say <mlink to="ipp_ot_neb">nebulas</mlink> and <mlink to="ipp_ot_pre">planetary remains</mlink>, the <i>location description</i> includes:<ul>
<li><i>nature of the object</i>: it can be either a <mlink to="ipp_ot_neb">nebula</mlink> or <mlink to="ipp_ot_pre">planetary remains</mlink></li>
<li><i>opacity or class</i>: this represents the <i>level of opacity</i> of the object, which gives an idea of the <i>speed reduction of fleets going through it</i></li>
</ul>
</section>
</section>
<section id="fp_list_detail_flee" title="Fleets description">
<section id="fp_list_detail_flee_intro" title="Introduction">
Below the <mlink to="fp_list_detail_loc">description of the location</mlink> you'll find a <i>list of fleets present</i> at that location. The <i>data</i> included in this list are <i>described in the next paragraphs</i>.
</section>
<section id="fp_list_detail_flee_gen" title="General data">
The <i>fleet list</i> of a <i>particular location</i> first of all includes a set of <i>general items</i>:<ul>
<li>a <i>checkbox</i> that you have to <i>check in order to select the coresponding fleet</i> if you have the ability to do so</li>
<li><i>Owner</i>: <i>name</i> of the <i>owner of the fleet</i></li>
<li><i>Name</i>: <i>name</i> of the <i>fleet</i></li>
</ul>
</section>
<section id="fp_list_detail_flee_haul" title="Haul information">
This part of the list indicates the <mlink to="ship_cat_trans">haul status of the fleet</mlink>. The values can be of two kinds:<ul>
<li><i>N/A</i>: this means the fleet <u>doesn't include <mlink to="ship_cat_class">capital ships</mlink></u> and that it <i>can't carry any ship</i> through <mlink to="move_gen_hypnorm">hyperspace</mlink>. Such a fleet can only <i>travel to stellar objects located in the same stellar system</i> it is currently located in</li>
<li><i>a percentage</i>: this means the fleet <u>includes <mlink to="ship_cat_class">capital ships</mlink></u> that are <mlink to="move_gen_hypnorm">hyperspace</mlink> capable and the <i>percentage represents how filled the hauls of those capital ships are</i>. Two cases are then possible:<ul>
<li><i>the percentage is equal to or below 100%</i>: the fleet is <i>fully hyperspace capable</i> and can move to other stellar system as is</li>
<li><i>the percentage is above 100%</i>: there are <u>too many <mlink to="ship_cat_class">system ships</mlink> to carry</u> through <mlink to="move_gen_hypnorm">hyperspace</mlink> for the number of <mlink to="ship_cat_class">capital ships</mlink> you have in the fleet. You either have to <i>remove system ships</i> or <i>add capital ships</i> to the fleet so that the <i>percentage gets equal or lower than 100%</i> if you intend <i>to send the fleet through hyperspace</i></li>
</ul>
</li>
</ul>
</section>
<section id="fp_list_detail_flee_comp" title="Fleet composition">
The table also provides information about the <i>fleet's composition</i>, including:<ul>
<li><i>GA Ships</i>: the total <i>number of GA ships</i> in the fleet</li>
<li><i>Fighters</i>: the total <i>number of fighters</i> in the fleet</li>
<li><i>Cruisers</i>: the total <i>number of cruisers</i> in the fleet</li>
<li><i>Battle Cruisers</i>: the total <i>number of battle cruisers</i> in the fleet</li>
<li><i>Power</i>: the total <mlink to="ship_cat_pow">power</mlink> of all the <mlink to="ships">ships</mlink> in the fleet</li>
</ul>
</section>
<section id="fp_list_detail_flee_stat" title="Fleet status">
The table also indicates the current <i>status of the fleet</i>. This <i>status</i> is composed of <i>two parts, separated with a comma</i>:<ul>
<li><i>First item</i>: it indicates the <i>battle mode of the fleet</i>: either <i>Defense</i> or <i>Attack</i></li>
<li><i>Second item</i>: it indicates the <i>availability of the fleet</i>. You can either move it (<i>Avail.</i>) or have to wait before you can move it again (<i>Unavail.</i>)</li>
</ul>
</section>
<section id="fp_list_detail_flee_col" title="Colour code">
A <i>colour code</i> for each fleet line is used in the fleet list to help you easily <i>spot different categories of fleets</i>:<ul>
<li><i>green</i>: your <i>own fleets</i></li>
<li><i>blue</i>: fleets <i>belonging to any other player</i> and that are <i>in the same battle mode</i> as your own fleets (defending along with you or attacking along with you)</li>
<li><i>red</i>: <i>enemy fleets</i>, that is to say fleets that <i>aren't in the same battle mode as you</i>(defending while you're attacking or the other way around)</li>
</ul>
</section>
</section>
</section>
<section id="fp_list_op" title="Fleets list operations">
<i>Two operations</i> are possible on a particular fleet:<ul>
<li><i>checking the checkbox</i> at the beginning of the fleet's line allows to <i>select the fleet</i> and causes the list of <mlink to="fleets_actions">available actions</mlink> for the fleet to be <i>displayed</i></li>
<li><i>clicking on the name</i> of the fleet <i>opens an alert window</i> where you can <i>type in a new name</i> for the fleet and <i>change it</i></li>
</ul>
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,54 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Splitting Fleets</title>
<section id="split_intro" title="Introduction">
<i>Any fleet</i> can be <i>split into several different fleets</i>. The exact splitting conditions follow:<ul>
<li>Fleets can be split <i>whatever their location is</i> (own, neutral or foreign <mlink to="planet">planets</mlink>, <mlink to="ipp_ot_neb">nebulas</mlink> or <mlink to="ipp_ot_pre">planetary remains</mlink>)</li>
<li><mlink to="fleets_moving">Moving fleets</mlink> can be split</li>
<li>The only <i>mandatory condition</i> that has to be met is that the fleet's status is <mlink to="move_arri_unav">Available</mlink></li>
</ul>
In order <i>to split a fleet</i> you have to <i>select it</i> by <i>checking the checkbox</i> on the fleet's line in the <mlink to="fp_list">fleets list</mlink> of the <mlink to="fleets_page">fleets page</mlink>. Then you have to click the <i>split</i> link that appears at the bottom of the <mlink to="fleets_page">fleets page</mlink> among the other <mlink to="fleets_actions">action links</mlink>. You'll get directed to a <i>special fleet splitting page</i>.
</section>
<section id="split_page" title="The split page">
The <i>splitting</i> page is composed of two sections:<ul>
<li><i>Top section</i>: this part of the page describes the <i>fleet you are about to split</i>. Its <i>top part</i> indicates the <i>fleet's location</i>. The <i>bottom part</i> consists in an <i>abstract</i> of the <mlink to="fp_list">fleets' list tables</mlink> which only includes the fleet being split</li>
<li><i>Bottom section</i>: it's the actual <mlink to="split_split">splitting tool</mlink></li>
</ul>
</section>
<section id="split_split" title="Actual splitting">
<section id="split_split_intro" title="Introduction">
The <i>New fleets</i> part of the page consists in a <i>form</i> that you have to fill in <i>to split the fleets</i>. This form consists in <i>various items</i>:<ul>
<li><mlink to="split_split_type">Split type</mlink>: to choose <i>how</i> the fleet will be split</li>
<li><mlink to="split_split_param">Split parameters</mlink>: to define precise splitting <i>caracteristics</i></li>
<li><mlink to="split_split_val">Split validation</mlink>: to <i>perform</i> the split</li>
</ul>
Each topic will be covered in the next parapgraphs.
</section>
<section id="split_split_type" title="Split type">
The <i>split type</i> can be either:<ul>
<li><i>Manual</i>: you have to <i>choose precisely the number of ships</i> of each type that you want to include in your new fleets in the corresponding textfields</li>
<li><i>Automatic</i>: the system will <i>automatically compute the number of ships</i> to include in each fleet, taking into account the <i>number of fleets</i> you want to create and trying to create fleets <i>with homogeneous compositions</i></li>
</ul>
In order to <i>select a split type</i>, select the <i>radio button</i> next to its name.
</section>
<section id="split_split_param" title="Split parameters">
The provided form allows to set various <i>split parameters</i> that are listed below:<ul>
<li><i>Amount of fleets</i>: use this <i>drop down list</i> to select the <i>number of fleets</i> you want to have once the split is done</li>
<li><i>New name</i>: use this <i>textfield</i> to type in the <i>new name</i> of the fleet. If <i>several fleets</i> are created, a <i>number will be added to the name</i> for each fleet</li>
<li><i>GA Ships</i>: use this <i>textfield</i> to type in the <i>number of GA ships to include</i> for each new fleets (out of the total in the original fleet). This field is automatically filled in in automatic mode</li>
<li><i>Fighters</i> (if you possess the corresponding <mlink to="tech_list">technology</mlink>): use this <i>textfield</i> to type in the <i>number of fighters</i> to include for each new fleets (out of the total in the original fleet). This field is automatically filled in in automatic mode</li>
<li><i>Cruisers</i> (if you possess the corresponding <mlink to="tech_list">technology</mlink>): use this <i>textfield</i> to type in the <i>number of Cruisers</i> to include for each new fleets (out of the total in the original fleet). This field is automatically filled in in automatic mode</li>
<li><i>Battle Cruisers</i> (if you possess the corresponding <mlink to="tech_list">technology</mlink>): use this <i>textfield</i> to type in the <i>number of Battle Cruisers</i> to include for each new fleets (out of the total in the original fleet). This field is automatically filled in in automatic mode</li>
<li><i>Haul used</i>: this field is an <i>informative field</i> that indicates the number of <mlink to="ship_cat_trans">haul spaces</mlink> used by the ships you have included in each fleet. This number has to be <i>inferior or equal to the Haul available</i> value if you want the fleets to be <mlink to="move_gen_hypnorm_hyp">hyperspace capable</mlink></li>
<li><i>Haul available</i>: this field is an <i>informative field</i> that indicates the total number of <mlink to="ship_cat_trans">hauls spaces</mlink> provided by the <mlink to="ship_cat_class">capital ships</mlink> included in each fleet. This number has to be <i>superior or equal to the Haul used value</i> in order for the fleets to be <mlink to="move_gen_hypnorm_hyp">hyperspace capable</mlink></li>
</ul>
</section>
<section id="split_split_val" title="Split validation">
Once you are satisfied with what you have filled in you can click the <i>Split fleet</i> button to actually <i>split the fleet</i>.
<br/>
A <i>Cancel</i> button is also provided to go back to the <mlink to="fleets_page">fleets page</mlink> without making any changes.
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,214 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Forums</title>
<section id="for_intro" title="Introduction">
Those forums are very similar to those you might find in any message board.
There are several categories of forums:<ul>
<li>Legacy Worlds Forums:- these are used by the staff to make announcements and by layers to report bugs and ask for new features.</li>
<li>General Forums:- these are used for general discussions about the game and beyond.</li>
<li>Legacy Worlds - Public beta 5:- these are public forums which are specific for Beta 5. They include alliance recruitment forums and such.</li>
<li>Alliance specific Forums:- these are the forums of each individual alliance. Their name correspond to the alliance name.</li>
</ul>
</section>
<section id="for_nav" title="Navigation in the forums">
The left side panel of the page consists in a navigation menu to move between forums. It lists the following items:<ul>
<li>Overview:- this is a link to the forums overview section.</li>
<li>Legacy Worlds forums:- this is a link to that category of the forums' pages.</li>
<li>General forums:- this is a link to that category of the forums' pages.</li>
<li>Legacy Worlds - Public beta 5:- this is a link to that category of the forums' pages.</li>
<li>Alliance forums:- this link, corresponding to the alliance name, redirects to the alliance specific forums.</li>
</ul>
For each category a Latest messages link is displayed. This link allows to access the lastest message view for the forums in the category. Name of forums with new posts you haven't read yet are displayed in bold. The link corresponding to the page you are currently viewing is displayed in italic.
<br/>
Below this list, a Search the forums link redirects you to the search facility.
<br/>
At the bottom of the page, a Messages link allows to switch to the messaging system.
</section>
<section id="for_over" title="Forums Overview Page">
For each forums category described in the introduction section of the forum manual page this overview page provides you with a list including:<ul>
<li>Category of forums:- the name of the category is a link to the specific page for this category.</li>
<li>Nature:- on the right side of the name and between brackets, this indicates if the forum category is general or alliance specific.</li>
<li>Forum name:- for each forum is displayed its name. That name is a link to the given forum's page. Below is indicated the forum's description.</li>
<li>Topics:- number of topics in the forum.</li>
<li>Posts:- number of posts in the forum.</li>
<li>Last Post:- name of the player who made the last post in the forum along with the date and time.</li>
</ul>
</section>
<section id="for_read" title="Reading the forums">
<section id="for_read_intro" title="Introduction">
In order to read the forums you can either use the various last messages view or browse the topics.
</section>
<section id="for_read_lat" title="Latest messages views">
When clicked for the overview page, the Lastest messages link directs you to a view of the last messages in all forums. When clicked under a particular category page it directs you to a view of the last messages in the category.
<br/>
In all cases the Lastest messages view presents the following items:<ul>
<li>Latest Messages in:- indicates what forum category you are viewing the last messages.</li>
<li>Navigation panel:- on top and at the bottom of the page it includes:<ul>
<li>&lt;- Previous page:- link to the previous page.</li>
<li>Posts per page:- you can use that drop down list to choose the number of posts to display on each page.</li>
<li>Next page -&gt;:- link to the next page.</li>
</ul></li>
<li>List of messages:- this list includes for each post:<ul>
<li>Forum in which the message has been posted.</li>
<li>Title of the message.</li>
<li>Posted by:- Author and date and time of the post.</li>
<li>Text of the post.</li>
<li>Action links:- on the right side of the header of the post various action links directs you to the relevant action pages:<ul>
<li>View forum: this link directs you to the forum page in which the message has been posted.</li>
<li>View topic: this page directs you to the topic page where all messages in the same thread are displayed.</li>
<li>Reply: this link directs you to the reply page.</li>
<li>Quote: this link directs you to the reply page with included quotes.</li>
</ul></li>
</ul></li>
</ul>
</section>
<section id="for_read_bro" title="Browsing">
Clicking on the name of a forum directs you to this forum's main page. This page includes:<ul>
<li>Forum name</li>
<li>New topic:- either the new topic link which directs to the topic creation page or the "Only moderators can create new topics" sentence is displayed according to the forum settings.</li>
<li>Posts per page:- the corresponding drop down list allows you to choose how many topics are to be displayed on each page.</li>
<li>Page:- when it is required, a drop down list is displayed to allow you to choose what page to go to.</li>
<li>Posts list: this list includes for each post:<ul>
<li>Topic:- title of the topic. It's a link to the topic display page.</li>
<li>Replies:- number of replies to the first post.</li>
<li>First post:- author, date and time of the first post in the thread.</li>
<li>Last Post:- author, date and time of the last post in the thread.</li>
</ul></li>
</ul>
Clicking on a topic name in the list directs you to the thread page for that specific topic. This page includes:<ul>
<li>Topic Name.</li>
<li>Posts per page:- use this drop down list to choose how many posts to display on each page.</li>
<li>Page:- when relevant, a drop down list is displayed to switch between pages of the posts.</li>
<li>List of messages in the thread. For each post the elements displayed are:<ul>
<li>Post title.</li>
<li>Posted:- time, date and author of the post.</li>
<li>Text of the message.</li>
<li>Action links:- along the header of the post, those action links directs you to the relevant action pages or perform the requested action.<ul>
<li>Reply:- directs you to the reply page.</li>
<li>Quote:- directs you to the reply page with included quotes.</li>
<li>Edit:- if you are the author of the post this link allows you to go to the edit page. This page is similar to the new topic page except all fields are prefilled with their current contents, thus allowing you to make corrections.</li>
<li>Delete:- if you are the author of the post, this link allows you to delete it.</li>
</ul></li>
</ul></li>
</ul>
</section>
</section>
<section id="for_new" title="New topics">
If you have the rights to do so, a New topic link is displayed at the top of each forum page. Clicking on the link directs you to the new topic form. To post a new topic in the forum currently named at the top of the form, you have to fill in the following items:<ul>
<li>Topic title:- use the provided text field to type in the topic title.</li>
<li>Text:- use the provided text area to type your message.</li>
<li>Options:- two checkboxes that allow you to apply some specific options to the post:<ul>
<li>Enable graphical smileys:- checking this checkbox will replace all common text based smileys known to the system by their graphical counterparts.</li>
<li>Enable forum tags:- checking this checkbox is necessary to use forum specific tags like those required for quotes, text emphasis and such.</li>
</ul></li>
</ul>
At the bottom of the form three buttons are provided to specify what to do with the text typed in and the options you've selected:<ul>
<li>Submit:- click this button to post the new forum topic.</li>
<li>Preview:- click this button to get a preview of what the post will look like in the forum.</li>
<li>Cancel:- click this button to cancel your changes and go back to the previous page.</li>
</ul>
</section>
<section id="for_repl" title="Replying in a thread">
In order to reply in a thread you can use either the Reply or the Quote links that are displayed alongside each post header. The behaviour is slightly different depending on which ones you choose:<ul>
<li>Reply:- a form similar to the one for new topics is displayed with a prefilled title that fits the current thread title. See the <strong>New Topic</strong> paragraph of the forum section of the manual for a description of this form use.</li>
<li>Quote:- a form similar to the one for new topics is displayed with a prefilled title that fits the current thread title and a prefilled body containing the post you replied to text with special quote forum markers. See the <strong>New Topic</strong> paragraph of the forum section of the manual for a description of this form use. Make sure the Enable forum tags checkbox is checked so that the quote is properly displayed as a quotation.</li>
</ul>
At the bottom of those forms, the Replying to... section presents the previous messages in the thread as reference.
</section>
<section id="for_mod" title="Moderation tools">
Moderator are provided with the means to enforce the moderation rules described in the General Rules section of the manual. If you have moderation privileges on a given forum, you are provided with a set of moderation tools.
<section id="for_mod_del" title="Deleting">
If you have moderation privileges, you have access to functionalities which allow you to delete individual posts or complete threads:<ul>
<li>Deleting a post: if you have moderation privileges, a "Delete" link is available in the right part of the posts' header. Clicking this link allows you to delete it. If the post is the last remaining one in a thread, the whole toic will be deleted.</li>
<li>Deleting a thread: in the threads list of the forum you have moderation privileges on, a checkbox is available in from of of each thread. In order to delete a thread, check the corresponding checkbox to select it. Then click the "Delete" button at the bottom of the page.</li>
</ul>
</section>
<section id="for_mod_stick" title="Switching a thread sticky">
A sticky thread is a thread that remains on top of the threads list for the forum, whatever new posts may have been made in other threads. To switch a thread sticky, you have to options:<ul>
<li>New topic: if you're writing a new topic, you can make it sticky from the start by checking the "Sticky topic" checkbox at the bottom of the new topic form.</li>
<li>Existing topic: in order to switch an existing topic sticky, you first of all have to select it by checking the corresponding checkbox. Then click the "Switch sticky" button at the bottom of the page.</li>
</ul>
If you want a topic not to be sticky anymore, select it by checking its checkbox and click the "Switch Sticky" button. The topic gets back to normal topic status.
</section>
<section id="for_mod_move" title="Moving a thread to another forum">
If a thread has been posted in the wrong forum, you have the possibility to move it to another forum. In order to do so you first of all have to select the thread by selecting the corresponding checkbox. Then you have to select the destination forum in the forums drop down list at the bottom of the page. The click the "Move" button.
</section>
<section id="for_mod_edit" title="Editing posts">
As moderator you also have the ability to edit posts made by other players. To edit any post, just click the "Edit" link in the post's header. You'll be directed to the post edition form, which is similar to the form for new topics, with prefilled values.
</section>
</section>
<section id="for_sear" title="Searching">
A "Search forums" link is provided at the bottom of the left forums panel. Clicking this link directs you to a search form where you can specify your search criteria:<ul>
<li>Text: use the provided textfield to type in the search string. The '*' character can be used as a wildcard to search for partial strings.</li>
<li>Search in: you can either search in posts titles or whole posts. To choose between the two, select the corresponding radio button.</li>
<li>Forum: you can either search in all forums or one specific forum. To define in what forum to search, select the entry you're interested in in the provided drop down list.</li>
<li>Sort by: The results of the search can be sorted according to Post Time or Post Title. Use the drop down list to choose which one to use. The sort can also be either ascending or descending. Select the relevant radio button to define the ordering you're interested in.</li>
<li>Display results: Results can be displayed as Posts or Topics. Choose the display you want by selecting the corresponding radio button.</li>
</ul>
Once you are satisfied with your setting, you can click the "Search" button to launch the search process.
<br/>
The results are displayed as a list very similar to any thread in any forum. The only differences are that each post also includes:
<ul>
<li>A new header line where the forum in which the post is located is indicated</li>
<li>A "View forum" link in the top right part of the header which directs you to the main page of the forum in which the post is</li>
<li>A "View topic" link in the top right part of the header which directs you to the page of the thread in which the post is</li>
</ul>
</section>
<section id="for_fancy" title="Posts' fancy lay-out">
<section id="for_fancy_intro" title="Introduction">
LegacyWorlds' forums include the possibility to apply text modifiers (to get bold text and so on) and can display some smileys with a graphical representation in order for the posts to look nicer.
</section>
<section id="for_fancy_smil" title="Graphical smileys">
In order for graphical smileys to be displayed, you either have to enable the option in your preferences or enable it on a per post basis, in the post edition form.
<br/>
Most current smileys have a graphic conterpart: :), :P, ;) and so on.
</section>
<section id="for_fancy_tag" title="Forum tags">
Forums tags allow you to include special items in post or to apply modifiers to texts. Single unit tags are to be used on their own. For tags composed of two elements, the text modifier applies to the text between the two tags.
<table>
<tr>
<th style="width:40%">Tag</th>
<th>Meaning</th>
</tr>
<tr>
<td>[b] Text [/b]</td>
<td>"Text" gets displayed in bold.</td>
</tr>
<tr>
<td>[u] Text [/u]</td>
<td>"Text" is underlined.</td>
</tr>
<tr>
<td>[i] Text [/i]</td>
<td>"Text" is displayed in italic.</td>
</tr>
<tr>
<td>[quote] Text [/quote]</td>
<td>"Text" is displayed as a note without title.</td>
</tr>
<tr>
<td>[quote=name] Text [/quote]</td>
<td>"Text" is diplayed as a note, with title ("name said:").</td>
</tr>
<tr>
<td>[sep]</td>
<td>A horizontal bar is drawn to replace the tag.</td>
</tr>
<tr>
<td>[item] Text [/item]</td>
<td>"Text" is displayed as a bullet-point item.</td>
</tr>
<tr>
<td>[link=url] Text [/link]</td>
<td>"Text" is displayed as a link that points to the "url" URL.</td>
</tr>
<tr>
<td>[code] Text [/code]</td>
<td>"Text" is displayed as a fixed size font block. This can be used to insert ASCII art for instance.</td>
</tr>
</table>
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,154 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Game Interface</title>
<section id="gi_gen" title="Generalities">
<section id="gi_gen_desc" title="Description">
Each in game page is split into three sections:<ul>
<li><i>Top banner</i>: you'll find there the main menu of the game</li>
<li><i>Banner</i>: here is located the title of the page you're currently on</li>
<li><i>Page body</i>: the actual contents of the page are there. On all pages, a <i>Help</i> link on the top right corner of the page directs you to the relevant manual section</li>
</ul>
</section>
<section id="gi_gen_refresh" title="Refreshing pages">
Most pages are <i>automatically</i> refreshed <i>except the forums</i>' pages. As a consequence it's useless to reload the pages on a regular basis: the game does it for you.
</section>
</section>
<section id="gi_out" title="Logging out">
In each <mlink to="accga_gm">game</mlink> you are playing the <i>top menu</i> includes a link or button which takes you back to your <mlink to="accga_acc">account</mlink>'s page. But be careful: getting back to your <mlink to="accga_acc">account</mlink>'s page doesn't mean you have actually logged out from LegacyWorlds. If you want to benefit from features available to your allies when you're offline, make sure you have also logged out from your <mlink to="accga_acc">account</mlink>, by clicking on the <i>Log</i> Out link on your <mlink to="accga_acc">account</mlink>'s page or by using the <i>Log out</i> link in the <mlink to="gi_menu">menu</mlink>.
</section>
<section id="gi_menu" title="Main menu">
<section id="gi_menu_intro" title="Introduction">
The main menu consists in the menu bar on top of all in game pages. This game menu allows you to access all in game pages and features for the current <mlink to="accga_gm">game</mlink> you're playing. Several <mlink to="preferences">game themes</mlink> are available and the main menu lay-out depends on the <mlink to="preferences">theme</mlink> you've selected in your <mlink to="preferences">preferences</mlink>. A description of the menu depending on those <mlink to="preferences">themes</mlink> is provided in the following paragraphs.
</section>
<section id="gi_menu_def" title="Default theme: LegacyWorlds Beta 5">
<section id="gi_menu_def_intro" title="Introduction">
The menu bar is split into two sections:<ul>
<li><i>Top part</i>: this section of the menu bar provides general informations about the player and the game</li>
<li><i>Bottom part</i>: this section of the menu bar provides you with menu entried linking with all the game pages along with icons for major shortcuts</li>
</ul>
The following sections of the manual will describe more precisely those two parts of the menu bar.
</section>
<section id="gi_menu_def_top" title="Top part">
The top part of the menu includes a set of data about the player and the current game, including:<ul>
<li><i>Player</i>: Name of the player</li>
<li><mlink to="alliance">Alliance</mlink>: if the player belongs to an <mlink to="alliance">alliance</mlink> the <mlink to="alliance">alliance</mlink> tag is displayed between brackets</li>
<li><mlink to="money">Current funds</mlink>: amount of cash the player has in bank</li>
<li><i>Server Time</i>: current time and date of the server, which is set to "Coordinated Universal Time" (abbreviated UTC)</li>
</ul>
</section>
<section id="gi_menu_def_bott" title="Bottom Part">
<section id="gi_menu_def_bott_intro" title="Introduction">
The bottom part of the menu bar includes a set of menu entries for game pages as long as icons for major shortcuts. Those entries include:<ul>
<li><mlink to="overview_page">Overview</mlink></li>
<li><mlink to="empire">Empire</mlink></li>
<li><mlink to="diplomacy">Diplomacy</mlink></li>
<li><mlink to="universe">Universe</mlink></li>
<li><mlink to="communications">Communications</mlink></li>
<li><i>Shortcut Icons</i></li>
</ul>
The next sections of the manual will present each entry in more details.
</section>
<section id="gi_menu_def_bott_over" title="Overview">
The <mlink to="overview">Overview</mlink> menu entry directs you to the <mlink to="overview_page">overview page</mlink> which presents at a glance all important data about your <mlink to="empire">empire</mlink> and Legacy Worlds' <mlink to="universe">universe</mlink>. This menu entry also includes three <i>submenu entries</i>:<ul>
<li><mlink to="preferences">Preferences</mlink>: this entry directs you to the <mlink to="preferences">Preferences</mlink> page where you can set up <mlink to="pref_game">game specific preferences</mlink></li>
<li><mlink to="home_page">My Account</mlink>: this entry directs you to your <mlink to="accga_acc">account</mlink>'s main page, leaving the current <mlink to="accga_gm">game</mlink> but <i>not logging you out</i> of LegacyWorlds</li>
<li><i>Log out</i>: this links logs you out of the <mlink to="accga_gm">game</mlink></li>
</ul>
</section>
<section id="gi_menu_def_bott_emp" title="Empire">
The <mlink to="empire">Empire</mlink> entry directs you to the <mlink to="empire_overview">Empire page</mlink> which presents at a glance all important <mlink to="empire">empire</mlink> related information. This menu entry also includes several <i>submenu entries</i>:<ul>
<li><mlink to="planets">Planets</mlink>: this entry directs you to the <mlink to="planets">planets overview page</mlink> which presents the <mlink to="pop_cp">list of all your planets</mlink> and a <mlink to="pop_qb">quick builder</mlink> facility. This entry also include as many <i>submenu entries</i> as you have <mlink to="planets">planets</mlink>. Each submenu entry directs you to the <mlink to="planet">individual planet page</mlink> for that particular <mlink to="planet">planet</mlink></li>
<li><mlink to="fleets">Fleets</mlink>: this entry directs you to the <mlink to="fleets">fleets management page</mlink> which presents all your <mlink to="fleets">fleets</mlink> and allows you to control their <mlink to="fleets_moving">movements</mlink> and other <mlink to="fleets_actions">fleets related actions</mlink></li>
<li><mlink to="probes">Beacons</mlink>: this entry directs you to the <mlink to="probes">Probes and Beacons page</mlink> where you can manage those features</li>
<li><mlink to="technology">Research</mlink>: this entry directs you to the <mlink to="technology">main research page</mlink> where you can manage <mlink to="technology">research</mlink>. It also includes four <i>submenu entries</i> corresponding to the various sections of the <mlink to="technology">research page</mlink>:<ul>
<li><mlink to="tech_topic">Topics</mlink>: to manage <mlink to="tech_topic">research topics</mlink></li>
<li><mlink to="tech_law">Laws</mlink>: to manage <mlink to="tech_law">laws</mlink></li>
<li><mlink to="tech_budg">Budget</mlink>: to manage <mlink to="tech_budg">research budget</mlink></li>
<li><mlink to="diplo_res">Diplomacy</mlink>: to manage <mlink to="diplo_res">research exchanges</mlink></li>
</ul></li>
<li><mlink to="money">Money</mlink>: this entry directs you to the <mlink to="money">Money page</mlink>, where is collected all information about the <mlink to="money">finantial status</mlink> of your <mlink to="empire">empire</mlink></li>
</ul>
</section>
<section id="gi_menu_def_bott_diplo" title="Diplomacy">
The <mlink to="diplomacy">Diplomacy</mlink> entry directs you to the <mlink to="diplomacy_page">main Diplomacy page</mlink> which provides you with a <mlink to="diplomacy">diplomatic status</mlink> of your <mlink to="empire">empire</mlink>. This entry also includes four <i>submenu entries</i>:<ul>
<li><mlink to="alliance">Alliance</mlink>: this entry directs you to the <mlink to="alliance">main alliance page</mlink> where you can <mlink to="alliance_manage">manage</mlink> and <mlink to="alliance">access</mlink> alliance related data</li>
<li><mlink to="marketplace">Marketplace</mlink>: this entry directs you to the <mlink to="marketplace">marketplace page</mlink>, where is managed everything emplying <mlink to="market_sell">selling</mlink> or <mlink to="market_buy">buying</mlink> stuffs</li>
<li><mlink to="enemies">Enemies</mlink>: this entry directs you to the <mlink to="ennemies">Enemies page</mlink> where you can manage <mlink to="enemies">enemies lists</mlink></li>
<li><mlink to="allies">Trusted Allies</mlink>: this entry directs you to the <mlink to="allies">Trusted Allies page</mlink> where you can manage a <mlink to="allies">trusted allies list</mlink></li>
</ul>
</section>
<section id="gi_menu_def_bott_uni" title="Universe">
The <mlink to="universe">Universe</mlink> entry directs you to the main <mlink to="universe_page">Universe page</mlink> which displays at a glance major facts about Legacy Worlds' <mlink to="universe">universe</mlink>. This entry also includes four <i>submenu entries</i>:<ul>
<li><mlink to="maps">Maps</mlink>: this entry directs you to the <mlink to="maps">main Maps pages</mlink> which present a display of the galaxy. It also includes three <i>submenu entries</i>:<ul>
<li><mlink to="map_pla">Planets</mlink>: this entry directs you to a <mlink to="maps">map page</mlink> with a <i>grid diplay</i> and <mlink to="planets">planets</mlink> identified by their <i>name</i></li>
<li><mlink to="map_all">Alliance</mlink>: this entry directs you to a <mlink to="maps">map page</mlink> with a <i>grid diplay</i> and <mlink to="planets">planets</mlink> identified by their <mlink to="alliance">alliance</mlink> <i>tag</i></li>
<li><mlink to="map_lst">Listing</mlink>: this entry directs you to a <mlink to="maps">map</mlink> presented in a <i>list</i></li>
</ul></li>
<li><mlink to="ticks">Ticks</mlink>: this entry directs you to the <mlink to="ticks">main Ticks page</mlink> which presents the various <mlink to="ticks_tick">ticks</mlink> in the game</li>
<li><mlink to="rankings">Rankings</mlink>: this entry directs you to the <mlink to="rankings">main Rankings page</mlink> which provided various <mlink to="rankings">rankings</mlink> for <i>players</i> and <mlink to="rank_all">alliances</mlink></li>
<li><mlink to="main">Manual</mlink>: this entry directs you to this <mlink to="main">manual main entry</mlink></li>
</ul>
</section>
<section id="gi_menu_def_bott_comm" title="Communications">
The <mlink to="communications">Communications</mlink> entry directs you to the <mlink to="communications_page">main Communications page</mlink> which provides you with major data about your <mlink to="messages">messages</mlink> and <mlink to="forums">forums</mlink>. It also includes three <i>submenus entries</i>:<ul>
<li><mlink to="msg_comp">Compose a message</mlink>: this entry directs you to the the <mlink to="msg_comp">compose page</mlink> of the <mlink to="messages">messaging system</mlink> where you can write a <mlink to="msg_comp">new message</mlink> to be sent</li>
<li><mlink to="msg_fold">Folders</mlink>: this entry directs you to the <mlink to="msg_fold">folders page</mlink> of the <mlink to="messages">messaging system</mlink> where you can <mlink to="msg_fold">manage</mlink> and <mlink to="msg_msg_acc">access</mlink> you folders. This entry also includes submenu entries:<ul>
<li><i>Inbox</i>: to go directly to your inbox folder</li>
<li><mlink to="msg_int">Transmissions</mlink>: to go directly to your Internal Transmissions folder</li>
<li><i>Sent</i>: to go directly to your Sent folder</li>
<li><i>A submenu entry for each custom folder</i>: to go directly to the given folder's contents page</li>
</ul></li>
<li><mlink to="forums">Forums</mlink>: this entry directs you to the <mlink to="forums">main forums page</mlink> where you can access all the <i>general forums</i> and your <mlink to="amanag_forum">alliance forums</mlink></li>
</ul>
</section>
<section id="gi_menu_def_bott_ic" title="Icons">
On the <i>right part of the page</i>, a <i>set of icons</i> provide <i>shortcuts</i> to some important pages:<ul>
<li><i>Planet icon</i>: the link on that icon directs you to the <mlink to="planets">planets management page</mlink></li>
<li><i>Ships icon</i>: the link on that icon directs you to the <mlink to="fleets">fleets management page</mlink></li>
<li><i>Map icon</i>: the link on that icon directs you to the <mlink to="maps">maps page</mlink></li>
<li><i>Alliance icon</i>: the link on that icon directs you to the <mlink to="alliance">alliance page</mlink></li>
<li><i>Log out icon</i>: the link on that icon <i>logs you out</i></li>
</ul>
</section>
</section>
</section>
<section id="gi_menu_rev" title="Beta 5 Reversed">
This theme is very <i>similar to the LegacyWorlds Beta 5</i> one and contains exactly the <i>same data</i>. The only difference is that the <i>two parts are inverted</i>: the menu bar is above the player and game information instead of being below them.
</section>
<section id="gi_menu_class" title="LegacyWorlds Classic">
<section id="gi_menu_class_intro" title="Introduction">
The LegacyWorlds Classic theme correspond to the <i>theme used in Beta 1-4</i>. It consists in a <i>table</i> containing <i>three rows</i> of links. The next sections wil describe the contains of each row.
</section>
<section id="gi_menu_class_top" title="Top row">
The top row contains four cells corresponding to the four following links:<ul>
<li><mlink to="overview">Overview</mlink>: the <mlink to="overview">Overview</mlink> link directs you to the <mlink to="overview_page">overview page</mlink> which presents at a glance all important data about your <mlink to="empire">empire</mlink> and Legacy Worlds' <mlink to="universe">universe</mlink></li>
<li><mlink to="fleets">Fleets</mlink>: this link directs you to the <mlink to="fleets">fleets management page</mlink> which presents all your <mlink to="fleets">fleets</mlink> and allows you to control their <mlink to="fleets_moving">movements</mlink> and other <mlink to="fleets_actions">fleets related actions</mlink></li>
<li><mlink to="alliance">Alliance</mlink>: this link directs you to the <mlink to="alliance">main alliance page</mlink> where you can <mlink to="alliance_manage">manage</mlink> and <mlink to="alliance">access</mlink> alliance related data</li>
<li><mlink to="messages">Messages</mlink>: this link directs you to the <mlink to="messages">messaging system page</mlink> where you can write a <mlink to="msg_comp">new message</mlink> to be sent, <mlink to="msg_fold">manage</mlink> and <mlink to="msg_msg_acc">access</mlink> your messages folders</li>
</ul>
</section>
<section id="gi_menu_class_mid" title="Middle row">
The middle row contains four cells corresponding to the four following links:<ul>
<li><mlink to="planets">Planets</mlink>: this link directs you to the <mlink to="planets">planets overview page</mlink> which presents the <mlink to="pop_cp">list of all your planets</mlink> and a <mlink to="pop_qb">quick builder</mlink> facility</li>
<li><mlink to="technology">Research</mlink>: this link directs you to the <mlink to="technology">main research page</mlink> where you can manage <mlink to="technology">research</mlink></li>
<li><mlink to="marketplace">Marketplace</mlink>: this link directs you to the <mlink to="marketplace">marketplace page</mlink>, where is managed everything emplying <mlink to="market_sell">selling</mlink> or <mlink to="market_buy">buying</mlink> stuffs</li>
<li><mlink to="forums">Forums</mlink>: this link directs you to the <mlink to="forums">main forums page</mlink> where you can access all the <i>general forums</i> and your <mlink to="amanag_forum">alliance forums</mlink></li>
</ul>
</section>
<section id="gi_menu_class__bot" title="Bottom row">
The bottom row contains eight cells corresponding to the eight following links:<ul>
<li><mlink to="money">Money</mlink>: this link directs you to the <mlink to="money">Money page</mlink>, where is collected all information about the <mlink to="money">finantial status</mlink> of your <mlink to="empire">empire</mlink></li>
<li><mlink to="probes">Beacons</mlink>: this link directs you to the <mlink to="probes">Probes and Beacons page</mlink> where you can manage those features</li>
<li><mlink to="maps">Maps</mlink>: this link directs you to the <mlink to="maps">main Maps pages</mlink> which present a display of the galaxy</li>
<li><mlink to="rankings">Rankings</mlink>: this link directs you to the <mlink to="rankings">main Rankings page</mlink> which provided various <mlink to="rankings">rankings</mlink> for <i>players</i> and <mlink to="rank_all">alliances</mlink></li>
<li><mlink to="enemies">Enemies</mlink>: this link directs you to the <mlink to="ennemies">Enemies page</mlink> where you can manage <mlink to="enemies">enemies lists</mlink></li>
<li><mlink to="allies">Trusted Allies</mlink>: this link directs you to the <mlink to="allies">Trusted Allies page</mlink> where you can manage a <mlink to="allies">trusted allies list</mlink></li>
<li><mlink to="preferences">Preferences</mlink>: this link directs you to the <mlink to="preferences">Preferences</mlink> page where you can set up <mlink to="pref_game">game specific preferences</mlink></li>
<li><i>Log out</i>: this links logs you out of the <mlink to="accga_gm">game</mlink></li>
</ul>
</section>
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,28 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Game Overview</title>
<section id="gover_pres" title="Presentation">
Legacy Worlds is an online multiplayer intergalactic war game. Your goal as a player: build up an empire and defeat the other players. How to achieve that: through technological research, alliances with other players and of course conquests.
<br/>
Legacy Worlds is a tick based game. This means events are controlled at given intervals of time called ticks.
<br/>
Legacy Worlds is a text based game so don't expect any fancy graphics.
</section>
<section id="gover_team" title="The Team">
At first started as a University project by one of the developers it's now developed by a little team which felt it was a pity to let it go to waste and disappoint its current players.
<br/>
The current team includes:<ul>
<li>El Christoph: original design and game concept</li>
<li>TSeeker: lead developer and game design</li>
<li>Ju: game design, game manual, developer</li>
<li>Sycophant: game design, random ideas, orthograph fascist</li>
</ul>
</section>
<section id="gover_contrib" title="Contributions">
This version is Beta 5 and is as the previous ones completely free. Our goal isn't to make money or even to have players to contribute for the costs implied by hosting an online game. It's to have fun as much as our players.
<br/>
The server hosting the game is currently lended by one of the developers who also shares his bandwidth with all of you players. The domain name has been purchased by another of the developers.
</section>
</lwdoc>

View file

@ -0,0 +1,43 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Game Rules</title>
<section id="garule_intro" title="Introduction">
As in every game there are rules in LegacyWorlds. Those rules apply to all players and are listed in the following sections of the manual.
<br/>
Breaking any of those rules has a simple consequence: your account will be deleted and an explanation e-mail will be sent to the e-mail address associated with the account.
</section>
<section id="garule_multi" title="Multiple accounts">
As stated in the general rules, it's forbidden for one person to hold several accounts. If multi accounts are found by the staff all the suspicious accounts will be deleted.
<br/>
Occasional password sharing is allowed but abusing this authorisation will be met by the same consequence as multiple accounts holding.
</section>
<section id="garule_access" title="Accessing another player's account without authorisation">
Accessing someone else' account without their knowledge nor authorisation is not only illegal, it's cheating.
<br/>
If any player can be proved to have done so his account will be deleted.
</section>
<section id="garule_proxy" title="Using an open proxy to connect to the game">
Using an open proxy to connect to the game server is not only a security threat for our (TSeeker's and Ju's) network but also a suspicious behaviour from a player. Who would need to hide who he is unless he intends to do something that is against the rules?
<br/>
As a consequence all accounts connecting from open proxies will be deleted without warning.
<br/>
If you have no idea about what I might be talking about the probability this rule concerns you is close to 0 so don't bother....
</section>
<section id="garule_for" title="Forum behaviour">
Forum moderation rules are set up to try and prevent players from having an improper behaviour in the game community. But if those aren't sufficient, harsher measures can be taken.
<br/>
If a player gets banned more than 5 times from the forums, his account will be deleted.
</section>
<section id="garule_tool" title="External tools">
It is strictly forbidden to create external tools for personal or alliance purposes.
<br/>
If you are interested in building any tool related to the game, be it an irc bot, an alliance management feature or whatever system that easily allows to perform game related tasks, please contact the staff. We don't disagree with the concept of tools per se as long as they are accessible to all players. A lot of tools ideas are already foreseen for a future beta version or even this one. It would be completely stupid to develop the same thing twice .
As a consequence all tools should be either:<ul>
<li> built by the game staff and integrated into the game interface so that any player can use them</li>
<li> developed by players authorised to do so. In that case, they have to ask an authorisation from the staff so that the same tools aren't developped twice. If the development is authorised they can be granted the means to easily build the tool and host it on the game server if required software is available. The tool will in any case have to be made publicly available to all players, once it has been reviewed and approved by the staff.</li>
</ul>
Players who develop tools without authorisation will have their account deleted.
</section>
</lwdoc>

View file

@ -0,0 +1,37 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>General Game Information</title>
<section id="ggi_intro" title="Introduction">
This section of the manual presents some general information about the game including <mlink to="accga_acc">account creation</mlink> and <mlink to="accga_gm">games management</mlink> along with a presentation of the <mlink to="game_interface">main interface</mlink> and <mlink to="overview_page">overview page</mlink>.
</section>
<section id="ggi_home" title="Legacy Worlds Home page" linkto="home_page">
The LegacyWorlds home page consists in four different sections:<ul>
<li>a <mlink to="home_cons_top">top banner</mlink> containing a set of links</li>
<li>a <mlink to="home_cons_left">left panel</mlink> containing various forms and information</li>
<li>a <mlink to="home_cont">middle section</mlink> which consists in the body of the page</li>
<li>a <mlink to="home_cons_bottom">bottom banner</mlink> containing another set of links and credits</li>
</ul>
<mlink to="home_page">This part of the manual</mlink> presents those different sections more precisely.
</section>
<section id="ggi_accgam" title="Accounts and games" linkto="account_games">
Each player in LegacyWorlds has a single <mlink to="accga_acc">account</mlink> which provides him access to all possible <mlink to="accga_gm">games</mlink> he wishes to play. <mlink to="account_games">This section of the manual</mlink> explains in details how to <mlink to="accga_acc_new">create</mlink> and <mlink to="accga_acc_act">activate</mlink> an <mlink to="accga_acc">account</mlink> along with <mlink to="accga_acc_del">account deletion</mlink> and how to <mlink to="accga_gm">manage games</mlink>.
</section>
<section id="ggi_gen" title="Game interface" linkto="game_interface">
Each in game page is split into three sections:<ul>
<li><mlink to="gi_menu">Top banner</mlink>: you'll find there the main menu of the game</li>
<li><i>Banner:</i> here is located the title of the page you're currently on</li>
<li><i>Page body:</i> the actual contents of the page are there</li>
</ul>
In <mlink to="ggi_gen">this manual section</mlink>, more precision are provided about all those different parts of the interface.
</section>
<section id="ggi_over" title="Overview page" linkto="overview_page">
The <mlink to="overview_page">overview page</mlink> is the first page you get directed to when <mlink to="accga_login">logging into a LegacyWorlds Beta 5 game</mlink>. It provides a <mlink to="ovr_sh">short</mlink> or a <mlink to="ovr_lg">more complete</mlink> display of important facts about what is going on in game.
</section>
<section file="home_page.lwdoc"/>
<section file="account_games.lwdoc"/>
<section file="game_interface.lwdoc"/>
<section file="overview_page.lwdoc"/>
</lwdoc>

View file

@ -0,0 +1,39 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>General Rules</title>
<section id="grule_intro" title="Introduction">
As in every game there are rules. Those rules are to be agreed upon and followed by both sides: players and people running the game. Those are the topic of this section.
<br/>
Some general elements that didn't fit in any other section of the manual are also presented here.
</section>
<section id="grule_gpract" title="Good Practices" linkto="good_practices">
As in every system where you have an account and where you interact with other people some general good practice rules apply or should apply. Those are presented in this manual section.
</section>
<section id="grule_acc" title="Accounts" linkto="accounts">
Along with the above good practices, some rules apply to your account in Legacy Worlds. Those are summed up in this accounts section of the manual.
</section>
<section id="grule_game" title="Game Rules" linkto="game_rules">
As in every game there are rules. Those rules are detailes in the Game Rules section of the manual.
</section>
<section id="grule_fmod" title="Forum moderation rules" linkto="mod_rules">
In order for players to get to know each others and to play better as members of an alliance or simply of the LegacyWorlds community the game is set with some internal forums. Those forums are a tool for you to use and as all tools allowing people to say what they have to say some simple rules apply.
<br/>
So far we've always had a policy of free speech but as everyone knows one's freedom ends where begins someone else's freedom.
<br/>
As a consequence:<ol>
<li>Public forums are moderated by the staff and a set of volunteers appointed by staff members</li>
<li>Alliance forums are to be moderated by the alliance's leader and eventually other alliance members appointed by the alliance leader. If posts / threads that don't comply with the moderation rules are brought to the staff's attention, the alliance's leader will be held personally responsible. This means the same punishment will be applied to the alliance's leader as to the offender</li>
</ol>
</section>
<section id="grule_legal" title="Legal issues" linkto="legal">
The server on which the game is hosted is located in France. As a consequence French law is applicable. For those not familiar with it here are a few reminders about what it implies in the context of the game are summed up in this manual section.
</section>
<section file="good_practices.lwdoc"/>
<section file="accounts.lwdoc"/>
<section file="game_rules.lwdoc"/>
<section file="mod_rules.lwdoc"/>
<section file="legal.lwdoc"/>
</lwdoc>

View file

@ -0,0 +1,160 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Glossary</title>
<section id="glos_acc" title="Account">
A user in computing context is one who uses a computer system. Users may need to identify themselves for the purposes of accounting, security, logging and resource management. In order to identify oneself, a user has an account (a user account) and a username, and in most cases also a password (see below). Users employ the user interface to access systems, and the process of identification is often referred to as log in.
In LegacyWorlds each user has a single account that allows him to play as many LegacyWorlds game as he wishes among the available games.
</section>
<section id="glos_bi" title="Base income">
Income, generally defined, is the money that is received as a result of the normal business activities of an individual or a business.
<br/>
In the case of LegacyWorlds the base income represents the basic amount generated by a given planet, without taking into account factories output.
</section>
<section id="glos_batt" title="Battle Cruiser">
Battle cruisers are large and fast heavy combat and transport ships.
</section>
<section id="glos_cap" title="Capital Ship">
A capital ship is a ship equipped with hyperspace engines. As such it can travel from one stellar system to the next through hyperspace. Capital ships have hauls allowing them to transport a certain number of system ships.
</section>
<section id="glos_civtech" title="Civilian Technology">
A civilian technology is a technology which purpose is to improve the well-being of the citizens of the empire and the empire's efficiency.
</section>
<section id="glos_corr" title="Corruption">
In broad terms, corruption is the misuse by government officials of their governmental powers for illegitimate, usually secret, private enrichment. Misuse of government power for other purposes, like repression of political opponents and general police brutality, is not considered political corruption.
<br/>
In game, it causes the reduction of factories' productivity.
</section>
<section id="glos_cru" title="Cruiser">
Cruisers are heavy combat and transport capital ships.
</section>
<section id="glos_currfun" title="Current Funds">
The current funds of your empire represents the finantial capital it owns at the moment. It's the amount of money that can be used to build or buy items or implement technologies.
</section>
<section id="glos_dp" title="Daily Profits">
The daily profits of your empire corresponds to the amount of money it earns each day. It's the difference between your income and the various upkeep costs you have to pay to sustain your fleets.
</section>
<section id="glos_empire" title="Empire">
Generally, an empire is defined as a state that extends dominion over areas and populations that are culturally and ethnically distinct from the culture at the center of power. Like other states, an empire maintains its political structure at least partly by coercion.
<br/>
In the LegacyWorlds universe, an empire is constituted by the set of planets that are controlled by a given player.
</section>
<section id="glos_fac" title="Factory">
A factory or manufacturing plant is a large industrial building where workers manufacture goods or supervise machines processing one product into another. Most modern factories have large warehouses or warehouse-like facilities that contain heavy equipment used for assembly line production. Archetypically, factories gather and concentrate resources, workers, capital and plant.
<br/>
In LegacyWorlds there are two types of factories:<ul>
<li>Industrial Factories produce goods that are sold and provide income to your planets</li>
<li>Military Factories are dedicated to producing warfare</li>
</ul>
</section>
<section id="glos_fi" title="Fighter">
Fighters are light attack system ships.
</section>
<section id="glos_fleet" title="Fleet">
A fleet is a large formation of warships. In order to control your ships, you have them organised into fleets and you give orders to each of those fleets.
</section>
<section id="glos_fleetp" title="Fleet Average Power">
Each ship in LegacyWorld has a power. This power represents both its firepower and resistance to attacks. The total power of a fleet represents the combined power of the ships composing it.
</section>
<section id="glos_fundtech" title="Fundamental Technology">
A fundamental technology is a technology which goal is to improve the knowledge of the empire. As such a fundamental technology might not have direct application.
</section>
<section id="glos_ga" title="GA Ship">
GA Ships (shorthand for Ground Assault Ships) are light attack system ships equipped with troup pods. As such they are the only ships capable of taking over a planet.
</section>
<section id="glos_gam" title="Game">
A game in LegacyWorlds consists in a universe where a group of players play according to a set of rules using a given interface and a set of tools. Several LegacyWorlds games may be running at the same time, each possibly answering to different game parameters. Those various games might be for instance different betas.
</section>
<section id="glos_happ" title="Happiness">
Happiness is an emotional or affective state that feels good or pleasing. Happiness is often correlated to the presence of favorable events (such as a promotion, a marriage, lottery winnings, etc.) and the absence of troubles or bad luck (such as accidents, getting fired, divorce, conflicts, etc.).
<br/>
Happines is a concept used in LegacyWorlds to represent the overall satisfaction of one planet's population.
</section>
<section id="glos_hyp" title="Hyperspace">
Hyperspace is any region of space co-existing with our own universe (in some cases displaced in an extra spatial dimension) which may be entered using some sort of space-altering device. While hyperspace is in some way anchored to the normal universe, its properties are not the same as normal space, so traveling in hyperspace is largely inequivalent to traveling in normal space. This allows of faster than light (FTL) travel: while the shortest distance between two points in normal space is a straight line, hyperspace allows those points to be closer together, or a curved line in normal space to be straight, etc.
</section>
<section id="glos_int" title="Internal Transmission">
Internal Transmissions are messages that are automatically sent to your Internal Transmissions folder when important game events occur, such as battles, alliance related events, scientific assistance offers and the like.
</section>
<section id="glos_law" title="Law">
Law is the set of rules or norms of conduct which forbid, permit or mandate specified actions and relationships among people and organizations.
<br/>
In Legacyworlds researches might provide you with laws. Enacting those laws has an effect either positive or negative on game parameters.
</section>
<section id="glos_map" title="Map">
A map is a simplified depiction of a space, a navigational aid which highlights relations between objects within that space. A map is a two-dimensional, geometrically accurate representation of a three-dimensional space, in the case of LegacyWorlds the game universe, that is to say a galaxy.
<br/>
Different versions of the map of the universe are available, providing various useful information about your empire and its surroundings.
</section>
<section id="glos_miltech" title="Military Technology">
A military technology is a technology with direct military applications. It can either improve ships' speed, defenses or firepower.
</section>
<section id="glos_nebula" title="Nebula">
A nebula is an interstellar cloud of dust, gas and plasma. Some are the birthplace of stars. They are formed when very diffuse molecular clouds begin to collapse under their own gravity, often due to the influence of a nearby supernova explosion. The cloud collapses and fragments, forming sometimes hundreds of new stars. The newly-formed stars ionize the surrounding gas to produce an emission nebula. Other nebulae are formed by the death of stars; a star that undergoes the transition to a white dwarf blows off its outer layer to form a planetary nebula. Novae and supernovae can also create nebulae known as nova remnants and supernova remnants respectively.
<br/>
In the LegacyWorlds universe, nebulae are sectors of space where ships travel slowlier than in the rest of the universe.
</section>
<section id="glos_neup" title="Neutral Planet">
A neutral planet is a planet that doesn't belong to any player. It doesn't mean it doesn't have a government, just that it's not controlled by a player. Neutral planets don't build anything on their own and have the number of turrets or factories they had when they were created or abandoned.
</section>
<section id="glos_p-pl" title="P-* Planet">
A P-* planet is a planet just as every other planet. All planets are generated with a name of the form P-[xxx] where xxx represents any combination of letters and numbers. As players have the ability to rename planets, P- planets are often neutral planets.
</section>
<section id="glos_planet" title="Planet">
A planet is a celestial body that is in orbit around a star or stellar remnants; has a mass below the limiting mass for thermonuclear fusion of deuterium; and is above the minimum mass/size requirement for planetary status in our solar system.
<br/>
In the LegacyWorlds universe, there are 6 planets in each stellar system. Each can be colonised as part of one player's empire.
</section>
<section id="glos_planr" title="Planetary Remains">
In LegacyWorlds the Wormhole Supernova technology allows you to destroy a planet. The principle of the technology is to get a wormhole to collapse inside the planet, getting it to explode from the inside. The matter constituting the planet doesn't vanish and a field of debris is created, making travel through this region of space more difficult and as such slower.
</section>
<section id="glos_rank" title="Rankings">
Ranking is the process of positioning players on an ordinal scale in relation to others. A list arranged in this way is said to be in rank order. Different rankings are providing depending on the topic they are related to.
</section>
<section id="glos_rpoint" title="Research Points">
Each day the planets in each empire generate a certain amount of research points. This amount is linked to their population. Each technology in the technology graph costs a certain amount of research points and the points you've gained are used to make progresses in your researches.
</section>
<section id="glos_sa" title="Scientific Assistance">
As all technologies aren't available to all players, some means of exchanging technologies are necessary. Scientific assistance can be given or received to/from other players in the form of specific technologies or research points.
</section>
<section id="glos_servertime" title="Server Time">
The Server Time is the time set on the LegacyWorlds server. It is set to the Coordinated Universal Time (UTC).
<br/>
Coordinated Universal Time (UTC) is a high-precision atomic time standard. UTC has uniform seconds defined by International Atomic Time (TAI), with leap seconds announced at irregular intervals to compensate for the earth's slowing rotation, and other discrepancies. The leap seconds allow UTC to closely track Universal Time (UT), which is a time standard based on the earth's angular rotation, rather than a uniform passage of seconds.
</section>
<section id="glos_ship" title="Ship">
In the LegacyWorlds' context, a ship is obviously a starship or a spaceship. A starship is a spaceship designed for interstellar travel, specifically between star systems. Science fiction abounds with tales of such ships. Space-going vessels that are not intended for travel between star systems are often referred to as spaceships. For a more precise description of the different classes of ships available, look at the Fleets page of the manual.
</section>
<section id="glos_stellarsystem" title="Stellar System">
A stellar system is a system comprised of a star or group of stars, and, perhaps, planetary systems of smaller bodies (such as planets or asteroids), in gravitational association. The solar system is the stellar system comprised of Sol and other bodies, such as Earth, in orbit around it.
<br/>
In the LegacyWorlds universe, there are 6 planets in each stellar system. Each can be colonised as part of one player's empire.
</section>
<section id="glos_sys" title="System Ship">
A system ship is a ship that isn't equipped with hyperspace engine. As a consequence it can only travel in the stellar system it is located in unless it is carried by a capital ship.
</section>
<section id="glos_tech" title="Technology">
Despite its cultural pervasiveness, technology is an elusive concept. It can refer to material objects, such as machines, hardware or utensils, but it can also encompass broader themes, such as systems, methods of organization, and techniques.
<br/>
In the LegacyWorlds' universe a set of technologies are available for research, allowing for the evolution of youe empire.
</section>
<section id="glos_tick" title="Tick">
A tick is a moment in time during which an automatic game action occurs. At various time intervals, specialised scripts are triggered wich update different game data. Ticks are what make the game dynamic without it to be run real time, which allows for players not to be online all the time and reduces bandwidth.
</section>
<section id="glos_turr" title="Turret">
A turret is usually a rotating weapon platform. This can be mounted on a fortified building or structure such as an anti-naval land battery, or on an armoured fighting vehicle, a naval ship, or a military aircraft.
<br/>
In LegacyWorlds' universe, turrets are stationnary defenses that can be set up on planets to help destroy enemy fleets orbiting the planet.
</section>
<section id="glos_upk" title="Upkeep">
Upkeep represents the necessary care and management of equipment and operations. All mechanical equipment and organizations need continual maintenance to forestall a total system breakdown. This maintenance has a cost that is also called upkeep.
<br/>
In LegacyWorlds you have to pay an upkeep for factories, turrets and fleets.
</section>
<section id="glos_worm" title="Wormhole">
In physics, a wormhole (also known as Abbreviated Space) is a hypothetical topological feature of spacetime that is essentially a "shortcut" or "abbreviation" through space and time. A wormhole has at least two mouths which are connected to a single throat. If the wormhole is traversable, matter can 'travel' from one mouth to the other by passing through the throat.
In the LegacyWorlds universe, wormholes aren't theoretical anymore and various technologies are based on building and sustaining stable wormholes.
</section>
</lwdoc>

View file

@ -0,0 +1,27 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Good Practices</title>
<section id="gpract_intro" title="Introduction">
As in every system where you have an account and where you interact with other people some general good practice rules apply or should apply. Those are presented in this manual section.
</section>
<section id="gpract_pass" title="Password">
You'll find here a few advices about your password to access Legacy Worlds:<ul>
<li>Your password, as for everything requiring one, has to be complex enough if you don't want anyone to guess it and use your account without your knowledge. A short password is also easier to guess than a long one. The name of your dog is a very bad idea. A random combination of letters and digits along with special characters usually makes a good password</li>
<li>Don't use the same password as for a banking site, work or university login, email account and so on. If someone was to guess your Legacy Worlds account information he would then be able to access all those other accounts and might be able to do things that may cost a lot more than a few fleets or in game cash</li>
<li>Think about changing your password on a regular basis. This also helps reduce the risks of your account being used by someone else</li>
<li>Make sure you sign off before closing your browser's window. By doing so you prevent anyone who might have access to the same computer from using your account if they don't know your account information</li>
</ul>
</section>
<section id="gpract_resp" title="Respect towards other players">
The other players in the game aren't only nicks on the Internet. There are real persons with feelings beyond those nicks. As such you owe them the respect that is owed to every human being. Whatever their colour, their faith, their nationality, their religion, their opinions, their social behaviour and so on there is no point in saying anything that might hurt their feelings nor in exchanging insults.
<br/>
Your are also invited to avoid any offensive alliance or planet names. If the game administrators were to find any of those:<ul>
<li>The alliance would be disbanded by the game administrators</li>
<li>The planet would be taken from the player who owns it, neutralised and renamed as a P-* planet. Whatever fleets the former may have had orbiting the planet would be disbanded</li>
</ul>
<br/>
Keep in mind it's only a game and that there is no use in ressorting to degrading comments over a game.
</section>
</lwdoc>

View file

@ -0,0 +1,135 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Legacy Worlds Home Page</title>
<section id="home_intro" title="Introduction">
The LegacyWorlds home page consists in three different sections:<ul>
<li>a <mlink to="home_cons_top">top banner</mlink> containing a set of links</li>
<li>a <mlink to="home_cons_left">left panel</mlink> containing various forms and information</li>
<li>a <mlink to="home_cont">middle section</mlink> which consists in the body of the page</li>
</ul>
The following sections of the manual will present those various items.
</section>
<section id="home_cons" title="Constant sections">
<section id="home_cons_top" title="Top banner">
The top banner consists in the set of links that allow you to navigate between the various pages of the external LegacyWorlds web site:<ul>
<li><i>Home</i>: to go back to the home page</li>
<li><i>Create Account</i>: to go to the account creation form; this link is only present if you're not logged in yet</li>
<li><i>Manual</i>: to go to the manual page</li>
<li><i>Rankings</i>: to go to the external Rankings page</li>
</ul>
</section>
<section id="home_cons_left" title="Left panel">
<section id="home_cons_left_intro" title="Introduction">
The left panel can be split into two sections:<ul>
<li><i>Top part</i>: it includes account related data</li>
<li><i>Bottom part</i>: it presents some rankings or manual browsing facilities</li>
</ul>
</section>
<section id="home_cons_left_top" title="Top part">
The top part of this panel includes account related information.
<br/>
When you are <i>not logged in</i>, it presents three sets of data:<ul>
<li><i>login form</i>: in order to log in, type you <i>username</i> and <i>password</i> in the corresponding fields and click on the <i>Log in -></i> button. You will then log in into your account</li>
<li> <i>players information</i>: the number of <i>online players</i> and <i>registered players</i> are displayed below the login form</li>
<li><i>Terms of use</i>: ait's a link to a special page describing shortly the terms of use for the page</li>
</ul>
<br/>
When you are <i>logged in</i>, this section presents the <i>name of the account</i> with which you have logged in. Below you'll find a link to the <mlink to="pref_acc">account's preferences</mlink> pages and the <i>terms of use</i> page and a <i>Log out</i> link. Clicking on the <i>log out</i> button logs out the account and directs you to a special log out page.
</section>
<section id="home_cons_left_bottom" title="Bottom part">
On most pages, the bottom part of the left panel presents the <i>Top Ten</i> of the Public Beta 5 Overall round <mlink to="rankings">rankings</mlink>, including <i>Player name</i> and corresponding <i>number of Points</i>.
<br/>
The very bottom part of the left panel provides the version number of the newest LegacyWorlds game.
<br/>
On the <mlink to="home_cont_manual">manual page</mlink>, it contains manual <mlink to="home_cont_manual_nav">navigation tools</mlink>, that will be explained along with the <mlink to="home_cont_manual">manual page</mlink>.
</section>
</section>
</section>
<section id="home_cont" title="Page related sections">
<section id="home_cont_home" title="Home">
<section id="home_cont_home_intro">
The home page for the game has two different layouts depending if you're logged in or not. Each will be described in the next parapgraphs.
</section>
<section id="home_cont_home_nlog" title="Inf you are not logged in">
If you're <i>not logged in</i>, this page presents a quick introduction to the game. It also provides a link to the website of the team who built the game: <a href="http://www.deepclone.com/">DeepClone Development</a>.
<br/>
Below this introduction, you can find an <i>Online Games Directories</i> title. This part of the page lists online review of the game on the following websites:<ul>
<li><a href="http://www.mpogd.com/games/game.asp?ID=3499">Multiplayer Online Games Directory</a></li>
<li><a href="http://www.free-games.com.au/Detailed/1851.html">Free Games</a></li>
</ul>
The bottom part of the page includes a set of links allow you to access <i>other DeepClone Development games</i> related items:<ul>
<li><a href="http://www.f1managerpro.com/">F1 Manager Pro</a>: another online game developed by the team</li>
<li><a href="http://www.legacyworlds.com/beta4/">Legacy Worlds Beta 4</a>: this link directs you to the main page of the previous version of the game (beta 4) if you wish to play it. This older version will be kept running for a few more months</li>
<li><a href="http://legacygame.proboards44.com/">external forums</a>: since beta 1-4 didn't have any included forums, external forums on a website hosting message boards were created. This link directs you to this external forum.</li>
</ul>
</section>
<section id="home_cont_home_log" title="If you are logged in">
<section id="home_cont_home_log_intro" title="Introduction">
If you are <i>logged in</i>, this page is split into three sections:<ul>
<li>A <mlink to="accga_gm">games</mlink> related section</li>
<li>A <mlink to="vacation_mode">vacation mode</mlink> related section</li>
<li>A <mlink to="accga_acc_del">closing account</mlink> related section</li>
</ul>
The next paragraphs will cover all these topics.
</section>
<section id="home_cont_home_log_gam" title="Games related section">
The games related section presents the list of <mlink to="accga_gm">games</mlink> you are currently playing, including:<ul>
<li><i>Game name</i>: the name of the <mlink to="accga_gm">game</mlink></li>
<li><i>Planets</i>: the number of planets you own in this particular <mlink to="accga_gm">game</mlink></li>
<li><i>Cash</i>: the amount of money you own in this <mlink to="accga_gm">game</mlink></li>
</ul>
Clicking on the name of a <mlink to="accga_gm">game</mlink> will log you in this <mlink to="accga_gm">game</mlink>.
</section>
<section id="home_cont_home_log_vac" title="Vacation mode section">
<mlink to="vacation_mode">Vacation mode</mlink> allows you to take a break from the <mlink to="accga_gm">game</mlink>. Entering <mlink to="vacation_mode">vacation mode</mlink> doesn't deleted your <mlink to="accga_acc">account</mlink> nor your <mlink to="accga_gm">game data</mlink> and you're still able to access the pages of the <mlink to="accga_gm">games</mlink> you're playing. Being on <mlink to="vacation_mode">vacation</mlink> only means that your assets are protected but that you can't perform any game actions.
<br/>
This part of the page first of all provides you with some information about your <mlink to="vacation_mode">vacation</mlink> status:<ul>
<li><i>number of vacation credits</i>: vacation credits correspond to period of 6h during which you can stay in <mlink to="vacation_mode">vacation</mlink></li>
<li><i>Corresponding period of time</i>: the period of time corresponding to your amount of <mlink to="vacation_mode">vacation credits</mlink></li>
</ul>
Below is displayed a <i>Enter Vacation mode</i> button. Clicking the button starts the process of entering vacation mode which is described more precisely in the <mlink to="vacation_mode">vacation mode section</mlink> of the manual.
</section>
<section id="home_cont_home_log_acd" title="Closing account section">
Closing your account allows you to permanently remove all game data link to your account.
<br/>
This part of the page first of all explains what closing the account means. Below is displayed a <i>Close my account</i> button. Clicking the button gets you to the forms that allow you to actually close your account, which is explained more precisely in the <mlink to="accga_acc_clo">closing account</mlink> section of the manual.
</section>
</section>
</section>
<section id="home_cont_manual" title="Manual">
<section id="home_cont_manual_intro" title="Introduction">
Once on the manual page, you have access both to the <mlink to ="home_cont_manual_page">manual itself</mlink> and to a set of <mlink to="home_cont_manual_nav">tools</mlink> in <mlink to="home_cons_left_bottom">the bottom part of the left panel</mlink>. Both will be presented here.
</section>
<section id="home_cont_manual_page" title="Manual pages">
All manual pages are organised in the same fashion:<ul>
<li>The <i>title</i> of the manual section is displayed at the <i>top of the page</i></li>
<li>Below the title, the <i>contents</i> of the sections are displayed in a <i>bulleted list</i>. Each item in the list is an <i>internal link</i> to the corresponding part of the page</li>
<li>The <i>main parts</i> of each section (top level bullets in the contents) are separated by <i>horizontal lines</i></li>
<li>In the <i>body</i> of the page, each <i>title</i> is followed with a <i>Top</i> link on the right. Clicking this link will get you back to the <i>top of the page</i></li>
</ul>
</section>
<section id="home_cont_manual_nav" title="Navigation tools">
There are three kinds of navigation tools that allow you to browse the manual:<ul>
<li>A set of <i>navigation links</i>: those links (<i>Top</i>, <i>Previous</i>, <i>Up</i>, <i>Next</i>) allow you to go back and forth in your navigation session</li>
<li>A <i>search facility</i>: type in a <i>keyword</i> in the provided textfield and click on the <i>Search</i> button. This will direct you to a special result page displaying the manual sections including your search string with links to access them.</li>
<li>A <i>contents list</i>: This list includes a set of <i>manual topics</i> corresponding each to one manual page. Clicking on one of those topics will display the corresponding page.</li>
</ul>
</section>
</section>
<section id="home_cont_rank" title="Rankings">
The Rankings page allows you to access all <mlink to="rankings">rankings</mlink> for any LegacyWorlds <mlink to="accga_gm">game</mlink>. The top of the page consists in a form where you can choose the <mlink to="rankings">rankings</mlink> to display, by selecting:<ul>
<li><mlink to="accga_gm">Game</mlink>: the first drop down list allows you to select the <mlink to="accga_gm">game</mlink> for which you want to see the <mlink to="rankings">rankings</mlink></li>
<li><mlink to="rankings">Rankings</mlink>: the second drop down list allows you to select the type of <mlink to="rankings">rankings</mlink> to display</li>
</ul>
Clicking the <i>Display Rankings</i> button updates the rankings list in the bottom part of the page. This list includes for each player in the <mlink to="rankings">rankings:</mlink><ul>
<li><i>Rank</i>: number of the rank</li>
<li><i>Name</i>: name of the player</li>
<li><i>Points</i>: number of points the player has for this particular <mlink to="rankings">ranking</mlink></li>
</ul>
</section>
</section>
<section file="vacation_mode.lwdoc"/>
</lwdoc>

View file

@ -0,0 +1,54 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Law: discrimination</title>
<section id="ldisc_ext" title="Code penal Extract">
[...]
<section id="ldisc_ext_chap" title="CHAPTER V. OFFENCES AGAINST THE DIGNITY OF PERSONS">
<section id="ldisc_ext_chap_sec" title="SECTION 1. DISCRIMINATION">
<section id="ldisc_ext_chap_sec_art1" title="ARTICLE 225-1">
(Act no. 2001-1066 of 16 November 2001 Article 1 Official Journal of 17 November 2001)
<br/>
(Act no. 2002-303 of 4 March 2002 Article 4 Official Journal of 5 March 2002)
<br/>
Discrimination comprises any distinction applied between natural persons by reason of their origin, sex, family situation, physical appearance or patronymic, state of health, handicap, genetic characteristics, sexual morals or orientation, political opinions, union activities, or their membership or non-membership, true or supposed, of a given ethnic group, nation, race or religion.
<br/>
Discrimination also comprises any distinction applied between legal persons by reason of the origin, sex, family situation, physical appearance or patronymic, state of health, handicap, genetic characteristics, sexual morals or orientation, political opinions, union activities, membership or non-membership, true or supposed, of a given ethnic group, nation, race or religion of one or more members of these legal persons.
</section>
<section id="ldisc_ext_chap_sec_art2" title="ARTICLE 225-2">
Act no. 2001-1066 of 16 November 2001 Article 1 Official Journal of 17 November 2001
<br/>
Ordinance No. 2000-916 of 19 September 2000 Article 3 Official Journal of 22 September into force 1 January 2002
<br/>
Discrimination defined by article 225-1, committed against a natural or legal person, is punished by two years? imprisonment and a fine of ? 30,000 where it consists:<ol>
<li> of the refusal to supply goods or services;</li>
<li> of obstructing the normal exercise of any given economic activity;</li>
<li> of the refusal to hire, to sanction or to dismiss a person;</li>
<li> of subjecting the supply of goods or services to a condition based on one of the factors referred to under article 225-1;</li>
<li> of subjecting an offer of employment to a condition based on one of the factors referred to under article 225-1.</li>
</ol>
</section>
<section id="ldisc_ext_chap_sec_art3" title="ARTICLE 225-3">
(Act no. 2002-303. of 4 March 2002 Article 4 Official Journal of 5 March 2002)
<br/>
The provisions of the previous article do not apply to:<ol>
<li> discrimination based on state of health, when it consists of operations aimed at the prevention and coverage of the risk of death, of risks for the physical integrity of the person, or the risk of incapacity to work or invalidity. However, when it is based on the consideration of predictive genetic tests relating to an illness that has not yet commenced or the genetic predisposition towards an illness, this discrimination is punished by the penalties provided for by the previous article;</li>
<li> discrimination based on state of health or handicap, if it consists of a refusal to hire or dismiss based on a medically established incapacity, according to either the provisions of title IV of book II of the Labour Code, or of the laws defining the statutory framework of the public service;</li>
<li> recruitment discrimination based on gender when the fact of being male or female constitutes the determining factor in the exercise of an employment or professional activity, in accordance with the provisions of the Labour Code or of the laws defining the statutory framework of the public service.</li>
</ol>
</section>
<section id="ldisc_ext_chap_sec_art4" title="ARTICLE 225-4">
Legal persons may incur criminal liability for the offence defined under article 225-2, pursuant to the conditions set out under article 121-2. The penalties incurred by legal persons are:<ol>
<li> a fine, pursuant to the conditions set out under article 131-38;</li>
<li> the penalties enumerated under 2, 3, 4, 5, 8 and 9 of article 131-39.</li>
</ol>
The prohibition referred to in 2 of article 131-39 applies to the activity in the exercise of which or on the occasion of the exercise of which the offence was committed.
<br/>
[...]
<br/>
</section>
</section>
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,21 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Law: spam</title>
<section id="lspam_code" title="CONSUMER CODE (Legislative Part)">
[...]
<section id="lspam_code_art" title="Article L121-20-5">
(inserted by Order no. 2001-741 of 23 August 2001 art. 5 and art. 12 Journal officiel of 25 August 2001)
<br/>
Direct canvassing by a business, by means of automatic calling machines or faxes or electronic messages, of consumers who have not expressed their agreement to receive such calls is prohibited.
<br/>
Distance communication methods, other than those mentioned in the previous paragraph, involving personal communication, may only be used where the consumer has not raised an objection.
<br/>
The conditions under which the consumer expresses his agreement to receive the calls mentioned in the first paragraph, information that the professional must supply to the consumer regarding his opportunity to raise an objections as well as the conditions under which objection registers are kept are prescribed by Council of State decree.
<br/>
[...]
<br/>
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,57 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Law: unauthorised access</title>
<section id="lunauth_code" title="Code Penal extract">
[...]
<section id="lunauth_code_chap" title="CHAPTER III. - UNAUTHORISED ACCESS TO AUTOMATED DATA PROCESSING SYSTEMS">
<section id="lunauth_code_chap_art1" title="ARTICLE 323-1">
Ordinance no. 2000-916 of 19th September 2000 Article 3 Official Journal of 22nd September 2000 came into force the 1st January 2002
<br/>
Fraudulently accessing or remaining within all or part of an automated data processing system is punished by one year's imprisonment and a fine of 15,000 euros.
<br/>
Where this behaviour causes the suppression or modification of data contained in that system, or any alteration of the functioning of that system, the sentence is two years' imprisonment and a fine of 30,000 euros.
</section>
<section id="lunauth_code_chap_art2" title="ARTICLE 323-2">
Ordinance no. 2000-916 of 19th September 2000 Article 3 Official Journal of 22nd September 2000 came into force the 1st January 2002
<br/>
Obstruction or interference with the functioning of an automated data processing system is punished by three years' imprisonment and a fine of 45,000 euros.
</section>
<section id="lunauth_code_chap_art3" title="ARTICLE 323-3">
Ordinance no. 2000-916 of 19th September 2000 Article 3 Official Journal of 22nd September 2000 came into force the 1st January 2002
<br/>
The fraudulent introduction of data into an automated data processing system or the fraudulent suppression or modification of the data that it contains is punished by three years' imprisonment and a fine of 45,000 euros.
</section>
<section id="lunauth_code_chap_art4" title="ARTICLE 323-4">
The participation in a group or conspiracy established with a view to the preparation of one or more offences set out under articles 323-1 to 323-3, and demonstrated by one or more material actions, is punished by the penalties prescribed for offence in preparation or the one that carries the heaviest penalty.
</section>
<section id="lunauth_code_chap_art5" title="ARTICLE 323-5">
Natural persons convicted of any of the offences provided for under the present Chapter also incur the following additional penalties:<ol>
<li> forfeiture of civic, civil and family rights, pursuant to the conditions set out under article 131-26;</li>
<li> prohibition, pursuant to the conditions set out under article 131-27 to hold public office or to undertake the social or professional activity in the course of which or on the occasion of the performance of which the offence was committed, for a maximum period of five years;</li>
<li> confiscation of the thing which was used or intended for the commission of the offence, or of the thing which is the product of it, with the exception of articles subject to restitution;</li>
<li> mandatory closure, for a maximum period of five years of the business premises or of one or more of the premises of the undertaking used to commit the offences;</li>
<li> disqualification from public tenders for a maximum period of five years;</li>
<li> prohibition to draw cheques, except those allowing the withdrawal of funds by the drawer from the drawee or certified cheques, for a maximum period of five years;</li>
<li> public display or dissemination of the decision, in accordance with the conditions set out under article 131-35.</li>
</ol>
</section>
<section id="lunauth_code_chap_art6" title="ARTICLE 323-6">
Legal persons may incur criminal liability for the offences referred to under the present Chapter pursuant to the conditions set out under article 121-2.
<br/>
The penalties incurred by legal persons are:<ol>
<li> a fine, pursuant to the conditions set out under article 131-38;</li>
<li> the penalties referred to under article 131-39.</li>
</ol>
The prohibition referred to under 2 of article 131-39 applies to the activity in the course of which or on the occasion of the performance of which the offence was committed.
</section>
<section id="lunauth_code_chap_art7" title="ARTICLE 323-7">
Attempt to commit the misdemeanours referred to under articles 323-1 to 323-3 is subject to the same penalties.
<br/>
[...]
<br/>
</section>
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,41 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Legal Issues</title>
<section id="legal_intro" title="Introduction">
The server on which the game is hosted is located in France. As a consequence French law is applicable. For those not familiar with it here are a few reminders about what it implies in the context of the game.
</section>
<section id="legal_access" title="About unauthorised access to automated data processing systems" linkto="law_unauthorised_access">
This legal topic covers both:<ul>
<li>Access to anyone's account without his knowledge: using whatever mean (guessing, brute force, keystroke logger and such) to acquire anyone's account information and use it without the legitimate owner's knowledge is prohibited</li>
<li>Unauthorised access to the server: using whatever mean to gain access to a server on which you don't have permissions is also prohibited by law</li>
</ul>
Legacy Worlds' accounts and Legacy World's server both fit into that legal category and you'll find <mlink to="law_unauthorised_access">here</mlink> the extracts of the french Code Penal wich concerns that kind of criminal offense.
</section>
<section id="legal_data" title="About stored personal data">
The law number 78-17, from the 6th january 1978 known in France as "Loi informatique et libertes" aims at ensuring that data privacy is applied to the collection, storage, and use of personal data. The main principles for regulation of personal data processing are as follows (list not inclusive):<ul>
<li>all illegal means of data collection are forbidden;</li>
<li>the aim of the data files must be explicitly stated;</li>
<li>people registered in files must be informed of their rights, for example, for rectification and deletion of data on demand;</li>
<li>finally, no decision about an individual can be decided by a computer.</li>
</ul>
The archival of sensitive information can result in 5-year prison term and a 300 000 euros fine.
<br/>
An official translation of the complete text can be found <a href="http://www.cnil.fr/fileadmin/documents/uk/78-17VA.pdf">here</a> in PDF format. You can also have a look at the CNIL (French governmental Commission in charge of data privacy related issued) <a href="http://www.cnil.fr/index.php?id=4"> website</a>.
<br/>
The amount of personal data stored in Legacy Worlds is limited to e-mail addresses but you nevertheless have the rights described in this law. This e-mail addresses database is used for internal game related actions only and won't be sold nor offered to any third party for commercial purpose. The only persons who might access it are the game administrators. You can ask for access, rectification, deletion of your own personal data by contacting the game administrators.
</section>
<section id="legal_spam" title="About spam and commercial messages" linkto="law_spam">
The messaging system and the forums provided in Legacy Worlds are to be used for game related topics and to build up a players' community only. As a consequence no spam nor commercial messages can be tolerated.
<br/>
You may find <mlink to="law_spam">here</mlink> an extract of the French Consumer Code about unsolicited commercial messages.
</section>
<section id="legal_discri" title="About discrimination" linkto="law_discrimination">
French law is also very strict on any kind of discrimination and no behaviour of the kind can be tolerated in-game. This means that you can't dismiss any player for whatever particularity he may have, be it sex, age, physical characteristic, religion or whatever. The copy of the French Code Penal on this subject can be found <mlink to="law_discrimination">here</mlink>.
</section>
<section file="law_discrimination.lwdoc"/>
<section file="law_spam.lwdoc"/>
<section file="law_unauthorised_access.lwdoc"/>
</lwdoc>

View file

@ -0,0 +1,11 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Manual</title>
<section file="overview.lwdoc" />
<section file="background.lwdoc" />
<section file="game_overview.lwdoc" />
<section file="tutorial.lwdoc" />
<section file="topics.lwdoc" />
</lwdoc>

View file

@ -0,0 +1,131 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Maps</title>
<section id="maps_intro" title="Introduction">
LegacyWorlds takes place in a far far away <i>galaxy</i>. The <i>maps</i> allow you to get a grasp on the <i>lay-out of this galaxy</i>.
<br/>
This manual section will first of all introduce <mlink to="maps_conc">basic concepts</mlink> about the galaxy and then present the <mlink to="maps_maps">various available maps</mlink> along with the <mlink to="maps_com">associated controls</mlink>.
</section>
<section id="maps_conc" title="Basic Concepts">
<section id="maps_conc_gal" title="Galaxy lay-out">
<section id="maps_conc_gal_intro" title="Introduction">
A <i>galaxy</i> is a <i>huge gravitationally bound system</i> of stars, interstellar gas and dust, plasma, and (possibly) unseen dark matter. Stars in the galaxy all <i>orbit a common center of gravity</i>.
<br/>
Representing a galaxy as it should be would be of course <i>very difficult to read</i> as distances between objects are huge compared to the size of the objects. Moreover galaxies aren't exact planes and distances between objects vary from object to object.
</section>
<section id="maps_conc_gal_grid" title="Galaxy grid">
<section id="maps_conc_gal_grid_bas" title="Basic system">
<i>For ease of reading</i> and understanding the <i>galaxy</i> in which the game takes place is represented inside a <i>grid</i>, which consists in a <i>distorted view of reality</i>.
<br/>
Two objects are in adjacent grid squares because they are relatively close to one another in reality. But it doesn't mean the distances aren't tremendous.
</section>
<section id="maps_conc_gal_grid_squ" title="Grid squares">
<i>Each square</i> in the galaxy grid contains <i>6 objects</i>. Those objects may be <mlink to="emp_conc_plan">planets</mlink>, <mlink to="ipp_ot_pre">planetary remains</mlink> or parts of a <mlink to="ipp_ot_neb">nebula</mlink>.
<br/>
Within a planetary system, planets orbit the central star in elliptical orbits. Eah object orbits the star at a different distance. Thus each object is said to be located on a different orbit. Orbits are ordered according to the distance to the star. The first orbit is the closest while the 6th is the furthest.
<br/>
Even if no planetary system exists inside a nebula the same orbit system is applied in the game galaxy. As a consequence nebula squares are also split in 6 orbits, representing each one region of the nebula square.
<br/>
In the grid representation of LegacyWorlds galaxy, the object located on the first orbit is the first one in the list of items in the stellar system grid square and so on.
</section>
</section>
<section id="maps_conc_gal_ex" title="An expanding galaxy">
The LegacyWorlds galaxy is also an <i>expanding galaxy</i>. It's still young and contains enough dense molecular clouds to produce new generations of stars, thus increasing its size. The in game universe expansion is <i>triggered by new players joining the game</i> in order to provide them with enough room to settle in.
</section>
</section>
<section id="maps_conc_stel" title="Stellar objects">
As mentionned earlier various stellar objects are present in the galaxy:<ul>
<li><mlink to="emp_conc_plan">planets</mlink></li>
<li><mlink to="ipp_ot_pre">planetary remains</mlink></li>
<li><mlink to="ipp_ot_neb">nebula</mlink></li>
</ul>
All those objects are discussed in mode details in the <mlink to="ipp_ot">Types of stellar objects</mlink> section of the <mlink to="planet">individual planet page</mlink> manual page.
</section>
</section>
<section id="maps_maps" title="Various maps">
<section id="maps_maps_intro" title="Introduction">
In order to help you navigate your <mlink to="ships">ships</mlink> in LegacyWorlds galaxy <i>three kinds of maps</i> are available:<ul>
<li><mlink to="maps_maps_pla">Planets Map</mlink>: this map displays <i>planet names</i> for each planet</li>
<li><mlink to="maps_maps_all">Alliance Map</mlink>: this map displays <i>alliances tag</i> for each planet</li>
<li><mlink to="maps_maps_lst">Listing</mlink>: this presents the planets in the galaxy as a <i>list</i></li>
</ul>
<mlink to="maps_com">Common features</mlink> are also available for all kinds of maps.
</section>
<section id="maps_com" title="Common features">
<section id="maps_com_intro" title="Introduction">
All maps present two features that work the same in all cases:<ul>
<li><mlink to="maps_com_cont">Maps controls</mlink>: these controls allow you to customise the display of the maps</li>
<li><mlink to="maps_com_cap">Maps caption</mlink>: the caption explains the various colour codes used on the map</li>
</ul>
The next paragraphs explain both topics more precisely.
</section>
<section id="maps_com_cont" title="Maps controls">
The common controls <i>at the top of the page</i> allow you to <i>choose the map to display and its parameters</i>. More precisely those features include:<ul>
<li><i>Display</i>: the drop down menu allows you to <i>select the type of map</i> you want to see among the three available modes</li>
<li><i>Grid size</i>: the drop don menu allows you to <i>change the size of the grid to diplay</i>, from 1 system to 7x7 systems</li>
<li><i>Center on</i>: selecting the corresponding radio button or typing something on the same line as a radio button allows you to chose to <i>center the map</i> either on:<ul>
<li><i>coordinates</i>: you have to type the <i>X and Y coordinates</i> to center the map on in the two provided textfields</li>
<li><i>own planet</i>: the drop down list allows you to select the <i>name of a planet you own</i> on which you want the map to be centered</li>
<li><i>planet</i>: type the <i>name of a planet</i> in the provided textfield allows you to center the map on this planet</li>
</ul></li>
</ul>
The <i>Update Diplay</i> button allows to <i>take into account the modifications</i> you might have made on the map parameters.
<br/>
</section>
<section id="maps_com_cap" title="Maps caption">
A <i>caption</i> is also presented. the map colours include:<ul>
<li><i>Green</i>: your <mlink to="ipp_own">own planets</mlink></li>
<li><i>Blue</i>: planets belonging to members of your <mlink to="alliance">alliance</mlink></li>
<li><i>White</i>: <i>other planets</i>, that is to say planets belonging to non alliance members, neutral planets and so on</li>
<li><i>Yellow</i>: <mlink to="ipp_ot_pre">planetary remains</mlink></li>
<li><i>Shades of red</i>: those aren't planets but <mlink to="ipp_ot_neb">nebula squares</mlink>. Each <i>level of red</i> represent an <i>opacity level</i> or <i>opacity class</i> for the corresponding nebula sector. You can't own nebula squares but can travel through them and station fleets on them but the speed of your ships is reduced depending on the opacity of the nebula square</li>
</ul>
</section>
</section>
<section id="maps_maps_pla" title="Planet map">
<section id="maps_maps_pla_grid" title="Planets Grid">
This is the <i>standard display</i>. It includes a grid of the requested size presenting X and Y coordinates.
<br/>
On the borders of the grid <i>clicking on arrows</i> allows you to <i>move the focus</i> of the displayed grid on the complete map. <i>Left and right arrows</i> allow you to move <i>along the X axis</i> whereas <i>top and bottom arrows</i> allow you to move <i>along the Y axis</i>.
</section>
<section id="maps_maps_pla_squ" title="Map squares">
<i>In stellar systems</i> are presented for each <mlink to="planet">planet</mlink>:<ul>
<li>a <i>planet image</i></li>
<li>a <i>planet name</i>: the name is a link to an <mlink to="planet">individual planet page</mlink>. The contents of the individual planet page depends on the <mlink to="ipp_pil">level of information</mlink> you have on the planet, that is to say whether it's yours, belongs to your alliance, you have fleets on it and so on</li>
</ul>
<i>In nebula squares</i> are displayed:<ul>
<li>in <i>shades of red</i> the <i>names</i> of the different nebula sectors</li>
<li>the <i>background image</i> depends on the <i>average opacity</i> of the nebula square</li>
</ul>
</section>
</section>
<section id="maps_maps_all" title="Alliance map">
<section id="maps_maps_all_grid" title="Alliance grid">
This display is a <i>specialised</i> one that allow you to grasp where various <mlink to="alliance">alliances</mlink> are <i>settled in</i>. It includes a grid of the requested size presenting X and Y coordinates.
<br/>
On the borders of the grid <i>clicking on arrows</i> allows you to <i>move the focus</i> of the displayed grid on the complete map. <i>Left and right arrows</i> allow you to move <i>along the X axis</i> whereas <i>top and bottom arrows</i> allow you to move <i>along the Y axis</i>.
</section>
<section id="maps_maps_all_squ" title="Map squares">
<i>In stellar systems</i> are presented for each <mlink to="planet">planet</mlink>:<ul>
<li>a <i>planet image</i></li>
<li> an <mlink to="alliance">alliance</mlink> tag. <i>Untagged planets</i>, that is to say planets which don't belong to any alliance, are presented with <i>empty brackets</i></li>
</ul>
In nebula squares are displayed:<ul>
<li>in <i>shades of red</i> the text <i>N/A</i> for all different nebula sectors</li>
<li>the <i>background image</i> depends on the <i>average opacity</i> of the nebula square</li>
</ul>
</section>
</section>
<section id="maps_maps_lst" title="Listing">
In <i>listing mode</i> planets in the selected area are presented <i>as a list</i> which includes for each <mlink to="planet">planet</mlink>:<ul>
<li><i>Coordinates</i>: <i>coordinates</i> of the planet </li>
<li><i>Planet</i>: planet <i>image and name</i>. The planet name is a link to an <mlink to="planet">individual planet page</mlink>. The contents of this page depends on the <mlink to="ipp_pil">level of information</mlink> you have on the planet, that is to say whether it's yours, belongs to your alliance, you have fleets on it and so on.</li>
<li><i>Tag</i>: tag of the <mlink to="alliance">alliance</mlink> to which the planet belongs. <i>Empty brackets</i> are displayed for <i>untagged planets</i>, that is to say planets which don't belong to any alliance. A <i>-</i> is displayed for <i>nebula sectors</i></li>
<li><i>Opacity</i>: it represents the <i>density of matter</i> in the area which influences <mlink to="ship_cat_speed">ships speed</mlink>. The opacity is mostly interesting for <i>nebula sectors</i> where it represents the <i>class</i> of the nebula. It's <i>0 for viable planets</i> and <i>1 for planetary remains</i>, that is to say planets which have been destroyed.</li>
</ul>
As in all lists <i>clicking on the title</i> of one column allows you to <i>order the items</i> in the list according to the values of that field, either in descending or ascending order. <i>Clicking again</i> on the same title allows to <i>switch between descending and ascending</i> order.
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,191 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Buying and accepting a gift</title>
<section id="buy_intro" title="Introduction">
When items are on sale, salers need customers. This part of the manual explains how to make buying offers, how to accept gifts and so on.
<br/>
Two kinds of sales offers exist in Legacy Worlds:<ul>
<li>Public Offers: the sale offers are made publicly and all players can buy items offered for sale</li>
<li>Direct offers: the sale or gift offers are only made to one player (you) and noone else is aware of them except you a,d of course the seller</li>
</ul>
Each category is managed from a particular subpage of the marketplace page through the corresponding link at the top of the page body. The next sections will describe each case.
</section>
<section id="buy_pub" title="Public Offers">
<section id="buy_pub_intro" title="Introduction">
Public sales offers are accessible through the Public Offers subpage of the marketplace page. The offers are displayed in a geograpical basis. This means that all offers aren't displayed at once. Only offers in a particular region of space are listed.
<br/>
As a consequence, the subpage is split in two sections:<ul>
<li>The left part of the page lists planets and fleets sales offers in the region of space that is currently in focus</li>
<li>The right part of the page provides a tool that allows to navigate the galaxy and change the area of space that is under focus</li>
</ul>
The next sections will describe each part of the subpage.
</section>
<section id="buy_pub_look" title="Looking for sales offers">
The right part of the page provides four different means to change the focus of the sales search:<ul>
<li>Minimap: this minimap is centered on the system in which is located your first planet and displays one stellar system at a time. Arrows are diplayed around the minimap. Using the arrows around the map allows you to change the focus of the minimap and move around that system</li>
<li>Centre on coordinates: you can center the minimap on a particular stellar system based on its coordinates. To do you you have to select the relevant radio button and the coordinates of the stellar system in the provided textfields. Clicking the Change Display button centers the map on this system</li>
<li>Centre on own planet: you can also center the minimap on one of your own planets. To do so, select the relevant radio button and choose the planet you're interested in in the drop down list. Clicking the Change Display button centers the minimap on the system the planet is located in</li>
<li>Centre on planet: you can also center the minimap on an stellar body based on its name. In that case select the corresponding radio button and type in the name of the stellar object in the provided textfield. Clicking the Change Display button centers the minimap on the system the stellar object is located in</li>
</ul>
You also have the possibility to define the size of the focus area. This size is represented by a distance around the stellar system displayed on the minimap. You can change this distance by using the Distance drop down list. Possible values are between 1 and 7.
<br/>
For each change you make in the form (except using the arrows in the minimap) don't forget to click the Update Display button to validate your changes.
</section>
<section id="buy_pub_buy" title="Making buying offers">
<section id="buy_pub_buy_intro" title="Introduction">
All current planets and fleets sales offers in the selected area of space are listed on the left part of this subpage, if any. The rest of this section will detail both lists.
</section>
<section id="buy_pub_buy_plan" title="Planets for sale">
<section id="buy_pub_buy_plan_intro" title="Introduction">
The list of planet sales offers can be split into two parts:<ul>
<li>Top part: it includes a set of controls that allow you to easily navigate into the list</li>
<li>List per se: it's the actual list of pending offers</li>
</ul>
The next sections of the manual will cover both parts of the list.
</section>
<section id="buy_pub_buy_plan_cont" title="List controls">
On top of the list of pending offers a set of controls offer navigation means into the list.
<br/>
On the left side of the page, a drop down list allows to select a number of items to display on each page of the list. This number of items can be either 5, 10, 15, 20 or 25. If there are more items in total than this number, the list will be displayed onto several internal pages specific to the list without modifications of the rest of the Public Offers page.
<br/>
In the middle of the page is provided a search facility which allows you to search for particular planets. This search system consist in a textfield where you can type in a search string. Any planet which name contains the search string, wherever it may be located in the planet name, will match the search and be displayed.
<br/>
If there are more items in the list than have to be displayed on each list page, a drop down list appears on the right part of the page. This drop down list allows to select the list page to display.
</section>
<section id="buy_pub_buy_plan_list" title="Actual list">
Below the set of control are listed all planets sales offers. This list includes for each offer:<ul>
<li>Planet: the name of the planet on sale. This name is a link to the individual planet page</li>
<li>Coords.: the coordinates of the planet</li>
<li>Pop.: the total population of the planet</li>
<li>Turrets: the total number of turrets on the planet</li>
<li>Fact.: the total number of factories on the planet</li>
<li>Fleets: if a fleet is bundled with the planet, the number of ships of each category is displayed with the following code:<ul>
<li>G for GA ships</li>
<li>F for fighters</li>
<li>C for cruisers</li>
<li>B for battle cruisers</li>
</ul>If no fleet is bundled the No Fleet string is displayed</li>
<li>Owner: the name of the player currently owning the planet</li>
<li>Expiration: if the offer expires over time, an expiration time and date are displayed. Otherwise this field contains the Never string.</li>
<li>Price: for public sales, the price is the buying price, for auction the price is the last bid</li>
<li>Action: two actions are possible:<ul>
<li>For public sales: clicking the Buy link opens an alert confirmation window where you have to confirm to buy the planet at the displayed price</li>
<li>For Auctions sales: click the Place Bid link opens an alert window where you can type in your bid. That bid has to be higher than the previous one. The player who placed the higher bid when the expiration time is reached buys the planet</li>
</ul></li>
</ul>
Just as for most lists in game, clicking on the header of one column order the list items according to the value of this flied. Clicking again on the same header changes the ordering from ascending to descending and the other way around.
</section>
</section>
<section id="buy_pub_buy_fleet" title="Fleets for sale">
<section id="buy_pub_buy_fleet_intro" title="Introduction">
The list of fleets sales offers can be split into two parts:<ul>
<li>Top part: it includes a set of controls that allow you to easily navigate into the list</li>
<li>List per se: it's the actual list of pending offers</li>
</ul>
The next sections of the manual will cover both parts of the list.
</section>
<section id="buy_pub_buy_fleet_cont" title="List controls">
On top of the list of pending offers a set of controls offer navigation means into the list.
<br/>
On the left side of the page, a drop down list allows to select a number of items to display on each page of the list. This number of items can be either 5, 10, 15, 20 or 25. If there are more items in total than this number, the list will be displayed onto several internal pages specific to the list without modifications of the rest of the Public Offers page.
<br/>
In the middle of the page is provided a search facility which allows you to search for particular locations where flets are on sale. This search system consist in a textfield where you can type in a search string. Any location which name contains the search string, wherever it may be located in the location name, will match the search and be displayed.
<br/>
If there are more items in the list than have to be displayed on each list page, a drop down list appears on the right part of the page. This drop down list allows to select the list page to display.
</section>
<section id="buy_pub_buy_fleet_list" title="Actual list">
Below the set of control are listed all fleets sales offers. This list includes for each offer:<ul>
<li>Location: the name of the location where fleets are on sale. This name is a link to the individual page of this location</li>
<li>Coords.: the coordinates of the location</li>
<li>G.A.S.: the number of GA ships in the fleet</li>
<li>Fgt.: the number of fighters in the fleet</li>
<li>Cru.: the number of cruisers in the fleet</li>
<li>B.Cru.: the number of battle cruisers in the fleet</li>
<li>Owner: the name of the player currently owning the fleet</li>
<li>Expiration: if the offer expires over time, an expiration time and date are displayed. Otherwise this field contains the Never string.</li>
<li>Price: for public sales, the price is the buying price, for auction the price is the last bid</li>
<li>Action: two actions are possible:<ul>
<li>For public sales: clicking the Buy link opens an alert confirmation window where you have to confirm to buy the fleet at the displayed price</li>
<li>For Auctions sales: click the Place Bid link opens an alert window where you can type in your bid. That bid has to be higher than the previous one. The player who placed the higher bid when the expiration time is reached buys the fleet</li>
</ul></li>
</ul>
Just as for most lists in game, clicking on the header of one column order the list items according to the value of this flied. Clicking again on the same header changes the ordering from ascending to descending and the other way around.
</section>
</section>
</section>
</section>
<section id="buy_dir" title="Direct Offers">
<section id="buy_dir_intro" title="Introduction">
All current and past sales and gift offers that were made personally to you are listed on Direct Offers part of the marketplace page. This section is accessible through the Direct Offers link on top of the marketplace page. The rest of this section will detail both lists.
</section>
<section id="buy_dir_pend" title="Pending Offers">
<section id="buy_dir_pend_intro" title="Introduction">
The list of pending sale or gift offers can be split into two parts:<ul>
<li>Top part: it includes a set of controls that allow you to easily navigate into the list</li>
<li>List per se: it's the actual list of pending offers</li>
</ul>
The next sections of the manual will cover both parts of the list.
</section>
<section id="buy_dir_pend_cont" title="List controls">
On top of the list of pending offers a set of controls offer navigation means into the list.
<br/>
On the left side of the page, a drop down list allows to select a number of items to display on each page of the list. This number of items can be either 5, 10, 15, 20 or 25. If there are more items in total than this number, the list will be displayed onto several internal pages specific to the list without modifications of the rest of the Direct Offers page.
<br/>
In the middle of the page is provided a search facility which allows you to search for particular planets on sale or on which fleets are beeing sold. This search system consist in a textfield where you can type in a search string. Any planet which name contains the search string, wherever it may be located in the planet name, will match the search and be displayed.
<br/>
If there are more items in the list than have to be displayed on each list page, a drop down list appears on the right part of the page. This drop down list allows to select the list page to display.
</section>
<section id="buy_dir_pend_list" title="The list itself">
Below the set of control are listed all pending offers. This list includes for each offer:<ul>
<li>Received: the time and date when the offer was made</li>
<li>Sender: the name of the player who made the offer to you</li>
<li>Price: the price at which the offer has been made. This field is Free for gifts</li>
<li>To Player: the player to whom the offer has been made. This field is N/A for public and auction sales</li>
<li>Details: a sentense describing the item on sale:<ul>
<li>For planets: it includes planet name and coordinates, population, number of turrets and factories</li>
<li>For fleets: it includes the number of ships of each category along with the total fleet power</li>
<li>For planets with bundled fleets: it includes the information provided for both planet and fleets</li>
</ul></li>
<li>Accept offer link: clicking this link opens an alert box where you have to confirm you want to accept the offer and make the sale or gift effective</li>
<li>Decline offer link: clicking on this link opens a confirmation alert box. Confirming the action in this alert box rejects the offers.</li>
</ul>
Just as for most lists in game, clicking on the header of one column order the list items according to the value of this flied. Clicking again on the same header changes the ordering from ascending to descending and the other way around.
</section>
</section>
<section id="buy_dir_his" title="History">
<section id="buy_dir_his_intro" title="Introduction">
The sales or gift offers history can be split into two parts:<ul>
<li>Top part: it includes a set of controls that allow you to easily navigate into the list</li>
<li>List per se: it's the actual list of offers history</li>
</ul>
The next sections of the manual will cover both parts of the list.
</section>
<section id="buy_dir_his_cont" title="List controls">
On top of the list of offers history a set of controls offer navigation means into the list.
<br/>
On the left side of the page, a drop down list allows to select a number of items to display on each page of the list. This number of items can be either 5, 10, 15, 20 or 25. If there are more items in total than this number, the list will be displayed onto several internal pages specific to the list without modifications of the rest of the Direct Offers page.
<br/>
In the middle of the page is provided a search facility which allows you to search for particular planets or fleets offers. This search system consist in a textfield where you can type in a search string. Any planet which name contains the search string, wherever it may be located in the planet name, will match the search and be displayed.
<br/>
If there are more items in the list than have to be displayed on each list page, a drop down list appears on the right part of the page. This drop down list allows to select the list page to display.
</section>
<section id="buy_dir_his_list" title="The list itself">
Below the set of control are listed all offers in the history list. This list includes for each offer:<ul>
<li>Last Change: the time and date when the last change on the offer has occured. It might be a cancellation of someone accepting the offer for instance</li>
<li>Received: the time and date when the offer was received</li>
<li>Status: the outcome of the offer. The offer may have been cancelled or accepted or rejected</li>
<li>Sender: the name of the player who made the offer</li>
<li>Details: a sentense describing the item on sale:<ul>
<li>For planets: it includes planet name and coordinates, population, number of turrets and factories</li>
<li>For fleets: it includes the number of ships of each category along with the total fleet power</li>
<li>For planets with bundled fleets: it includes the information provided for both planet and fleets</li>
</ul></li>
</ul>
Just as for most lists in game, clicking on the header of one column order the list items according to the value of this field. Clicking again on the same header changes the ordering from ascending to descending and the other way around.
</section>
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,190 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Selling and Giving</title>
<section id="sell_intro" title="Introduction">
In order for exchanges to take place it is obvious that some items for sale are necessary. This part of the manual will cover this topic. It will go through the process of putting planets and fleets on sale, be it publicly or privately, going through the offers you're making or have already made and making gifts.
</section>
<section id="sell_put" title="Putting on sale">
<section id="sell_put_acc" title="Accessing the page">
In order to put an item on sale, you first of all have to choose the item. The process is a bit different depending on the type of item you want to sell:<ul>
<li>Planets: on the individual page of each planet, a Sell/Give link is displayed below the planet name among other action links. Clicking on this link directs you to the planet sale page</li>
<li>Fleets: on the Fleets page, once you have selected the fleet with corresponding checkbox, a Sell link appears among the other action links. Clicking on the link directs you the fleets selling page. It is also possible to sell a fleet bundled with a planet. This topic will be covered along with planets sales</li>
</ul>
</section>
<section id="sell_put_pla" title="Selling a planet">
<section id="sell_put_pla_intro" title="Introduction">
Once you have clicked on the Sell/Give link of a planet you get directed to a special page with similar items with the individual planet page. This page is split into four sections:<ul>
<li>Top planet section</li>
<li>Planet Overview</li>
<li>Give / Sale Planet</li>
<li>Bundled Fleets</li>
</ul>
The next paragraphs will go through the different sections and their role in the sale process.
</section>
<section id="sell_put_pla_top" title="Top planet section">
This part of the page is almost the same as for the individual planet page. See this section of the manual for more details. The only difference stands with the planetary control links below the planet name. There are only two sale related links:<ul>
<li>Confirm Sale: once you are statisfied with the choices you've made in the sale form, click on the link to confirm the sale and make it "official". Clicking the link will open a confirmation alert window where you have to confirm again in order to validate the sale offer</li>
<li>Cancel: click on this link to remove all changes you've made to the form and go back to the individual planet page of the planet</li>
</ul>
</section>
<section id="sell_put_pla_over" title="Planet overview">
This part of the page is identical to the Planet Overview section of the Individual Planet Page. See this section of the manual for more details.
</section>
<section id="sell_put_pla_sell" title="Give / sell planet">
This part of the page is the actual selling tool. The left part of the page consists in a set of radio buttons corresponding each to one category of sale. Depending on the choice you make, the right part differs because it's specific to the type of sale. The different possible values for the radio button are:<ul>
<li>Gift: in the case of a gift you're giving a planet to another player without any finantial compensation. The offer is targetted to a particular player. The data you have to fill in in the right part of the form are:<ul>
<li>Offer expires: use this drop down list to select the expiration time between the values Never, 6 hours, 12 hours, 1 day, 2 days, 3 days, 4 days and 5 days</li>
<li>Target player: use this text field to type in the name of the player to whom the offer has to be made</li>
</ul></li>
<li>Direct Sale: in the case of a direct sale, the sale offer is only made to one player but there is a price attached to the planet. The target player is the only other player who is aware of the sale offer. The data you have to fill in in the right part of the form are:<ul>
<li>Offer expires: use this drop down list to select the expiration time between the values Never, 6 hours, 12 hours, 1 day, 2 days, 3 days, 4 days and 5 days</li>
<li>Target player: use this text field to type in the name of the player to whom the offer has to be made</li>
<li>Price: use this text field to type in the amount of cash you wish to obtain in exchange for the planet</li>
</ul></li>
<li>Public Sale: in the case of a public sale, the sale offer is made in public and all players can see it. The first player who offers to buy the planet is the one with whom the sale is concluded. The data you have to fill in in the right part of the form are:<ul>
<li>Offer expires: use this drop down list to select the expiration time between the values Never, 6 hours, 12 hours, 1 day, 2 days, 3 days, 4 days and 5 days</li>
<li>Price: use this text field to type in the amount of cash you wish to obtain in exchange for the planet</li>
</ul></li>
<li>Auction Sale: in the case of an auction sale, the offer is also publicly available to all players. But you don't define a fix price for the planet. You can only set a minimum bid. The player who has the higher bid when the offer expires buys the planet for the price corresponding to his bid. The data you have to fill in in the right part of the form are:<ul>
<li>Offer expires: use this drop down list to select the expiration time between the values 6 hours, 12 hours, 1 day, 2 days, 3 days, 4 days and 5 days, The value Never is invalid in this case.</li>
<li>Minimum bid: use this text field to type in the minimum price you want to sell the planet to</li>
</ul></li>
</ul>
</section>
<section id="sell_put_pla_bund" title="Bundled fleets">
When putting a planet for sell or offering a planet as a gift you have the possibility to also offer the fleets orbiting the planet. The price for the planet then correspond to a bundle price for both the fleet and the planet. That's what this section of the manual is all about.
<br/>
This part of the page provides a list of all fleets you own that are orbiting the planet. This list includes the following fields:<ul>
<li>Name: the current name of the fleet</li>
<li>G.A. Ships: the number of GA ships in the fleet</li>
<li>Fighters: the number of fighters in the fleet</li>
<li>Cruisers: the number of cruisers in the fleet</li>
<li>Battle Cruisers:the number of battle cruisers in the fleet</li>
<li>Power: the total power of the fleet</li>
</ul>
In front of each fleet there is a checkbox. Checking the checkbox selects the fleet as having to be sold or given along with the planet.
</section>
</section>
<section id="sell_put_fleet" title="Selling a fleet">
<section id="sell_put_fleet_intro" title="Introduction">
Once you have selected fleets on the fleet page and clicked on the Sell link, you get directed to a special fleet selling page. In the top right section of the page are located the page action links:<ul>
<li>Cancel: this link is always present and clicking it removed all modifications you might have made and directs you back to the fleets page</li>
<li>Confirm: clicking this link validates the offer and you get directed back to the fleets page. It only appears when all form for all locations are filled in properly</li>
</ul>
<br/>
For each set of Planet name / coordinates is displayed:<ul>
<li>Selected Fleets: a list of all fleets you have selected for sale at this location</li>
<li>Sale details: a form allowing to define the sale parameters</li>
</ul>
</section>
<section id="sell_put_fleet_lis" title="List of fleets to sell">
For each location this list presents for each fleet to be sold or given:<ul>
<li>Fleet Name: the current name of the fleet</li>
<li>G.A. Ships: the number of GA ships in the fleet</li>
<li>Fighters: the number of fighters in the fleet</li>
<li>Cruisers: the number of cruisers in the fleet</li>
<li>Battle Cruisers:the number of battle cruisers in the fleet</li>
<li>Power: the total power of the fleet</li>
</ul>
At the bottom of the list a line presents the total for all fleets at this location.
</section>
<section id="sell_put_fleet_sell" title="Give / Sell fleet">
This part of the page is the actual selling tool. The left part of the page consists in a set of radio buttons corresponding each to one category of sale. Depending on the choice you make, the right part differs because it's specific to the type of sale. The different possible values for the radio button are:<ul>
<li>Gift: in the case of a gift you're giving a fleet to another player without any finantial compensation. The offer is targetted to a particular player. The data you have to fill in in the right part of the form are:<ul>
<li>Offer expires: use this drop down list to select the expiration time between the values Never, 6 hours, 12 hours, 1 day, 2 days, 3 days, 4 days and 5 days</li>
<li>Target player: use this text field to type in the name of the player to whom the offer has to be made</li>
</ul></li>
<li>Direct Sale: in the case of a direct sale, the sale offer is only made to one player but there is a price attached to the fleet. The target player is the only other player who is aware of the sale offer. The data you have to fill in in the right part of the form are:<ul>
<li>Offer expires: use this drop down list to select the expiration time between the values Never, 6 hours, 12 hours, 1 day, 2 days, 3 days, 4 days and 5 days</li>
<li>Target player: use this text field to type in the name of the player to whom the offer has to be made</li>
<li>Price: use this text field to type in the amount of cash you wish to obtain in exchange for the fleet</li>
</ul></li>
<li>Public Sale: in the case of a public sale, the sale offer is made in public and all players can see it. The first player who offers to buy the fleet is the one with whom the sale is concluded. The data you have to fill in in the right part of the form are:<ul>
<li>Offer expires: use this drop down list to select the expiration time between the values Never, 6 hours, 12 hours, 1 day, 2 days, 3 days, 4 days and 5 days</li>
<li>Price: use this text field to type in the amount of cash you wish to obtain in exchange for the fleet</li>
</ul></li>
<li>Auction Sale: in the case of an auction sale, the offer is also publicly available to all players. But you don't define a fix price for the fleet. You can only set a minimum bid. The player who has the higher bid when the offer expires buys the fleet for the price corresponding to his bid. The data you have to fill in in the right part of the form are:<ul>
<li>Offer expires: use this drop down list to select the expiration time between the values 6 hours, 12 hours, 1 day, 2 days, 3 days, 4 days and 5 days, The value Never is invalid in this case.</li>
<li>Minimum bid: use this text field to type in the minimum price you want to sell the fleet to</li>
</ul></li>
</ul>
</section>
</section>
</section>
<section id="sell_manag" title="Managing sales">
<section id="sell_manag_intro" title="Introduction">
All current and past sale and gift offers are listed on the Sent Offer part of the marketplace page. This section is accessible through the Sent Offers link on top of the marketplace page. The rest of this section will detail both lists.
</section>
<section id="sell_manag_pend" title="Pending Offers">
<section id="sell_manag_pend_intro" title="Introduction">
The list of pending sale or gift offers can be split into two parts:<ul>
<li>Top part: it includes a set of controls that allow you to easily navigate into the list</li>
<li>List per se: it's the actual list of pending offers</li>
</ul>
The next sections of the manual will cover both parts of the list.
</section>
<section id="sell_manag_pend_cont" title="List controls">
On top of the list of pending offers a set of controls offer navigation means into the list.
<br/>
On the left side of the page, a drop down list allows to select a number of items to display on each page of the list. This number of items can be either 5, 10, 15, 20 or 25. If there are more items in total than this number, the list will be displayed onto several internal pages specific to the list without modifications of the rest of the Sent Offers page.
<br/>
In the middle of the page is provided a search facility which allows you to search for particular planets on sale or on which fleets are beeing sold. This search system consist in a textfield where you can type in a search string. Any planet which name contains the search string, wherever it may be located in the planet name, will match the search and be displayed.
<br/>
If there are more items in the list than have to be displayed on each list page, a drop down list appears on the right part of the page. This drop down list allows to select the list page to display.
</section>
<section id="sell_manag_pend_list" title="The list itself">
Below the set of control are listed all pending offers. This list includes for each offer:<ul>
<li>Date: the time and date when the offer was made</li>
<li>Offer Type: the type of the offer. It can be either Gift, Private Sale, Public Sale or Auction Sale</li>
<li>Price: the price at which the offer has been made. This field is N/A for gifts and correspond to the current bid for auction sale</li>
<li>Expiration: the date and time when the offer expire</li>
<li>To Player: the player to whom the offer has been made. This field is N/A for public and auction sales</li>
<li>Details: a sentense describing the item on sale:<ul>
<li>For planets: it includes planet name and coordinates, population, number of turrets and factories</li>
<li>For fleets: it includes the number of ships of each category along with the total fleet power</li>
<li>For planets with bundled fleets: it includes the information provided for both planet and fleets</li>
</ul></li>
<li>Cancel link: clicking on this link opens a confirmation alert box. Confirming the action in this alert box cancel the offers.</li>
</ul>
Just as for most lists in game, clicking on the header of one column order the list items according to the value of this flied. Clicking again on the same header changes the ordering from ascending to descending and the other way around.
</section>
</section>
<section id="sell_manag_his" title="History">
<section id="sell_manag_his_intro" title="Introduction">
The sales or gift offers history can be split into two parts:<ul>
<li>Top part: it includes a set of controls that allow you to easily navigate into the list</li>
<li>List per se: it's the actual list of offers history</li>
</ul>
The next sections of the manual will cover both parts of the list.
</section>
<section id="sell_manag_his_cont" title="List controls">
On top of the list of offers history a set of controls offer navigation means into the list.
<br/>
On the left side of the page, a drop down list allows to select a number of items to display on each page of the list. This number of items can be either 5, 10, 15, 20 or 25. If there are more items in total than this number, the list will be displayed onto several internal pages specific to the list without modifications of the rest of the Sent Offers page.
<br/>
In the middle of the page is provided a search facility which allows you to search for particular planets or fleets offers. This search system consist in a textfield where you can type in a search string. Any planet which name contains the search string, wherever it may be located in the planet name, will match the search and be displayed.
<br/>
If there are more items in the list than have to be displayed on each list page, a drop down list appears on the right part of the page. This drop down list allows to select the list page to display.
</section>
<section id="sell_manag_his_list" title="The list itself">
Below the set of control are listed all offers in the history list. This list includes for each offer:<ul>
<li>Last Change: the time and date when the last change on the offer has occured. It might be a cancellation of someone accepting the offer for instance</li>
<li>Status: the outcome of the offer. The offer may have been cancelled or accepted or the item has been sold</li>
<li>Sent: the time and date when the offer was made</li>
<li>Offer Type: the type of the offer. It can be either Gift, Private Sale, Public Sale or Auction Sale</li>
<li>Price: the price at which the offer has been made. This field is N/A for gifts and correspond to the current bid for auction sale</li>
<li>To Player: the player to whom the offer has been made. This field is N/A for public and auction sales</li>
<li>Details: a sentense describing the item on sale:<ul>
<li>For planets: it includes planet name and coordinates, population, number of turrets and factories</li>
<li>For fleets: it includes the number of ships of each category along with the total fleet power</li>
<li>For planets with bundled fleets: it includes the information provided for both planet and fleets</li>
</ul></li>
</ul>
Just as for most lists in game, clicking on the header of one column order the list items according to the value of this field. Clicking again on the same header changes the ordering from ascending to descending and the other way around.
</section>
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,45 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Marketplace</title>
<section id="mar_intro" title="Introduction">
They might not be diplomatic relations per se but economic relations might be considered as a first step towards establishing more solid agreements. As such the marketplace is the place where you can buy or accept and sell or give fleets and planets in LegacyWorlds.
<br/>
The marketplace page is split into three subpages:<ul>
<li>Public Offers: this page presents the planets and fleets that are publicly offered for bidding by their owners. That's also where you can make buying offers.</li>
<li>Firect Offers: this page lists the planets and fleets that are directly offered to you and no other players, along with a transaction history</li>
<li>Sent Offers: this page lists the sales and gifts offers you've made. Those may be still pending or part of the transactions history</li>
</ul>
Those subpages are accessible through the links at the top of the body of the page.
<br/>
The next sections of this manual page will go through those different pages while presenting the processes of selling and buying items.
</section>
<section id="mar_sell" title="Selling and Giving" linkto="market_sell">
In order for exchanges to take place it is obvious that some items for sale are necessary. This part of the manual will cover this topic. It will go through the process of putting planets and fleets on sale, be it publicly or privately, going through the offers you're making or have already made and making gifts.
</section>
<section id="mar_buy" title="Buying and accepting a gift" linkto="market_buy">
When items are on sale, salers need customers. This part of the manual explains how to make buying offers, how to accept gifts and so on.
</section>
<section id="mar_aft" title="After a sale or gift">
<section id="mar_aft_can" title="Cancelling the sale">
After a sale has been concluded two possibilities exist to cancel the sale:<ul>
<li>If the buyer doesn't have enough money to purchase the item when the sale is concluded the sale is automatically cancelled</li>
<li> If the seller loses the fleet for sale in battle or loses control over the planet for sale the sale is cancelled</li>
<li>The seller has 4 hours to cancel the transfer after the sale has been concluded. To cancel the transfer:<ul>
<li>For planets: go to the individual planet page of the planet and click on the Cancel sale link among the planetary controls links below the planet name</li>
<li>For fleets: go to the fleets page and select the fleet for which you want to cancel the sale with the corresponding checkbox. Then click on the Cancel sale link among the action links at the bottom of the page</li>
</ul></li>
</ul>
</section>
<section id="mar_aft_gar" title="Guarantees">
There are no guarantees surrounding sales except that the requested price is provided to the seller and the control over the item (planet or fleet) is transfered to the buyer. This means that there might be a fleet waiting to destroy the sold fleet or retake the sold planet.
<br/>
In the end everything is a matter of honesty and reputation. If a player has a habit of retaking planets he has just sold the word will spead and it his doubtful other players will buy items from him very often. Just keep that in mind...
</section>
</section>
<section file="market_sell.lwdoc"/>
<section file="market_buy.lwdoc"/>
</lwdoc>

View file

@ -0,0 +1,79 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Messaging System</title>
<section id="msg_intro" title="Introduction">
The Messaging System in Legacy Worlds is very similar to a simple mail client. It allows for folder creation to manage and store messages and offers a linear or threaded view of messages. In the bottom left part of the messaging system pages there is a link that allows you to switch to the forums.
</section>
<section id="msg_comp" title="Compose a message">
Clicking on the Compose a message link on the Messages page directs you to a message form. You have to fill in the various elements in order to send a message:<ul>
<li>Message:- the drop down list allow you to select if you want to send the message to:<ul>
<li>a player</li>
<li>an alliance</li>
<li>a planet</li>
</ul></li>
<li>to:- you have to type in the text field the name of the recipient: player name, planet name or an alliance tag. In case of an alliance the message is sent to members with diplomatic privileges.</li>
<li>Subject:- type in the provided text field the subject of the message.</li>
<li>Message:- type in the provided textarea the body of the message.</li>
</ul>
The Send message button allows you to send the message to its recipients.
</section>
<section id="msg_fold" title="Folder management">
<section id="msg_fold_basics" title="Folder management basics">
Clicking on the Folders link on the messages page directs you to the folder management section of the page. This pages presents a list of all folders for your account including three default folders:<ul>
<li> Inbox:- received messages get stored here.</li>
<li>Internal Transmissions:- messages automatically sent by the game get stored here, including diplomatic messages, alliance specific messages and so on.</li>
<li>Sent Messages:- messages you have sent get stored in this folder.</li>
</ul>
The three default folders are permanent folders and can't be deleted.
</section>
<section id="msg_fold_new" title="Creating folders">
You can create a new folder by typing the new folder name in the provided text field and clicking on the Create button. The newly created folder will then be added to the folders list.
</section>
<section id="msg_fold_manex" title="Managing existing folders">
In the folders list a checkbox is displayed in front of each folder. Checking the checkbox allows you to perform actions on the folders. The action section of the page is displayed once you've checked a checkbox and offers:<ul>
<li>Flush:- the flush button is available for all folders. Clicking the Flush button empties all selected folders.</li>
<li>Delete:- the delete button is only available for custom folders. Clicking the Delete button deletes the selected folders and their contents.</li>
</ul>
</section>
</section>
<section id="msg_msg" title="Messages management">
<section id="msg_msg_acc" title="Accessing messages in a folder">
A list of all folders is displayed in the left part of the page. When unread messages are present in a given folder, the name of the folder is presented in bold with the number of unread messages between parenthesis. Clicking on the name of a folder allows to visualise the list of the messages it contains. This list presents several options:<ul>
<li>Messages per page:- the drop down list allows you to choose how many messages to display on each page.</li>
<li>Threaded view:- check this checkbox allows you to switch to thread view mode. Leaving the checkbox unchecked presents a linear display.</li>
<li>Page:- in case it's required this drop down list appears and allows you to navigate between pages of messages in the given folder.</li>
</ul>
The list also present various fields for each message:<ul>
<li>Subject:- subject of the message.</li>
<li>Date:- date and time the message was sent or received.</li>
<li>From:- author of the message.</li>
<li>To:- recipient of the message.</li>
</ul>
Clicking on the title of the columns allow you to order the messages according to that field either in descending or ascending order. Clicking several times on the same column header allows to switch betseen ascending and descending order.
</section>
<section id="msg_msg_act" title="Individual message actions">
In order to read a particular message you have to click on its subject. The body of the message is then displayed along with a [ Reply ] link. Clicking again on the subject of the message hides the body of the message again.
<br/>
Clicking on the reply link when the body of the message is displayed directs you to the Compose a message page with prefilled recipient and subject fields. See the <strong>Compose a message</strong> section of the manual for more information about this process.
</section>
<section id="msg_msg_act" title="Managing messages">
In any given folder, checkboxes are present:<ul>
<li>in front of the subject header:- checking this checkbox selects all messages in the folder.</li>
<li>in front of each message:- checking this checkbox selects the corresponding message.</li>
</ul>
Once messages have been selected several actions become available at the bottom of the page:<ul>
<li>Delete:- clicking the Delete button deletes selected messages.</li>
<li>Move:- clicking the Move button moves the selected messages to the folder chosen in the drop down list.</li>
</ul>
</section>
</section>
<section id="msg_int" title="Internal Transmissions">
Those are particular messages sent by the game under various circumstances:<ul>
<li>Game wide information messages.</li>
<li>Alliance wide information messages.</li>
<li>Empire specific information messages:- scientific exchange offers etc.</li>
</ul>
</section>
</lwdoc>

View file

@ -0,0 +1,77 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Forum Moderation Rules</title>
<section id="fmod_intro" title="Introduction">
In order for players to get to know each others and to play better as members of an alliance or simply of the LegacyWorlds community the game is set with some internal forums. Those forums are a tool for you to use and as all tools allowing people to say what they have to say some simple rules apply.
<br/>
So far we've always had a policy of free speech but as everyone knows one's freedom ends where begins someone else's freedom.
<br/>
As a consequence:<ol>
<li>Public forums are moderated by the staff and a set of volunteers appointed by staff members</li>
<li>Alliance forums are to be moderated by the alliance's leader and eventually other alliance members appointed by the alliance leader. If posts / threads that don't comply with the moderation rules are brought to the staff's attention, the alliance's leader will be held personally responsible. This means the same punishment will be applied to the alliance's leader as to the offender</li>
</ol>
</section>
<section id="fmod_rule" title="Moderation Rules">
<section id="fmod_rule_intro" title="Introduction">
Those rules apply to:<ol>
<li>Posts in public forums</li>
<li>Posts in alliance forums</li>
<li>Forum Signatures</li>
<li>Private Messages if their contents are brought to the staff's attention</li>
</ol>
If you have any questions or concerns regarding these rules, feel free to contact either Tseeker or Ju or Sycophant or El_Cristoph.
<br/>
The actual rules follow.
</section>
<section id="fmod_rule_post" title="Posting">
Offensive, vulgar, obscene, threatening, or hateful posts will not be allowed. As this has already been stated in the general rules in the manual, the server being hosted in France, those are considered as criminal offenses according to french law. Not that any of us would like to report you to the police, but people hosting public websites can be held responsible for what is being posted and you wouldn't want your dear staff to end up in jail if someone was to report it, would you?
<br/>
Posts that violate include, but are not limited to:<ul>
<li>Posting insults</li>
<li>Posting unrespectful comments towards other players because of their colour, their gender, their faith, their nationality, their religion, their opinions, their social behaviour and so on</li>
<li>Posting pornographic or obscene material</li>
<li>Posting links to pornographic or obscene pictures, stories, movies or material</li>
<li>Posting links to a website that is potentially damaging to your system or personal details by accessing it</li>
<li>Threatening another player</li>
<li>Repeated Flames</li>
</ul>
This is quite objective, but as always the Moderators have final say on the matter. This rule generally applies to trolls. We're not here to babysit you, folks, and we're not going to ban someone because they insulted you once.
</section>
<section id="fmod_rule_spam" title="Spam">
Unsolicited and/or multiple posting of threads/replies for the purposes of advertising or multiple posts with little to no content within a short period of time will not be allowed. No, we're not going to delete a post from a valid forum member advertising his or her new website *if done only once*. Members should not clutter the forum with useless posts, pushing posts with actual content off the front page. "Useless" is subjective, and up to the mod's discretion.
</section>
<section id="fmod_rule_length" title="Unreasonable Length/Size of Posts">
Long strings of text without line breaks(Ex.typing 100 D's with no spaces) can throw off the formatting of the page. If you intend to use a long string, please add line breaks. Anything larger tends to throw off the formatting of the entire page, and can really play havoc with those of us who use the smaller resolutions.
</section>
<section id="fmod_rule_forum" title="Posting in the Correct Forum">
Yes, we all know the general forum gets the most visitors. However, if your question/comment is about Bugs, please direct it to the Bugs forum. The same goes for eclectic etc. Threads found in the wrong forum will be moved.
</section>
</section>
<section id="fmod_punish" title="Punishment system">
Each violation contains a progression of penalties. They are ordered in such a way as that number 1 will be the reprisal for the first offense in that category, number 2 will be the next step up should you become a repeat offender, etc. Please note that depending on the severity of the action, as determined by the administrative staff, the progression of penalties may be completely bypassed where the result is immediate, permanent suspension from the forums and even the game.
<ol>
<li>Warning: A verbal warning from the mods, over either the messaging system, the e-mail address listed for your account, or through a response to the offending post</li>
<li>Probation: You are placed on probation. We will watch you, any further offense will result in immediate suspension. The admins and mods will keep track of probationary members</li>
<li>Suspension: You are suspended from the forums for one week. After one week you will again be in a probationary state, if you should commit the violation again, you will be banned immediately</li>
<li>Banning: Self-explanatory. You are banned from the forums. We will notify you by e-mail or private message if you have these methods available should this situation arise. If you do not have these methods available to us, it becomes your responsibilty to contact one of the mods for an explanation as to why you are banned. Banned members will be kept track of</li>
</ol>
Note also that should one person consistently collect warnings for numerous offenses yet not progress beyond the warning stage in any one of them, moderators reserve the right to determine an appropriate penalty for the number and severity of warnings. This should not be a game to see how many warnings you can collect without being punished.
</section>
<section id="fmod_compl" title="Complaints">
Moderators and staff members are human beings just like you. They have feelings and are due to:<ul>
<li>punish more severely some particular offenses because they consider them as more important</li>
<li>punish more severely some players because they have hard feelings towards them</li>
</ul>
As a consequence we consider you should have the right to complain if you consider you've been treated unfairly. To do so you should contact the staff and explain the situation. In such cases there are two options:<ol>
<li>either the staff considers the person who punished you went too far and the punishment will be lifted. The moderator will be flagged as having gone too far once</li>
<li>the staff agrees with the person who punished you and no further step will be taken except you'll be flagged as having complained for no valid reason once</li>
</ol>
Those flags will be used to help in the moderation system:<ol>
<li>If a moderator punishes players for no reason more than 5 times, he'll be removed from the moderation team</li>
<li>If you complain for no valid reason more than 5 times you'll be definitively banned from the forums</li>
</ol>
Moderating forums is a difficult task and everything should be done so that everyone can have faith in the moderating system, be him moderator or a simple player...
</section>
</lwdoc>

View file

@ -0,0 +1,47 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Money Page</title>
<section id="mon_intro" title="Introduction">
In game <i>money</i> has nothing to do with real money. It's an <i>imaginary currency</i> even if the sign used correspond to the euro sign (yes, yes, we're europeans...). <i>Money</i> is the main mean used in LegacyWorlds to acquire items, be it by <mlink to="ipp_own_bw">building</mlink> them or <mlink to="market_buy">from other players</mlink>.
<br/>
General information about the concept of <i>money</i> is provided in the <mlink to="emp_conc_cash">corresponding section of the empire manual page</mlink>. This maunal section is focused on the <i>Money page</i> of the <mlink to="game_interface">game interface</mlink>.
</section>
<section id="mon_cf" title="Current Funds">
This part of the page keeps you updated on the <i>current amount of money you have in bank</i> and that you can use to <mlink to="ipp_own_bw">build fleets</mlink>, <mlink to="ipp_own_po">improve your planets</mlink>, <mlink to="tech_topic_stat">implement technologies</mlink> or <mlink to="tech_law_status">enact laws</mlink>.
<br/>
Once your <mlink to="accga_acc">account</mlink> is <i>old enough</i>, it also provides you with a form with which you can <i>transfer cash</i> to another player. To <i>transfer cash to another player</i> fill in the <i>amount to transfer</i> in the first provided text field and the <i>player name</i> in the second one. Then click the <i>Ok</i> button.
</section>
<section id="mon_dp" title="Daily Profits">
This section of the page provides you with a quick overview of <i>your profits and losses</i> with three important figures:<ul>
<li><mlink to="mon_ppl">Planet Income</mlink>: sum of the <i>incomes</i> of all your <mlink to="planets">planets</mlink></li>
<li><mlink to="mon_fue">Fleet Upkeep</mlink>: sum of all the <i>costs</i> implied to sustain all your <mlink to="fleets">fleets</mlink></li>
<li><i>Daily Profits</i>: <i>difference</i> between the <mlink to="mon_ppl">Planet income</mlink> and the <mlink to="mon_fue">Fleet upkeep</mlink>. It's the amount of <i>money you currently earn</i> each day. This cash is delivered <i>twice a day</i> during <mlink to="ticks_tick">cash ticks</mlink>.</li>
</ul>
The two first items are links to the relevant detailled sections of the page.
</section>
<section id="mon_ppl" title="Planet Profit and Loss">
This list details for each of your <mlink to="planets">planets</mlink>:<ul>
<li><mlink to="planet">Planet</mlink>: name of the given <mlink to="planet">planet</mlink></li>
<li><i>Base income</i>: income derived from the <mlink to="emp_conc_pop">population</mlink> of the <mlink to="planet">planet</mlink></li>
<li><mlink to="emp_conc_fact_ind">Industrial Factories</mlink>: number of <mlink to="emp_conc_fact_ind">industrial factories</mlink> on the <mlink to="planet">planet</mlink></li>
<li><mlink to="emp_conc_fact_ind">Factory Income</mlink>: income generated by the <mlink to="emp_conc_fact_ind">industrial factories</mlink> on the <mlink to="planet">planet</mlink></li>
<li><i>Factory Upkeep</i>: costs to maintain all the <mlink to="emp_conc_fact">factories</mlink> (<mlink to="emp_conc_fact_ind">industrial</mlink> and <mlink to="emp_conc_fact_mil">military</mlink>) on the <mlink to="planet">planet</mlink></li>
<li><mlink to="ship_cat">Turret Upkeep</mlink>: cost to maintain all the <mlink to="ship_cat">turrets</mlink> on the <mlink to="planet">planet</mlink></li>
<li><i>Expense</i>: <i>sum of the costs</i> previously listed</li>
<li><i>Profit</i>: <i>sum of the profits</i> previously listed <i>minus the expenses</i></li>
</ul>
At the bottom of the list is displayed the <i>Total Daily Income</i> which sums all the <mlink to="planets">planets</mlink>' profits.
</section>
<section id="mon_fue" title="Fleet Upkeep Expenses">
This list details for each of your <mlink to="fleets">fleets</mlink>:<ul>
<li><i>Name</i>: name of the <mlink to="fleets_page">fleet</mlink> as defined in the <mlink to="fleets_page">Fleet page</mlink></li>
<li><i>Location</i>: place at which the <mlink to="fleets">fleet</mlink> is <i>located</i> or towards which it is <mlink to="fleets_moving">moving</mlink></li>
<li><i>Distance</i>: distance between the <i>current place</i> the <mlink to="fleets">fleet</mlink> is and its <i>destination</i></li>
<li><i>Delay</i>: <i>time</i> left in <mlink to="move_gen_hypnorm">hyperspace</mlink> before reaching the destination</li>
<li><i>Upkeep</i>: current <i>cost</i> to sustain this <mlink to="fleets">fleet</mlink></li>
</ul>
At the bottom of the list is displayed the <i>Total Fleet Upkeep</i> which sums all the <mlink to="fleets">fleets</mlink>' upkeeps.
</section>
</lwdoc>

View file

@ -0,0 +1,30 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Overview</title>
<section id="ov_bg" title="Background" linkto="background">
After years of internal conflicts and devastating wars humanity has finally achieved its ultimate goal: destroy its home planet, Earth. The only option left for the remaining survivors of the holocaust: flee to the stars in the hope of finding a new home and rebuild their civilisation. Hundreds of ships were launched into deep space looking for suitable planets and searched for years for some capable of sustaining life.
<br/>
As commandant of a small group of colonists you've finally managed to find a planet matching the required parameters and you're about to start rebuilding on it. It will be up to you to make it grow into a new galactic empire in a hostile universe. To achieve that goal you'll have to find allies among the other Earth refugees who settled in the neighbouring star systems and fight those willing to spoil your hard work.
<br/>
It will also be up to you to provide your citizens with what they might need and encourage the scientists of the expedition in their research to achieve new technological breakthroughts. It will be up to you to fufill Earth's legacy...
</section>
<section id="ov_go" title="Game Overview" linkto="game_overview">
Legacy Worlds is an online multiplayer intergalactic war game. Your goal as a player: build up an empire and defeat the other players. How to achieve that: through technological advancement, alliances with other players and of course conquests.
<br/>
Legacy Worlds is a tick based game. This means events are controlled at given intervals of time called ticks.
<br/>
Legacy Worlds is a text based game so don't expect any fancy graphics.
<br/>
At first started as an university project by one of the developers it's now developed by a little team which felt it was a pity to let it go to waste and disappoint its current players.
<br/>
This version is Beta 5 and is as the previous ones completely free.
</section>
<section id="ov_tut" title="Tutorial" linkto="tutorial">
This <mlink to="tutorial">tutorial</mlink> presents a few tips to help you getting started with the game. It's not the ultimate guide to Legacy Worlds and its scope is limited to your first days of gameplay. Becoming the best player in the game will then be up to you.
</section>
<section id="ov_topics" title="Manual - Topics" linkto="topics">
The manual for the game itself is split among a few sections. You can find out more about these topics on the <mlink to="topics">Manual Topics</mlink> page.
</section>
</lwdoc>

View file

@ -0,0 +1,105 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Overview Page</title>
<section id="ovr_intro" title="Introduction">
The overview page provides you with a summary of the situation of your <mlink to="empire">empire</mlink> along with general information about the <mlink to="universe">universe</mlink>.
<br/>
This overview page exists in two versions:<ul>
<li><mlink to="ovr_sh">Short Overview</mlink></li>
<li><mlink to="ovr_lg">Complete Overview</mlink></li>
</ul>
The difference between the two is of course that the <mlink to="ovr_lg">complete overview</mlink> includes more information and more precise data than the <mlink to="ovr_sh">short</mlink> one.
<br/>
You can <i>switch</i> between <mlink to="ovr_sh">short</mlink> and <mlink to="ovr_lg">complete</mlink> overview by clicking on the <i>link in the top right corner</i> of the page.
<br/>
The following sections of the manual will describe each of them.
</section>
<section id="ovr_sh" title="Short Overview">
This overview provides you with a few simple facts about your <mlink to="empire">empire</mlink> and the <mlink to="universe">universe</mlink>.
<section id="ovr_sh_emp" title="Empire">
Among <mlink to="empire">empire</mlink> related data you may find:<ul>
<li><mlink to="messages">Messages</mlink>: an update about <i>pending messages</i> along with links to the <i>relevant mail boxes</i> if you have <i>new messages</i>. A link to get directly to the <mlink kto="msg_comp">Compose page</mlink> of the <mlink to="messages">messaging system</mlink> is also provided</li>
<li><mlink to="planets">Planets</mlink>: this section sums up the status of your <mlink to="planets">planets</mlink>. It displays the <i>number of planets</i> you own, the total <mlink to="emp_conc_pop">population</mlink> of your <mlink to="empire">empire</mlink> and the total number of <mlink to="emp_conc_fact">factories</mlink> you have built</li>
<li><mlink to="fleets">Fleets</mlink>: this section indicates the total average <mlink to="ship_cat_pow">power</mlink> of your <mlink to="fleets">fleets</mlink></li>
<li><mlink to="money">Money</mlink>: here is displayed your total <mlink to="mon_dp">daily profit</mlink></li>
</ul>
</section>
<section id="ovr_sh_uni" title="Universe">
This section provides a few useful facts about the <mlink to="forums">universe</mlink>:<ul>
<li><mlink to="forums">Forums</mlink>: this section informs you if you have <i>unread topics</i> in either general or alliance specific <mlink to="forums">forums</mlink>. It also provides links to the page of each of those <mlink to="forums">forums' categories</mlink></li>
<li><mlink to="uover_gal">Planets</mlink>: this section indicates the total number of <mlink to="uover_gal">planets</mlink> in the <mlink to="universe">universe</mlink></li>
<li><mlink to="ticks">Next ticks</mlink>: here is provided a countdown to the <mlink to="ticks">next tick</mlink> of each <mlink to="ticks_tick">category</mlink>: battle, cash, day and hour tick.</li>
<li><mlink to="rankings">Rankings</mlink>: here are displayed your two major <mlink to="rankings">rankings</mlink>: <mlink to="rank_gen">general</mlink> and <mlink to="rank_rnd">round</mlink> rankings</li>
</ul>
</section>
</section>
<section id="ovr_lg" title="Complete Overview">
This overview provides you more detailed information about the same topics as the <mlink to="ovr_sh">short overview</mlink>.
<section id="ovr_lg_emp" title="Empire">
<section id="ovr_lg_emp_msg" title="Messages">
Here you will find some information about your <mlink to="messages">messaging system</mlink>'s status. For each of of your default <mlink to="msg_fold">folders</mlink> (<i>Inbox</i>, <mlink to="msg_int">Internal Transmissions</mlink> and <i>Outbox</i>) you will find:<ul>
<li><i>Name</i> of the <mlink to="msg_fold">folder</mlink>, consisting in a direct link to that <mlink to="msg_fold">folder</mlink></li>
<li><i>Number of messages</i> in the <mlink to="msg_int">folder</mlink></li>
<li><i>Number of unread messages</i> in the <mlink to="msg_int">folder</mlink> if any</li>
</ul>
A <mlink to="msg_comp">Compose</mlink> link which directs you to the <mlink to="msg_comp">compose page</mlink> of the <mlink to="messages">messaging system</mlink> is also available.
</section>
<section id="ovr_lg_emp_pla" title="Planets">
In the <mlink to="planets">Planets</mlink> section of the overview, you will find:<ul>
<li><mlink to="planets">Planets owned</mlink>: total number of <mlink to="planets">planets</mlink> in your <mlink to="empire">empire</mlink>, along with the average <mlink to="emp_conc_happ">happiness</mlink></li>
<li><mlink to="emp_conc_cor">Average corruption</mlink>: average <mlink to="emp_conc_cor">corruption</mlink> calculated based on <mlink to="emp_conc_cor">corruption</mlink> on each of your <mlink to="planets">planets</mlink></li>
<li><mlink to="emp_conc_pop">Total population</mlink>: <mlink to="emp_conc_pop">population</mlink> of your whole <mlink to="empire">empire</mlink> along with a per <mlink to="planet">planet</mlink> average</li>
<li><mlink to="emp_conc_fact">Total factories</mlink>: count of all your <mlink to="emp_conc_fact_mil">military</mlink> and <mlink to="emp_conc_fact_ind">industrial</mlink> factories throughtout your whole <mlink to="empire">empire</mlink> along with a per <mlink to="planet">planet</mlink> average</li>
<li><mlink to="ship_cat_list">Total turrets</mlink>: total count of the <mlink to="ship_cat_list">turrets</mlink> on all your <mlink to="planets">planets</mlink> with a per <mlink to="planet">planet</mlink> average</li>
</ul>
This section also include a <mlink to="planets">More Details</mlink> links which directs you to the <mlink to="planets">Planets general page</mlink>.
</section>
<section id="ovr_lg_emp_flt" title="Fleets">
In this section, you will find general information about your <mlink to="fleets">fleets</mlink>:<ul>
<li>total <mlink to="ship_cat_pow">fleet power</mlink></li>
<li>number of <mlink to="fleets">fleets</mlink> and number of <mlink to="battle">fleets engaged in battle</mlink> if any</li>
<li>a <mlink to="fleets_page">More Details</mlink> link to access directly the <mlink to="fleets_page">fleets page</mlink></li>
</ul>
</section>
<section id="ovr_lg_emp_res" title="Research">
This part of the complete overview indicates the number of new <mlink to="tech_topic_stat">technologies</mlink> (that is <mlink to="tech_list">technologies</mlink> you <mlink to="tech_topic_stat">haven't implemented</mlink> yet) that you have <mlink to="tech_topic_stat">discovered</mlink>. It also provides a direct link to the <mlink to="technology">Research page</mlink>.
</section>
<section id="ovr_lg_emp_mon" title="Money">
This section consists in a <mlink to="money">finantial fact sheet</mlink> for your <mlink to="mpire">empire</mlink>. It includes:<ul>
<li><mlink to="mon_ppl">Income</mlink>: total <mlink to="mon_ppl">daily income</mlink> of your <mlink to="empire">empire</mlink></li>
<li><mlink to="mon_fue">Fleet upkeep</mlink>: amount of money you have to spend each day to sustain your <mlink to="fleets">fleets</mlink></li>
<li><mlink to="mon_dp">Daily Profit</mlink>: amount of money you actually earn each day, once you have paid for your <mlink to="mon_fue">fleet upkeep</mlink></li>
</ul>
</section>
</section>
<section id="ovr_lg_uni" title="Universe">
<section id="ovr_lg_uni_for" title="Forums">
This section of the <mlink to="universe">Universe</mlink> overview provides you with a summary of the <mlink to="forums">forums</mlink>' status.
<br/>
It includes a list of the various <mlink to="for_nav">forums categories</mlink> with a <i>view</i> link which directs you to the page of this forums category. All <mlink to="forums">forums</mlink> in each category are listed. For each <mlink to="forums">forum</mlink>:<ul>
<li>The <i>name</i> of the <mlink to="forums">forum</mlink> consists in a link to the <mlink to="for_over">forum's main page</mlink></li>
<li>Next to the name, the <i>number of topics</i> in the <mlink to="forums">forum</mlink> is indicated</li>
<li>If relevant, the <i>number of unread topic or topics</i> with <i>unread posts</i> is displayed</li>
</ul>
</section>
<section id="ovr_lg_uni_uni" title="Universe">
Here you will find some data about the <mlink to="universe">universe</mlink> in which everything happens:<ul>
<li><i>Total number</i> of <mlink to="planets">planets</mlink></li>
<li>Number of grid squares in the <mlink to="universe">universe</mlink> which aren't actually occupied <i>stellar systems</i> with <mlink to="ipp_own">planets</mlink> but by <i>nebulas</i></li>
</ul>
It also includes some <mlink to="universe">universe</mlink> related links:<ul>
<li><mlink to="maps">Maps</mlink>: to access directly the <mlink to="maps">maps page</mlink></li>
<li><mlink to="universe_page">More Details</mlink>: to go to the <mlink to="universe_page">Universe main page</mlink></li>
</ul>
</section>
<section id="ovr_lg_uni_tick" title="Next Ticks">
As on the <mlink to="ovr_sh">short overview</mlink>, this part includes a countdown to the next <mlink to="ticks">tick</mlink> of each <mlink to="ticks_tick">category</mlink>: Battle tick, Cash tick, Day tick and Hour tick.
</section>
<section id="ovr_lg_uni_rnk" title="Rankings">
In this section, you will find the list of all <mlink to="rankings">rankings</mlink> with <i>your current rank</i> in each <mlink to="rankings">ranking</mlink>. It also provides a direct <mlink to="rankings">More Details</mlink> link to access the <mlink to="rankings">Rankings page</mlink>.
</section>
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,215 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Individual Planet Page</title>
<section id="ipp_intro" title="Introduction">
General concepts about <mlink to="emp_conc_plan">planets</mlink> are provided in the <mlink to="emp_conc_plan">planet</mlink> section of the <mlink to="empire">empire</mlink> manual page. The manual section you're reading now focuses on the <i>Individual Planet page</i> and presents its contents.
<br/>
This page is the <i>management page</i> for any <mlink to="ipp_own">individual planet you own</mlink> or an <i>information page</i> for <mlink to="ipp_ot">other stellar objects</mlink>.
</section>
<section id="ipp_ot" title="Types of stellar objects">
<section id="ipp_ot_intro" title="introduction">
In LegacyWorlds you can find <i>three kinds of stellar objects</i>. The next paragraphs will describe each type.
</section>
<section id="ipp_ot_plan" title="Planets">
<i>Planets</i> are the basic components of you <mlink to="empire">empire</mlink>. They are the most interesting stellar objects for us and the next two sections of this manual page concern them.
<br/>
To learn more about basic concepts about planets, see <mlink to="emp_conc_plan">this manual section</mlink>.
</section>
<section id="ipp_ot_pre" title="Planetary Remains">
When a <i>planet</i> has been <i>detroyed</i> by a <mlink to="ech_88">Wormhole Supernova</mlink>, the material the planet is composed of doesn't just disapear. Those are <i>planetary remains</i> which are indicated in <i>yellow</i> on the <mlink to="maps">maps</mlink>.
<br/>
You can fly through <i>planetary remains</i> with your <mlink to="fleets">fleets</mlink> and even <i>station there</i> but of course all the junk in the area have a <i>nasty effect</i>: it's quite difficult to navigate among floating rocks and your <mlink to="move_gen_compute">fleets are slowed down</mlink>. This is represented by the <i>opacity level</i> of the <i>planetary remains</i>.
<br/>
You can of course access the <mlink to="ipp_pil">corresponding detailed page</mlink> of any <i>grid area of the map</i> occupied by <i>planetary remains</i>. This page will indicate:<ul>
<li>the <mlink to="fleets">fleets</mlink> present there if you have yourself some <mlink to="fleets">fleets</mlink> on that particular <i>planetary remains</i></li>
<li>the <i>opacity level</i></li>
</ul>
</section>
<section id="ipp_ot_neb" title="Nebulas">
In the <mlink to="universe">universe</mlink> everything isn't filled with <i>planetary systems</i>. There are also <i>giant gas clouds</i> called <i>nebulas</i>. The are displayed in <i>shade of red</i> on the <mlink to="maps">maps</mlink>.
<br/>
Just as for <mlink to="ipp_ot_pre">planetary remains</mlink>, it's quite difficult to navigate through gas clouds and crossing <i>nebulas</i> with a <mlink to="move_gen_compute">fleet slows it down</mlink>. The <mlink to="move_gen_compute">speed of the fleet</mlink> crossing a <i>nebula</i> depends on its <i>opacity</i>: <i>denser</i> the cloud, <i>slower</i> the fleet.
<br/>
When looking at the <mlink to="ipp_pil">page of a nebula square</mlink>, you'll see:<ul>
<li>the <mlink to="fleets">fleets</mlink> present if you have a <mlink to="fleets">fleet</mlink> at those <i>coordinates</i></li>
<li>the <i>opacity level</i> of the square</li>
</ul>
</section>
</section>
<section id="ipp_pil" title="Planets - information levels">
<section id="ipp_pil_intro" title="introduction">
When accessing the <i>individual page</i> of a <i>planet</i>, the amount of <i>information varies</i>. Depending on the status of the planet towards you, the level of information you have access to changes. The next parapgraphs will present the data displayed in each case.
</section>
<section id="ipp_pil__own" title="Planets you own">
In that case you have access to a <mlink to="ipp_own">complete planetary management page</mlink> which is described in the <mlink to="ipp_own">next section</mlink> of this manual page.
</section>
<section id="ipp_pil_apla" title="Alliance planets with planets list access">
In the case of <mlink to="alliance">alliance</mlink> planets when you <i>have access</i> to the <mlink to="amanag_list_plan">planets list</mlink>, the individual planet page of an allied planet includes:<ul>
<li><i>Coordinates</i> of the <i>planet</i> on the <mlink to="maps">map</mlink></li>
<li><mlink to="alliance">Alliance</mlink> the owner of the <i>planet</i> belongs to (that is your own <mlink to="alliance">alliance</mlink>)</li>
<li>Total number of <mlink to="emp_conc_fact">factories</mlink> on the <i>planet</i></li>
<li>Total number of <mlink to="ship_cat">Turrets</mlink> on the planet</li>
</ul>
You have also access to three <i>action links</i>:<ul>
<li><mlink to="move_pract">Send Fleets</mlink>: click this link to <mlink to="move_pract">send fleets</mlink> to that particular <i>planet</i>. <mlink to="move_pract">Sending fleets</mlink> is covered in the <mlink to="move_pract">fleets section</mlink> of the manual</li>
<li><mlink to="maps">Centre Map</mlink>: clicking this link directs you to the <mlink to="maps">map page</mlink> with a <mlink to="maps">map</mlink> centered on that particular <i>planet</i></li>
<li><mlink to="msg_comp">Message</mlink>: clicking this link opens the <mlink to="msg_comp">compose form</mlink> of the <mlink to="messages">messaging system</mlink> with the <i>planet name</i> prefilled as <i>recipient</i>. This allows you to send a <mlink to="messages">private message</mlink> to the <i>planet's owner</i></li>
</ul>
</section>
<section id="ipp_pil_anpla" title="Alliance planets without planet list access">
In the case of <mlink to="alliance">alliance</mlink> planets, when you <i>don't have access</i> to the <mlink to="amanag_list_plan">planets list</mlink>, the amount of information provided on the <i>individual planet page</i> is very <i>limited</i>. It is equivalent to the data provided for any <mlink to="ipp_pil_oth">other planet</mlink>.
</section>
<section id="ipp_pil_flee" title="Planets you have fleets on">
If you have fleets stationed on a planet, the data provided are a bit more extended than for any random planet. You have access to:<ul>
<li><i>Coordinates</i> of the <i>planet</i> on the <mlink to="maps">map</mlink></li>
<li><mlink to="alliance">Alliance</mlink> the owner of the <i>planet</i> belongs to</li>
<li><mlink to="fleets">fleet</mlink> size if any <mlink to="fleets">fleet</mlink> is present</li>
<li>Total number of <mlink to="ship_cat">Turrets</mlink> on the planet</li>
<li><mlink to="emp_conc_pop">Population</mlink> of the planet</li>
</ul>
You have also access to three <i>action links</i>:<ul>
<li><mlink to="move_pract">Send Fleets</mlink>: click this link to <mlink to="move_pract">send fleets</mlink> to that particular <i>planet</i>. <mlink to="move_pract">Sending fleets</mlink> is covered in the <mlink to="move_pract">fleets section</mlink> of the manual</li>
<li><mlink to="maps">Centre Map</mlink>: clicking this link directs you to the <mlink to="maps">map page</mlink> with a <mlink to="maps">map</mlink> centered on that particular <i>planet</i></li>
<li><mlink to="msg_comp">Message</mlink>: clicking this link opens the <mlink to="msg_comp">compose form</mlink> of the <mlink to="messages">messaging system</mlink> with the <i>planet name</i> prefilled as <i>recipient</i>. This allows you to send a <mlink to="messages">private message</mlink> to the <i>planet's owner</i></li>
</ul>
</section>
<section id="ipp_pil_apflee" title="Alliance planets you have fleets on">
In the case of an <mlink to="alliance">alliance</mlink> planet on which you have <mlink to="fleets">fleets</mlink> stationned the <i>level of information</i> provided consists in a <i>combination</i> of your particular <i>alliance planets case</i> (if you have <mlink to="ipp_pil_apla">planets list access</mlink> or <mlink to="ipp_pil_anpla">not</mlink>) and the <mlink to="ipp_pil_flee">planets you have fleets</mlink> on case.
</section>
<section id="ipp_pil_oth" title="Other planets">
In cases which don't fit in any other category you have access to very few data:<ul>
<li><i>Coordinates</i> of the <i>planet</i> on the <mlink to="maps">map</mlink></li>
<li><mlink to="alliance">Alliance</mlink> the owner of the <i>planet</i> belongs to if any</li>
</ul>
You have also access to three <i>action links</i>:<ul>
<li><mlink to="move_pract">Send Fleets</mlink>: click this link to <mlink to="move_pract">send fleets</mlink> to that particular <i>planet</i>. <mlink to="move_pract">Sending fleets</mlink> is covered in the <mlink to="move_pract">fleets section</mlink> of the manual</li>
<li><mlink to="maps">Centre Map</mlink>: clicking this link directs you to the <mlink to="maps">map page</mlink> with a <mlink to="maps">map</mlink> centered on that particular <i>planet</i></li>
<li><mlink to="msg_comp">Message</mlink>: clicking this link opens the <mlink to="msg_comp">compose form</mlink> of the <mlink to="messages">messaging system</mlink> with the <i>planet name</i> prefilled as <i>recipient</i>. This allows you to send a <mlink to="messages">private message</mlink> to the <i>planet's owner</i></li>
</ul>
</section>>
</section>
<section id="ipp_own" title="Planet page for your own planets">
<section id="ipp_own_intro" title="Introduction">
The <i>individual planet page</i> is the specific <i>management page</i> for a given <i>planet</i>. It provides <i>detailed information</i> on the planet along with a set of <i>controls</i> to <mlink to="ipp_own_gc">navigate among planets</mlink> and <mlink to="ipp_own_pc">manage one given planet</mlink>.
</section>
<section id="ipp_own_gc" title="General Controls">
In the <i>top right corner</i> of the page, some <i>general controls</i> allow you to <i>navigate among planetary pages</i>:<ul>
<li>The <i>Select planet</i> drop down list allows you to <i>switch between planets</i>. Selecting the <i>name of another planet</i> you own in the list gets you directly to its <i>individual planet page</i></li>
<li>The <i>Planet list</i> link gets you back to the <mlink to="planets">Planets main page</mlink> which lists all your <mlink to="planets">planets</mlink></li>
</ul>
</section>
<section id="ipp_own_pc" title="Planetary Controls">
<section id="ipp_own_pc_intro" title="Introduction">
In the <i>top left part</i> of the page, <i>below the planet name</i>, a list of <i>action links</i> provide <i>planet wide functions</i>. The next paragraphs will detail each link.
</section>
<section id="ipp_own_pc_send" title="Send Fleets">
You can click this link to <mlink to="move_pract">send fleets</mlink> to that particular <i>planet</i>. <mlink to="move_pract">Sending fleets</mlink> is covered in the <mlink to="move_pract">fleets section</mlink> of the manual.
</section>
<section id="ipp_own_pc_cent" title="Centre Map">
Clicking this link directs you to the <mlink to="maps">map page</mlink> with a <mlink to="maps">map</mlink> centered on that particular <i>planet</i>.
</section>
<section id="ipp_own_pc_aband" title="Abandon">
clicking on this link allows you to <i>abandon a planet</i> once you have <i>confirmed the action</i> in the <i>alert box</i> that pops up. The link gets then <i>replaced with the time remaining</i> before the planet is actually out of your control and a <i>Cancel</i> link. Clicking the <i>Cancel</i> link of course <i>stops the abandon process</i>.
<br/>
You <i>cannot abandon</i> your planet <i>if you only have one</i>. This link is <i>only displayed</i> if you have <i>at least 2 planets</i>.
</section>
<section id="ipp_own_pc_ren" title="Rename">
Once you've <i>owned</i> a given planet for <i>more than two weeks</i>, a new <i>Rename</i> link appears. Clicking on the link opens an <i>alert box</i> with a <i>textfield</i> where you can type in the <i>new name</i> of the planet. Once you're satisfied with the name you can click the <i>OK</i> button to change the planet's name. the <i>Cancel</i> button of course cancels the change and closes the alert box.
<br/>
Once you have renamed a planet you have to wait <i>two more weeks</i> before being able to <i>rename it again</i>.
</section>
<section id="ipp_own_pc_sell" title="Sell/Give">
Clicking on this link gets you to a <mlink to="sell_put_pla">particular version of the planet page</mlink> where you can set <i>specific sale/gift parameters</i>. This topic is described more precisely in the <mlink to="sell_put_pla">marketplace</mlink> section of the manual.
<br/>
You <i>cannot sell</i> your planet <i>if you only have one</i> or if <i>your account is younger than 10 days</i>. This link is <i>only displayed</i> if <i>your account is older than 10 days</i> and you have <i>at least 2 planets</i>.
</section>
<section id="ipp_own_pc_blow" title="Blow it up!">
Once you have access to the <mlink to="tech_88">Wormhole Supernova</mlink> technology and of course <mlink to="tech_topic_stat">implemented it</mlink>, you can see a new link which allows you to <i>detroy the planet</i> with a <mlink to="tech_88">wormhole Supernova</mlink>.
<br/>
Be careful though: citizens of your <mlink to="empire">empire</mlink> may not appreciate that you destroyed one of your planets and this action has a <i>bad, lasting effect</i> on the <mlink to="emp_conc_happ">happiness</mlink> of your <mlink to="emp_conc_pop_grow">population</mlink>.
</section>
</section>
<section id="ipp_own_po" title="Planet Overview">
This part of the page provides some <i>facts about the planet</i>, including:<ul>
<li><i>Coordinates:</i> coordinates of the <i>planet</i> on the <mlink to="maps">map</mlink></li>
<li><mlink to="alliance">Alliance</mlink>: tag of the <mlink to="alliance">alliance</mlink> the <i>planet</i> belongs to</li>
<li><mlink to="emp_conc_pop">Population</mlink>: total <mlink to="emp_conc_pop">population size</mlink> of the <i>planet</i></li>
<li><mlink to="ship_cat">Turrets</mlink>: number of <mlink to="ship_cat">turrets</mlink> on the <i>planet</i> along with a <i>Destroy</i> link. Clicking this link opens an <i>alert window</i> where you can <i>select a number of turrets to destroy</i></li>
<li><mlink to="mon_ppl">Planet Income</mlink>: amount of <mlink to="mon_ppl">money generated</mlink> by the <i>planet</i> each day</li>
<li><mlink to="emp_conc_happ">Happiness</mlink>: percentage of <mlink to="emp_conc_happ">happiness</mlink> for the <mlink to="planet">planet</mlink></li>
<li><mlink to="emp_conc_cor">Corruption</mlink>: percentage of <mlink to="emp_conc_cor">corruption</mlink> of the <i>planet</i></li>
<li><mlink to="emp_conc_fact_ind">Industrial factories</mlink>: number of <mlink to="emp_conc_fact_ind">industrial factories</mlink> on the <mlink to="planet">planet</mlink></li>
<li><mlink to="emp_conc_fact_mil">Military factories</mlink>: number of <mlink to="emp_conc_fact_mil">military factories</mlink> on the <mlink to="planet">planet</mlink></li>
<li><mlink to="fleets">Fleets</mlink> standing by: in this section the <mlink to="ship_cat_pow">average power of your fleets</mlink> stationed on the <i>planet</i> is indicated in <i>green</i>. <mlink to="ship_cat_pow">Average power of friendly fleets</mlink> is in <i>blue</i> and <mlink to="ship_cat_pow">average power of enemy fleets</mlink> in <i>red</i></li>
</ul>
</section>
<section id="ipp_own_if" title="Industrial Factories">
<i>Industrial factories</i> produces goods from raw materials. Those goods are sold within the empire and beyond its borders, which generates <mlink to="money">money</mlink>. As a consequence the <i>more industrial factories</i> you have the <i>more money</i> you make. But there are workers in factories and they won't be too happy to have to work 3 jobs to get the planetary economy running. So there is a <i>limit</i> to the number of factories you can build without risking a <mlink to="emp_conc_revo">revolt</mlink>.
<br/>
The <i>top part</i> of this section indicates the <i>number of industrial factories</i> currently present on your <i>planet</i>, along with the <i>price to build one new industrial factory</i>.
<br/>
<i>Below</i> that section, you can <i>manage factories</i>. To <i>change the number</i> of <i>industrial factories</i> on the planet, use the <i>texfield</i> to indicate an <i>amount of factories to build / destroy</i> and click the relevant <i>button</i>: <i>Increase</i> or <i>Decrease</i>.
<br/>
You have to be aware that the <i>number</i> of <i>industrial factories you can destroy</i> is <i>limited to 10%</i> of the number <i>you owned 24h before</i> the destruction attempt. For instance if you had 100 industrial factories 24h ago, buit 20 12h ago and try to destroy some now you can destroy up to 30.
</section>
<section id="ipp_own_mf" title="Military Factories">
<i>Military factories</i> are specialised factories producing <mlink to="ship_cat">ships and turrets</mlink>. The <i>speed</i> at wich items are built depends on the <i>number of military factories</i> on the <i>planet</i>. The <i>more factories</i> you have the <i>faster</i> it will go. But there are workers in factories and they won't be too happy to have to work 3 jobs to get the planetary weapon industry. So there is a <i>limit</i> to the number of factories you can build without risking a <mlink to="emp_conc_revo">revolt</mlink>.
<br/>
The <i>top part</i> of this section indicates the <i>number of military factories</i> currently present on your <i>planet</i>, along with the <i>price to build one new military factory</i>.
<br/>
<i>Below</i> that section, you can <i>manage factories</i>. To <i>change the number</i> of <i>military factories</i> on the planet, use the <i>texfield</i> to indicate an <i>amount of factories to build / destroy</i> and click the relevant <i>button</i>: <i>Increase</i> or <i>Decrease</i>.
<br/>
You have to be aware that the <i>number</i> of <i>military factories you can destroy</i> is <i>limited to 10%</i> of the number <i>you owned 24h before</i> the destruction attempt. For instance if you had 100 military factories 24h ago, buit 20 12h ago and try to destroy some now you can destroy up to 30.
</section>
<section id="ipp_own_bw" title="Build warefare">
<section id="ipp_own_bw_intro" title="Introduction">
This part of the page is composed of <i>two sections</i>:<ul>
<li>tools to <mlink to="ipp_own_bw_add">add elements</mlink> to a build queue in the <i>left part</i></li>
<li><mlink to="ipp_own_bw_man">build queue management</mlink> tools in the <i>right part</i></li>
</ul>
The next paragraphs will describe their usage.
</section>
<section id="ipp_own_bw_add" title="Adding items to the queue">
In order to <i>build new items</i>, you have to <i>select the type of item</i> you want to build.
<br/>
Depending on your <mlink to="technology">technology level</mlink>, different items are available. Basically you can find <mlink to="ship_cat">turrets</mlink> (stationary defenses) and <mlink to="ship_cat">Ground Assault (GA) ships</mlink> (system ships carrying troups which allow them to take control over planets). The following <mlink to="tech_list">technologies</mlink> provide you access to other types of ships:<ul>
<li><mlink to="tech_63">Battle Cruisers</mlink></li>
<li><mlink to="tech_6">Cruisers</mlink></li>
<li><mlink to="tech_1">Fighters</mlink></li>
</ul>
<br/>
<mlink to="ship_cat">Ship types</mlink> are described more precisely in the <mlink to="ships">ships</mlink> part of the manual.
<br/>
In order to <i>select one item</i>, you have to <i>select the radio button</i> before its <i>name</i>. The <i>cost</i> for one item of each category is indicated <i>along the name</i>. Once you have selected one item, use the <i>Quantity</i> textfield to indicate the <i>number</i> of items to build. Then click the <i>Add</i> button to <i>add the items to the build queue</i>.
</section>
<section id="ipp_own_bw_man" title="Managing the build queue">
<section id="ipp_own_bw_man_intro" title="Introduction">
The <i>build queue</i> consist in:<ul>
<li><i>a list of items being built</i></li>
<li><i>action buttons</i></li>
</ul>
The next parapgraphs will cover both topics.
</section>
<section id="ipp_own_bw_man_list" title="List of items being built">
The <i>list of items being buit</i> includes:<ul>
<li><i>Qty</i>: <i>number of items</i> in the queue</li>
<li><mlink to="ship_cat">Type</mlink>: <mlink to="ship_cat">category</mlink> of items being built</li>
<li><i>Time to build - Ind.</i>: <i>individual build time for this bundle of items</i>. The time is <i>rounded up</i> to be expressed in <i>hours</i></li>
<li><i>Time to build - Cum.</i>: <i>cumulated build time for all items in the queue up to this one</i>. This cumulative build time is the <i>sum of build times for previous items without rounding</i>. This represents the fact that if the full <mlink to="ticks_tick">hour tick</mlink> time isn't required to finish one item, work starts on the next. As a consequence, <i>cumulative build time</i> may be <i>inferior to the sum of all individual build times</i></li>
</ul>
</section>
<section id="ipp_own_bw_man_act" title="Build queue actions">
Available <i>build queue actions</i> are:<ul>
<li><i>Up</i>: to <i>move one item up in the queue</i>. To do so, <i>select</i> one item by <i>checking the checkbox</i> on its line and click the <i>Up</i> button.</li>
<li><i>Down</i>: to <i>move one item up in the queue</i>. To do so, <i>select</i> one item by <i>checking the checkbox</i> on its line and click the <i>Down</i> button.</li>
<li><i>Cancel</i>: to <i>remove one item from the queue</i>. To do so, <i>select</i> one item by <i>checking the checkbox</i> on its line and click the <i>Cancel</i> button.</li>
<li><i>Flush</i>: to <i>remove all items in the build queue</i>. To do so, just click the <i>Flush</i> button.</li>
</ul>
You also have the ability to <i>replace one item in the queue with another</i>. In order to do so, <i>select</i> the <i>item to replace</i> by <i>checking its checkbox</i> in the build queue. Then proceed <i>as if you were to add a new item</i> to the queue but click the <i>Replace</i> button instead of the <i>Add</i> button.
</section>
</section>
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,59 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Planets Overview Page</title>
<section id="pop_basic" title="Introduction">
General concepts about <mlink to="emp_conc_plan">planets</mlink> are provided in the <mlink to="emp_conc_plan">planet</mlink> section of the <mlink to="empire">empire</mlink> manual page. The manual section you're reading now focuses on the <i>Planets page</i> and presents its contents.
<br/>
The <i>Planets page</i> provides you with a <i>general overview</i> of <mlink to="pop_cp">all your planets</mlink> at once along with a <mlink to="pop_qb">quick builder</mlink> facility. A <i>link in the top right corner</i> of the page allows to <i>switch</i> between two views:<ul>
<li>List of <mlink to="pop_cp">controlled planets</mlink> only</li>
<li><mlink to="pop_qb">Quickbuilder</mlink> facility and list of <mlink to="pop_cp">controlled planets</mlink></li>
</ul>
Each of those two elements are described in the other paragraphs of this manual section.
</section>
<section id="pop_cp" title="Controlled planets">
This section of the page displays a <i>list of all planets</i> in your <mlink to="empire">empire</mlink> along with:<ul>
<li><mlink to="planet">Planet</mlink>: <i>name</i> of the concerned <mlink to="planet">planet</mlink>. It's a <i>link</i> to the corresponding <mlink to="planet">planet page</mlink></li>
<li><i>Coords</i>: <i>coordinates</i> of the <mlink to="planet">planet</mlink></li>
<li><mlink to="emp_conc_pop">Population</mlink>: <mlink to="emp_conc_pop">population</mlink> of the <mlink to="planet">planet</mlink> in millions of unhabitants</li>
<li><mlink to="emp_conc_happ">Happiness</mlink>: percentage of <mlink to="emp_conc_happ">happiness</mlink> for the <mlink to="planet">planet</mlink></li>
<li><mlink to="emp_conc_fact_ind">Industrial</mlink>: number of <mlink to="emp_conc_fact_ind">industrial factories</mlink> on the <mlink to="planet">planet</mlink></li>
<li><mlink to="ship_cat">Turrets</mlink>: number of <mlink to="ship_cat">turrets</mlink> on the <mlink to="planet">planet</mlink></li>
<li><mlink to="emp_conc_fact_mil">Military</mlink>: number of <mlink to="emp_conc_fact_mil">military factories</mlink> on the <mlink to="planet">planet</mlink></li>
<li><mlink to="mon_ppl">Profit</mlink>: <mlink to="mon_ppl">daily profit</mlink> generated by the <mlink to="planet">planet</mlink></li>
<li><mlink to="ipp_own_bw">Currently Building</mlink>: list of the <i>first elements</i> in the <mlink to="ipp_own_bw">build queue</mlink> along with the <i>time to completion</i>. A <i>link at the top</i> of the page allows to <i>switch</i> between a view with <i>cumulated build times</i> and a view with <i>individual build times</i>.</li>
</ul>
</section>
<section id="pop_qb" title="Quick builder">
<section id="pop_qb_pr" title="Principle">
Switching to <i>quick builder mode</i> modifies slightly the <mlink to="pop_cp">controlled planets list</mlink> and reveals a <i>new section of the page</i>. Using those tools you can manage <mlink to="ipp_own_po">factories</mlink> and <mlink to="ipp_own_bw">ships construction</mlink> and destruction on <i>several planets at once</i>.
</section>
<section id="pop_qb_po" title="Planet operations">
In order to do some <i>actions</i> at the planetary level <i>on several planets at once</i>, you first of all have to <i>select the planets</i> you're interested in. This can be achieved by <i>checking the checkboxes</i> which are displayed in front of each <mlink to="planet">planet</mlink> <i>name</i>. <i>Quick links</i> are also provided at the top of <mlink to="pop_cp">the planets list</mlink>:<ul>
<li><i>select all</i>: to select all planets</li>
<li><i>unselect all</i>: to unselect all planets</li>
<li><i>invert</i>: to invert the selection</li>
</ul>
The <i>operation to perform</i> at the planet level may be chosen with <i>radio buttons</i> in the corresponding section of the <i>quick builder</i>. Clicking <i>any element on the same line</i> as a radio button <i>selects it</i>. The <i>different possible operations</i> are:<ul>
<li>Operations on <mlink to="ipp_own_po">factories</mlink>: Using the corresponding <i>drop down lists</i> you can either <i>build</i> or <i>destroy</i> the <i>number</i> of <mlink to="emp_conc_fact_ind">industrial</mlink> or <mlink to="emp_conc_fact_mil">military factories</mlink> that you chose in the <i>textfield</i>.</li>
<li><i>Adding</i> to <mlink to="ipp_own_bw">build queues</mlink>: using the corresponding <i>drop down list</i> you can <i>add</i> to the <mlink to="ipp_own_bw">build queues</mlink>> the <i>number</i> of <mlink to="ship_cat">ships of the selected category or turrets</mlink> that you chose in the <i>texfield</i>.</li>
<li><i>Flushing</i> <mlink to="ipp_own_bw">build queues</mlink>: using this option you can <i>remove all elements</i> from the <mlink to="ipp_own_bw">build queues</mlink></li>
</ul>
The <mlink to="pop_qb_bt">buttons</mlink> at the bottom of the <i>quick builder</i> perfom the defined planet <i>operation on all selected planets</i>.
</section>
<section id="pop_qb_qo" title="Queue operations">
In order to <i>perform actions</i> on some <i>specific elements</i> in the <mlink to="ipp_own_bw">build queue</mlink> you first of all have to <i>select</i> them. To do so you have to <i>check the checkboxes</i> present in front the <mlink to="ipp_own_bw">build queue</mlink> <i>items</i> you want to change in the <mlink to="pop_cp">controlled planets</mlink> list.
<br/>
The <i>operation to perform</i> on the <i>selected items</i> may be chosen with <i>radio buttons</i> in the corresponding section of the <i>quick builder</i>. Clicking <i>any element on the same line</i> as a radio button <i>selects</i> it. The <i>different possible operations</i> are:<ul>
<li><i>Delete</i>: to <i>remove</i> the <i>selected items</i> from the <mlink to="ipp_own_bw">build queues</mlink></li>
<li><i>Move</i>: using the relevant <i>drop down list</i> you can either <i>move</i> <i>down</i> or <i>up</i> in the <mlink to="ipp_own_bw">queue</mlink> the <i>items you have selected</i></li>
<li><i>Replace</i>: using the relevant <i>drop down list</i> you can <i>replace</i> the <i>selected items</i> with the <i>number</i> of <mlink to="ship_cat">ships of the chosen category or turrets</mlink> that you have put in the <i>textfield</i></li>
</ul>
The <mlink to="pop_qb_bt">buttons</mlink>buttons at the bottom of the <i>quick builder</i> perfom the defined planet <i>operation on all selected items</i>.
</section>
<section id="pop_qb_bt" title="Buttons">
The two <i>buttons</i> at the bottom of the <i>quick builder</i> section both perfom the defined actions. The only difference is that the left one (<i>Execute action</i>) leaves the <i>quick builder displayed</i> whereas the right one (<i>Execute and hide</i>) switch also the <i>diplay to list only mode</i>.
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,160 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Preferences</title>
<section id="pref_intro" title="Introduction">
Various elements in Legacy Worlds can be customised. Some preferences are specific to one account and others are in game features that are defined on a per game basis.
</section>
<section id="pref_acc" title="Account preferences">
The account preferences page is available through the Preferences link displayed at the bottom of game selection page you reach when logging in. The account preferences page allows for customisation of the various generic elements presented in the table below.
<table>
<tr>
<th>Element</th>
<th>Description</th>
<th>Possible values</th>
</tr>
<tr>
<td>E-Mail Address</td>
<td>E-Mail Address of the player - used to send account activation data and game related messages</td>
<td>Any valid E-Mail address, as long as it hasn't already been used to create another account</td>
</tr>
<tr>
<td>Colour Scheme</td>
<td>The colour of the theme to use in game</td>
<td><ul>
<li>Red</li>
<li>Green</li>
<li>Blue</li>
<li>Grey</li>
<li>Purple</li>
<li>Yellow</li>
</ul></td>
</tr>
<tr>
<td>Language</td>
<td>Language in which the game interface and internal messages are displayed</td>
<td><ul>
<li>English</li>
<li>French</li>
</ul></td>
</tr>
<tr>
<td>Font Size</td>
<td>The font size to use in game</td>
<td><ul>
<li>Tiny</li>
<li>Small</li>
<li>Normal</li>
<li>Big</li>
<li>Huge</li>
</ul></td>
</tr>
</table>
Some forum specific preferences can also be set up as presented in the table below.
<table>
<tr>
<th>Element</th>
<th>Description</th>
<th>Possible values</th>
</tr>
<tr>
<td>Topics/page</td>
<td>Number of Forum Topics to display on each page</td>
<td><ul>
<li>10</li>
<li>20</li>
<li>30</li>
<li>40</li>
<li>50</li>
</ul></td>
</tr>
<tr>
<td>Graphical smileys</td>
<td>This option allows to display or not graphical smileys in forums</td>
<td><ul>
<li>Disabled</li>
<li>Enabled</li>
</ul></td>
</tr>
<tr>
<td>Diplay Mode</td>
<td>This option allows to switch between threaded and linear vues of a forum topic</td>
<td><ul>
<li>Linear</li>
<li>Threaded</li>
</ul></td>
</tr>
<tr>
<td>Messages/page</td>
<td>Number of messages in a topic to display on each page</td>
<td><ul>
<li>10</li>
<li>20</li>
<li>30</li>
<li>40</li>
<li>50</li>
</ul></td>
</tr>
<tr>
<td>Forum tags</td>
<td>This option allows you to define if you want forum tags to be decoded into text modifiers or not</td>
<td><ul>
<li>Disabled</li>
<li>Enabled</li>
</ul></td>
</tr>
<tr>
<td>Messaged order</td>
<td>Order in which to display the messages according to time</td>
<td><ul>
<li>Oldest First</li>
<li>Newest First</li>
</ul></td>
</tr>
<tr>
<td>Signature</td>
<td>Message to display at the bottom of the messages you post</td>
<td>Any valid chain of characters</td>
</tr>
</table>
The form at the bottom of the page allows you to change your password for your account.
</section>
<section id="pref_game" title="In Game Preferences">
<section id="pref_game_pref" title="Preferences per se">
Those preferences are specific to the the current game and are accessible only for inside a game. They influence in game elements only. For Beta 5, the form includes the same elemnts as for the account preferences along with a few more items which are presented in the table below:
<table>
<tr>
<th>Element</th>
<th>Description</th>
<th>Possible values</th>
</tr>
<tr>
<td>Tooltips</td>
<td>Time period during which tooltips have to be displayed</td>
<td><ul>
<li>Disabled</li>
<li>0.5 second</li>
<li>1 second</li>
<li>1.5 second</li>
<li>2 second</li>
<li>2.5 second</li>
<li>3 second</li>
</ul></td>
</tr>
<tr>
<td>Theme</td>
<td> The theme to use for the menu bar</td>
<td><ul>
<li>LegacyWorlds Beta 5</li>
<li>Beta 5 Reversed</li>
<li>LegacyWorlds Classic</li>
</ul></td>
</tr>
</table>
</section>
<section id="pref_game_leave" title="Leave game section">
The bottom part of the in game preferences page provides you with a form to leave the given game. Clicking on the Leave LegacyWorlds Beta 5 button will start a 24h count down. If you don't click the DO NOT leave LegacyWorlds Beta 5 button within this 24h delay, your game data will be deleted. But note that this won't delete your account. The account still exists but isn't playing that particular game anymore.
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,20 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Probes and Beacons Page</title>
<section id="bap_intro" title="Introduction">
Some <mlink to="tech_list">technologies</mlink> in game provide you with the <i>ability to build other spatial objects</i> than just <mlink to="ships">ships</mlink>:<ul>
<li><i>Beacons</i>: those are <i>some kind of satellites</i> that can be placed around a <mlink to="planet">planet</mlink>. The basic model is placed in <mlink to="move_gen_hypnorm">hyperspace</mlink> and provides some kind of <i>anchor or fixed reference point</i> for <mlink to="ships">ships</mlink> located in <mlink to="move_gen_hypnorm">hyperspace</mlink> around the <mlink to="planet">planet</mlink>, thus <i>limiting ships losses</i>. More advanced models, with <i>scanning abilities and such</i> will be available <i>in further versions of the game</i>.</li>
<li><i>Probes</i>: those <i>small unmanned vessels</i> can be sent to <mlink to="planet">other planets</mlink> to <i>scan</i> for the <mlink to="fleets">fleets</mlink> and other defenses, along with planetary improvements. Those <i>will be available in further versions of the game</i>.</li>
</ul>
</section>
<section id="bap_page" title="Probes and beacons page">
This page presents a <i>list</i> of all the <mlink to="planets">planets</mlink> you own along with some <i>beacon related information</i>. For each <mlink to="planet">planet</mlink>, it includes<ul>
<li><i>Planet name</i>: the name of the <mlink to="planet">planet</mlink> is a link to the <mlink to="planet">planet's individual page</mlink></li>
<li><i>Coordinates</i>: the <mlink to="maps">coordinates</mlink> of the <mlink to="planet">planet</mlink> on the <mlink to="maps">map</mlink></li>
<li><i>Beacon information</i>: it's either <i>No beacon</i> if there is no beacon around the <mlink to="planet">planet</mlink>, or the <i>type of beacon</i></li>
<li><i>Beacon upgrade information</i>: if you have the <mlink to="tech_list">required technology</mlink> to <i>install or upgrade a beacon</i>, a <i>button</i> is available, to install or upgrade the beacon, <i>at a cost</i>. If not, an <i>information message</i> states <i>there is no upgrade available</i>.</li>
</ul>
</section>
</lwdoc>

View file

@ -0,0 +1,105 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Rankings</title>
<section id="rank_intro" title="Introduction">
Rankings are a way to keep track of the various players' progress in the game and to compare their strength. There are different kinds of rankings which are presented in the various sections of the Rankings page.
<br/>
On top of the Rankings page various links allow you to navigate beween the different rankings pages:<ul>
<li>Summary: this page provides you wil a general overview of your own rankings</li>
<li>General Rankings: this page presents a list of all players for the general ranking</li>
<li>Detailed Rankings: this page offers a list of all players for the various rankings composing the general ranking</li>
<li>Alliance Rankings: this page offers a view of all alliances and their ranking</li>
<li>Overall Round Rankings: this page presents a list of all players for the overall round ranking</li>
<li>Inflicted Damage Rankings: this page presents a list of all players for the inflicted damage ranking</li>
</ul>
</section>
<section id="rank_sum" title="Summary">
This page provides you wil a general overview of your own rankings. For each ranking your rank and the corresponding amount of points are provided. It includes:<ul>
<li>General ranking: this ranking corresponds to a combination of your civilisation, military and financial rankings. It represents your current advancement in the game.</li>
<li>Overall Round Ranking: this ranking is calculated based on your previous general rankings. It allows for a long term estimate of your strength and advancement.</li>
<li>Civilization Ranking: this ranking represents the advancement level of the society in your empire. It takes into account technology level, population and happiness.</li>
<li>Military Ranking: this ranking allows to assess the military strength of your empire. Its calculation is based on the number of turrets and military factories you own along with your fleet fire power.</li>
<li>Financial Ranking: this ranking correspond to the economic health of your empire. It takes into account your banked cash, your empire's income and the number of industrial factories you own.</li>
</ul>
</section>
<section id="rank_gen" title="General Rankings">
This page provides you with the general rankings for all players. General rankings consists of a combination of civilisation, military and financial rankings, thus providing a current image of each player's strength and advancement in the game.
<br/>
The top part of the page includes some navigation facilities:<ul>
<li>Number of players per page: the left drop down list allows you to choose how many players you want displayed on each page.</li>
<li>Page to display: when relevant, a drop down list which allows you to switch between pages is displayed.</li>
<li>Search feature: when filling in the search textfield the listing will be automatically limited to the items containing the string you've typed in, wherever it may be in the whole player name.</li>
</ul>
<br/>
The bottom part of the page consists of the listing itself, containing:
<ul>
<li>Player Name: name of the corresponding player</li>
<li>Rankings/Points: rank in the rankings for the player along with the corresponding amont of points</li>
</ul>
In this list your own name is displayed in bold. Clicking on the columns titles allows for sorting according to the corresponding field. Clicking again on the same title switches between ascending and descending sorts.
</section>
<section id="rank_det" title="Detailed Rankings">
This page provides you with the detailed rankings for all players. Detailed rankings consists of civilisation, military and financial rankings, thus providing a current detailed image of each player's strength and advancement in each field.
<br/>
The top part of the page includes some navigation facilities:<ul>
<li>Number of players per page: the left drop down list allows you to choose how many players you want displayed on each page.</li>
<li>Page to display: when relevant, a drop down list which allows you to switch between pages is displayed.</li>
<li>Search feature: when filling in the search textfield the listing will be automatically limited to the items containing the string you've typed in, wherever it may be in the whole player name.</li>
</ul>
<br/>
The bottom part of the page consists of the listing itself, containing:
<ul>
<li>Player Name: name of the corresponding player</li>
<li>Civilisation Rankings/Points: rank in the rankings for the player along with the corresponding amont of points</li>
<li>Military Rankings/Points: rank in the rankings for the player along with the corresponding amont of points</li>
<li>Financial Rankings/Points: rank in the rankings for the player along with the corresponding amont of points</li>
</ul>
In this list your own name is displayed in bold. Clicking on the columns titles allows for sorting according to the corresponding field. Clicking again on the same title switches between ascending and descending sorts.
</section>
<section id="rank_all" title="Alliance Rankings">
This page provides you with the rankings for all alliances. Alliance rankings provide a current image of each alliance's strength and advancement in the game.
<br/>
The top part of the page includes some navigation facilities:
<ul>
<li>Number of alliances per page: the left drop down list allows you to choose how many alliances you want displayed on each page.</li>
<li>Page to display: when relevant, a drop down list which allows you to switch between pages is displayed.</li>
<li>Search feature: when filling in the search textfield the listing will be automatically limited to the items containing the string you've typed in, wherever it may be in the whole alliance tag.</li>
</ul>
<br/>
The bottom part of the page consists of the listing itself, containing:<ul>
<li>Alliance Name: name of the corresponding alliance</li>
<li>Rankings/Points: rank in the rankings for the alliance along with the corresponding amont of points</li>
</ul>
</section>
<section id="rank_rnd" title="Overall Round Rankings">
This page provides you with the overall round rankings for all players. Overall round rankings are calculated based on previous general rankings for each player. It allows for a long term estimate of strength and advancement in the game.
<br/>
The top part of the page includes some navigation facilities:<ul>
<li>Number of players per page: the left drop down list allows you to choose how many players you want displayed on each page.</li>
<li>Page to display: when relevant, a drop down list which allows you to switch between pages is displayed.</li>
<li>Search feature: when filling in the search textfield the listing will be automatically limited to the items containing the string you've typed in, wherever it may be in the whole player name.</li>
</ul>
<br/>
The bottom part of the page consists of the listing itself, containing:<ul>
<li>Player Name: name of the corresponding player</li>
<li>Rankings/Points: rank in the rankings for the player along with the corresponding amont of points</li>
</ul>
In this list your own name is displayed in bold. Clicking on the columns titles allows for sorting according to the corresponding field. Clicking again on the same title switches between ascending and descending sorts.
</section>
<section id="rank_idr" title="Inflicted Damage Rankings">
This page provides you with the inflicted damage ranking for all players. Inflicted Damage Rankings are based on fleet power destroyed by the player's fleets.
<br/>
The top part of the page includes some navigation facilities:<ul>
<li>Number of players per page: the left drop down list allows you to choose how many players you want displayed on each page.</li>
<li>Page to display: when relevant, a drop down list which allows you to switch between pages is displayed.</li>
<li>Search feature: when filling in the search textfield the listing will be automatically limited to the items containing the string you've typed in, wherever it may be in the whole player name.</li>
</ul>
The bottom part of the page consists of the listing itself, containing:<ul>
<li>Player Name: name of the corresponding player</li>
<li>Rankings/Points: rank in the rankings for the player along with the corresponding amont of points</li>
</ul>
In this list your own name is displayed in bold. Clicking on the columns titles allows for sorting according to the corresponding field. Clicking again on the same title switches between ascending and descending sorts.
</section>
</lwdoc>

View file

@ -0,0 +1,192 @@
<?xml version="1.0"?>
<lwdoc>
<version>beta5</version>
<language>en</language>
<title>Ships</title>
<section id="ship_intro" title="Introduction">
<mlink to="fleets">Fleets</mlink> are composed of <i>ships</i>. It sounds only natural to start with <i>ships</i>. This section of the manual will present the different <mlink to="ship_cat">ships categories and caracteristics</mlink> and how to <mlink to="ship_build">build ships</mlink>.
</section>
<section id="ship_cat" title="Ships Categories">
<section id="ship_cat_intro" title="Introduction">
In LegacyWorlds, <i>several categories of ships and military devices</i> are available:<ul>
<li><i>Turrets</i></li>
<li><i>GA ship</i></li>
<li><i>Fighter</i></li>
<li><i>Cruiser</i></li>
<li><i>Battle cruiser</i></li>
</ul>
Each category of ships has <i>particularities and special abilities</i> which makes it unique and more efficient for one purpose or another. The rest of this manual section will present those <i>ships categories</i> and <i>ships carateristics</i>.
</section>
<section id="ship_cat_list" title="Ship categories List">
There different categories of ships are listed in the table below.
<table>
<tr>
<th>Name</th>
<th>Description</th>
<th>Class</th>
<th>Initial Power</th>
<th>Haul Size</th>
<th>Room used</th>
<th>Initial Speed</th>
<th>Upkeep</th>
<th>Build Price</th>
</tr>
<tr>
<td><i>Turret</i></td>
<td>Stationary Defense</td>
<td>N/A</td>
<td>10</td>
<td>N/A</td>
<td>N/A</td>
<td>N/A </td>
<td>20</td>
<td>400</td>
</tr>
<tr>
<td><i>GA ship</i></td>
<td>Simple transport vessel for ground troups</td>
<td>System Ship </td>
<td>5</td>
<td>N/A</td>
<td>3</td>
<td>1</td>
<td>40</td>
<td>750</td>
</tr>
<tr>
<td><i>Fighter</i></td>
<td>Small attack ship</td>
<td>System Ship</td>
<td>10</td>
<td>N/A</td>
<td>1</td>
<td>1</td>
<td>50</td>
<td>500</td>
</tr>
<tr>
<td><i>Cruiser</i></td>
<td>Long range attack and transport vessel</td>
<td>Capital Ship</td>
<td>40</td>
<td>20</td>
<td>N/A</td>
<td>1</td>
<td>500</td>
<td>5000</td>
</tr>
<tr>
<td><i>Battle Cruiser</i></td>
<td>Heavy long range attack and transport vessel</td>
<td>Capital Ship</td>
<td>80</td>
<td>15</td>
<td>N/A</td>
<td>2</td>
<td>1500</td>
<td>15000</td>
</tr>
</table>
</section>
<section id="ship_cat_class" title="Ship classes">
There are <i>three major categories of military devices</i> in LegacyWorlds. The <i>class</i> of a military device defines its <i>travel abilities</i>. Thoses classes are described in the <i>list below</i>:<ul>
<li><i>Turrets</i>: turrets are <i>stationary defenses</i>. As such they <i>can't go anywhere</i>. Isn't it logical?</li>
<li><i>System ships</i>: system ships <i>can only fly inside a star system</i>. They <i>have to be transported in the hauls of capital ships</i> in order to travel in <mlink to="move_gen_hypnorm">hyperspace</mlink></li>
<li><i>Capital ships</i>: capital ships are <mlink to="move_gen_hypnorm">hyperspace</mlink> capable. This means they <i>can move between several stellar systems</i>. They can also <i>transport system ships in their hauls</i></li>
</ul>
</section>
<section id="ship_cat_pow" title="Ship Power">
<section id="ship_cat_pow_intro" title="Introduction">
The <i>power of a ship</i> represents both its <i>firepower</i> and the <i>amount of damage it can sustain</i>. The figures provided are <i>initial figures</i> for <i>basic ships models</i>. Those basic design can be <i>upgraded</i> due to <mlink to="technology">technological advances</mlink>. The next parapgraphs will list <mlink to="tech_list">technologies</mlink> influencing <mlink to="ship_cat_pow_fire">firepower</mlink> and <mlink to="ship_cat_pow_dam">resistance to damage</mlink>.
</section>
<section id="ship_cat_pow_fire" title="Technologies influencing firepower">
<section id="ship_cat_pow_fire_intro" title ="Introduction">
The influence <mlink to="technology">technologies</mlink> have on firepower depend on <mlink to="ship_cat_class">ship classes</mlink>. Some <mlink to="technology">technologies</mlink> have an effect on <mlink to="ship_cat_class">all classes</mlink> and other on <mlink to="ship_cat_class">only one class</mlink>.
</section>
<section id="ship_cat_pow_fire_all" title="All classes">
The following <mlink to="tech_list">technologies</mlink> <i>increase the firepower</i> of all classes of ships:<ul>
<li><mlink to="tech_38">Cybernetic Interfaces</mlink></li>
<li><mlink to="tech_90">Matter Anti-matter Missiles</mlink></li>
</ul>
This one <i>decreases</i> it:<ul>
<li><mlink to="tech_7">Civilian Transportation Act</mlink></li>
</ul>
</section>
<section id="ship_cat_pow_fire_turr" title="Turrets">
These <mlink to="tech_list">technologies</mlink> <i>increase</i> the firepower of turrets and <i>turrets only</i>:<ul>
<li><mlink to="tech_61">Automated Turrets</mlink></li>
<li><mlink to="tech_85">Biological Turrets</mlink></li>
<li><mlink to="tech_68">Sensor Turrets</mlink></li>
</ul>
</section>
<section id="ship_cat_pow_fire_cap" title="Capital Ships">
These <mlink to="tech_list">technologies</mlink> <i>increase</i> the firepower of ships of the <i>Capital Ships</i> class:<ul>
<li><mlink to="tech_89">Biological Hyperspace Engines</mlink></li>
<li><mlink to="tech_71">Biological Propulsion Systems</mlink></li>
</ul>
</section>
</section>
<section id="ship_cat_pow_dam" title="Technologies influencing damage resistance">
This other set of <mlink to="tech_list">technologies</mlink> <i>increases</i> ships' and turrets' <i>resistance to damage</i>:<ul>
<li><mlink to="tech_37">Adaptive Materials</mlink></li>
<li><mlink to="tech_77">Adaptive Plating</mlink></li>
<li><mlink to="tech_3">Advanced Materials</mlink></li>
<li><mlink to="tech_57">Force fields</mlink></li>
<li><mlink to="tech_24">Hardened Alloys</mlink></li>
<li><mlink to="tech_74">Intelligent Materials</mlink></li>
<li><mlink to="tech_51">Medical Bays</mlink></li>
<li><mlink to="tech_52">Resurrection tanks</mlink></li>
<li><mlink to="tech_53">Self-healing Materials</mlink></li>
</ul>
</section>
</section>
<section id="ship_cat_trans" title="Ships transport">
<mlink to="ship_cat_class">System ships</mlink> have to be <i>transported into the haul</i> of <mlink to="ship_cat_class">capital ships</mlink> in order to travel in <mlink to="move_gen_hypnorm">hyperspace</mlink>.
<br/>
Each type of <mlink to="ship_cat_class">system ship</mlink> has a <i>different size</i>. As such the <i>number of haul spaces</i> they use in <mlink to="ship_cat_class">capital ships</mlink> differ.
<br/>
Each type of <mlink to="ship_cat_class">capital ship</mlink> has a <i>different haul size</i>. As such the <i>number of system ships they can carry varies</i>.
<br/>
In order to help you to build <mlink to="move_gen_hypnorm">hyperspace capable fleets</mlink>, the <mlink to="fleets_page">fleet page</mlink> and the <mlink to="fleets_splitting">fleets splitting tool</mlink> display the <i>percentage of fleet haul that is used</i>.
</section>
<section id="ship_cat_speed" title="Ship speed">
The <i>speed of a ship</i> is represented by the <u>maximum distance it can travel in one <mlink to="ticks_tick">hour tick time</mlink></u>. For <i>most ships</i> this distance is <i>1</i> (a ship can travel a whole stellar system in one hour).
<br/>
The <i>speed</i> of <mlink to="ship_cat_class">capital ships</mlink> can be increased through <mlink to="technology">technological advances</mlink>. Each <mlink to="tech_list">technology</mlink> in the list <i>increases the speed of capital ships by 1</i>:<ul>
<li><mlink to="tech_84">Matter Anti-matter Engines</mlink></li>
<li><mlink to="tech_41">Space-time folding</mlink></li>
</ul>
</section>
<section id="ship_cat_up" title="Ship upkeep">
The <i>upkeep of a ship</i> is the <i>amount of money</i> you have to pay each day <i>to maintain the ship</i>. The <mlink to="mon_fue">Fleet Upkeep Expenses</mlink> section of the <mlink to="money">Money</mlink> manual page covers this topic more thoroughly.
</section>
<section id="ship_cat_pric" title="Ships build price">
The <i>build price</i> of a <mlink to="ship_cat_class">ship class</mlink> is <i>the price you have to pay to build one</i> ship of the category. See the <mlink to="ship_build">next section</mlink> of this manual page to learn more about <mlink to="ship_build">ship building</mlink>.
</section>
<section id="ship_cat_ga" title="GA ships' planetary control">
<i>GA ships</i>, as troups transport ships, are the <u>only ships that can <mlink to="battle_ownchange">take control of a planet</mlink></u>. Each GA ship transports the <i>troups capable to control a certain amount of population</i>. The <i>bigger the population</i>, the <i>more GA ships are required</i> to <mlink to="battle_ownchange">take control of the planet</mlink>.
<br/>
At the <i>beginning of the game</i>, the <i>GA ships</i> you can build are able to <i>control 200 population units</i>. This figure can be increased through <mlink to="technology">technology</mlink>. Each <mlink to="tech_list">technology</mlink> in the following list <i>increases the population size a single GA ship can control by 75</i>:<ul>
<li><mlink to="tech_39">Exoskeleton</mlink></li>
<li><mlink to="tech_26">Nanofiber Armor</mlink></li>
<li><mlink to="tech_54">Self-repairing Exoskeleton</mlink></li>
</ul>
</section>
</section>
<section id="ship_build" title="Ship Building">
<section id="ship_build_tech" title="Technology">
In order to <i>build ships</i> you have to possess the required <mlink to="technology">technology</mlink>:<ul>
<li>The <mlink to="tech_1">Fighter</mlink> technology allows you to build fighters</li>
<li>The <mlink to="tech_6">Cruiser</mlink> technology allows you to build cruisers</li>
<li>The <mlink to="tech_63">Battle Cruiser</mlink> technology allows you to build battle cruisers</li>
</ul>
</section>
<section id="ship_build_pract" title="Practical ships building">
<i>Ships</i> are built in <mlink to="emp_conc_fact_mil">military factories</mlink>. Both those <i>factories and ships</i> can be built <mlink to="ipp_own_bw">on each planet separately</mlink> or by the means of the <mlink to="pop_qb">quick builder facility</mlink>. In order to know more about those topics, have a look at the following manual sections:<ul>
<li><mlink to="emp_conc_fact_mil">Military Factories</mlink> section of the <mlink to="empire">empire</mlink> manual page</li>
<li><mlink to="ipp_own_bw">Building warefare</mlink> section of the <mlink to="planet">individual planet page</mlink> manual page</li>
<li><mlink to="pop_qb">Quickbuilder</mlink> section of the <mlink to="planets">planets overview</mlink> manual page</li>
</ul>
</section>
</section>
</lwdoc>

View file

@ -0,0 +1,25 @@
<?xml version="1.0"?>
<lwdoc hide='1'>
<version>beta5</version>
<language>en</language>
<title>Fighters</title>
<section id="tech_1_desc" title='Description'>
Sir! We have successfully researched a new type of ship, the Fighter! These ships are faster and more efficient at combating enemy ships than our current Ground Assault ships.
</section>
<section id="tech_1_det" title='Details'>
<ul>
<li><b>Category:</b> Military technology</li>
<li><b>Optional:</b> No</li>
<li><b>Cost:</b> &amp;euro;50,000</li>
<li><b>Effects:</b> <ul>
<li>Provides the ability to build ships of the Fighter class</li>
</ul></li>
</ul>
</section>
<section id='tech_1_dep' title='Dependencies'>
<b>Required by:</b><ul>
<li><mlink to="tech_5">Martial law</mlink></li>
<li><mlink to="tech_6">Cruisers</mlink></li>
</ul>
</section>
</lwdoc>

View file

@ -0,0 +1,29 @@
<?xml version="1.0"?>
<lwdoc hide='1'>
<version>beta5</version>
<language>en</language>
<title>Advanced Hospitals</title>
<section id="tech_10_desc" title='Description'>
Sir! We have successfully researched a new public service! We hope that these &quot;Advanced Hospitals&quot; will improve the health of our subjects so that they are less likely to bite the dust at an unprofitable moment.
</section>
<section id="tech_10_det" title='Details'>
<ul>
<li><b>Category:</b> Civilian technology</li>
<li><b>Optional:</b> No</li>
<li><b>Cost:</b> &amp;euro;50,000</li>
<li><b>Effects:</b> <ul>
<li>Increases population growth</li>
</ul></li>
</ul>
</section>
<section id='tech_10_dep' title='Dependencies'>
<b>Depends on:</b><ul>
<li><mlink to='tech_4'>Bio-engineering</mlink></li>
</ul>
<b>Required by:</b><ul>
<li><mlink to="tech_14">Cloning Techniques</mlink></li>
<li><mlink to="tech_30">Nourishment Purification</mlink></li>
<li><mlink to="tech_50">Surgical Robots</mlink></li>
</ul>
</section>
</lwdoc>

View file

@ -0,0 +1,27 @@
<?xml version="1.0"?>
<lwdoc hide='1'>
<version>beta5</version>
<language>en</language>
<title>High-efficiency Hydroponics</title>
<section id="tech_11_desc" title='Description'>
Recent progress in bio-engineering has allowed for new farming techniques, that are safer for the planet and allow for further studies in green technologies.
</section>
<section id="tech_11_det" title='Details'>
<ul>
<li><b>Category:</b> Fundamental research</li>
<li><b>Optional:</b> No</li>
<li><b>Cost:</b> &amp;euro;50,000</li>
<li><b>Effects:</b> N/A</li>
</ul>
</section>
<section id='tech_11_dep' title='Dependencies'>
<b>Depends on:</b><ul>
<li><mlink to='tech_4'>Bio-engineering</mlink></li>
</ul>
<b>Required by:</b><ul>
<li><mlink to="tech_12">Safe Recreational Drugs</mlink></li>
<li><mlink to="tech_30">Nourishment Purification</mlink></li>
<li><mlink to="tech_31">Green Production</mlink></li>
</ul>
</section>
</lwdoc>

View file

@ -0,0 +1,27 @@
<?xml version="1.0"?>
<lwdoc hide='1'>
<version>beta5</version>
<language>en</language>
<title>Safe Recreational Drugs</title>
<section id="tech_12_desc" title='Description'>
Recent progress in the field of farming has allowed our scientists to develop safe recreational drugs such as the so-called &quot;Space weed&quot;. This will improve commerce and make the population happier, since these drugs can be used instead of traditional anaesthetics in our hospitals.
</section>
<section id="tech_12_det" title='Details'>
<ul>
<li><b>Category:</b> Civilian technology</li>
<li><b>Optional:</b> Yes</li>
<li><b>Cost:</b> &amp;euro;80,000</li>
<li><b>Effects:</b> <ul>
<li>Increases happiness</li>
</ul></li>
</ul>
</section>
<section id='tech_12_dep' title='Dependencies'>
<b>Depends on:</b><ul>
<li><mlink to='tech_11'>High-efficiency Hydroponics</mlink></li>
</ul>
<b>Required by:</b><ul>
<li><mlink to="tech_13">Legalize Space Weed</mlink></li>
</ul>
</section>
</lwdoc>

Some files were not shown because too many files have changed in this diff Show more