HandlerAttackExplose.java 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package bswfx.handler;
  7. import bs.Player;
  8. import org.json.JSONObject;
  9. import rsx.BomberStudentHandler;
  10. import bswfx.BomberStudent;
  11. import org.json.JSONArray;
  12. /**
  13. *
  14. * @author loquicom
  15. */
  16. public class HandlerAttackExplose implements BomberStudentHandler {
  17. @Override
  18. public boolean handle(JSONObject json) {
  19. //Verif param
  20. if (!(json.has("pos") && json.has("map") && json.has("explosion") )) {
  21. return false;
  22. }
  23. //Retire les bombes explosées
  24. BomberStudent.game.removeBomb(json.getString("pos"));
  25. if (json.has("chain")) {
  26. JSONArray ja = json.getJSONArray("chain");
  27. for (int i = 0; i < ja.length(); i++) {
  28. JSONObject jo = ja.getJSONObject(i);
  29. BomberStudent.game.removeBomb(jo.getString("pos"));
  30. }
  31. }
  32. //Met à jour la map
  33. BomberStudent.game.updateMap(json.getString("map"));
  34. //Ajoute les bombes / bonus
  35. if (json.has("bomb")) {
  36. JSONArray ja = json.getJSONArray("bomb");
  37. for (int i = 0; i < ja.length(); i++) {
  38. JSONObject jo = ja.getJSONObject(i);
  39. switch (jo.getString("type")) {
  40. case "classic":
  41. BomberStudent.game.newObject(Player.CLASSIC, jo.getString("pos"));
  42. break;
  43. case "mine":
  44. BomberStudent.game.newObject(Player.MINE, jo.getString("pos"));
  45. break;
  46. case "remote":
  47. BomberStudent.game.newObject(Player.REMOTE, jo.getString("pos"));
  48. break;
  49. }
  50. }
  51. }
  52. if (json.has("bonusMalus")) {
  53. JSONArray ja = json.getJSONArray("bonusMalus");
  54. for (int i = 0; i < ja.length(); i++) {
  55. JSONObject jo = ja.getJSONObject(i);
  56. switch (jo.getString("type")) {
  57. case "bomb_up":
  58. BomberStudent.game.newObject(Player.BOMBUP, jo.getString("pos"));
  59. break;
  60. case "bomb_down":
  61. BomberStudent.game.newObject(Player.BOMBDOWN, jo.getString("pos"));
  62. break;
  63. case "fire_power":
  64. BomberStudent.game.newObject(Player.FIREPOWER, jo.getString("pos"));
  65. break;
  66. case "scooter":
  67. BomberStudent.game.newObject(Player.SCOOTER, jo.getString("pos"));
  68. break;
  69. case "broken_legs":
  70. BomberStudent.game.newObject(Player.BROKENLEG, jo.getString("pos"));
  71. break;
  72. case "major":
  73. BomberStudent.game.newObject(Player.MAJOR, jo.getString("pos"));
  74. break;
  75. case "life_up":
  76. BomberStudent.game.newObject(Player.LIFEUP, jo.getString("pos"));
  77. break;
  78. case "life_max":
  79. BomberStudent.game.newObject(Player.LIFEMAX, jo.getString("pos"));
  80. break;
  81. }
  82. }
  83. }
  84. //Gére l'affichage des explosions
  85. BomberStudent.game.explosion(json.getJSONArray("explosion"));
  86. //MaJ affichage
  87. BomberStudent.updateWindow();
  88. return true;
  89. }
  90. }