Weapon Unleash
Version: 1.0
Author: TDS
Date: April 23, 2011
Version History
- Version 1.0 04.23.2011 - Public release.
Description
A Script that replicates the "Weapon Unleash" system from the game series "Golden sun". It allows a weapon to randomly use a skill instead of an attack.
Features
- Gives weapon a chance to "Unleash" a pre set skill during battle which replaces a normal attack.
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
Script
#==============================================================================
# ** 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 Active Battler weapon unleash
if @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
Credit
Support
On this topic.
Known Compatibility Issues
There could be some compatibility issues with custom battle systems, since this script was tested only with the default battle system.
Restrictions
Only for use in non-commercial games.