public long getWinExperience(PlayerFighter fighter, int winTeamLevel, int loseTeamLevel) {
    if (Config.RATE_DEFIANCE.getValue() <= 0) return 0;

    double fact = loseTeamLevel / winTeamLevel;
    fact *= Config.RATE_DEFIANCE.getValue();
    fact *= (10 / fighter.getLevel()) + 1;
    fact *=
        (double)
            (((double) fighter.getPlayer().getTotalStats().get(Stats.Element.SAGESSE) / 100)
                + (double) 1);

    Pair<Experience, Experience> xps = ExperienceHandler.instance().getLevel(fighter.getLevel());
    long inter = xps.getSecond().player - xps.getFirst().player;

    long ret = (long) (Utils.randLong((long) (0.01 * inter), (long) (0.1 * inter)) * fact);

    if (ret < 0) ret = 0;

    return ret;
  }
  @Override
  public FightButtin makeButtin(
      DefianceFight fight,
      PlayerFighter fighter,
      FightTeam winners,
      Collection<FightTeam> loosers) {
    int loosersLevel = 0;

    for (FightTeam team : loosers) loosersLevel += team.getTeamLevel();

    if (fighter.getTeam() == winners)
      return new FightButtin(
          0,
          getWinExperience(fighter, winners.getTeamLevel(), loosersLevel),
          new HashSet<Pair<Integer, Integer>>());

    return FightButtin.emptyButtin();
  }