Beispiel #1
0
 public virtual void UpdateRole()
 {
     if (!base.Garrison.HasSeafaringUnits())
     {
         this.Role = BaseNavyArmy.ArmyRole.Land;
         return;
     }
     if (!base.Garrison.HasOnlySeafaringUnits(false))
     {
         this.Role = BaseNavyArmy.ArmyRole.Convoi;
         return;
     }
     if (this.Role == BaseNavyArmy.ArmyRole.TaskForce)
     {
         if (this.ArmySize < BaseNavyArmy.ArmyState.Medium)
         {
             this.Role = BaseNavyArmy.ArmyRole.Renfort;
             return;
         }
     }
     else if (this.ArmySize <= BaseNavyArmy.ArmyState.Medium)
     {
         this.Role = BaseNavyArmy.ArmyRole.Renfort;
         return;
     }
     this.Role = BaseNavyArmy.ArmyRole.TaskForce;
 }
Beispiel #2
0
    protected HeuristicValue ComputeDistanceFitness(float numberOfTurnToReach, BaseNavyArmy.ArmyRole armyRole)
    {
        HeuristicValue heuristicValue = new HeuristicValue(0f);
        float          num            = 5f;

        heuristicValue.Add(numberOfTurnToReach, "Turn to reach", new object[0]);
        float operand = 4f;

        heuristicValue.Divide(operand, "constant", new object[0]);
        heuristicValue.Clamp(0f, num);
        HeuristicValue heuristicValue2 = new HeuristicValue(0f);

        heuristicValue2.Add(num, "constant", new object[0]);
        heuristicValue2.Subtract(heuristicValue, "Turn ratio", new object[0]);
        HeuristicValue heuristicValue3 = new HeuristicValue(0f);

        heuristicValue3.Add(heuristicValue2, "inverted turn ratio", new object[0]);
        heuristicValue3.Divide(num, "constant for normalization", new object[0]);
        return(heuristicValue3);
    }