Roman Dayneko 11 лет назад
Родитель
Сommit
f039a74d39
1 измененных файлов с 32 добавлено и 16 удалено
  1. 32 16
      apps/face/src/index.erl

+ 32 - 16
apps/face/src/index.erl

@@ -88,27 +88,42 @@ event({server, {game_event, _, okey_game_started, Args}}) ->
     put(game_okey_tiles, TilesList),
     redraw_tiles(TilesList);
 event({server, {game_event, _, okey_tile_discarded, Args}}) ->
-    {_, {_, C, V}} = lists:keyfind(tile, 1, Args),
-    wf:info("c ~p v ~p", [C, V]),
-    TilesListOld = get(game_okey_tiles),
-    TilesList = lists:keydelete({C, V}, 2, TilesListOld),
-    put(game_okey_tiles, TilesList),
-    redraw_tiles(TilesList);
+    Im = get(okey_im),
+    {_, Player} = lists:keyfind(player, 1, Args),
+
+    if
+       Im == Player ->
+            {_, {_, C, V}} = lists:keyfind(tile, 1, Args),
+            wf:info("c ~p v ~p", [C, V]),
+            TilesListOld = get(game_okey_tiles),
+            TilesList = lists:keydelete({C, V}, 2, TilesListOld),
+            put(game_okey_tiles, TilesList),
+            redraw_tiles(TilesList);
+       true ->
+            ok
+    end;
 event({server, {game_event, _, okey_tile_taken, Args}}) ->
-        case lists:keyfind(revealed, 1, Args) of
-            {_, {_, C, V}} ->
-                TilesList = [{erlang:list_to_binary([erlang:integer_to_list(C), " ", erlang:integer_to_list(V)]), {C, V}} | get(game_okey_tiles)],
-                put(game_okey_tiles, TilesList),
-                redraw_tiles(TilesList);
-            _ ->
-                ok
-        end;
+    Im = get(okey_im),
+    {_, Player} = lists:keyfind(player, 1, Args),
+    if
+       Im == Player ->
+            case lists:keyfind(revealed, 1, Args) of
+                {_, {_, C, V}} ->
+                    TilesList = [{erlang:list_to_binary([erlang:integer_to_list(C), " ", erlang:integer_to_list(V)]), {C, V}} | get(game_okey_tiles)],
+                    put(game_okey_tiles, TilesList),
+                    redraw_tiles(TilesList);
+                _ ->
+                    ok
+            end;
+       true ->
+            ok
+    end;
 event({server,{game_event, Game, okey_turn_timeout, Args}}) ->
     wf:info("okey_turn_timeout ~p", [Args]),
     {_, TileTaken} = lists:keyfind(tile_taken, 1, Args),
-    event({server, {game_event, Game, okey_tile_taken, [{revealed, TileTaken}]}}),
+    event({server, {game_event, Game, okey_tile_taken, [{player, get(okey_im)}, {revealed, TileTaken}]}}),
     {_, TileDiscarded} = lists:keyfind(tile_discarded, 1, Args),
-    event({server, {game_event, Game, okey_tile_taken, [{tile, TileDiscarded}]}});
+    event({server, {game_event, Game, okey_tile_discarded, [{player, get(okey_im)}, {tile, TileDiscarded}]}});
 event({server, {game_event, _, okey_game_info, Args}}) ->
     wf:info("okay_game_info ~p", [Args]),
     {_, PlayersInfo} = lists:keyfind(players, 1, Args),
@@ -126,6 +141,7 @@ event({server, {game_event, _, okey_game_info, Args}}) ->
                     {Id, <<Id/binary, <<" R ">>/binary>>};
                 (#'PlayerInfo'{id = Id, robot = false} = P) ->
                     wf:info("pr ~p", [P]),
+                    put(okey_im, Id),
                     {Id, <<Id/binary, <<" M ">>/binary>>}
             end,
             PlayersInfo