01-13-2022, 05:57 AM (This post was last modified: 01-18-2022, 05:30 AM by kyonides.
Edit Reason: Updated
)
KBankai XP version 0.6.0
by Kyonides Arkanthes
Introduction
This script isn't really about performing a bankai like Bleach skill but to let players watch their heroes transform into another database actor aka hero. No, there is no need to use any common event at all.
Features
It allows you to perform the transformation from human to soul reaper by demanding a soul reaper's pass as an accessory to be equipped by then. Of course, you will need reishi points, not related to special or mana points. Your heroes can gain RP by simply waiting or they can increase their intake by walking around.
By the way, the system should also let your character become a hollow or hueco in Spanish.
Yeah, Hueco Mundo, that should have been Mundo Hueco instead, actually means hollow or void world.
So far hollows only need some reishi to be able to fully transform.
Contrary to any Bleach manga issue or anime episode, this script also provides you with a very simple menu displaying some basic data that will help you learn why your soul reaper transformation has failed or you cannot summon your zanpakto's shikai and bankai stages.
Vital Piece of Information
Keep in mind that you will to create a copy of your soul reaper-able and hollow-fiable actors in the Actors database. First define the wannabe soul reapers and then their soul reaper counterparts, followed by the wannabe hollows and their hollowfied doubles.
# This scriptlet allows you to transform your actors aka heroes into
# soul reapers or hollows. After the conversion they will retain their human
# skills and states but not their weapons nor pieces of armor.
# A soul reaper might be unable to transform if he has been afflicted by some
# negative state. On the other hand, a hollow needs to get a specific state if
# he wants to get emotionally unstable enough as to trigger the transformation.
# If the actor's SP reach 0, he will devolve from his shikai or bankai stage.
# * Script Calls * #
# - Open the Reishi Test Menu Scene
# $scene = KBankai::StatusScene.new
# - Get a Party Member - Prerequisite
# actor = $game_party.actors[Index]
# - Increase or Decrease an Actor's Maximum Spirit Level
# actor.spirit_grow!
# actor.spirit_sink!
# - Reset Actor's Reishi Points - use it if you are an evil game developer!
# actor.reset_reishi
# - Toggle Freezing of the Soul Reaper or Hollow Transformation or
# the Shikai or Bankai Stage
# actor.convert_disabled = true *or* false
# actor.shikai_disabled = true *or* false
# actor.bankai_disabled = true *or* false
# - Is the actor unable to transform due to lack of spiritual power?
# actor.always_human?
class Game_Battler
alias :kyon_bankai_gm_btlr_skill_fx :skill_effect
def skill_effect(user, skill)
if user.actor?
case skill.id
when KBankai::CONVERT_SKILL_ID
return become_spirit(skill.sp_cost)
when KBankai::SHIKAI_SKILL_ID
return unleash_some_kai(skill.sp_cost)
when KBankai::BANKAI_SKILL_ID
return unleash_some_kai(skill.sp_cost)
when KBankai::DEVOLVE_SKILL_ID
return devolve_spirit_stage
end
end
kyon_bankai_gm_btlr_skill_fx(user, skill)
end
def is_spirit?() is_reaper? or is_hollow? end
def human_skill?(sid) human_skills.include?(sid) end
def actor?() @actor_id != nil end
def enemy?() @enemy_id != nil end
end
class Game_Actor
alias :kyon_bankai_gm_actor_setup :setup
alias :kyon_bankai_gm_actor_states :states
alias :kyon_bankai_gm_actor_skills :skills
alias :kyon_bankai_gm_actor_skuse? :skill_can_use?
def setup(actor_id)
@human_skills = []
@human_states = []
kyon_bankai_gm_actor_setup(actor_id)
@reishi_points = KBankai::START_REISHI_PTS
@spirit_lvl_max = KBankai::START_SPIRIT_LEVEL_MAX[actor_id]
if is_reaper? and @spirit_lvl_max > 0
set_pre_reaper_skills
elsif is_hollow? and @spirit_lvl_max > 0
set_pre_hollow_skills
else
reset_reishi
@human_id = @actor_id
end
end
def sp=(n)
super(n)
devolve_spirit_stage!
@sp
end
def copy_human_data
actor = $game_actors[@human_id]
@human_skills = actor.skills
@human_states = actor.states
end
def reset_reishi
@spirit_lvl = 0
@reishi_points = 0
end
def increase_reishi
return if @spirit_lvl_max == 0 or Graphics.frame_count % 10 > 0
@reishi_points += KBankai::REISHI_POINTS_PER_STEP
end
def spiritual_class
if wannabe_reaper? or is_reaper?
KBankai::SOUL_REAPER
elsif wannabe_hollow? or is_hollow?
KBankai::JUST_HOLLOW
else
KBankai::NO_SPECIAL_POWER
end
end
def can_convert?
return false if @convert_disabled or always_human?
if wannabe_reaper?
return false if state?(KBankai::PREVENT_REAPER_STATE_ID)
return false unless has_reaper_pass?
return KBankai::MIN_REAPER_R_PTS <= @reishi_points
elsif wannabe_hollow?
return false unless state?(KBankai::BECOME_HOLLOW_STATE_ID)
return KBankai::MIN_HOLLOW_R_PTS <= @reishi_points
end
false
end
def use_reaper_skill?(skill_id)
case skill_id
when KBankai::CONVERT_SKILL_ID
return false unless is_human? and can_convert?
when KBankai::SHIKAI_SKILL_ID
return false unless is_reaper? and !@shikai_disabled
return false if @spirit_lvl_max < 2
when KBankai::BANKAI_SKILL_ID
return false unless is_reaper? and !bankai_blocked?
return false if @spirit_lvl_max < 3
when KBankai::DEVOLVE_SKILL_ID
return false if is_human?
end
true
end
def skill_can_use?(skill_id)
return false unless use_reaper_skill?(skill_id)
kyon_bankai_gm_actor_skuse?(skill_id)
end
def devolve_spirit_stage!
return if @sp > 0 or is_human?
if @spirit_lvl > 1
@spirit_lvl = 1
change_reaper_weapon
end
@sp = maxsp
$game_party.devolve_pending = true
$game_party.replace_actor(self.index, $game_actors[@human_id])
end
def devolve_spirit_stage
$game_party.devolve_pending = true
if @spirit_lvl == 1
$game_party.replace_actor(self.index, $game_actors[@human_id])
return
elsif @spirit_lvl > 1
@spirit_lvl -= 1
change_reaper_weapon
end
end
def spirit_lvl_max=(n) @spirit_lvl_max = [[0, n].max, @top_spirit_lvl].min end
def spirit_lvl=(n) @spirit_lvl = [[0, n].max, @spirit_lvl_max].min end
def states() kyon_bankai_gm_actor_states + @human_states end
def state?(state_id) (@states + @human_states).include?(state_id) end
def skills() kyon_bankai_gm_actor_skills + @human_skills end
def skill_learn?(skill_id) self.skills.include?(skill_id) end
def is_human?() @spirit_lvl == 0 end
def ethereal?() @spirit_lvl > 0 end
def is_reaper?() KBankai.is_reaper?(@actor_id) end
def is_hollow?() KBankai.is_hollow?(@actor_id) end
def wannabe_reaper?() KBankai.wannabe_reaper?(@actor_id) end
def wannabe_hollow?() KBankai.wannabe_hollow?(@actor_id) end
def has_reaper_pass?() KBankai::REAPER_PASS_AID == @armor4_id end
def reaper_level?() @spirit_lvl >= 1 end
def shikai_level?() @spirit_lvl >= 2 end
def bankai_level?() @spirit_lvl == 3 end
def shikai_works?() !@shikai_disabled end
def bankai_works?() !@bankai_disabled end
def bankai_blocked?() @shikai_disabled or @bankai_disabled end
def always_human?() @spirit_lvl_max == 0 end
def spirit_grow!() @spirit_lvl_max += 1 end
def spirit_sink!() @spirit_lvl_max -= 1 end
attr_reader :human_skills, :human_id, :spirit_lvl_max, :spirit_lvl
attr_accessor :convert_disabled, :shikai_disabled, :bankai_disabled
attr_accessor :reishi_points
end
class Game_Enemy
def is_reaper?() false end
def is_hollow?() true end
def is_human?() false end
def always_human?() false end
end
class Game_Party
alias :kyon_bankai_gm_pty_inc_steps :increase_steps
def increase_reishi
@actors.each{|actor| actor.increase_reishi }
end
def increase_steps
increase_reishi
kyon_bankai_gm_pty_inc_steps
end
def replace_actor(pos, actor)
@actors[pos] = actor
$game_player.refresh
end
attr_accessor :convert_pending, :devolve_pending
end
class Game_Player
alias :kyon_bankai_gm_plr_up :update
alias :kyon_bankai_gm_plr_ref :refresh
def update
kyon_bankai_gm_plr_up
$game_party.increase_reishi
end
def refresh
kyon_bankai_gm_plr_ref
if $game_party.convert_pending
$game_party.convert_pending = nil
@animation_id = KBankai::REAPER_UPGRADE_ANIME_ID
elsif $game_party.devolve_pending
$game_party.devolve_pending = nil
@animation_id = KBankai::REAPER_DEVOLVE_ANIME_ID
end
end
end