#------------------------------------------------------------------------------- # □ RPG combined with patch-like expedition for Sideview #------------------------------------------------------------------------------- module VXCTB # Replace USE_CAST with the defined constant if defined?(USE_CAST) remove_const(:USE_CAST) USE_CAST = false end module Conf_ActionOrder # If defined replace the constant X is defined if defined?(X) remove_const(:X) X = 0 end end end #------------------------------------------------------------------------------- # ■ Scene_Battle #------------------------------------------------------------------------------- class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ● end of turn (redefine) #-------------------------------------------------------------------------- def turn_end for member in $game_party.members + $game_troop.members member.clear_action_results next unless member.exist? member.slip_damage = false actor = member.actor? damage = 0 # 0 check if there is a clear state turn for state in member.states member.remove_state(state.id) if state.extension.include?("0-turn unlock") # Run-slip damage state = [target, a constant percentage, POP, allow non-combat] next unless state.extension.include?("Slip Damage") for ext in state.slip_extension if ext[0] == "hp" base_damage = ext[1] + member.maxhp * ext[2] / 100 damage += base_damage + base_damage * (rand(5) - rand(5)) / 100 slip_pop = ext[3] slip_dead = ext[4] slip_damage_flug = true member.slip_damage = true end end end # Damage slip default if member.slip_damage? && member.exist? && !slip_damage_flug damage += member.apply_variance(member.maxhp / 10, 10) slip_dead = false slip_pop = true slip_damage_flug = true member.slip_damage = true end damage = member.hp - 1 if damage >= member.hp && slip_dead = false member.hp -= damage @spriteset.set_damage_pop(actor, member.index, damage) if slip_pop member.perform_collapse if member.dead? && member.slip_damage member.clear_action_results end @status_window.refresh # HP and MP delay the timing of wait(55) if slip_damage_flug slip_damage_flug = false for member in $game_party.members + $game_troop.members member.clear_action_results next unless member.exist? actor = member.actor? mp_damage = 0 for state in member.states next unless state.extension.include?("スリップダメージ") for ext in state.slip_extension if ext[0] == "mp" base_damage = ext[1] + member.maxmp * ext[2] / 100 mp_damage += base_damage + base_damage * (rand(5) - rand(5)) / 100 slip_pop = ext[2] slip_damage_flug = true end end member.mp_damage = mp_damage member.mp -= mp_damage @spriteset.set_damage_pop(actor, member.index, mp_damage) if slip_pop end member.clear_action_results end @status_window.refresh # Delay the timing of damage and recovery wait(55) if slip_damage_flug # If there is automatic recovery for member in $game_party.members if member.auto_hp_recover and member.exist? plus_hp = member.maxhp / 20 member.hp += plus_hp @spriteset.set_damage_pop(true, member.index, plus_hp * -1) plus_hp_flug = true end member.clear_action_results end @status_window.refresh wait(55) if plus_hp_flug @help_window.dispose if @help_window != nil @help_window = nil move2_info_viewport $game_troop.turn_ending = true $game_troop.preemptive = false $game_troop.surprise = false process_battle_event $game_troop.turn_ending = false start_party_command_selection end #-------------------------------------------------------------------------- # ● Run combat: skills (redefine) #-------------------------------------------------------------------------- def execute_action_skill # Skill to assign the information skills Butler decided to act. skill = @active_battler.action.skill if @active_battler.action.skill != nil # If state action is to be cast in Battler if @active_battler.state?(VXCTB::CAST_STATE_ID) # Remove the casting from the Battler state @active_battler.remove_state(VXCTB::CAST_STATE_ID) # Return the information had been evacuated skills skill= $data_skills[@active_battler.action.casting_skill] # Return the information had been evacuated skills else # If non-state casting cast_ct = need_ct(@active_battler) * skill.cast / 100 # Execute an amendment to the casting cast_ct = correction_cast(cast_ct, @active_battler) # Skill casting one or more values if cast_ct > 0 # The value of CT subtraction skills casting @active_battler.ct -= cast_ct # Added the state casting @active_battler.add_state(VXCTB::CAST_STATE_ID) # Skill ID execution @active_battler.action.casting_skill = skill.id end end # If not state-casting unless @active_battler.state?(VXCTB::CAST_STATE_ID) # Of invulnerability to all members to die in action immortaling # Consumption cost skills return if @active_battler.consum_skill_cost(skill) == false # Skill Delay CT Cost delay_ct = need_ct(@active_battler) * skill.delay / 100 # Execute an amendment to delay delay_ct = correction_delay(delay_ct, @active_battler) # CT subtraction @active_battler.ct -= delay_ct # Determine target target_decision(skill) # Initiate action @spriteset.set_action(@active_battler.actor?, @active_battler.index, skill.base_action) # Display name help skills window pop_help(skill) # In Action playing_action # Get Common Event $game_temp.common_event_id = skill.common_event_id end # Refresh window by action @order_window.refresh end end