Changeset 8923 for code/branches/gamecontent/src/orxonox
- Timestamp:
- Nov 4, 2011, 10:44:56 AM (13 years ago)
- Location:
- code/branches/gamecontent/src/orxonox
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/gamecontent/src/orxonox/controllers/AIController.cc
r8891 r8923 74 74 } 75 75 76 // search enemy 77 random = rnd(maxrand); 78 if (random < (15 + botlevel_* 20) && (!this->target_)) 79 this->searchNewTarget(); 80 81 // forget enemy 82 random = rnd(maxrand); 83 if (random < ((1-botlevel_)*6) && (this->target_)) 84 this->forgetTarget(); 85 86 // next enemy 87 random = rnd(maxrand); 88 if (random < (botlevel_*20) && (this->target_)) 89 this->searchNewTarget(); 90 91 // fly somewhere 92 random = rnd(maxrand); 93 if (random < 50 && (!this->bHasTargetPosition_ && !this->target_)) 94 this->searchRandomTargetPosition(); 95 96 // stop flying 97 random = rnd(maxrand); 98 if (random < 10 && (this->bHasTargetPosition_ && !this->target_)) 99 this->bHasTargetPosition_ = false; 100 101 // fly somewhere else 102 random = rnd(maxrand); 103 if (random < 30 && (this->bHasTargetPosition_ && !this->target_)) 104 this->searchRandomTargetPosition(); 105 106 // shoot 107 random = rnd(maxrand); 108 if (!(this->passive_) && random < (75 + botlevel_*25) && (this->target_ && !this->bShooting_)) 109 this->bShooting_ = true; 110 111 // stop shooting 112 random = rnd(maxrand); 113 if (random < ((1 - botlevel_)*25) && (this->bShooting_)) 114 this->bShooting_ = false; 115 116 // boost 117 random = rnd(maxrand); 118 if (random < botlevel_*100 ) 119 this->boostControl(); 120 121 // update Checkpoints 122 /*random = rnd(maxrand); 123 if (this->defaultWaypoint_ && random > (maxrand-10)) 124 this->manageWaypoints(); 125 else //if(random > maxrand-10) //CHECK USABILITY!!*/ 126 if (this->waypoints_.size() == 0 ) 127 this->manageWaypoints(); 128 76 this->defaultBehaviour(maxrand); 129 77 } 130 78 … … 136 84 if (this->state_ == MASTER) 137 85 { 138 139 140 86 this->commandSlaves(); 141 87 … … 170 116 this->searchNewMaster(); 171 117 172 // search enemy 173 random = rnd(maxrand); 174 if (random < (botlevel_)*25 && (!this->target_)) 175 this->searchNewTarget(); 176 177 // forget enemy 178 random = rnd(maxrand); 179 if (random < (1-botlevel_)*6 && (this->target_)) 180 this->forgetTarget(); 181 182 // next enemy 183 random = rnd(maxrand); 184 if (random < 10 && (this->target_)) 185 this->searchNewTarget(); 186 187 // fly somewhere 188 random = rnd(maxrand); 189 if (random < 50 && (!this->bHasTargetPosition_ && !this->target_)) 190 this->searchRandomTargetPosition(); 191 192 193 // fly somewhere else 194 random = rnd(maxrand); 195 if (random < 30 && (this->bHasTargetPosition_ && !this->target_)) 196 this->searchRandomTargetPosition(); 197 198 // shoot 199 random = rnd(maxrand); 200 if (!(this->passive_) && random < 25*(botlevel_)+1 && (this->target_ && !this->bShooting_)) 201 { 202 this->bShooting_ = true; 203 this->forceFreeSlaves(); 204 } 205 206 // stop shooting 207 random = rnd(maxrand); 208 if (random < ( (1- botlevel_)*25 ) && (this->bShooting_)) 209 this->bShooting_ = false; 210 211 // boost 212 random = rnd(maxrand); 213 if (random < botlevel_*100 ) 214 this->boostControl(); 215 216 // update Checkpoints 217 /*random = rnd(maxrand); 218 if (this->defaultWaypoint_ && random > (maxrand-10)) 219 this->manageWaypoints(); 220 else //if(random > maxrand-10) //CHECK USABILITY!!*/ 221 if (this->waypoints_.size() == 0 ) 222 this->manageWaypoints(); 118 this->defaultBehaviour(maxrand); 223 119 } 224 120 } 225 226 121 } 227 122 … … 321 216 { //Vector-implementation: mode_.back() == ROCKET; 322 217 if(controllable) 323 { 324 if(controllable->getRocket())//Check wether the bot is controlling the rocket and if the timeout is over. 218 {//Check wether the bot is controlling the rocket and if the timeout is over. 219 if(controllable->getIdentifier() == ClassByString("Rocket")) 220 325 221 { 326 222 this->follow(); … … 342 238 } 343 239 240 void AIController::defaultBehaviour(float maxrand) 241 { float random; 242 // search enemy 243 random = rnd(maxrand); 244 if (random < (botlevel_* 100) && (!this->target_)) 245 this->searchNewTarget(); 246 247 // forget enemy 248 random = rnd(maxrand); 249 if (random < ((1-botlevel_)*20) && (this->target_)) 250 this->forgetTarget(); 251 252 // next enemy 253 random = rnd(maxrand); 254 if (random < (botlevel_*30) && (this->target_)) 255 this->searchNewTarget(); 256 257 // fly somewhere 258 random = rnd(maxrand); 259 if (random < 50 && (!this->bHasTargetPosition_ && !this->target_)) 260 this->searchRandomTargetPosition(); 261 262 // stop flying 263 random = rnd(maxrand); 264 if (random < 10 && (this->bHasTargetPosition_ && !this->target_)) 265 this->bHasTargetPosition_ = false; 266 267 // fly somewhere else 268 random = rnd(maxrand); 269 if (random < 30 && (this->bHasTargetPosition_ && !this->target_)) 270 this->searchRandomTargetPosition(); 271 272 if (this->state_ == MASTER) // master: shoot 273 { 274 random = rnd(maxrand); 275 if (!(this->passive_) && random < (100*botlevel_) && (this->target_ && !this->bShooting_)) 276 { 277 this->bShooting_ = true; 278 this->forceFreeSlaves(); 279 } 280 } 281 else 282 { 283 // shoot 284 random = rnd(maxrand); 285 if (!(this->passive_) && random < (botlevel_*100) && (this->target_ && !this->bShooting_)) 286 this->bShooting_ = true; 287 } 288 289 // stop shooting 290 random = rnd(maxrand); 291 if (random < ((1 - botlevel_)*50) && (this->bShooting_)) 292 this->bShooting_ = false; 293 294 // boost 295 random = rnd(maxrand); 296 if (random < botlevel_*50 ) 297 this->boostControl(); 298 299 // update Checkpoints 300 /*random = rnd(maxrand); 301 if (this->defaultWaypoint_ && random > (maxrand-10)) 302 this->manageWaypoints(); 303 else //if(random > maxrand-10) //CHECK USABILITY!!*/ 304 if (this->waypoints_.size() == 0 ) 305 this->manageWaypoints(); 306 } 307 344 308 } -
code/branches/gamecontent/src/orxonox/controllers/AIController.h
r8729 r8923 44 44 virtual ~AIController(); 45 45 46 virtual void tick(float dt); 46 virtual void tick(float dt); //<! Carrying out the targets set in action(). 47 47 48 48 protected: 49 virtual void action(); 49 virtual void action(); //<! action() is called in regular intervals managing the bot's behaviour ~ setting targets. 50 void defaultBehaviour(float maxrand); //<! Helper function for code reusage. Some concrete commands for a bot. 50 51 51 52 private: 52 53 static const float ACTION_INTERVAL; 53 54 54 Timer actionTimer_; 55 Timer actionTimer_; //<! Regularly calls action(). 55 56 }; 56 57 } -
code/branches/gamecontent/src/orxonox/controllers/ArtificialController.cc
r8909 r8923 92 92 this->target_.setCallback(createFunctor(&ArtificialController::targetDied, this)); 93 93 this->bSetupWorked = false; 94 this->botlevel_ = 0. 2f;94 this->botlevel_ = 0.5f; 95 95 this->mode_ = DEFAULT;////Vector-implementation: mode_.push_back(DEFAULT); 96 96 this->timeout_ = 0; -
code/branches/gamecontent/src/orxonox/gametypes/Mission.cc
r8904 r8923 28 28 29 29 #include "Mission.h" 30 //#inclued "TeamGametype.h" 30 //#include "TeamGametype.h" 31 #include "items/Engine.h" 31 32 32 33 #include "core/CoreIncludes.h" … … 70 71 Gametype::start(); 71 72 72 73 /*for (ObjectList<Engine>::iterator it = ObjectList<Engine>::begin(); it != ObjectList<Engine>::end(); ++it) 74 it->setActive(false); // works -> @sr :*/ 73 75 this->gtinfo_->sendAnnounceMessage("Your mission has started!"); 74 76 } -
code/branches/gamecontent/src/orxonox/gametypes/Mission.h
r8904 r8923 49 49 inline void setLives(unsigned int amount) 50 50 {this->lives_ = amount;} 51 51 inline unsigned int getLives() 52 52 {return this->lives_;} 53 53 -
code/branches/gamecontent/src/orxonox/gametypes/TeamGametype.cc
r8904 r8923 44 44 45 45 this->teams_ = 2; 46 this->allowFriendlyFire_ = false; 46 47 47 48 this->setConfigValues(); … … 104 105 105 106 bool TeamGametype::allowPawnHit(Pawn* victim, Pawn* originator) 106 { 107 return (!this->pawnsAreInTheSameTeam(victim, originator) || !originator );107 {// hit allowed: if victim & originator are foes or if originator doesnot exist or if friendlyfire is allowed 108 return (!this->pawnsAreInTheSameTeam(victim, originator) || !originator || this->allowFriendlyFire_); 108 109 } 109 110 110 111 bool TeamGametype::allowPawnDamage(Pawn* victim, Pawn* originator) 111 112 { 112 return (!this->pawnsAreInTheSameTeam(victim, originator) || !originator );113 return (!this->pawnsAreInTheSameTeam(victim, originator) || !originator || this->allowFriendlyFire_); 113 114 } 114 115 115 116 bool TeamGametype::allowPawnDeath(Pawn* victim, Pawn* originator) 116 117 { 117 return (!this->pawnsAreInTheSameTeam(victim, originator) || !originator );118 return (!this->pawnsAreInTheSameTeam(victim, originator) || !originator || this->allowFriendlyFire_); 118 119 } 119 120 -
code/branches/gamecontent/src/orxonox/gametypes/TeamGametype.h
r8904 r8923 65 65 bool pawnsAreInTheSameTeam(Pawn* pawn1, Pawn* pawn2); 66 66 67 bool allowFriendlyFire_; //<! friendlyfire is per default switched off: friendlyFire_ = false; 67 68 std::map<PlayerInfo*, int> teamnumbers_; 68 69 std::vector<ColourValue> teamcolours_; -
code/branches/gamecontent/src/orxonox/worldentities/ControllableEntity.cc
r8891 r8923 74 74 this->bMouseLook_ = false; 75 75 this->mouseLookSpeed_ = 200; 76 this->bIsRocket_ = false;77 76 78 77 this->server_position_ = Vector3::ZERO; -
code/branches/gamecontent/src/orxonox/worldentities/ControllableEntity.h
r8891 r8923 163 163 { return this->target_.get(); } 164 164 void setTargetInternal( uint32_t targetID ); 165 inline bool getRocket() const166 { return this-> bIsRocket_; }167 165 168 166 protected: … … 183 181 184 182 Ogre::SceneNode* cameraPositionRootNode_; 185 bool bIsRocket_; //Workaround to see, if the controllable entity is a Rocket.186 183 187 184 private:
Note: See TracChangeset
for help on using the changeset viewer.