Source

Selador / infoframe_world.php

<?php

/* infoframe_world.php - Front-end code for start page infoframe (but for world-specific stats)
 *
 * Copyright (C) 2006, 2007, 2008 Kevin Read, Simone Schaefer
 *
 * This file is part of Selador, a browser-based fantasy strategy game
 *
 * This program is distributed under the terms of the GNU Affero General Public License.
 *
 *
 *   Selador is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU Affero General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *   any later version.
 *
 *   Selador is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU Affero General Public License for more details.
 *
 *   You should have received a copy of the GNU Affero General Public License
 *   along with Selador.  If not, see <http://www.gnu.org/licenses/>.
 **/

@header ("Content-Type: text/html; charset=UTF-8");
require_once ("php/base/config.inc.php");
require_once ("php/base/GameDB.inc.php");

// if it is included, authdb will already be there
if (!isset ($gamedb))
{
	$db = new GameDB ();

	$numtabs = 3;

	if (!isset ($_REQUEST['f']))
		$f = 1;
	else
	{
		$f = (int)$_REQUEST['f'];

		if (($f >  $numtabs) || ($f < 1))
			$f = 1;
	}
	echo '<html><head><link href="styles/public.css" rel="stylesheet" type="text/css"><body class="inhalt">';
	show_infoframe ($f);
	echo '</body></html>';
}

function doallylink_infoframe ($num, $text)
{
	global $f, $target;

	if ($num == $f)
		echo "<th><u><a href=\"allianz.php?a=".$target."&f=".$num."\" class=\"aktiv\">".$text."</a></u></th>";
	else
		echo "<th><a href=\"allianz.php?a=".$target."&f=".$num."\" class=\"aktiv\">".$text."</a></th>";
}

function show_infoframe ($f)
{
	global $db, $_ghost_uids;
	$rowctr = 0;

	$unb_type_titles = array (
		1=>"ein B&uuml;ndnis",
		2=>"einen NAP",
		3=>"ein Handelsabkommen",
		4=>"eine Meta",
		5=>"eine Kriegserkl&auml;rung");
	$best_type_titles = array (
		1=>"das B&uuml;ndnis",
		2=>"den NAP",
		3=>"das Handelsabkommen",
		4=>"die Meta",
		5=>"die Kriegserkl&auml;rung");
	$offer_to_type_titles = array (
		1=>"das B&uuml;ndnisangebot f&uuml;r",
		2=>"das NAP-Angebot f&uuml;r",
		3=>"das Handelsabkommensangebot f&uuml;r",
		4=>"das Meta-Angebot f&uuml;r",
		5=>"die Kriegserkl&auml;rung an");
	$offer_type_titles = array (
		1=>"das B&uuml;ndnisangebot",
		2=>"das NAP-Angebot",
		3=>"das Handelsabkommensangebot",
		4=>"das Meta-Angebot",
		5=>"die Kriegserkl&auml;rung");

	switch ($f)
	{
		case 1:
		$query = 'select A.*, datediff(now(),A.stamp) as days, date_format(A.stamp, "'.MYSQL_DATE_FORMAT.'") as date, date_format(A.stamp, "%H:%i") as time,B.user as user1, C.user as user2, D.aid as aid2, D.tag as tag2, E.tag as tag1 from allyactions A left join allies D on (A.aid2=D.aid) join allies E on (A.aid1=E.aid) left join user B on (A.uid1=B.uid) left join user C on (A.uid2=C.uid) where A.type in (1,6,8,10,12,14,16,17,20,21,22,23,24) order by stamp desc limit 7';

		if ($res = $db->query ($query))
		{
			echo "<h3>Allianz-Neuigkeiten aus ".WORLDTITLE.":</h3><br><table>";
			while ($row = mysql_fetch_array ($res))
			{
				if ($row['days'] == 0)
					$date = "Heute";
				else
					$date = $row['date'];

				$no_show = false;
				if (!$row['user1'] || ($row['user1'] == ""))
					$pers1 = "(gel&ouml;scht)";
				else
					$pers1 = $row['user1'];
					// $pers1 = "<a href=\"profile.php?u=".$row['uid1']."\">".$row['user1']."</a>";

				if (!$row['user2'] || ($row['user2'] == ""))
					$pers2 = "(gel&ouml;scht)";
				else
					// $pers2 = "<a href=\"profile.php?u=".$row['uid2']."\">".$row['user2']."</a>";
					$pers2 = $row['user2'];

				echo "<tr><td>".$date." ".$row['time'].":</td><td><b>".$row['tag1']."</b></td><td>";
				$no_show = false;

				switch ($row['type'])
				{
					case 1:
						echo " wurde durch ".$pers1." gegründet";
						break;
					case 6:
						echo $pers1." hat die Allianz verlassen, ".$pers2." ist Leader";
						break;
					case 8:
						echo $row['tag2']." bietet ".$unb_type_titles[$row['what']]." an";
						break;
					case 10:
						echo $row['tag2']." hat ".$best_type_titles[$row['what']]." gek&uuml;ndigt";
						break;
					case 12:
						echo $row['tag2']." hat ".$offer_type_titles[$row['what']]." zur&uuml;ckgezogen";
						break;
					case 14:
						echo $row['tag2']." hat ".$offer_type_titles[$row['what']]." abgelehnt";
						break;
					case 16:
						echo $row['tag2']." hat ".$offer_type_titles[$row['what']]." angenommen";
						break;
					case 17: //KRIEG
						echo $pers1." erkl&auml;rt  ".$row['tag2']." den Krieg.";
						break;
					case 20:
						echo "Der Krieg mit ".$row['tag2']." ist vorbei:  ".$pers1." hat den Krieg  diplomatisch beendet.";
						break;
					case 21: // krieg vorbei, weil die Allianz selbst aufgegeben hat
						echo "Der Krieg mit ".$row['tag2']." ist beendet;   ".$row['user1']."  hat aufgegeben.";
						break;
					case 22: // krieg vorbei, weil die eigene allianz die fähnchen geklaut hat
						echo "Der Krieg mit ".$row['tag2']." ist beendet;  ".$pers1." hat das letzte F&auml;hnchen geraubt.";
						break;
					case 23: // krieg zeitlich bedingt vorbei
						echo "Der Krieg mit ".$row['tag2']." ist beendet; die sieben Tage sind vorbei.";
						break;
					case 24: // krieg vorbei, weil die gegnerische Allianz abgesagt hat
						echo "Der Krieg mit ".$row['tag2']." ist beendet;  ".$pers2." von ".$row['tag2']." hat den Krieg diplomatisch beendet.";
						break;
					case 25: // krieg vorbei, weil die gegnerische Allianz aufgegeben hat
						echo "Der Krieg mit ".$row['tag2']." ist beendet;  ".$pers2." von ".$row['tag2']." hat aufgegeben.";
						break;
					case 26: // krieg vorbei, weil die eigene allianz die fähnchen geklaut hat
						echo $row['tag2']." hat den Krieg beendet;  ".$pers2." hat das letzte F&auml;hnchen geraubt.";
						break;
					default:
						$no_show = true;
						break;
				}
				if (!$no_show)
				{
					echo "</td></tr>";
				}
			}
			echo "</table>";
		}
		break;

	case 2:
		$query = "select U.user,floor(U.score/1000) as score, A.tag from user U left join allies A on (U.aid=A.aid) where U.uid not in (".implode (",", $_ghost_uids).") order by U.score desc limit 7;";
		if ($res = $db->query ($query))
		{
			echo "<h3>Top-Spieler aus ".WORLDTITLE.":</h3><br><table>";
			while ($row = mysql_fetch_array ($res))
			{
				$rowctr++;
				echo '<tr><td>'.$rowctr.'.</td><td><b>'.$row['user'].'</b></td>';
				if ($row['tag'])
					echo '<td><center>('.$row['tag'].')</center></td>';
				else
					echo '<td><center>(allianzlos)</center></td>';
				echo '<td> mit '.$row['score'].' Punkten</td></tr>';
			}
			echo "</table>";
		}
		break;

	case 3:
		$query = "select A.aranking, A.ascore, A.players, B.tag from ally_ranking A, allies B where A.aid=B.aid order by A.aranking asc limit 7";

		if ($res = $db->query ($query))
		{
			echo "<h3>Top-Allianzen aus ".WORLDTITLE.":</h3><br><table>";
			while ($row = mysql_fetch_array ($res))
			{
				$rowctr++;
				echo '<tr><td>'.$row['aranking'].'.</td><td><b>'.$row['tag'].'</b></td>';
				echo '<td>'.$row['ascore'].' Punkte, '.$row['players'].' Mitglieder</td><td>(Schnitt: '.floor ($row['ascore']/$row['players']).' Punkte)</td></tr>';
			}
			echo "</table>";
		}
		break;
	}
}