- Timestamp:
- Feb 15, 2012, 11:51:58 PM (13 years ago)
- Location:
- code/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk
- Property svn:mergeinfo changed
-
code/trunk/src/orxonox/controllers/ArtificialController.h
r8891 r9016 31 31 32 32 #include "OrxonoxPrereqs.h" 33 #include "controllers/FormationController.h" 33 34 34 #include <map>35 36 #include "util/Math.h"37 #include "Controller.h"38 #include "controllers/NewHumanController.h"39 #include "weaponsystem/WeaponSystem.h"40 35 41 36 namespace orxonox 42 37 { 43 class _OrxonoxExport ArtificialController : public Controller38 class _OrxonoxExport ArtificialController : public FormationController 44 39 { 45 40 public: … … 47 42 virtual ~ArtificialController(); 48 43 49 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);50 51 44 void abandonTarget(Pawn* target); 52 45 53 inline void setTeam(int team)54 { this->team_ = team; }55 inline int getTeam() const56 { return this->team_; }57 58 inline void setFormationFlight(bool formation)59 { this->formationFlight_ = formation; }60 inline bool getFormationFlight() const61 { return this->formationFlight_; }62 63 inline void setFormationSize(int size)64 { this->maxFormationSize_ = size; }65 inline int getFormationSize() const66 { return this->maxFormationSize_; }67 68 inline void setPassive(bool passive)69 { this->passive_ = passive; }70 inline bool getPassive() const71 { return this->passive_; }72 73 46 virtual void changedControllableEntity(); 74 75 static void formationflight(const bool form);76 static void masteraction(const int action);77 static void followme();78 static void passivebehaviour(const bool passive);79 static void formationsize(const int size);80 47 81 48 virtual void doFire(); … … 95 62 void manageWaypoints(); 96 63 64 65 97 66 protected: 98 99 int team_; 100 bool formationFlight_; 101 bool passive_; 102 unsigned int maxFormationSize_; 103 int freedomCount_; 104 enum State {SLAVE, MASTER, FREE}; 105 State state_; 106 std::vector<ArtificialController*> slaves_; 107 ArtificialController *myMaster_; 108 enum SpecificMasterAction {NONE, HOLD, SPIN, TURN180, FOLLOW}; 109 SpecificMasterAction specificMasterAction_; 110 int specificMasterActionHoldCount_; 111 float speedCounter_; //for speed adjustment when following 112 113 void moveToPosition(const Vector3& target); 114 void moveToTargetPosition(); 115 void absoluteMoveToPosition(const Vector3& target); 116 117 virtual void positionReached() {} 118 119 void removeFromFormation(); 120 void unregisterSlave(); 121 void searchNewMaster(); 122 void commandSlaves(); 123 void setNewMasterWithinFormation(); 124 125 void freeSlaves(); 126 void forceFreeSlaves(); 127 void loseMasterState(); 128 void forceFreedom(); 129 bool forcedFree(); 130 131 void specificMasterActionHold(); 132 void turn180Init(); 133 void turn180(); 134 void spinInit(); 135 void spin(); 136 void followInit(Pawn* pawn, const bool always = false, const int secondsToFollow = 100); 137 void followRandomHumanInit(); 138 void follow(); 139 void followForSlaves(const Vector3& target); 140 141 void setTargetPosition(const Vector3& target); 142 void searchRandomTargetPosition(); 143 144 void setTarget(Pawn* target); 145 void searchNewTarget(); 146 void forgetTarget(); 67 147 68 void aimAtTarget(); 148 69 149 70 bool isCloseAtTarget(float distance) const; 150 71 bool isLookingAtTarget(float angle) const; 151 152 void targetDied();153 154 static bool sameTeam(ControllableEntity* entity1, ControllableEntity* entity2, Gametype* gametype); // hack155 void boostControl(); //<! Sets and resets the boost parameter of the spaceship. Bots alternate between boosting and saving boost.156 157 bool bHasTargetPosition_;158 Vector3 targetPosition_;159 WeakPtr<Pawn> target_;160 bool bShooting_;161 72 162 73 float botlevel_; //<! Makes the level of a bot configurable. … … 165 76 void setPreviousMode(); 166 77 78 167 79 //WEAPONSYSTEM DATA 168 std::map<std::string, int> weaponModes_; //<! Links each "weapon" to it's weaponmode - managed by setupWeapons()80 std::map<std::string, int> weaponModes_; //<! Links each "weapon" to it's weaponmode - managed by setupWeapons() 169 81 //std::vector<int> projectiles_; //<! Displays amount of projectiles of each weapon. - managed by setupWeapons() 170 82 float timeout_; //<! Timeout for rocket usage. (If a rocket misses, a bot should stop using it.) … … 173 85 int getFiremode(std::string name); 174 86 87 175 88 //WAYPOINT DATA 176 89 std::vector<WeakPtr<WorldEntity> > waypoints_; … … 178 91 float squaredaccuracy_; 179 92 WorldEntity* defaultWaypoint_; 93 94 void boostControl(); //<! Sets and resets the boost parameter of the spaceship. Bots alternate between boosting and saving boost. 95 96 private: 180 97 }; 181 98 }
Note: See TracChangeset
for help on using the changeset viewer.