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); }
private void __PassTry() { MahjongClientPlayer player = localPlayer as MahjongClientPlayer; if (player != null) { player.Try(255); } __ClearTry(); }
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); } } }
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); }