Changeset 8923
- Timestamp:
- Nov 4, 2011, 10:44:56 AM (13 years ago)
- Location:
- code/branches/gamecontent
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/gamecontent/data/levels/missionOne.oxw
r8922 r8923 164 164 165 165 <!--helper trigger to end the getHelp quest --> 166 <DistanceTrigger name="getHelpEnd" position="-4 8900,0,0" distance=2000 target="SpaceShip" stayActive="false" delay=0.1>166 <DistanceTrigger name="getHelpEnd" position="-47000,-1000,1300" distance=1400 target="SpaceShip" stayActive="false" delay=0.1> 167 167 <EventTrigger> 168 168 <events> … … 232 232 <LocalQuest id="missionOne.basicFlying"> 233 233 <QuestDescription title="Flying" description="Can you see the blinking light straight ahead? Your goal is to fly through it. 234 Use 'W'to accelerate and steer with your mouse.234 Use (W) to accelerate and steer with your mouse. 235 235 236 236 Further flying moves: 237 S : break 238 Q and E : roll 239 Space : boost 240 241 P.S: Whenever a new quest is added you can view it by pressing F3. Quit via Esc." failmessage="" completeMessage="" />237 break (S) 238 roll (Q) and (E) 239 boost (Space) 240 241 Whenever a new quest is added you can view it by pressing (F3). Quit this menu via (Esc)." failmessage="" completeMessage="" /> 242 242 <complete-effects> 243 243 <AddQuest questId="missionOne.navigation" /> … … 255 255 256 256 <LocalQuest id ="missionOne.weaponsystemI"> 257 <QuestDescription title="Destroy the Boxes" description="Test your four different weapons on the four boxes. The four weapons are laser (left click), plasma (right click), self targeting rockets (middle click) and manual rockets (press 'T'). Attention if you use manual rockets: Press 'T' only once to start the rocket. If you miss your target you can get out of the rocket, by clicking or pressing 'T' once more." failmessage="" completeMessage="" /> 257 <QuestDescription title="Destroy the Boxes" description="Test your four different weapons on the four boxes: 258 1. laser (left click) 259 2. plasma (right click) 260 3. target seeking rockets (middle click) 261 4. manual rockets (T) 262 263 Attention if you use manual rockets: Press (T) only once to start the rocket. If you miss your target you can get out of the rocket, by clicking or pressing (T) once more." failmessage="" completeMessage="" /> 258 264 <hints> 259 265 <QuestHint id="missionOne.weaponsystem.laser"> … … 276 282 277 283 <LocalQuest id="missionOne.weaponsystemII"> 278 <QuestDescription title="Kill the pirates" description="Get rid of the patrolling pirates." failmessage="" completeMessage="" /> 284 <QuestDescription title="Kill the pirates" description="Get rid of the patrolling pirates. 285 Find out which weapon is best to tackle moving targets. Get close enough." failmessage="" completeMessage="" /> 279 286 <complete-effects> 280 287 <AddQuest questId="missionOne.DuballStation" /> … … 291 298 <LocalQuest id="missionOne.getHelp"> 292 299 <QuestDescription title="Get Help" description="There are several enemies approaching. You can't handle it on your own. Fortunately there's a shortcut to the next friendly unit. Use the portal (grey dot) to get near the Hydrogen Farmer. 293 There you might get help - as far as we know there should be a stronger spaceship docked to the Hydrogen Farmer. In order to be able to use that stronger spaceship, you have to dock to the Hydrogen Farmer. 294 Simply fly to the center of the Hydrogen Farmer, which is between its three legs." failmessage="" completeMessage="" /> 300 The Hydrogen Farmer is a large spaceship with three legs. 301 There you might get help - as far as we know there should be a strong spaceruiser docked to the Hydrogen Farmer. In order to be able to use that stronger spaceship, you have to dock to the Hydrogen Farmer. 302 Simply fly to the center of the Hydrogen Farmer, which is between its three legs. 303 304 How to dock: Accept the dialogue, take your hands off the keyboard and watch." failmessage="" completeMessage="" /> 295 305 <complete-effects> 296 306 <AddQuest questId="missionOne.getHome" /> … … 300 310 <LocalQuest id="missionOne.getHome"> 301 311 <QuestDescription title="Return ASAP" description="So you managed to get the spacecruiser. Use the portal to return to the DuBall Space Station. 302 312 Hurry! Your help is desperately needed." failmessage="" completeMessage="" /> 303 313 <complete-effects> 304 314 <AddQuest questId="missionOne.defence" /> … … 307 317 308 318 <LocalQuest id="missionOne.defence"> 309 <QuestDescription title="Defence" description="Seven enemies were detected that seem to launch a coordinated attack. Do not hesitate to attack or you will be the target. 310 Always take care of the enemy that is the closest to you." failmessage="" completeMessage="Yeah! You did it." /> 319 <QuestDescription title="Defence" description="Seven enemies were detected that seem to launch a coordinated attack. 320 Do not hesitate to fight or you will be the target. 321 322 Always take care of the enemy that is the closest to you." failmessage="" completeMessage="Yeah! You did it." /> 311 323 </LocalQuest> 312 313 314 <!-- TUTORIAL-TODO: --> 315 <!-- 1. Flying & manoeuvring (basic flying, using pickups, forcefields, docks & portals) --> <!-- "W","S","SPACE"--> 316 <!-- 2. Aiming & Weapons (static targets, moving targets, dangerous targets)--> <!-- 3 Mouse buttons + "T"--> 317 <!-- 3. Game handling (quests, knowing when a game is over :-), pausing, chat, ... ) --> <!--"F3", "F2", "ESC" --> 318 <!-- 4. Extras (other things to discover) --> <!-- "Q","E","A","D","C", "CTRL", "", ... --> 324 <!-- --------------------- END OF QUESTS -------------------------- --> 325 319 326 320 327 <DistanceTrigger name="spawndelaytrigger0" position="800,700,600" target="Pawn" distance=10 stayActive="true" delay=2/> 321 <SimpleNotification message="Press 'F3'to see your mission briefing.">328 <SimpleNotification message="Press (F3) to see your mission briefing."> 322 329 <events> 323 330 <trigger> … … 327 334 </SimpleNotification> 328 335 336 <!-- Blinking Billboard should be replaced with WAYPOINT --> 329 337 <BlinkingBillboard position="-900,640,600" frequency=0.4 amplitude=2 material="Flares/lensflare" colour="1,1,0"> 330 338 <events> … … 366 374 367 375 <DistanceTrigger name="flying2" position="800,700,600" target="Pawn" distance=10 stayActive="true" delay=10/> 368 <SimpleNotification message="Use 'W'to accelerate and the mouse to steer.">376 <SimpleNotification message="Use (W) to accelerate and the mouse to steer."> 369 377 <events> 370 378 <trigger> … … 529 537 </SimpleNotification> 530 538 531 532 <SimpleNotification message="Aim at the last target and press 'T'." broadcast="true"> 539 <SimpleNotification message="Aim at the last target and press (T)." broadcast="true"> 533 540 <events> 534 541 <trigger> … … 894 901 </SpaceShip> 895 902 896 <Billboard position="-48900,0,0" material="Examples/Flare" colour="0.6,0,0" scale=3/>897 903 <Dock position="-48900,0,0" roll=90 yaw=180 > 898 904 <animations> … … 914 920 </Dock> 915 921 922 <!--@Objects: SpaceCruiser as docking target --> 916 923 <SpaceShip template="spaceshipspacecruiser" position="-48900,800,0" orientation="-0.14, 0.68, 0.68, 0.223" health="300" maxhealth="400" initialhealth="300" name="cruiser" > 917 924 <attached> … … 920 927 </SpaceShip> 921 928 922 <!-- TESTBOX-->923 924 <!-- TESTBOX-->925 929 926 930 <Trigger name="cruiserKilled" mode="and" stayActive="true"> … … 986 990 </SimpleNotification> 987 991 988 <SimpleNotification message="Press 'Esc'and restart the mission." broadcast="true">992 <SimpleNotification message="Press (Esc) and restart the mission." broadcast="true"> 989 993 <events> 990 994 <trigger> … … 993 997 </events> 994 998 </SimpleNotification> 995 996 999 997 1000 <!-- hydrogen farmer & docking END --> … … 1066 1069 </DistanceTrigger> 1067 1070 1068 <SimpleNotification message="Return before it's too late. Boost with 'Space'." broadcast="true">1071 <SimpleNotification message="Return before it's too late. Boost with (Space)." broadcast="true"> 1069 1072 <events> 1070 1073 <trigger> … … 1338 1341 </EventTrigger> 1339 1342 1340 <SimpleNotification message="Either quit by pressing 'Esc'or ..." broadcast="true">1343 <SimpleNotification message="Either quit by pressing (Esc) or ..." broadcast="true"> 1341 1344 <events> 1342 1345 <trigger> … … 1408 1411 1409 1412 1410 <SimpleNotification message="Rotate your ship. Press 'Q' or 'E'. " broadcast="true">1413 <SimpleNotification message="Rotate your ship. Press (Q) or (E). " broadcast="true"> 1411 1414 <events> 1412 1415 <trigger> … … 1416 1419 </SimpleNotification> 1417 1420 1418 <SimpleNotification message="Switch the camera's position. Press 'C'. " broadcast="true">1421 <SimpleNotification message="Switch the camera's position. Press (C). " broadcast="true"> 1419 1422 <events> 1420 1423 <trigger> … … 1424 1427 </SimpleNotification> 1425 1428 1426 <SimpleNotification message="360° view: press 'Ctrl'+ use the mouse " broadcast="true">1429 <SimpleNotification message="360° view: press (Ctrl) + use the mouse " broadcast="true"> 1427 1430 <events> 1428 1431 <trigger> … … 1456 1459 </SimpleNotification> 1457 1460 1458 <SimpleNotification message="Press 'Esc'and return to the main menu." broadcast="true">1461 <SimpleNotification message="Press (Esc) and return to the main menu." broadcast="true"> 1459 1462 <events> 1460 1463 <trigger> … … 1484 1487 </Level> 1485 1488 <!-- TODO: 1486 ! Quest Interface 1489 - Story & more precise Questmessages; more quest hints; 1490 - Colouring: Show who is friend or foe via the colour 1491 - Waypoints: show the player the way 1487 1492 - Foolproof text messages (e.g. verspätete Nachrichten unterdrücken) 1488 - Radar visibility & Hud Markers (done)1489 1493 - End Tutorial, if either the Hydrogen Farmer or the SpaceCruiser gets destroyed. (~done) 1490 1491 1494 --> -
code/branches/gamecontent/src/modules/weapons/projectiles/Rocket.cc
r8891 r8923 66 66 this->localAngularVelocity_ = 0; 67 67 this->lifetime_ = 100.0f; 68 this->bIsRocket_= true;69 68 70 69 if (GameMode::isMaster()) … … 135 134 if(this->isInitialized()) 136 135 { 137 this->bIsRocket_= false;138 136 if (GameMode::isMaster()) 139 137 { -
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.