diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/functions.php | 19 | ||||
-rw-r--r-- | include/game.php | 16 | ||||
-rw-r--r-- | include/output.php | 4 |
3 files changed, 31 insertions, 8 deletions
diff --git a/include/functions.php b/include/functions.php index ca62cd9..d09408c 100644 --- a/include/functions.php +++ b/include/functions.php @@ -177,14 +177,27 @@ function compare_cards($a,$b,$game) return 1; if($b == 19 || $b == 20 ) return 0; - }; - if($RULES['schweinchen']=='second' && $GAME['schweinchen-second']) + } + else if($RULES['schweinchen']=='second' && $GAME['schweinchen-second']) { if($a == 19 || $a == 20 ) return 1; if($b == 19 || $b == 20 ) return 0; - }; + } + else if($RULES['schweinchen']=='secondaftercall' && $GAME['schweinchen-who'] && $GAME['schweinchen-second'] ) + { + /* check if a call was made either by the player or his partner. If so activate Schweinchen rule. */ + if(DB_get_call_by_hash($GAME['schweinchen-who']) || DB_get_partner_call_by_hash($GAME['schweinchen-who']) ) + { + if($a == 19 || $a == 20 ) + return 1; + if($b == 19 || $b == 20 ) + return 0; + } + /* if not, do nothing and the foxes are just handeled as normal trump */ + } + ; case "heart": case "spade": case "club": diff --git a/include/game.php b/include/game.php index 49957b1..afe6144 100644 --- a/include/game.php +++ b/include/game.php @@ -1324,7 +1324,11 @@ switch($mystatus) else $GAME['schweinchen-second'] = 1; /* this must be the second fox */ - if( ($GAME['schweinchen-second']==1 && $RULES['schweinchen']=='second') || $RULES['schweinchen']=='both') + if( $RULES['schweinchen']=='both' || + ($RULES['schweinchen']=='second' && $GAME['schweinchen-second']==1 )|| + ($RULES['schweinchen']=='secondaftercall' && $GAME['schweinchen-second']==1 && + (DB_get_call_by_hash($GAME['schweinchen-who']) || DB_get_partner_call_by_hash($GAME['schweinchen-who']) )) + ) { DB_insert_comment('Schweinchen! ',$playid,$myid); $commentSchweinchen = 'Schweinchen! '; @@ -1871,9 +1875,15 @@ switch($mystatus) foreach($mycards as $card) { + /* display only cards that the player is allowed to play as links, the rest just display normal + * also check if we have both schweinchen, in that case only display on of them as playable + */ if( ($followsuit && !same_type($card,$firstcard)) || - ( (int)($card)==19 && ($RULES['schweinchen']=='second'||$RULES['schweinchen']=='secondaftercall') - && $GAME['schweinchen-who']==$me && !$GAME['schweinchen-first'] ) + ( (int)($card)==19 && !$GAME['schweinchen-first'] && + ($RULES['schweinchen']=='second'|| + ( $RULES['schweinchen']=='secondaftercall' && + (DB_get_call_by_hash($GAME['schweinchen-who']) || DB_get_partner_call_by_hash($GAME['schweinchen-who']) ))) + && $GAME['schweinchen-who']==$me ) ) display_card($card,$PREF['cardset']); else diff --git a/include/output.php b/include/output.php index 1531c77..723dd54 100644 --- a/include/output.php +++ b/include/output.php @@ -75,8 +75,8 @@ function output_form_for_new_game($names) </li> <li> <input type="radio" name="schweinchen" value="second" /> first one normal, second one becomes highest (call during the game) </li> - <li> <input type="radio" name="schweinchen" value="secondaftercall" disabled="disabled" /> - second one become highest only in case re/contra was announced (not working yet) + <li> <input type="radio" name="schweinchen" value="secondaftercall" /> + second one become highest only in case re/contra was announced </li> </ul> <p> Call Re/Contra, etc.: </p> |