lunariafantasia/Scripts/_.50.rb
2024-01-12 03:12:38 -06:00

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