# PredictionOutput

# 说明

用于存储技能预测计算的结果数据的结构体,包含预测的各种输出信息,如命中率、施放位置等。

# 如何使用

// 创建预测输入参数
PredictionInput input;
input.Unit = target;
input.Delay = 0.25f;
input.Speed = 1600.f;
input.Radius = 60.f;
input.Range = 1000.f;
input.Type = eSkillshotType::SkillshotLine;
input.Aoe = true; // 设置为AOE技能以检测可能命中的多个目标

// 进行预测
PredictionOutput output = Prediction::GetPrediction(input);

// 检查预测结果
if (output.Hitchance >= eHitChance::High)
{
    // 获取建议的施放位置
    Vector castPos = output.CastPosition();
    
    // 获取目标的预测位置
    Vector targetPos = output.UnitPosition();
    
    // 检查可能命中的AOE目标数量
    int targetsHit = output.AoeTargetsHitCount();
    
    // 如果可以命中多个目标,则施放技能
    if (targetsHit >= 2)
    {
        ObjectManager::Player()->CastSpell(eSpellSlot::R, castPos);
    }
    
    // 检查是否有碰撞
    if (output.CollisionObjects.empty())
    {
        // 没有碰撞,可以施放技能
        ObjectManager::Player()->CastSpell(eSpellSlot::Q, castPos);
    }
    else
    {
        // 有碰撞,输出碰撞对象信息
        for (auto obj : output.CollisionObjects)
        {
            Console::Add("Collision with: %s", obj->GetBuildInfo().Name.c_str());
        }
    }
}

# Properties

属性名 类型 描述
AoeTargetsHit std::vector<AIBaseClient*> AOE技能可能命中的目标列表
CollisionObjects std::vector<AIBaseClient*> 碰撞到的对象列表
Hitchance eHitChance 预测的命中几率级别
_aoeTargetsHitCount int AOE技能命中的目标数量(内部变量)
Input PredictionInput 用于此预测的输入参数

# 方法

方法名 返回类型 描述
AoeTargetsHitCount() int 获取AOE技能命中的目标数量
CastPosition() Vector 获取建议的技能施放位置
CastPosition_Set(Vector const& value) void 设置建议的技能施放位置
UnitPosition() Vector 获取目标预测位置
UnitPosition_Set(Vector const& value) void 设置目标预测位置