battle-maiden-mizuki/Scripts/_.20.rb
2025-06-17 11:57:06 -05:00

110 lines
4.3 KiB
Ruby

#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ ◆ アイテム詳細設定 - KMS_DetailedItem ◆ VX Ace ◆
#_/ ◇ Last update : 2014/01/02 (TOMY@Kamesoft) ◇
#_/----------------------------------------------------------------------------
#_/ アイテム関連の設定項目を追加します。
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#==============================================================================
# ★ 設定項目 - BEGIN Setting ★
#==============================================================================
module KMS_DetailedItem
# ◆ デフォルトの所持数上限
DEFAULT_MAX_NUMBER = 99
end
#==============================================================================
# ☆ 設定ここまで - END Setting ☆
#==============================================================================
$kms_imported ||= {}
$kms_imported["DetailedItem"] = true
module KMS_DetailedItem
# デバッグフラグ
DEBUG = false
# 所持数上限
# 記述例 : <所持数上限 30>
REGEX_MAX_NUMBER = /(?:所持数上限|MAX_NUMBER)\s*(\d+)/i
#============================================================================
# □ ItemDetailInfo
#============================================================================
class ItemDetailInfo
#--------------------------------------------------------------------------
# ○ アクセス修飾子
#--------------------------------------------------------------------------
attr_accessor :max_number # 所持数上限
#--------------------------------------------------------------------------
# ○ オブジェクト初期化
#--------------------------------------------------------------------------
def initialize(item)
@item = item
@max_number = DEFAULT_MAX_NUMBER
end
#--------------------------------------------------------------------------
# ○ 文字列変換
#--------------------------------------------------------------------------
def to_s
info = [@item.id, @max_number]
return "アイテム %03d: <max_number=%d>" % info
end
end
end
# *****************************************************************************
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ RPG::BaseItem
#==============================================================================
class RPG::BaseItem
#--------------------------------------------------------------------------
# ○ アイテム詳細情報のキャッシュ作成
#--------------------------------------------------------------------------
def kms_create_item_detail_info_cache
@kms_item_detail_info = KMS_DetailedItem::ItemDetailInfo.new(self)
note.each_line { |line|
case line
when KMS_DetailedItem::REGEX_MAX_NUMBER
@kms_item_detail_info.max_number = $1.to_i
end
}
if KMS_DetailedItem::DEBUG
print "#{@kms_item_detail_info.to_s}\n"
end
end
#--------------------------------------------------------------------------
# ○ アイテム詳細情報の取得
#--------------------------------------------------------------------------
def kms_detail_info
kms_create_item_detail_info_cache if @kms_item_detail_info.nil?
return @kms_item_detail_info
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Game_Party
#==============================================================================
class Game_Party < Game_Unit
#--------------------------------------------------------------------------
# ● アイテムの最大所持数取得
#--------------------------------------------------------------------------
def max_item_number(item)
if item.is_a?(RPG::BaseItem)
return item.kms_detail_info.max_number
else
return KMS_DetailedItem::DEFAULT_MAX_NUMBER
end
end
end