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; }
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); }