Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- =begin
- - Victor's Map Battle + CSCA Light Effects Patch v1.0
- - Made by: Sixth
- - Description
- This little script will make the lights from CSCA's script appear in the battle
- with Victor's script.
- - Installation:
- Place this script below Victor's Map Battle!
- =end
- class Spriteset_MapBattle < Spriteset_Battle
- alias init_csca_light7651 initialize
- def initialize
- csca_init_light_effects
- init_csca_light7651
- end
- alias disp_csca_light7714 dispose
- def dispose
- csca_dispose_light_effects
- disp_csca_light7714
- end
- alias upd_csca_light7411 update
- def update
- csca_update_light_effects
- upd_csca_light7411
- end
- def csca_dispose_light_effects
- for effect in @lights
- effect.light.dispose
- end
- @lights = nil
- end
- def get_effect(type)
- CSCA::LIGHTS::EFFECTS.each do |effect|
- if effect[0] == type
- return effect
- end
- end
- end
- def csca_init_light_effects
- @lights = []
- $game_map.events.values.each do |event|
- next if event.list.nil?
- for i in 0...event.list.size
- list = event.list[i]
- if list.code == 108 && list.parameters[0].include?("LIGHT: ")
- param = list.parameters[0]
- type = param[7, param.length]
- light = get_effect(type)
- light_effect = CSCA_Light.new(event, type, light[1])
- @lights.push(light_effect)
- next
- end
- end
- end
- csca_setup_light_effects
- end
- def csca_setup_light_effects
- for effect in @lights
- le = get_effect(effect.type)
- effect.light.zoom_x = le[2]
- effect.light.zoom_y = le[3]
- effect.light.opacity = le[4]
- effect.light.blend_type = le[5]
- effect.light.tone = le[6]
- effect.save_effect = le
- width = (effect.light.width/2)*effect.light.zoom_x
- height = (effect.light.height/2)*effect.light.zoom_y
- effect.light.x = effect.event.screen_x - width + le[9]
- effect.light.y = effect.event.screen_y - height + le[10]
- end
- end
- def csca_update_light_effects
- for effect in @lights
- next if effect.light.disposed?
- le = effect.save_effect
- effect.light.visible = $game_switches[le[7]]
- width = (effect.light.width/2)*effect.light.zoom_x
- height = (effect.light.height/2)*effect.light.zoom_y
- effect.light.x = effect.event.screen_x - width + le[9]
- effect.light.y = effect.event.screen_y - height + le[10]
- effect.light.opacity = rand(le[8]) + (le[4] - le[8])
- end
- csca_refresh_light_effects if @map_id != $game_map.map_id
- if $game_map.csca_light_need_refresh
- $game_map.csca_light_need_refresh = false
- csca_refresh_light_effects
- end
- if !$game_map.csca_dispose_lights.nil?
- csca_dispose_select_lights($game_map.csca_dispose_lights)
- end
- end
- def csca_refresh_light_effects
- csca_dispose_light_effects
- csca_init_light_effects
- end
- def csca_dispose_select_lights(ids)
- ids.each do |id|
- for effect in @lights
- if effect.event.id == id
- le = effect
- break
- end
- end
- le.light.dispose
- end
- $game_map.csca_dispose_lights = nil
- end
- end
- # End of script!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement