I had been working on expanding the features available in a non published version 0.4.0 of my KPartyActors XP script.
Blame Wulfo for what I am going to tell you next.
I got semi inspired by Bleach and its shikai? and bankai transformations. Thus I added kai_level, kai_level_max and kp properties to Game_Actor aka the Actor's Class that represents heroes in game. You can also reset_reishi at will for any good or evil reason.
The script should be able to handle the actor's transformations on its own by just calling the kai_level_up! or kai_level_down! methods at any given point.
Obviously the actor, who might be pretending to be an actual soul reaper like character, will need to acquire new skills TEMPORARILY. I think I have taken care of that by aliasing the default skills method and letting you predefine a list of skills for each kai_level going from reaper to shikai and ending with bankai. You can still add new skills during gameplay if given the chance. The rationale behind this would be that characters like Rukia Kuchiki that were able to cast two spells aka skills inspired by the moon in her zanpakto's shikai form. This means that I had to keep that option open...
I guess that if any of you will soon tell me stuff like "why are you doing that anyway?" and the only answer you will ever get is why not guys?
Plus take into consideration that similar scripts or solutions would simply offer a new "set of skills" instead of temporarily increasing the available skillset depending on the actor's current level of... anything like the kai_level in my case.
Of course, I lack any graphics that might help me take care of the transformations visually. Thus I only implemented methods that handle the actor's battler.
So what do you think about my ideas?
Is there anything I haven't considered so far?
Or is there any suggestions of yours that are worth of posting them here?
Here is the script!
Blame Wulfo for what I am going to tell you next.
I got semi inspired by Bleach and its shikai? and bankai transformations. Thus I added kai_level, kai_level_max and kp properties to Game_Actor aka the Actor's Class that represents heroes in game. You can also reset_reishi at will for any good or evil reason.
The script should be able to handle the actor's transformations on its own by just calling the kai_level_up! or kai_level_down! methods at any given point.
Obviously the actor, who might be pretending to be an actual soul reaper like character, will need to acquire new skills TEMPORARILY. I think I have taken care of that by aliasing the default skills method and letting you predefine a list of skills for each kai_level going from reaper to shikai and ending with bankai. You can still add new skills during gameplay if given the chance. The rationale behind this would be that characters like Rukia Kuchiki that were able to cast two spells aka skills inspired by the moon in her zanpakto's shikai form. This means that I had to keep that option open...
I guess that if any of you will soon tell me stuff like "why are you doing that anyway?" and the only answer you will ever get is why not guys?
Plus take into consideration that similar scripts or solutions would simply offer a new "set of skills" instead of temporarily increasing the available skillset depending on the actor's current level of... anything like the kai_level in my case.
Of course, I lack any graphics that might help me take care of the transformations visually. Thus I only implemented methods that handle the actor's battler.
So what do you think about my ideas?
Is there anything I haven't considered so far?
Or is there any suggestions of yours that are worth of posting them here?
Here is the script!
Code:
# * KPartyActors XP
# Scripter : Kyonides Arkanthes
# v0.4.0 - 2022-01-11
# Requires: FixedArray
# Leveling up an actor will depend on your current party's level.
# EXP does not affect an actor's level so it can be used as a
# secondary ingame currency now.
# This script also features the kustom_skills and battle_skills!
# kustom_skills are skills the player have purchased that were not supposed
# to be learned by a given actor.
# battle_skills are a subset of all of the skills learned by any actor.
# * Overwritten Methods * #
# - Game_Actor class
# exp= level= skills skill_learn?
# - Window_Skill class
# refresh
# * Script Calls * #
# - Change current Party's Level
# $game_party.level = NewLevel
# $game_party.level += Levels
# $game_party.level -= Levels
# - Change Party's Maximum Level
# $game_party.level_max = NewLevelMax
# $game_party.level_max += MoreLevels
# $game_party.level_max -= LessLevels
# - Toggle Freezing of Level Up feature
# Default Value: false
# $game_party.freeze_level_up = true *or* false
# - Get a Party Member - Prerequisite
# actor = $game_party.actors[Index]
# - Get Current Maximum Number of the extra sets of Skills
# actor.kustom_skills_max
# actor.battle_skills_max
# actor.shikai_skills_max
# actor.bankai_skills_max
# - Set New Maximum Number of the extra sets of Skills
# actor.kustom_skills.maxsize = +Number
# actor.battle_skills.maxsize = +Number
# actor.shikai_skills.maxsize = +Number
# actor.bankai_skills.maxsize = +Number
# - Add New Kustom Skill or Battle Skill
# Returns either a new array or the old one if it remained the same.
# actor.add_kustom_skill(SkillID)
# actor.add_battle_skill(SkillID)
# - Add New Shikai or Bankai Skills
# actor.add_shikai_skills(SkillID1, etc.)
# actor.add_bankai_skills(SkillID1, etc.)
# - Learn Reaper or Shikai or Bankai state
# actor.learn_reaper!
# actor.learn_shikai!
# actor.learn_bankai!
# - Learned Reaper or Shikai or Bankai state?
# actor.learn_reaper?
# actor.learn_shikai?
# actor.learn_bankai?
# - Toggle Reaper or Shikai or Bankai
# It will automatically change the Current Actor's Battler.
# actor.reaper_active = true *or* false
# actor.shikai_active = true *or* false
# actor.bankai_active = true *or* false
# - Reset Actor's Kai Level and Kai Level Max and Reishi Points RP attributes
# actor.reishi_reset
module KParty
LEVEL_MAX = 20
LVLS_PER_PARTY_LVL = 3
KUSTOM_SKILL_MAX = 1
BATTLE_SKILL_MAX = 5
# Set Reaper's and Shikai's and Bankai's File Name Extensions
KAI_BATTLER_EXT = ["_reaper", "_shikai", "_bankai"]
# OPTIONAL - You can Preset Default Reaper and Shikai and Bankai Battler Hues
# ActorID => [BattlerHue1, BattlerHue2, BattlerHue3]
KAI_BATTLER_HUE = {}
KAI_BATTLER_HUE.default = [0, 0, 0] # Do Not Edit This Line!
# OPTIONAL - You can Preset Default Reaper and Shikai and Bankai Skills
# ActorID => [SkillID1, etc.], etc.
KAI_SKILLS = {}
KAI_SKILLS.default = [[], [], []] # Do Not Edit This Line!
end
class Game_Party
alias :kyon_party_lvl_gm_pty_init :initialize
def initialize
kyon_party_lvl_gm_pty_init
@freeze_level_up = false
@level_max = KParty::LEVEL_MAX
@level = 0
end
def level=(n)
return @level if @freeze_level_up and @level < n
@level = [[0, @level].max, @level_max].min
end
def actor_level_max() KParty::LVLS_PER_PARTY_LVL * (@level + 1) end
attr_reader :level
attr_accessor :level_max, :freeze_level_up
end
class Game_Actor
alias :kyon_party_lvl_gm_actor_setup :setup
alias :kyon_party_lvl_gm_actor_skills :skills
def setup(actor_id)
kyon_party_lvl_gm_actor_setup(actor_id)
ext = KParty::KAI_BATTLER_EXT
hue = KParty::KAI_BATTLER_HUE[actor_id]
@kai_battler_names = [@battler_name, @battler_name + ext[0]]
@kai_battler_names << @battler_name + ext[1] << @battler_name + ext[2]
@kai_battler_hues = [@battler_hue, @battler_hue + hue[0]]
@kai_battler_hues << @battler_hue + hue[1] << @battler_hue + hue[2]
@kustom_skills = FixedArray.new(KParty::KUSTOM_SKILL_MAX)
@battle_skills = FixedArray.new(KParty::BATTLE_SKILL_MAX)
@kai_skills = FixedArray.new(4, nil)
kai_sk = KParty::KAI_SKILLS[actor_id]
kai_sk.each{|ks| set_kai_skills(ks) }
reset_reishi
end
def set_kai_skills(new_skills)
@kai_skills << FixedArray.new(new_skills.size) + new_skills
end
def reset_reishi
self.kai_level_max = 0
@rp = 0
end
def level=(n)
n = [[n, db_actor.final_level].min, 1].max
@level = $game_party.actor_level_max < n ? @level : n
end
def skills
if $game_temp.in_battle
ids = @battle_skills
else
ids = kyon_party_lvl_gm_actor_skills + @kustom_skills || []
end
ids += @kai_skills[1] if use_reaper?
ids += @kai_skills[2] if use_shikai?
ids += @kai_skills[3] if use_bankai?
ids
end
def set_current_battler
@battler_name = @kai_battler_names[@kai_level]
@battler_hue = @kai_battler_hues[@kai_level]
end
def kai_level=(n)
@kai_level = [[0, n].max, @kai_level_max].min
set_current_battler
@kai_level
end
def kai_level_max=(n)
@kai_level_max = [[0, n].max, 3].min
self.kai_level = @kai_level_max if @kai_level > @kai_level_max
@kai_level_max
end
def kai_level_up!() self.kai_level = @kai_level + 1 end
def kai_level_down!() self.kai_level = @kai_level - 1 end
def rp=(n) @rp = [[0, n].max, 100].min end
def no_reaper?() @kai_level_max == 0 end
def learn_reaper?() @kai_level_max >= 1 end
def learn_shikai?() @kai_level_max >= 2 end
def learn_bankai?() @kai_level_max == 3 end
def learn_reaper!() @kai_level_max = 1 if no_reaper? end
def learn_shikai!() @kai_level_max = 2 if @kai_level_max < 2 end
def learn_bankai!() @kai_level_max = 3 if learn_shikai? and !learn_bankai? end
def use_reaper?() learn_reaper? and @kai_level < 1 and @rp > 20 end
def use_shikai?() learn_shikai? and @kai_level < 2 and @rp > 50 end
def use_bankai?() learn_bankai? and @kai_level < 3 and @rp > 70 end
def db_actor() $data_actors[@actor_id] end
def exp=(n) @exp = [n, 0].max end
def skill_learn?(skill_id) self.skills.include?(skill_id) end
def add_kustom_skill(skill_id) @kustom_skills << skill_id end
def add_battle_skill(skill_id) @battle_skills << skill_id end
def add_kai_skill(lvl, skill_id) @kai_skills[lvl] << skill_id end
def add_kai_skills(lvl, *skill_ids) @kai_skills[lvl] += skill_ids end
def kustom_skills_max() @kustom_skills.maxsize end
def battle_skills_max() @battle_skills.maxsize end
def reaper_skills_max() @kai_skills[1].maxsize end
def shikai_skills_max() @kai_skills[2].maxsize end
def bankai_skills_max() @kai_skills[3].maxsize end
def kai_skills_max() @kai_skills[@kai_level].maxsize end
def class_learnings() $data_classes[@class_id].learnings end
attr_reader :kustom_skills, :battle_skills, :kai_skills
attr_reader :kai_level_max, :kai_level, :rp
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.
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