Exemple #1
0
    private bool __SetEvent(ReadOnlyCollection <Mahjong.RuleNode> ruleNodes, ReadOnlyCollection <int> ruleIndices, Button button)
    {
        if (button == null)
        {
            return(false);
        }

        int numRules = ruleIndices == null ? 0 : ruleIndices.Count;

        if (numRules < 1)
        {
            return(false);
        }

        GameObject gameObject = button.gameObject;

        if (gameObject != null)
        {
            gameObject.SetActive(true);
        }

        Button.ButtonClickedEvent buttonClickedEvent = new Button.ButtonClickedEvent();
        button.onClick = buttonClickedEvent;

        UnityAction listener = null;

        listener = delegate()
        {
            MahjongClientPlayer player = localPlayer as MahjongClientPlayer;
            if (player == null)
            {
                return;
            }

            if (numRules < 2)
            {
                player.Try((byte)ruleIndices[0]);

                __ClearTry();
            }
            else
            {
                foreach (int ruleIndex in ruleIndices)
                {
                    int temp = ruleIndex;
                    player.Select(ruleNodes[temp].index, delegate()
                    {
                        player.Try((byte)temp);

                        __ClearTry();
                    });
                }
            }
        };

        buttonClickedEvent.AddListener(listener);

        return(true);
    }
Exemple #2
0
    private void __PassTry()
    {
        MahjongClientPlayer player = localPlayer as MahjongClientPlayer;

        if (player != null)
        {
            player.Try(255);
        }

        __ClearTry();
    }
Exemple #3
0
    private void __ClearReady()
    {
        CancelInvoke("__ClearReady");

        MahjongClientPlayer player = localPlayer as MahjongClientPlayer;

        if (player != null)
        {
            player.Unselect();
        }

        MahjongClientRoom room = MahjongClientRoom.instance;

        if (room == null)
        {
            return;
        }

        if (room.pass != null)
        {
            room.pass.onClick = null;

            GameObject gameObject = room.pass.gameObject;
            if (gameObject != null)
            {
                gameObject.SetActive(false);
            }
        }

        if (room.show != null)
        {
            room.show.onClick = null;

            GameObject gameObject = room.show.gameObject;
            if (gameObject != null)
            {
                gameObject.SetActive(false);
            }
        }

        if (room.hide != null)
        {
            room.hide.onClick = null;

            GameObject gameObject = room.hide.gameObject;
            if (gameObject != null)
            {
                gameObject.SetActive(false);
            }
        }
    }
Exemple #4
0
    private void __OnReadyHand(NetworkMessage message)
    {
        MahjongReadyHandMessage readyHandMessage = message == null ? null : message.ReadMessage <MahjongReadyHandMessage>();

        if (readyHandMessage == null)
        {
            return;
        }

        MahjongClientRoom room = MahjongClientRoom.instance;

        if (room == null)
        {
            return;
        }

        GameObject gameObject = room.pass.gameObject;

        if (gameObject != null)
        {
            gameObject.SetActive(true);
        }

        Button.ButtonClickedEvent buttonClickedEvent = new Button.ButtonClickedEvent();
        room.pass.onClick = buttonClickedEvent;
        buttonClickedEvent.AddListener(__PassReady);

        if (room.show != null)
        {
            gameObject = room.show.gameObject;
            if (gameObject != null)
            {
                gameObject.SetActive(true);
            }

            int count = readyHandMessage.indices == null ? 0 : readyHandMessage.indices.Count;
            buttonClickedEvent = new Button.ButtonClickedEvent();
            room.show.onClick  = buttonClickedEvent;
            UnityAction handler = delegate()
            {
                MahjongClientPlayer player = localPlayer as MahjongClientPlayer;
                for (int i = 0; i < count; ++i)
                {
                    int index = i;
                    player.Select(readyHandMessage.indices[i], delegate()
                    {
                        player.Ready((byte)((index << 2) | (int)MahjongReadyType.Show));

                        __ClearReady();
                    });
                }
            };

            buttonClickedEvent.AddListener(handler);
        }

        if (room.hide != null)
        {
            gameObject = room.hide.gameObject;
            if (gameObject != null)
            {
                gameObject.SetActive(true);
            }

            int count = readyHandMessage.indices == null ? 0 : readyHandMessage.indices.Count;
            buttonClickedEvent = new Button.ButtonClickedEvent();
            room.hide.onClick  = buttonClickedEvent;
            UnityAction handler = delegate()
            {
                MahjongClientPlayer player = localPlayer as MahjongClientPlayer;
                for (int i = 0; i < count; ++i)
                {
                    int index = i;
                    player.Select(readyHandMessage.indices[i], delegate()
                    {
                        player.Ready((byte)((index << 2) | (int)MahjongReadyType.Hide));

                        __ClearReady();
                    });
                }
            };

            buttonClickedEvent.AddListener(handler);
        }


        Invoke("__ClearReady", readyTime);
    }