- Timestamp:
- Sep 4, 2012, 6:13:03 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/release2012/src/orxonox/gametypes/UnderAttack.cc
r9348 r9370 39 39 { 40 40 CreateUnloadableFactory(UnderAttack); 41 static const int attacker_ = 0; // teamnumber of the attacking team 42 static const int defender_ = 1; // defender's teamnumber 41 43 42 44 UnderAttack::UnderAttack(BaseObject* creator) : TeamDeathmatch(creator) … … 51 53 this->setConfigValues(); 52 54 this->timesequence_ = static_cast<int>(this->gameTime_); 55 53 56 } 54 57 … … 76 79 continue; 77 80 78 if (it->second == 0)81 if (it->second == attacker_) 79 82 this->gtinfo_->sendAnnounceMessage("You have won the match!", it->first->getClientID()); 80 83 else … … 188 191 } 189 192 } 193 194 void UnderAttack::playerEntered(PlayerInfo* player) 195 { 196 if (!player) 197 return; 198 TeamDeathmatch::playerEntered(player); 199 this->setTransporterHealth(); 200 } 201 202 void UnderAttack::setTransporterHealth() 203 { 204 if (this->destroyer_ != 0) 205 { 206 //Calculation: Each attacker deals about 3500 damage. A human attacker deals 1500 damage additionally. 207 //Each defender prevents 500 damage. If human 2000 damage will be additionally be prevented. 208 //TODO: use gametime and the damage dealt so far in order to calculate the transporter's life more precisely 209 float health = this->getTeamSize(attacker_)*3500.0f + this->getHumansInTeam(attacker_)*1500.0f - this->getTeamSize(defender_)*500.0f - this->getHumansInTeam(defender_)*2000.0f ; 210 this->destroyer_->setHealth(std::max(health, 5000.0f)); //the destoyer should have at least 5000.0f life. 211 } 212 } 213 214 190 215 }
Note: See TracChangeset
for help on using the changeset viewer.