NerfUS / Mbed 2 deprecated NerfUS-Coord

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

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers GameMode.hpp Source File

GameMode.hpp

00001 #pragma once
00002 #include <vector>
00003 #include "ports.hpp"
00004 #include "Target.hpp"
00005 #include "ServerData.hpp"
00006 
00007 class GameMode
00008 {
00009 public:
00010   GameMode(vector<Target> *_targets)
00011   {
00012     targets = _targets;
00013   }
00014 
00015   virtual ServerData GetStats()
00016   {
00017     return stats;
00018   }
00019 
00020   virtual Target* GetNextTarget() = 0;  
00021   virtual void OnTargetHit(int timeTaken) = 0;
00022   virtual void OnTargetMiss() = 0;  
00023   virtual int getTimeBetweenTargets()
00024   {
00025     return 1000; //default to 1 sec
00026   }
00027 
00028   void reset()
00029   {
00030     stats.targets = 0;
00031     stats.score = 0;
00032     stats.averageReflexTime = 0;
00033     stats.gameLength = 0;
00034   }
00035 
00036 protected:
00037   ServerData stats;
00038   vector<Target>* targets;
00039   Target *GetRandomTarget()
00040   {
00041     int target_nb = rand() % targets->size();
00042     return &(targets->at(target_nb));
00043 
00044   }
00045 };