/**
  * Regle 0
  *
  * @param
  * @return Un citoyen contaminé augmente de 1%, de son niveau de contamination, celui du lieu sur
  *     lequel il est situé
  */
 public static void regle0(AbstractCase lieuActuel, AbstractPerson p) {
   if (!(lieuActuel instanceof Caserne)) {
     double niveauContaminationLieu = lieuActuel.getNiveauContamination();
     double total = niveauContaminationLieu + 0.01 * p.getNiveauContamination();
     lieuActuel.setNiveauContamination(total);
   }
 }
  /**
   * Regle 4
   *
   * @param
   * @return Un citoyen en se deÃÅplacÃßant voit son niveau de contamination augmenter seulement de
   *     2% du niveau de contamination du lieu sur lequel il arrive et de 5% s'il reste sur la
   *     meÃÇme case.
   */
  public static void regle4(AbstractPerson p, AbstractCase cDest, boolean deplacee) {
    double niveauContaminationPersonne = p.getNiveauContamination();
    double niveauContaminationLieu = cDest.getNiveauContamination();
    if (deplacee) { /// 2%
      double deuxPourcentsDuLieu = 0.02 * niveauContaminationLieu;

      double result =
          ProbabilityManager.augmentation(niveauContaminationPersonne, deuxPourcentsDuLieu);
      p.setNiveauContamination(result);

    } else { /// 5%
      double cinqPourcentsDuLieu = 0.05 * niveauContaminationLieu;
      double result =
          ProbabilityManager.augmentation(niveauContaminationPersonne, cinqPourcentsDuLieu);
      p.setNiveauContamination(result);
    }
  }
  /**
   * Regle 5
   *
   * @param
   * @return Un citoyen en se déplaçant voit son niveau de contamination augmenter seulement de 2%
   *     du niveau de contamination du lieu sur lequel il arrive et de 5% s'il reste sur la même
   *     case. Un citoyen contaminé augmente de 1%, de son niveau de contamination, celui du lieu
   *     sur lequel il est situé (une caserne à un niveau de contamination toujours nulle et un
   *     hôpital ne répercute que 1⁄4 de l'augmentation grâce aux conditions d'hygiène
   *     élevées).
   */
  public static void regle5(AbstractCase lieuActuel, AbstractPerson p) {

    double niveauContaminationPersonne = p.getNiveauContamination();
    double niveauContaminationLieu = lieuActuel.getNiveauContamination();

    double unPourcentDuLieu = 0.01 * niveauContaminationLieu;
    double result = ProbabilityManager.augmentation(niveauContaminationPersonne, unPourcentDuLieu);
    ;

    if (p instanceof Pompier) {
      result /= 10.0;
    }

    if (lieuActuel instanceof Caserne) {
      /// ba ... rien
      return;
    } else if (lieuActuel instanceof Hospital) {
      result *= (1 / 4);
    }
    p.setNiveauContamination(result);
  }