Index: /code/branches/campaignHS15/data/levels/AITest.oxw
===================================================================
--- /code/branches/campaignHS15/data/levels/AITest.oxw	(revision 10902)
+++ /code/branches/campaignHS15/data/levels/AITest.oxw	(revision 10903)
@@ -158,5 +158,5 @@
     
 
-    <SpaceShip position="-4000, 1500, -1000" lookat="0,0,0" team=0 name="ss2">
+    <SpaceShip position="-4000, 1500, -1000" lookat="0,0,0" team=0 name="d1sd1">
       <templates>
         <Template link=spaceshipassff />
@@ -168,5 +168,5 @@
       </controller>
     </SpaceShip>
-    <SpaceShip position="-4000, 1900, -1000" lookat="0,0,0" team=0>
+    <SpaceShip position="-4000, 1900, -1000" lookat="0,0,0" team=0 name="d1ss1">
       <templates>
         <Template link=spaceshipassff />
@@ -177,44 +177,24 @@
       </controller>
     </SpaceShip>
-    <SpaceShip position="-4000, 2100, -1000" lookat="0,0,0" team=0>
-      <templates>
-        <Template link=spaceshipassff />
-      </templates>
-      <controller>
-        <WingmanController team=0>
-        </WingmanController>
-      </controller>
-    </SpaceShip>
-    <SpaceShip position="-4000, 2400, -1000" lookat="0,0,0" team=0>
-      <templates>
-        <Template link=spaceshipassff />
-      </templates>
-      <controller>
-        <WingmanController team=0>
-        </WingmanController>
-      </controller>
-    </SpaceShip>
-    <SpaceShip position="-4000, 1500, -3000" lookat="0,0,0" team=0>
-      <templates>
-        <Template link=spaceshipassff />
-      </templates>
-      <controller>
-        <DivisionController team=0 formationMode="WALL">
-
-        </DivisionController>
-      </controller>
-    </SpaceShip>
-    <SpaceShip position="-4000, 1900, -3000" lookat="0,0,0" team=0>
-      <templates>
-        <Template link=spaceshipassff />
-      </templates>
-      <controller>
-        <SectionController team=0>
-        </SectionController>
-      </controller>
-    </SpaceShip>
-
-
-    <SpaceShip position="2000, -1500, 1000" lookat="0,0,0" team=1 >
+    <SpaceShip position="-4000, 2100, -1000" lookat="0,0,0" team=0 name="d1sw1">
+      <templates>
+        <Template link=spaceshipassff />
+      </templates>
+      <controller>
+        <WingmanController team=0>
+        </WingmanController>
+      </controller>
+    </SpaceShip>
+    <SpaceShip position="-4000, 2400, -1000" lookat="0,0,0" team=0 name="d1sw2">
+      <templates>
+        <Template link=spaceshipassff />
+      </templates>
+      <controller>
+        <WingmanController team=0>
+        </WingmanController>
+      </controller>
+    </SpaceShip>
+
+    <SpaceShip position="2000, -1500, 1000" lookat="0,0,0" team=1  name="d2sd1">
       <templates>
         <Template link=spaceshipassff />
@@ -226,5 +206,5 @@
       </controller>
     </SpaceShip>
-    <SpaceShip position="2000, -1900, 1000" lookat="0,0,0" team=1>
+    <SpaceShip position="2000, -1900, 1000" lookat="0,0,0" team=1 name="d2ss1">
       <templates>
         <Template link=spaceshipassff />
@@ -235,5 +215,5 @@
       </controller>
     </SpaceShip>
-    <SpaceShip position="2000, -2100, 1000" lookat="0,0,0" team=1>
+    <SpaceShip position="2000, -2100, 1000" lookat="0,0,0" team=1 name="d2sw1">
       <templates>
         <Template link=spaceshipassff />
@@ -244,5 +224,5 @@
       </controller>
     </SpaceShip>
-    <SpaceShip position="2000, -2400, 1000" lookat="0,0,0" team=1>
+    <SpaceShip position="2000, -2400, 1000" lookat="0,0,0" team=1 name="d2sw2">
       <templates>
         <Template link=spaceshipassff />
Index: /code/branches/campaignHS15/src/orxonox/controllers/ActionpointController.cc
===================================================================
--- /code/branches/campaignHS15/src/orxonox/controllers/ActionpointController.cc	(revision 10902)
+++ /code/branches/campaignHS15/src/orxonox/controllers/ActionpointController.cc	(revision 10903)
@@ -119,4 +119,5 @@
         if (!this->getControllableEntity() || !orxonox_cast<Pawn*> (this->getControllableEntity()))
             return;
+            this->startAttackingEnemiesThatAreClose();
 
         this->deltaHp = orxonox_cast<Pawn*> (this->getControllableEntity())->getHealth() - this->previousHp;
@@ -132,5 +133,4 @@
             //     this->parsedActionpoints_.push_back(point);
             // }
-            this->startAttackingEnemiesThatAreClose();
 
             if (this->parsedActionpoints_.empty() && this->loopActionpoints_.empty())
@@ -146,4 +146,5 @@
         if (this->action_ == Action::FIGHTALL)
         {
+
             if (!this->hasTarget())
             {
@@ -170,5 +171,6 @@
         else if (this->action_ == Action::FIGHT)
         {
-            if (!this->hasTarget())
+
+            if (!this->hasTarget() )
             {
                 //----find a target----
@@ -210,5 +212,4 @@
         else if (this->action_ == Action::FLY)
         {
-            this->startAttackingEnemiesThatAreClose();            
             if (this->squaredDistanceToTarget() <= this->squaredaccuracy_)
             {
@@ -219,5 +220,4 @@
         else if (this->action_ == Action::PROTECT)
         {
-            this->startAttackingEnemiesThatAreClose();            
             if (!this->getProtect())
             {
@@ -229,5 +229,5 @@
         else if (this->action_ == Action::ATTACK)
         {   
-            this->startAttackingEnemiesThatAreClose();            
+
             if (!this->hasTarget())
             {
@@ -620,5 +620,5 @@
     void ActionpointController::startAttackingEnemiesThatAreClose()
     {
-        if (this->action_ != Action::FIGHT && this->action_ != Action::FIGHTALL)
+        //if (this->action_ != Action::FIGHT && this->action_ != Action::FIGHTALL)
         {
             if (!this->target_ || (this->target_ && CommonController::distance (this->getControllableEntity(), this->target_) > this->attackRange_))
@@ -636,4 +636,5 @@
                     else
                     {
+                        //orxout (internal_error) << "found new target " << CommonController::getName(newTarget) <<endl;
                         Point p = { Action::FIGHT, CommonController::getName(newTarget), Vector3::ZERO, false };
                         this->parsedActionpoints_.push_back(p);
Index: /code/branches/campaignHS15/src/orxonox/controllers/FightingController.cc
===================================================================
--- /code/branches/campaignHS15/src/orxonox/controllers/FightingController.cc	(revision 10902)
+++ /code/branches/campaignHS15/src/orxonox/controllers/FightingController.cc	(revision 10903)
@@ -37,5 +37,7 @@
 #include "weaponsystem/Weapon.h"
 #include "weaponsystem/WeaponSlot.h"
-#include "weaponsystem/WeaponSlot.h"
+#include "weaponsystem/WeaponSystem.h"
+#include "weaponsystem/Munition.h"
+
 namespace orxonox
 {
@@ -139,10 +141,10 @@
         }
         //too close? How do u expect to dodge anything? Just attack!
-        else if (diffLength < 400)
+        else if (diffLength < 1000)
         {   
             this->bKeepFormation_ = false;
 
             //at this point, just look and shoot
-            if (diffLength < 200)
+            if (diffLength < 500)
             {
                 this->stopMoving();
@@ -151,5 +153,5 @@
             else
             {
-                this->setTargetPosition(this->positionOfTarget_ - diffUnit * 100.0f);
+                this->setTargetPosition(this->positionOfTarget_ - diffUnit * 300.0f);
             }
         }
@@ -158,5 +160,5 @@
         {
             this->bKeepFormation_ = false;
-            this->setTargetPosition(this->positionOfTarget_ - diffUnit * 100.0f);
+            this->setTargetPosition(this->positionOfTarget_ - diffUnit * 300.0f);
         }
         //That's unfortunate, he is looking and probably shooting... try to dodge what we can...  
@@ -166,8 +168,9 @@
             if (maneuverCounter_ == 0)
             {
-                this->setTargetPosition(this->positionOfTarget_ - diffUnit * 50.0f);   
+                this->setTargetPosition(this->positionOfTarget_ - diffUnit * 100.0f);   
                 return;
             }
-            dodge(thisPosition, diffUnit);
+            if (this->actionCounter_ % 3 == 0)
+                dodge(thisPosition, diffUnit);
         }
     }
@@ -365,6 +368,8 @@
                     {
                         std::string wName = wMode->getIdentifier()->getName();
+                        // SubclassIdentifier<Munition> munition =  ClassByString(wName);
                         if (wName == "RocketFire")
                             this->rocketsLeft_ = 10;
+                            // this->rocketsLeft_ = orxonox_cast<Pawn*>(this->getControllableEntity())->getWeaponSystem()->getMunition(&munition)->getNumMunitionInCurrentMagazine(wMode);
                         if(this->getFiremode(wName) == -1) //only add a weapon, if it is "new"
                             weaponModes_[wName] = wMode->getMode();
@@ -375,4 +380,6 @@
             }//pawn->weaponSystem_->getMunition(SubclassIdentifier< Munition > *identifier)->getNumMunition (WeaponMode *user);
         }
+
+        //orxout (internal_error) << this->rocketsLeft_ << " rockets left" << endl;
     }
 
Index: /code/branches/campaignHS15/src/orxonox/worldentities/pawns/Pawn.h
===================================================================
--- /code/branches/campaignHS15/src/orxonox/worldentities/pawns/Pawn.h	(revision 10902)
+++ /code/branches/campaignHS15/src/orxonox/worldentities/pawns/Pawn.h	(revision 10903)
@@ -194,4 +194,7 @@
             const std::string& getExplosionSound();
 
+            virtual const WeaponSystem* getWeaponSystem() const
+                { return this->weaponSystem_; }
+
         protected:
             virtual void preDestroy();
