]> Pileus Git - ~andy/rhawk/blobdiff - spades.awk
Fix color loading
[~andy/rhawk] / spades.awk
index 3503f1e03e9c719ef047fd0968f83bfa08a60445..41d2ab8816b29d558fcaa869888c89a853833118 100644 (file)
@@ -230,19 +230,19 @@ function sp_bags(i,       bags)
        return bags
 }
 
+function sp_bid(who)
+{
+       return sp_nil[who] == 0 ? sp_bids[who] :
+              sp_nil[who] == 1 ? "nil"        :
+              sp_nil[who] == 2 ? "blind"      : "n/a"
+}
+
 function sp_bidders(   i, turn, bid, bids)
 {
        for (i = 0; i < 4; i++) {
                turn = (sp_dealer + i) % 4
-               if (sp_bids[turn] && !sp_nil[turn])
-                       bid  = sp_order[turn] ":" sp_bids[turn]
-               else if (sp_nil[turn] == 1)
-                       bid  = sp_order[turn] ":" "nil"
-               else if (sp_nil[turn] == 2)
-                       bid  = sp_order[turn] ":" "blind"
-               else
-                       continue
-               bids = bids " " bid
+               if (bid = sp_bid(turn))
+                       bids = bids " " sp_order[turn] ":" bid
        }
        gsub(/^ +| +$/, "", bids)
        return bids
@@ -372,18 +372,38 @@ AUTH == OWNER &&
 # Help
 /^\.help [Ss]pades$/ {
        say("Spades -- play a game of spades")
-       say("Examples:")
+       say(".help game -- setup and administer the game")
+       say(".help play -- commands for playing spades")
+       say(".help auth -- control player authorization")
+       next
+}
+
+/^\.help game$/ {
        say(".newgame [score] -- start a game to <score> points, default 500")
        say(".endgame -- abort the current game")
        say(".savegame -- save the current game to disk")
        say(".loadgame -- load the previously saved game")
+       next
+}
+
+/^\.help play$/ {
        say(".join -- join the current game")
        say(".look -- look at your cards")
-       say(".bid n -- bid for <n> tricks")
+       say(".bid [n] -- bid for <n> tricks")
+       say(".pass [card] -- pass a card to your partner")
        say(".play [card] -- play a card")
-       say(".score -- check the score")
-       say(".tricks -- check how many trick have been taken")
+       say(".turn -- check whose turn it is")
        say(".bids -- check what everyone bid")
+       say(".tricks -- check how many trick have been taken")
+       say(".score -- check the score")
+       next
+}
+
+/^\.help auth$/ {
+       say(".auth [who] -- display authentication info for a user")
+       say(".allow [who] -- allow another person to play on your behalf")
+       say(".deny [who] -- prevent a previously allowed user from playing")
+       say(".show -- display which users can play for which players")
        next
 }
 
@@ -653,19 +673,19 @@ sp_state == "play" &&
 }
 
 /^\.bids$/ && sp_state ~ "(pass|play)" {
-       say(sp_order[0] " bid " sp_bids[0] ", " \
-           sp_order[2] " bid " sp_bids[2] ", " \
+       say(sp_order[0] " bid " sp_bid(0) ", " \
+           sp_order[2] " bid " sp_bid(2) ", " \
            "total: " sp_bids[0] + sp_bids[2])
-       say(sp_order[1] " bid " sp_bids[1] ", " \
-           sp_order[3] " bid " sp_bids[3] ", " \
+       say(sp_order[1] " bid " sp_bid(1) ", " \
+           sp_order[3] " bid " sp_bid(3) ", " \
            "total: " sp_bids[1] + sp_bids[3])
 }
 
 /^\.tricks$/ && sp_state == "play" {
-       say(sp_order[0] " took " int(sp_tricks[0]) "/" int(sp_bids[0]) ", " \
-           sp_order[2] " took " int(sp_tricks[2]) "/" int(sp_bids[2]))
-       say(sp_order[1] " took " int(sp_tricks[1]) "/" int(sp_bids[1]) ", " \
-           sp_order[3] " took " int(sp_tricks[3]) "/" int(sp_bids[3]))
+       say(sp_order[0] " took " int(sp_tricks[0]) "/" sp_bid(0) ", " \
+           sp_order[2] " took " int(sp_tricks[2]) "/" sp_bid(2))
+       say(sp_order[1] " took " int(sp_tricks[1]) "/" sp_bid(1) ", " \
+           sp_order[3] " took " int(sp_tricks[3]) "/" sp_bid(3))
 }
 
 (TO == NICK || DST == sp_channel) &&
@@ -696,18 +716,3 @@ sp_state == "play" &&
 /^\.((new|end|load)game|join|look|bid|pass|play)/ {
        sp_save("var/sp_cur.json");
 }
-
-# Standin
-#/^\.playfor [^ ]*$/ {
-#}
-#
-#/^\.standin [^ ]*$/ {
-#      if (p in sp_players) {
-#      }
-#      for (p in sp_standin) {
-#              if ($2 in sp_standin) 
-#              say(here " is already playing for " sp_standin[p]);
-#      }
-#      sp_standin[away] = here
-#}
-#