added some checks for poverty and wedding, but only nines are handled correctly from...
authorarun <arun@nubati.net>
Fri, 12 Jan 2007 15:21:14 +0000 (15:21 +0000)
committerarun <arun>
Fri, 12 Jan 2007 15:21:14 +0000 (15:21 +0000)
db.php
index.php

diff --git a/db.php b/db.php
index 88be2a3fd38fb47ad79a965232c8bd8e4dad5d50..45f5eff7f02d11226d32f0bd438f8de87b750492 100644 (file)
--- a/db.php
+++ b/db.php
@@ -236,6 +236,18 @@ function DB_get_hand_status_by_userid_and_gameid($uid,$gid)
     return 0;
 }
 
+function DB_get_sickness_by_userid_and_gameid($uid,$gid)
+{
+  $result = mysql_query("SELECT sickness FROM Hand WHERE user_id=".DB_quote_smart($uid).
+                       " AND game_id=".DB_quote_smart($gid));
+  $r      = mysql_fetch_array($result,MYSQL_NUM);
+  
+  if($r)
+    return $r[0];
+  else
+    return 0;
+}
+
 function DB_get_gameid_by_hash($hash)
 {
   $result = mysql_query("SELECT game_id FROM Hand WHERE hash=".DB_quote_smart($hash));
index 36b59efbd19e6d8ff2be26003cf2c762beaca169..5bc9e4526803a8828d3b02f3f238e72ac063014b 100644 (file)
--- a/index.php
+++ b/index.php
@@ -159,7 +159,7 @@ else if(myisset("me"))
                foreach($userids as $user)
                  {
                    $To = DB_get_email_by_userid($user);
-                   mymail($To,"[DoKo] game over",$message);
+                   mymail($To,"[DoKo] game cancled",$message);
                  }
                
                /* delete everything from the dB */
@@ -186,9 +186,9 @@ else if(myisset("me"))
        break;
        
       case 'check':
-       echo "checking for solo...<br />".
+       echo "checking if you selected solo or nines...<br />".
          " if you have a wedding, please send an email to the other players. <br />".
-         " if you have  poverty you need to play a normal game,sorry...<br />".
+         " if you have poverty you need to play a normal game,sorry...<br />".
          " At the moment you need to reload this page to finish the setup.<br />";
        if(!myisset("solo","wedding","poverty","nines") )
          {
@@ -213,6 +213,7 @@ else if(myisset("me"))
                  {}/* do nothing */
                else
                  {
+                   /* this solo comes first */
                    DB_set_gametype_by_gameid($gameid,"solo");
                    DB_set_startplayer_by_gameid($gameid,$mypos);
                    DB_set_solo_by_gameid($gameid,$_REQUEST["solo"]);
@@ -247,7 +248,7 @@ else if(myisset("me"))
         * set that one in the Game table, delete other ones form Hand table 
         * tell people about it.
         */
-       echo "<br />poverty not handeled at the moment... you need to play a normal game<br />".
+       echo "<br />checking if someone else selected solo or nines... wedding and poverty not handled at the moment<br />".
           "reload this page to finish the setup <br />";
        
        /* only set this after all poverty, etc. are handeled*/
@@ -262,8 +263,71 @@ else if(myisset("me"))
 
        if($ok)
          {
-           /* TODO: check what kind of game we are playing */
            DB_set_game_status_by_gameid($gameid,'play');
+
+           /* check what kind of game we are playing */
+           $gametype    = DB_get_gametype_by_gameid($gameid);
+           $startplayer = DB_get_startplayer_by_gameid($gameid);
+
+           /* nines? */
+           $nines = 0;
+           /* check for nines */
+           foreach($userids as $user)
+             {
+               if(DB_get_sickness_by_userid_and_gameid($user,$gameid) == 'nines')
+                 $nines = 1;
+             }
+           
+           /* gamestatus == normal, => cancel game */
+           if($nines && $gamestatus == "normal")
+             {
+               /* TODO: set game type to nines to be able to keep statistics */
+               
+               $message = "Hello, \n\n".
+                 "the game has been cancled becausee someone has five or more nines.\n";
+               
+               $userids = DB_get_all_userid_by_gameid($gameid);
+               foreach($userids as $user)
+                 {
+                   $To = DB_get_email_by_userid($user);
+                   mymail($To,"[DoKo] game cancled",$message);
+                 }
+               
+               /* delete everything from the dB */
+               DB_cancel_game($me);
+
+             }
+
+           /* poverty? */
+           $poverty = 0;
+
+           /* check players for poverty */
+           foreach($userids as $user)
+             {
+               if(DB_get_sickness_by_userid_and_gameid($user,$gameid) == 'poverty')
+                 {
+                   $poverty++;
+                   $name = DB_get_name_by_userid($user);
+                   echo "$name has a Vorbehalt. <br />";
+                 }
+             }
+           /* if gamestatus == normal, set poverty or dpovert (in case two people have poverty) */
+
+           /* wedding? */
+           $wedding = 0;
+           /* check players for wedding */
+           foreach($userids as $user)
+             {
+               if(DB_get_sickness_by_userid_and_gameid($user,$gameid) == 'wedding')
+                 {
+                   $wedding++;
+                   $name = DB_get_name_by_userid($user);
+                   echo "$name has a Vorbehalt. <br />"  ;
+                 }
+             }
+
+           /* if gamestatus == normal, set wedding  */
+           
          }
        
        break;
@@ -290,7 +354,9 @@ else if(myisset("me"))
        
        set_gametype($gametype);
 
-       
+       /* get some infos about the game */
+       $gamestatus = DB_get_game_status_by_gameid($gameid);
+
        /* display useful things in divs */
        
        /* display local time */
@@ -308,7 +374,8 @@ else if(myisset("me"))
          };
        echo "</table>\n</div>\n";
 
-       display_status($GT);
+       if($gamestatus != 'pre')
+         display_status($GT);
 
        /* display links to the users status page */
        $result = mysql_query("SELECT email,password from User WHERE id='$myid'" );
@@ -320,7 +387,6 @@ else if(myisset("me"))
        /* end display useful things*/
 
        /* has the game started? No, then just wait here...*/
-       $gamestatus = DB_get_game_status_by_gameid($gameid);
        if($gamestatus == 'pre')
          {
            echo "you need to wait for the others... <br />";
@@ -360,8 +426,6 @@ else if(myisset("me"))
                              "LEFT JOIN Comment ON Play.id=Comment.play_id ".
                              "WHERE Trick.game_id='".$gameid."' ".
                              "ORDER BY Trick.id,sequence ASC");
-       
-       
        $trickNR = 1;
        
        $lasttrick = DB_get_max_trickid($gameid);
@@ -607,7 +671,7 @@ else if(myisset("me"))
            echo "Your cards are: <br />\n";
            echo "<form action=\"index.php?me=$me\" method=\"post\">\n";
 
-           /* do we have to follow suit? */
+           /* do we have to follow suite? */
            $followsuit = 0;
            if(have_suit($mycards,$firstcard))
              $followsuit = 1;