Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Projet Calculateur
#33
J'ai commencé à refactoriser pour la V10.

On a donc les profils (+ un Record et un builder=:
Code:
package com.calculateur.warhammer.data.identifiable;

import java.util.Set;

import com.calculateur.warhammer.data.enumeration.EProfil;
import com.calculateur.warhammer.data.enumeration.EProfilMotCle;

/**
* Un profil à warhammer 40K
* @author phili
*
*/
public interface IProfil{

    /**
     *
     * @return Le mouvelment
     */
    Integer getMouvement();

    /**
     *
     * @return L'endurance
     */
    Integer getEndurance();
    
    /**
     *
     * @return La sauvegarde
     */
    Integer getSauvegarde();
    
    /**
     *
     * @return La sauvegarde Invulnérable
     */
    Integer getSauvegardeInvulnerable();
    
    /**
     *
     * @return Le nombre de point de vie
     */
    Integer getNombrePointDeVie();
    
    /**
     *
     * @return Le commandement
     */
    Integer getCommandement();
    
    /**
     *
     * @return Le contrôle d'objectif
     */
    Integer getControlObjectif();
    
    /**
     *
     * @return Les types du profil
     */
    Set<EProfil> getTypesProfils();
    
    /**
     *
     * @return Les mots clés décrivant le profil
     */
    Set<EProfilMotCle> getMotsCles();
    
    /**
     *
     * @return Vrai si c'est un volant
     */
    default Boolean isVolant() {
        return getTypesProfils().contains(EProfil.VOL) || getTypesProfils().contains(EProfil.AERODYNE);
    }
}


Et l'arme:
Code:
package com.calculateur.warhammer.data.identifiable;

import java.util.Set;

import com.calculateur.warhammer.data.enumeration.EArmeMotCle;
import com.calculateur.warhammer.data.enumeration.EArmeRegle;

/**
* L'arme utilisé
* @author phili
*
*/
public interface IArme{

    /**
     *
     * @return La portée de l'arme
     */
    Integer getPortee();
    
    /**
     *
     * @return Le nombre d'attaque de base
     */
    Integer getNombreAttaqueBase();
    
    /**
     *
     * @return Le nombre d'attaque par D3
     */
    Integer getNombreAttaqueD3();
    
    /**
     *
     * @return Le nombre d'attaque par D6
     */
    Integer getNombreAttaqueD6();
    
    /**
     *
     * @return Le jet de touche, c'est à dire la CT (tir) ou la CC (pour le corps à corps)
     */
    Integer getJetTouche();
    
    /**
     *
     * @return La Force de l'arme
     */
    Integer getForce();
    
    
    /**
     *
     * @return La PA de l'arme
     */
    Integer getPA();
    
    
    /**
     *
     * @return Les dégats de base
     */
    Integer getDegats();
    
    /**
     *
     * @return Le nombre de D3 qu'il faut avoir pour avoir les dégâts
     */
    Integer getDegatsParD3();
    
    /**
     *
     * @return Nombre d'attaque par D6
     */
    Integer getDegatsParD6();
    
    /**
     *
     * @return Les mots clés propres à une règles
     */
    Set<EArmeRegle> getRegles();
    
    /**
     *
     * @return Les mots clés définissant l'arme.
     */
    Set<EArmeMotCle> getMotsCles();
    
    /**
     *
     * @return Vrai si il s'agit d'une arme de mêlée
     */
    boolean isArmeMelee();
}

Pour les règles, on introduit quelques mots clés:
Code:
package com.calculateur.warhammer.data.enumeration;

/**
* Enumération des différents mots clés utilisés pour les règles d'armes.
* @author phili
*
*/
public enum EArmeRegle {

    ASSAUT,
    LOURDE,
    TIR_RAPIDE,
    GRENADE,
    PISTOLET,
    JUMELEE,
    SOUFLE,
    BLAST,
    TIR_INDIRECT;
}

Fini la Dakka comme les sauvegarde démonique (pour l'instant).

Par ailleurs, on voit que ça simplifie côté règles, on arrête enfin de se trainer de la programmation générique avec des arme (arme de tir ou de corps à corps) qui complexifiait le code (et en particulier les factory...). On va bien vers une simplification du jeu.
Reply


Messages In This Thread
Projet Calculateur - by Philou - 12-09-2022, 09:47 AM
RE: Projet Calculateur - by Philou - 12-09-2022, 09:52 AM
RE: Projet Calculateur - by Philou - 17-09-2022, 09:14 PM
RE: Projet Calculateur - by Philou - 25-09-2022, 07:26 AM
RE: Projet Calculateur - by Philou - 25-09-2022, 08:54 AM
RE: Projet Calculateur - by Philou - 03-10-2022, 10:54 AM
RE: Projet Calculateur - by Philou - 16-10-2022, 11:36 AM
RE: Projet Calculateur - by Philou - 24-10-2022, 01:08 PM
RE: Projet Calculateur - by Philou - 25-10-2022, 09:52 AM
RE: Projet Calculateur - by sdm - 25-10-2022, 11:06 PM
RE: Projet Calculateur - by Philou - 25-10-2022, 11:23 PM
RE: Projet Calculateur - by Philou - 26-10-2022, 03:09 PM
RE: Projet Calculateur - by Philou - 25-10-2022, 11:25 PM
RE: Projet Calculateur - by Philou - 06-11-2022, 05:27 PM
RE: Projet Calculateur - by Philou - 19-11-2022, 10:36 AM
RE: Projet Calculateur - by Philou - 23-11-2022, 08:34 AM
RE: Projet Calculateur - by Philou - 24-11-2022, 08:49 PM
RE: Projet Calculateur - by Philou - 04-12-2022, 06:57 PM
RE: Projet Calculateur - by Philou - 11-12-2022, 12:11 PM
RE: Projet Calculateur - by Philou - 18-12-2022, 06:47 PM
RE: Projet Calculateur - by Philou - 19-12-2022, 09:05 PM
RE: Projet Calculateur - by Philou - 03-01-2023, 09:34 PM
RE: Projet Calculateur - by Philou - 07-01-2023, 06:36 PM
RE: Projet Calculateur - by Philou - 01-02-2023, 08:21 PM
RE: Projet Calculateur - by Philou - 16-02-2023, 08:31 PM
RE: Projet Calculateur - by Gaeriel - 17-02-2023, 10:56 PM
RE: Projet Calculateur - by Philou - 17-02-2023, 11:32 PM
RE: Projet Calculateur - by Philou - 05-03-2023, 05:45 PM
RE: Projet Calculateur - by Philou - 06-03-2023, 08:55 PM
RE: Projet Calculateur - by Philou - 08-03-2023, 08:28 PM
RE: Projet Calculateur - by Philou - 12-03-2023, 07:56 AM
RE: Projet Calculateur - by Philou - 23-03-2023, 06:44 PM
RE: Projet Calculateur - by Philou - 28-03-2023, 08:58 PM
RE: Projet Calculateur - by Philou - 27-04-2023, 08:05 PM
RE: Projet Calculateur - by Philou - 30-04-2023, 10:29 AM
RE: Projet Calculateur - by Philou - 02-05-2023, 08:03 AM
RE: Projet Calculateur - by Philou - 19-05-2023, 11:36 AM
RE: Projet Calculateur - by Philou - 19-05-2023, 05:44 PM
RE: Projet Calculateur - by Philou - 20-05-2023, 09:10 PM
RE: Projet Calculateur - by Philou - 22-06-2023, 07:38 AM
RE: Projet Calculateur - by Philou - 24-06-2023, 07:09 AM
RE: Projet Calculateur - by Philou - 26-06-2023, 07:44 PM
RE: Projet Calculateur - by Philou - 28-06-2023, 07:09 AM
RE: Projet Calculateur - by Philou - 28-06-2023, 07:43 PM
RE: Projet Calculateur - by Philou - 30-06-2023, 07:22 PM
RE: Projet Calculateur - by Philou - 08-08-2023, 07:54 PM
RE: Projet Calculateur - by Philou - 19-08-2023, 10:30 AM
RE: Projet Calculateur - by Philou - 19-08-2023, 06:20 PM
RE: Projet Calculateur - by Philou - 20-08-2023, 10:17 AM
RE: Projet Calculateur - by Philou - 22-01-2024, 09:02 PM
RE: Projet Calculateur - by Philou - 09-05-2024, 10:21 AM
RE: Projet Calculateur - by Philou - 11-05-2024, 05:41 PM
RE: Projet Calculateur - by Philou - 25-05-2024, 08:41 AM
RE: Projet Calculateur - by Philou - 24-04-2025, 04:09 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)