public UnitAgent(Unit myUnit, UnitAgentOptimizedProperties opProp) { MyUnit = myUnit; OptimizedProperties = opProp; LeadingStatus = LeadingStatusEnum.None; EmotionalMode = EmotionalModeEnum.None; HealthLevelOk = 60; //Health + armor UnitAgentTypeName = "Unit_Agent"; }
public void ConvertAndAddOptimizedValuesToUnitAgentChromosome(UnitAgentOptimizedProperties opProp)//String unitTypeName)//ref UnitAgent unitAgent) { if (Gene == null) Gene = new List<float>(); else if (Gene.Count > 0) { Logger.Logger.AddAndPrint("WARNING: There was already values in the UnitAgentChromosome, when it was initialized. They have been deleted"); Gene = new List<float>(); } Fitness = opProp.Fitness; //Force Gene.Add(ConvertOptimizedValueToUnitAgentChromosome((float) opProp.ForceOwnUnitsRepulsion, OptimizedPropertiesMultiplyers.Instance.ForceOwnUnitsRepulsionMultiplyer)); Gene.Add(ConvertOptimizedValueToUnitAgentChromosome((float)opProp.ForceEnemyUnitsRepulsion, OptimizedPropertiesMultiplyers.Instance.ForceEnemyUnitsRepulsionMultiplyer)); Gene.Add(ConvertOptimizedValueToUnitAgentChromosome((float)opProp.ForceMSD, OptimizedPropertiesMultiplyers.Instance.ForceMSDMultiplyer)); Gene.Add(ConvertOptimizedValueToUnitAgentChromosome((float)opProp.ForceSquadAttraction, OptimizedPropertiesMultiplyers.Instance.ForceSquadAttractionMultiplyer)); Gene.Add(ConvertOptimizedValueToUnitAgentChromosome((float)opProp.ForceMapCenterAttraction, OptimizedPropertiesMultiplyers.Instance.ForceMapCenterAttractionMultiplyer)); Gene.Add(ConvertOptimizedValueToUnitAgentChromosome((float)opProp.ForceMapEdgeRepulsion, OptimizedPropertiesMultiplyers.Instance.ForceMapEdgeRepulsionMultiplyer)); Gene.Add(ConvertOptimizedValueToUnitAgentChromosome((float)opProp.ForceWeaponCoolDownRepulsion, OptimizedPropertiesMultiplyers.Instance.ForceWeaponCoolDownRepulsionMultiplyer)); //ForceStep Gene.Add(ConvertOptimizedValueToUnitAgentChromosome((float)opProp.ForceStepOwnUnitsRepulsion, OptimizedPropertiesMultiplyers.Instance.ForceStepOwnUnitsRepulsionMultiplyer)); Gene.Add(ConvertOptimizedValueToUnitAgentChromosome((float)opProp.ForceStepEnemyUnitsRepulsion, OptimizedPropertiesMultiplyers.Instance.ForceStepEnemyUnitsRepulsionMultiplyer)); Gene.Add(ConvertOptimizedValueToUnitAgentChromosome((float)opProp.ForceStepMSD, OptimizedPropertiesMultiplyers.Instance.ForceStepMSDMultiplyer)); Gene.Add(ConvertOptimizedValueToUnitAgentChromosome((float)opProp.ForceStepSquadAttraction, OptimizedPropertiesMultiplyers.Instance.ForceStepSquadAttractionMultiplyer)); Gene.Add(ConvertOptimizedValueToUnitAgentChromosome((float)opProp.ForceStepMapCenterAttraction, OptimizedPropertiesMultiplyers.Instance.ForceStepMapCenterAttractionMultiplyer)); Gene.Add(ConvertOptimizedValueToUnitAgentChromosome((float)opProp.ForceStepMapEdgeRepulsion, OptimizedPropertiesMultiplyers.Instance.ForceStepMapEdgeRepulsionMultiplyer)); Gene.Add(ConvertOptimizedValueToUnitAgentChromosome((float)opProp.ForceStepWeaponCoolDownRepulsion, OptimizedPropertiesMultiplyers.Instance.ForceStepWeaponCoolDownRepulsionMultiplyer)); //Range Gene.Add(ConvertOptimizedValueToUnitAgentChromosome(opProp.RangeOwnUnitsRepulsion, OptimizedPropertiesMultiplyers.Instance.RangeOwnUnitsRepulsionMultiplyer)); Gene.Add(ConvertOptimizedValueToUnitAgentChromosome(opProp.RangePercentageSquadAttraction, OptimizedPropertiesMultiplyers.Instance.RangePercentageSquadAttractionMultiplyer)); Gene.Add(ConvertOptimizedValueToUnitAgentChromosome(opProp.RangePecentageMapCenterAttraction, OptimizedPropertiesMultiplyers.Instance.RangePecentageMapCenterAttractionMultiplyer)); Gene.Add(ConvertOptimizedValueToUnitAgentChromosome(opProp.RangeMapEdgeRepulsion, OptimizedPropertiesMultiplyers.Instance.RangeMapEdgeRepulsionMultiplyer)); Gene.Add(ConvertOptimizedValueToUnitAgentChromosome(opProp.RangeWeaponCooldownRepulsion, OptimizedPropertiesMultiplyers.Instance.RangeWeaponCooldownRepulsionMultiplyer)); }
public Terran_Marine_Agent(Unit myUnit, UnitAgentOptimizedProperties opProp) : base(myUnit, opProp) { UnitAgentTypeName = "Terran_Marine_Agent"; //SightRange = 7; //http://wiki.teamliquid.net/starcraft/Marine }
public Terran_Medic_Agent(Unit myUnit, UnitAgentOptimizedProperties opProp) : base(myUnit, opProp) { UnitAgentTypeName = "Terran_Medic_Agent"; //SightRange = 9; }
/// <summary> /// TEST METHOD for running with predefined unit agent optimized properties. /// </summary> /// <param name="unitTypeName"></param> /// <returns></returns> public static UnitAgentOptimizedProperties GetOptimizedValuesToUnitAgent(String unitTypeName)//ref UnitAgent unitAgent) { var opProp = new UnitAgentOptimizedProperties(); opProp.UnitTypeName = unitTypeName; //Force opProp.ForceOwnUnitsRepulsion = 100; opProp.ForceEnemyUnitsRepulsion = 200; opProp.ForceMSD = 240; opProp.ForceSquadAttraction = 10; opProp.ForceMapCenterAttraction = 20; opProp.ForceMapEdgeRepulsion = 50; opProp.ForceWeaponCoolDownRepulsion = 800; //ForceStep opProp.ForceStepOwnUnitsRepulsion = 0.6; opProp.ForceStepEnemyUnitsRepulsion = 1.2; opProp.ForceStepMSD = 0.24; opProp.ForceStepSquadAttraction = 0.1; opProp.ForceStepMapCenterAttraction = 0.09; opProp.ForceStepMapEdgeRepulsion = 0.3; opProp.ForceStepWeaponCoolDownRepulsion = 6.4; //Range opProp.RangeOwnUnitsRepulsion = 8; opProp.RangePercentageSquadAttraction = 5; opProp.RangePecentageMapCenterAttraction = 5; opProp.RangeMapEdgeRepulsion = 96; opProp.RangeWeaponCooldownRepulsion = 160; return opProp; }
public UnitAgentOptimizedProperties ConvertUnitAgentChromosomeToOptimizedValues() { if (Gene != null && Gene.Count > 0 && Gene.Count == NumberOfUnitAgentOptimizedProperties) { var opProp = new UnitAgentOptimizedProperties(); //Force opProp.ForceOwnUnitsRepulsion = Gene[0] * OptimizedPropertiesMultiplyers.Instance.ForceOwnUnitsRepulsionMultiplyer; opProp.ForceEnemyUnitsRepulsion = Gene[1] * OptimizedPropertiesMultiplyers.Instance.ForceEnemyUnitsRepulsionMultiplyer; opProp.ForceMSD = Gene[2] * OptimizedPropertiesMultiplyers.Instance.ForceMSDMultiplyer; opProp.ForceSquadAttraction = Gene[3] * OptimizedPropertiesMultiplyers.Instance.ForceSquadAttractionMultiplyer; opProp.ForceMapCenterAttraction = Gene[4] * OptimizedPropertiesMultiplyers.Instance.ForceMapCenterAttractionMultiplyer; opProp.ForceMapEdgeRepulsion = Gene[5] * OptimizedPropertiesMultiplyers.Instance.ForceMapEdgeRepulsionMultiplyer; opProp.ForceWeaponCoolDownRepulsion = Gene[6] * OptimizedPropertiesMultiplyers.Instance.ForceWeaponCoolDownRepulsionMultiplyer; //ForceStep opProp.ForceStepOwnUnitsRepulsion = Gene[7] * OptimizedPropertiesMultiplyers.Instance.ForceStepOwnUnitsRepulsionMultiplyer; opProp.ForceStepEnemyUnitsRepulsion = Gene[8] * OptimizedPropertiesMultiplyers.Instance.ForceStepEnemyUnitsRepulsionMultiplyer; opProp.ForceStepMSD = Gene[9] * OptimizedPropertiesMultiplyers.Instance.ForceStepMSDMultiplyer; opProp.ForceStepSquadAttraction = Gene[10] * OptimizedPropertiesMultiplyers.Instance.ForceStepSquadAttractionMultiplyer; opProp.ForceStepMapCenterAttraction = Gene[11] * OptimizedPropertiesMultiplyers.Instance.ForceStepMapCenterAttractionMultiplyer; opProp.ForceStepMapEdgeRepulsion = Gene[12] * OptimizedPropertiesMultiplyers.Instance.ForceStepMapEdgeRepulsionMultiplyer; opProp.ForceStepWeaponCoolDownRepulsion = Gene[13] * OptimizedPropertiesMultiplyers.Instance.ForceStepWeaponCoolDownRepulsionMultiplyer; //Range opProp.RangeOwnUnitsRepulsion = Convert.ToInt32(Gene[14] * OptimizedPropertiesMultiplyers.Instance.RangeOwnUnitsRepulsionMultiplyer); opProp.RangePercentageSquadAttraction = Convert.ToInt32(Gene[15] * OptimizedPropertiesMultiplyers.Instance.RangePercentageSquadAttractionMultiplyer); opProp.RangePecentageMapCenterAttraction = Convert.ToInt32(Gene[16] * OptimizedPropertiesMultiplyers.Instance.RangePecentageMapCenterAttractionMultiplyer); opProp.RangeMapEdgeRepulsion = Convert.ToInt32(Gene[17] * OptimizedPropertiesMultiplyers.Instance.RangeMapEdgeRepulsionMultiplyer); opProp.RangeWeaponCooldownRepulsion = Convert.ToInt32(Gene[18] * OptimizedPropertiesMultiplyers.Instance.RangeWeaponCooldownRepulsionMultiplyer); return opProp; } Logger.Logger.AddAndPrint("ERROR: In Method AddOptimizedValuesToUnitAgentChromosome in UnitAgentChromosome, the Gene was null or had none elements."); throw new Exception("ERROR: In Method AddOptimizedValuesToUnitAgentChromosome in UnitAgentChromosome, the Gene was null or had none elements."); }
public Terran_SiegeTank_Agent(Unit myUnit, UnitAgentOptimizedProperties opProp) : base(myUnit, opProp) { UnitAgentTypeName = "Terran_SiegeTank_Agent"; // SightRange = 10; }