#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=::=:=
# Rain of Add-ons by Xelias
# Version: 1.00
# Type: Add-on Collection Control Script
# Date v1.00b: 26.11.2009
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
#
#
#
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
#
# This work is protected by the following license:
# #----------------------------------------------------------------------------
# #
# # Creative Commons - Attribution-NonCommercial-ShareAlike 3.0 Unported
# # ( http://creativecommons.org/licenses/by-nc-sa/3.0/ )
# #
# # You are free:
# #
# # to Share - to copy, distribute and transmit the work
# # to Remix - to adapt the work
# #
# # Under the following conditions:
# #
# # Attribution. You must attribute the work in the manner specified by the
# # author or licensor (but not in any way that suggests that they endorse you
# # or your use of the work).
# #
# # Noncommercial. You may not use this work for commercial purposes.
# #
# # Share alike. If you alter, transform, or build upon this work, you may
# # distribute the resulting work only under the same or similar license to
# # this one.
# #
# # - For any reuse or distribution, you must make clear to others the license
# # terms of this work. The best way to do this is with a link to this web
# # page.
# #
# # - Any of the above conditions can be waived if you get permission from the
# # copyright holder.
# #
# # - Nothing in this license impairs or restricts the author's moral rights.
# #
# #----------------------------------------------------------------------------
#
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
class Game_System
alias init_rain_of_addons_later initialize
def initialize
init_rain_of_addons_later
@VIRUS_STATUS = false
@MP_SHIELD_STATUS = false
@SPIKES_STATUS = false
end
attr_accessor :VIRUS_STATUS
attr_accessor :MP_SHIELD_STATUS
attr_accessor :SPIKES_STATUS
end
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
# Virus Status Effect by Xelias
# Version: 1.00
# Type: Game Experience Improvement
# Date: 26.9.2006
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
#
# Allows to create a status preventing healing.
#
#
# Configuration:
#
# VIRUS_IDS - the IDs of the Virus status effects
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
VIRUS_IDS = [30]
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#===============================================
# Game_Battler
#===============================================
class Game_Battler
alias skill_effect_virus_later skill_effect
def skill_effect(user, skill)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
result = skill_effect_virus_later(user, skill)
virus_effect(last_hp, last_sr, skill) if self.damage.is_a?(Numeric)
return result
end
alias item_effect_virus_later item_effect
def item_effect(item, battler = nil)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
if battler == nil
result = item_effect_virus_later(item)
else
result = item_effect_virus_later(item, battler)
end
virus_effect(last_hp, last_sr, item) if self.damage.is_a?(Numeric)
return result
end
def virus_effect(last_hp, last_sr, object)
if $game_system.VIRUS_STATUS && VIRUS_IDS.any? {|i| @states.include?(i)}
self.hp = last_hp
self.hp = self.hp
self.sr = last_sr if last_sr != nil
if self.damage < 0
self.damage = (self.damage*0).to_i
end
self.hp -= self.damage
end
end
end
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# MP Shield Status Effect by Xelias
# Version: 1.00
# Type: Game Experience Improvement
# Date: 26.9.2006
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
#
# When under this status, you never lose HP. However, you lose SP instead. When
# your SP reach 0, this status becomes ineffective.
#
# Configuration:
#
# MP_SHIELD_IDS - the IDs of the MP Shield status effects
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
MP_SHIELD_IDS = [29]
MP_SHIELD_ANIMATION_ID = 8
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#================================================
# Game_Battler
#================================================
class Game_Battler
alias attack_effect_mpshield_later attack_effect
def attack_effect(attacker)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
result = attack_effect_mpshield_later(attacker)
mpshield_effect(last_hp, last_sr, attacker) if self.damage.is_a?(Numeric)
return result
end
alias skill_effect_mpshield_later skill_effect
def skill_effect(user, skill)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
result = skill_effect_mpshield_later(user, skill)
mpshield_effect(last_hp, last_sr, skill) if self.damage.is_a?(Numeric)
return result
end
alias item_effect_mpshield_later item_effect
def item_effect(item, battler = nil)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
if battler == nil
result = item_effect_mpshield_later(item)
else
result = item_effect_mpshield_later(item, battler)
end
mpshield_effect(last_hp, last_sr, item) if self.damage.is_a?(Numeric)
return result
end
def mpshield_effect(last_hp, last_sr, object)
if $game_system.MP_SHIELD_STATUS && MP_SHIELD_IDS.any? {|i| @states.include?(i)}
self.hp = last_hp
self.hp = self.hp
self.sr = last_sr if last_sr != nil
if self.sp > 0 && self.damage > 0
self.animation_id = MP_SHIELD_ANIMATION_ID
self.sp -= self.damage
else
self.hp -= self.damage
end
end
end
end
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Spike Status by Xelias
# Version: 1.00
# Type: Enhanced Status
# Date: 26.11.2009
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
#
# Compatibility:
#
# 99% compatible with SDK v1.x. 90% compatible with SDK v2.x. Could cause
# problems with exotic CBS-es.
#
#
# Instructions:
#
# - Explanation:
#
# This allows to create a Spike Status. It inflicts damage to your opponent every time
# he or she attacks or uses a special skill. You can also set a special animation to hit
# the opponent
# - Configuration
#
# SPIKES_IDS - include any IDs of Spikes Statuses and separate them with
# commas (i.e. [29])
# SPIKES_ANIMATION_ID - Put the animation id. If you don't want any, make it 0.
# SPIKES_PROTECTION - Set to true if you want to lower the damage taken by the
# damage inflected by the spikes. Set false if you don't.
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
SPIKES_IDS = [994]
SPIKES_ANIMATION_ID =0
SPIKES_PROTECTION = false
#==============================================
# Game_Battler
#==============================================
class Game_Battler
alias skill_effect_spikes_skill_later skill_effect
def skill_effect(user, skill)
last_hp = self.hp
last_sr = self.sr if $crls && self.is_a?(Game_Actor)
result = skill_effect_spikes_skill_later(user, skill)
if $game_system.SPIKES_STATUS
self.hp = last_hp
self.hp = self.hp
self.sr = last_sr if $crls && self.is_a?(Game_Actor)
if self.damage.is_a?(Numeric)
if skill.int_f == 0 && SPIKES_IDS.any? {|i| @states.include?(i)}
user.damage = ( ( [self.pdef - user.pdef / 2, 0].max )* (20 + self.str) / 20 ) /10
user.hp -= user.damage
user.animation_id = SPIKES_ANIMATION_ID
if SPIKES_PROTECTION
self.damage -= user.damage
end
end
self.hp -= self.damage
end
end
return result
end
alias attack_effect_spikes_later attack_effect
def attack_effect(attacker)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
result = attack_effect_spikes_later(attacker)
spikes_effect(last_hp, last_sr, attacker) if self.damage.is_a?(Numeric)
return result
end
def spikes_effect(last_hp, last_sr, object)
if $game_system.SPIKES_STATUS && SPIKES_IDS.any? {|i| @states.include?(i)}
self.hp = last_hp
self.hp = self.hp
self.sr = last_sr if last_sr != nil
object.damage = ( ( [self.pdef - object.pdef / 2, 0].max )* (20 + self.str) / 20 ) /10
object.hp -= object.damage
object.animation_id = SPIKES_ANIMATION_ID
if SPIKES_PROTECTION
self.damage -= object.damage
end
self.hp -= self.damage
end
end
end