06-03-2016, 01:46 PM
It's possible but I don't really want to give every enemy a "Burn" state when I use Fire elements. These sort of "transformations" are very condition-specific.
Changing an Oily Body into a Flame Soul via "Fire" elemental attacks.
Changing an Armed Trooper into a Naked Trooper via "Steal" related commands.
Changing a Heli-Trooper into a Heli-Trooper (Grounded) when HP is below 30%.
The settings require a little bit of work, but it's functional! The script used to be functional too, but apparently Items no longer apply effects. I'll figure it out over the weekend.
Code:
#-----------------------------------------------------------------------------
# * Transformations = {enemy_id => Proc.new {|enemy, attacker|, ...}, ...}
#-----------------------------------------------------------------------------
Transformations = {
################################################################################
# ~** Configuration : BEGIN **~ #
################################################################################
#-----------------------------------------------------------------------------
# * Oily Body => Flame Soul
# Condition : Skill effect is Fire elemental
# Effect : Transform into Fire Soul. Retain HP%, MP%, States.
#-----------------------------------------------------------------------------
6 => Proc.new {|a, b|
# Get skill object
skill = $data_skills[b.current_action.skill_id]
# If skill is valid and contains Fire element
if skill.is_a?(RPG::Skill) && skill.element_set.include?(1)
# Save old HP%, SP% and states
old_hp, old_sp, old_states = a.hp_percent, a.sp_percent, a.states.dup
# Transform into Flame Soul
a.transform(7)
# Adjust HP and SP according to percentage of current VS max
a.hp_percent, a.sp_percent = old_hp, old_sp
# Re-apply status effects
old_states.each {|state| a.add_state(state)}
end
},
#-----------------------------------------------------------------------------
# * Armed Trooper => Naked Trooper
# Condition : The Steal/Mug effect is successful
# Effect : Transform into Naked Trooper. Set to full health/immortal to
# ensure an embarrassing escape.
#-----------------------------------------------------------------------------
15 => Proc.new {|a, b|
# If opponent performs a successful steal
if b.steal_success?
# Transform into Naked Trooper
a.transform(16)
# Fully replenish HP, SP and states
a.recover_all
# Set trooper to immortal
a.immortal = true
end
},
#-----------------------------------------------------------------------------
# * Heli Trooper => Heli Trooper (Grounded)
# Condition : Trooper's HP is less than 30%, random 1/4 chance.
# Effect : Transform into Heli Trooper (Grounded). Retain HP%, MP%, States.
#-----------------------------------------------------------------------------
21 => Proc.new {|a, b|
# If HP is less than or equal to 30%
if a.hp_percent <= 30 && rand(4) == rand(4)
# Save old HP%, SP% and states
old_hp, old_sp, old_states= a.hp_percent, a.sp_percent, a.states.dup
# Transform into Heli Trooper (Grounded)
a.transform(22)
# Adjust HP and SP according to percentage of current VS max
a.hp_percent, a.sp_percent = old_hp, old_sp
# Re-apply status effects
old_states.each {|state| a.add_state(state)}
end
}
################################################################################
# ~** Configuration : END **~ #
################################################################################
}
Changing an Oily Body into a Flame Soul via "Fire" elemental attacks.
Changing an Armed Trooper into a Naked Trooper via "Steal" related commands.
Changing a Heli-Trooper into a Heli-Trooper (Grounded) when HP is below 30%.
The settings require a little bit of work, but it's functional! The script used to be functional too, but apparently Items no longer apply effects. I'll figure it out over the weekend.