Ejemplo n.º 1
0
bool CAIContainer::Internal_Engage(uint16 targetid)
{
    //#TODO: pet engage/disengage
    auto PTarget {dynamic_cast<CBattleEntity*>(PEntity->GetEntity(targetid))};
    auto entity {dynamic_cast<CBattleEntity*>(PEntity)};

    if (entity && entity->PAI->IsEngaged() && entity->GetBattleTargetID() != targetid)
    {
        ChangeTarget(targetid);
        return true;
    }
    //#TODO: use valid target stuff from spell
    if (entity && PTarget && !PTarget->isDead())
    {
        //#TODO: remove m_battleTarget if possible (need to check disengage)
        entity->SetBattleTargetID(targetid);
        entity->SetBattleStartTime(server_clock::now());
        if (CanChangeState() || (GetCurrentState() && GetCurrentState()->IsCompleted()))
        {
            ForceChangeState<CAttackState>(entity, targetid);
        }
        return true;
    }
    return false;
}
Ejemplo n.º 2
0
bool CAIContainer::Internal_Disengage()
{
    auto entity {dynamic_cast<CBattleEntity*>(PEntity)};
    if(entity)
    {
        entity->SetBattleTargetID(0);
        return true;
    }
    return false;
}
Ejemplo n.º 3
0
void CAIContainer::Internal_ChangeTarget(uint16 targetid)
{
    auto entity {dynamic_cast<CBattleEntity*>(PEntity)};
    if (entity)
    {
        if (IsEngaged() || targetid == 0)
            entity->SetBattleTargetID(targetid);
        else
            Engage(targetid);
    }
}
Ejemplo n.º 4
0
bool CAIContainer::Internal_ChangeTarget(uint16 targetid)
{
    auto entity {dynamic_cast<CBattleEntity*>(PEntity)};
    if (entity)
    {
        if(IsEngaged() || targetid == 0)
        {
            entity->SetBattleTargetID(targetid);
            return true;
        }
        else
        {
            return Engage(targetid);
        }
    }
    return false;
}
Ejemplo n.º 5
0
void CAIContainer::Internal_Disengage()
{
    auto entity {dynamic_cast<CBattleEntity*>(PEntity)};
    if (entity)
        entity->SetBattleTargetID(0);
}
Ejemplo n.º 6
0
void CAIContainer::Internal_ChangeTarget(uint16 targetid)
{
    auto entity {dynamic_cast<CBattleEntity*>(PEntity)};
    entity->SetBattleTargetID(targetid);
}