Changeset 12150 for code/branches/wagnis_HS18/src/modules/wagnis
- Timestamp:
- Dec 5, 2018, 11:54:14 AM (6 years ago)
- Location:
- code/branches/wagnis_HS18/src/modules/wagnis
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/wagnis_HS18/src/modules/wagnis/Wagnis.cc
r12136 r12150 16 16 this->gameStage = NOT_READY; 17 17 this->active_player = 1; 18 19 int n = 8; 18 this->initial_reinforcements_left = 5; 19 this->empty_provinces_left = 0; 20 21 int n = 3; 20 22 for(int i = 0;i < n;i++){ 21 23 WagnisPlayer* p = new WagnisPlayer(context); … … 41 43 42 44 this->gameStage = CHOOSE_PROVINCE_STAGE; 45 this->empty_provinces_left = this->provinceCount(); 43 46 this->players.at(0)->gameStage = this->gameStage; 44 this->players.at(0)->is_active = true; 47 this->players.at(0)->setActive(true); 48 this->players.at(0)->reinforcements = 0; 45 49 orxout()<<"Player "<<1<<"\'s turn. Please choose province."<<endl; 46 50 } … … 66 70 switch(this->gameStage){ 67 71 case CHOOSE_PROVINCE_STAGE:{ 68 player->is_active = false; 69 if(this->active_player < this->players.size()){ 70 this->active_player++; 72 player->setActive(false); 73 this->empty_provinces_left -= 1; 74 if(this->empty_provinces_left > 0){ 75 //Still empty provinces left 76 orxout()<<"DEBUG: Empty provs: "<<this->empty_provinces_left<<endl; 77 78 if(this->active_player < this->players.size()){ 79 this->active_player++; 80 }else{ 81 this->active_player = 1; 82 } 83 71 84 WagnisPlayer* next = this->players[this->active_player - 1]; 72 85 next->gameStage = CHOOSE_PROVINCE_STAGE; 73 next->is_active = true; 86 next->setActive(true); 87 next->reinforcements = 0; 74 88 orxout()<<"Player "<<next->Player_ID<<"\'s turn. Please choose province."<<endl; 75 89 }else{ 90 //no empty provinces left 91 orxout()<<"DEBUG: Empty provs: "<<this->empty_provinces_left<<endl; 76 92 this->active_player = 1; 77 93 WagnisPlayer* next = this->players[this->active_player - 1]; 78 94 next->gameStage = REINFORCEMENT_STAGE; 79 95 this->gameStage = REINFORCEMENT_STAGE; 80 next->is_active = true; 96 next->setActive(true); 97 next->reinforcements = 1; 81 98 orxout()<<"Player "<<next->Player_ID<<"\'s turn. Reinforcement."<<endl; 82 99 } … … 84 101 } 85 102 case REINFORCEMENT_STAGE:{ 103 104 if(this->initial_reinforcements_left > 0){ 105 player->setActive(false); 106 if(this->active_player == this->players.size()){ 107 //Last player finished this round of initial troops. 108 this->initial_reinforcements_left -= 1; 109 WagnisPlayer* next = this->players.at(0); 110 this->active_player = 1; 111 next->setActive(true); 112 next->gameStage = REINFORCEMENT_STAGE; 113 if(this->initial_reinforcements_left > 0){ 114 //Still more troops left to place and player 1 is next. 115 next->reinforcements = 1; 116 }else{ 117 //No more troops left to place and player 1 is next. 118 next->reinforcements = provincesOfPlayerCounter(1); 119 } 120 }else{ 121 //Player who finished was not the last player 122 WagnisPlayer* next = this->players.at(this->active_player); 123 this->active_player += 1; 124 next->setActive(true); 125 next->gameStage = REINFORCEMENT_STAGE; 126 next->reinforcements = 1; 127 } 128 break; 129 } 130 //Standard Reinforcement 131 86 132 player->gameStage = ATTACK_STAGE; 87 133 this->gameStage = ATTACK_STAGE; … … 96 142 } 97 143 case MOVE_STAGE:{ 98 player-> is_active = false;144 player->setActive(false); 99 145 if(this->active_player < this->players.size()){ 100 146 this->active_player++; … … 106 152 next->gameStage = REINFORCEMENT_STAGE; 107 153 this->gameStage = REINFORCEMENT_STAGE; 108 next-> is_active = true;154 next->setActive(true); 109 155 break; 110 156 } … … 143 189 } 144 190 191 //Counts legit provinces(not including buttons) 192 int Wagnis::provinceCount(){ 193 int n = 0; 194 for(WagnisProvince* p: this->gameBoard->provs){ 195 if(p != nullptr){ 196 if(p->ID < 1000){ 197 n++; 198 } 199 }else{ 200 orxout()<<"Nullpointer found in provines!!!"<<endl; 201 } 202 } 203 return n; 204 } 205 206 int Wagnis::provincesOfPlayerCounter(int player){ 207 int n = 0; 208 for(WagnisProvince* p:this->gameBoard->provs){ 209 if(p != nullptr){ 210 if(p->getOwner_ID() == player){ 211 n++; 212 } 213 }else{ 214 orxout()<<"Nullpointer found in provines!!!"<<endl; 215 } 216 } 217 return n; 218 } 219 145 220 146 221 -
code/branches/wagnis_HS18/src/modules/wagnis/Wagnis.h
r12132 r12150 46 46 private: 47 47 int active_player; 48 int initial_reinforcements_left; 49 int empty_provinces_left; 48 50 GameStage gameStage; 49 51 std::vector<WagnisPlayer*> players; 50 52 void createGame(); 51 53 bool findGameBoard(); 54 int provinceCount(); 55 int provincesOfPlayerCounter(int); 52 56 }; 53 57 } -
code/branches/wagnis_HS18/src/modules/wagnis/WagnisPlayer.cc
r12145 r12150 80 80 { 81 81 this->target_province->setTroops(this->target_province->getTroops()+1); 82 this->reinforcements -= 1; 82 83 orxout()<<"Province "<<this->target_province->getID()<<" owned by Player "<<this->target_province->getOwner_ID()<<" troops: "<<this->target_province->getTroops()<<endl; 83 84 } … … 89 90 90 91 if (checkMove(ATTACK)) 92 91 93 { 94 orxout()<<"Attack move check returned valid"<<endl; 92 95 while ((this->origin_province->getTroops() > 1) && (this->target_province->getTroops() > 0)) //still troops available 93 96 { … … 199 202 this->origin_province->setTroops(1); 200 203 } 204 }else{ 205 orxout()<<"Attack move check returned false"<<endl; 201 206 } 202 207 … … 337 342 return b; 338 343 } 344 345 void WagnisPlayer::setActive(bool b){ 346 this->is_active = b; 347 if(b == true) orxout()<<"Player "<<this->Player_ID<<"\'s turn"<<endl; 348 } 349 350 bool WagnisPlayer::isActive() const { 351 return this->is_active; 352 } 339 353 } -
code/branches/wagnis_HS18/src/modules/wagnis/WagnisPlayer.h
r12145 r12150 36 36 void moveTroops(WagnisProvince*,WagnisProvince*); 37 37 std::string toString(); 38 void setActive(bool); 39 bool isActive() const; 38 40 39 41 … … 42 44 GameStage gameStage; 43 45 bool province_selection_changed; 44 bool is_active;45 46 int Player_ID; 46 47 WagnisGameboard* gameBoard; … … 55 56 int second3(int, int, int); 56 57 int second2(int, int); 58 59 private: 60 bool is_active; 57 61 }; 58 62 } -
code/branches/wagnis_HS18/src/modules/wagnis/WagnisProvince.cc
r12136 r12150 56 56 case 2: this->setRadarObjectColour( colour({0,255,0}, 100.0f) ); 57 57 break; 58 case 3: this->setRadarObjectColour( colour({ 0,0,255}, 100.0f) );58 case 3: this->setRadarObjectColour( colour({255,255,0}, 100.0f) ); 59 59 break; 60 case 4: this->setRadarObjectColour( colour({ 255,255,0}, 100.0f) );60 case 4: this->setRadarObjectColour( colour({0,0,255}, 100.0f) ); 61 61 break; 62 62 case 5: this->setRadarObjectColour( colour({255,0,255}, 100.0f) ); … … 77 77 this->troops = troops; 78 78 this->setRadarName(std::to_string(troops)); 79 //TEST80 if(troops == 5){81 Ogre::ColourValue cv = colour({255,255,255}, 100.0f);82 this->setRadarObjectColour(cv);83 }84 85 79 } 86 80 //set ID
Note: See TracChangeset
for help on using the changeset viewer.