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