From f0e93ad1feb9ba47dc1db80354b5f28d29b5ab27 Mon Sep 17 00:00:00 2001 From: Arun Persaud Date: Thu, 4 Mar 2010 19:11:18 -0800 Subject: BUGFIX: show "It's your turn in these games" menu also when you played the last card in a game When showing the menu we test for the status the user had before he played the card. This fixes Issue #35. --- include/game.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'include/game.php') diff --git a/include/game.php b/include/game.php index a1c02a0..93ab461 100644 --- a/include/game.php +++ b/include/game.php @@ -47,6 +47,7 @@ global $GAME,$RULES,$CARDS; $gameid = DB_get_gameid_by_hash($me); $myname = DB_get_name('hash',$me); $mystatus = DB_get_status_by_hash($me); +$origmystatus = DB_get_status_by_hash($me); /* to show "it's your turn" menu when game has just finished */ $mypos = DB_get_pos_by_hash($me); $myhand = DB_get_handid('hash',$me); $myparty = DB_get_party_by_hash($me); @@ -2031,11 +2032,20 @@ switch($mystatus) /* output other games where it is the users turn * make sure that the people looking at old games don't see the wrong games here */ -if( $mystatus != 'gameover' ) - display_user_menu($myid); +if( $gamestatus != 'gameover' ) + { + /* game isn't over, only valid user can get here, so show menu */ + display_user_menu($myid); + } +else if( $origmystatus != 'gameover' ) + { + /* user just played the very last card, game is now over, it's still ok to show the menu though */ + display_user_menu($myid); + } else if( $mystatus == 'gameover' && - isset($_SESSION['id']) ) + isset($_SESSION['id']) ) { + /* user is looking at someone else's game, show the menu for the correct user */ display_user_menu($_SESSION['id']); } else -- cgit v1.2.3-18-g5258 From 850378a3e2da48d387dc565cc6e3c2b47f12e34d Mon Sep 17 00:00:00 2001 From: Arun Persaud Date: Sat, 13 Mar 2010 15:59:07 -0800 Subject: NEW FEATURE: having only low trump (fox and below) can now be a Vorbehalt The low trump can either be treated as poverty or similar to 5 nines, that is the game is canceled unless someone plays a solo. Also minor code cleanup. --- include/game.php | 98 ++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 67 insertions(+), 31 deletions(-) (limited to 'include/game.php') diff --git a/include/game.php b/include/game.php index 93ab461..3cc1d65 100644 --- a/include/game.php +++ b/include/game.php @@ -223,6 +223,7 @@ if($session) echo " 10ofhearts : {$RULES['dullen']}
\n"; echo " schweinchen: {$RULES['schweinchen']}
\n"; echo " call: {$RULES['call']}
\n"; + echo " lowtrump: {$RULES['lowtrump']}
\n"; echo " \n \n"; /* show score */ @@ -400,7 +401,7 @@ switch($mystatus) $mycards = DB_get_hand($me); $mycards = mysort($mycards,$gametype); - if(!myisset('solo','wedding','poverty','nines') ) + if(!myisset('solo','wedding','poverty','nines','lowtrump') ) { /* output sickness of other playes, in case the already selected and are sitting in front of the current player */ echo "\n\n\n"; /* end div trick, end li trick , end ul tricks */ } /* end output pre-game trick */ -- cgit v1.2.3-18-g5258 From c05246b378470eab9c172d8d96328a821302a273 Mon Sep 17 00:00:00 2001 From: Arun Persaud Date: Sun, 14 Mar 2010 11:11:38 -0700 Subject: CLEANUP: cleaned up code for Karlchen --- include/game.php | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) (limited to 'include/game.php') diff --git a/include/game.php b/include/game.php index b94ee90..db27bde 100644 --- a/include/game.php +++ b/include/game.php @@ -1524,28 +1524,31 @@ switch($mystatus) /* same as for foxes, karlchen doesn't always make sense * check what kind of game it is and set karlchen accordingly */ - $ok = 1; /* default: karlchen should be accounted for */ - if($tricknr != 12 ) - $ok = 0; /* Karlchen works only in the last trick */ - if($ok && DB_get_gametype_by_gameid($gameid)=='solo' ) + + if($tricknr == 12 ) /* Karlchen works only in the last trick */ { - $solo = DB_get_solo_by_gameid($gameid); - if($solo == 'trumpless' || $solo == 'jack' || $solo == 'queen' ) - $ok = 0; /* no Karlchen in these solos */ - } + /* check for solo */ + $solo = 'none'; + if(DB_get_gametype_by_gameid($gameid)=='solo' ) + $solo = DB_get_solo_by_gameid($gameid); - if($ok) - foreach($play as $played) - if ( $played['card']==11 || $played['card']==12 ) - if ($played['pos'] == $winner ) - { - /* possible caught a fox, check party */ - $uid1 = DB_get_userid('gameid-position',$gameid,$winner); - $party1 = DB_get_party_by_gameid_and_userid($gameid,$uid1); + /* no Karlchen in these solos */ + if($solo != 'trumpless' && $solo != 'jack' && $solo != 'queen' ) + { + foreach($play as $played) + if ( $played['card']==11 || $played['card']==12 ) + if ($played['pos'] == $winner ) + { + /* save Karlchen */ + $uid1 = DB_get_userid('gameid-position',$gameid,$winner); + $party1 = DB_get_party_by_gameid_and_userid($gameid,$uid1); + + DB_query("INSERT INTO Score". + " VALUES( NULL,NULL,$gameid,'$party1',$uid1,NULL,'karlchen')"); + }; + }; + }; /* end scoring Karlchen */ - DB_query("INSERT INTO Score". - " VALUES( NULL,NULL,$gameid,'$party1',$uid1,NULL,'karlchen')"); - } /* * check for doppelopf (>40 points) ***********************************/ -- cgit v1.2.3-18-g5258