X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=blobdiff_plain;f=include%2Fgame.php;h=3bbfccd6d7096e5e2829859f65b019e362110ce3;hp=bbaa5b3500a2e945c5d4a2b113806b0cdb4f2d40;hb=1132ca2ccda76df5ed2b1bea6b64015d4dc86880;hpb=e525ec3c4a6e6234fd63caad097845cc2935fc1b diff --git a/include/game.php b/include/game.php index bbaa5b3..3bbfccd 100644 --- a/include/game.php +++ b/include/game.php @@ -26,6 +26,8 @@ if(!$myid) exit(); } +global $GAME,$RULES,$CARDS; + /* user might get here by clicking on the link in an email, so session might not be set */ if(isset($_SESSION["name"])) output_status($_SESSION["name"]); @@ -76,6 +78,11 @@ else $ok=1; } +/* these are the defaults */ +$GAME['schweinchen-who'] = NULL; +$GAME['schweinchen-first'] = NULL; +$GAME['schweinchen-second'] = NULL; + if($ok) { /* need to check for Schweinchen */ @@ -89,14 +96,13 @@ if($ok) $GAME['schweinchen-first'] = 0; /* to keep track if they have been played already */ $GAME['schweinchen-second'] = 0; } -else -{ - /* no need to check for Schweinchen */ - $GAME['schweinchen-who']=NULL; -} /* end check for Schweinchen */ -set_gametype($gametype); /* this sets the $CARDS variable */ +/* set the $CARDS variable, needed for sorting the cards + * we set it to normal so that the pre-game phase is handled ok + * and later set it to the correct game type that is played + */ +set_gametype('normal'); /* put everyting in a form */ echo "
\n"; @@ -136,7 +142,11 @@ display_table(); switch($mystatus) { case 'start': - if( !myisset("in") ) + /* don't ask if user has autosetup set to yest */ + $skip = 0; + if($PREF['autosetup']=='yes') $skip = 1; + + if( !myisset("in") && !$skip) { /* asks the player, if he wants to join the game */ output_check_want_to_play($me); @@ -145,7 +155,7 @@ switch($mystatus) else { /* check the result, if player wants to join, got next stage, else cancel game */ - if($_REQUEST["in"] == "no") + if($_REQUEST["in"] == "no" && !$skip) { /* cancel the game */ $message = "Hello, \n\n". @@ -183,6 +193,7 @@ switch($mystatus) /* whos turn is it? */ DB_set_player_by_gameid($gameid,$user); $ok = 0; + break; } }; if($ok) @@ -303,7 +314,7 @@ switch($mystatus) } else if($_REQUEST["wedding"] == "yes") { - /* TODO: add silent solo somewhere*/ + /* silent solo is set further down */ echo "Ok, you don't want to play a silent solo...wedding was chosen.
\n"; DB_set_sickness_by_hash($me,"wedding"); } @@ -374,6 +385,7 @@ switch($mystatus) { $ok = 0; DB_set_player_by_gameid($gameid,$user); + break; } }; @@ -634,6 +646,7 @@ switch($mystatus) * poverty: set re/contra * dpoverty: first time: set re, send email to second player * second time: set contra + * poverty: set status of other players to 'play' * set status to play in case 0 trump * no -> set status to play, * ask next player or cancle the game if no more players @@ -665,6 +678,7 @@ switch($mystatus) " WHERE hand_id='$myhand' AND card_id=".DB_quote_smart($exchange)); }; } + /* update hand */ $mycards = DB_get_hand($me); $mycards = mysort($mycards,$gametype); @@ -685,7 +699,26 @@ switch($mystatus) { /* user is done, ready to play */ DB_set_hand_status_by_hash($me,'play'); - /* TODO if resolved; email start player, set startplayer */ + + /* email start player */ + $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); + DB_set_player_by_gameid($gameid,$who); + + if($hash!=$me) + { + if(DB_get_email_pref_by_hash($hash)!="emailaddict") + { + /* 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); + } + } + else + echo " Please, start the game.
\n"; } /* the following is part A) of what needs to be done */ @@ -711,10 +744,10 @@ switch($mystatus) foreach($cards as $card) if($card<27) $nrtrump++; echo "Player $name has $nrtrump trump. Do you want to take them?". - "yes
\n"; + "Yes
\n"; } } - echo "No,way I take those trump...
\n"; + echo "No way
\n"; echo "
\n"; echo "
Your cards are:
\n"; @@ -799,6 +832,7 @@ switch($mystatus) /* copy trump from player A to B */ $result = DB_query("UPDATE Hand_Card SET hand_id='$myhand' WHERE hand_id='$userhand' AND card_id<'27'" ); + /* reload cards */ $mycards = DB_get_hand($me); /* set re/contra */ @@ -809,18 +843,19 @@ switch($mystatus) { $hash = DB_get_hash_from_gameid_and_userid($gameid,$user); if($hash==$userhash||$hash==$me) - DB_set_party_by_hash($hash,"re"); + { + DB_set_party_by_hash($hash,"re"); + } else - DB_set_party_by_hash($hash,"contra"); + { + DB_set_party_by_hash($hash,"contra"); + DB_set_hand_status_by_hash($hash,'play'); /* the contra party is ready to play */ + } } - /* check if we are done, if so, send everyone into the 'play' phase */ + /* check if we are done (in case of no trump handed over), if so, go to 'play' phase right away*/ if(count($mycards)==12) { - foreach($userids as $user) - { - $hash = DB_get_hash_from_gameid_and_userid($gameid,$user); - DB_set_hand_status_by_hash($hash,'play'); - } + DB_set_hand_status_by_hash($me,'play'); } } else /*dpoverty*/ @@ -901,6 +936,7 @@ switch($mystatus) { $ok = 0; DB_set_player_by_gameid($gameid,$user); + break; } } if($ok) @@ -1699,8 +1735,8 @@ switch($mystatus) echo "
\n \n"; /* end div trick, end li trick */ } - - echo "\n"; /* end ul tricks*/ + echo "
  • prev
  • \n"; + echo "
  • next
  • \n\n"; /* end ul tricks*/ echo "
    Personal notes:
    \n"; $notes = DB_get_notes_by_userid_and_gameid($myid,$gameid);