using UnityEngine; public class InstallSignalizer : MonoBehaviour { public Transform slotsSignalizersContainer; public GameObject equipedSignalizersWindow; public Transform equipedSignalizersContainer; public GameObject slotSignalizerPrefab; public GameObject slotEmptySignalizerPrefab; public GameObject equipedSignalizerPrefab; public int gameId; public int playerUniqueId; public int playerIndexItem; public int currentSelectedSlotIndex; private EquipPopup equipPopup; private void Start() { } private void Update() { } private void OnEnable() { equipPopup = Object.FindObjectOfType(); RefreshSlots(); } private void RefreshSlots() { equipedSignalizersWindow.SetActive(value: false); equipPopup.statsAndButtonsContainer.SetActive(value: true); GameManager.TruncateContainer(slotsSignalizersContainer); RodSupport component = GameManager.Instance.gameAccesories[gameId].GetModelPrefab().GetComponent(); if (component.handlerRod.Length != 0 && component.handlerRod[0] != null) { if (Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[playerIndexItem].signalizerSlotUniqid_1 > -1) { int itemIdByUniqueId = GameManager.Instance._playerData.GetItemIdByUniqueId(GameManager.ItemType.Accesories, Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[playerIndexItem].signalizerSlotUniqid_1); InstallToSlot component2 = Object.Instantiate(slotSignalizerPrefab, slotsSignalizersContainer).GetComponent(); component2.icon.sprite = GameManager.Instance.gameAccesories[itemIdByUniqueId].GetIconImage(); component2.nameText.text = GameManager.Instance.gameAccesories[itemIdByUniqueId].GetName(); component2.slotIndex = 0; } else { Object.Instantiate(slotEmptySignalizerPrefab, slotsSignalizersContainer).GetComponent().slotIndex = 0; } } if (component.handlerRod.Length <= 1 || !(component.handlerRod[1] != null)) { return; } if (Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[playerIndexItem].signalizerSlotUniqid_2 > -1) { int itemIdByUniqueId2 = GameManager.Instance._playerData.GetItemIdByUniqueId(GameManager.ItemType.Accesories, Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[playerIndexItem].signalizerSlotUniqid_2); InstallToSlot component3 = Object.Instantiate(slotSignalizerPrefab, slotsSignalizersContainer).GetComponent(); component3.icon.sprite = GameManager.Instance.gameAccesories[itemIdByUniqueId2].GetIconImage(); component3.nameText.text = GameManager.Instance.gameAccesories[itemIdByUniqueId2].GetName(); component3.slotIndex = 1; } else { Object.Instantiate(slotEmptySignalizerPrefab, slotsSignalizersContainer).GetComponent().slotIndex = 1; } if (component.handlerRod.Length > 2 && component.handlerRod[2] != null) { if (Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[playerIndexItem].signalizerSlotUniqid_3 > -1) { int itemIdByUniqueId3 = GameManager.Instance._playerData.GetItemIdByUniqueId(GameManager.ItemType.Accesories, Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[playerIndexItem].signalizerSlotUniqid_3); InstallToSlot component4 = Object.Instantiate(slotSignalizerPrefab, slotsSignalizersContainer).GetComponent(); component4.icon.sprite = GameManager.Instance.gameAccesories[itemIdByUniqueId3].GetIconImage(); component4.nameText.text = GameManager.Instance.gameAccesories[itemIdByUniqueId3].GetName(); component4.slotIndex = 2; } else { Object.Instantiate(slotEmptySignalizerPrefab, slotsSignalizersContainer).GetComponent().slotIndex = 2; } } } public void ShowEquipedSignalizers() { equipedSignalizersWindow.SetActive(value: false); GameManager.TruncateContainer(equipedSignalizersContainer); bool flag = false; for (int i = 0; i < Singleton.Instance.GetCurrentPlayerData().PlayerAccessories.Count; i++) { if (!Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[i].isUse) { int itemIdByUniqueId = GameManager.Instance._playerData.GetItemIdByUniqueId(GameManager.ItemType.Accesories, Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[i].uniqueId); if (GameManager.Instance.gameAccesories[itemIdByUniqueId].type == GameManager.GameAccesories.Type.Signalizers) { SignalizerItem component = Object.Instantiate(equipedSignalizerPrefab, equipedSignalizersContainer).GetComponent(); component.icon.sprite = GameManager.Instance.gameAccesories[itemIdByUniqueId].GetIconImage(); component.nametext.text = GameManager.Instance.gameAccesories[itemIdByUniqueId].GetName().ToUpper(); component.uniqueId = Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[i].uniqueId; flag = true; } } } if (!flag) { GameManager.Instance.ShowMessagePopup(LanguageManager.Instance.GetText("SIGNALIZATOR_NOT_FOUND"), Object.FindObjectOfType().transform, deleteLast: true); return; } equipedSignalizersWindow.SetActive(value: true); equipPopup.statsAndButtonsContainer.SetActive(value: false); } public void SelectSignalizerEquip(int uniqeId) { for (int i = 0; i < Singleton.Instance.GetCurrentPlayerData().PlayerAccessories.Count; i++) { if (Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[i].uniqueId == uniqeId) { Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[i].isUse = true; if (currentSelectedSlotIndex == 0) { Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[playerIndexItem].signalizerSlotUniqid_1 = uniqeId; } else if (currentSelectedSlotIndex == 1) { Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[playerIndexItem].signalizerSlotUniqid_2 = uniqeId; } else if (currentSelectedSlotIndex == 2) { Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[playerIndexItem].signalizerSlotUniqid_3 = uniqeId; } } } equipedSignalizersWindow.SetActive(value: false); equipPopup.statsAndButtonsContainer.SetActive(value: true); Object.FindObjectOfType().GetComponent().Play(); equipPopup.RefreshSort(); RefreshSlots(); } public void UninstallSignalizer() { if (currentSelectedSlotIndex == 0) { int playerItemIndexByUniqueId = GameManager.Instance._playerData.GetPlayerItemIndexByUniqueId(GameManager.ItemType.Accesories, Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[playerIndexItem].signalizerSlotUniqid_1); Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[playerItemIndexByUniqueId].isUse = false; Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[playerIndexItem].signalizerSlotUniqid_1 = -1; } else if (currentSelectedSlotIndex == 1) { int playerItemIndexByUniqueId2 = GameManager.Instance._playerData.GetPlayerItemIndexByUniqueId(GameManager.ItemType.Accesories, Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[playerIndexItem].signalizerSlotUniqid_2); Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[playerItemIndexByUniqueId2].isUse = false; Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[playerIndexItem].signalizerSlotUniqid_2 = -1; } else if (currentSelectedSlotIndex == 2) { int playerItemIndexByUniqueId3 = GameManager.Instance._playerData.GetPlayerItemIndexByUniqueId(GameManager.ItemType.Accesories, Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[playerIndexItem].signalizerSlotUniqid_3); Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[playerItemIndexByUniqueId3].isUse = false; Singleton.Instance.GetCurrentPlayerData().PlayerAccessories[playerIndexItem].signalizerSlotUniqid_3 = -1; } RefreshSlots(); equipPopup.RefreshSort(); } }