General Methods XP VX & ACE
#13
BattleEnd XP

I thought that offering you another option for improving the Party's Victory processing stage was something very convenient for everybody.

What this scriptlet does is simple:

It rewrites the Scene_Battle#start_phase5 by subdividing it into several other methods that handle very specific stuff.

Then I added a Game Variable and a Game Switch to alter its normal behavior.

The Game Variable handles how much EXP your heroes will get.
  • 0 stands for EXP divided by Total Heroes
  • 1 stands for EXP divided by Total Heroes * 2
  • 2 stands for Full EXP
The Game Switch defines if the Party will get the whole list of Treasures.

The Party will only get up to 5 Treasures if the Game Switch is OFF.

Code:
# * BattleEnd XP * #
#  Scripter : Kyonides Arkanthes
#  2023-06-16

# - Values for VAR_FULL_EXP Game Variable:
# 0 - EXP divided by Total Heroes
# 1 - EXP divided by Total Heroes * 2 (Punishment)
# 2 - Full EXP (Reward)

# - SWITCH_ALL_TREASURES Game Switch allows you to let the party get all of
#  the treasures they have earned instead of just 5 of them.

module BattleEnd
  VAR_FULL_EXP = 1
  SWITCH_ALL_TREASURES = 1
end

class Scene_Battle
  def start_phase5
    @phase = 5
    $game_system.me_play($game_system.battle_end_me)
    $game_system.bgm_play($game_temp.map_bgm)
    process_exp_gold_treasures
    limit_treasures
    distribute_treasures
    distribute_exp_gold
  end

  def process_exp_gold_treasures
    @exp = 0
    @gold = 0
    @treasures = []
    for enemy in $game_troop.enemies
      next if enemy.hidden
      @exp += enemy.exp
      @gold += enemy.gold
      if rand(100) < enemy.treasure_prob
        if enemy.item_id > 0
          @treasures << $data_items[enemy.item_id]
        elsif enemy.weapon_id > 0
          @treasures << $data_weapons[enemy.weapon_id]
        elsif enemy.armor_id > 0
          @treasures << $data_armors[enemy.armor_id]
        end
      end
    end
  end

  def limit_treasures
    return if $game_variables[BattleEnd::SWITCH_ALL_TREASURES]
    @treasures = @treasures[0..5]
  end

  def gain_treasure(item_id)
    case item
    when RPG::Item
      $game_party.gain_item(item.id, 1)
    when RPG::Weapon
      $game_party.gain_weapon(item.id, 1)
    when RPG::Armor
      $game_party.gain_armor(item.id, 1)
    end
  end

  def distribute_treasures
    @treasures.each {|treasure| gain_treasure(treasure.id) }
  end

  def distribute_exp(actor)
    case $game_variables[BattleEnd::VAR_FULL_EXP]
    when 0
      @final_exp = @exp / $game_party.actors.size
      actor.exp += @final_exp
    when 1
      @final_exp = @exp / $game_party.actors.size / 2
      actor.exp += @final_exp
    when 2
      @final_exp = @exp
      actor.exp += @exp
    end
  end

  def distribute_exp_gold
    $game_party.actors.each_with_index do |actor, i|
      next if actor.cant_get_exp?
      last_level = actor.level
      distribute_exp(actor)
      @status_window.level_up(i) if actor.level > last_level
    end
    $game_party.gain_gold(@gold)
    @result_window = Window_BattleResult.new(@final_exp, @gold, @treasures)
    @phase5_wait_count = 100
  end
end
"For God has not destined us for wrath, but for obtaining salvation through our Lord Jesus Christ," 1 Thessalonians 5:9

Maranatha!

The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.

[Image: SP1-Scripter.png]
[Image: SP1-Writer.png]
[Image: SP1-Poet.png]
[Image: SP1-PixelArtist.png]
[Image: SP1-Reporter.png]

My Original Stories (available in English and Spanish)

List of Compiled Binary Executables I have published...
HiddenChest & Roole

Give me a free copy of your completed game if you include at least 3 of my scripts! Laughing + Tongue sticking out

Just some scripts I've already published on the board...
KyoGemBoost XP VX & ACE, RandomEnkounters XP, KSkillShop XP, Kolloseum States XP, KEvents XP, KScenario XP & Gosu, KyoPrizeShop XP Mangostan, Kuests XP, KyoDiscounts XP VX, ACE & MV, KChest XP VX & ACE 2016, KTelePort XP, KSkillMax XP & VX & ACE, Gem Roulette XP VX & VX Ace, KRespawnPoint XP, VX & VX Ace, GiveAway XP VX & ACE, Klearance XP VX & ACE, KUnits XP VX, ACE & Gosu 2017, KLevel XP, KRumors XP & ACE, KMonsterPals XP VX & ACE, KStatsRefill XP VX & ACE, KLotto XP VX & ACE, KItemDesc XP & VX, KPocket XP & VX, OpenChest XP VX & ACE
Reply }


Messages In This Thread
General Methods XP VX & ACE - by kyonides - 10-23-2019, 11:23 PM
RE: General Methods XP - by kyonides - 07-06-2020, 04:24 AM
RE: General Methods XP - by kyonides - 08-02-2020, 02:39 AM
RE: General Methods XP - by kyonides - 08-22-2020, 03:01 AM
RE: General Methods XP - by kyonides - 12-31-2021, 08:50 PM
RE: General Methods XP VX & ACE - by kyonides - 03-30-2022, 07:35 PM
RE: General Methods XP VX & ACE - by kyonides - 11-11-2022, 01:04 AM
RE: General Methods XP VX & ACE - by kyonides - 11-17-2022, 11:31 PM
RE: General Methods XP VX & ACE - by kyonides - 12-02-2022, 04:33 AM
RE: General Methods XP VX & ACE - by kyonides - 03-08-2023, 08:22 AM
RE: General Methods XP VX & ACE - by kyonides - 05-16-2023, 08:24 PM
RE: General Methods XP VX & ACE - by kyonides - 06-01-2023, 08:59 PM
RE: General Methods XP VX & ACE - by kyonides - 06-17-2023, 02:55 AM



Users browsing this thread: 2 Guest(s)