Advertisement
FALSkills

Untitled

Nov 12th, 2018
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. private static RSArea getNPCAreaAround(RSTile target, int distance){
  2. int x = target.getX();
  3. int y = target.getY();
  4. int z = target.getPlane();
  5. if(distance>1)
  6. return new RSArea(new RSTile(x-distance,y-distance,z), new RSTile(x+distance,y+distance,z));
  7. return new RSArea(new RSTile(x-distance,y-distance,z),new RSTile(x,y,z));
  8. }
  9.  
  10. private static Map<Integer,Integer> sizeMap = new HashMap<Integer,Integer>();
  11. public static RSTile[] getNPCTiles(RSCharacter npc){
  12. if(npc == null){
  13. return new RSTile[0];
  14. }
  15. int id;
  16. try{
  17. id =((RSNPC)npc).getID();
  18. } catch(Exception e){
  19. return new RSTile[0];
  20. }
  21. int enemySize;
  22. if(sizeMap.containsKey(id)){
  23. enemySize = sizeMap.get(id);
  24. } else {
  25. enemySize = getNPCSize(id);
  26. sizeMap.put(id, enemySize);
  27. }
  28. if(enemySize == 1){
  29. return new RSTile[]{npc.getPosition()};
  30. } else if(enemySize == 2){
  31. return getNPCAreaAround(npc.getPosition(),1).getAllTiles();
  32. } else if(enemySize == 3){
  33. int x = npc.getPosition().getX();
  34. int y = npc.getPosition().getY();
  35. int z = npc.getPosition().getPlane();
  36. return new RSArea(new RSTile(x-1,y-1,z),new RSTile(x+1,y+1,z)).getAllTiles();
  37. } else if(enemySize == 4){
  38. RSTile pos = npc.getPosition();
  39. int x = pos.getX();
  40. int y = pos.getY();
  41. int plane = pos.getPlane();
  42. return new RSArea(new RSTile(x-2,y+1,plane),new RSTile(x+1,y-2,plane)).getAllTiles();
  43. } else{
  44. return new RSTile[0];
  45. }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement