X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=blobdiff_plain;f=include%2Foutput.php;h=06eb8de66dd02945609b8dc6c92fe5a91fd1f6d2;hp=e57ed04cad615c53a182cab0170086ffad5578ff;hb=6e7ed2d202da016b9a74256371369cc41201df2e;hpb=6437c15bdaac379a15d7e6392122f027d8254ec6
diff --git a/include/output.php b/include/output.php
index e57ed04..06eb8de 100644
--- a/include/output.php
+++ b/include/output.php
@@ -1,4 +1,23 @@
+ *
+ * This file is part of e-DoKo.
+ *
+ * e-DoKo is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * e-DoKo is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with e-DoKo. If not, see .
+ *
+ */
+
/* make sure that we are not called from outside the scripts,
* use a variable defined in config.php to check this
*/
@@ -12,7 +31,7 @@ function output_ask_for_new_game($playerA,$playerB,$playerC,$playerD,$oldgameid)
global $RULES;
echo "
\n
+
Rules
+
Gameplay-related
+
Ten of hearts:
+
+
+ just normal non-trump
+ first ten of hearts wins the trick
+ second ten of hearts wins the trick
+
+
+
Schweinchen (both foxes), only in normal games or silent solos:
+
+
+ none
+ both become highest trump (automatic call at beginning of the game)
+ first one normal, second one becomes highest (call during the game)
+ second one become highest only in case re/contra was announced
+
+
+
+
Call Re/Contra, etc.:
+
+
+ Can call re/contra on the first own card played, 90 on the second, etc.
+ Can call re/contra until 5th card is played, 90 until 9th card is played, etc.
+ Can call re/contra until 5th card is played, 90 if player still has 9 cards, etc.
+
+
+
Scoring-related
+
(not yet implemented)
+
+
\n";
- else
- $HTML = "\n
\n";
+ $HTML.= " class=\"$class\"";
+ if($id!="")
+ $HTML.= " id=\"$id\"";
+
+ $HTML.=">\n";
$i=0;
@@ -112,10 +158,7 @@ function output_table($data,$caption="",$class="")
else
{
if($i==1) $HTML .= " \n";
- if($i % 2)
- $HTML .= " ";
- else
- $HTML .= " ";
+ $HTML .= " ";
}
foreach($record as $point)
{
@@ -143,7 +186,7 @@ function display_card($card,$dir="english")
/* cards are only availabl for the odd values, e.g. 1.png, 3.png, ...
* convert even cards to the matching odd value */
- if( $card/2 - (int)($card/2) == 0.5)
+ if( $card/2 - (int)($card/2) == 0.5 || $card == 0)
echo " \n";
else
echo " \n";
@@ -221,25 +264,63 @@ function output_check_for_sickness($me,$mycards)
return;
}
-function output_form_calls($me)
+function output_form_calls($me,$myparty)
{
- if( can_call(120,$me) )
- echo " re/contra (120):".
- " ";
- if( can_call(90,$me) )
- echo " 90:".
- " ";
- if( can_call(60,$me) )
- echo " 60:".
- " ";
- if( can_call(30,$me) )
- echo " 30:".
- " ";
- if( can_call(0,$me) )
- echo " 0:".
- " ".
- " no call:".
- " ";
+ $highstart = "";
+ $highend = " ";
+
+ $tmp = can_call(120,$me);
+ if( $tmp )
+ {
+ if($tmp==2) echo $highstart;
+ if($myparty=='re')
+ echo "re (120):";
+ else if ($myparty=='contra')
+ echo "contra (120):";
+ else
+ echo " re/contra (120):";
+ echo " ";
+ if($tmp==2) echo $highend;
+ echo " \n";
+ }
+ $tmp = can_call(90,$me);
+ if( $tmp )
+ {
+ if($tmp==2) echo $highstart;
+ echo " 90:".
+ " ";
+ if($tmp==2) echo $highend;
+ echo " \n";
+ }
+ $tmp = can_call(60,$me);
+ if( $tmp )
+ {
+ if($tmp==2) echo $highstart;
+ echo " 60:".
+ " ";
+ if($tmp==2) echo $highend;
+ echo " \n";
+ }
+ $tmp = can_call(30,$me);
+ if( $tmp )
+ {
+ if($tmp==2) echo $highstart;
+ echo " 30:".
+ " ";
+ if($tmp==2) echo $highend;
+ echo " \n";
+ }
+ $tmp = can_call(0,$me);
+ if( $tmp )
+ {
+ if($tmp==2) echo $highstart;
+ echo " 0:".
+ " ";
+ if($tmp==2) echo $highend;
+ echo " \n".
+ " no call:".
+ " ";
+ }
}
function output_check_want_to_play($me)
@@ -270,48 +351,20 @@ function output_header()
e-Doko
-
+
+
+
+
\n\n";
echo "\n";
-
- /* last logon time */
- $myid = DB_get_userid("name",$name);
- $zone = DB_get_user_timezone($myid);
-
- $time = DB_get_user_timestamp($myid);
- date_default_timezone_set($defaulttimezone);
- $unixtime = strtotime($time);
- date_default_timezone_set($zone);
-
- echo "last login: ".date("r",$unixtime)."
\n";
- };
+ global $defaulttimezone, $INDEX, $WIKI, $RSS;
+
+ if(isset($_SESSION["name"]))
+ {
+ $name = $_SESSION["name"];
+
+ /* last logon time */
+ $myid = DB_get_userid("name",$name);
+ $zone = DB_get_user_timezone($myid);
+
+ $time = DB_get_user_timestamp($myid);
+ date_default_timezone_set($defaulttimezone);
+ $unixtime = strtotime($time);
+ date_default_timezone_set($zone);
+
+ /* rss token */
+ $token = get_user_token($myid);
+
+ /* logout info */
+ echo "\n\n";
+
+ echo "last login: ".date("r",$unixtime)."
\n";
+ }
+ else
+ {
+ echo "\n\n";
+ echo "
login \n";
+ echo "
\n";
+ }
return;
}
function output_select_timezone($name,$timezone="")
{
- $Tzone = array ( "Europe/London" => "London",
- "Europe/Berlin" => "Berlin",
- "America/Vancouver" => "Berkeley",
- "Pacific/Auckland" => "Wellington" );
+ $Tzone = array ("Pacific/Apia" => "Apia", /*UTC-11*/
+ "Pacific/Honolulu" => "Honolulu", /*UTC-10*/
+ "America/Anchorage" => "Anchorage", /*UTC-9*/
+ "America/Vancouver" => "Berkeley", /*UTC-8*/
+ "America/Phoenix" => "Phoenix", /*UTC-7*/
+ "America/Chicago" => "Chicago", /*UTC-6*/
+ "America/New_York" => "New York", /*UTC-5*/
+ "America/Santiago" => "Santiago", /*UTC-4*/
+ "America/Buenos_Aires" => "Buenos Aires", /*UTC-3*/
+ "Atlantic/South_Georgia" => "Fernando de Noronha", /*UTC-2*/
+ "Atlantic/Azores" => "Azores", /*UTC-1"*/
+ "Europe/London" => "London", /*UTC*/
+ "Europe/Berlin" => "Berlin", /*UTC+1*/
+ "Africa/Cairo" => "Cairo", /*UTC+2*/
+ "Europe/Moscow" => "Moscow", /*UTC+3*/
+ "Asia/Tehran" => "Tehran", /*UTC+3:30*/
+ "Asia/Dubai" => "Dubai", /*UTC+4*/
+ "Asia/Karachi" => "Karachi", /*UTC+5*/
+ "Asia/Calcutta" => "Delhi", /*UTC+5:30*/
+ "Asia/Kathmandu" => "Kathmandu", /*UTC+5:45*/
+ "Asia/Dhaka" => "Dhaka", /*UTC+6*/
+ "Asia/Rangoon" => "Yangon", /*UTC+6:30*/
+ "Asia/Bangkok" => "Bangkok", /*UTC+7*/
+ "Asia/Hong_Kong" => "Beijing", /*UTC+8*/
+ "Asia/Tokyo" => "Tokyo", /*UTC+9*/
+ "Australia/Darwin" => "Darwin", /*UTC+9:30*/
+ "Australia/Sydney" => "Sydney", /*UTC+10*/
+ "Asia/Magadan" => "Magadan", /*UTC+11*/
+ "Pacific/Auckland" => "Wellington" ); /*UTC+12*/
echo " \n";
@@ -428,4 +517,183 @@ function output_password_recovery($email,$password)
\ No newline at end of file
+
+function output_user_notes($userid,$gameid,$userstatus)
+{
+ echo " Personal notes: \n";
+ $notes = DB_get_notes_by_userid_and_gameid($userid,$gameid);
+ foreach($notes as $note)
+ echo "$note
\n";
+ if($userstatus!='gameover')
+ echo " \n";
+ echo " \n";
+
+ return;
+}
+
+function output_robotproof($i)
+{
+ switch($i)
+ {
+ case 0:
+ return "6*7=";
+ case 1:
+ return "5*7=";
+ case 2:
+ return "4*7=";
+ case 3:
+ return "3*7=";
+ case 4:
+ return "2*7=";
+ }
+}
+
+function output_exchanged_cards()
+{
+ /* in a poverty game this function will output the exchanged cards
+ * players in the team will see the cards, the other team will see
+ * the backside of cards
+ */
+
+ /* need some information about the game */
+ global $gameid,$mygametype, $PREF,$me,$mystatus;
+
+ /* some variables to track where the people with poverty are sitting */
+ $partnerpos1 = 0;
+ $povertypos1 = 0;
+ $partnerpos2 = 0;
+ $povertypos2 = 0;
+
+ /* only need to do it in a poverty game, this might not be needed, but
+ * just to make sure everything is ok
+ */
+ if($mygametype == 'poverty' || $mygametype=='dpoverty')
+ {
+ /* find out who has poverty */
+ for($mypos=1;$mypos<5;$mypos++)
+ {
+ $usersick = DB_get_sickness_by_pos_and_gameid($mypos,$gameid);
+ if($usersick == 'poverty')
+ if($povertypos1)
+ $povertypos2 = $mypos;
+ else
+ $povertypos1 = $mypos;
+ }
+ /* get hash and exchanged cards for all involved */
+ $povertyhash1 = DB_get_hash_from_game_and_pos($gameid,$povertypos1);
+ $partnerhash1 = DB_get_partner_hash_by_hash($povertyhash1);
+
+ $povertycards1 = DB_get_exchanged_cards($povertyhash1);
+ $partnercards1 = DB_get_exchanged_cards($partnerhash1);
+
+ $partnerpos1 = DB_get_pos_by_hash($partnerhash1);
+ if($povertypos2)
+ {
+ $povertyhash2 = DB_get_hash_from_game_and_pos($gameid,$povertypos2);
+ $partnerhash2 = DB_get_partner_hash_by_hash($povertyhash2);
+
+ $povertycards2 = DB_get_exchanged_cards($povertyhash2);
+ $partnercards2 = DB_get_exchanged_cards($partnerhash2);
+
+ $partnerpos2 = DB_get_pos_by_hash($partnerhash2);
+ }
+ }
+
+ /* output the cards
+ * go through all positions, check that position has cards that need to be shown and
+ * show those cards
+ */
+ $show=1;
+ for($mypos=1;$mypos<5;$mypos++)
+ {
+ $usersick = DB_get_sickness_by_pos_and_gameid($mypos,$gameid);
+ if($usersick!=NULL ||
+ $mypos==$povertypos1 || $mypos==$partnerpos1 ||
+ $mypos==$povertypos2 || $mypos==$partnerpos2 )
+ {
+ /* figure out if we gave trump back */
+ $trump_back1=0;
+ if($povertypos2)
+ foreach($povertycards1 as $card)
+ {
+ if(is_trump($card))
+ {
+ $trump_back1=1;
+ break;
+ }
+ }
+ $trump_back2=0;
+ if($povertypos2)
+ foreach($povertycards2 as $card)
+ {
+ if(is_trump($card))
+ {
+ $trump_back2=1;
+ break;
+ }
+ }
+
+ /* output vorbehalt */
+ echo " Vorbehalt \n";
+ if($show)
+ echo " $usersick \n";
+
+ /* output cards */
+ if($mypos==$partnerpos1)
+ {
+ foreach($partnercards1 as $card)
+ {
+ echo ' ';
+ if($povertyhash1 == $me || $partnerhash1 == $me || $mystatus=='gameover')
+ display_card($card,$PREF['cardset']);
+ else
+ display_card(0,$PREF['cardset']);
+ }
+ if($trump_back1) echo " Trump back";
+ }
+ else if($mypos==$povertypos1)
+ {
+ foreach($povertycards1 as $card)
+ {
+ echo ' ';
+ if($povertyhash1 == $me || $partnerhash1 == $me || $mystatus=='gameover')
+ display_card($card,$PREF['cardset']);
+ else
+ display_card(0,$PREF['cardset']);
+ }
+ if($trump_back1) echo " Trump back";
+ }
+ else if($mypos==$povertypos2)
+ {
+ foreach($povertycards2 as $card)
+ {
+ echo ' ';
+ if($povertyhash2 == $me || $partnerhash2 == $me || $mystatus=='gameover')
+ display_card($card,$PREF['cardset']);
+ else
+ display_card(0,$PREF['cardset']);
+ }
+ if($trump_back2) echo " Trump back";
+ }
+ else if($mypos==$partnerpos2)
+ {
+ foreach($partnercards2 as $card)
+ {
+ if(is_trump($card)) $trump_back=1;
+ echo ' ';
+ if($povertyhash2 == $me || $partnerhash2 == $me || $mystatus=='gameover')
+ display_card($card,$PREF['cardset']);
+ else
+ display_card(0,$PREF['cardset']);
+ }
+ if($trump_back2) echo " Trump back";
+ }
+ echo "
\n";
+ }
+ if($mygametype == $usersick)
+ $show = 0;
+ }
+}
+
+
+?>