BWAPI
Public Member Functions | Private Attributes
Skynet Class Reference

#include <Skynet.h>

Inheritance diagram for Skynet:
Inheritance graph
[legend]
Collaboration diagram for Skynet:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 Skynet ()
virtual void onStart ()
virtual void onEnd (bool isWinner)
virtual void onFrame ()
virtual void onSendText (std::string text)
virtual void onPlayerLeft (Player player)

Private Attributes

bool mOnBegin
int mLeavingGame
bool mSaidGG

Detailed Description

Definition at line 7 of file Skynet.h.


Constructor & Destructor Documentation

Definition at line 36 of file Skynet.cpp.

        : mOnBegin(false)
        , mLeavingGame(0)
        , mSaidGG(false)
{
}

Member Function Documentation

void Skynet::onEnd ( bool  isWinner) [virtual]

BWAPI calls this at the end of the match. isWinner will be true if the AIModule won the game. If the game is a replay, isWinner will always be false.

Reimplemented from BWAPI::AIModule.

Definition at line 54 of file Skynet.cpp.

{
}
void Skynet::onFrame ( ) [virtual]

BWAPI calls this on every logical frame in the game.

Reimplemented from BWAPI::AIModule.

Definition at line 58 of file Skynet.cpp.

References BWAPI::Broodwar, BWAPI::Game::getFrameCount(), Singleton< T >::Instance(), BWAPI::Game::leaveGame(), mLeavingGame, mOnBegin, mSaidGG, BWAPI::Game::sendText(), BWAPI::Event::type, BWAPI::Event::unit, BWAPI::EventType::UnitDestroy, and BWAPI::EventType::UnitDiscover.

{
        for each(BWAPI::Event BWAPIEvent in BWAPI::Broodwar->getEvents())
        {
                if(BWAPIEvent.type == BWAPI::EventType::UnitDiscover)
                        UnitTracker::Instance().onUnitDiscover(BWAPIEvent.unit);
        }
        for each(BWAPI::Event BWAPIEvent in BWAPI::Broodwar->getEvents())
        {
                if(BWAPIEvent.type == BWAPI::EventType::UnitDestroy)
                        UnitTracker::Instance().onUnitDestroy(BWAPIEvent.unit);
        }

        if(!mOnBegin)
        {
                mOnBegin = true;
                WallTracker::Instance().onBegin();
                PlayerTracker::Instance().onBegin();
                TerrainAnaysis::Instance().analyseBasesAndTerrain();
                BorderTracker::Instance().onBegin();
                UnitTracker::Instance().pumpUnitEvents();
                ScoutManager::Instance().onBegin();
                MacroManager::Instance().onBegin();

                BuildOrderManager::Instance().onBegin();

                BlockedPathManager::Instance().onBegin();
        }

        UnitTracker::Instance().update();

        AOEThreatTracker::Instance().update();

        BlockedPathManager::Instance().update();
        PylonPowerTracker::Instance().update();
        UnitInformation::Instance().update();
        BorderTracker::Instance().update();
        PlayerTracker::Instance().update();
        BaseTracker::Instance().update();
        BuildingPlacer::Instance().update();
        ResourceManager::Instance().update();
        SupplyManager::Instance().update();
        MacroManager::Instance().update();
        ExpansionManager::Instance().update();
        LatencyTracker::Instance().update();
        GameProgressDetection::Instance().update();

        BuildOrderManager::Instance().update();
        ScoutManager::Instance().update();
        SquadManager::Instance().update();

        TaskManager::Instance().update();

        DrawBuffer::Instance().update();

        if(GameProgressDetection::Instance().shouldGG())
        {
                if(mLeavingGame == 0)
                        mLeavingGame = BWAPI::Broodwar->getFrameCount();
        }
        else
                mLeavingGame = 0;

        if(mLeavingGame != 0)
        {
                if(BWAPI::Broodwar->getFrameCount() - mLeavingGame > 24 && !mSaidGG)
                {
                        mSaidGG = true;
                        BWAPI::Broodwar->sendText("gg");
                }
                else if(BWAPI::Broodwar->getFrameCount() - mLeavingGame > 80)
                        BWAPI::Broodwar->leaveGame();
        }
}

Here is the call graph for this function:

void Skynet::onPlayerLeft ( Player  player) [virtual]

Definition at line 138 of file Skynet.cpp.

References Singleton< T >::Instance().

{
        PlayerTracker::Instance().onPlayerLeft(player);
}

Here is the call graph for this function:

void Skynet::onSendText ( std::string  text) [virtual]

If Flag::UserInput is enabled, BWAPI will call this each time a user enters a message into the chat.

Reimplemented from BWAPI::AIModule.

Definition at line 133 of file Skynet.cpp.

References BWAPI::Broodwar, and BWAPI::Game::sendText().

{
        BWAPI::Broodwar->sendText(text.c_str());
}

Here is the call graph for this function:

void Skynet::onStart ( ) [virtual]

BWAPI calls this at the start of a match. Typically an AI will execute set up code in this method (initialize data structures, load build orders, etc).

Reimplemented from BWAPI::AIModule.

Definition at line 43 of file Skynet.cpp.

References BWAPI::Broodwar, BWAPI::Races::getRace(), BWAPI::Races::Protoss, BWAPI::Game::sendText(), BWAPI::Game::setCommandOptimizationLevel(), and BWAPI::Game::setLatCom().

{
        BWAPI::Broodwar->sendText("Skynet 2.0 Operational");

        BWAPI::Broodwar->setLatCom(false);
        BWAPI::Broodwar->setCommandOptimizationLevel(1);

        if(BWAPI::Broodwar->self()->getRace() != BWAPI::Races::Protoss)
                BWAPI::Broodwar->sendText("Skynet is a Protoss only bot");
}

Here is the call graph for this function:


Member Data Documentation

int Skynet::mLeavingGame [private]

Definition at line 23 of file Skynet.h.

Referenced by onFrame().

bool Skynet::mOnBegin [private]

Definition at line 21 of file Skynet.h.

Referenced by onFrame().

bool Skynet::mSaidGG [private]

Definition at line 24 of file Skynet.h.

Referenced by onFrame().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines