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

60 lines
1.3 KiB
C#

using System;
using UFS2.Gameplay;
using UnityEngine;
public class FishCatchState : IState
{
private FishEntity entity;
private LODGroup lod;
public static event Action OnEnter;
public static event Action OnExit;
public FishCatchState(FishEntity entity)
{
this.entity = entity;
}
public void Enter()
{
lod = entity.GetComponentInChildren<LODGroup>();
entity.Physics.Rbody.mass = 1f;
entity.SetAnimatorFloat("speed", 0.3f);
FishCatchState.OnEnter?.Invoke();
}
public void Execute()
{
FFishingLine fishingLine = FScriptsHandler.Instance.m_PlayerMain.currentRod.fishingLine;
FPlayer playerMain = FScriptsHandler.Instance.m_PlayerMain;
fishingLine.currentLineHandler.EndLineRigidbody.transform.position = playerMain.FullBodyAvatar.LineJoinerFish.position;
lod.ForceLOD(0);
fishingLine.currentLineHandler.ObiLineOut = 2f;
if (entity.Weight < 1f)
{
entity.rod.currentHook?.ShowRenderer();
entity.rod.currentLure?.ShowRenderer();
}
else
{
entity.rod.currentHook?.HideRenderer();
entity.rod.currentLure?.HideRenderer();
}
}
public void Exit()
{
FishCatchState.OnExit?.Invoke();
entity.SetAnimatorFloat("speed", 0f);
FRod fRod = entity.rod;
if (fRod == null)
{
fRod = FScriptsHandler.Instance.m_PlayerMain.currentRod;
}
fRod?.currentHook?.ShowRenderer();
fRod?.currentLure?.ShowRenderer();
}
}