#==============================================================================
# 「装備条件の追加」(ACE) Ver.1.2
# 製作者:奈々(なな)
# へぷたなすくろーる http://heptanas.mamagoto.com/
#
# ◇使用規約
# 使用される場合はスクリプト作成者として「奈々」を明記して下さい。
# スクリプトの改変は自由に行って頂いて構いませんが
# その場合も元のスクリプトの作成者として名前を載せて下さい。
# また配布前に必ず、ブログにある利用規約を確認して下さい。
#
#------------------------------------------------------------------------------
#
# アイテムの装備条件に、アクター、クラスの指定や
# 一定以上のステータスを必要とする設定を追加できます。
# これにより武器防具タイプの簡略化や、より装備品の特色を出せます。
#
# 使い方は、アイテムのメモ欄にタグを記述します。
#
# <装備条件 アクター n> n番のアクター専用装備
# <装備条件 クラス n> n番のクラス専用装備
#
# アクターとクラスのタグは、複数設定が可能です。
#
# <装備条件 level n> レベルがn以上の場合、装備可能
#
# ステータスのタグは、levelの他に
# mhp,mmp,atk,def,mat,mdf,agi,lukが指定可能です。
# タグは各ステータス毎に1つだけ設定可能です。
#
# 通常の武器防具タイプの条件に「加えて」
# 設定されているアクター、クラス、各ステータスの
# 全ての装備条件を満たした場合、装備可能になります。
#
#==============================================================================
class Game_BattlerBase
#--------------------------------------------------------------------------
# ● 装備可能判定(再定義)
#--------------------------------------------------------------------------
def equippable?(item)
return false unless item.is_a?(RPG::EquipItem)
return false if equip_type_sealed?(item.etype_id)
return false unless equip_actorid_ok?(item)
return false unless equip_classid_ok?(item)
return false unless equip_status_ok?(item)
return equip_wtype_ok?(item.wtype_id) if item.is_a?(RPG::Weapon)
return equip_atype_ok?(item.atype_id) if item.is_a?(RPG::Armor)
return false
end
#--------------------------------------------------------------------------
# ● 装備条件(アクター)
#--------------------------------------------------------------------------
def equip_actorid_ok?(item)
list = []
item.note.scan(/\<\s*装備条件\s*アクター\s*(\d+)\s*\>/){|s| list.push($1.to_i)}
return list.empty? ? true : list.include?(self.id)
end
#--------------------------------------------------------------------------
# ● 装備条件(クラス)
#--------------------------------------------------------------------------
def equip_classid_ok?(item)
list = []
item.note.scan(/\<\s*装備条件\s*クラス\s*(\d+)\s*\>/){|s| list.push($1.to_i)}
return list.empty? ? true : list.include?(self.class.id)
end
#--------------------------------------------------------------------------
# ● 装備条件(ステータス)
#--------------------------------------------------------------------------
def equip_status_ok?(item)
return false if item.note[/\<\s*装備条件\s*[Ll][Ee][Vv][Ee][Ll]\s*(\d+)\s*\>/] && $1.to_i >= self.level
return false if item.note[/\<\s*装備条件\s*[Mm][Hh][Pp]\s*(\d+)\s*\>/] && $1.to_i >= self.mhp
return false if item.note[/\<\s*装備条件\s*[Mm][Mm][Pp]\s*(\d+)\s*\>/] && $1.to_i >= self.mmp
return false if item.note[/\<\s*装備条件\s*[Aa][Tt][Kk]\s*(\d+)\s*\>/] && $1.to_i >= self.atk
return false if item.note[/\<\s*装備条件\s*[Dd][Ee][Ff]\s*(\d+)\s*\>/] && $1.to_i >= self.def
return false if item.note[/\<\s*装備条件\s*[Mm][Aa][Tt]\s*(\d+)\s*\>/] && $1.to_i >= self.mat
return false if item.note[/\<\s*装備条件\s*[Mm][Dd][Ff]\s*(\d+)\s*\>/] && $1.to_i >= self.mdf
return false if item.note[/\<\s*装備条件\s*[Aa][Gg][Ii]\s*(\d+)\s*\>/] && $1.to_i >= self.agi
return false if item.note[/\<\s*装備条件\s*[Ll][Uu][Kk]\s*(\d+)\s*\>/] && $1.to_i >= self.luk
return true
end
end