96 lines
3.8 KiB
Ruby
96 lines
3.8 KiB
Ruby
#==============================================================================
|
|
# ■ Game_BattlerBase
|
|
#------------------------------------------------------------------------------
|
|
# バトラーを扱う基本のクラスです。主に能力値計算のメソッドを含んでいます。こ
|
|
# のクラスは Game_Battler クラスのスーパークラスとして使用されます。
|
|
#==============================================================================
|
|
|
|
class Game_BattlerBase
|
|
#--------------------------------------------------------------------------
|
|
# ○ 公開インスタンス変数
|
|
#--------------------------------------------------------------------------
|
|
attr_reader :used_skill #
|
|
#--------------------------------------------------------------------------
|
|
# ● オブジェクト初期化 ※エイリアス
|
|
#--------------------------------------------------------------------------
|
|
alias used_skill_initialize initialize
|
|
def initialize
|
|
used_skill_initialize
|
|
@used_skill = {}
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● スキルの使用可能条件チェック ※エイリアス
|
|
#--------------------------------------------------------------------------
|
|
alias used_skill_skill_conditions_met? skill_conditions_met?
|
|
def skill_conditions_met?(skill)
|
|
used_skill_skill_conditions_met?(skill) && skill_one_use?(skill)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● スキル使用コストの支払い ※エイリアス
|
|
#--------------------------------------------------------------------------
|
|
alias used_skill_pay_skill_cost pay_skill_cost
|
|
def pay_skill_cost(skill)
|
|
used_skill_pay_skill_cost(skill)
|
|
#used_skill[skill.id] += 1
|
|
used_skill_plus(skill.id)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ○ スキルの使用回数
|
|
#--------------------------------------------------------------------------
|
|
def used_skill_plus(id)
|
|
if @used_skill[id]
|
|
@used_skill[id] += 1
|
|
else
|
|
@used_skill[id] = 1
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ○ スキルの使用回数
|
|
#--------------------------------------------------------------------------
|
|
def used_skill(id)
|
|
@used_skill[id] ||= 0
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ○ スキルの使用回数に関する判定
|
|
#--------------------------------------------------------------------------
|
|
def skill_one_use?(skill)
|
|
num = skill.use_limit
|
|
if num > 0
|
|
return true if !@used_skill[skill.id]
|
|
@used_skill[skill.id] < num
|
|
else
|
|
true
|
|
end
|
|
end
|
|
end
|
|
|
|
class RPG::Skill < RPG::UsableItem
|
|
def use_limit
|
|
return $1.to_i if self.note =~ /\<使用回数制限:(\d+)\>/
|
|
return 0
|
|
end
|
|
end
|
|
|
|
#==============================================================================
|
|
# ■ Game_Battler
|
|
#------------------------------------------------------------------------------
|
|
#==============================================================================
|
|
|
|
class Game_Battler < Game_BattlerBase
|
|
#--------------------------------------------------------------------------
|
|
# ● 戦闘開始処理 ※エイリアス
|
|
#--------------------------------------------------------------------------
|
|
alias used_skill_on_battle_start on_battle_start
|
|
def on_battle_start
|
|
used_skill_on_battle_start
|
|
@used_skill = {}
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● 戦闘終了処理 ※エイリアス
|
|
#--------------------------------------------------------------------------
|
|
alias used_skill_on_battle_end on_battle_end
|
|
def on_battle_end
|
|
@used_skill = {}
|
|
used_skill_on_battle_end
|
|
end
|
|
end
|