72 lines
1,002 B
C++
Executable file
72 lines
1,002 B
C++
Executable file
#ifndef _LOGIC_H
|
|
#define _LOGIC_H
|
|
|
|
#include "../../stdafx.h"
|
|
|
|
class Logic : public IO_Module
|
|
{
|
|
public:
|
|
Logic()
|
|
{
|
|
this->parent = NULL;
|
|
this->moduleId = 0;
|
|
this->isKeeper = false;
|
|
this->status = 0;
|
|
}
|
|
|
|
Logic(uint32 logicId)
|
|
{
|
|
this->parent = NULL;
|
|
this->moduleId = logicId;
|
|
this->isKeeper = false;
|
|
this->status = 0;
|
|
}
|
|
|
|
protected:
|
|
bool isKeeper;
|
|
uint8 status;
|
|
|
|
enum LogicalStatus
|
|
{
|
|
STATUS_KEEPER_TURN_RIGHT,
|
|
STATUS_KEEPER_TURN_LEFT,
|
|
};
|
|
|
|
void OnBallOwned();
|
|
void OnBallLost();
|
|
|
|
void OnBecomeKeeper();
|
|
void OnBecomeAttacker();
|
|
|
|
public:
|
|
void Update();
|
|
|
|
bool IsKeeper()
|
|
{
|
|
return isKeeper;
|
|
}
|
|
|
|
bool IsAttacker()
|
|
{
|
|
return !isKeeper;
|
|
}
|
|
|
|
void SetKeeper(bool newStatus) {
|
|
if(!this->isKeeper && newStatus)
|
|
{
|
|
this->OnBecomeKeeper();
|
|
}
|
|
else if(this->isKeeper && !newStatus)
|
|
{
|
|
this->OnBecomeAttacker();
|
|
}
|
|
this->isKeeper = newStatus;
|
|
}
|
|
|
|
bool HasBall()
|
|
{
|
|
//fill me!
|
|
}
|
|
};
|
|
|
|
#endif
|