SHARE
TWEET

Untitled

a guest Feb 19th, 2020 87 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Includes
  2.  
  3. include("Quotes");
  4. include("Reachable cells/reachable cells v.2");
  5.  
  6. ///////////////////////////////////////////////////////////////////////////////////////////
  7. // Globals
  8. ///////////////////////////////////////////////////////////////////////////////////////////
  9.  
  10. global moi = getLeek();
  11. global MyTotalPV = getTotalLife();
  12. global Solo = false;
  13.  
  14. ///////////////////////////////////////////////////////////////////////////////////////////
  15. // Variables:
  16. ///////////////////////////////////////////////////////////////////////////////////////////
  17.  
  18. // Cellules
  19.  
  20. var MaCellule = getCell();
  21. var MyX = getCellX(MaCellule);
  22. var MyY = getCellY(MaCellule);
  23.  
  24. var NoShootCell = [];
  25. var ShootableCell = [];
  26. var CellScoring = [];
  27.  
  28. // Caractéristiques
  29.  
  30. var MyMp = getMP();
  31. var MyPV = getLife();
  32. var MyStrenght = getStrength();
  33. var MyTp = getTP();
  34. var MyWisdom = getWisdom();
  35. var MyAgility = getAgility();
  36. var MyResistance = getResistance();
  37.  
  38. // Armes
  39.  
  40. var MyWeapon = getWeapon();
  41.  
  42. // Enemis
  43.  
  44. var Nenemy = getNearestEnemy();
  45. var AliveEnemies = getAliveEnemies();
  46.  
  47. // Alliés
  48.  
  49. var AliveAllies = getAliveAllies();
  50. var TeamID = getTeamID();
  51. var TeamName = getTeamName(TeamID);
  52.  
  53. // Cases accecibles
  54. var MyReachableCells = [];
  55. for (var cle: var e in getReachableCells([MaCellule: 0], MyMp, false)) {
  56.     push(MyReachableCells, cle);
  57. }
  58.  
  59.  
  60. var EnReachableCells = [];
  61. for (var i in AliveEnemies) {
  62.     var Table1 = [];
  63.     for (var cle: var e in getReachableCells([getCell(i): 0], getMP(i), false)) {
  64.         push(Table1, cle);
  65.     }
  66.     EnReachableCells[i] = Table1;
  67. }
  68.  
  69. ///////////////////////////////////////////////////////////////////////////////////////////// Tour 1
  70. //////////////////////////////////////////////////////////////////////////////////////////
  71. if (tour == 1) {
  72.     setWeapon(WEAPON_PISTOL);
  73.     if (getFightType() == FIGHT_TYPE_SOLO) {
  74.         Solo = true;
  75.  
  76.     }
  77. }
  78.  
  79. ///////////////////////////////////////////////////////////////////////////////////////////// Déplacements
  80. ///////////////////////////////////////////////////////////////////////////////////////////
  81. // 306 + 18*x + 17*y
  82. // Pour chaque cellule accecible
  83. for (var m in MyReachableCells) {
  84.     // Pour chaque cellule accecible de l'ennemi
  85.     for (var en: var reach in EnReachableCells) {
  86.         mark(reach, COLOR_GREEN);
  87.         var Safe = true;
  88.         for (var r in reach) {
  89.             // Si il y a une ligne de vue entre les deux, c'est une shootable sinon elle est safe
  90.             if (lineOfSight(m, r)) {
  91.                 push(ShootableCell, m);
  92.                 Safe = false;
  93.             }
  94.         }
  95.         if (Safe) { // On vérifie si il peut utiliser une puce sur chaque puce safe
  96.             var EnemyChips = getChips(en);
  97.             if (!isEmpty(EnemyChips)) {
  98.                 for (var c in getChips(en)) {
  99.  
  100.                     var EnemyChipEffect = getChipEffects(c);
  101.                     var EnemyChipMax = pow(10, 10);
  102.                     for (var effect in EnemyChipEffect) {
  103.                         if (effect[0] == EFFECT_DAMAGE and getChipMaxRange(c) >= getCellDistance(m, en)) {
  104.                             var ChipDamage = ((effect[1] + effect[2]) * (1 + getStrength(en) / 100) / 2);
  105.                             if (ChipDamage <= EnemyChipMax) {
  106.                                 EnemyChipMax = ChipDamage;
  107.                             }
  108.                             NoShootCell[m] = ChipDamage;
  109.                         } else {
  110.                             NoShootCell[m] = 0;
  111.                         }
  112.  
  113.                     }
  114.                 }
  115.             } else {
  116.                 NoShootCell[m] = 0;
  117.             }
  118.         }
  119.     }
  120.  
  121. }
  122. for (var cle: var i in NoShootCell) {
  123.     mark(cle, COLOR_BLUE);
  124.     debugC(i, COLOR_RED);
  125. }
  126. mark(ShootableCell, COLOR_RED);
  127. // Choisir la case avec le plus de deguats, si possible à portée d'une case safe ou avec la moins de deguats
  128.  
  129. moveTowardCell(getCellToUseWeapon(WEAPON_MACHINE_GUN, Nenemy));
  130. if (canUseWeapon(WEAPON_MACHINE_GUN, Nenemy)) {
  131.     if (MyWeapon != WEAPON_MACHINE_GUN) {
  132.         setWeapon(WEAPON_MACHINE_GUN);
  133.     }
  134. } else {
  135.     if (MyWeapon != WEAPON_PISTOL) {
  136.         setWeapon(WEAPON_PISTOL);
  137.     }
  138. }
  139. useWeapon(Nenemy);
  140. useWeapon(Nenemy);
  141. useWeapon(Nenemy);
  142. moveAwayFrom(Nenemy);
  143.  
  144. if (MyPV <= 0.6 * MyTotalPV) {
  145.     useChip(CHIP_BANDAGE, moi);
  146. }
  147. if (tour >= 3) {
  148.     useChip(CHIP_HELMET, moi);
  149. }
  150. speaking(tour, MyPV, MyTotalPV, AliveEnemies, TeamName, Nenemy);
  151.  
  152. debugC(getOperations(), COLOR_BLUE);
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top