Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public MyDetectedEntityInfo SelectTarget()
- {
- MyDetectedEntityInfo currentTarget= api.GetAiFocus(Me.CubeGrid.EntityId);
- if (currentTarget != null) return currentTarget;
- double maxexposure = 0, maxsize = 0, maxthreat = 0, maxcd = 0;
- double minexposure = 0, minsize = 0, minthreat = 0, mincd = 0;
- bool first = true;
- foreach(var target in vals)
- {
- if(first)
- {
- maxexposure = target.Item1; minexposure = target.Item1;
- maxsize = target.Item2; minsize = target.Item2;
- maxthreat = target.Item3; minthreat = target.Item3;
- maxcd = target.Item4; mincd = target.Item4;
- first = false;
- }
- else
- {
- if (target.Item1 > maxexposure)
- maxexposure = target.Item1;
- if (target.Item2 > maxsize)
- maxsize = target.Item2;
- if (target.Item3 > maxthreat)
- maxthreat = target.Item3;
- if (target.Item4 > maxcd)
- maxcd = target.Item4;
- if (target.Item1 < minexposure)
- minexposure = target.Item1;
- if (target.Item2 < minsize)
- minsize = target.Item2;
- if (target.Item3 < minthreat)
- minthreat = target.Item3;
- if (target.Item4 < mincd)
- mincd = target.Item4;
- }
- }
- double bestValue = -1;
- MyDetectedEntityInfo bestTarget = api.GetAiFocus(Me.CubeGrid.EntityId);
- foreach(var target in vals)
- {
- double value =
- Scale(minexposure, maxexposure, target.Item1) * KExposure +
- Scale(minsize, maxsize, target.Item2) * KSize +
- Scale(minthreat, maxthreat, target.Item3) * KThreat +
- Scale(mincd, maxcd, target.Item4) * KCd;
- //Program.Echo(target.Item5.Name + " : " + value);
- if(value > bestValue)
- {
- bestValue = value;
- bestTarget = target.Item5;
- }
- }
- return bestTarget;
- }
Add Comment
Please, Sign In to add comment