Module: Mgmg

Defined in:
lib/mgmg/ir.rb,
lib/mgmg/poly.rb,
lib/mgmg/const.rb,
lib/mgmg/equip.rb,
lib/mgmg/utils.rb,
lib/mgmg/option.rb,
lib/mgmg/recipe.rb,
lib/mgmg/search.rb,
lib/mgmg/cuisine.rb,
lib/mgmg/version.rb,
lib/mgmg/optimize.rb,
lib/mgmg/reinforce.rb,
lib/mgmg/system_equip.rb

Defined Under Namespace

Modules: Optimize, Refiner Classes: Cuisine, ELItem, Equip, IR, InvalidBracketError, InvalidCharacterError, InvalidEquipClassError, InvalidMaterialError, InvalidRecipeError, InvalidReinforcementNameError, InvalidSmithError, Mat, Option, Over20Error, Recipe, Reinforcement, SearchCutException, TPolynomial, UnexpectedError, Vec

Constant Summary collapse

MaterialIndex =
{
	'鉄1':  0, '鉄2':  1, '鉄3':  2, '鉄4':  3, '鉄5':  4, '鉄6':  5, '鉄7':  6, '鉄8':  7, '鉄9':  8, '鉄10':  9,
	'木1': 10, '木2': 11, '木3': 12, '木4': 13, '木5': 14, '木6': 15, '木7': 16, '木8': 17, '木9': 18, '木10': 19,
	'綿1': 20, '綿2': 21, '綿3': 22, '綿4': 23, '綿5': 24, '綿6': 25, '綿7': 26, '綿8': 27, '綿9': 28, '綿10': 29,
	'皮1': 30, '皮2': 31, '皮3': 32, '皮4': 33, '皮5': 34, '皮6': 35, '皮7': 36, '皮8': 37, '皮9': 38, '皮10': 39,
	'骨1': 40, '骨2': 41, '骨3': 42, '骨4': 43, '骨5': 44, '骨6': 45, '骨7': 46, '骨8': 47, '骨9': 48, '骨10': 49,
	'牙1': 50, '牙2': 51, '牙3': 52, '牙4': 53, '牙5': 54, '牙6': 55, '牙7': 56, '牙8': 57, '牙9': 58, '牙10': 59,
	'宝1': 60, '宝2': 61, '宝3': 62, '宝4': 63, '宝5': 64, '宝6': 65, '宝7': 66, '宝8': 67, '宝9': 68, '宝10': 69,
	'水1': 70, '水2': 71, '水3': 72, '水4': 73, '水5': 74, '水6': 75, '水7': 76, '水8': 77, '水9': 78, '水10': 79,
	'石1': 80, '石2': 81, '石3': 82, '石4': 83, '石5': 84, '石6': 85, '石7': 86, '石8': 87, '石9': 88, '石10': 89,
	'金3': 90, '金6': 91, '金10': 92, '火玉5': 93, '火玉10': 94, '地玉5': 95, '地玉10': 96, '水玉5': 97, '水玉10': 98, '玉5': 99, '玉10': 100
}
MaterialClass =
[
 '', '', '綿', '', '', '', '', '', '', '', '', ''
]
EquipIndex =
{
 '短剣': 0, '双短剣': 1, '': 2, '': 3, '': 4, '': 5, '': 6, '': 7,
 '': 0, '': 1, '双剣': 1, 'ボウガン': 5, 'ボーガン': 5, '': 5,
 '': 8, '額当て': 9, '帽子': 10, 'フード': 11, '重鎧': 12, '軽鎧': 13, '': 14, '法衣': 15,
 '': 16, '小手': 17, '手袋': 18, '腕輪': 19, 'すね当て': 20, 'ブーツ': 21, '': 22, 'サンダル': 23,
 'ブローチ': 24, '指輪': 25, '首飾り': 26, '耳飾り': 27,
 '': 9, '': 10, '': 11, '': 12, '': 13, 'ローブ':15, '':15, '': 15,
 '': 17, '': 18, '': 18, 'グローブ': 18, '': 19,
 '脛当て': 20, '': 20, '': 20, '': 23, '': 25, '': 26, '': 27
}
EquipName =
[
 '短剣', '双短剣', '', '', '', '', '', '',
 '', '額当て', '帽子', 'フード', '重鎧', '軽鎧', '', '法衣',
 '', '小手', '手袋', '腕輪', '脛当て', 'ブーツ', '', 'サンダル',
 'ブローチ', '指輪', '首飾り', '耳飾り', '複数装備'
]
EquipPosition =
[
 0, 0, 0, 0, 0, 0, 0, 0,
 1, 1, 1, 1, 2, 2, 2, 2,
 3, 3, 3, 3, 4, 4, 4, 4,
 5, 5, 5, 5, 6
]
Material9 =

攻 物 防 HP MP 腕 器 速 魔

[
	Vec[ 10,  20,  10,  11,  20,  10,  30,  10,  30], # 鉄
	Vec[ 30,  10,  30,  33,  10,  30,  10,  20,  10], # 木
	Vec[ 10,  40,  10,  33,   5,  35,  30,  20,  10], # 綿
	Vec[ 30,  40,  40,   5,   5,  30,  40,  10,  10], # 皮
	Vec[ 10,  10,  40,  38,  40,  20,  10,  10,  10], # 骨
	Vec[ 10,  20,  20,   5,   5,  20,  20,  10,  20], # 牙
	Vec[ 10,  10,  25,  27,  25,  25,  25,  25,  25], # 宝
	Vec[ 20,  25,  15,   0,  30,  30,  25,  25,  10], # 水
	Vec[ 10,  20,  20,  11,  10,  10,  10,  10,  20], # 石
	Vec[ 50,  50,  50,  50,  50,  50,  50,  50,  50], # 貴
	Vec[ 10,  20,  10,  11,  20,  10,  30,  10,  30], # 特
	Vec[  0,   0,   0,   0,   0,   0,   0,   0,   0]  # ゼ
]
Equip9 =

攻 物 防 HP MP 腕 器 速 魔

[
	Vec[ 75,   0,   0,   0,   0,   0,  40,  50,   0], # 短剣
	Vec[ 90,   0,   0,   0,   0,   0,  30,  40,   0], # 双短剣
	Vec[100,  20,   0,  10,   0,   0,   0,   0,   0], # 剣
	Vec[130,   0,   0,   0,   0,  20,   0,   0,   0], # 斧
	Vec[ 80,   0,   0,   0,   0,   0,  60,  10,  10], # 弓
	Vec[ 70,   0,   0,   0,  10,   0,  50,  20,   0], # 弩
	Vec[ 40,   0,   0,   0,  30,   0,   0,   0, 100], # 杖
	Vec[ 70,   0,  20,   0,  20,   0,   0,   0,  80], # 本
	Vec[  0,  50,   0,  50,   0,   0,   0,   0,   0], # 兜
	Vec[  0,  30,  10,  35,   0,   0,   0,   0,   0], # 額当て
	Vec[  0,  20,  25,  25,  25,   0,   0,   0,   0], # 帽子
	Vec[  0,  20,  40,  15,  35,   0,   0,   0,   0], # フード
	Vec[  0, 100,  20,   0,   0,   0,   0,   0,   0], # 重鎧
	Vec[  0,  80,  40,   0,   0,   0,   0,   0,   0], # 軽鎧
	Vec[  0,  60,  60,   0,   0,   0,  20,   0,   0], # 服
	Vec[  0,  50,  90,   0,   0,   0,   0,   0,  20], # ローブ
	Vec[  0,  70,  50,   0,   0,   0,   0,   0,   0], # 盾
	Vec[ 20,  40,  30,   0,   0,   0,   0,   0,   0], # 小手
	Vec[  0,  40,  50,   0,   0,   0,  30,   0,   0], # グローブ
	Vec[  0,  30,  60,   0,   0,   0,   0,   0,  30], # 腕輪
	Vec[  0,  65,  20,   0,   0,   0,   0,   0,   0], # すね当て
	Vec[  0,  40,  40,   0,   0,   0,   0,  30,   0], # ブーツ
	Vec[  0,  30,  30,   0,   0,   0,   0,  50,   0], # 靴
	Vec[  0,  20,  50,   0,   0,   0,   0,  40,   0], # サンダル
	Vec[  0,   0,   0,   0,   0,  50,   0,   0,   0], # ブローチ
	Vec[  0,   0,   0,   0,   0,   0,  50,   0,   0], # 指輪
	Vec[  0,   0,   0,   0,   0,   0,   0,  60,   0], # 首飾り
	Vec[  0,   0,   0,   0,   0,   0,   0,   0,  50]  # 耳飾り
]
EquipFilter =

攻 物 防 HP MP 腕 器 速 魔

   HP MP    
[
	Vec[1, 0, 0, 0, 0, 0, 1, 1, 0], # 短剣
	Vec[1, 0, 0, 0, 0, 0, 1, 1, 0], # 双短剣
	Vec[1, 1, 0, 1, 0, 0, 0, 0, 0], # 剣
	Vec[1, 0, 0, 0, 0, 1, 0, 0, 0], # 斧
	Vec[1, 0, 0, 0, 0, 0, 1, 1, 1], # 弓
	Vec[1, 0, 0, 0, 1, 0, 1, 1, 0], # 弩
	Vec[1, 0, 0, 0, 1, 0, 0, 0, 1], # 杖
	Vec[1, 0, 1, 0, 1, 0, 0, 0, 1], # 本
	Vec[0, 1, 0, 1, 0, 0, 0, 0, 0], # 兜
	Vec[0, 1, 1, 1, 0, 0, 0, 0, 0], # 額当て
	Vec[0, 1, 1, 1, 1, 0, 0, 0, 0], # 帽子
	Vec[0, 1, 1, 1, 1, 0, 0, 0, 0], # フード
	Vec[0, 1, 1, 0, 0, 0, 0, 0, 0], # 重鎧
	Vec[0, 1, 1, 0, 0, 0, 0, 0, 0], # 軽鎧
	Vec[0, 1, 1, 0, 0, 0, 1, 0, 0], # 服
	Vec[0, 1, 1, 0, 0, 0, 0, 0, 1], # ローブ
	Vec[0, 1, 1, 0, 0, 0, 0, 0, 0], # 盾
	Vec[1, 1, 1, 0, 0, 0, 0, 0, 0], # 小手
	Vec[0, 1, 1, 0, 0, 0, 1, 0, 0], # グローブ
	Vec[0, 1, 1, 0, 0, 0, 0, 0, 1], # 腕輪
	Vec[0, 1, 1, 0, 0, 0, 0, 0, 0], # すね当て
	Vec[0, 1, 1, 0, 0, 0, 0, 1, 0], # ブーツ
	Vec[0, 1, 1, 0, 0, 0, 0, 1, 0], # 靴
	Vec[0, 1, 1, 0, 0, 0, 0, 1, 0], # サンダル
	Vec[0, 0, 0, 0, 0, 1, 0, 0, 0], # ブローチ
	Vec[0, 0, 0, 0, 0, 0, 1, 0, 0], # 指輪
	Vec[0, 0, 0, 0, 0, 0, 0, 1, 0], # 首飾り
	Vec[0, 0, 0, 0, 0, 0, 0, 0, 1]  # 耳飾り
]
EquipWeight =

攻 物 防 HP MP 腕 器 速 魔

[
	 90, 115, 120, 170, 140, 150, 120, 130, # 武器
	110,  70,  50,  40, 170, 120,  70,  50, # 頭,胴
	120,  70,  40,  20, 100,  70,  40,  10, # 腕,足
	 90,  90,  90,  90 # 装飾品
]
MainWeight =

1 2 3 4 5 6 7 8 9 10

[
	180, 183, 186, 189, 192, 195, 198, 201, 204, 207, # 鉄
	130, 133, 136, 139, 142, 145, 148, 151, 154, 157, # 木
	100, 103, 106, 109, 112, 115, 118, 121, 124, 127, # 綿
	140, 143, 146, 149, 152, 155, 158, 161, 164, 167, # 皮
	120, 123, 126, 129, 132, 135, 138, 141, 144, 147, # 骨
	120, 123, 126, 129, 132, 135, 138, 141, 144, 147, # 牙
	140, 143, 146, 149, 152, 155, 158, 161, 164, 167, # 宝
	110, 113, 116, 119, 122, 125, 128, 131, 134, 137, # 水
	190, 193, 196, 199, 202, 205, 208, 211, 214, 217, # 石
	200, 220, 220, 140, 200, 140, 200, 140, 200, 140, 200 # 貴
]
SubWeight =

1 2 3 4 5 6 7 8 9 10

[
	30, 35, 40, 45, 50, 55, 60, 65, 70, 75, # 鉄
	20, 25, 30, 35, 40, 45, 50, 55, 60, 65, # 木
	 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, # 綿
	10, 15, 20, 25, 30, 35, 40, 45, 50, 55, # 皮
	10, 15, 20, 25, 30, 35, 40, 45, 50, 55, # 骨
	10, 15, 20, 25, 30, 35, 40, 45, 50, 55, # 牙
	15, 20, 25, 30, 35, 40, 45, 50, 55, 60, # 宝
	 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, # 水
	40, 45, 50, 55, 60, 65, 70, 75, 80, 85, # 石
	30, 30, 30, 25, 40, 25, 40, 25, 40, 25, 40 # 貴
]
Main9 =

攻撃 物防 魔防 HP MP 腕力 器用 素早 魔力

[
	Vec[ 16,  11,   3,  14,   1,   5,   3,   2,   1], # 鉄1
	Vec[ 20,  15,   4,  20,   1,   7,   4,   2,   1], # 鉄2
	Vec[ 27,  22,   6,  28,   2,  10,   6,   4,   2], # 鉄3
	Vec[ 35,  30,   8,  38,   2,  13,   8,   5,   2], # 鉄4
	Vec[ 46,  41,  11,  52,   3,  18,  11,   7,   3], # 鉄5
	Vec[ 60,  55,  15,  70,   5,  25,  15,  10,   5], # 鉄6
	Vec[ 75,  70,  19,  90,   6,  32,  19,  12,   6], # 鉄7
	Vec[ 94,  89,  24, 113,   8,  40,  24,  16,   8], # 鉄8
	Vec[115, 110,  30, 140,  10,  50,  30,  20,  10], # 鉄9
	Vec[138, 133,  36, 169,  12,  60,  36,  24,  12], # 鉄10
	Vec[ 10,   3,   4,   3,   2,   4,  11,   2,   3], # 木1
	Vec[ 12,   4,   5,   4,   2,   5,  15,   2,   4], # 木2
	Vec[ 15,   6,   8,   6,   4,   8,  22,   4,   6], # 木3
	Vec[ 18,   8,  11,   8,   5,  11,  30,   5,   8], # 木4
	Vec[ 23,  11,  15,  11,   7,  15,  41,   7,  11], # 木5
	Vec[ 30,  15,  20,  15,  10,  20,  55,  10,  15], # 木6
	Vec[ 37,  19,  25,  19,  12,  25,  70,  12,  19], # 木7
	Vec[ 45,  24,  32,  24,  16,  32,  89,  16,  24], # 木8
	Vec[ 55,  30,  40,  30,  20,  40, 110,  20,  30], # 木9
	Vec[ 65,  36,  48,  36,  24,  48, 133,  24,  36], # 木10
	Vec[  6,   3,  11,   5,   3,   1,   5,   5,   4], # 綿1
	Vec[  6,   4,  15,   7,   4,   1,   7,   7,   5], # 綿2
	Vec[  7,   6,  22,  10,   6,   2,  10,  10,   8], # 綿3
	Vec[  7,   8,  30,  13,   8,   2,  13,  13,  11], # 綿4
	Vec[  8,  11,  41,  18,  11,   3,  18,  18,  15], # 綿5
	Vec[ 10,  15,  55,  25,  15,   5,  25,  25,  20], # 綿6
	Vec[ 11,  19,  70,  32,  19,   6,  32,  32,  25], # 綿7
	Vec[ 13,  24,  89,  40,  24,   8,  40,  40,  32], # 綿8
	Vec[ 15,  30, 110,  50,  30,  10,  50,  50,  40], # 綿9
	Vec[ 17,  36, 133,  60,  36,  12,  60,  60,  48], # 綿10
	Vec[  8,   8,   7,  11,   2,   8,   5,   5,   4], # 皮1
	Vec[  9,  11,  10,  15,   2,  11,   7,   7,   5], # 皮2
	Vec[ 11,  16,  14,  22,   4,  16,  10,  10,   8], # 皮3
	Vec[ 13,  22,  19,  30,   5,  22,  13,  13,  11], # 皮4
	Vec[ 16,  30,  26,  41,   7,  30,  18,  18,  15], # 皮5
	Vec[ 20,  40,  35,  55,  10,  40,  25,  25,  20], # 皮6
	Vec[ 24,  51,  45,  70,  12,  51,  32,  32,  25], # 皮7
	Vec[ 29,  64,  56,  89,  16,  64,  40,  40,  32], # 皮8
	Vec[ 35,  80,  70, 110,  20,  80,  50,  50,  40], # 皮9
	Vec[ 41,  96,  84, 133,  24,  96,  60,  60,  48], # 皮10
	Vec[  7,   1,   4,   1,   4,   1,   5,   5,  11], # 骨1
	Vec[  7,   1,   5,   1,   5,   1,   7,   7,  15], # 骨2
	Vec[  9,   2,   8,   2,   8,   2,  10,  10,  22], # 骨3
	Vec[ 10,   2,  11,   2,  11,   2,  13,  13,  30], # 骨4
	Vec[ 12,   3,  15,   3,  15,   3,  18,  18,  41], # 骨5
	Vec[ 15,   5,  20,   5,  20,   5,  25,  25,  55], # 骨6
	Vec[ 17,   6,  25,   6,  25,   6,  32,  32,  70], # 骨7
	Vec[ 21,   8,  32,   8,  32,   8,  40,  40,  89], # 骨8
	Vec[ 25,  10,  40,  10,  40,  10,  50,  50, 110], # 骨9
	Vec[ 29,  12,  48,  12,  48,  12,  60,  60, 133], # 骨10
	Vec[ 13,   1,   5,   5,   1,   7,   7,   8,   3], # 牙1
	Vec[ 16,   1,   7,   7,   1,  10,  10,  11,   4], # 牙2
	Vec[ 21,   2,  10,  10,   2,  14,  14,  16,   6], # 牙3
	Vec[ 27,   2,  13,  13,   2,  19,  19,  22,   8], # 牙4
	Vec[ 35,   3,  18,  18,   3,  26,  26,  30,  11], # 牙5
	Vec[ 45,   5,  25,  25,   5,  35,  35,  40,  15], # 牙6
	Vec[ 56,   6,  32,  32,   6,  45,  45,  51,  19], # 牙7
	Vec[ 69,   8,  40,  40,   8,  56,  56,  64,  24], # 牙8
	Vec[ 85,  10,  50,  50,  10,  70,  70,  80,  30], # 牙9
	Vec[101,  12,  60,  60,  12,  84,  84,  96,  36], # 牙10
	Vec[  6,   1,   1,   5,   5,  10,   6,  10,   6], # 宝1
	Vec[  6,   1,   1,   7,   7,  14,   8,  14,   8], # 宝2
	Vec[  7,   2,   2,  10,  10,  20,  12,  20,  12], # 宝3
	Vec[  7,   2,   2,  13,  13,  27,  16,  27,  16], # 宝4
	Vec[  8,   3,   3,  18,  18,  37,  22,  37,  22], # 宝5
	Vec[ 10,   5,   5,  25,  25,  50,  30,  50,  30], # 宝6
	Vec[ 11,   6,   6,  32,  32,  64,  38,  64,  38], # 宝7
	Vec[ 13,   8,   8,  40,  40,  81,  48,  81,  48], # 宝8
	Vec[ 15,  10,  10,  50,  50, 100,  60, 100,  60], # 宝9
	Vec[ 17,  12,  12,  60,  60, 121,  72, 121,  72], # 宝10
	Vec[ 10,   1,   5,  11,   3,   5,   3,   8,   6], # 水1
	Vec[ 12,   1,   7,  15,   4,   7,   4,  11,   8], # 水2
	Vec[ 15,   2,  10,  22,   6,  10,   6,  16,  12], # 水3
	Vec[ 18,   2,  13,  30,   8,  13,   8,  22,  16], # 水4
	Vec[ 23,   3,  18,  41,  11,  18,  11,  30,  22], # 水5
	Vec[ 30,   5,  25,  55,  15,  25,  15,  40,  30], # 水6
	Vec[ 37,   6,  32,  70,  19,  32,  19,  51,  38], # 水7
	Vec[ 45,   8,  40,  89,  24,  40,  24,  64,  48], # 水8
	Vec[ 55,  10,  50, 110,  30,  50,  30,  80,  60], # 水9
	Vec[ 65,  12,  60, 133,  36,  60,  36,  96,  72], # 水10
	Vec[  8,   5,   2,  22,   5,   3,   2,   1,   2], # 石1
	Vec[  9,   7,   2,  31,   7,   4,   2,   1,   2], # 石2
	Vec[ 11,  10,   4,  44,  10,   6,   4,   2,   4], # 石3
	Vec[ 13,  13,   5,  61,  13,   8,   5,   2,   5], # 石4
	Vec[ 16,  18,   7,  83,  18,  11,   7,   3,   7], # 石5
	Vec[ 20,  25,  10, 110,  25,  15,  10,   5,  10], # 石6
	Vec[ 24,  32,  12, 141,  32,  19,  12,   6,  12], # 石7
	Vec[ 29,  40,  16, 178,  40,  24,  16,   8,  16], # 石8
	Vec[ 35,  50,  20, 220,  50,  30,  20,  10,  20], # 石9
	Vec[ 41,  60,  24, 266,  60,  36,  24,  12,  24], # 石10
	Vec[  2,   2,   2,  10,  10,   2,   2,   2,   2], # 金3
	Vec[  4,   4,   4,  20,  20,   4,   4,   4,   4], # 金6
	Vec[  6,   6,   6,  20,  20,   6,   6,   6,   6], # 金10
	Vec[  0,   0,   0,  20,   0,  20,   0,   0,   0], # 火玉5
	Vec[  0,   0,   0,  40,   0,  40,   0,   0,   0], # 火玉10
	Vec[  0,   0,   0,   0,   0,   0,  20,  20,   0], # 地玉5
	Vec[  0,   0,   0,   0,   0,   0,  40,  40,   0], # 地玉10
	Vec[  0,   0,   0,   0,  20,   0,   0,   0,  20], # 水玉5
	Vec[  0,   0,   0,   0,  40,   0,   0,   0,  40], # 水玉10
	Vec[  0,   0,   0,  20,  20,  20,  20,  20,  20], # 玉5
	Vec[  0,   0,   0,  40,  40,  40,  40,  40,  40]  # 玉10
]
Sub9 =

攻撃 物防 魔防 HP MP 腕力 器用 素早 魔力

[
	Vec[110, 120, 110, 111, 120, 110, 130, 110, 130], # 鉄1
	Vec[115, 125, 115, 115, 125, 115, 135, 115, 135], # 鉄2
	Vec[120, 130, 120, 122, 130, 120, 140, 120, 140], # 鉄3
	Vec[125, 135, 125, 130, 135, 125, 145, 125, 145], # 鉄4
	Vec[130, 140, 130, 141, 140, 130, 150, 130, 150], # 鉄5
	Vec[135, 145, 135, 155, 145, 135, 155, 135, 155], # 鉄6
	Vec[140, 150, 140, 170, 150, 140, 160, 140, 160], # 鉄7
	Vec[145, 155, 145, 189, 155, 145, 165, 145, 165], # 鉄8
	Vec[150, 160, 150, 210, 160, 150, 170, 150, 170], # 鉄9
	Vec[155, 165, 155, 233, 165, 155, 175, 155, 175], # 鉄10
	Vec[130, 110, 130, 133, 110, 130, 110, 120, 110], # 木1
	Vec[135, 115, 135, 147, 115, 135, 115, 125, 115], # 木2
	Vec[140, 120, 140, 166, 120, 140, 120, 130, 120], # 木3
	Vec[145, 125, 145, 191, 125, 145, 125, 135, 125], # 木4
	Vec[150, 130, 150, 224, 130, 150, 130, 140, 130], # 木5
	Vec[155, 135, 155, 265, 135, 155, 135, 145, 135], # 木6
	Vec[160, 140, 160, 312, 140, 160, 140, 150, 140], # 木7
	Vec[165, 145, 165, 367, 145, 165, 145, 155, 145], # 木8
	Vec[170, 150, 170, 430, 150, 170, 150, 160, 150], # 木9
	Vec[175, 155, 175, 499, 155, 175, 155, 165, 155], # 木10
	Vec[110, 140, 110, 133, 105, 135, 130, 120, 110], # 綿1
	Vec[115, 145, 115, 147, 110, 140, 135, 125, 115], # 綿2
	Vec[120, 150, 120, 166, 115, 145, 140, 130, 120], # 綿3
	Vec[125, 155, 125, 191, 120, 150, 145, 135, 125], # 綿4
	Vec[130, 160, 130, 224, 125, 155, 150, 140, 130], # 綿5
	Vec[135, 165, 135, 265, 130, 160, 155, 145, 135], # 綿6
	Vec[140, 170, 140, 312, 135, 165, 160, 150, 140], # 綿7
	Vec[145, 175, 145, 367, 140, 170, 165, 155, 145], # 綿8
	Vec[150, 180, 150, 430, 145, 175, 170, 160, 150], # 綿9
	Vec[155, 185, 155, 499, 150, 180, 175, 165, 155], # 綿10
	Vec[130, 140, 140, 105, 105, 130, 140, 110, 110], # 皮1
	Vec[135, 145, 145, 107, 110, 135, 145, 115, 115], # 皮2
	Vec[140, 150, 150, 110, 115, 140, 150, 120, 120], # 皮3
	Vec[145, 155, 155, 113, 120, 145, 155, 125, 125], # 皮4
	Vec[150, 160, 160, 118, 125, 150, 160, 130, 130], # 皮5
	Vec[155, 165, 165, 125, 130, 155, 165, 135, 135], # 皮6
	Vec[160, 170, 170, 132, 135, 160, 170, 140, 140], # 皮7
	Vec[165, 175, 175, 140, 140, 165, 175, 145, 145], # 皮8
	Vec[170, 180, 180, 150, 145, 170, 180, 150, 150], # 皮9
	Vec[175, 185, 185, 160, 150, 175, 185, 155, 155], # 皮10
	Vec[110, 110, 140, 138, 140, 120, 110, 110, 110], # 骨1
	Vec[115, 115, 145, 154, 145, 125, 115, 115, 115], # 骨2
	Vec[120, 120, 150, 176, 150, 130, 120, 120, 120], # 骨3
	Vec[125, 125, 155, 205, 155, 135, 125, 125, 125], # 骨4
	Vec[130, 130, 160, 243, 160, 140, 130, 130, 130], # 骨5
	Vec[135, 135, 165, 290, 165, 145, 135, 135, 135], # 骨6
	Vec[140, 140, 170, 344, 170, 150, 140, 140, 140], # 骨7
	Vec[145, 145, 175, 408, 175, 155, 145, 145, 145], # 骨8
	Vec[150, 150, 180, 480, 180, 160, 150, 150, 150], # 骨9
	Vec[155, 155, 185, 560, 185, 165, 155, 155, 155], # 骨10
	Vec[110, 120, 120, 105, 105, 120, 120, 110, 120], # 牙1
	Vec[115, 125, 125, 107, 110, 125, 125, 115, 125], # 牙2
	Vec[120, 130, 130, 110, 115, 130, 130, 120, 130], # 牙3
	Vec[125, 135, 135, 113, 120, 135, 135, 125, 135], # 牙4
	Vec[130, 140, 140, 118, 125, 140, 140, 130, 140], # 牙5
	Vec[135, 145, 145, 125, 130, 145, 145, 135, 145], # 牙6
	Vec[140, 150, 150, 132, 135, 150, 150, 140, 150], # 牙7
	Vec[145, 155, 155, 140, 140, 155, 155, 145, 155], # 牙8
	Vec[150, 160, 160, 150, 145, 160, 160, 150, 160], # 牙9
	Vec[155, 165, 165, 160, 150, 165, 165, 155, 165], # 牙10
	Vec[110, 110, 125, 127, 125, 125, 125, 125, 125], # 宝1
	Vec[115, 115, 130, 139, 130, 130, 130, 130, 130], # 宝2
	Vec[120, 120, 135, 154, 135, 135, 135, 135, 135], # 宝3
	Vec[125, 125, 140, 175, 140, 140, 140, 140, 140], # 宝4
	Vec[130, 130, 145, 202, 145, 145, 145, 145, 145], # 宝5
	Vec[135, 135, 150, 235, 150, 150, 150, 150, 150], # 宝6
	Vec[140, 140, 155, 274, 155, 155, 155, 155, 155], # 宝7
	Vec[145, 145, 160, 319, 160, 160, 160, 160, 160], # 宝8
	Vec[150, 150, 165, 370, 165, 165, 165, 165, 165], # 宝9
	Vec[155, 155, 170, 427, 170, 170, 170, 170, 170], # 宝10
	Vec[120, 125, 115, 100, 130, 130, 125, 125, 110], # 水1
	Vec[125, 130, 120, 100, 135, 135, 130, 130, 115], # 水2
	Vec[130, 135, 125, 100, 140, 140, 135, 135, 120], # 水3
	Vec[135, 140, 130, 100, 145, 145, 140, 140, 125], # 水4
	Vec[140, 145, 135, 100, 150, 150, 145, 145, 130], # 水5
	Vec[145, 150, 140, 100, 155, 155, 150, 150, 135], # 水6
	Vec[150, 155, 145, 100, 160, 160, 155, 155, 140], # 水7
	Vec[155, 160, 150, 100, 165, 165, 160, 160, 145], # 水8
	Vec[160, 165, 155, 100, 170, 170, 165, 165, 150], # 水9
	Vec[165, 170, 160, 100, 175, 175, 170, 170, 155], # 水10
	Vec[110, 120, 120, 111, 110, 110, 110, 110, 120], # 石1
	Vec[115, 125, 125, 115, 115, 115, 115, 115, 125], # 石2
	Vec[120, 130, 130, 122, 120, 120, 120, 120, 130], # 石3
	Vec[125, 135, 135, 130, 125, 125, 125, 125, 135], # 石4
	Vec[130, 140, 140, 141, 130, 130, 130, 130, 140], # 石5
	Vec[135, 145, 145, 155, 135, 135, 135, 135, 145], # 石6
	Vec[140, 150, 150, 170, 140, 140, 140, 140, 150], # 石7
	Vec[145, 155, 155, 189, 145, 145, 145, 145, 155], # 石8
	Vec[150, 160, 160, 210, 150, 150, 150, 150, 160], # 石9
	Vec[155, 165, 165, 233, 155, 155, 155, 155, 165], # 石10
	Vec[150, 150, 150, 150, 150, 150, 150, 150, 150], # 金3
	Vec[175, 175, 175, 175, 175, 175, 175, 175, 175], # 金6
	Vec[200, 200, 200, 200, 200, 200, 200, 200, 200], # 金10
	Vec[100, 100, 140, 140, 140, 140, 140, 140, 140], # 火玉5
	Vec[100, 100, 160, 160, 160, 160, 160, 160, 160], # 火玉10
	Vec[100, 100, 140, 140, 140, 140, 140, 140, 140], # 地玉5
	Vec[100, 100, 160, 160, 160, 160, 160, 160, 160], # 地玉10
	Vec[100, 100, 140, 140, 140, 140, 140, 140, 140], # 水玉5
	Vec[100, 100, 160, 160, 160, 160, 160, 160, 160], # 水玉10
	Vec[100, 100, 140, 140, 140, 140, 140, 140, 140], # 玉5
	Vec[100, 100, 160, 160, 160, 160, 160, 160, 160]  # 玉10
]
MainEL =

攻撃 物防 魔防 HP MP 腕力 器用 素早 魔力

  
[
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 鉄
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 鉄
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 木
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 木
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 綿
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 綿
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 皮
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 皮
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 骨
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 骨
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 牙
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 牙
	Vec[1, 0, 0], Vec[1, 0, 0], Vec[1, 0, 0], Vec[1, 0, 0], Vec[1, 0, 0], # 宝
	Vec[1, 0, 0], Vec[1, 0, 0], Vec[1, 0, 0], Vec[1, 0, 0], Vec[1, 0, 0], # 宝
	Vec[0, 0, 1], Vec[0, 0, 1], Vec[0, 0, 1], Vec[0, 0, 1], Vec[0, 0, 1], # 水
	Vec[0, 0, 1], Vec[0, 0, 1], Vec[0, 0, 1], Vec[0, 0, 1], Vec[0, 0, 1], # 水
	Vec[0, 1, 0], Vec[0, 1, 0], Vec[0, 1, 0], Vec[0, 1, 0], Vec[0, 1, 0], # 石
	Vec[0, 1, 0], Vec[0, 1, 0], Vec[0, 1, 0], Vec[0, 1, 0], Vec[0, 1, 0], # 石
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[2, 0, 0], Vec[3, 0, 0], # 貴
	Vec[0, 2, 0], Vec[0, 3, 0], Vec[0, 0, 2], Vec[0, 0, 3], Vec[2, 2, 2], Vec[3, 3, 3] # 貴
]
SubEL =

火 地 水

[
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 鉄
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 鉄
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 木
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 木
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 綿
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 綿
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 皮
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 皮
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 骨
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 骨
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 牙
	Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], Vec[0, 0, 0], # 牙
	Vec[0, 0, 3], Vec[0, 0, 3], Vec[2, 0, 4], Vec[2, 0, 4], Vec[2, 0, 4], # 宝
	Vec[3, 0, 4], Vec[3, 0, 4], Vec[3, 0, 4], Vec[3, 0, 6], Vec[4, 0, 6], # 宝
	Vec[0, 3, 0], Vec[0, 3, 0], Vec[0, 4, 2], Vec[0, 4, 2], Vec[0, 4, 2], # 水
	Vec[0, 4, 3], Vec[0, 4, 3], Vec[0, 4, 3], Vec[0, 6, 3], Vec[0, 6, 4], # 水
	Vec[3, 0, 0], Vec[3, 0, 0], Vec[4, 2, 0], Vec[4, 2, 0], Vec[4, 2, 0], # 石
	Vec[4, 3, 0], Vec[4, 3, 0], Vec[4, 3, 0], Vec[6, 3, 0], Vec[6, 4, 0], # 石
	Vec[3, 3, 3], Vec[4, 4, 4], Vec[6, 6, 6], Vec[3, 0, 4], Vec[4, 0, 6], # 貴
	Vec[4, 3, 0], Vec[6, 4, 0], Vec[0, 4, 3], Vec[0, 6, 4], Vec[4, 4, 4], Vec[6, 6, 6] # 貴
]
CacheMLS =
Hash.new
CharacterList =
/[^\(\)\+0123456789\[\]あきくしすたてなねのびりるイウガクグサジスタダチツデトドニノフブペボムラリルロンヴー一万二光兜典刀剣劣匠双古名吹咆品哮地大天太子安宝小帽弓弩当息悪戦手指斧書服木本杖業樹歴殺水氷法火炎牙物玉王産用界異的皮盾短石砕竜紫綿耳聖脛腕腿般良色衣袋覇質軍軽輝輪重量金鉄鎧闇陽靴額飾首骨鬼龍]/.freeze
Eighth =
1.quo(8)
SystemCuisine =
{
	'焼き肉'                         => Cuisine.new( Vec[ 5,  0,  0] ), # ☆1
	'焼き金肉'                       => Cuisine.new( Vec[10,  0,  0] ), # ☆3
	'焼き黄金肉'                     => Cuisine.new( Vec[15,  0,  0] ), # ☆5
	'焼きリンゴ'                     => Cuisine.new( Vec[ 0,  5,  0] ), # ☆1
	'焼きイチゴ'                     => Cuisine.new( Vec[ 0, 10,  0] ), # ☆3
	'焼きネギタマ'                   => Cuisine.new( Vec[ 0, 15,  0] ), # ☆5
	'サボテン焼き1'                  => Cuisine.new( Vec[ 5,  5,  0] ), # ☆1
	'サボテンバーガー'               => Cuisine.new( Vec[10, 10,  0] ), # ☆3
	'サボテン焼き7'                  => Cuisine.new( Vec[15, 15,  0] ), # ☆7
	'獣肉とカエン酒の丸焼き'         => Cuisine.new( Vec[ 8,  0,  0] ), # 料理Lv0
	'ドランギョと煉獄酒の丸焼き'     => Cuisine.new( Vec[15, 11,  6] ), # 料理Lv15
	'ドラバーンと煉獄酒の丸焼き'     => Cuisine.new( Vec[23, 17,  9] ), # 料理Lv24
	'フレドランと煉獄酒の丸焼き'     => Cuisine.new( Vec[59,  0,  0] ), # 料理Lv27
	'ダークドンと煉獄酒の丸焼き'     => Cuisine.new( Vec[35, 26, 21] ), # 料理Lv27
	'ダークドンと氷河酒の丸焼き'     => Cuisine.new( Vec[26, 35, 15] ), # 料理Lv27
	'ウッチと氷酒の蒸し焼き'         => Cuisine.new( Vec[ 0, 11, 10] ), # 料理Lv0
	'ゴッチと氷酒の蒸し焼き'         => Cuisine.new( Vec[ 0, 15, 13] ), # 料理Lv3
	'ガガッチと氷水酒の蒸し焼き'     => Cuisine.new( Vec[ 0, 19, 15] ), # 料理Lv6
	'ガガッチと氷河酒の蒸し焼き'     => Cuisine.new( Vec[ 0, 22, 16] ), # 料理Lv12
	'ドランギョと氷河酒の蒸し焼き'   => Cuisine.new( Vec[ 6, 24, 11] ), # 料理Lv15
	'ドラバーンと氷河酒の蒸し焼き'   => Cuisine.new( Vec[10, 35, 19] ), # 料理Lv24
	'アースドランと氷河酒の蒸し焼き' => Cuisine.new( Vec[ 0, 87,  0] ), # 料理Lv27
	'ダークドンと氷河酒の蒸し焼き'   => Cuisine.new( Vec[15, 52, 38] ), # 料理Lv27
	'ダークドンと煉獄酒の蒸し焼き'   => Cuisine.new( Vec[15, 52, 38] ), # 料理Lv27
	'ウッチとカエン酒の蒸し焼き'     => Cuisine.new( Vec[ 0, 10, 11] ), # 料理Lv0
	'ゴッチとカエン酒の蒸し焼き'     => Cuisine.new( Vec[ 0, 13, 15] ), # 料理Lv3
	'ガガッチと爆炎酒の蒸し焼き'     => Cuisine.new( Vec[ 0, 15, 19] ), # 料理Lv6
	'ガガッチと煉獄酒の蒸し焼き'     => Cuisine.new( Vec[ 0, 16, 22] ), # 料理Lv12
	'ドランギョと煉獄酒の蒸し焼き'   => Cuisine.new( Vec[ 9, 18, 15] ), # 料理Lv15
	'ドラバーンと煉獄酒の蒸し焼き'   => Cuisine.new( Vec[14, 26, 25] ), # 料理Lv24
	'アクアドランと煉獄酒の蒸し焼き' => Cuisine.new( Vec[ 0,  0, 87] ), # 料理Lv27
}
VERSION =
"1.8.2"
SystemEquip =
{
	'安物の短剣'       => Equip.new( 0, 1,  1,  0, 10, Vec[  10,    0,    0,    0,    0,    0,    4,    5,    0], Vec[0, 0, 0]),
	'量産品の短剣'     => Equip.new( 0, 1,  2,  0, 10, Vec[  15,    0,    0,    0,    0,    0,    6,    7,    0], Vec[0, 0, 0]),
	'一般的な短剣'     => Equip.new( 0, 1,  3,  0, 10, Vec[  21,    0,    0,    0,    0,    0,    8,   10,    0], Vec[0, 0, 0]),
	'良質な短剣'       => Equip.new( 0, 1,  4,  0, 10, Vec[  30,    0,    0,    0,    0,    0,   12,   15,    0], Vec[0, 0, 0]),
	'業物の短剣'       => Equip.new( 0, 1,  5,  0, 10, Vec[  41,    0,    0,    0,    0,    0,   16,   20,    0], Vec[0, 0, 0]),
	'名のある短剣'     => Equip.new( 0, 1,  6,  0, 10, Vec[  55,    0,    0,    0,    0,    0,   22,   27,    0], Vec[0, 0, 0]),
	'匠の短剣'         => Equip.new( 0, 1,  7,  0, 10, Vec[  71,    0,    0,    0,    0,    0,   28,   35,    0], Vec[0, 0, 0]),
	'竜殺しの短剣'     => Equip.new( 0, 1,  8,  0, 10, Vec[  90,    0,    0,    0,    0,    0,   36,   45,    0], Vec[0, 0, 0]),
	'光り輝く短剣'     => Equip.new( 0, 1,  9,  0, 10, Vec[ 111,    0,    0,    0,    0,    0,   44,   55,    0], Vec[0, 0, 0]),
	'安物の双短剣'     => Equip.new( 1, 2,  1,  0, 10, Vec[  13,    0,    0,    0,    0,    0,    3,    4,    0], Vec[0, 0, 0]),
	'量産品の双短剣'   => Equip.new( 1, 2,  2,  0, 10, Vec[  19,    0,    0,    0,    0,    0,    4,    6,    0], Vec[0, 0, 0]),
	'一般的な双短剣'   => Equip.new( 1, 2,  3,  0, 10, Vec[  27,    0,    0,    0,    0,    0,    6,    8,    0], Vec[0, 0, 0]),
	'良質な双短剣'     => Equip.new( 1, 2,  4,  0, 10, Vec[  39,    0,    0,    0,    0,    0,    9,   12,    0], Vec[0, 0, 0]),
	'業物の双短剣'     => Equip.new( 1, 2,  5,  0, 10, Vec[  53,    0,    0,    0,    0,    0,   12,   16,    0], Vec[0, 0, 0]),
	'名のある双短剣'   => Equip.new( 1, 2,  6,  0, 10, Vec[  71,    0,    0,    0,    0,    0,   16,   22,    0], Vec[0, 0, 0]),
	'匠の双短剣'       => Equip.new( 1, 2,  7,  0, 10, Vec[  92,    0,    0,    0,    0,    0,   21,   28,    0], Vec[0, 0, 0]),
	'竜殺しの双短剣'   => Equip.new( 1, 2,  8,  0, 10, Vec[ 117,    0,    0,    0,    0,    0,   27,   36,    0], Vec[0, 0, 0]),
	'光り輝く双短剣'   => Equip.new( 1, 2,  9,  0, 10, Vec[ 144,    0,    0,    0,    0,    0,   33,   44,    0], Vec[0, 0, 0]),
	'安物の剣'         => Equip.new( 2, 2,  1,  0, 10, Vec[  13,    2,    0,    4,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'量産品の剣'       => Equip.new( 2, 2,  2,  0, 10, Vec[  19,    3,    0,    6,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'一般的な剣'       => Equip.new( 2, 2,  3,  0, 10, Vec[  27,    4,    0,    8,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'良質な剣'         => Equip.new( 2, 2,  4,  0, 10, Vec[  39,    6,    0,   12,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'業物の剣'         => Equip.new( 2, 2,  5,  0, 10, Vec[  53,    8,    0,   16,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'名のある剣'       => Equip.new( 2, 2,  6,  0, 10, Vec[  71,   11,    0,   22,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'匠の剣'           => Equip.new( 2, 2,  7,  0, 10, Vec[  92,   14,    0,   28,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'竜殺しの剣'       => Equip.new( 2, 2,  8,  0, 10, Vec[ 117,   18,    0,   36,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'光り輝く剣'       => Equip.new( 2, 2,  9,  0, 10, Vec[ 144,   22,    0,   44,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'安物の斧'         => Equip.new( 3, 3,  1,  0, 10, Vec[  19,    0,    0,    0,    0,    2,    0,    0,    0], Vec[0, 0, 0]),
	'量産品の斧'       => Equip.new( 3, 3,  2,  0, 10, Vec[  23,    0,    0,    0,    0,    3,    0,    0,    0], Vec[0, 0, 0]),
	'一般的な斧'       => Equip.new( 3, 3,  3,  0, 10, Vec[  40,    0,    0,    0,    0,    4,    0,    0,    0], Vec[0, 0, 0]),
	'良質な斧'         => Equip.new( 3, 3,  4,  0, 10, Vec[  57,    0,    0,    0,    0,    6,    0,    0,    0], Vec[0, 0, 0]),
	'業物の斧'         => Equip.new( 3, 3,  5,  0, 10, Vec[  78,    0,    0,    0,    0,    8,    0,    0,    0], Vec[0, 0, 0]),
	'名のある斧'       => Equip.new( 3, 3,  6,  0, 10, Vec[ 104,    0,    0,    0,    0,   11,    0,    0,    0], Vec[0, 0, 0]),
	'匠の斧'           => Equip.new( 3, 3,  7,  0, 10, Vec[ 135,    0,    0,    0,    0,   14,    0,    0,    0], Vec[0, 0, 0]),
	'竜殺しの斧'       => Equip.new( 3, 3,  8,  0, 10, Vec[ 171,    0,    0,    0,    0,   18,    0,    0,    0], Vec[0, 0, 0]),
	'光り輝く斧'       => Equip.new( 3, 3,  9,  0, 10, Vec[ 211,    0,    0,    0,    0,   22,    0,    0,    0], Vec[0, 0, 0]),
	'安物の弓'         => Equip.new( 4, 2,  1,  0, 10, Vec[   8,    0,    0,    0,    0,    0,   10,    1,    1], Vec[0, 0, 0]),
	'量産品の弓'       => Equip.new( 4, 2,  2,  0, 10, Vec[  12,    0,    0,    0,    0,    0,   15,    1,    1], Vec[0, 0, 0]),
	'一般的な弓'       => Equip.new( 4, 2,  3,  0, 10, Vec[  17,    0,    0,    0,    0,    0,   21,    2,    2], Vec[0, 0, 0]),
	'良質な弓'         => Equip.new( 4, 2,  4,  0, 10, Vec[  24,    0,    0,    0,    0,    0,   30,    3,    3], Vec[0, 0, 0]),
	'業物の弓'         => Equip.new( 4, 2,  5,  0, 10, Vec[  33,    0,    0,    0,    0,    0,   41,    4,    4], Vec[0, 0, 0]),
	'名のある弓'       => Equip.new( 4, 2,  6,  0, 10, Vec[  44,    0,    0,    0,    0,    0,   55,    5,    5], Vec[0, 0, 0]),
	'匠の弓'           => Equip.new( 4, 2,  7,  0, 10, Vec[  57,    0,    0,    0,    0,    0,   71,    7,    7], Vec[0, 0, 0]),
	'竜殺しの弓'       => Equip.new( 4, 2,  8,  0, 10, Vec[  72,    0,    0,    0,    0,    0,   90,    9,    9], Vec[0, 0, 0]),
	'光り輝く弓'       => Equip.new( 4, 2,  9,  0, 10, Vec[  89,    0,    0,    0,    0,    0,  111,   11,   11], Vec[0, 0, 0]),
	'安物の弩'         => Equip.new( 5, 2,  1,  0, 10, Vec[   7,    0,    0,    0,    1,    0,    9,    2,    0], Vec[0, 0, 0]),
	'量産品の弩'       => Equip.new( 5, 2,  2,  0, 10, Vec[  10,    0,    0,    0,    1,    0,   13,    3,    0], Vec[0, 0, 0]),
	'一般的な弩'       => Equip.new( 5, 2,  3,  0, 10, Vec[  14,    0,    0,    0,    2,    0,   19,    4,    0], Vec[0, 0, 0]),
	'良質な弩'         => Equip.new( 5, 2,  4,  0, 10, Vec[  21,    0,    0,    0,    3,    0,   27,    6,    0], Vec[0, 0, 0]),
	'業物の弩'         => Equip.new( 5, 2,  5,  0, 10, Vec[  28,    0,    0,    0,    4,    0,   37,    8,    0], Vec[0, 0, 0]),
	'名のある弩'       => Equip.new( 5, 2,  6,  0, 10, Vec[  38,    0,    0,    0,    5,    0,   49,   11,    0], Vec[0, 0, 0]),
	'匠の弩'           => Equip.new( 5, 2,  7,  0, 10, Vec[  49,    0,    0,    0,    7,    0,   64,   14,    0], Vec[0, 0, 0]),
	'竜殺しの弩'       => Equip.new( 5, 2,  8,  0, 10, Vec[  63,    0,    0,    0,    9,    0,   81,   18,    0], Vec[0, 0, 0]),
	'光り輝く弩'       => Equip.new( 5, 2,  9,  0, 10, Vec[  77,    0,    0,    0,   11,    0,  100,   22,    0], Vec[0, 0, 0]),
	'安物の杖'         => Equip.new( 6, 2,  1,  0, 10, Vec[   5,    0,    0,    0,    3,    0,    0,    0,   11], Vec[0, 0, 0]),
	'量産品の杖'       => Equip.new( 6, 2,  2,  0, 10, Vec[   7,    0,    0,    0,    4,    0,    0,    0,   16], Vec[0, 0, 0]),
	'一般的な杖'       => Equip.new( 6, 2,  3,  0, 10, Vec[  10,    0,    0,    0,    6,    0,    0,    0,   23], Vec[0, 0, 0]),
	'良質な杖'         => Equip.new( 6, 2,  4,  0, 10, Vec[  15,    0,    0,    0,    9,    0,    0,    0,   33], Vec[0, 0, 0]),
	'業物の杖'         => Equip.new( 6, 2,  5,  0, 10, Vec[  20,    0,    0,    0,   12,    0,    0,    0,   45], Vec[0, 0, 0]),
	'名のある杖'       => Equip.new( 6, 2,  6,  0, 10, Vec[  27,    0,    0,    0,   16,    0,    0,    0,   60], Vec[0, 0, 0]),
	'匠の杖'           => Equip.new( 6, 2,  7,  0, 10, Vec[  35,    0,    0,    0,   21,    0,    0,    0,   78], Vec[0, 0, 0]),
	'竜殺しの杖'       => Equip.new( 6, 2,  8,  0, 10, Vec[  45,    0,    0,    0,   27,    0,    0,    0,   99], Vec[0, 0, 0]),
	'光り輝く杖'       => Equip.new( 6, 2,  9,  0, 10, Vec[  55,    0,    0,    0,   33,    0,    0,    0,  122], Vec[0, 0, 0]),
	'安物の本'         => Equip.new( 7, 2,  1,  0, 10, Vec[   8,    0,    2,    0,    2,    0,    0,    0,    8], Vec[0, 0, 0]),
	'量産品の本'       => Equip.new( 7, 2,  2,  0, 10, Vec[  12,    0,    3,    0,    3,    0,    0,    0,   12], Vec[0, 0, 0]),
	'一般的な本'       => Equip.new( 7, 2,  3,  0, 10, Vec[  17,    0,    4,    0,    4,    0,    0,    0,   17], Vec[0, 0, 0]),
	'良質な本'         => Equip.new( 7, 2,  4,  0, 10, Vec[  24,    0,    6,    0,    6,    0,    0,    0,   24], Vec[0, 0, 0]),
	'業物の本'         => Equip.new( 7, 2,  5,  0, 10, Vec[  33,    0,    8,    0,    8,    0,    0,    0,   33], Vec[0, 0, 0]),
	'名のある本'       => Equip.new( 7, 2,  6,  0, 10, Vec[  44,    0,   11,    0,   11,    0,    0,    0,   44], Vec[0, 0, 0]),
	'匠の本'           => Equip.new( 7, 2,  7,  0, 10, Vec[  57,    0,   14,    0,   14,    0,    0,    0,   57], Vec[0, 0, 0]),
	'竜殺しの本'       => Equip.new( 7, 2,  8,  0, 10, Vec[  72,    0,   18,    0,   18,    0,    0,    0,   72], Vec[0, 0, 0]),
	'光り輝く本'       => Equip.new( 7, 2,  9,  0, 10, Vec[  89,    0,   22,    0,   22,    0,    0,    0,   89], Vec[0, 0, 0]),
	'安物の兜'         => Equip.new( 8, 2,  1,  0, 10, Vec[   0,    5,    0,   15,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'量産品の兜'       => Equip.new( 8, 2,  2,  0, 10, Vec[   0,    8,    0,   25,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'一般的な兜'       => Equip.new( 8, 2,  3,  0, 10, Vec[   0,   12,    0,   37,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'良質な兜'         => Equip.new( 8, 2,  4,  0, 10, Vec[   0,   18,    0,   55,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'業物の兜'         => Equip.new( 8, 2,  5,  0, 10, Vec[   0,   25,    0,   77,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'名のある兜'       => Equip.new( 8, 2,  6,  0, 10, Vec[   0,   35,    0,  105,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'匠の兜'           => Equip.new( 8, 2,  7,  0, 10, Vec[   0,   45,    0,  137,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'竜殺しの兜'       => Equip.new( 8, 2,  8,  0, 10, Vec[   0,   58,    0,  175,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'光り輝く兜'       => Equip.new( 8, 2,  9,  0, 10, Vec[   0,   72,    0,  217,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'歴戦の兜'         => Equip.new( 8, 2, 10,  0, 10, Vec[   0,   88,    0,  265,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'安物の額当て'     => Equip.new( 9, 1,  1,  0, 10, Vec[   0,    3,    1,   10,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'量産品の額当て'   => Equip.new( 9, 1,  2,  0, 10, Vec[   0,    5,    1,   16,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'一般的な額当て'   => Equip.new( 9, 1,  3,  0, 10, Vec[   0,    7,    2,   25,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'良質な額当て'     => Equip.new( 9, 1,  4,  0, 10, Vec[   0,   11,    3,   36,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'業物の額当て'     => Equip.new( 9, 1,  5,  0, 10, Vec[   0,   15,    5,   51,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'名のある額当て'   => Equip.new( 9, 1,  6,  0, 10, Vec[   0,   21,    7,   70,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'匠の額当て'       => Equip.new( 9, 1,  7,  0, 10, Vec[   0,   27,    9,   91,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'竜殺しの額当て'   => Equip.new( 9, 1,  8,  0, 10, Vec[   0,   35,   11,  116,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'光り輝く額当て'   => Equip.new( 9, 1,  9,  0, 10, Vec[   0,   43,   14,  145,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'歴戦の額当て'     => Equip.new( 9, 1, 10,  0, 10, Vec[   0,   53,   17,  176,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'安物の帽子'       => Equip.new(10, 1,  1,  0, 10, Vec[   0,    2,    2,    7,    2,    0,    0,    0,    0], Vec[0, 0, 0]),
	'量産品の帽子'     => Equip.new(10, 1,  2,  0, 10, Vec[   0,    3,    3,   11,    3,    0,    0,    0,    0], Vec[0, 0, 0]),
	'一般的な帽子'     => Equip.new(10, 1,  3,  0, 10, Vec[   0,    5,    5,   17,    5,    0,    0,    0,    0], Vec[0, 0, 0]),
	'良質な帽子'       => Equip.new(10, 1,  4,  0, 10, Vec[   0,    7,    7,   25,    7,    0,    0,    0,    0], Vec[0, 0, 0]),
	'業物の帽子'       => Equip.new(10, 1,  5,  0, 10, Vec[   0,   10,   10,   36,   10,    0,    0,    0,    0], Vec[0, 0, 0]),
	'名のある帽子'     => Equip.new(10, 1,  6,  0, 10, Vec[   0,   14,   14,   49,   14,    0,    0,    0,    0], Vec[0, 0, 0]),
	'匠の帽子'         => Equip.new(10, 1,  7,  0, 10, Vec[   0,   18,   18,   64,   18,    0,    0,    0,    0], Vec[0, 0, 0]),
	'竜殺しの帽子'     => Equip.new(10, 1,  8,  0, 10, Vec[   0,   23,   23,   81,   23,    0,    0,    0,    0], Vec[0, 0, 0]),
	'光り輝く帽子'     => Equip.new(10, 1,  9,  0, 10, Vec[   0,   29,   29,  101,   29,    0,    0,    0,    0], Vec[0, 0, 0]),
	'歴戦の帽子'       => Equip.new(10, 1, 10,  0, 10, Vec[   0,   35,   35,  123,   35,    0,    0,    0,    0], Vec[0, 0, 0]),
	'安物のフード'     => Equip.new(11, 1,  1,  0, 10, Vec[   0,    2,    4,    4,    3,    0,    0,    0,    0], Vec[0, 0, 0]),
	'量産品のフード'   => Equip.new(11, 1,  2,  0, 10, Vec[   0,    3,    6,    6,    5,    0,    0,    0,    0], Vec[0, 0, 0]),
	'一般的なフード'   => Equip.new(11, 1,  3,  0, 10, Vec[   0,    5,   10,   10,    7,    0,    0,    0,    0], Vec[0, 0, 0]),
	'良質なフード'     => Equip.new(11, 1,  4,  0, 10, Vec[   0,    7,   14,   14,   11,    0,    0,    0,    0], Vec[0, 0, 0]),
	'業物のフード'     => Equip.new(11, 1,  5,  0, 10, Vec[   0,   10,   20,   20,   15,    0,    0,    0,    0], Vec[0, 0, 0]),
	'名のあるフード'   => Equip.new(11, 1,  6,  0, 10, Vec[   0,   14,   28,   28,   21,    0,    0,    0,    0], Vec[0, 0, 0]),
	'匠のフード'       => Equip.new(11, 1,  7,  0, 10, Vec[   0,   18,   36,   36,   27,    0,    0,    0,    0], Vec[0, 0, 0]),
	'竜殺しのフード'   => Equip.new(11, 1,  8,  0, 10, Vec[   0,   23,   46,   46,   35,    0,    0,    0,    0], Vec[0, 0, 0]),
	'光り輝くフード'   => Equip.new(11, 1,  9,  0, 10, Vec[   0,   29,   58,   58,   43,    0,    0,    0,    0], Vec[0, 0, 0]),
	'歴戦のフード'     => Equip.new(11, 1, 10,  0, 10, Vec[   0,   35,   70,   70,   53,    0,    0,    0,    0], Vec[0, 0, 0]),
	'安物の重鎧'       => Equip.new(12, 3,  1,  0, 10, Vec[   0,   12,    2,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'量産品の重鎧'     => Equip.new(12, 3,  2,  0, 10, Vec[   0,   20,    3,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'一般的な重鎧'     => Equip.new(12, 3,  3,  0, 10, Vec[   0,   30,    5,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'良質な重鎧'       => Equip.new(12, 3,  4,  0, 10, Vec[   0,   44,    7,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'業物の重鎧'       => Equip.new(12, 3,  5,  0, 10, Vec[   0,   62,   10,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'名のある重鎧'     => Equip.new(12, 3,  6,  0, 10, Vec[   0,   84,   14,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'匠の重鎧'         => Equip.new(12, 3,  7,  0, 10, Vec[   0,  110,   18,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'竜殺しの重鎧'     => Equip.new(12, 3,  8,  0, 10, Vec[   0,  140,   23,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'光り輝く重鎧'     => Equip.new(12, 3,  9,  0, 10, Vec[   0,  174,   29,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'歴戦の重鎧'       => Equip.new(12, 3, 10,  0, 10, Vec[   0,  212,   35,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'安物の軽鎧'       => Equip.new(13, 2,  1,  0, 10, Vec[   0,    8,    4,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'量産品の軽鎧'     => Equip.new(13, 2,  2,  0, 10, Vec[   0,   13,    6,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'一般的な軽鎧'     => Equip.new(13, 2,  3,  0, 10, Vec[   0,   20,   10,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'良質な軽鎧'       => Equip.new(13, 2,  4,  0, 10, Vec[   0,   29,   14,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'業物の軽鎧'       => Equip.new(13, 2,  5,  0, 10, Vec[   0,   41,   20,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'名のある軽鎧'     => Equip.new(13, 2,  6,  0, 10, Vec[   0,   41,   20,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'匠の軽鎧'         => Equip.new(13, 2,  7,  0, 10, Vec[   0,   56,   28,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'竜殺しの軽鎧'     => Equip.new(13, 2,  8,  0, 10, Vec[   0,   73,   36,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'光り輝く軽鎧'     => Equip.new(13, 2,  9,  0, 10, Vec[   0,   93,   46,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'歴戦の軽鎧'       => Equip.new(13, 2, 10,  0, 10, Vec[   0,  116,   58,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'安物の服'         => Equip.new(14, 1,  1,  0, 10, Vec[   0,    6,    6,    0,    0,    0,    3,    0,    0], Vec[0, 0, 0]),
	'量産品の服'       => Equip.new(14, 1,  2,  0, 10, Vec[   0,   10,   10,    0,    0,    0,    5,    0,    0], Vec[0, 0, 0]),
	'一般的な服'       => Equip.new(14, 1,  3,  0, 10, Vec[   0,   15,   15,    0,    0,    0,    7,    0,    0], Vec[0, 0, 0]),
	'良質な服'         => Equip.new(14, 1,  4,  0, 10, Vec[   0,   22,   22,    0,    0,    0,   11,    0,    0], Vec[0, 0, 0]),
	'業物の服'         => Equip.new(14, 1,  5,  0, 10, Vec[   0,   31,   31,    0,    0,    0,   15,    0,    0], Vec[0, 0, 0]),
	'名のある服'       => Equip.new(14, 1,  6,  0, 10, Vec[   0,   42,   42,    0,    0,    0,   21,    0,    0], Vec[0, 0, 0]),
	'匠の服'           => Equip.new(14, 1,  7,  0, 10, Vec[   0,   55,   55,    0,    0,    0,   27,    0,    0], Vec[0, 0, 0]),
	'竜殺しの服'       => Equip.new(14, 1,  8,  0, 10, Vec[   0,   70,   70,    0,    0,    0,   35,    0,    0], Vec[0, 0, 0]),
	'光り輝く服'       => Equip.new(14, 1,  9,  0, 10, Vec[   0,   87,   87,    0,    0,    0,   43,    0,    0], Vec[0, 0, 0]),
	'歴戦の服'         => Equip.new(14, 1, 10,  0, 10, Vec[   0,  106,  106,    0,    0,    0,   53,    0,    0], Vec[0, 0, 0]),
	'安物の法衣'       => Equip.new(15, 1,  1,  0, 10, Vec[   0,    5,    9,    0,    0,    0,    0,    0,    3], Vec[0, 0, 0]),
	'量産品の法衣'     => Equip.new(15, 1,  2,  0, 10, Vec[   0,    8,   15,    0,    0,    0,    0,    0,    5], Vec[0, 0, 0]),
	'一般的な法衣'     => Equip.new(15, 1,  3,  0, 10, Vec[   0,   12,   22,    0,    0,    0,    0,    0,    7], Vec[0, 0, 0]),
	'良質な法衣'       => Equip.new(15, 1,  4,  0, 10, Vec[   0,   18,   33,    0,    0,    0,    0,    0,   11], Vec[0, 0, 0]),
	'業物の法衣'       => Equip.new(15, 1,  5,  0, 10, Vec[   0,   25,   46,    0,    0,    0,    0,    0,   15], Vec[0, 0, 0]),
	'名のある法衣'     => Equip.new(15, 1,  6,  0, 10, Vec[   0,   35,   63,    0,    0,    0,    0,    0,   21], Vec[0, 0, 0]),
	'匠の法衣'         => Equip.new(15, 1,  7,  0, 10, Vec[   0,   45,   82,    0,    0,    0,    0,    0,   27], Vec[0, 0, 0]),
	'竜殺しの法衣'     => Equip.new(15, 1,  8,  0, 10, Vec[   0,   58,  105,    0,    0,    0,    0,    0,   35], Vec[0, 0, 0]),
	'光り輝く法衣'     => Equip.new(15, 1,  9,  0, 10, Vec[   0,   72,  130,    0,    0,    0,    0,    0,   43], Vec[0, 0, 0]),
	'歴戦の法衣'       => Equip.new(15, 1, 10,  0, 10, Vec[   0,   88,  159,    0,    0,    0,    0,    0,   53], Vec[0, 0, 0]),
	'安物の盾'         => Equip.new(16, 2,  1,  0, 10, Vec[   0,    7,    5,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'量産品の盾'       => Equip.new(16, 2,  2,  0, 10, Vec[   0,   11,    8,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'一般的な盾'       => Equip.new(16, 2,  3,  0, 10, Vec[   0,   17,   12,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'良質な盾'         => Equip.new(16, 2,  4,  0, 10, Vec[   0,   25,   18,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'業物の盾'         => Equip.new(16, 2,  5,  0, 10, Vec[   0,   36,   25,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'名のある盾'       => Equip.new(16, 2,  6,  0, 10, Vec[   0,   49,   35,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'匠の盾'           => Equip.new(16, 2,  7,  0, 10, Vec[   0,   64,   45,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'竜殺しの盾'       => Equip.new(16, 2,  8,  0, 10, Vec[   0,   81,   58,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'光り輝く盾'       => Equip.new(16, 2,  9,  0, 10, Vec[   0,  101,   72,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'歴戦の盾'         => Equip.new(16, 2, 10,  0, 10, Vec[   0,  123,   88,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'安物の小手'       => Equip.new(17, 1,  1,  0, 10, Vec[   3,    4,    3,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'量産品の小手'     => Equip.new(17, 1,  2,  0, 10, Vec[   5,    6,    5,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'一般的な小手'     => Equip.new(17, 1,  3,  0, 10, Vec[   7,   10,    7,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'良質な小手'       => Equip.new(17, 1,  4,  0, 10, Vec[  11,   14,   11,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'業物の小手'       => Equip.new(17, 1,  5,  0, 10, Vec[  15,   20,   15,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'名のある小手'     => Equip.new(17, 1,  6,  0, 10, Vec[  21,   28,   21,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'匠の小手'         => Equip.new(17, 1,  7,  0, 10, Vec[  27,   36,   27,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'竜殺しの小手'     => Equip.new(17, 1,  8,  0, 10, Vec[  35,   46,   35,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'光り輝く小手'     => Equip.new(17, 1,  9,  0, 10, Vec[  43,   58,   43,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'歴戦の小手'       => Equip.new(17, 1, 10,  0, 10, Vec[  53,   70,   53,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'安物の手袋'       => Equip.new(18, 1,  1,  0, 10, Vec[   0,    4,    5,    0,    0,    0,    3,    0,    0], Vec[0, 0, 0]),
	'量産品の手袋'     => Equip.new(18, 1,  2,  0, 10, Vec[   0,    6,    8,    0,    0,    0,    5,    0,    0], Vec[0, 0, 0]),
	'一般的な手袋'     => Equip.new(18, 1,  3,  0, 10, Vec[   0,   10,   12,    0,    0,    0,    7,    0,    0], Vec[0, 0, 0]),
	'良質な手袋'       => Equip.new(18, 1,  4,  0, 10, Vec[   0,   14,   18,    0,    0,    0,   11,    0,    0], Vec[0, 0, 0]),
	'業物の手袋'       => Equip.new(18, 1,  5,  0, 10, Vec[   0,   20,   25,    0,    0,    0,   15,    0,    0], Vec[0, 0, 0]),
	'名のある手袋'     => Equip.new(18, 1,  6,  0, 10, Vec[   0,   28,   35,    0,    0,    0,   21,    0,    0], Vec[0, 0, 0]),
	'匠の手袋'         => Equip.new(18, 1,  7,  0, 10, Vec[   0,   36,   45,    0,    0,    0,   27,    0,    0], Vec[0, 0, 0]),
	'竜殺しの手袋'     => Equip.new(18, 1,  8,  0, 10, Vec[   0,   46,   58,    0,    0,    0,   35,    0,    0], Vec[0, 0, 0]),
	'光り輝く手袋'     => Equip.new(18, 1,  9,  0, 10, Vec[   0,   58,   72,    0,    0,    0,   43,    0,    0], Vec[0, 0, 0]),
	'歴戦の手袋'       => Equip.new(18, 1, 10,  0, 10, Vec[   0,   70,   88,    0,    0,    0,   53,    0,    0], Vec[0, 0, 0]),
	'安物の腕輪'       => Equip.new(19, 1,  1,  0, 10, Vec[   0,    3,    6,    0,    0,    0,    0,    0,    3], Vec[0, 0, 0]),
	'量産品の腕輪'     => Equip.new(19, 1,  2,  0, 10, Vec[   0,    5,   10,    0,    0,    0,    0,    0,    5], Vec[0, 0, 0]),
	'一般的な腕輪'     => Equip.new(19, 1,  3,  0, 10, Vec[   0,    7,   15,    0,    0,    0,    0,    0,    7], Vec[0, 0, 0]),
	'良質な腕輪'       => Equip.new(19, 1,  4,  0, 10, Vec[   0,   11,   22,    0,    0,    0,    0,    0,   11], Vec[0, 0, 0]),
	'業物の腕輪'       => Equip.new(19, 1,  5,  0, 10, Vec[   0,   15,   31,    0,    0,    0,    0,    0,   15], Vec[0, 0, 0]),
	'名のある腕輪'     => Equip.new(19, 1,  6,  0, 10, Vec[   0,   21,   42,    0,    0,    0,    0,    0,   21], Vec[0, 0, 0]),
	'匠の腕輪'         => Equip.new(19, 1,  7,  0, 10, Vec[   0,   27,   44,    0,    0,    0,    0,    0,   27], Vec[0, 0, 0]),
	'竜殺しの腕輪'     => Equip.new(19, 1,  8,  0, 10, Vec[   0,   35,   70,    0,    0,    0,    0,    0,   35], Vec[0, 0, 0]),
	'光り輝く腕輪'     => Equip.new(19, 1,  9,  0, 10, Vec[   0,   43,   87,    0,    0,    0,    0,    0,   43], Vec[0, 0, 0]),
	'歴戦の腕輪'       => Equip.new(19, 1, 10,  0, 10, Vec[   0,   53,  106,    0,    0,    0,    0,    0,   53], Vec[0, 0, 0]),
	'安物の脛当て'     => Equip.new(20, 2,  1,  0, 10, Vec[   0,    7,    2,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'量産品の脛当て'   => Equip.new(20, 2,  2,  0, 10, Vec[   0,   11,    3,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'一般的な脛当て'   => Equip.new(20, 2,  3,  0, 10, Vec[   0,   17,    5,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'良質な脛当て'     => Equip.new(20, 2,  4,  0, 10, Vec[   0,   25,    7,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'業物の脛当て'     => Equip.new(20, 2,  5,  0, 10, Vec[   0,   36,   10,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'名のある脛当て'   => Equip.new(20, 2,  6,  0, 10, Vec[   0,   49,   14,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'匠の脛当て'       => Equip.new(20, 2,  7,  0, 10, Vec[   0,   64,   18,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'竜殺しの脛当て'   => Equip.new(20, 2,  8,  0, 10, Vec[   0,   81,   23,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'光り輝く脛当て'   => Equip.new(20, 2,  9,  0, 10, Vec[   0,  101,   29,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'歴戦の脛当て'     => Equip.new(20, 2, 10,  0, 10, Vec[   0,  123,   35,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'安物のブーツ'     => Equip.new(21, 1,  1,  0, 10, Vec[   0,    4,    4,    0,    0,    0,    0,    2,    0], Vec[0, 0, 0]),
	'量産品のブーツ'   => Equip.new(21, 1,  2,  0, 10, Vec[   0,    6,    6,    0,    0,    0,    0,    3,    0], Vec[0, 0, 0]),
	'一般的なブーツ'   => Equip.new(21, 1,  3,  0, 10, Vec[   0,   10,   10,    0,    0,    0,    0,    5,    0], Vec[0, 0, 0]),
	'良質なブーツ'     => Equip.new(21, 1,  4,  0, 10, Vec[   0,   14,   14,    0,    0,    0,    0,    7,    0], Vec[0, 0, 0]),
	'業物のブーツ'     => Equip.new(21, 1,  5,  0, 10, Vec[   0,   20,   20,    0,    0,    0,    0,   10,    0], Vec[0, 0, 0]),
	'名のあるブーツ'   => Equip.new(21, 1,  6,  0, 10, Vec[   0,   28,   28,    0,    0,    0,    0,   14,    0], Vec[0, 0, 0]),
	'匠のブーツ'       => Equip.new(21, 1,  7,  0, 10, Vec[   0,   36,   36,    0,    0,    0,    0,   18,    0], Vec[0, 0, 0]),
	'竜殺しのブーツ'   => Equip.new(21, 1,  8,  0, 10, Vec[   0,   46,   46,    0,    0,    0,    0,   23,    0], Vec[0, 0, 0]),
	'光り輝くブーツ'   => Equip.new(21, 1,  9,  0, 10, Vec[   0,   58,   58,    0,    0,    0,    0,   29,    0], Vec[0, 0, 0]),
	'歴戦のブーツ'     => Equip.new(21, 1, 10,  0, 10, Vec[   0,   70,   70,    0,    0,    0,    0,   35,    0], Vec[0, 0, 0]),
	'安物の靴'         => Equip.new(22, 1,  1,  0, 10, Vec[   0,    3,    3,    0,    0,    0,    0,    4,    0], Vec[0, 0, 0]),
	'量産品の靴'       => Equip.new(22, 1,  2,  0, 10, Vec[   0,    5,    5,    0,    0,    0,    0,    6,    0], Vec[0, 0, 0]),
	'一般的な靴'       => Equip.new(22, 1,  3,  0, 10, Vec[   0,    7,    7,    0,    0,    0,    0,   10,    0], Vec[0, 0, 0]),
	'良質な靴'         => Equip.new(22, 1,  4,  0, 10, Vec[   0,   11,   11,    0,    0,    0,    0,   14,    0], Vec[0, 0, 0]),
	'業物の靴'         => Equip.new(22, 1,  5,  0, 10, Vec[   0,   15,   15,    0,    0,    0,    0,   20,    0], Vec[0, 0, 0]),
	'名のある靴'       => Equip.new(22, 1,  6,  0, 10, Vec[   0,   21,   21,    0,    0,    0,    0,   28,    0], Vec[0, 0, 0]),
	'匠の靴'           => Equip.new(22, 1,  7,  0, 10, Vec[   0,   27,   27,    0,    0,    0,    0,   36,    0], Vec[0, 0, 0]),
	'竜殺しの靴'       => Equip.new(22, 1,  8,  0, 10, Vec[   0,   35,   35,    0,    0,    0,    0,   46,    0], Vec[0, 0, 0]),
	'光り輝く靴'       => Equip.new(22, 1,  9,  0, 10, Vec[   0,   43,   43,    0,    0,    0,    0,   58,    0], Vec[0, 0, 0]),
	'歴戦の靴'         => Equip.new(22, 1, 10,  0, 10, Vec[   0,   53,   53,    0,    0,    0,    0,   70,    0], Vec[0, 0, 0]),
	'安物のサンダル'   => Equip.new(23, 1,  1,  0, 10, Vec[   0,    2,    5,    0,    0,    0,    0,    3,    0], Vec[0, 0, 0]),
	'量産品のサンダル' => Equip.new(23, 1,  2,  0, 10, Vec[   0,    3,    8,    0,    0,    0,    0,    5,    0], Vec[0, 0, 0]),
	'一般的なサンダル' => Equip.new(23, 1,  3,  0, 10, Vec[   0,    5,   12,    0,    0,    0,    0,    7,    0], Vec[0, 0, 0]),
	'良質なサンダル'   => Equip.new(23, 1,  4,  0, 10, Vec[   0,    7,   18,    0,    0,    0,    0,   11,    0], Vec[0, 0, 0]),
	'業物のサンダル'   => Equip.new(23, 1,  5,  0, 10, Vec[   0,   10,   25,    0,    0,    0,    0,   15,    0], Vec[0, 0, 0]),
	'名のあるサンダル' => Equip.new(23, 1,  6,  0, 10, Vec[   0,   14,   35,    0,    0,    0,    0,   21,    0], Vec[0, 0, 0]),
	'匠のサンダル'     => Equip.new(23, 1,  7,  0, 10, Vec[   0,   18,   45,    0,    0,    0,    0,   27,    0], Vec[0, 0, 0]),
	'竜殺しのサンダル' => Equip.new(23, 1,  8,  0, 10, Vec[   0,   23,   58,    0,    0,    0,    0,   35,    0], Vec[0, 0, 0]),
	'光り輝くサンダル' => Equip.new(23, 1,  9,  0, 10, Vec[   0,   29,   72,    0,    0,    0,    0,   43,    0], Vec[0, 0, 0]),
	'歴戦のサンダル'   => Equip.new(23, 1, 10,  0, 10, Vec[   0,   35,   88,    0,    0,    0,    0,   53,    0], Vec[0, 0, 0]),
	'安物のブローチ'   => Equip.new(24, 1,  1,  0, 10, Vec[   0,    0,    0,    0,    0,    5,    0,    0,    0], Vec[0, 0, 0]),
	'量産品のブローチ' => Equip.new(24, 1,  2,  0, 10, Vec[   0,    0,    0,    0,    0,    8,    0,    0,    0], Vec[0, 0, 0]),
	'一般的なブローチ' => Equip.new(24, 1,  3,  0, 10, Vec[   0,    0,    0,    0,    0,   12,    0,    0,    0], Vec[0, 0, 0]),
	'良質なブローチ'   => Equip.new(24, 1,  4,  0, 10, Vec[   0,    0,    0,    0,    0,   18,    0,    0,    0], Vec[0, 0, 0]),
	'業物のブローチ'   => Equip.new(24, 1,  5,  0, 10, Vec[   0,    0,    0,    0,    0,   25,    0,    0,    0], Vec[0, 0, 0]),
	'名のあるブローチ' => Equip.new(24, 1,  6,  0, 10, Vec[   0,    0,    0,    0,    0,   35,    0,    0,    0], Vec[0, 0, 0]),
	'匠のブローチ'     => Equip.new(24, 1,  7,  0, 10, Vec[   0,    0,    0,    0,    0,   45,    0,    0,    0], Vec[0, 0, 0]),
	'竜殺しのブローチ' => Equip.new(24, 1,  8,  0, 10, Vec[   0,    0,    0,    0,    0,   58,    0,    0,    0], Vec[0, 0, 0]),
	'光り輝くブローチ' => Equip.new(24, 1,  9,  0, 10, Vec[   0,    0,    0,    0,    0,   72,    0,    0,    0], Vec[0, 0, 0]),
	'歴戦のブローチ'   => Equip.new(24, 1, 10,  0, 10, Vec[   0,    0,    0,    0,    0,   88,    0,    0,    0], Vec[0, 0, 0]),
	'安物の指輪'       => Equip.new(25, 1,  1,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    5,    0,    0], Vec[0, 0, 0]),
	'量産品の指輪'     => Equip.new(25, 1,  2,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    8,    0,    0], Vec[0, 0, 0]),
	'一般的な指輪'     => Equip.new(25, 1,  3,  0, 10, Vec[   0,    0,    0,    0,    0,    0,   12,    0,    0], Vec[0, 0, 0]),
	'良質な指輪'       => Equip.new(25, 1,  4,  0, 10, Vec[   0,    0,    0,    0,    0,    0,   18,    0,    0], Vec[0, 0, 0]),
	'業物の指輪'       => Equip.new(25, 1,  5,  0, 10, Vec[   0,    0,    0,    0,    0,    0,   25,    0,    0], Vec[0, 0, 0]),
	'名のある指輪'     => Equip.new(25, 1,  6,  0, 10, Vec[   0,    0,    0,    0,    0,    0,   35,    0,    0], Vec[0, 0, 0]),
	'匠の指輪'         => Equip.new(25, 1,  7,  0, 10, Vec[   0,    0,    0,    0,    0,    0,   45,    0,    0], Vec[0, 0, 0]),
	'竜殺しの指輪'     => Equip.new(25, 1,  8,  0, 10, Vec[   0,    0,    0,    0,    0,    0,   58,    0,    0], Vec[0, 0, 0]),
	'光り輝く指輪'     => Equip.new(25, 1,  9,  0, 10, Vec[   0,    0,    0,    0,    0,    0,   72,    0,    0], Vec[0, 0, 0]),
	'歴戦の指輪'       => Equip.new(25, 1, 10,  0, 10, Vec[   0,    0,    0,    0,    0,    0,   88,    0,    0], Vec[0, 0, 0]),
	'安物の首飾り'     => Equip.new(26, 1,  1,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    5,    0], Vec[0, 0, 0]),
	'量産品の首飾り'   => Equip.new(26, 1,  2,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    8,    0], Vec[0, 0, 0]),
	'一般的な首飾り'   => Equip.new(26, 1,  3,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,   12,    0], Vec[0, 0, 0]),
	'良質な首飾り'     => Equip.new(26, 1,  4,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,   18,    0], Vec[0, 0, 0]),
	'業物の首飾り'     => Equip.new(26, 1,  5,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,   25,    0], Vec[0, 0, 0]),
	'名のある首飾り'   => Equip.new(26, 1,  6,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,   35,    0], Vec[0, 0, 0]),
	'匠の首飾り'       => Equip.new(26, 1,  7,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,   45,    0], Vec[0, 0, 0]),
	'竜殺しの首飾り'   => Equip.new(26, 1,  8,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,   58,    0], Vec[0, 0, 0]),
	'光り輝く首飾り'   => Equip.new(26, 1,  9,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,   72,    0], Vec[0, 0, 0]),
	'歴戦の首飾り'     => Equip.new(26, 1, 10,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,   88,    0], Vec[0, 0, 0]),
	'安物の耳飾り'     => Equip.new(27, 1,  1,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,    5], Vec[0, 0, 0]),
	'量産品の耳飾り'   => Equip.new(27, 1,  2,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,    8], Vec[0, 0, 0]),
	'一般的な耳飾り'   => Equip.new(27, 1,  3,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,   12], Vec[0, 0, 0]),
	'良質な耳飾り'     => Equip.new(27, 1,  4,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,   18], Vec[0, 0, 0]),
	'業物の耳飾り'     => Equip.new(27, 1,  5,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,   25], Vec[0, 0, 0]),
	'名のある耳飾り'   => Equip.new(27, 1,  6,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,   35], Vec[0, 0, 0]),
	'匠の耳飾り'       => Equip.new(27, 1,  7,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,   45], Vec[0, 0, 0]),
	'竜殺しの耳飾り'   => Equip.new(27, 1,  8,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,   58], Vec[0, 0, 0]),
	'光り輝く耳飾り'   => Equip.new(27, 1,  9,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,   72], Vec[0, 0, 0]),
	'歴戦の耳飾り'     => Equip.new(27, 1, 10,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,   88], Vec[0, 0, 0]),
	'紫色小太刀'       => Equip.new( 0, 1, 10,  0,  5, Vec[ 200,    0,    0,    0,    0,    0,    0,   80,    0], Vec[0, 0, 0]),
	'氷炎二刀'         => Equip.new( 1, 2, 10,  0,  5, Vec[ 170,    0,    0,    0,    0,    0,    0,    0,  100], Vec[1, 0, 1]),
	'ムーンライト'     => Equip.new( 2, 2, 10,  0,  4, Vec[ 270,    0,    0,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'大腿骨砕き'       => Equip.new( 3, 3, 10,  0,  8, Vec[ 250,    0,    0,    0,    0,   20,    0,    0,    0], Vec[0, 0, 0]),
	'小竜咆哮'         => Equip.new( 4, 1, 10,  1,  4, Vec[  50,    0,    0,    0,    0,    0,  120,   50,    0], Vec[0, 0, 0]),
	'軍用弩'           => Equip.new( 5, 2, 10,  3,  0, Vec[ 300,    0,    0,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'大樹の杖'         => Equip.new( 6, 1, 10,  1,  6, Vec[   0,    0,   50,    0,   20,    0,    0,    0,  170], Vec[0, 0, 0]),
	'闇の書'           => Equip.new( 7, 1, 10, 11,  4, Vec[   0,    0,    0,    0,    0,    0,    0,    0,  200], Vec[0, 0, 0]),
	'グランクニーヴ'   => Equip.new( 0, 2, 10,  0,  5, Vec[ 150,    0,   50,    0,    0,    0,  100,   80,    0], Vec[1, 1, 1]),
	'デグルガウス'     => Equip.new( 1, 3, 10,  0,  5, Vec[ 220,    0,    0,    0,    0,   10,   20,   75,   60], Vec[0, 0, 0]),
	'竜剣ラウ'         => Equip.new( 2, 3, 10,  0,  4, Vec[ 240,   50,    0,  100,    0,    0,   50,    0,  100], Vec[0, 0, 0]),
	'覇王戦斧'         => Equip.new( 3, 4, 10,  0,  8, Vec[ 350,    0,    0,  100,    0,   50,    0,   20,    0], Vec[0, 0, 0]),
	'サジタリウス'     => Equip.new( 4, 3, 10,  1,  4, Vec[ 100,    0,    0,   50,    0,   30,  200,   30,   30], Vec[1, 1, 1]),
	'炎龍の息吹'       => Equip.new( 5, 3, 10,  3,  0, Vec[ 100,    0,    0,    0,   10,    0,  140,   30,    0], Vec[5, 0, 0]),
	'万物の杖'         => Equip.new( 6, 2, 10,  1,  6, Vec[  50,    0,    0,   20,   20,    0,   50,    0,  250], Vec[0, 0, 0]),
	'聖典'             => Equip.new( 7, 2, 10, 11,  4, Vec[ 100,    0,  100,   50,    0,    0,    0,    0,  200], Vec[0, 0, 0]),
	'陽炎の兜'         => Equip.new( 8, 3, 10,  2,  8, Vec[   0,  150,  100, 1000,    0,    0,    0,    0,    0], Vec[3, 0, 0]),
	'ボロボロな服'     => Equip.new(14, 1,  1,  2, 10, Vec[   0,    2,    1,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'異界の法衣'       => Equip.new(15, 2, 10,  2, 10, Vec[   0,  100,  400,  100,   10,    0,    0,    0,   50], Vec[1, 1, 1]),
	'竜盾デグノル'     => Equip.new(16, 3, 10,  2, 10, Vec[   0,  300,  250,  300,    0,    0,  150,    0,    0], Vec[0, 0, 3]),
	'天鬼の靴'         => Equip.new(22, 2, 10,  2, 10, Vec[   0,  100,  200,    0,   50,    0,    0,  200,    0], Vec[0, 3, 0]),
	'古びたペンダント' => Equip.new(27, 1, 10,  0,  6, Vec[   0,    0,    0,   50,    5,    0,    0,    0,    0], Vec[1, 1, 1]),
	'劣悪な短剣'       => Equip.new( 0, 1,  1,  0, 10, Vec[   5,    0,    0,    0,    0,    0,    1,    1,    0], Vec[0, 0, 0]),
	'劣悪な双短剣'     => Equip.new( 1, 2,  1,  0, 10, Vec[   7,    0,    0,    0,    0,    0,    0,    1,    0], Vec[0, 0, 0]),
	'劣悪な剣'         => Equip.new( 2, 2,  1,  0, 10, Vec[   6,    0,    0,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'劣悪な斧'         => Equip.new( 3, 3,  1,  0, 10, Vec[   9,    0,    0,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'劣悪な弓'         => Equip.new( 4, 1,  1,  1, 10, Vec[   3,    0,    0,    0,    0,    0,    4,    0,    0], Vec[0, 0, 0]),
	'劣悪な弩'         => Equip.new( 5, 2,  1,  1, 10, Vec[   4,    0,    0,    0,    0,    0,    2,    0,    0], Vec[0, 0, 0]),
	'劣悪な杖'         => Equip.new( 6, 2,  1,  4, 10, Vec[   1,    0,    0,    0,    0,    0,    0,    0,    5], Vec[0, 0, 0]),
	'劣悪な本'         => Equip.new( 7, 2,  1, 11, 10, Vec[   5,    0,    0,    0,    0,    0,    0,    0,    3], Vec[0, 0, 0]),
	'劣悪な重鎧'       => Equip.new(12, 3,  1,  0, 10, Vec[   0,    7,    0,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'劣悪な軽鎧'       => Equip.new(13, 2,  1,  3, 10, Vec[   0,    4,    0,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'劣悪な服'         => Equip.new(14, 1,  1,  2, 10, Vec[   0,    2,    1,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'劣悪なローブ'     => Equip.new(15, 1,  1,  2, 10, Vec[   0,    1,    3,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'劣悪な盾'         => Equip.new(16, 1,  1,  0, 10, Vec[   0,    4,    0,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
	'劣悪な小手'       => Equip.new(17, 1,  1,  0, 10, Vec[   0,    2,    0,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0])
}
SystemEquipRegexp =
Hash.new

Class Method Summary collapse

Class Method Details

.check_string(str) ⇒ Object



232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
# File 'lib/mgmg/utils.rb', line 232

module_function def check_string(str)
	str = str.gsub(/[\s \\]/, '')
	if m = CharacterList.match(str)
		raise InvalidCharacterError.new(m)
	end
	levels = [0, 0]
	str.each_char do |c|
		if c == '('
			if levels[0] == 0
				levels[0] = 1
			else
				raise InvalidBracketError.new("parentheses cannot be nested")
			end
		elsif c == ')'
			if levels[0] == 0
				raise InvalidBracketError.new("parentheses must be opened before closing")
			else
				levels[0] -= 1
			end
		elsif c == '['
			if levels[0] != 0
				raise InvalidBracketError.new("brackets cannot be nested in parentheses")
			else
				levels[1] += 1
			end
		elsif c == ']'
			if levels[0] != 0
				raise InvalidBracketError.new("parentheses must be closed before closing brackets")
			elsif levels[1] == 0
				raise InvalidBracketError.new("brackets must be opened before closing")
			else
				levels[1] -= 1
			end
		end
	end
	if levels[0] != 0
		raise InvalidBracketError.new("parentheses must be closed")
	elsif levels[1] != 0
		raise InvalidBracketError.new("brackets must be closed")
	end
	str
end

.clear_cacheObject



226
227
228
229
# File 'lib/mgmg/utils.rb', line 226

module_function def clear_cache
	CacheMLS.clear; Equip::Cache.clear; Equip::CacheML.clear; TPolynomial::Cache.clear; IR::Cache.clear
	nil
end

.cuisine(*arg) ⇒ Object



124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# File 'lib/mgmg/cuisine.rb', line 124

module_function def cuisine(*arg)
	case arg.size
	when 3
		if arg.all?{ |e| e.kind_of?(Integer) } then
			Cuisine.new( Vec[*arg] )
		else
			raise ArgumentError, "All the cuisine parameters must be Integer."
		end
	when 1
		SystemCuisine[arg[0]] or raise ArgumentError, "The cuisine name `#{arg[0]}' is not supported."
	when 4
		Cuisine.cook(*arg)
	else
		raise ArgumentError, 'The number of argument must be 1, 3 or 4.'
	end
end

.efficient_list(recipes, start, term, out = nil, params = [:defaults], separator: ',', header: true, **kw) ⇒ Object



750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
# File 'lib/mgmg/search.rb', line 750

module_function def efficient_list(recipes, start, term, out=nil, params=[:defaults], separator: ',', header: true, **kw)
	i = params.index(:defaults)
	if i
		params[i] = [:smith, :armor, :comp, :exp, :para, :name]
		params.flatten!
	end
	ret = nil
	if out.kind_of?(String)
		File.open(out, 'w', **kw) do |f|
			ret = _el_sub(f, recipes, start, term, params, header, separator)
		end
	else
		ret = _el_sub(nil, recipes, start, term, params, header, separator)
	end
	ret
end

.exp(smith, armor, comp = armor.tap{armor=0}) ⇒ Object



137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# File 'lib/mgmg/utils.rb', line 137

module_function def exp(smith, armor, comp=armor.tap{armor=0})
	if armor <= 0
		if smith <= 0
			if comp <= 0
				0
			else
				(2*((comp-1)**2)) + 2
			end
		else
			if comp <= 0
				((smith-1)**2) + 1
			else
				((smith-1)**2) + (2*((comp-1)**2)) + 3
			end
		end
	else
		if smith <= 0
			if comp <= 0
				((armor-1)**2) + 1
			else
				((armor-1)**2) + (2*((comp-1)**2)) + 3
			end
		else
			if comp <= 0
				((smith-1)**2) + ((armor-1)**2) + 2
			else
				((smith-1)**2) + ((armor-1)**2) + (2*((comp-1)**2)) + 4
			end
		end
	end
end

.fib_init(min, max) ⇒ Object



515
516
517
518
519
520
521
522
# File 'lib/mgmg/search.rb', line 515

def fib_init(min, max)
	z = min-1
	a, b = 2, 3
	while z + b < max do
		a, b = b, a+b
	end
	[z, z+b-a, z+a, z+b]
end

.find_lowerbound(a, b, para, start, term, opt_a: Option.new, opt_b: Option.new) ⇒ Object

Raises:



527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'lib/mgmg/search.rb', line 527

module_function def find_lowerbound(a, b, para, start, term, opt_a: Option.new, opt_b: Option.new)
	if term <= start
		raise ArgumentError, "start < term is needed, (start, term) = (#{start}, #{term}) are given"
	end
	if a.kind_of?(Recipe)
		opt_a = a.option.dup
		a = a.recipe.dup
	else
		opt_a = opt_a.dup.set_default(a)
	end
	if b.kind_of?(Recipe)
		opt_b = b.option.dup
		b = b.recipe.dup
	else
		opt_b = opt_b.dup.set_default(b)
	end
	sca, scb = a.search(para, start, opt: opt_a), b.search(para, start, opt: opt_b)
	ea, eb = Mgmg.exp(*sca), Mgmg.exp(*scb)
	pa, pb = opt_a.irep.para_call(para, *sca), opt_b.irep.para_call(para, *scb)
	if eb < ea || ( ea == eb && pa < pb )
		a, b, opt_a, opt_b, sca, scb, ea, eb = b, a, opt_b, opt_a, scb, sca, eb, ea
	elsif eb == ea && pa == pb
		raise Mgmg::SearchCutException, "given recipes are equivalent at start target=#{start.comma3}"
	end
	scat, scbt = a.search(para, term, opt: opt_a), b.search(para, term, opt: opt_b)
	eat, ebt = Mgmg.exp(*scat), Mgmg.exp(*scbt)
	if eat < ebt || ( eat == ebt && opt_b.irep.para_call(para, *scbt) <= opt_a.irep.para_call(para, *scat) )
		raise Mgmg::SearchCutException, "given recipes will never be reversed from start target=#{start.comma3} until term target=#{term.comma3}"
	end
	
	loop do
		loop do
			foo = a.find_max(para, eb, opt: opt_a)
			break if sca == foo
			bar = opt_a.irep.para_call(para, *foo)
			break if bar < pa
			sca, pa = foo, bar
			scb = b.search(para, pa, opt: opt_b)
			foo = Mgmg.exp(*scb)
			break if eb == foo
			eb = foo
		end
		ea = Mgmg.exp(*sca)
		if (eb <= ea and pa <= pb and (eb+pa)!=(ea+pb)) or (eb < ea and sca == a.search(para, pb, opt: opt_a)) then
			until ea < eb || ( ea == eb && pb < pa )
				sca = a.find_max(para, ea-1, opt: opt_a)
				ea, pa = Mgmg.exp(*sca), opt_a.irep.para_call(para, *sca)
			end
			return [pa, pb]
		end
		tag = pa + Eighth
		raise Mgmg::SearchCutException, "given recipes are never reversed from start target=#{start.comma3} until term target=#{term.comma3}" if term < tag
		sca, scb = a.search(para, tag, opt: opt_a), b.search(para, tag, opt: opt_b)
		ea, eb = Mgmg.exp(*sca), Mgmg.exp(*scb)
		pa, pb = opt_a.irep.para_call(para, *sca), opt_b.irep.para_call(para, *scb)
	end
	raise UnexpectedError
end

.find_lubounds(a, b, para, lower, upper, opt_a: Mgmg::Option.new, opt_b: Mgmg::Option.new) ⇒ Object



659
660
661
662
663
# File 'lib/mgmg/search.rb', line 659

module_function def find_lubounds(a, b, para, lower, upper, opt_a: Mgmg::Option.new, opt_b: Mgmg::Option.new)
	xl, yl = find_lowerbound(a, b, para, lower, upper, opt_a:, opt_b:)
	xu, yu = find_upperbound(a, b, para, upper, opt_a:, opt_b:)
	[xl, yl, xu, yu]
end

.find_lubounds2(a, b, para, lower, upper, opt_a: Mgmg::Option.new, opt_b: Mgmg::Option.new) ⇒ Object



664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
# File 'lib/mgmg/search.rb', line 664

module_function def find_lubounds2(a, b, para, lower, upper, opt_a: Mgmg::Option.new, opt_b: Mgmg::Option.new)
	xl, yl, xu, yu = find_lubounds(a, b, para, lower, upper, opt_a: Mgmg::Option.new, opt_b: Mgmg::Option.new)
	if a.kind_of?(Recipe)
		opt_a = a.option.dup
		a = a.recipe
	else
		opt_a = opt_a.dup.set_default(a)
	end
	if b.kind_of?(Recipe)
		opt_b = b.option.dup
		b = b.recipe
	else
		opt_b = opt_b.dup.set_default(b)
	end
	sca, scb = a.search(para, lower, opt: opt_a), b.search(para, lower, opt: opt_b)
	ea, eb = Mgmg.exp(*sca), Mgmg.exp(*scb)
	pa, pb = opt_a.irep.para_call(para, *sca), opt_b.irep.para_call(para, *scb)
	if eb < ea || ( ea == eb && pa < pb )
		a, b, opt_a, opt_b, sca, scb, ea, eb = b, a, opt_b, opt_a, scb, sca, eb, ea
	end
	sca, scb = a.search(para, xl, opt: opt_a), b.search(para, yu, opt: opt_b)
	ea, eb = Mgmg.exp(*sca), Mgmg.exp(*scb)
	pa, pb = opt_a.irep.para_call(para, *sca), opt_b.irep.para_call(para, *scb)
	[sca, ea, pa, scb, eb, pb]
end

.find_upperbound(a, b, para, start, opt_a: Option.new, opt_b: Option.new) ⇒ Object

Raises:



586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
# File 'lib/mgmg/search.rb', line 586

module_function def find_upperbound(a, b, para, start, opt_a: Option.new, opt_b: Option.new)
	if a.kind_of?(Recipe)
		opt_a = a.option.dup
		a = a.recipe
	else
		opt_a = opt_a.dup.set_default(a)
	end
	if b.kind_of?(Recipe)
		opt_b = b.option.dup
		b = b.recipe
	else
		opt_b = opt_b.dup.set_default(b)
	end
	sca, scb = a.search(para, start, opt: opt_a), b.search(para, start, opt: opt_b)
	ea, eb = Mgmg.exp(*sca), Mgmg.exp(*scb)
	pa, pb = opt_a.irep.para_call(para, *sca), opt_b.irep.para_call(para, *scb)
	if ea < eb || ( ea == eb && pb < pa )
		a, b, opt_a, opt_b, sca, scb, ea, eb = b, a, opt_b, opt_a, scb, sca, eb, ea
	elsif eb == ea && pa == pb
		raise Mgmg::SearchCutException, "given recipes are equivalent at start target=#{start.comma3}"
	end
	
	loop do
		loop do
			foo = a.find_max(para, eb, opt: opt_a)
			break if sca == foo
			bar = opt_a.irep.para_call(para, *foo)
			break if pa < bar
			sca, pa = foo, bar
			scb = b.search(para, pa, opt: opt_b)
			foo = Mgmg.exp(*scb)
			break if eb == foo
			eb = foo
		end
		ea = Mgmg.exp(*sca)
		pb = opt_b.irep.para_call(para, *scb)
		if ea <= eb and pb <= pa and (ea+pb)!=(eb+pa) then
			until pa < pb
				scb = b.search(para, pb+Eighth, opt: opt_b)
				pb = opt_b.irep.para_call(para, *scb)
			end
			return [pa, pb]
		elsif ea < eb
			return [pa, pb] if scb == b.search(para, pa, opt: opt_b)
		end
		tag = [ea, eb].min - 1
		begin
			scb = b.find_max(para, tag, opt: opt_b)
		rescue Mgmg::SearchCutException
			eb, pb = Mgmg.exp(*scb), opt_b.irep.para_call(para, *scb)
			begin
				sca = a.find_max(para, eb, opt: opt_a)
				ea, pa = Mgmg.exp(*sca), opt_a.irep.para_call(para, *sca)
				while eb <= ea
					sca = a.find_max(para, ea-1, opt: opt_a)
					ea, pa = Mgmg.exp(*sca), opt_a.irep.para_call(para, *sca)
				end
			rescue Mgmg::SearchCutException
				raise Mgmg::SearchCutException, "given recipes are never reversed from the start target=#{start.comma3} until #{pa.comma3}"
			end
			return [pa, pb]
		end
		begin
			sca = a.find_max(para, tag, opt: opt_a)
		rescue Mgmg::SearchCutException
			raise Mgmg::SearchCutException, "given recipes are never reversed from the start target=#{start.comma3} until #{opt_a.irep.para_call(para, *sca).comma3}"
		end
		ea, eb = Mgmg.exp(*sca), Mgmg.exp(*scb)
		pa, pb = opt_a.irep.para_call(para, *sca), opt_b.irep.para_call(para, *scb)
	end
	raise UnexpectedError
end

.invexp2(exp, comp) ⇒ Object

Raises:

  • (ArgumentError)


168
169
170
171
172
173
174
175
176
177
178
179
180
# File 'lib/mgmg/utils.rb', line 168

module_function def invexp2(exp, comp)
	raise ArgumentError, "exp must be finite" unless exp.finite?
	begin
		ret = Math.sqrt(exp - (2*((comp-1)**2)) - 3).floor + 2
	rescue Math::DomainError
		return -1
	end
	if Mgmg.exp(ret, comp) <= exp
		ret
	else
		ret-1
	end
end

.invexp2c(exp, s) ⇒ Object

Raises:

  • (ArgumentError)


181
182
183
184
185
186
187
188
189
190
191
192
193
# File 'lib/mgmg/utils.rb', line 181

module_function def invexp2c(exp, s)
	raise ArgumentError, "exp must be finite" unless exp.finite?
	begin
		ret = Math.sqrt((exp - (((s-1)**2)) - 3).quo(2)).floor + 2
	rescue Math::DomainError
		return -1
	end
	if Mgmg.exp(s, ret) <= exp
		ret
	else
		ret-1
	end
end

.invexp3(exp, sa, comp) ⇒ Object

Raises:

  • (ArgumentError)


194
195
196
197
198
199
200
201
202
203
204
205
206
207
# File 'lib/mgmg/utils.rb', line 194

module_function def invexp3(exp, sa, comp)
	raise ArgumentError, "exp must be finite" unless exp.finite?
	return invexp2(exp, comp) if sa < 0
	begin
		ret = Math.sqrt(exp - ((sa-1)**2) - (2*((comp-1)**2)) - 4).floor + 2
	rescue Math::DomainError
		return -1
	end
	if Mgmg.exp(ret, sa, comp) <= exp
		ret
	else
		ret-1
	end
end

.invexp3c(exp, smith, armor) ⇒ Object

Raises:

  • (ArgumentError)


208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
# File 'lib/mgmg/utils.rb', line 208

module_function def invexp3c(exp, smith, armor)
	raise ArgumentError, "exp must be finite" unless exp.finite?
	if smith < 0
		return invexp2c(exp, armor)
	elsif armor < 0
		return invexp2c(exp, smith)
	end
	begin
		ret = Math.sqrt((exp - ((smith-1)**2) - ((armor-1)**2) - 4).quo(2)).floor + 2
	rescue Math::DomainError
		return -1
	end
	if Mgmg.exp(smith, armor, ret) <= exp
		ret
	else
		ret-1
	end
end

.option(recipe = nil, **kw) ⇒ Object



107
108
109
110
111
# File 'lib/mgmg/option.rb', line 107

module_function def option(recipe=nil, **kw)
	ret = Option.new(**kw)
	ret.set_default(recipe) unless recipe.nil?
	ret
end

.parse_material(str) ⇒ Object



275
276
277
278
279
280
281
282
# File 'lib/mgmg/utils.rb', line 275

module_function def parse_material(str)
	m = /\A.+?(\d+)\Z/.match(str)
	mat = MaterialIndex[str.to_sym]
	if m.nil? || mat.nil?
		raise InvalidMaterialError.new(str)
	end
	[mat, m[1].to_i, mat<90 ? mat.div(10) : 9]
end