Files
BH3/Assets/Scripts/Assembly-CSharp/MoleMole/BaseAvatarController.cs
2025-08-13 09:26:42 +08:00

73 lines
1.6 KiB
C#

using UnityEngine;
namespace MoleMole
{
public abstract class BaseAvatarController : BaseController
{
public BaseMonoAvatar avatar { get; private set; }
public bool active { get; protected set; }
public AvatarControlData controlData { get; private set; }
public BaseAvatarController(BaseMonoEntity avatar)
: base(2u, avatar)
{
this.avatar = (BaseMonoAvatar)avatar;
controlData = new AvatarControlData();
}
public virtual void SetActive(bool isActive)
{
active = isActive;
}
protected void TrySteer(Vector3 dir, float lerpRatio)
{
controlData.hasSteer = true;
controlData.lerpRatio = lerpRatio;
controlData.steerDirection = dir.normalized;
controlData.hasAnyControl = true;
}
protected void TryAttack()
{
controlData.useAttack = true;
controlData.hasAnyControl = true;
}
protected void TryHoldAttack()
{
controlData.useHoldAttack = true;
controlData.hasAnyControl = true;
}
protected void TryUseSkill(int skillIx)
{
controlData.useSkills[skillIx] = true;
controlData.hasAnyControl = true;
}
protected void TryOrderMove(bool orderMove)
{
controlData.hasOrderMove = true;
controlData.orderMove = orderMove;
controlData.hasAnyControl = true;
}
public void TrySetAttackTarget(BaseMonoEntity attackTarget)
{
controlData.hasSetAttackTarget = true;
controlData.attackTarget = attackTarget;
controlData.hasAnyControl = true;
}
public void TryClearAttackTarget()
{
controlData.hasSetAttackTarget = true;
controlData.attackTarget = null;
controlData.hasAnyControl = true;
}
}
}