NerfUS game coordinator for the Nerf gun firing range

Dependencies:   HardwareInterface mbed-rtos mbed

Fork of NerfUS by NerfUS

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers PlayableGame.cpp Source File

PlayableGame.cpp

00001 #include "PlayableGame.hpp"
00002 
00003 PlayableGame::PlayableGame(std::vector<TargetInfo> *targets, RandomNumberGenerator& random_number_generator) :
00004     random_number_generator(random_number_generator)
00005 {
00006 }
00007 
00008 bool PlayableGame::IsWeaponValid(int weaponId)
00009 {
00010     return true;
00011 }
00012 
00013 TargetInfo *PlayableGame::GetRandomTarget(int timeout_ms)
00014 {
00015     TargetInfo* new_target;
00016     new_target = &(this->targets->at(random_number_generator.get(0,  this->targets->size())));
00017     
00018     new_target->type = random_number_generator.get(0, 1) == 0 ? TARGET_TYPE_ALLY : TARGET_TYPE_ENEMY;
00019     new_target->timeout_ms = timeout_ms;
00020 
00021     return new_target;
00022 }
00023 
00024 int PlayableGame::GetPoints()
00025 {
00026     return points;
00027 }
00028 
00029 void PlayableGame::Start()
00030 {
00031     iteration_timer.start(getTargetSpeed);
00032 }
00033 
00034 void PlayableGame::Stop()
00035 {
00036     iteration_timer.stop();
00037 }
00038 
00039 void PlayableGame::TimerDoIteration()
00040 {
00041     TargetInfo * nextTarget = GetNextTarget();
00042     nextTarget->riseTarget();
00043 }
00044 
00045 GameStats PlayableGame::GetStats()
00046 {
00047     stats.accuracy = stats.numberOfHits * 10000 / (stats.numberOfHits + stats.numberOfMiss);
00048     return stats;
00049 }