Код:
#==============================================================================
# ** RPG::UsableItem
#------------------------------------------------------------------------------
# Сверхкласс для RPG::Item и RPG::Skill.
#==============================================================================
module RPG
##
# Сверхкласс для RPG::Item и RPG::Skill.
##
class UsableItem < BaseItem
#==========================================================================
# Атрибуты
#==========================================================================
# Название объекта.
# @return [String]
attr_accessor :name
# Область применения.
# @return [Integer]
attr_accessor :scope
# Где возможно применение.
# @note 0: всегда, 1: только в битве, 2: только из меню, 3: никогда.
# @return [Integer]
attr_accessor :occasion
# Коррекция скорости применения.
# @note Используется в VX.
# @return [Integer]
attr_accessor :speed
# ID анимации эффекта.
# @note Используется в VX.
# @return [Integer]
attr_accessor :animation_id
# ID анимации применения.
# @note Используется в XP.
# @return [Integer]
attr_accessor :animation1_id
# ID анимации эффекта.
# @note Используется в XP.
# @return [Integer]
attr_accessor :animation2_id
# ID вызываемого события.
# @return [Integer]
attr_accessor :common_event_id
# Базовый урон.
# @note Используется в VX.
# @return [Integer]
attr_accessor :base_damage
# Процент разбрасываемого урона.
# @note Используется в VX.
# @return [Integer]
attr_accessor :variance
# Процент влияния силы атаки эффект.
# @return [Integer]
attr_accessor :atk_f
# Процент влияния силы духа на эффект.
# @note Используется в VX.
# @return [Integer]
attr_accessor :spi_f
# Процент влияния уклонения на эффект.
# @note Используется в XP.
# @return [Integer]
attr_accessor :eva_f
# Процент влияния силы на эффект.
# @note Используется в XP.
# @return [Integer]
attr_accessor :str_f
# Процент влияния ловкости на эффект.
# @note Используется в XP.
# @return [Integer]
attr_accessor :dex_f
# Процент влияния скорости на эффект.
# @note Используется в XP.
# @return [Integer]
attr_accessor :agi_f
# Процент влияния интеллекта на эффект.
# @note Используется в XP.
# @return [Integer]
attr_accessor :int_f
# Процент влияния физической защиты на эффект.
# @note Используется в XP.
# @return [Integer]
attr_accessor :pdef_f
# Процент влияния магической защиты на эффект.
# @note Используется в XP.
# @return [Integer]
attr_accessor :mdef_f
# Вероятность воздействия эффекта.
# @note Используется в XP.
# @return [Integer]
attr_accessor :hit
# Флаг активной опции [Физическая атака]
# @note Используется в VX.
# @return [Bool]
attr_accessor :physical_attack
# Флаг активной опции [Повреждение ОМ]
# @note Используется в VX.
# @return [Bool]
attr_accessor :damage_to_mp
# Флаг активной опции [Поглащение жизни]
# @note Используется в VX.
# @return [Bool]
attr_accessor :absorb_damage
# Флаг активной опции [Игнорирование защиты]
# @note Используется в VX.
# @return [Bool]
attr_accessor :ignore_defense
# Список ID элементов.
# @return [Array[Integer]]
attr_accessor :element_set
# Список ID добавляемых состояний.
# @return [Array[Integer]]
attr_accessor :plus_state_set
# Список ID снимаемых состояний.
# @return [Array[Integer]]
attr_accessor :minus_state_set
#==========================================================================
# Методы
#==========================================================================
##
# Инициализирует переменные класса, присваивает им значения по умолчанию
# @note Вызывается автоматически при создании нового экземпляра
# @return [NilClass]
##
def initialize
super
@scope = 0
@occasion = 0
@speed = 0
@animation_id = 0
@animation1_id = 0
@animation2_id = 0
@common_event_id = 0
@base_damage = 0
@variance = 20
@atk_f = 0
@spi_f = 0
@eva_f = 0
@str_f = 0
@dex_f = 0
@agi_f = 0
@int_f = 0
@pdef_f = 0
@mdef_f = 0
@hit = 0
@physical_attack = false
@damage_to_mp = false
@absorb_damage = false
@ignore_defense = false
@element_set = []
@plus_state_set = []
@minus_state_set = []
end
##
# Определяет, может ли эффект воздействовать на врагов.
# @return Boolean
##
def for_opponent?
return [1, 2].include?(@scope) if Kernel.isXP?
return [1, 2, 3, 4, 5, 6].include?(@scope) if Kernel.isVX?
end
##
# Определяет, может ли эффект воздействовать на союзников.
# @return Boolean
##
def for_friend?
return [3, 4, 5, 6].include?(@scope) if Kernel.isXP?
return [7, 8, 9, 10, 11].include?(@scope) if Kernel.isVX?
end
##
# Определяет, может ли эффект воздействовать на мертвых союзников.
# @return Boolean
##
def for_dead_friend?
return [5, 6].include?(@scope) if Kernel.isXP?
return [9, 10].include?(@scope) if Kernel.isVX?
end
##
# Определяет, может ли эффект воздействовать на вызавшего его.
# @return Boolean
##
def for_user?
return (@scope == (Kernel.isXP? ? 7 : 11))
end
##
# Определяет, является ли целью эффекта один актер.
# @return Boolean
##
def for_one?
return [1, 3, 5, 7].include?(@scope) if Kernel.isXP?
return [1, 3, 4, 7, 9, 11].include?(@scope)
end
##
# Определяет, являются ли целью эффекта два актера.
# @return Boolean
##
def for_two?
return (Kernel.isXP? ? false : @scope == 5)
end
##
# Определяет, являются ли целью эффекта три актера.
# @return Boolean
##
def for_three?
return (Kernel.isXP? ? false : @scope == 6)
end
##
# Определяет, воздействует ли эффект на случайную цель.
# @return Boolean
##
def for_random?
return (Kernel.isXP? ? false : [4, 5, 6].include?(@scope))
end
##
# Определяет, являются ли целью эффекта все актеры.
# @return Boolean
##
def for_all?
return [2, 4, 6].include?(@scope) if Kernel.isXP?
return [2, 8, 10].include?(@scope)
end
##
# Определяет, будет ли эффект применен дважды к одному актеру.
# @return Boolean
##
def dual?
return (Kernel.isXP? ? false : @scope == 3)
end
##
# Определяет, нужно ли указать цель.
# @return Boolean
##
def need_selection?
return [1, 3, 5].include?(@scope) if Kernel.isXP?
return [1, 3, 7, 9].include?(@scope) if Kernel.isVX?
end
##
# Определяет, возможно ли использовать предмет в бою.
# @return Boolean
##
def battle_ok?
return [0, 1].include?(@occasion)
end
##
# Определяет, возможно ли использовать предмет вне боя.
# @return Boolean
##
def menu_ok?
return [0, 2].include?(@occasion)
end
#--------------------------------------------------------------------------
end
#----------------------------------------------------------------------------
end
#==============================================================================
Социальные закладки