Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void onFighterDie(final Fighter target, final Fighter caster) {
- World.backgroundProcess.schedule(new FighterDieTask(Fight.this,target,caster), 500 , TimeUnit.MILLISECONDS);
- }
- public void onFighterDie_CallBack(Fighter target, Fighter caster) {
- target.setIsDead(true);
- if (!target.hasLeft()) {
- deadList.put(target.getGUID(), target);//on ajoute le joueur à la liste des cadavres ;)
- }
- PacketsManager.GAME_SEND_FIGHT_PLAYER_DIE_TO_FIGHT(this, 7, target.getGUID());
- target.get_fightCell().getFighters().clear();
- if (target.isState(Constants.ETAT_PORTEUR)) {
- Fighter f = target.get_isHolding();
- f.set_fightCell(f.get_fightCell());
- f.get_fightCell().addFighter(f);//Le bug venait par manque de ceci, il ni avait plus de firstFighter
- f.setState(Constants.ETAT_PORTE, 0);//J'ajoute ceci quand m�me pour signaler qu'ils ne sont plus en �tat port�/porteur
- target.setState(Constants.ETAT_PORTEUR, 0);
- f.set_holdedBy(null);
- target.set_isHolding(null);
- PacketsManager.GAME_SEND_GA_PACKET_TO_FIGHT(this, 7, 950, f.getGUID() + "", f.getGUID() + "," + Constants.ETAT_PORTE + ",0");
- PacketsManager.GAME_SEND_GA_PACKET_TO_FIGHT(this, 7, 950, target.getGUID() + "", target.getGUID() + "," + Constants.ETAT_PORTEUR + ",0");
- }
- if (target.getTeam() == 0) {
- HashMap<Integer, Fighter> team = new HashMap<Integer, Fighter>();
- team.putAll(_team0);
- for (Entry<Integer, Fighter> entry : team.entrySet()) {
- if (entry.getValue().getInvocator() == null) {
- continue;
- }
- if (entry.getValue().getPDV() == 0) {
- continue;
- }
- if (entry.getValue().isDead()) {
- continue;
- }
- if (entry.getValue().getInvocator().getGUID() == target.getGUID())//si il a été invoqué par le joueur mort
- {
- onFighterDie(entry.getValue(), caster);
- int index = _ordreJeu.indexOf(entry.getValue());
- if (index != -1) {
- _ordreJeu.remove(index);
- }
- if (_team0.containsKey(entry.getValue().getGUID())) {
- _team0.remove(entry.getValue().getGUID());
- } else if (_team1.containsKey(entry.getValue().getGUID())) {
- _team1.remove(entry.getValue().getGUID());
- }
- PacketsManager.GAME_SEND_GA_PACKET_TO_FIGHT(this, 7, 999, target.getGUID() + "", getGTL());
- }
- }
- } else if (target.getTeam() == 1) {
- HashMap<Integer, Fighter> team = new HashMap<Integer, Fighter>();
- team.putAll(_team1);
- for (Entry<Integer, Fighter> entry : team.entrySet()) {
- if (entry.getValue().getInvocator() == null) {
- continue;
- }
- if (entry.getValue().getPDV() == 0) {
- continue;
- }
- if (entry.getValue().isDead()) {
- continue;
- }
- if (entry.getValue().getInvocator().getGUID() == target.getGUID())//si il a été invoqué par le joueur mort
- {
- onFighterDie(entry.getValue(), caster);
- int index = _ordreJeu.indexOf(entry.getValue());
- if (index != -1) {
- _ordreJeu.remove(index);
- }
- if (_team0.containsKey(entry.getValue().getGUID())) {
- _team0.remove(entry.getValue().getGUID());
- } else if (_team1.containsKey(entry.getValue().getGUID())) {
- _team1.remove(entry.getValue().getGUID());
- }
- PacketsManager.GAME_SEND_GA_PACKET_TO_FIGHT(this, 7, 999, target.getGUID() + "", getGTL());
- }
- }
- }
- if (target.getMob() != null) {
- //Si c'est une invocation, on la retire de la liste
- try {
- boolean isStatic = false;
- for (int id : Constants.STATIC_INVOCATIONS) {
- if (id == target.getMob().getTemplate().getID()) {
- isStatic = true;
- }
- }
- if (target.isInvocation() && !isStatic) {
- //Il ne peut plus jouer, et est mort on revient au joueur précedent pour que le startTurn passe au suivant
- if (!target.canPlay() && _ordreJeu.get(_curPlayer).getGUID() == target.getGUID()) {
- _curPlayer--;
- }
- //Il peut jouer, et est mort alors on passe son tour pour que l'autre joue, puis on le supprime de l'index sans problèmes
- if (target.canPlay() && _ordreJeu.get(_curPlayer).getGUID() == target.getGUID()) {
- endTurn();
- }
- //On ne peut pas supprimer l'index tant que le tour du prochain joueur n'est pas lancé
- int index = _ordreJeu.indexOf(target);
- //Si le joueur courant a un index plus élevé, on le diminue pour éviter le outOfBound
- if (_curPlayer > index) {
- _curPlayer--;
- }
- if (index != -1) {
- _ordreJeu.remove(index);
- }
- if (_team0.containsKey(target.getGUID())) {
- _team0.remove(target.getGUID());
- } else if (_team1.containsKey(target.getGUID())) {
- _team1.remove(target.getGUID());
- }
- PacketsManager.GAME_SEND_GA_PACKET_TO_FIGHT(this, 7, 999, target.getGUID() + "", getGTL());
- }
- } catch (Exception e) {
- e.printStackTrace();
- };
- }
- //on supprime les glyphes du joueur
- ArrayList<Glyph> glyphs = new ArrayList<Glyph>();//Copie du tableau
- glyphs.addAll(_glyphs);
- for (Glyph g : glyphs) {
- //Si c'est ce joueur qui l'a lancé
- if (g.get_caster().getGUID() == target.getGUID()) {
- PacketsManager.GAME_SEND_GDZ_PACKET_TO_FIGHT(this, 7, "-", g.get_cell().getID(), g.get_size(), 4);
- PacketsManager.GAME_SEND_GDC_PACKET_TO_FIGHT(this, 7, g.get_cell().getID());
- _glyphs.remove(g);
- }
- }
- //on supprime les Traps du joueur
- ArrayList<Trap> Ps = new ArrayList<Trap>();
- Ps.addAll(_traps);
- for (Trap p : Ps) {
- if (p.get_caster().getGUID() == target.getGUID()) {
- p.desappear();
- _traps.remove(p);
- }
- }
- }
Add Comment
Please, Sign In to add comment