Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #===============================================================================
- #
- # Shanghai Simple Script - Equipment Break
- # Last Date Updated: 2010.06.14
- # Level: Normal
- #
- # This allows for enemies to temporarily break pieces of equipment in battle
- # and render actors vulnerable. After battle, equipment is restored.
- #===============================================================================
- # 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.
- #
- # <break equip: x>
- # <break equip: x, x, x>
- # Put these tags into the notebox of the skill you want to have equipment break.
- # Replace x with the slot ID of the piece of equipment you want to break. By
- # default, they are:
- # 0 - Weapon
- # 1 - Shield
- # 2 - Helmet
- # 3 - Armor
- # 4 - Accessory
- #
- # <repair equip: x>
- # <repair equip: x, x, x>
- # Put these tags into the notebox of the skill you want to repair broken slots.
- # Replace x with the slot ID of the piece of equipment you want to break. By
- # default, they are:
- # 0 - Weapon
- # 1 - Shield
- # 2 - Helmet
- # 3 - Armor
- # 4 - Accessory
- #===============================================================================
- $imported = {} if $imported == nil
- $imported["EquipmentBreak"] = true
- #==============================================================================
- # RPG::Skill
- #==============================================================================
- class RPG::Skill < RPG::UsableItem
- #--------------------------------------------------------------------------
- # # Equipment Break
- #--------------------------------------------------------------------------
- def equipment_break
- return @equipment_break if @equipment_break != nil
- @equipment_break = []
- self.note.split(/[\r\n]+/).each { |line|
- case line
- when /<(?:BREAK EQUIP|break equips):[ ](\d+(?:\s*,\s*\d+)*)>/i
- $1.scan(/\d+/).each { |num| @equipment_break.push(num.to_i) }
- end
- }
- return @equipment_break
- end
- #--------------------------------------------------------------------------
- # # Equipment Repair
- #--------------------------------------------------------------------------
- def equipment_repair
- return @equipment_repair if @equipment_repair != nil
- @equipment_repair = []
- self.note.split(/[\r\n]+/).each { |line|
- case line
- when /<(?:REPAIR EQUIP|repair equips):[ ](\d+(?:\s*,\s*\d+)*)>/i
- $1.scan(/\d+/).each { |num| @equipment_repair.push(num.to_i) }
- end
- }
- return @equipment_repair
- end
- end
- #==============================================================================
- # ** Game_Battler
- #==============================================================================
- class Game_Battler
- #--------------------------------------------------------------------------
- # * Apply Skill Effects
- #--------------------------------------------------------------------------
- alias skill_effect_sss_equipment_break skill_effect unless $@
- def skill_effect(user, skill)
- skill_effect_sss_equipment_break(user, skill)
- break_equipment(skill) unless @skipped or @missed or @evaded
- repair_equipment(skill) unless @skipped or @missed or @evaded
- end
- #--------------------------------------------------------------------------
- # * Break Equipment
- #--------------------------------------------------------------------------
- def break_equipment(skill)
- return unless $game_temp.in_battle
- return unless actor?
- return if skill.equipment_break.empty?
- @broken_equipment = [] if @broken_equipment.nil?
- @broken_equipment += skill.equipment_break
- clear_battle_cache if $imported["BattleEngineMelody"]
- end
- #--------------------------------------------------------------------------
- # * Repair Equipment
- #--------------------------------------------------------------------------
- def repair_equipment(skill)
- return unless $game_temp.in_battle
- return unless actor?
- return if skill.equipment_break.empty?
- @broken_equipment = [] if @broken_equipment.nil?
- @broken_equipment -= skill.equipment_repair
- clear_battle_cache if $imported["BattleEngineMelody"]
- end
- end
- #==============================================================================
- # ** Game_Actor
- #==============================================================================
- class Game_Actor < Game_Battler
- #--------------------------------------------------------------------------
- # * Get Weapon Object Array
- #--------------------------------------------------------------------------
- alias weapons_sss_equipment_break weapons unless $@
- def weapons
- result = weapons_sss_equipment_break
- @broken_equipment = [] if @broken_equipment.nil?
- result[0] = nil if @broken_equipment.include?(0)
- result[1] = nil if two_swords_style and @broken_equipment.include?(1)
- return result
- end
- #--------------------------------------------------------------------------
- # * Get Armor Object Array
- #--------------------------------------------------------------------------
- alias armors_sss_equipment_break armors unless $@
- def armors
- result = armors_sss_equipment_break
- @broken_equipment = [] if @broken_equipment.nil?
- for i in @broken_equipment
- next if i == 0
- result[i-1] = nil
- end
- return result
- end
- #--------------------------------------------------------------------------
- # * Clear Broken Equipment
- #--------------------------------------------------------------------------
- def clear_broken_equipment
- @broken_equipment = []
- clear_battle_cache if $imported["BattleEngineMelody"]
- end
- end
- #==============================================================================
- # ** Scene_Battle
- #==============================================================================
- class Scene_Battle < Scene_Base
- #--------------------------------------------------------------------------
- # * Start processing
- #--------------------------------------------------------------------------
- alias start_sss_equipment_break start unless $@
- def start
- for member in $game_party.members do member.clear_broken_equipment end
- start_sss_equipment_break
- end
- #--------------------------------------------------------------------------
- # * End Battle
- #--------------------------------------------------------------------------
- alias battle_end_sss_equipment_break battle_end unless $@
- def battle_end(result)
- for member in $game_party.members do member.clear_broken_equipment end
- battle_end_sss_equipment_break(result)
- end
- end
- #===============================================================================
- #
- # END OF FILE
- #
- #===============================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement