Beispiel #1
0
void GameHandler::handleAttack(GameClient &client, MessageIn &message)
{
    int id = message.readInt16();
    LOG_DEBUG("Character " << client.character->getPublicID()
              << " attacked being " << id);

    Being *being = findBeingNear(client.character, id);
    if (being && being->getType() != OBJECT_NPC)
    {
        client.character->setTarget(being);
        client.character->setAction(ATTACK);
    }
}
Beispiel #2
0
void GameHandler::handleUseSpecialOnBeing(GameClient &client, MessageIn &message)
{
    if (client.character->getAction() == DEAD)
        return;

    const int specialID = message.readInt8();
    const int targetID = message.readInt16(); // 0 when no target is selected
    Being *being = 0;
    if (targetID != 0)
        being = findBeingNear(client.character, targetID);
    LOG_DEBUG("Character " << client.character->getPublicID()
              << " tries to use his special attack " << specialID);
    client.character->useSpecialOnBeing(specialID, being);
}
void GameHandler::handleAttack(GameClient &client, MessageIn &message)
{
    int id = message.readInt16();
    const int publicId =
            client.character->getComponent<ActorComponent>()->getPublicID();
    LOG_DEBUG("Character " << publicId << " attacked being " << id);

    Entity *being = findBeingNear(client.character, id);
    if (being && being->getType() != OBJECT_NPC)
    {
        client.character->getComponent<CombatComponent>()->setTarget(being);
        client.character->getComponent<BeingComponent>()->setAction(
                *client.character, ATTACK);
    }
}
void GameHandler::handleUseSpecialOnBeing(GameClient &client, MessageIn &message)
{
    if (client.character->getComponent<BeingComponent>()->getAction() == DEAD)
        return;

    const int specialID = message.readInt8();
    const int targetID = message.readInt16(); // 0 when no target is selected
    Entity *being = 0;
    if (targetID != 0)
        being = findBeingNear(client.character, targetID);

    const int publicId =
            client.character->getComponent<ActorComponent>()->getPublicID();
    LOG_DEBUG("Character " << publicId
              << " tries to use his special attack " << specialID);
    auto *characterComponent = client.character
            ->getComponent<CharacterComponent>();
    characterComponent->useSpecialOnBeing(*client.character, specialID, being);
}