/** * Utilise l'action du personnage selectionné * * @param p personnage selectionné * @param idActionSelectionné action selectionné * @param positionCaseSelectionné position de la case où l'on veut lancer l'attaque */ public void personnageAction( Personnage p, int idActionSelectionné, int[] positionCaseSelectionné) { Class<?> c = p.getAction(idActionSelectionné); typePortee tp; try { Constructor<?> constructeur = c.getConstructor(new Class[] {Personnage.class, Jeu.class}); tp = (typePortee) c.getMethod("getTypePortee").invoke(c); if (tp == typePortee.CIBLE) { for (int[] tc : this.VoisinageCaseZoneCible(positionCaseSelectionné)) { if (plateau.caseGetPersonnage(tc) != null) constructeur.newInstance(new Object[] {plateau.caseGetPersonnage(tc), this}); } } else if (plateau.caseGetPersonnage(positionCaseSelectionné) != null) { constructeur.newInstance( new Object[] {plateau.caseGetPersonnage(positionCaseSelectionné), this}); } } catch (Exception e) { } }