Advertisement
Guest User

Untitled

a guest
Aug 13th, 2014
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. public enum AgilityCourse {
  2.  
  3.     GNOME_COURSE(
  4.             new Obstacle(
  5.                     "Log balance",
  6.                     new RSArea(new RSTile[]{
  7.                             new RSTile(2468, 3435, 0),
  8.                             new RSTile(2491, 3436, 0),
  9.                             new RSTile(2487, 3441, 0),
  10.                             new RSTile(2472, 3441, 0)
  11.                     })
  12.             ),
  13.             new Obstacle(
  14.                     "Obstacle net",
  15.                     new RSArea(new RSTile[]{
  16.                             new RSTile(2470, 3430, 0),
  17.                             new RSTile(2470, 3425, 0),
  18.                             new RSTile(2478, 3425, 0),
  19.                             new RSTile(2478, 3430, 0)
  20.                     })
  21.             ),
  22.             new Obstacle(
  23.                     "Tree branch",
  24.                     new RSArea(new RSTile[]{
  25.                             new RSTile(2471, 3425, 1),
  26.                             new RSTile(2471, 3422, 1),
  27.                             new RSTile(2477, 3422, 1),
  28.                             new RSTile(2477, 3425, 1)
  29.                     })
  30.             ),
  31.             new Obstacle(
  32.                     "Balancing rope",
  33.                     new RSArea(new RSTile[]{
  34.                             new RSTile(2472, 3422, 2),
  35.                             new RSTile(2472, 3418, 2),
  36.                             new RSTile(2478, 3418, 2),
  37.                             new RSTile(2478, 3422, 2)
  38.                     })
  39.             ),
  40.             new Obstacle(
  41.                     "Tree branch",
  42.                     new RSArea(new RSTile[]{
  43.                             new RSTile(2483, 3418, 2),
  44.                             new RSTile(2489, 3418, 2),
  45.                             new RSTile(2489, 3422, 2),
  46.                             new RSTile(2483, 3422, 2)
  47.                     })
  48.             ),
  49.             new Obstacle(
  50.                     "Obstacle net",
  51.                     new RSArea(new RSTile[]{
  52.                             new RSTile(2483, 3416, 0),
  53.                             new RSTile(2489, 3416, 0),
  54.                             new RSTile(2488, 3426, 0),
  55.                             new RSTile(2483, 3426, 0)
  56.                     })
  57.             ),
  58.             new Obstacle(
  59.                     "Obstacle pipe",
  60.                     new RSArea(new RSTile[]{
  61.                             new RSTile(2483, 3427, 0),
  62.                             new RSTile(2489, 3427, 0),
  63.                             new RSTile(2489, 3432, 0),
  64.                             new RSTile(2483, 3432, 0)
  65.                     })
  66.             )
  67.     ),
  68.  
  69.     DRAYNOR_ROOF(
  70.             new Obstacle(
  71.                     "Rough wall",
  72.                     new RSArea(new RSTile[] {
  73.                             new RSTile(3102, 3259, 0),
  74.                             new RSTile(3105, 3259, 0),
  75.                             new RSTile(3106, 3282, 0),
  76.                             new RSTile(3103, 3282, 0)
  77.                     })),
  78.             new Obstacle(
  79.                     "Tightrope",
  80.                     new RSArea(new RSTile[] {
  81.                             new RSTile(3097, 3277, 3),
  82.                             new RSTile(3103, 3277, 3),
  83.                             new RSTile(3103, 3282, 3),
  84.                             new RSTile(3097, 3282, 3)
  85.                     })),
  86.             new Obstacle(
  87.                     "Tightrope",
  88.                     new RSArea(new RSTile[] {
  89.                             new RSTile(3093, 3275, 3),
  90.                             new RSTile(3090, 3278, 3),
  91.                             new RSTile(3087, 3274, 3),
  92.                             new RSTile(3090, 3270, 3)
  93.                     })),
  94.             new Obstacle(
  95.                     "Narrow wall",
  96.                     new RSArea(new RSTile[] {
  97.                             new RSTile(3089, 3265, 3),
  98.                             new RSTile(3096, 3264, 3),
  99.                             new RSTile(3096, 3269, 3),
  100.                             new RSTile(3089, 3268, 3)
  101.                     })),
  102.             new Obstacle(
  103.                     "Wall",
  104.                     new RSArea(new RSTile[] {
  105.                             new RSTile(3089, 3262, 3),
  106.                             new RSTile(3089, 3256, 3),
  107.                             new RSTile(3087, 3256, 3),
  108.                             new RSTile(3087, 3261, 3)
  109.                     })),
  110.             new Obstacle("Gap",
  111.                     new RSArea(new RSTile[] {
  112.                             new RSTile(3087, 3256, 3),
  113.                             new RSTile(3095, 3256, 3),
  114.                             new RSTile(3095, 3254, 3),
  115.                             new RSTile(3087, 3254, 3)
  116.                     })),
  117.             new Obstacle("Crate",
  118.                     new RSArea(new RSTile[] {
  119.                             new RSTile(3096, 3262, 3),
  120.                             new RSTile(3102, 3262, 3),
  121.                             new RSTile(3101, 3256, 3),
  122.                             new RSTile(3096, 3256, 3)
  123.                     }))
  124.     ),
  125.  
  126.     AL_KHARID_ROOF(
  127.             new Obstacle(
  128.                     "Rough wall",
  129.                     new RSArea(new RSTile[] {
  130.                             new RSTile(3301, 3195, 0),
  131.                             new RSTile(3298, 3198, 0),
  132.                             new RSTile(3270, 3199, 0),
  133.                             new RSTile(3270, 3195, 0),
  134.                             new RSTile(3296, 3191, 0)
  135.                     })),
  136.             new Obstacle(
  137.                     "Tightrope",
  138.                     new RSArea(new RSTile[] {
  139.                             new RSTile(3270, 3196, 3),
  140.                             new RSTile(3279, 3196, 3),
  141.                             new RSTile(3278, 3179, 3),
  142.                             new RSTile(3270, 3179, 3)
  143.                     })),
  144.             new Obstacle(
  145.                     "Cable",
  146.                     new RSArea(new RSTile[] {
  147.                             new RSTile(3273, 3174, 3),
  148.                             new RSTile(3265, 3174, 3),
  149.                             new RSTile(3265, 3161, 3),
  150.                             new RSTile(3272, 3161, 3)
  151.                     })),
  152.             new Obstacle(
  153.                     "Zip line",
  154.                     new RSArea(new RSTile[] {
  155.                             new RSTile(3303, 3159, 3),
  156.                             new RSTile(3303, 3170, 3),
  157.                             new RSTile(3289, 3169, 3),
  158.                             new RSTile(3288, 3177, 3),
  159.                             new RSTile(3283, 3177, 3),
  160.                             new RSTile(3283, 3160, 3)
  161.                     })),
  162.             new Obstacle(
  163.                     "Tropical tree",
  164.                     new RSArea(new RSTile[] {
  165.                             new RSTile(3313, 3166, 1),
  166.                             new RSTile(3313, 3160, 1),
  167.                             new RSTile(3319, 3160, 1),
  168.                             new RSTile(3319, 3166, 1)
  169.                     })),
  170.             new Obstacle(
  171.                     "Roof top beams",
  172.                     new RSArea(new RSTile[] {
  173.                             new RSTile(3319, 3171, 2),
  174.                             new RSTile(3319, 3180, 2),
  175.                             new RSTile(3311, 3180, 2),
  176.                             new RSTile(3312, 3172, 2)
  177.                     })),
  178.             new Obstacle(
  179.                     "Tightrope",
  180.                     new RSArea(new RSTile[] {
  181.                             new RSTile(3319, 3180, 3),
  182.                             new RSTile(3319, 3187, 3),
  183.                             new RSTile(3312, 3187, 3),
  184.                             new RSTile(3312, 3180, 3)
  185.                     })),
  186.             new Obstacle(
  187.                     "Gap",
  188.                     new RSArea(new RSTile[] {
  189.                             new RSTile(3306, 3188, 3),
  190.                             new RSTile(3303, 3185, 3),
  191.                             new RSTile(3297, 3191, 3),
  192.                             new RSTile(3301, 3194, 3)
  193.                     }))
  194.     );
  195.  
  196.     private final Obstacle[] obstacles;
  197.  
  198.     AgilityCourse(Obstacle... obstacles) {
  199.         this.obstacles = obstacles;
  200.     }
  201.  
  202.     /**
  203.      * Gets the next obstacle by checking if the player is inside the obstacle's area
  204.      * @return the next {@link scripts.alpharunner.Obstacle}
  205.      */
  206.     public Obstacle getNextObstacle() {
  207.         for (Obstacle obstacle : obstacles) {
  208.             if (obstacle.area.contains(Player.getPosition()) && obstacle.area.plane == Game.getPlane()) {
  209.                 return obstacle;
  210.             }
  211.         }
  212.         return null;
  213.     }
  214.  
  215.     /**
  216.      * Gets the nearest obstacle based on the center of the obstacle's area
  217.      * @return the nearest {@link scripts.alpharunner.Obstacle}
  218.      */
  219.     public Obstacle getNearestObstacle() {
  220.         Obstacle nearest = null;
  221.         int distance = Integer.MAX_VALUE;
  222.  
  223.         for (Obstacle obstacle : obstacles) {
  224.             if (obstacle.area.plane != Game.getPlane()) continue;
  225.             final int tempDist = Utility.getCenterTile(obstacle.area).distanceTo(Player.getPosition());
  226.             if (tempDist < distance) {
  227.                 distance = tempDist;
  228.                 nearest = obstacle;
  229.             }
  230.         }
  231.         return nearest;
  232.     }
  233.  
  234.     /**
  235.      * @return <tt>true</tt> if the course is a rooftop course
  236.      */
  237.     public boolean isRoof() {
  238.         return toString().toLowerCase().contains("roof");
  239.     }
  240. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement