10-02-2024, 06:21 AM
(This post was last modified: 10-19-2024, 11:15 PM by kyonides.
Edit Reason: Updated #5
)
KAftermathSpoils XP
by Kyonides
Introduction
The title tells you what this scriptlet is all about: healing based on the battle aftermath.
How does it work?
It's very simple! Just set the values of a series of ranges, i.e.
Code:
HP_TOTAL_TURNS[min_value..max_value] = 100
...and the system will check how many turns it actually took you to defeat your opponents.
Did you need 11 turns to defeat some ghosts?
Was there a range like 10..20 included in your hash?
Does that range store 75 as its current value?
Then you already know the answer here: it will pick that very same range and assign your heroes a 75% HP recovery rate!
The Script
Healing + Gold
Code:
# * KAftermathSpoils XP * #
# Scripter : Kyonides Arkanthes
# v0.4.0 - 2024-10-19
# This script lets you automatically heal your heroes after winning a battle
# based on the number of battle turns.
module KBattle
# Leave these hashes alone!
HP_TOTAL_TURNS = {}
SP_TOTAL_TURNS = {}
GOLD_TOTAL_TURNS = {}
# If it took too long to defeat the enemy troopers...
HP_TOTAL_TURNS.default = 0
SP_TOTAL_TURNS.default = 0
GOLD_TOTAL_TURNS.default = 0
# Add as many Ranges, i.e. 1..50 as necessary:
HP_TOTAL_TURNS[1..6] = 100
HP_TOTAL_TURNS[7..17] = 75
HP_TOTAL_TURNS[18..35] = 50
HP_TOTAL_TURNS[36..60] = 25
SP_TOTAL_TURNS[1..5] = 100
SP_TOTAL_TURNS[6..15] = 75
SP_TOTAL_TURNS[16..30] = 50
SP_TOTAL_TURNS[31..50] = 25
GOLD_TOTAL_TURNS[1..2] = 150
GOLD_TOTAL_TURNS[3..6] = 120
GOLD_TOTAL_TURNS[7..10] = 100
GOLD_TOTAL_TURNS[11..13] = 80
GOLD_TOTAL_TURNS[14..17] = 60
end
class Range
def <=>(other)
to_a <=> other.to_a
end
end
class Scene_Battle
alias :kyon_btl_score_scn_btl_start_ph5 :start_phase5
def process_aftermath_healing
@gold_before = $game_party.gold
hp_perc = sp_perc = 0
turns = $game_temp.battle_turn
KBattle::HP_TOTAL_TURNS.sort.reverse.each do |min_turns, percent|
next unless min_turns.include?(turns)
hp_perc = percent
break
end
KBattle::SP_TOTAL_TURNS.sort.reverse.each do |min_turns, percent|
next unless min_turns.include?(turns)
sp_perc = percent
break
end
$game_party.actors.each do |actor|
next if actor.hp0?
actor.hp += actor.maxhp * hp_perc / 100
actor.sp += actor.maxsp * sp_perc / 100
end
end
def start_phase5
process_aftermath_healing
kyon_btl_score_scn_btl_start_ph5
process_aftermath_gold
end
def process_aftermath_gold
prize = $game_party.gold - @gold_before
return if prize == 0
gp_perc = 0
KBattle::GOLD_TOTAL_TURNS.sort.reverse.each do |min_turns, percent|
next unless min_turns.include?(turns)
gp_perc = percent
break
end
extra_gold = prize * gp_perc / 100
$game_party.gain_gold(extra_gold)
end
end
Just Healing
Code:
# * KAftermathHealing XP * #
# Scripter : Kyonides Arkanthes
# v0.3.1 - 2024-10-01
# This script lets you automatically heal your heroes after winning a battle
# based on the number of battle turns.
module KBattle
# Leave these hashes alone!
HP_TOTAL_TURNS = {}
SP_TOTAL_TURNS = {}
# If it took too long to defeat the enemy troopers...
HP_TOTAL_TURNS.default = 0
SP_TOTAL_TURNS.default = 0
# Add as many Ranges, i.e. 1..50 as necessary:
HP_TOTAL_TURNS[1..6] = 100
HP_TOTAL_TURNS[7..17] = 75
HP_TOTAL_TURNS[18..35] = 50
HP_TOTAL_TURNS[36..60] = 25
SP_TOTAL_TURNS[1..5] = 100
SP_TOTAL_TURNS[6..15] = 75
SP_TOTAL_TURNS[16..30] = 50
SP_TOTAL_TURNS[31..50] = 25
end
class Range
def <=>(other)
to_a <=> other.to_a
end
end
class Scene_Battle
alias :kyon_btl_score_scn_btl_start_ph5 :start_phase5
def process_aftermath_healing
hp_perc = sp_perc = 0
turns = $game_temp.battle_turn
KBattle::HP_TOTAL_TURNS.sort.reverse.each do |min_turns, percent|
next unless min_turns.include?(turns)
hp_perc = percent
break
end
KBattle::SP_TOTAL_TURNS.sort.reverse.each do |min_turns, percent|
next unless min_turns.include?(turns)
sp_perc = percent
break
end
$game_party.actors.each do |actor|
next if actor.hp0?
actor.hp += actor.maxhp * hp_perc / 100
actor.sp += actor.maxsp * sp_perc / 100
end
end
def start_phase5
process_aftermath_healing
kyon_btl_score_scn_btl_start_ph5
end
end
Terms & Conditions
Free for use in ANY game.
Due credit is mandatory!
Include this forum in your game credits as well!
That's it!
"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.
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!
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
Maranatha!
The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.
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!
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