// ------------------------------------------- /* * Constructor */ public override void Initialize(params object[] _list) { base.Initialize(_list); m_root = this.gameObject; m_container = m_root.transform.Find("Content"); m_container.Find("Title").GetComponent <Text>().text = LanguageController.Instance.GetText("screen.facebook.invite.friends"); m_sendInvitations = m_container.Find("Button_Invite").GetComponent <Button>(); m_container.Find("Button_Invite/Text").GetComponent <Text>().text = LanguageController.Instance.GetText("screen.facebook.send.invitations"); m_sendInvitations.onClick.AddListener(OnSendInvitationsPressed); m_buttonBack = m_container.Find("Button_Back").GetComponent <Button>(); m_buttonBack.onClick.AddListener(BackPressed); m_grid = m_container.Find("ScrollList/Grid").gameObject; for (int i = 0; i < FacebookController.Instance.Friends.Count; i++) { ItemMultiTextEntry sfriend = FacebookController.Instance.Friends[i]; GameObject instance = Utilities.AddChild(m_grid.transform, FacebookFriendItemPrefab); instance.GetComponent <ItemFriendView>().Initialization(sfriend.Items[0], sfriend.Items[1]); m_friends.Add(instance.GetComponent <ItemFriendView>()); } UIEventController.Instance.UIEvent += new UIEventHandler(OnMenuEvent); }
// ------------------------------------------- /* * FindMatch */ public async Task FindMatch(string _roomName, int _totalPlayers, string _extraData = "") { m_roomName = _roomName; string newRooms = RoomsBuffer; if (RoomsBuffer.IndexOf(m_roomName) == -1) { m_isGameCreator = true; m_totalPlayers = _totalPlayers; newRooms = m_roomName + PARAM_SEPARATOR + _totalPlayers + PARAM_SEPARATOR + _extraData; newRooms += ROOMS_SEPARATOR + RoomsBuffer; } else { ItemMultiTextEntry roomFound = GetRoomByName(_roomName); m_totalPlayers = int.Parse(roomFound.Items[4]); } if (DEBUG) { Debug.LogError("+++++++++++++++++++++++++FindMatch::_roomName[" + _roomName + "]::m_totalPlayers[" + m_totalPlayers + "]"); } await NakamaConnection.FindMatch(m_roomName, m_totalPlayers, m_totalPlayers); UIEventController.Instance.DelayUIEvent(ClientTCPEventsController.EVENT_CLIENT_TCP_CONNECTED_ROOM, 0.2f, m_totalPlayers); // Update the lobby list of rooms await NakamaConnection.SendMainChatMessage(ROOMS_CHAT_MESSAGE, newRooms); }
// ------------------------------------------- /* * Will retrieve the id of the room by the name */ public int GetRoomIDByName(string _roomName) { for (int i = 0; i < m_roomsLobby.Count; i++) { ItemMultiTextEntry room = m_roomsLobby[i]; if (room.Items[2] == _roomName) { #if ENABLE_BALANCE_LOADER return(int.Parse(room.Items[0])); #else return(int.Parse(room.Items[1])); #endif } } return(-1); }
// ------------------------------------------- /* * LoadInvitations */ private void LoadInvitations(List <ItemMultiTextEntry> _rooms) { for (int i = 0; i < _rooms.Count; i++) { ItemMultiTextEntry friends = _rooms[i]; GameObject instance = Utilities.AddChild(m_grid.transform, RoomFriendItemPrefab); // JOIN ROOM IN FACEBOOK #if ENABLE_BALANCE_LOADER instance.GetComponent <ItemRoomView>().Initialization(int.Parse(friends.Items[0]), friends.Items[1], friends.Items[2], int.Parse(friends.Items[3])); #else instance.GetComponent <ItemRoomView>().Initialization(int.Parse(friends.Items[1]), friends.Items[2], MultiplayerConfiguration.SOCKET_SERVER_ADDRESS, MultiplayerConfiguration.PORT_SERVER_ADDRESS); #endif m_rooms.Add(instance.GetComponent <ItemRoomView>()); } UIEventController.Instance.DispatchUIEvent(UIEventController.EVENT_SCREENMANAGER_RELOAD_SCREEN_DATA, true); }
// ------------------------------------------- /* * OnRoomListUpdate */ public override void OnRoomListUpdate(List <RoomInfo> roomList) { if (DEBUG) { Debug.LogError("PhotonController::OnRoomListUpdate:roomList.Count[" + roomList.Count + "]"); } m_roomsLobby.Clear(); for (int i = 0; i < roomList.Count; i++) { RoomInfo info = roomList[i]; if (!info.IsOpen || !info.IsVisible || info.RemovedFromList) { continue; } string extraData = "extraData"; if (info.CustomProperties != null) { ExitGames.Client.Photon.Hashtable customData = info.CustomProperties; foreach (object k in customData) { extraData = (string)customData[(string)k]; } if (extraData.Length == 0) { extraData = "extraData"; } } ItemMultiTextEntry item = new ItemMultiTextEntry(false.ToString(), i.ToString(), info.Name, extraData); m_roomsLobby.Add(item); } if (DEBUG) { Debug.LogError("PhotonController::OnRoomListUpdate::REPORTING LIST OF ROOMS[" + m_roomsLobby.Count + "]"); } UIEventController.Instance.DispatchUIEvent(ClientTCPEventsController.EVENT_CLIENT_TCP_LIST_OF_GAME_ROOMS); if (m_requestInitialitzationReport) { m_requestInitialitzationReport = false; UIEventController.Instance.DispatchUIEvent(ClientTCPEventsController.EVENT_CLIENT_TCP_ESTABLISH_NETWORK_ID, -1); } }
// ------------------------------------------- /* * LoadRooms */ private void LoadRooms(List <ItemMultiTextEntry> _rooms, string _nameRoom = "") { ClearPreviousRooms(); for (int i = 0; i < _rooms.Count; i++) { ItemMultiTextEntry room = _rooms[i]; string nameRoomItem = ""; #if ENABLE_BALANCE_LOADER nameRoomItem = (string)room.Items[1]; #else nameRoomItem = (string)room.Items[2]; #endif string tname = nameRoomItem.ToLower(); string oname = _nameRoom.ToLower(); if ((tname.IndexOf(oname) != -1) || !ENABLE_FILTERING) { GameObject instance = Utilities.AddChild(m_grid.transform, RoomLobbyItemPrefab); m_roomsGO.Add(instance); // JOIN ROOM IN LOBBY #if ENABLE_BALANCE_LOADER instance.GetComponent <ItemLobbyRoomView>().Initialization(int.Parse(room.Items[0]), room.Items[1], room.Items[2], int.Parse(room.Items[3]), room.Items[4]); #else instance.GetComponent <ItemLobbyRoomView>().Initialization(int.Parse(room.Items[1]), room.Items[2], MultiplayerConfiguration.SOCKET_SERVER_ADDRESS, MultiplayerConfiguration.PORT_SERVER_ADDRESS, room.Items[3]); #endif m_rooms.Add(instance.GetComponent <ItemLobbyRoomView>()); } } if (ENABLE_FILTERING) { if (m_rooms.Count == 0) { UIEventController.Instance.DispatchUIEvent(UIEventController.EVENT_SCREENMANAGER_OPEN_INFORMATION_SCREEN, ScreenInformationView.SCREEN_INFORMATION, UIScreenTypePreviousAction.KEEP_CURRENT_SCREEN, LanguageController.Instance.GetText("message.info"), LanguageController.Instance.GetText("screen.lobby.list.no.room.name"), null, ""); } else { UIEventController.Instance.DispatchUIEvent(UIEventController.EVENT_SCREENMANAGER_RELOAD_SCREEN_DATA, true); } } }
// ------------------------------------------- /* * AutoLogin */ private void AutoLogin() { // CHECK COOKIES CONNECTION m_connectedFacebook = PlayerPrefs.GetInt(MenusScreenController.USER_FACEBOOK_CONNECTED_COOCKIE, -1); if (m_connectedFacebook == -1) { m_container.gameObject.SetActive(true); m_login.gameObject.SetActive(false); } else { m_container.gameObject.SetActive(false); m_login.gameObject.SetActive(true); } // AUTOCONNECT ItemMultiTextEntry userData = MenusScreenController.Instance.LoadEmailLoginLocal(); switch (m_connectedFacebook) { case 0: if (userData != null) { UIEventController.Instance.DispatchUIEvent(UsersController.EVENT_USER_LOGIN_REQUEST, userData.Items[0], userData.Items[1]); } else { m_container.gameObject.SetActive(true); m_login.gameObject.SetActive(false); } break; case 1: FacebookController.Instance.Initialitzation(); break; default: break; } }
// ------------------------------------------- /* * GetExtraDataForRoom */ public string GetExtraDataForRoom(int _idRoom) { for (int i = 0; i < m_roomsLobby.Count; i++) { ItemMultiTextEntry room = m_roomsLobby[i]; int idRoom = -1; string extraData = ""; // JOIN ROOM IN LOBBY #if ENABLE_BALANCE_LOADER idRoom = int.Parse(room.Items[0]); extraData = room.Items[4]; #else idRoom = int.Parse(room.Items[1]); extraData = room.Items[3]; #endif if (idRoom == _idRoom) { return(extraData); } } return(""); }
// ------------------------------------------- /* * Constructor */ public void Initialize(params object[] _list) { ItemMultiObjectEntry item = (ItemMultiObjectEntry)_list[0]; m_container = this.gameObject.transform; m_id = (string)item.Objects[0]; m_date = (DateTime)item.Objects[1]; m_amount = (decimal)item.Objects[2]; m_gas = (string)item.Objects[3]; m_title = (string)item.Objects[4]; List <ItemMultiTextEntry> transactionScriptPubKey = (List <ItemMultiTextEntry>)item.Objects[5]; string addresses = ""; for (int i = 0; i < transactionScriptPubKey.Count; i++) { ItemMultiTextEntry sitem = transactionScriptPubKey[i]; if (addresses.Length > 0) { addresses += ":"; } addresses += sitem.Items[1]; } m_container.Find("Target").GetComponent <Text>().text = EthereumController.Instance.AddressToLabelUpperCase(addresses.Split(':')); m_container.Find("Title").GetComponent <Text>().text = m_title; string dateTrimmed = m_date.ToString(); m_container.Find("Date").GetComponent <Text>().text = dateTrimmed; #if ENABLE_ETHEREUM m_container.Find("Bitcoins").GetComponent <Text>().text = Utilities.Trim(EthereumController.FromWei(new BigInteger(m_amount)).ToString()); #endif if (m_amount < 0) { m_container.GetComponent <Image>().color = new Color(188f / 255f, 83f / 255f, 141f / 255f); m_container.Find("IconsCalendar/Input").gameObject.SetActive(false); m_container.Find("IconsCalendar/Output").gameObject.SetActive(true); m_container.Find("IconsType/Sent").gameObject.SetActive(true); m_container.Find("IconsType/Received").gameObject.SetActive(false); } else { m_container.GetComponent <Image>().color = new Color(53f / 255f, 174f / 255f, 64f / 255f); m_container.Find("IconsCalendar/Input").gameObject.SetActive(true); m_container.Find("IconsCalendar/Output").gameObject.SetActive(false); m_container.Find("IconsType/Sent").gameObject.SetActive(false); m_container.Find("IconsType/Received").gameObject.SetActive(true); } m_iconsCurrencies.Clear(); for (int i = 0; i < EthereumController.CURRENCY_CODE.Length; i++) { m_iconsCurrencies.Add(EthereumController.CURRENCY_CODE[i], m_container.Find("IconsCurrency/" + EthereumController.CURRENCY_CODE[i])); } UpdateCurrency(); EthereumEventController.Instance.EthereumEvent += new EthereumEventHandler(OnEthereumEvent); }
// ------------------------------------------- /* * Constructor */ public void Initialize(params object[] _list) { ItemMultiObjectEntry item = (ItemMultiObjectEntry)_list[0]; m_container = this.gameObject.transform; m_id = (string)item.Objects[0]; m_date = (DateTimeOffset)item.Objects[2]; m_amount = (decimal)item.Objects[3]; m_fee = (decimal)item.Objects[4]; m_title = (string)item.Objects[5]; List <ItemMultiTextEntry> transactionScriptPubKey = (List <ItemMultiTextEntry>)item.Objects[6]; string addresses = ""; for (int i = 0; i < transactionScriptPubKey.Count; i++) { ItemMultiTextEntry sitem = transactionScriptPubKey[i]; if (addresses.Length > 0) { addresses += ":"; } addresses += sitem.Items[1]; } m_container.Find("Target").GetComponent <Text>().text = BitCoinController.Instance.AddressToLabel(addresses.Split(':')); m_container.Find("Title").GetComponent <Text>().text = m_title; string dateTrimmed = m_date.ToString(); if (dateTrimmed.Length > 0) { dateTrimmed = dateTrimmed.Substring(0, dateTrimmed.IndexOf('+')); } m_container.Find("Date").GetComponent <Text>().text = dateTrimmed; m_container.Find("Bitcoins").GetComponent <Text>().text = m_amount.ToString(); if (m_amount < 0) { m_container.GetComponent <Image>().color = new Color(188f / 255f, 83f / 255f, 141f / 255f); m_container.Find("IconsCalendar/Input").gameObject.SetActive(false); m_container.Find("IconsCalendar/Output").gameObject.SetActive(true); m_container.Find("IconsType/Sent").gameObject.SetActive(true); m_container.Find("IconsType/Received").gameObject.SetActive(false); } else { m_container.GetComponent <Image>().color = new Color(53f / 255f, 174f / 255f, 64f / 255f); m_container.Find("IconsCalendar/Input").gameObject.SetActive(true); m_container.Find("IconsCalendar/Output").gameObject.SetActive(false); m_container.Find("IconsType/Sent").gameObject.SetActive(false); m_container.Find("IconsType/Received").gameObject.SetActive(true); } m_iconsCurrencies.Clear(); for (int i = 0; i < BitCoinController.CURRENCY_CODE.Length; i++) { m_iconsCurrencies.Add(BitCoinController.CURRENCY_CODE[i], m_container.Find("IconsCurrency/" + BitCoinController.CURRENCY_CODE[i])); } UpdateCurrency(); BitcoinEventController.Instance.BitcoinEvent += new BitcoinEventHandler(OnBitcoinEvent); }