Files
UltimateFishing2020/Assets/Scripts/Assembly-CSharp/InstallSignalizer.cs
2026-03-04 10:03:45 +08:00

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();
}
}