Advertisement
Guest User

Untitled

a guest
Feb 19th, 2020
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.02 KB | None | 0 0
  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);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement