Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Includes
- include("Quotes");
- include("Reachable cells/reachable cells v.2");
- ///////////////////////////////////////////////////////////////////////////////////////////
- // Globals
- ///////////////////////////////////////////////////////////////////////////////////////////
- global moi = getLeek();
- global MyTotalPV = getTotalLife();
- global Solo = false;
- ///////////////////////////////////////////////////////////////////////////////////////////
- // Variables:
- ///////////////////////////////////////////////////////////////////////////////////////////
- // Cellules
- var MaCellule = getCell();
- var MyX = getCellX(MaCellule);
- var MyY = getCellY(MaCellule);
- var NoShootCell = [];
- var ShootableCell = [];
- var CellScoring = [];
- // Caractéristiques
- var MyMp = getMP();
- var MyPV = getLife();
- var MyStrenght = getStrength();
- var MyTp = getTP();
- var MyWisdom = getWisdom();
- var MyAgility = getAgility();
- var MyResistance = getResistance();
- // Armes
- var MyWeapon = getWeapon();
- // Enemis
- var Nenemy = getNearestEnemy();
- var AliveEnemies = getAliveEnemies();
- // Alliés
- var AliveAllies = getAliveAllies();
- var TeamID = getTeamID();
- var TeamName = getTeamName(TeamID);
- // Cases accecibles
- var MyReachableCells = [];
- for (var cle: var e in getReachableCells([MaCellule: 0], MyMp, false)) {
- push(MyReachableCells, cle);
- }
- var EnReachableCells = [];
- for (var i in AliveEnemies) {
- var Table1 = [];
- for (var cle: var e in getReachableCells([getCell(i): 0], getMP(i), false)) {
- push(Table1, cle);
- }
- EnReachableCells[i] = Table1;
- }
- ///////////////////////////////////////////////////////////////////////////////////////////// Tour 1
- //////////////////////////////////////////////////////////////////////////////////////////
- if (tour == 1) {
- setWeapon(WEAPON_PISTOL);
- if (getFightType() == FIGHT_TYPE_SOLO) {
- Solo = true;
- }
- }
- ///////////////////////////////////////////////////////////////////////////////////////////// Déplacements
- ///////////////////////////////////////////////////////////////////////////////////////////
- // 306 + 18*x + 17*y
- // Pour chaque cellule accecible
- for (var m in MyReachableCells) {
- // Pour chaque cellule accecible de l'ennemi
- for (var en: var reach in EnReachableCells) {
- mark(reach, COLOR_GREEN);
- var Safe = true;
- for (var r in reach) {
- // Si il y a une ligne de vue entre les deux, c'est une shootable sinon elle est safe
- if (lineOfSight(m, r)) {
- push(ShootableCell, m);
- Safe = false;
- }
- }
- if (Safe) { // On vérifie si il peut utiliser une puce sur chaque puce safe
- var EnemyChips = getChips(en);
- if (!isEmpty(EnemyChips)) {
- for (var c in getChips(en)) {
- var EnemyChipEffect = getChipEffects(c);
- var EnemyChipMax = pow(10, 10);
- for (var effect in EnemyChipEffect) {
- if (effect[0] == EFFECT_DAMAGE and getChipMaxRange(c) >= getCellDistance(m, en)) {
- var ChipDamage = ((effect[1] + effect[2]) * (1 + getStrength(en) / 100) / 2);
- if (ChipDamage <= EnemyChipMax) {
- EnemyChipMax = ChipDamage;
- }
- NoShootCell[m] = ChipDamage;
- } else {
- NoShootCell[m] = 0;
- }
- }
- }
- } else {
- NoShootCell[m] = 0;
- }
- }
- }
- }
- for (var cle: var i in NoShootCell) {
- mark(cle, COLOR_BLUE);
- debugC(i, COLOR_RED);
- }
- mark(ShootableCell, COLOR_RED);
- // Choisir la case avec le plus de deguats, si possible à portée d'une case safe ou avec la moins de deguats
- moveTowardCell(getCellToUseWeapon(WEAPON_MACHINE_GUN, Nenemy));
- if (canUseWeapon(WEAPON_MACHINE_GUN, Nenemy)) {
- if (MyWeapon != WEAPON_MACHINE_GUN) {
- setWeapon(WEAPON_MACHINE_GUN);
- }
- } else {
- if (MyWeapon != WEAPON_PISTOL) {
- setWeapon(WEAPON_PISTOL);
- }
- }
- useWeapon(Nenemy);
- useWeapon(Nenemy);
- useWeapon(Nenemy);
- moveAwayFrom(Nenemy);
- if (MyPV <= 0.6 * MyTotalPV) {
- useChip(CHIP_BANDAGE, moi);
- }
- if (tour >= 3) {
- useChip(CHIP_HELMET, moi);
- }
- speaking(tour, MyPV, MyTotalPV, AliveEnemies, TeamName, Nenemy);
- debugC(getOperations(), COLOR_BLUE);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement