Advertisement
TheSixth

Victor's Map Battle + CSCA Light Effects Patch

Dec 26th, 2020
1,332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.23 KB | None | 0 0
  1. =begin
  2. - Victor's Map Battle + CSCA Light Effects Patch v1.0
  3. - Made by: Sixth
  4.  
  5. - Description
  6. This little script will make the lights from CSCA's script appear in the battle
  7. with Victor's script.
  8.  
  9. - Installation:
  10. Place this script below Victor's Map Battle!
  11.  
  12. =end
  13.  
  14. class Spriteset_MapBattle < Spriteset_Battle
  15.  
  16.   alias init_csca_light7651 initialize
  17.   def initialize
  18.     csca_init_light_effects
  19.     init_csca_light7651
  20.   end
  21.  
  22.   alias disp_csca_light7714 dispose
  23.   def dispose
  24.     csca_dispose_light_effects
  25.     disp_csca_light7714
  26.   end
  27.  
  28.   alias upd_csca_light7411 update
  29.   def update
  30.     csca_update_light_effects
  31.     upd_csca_light7411
  32.   end
  33.  
  34.   def csca_dispose_light_effects
  35.     for effect in @lights
  36.       effect.light.dispose
  37.     end
  38.     @lights = nil
  39.   end
  40.  
  41.   def get_effect(type)
  42.     CSCA::LIGHTS::EFFECTS.each do |effect|
  43.       if effect[0] == type
  44.         return effect
  45.       end
  46.     end
  47.   end
  48.  
  49.   def csca_init_light_effects
  50.     @lights = []
  51.     $game_map.events.values.each do |event|
  52.       next if event.list.nil?
  53.       for i in 0...event.list.size
  54.         list = event.list[i]
  55.         if list.code == 108 && list.parameters[0].include?("LIGHT: ")
  56.           param = list.parameters[0]
  57.           type = param[7, param.length]
  58.           light = get_effect(type)
  59.           light_effect = CSCA_Light.new(event, type, light[1])
  60.           @lights.push(light_effect)
  61.           next
  62.         end
  63.       end
  64.     end
  65.     csca_setup_light_effects
  66.   end
  67.  
  68.   def csca_setup_light_effects
  69.     for effect in @lights
  70.       le = get_effect(effect.type)
  71.       effect.light.zoom_x = le[2]
  72.       effect.light.zoom_y = le[3]
  73.       effect.light.opacity = le[4]
  74.       effect.light.blend_type = le[5]
  75.       effect.light.tone = le[6]
  76.       effect.save_effect = le
  77.       width = (effect.light.width/2)*effect.light.zoom_x
  78.       height = (effect.light.height/2)*effect.light.zoom_y
  79.       effect.light.x = effect.event.screen_x - width + le[9]
  80.       effect.light.y = effect.event.screen_y - height + le[10]
  81.     end
  82.   end
  83.  
  84.   def csca_update_light_effects
  85.     for effect in @lights
  86.       next if effect.light.disposed?
  87.       le = effect.save_effect
  88.       effect.light.visible = $game_switches[le[7]]
  89.       width = (effect.light.width/2)*effect.light.zoom_x
  90.       height = (effect.light.height/2)*effect.light.zoom_y
  91.       effect.light.x = effect.event.screen_x - width + le[9]
  92.       effect.light.y = effect.event.screen_y - height + le[10]
  93.       effect.light.opacity = rand(le[8]) + (le[4] - le[8])
  94.     end
  95.     csca_refresh_light_effects if @map_id != $game_map.map_id
  96.     if $game_map.csca_light_need_refresh
  97.       $game_map.csca_light_need_refresh = false
  98.       csca_refresh_light_effects
  99.     end
  100.     if !$game_map.csca_dispose_lights.nil?
  101.       csca_dispose_select_lights($game_map.csca_dispose_lights)
  102.     end
  103.   end
  104.  
  105.   def csca_refresh_light_effects
  106.     csca_dispose_light_effects
  107.     csca_init_light_effects
  108.   end
  109.  
  110.   def csca_dispose_select_lights(ids)
  111.     ids.each do |id|
  112.       for effect in @lights
  113.         if effect.event.id == id
  114.           le = effect
  115.           break
  116.         end
  117.       end
  118.       le.light.dispose
  119.     end
  120.     $game_map.csca_dispose_lights = nil
  121.   end
  122.  
  123. end
  124. # End of script!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement