// Mob combat private functions
  private void attemptGiveBattleWinnings(
      String guild, Player playerLooter, RpgMonster rpgMobDefender) {
    List<RpgPlayer> recipients = new ArrayList<RpgPlayer>();
    double baseCash;
    double baseExp;
    double donatorBaseCash;
    double donatorBaseExp;
    double cash;
    double exp;
    double guildBonus = 1;
    int powerLevelPrevention = FC_Rpg.balanceConfig.getPowerLevelPrevention();
    boolean checkPowerLeveling;

    if (rpgMobDefender.getIsBoss()) checkPowerLeveling = false;
    else checkPowerLeveling = (powerLevelPrevention > -1);

    if (guild != null) {
      recipients = FC_Rpg.rpgEntityManager.getNearbyPartiedRpgPlayers(playerLooter, 50);
      guildBonus = FC_Rpg.guildConfig.getGuildBonus(recipients.size());
    } else recipients.add(FC_Rpg.rpgEntityManager.getRpgPlayer(playerLooter));

    // Determine base amount of cash and experience to give.
    baseCash = rpgMobDefender.baseCash * FC_Rpg.eventCashMultiplier;
    baseExp = rpgMobDefender.baseExp * FC_Rpg.eventExpMultiplier;

    // Add in guild bonus if there is one.
    if (guildBonus > 1) {
      baseCash *= guildBonus;
      baseExp *= guildBonus;
    }

    // For slimes we reduce the gold and exp based on size.
    if (rpgMobDefender.getEntity() instanceof Slime) {
      Slime slime = (Slime) rpgMobDefender.getEntity();
      int slimeSize = slime.getSize();

      if (slimeSize == 2) {
        baseExp *= .25;
        baseCash *= .25;
      } else if (slimeSize == 1) {
        baseExp *= .125;
        baseCash *= .125;
      }
    }

    donatorBaseCash = baseCash * (1 + FC_Rpg.generalConfig.getDonatorLootBonusPercent());
    donatorBaseExp = baseExp * (1 + FC_Rpg.generalConfig.getDonatorLootBonusPercent());

    // If we check power leveling and the player isn't solo, then...
    if (checkPowerLeveling && recipients.size() != 1) {
      // Variable Declaration
      RpgPlayer rPlayer = FC_Rpg.rpgEntityManager.getRpgPlayer(playerLooter);

      // Check to see if killer is too strong to give exp.
      // Mob Level - Player Level = levelDifference : Positive = Mob stronger, negative = mob
      // weaker.
      if (rpgMobDefender.getLevel() - rPlayer.playerConfig.getClassLevel() > powerLevelPrevention) {
        rPlayer.attemptMonsterOutOfRangeNotification();
        return;
      } else if (rpgMobDefender.getLevel() - rPlayer.playerConfig.getClassLevel()
          < powerLevelPrevention * -1) {
        MessageLib msgLib = new MessageLib(rPlayer.getPlayer());
        msgLib.standardError("You annhilated the monster so brutally most loot was destroyed.");
        return;
      }
    }

    for (RpgPlayer rpgLooter : recipients) {
      // Set up loot amounts.
      if (rpgLooter.playerConfig.isDonator()) {
        cash = donatorBaseCash;
        exp = donatorBaseExp;
      } else {
        cash = baseCash;
        exp = baseExp;
      }

      if (rpgLooter.playerConfig.getStatusActiveRpgPlayer(SpellEffect.BONUS_EXPERIENCE.getID()))
        exp *= rpgLooter.playerConfig.getStatusMagnitude(SpellEffect.BONUS_EXPERIENCE.getID());

      if (rpgLooter.playerConfig.getStatusActiveRpgPlayer(SpellEffect.BONUS_GOLD.getID()))
        exp *= rpgLooter.playerConfig.getStatusMagnitude(SpellEffect.BONUS_GOLD.getID());

      rpgLooter.playerConfig.addGold(cash);
      rpgLooter.addClassExperience(exp, true);

      // Send a message to the player showing experience and loot gains.
      rpgLooter.attemptMonsterDeathNotification(rpgMobDefender.getLevel(), exp, cash);
    }
  }