Advertisement
Guest User

Untitled

a guest
Mar 5th, 2015
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function getEnnemisAtteignablesAOE() //Attention, je n'enregistre pas encore avec qu'elle arme je tape !
  2. {  
  3.     var x, y, j;
  4.     var PM, trouve;
  5.     var cellEndroitDeplace, cellVisee, cellulesAffectees;
  6.     var ennemisAtteignables = [];
  7.     var armesAOE = [], dernierElement;
  8.     var miniRange, maxiRange;
  9.     x = getCellX(getCell());
  10.     y = getCellY(getCell());
  11.     PM = getMP();
  12.     armesAOE = getArmeAOE();
  13.    
  14.     debug("Voici nos armes AOE : "+armesAOE);
  15.     for(var arme in armesAOE)
  16.     {
  17.         //debug("Test avec "+getWeaponName(arme));
  18.         miniRange = getWeaponMinScope(arme);       
  19.         maxiRange = getWeaponMaxScope(arme);
  20.         var k = 0;
  21.         var cellDejaTestees = [];
  22.         for(var posX = x - PM ; posX <= x + PM ; posX++)
  23.         {
  24.             for(var posY = y - k ; posY <= y + k ; posY++)
  25.             {
  26.                 cellEndroitDeplace = getCellFromXY(posX, posY);
  27.                 j = 0;
  28.                 if(cellEndroitDeplace != null && !isObstacle(cellEndroitDeplace))
  29.                 for(var tirerX = posX - maxiRange ; tirerX <= posX + maxiRange ; tirerX++)
  30.                 {
  31.                     for(var tirerY = posY - j ; tirerY <= posY + j ; tirerY++)
  32.                     {
  33.                         cellVisee = getCellFromXY(tirerX, tirerY); 
  34.                        
  35.                         if(search(cellDejaTestees, cellVisee) == null)
  36.                         if(cellVisee != null && lineOfSight(cellEndroitDeplace, cellVisee))
  37.                         if(getCellDistance(cellVisee, cellEndroitDeplace) >= miniRange)
  38.                         {
  39.                             mark(cellVisee, COLOR_GREEN);
  40.                             cellulesAffectees = getWeaponEffectiveArea(arme, cellVisee);
  41.                            
  42.                             for(var celluleTestee in cellulesAffectees)
  43.                                 if(getLeekOnCell(celluleTestee) > -1)
  44.                                     mark(cellVisee, COLOR_BLUE);
  45.                             push(cellDejaTestees, cellVisee);
  46.                         }
  47.                     }      
  48.                     if(tirerX < posX) j++;
  49.                     else              j--;
  50.                 }                      
  51.             }
  52.             if(posX < x) k++;
  53.             else      k--;
  54.         }      
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement