             ray.direction = processingEnemy.worldRotation * Vector3 (0, 0, 1);
             
             PhysicsRaycastResult result = 
-                physicsWorld.RaycastSingle (ray, 40.0f);
+                physicsWorld.RaycastSingle (ray, 30.0f);
                 
             if (result.body !is null and 
                 result.body.node.id == node.id)
             {
                 int myExp = node.vars ["Exp"].GetInt ();
                 int enemyExp = processingEnemy.vars ["Exp"].GetInt ();
-                runAwayDecisionPoints += 30.0f * (10.0f + enemyExp - myExp);
+                runAwayDecisionPoints += 20.0f * (10.0f + enemyExp - myExp);
             }
         }
         return runAwayDecisionPoints;

        else
            normalizedMoveRequest_.x = 0.0f;
            
        if (position.x > 35.0f)
            normalizedMoveRequest_.y = 0.25f;
        else if (position.x > 15.0f)
            normalizedMoveRequest_.y = 0.5f;
        else if (position.x > 0.0f) 
            normalizedMoveRequest_.y = 1.0f;
            
        if (position.x < -35.0f)
            normalizedMoveRequest_.y = -0.25f;
        else if (position.x < -15.0f)
            normalizedMoveRequest_.y = -0.5f;
        else if (position.x < -0.0f) 
            normalizedMoveRequest_.y = -1.0f;
    }
    
    protected float CalculateRunAwayDecisionPoints (Array <Node @> @enemiesNear)

    protected bool tryToFireInNextFrame_;
    protected float timeFromLastScan_;
    protected float timeFromLastShotRaycasting_;
    protected bool isLastDecisionRunAway_;
    
    protected Array <Node @> @GetEnemiesNear ()
    {
