Advertisement
Guest User

FindBesttarget

a guest
Jan 20th, 2020
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. public Creature FindBestTarget(List<Creature> targets)
  2. {
  3. Creature topKillTarget = null;
  4. Creature topAlmostKill = null;
  5. int maxDamageTarget = 0;
  6. int closestToDeath = int.MaxValue;
  7. List<Creature> equalHealthTarget = new List<Creature>();
  8.  
  9. foreach (var currentTarget in targets)
  10. {
  11.  
  12. if ((currentTarget.HealthPoints - CalculateActualDamage(currentTarget) <= 0) && currentTarget.Damage > maxDamageTarget)
  13. {
  14. maxDamageTarget = currentTarget.Damage;
  15. topKillTarget = currentTarget;
  16. }
  17. else if (currentTarget.HealthPoints - CalculateActualDamage(currentTarget) <= closestToDeath)
  18. {
  19. //topAlmostKill = currentTarget;
  20. if(currentTarget.HealthPoints - CalculateActualDamage(currentTarget) == closestToDeath)
  21. {
  22. equalHealthTarget.Add(currentTarget);
  23. }
  24. else
  25. {
  26. equalHealthTarget.Clear();
  27. equalHealthTarget.Add(currentTarget);
  28. closestToDeath = currentTarget.HealthPoints - CalculateActualDamage(currentTarget);
  29. }
  30.  
  31. }
  32. }
  33. int maxDamageEqualTarget = 0;
  34. foreach(var healthTarget in equalHealthTarget)
  35. {
  36. if (healthTarget.damage > maxDamageEqualTarget)
  37. {
  38. maxDamageEqualTarget = healthTarget.damage;
  39. topAlmostKill = healthTarget;
  40. }
  41. }
  42. if (topKillTarget != null)
  43. {
  44. return topKillTarget;
  45. }
  46. else
  47. {
  48. return topAlmostKill;
  49. }
  50.  
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement