#==============================================================================
# ** TDS Weapon Unleash
# Ver: 1.0
#------------------------------------------------------------------------------
# * Description:
# A Script that replicates the "Weapon Unleash" system from the game series
# "Golden sun".
#------------------------------------------------------------------------------
# * Features:
# Gives weapon a chance to "Unleash" a pre set skill during battle.
#------------------------------------------------------------------------------
# * Instructions:
# To use the unleash effect add the following to a weapon's note box.
#
# UNLEASH: Skill_ID %_Chance
#
# Skill_ID = The ID of the skill used for the weapon's unleash effect
# %_Chance = Chance of the unleash effect activating from 0-100%
#
# Example:
#
# UNLEASH: 23 100
#------------------------------------------------------------------------------
# * Notes:
# None.
#------------------------------------------------------------------------------
# * New Methods:
# RPG::Weapon Module
# - unleash_info
# ^ Method used to read from the weapon's notebox and get unleash information.
#
# Game_Battler:
# - weapon_unleash?
# ^ Method used to determine if unleash effect is possible and set unleash
# skill as an action.
#
# Scene_Battle:
# - execute_weapon_unleash
# ^ Method used to execute unleash process.
#------------------------------------------------------------------------------
# * Aliased Methods:
# Scene_Battle:
# - execute_action
# ^ Aliased to check for weapon unleash effect before original method runs.
#------------------------------------------------------------------------------
# WARNING:
#
# Do not release, distribute or change my work without my expressed written
# consent, doing so violates the terms of use of this work.
#
# If you really want to share my work please just post a link to the original
# site.
#
# * Not Knowing English or understanding these terms will not excuse you in any
# way from the consequenses.
#==============================================================================
#==============================================================================
# ** Game_Battler
#------------------------------------------------------------------------------
# This class deals with battlers. It's used as a superclass of the Game_Actor
# and Game_Enemy classes.
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# * Determine and set Weapon Unleash
#--------------------------------------------------------------------------
def weapon_unleash?
# If self is not an actor ir action is not to attack
return false if !actor? or !@action.attack?
# Get Main Weapon
weapon = weapons[0]
# Return false if main weapon is nil
return false if weapon == nil
# Get Unleash Information
unleash_info = weapon.unleash_info
# Return false if unleash info is nil
return false if unleash_info == nil
# If Unleash Rate is more than a random number from 0-100%
if (rand(100) < unleash_info[1])
# Set Weapon Unleash Skill
@action.set_skill(unleash_info[0])
# Return true
return true
end
# Return false by default
return false
end
end
#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
# This class performs battle screen processing.
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias tds_weapon_unleash_scene_battle_execute_action execute_action unless $@
#--------------------------------------------------------------------------
# * Execute Battle Actions
#--------------------------------------------------------------------------
def execute_action
# If Desperation Attack ready
if desperation
# Execute Desperation Attack
execute_action_desperate_attack
return
# If Active Battler weapon unleash
elsif @active_battler.weapon_unleash?
# Execute Weapon Unleash
execute_weapon_unleash
return
end
# Run Original Method
tds_weapon_unleash_scene_battle_execute_action
end
#--------------------------------------------------------------------------
# * Execute Battle Action: Weapon Unleash
#--------------------------------------------------------------------------
def execute_weapon_unleash
# Get Skill
skill = @active_battler.action.skill
# Weapon Unleash Text
text = sprintf("%s's %s let's out a howl! %s!", @active_battler.name,
@active_battler.weapons[0].name, skill.name)
# Add Instant Text
@message_window.add_instant_text(text)
# Wait 20 frames
wait(20)
# Make Action Targets
targets = @active_battler.action.make_targets
# Display Animation
display_animation(targets, skill.animation_id)
# Run skill common event if it exist
$game_temp.common_event_id = skill.common_event_id
# Go Through Targets
for target in targets
# Execute Skill Effect
target.skill_effect(@active_battler, skill)
# Display Action Effects
display_action_effects(target, skill)
end
end
end
#==============================================================================
# ** RPG Module
#------------------------------------------------------------------------------
# Module for handling information.
#==============================================================================
module RPG
#============================================================================
# ** RPG::Weapon
#----------------------------------------------------------------------------
# This module handles Weapon Information
#============================================================================
class Weapon < BaseItem
#-------------------------------------------------------------------------
# * Get Weapon Unleash Information
#-------------------------------------------------------------------------
def unleash_info
# Check notes for Unleash Skill ID and Chance
self.note[/UNLEASH: ([-0-9]+) ([-0-9]+)/]
# Retunr nil first match is nil
return nil if $1 == nil
# Return Array containing unleash values
return [$1.to_i, $2.to_i]
end
end
end
I have a question about how this will function in the event of a character who duel-wields weapons. Is one of the two weapon slots on a duel-wielding character considered the "main hand"? In other words, must a weapon be placed in one of the 2 slots, specifically, in order for it to be able to unleash? Or does having 2 weapons equipped mean there's a chance for both to unleash? Or one or the other?