48      virtual void defend(
int power)=0;
 
   59      virtual void move(
int steps, 
Direction way)=0;
 
   66      virtual void pick_up_capsule(
GridCell& adjacent_cell)=0;
 
   73      virtual void drop_capsule(
GridCell& adjacent_cell, 
int power_of_capsule)=0;
 
   89      virtual GridCell* getBuildTarget()=0;
 
   93      virtual int getInvestedBuildPower()=0;
 
  131      virtual void setBuildTarget(
BuildStatus status, 
GridCell* location, vector<uint8_t> message)=0;
 
  137      virtual void build(
int power)=0;
 
  143      virtual void repair(
int power)=0;
 
  150      virtual void charge(
int power, 
GridCell& ally)=0;
 
  171      virtual void sendMessage(vector<uint8_t> message, 
int power)=0;
 
  179      virtual vector<vector<GridCell> > getVisibleNeighborhood()=0;
 
  189      virtual vector<vector<GridCell> > getWorld(
int power)=0;