12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package bswfx.handler;
- import bs.Player;
- import org.json.JSONObject;
- import rsx.BomberStudentHandler;
- import bswfx.BomberStudent;
- import org.json.JSONArray;
- /**
- *
- * @author loquicom
- */
- public class HandlerAttackExplose implements BomberStudentHandler {
- @Override
- public boolean handle(JSONObject json) {
- //Verif param
- if (!(json.has("pos") && json.has("map") && json.has("explosion") )) {
- return false;
- }
- //Retire les bombes explosées
- BomberStudent.game.removeBomb(json.getString("pos"));
- if (json.has("chain")) {
- JSONArray ja = json.getJSONArray("chain");
- for (int i = 0; i < ja.length(); i++) {
- JSONObject jo = ja.getJSONObject(i);
- BomberStudent.game.removeBomb(jo.getString("pos"));
- }
- }
- //Met à jour la map
- BomberStudent.game.updateMap(json.getString("map"));
- //Ajoute les bombes / bonus
- if (json.has("bomb")) {
- JSONArray ja = json.getJSONArray("bomb");
- for (int i = 0; i < ja.length(); i++) {
- JSONObject jo = ja.getJSONObject(i);
- switch (jo.getString("type")) {
- case "classic":
- BomberStudent.game.newObject(Player.CLASSIC, jo.getString("pos"));
- break;
- case "mine":
- BomberStudent.game.newObject(Player.MINE, jo.getString("pos"));
- break;
- case "remote":
- BomberStudent.game.newObject(Player.REMOTE, jo.getString("pos"));
- break;
- }
- }
- }
- if (json.has("bonusMalus")) {
- JSONArray ja = json.getJSONArray("bonusMalus");
- for (int i = 0; i < ja.length(); i++) {
- JSONObject jo = ja.getJSONObject(i);
- switch (jo.getString("type")) {
- case "bomb_up":
- BomberStudent.game.newObject(Player.BOMBUP, jo.getString("pos"));
- break;
- case "bomb_down":
- BomberStudent.game.newObject(Player.BOMBDOWN, jo.getString("pos"));
- break;
- case "fire_power":
- BomberStudent.game.newObject(Player.FIREPOWER, jo.getString("pos"));
- break;
- case "scooter":
- BomberStudent.game.newObject(Player.SCOOTER, jo.getString("pos"));
- break;
- case "broken_legs":
- BomberStudent.game.newObject(Player.BROKENLEG, jo.getString("pos"));
- break;
- case "major":
- BomberStudent.game.newObject(Player.MAJOR, jo.getString("pos"));
- break;
- case "life_up":
- BomberStudent.game.newObject(Player.LIFEUP, jo.getString("pos"));
- break;
- case "life_max":
- BomberStudent.game.newObject(Player.LIFEMAX, jo.getString("pos"));
- break;
- }
- }
- }
- //Gére l'affichage des explosions
- BomberStudent.game.explosion(json.getJSONArray("explosion"));
- //MaJ affichage
- BomberStudent.updateWindow();
- return true;
- }
- }
|