Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================
- # Card Battle Systen Add-on: DSI Dark Card
- # -- Last Updated: 2017.08.10
- # -- Author: dsiver144
- # -- Level: Easy
- # -- Requires: n/a
- #==============================================================================
- $imported = {} if $imported.nil?
- $imported["DSI-DarkCard"] = true
- #==============================================================================
- # + Updates
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- # 2017.08.10 - Finish first version.
- #==============================================================================
- # + Instructions
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- # To install this script, open up your script editor and copy/paste this script
- # to an open slot below ▼Materials but above ▼Main. Remember to save.
- # * You should put this script below all of battle related script.
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- # Skill Notetag Guide:
- # ----------------------------------------------------------------------------
- # <Dark Card>
- # se: name, volume, pitch, loop_time
- # tint: red, green, blue, gray
- # </Dark Card>
- # ----------------------------------------------------------------------------
- # Example:
- # ----------------------------------------------------------------------------
- # <Dark Card>
- # se: Heal3, 70, 100, 30
- # tint: -40, -40, -40, 0
- # </Dark Card>
- # ----------------------------------------------------------------------------
- # NOTE!
- # If you just put <Dark Card> in notebox then the skill will use default setting
- # of SE and Tint that configured below.
- #==============================================================================
- module DSIVER144
- module DARK_CARD
- #-------------------------------------------------------------------------
- DEFAULT_SE = ["Heal3", 100, 100, 60] #[file_name, volume, pitch, loop_time]
- DEFAULT_TINT = [-40,-40,-40, 0] # [Red, Green, Blue, Gray]
- BGM_VOLUME_WHEN_HOVER = 50
- TONE_CHANGE_TIME = 30 # In Frames
- #-------------------------------------------------------------------------
- DARK_CARD_ON = /<dark card>/i
- DARK_CARD_OFF = /<\/dark card>/i
- DARK_CARD_SE = /se:\s*(.+)/i
- DARK_CARD_TINT = /tint:\s*(.+)/i
- end # DARK_CARD
- end # DSIVER144
- #===============================================================================
- # Window_BattleSkill
- #===============================================================================
- class Window_BattleSkill < Window_SkillList
- include DSIVER144::DARK_CARD
- #--------------------------------------------------------------------------
- # * Frame Update
- #--------------------------------------------------------------------------
- alias_method(:dsi_dark_card_update_wndBtleSkill, :update)
- alias_method(:dsi_dark_card_update_help_wndBtleSkill, :update_help)
- def update
- dsi_dark_card_update_wndBtleSkill
- if @hover_darkCard && !@hover_darkCard_stage2
- lower_bgm_volume
- @hover_se_delay = 0
- @hover_se = @darkCard_settings[:se][0..2]
- @hover_tone = [Tone.new(*@darkCard_settings[:tint]), TONE_CHANGE_TIME]
- @hover_darkCard_stage2 = true
- $game_troop.screen.start_tone_change(*@hover_tone)
- end
- if @hover_darkCard_stage2
- if @hover_se_delay > 0
- @hover_se_delay -= 1
- else
- RPG::SE.new(*@hover_se).play
- @hover_se_delay = @darkCard_settings[:se][3]
- end
- end
- if @hover_darkCard_stage2 && (!@hover_darkCard || !self.active)
- reset_bgm_volume
- default_tone = Tone.new(0,0,0,0)
- $game_troop.screen.start_tone_change(default_tone, TONE_CHANGE_TIME)
- @hover_darkCard_stage2 = false
- @hover_darkCard = false # Delete this will lead to BGM issue.
- end
- end
- #--------------------------------------------------------------------------
- # * new method: lower_bgm_volume
- #--------------------------------------------------------------------------
- def lower_bgm_volume
- @darkCard_last_volume = RPG::BGM.last.volume
- RPG::BGM.last.volume = BGM_VOLUME_WHEN_HOVER
- Audio.bgm_play("Audio/BGM/#{RPG::BGM.last.name}", RPG::BGM.last.volume, RPG::BGM.last.pitch, RPG::BGM.last.pos)
- end
- #--------------------------------------------------------------------------
- # * new method: reset_bgm_volume
- #--------------------------------------------------------------------------
- def reset_bgm_volume
- RPG::SE.stop
- RPG::BGM.last.volume = @darkCard_last_volume
- Audio.bgm_play("Audio/BGM/#{RPG::BGM.last.name}", RPG::BGM.last.volume, RPG::BGM.last.pitch, RPG::BGM.last.pos)
- end
- #--------------------------------------------------------------------------
- # * Update Help Text
- #--------------------------------------------------------------------------
- def update_help
- dsi_dark_card_update_help_wndBtleSkill
- if item && item.is_darkCard?
- if @hover_darkCard
- @hover_darkCard_stage2 = false
- reset_bgm_volume
- end
- @hover_darkCard = true
- @darkCard_settings = item.dark_card_settings
- else
- @hover_darkCard = false
- end
- end
- end # Window_BattleSkill
- #==============================================================================
- # DataManager
- #==============================================================================
- module DataManager
- include DSIVER144::DARK_CARD
- #--------------------------------------------------------------------------
- # alias method: load_database
- #--------------------------------------------------------------------------
- class <<self; alias load_database_dark_card load_database; end
- def self.load_database
- load_database_dark_card
- load_dark_card_notetags
- end
- #--------------------------------------------------------------------------
- # new method: load_database_dark_card
- #--------------------------------------------------------------------------
- def self.load_dark_card_notetags
- $data_skills.each do |skill|
- next if skill.nil?
- skill.load_dark_card_notetags
- end
- end
- end # DataManager
- class RPG::Skill
- include DSIVER144::DARK_CARD
- attr_accessor :dark_card_settings
- #--------------------------------------------------------------------------
- # new method: load_dark_card_notetags
- #--------------------------------------------------------------------------
- def load_dark_card_notetags
- @dark_card_on = false
- @dark_card_settings = nil
- self.note.split(/[\r\n]+/).each do |line|
- if line =~ DARK_CARD_ON
- @dark_card_on = true
- end
- if line =~ DARK_CARD_OFF
- @dark_card_on = false
- end
- if @dark_card_on
- @dark_card_settings ||= {}
- case line
- when DARK_CARD_SE
- setting_array = $1.split(",")
- se_name = setting_array[0]
- se_volume = setting_array[1].to_i
- se_pitch = setting_array[2].to_i
- se_delay = setting_array[3].to_i
- @dark_card_settings[:se] = [se_name,se_volume,se_pitch,se_delay]
- when DARK_CARD_TINT
- $1.split(",").each do |arg|
- setting_array ||= []
- setting_array << arg.to_i
- end
- @dark_card_settings[:tint] = setting_array
- end
- end
- end
- if @dark_card_settings
- @dark_card_settings[:se] = DEFAULT_SE if !@dark_card_settings.has_key?(:se)
- @dark_card_settings[:tint] = DEFAULT_TINT if !@dark_card_settings.has_key?(:tint)
- end
- end
- #--------------------------------------------------------------------------
- # new method: is_darkCard?
- #--------------------------------------------------------------------------
- def is_darkCard?
- return !@dark_card_settings.nil?
- end
- end # RPG::Skill
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement