- Timestamp:
- Oct 23, 2015, 2:18:32 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/AI_HS15/src/orxonox/controllers/WingmanController.cc
r10681 r10682 55 55 void WingmanController::action() 56 56 { 57 57 //--------------------------Cover Leader's rear-------------------------- 58 //check for enemies in Leader's rear that can attack him and if they are visible, meaning there are no other Leader's between Leader and enemies. 59 //if there are enemies, set target_ to the nearest one and set bFollowLeader_ to false, 60 //otherwise set bFollowLeader_ to true and target_ to sectionTarget_ 61 this->coverAllyRear(this->sectionLeader_); 58 62 } 59 63 60 64 void WingmanController::tick(float dt) 61 65 { 66 if (!this->isActive()) 67 return; 68 //--------------------------Stay in formation-------------------------- 69 if (bFollowLeader_) 70 { 71 this->keepSectionTick(); 72 /*keepSectionTick(){ 73 if (this->sectionLeader_ && this->sectionLeader_->getControllableEntity() && desiredRelativePosition_){ 74 Vector3 desiredAbsolutePosition = ((this->sectionLeader_->getControllableEntity()->getWorldPosition()) + 75 (this->sectionLeader_->getControllableEntity()->getWorldOrientation()* (*desiredRelativePosition_))); 76 this->moveToPosition (desiredAbsolutePosition); 77 } 78 } 79 */ 80 81 //--------------------------Attack same target as the Leader-------------------------- 82 83 if (this->target_) 84 { 85 this->aimAtTarget(); 86 this->doFire(); 87 } 88 } 89 //--------------------------Protect Leader by killing target_-------------------------- 62 90 63 91 else 92 { 93 if (this->target_) 94 { 95 //--------------------------Don't attack if not visible-------------------------- 96 if (!this->target_->getRadarVisibility()) /* So AI won't shoot invisible Spaceships */ 97 { 98 this->forgetTarget(); 99 //this->bFollowLeader_ = true; 100 } 101 //--------------------------Otherwise destroy it-------------------------- 102 else 103 { 104 this->aimAtTarget(); 105 this->follow(); //If a bot is shooting a player, it shouldn't let him go away easily. 106 } 107 if (this->bHasTargetPosition_) 108 { 109 this->moveToTargetPosition(); 110 } 111 this->doFire(); 112 } 113 //--------------------------no target? do nothing until next action() -> either new target appears or bFollowLeader_ set to true-------------------------- 114 else 115 { 116 117 } 118 119 } 64 120 SUPER(WingmanController, tick, dt); 65 121 }
Note: See TracChangeset
for help on using the changeset viewer.