NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Unit/Data/UnitStatusData.cs

101 lines
2.4 KiB
C#
Raw Normal View History

2023-12-13 16:20:41 +08:00
namespace Gameplay.Unit.Data
2023-08-22 19:08:45 +08:00
{
public class UnitStatusData
{
2023-10-19 15:00:19 +08:00
public readonly GameUnit owner;
2023-08-22 19:08:45 +08:00
/// <summary>
/// 是否正在移动
/// </summary>
public bool isMoveing = false;
/// <summary>
/// 是否已死亡
/// </summary>
public bool isDead = false;
/// <summary>
/// 是否可以被攻击
/// </summary>
public bool canBeAttack = true;
/// <summary>
/// 是否在载具上
/// </summary>
public bool isOnVehicle = false;
2023-10-19 15:00:19 +08:00
/// <summary>
/// 是否混乱
/// </summary>
public bool isChaos = false;
/// <summary>
/// 是否眩晕
/// </summary>
public bool isStun = false;
/// <summary>
/// 是否锁定位置
/// </summary>
public bool isLockPos = false;
/// <summary>
/// 是否逃跑
/// </summary>
public bool isRetreat = false;
/// <summary>
/// 是否需要技能暂停
/// </summary>
public bool needSkillPaused = false;
/// <summary>
/// 是否在释放技能
/// </summary>
public bool isInSkilling = false;
/// <summary>
/// 是否不可逃跑
/// </summary>
public bool isNoRetreat = false;
2023-08-22 19:08:45 +08:00
2023-12-25 19:00:08 +08:00
/// <summary>
/// 是否是AI控制
/// </summary>
public bool isAIControll = false;
2023-08-22 19:08:45 +08:00
/// <summary>
/// 检查是否可以被当做被攻击目标
/// </summary>
/// <returns></returns>
public bool CheckCanBeTarget()
{
if (!canBeAttack) return false;
2023-10-19 15:00:19 +08:00
if (!owner.isReady) return false;
2023-08-22 19:08:45 +08:00
if (isDead) return false;
if (isOnVehicle) return false;
return true;
}
public UnitStatusData(GameUnit owner)
{
this.owner = owner;
}
public void Reset()
{
isMoveing = false;
isDead = false;
canBeAttack = true;
isOnVehicle = false;
isChaos = false;
isStun = false;
isLockPos = false;
isRetreat = false;
needSkillPaused = false;
isInSkilling = false;
isNoRetreat = false;
}
2023-08-22 19:08:45 +08:00
}
}