Coordinator v2

Dependencies:   NerfUSXbee PinDetect EthernetInterface JSON MFRC522 WebSocketClient mbed-rtos mbed

includes/GameMode.hpp

Committer:
Ismael Balafrej
Date:
2017-04-11
Revision:
2:019d8848cf7e
Parent:
1:e1c5259b7d9a

File content as of revision 2:019d8848cf7e:

#pragma once
#include <vector>
#include "ports.hpp"
#include "Target.hpp"
#include "ServerData.hpp"

class GameMode
{
public:
  GameMode(vector<Target> *_targets)
  {
    targets = _targets;
  }

  virtual ServerData GetStats()
  {
    return stats;
  }

  virtual Target* GetNextTarget() = 0;  
  virtual void OnTargetHit(int timeTaken) = 0;
  virtual void OnTargetMiss() = 0;  
  virtual int getTimeBetweenTargets()
  {
    return 1000; //default to 1 sec
  }

  void reset()
  {
    stats.targets = 0;
    stats.score = 0;
    stats.averageReflexTime = 0;
    stats.gameLength = 0;
  }

protected:
  ServerData stats;
  vector<Target>* targets;
  Target *GetRandomTarget()
  {
    int target_nb = rand() % targets->size();
    return &(targets->at(target_nb));

  }
};