#==============================================================================
# Individual Character Development - Weapon Master by Fomar0153
#==============================================================================
class Game_Party
attr_accessor :icd_weapon_masters
attr_accessor :icd_weapon_type
attr_accessor :icd_weapon_type_skills
attr_accessor :icd_weapon_max_level
attr_accessor :icd_weapon_damage_bonus
alias fomar_icd_weapon_master_initialize initialize
def initialize
fomar_icd_weapon_master_initialize
@icd_weapon_masters = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
@icd_weapon_type = [
{'name'=>'Blade Mastery', 'weapons'=>[46, 47, 48, 49, 50, 51, 53, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 66, 67, 60, 61, 62, 63, 64, 66]},
{'name'=>'Blunt Mastery', 'weapons'=>[1, 2, 3, 4, 5, 10, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 38, 42, 43, 44, 45, 68, 69, 70]},
{'name'=>'Marksman Mastery', 'weapons'=>[12, 13, 14, 15, 16, 17, 18]},
{'name'=>'Spear Mastery', 'weapons'=>[31, 33, 34, 35, 36]},
{'name'=>'Polearm Mastery', 'weapons'=>[6, 7, 8, 9, 71]},
{'name'=>'Throwing Mastery', 'weapons'=>[5, 32, 52, 65]},
{'name'=>'Staff Mastery', 'weapons'=>[39, 40, 41, 72, 73]}
]
@icd_weapon_type_skills = {'Sword1'=>57, 'Sword2'=>58, 'Sword3'=>59, 'Sword4'=>60,
'Spear1'=>61, 'Spear2'=>62, 'Spear3'=>63, 'Spear4'=>64}
@icd_weapon_max_level = 20
@icd_weapon_damage_bonus = 8
end
end
class Game_Actor < Game_Battler
alias fomar_icd_weapon_master_setup setup
def setup(actor_id)
fomar_icd_weapon_master_setup(actor_id)
@icd_weapon_type_levels = {}
for icd_type in $game_party.icd_weapon_type
@icd_weapon_type_levels[icd_type['name']] = 0
end
end
def damage_multiplier
for icd_type in $game_party.icd_weapon_type
if icd_type['weapons'].include?(@weapon_id)
return ((@icd_weapon_type_levels[icd_type['name']])/100) * $game_party.icd_weapon_damage_bonus
end
end
return 0
end
def improve_weapon_use
for icd_type in $game_party.icd_weapon_type
if icd_type['weapons'].include?(@weapon_id)
unless @icd_weapon_type_levels[icd_type['name']] == 100 * $game_party.icd_weapon_max_level
@icd_weapon_type_levels[icd_type['name']] += 1
if (@icd_weapon_type_levels[icd_type['name']] / 100) == (@icd_weapon_type_levels[icd_type['name']].to_f / 100.00)
self.learn_skill($game_party.icd_weapon_type_skills[icd_type['name'] + (@icd_weapon_type_levels[icd_type['name']] / 100).to_s])
end
end
end
end
end
end
class Game_Enemy < Game_Battler
def attack_effect(attacker)
if $game_party.icd_weapon_masters.include?(attacker.id)
attacker.improve_weapon_use
k = super
x = self.damage
self.damage *= (100 + attacker.damage_multiplier)
self.damage /= 100
self.hp -= (self.damage - x)
return k
else
return super
end
end
end