Advertisement
McKathlin

McKathlin Escape Event

Nov 13th, 2023
1,018
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.00 KB | Source Code | 0 0
  1. # To call a common event on escape failure,
  2. # set the common event ID you want to use below.
  3. # If the common event ID is set to 0, no common event will be called
  4. # on that condition.
  5. $ESCAPE_FAILURE_COMMON_EVENT_ID = 0
  6.  
  7. class Scene_Battle
  8.   #--------------------------------------------------------------------------
  9.   # * Frame Update (party command phase: escape)
  10.   #   REPLACEMENT method - Identical to RGSS, except where noted.
  11.   #--------------------------------------------------------------------------
  12.   def update_phase2_escape
  13.     # Calculate enemy agility average
  14.     enemies_agi = 0
  15.     enemies_number = 0
  16.     for enemy in $game_troop.enemies
  17.       if enemy.exist?
  18.         enemies_agi += enemy.agi
  19.         enemies_number += 1
  20.       end
  21.     end
  22.     if enemies_number > 0
  23.       enemies_agi /= enemies_number
  24.     end
  25.     # Calculate actor agility average
  26.     actors_agi = 0
  27.     actors_number = 0
  28.     for actor in $game_party.actors
  29.       if actor.exist?
  30.         actors_agi += actor.agi
  31.         actors_number += 1
  32.       end
  33.     end
  34.     if actors_number > 0
  35.       actors_agi /= actors_number
  36.     end
  37.     # Determine if escape is successful
  38.     success = rand(100) < 50 * actors_agi / enemies_agi
  39.     # If escape is successful
  40.     if success
  41.       # Play escape SE
  42.       $game_system.se_play($data_system.escape_se)
  43.       # Return to BGM before battle started
  44.       $game_system.bgm_play($game_temp.map_bgm)
  45.       # Battle ends
  46.       battle_end(1)
  47.     # If escape is failure
  48.     else
  49.       # McKathlin new: call Escape Failure Common Event.
  50.       common_event_id = $ESCAPE_FAILURE_COMMON_EVENT_ID
  51.       common_event = $data_common_events[common_event_id]
  52.       if common_event != nil
  53.         $game_system.battle_interpreter.setup(common_event.list, 0)
  54.       end
  55.       # End of new McKathlin code.
  56.       # Clear all party member actions
  57.       $game_party.clear_actions
  58.       # Start main phase
  59.       start_phase4
  60.     end
  61.   end # def update_phase2_escape
  62. end # class Scene_Battle
Tags: RPG Maker XP
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement