Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/EquipmentSizeSlider.cs
2026-02-21 16:45:37 +08:00

106 lines
2.8 KiB
C#

using BitStrap;
using UnityEngine;
using UnityEngine.UI;
public class EquipmentSizeSlider : MonoBehaviour
{
public Text text;
public Slider slider;
public Button nextBtn;
public Button prevBtn;
private EquipmentManager equipmentManager;
public EquipmentGUI equipmentGUI;
[ReadOnly]
public Bait bait;
[ReadOnly]
public EquipmentObject equipmentObject;
public EquipmentParameter hookToWeightParameter;
private void Start()
{
}
private void OnEnable()
{
}
public void Refresh()
{
if ((bool)GlobalSettings.Instance)
{
equipmentManager = GlobalSettings.Instance.equipmentManager;
}
if (equipmentObject != null && equipmentObject.sizes.Count > 0)
{
slider.maxValue = equipmentObject.sizes.Count - 1;
}
else
{
slider.maxValue = 0f;
}
slider.value = equipmentObject.sizes.BinarySearch(equipmentManager.currentSetSpecificParameters.currentHookSize);
UpdateValue();
}
public void ChangeValue(bool next)
{
if (next && slider.value < slider.maxValue)
{
slider.value += 1f;
}
else if (!next && slider.value > slider.minValue)
{
slider.value -= 1f;
}
}
public void UpdateValue()
{
if (equipmentObject != null && equipmentObject.sizes.Count > 0)
{
text.text = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/SIZE") + ": " + UtilitiesUnits.GetHookSizeString((int)equipmentObject.sizes[(int)slider.value]);
equipmentGUI.UpdateEquipVisibility(equipmentManager.currentSetSpecificParameters.currentHookSize != (float)(int)equipmentObject.sizes[(int)slider.value]);
}
else
{
text.text = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/SIZE");
}
bool canEquipmentBeChanged = equipmentGUI.canEquipmentBeChanged;
nextBtn.gameObject.SetActive(slider.value != slider.maxValue && canEquipmentBeChanged);
prevBtn.gameObject.SetActive(slider.value != slider.minValue && canEquipmentBeChanged);
if (GlobalSettings.Instance.playerSettings.difficulty != PlayerSettingsMy.Difficulty.SIMULATOR)
{
SetHookToWeightParameter();
}
}
public void LanguageChanged()
{
}
private void SetHookToWeightParameter()
{
Bait component = equipmentObject.prefab.GetComponent<Bait>();
if (component == null)
{
hookToWeightParameter.gameObject.SetActive(false);
return;
}
int index = (int)equipmentObject.sizes[(int)slider.value];
hookToWeightParameter.gameObject.SetActive(true);
FishManager fishManager = GlobalSettings.Instance.fishManager;
Vector2 one = Vector2.one;
one = ((component.baitType == Bait.BaitType.HOOK) ? fishManager.hookToFishWeight[index] : ((component.baitType != Bait.BaitType.FLY) ? fishManager.lureToFishWeight[index] : fishManager.flyToFishWeight[index]));
string paramValue = UtilitiesUnits.GetWeightString(one.x) + " - " + UtilitiesUnits.GetWeightString(one.y);
hookToWeightParameter.SetParameter(Utilities.GetTranslation("EQUIPMENT_PARAMETERS/HOOK_TO_WEIGHT"), paramValue);
}
}