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.
 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.
 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.
![[Image: SP1-Scripter.png]](https://www.save-point.org/images/userbars/SP1-Scripter.png)
![[Image: SP1-Writer.png]](https://www.save-point.org/images/userbars/SP1-Writer.png)
![[Image: SP1-Poet.png]](https://www.save-point.org/images/userbars/SP1-Poet.png)
![[Image: SP1-PixelArtist.png]](https://www.save-point.org/images/userbars/SP1-PixelArtist.png)
![[Image: SP1-Reporter.png]](https://i.postimg.cc/GmxWbHyL/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!
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.
![[Image: SP1-Scripter.png]](https://www.save-point.org/images/userbars/SP1-Scripter.png)
![[Image: SP1-Writer.png]](https://www.save-point.org/images/userbars/SP1-Writer.png)
![[Image: SP1-Poet.png]](https://www.save-point.org/images/userbars/SP1-Poet.png)
![[Image: SP1-PixelArtist.png]](https://www.save-point.org/images/userbars/SP1-PixelArtist.png)
![[Image: SP1-Reporter.png]](https://i.postimg.cc/GmxWbHyL/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!

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

 
 
 What's up, RMers?
 What's up, RMers?
 

