Files
2026-03-04 10:03:45 +08:00

75 lines
2.3 KiB
C#

using UnityEngine;
public class SteerBoatScript : MonoBehaviour
{
private Boat currntBoat;
private bool wasSteeringClicked;
private string infoText;
private void Start()
{
currntBoat = Object.FindObjectOfType<Boat>();
}
private void Update()
{
if (GameManager.Instance.ChechIfPlayerShouldBeStoppedFromDoingAnything() || FScriptsHandler.Instance.m_HudManager.currentSteerBoatPanel == null)
{
return;
}
if (GameManager.Instance.player.GetButtonTimePressed("isStartStopSteringBoat") >= 1.0 && !wasSteeringClicked)
{
wasSteeringClicked = true;
FScriptsHandler.Instance.m_HudManager.currentSteerBoatPanel.circleImage.fillAmount = 0f;
if (currntBoat.currentPlayerCharacter.currentRod != null)
{
GameManager.Instance.ShowMessagePopup(LanguageManager.Instance.GetText("START_SEERING_BOAT_WITH_ROD"), FScriptsHandler.Instance.m_Canvas.transform);
return;
}
string key = "R";
if (currntBoat.currentSitPointIndex == 0 && !currntBoat.currentPlayerCharacter.currentRod)
{
currntBoat.currentSitPointIndex = 1;
infoText = LanguageManager.Instance.GetText("BOAT_STOP_STERING_KEY");
FScriptsHandler.Instance.m_HudManager.currentSteerBoatPanel.Set(infoText, key, 3);
currntBoat.ShowHideUIPanel();
}
else
{
currntBoat.currentSitPointIndex = 0;
infoText = LanguageManager.Instance.GetText("BOAT_START_STERING_KEY");
FScriptsHandler.Instance.m_HudManager.currentSteerBoatPanel.Set(infoText, key, 3);
currntBoat.ShowHideUIPanel(isHide: true);
}
}
if ((bool)FScriptsHandler.Instance.m_HudManager.currentSteerBoatPanel && !wasSteeringClicked)
{
FScriptsHandler.Instance.m_HudManager.currentSteerBoatPanel.circleImage.fillAmount = (float)GameManager.Instance.player.GetButtonTimePressed("isStartStopSteringBoat");
}
if (GameManager.Instance.player.GetButtonUp("isStartStopSteringBoat"))
{
wasSteeringClicked = false;
}
}
private void OnTriggerEnter(Collider other)
{
if (LayerMask.NameToLayer("Player") == other.gameObject.layer)
{
Debug.Log("OnTriggerEnter");
FScriptsHandler.Instance.m_HudManager.ShowSteerBoatPanel(hide: false);
}
}
private void OnTriggerExit(Collider other)
{
if (LayerMask.NameToLayer("Player") == other.gameObject.layer)
{
Debug.Log("OnTriggerExit");
FScriptsHandler.Instance.m_HudManager.ShowSteerBoatPanel(hide: true);
}
}
}