设置ai是否有移动欲望
1 parent 30f37a0 commit be8dd86b2912e7be373fc69e0bb7d4e857c09cd7
@小李xl 小李xl authored on 3 Apr 2024
Showing 5 changed files
View
40
DungeonShooting_Godot/src/game/activity/role/ai/AIStateEnum.cs 0 → 100644
 
public enum AIStateEnum
{
/// <summary>
/// Ai 状态, 正常, 未发现目标
/// </summary>
AiNormal,
/// <summary>
/// 找到玩家,准备通知其他敌人
/// </summary>
AiNotify,
/// <summary>
/// 惊讶状态
/// </summary>
AiAstonished,
/// <summary>
/// 收到其他敌人通知, 前往发现目标的位置
/// </summary>
AiLeaveFor,
/// <summary>
/// 发现目标, 目标不在视野内, 但是知道位置
/// </summary>
AiTailAfter,
/// <summary>
/// 目标在视野内, 跟进目标, 如果距离在子弹有效射程内, 则开火
/// </summary>
AiFollowUp,
/// <summary>
/// 距离足够近, 在目标附近随机移动
/// </summary>
AiSurround,
/// <summary>
/// Ai 寻找弹药
/// </summary>
AiFindAmmo,
/// <summary>
/// Ai攻击
/// </summary>
AiAttack,
}
View
13
DungeonShooting_Godot/src/game/activity/role/ai/AiRole.cs
/// <summary>
/// 当前Ai是否有攻击欲望
/// </summary>
public bool HasAttackDesire { get; private set; } = true;
/// <summary>
/// 是否有移动欲望, 仅在 AiNormal 状态下有效, 其他状态都可以移动
/// </summary>
public bool HasMoveDesire { get; private set; } = true;
 
public override void OnInit()
{
base.OnInit();
StateController.ChangeState(AIStateEnum.AiNormal);
}
}
 
/// <summary>
/// 设置Ai是否有移动欲望
/// </summary>
public void SetMoveDesire(bool v)
{
HasMoveDesire = v;
}
// private void OnVelocityComputed(Vector2 velocity)
// {
// if (Mathf.Abs(velocity.X) >= 0.01f && Mathf.Abs(velocity.Y) >= 0.01f)
// {
View
DungeonShooting_Godot/src/game/activity/role/ai/state/AiNormalState.cs
View
DungeonShooting_Godot/src/game/activity/role/enemy/AIStateEnum.cs 100644 → 0
View
DungeonShooting_Godot/src/game/activity/role/shop/ShopBoss.cs