📄 penaltytricks.h
字号:
#ifndef PenaltyTricks_H
#define PenaltyTricks_H
// Bag of primarily movement tricks
#include "../Common/LocomotionCommand.h"
#include "../Common/HeadCommand.h"
#include "KickSelecta.h"
#include "Trick.h"
class PenaltyTricks {
public :
class ChaseWithKick : public Trick {
public:
ChaseWithKick() {Init(1.0);}
ChaseWithKick(double _chaseSlowDownRate) {Init(_chaseSlowDownRate);}
void Init(double _chaseSlowDownRate);
virtual ~ChaseWithKick();
virtual int Start();
virtual int Abort();
virtual int Continue();
virtual bool IsUsingHead();
virtual char* GetName();
virtual char* GetErrorMsg(int);
virtual Trick* GetCurrentTrick() {return currentTrick; }
private:
bool justKicked;
bool interruptible;
Utilities utils;
KickSelecta ks;
Trick* currentTrick;
Trick* headTrick;
double chaseSlowDownRate;
};
class ChaseBall : public Trick {
public:
ChaseBall() {Init(1.0);}
ChaseBall(double _slowDownRate) {Init(_slowDownRate);}
void Init(double _slowDownRate);
virtual ~ChaseBall();
virtual int Start();
virtual int Abort();
virtual int Continue();
virtual bool IsUsingHead();
virtual char* GetErrorMsg(int);
virtual char* GetName();
private :
Utilities utils;
Trick* headTrick;
double underChinAngle;
double slowDownRate;
double maxWalkAroundDistance;
double previousBallDistance;
double minDistanceSincePrevious;
double timeBallUnderChin;
};
class ComplexKick : public Trick {
public:
ComplexKick(double _normalTurnAmount, double _maxTurnAmount);
ComplexKick(double _normalTurnAmount, double _maxTurnAmount, double _extraFastTurn);
ComplexKick(Trick*);
virtual ~ComplexKick();
virtual int Start();
virtual int Abort();
virtual int Continue();
virtual bool IsUsingHead();
virtual char* GetErrorMsg(int);
virtual char* GetName();
virtual Trick* GetCurrentTrick() {return currentTrick; }
private:
Trick* currentTrick;
Trick* turnTrick;
};
};
#endif // PenaltyTricks_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -