示例#1
0
文件: DefendState.cs 项目: LynnPi/OF
    public override void Execute(ShipEntity entity)
    {
        entity.RunPartsAI();
        if (entity.Ship.Reference.sw_targetdecision_range > 0)
        {
            // 侧移判定
            if (entity.GetPartState() == PartState.Attack)
            {
                return;
            }

            ShipEntity targetEntity = TargetSelector.GetLateralTarget(entity);
            if (targetEntity == null)
            {
                return;
            }
            bool lateralRight = targetEntity.Ship.Position.x > entity.Ship.Position.x;

            if (ShipCollision.CanLateral(entity, targetEntity, lateralRight))
            {
                entity.LateralMove(lateralRight);
            }
        }
    }