X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=blobdiff_plain;f=include%2Fgame.php;h=f612b202870aec926035dedd1a9cfc4fe3319e77;hp=fb807c74ed4533da18ccdc4da77e2f8c159e9e14;hb=1a44bc0d058016a093a112f064bac63a570c400d;hpb=53e8cff40ccebaa711fa8aab6dc9af1eb4e5c3a1 diff --git a/include/game.php b/include/game.php index fb807c7..f612b20 100644 --- a/include/game.php +++ b/include/game.php @@ -34,6 +34,7 @@ $myname = DB_get_name('hash',$me); $mystatus = DB_get_status_by_hash($me); $mypos = DB_get_pos_by_hash($me); $myhand = DB_get_handid('hash',$me); +$myparty = DB_get_party_by_hash($me); $session = DB_get_session_by_gameid($gameid); /* get prefs and save them in a variable*/ @@ -119,17 +120,50 @@ if( $mystatus != 'gameover' || $myid == $_SESSION['id'])) output_user_notes($myid,$gameid,$mystatus); -/* handle calls */ +/* handle calls, output a comment to show when the call was made */ +/* initialize comments */ +$comment = ''; + +/* check for calls, set comment */ if(myisset('call') && $_REQUEST['call'] == '120' && can_call(120,$me)) - $result = DB_query("UPDATE Hand SET point_call='120' WHERE hash='$me' "); + { + $result = DB_query("UPDATE Hand SET point_call='120' WHERE hash='$me' "); + if($myparty=='re') + $comment .= "Re"; + else if($myparty=='contra') + $comment .= "Contra"; + } if(myisset('call') && $_REQUEST['call'] == '90' && can_call(90,$me)) - $result = DB_query("UPDATE Hand SET point_call='90' WHERE hash='$me' "); + { + $result = DB_query("UPDATE Hand SET point_call='90' WHERE hash='$me' "); + $comment .= "No 90"; + } if(myisset('call') && $_REQUEST['call'] == '60' && can_call(60,$me)) - $result = DB_query("UPDATE Hand SET point_call='60' WHERE hash='$me' "); + { + $result = DB_query("UPDATE Hand SET point_call='60' WHERE hash='$me' "); + $comment .= "No 60"; + } if(myisset('call') && $_REQUEST['call'] == '30' && can_call(30,$me)) - $result = DB_query("UPDATE Hand SET point_call='30' WHERE hash='$me' "); + { + $result = DB_query("UPDATE Hand SET point_call='30' WHERE hash='$me' "); + $comment .= "No 30"; + } if(myisset('call') && $_REQUEST['call'] == '0' && can_call(0,$me)) - $result = DB_query("UPDATE Hand SET point_call='0' WHERE hash='$me' "); + { + $result = DB_query("UPDATE Hand SET point_call='0' WHERE hash='$me' "); + $comment .= "Zero"; + } + +/* get information needed to submit comment */ +$playid = DB_get_current_playid($gameid); + +/* set comment */ +if($comment != '') + DB_insert_comment($comment,$playid,$myid); +/* clear up */ +unset($comment); +/* end check for calls */ + /* output extra division in case this game is part of a session */ if($session) @@ -174,11 +208,42 @@ if($session) echo " schweinchen: {$RULES['schweinchen']}
\n"; echo " call: {$RULES['call']}
\n"; echo " \n \n"; - echo "
Score \n"; + + /* show score */ + + echo "
"; + $score = generate_score_table($session); + + /* get the last entry to show on the main page */ + $tmpscore= $score; + $finalscore = array_pop($tmpscore); + $finalscore = $finalscore['players']; + + if($finalscore) + { + echo "Score: \n"; + foreach($finalscore as $user=>$value) + { + $name = DB_get_name('userid',$user); + echo " ".substr($name,0,2).": $value "; + } + } + else + { + /* first game, no score yet */ + echo " "; + } + + /* output all games for the score table */ echo format_score_table_html($score,$myid); echo "
\n"; + + /* figure out which game in a session we are in and link to the + * previous and next game if possible + */ $hashes = DB_get_hashes_by_session($session,$myid); + $next = NULL; $i = 1; foreach($hashes as $hash) { @@ -188,8 +253,24 @@ if($session) $lasthash=$hash; } $i--; + + if($j>1) + $previous = $hashes[$j-2]; + else + $previous = NULL; + if($j<$i) + $next = $hashes[$j]; + else + $next = NULL; + if(isset($_SESSION['id']) && $_SESSION['id']==$myid) - echo "This is game number $j of $i in session $session."; + { + if($previous) + echo "previous game    \n"; + echo "This is game number $j of $i in session $session.\n"; + if($next) + echo "   next game \n"; + } else echo "This is game number $j of $i in session $session."; echo "\n
\n"; @@ -227,17 +308,17 @@ switch($mystatus) { /* cancel the game */ $message = "Hello, \n\n". - "the game has been canceled due to the request of one of the players.\n"; + "the game has been canceled due to the request of one of the players.\n\n"; $userids = DB_get_all_userid_by_gameid($gameid); foreach($userids as $user) { - $To = DB_get_email('userid',$user); - mymail($To,"$EmailName game ".DB_format_gameid($gameid)." canceled",$message); + $subject = 'Game '.DB_format_gameid($gameid).' canceled'; + mymail($user,$subject,$message); } - /* delete everything from the dB */ - DB_cancel_game($me); + /* update game status */ + cancel_game('noplay',$gameid); break; } else @@ -276,14 +357,13 @@ switch($mystatus) { /* email startplayer */ /* - $email = DB_get_email('position-gameid',$startplayer,$gameid); $hash = DB_get_hash_from_game_and_pos($gameid,$startplayer); - $who = DB_get_userid('email',$email); + $who = DB_get_userid('hash',$hash); DB_set_player_by_gameid($gameid,$who); $message = "It's your turn now in game ".DB_format_gameid($gameid).".\n". "Use this link to go the game: ".$HOST.$INDEX."?action=game&me=".$hash."\n\n" ; - mymail($email,$EmailName."ready, set, go... (game ".DB_format_gameid($gameid).") ",$message); + mymail($who,"Ready, set, go... (game ".DB_format_gameid($gameid).") ",$message); */ } } @@ -515,22 +595,20 @@ switch($mystatus) else if($nines) { /* cancel game */ - /* TODO: should we keep statistics of this? */ - $message = "Hello, \n\n". - " the game has been canceled because ".DB_get_name('userid',$nines). - " has five or more nines and nobody is playing solo.\n\n". - " To redeal either start a new game or, in case the game was part of a tournament, \n". - " go to the last game and use the link at the bottom of the page to redeal."; + $message = "the game has been canceled because ".DB_get_name('userid',$nines). + "has five or more nines and nobody is playing solo.\n\n". + "To redeal either start a new game or, in case the game was part of a tournament,\n". + "go to the last game and use the link at the bottom of the page to redeal.\n\n"; $userids = DB_get_all_userid_by_gameid($gameid); foreach($userids as $user) { - $To = DB_get_email('userid',$user); - mymail($To,"$EmailName game ".DB_format_gameid($gameid)." canceled",$message); + $subject = 'Game '.DB_format_gameid($gameid).' canceled'; + mymail($user,$subject,$message); } - /* delete everything from the dB */ - DB_cancel_game($me); + /* update game status */ + cancel_game('nines',$gameid); echo "The game has been canceled because ".DB_get_name('userid',$nines). " has five or more nines and nobody is playing solo.\n"; @@ -656,9 +734,8 @@ switch($mystatus) if($gametype!='poverty' && $gametype!='dpoverty') { $startplayer = DB_get_startplayer_by_gameid($gameid); - $email = DB_get_email('position-gameid',$startplayer,$gameid); $hash = DB_get_hash_from_game_and_pos($gameid,$startplayer); - $who = DB_get_userid('email',$email); + $who = DB_get_userid('hash',$hash); DB_set_player_by_gameid($gameid,$who); if($hash!=$me) @@ -668,11 +745,12 @@ switch($mystatus) /* email startplayer */ $message = "It's your turn now in game ".DB_format_gameid($gameid).".\n". "Use this link to play a card: ".$HOST.$INDEX."?action=game&me=".$hash."\n\n" ; - mymail($email,$EmailName."ready, set, go... (game ".DB_format_gameid($gameid).") ",$message); + $subject = 'Ready, set, go... (game '.DB_format_gameid($gameid).')'; + mymail($who,$subject,$message); } } else - echo " Please, start the game.
\n"; + echo "
Please, start the game.
\n"; } else { @@ -682,10 +760,9 @@ switch($mystatus) $whoid = DB_get_userid('gameid-position',$gameid,$who); if($whoid==$myid) - echo " Please, start the game.
\n"; + echo "
Please, start the game.
\n"; else { - $email = DB_get_email('position-gameid',$who,$gameid); $whohash = DB_get_hash_from_game_and_pos($gameid,$who); DB_set_player_by_gameid($gameid,$whoid); @@ -694,7 +771,8 @@ switch($mystatus) /* email player for poverty */ $message = "Poverty: It's your turn now in game ".DB_format_gameid($gameid).".\n". "Use this link to play a card: ".$HOST.$INDEX."?action=game&me=".$whohash."\n\n" ; - mymail($email,$EmailName."Poverty (game ".DB_format_gameid($gameid).") ",$message); + $subject = 'Poverty (game '.DB_format_gameid($gameid).') '; + mymail($whoid,$subject,$message); } } } @@ -718,9 +796,6 @@ switch($mystatus) * it is easier to check B) first */ - /* output pre game in case user reloads */ - - set_gametype($gametype); /* this sets the $CARDS variable */ $myparty = DB_get_party_by_hash($me); @@ -746,6 +821,25 @@ switch($mystatus) $mycards = DB_get_hand($me); $mycards = mysort($mycards,$gametype); + /* output pre-game trick in case user reloads, + * only needs to be done when a team has been formed */ + if($myparty=='re' || $myparty=='contra') + { + echo "\n