#encoding:utf-8
#===============================================================================
# 相当于额外装备了某些武器的套装效果 v1.0
# by 希忆 rpg.blue 转载或修改请保存此类信息。
#===============================================================================
#在武器|防具的备注写上<suit 2>表示其为2号套装的1件,描述自动添加“闪耀星光套装:”
#套装效果在下面设置,以武器编号来替代套装效果,相当于额外装备了这样一个武器。
#~
module EquipSuit
SuitEffect = {0 => [],
#套装编号(唯一) => [1个套装部件拥有的套装效果,2个,3个。。。以此类推【叠加!】]
#例如我装备了4个2号套装的部件,相当于多装备了111,112,113号武器。
#装备了5个3号套装的部件,相当于多装备了121,122号武器。
1 => [0, 101, 0, 102, 0, 103],
2 => [0, 111, 112, 113, 114],
3 => [0, 0, 121, 0, 122, 0, 123, 124],
#按格式继续加就是了。
}
def self.suit_effect(suit_id)
SuitEffect[suit_id] || []
end
SuitName = {0 => "",
#套装的名字。
1 => "优雅的魔法",
2 => "闪耀星光",
3 => "命运女神的垂怜",
#按格式继续加就是了。
}
def self.suit_name(suit_id)
SuitName[suit_id] || suit_id.to_s + "号套装"
end
end
class RPG::EquipItem
def suit_id
@note =~ /\<suit (\d+)\>/ ? $1.to_i : 0
end
def description
suit_id == 0 ? @description : EquipSuit.suit_name(suit_id) + ":" + @description
end
end
class Game_Actor
#返回一个角色装备中各套装数量的Hash 套装编号=>装备数量
def get_suit
result = Hash.new(0)
equips.each{ |e| result[e.suit_id] += 1 if e}
result
end
#返回包含套装效果对应武器实例的数组
def suit_effect
result = []
get_suit.each { |k, v| result +=
EquipSuit.suit_effect(k).first(v).collect{ |id| $data_weapons[id] } }
result.compact
end
alias xy_feature_objects_20150621 feature_objects
def feature_objects
xy_feature_objects_20150621 + suit_effect
end
alias xy_param_plus_20150621 param_plus
def param_plus(param_id)
suit_effect.inject(xy_param_plus_20150621(param_id)) {
|r, item| r += item.params[param_id] }
end
end