mirror of
https://github.com/correl/riichi.git
synced 2024-11-23 19:19:55 +00:00
Hide tiles of other players
This commit is contained in:
parent
6df327f340
commit
d29dc79583
5 changed files with 37 additions and 10 deletions
|
@ -2,7 +2,7 @@ module Client.Decode exposing (..)
|
|||
|
||||
import Client.Hand exposing (Hand)
|
||||
import Client.Game exposing (Game)
|
||||
import Client.Player exposing (Player)
|
||||
import Client.Player exposing (Player, Wind(..))
|
||||
import Json.Decode exposing (..)
|
||||
import Json.Decode.Extra exposing (fromResult)
|
||||
import Tile exposing (Tile)
|
||||
|
@ -36,10 +36,23 @@ hand =
|
|||
(field "tiles" (list tile))
|
||||
|
||||
|
||||
wind : Decoder Wind
|
||||
wind =
|
||||
let
|
||||
toWind s = case s of
|
||||
"east" -> East
|
||||
"west" -> West
|
||||
"south" -> South
|
||||
_ -> North
|
||||
in
|
||||
string |> map toWind
|
||||
|
||||
player : Decoder Player
|
||||
player =
|
||||
map2 Player
|
||||
map4 Player
|
||||
(field "name" <| map (\s -> s == "Websocket") string)
|
||||
(field "name" string)
|
||||
(field "seat" wind)
|
||||
(field "hand" hand)
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
module Client.Hand exposing (..)
|
||||
|
||||
import Html exposing (Html, div, text)
|
||||
import Html.Attributes exposing (class)
|
||||
import Html.Attributes exposing (class, classList)
|
||||
import Tile exposing (Tile)
|
||||
|
||||
|
||||
|
@ -10,9 +10,15 @@ type alias Hand =
|
|||
}
|
||||
|
||||
|
||||
view : Hand -> Html a
|
||||
view model =
|
||||
view : Hand -> Bool -> Html a
|
||||
view model open =
|
||||
div [ class "hand" ]
|
||||
[ div [ class "tiles open" ] <|
|
||||
[ div
|
||||
[ class "tiles" ]
|
||||
<|
|
||||
case open of
|
||||
True ->
|
||||
List.map Tile.view model.tiles
|
||||
False ->
|
||||
List.map Tile.viewHidden model.tiles
|
||||
]
|
||||
|
|
|
@ -3,9 +3,12 @@ module Client.Player exposing (..)
|
|||
import Client.Hand exposing (Hand)
|
||||
import Html exposing (..)
|
||||
|
||||
type Wind = East | South | West | North
|
||||
|
||||
type alias Player =
|
||||
{ name : String
|
||||
{ isMe : Bool
|
||||
, name : String
|
||||
, seat : Wind
|
||||
, hand : Hand
|
||||
}
|
||||
|
||||
|
@ -13,6 +16,6 @@ type alias Player =
|
|||
view : Player -> Html msg
|
||||
view player =
|
||||
fieldset []
|
||||
[ legend [] [ text ("Player: " ++ player.name) ]
|
||||
, Client.Hand.view player.hand
|
||||
[ legend [] [ text ("Player: " ++ player.name ++ "(" ++ (toString player.seat) ++ ")") ]
|
||||
, Client.Hand.view player.hand player.isMe
|
||||
]
|
||||
|
|
|
@ -79,6 +79,7 @@ tiles =
|
|||
, "Nan"
|
||||
, "Shaa"
|
||||
, "Pei"
|
||||
, "Back"
|
||||
]
|
||||
, List.range 1 9 |> List.map toString |> List.map (String.append "Pin")
|
||||
, List.range 1 9 |> List.map toString |> List.map (String.append "Sou")
|
||||
|
|
|
@ -157,3 +157,7 @@ cssName tile =
|
|||
view : Tile -> Html a
|
||||
view tile =
|
||||
span [ class [ (S.Tile (cssName tile)) ] ] [ span [] [] ]
|
||||
|
||||
viewHidden : Tile -> Html a
|
||||
viewHidden _ =
|
||||
span [ class [ (S.Tile "Back") ] ] [ span [] []]
|
||||
|
|
Loading…
Reference in a new issue