mgmg 1.2.4 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +32 -1
 - data/README.md +160 -45
 - data/lib/mgmg.rb +95 -146
 - data/lib/mgmg/const.rb +2 -996
 - data/lib/mgmg/equip.rb +392 -0
 - data/lib/mgmg/optimize.rb +213 -0
 - data/lib/mgmg/poly.rb +356 -0
 - data/lib/mgmg/search.rb +254 -0
 - data/lib/mgmg/system_equip.rb +326 -0
 - data/lib/mgmg/utils.rb +315 -0
 - data/lib/mgmg/version.rb +1 -1
 - metadata +13 -7
 
| 
         @@ -0,0 +1,326 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Mgmg
         
     | 
| 
      
 2 
     | 
    
         
            +
            	SystemEquip = {
         
     | 
| 
      
 3 
     | 
    
         
            +
            		'安物の短剣'       => Equip.new( 0, 1,  1,  0, 10, Vec[  10,    0,    0,    0,    0,    0,    4,    5,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 4 
     | 
    
         
            +
            		'量産品の短剣'     => Equip.new( 0, 1,  2,  0, 10, Vec[  15,    0,    0,    0,    0,    0,    6,    7,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 5 
     | 
    
         
            +
            		'一般的な短剣'     => Equip.new( 0, 1,  3,  0, 10, Vec[  21,    0,    0,    0,    0,    0,    8,   10,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 6 
     | 
    
         
            +
            		'良質な短剣'       => Equip.new( 0, 1,  4,  0, 10, Vec[  30,    0,    0,    0,    0,    0,   12,   15,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 7 
     | 
    
         
            +
            		'業物の短剣'       => Equip.new( 0, 1,  5,  0, 10, Vec[  41,    0,    0,    0,    0,    0,   16,   20,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 8 
     | 
    
         
            +
            		'名のある短剣'     => Equip.new( 0, 1,  6,  0, 10, Vec[  55,    0,    0,    0,    0,    0,   22,   27,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 9 
     | 
    
         
            +
            		'匠の短剣'         => Equip.new( 0, 1,  7,  0, 10, Vec[  71,    0,    0,    0,    0,    0,   28,   35,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 10 
     | 
    
         
            +
            		'竜殺しの短剣'     => Equip.new( 0, 1,  8,  0, 10, Vec[  90,    0,    0,    0,    0,    0,   36,   45,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 11 
     | 
    
         
            +
            		'光り輝く短剣'     => Equip.new( 0, 1,  9,  0, 10, Vec[ 111,    0,    0,    0,    0,    0,   44,   55,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 12 
     | 
    
         
            +
            		'安物の双短剣'     => Equip.new( 1, 2,  1,  0, 10, Vec[  13,    0,    0,    0,    0,    0,    3,    4,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 13 
     | 
    
         
            +
            		'量産品の双短剣'   => Equip.new( 1, 2,  2,  0, 10, Vec[  19,    0,    0,    0,    0,    0,    4,    6,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 14 
     | 
    
         
            +
            		'一般的な双短剣'   => Equip.new( 1, 2,  3,  0, 10, Vec[  27,    0,    0,    0,    0,    0,    6,    8,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 15 
     | 
    
         
            +
            		'良質な双短剣'     => Equip.new( 1, 2,  4,  0, 10, Vec[  39,    0,    0,    0,    0,    0,    9,   12,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 16 
     | 
    
         
            +
            		'業物の双短剣'     => Equip.new( 1, 2,  5,  0, 10, Vec[  53,    0,    0,    0,    0,    0,   12,   16,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 17 
     | 
    
         
            +
            		'名のある双短剣'   => Equip.new( 1, 2,  6,  0, 10, Vec[  71,    0,    0,    0,    0,    0,   16,   22,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 18 
     | 
    
         
            +
            		'匠の双短剣'       => Equip.new( 1, 2,  7,  0, 10, Vec[  92,    0,    0,    0,    0,    0,   21,   28,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 19 
     | 
    
         
            +
            		'竜殺しの双短剣'   => Equip.new( 1, 2,  8,  0, 10, Vec[ 117,    0,    0,    0,    0,    0,   27,   36,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 20 
     | 
    
         
            +
            		'光り輝く双短剣'   => Equip.new( 1, 2,  9,  0, 10, Vec[ 144,    0,    0,    0,    0,    0,   33,   44,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 21 
     | 
    
         
            +
            		'安物の剣'         => Equip.new( 2, 2,  1,  0, 10, Vec[  13,    2,    0,    4,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 22 
     | 
    
         
            +
            		'量産品の剣'       => Equip.new( 2, 2,  2,  0, 10, Vec[  19,    3,    0,    6,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 23 
     | 
    
         
            +
            		'一般的な剣'       => Equip.new( 2, 2,  3,  0, 10, Vec[  27,    4,    0,    8,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 24 
     | 
    
         
            +
            		'良質な剣'         => Equip.new( 2, 2,  4,  0, 10, Vec[  39,    6,    0,   12,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 25 
     | 
    
         
            +
            		'業物の剣'         => Equip.new( 2, 2,  5,  0, 10, Vec[  53,    8,    0,   16,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 26 
     | 
    
         
            +
            		'名のある剣'       => Equip.new( 2, 2,  6,  0, 10, Vec[  71,   11,    0,   22,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 27 
     | 
    
         
            +
            		'匠の剣'           => Equip.new( 2, 2,  7,  0, 10, Vec[  92,   14,    0,   28,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 28 
     | 
    
         
            +
            		'竜殺しの剣'       => Equip.new( 2, 2,  8,  0, 10, Vec[ 117,   18,    0,   36,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 29 
     | 
    
         
            +
            		'光り輝く剣'       => Equip.new( 2, 2,  9,  0, 10, Vec[ 144,   22,    0,   44,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 30 
     | 
    
         
            +
            		'安物の斧'         => Equip.new( 3, 3,  1,  0, 10, Vec[  19,    0,    0,    0,    0,    2,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 31 
     | 
    
         
            +
            		'量産品の斧'       => Equip.new( 3, 3,  2,  0, 10, Vec[  23,    0,    0,    0,    0,    3,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 32 
     | 
    
         
            +
            		'一般的な斧'       => Equip.new( 3, 3,  3,  0, 10, Vec[  40,    0,    0,    0,    0,    4,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 33 
     | 
    
         
            +
            		'良質な斧'         => Equip.new( 3, 3,  4,  0, 10, Vec[  57,    0,    0,    0,    0,    6,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 34 
     | 
    
         
            +
            		'業物の斧'         => Equip.new( 3, 3,  5,  0, 10, Vec[  78,    0,    0,    0,    0,    8,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 35 
     | 
    
         
            +
            		'名のある斧'       => Equip.new( 3, 3,  6,  0, 10, Vec[ 104,    0,    0,    0,    0,   11,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 36 
     | 
    
         
            +
            		'匠の斧'           => Equip.new( 3, 3,  7,  0, 10, Vec[ 135,    0,    0,    0,    0,   14,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 37 
     | 
    
         
            +
            		'竜殺しの斧'       => Equip.new( 3, 3,  8,  0, 10, Vec[ 171,    0,    0,    0,    0,   18,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 38 
     | 
    
         
            +
            		'光り輝く斧'       => Equip.new( 3, 3,  9,  0, 10, Vec[ 211,    0,    0,    0,    0,   22,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 39 
     | 
    
         
            +
            		'安物の弓'         => Equip.new( 4, 2,  1,  0, 10, Vec[   8,    0,    0,    0,    0,    0,   10,    1,    1], Vec[0, 0, 0]),
         
     | 
| 
      
 40 
     | 
    
         
            +
            		'量産品の弓'       => Equip.new( 4, 2,  2,  0, 10, Vec[  12,    0,    0,    0,    0,    0,   15,    1,    1], Vec[0, 0, 0]),
         
     | 
| 
      
 41 
     | 
    
         
            +
            		'一般的な弓'       => Equip.new( 4, 2,  3,  0, 10, Vec[  17,    0,    0,    0,    0,    0,   21,    2,    2], Vec[0, 0, 0]),
         
     | 
| 
      
 42 
     | 
    
         
            +
            		'良質な弓'         => Equip.new( 4, 2,  4,  0, 10, Vec[  24,    0,    0,    0,    0,    0,   30,    3,    3], Vec[0, 0, 0]),
         
     | 
| 
      
 43 
     | 
    
         
            +
            		'業物の弓'         => Equip.new( 4, 2,  5,  0, 10, Vec[  33,    0,    0,    0,    0,    0,   41,    4,    4], Vec[0, 0, 0]),
         
     | 
| 
      
 44 
     | 
    
         
            +
            		'名のある弓'       => Equip.new( 4, 2,  6,  0, 10, Vec[  44,    0,    0,    0,    0,    0,   55,    5,    5], Vec[0, 0, 0]),
         
     | 
| 
      
 45 
     | 
    
         
            +
            		'匠の弓'           => Equip.new( 4, 2,  7,  0, 10, Vec[  57,    0,    0,    0,    0,    0,   71,    7,    7], Vec[0, 0, 0]),
         
     | 
| 
      
 46 
     | 
    
         
            +
            		'竜殺しの弓'       => Equip.new( 4, 2,  8,  0, 10, Vec[  72,    0,    0,    0,    0,    0,   90,    9,    9], Vec[0, 0, 0]),
         
     | 
| 
      
 47 
     | 
    
         
            +
            		'光り輝く弓'       => Equip.new( 4, 2,  9,  0, 10, Vec[  89,    0,    0,    0,    0,    0,  111,   11,   11], Vec[0, 0, 0]),
         
     | 
| 
      
 48 
     | 
    
         
            +
            		'安物の弩'         => Equip.new( 5, 2,  1,  0, 10, Vec[   7,    0,    0,    0,    1,    0,    9,    2,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 49 
     | 
    
         
            +
            		'量産品の弩'       => Equip.new( 5, 2,  2,  0, 10, Vec[  10,    0,    0,    0,    1,    0,   13,    3,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 50 
     | 
    
         
            +
            		'一般的な弩'       => Equip.new( 5, 2,  3,  0, 10, Vec[  14,    0,    0,    0,    2,    0,   19,    4,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 51 
     | 
    
         
            +
            		'良質な弩'         => Equip.new( 5, 2,  4,  0, 10, Vec[  21,    0,    0,    0,    3,    0,   27,    6,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 52 
     | 
    
         
            +
            		'業物の弩'         => Equip.new( 5, 2,  5,  0, 10, Vec[  28,    0,    0,    0,    4,    0,   37,    8,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 53 
     | 
    
         
            +
            		'名のある弩'       => Equip.new( 5, 2,  6,  0, 10, Vec[  38,    0,    0,    0,    5,    0,   49,   11,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 54 
     | 
    
         
            +
            		'匠の弩'           => Equip.new( 5, 2,  7,  0, 10, Vec[  49,    0,    0,    0,    7,    0,   64,   14,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 55 
     | 
    
         
            +
            		'竜殺しの弩'       => Equip.new( 5, 2,  8,  0, 10, Vec[  63,    0,    0,    0,    9,    0,   81,   18,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 56 
     | 
    
         
            +
            		'光り輝く弩'       => Equip.new( 5, 2,  9,  0, 10, Vec[  77,    0,    0,    0,   11,    0,  100,   22,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 57 
     | 
    
         
            +
            		'安物の杖'         => Equip.new( 6, 2,  1,  0, 10, Vec[   5,    0,    0,    0,    3,    0,    0,    0,   11], Vec[0, 0, 0]),
         
     | 
| 
      
 58 
     | 
    
         
            +
            		'量産品の杖'       => Equip.new( 6, 2,  2,  0, 10, Vec[   7,    0,    0,    0,    4,    0,    0,    0,   16], Vec[0, 0, 0]),
         
     | 
| 
      
 59 
     | 
    
         
            +
            		'一般的な杖'       => Equip.new( 6, 2,  3,  0, 10, Vec[  10,    0,    0,    0,    6,    0,    0,    0,   23], Vec[0, 0, 0]),
         
     | 
| 
      
 60 
     | 
    
         
            +
            		'良質な杖'         => Equip.new( 6, 2,  4,  0, 10, Vec[  15,    0,    0,    0,    9,    0,    0,    0,   33], Vec[0, 0, 0]),
         
     | 
| 
      
 61 
     | 
    
         
            +
            		'業物の杖'         => Equip.new( 6, 2,  5,  0, 10, Vec[  20,    0,    0,    0,   12,    0,    0,    0,   45], Vec[0, 0, 0]),
         
     | 
| 
      
 62 
     | 
    
         
            +
            		'名のある杖'       => Equip.new( 6, 2,  6,  0, 10, Vec[  27,    0,    0,    0,   16,    0,    0,    0,   60], Vec[0, 0, 0]),
         
     | 
| 
      
 63 
     | 
    
         
            +
            		'匠の杖'           => Equip.new( 6, 2,  7,  0, 10, Vec[  35,    0,    0,    0,   21,    0,    0,    0,   78], Vec[0, 0, 0]),
         
     | 
| 
      
 64 
     | 
    
         
            +
            		'竜殺しの杖'       => Equip.new( 6, 2,  8,  0, 10, Vec[  45,    0,    0,    0,   27,    0,    0,    0,   99], Vec[0, 0, 0]),
         
     | 
| 
      
 65 
     | 
    
         
            +
            		'光り輝く杖'       => Equip.new( 6, 2,  9,  0, 10, Vec[  55,    0,    0,    0,   33,    0,    0,    0,  122], Vec[0, 0, 0]),
         
     | 
| 
      
 66 
     | 
    
         
            +
            		'安物の本'         => Equip.new( 7, 2,  1,  0, 10, Vec[   8,    0,    2,    0,    2,    0,    0,    0,    8], Vec[0, 0, 0]),
         
     | 
| 
      
 67 
     | 
    
         
            +
            		'量産品の本'       => Equip.new( 7, 2,  2,  0, 10, Vec[  12,    0,    3,    0,    3,    0,    0,    0,   12], Vec[0, 0, 0]),
         
     | 
| 
      
 68 
     | 
    
         
            +
            		'一般的な本'       => Equip.new( 7, 2,  3,  0, 10, Vec[  17,    0,    4,    0,    4,    0,    0,    0,   17], Vec[0, 0, 0]),
         
     | 
| 
      
 69 
     | 
    
         
            +
            		'良質な本'         => Equip.new( 7, 2,  4,  0, 10, Vec[  24,    0,    6,    0,    6,    0,    0,    0,   24], Vec[0, 0, 0]),
         
     | 
| 
      
 70 
     | 
    
         
            +
            		'業物の本'         => Equip.new( 7, 2,  5,  0, 10, Vec[  33,    0,    8,    0,    8,    0,    0,    0,   33], Vec[0, 0, 0]),
         
     | 
| 
      
 71 
     | 
    
         
            +
            		'名のある本'       => Equip.new( 7, 2,  6,  0, 10, Vec[  44,    0,   11,    0,   11,    0,    0,    0,   44], Vec[0, 0, 0]),
         
     | 
| 
      
 72 
     | 
    
         
            +
            		'匠の本'           => Equip.new( 7, 2,  7,  0, 10, Vec[  57,    0,   14,    0,   14,    0,    0,    0,   57], Vec[0, 0, 0]),
         
     | 
| 
      
 73 
     | 
    
         
            +
            		'竜殺しの本'       => Equip.new( 7, 2,  8,  0, 10, Vec[  72,    0,   18,    0,   18,    0,    0,    0,   72], Vec[0, 0, 0]),
         
     | 
| 
      
 74 
     | 
    
         
            +
            		'光り輝く本'       => Equip.new( 7, 2,  9,  0, 10, Vec[  89,    0,   22,    0,   22,    0,    0,    0,   89], Vec[0, 0, 0]),
         
     | 
| 
      
 75 
     | 
    
         
            +
            		'安物の兜'         => Equip.new( 8, 2,  1,  0, 10, Vec[   0,    5,    0,   15,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 76 
     | 
    
         
            +
            		'量産品の兜'       => Equip.new( 8, 2,  2,  0, 10, Vec[   0,    8,    0,   25,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 77 
     | 
    
         
            +
            		'一般的な兜'       => Equip.new( 8, 2,  3,  0, 10, Vec[   0,   12,    0,   37,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 78 
     | 
    
         
            +
            		'良質な兜'         => Equip.new( 8, 2,  4,  0, 10, Vec[   0,   18,    0,   55,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 79 
     | 
    
         
            +
            		'業物の兜'         => Equip.new( 8, 2,  5,  0, 10, Vec[   0,   25,    0,   77,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 80 
     | 
    
         
            +
            		'名のある兜'       => Equip.new( 8, 2,  6,  0, 10, Vec[   0,   35,    0,  105,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 81 
     | 
    
         
            +
            		'匠の兜'           => Equip.new( 8, 2,  7,  0, 10, Vec[   0,   45,    0,  137,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 82 
     | 
    
         
            +
            		'竜殺しの兜'       => Equip.new( 8, 2,  8,  0, 10, Vec[   0,   58,    0,  175,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 83 
     | 
    
         
            +
            		'光り輝く兜'       => Equip.new( 8, 2,  9,  0, 10, Vec[   0,   72,    0,  217,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 84 
     | 
    
         
            +
            		'歴戦の兜'         => Equip.new( 8, 2, 10,  0, 10, Vec[   0,   88,    0,  265,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 85 
     | 
    
         
            +
            		'安物の額当て'     => Equip.new( 9, 1,  1,  0, 10, Vec[   0,    3,    1,   10,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 86 
     | 
    
         
            +
            		'量産品の額当て'   => Equip.new( 9, 1,  2,  0, 10, Vec[   0,    5,    1,   16,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 87 
     | 
    
         
            +
            		'一般的な額当て'   => Equip.new( 9, 1,  3,  0, 10, Vec[   0,    7,    2,   25,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 88 
     | 
    
         
            +
            		'良質な額当て'     => Equip.new( 9, 1,  4,  0, 10, Vec[   0,   11,    3,   36,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 89 
     | 
    
         
            +
            		'業物の額当て'     => Equip.new( 9, 1,  5,  0, 10, Vec[   0,   15,    5,   51,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 90 
     | 
    
         
            +
            		'名のある額当て'   => Equip.new( 9, 1,  6,  0, 10, Vec[   0,   21,    7,   70,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 91 
     | 
    
         
            +
            		'匠の額当て'       => Equip.new( 9, 1,  7,  0, 10, Vec[   0,   27,    9,   91,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 92 
     | 
    
         
            +
            		'竜殺しの額当て'   => Equip.new( 9, 1,  8,  0, 10, Vec[   0,   35,   11,  116,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 93 
     | 
    
         
            +
            		'光り輝く額当て'   => Equip.new( 9, 1,  9,  0, 10, Vec[   0,   43,   14,  145,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 94 
     | 
    
         
            +
            		'歴戦の額当て'     => Equip.new( 9, 1, 10,  0, 10, Vec[   0,   53,   17,  176,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 95 
     | 
    
         
            +
            		'安物の帽子'       => Equip.new(10, 1,  1,  0, 10, Vec[   0,    2,    2,    7,    2,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 96 
     | 
    
         
            +
            		'量産品の帽子'     => Equip.new(10, 1,  2,  0, 10, Vec[   0,    3,    3,   11,    3,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 97 
     | 
    
         
            +
            		'一般的な帽子'     => Equip.new(10, 1,  3,  0, 10, Vec[   0,    5,    5,   17,    5,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 98 
     | 
    
         
            +
            		'良質な帽子'       => Equip.new(10, 1,  4,  0, 10, Vec[   0,    7,    7,   25,    7,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 99 
     | 
    
         
            +
            		'業物の帽子'       => Equip.new(10, 1,  5,  0, 10, Vec[   0,   10,   10,   36,   10,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 100 
     | 
    
         
            +
            		'名のある帽子'     => Equip.new(10, 1,  6,  0, 10, Vec[   0,   14,   14,   49,   14,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 101 
     | 
    
         
            +
            		'匠の帽子'         => Equip.new(10, 1,  7,  0, 10, Vec[   0,   18,   18,   64,   18,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 102 
     | 
    
         
            +
            		'竜殺しの帽子'     => Equip.new(10, 1,  8,  0, 10, Vec[   0,   23,   23,   81,   23,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 103 
     | 
    
         
            +
            		'光り輝く帽子'     => Equip.new(10, 1,  9,  0, 10, Vec[   0,   29,   29,  101,   29,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 104 
     | 
    
         
            +
            		'歴戦の帽子'       => Equip.new(10, 1, 10,  0, 10, Vec[   0,   35,   35,  123,   35,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 105 
     | 
    
         
            +
            		'安物のフード'     => Equip.new(11, 1,  1,  0, 10, Vec[   0,    2,    4,    4,    3,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 106 
     | 
    
         
            +
            		'量産品のフード'   => Equip.new(11, 1,  2,  0, 10, Vec[   0,    3,    6,    6,    5,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 107 
     | 
    
         
            +
            		'一般的なフード'   => Equip.new(11, 1,  3,  0, 10, Vec[   0,    5,   10,   10,    7,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 108 
     | 
    
         
            +
            		'良質なフード'     => Equip.new(11, 1,  4,  0, 10, Vec[   0,    7,   14,   14,   11,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 109 
     | 
    
         
            +
            		'業物のフード'     => Equip.new(11, 1,  5,  0, 10, Vec[   0,   10,   20,   20,   15,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 110 
     | 
    
         
            +
            		'名のあるフード'   => Equip.new(11, 1,  6,  0, 10, Vec[   0,   14,   28,   28,   21,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 111 
     | 
    
         
            +
            		'匠のフード'       => Equip.new(11, 1,  7,  0, 10, Vec[   0,   18,   36,   36,   27,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 112 
     | 
    
         
            +
            		'竜殺しのフード'   => Equip.new(11, 1,  8,  0, 10, Vec[   0,   23,   46,   46,   35,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 113 
     | 
    
         
            +
            		'光り輝くフード'   => Equip.new(11, 1,  9,  0, 10, Vec[   0,   29,   58,   58,   43,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 114 
     | 
    
         
            +
            		'歴戦のフード'     => Equip.new(11, 1, 10,  0, 10, Vec[   0,   35,   70,   70,   53,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 115 
     | 
    
         
            +
            		'安物の重鎧'       => Equip.new(12, 3,  1,  0, 10, Vec[   0,   12,    2,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 116 
     | 
    
         
            +
            		'量産品の重鎧'     => Equip.new(12, 3,  2,  0, 10, Vec[   0,   20,    3,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 117 
     | 
    
         
            +
            		'一般的な重鎧'     => Equip.new(12, 3,  3,  0, 10, Vec[   0,   30,    5,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 118 
     | 
    
         
            +
            		'良質な重鎧'       => Equip.new(12, 3,  4,  0, 10, Vec[   0,   44,    7,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 119 
     | 
    
         
            +
            		'業物の重鎧'       => Equip.new(12, 3,  5,  0, 10, Vec[   0,   62,   10,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 120 
     | 
    
         
            +
            		'名のある重鎧'     => Equip.new(12, 3,  6,  0, 10, Vec[   0,   84,   14,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 121 
     | 
    
         
            +
            		'匠の重鎧'         => Equip.new(12, 3,  7,  0, 10, Vec[   0,  110,   18,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 122 
     | 
    
         
            +
            		'竜殺しの重鎧'     => Equip.new(12, 3,  8,  0, 10, Vec[   0,  140,   23,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 123 
     | 
    
         
            +
            		'光り輝く重鎧'     => Equip.new(12, 3,  9,  0, 10, Vec[   0,  174,   29,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 124 
     | 
    
         
            +
            		'歴戦の重鎧'       => Equip.new(12, 3, 10,  0, 10, Vec[   0,  212,   35,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 125 
     | 
    
         
            +
            		'安物の軽鎧'       => Equip.new(13, 2,  1,  0, 10, Vec[   0,    8,    4,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 126 
     | 
    
         
            +
            		'量産品の軽鎧'     => Equip.new(13, 2,  2,  0, 10, Vec[   0,   13,    6,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 127 
     | 
    
         
            +
            		'一般的な軽鎧'     => Equip.new(13, 2,  3,  0, 10, Vec[   0,   20,   10,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 128 
     | 
    
         
            +
            		'良質な軽鎧'       => Equip.new(13, 2,  4,  0, 10, Vec[   0,   29,   14,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 129 
     | 
    
         
            +
            		'業物の軽鎧'       => Equip.new(13, 2,  5,  0, 10, Vec[   0,   41,   20,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 130 
     | 
    
         
            +
            		'名のある軽鎧'     => Equip.new(13, 2,  6,  0, 10, Vec[   0,   41,   20,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 131 
     | 
    
         
            +
            		'匠の軽鎧'         => Equip.new(13, 2,  7,  0, 10, Vec[   0,   56,   28,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 132 
     | 
    
         
            +
            		'竜殺しの軽鎧'     => Equip.new(13, 2,  8,  0, 10, Vec[   0,   73,   36,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 133 
     | 
    
         
            +
            		'光り輝く軽鎧'     => Equip.new(13, 2,  9,  0, 10, Vec[   0,   93,   46,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 134 
     | 
    
         
            +
            		'歴戦の軽鎧'       => Equip.new(13, 2, 10,  0, 10, Vec[   0,  116,   58,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 135 
     | 
    
         
            +
            		'安物の服'         => Equip.new(14, 1,  1,  0, 10, Vec[   0,    6,    6,    0,    0,    0,    3,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 136 
     | 
    
         
            +
            		'量産品の服'       => Equip.new(14, 1,  2,  0, 10, Vec[   0,   10,   10,    0,    0,    0,    5,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 137 
     | 
    
         
            +
            		'一般的な服'       => Equip.new(14, 1,  3,  0, 10, Vec[   0,   15,   15,    0,    0,    0,    7,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 138 
     | 
    
         
            +
            		'良質な服'         => Equip.new(14, 1,  4,  0, 10, Vec[   0,   22,   22,    0,    0,    0,   11,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 139 
     | 
    
         
            +
            		'業物の服'         => Equip.new(14, 1,  5,  0, 10, Vec[   0,   31,   31,    0,    0,    0,   15,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 140 
     | 
    
         
            +
            		'名のある服'       => Equip.new(14, 1,  6,  0, 10, Vec[   0,   42,   42,    0,    0,    0,   21,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 141 
     | 
    
         
            +
            		'匠の服'           => Equip.new(14, 1,  7,  0, 10, Vec[   0,   55,   55,    0,    0,    0,   27,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 142 
     | 
    
         
            +
            		'竜殺しの服'       => Equip.new(14, 1,  8,  0, 10, Vec[   0,   70,   70,    0,    0,    0,   35,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 143 
     | 
    
         
            +
            		'光り輝く服'       => Equip.new(14, 1,  9,  0, 10, Vec[   0,   87,   87,    0,    0,    0,   43,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 144 
     | 
    
         
            +
            		'歴戦の服'         => Equip.new(14, 1, 10,  0, 10, Vec[   0,  106,  106,    0,    0,    0,   53,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 145 
     | 
    
         
            +
            		'安物の法衣'       => Equip.new(15, 1,  1,  0, 10, Vec[   0,    5,    9,    0,    0,    0,    0,    0,    3], Vec[0, 0, 0]),
         
     | 
| 
      
 146 
     | 
    
         
            +
            		'量産品の法衣'     => Equip.new(15, 1,  2,  0, 10, Vec[   0,    8,   15,    0,    0,    0,    0,    0,    5], Vec[0, 0, 0]),
         
     | 
| 
      
 147 
     | 
    
         
            +
            		'一般的な法衣'     => Equip.new(15, 1,  3,  0, 10, Vec[   0,   12,   22,    0,    0,    0,    0,    0,    7], Vec[0, 0, 0]),
         
     | 
| 
      
 148 
     | 
    
         
            +
            		'良質な法衣'       => Equip.new(15, 1,  4,  0, 10, Vec[   0,   18,   33,    0,    0,    0,    0,    0,   11], Vec[0, 0, 0]),
         
     | 
| 
      
 149 
     | 
    
         
            +
            		'業物の法衣'       => Equip.new(15, 1,  5,  0, 10, Vec[   0,   25,   46,    0,    0,    0,    0,    0,   15], Vec[0, 0, 0]),
         
     | 
| 
      
 150 
     | 
    
         
            +
            		'名のある法衣'     => Equip.new(15, 1,  6,  0, 10, Vec[   0,   35,   63,    0,    0,    0,    0,    0,   21], Vec[0, 0, 0]),
         
     | 
| 
      
 151 
     | 
    
         
            +
            		'匠の法衣'         => Equip.new(15, 1,  7,  0, 10, Vec[   0,   45,   82,    0,    0,    0,    0,    0,   27], Vec[0, 0, 0]),
         
     | 
| 
      
 152 
     | 
    
         
            +
            		'竜殺しの法衣'     => Equip.new(15, 1,  8,  0, 10, Vec[   0,   58,  105,    0,    0,    0,    0,    0,   35], Vec[0, 0, 0]),
         
     | 
| 
      
 153 
     | 
    
         
            +
            		'光り輝く法衣'     => Equip.new(15, 1,  9,  0, 10, Vec[   0,   72,  130,    0,    0,    0,    0,    0,   43], Vec[0, 0, 0]),
         
     | 
| 
      
 154 
     | 
    
         
            +
            		'歴戦の法衣'       => Equip.new(15, 1, 10,  0, 10, Vec[   0,   88,  159,    0,    0,    0,    0,    0,   53], Vec[0, 0, 0]),
         
     | 
| 
      
 155 
     | 
    
         
            +
            		'安物の盾'         => Equip.new(16, 2,  1,  0, 10, Vec[   0,    7,    5,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 156 
     | 
    
         
            +
            		'量産品の盾'       => Equip.new(16, 2,  2,  0, 10, Vec[   0,   11,    8,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 157 
     | 
    
         
            +
            		'一般的な盾'       => Equip.new(16, 2,  3,  0, 10, Vec[   0,   17,   12,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 158 
     | 
    
         
            +
            		'良質な盾'         => Equip.new(16, 2,  4,  0, 10, Vec[   0,   25,   18,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 159 
     | 
    
         
            +
            		'業物の盾'         => Equip.new(16, 2,  5,  0, 10, Vec[   0,   36,   25,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 160 
     | 
    
         
            +
            		'名のある盾'       => Equip.new(16, 2,  6,  0, 10, Vec[   0,   49,   35,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 161 
     | 
    
         
            +
            		'匠の盾'           => Equip.new(16, 2,  7,  0, 10, Vec[   0,   64,   45,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 162 
     | 
    
         
            +
            		'竜殺しの盾'       => Equip.new(16, 2,  8,  0, 10, Vec[   0,   81,   58,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 163 
     | 
    
         
            +
            		'光り輝く盾'       => Equip.new(16, 2,  9,  0, 10, Vec[   0,  101,   72,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 164 
     | 
    
         
            +
            		'歴戦の盾'         => Equip.new(16, 2, 10,  0, 10, Vec[   0,  123,   88,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 165 
     | 
    
         
            +
            		'安物の小手'       => Equip.new(17, 1,  1,  0, 10, Vec[   3,    4,    3,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 166 
     | 
    
         
            +
            		'量産品の小手'     => Equip.new(17, 1,  2,  0, 10, Vec[   5,    6,    5,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 167 
     | 
    
         
            +
            		'一般的な小手'     => Equip.new(17, 1,  3,  0, 10, Vec[   7,   10,    7,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 168 
     | 
    
         
            +
            		'良質な小手'       => Equip.new(17, 1,  4,  0, 10, Vec[  11,   14,   11,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 169 
     | 
    
         
            +
            		'業物の小手'       => Equip.new(17, 1,  5,  0, 10, Vec[  15,   20,   15,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 170 
     | 
    
         
            +
            		'名のある小手'     => Equip.new(17, 1,  6,  0, 10, Vec[  21,   28,   21,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 171 
     | 
    
         
            +
            		'匠の小手'         => Equip.new(17, 1,  7,  0, 10, Vec[  27,   36,   27,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 172 
     | 
    
         
            +
            		'竜殺しの小手'     => Equip.new(17, 1,  8,  0, 10, Vec[  35,   46,   35,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 173 
     | 
    
         
            +
            		'光り輝く小手'     => Equip.new(17, 1,  9,  0, 10, Vec[  43,   58,   43,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 174 
     | 
    
         
            +
            		'歴戦の小手'       => Equip.new(17, 1, 10,  0, 10, Vec[  53,   70,   53,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 175 
     | 
    
         
            +
            		'安物の手袋'       => Equip.new(18, 1,  1,  0, 10, Vec[   0,    4,    5,    0,    0,    0,    3,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 176 
     | 
    
         
            +
            		'量産品の手袋'     => Equip.new(18, 1,  2,  0, 10, Vec[   0,    6,    8,    0,    0,    0,    5,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 177 
     | 
    
         
            +
            		'一般的な手袋'     => Equip.new(18, 1,  3,  0, 10, Vec[   0,   10,   12,    0,    0,    0,    7,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 178 
     | 
    
         
            +
            		'良質な手袋'       => Equip.new(18, 1,  4,  0, 10, Vec[   0,   14,   18,    0,    0,    0,   11,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 179 
     | 
    
         
            +
            		'業物の手袋'       => Equip.new(18, 1,  5,  0, 10, Vec[   0,   20,   25,    0,    0,    0,   15,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 180 
     | 
    
         
            +
            		'名のある手袋'     => Equip.new(18, 1,  6,  0, 10, Vec[   0,   28,   35,    0,    0,    0,   21,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 181 
     | 
    
         
            +
            		'匠の手袋'         => Equip.new(18, 1,  7,  0, 10, Vec[   0,   36,   45,    0,    0,    0,   27,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 182 
     | 
    
         
            +
            		'竜殺しの手袋'     => Equip.new(18, 1,  8,  0, 10, Vec[   0,   46,   58,    0,    0,    0,   35,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 183 
     | 
    
         
            +
            		'光り輝く手袋'     => Equip.new(18, 1,  9,  0, 10, Vec[   0,   58,   72,    0,    0,    0,   43,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 184 
     | 
    
         
            +
            		'歴戦の手袋'       => Equip.new(18, 1, 10,  0, 10, Vec[   0,   70,   88,    0,    0,    0,   53,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 185 
     | 
    
         
            +
            		'安物の腕輪'       => Equip.new(19, 1,  1,  0, 10, Vec[   0,    3,    6,    0,    0,    0,    0,    0,    3], Vec[0, 0, 0]),
         
     | 
| 
      
 186 
     | 
    
         
            +
            		'量産品の腕輪'     => Equip.new(19, 1,  2,  0, 10, Vec[   0,    5,   10,    0,    0,    0,    0,    0,    5], Vec[0, 0, 0]),
         
     | 
| 
      
 187 
     | 
    
         
            +
            		'一般的な腕輪'     => Equip.new(19, 1,  3,  0, 10, Vec[   0,    7,   15,    0,    0,    0,    0,    0,    7], Vec[0, 0, 0]),
         
     | 
| 
      
 188 
     | 
    
         
            +
            		'良質な腕輪'       => Equip.new(19, 1,  4,  0, 10, Vec[   0,   11,   22,    0,    0,    0,    0,    0,   11], Vec[0, 0, 0]),
         
     | 
| 
      
 189 
     | 
    
         
            +
            		'業物の腕輪'       => Equip.new(19, 1,  5,  0, 10, Vec[   0,   15,   31,    0,    0,    0,    0,    0,   15], Vec[0, 0, 0]),
         
     | 
| 
      
 190 
     | 
    
         
            +
            		'名のある腕輪'     => Equip.new(19, 1,  6,  0, 10, Vec[   0,   21,   42,    0,    0,    0,    0,    0,   21], Vec[0, 0, 0]),
         
     | 
| 
      
 191 
     | 
    
         
            +
            		'匠の腕輪'         => Equip.new(19, 1,  7,  0, 10, Vec[   0,   27,   44,    0,    0,    0,    0,    0,   27], Vec[0, 0, 0]),
         
     | 
| 
      
 192 
     | 
    
         
            +
            		'竜殺しの腕輪'     => Equip.new(19, 1,  8,  0, 10, Vec[   0,   35,   70,    0,    0,    0,    0,    0,   35], Vec[0, 0, 0]),
         
     | 
| 
      
 193 
     | 
    
         
            +
            		'光り輝く腕輪'     => Equip.new(19, 1,  9,  0, 10, Vec[   0,   43,   87,    0,    0,    0,    0,    0,   43], Vec[0, 0, 0]),
         
     | 
| 
      
 194 
     | 
    
         
            +
            		'歴戦の腕輪'       => Equip.new(19, 1, 10,  0, 10, Vec[   0,   53,  106,    0,    0,    0,    0,    0,   53], Vec[0, 0, 0]),
         
     | 
| 
      
 195 
     | 
    
         
            +
            		'安物の脛当て'     => Equip.new(20, 2,  1,  0, 10, Vec[   0,    7,    2,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 196 
     | 
    
         
            +
            		'量産品の脛当て'   => Equip.new(20, 2,  2,  0, 10, Vec[   0,   11,    3,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 197 
     | 
    
         
            +
            		'一般的な脛当て'   => Equip.new(20, 2,  3,  0, 10, Vec[   0,   17,    5,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 198 
     | 
    
         
            +
            		'良質な脛当て'     => Equip.new(20, 2,  4,  0, 10, Vec[   0,   25,    7,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 199 
     | 
    
         
            +
            		'業物の脛当て'     => Equip.new(20, 2,  5,  0, 10, Vec[   0,   36,   10,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 200 
     | 
    
         
            +
            		'名のある脛当て'   => Equip.new(20, 2,  6,  0, 10, Vec[   0,   49,   14,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 201 
     | 
    
         
            +
            		'匠の脛当て'       => Equip.new(20, 2,  7,  0, 10, Vec[   0,   64,   18,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 202 
     | 
    
         
            +
            		'竜殺しの脛当て'   => Equip.new(20, 2,  8,  0, 10, Vec[   0,   81,   23,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 203 
     | 
    
         
            +
            		'光り輝く脛当て'   => Equip.new(20, 2,  9,  0, 10, Vec[   0,  101,   29,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 204 
     | 
    
         
            +
            		'歴戦の脛当て'     => Equip.new(20, 2, 10,  0, 10, Vec[   0,  123,   35,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 205 
     | 
    
         
            +
            		'安物のブーツ'     => Equip.new(21, 1,  1,  0, 10, Vec[   0,    4,    4,    0,    0,    0,    0,    2,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 206 
     | 
    
         
            +
            		'量産品のブーツ'   => Equip.new(21, 1,  2,  0, 10, Vec[   0,    6,    6,    0,    0,    0,    0,    3,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 207 
     | 
    
         
            +
            		'一般的なブーツ'   => Equip.new(21, 1,  3,  0, 10, Vec[   0,   10,   10,    0,    0,    0,    0,    5,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 208 
     | 
    
         
            +
            		'良質なブーツ'     => Equip.new(21, 1,  4,  0, 10, Vec[   0,   14,   14,    0,    0,    0,    0,    7,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 209 
     | 
    
         
            +
            		'業物のブーツ'     => Equip.new(21, 1,  5,  0, 10, Vec[   0,   20,   20,    0,    0,    0,    0,   10,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 210 
     | 
    
         
            +
            		'名のあるブーツ'   => Equip.new(21, 1,  6,  0, 10, Vec[   0,   28,   28,    0,    0,    0,    0,   14,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 211 
     | 
    
         
            +
            		'匠のブーツ'       => Equip.new(21, 1,  7,  0, 10, Vec[   0,   36,   36,    0,    0,    0,    0,   18,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 212 
     | 
    
         
            +
            		'竜殺しのブーツ'   => Equip.new(21, 1,  8,  0, 10, Vec[   0,   46,   46,    0,    0,    0,    0,   23,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 213 
     | 
    
         
            +
            		'光り輝くブーツ'   => Equip.new(21, 1,  9,  0, 10, Vec[   0,   58,   58,    0,    0,    0,    0,   29,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 214 
     | 
    
         
            +
            		'歴戦のブーツ'     => Equip.new(21, 1, 10,  0, 10, Vec[   0,   70,   70,    0,    0,    0,    0,   35,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 215 
     | 
    
         
            +
            		'安物の靴'         => Equip.new(22, 1,  1,  0, 10, Vec[   0,    3,    3,    0,    0,    0,    0,    4,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 216 
     | 
    
         
            +
            		'量産品の靴'       => Equip.new(22, 1,  2,  0, 10, Vec[   0,    5,    5,    0,    0,    0,    0,    6,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 217 
     | 
    
         
            +
            		'一般的な靴'       => Equip.new(22, 1,  3,  0, 10, Vec[   0,    7,    7,    0,    0,    0,    0,   10,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 218 
     | 
    
         
            +
            		'良質な靴'         => Equip.new(22, 1,  4,  0, 10, Vec[   0,   11,   11,    0,    0,    0,    0,   14,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 219 
     | 
    
         
            +
            		'業物の靴'         => Equip.new(22, 1,  5,  0, 10, Vec[   0,   15,   15,    0,    0,    0,    0,   20,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 220 
     | 
    
         
            +
            		'名のある靴'       => Equip.new(22, 1,  6,  0, 10, Vec[   0,   21,   21,    0,    0,    0,    0,   28,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 221 
     | 
    
         
            +
            		'匠の靴'           => Equip.new(22, 1,  7,  0, 10, Vec[   0,   27,   27,    0,    0,    0,    0,   36,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 222 
     | 
    
         
            +
            		'竜殺しの靴'       => Equip.new(22, 1,  8,  0, 10, Vec[   0,   35,   35,    0,    0,    0,    0,   46,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 223 
     | 
    
         
            +
            		'光り輝く靴'       => Equip.new(22, 1,  9,  0, 10, Vec[   0,   43,   43,    0,    0,    0,    0,   58,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 224 
     | 
    
         
            +
            		'歴戦の靴'         => Equip.new(22, 1, 10,  0, 10, Vec[   0,   53,   53,    0,    0,    0,    0,   70,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 225 
     | 
    
         
            +
            		'安物のサンダル'   => Equip.new(23, 1,  1,  0, 10, Vec[   0,    2,    5,    0,    0,    0,    0,    3,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 226 
     | 
    
         
            +
            		'量産品のサンダル' => Equip.new(23, 1,  2,  0, 10, Vec[   0,    3,    8,    0,    0,    0,    0,    5,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 227 
     | 
    
         
            +
            		'一般的なサンダル' => Equip.new(23, 1,  3,  0, 10, Vec[   0,    5,   12,    0,    0,    0,    0,    7,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 228 
     | 
    
         
            +
            		'良質なサンダル'   => Equip.new(23, 1,  4,  0, 10, Vec[   0,    7,   18,    0,    0,    0,    0,   11,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 229 
     | 
    
         
            +
            		'業物のサンダル'   => Equip.new(23, 1,  5,  0, 10, Vec[   0,   10,   25,    0,    0,    0,    0,   15,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 230 
     | 
    
         
            +
            		'名のあるサンダル' => Equip.new(23, 1,  6,  0, 10, Vec[   0,   14,   35,    0,    0,    0,    0,   21,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 231 
     | 
    
         
            +
            		'匠のサンダル'     => Equip.new(23, 1,  7,  0, 10, Vec[   0,   18,   45,    0,    0,    0,    0,   27,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 232 
     | 
    
         
            +
            		'竜殺しのサンダル' => Equip.new(23, 1,  8,  0, 10, Vec[   0,   23,   58,    0,    0,    0,    0,   35,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 233 
     | 
    
         
            +
            		'光り輝くサンダル' => Equip.new(23, 1,  9,  0, 10, Vec[   0,   29,   72,    0,    0,    0,    0,   43,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 234 
     | 
    
         
            +
            		'歴戦のサンダル'   => Equip.new(23, 1, 10,  0, 10, Vec[   0,   35,   88,    0,    0,    0,    0,   53,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 235 
     | 
    
         
            +
            		'安物のブローチ'   => Equip.new(24, 1,  1,  0, 10, Vec[   0,    0,    0,    0,    0,    5,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 236 
     | 
    
         
            +
            		'量産品のブローチ' => Equip.new(24, 1,  2,  0, 10, Vec[   0,    0,    0,    0,    0,    8,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 237 
     | 
    
         
            +
            		'一般的なブローチ' => Equip.new(24, 1,  3,  0, 10, Vec[   0,    0,    0,    0,    0,   12,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 238 
     | 
    
         
            +
            		'良質なブローチ'   => Equip.new(24, 1,  4,  0, 10, Vec[   0,    0,    0,    0,    0,   18,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 239 
     | 
    
         
            +
            		'業物のブローチ'   => Equip.new(24, 1,  5,  0, 10, Vec[   0,    0,    0,    0,    0,   25,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 240 
     | 
    
         
            +
            		'名のあるブローチ' => Equip.new(24, 1,  6,  0, 10, Vec[   0,    0,    0,    0,    0,   35,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 241 
     | 
    
         
            +
            		'匠のブローチ'     => Equip.new(24, 1,  7,  0, 10, Vec[   0,    0,    0,    0,    0,   45,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 242 
     | 
    
         
            +
            		'竜殺しのブローチ' => Equip.new(24, 1,  8,  0, 10, Vec[   0,    0,    0,    0,    0,   58,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 243 
     | 
    
         
            +
            		'光り輝くブローチ' => Equip.new(24, 1,  9,  0, 10, Vec[   0,    0,    0,    0,    0,   72,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 244 
     | 
    
         
            +
            		'歴戦のブローチ'   => Equip.new(24, 1, 10,  0, 10, Vec[   0,    0,    0,    0,    0,   88,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 245 
     | 
    
         
            +
            		'安物の指輪'       => Equip.new(25, 1,  1,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    5,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 246 
     | 
    
         
            +
            		'量産品の指輪'     => Equip.new(25, 1,  2,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    8,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 247 
     | 
    
         
            +
            		'一般的な指輪'     => Equip.new(25, 1,  3,  0, 10, Vec[   0,    0,    0,    0,    0,    0,   12,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 248 
     | 
    
         
            +
            		'良質な指輪'       => Equip.new(25, 1,  4,  0, 10, Vec[   0,    0,    0,    0,    0,    0,   18,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 249 
     | 
    
         
            +
            		'業物の指輪'       => Equip.new(25, 1,  5,  0, 10, Vec[   0,    0,    0,    0,    0,    0,   25,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 250 
     | 
    
         
            +
            		'名のある指輪'     => Equip.new(25, 1,  6,  0, 10, Vec[   0,    0,    0,    0,    0,    0,   35,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 251 
     | 
    
         
            +
            		'匠の指輪'         => Equip.new(25, 1,  7,  0, 10, Vec[   0,    0,    0,    0,    0,    0,   45,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 252 
     | 
    
         
            +
            		'竜殺しの指輪'     => Equip.new(25, 1,  8,  0, 10, Vec[   0,    0,    0,    0,    0,    0,   58,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 253 
     | 
    
         
            +
            		'光り輝く指輪'     => Equip.new(25, 1,  9,  0, 10, Vec[   0,    0,    0,    0,    0,    0,   72,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 254 
     | 
    
         
            +
            		'歴戦の指輪'       => Equip.new(25, 1, 10,  0, 10, Vec[   0,    0,    0,    0,    0,    0,   88,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 255 
     | 
    
         
            +
            		'安物の首飾り'     => Equip.new(26, 1,  1,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    5,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 256 
     | 
    
         
            +
            		'量産品の首飾り'   => Equip.new(26, 1,  2,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    8,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 257 
     | 
    
         
            +
            		'一般的な首飾り'   => Equip.new(26, 1,  3,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,   12,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 258 
     | 
    
         
            +
            		'良質な首飾り'     => Equip.new(26, 1,  4,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,   18,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 259 
     | 
    
         
            +
            		'業物の首飾り'     => Equip.new(26, 1,  5,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,   25,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 260 
     | 
    
         
            +
            		'名のある首飾り'   => Equip.new(26, 1,  6,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,   35,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 261 
     | 
    
         
            +
            		'匠の首飾り'       => Equip.new(26, 1,  7,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,   45,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 262 
     | 
    
         
            +
            		'竜殺しの首飾り'   => Equip.new(26, 1,  8,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,   58,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 263 
     | 
    
         
            +
            		'光り輝く首飾り'   => Equip.new(26, 1,  9,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,   72,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 264 
     | 
    
         
            +
            		'歴戦の首飾り'     => Equip.new(26, 1, 10,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,   88,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 265 
     | 
    
         
            +
            		'安物の耳飾り'     => Equip.new(27, 1,  1,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,    5], Vec[0, 0, 0]),
         
     | 
| 
      
 266 
     | 
    
         
            +
            		'量産品の耳飾り'   => Equip.new(27, 1,  2,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,    8], Vec[0, 0, 0]),
         
     | 
| 
      
 267 
     | 
    
         
            +
            		'一般的な耳飾り'   => Equip.new(27, 1,  3,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,   12], Vec[0, 0, 0]),
         
     | 
| 
      
 268 
     | 
    
         
            +
            		'良質な耳飾り'     => Equip.new(27, 1,  4,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,   18], Vec[0, 0, 0]),
         
     | 
| 
      
 269 
     | 
    
         
            +
            		'業物の耳飾り'     => Equip.new(27, 1,  5,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,   25], Vec[0, 0, 0]),
         
     | 
| 
      
 270 
     | 
    
         
            +
            		'名のある耳飾り'   => Equip.new(27, 1,  6,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,   35], Vec[0, 0, 0]),
         
     | 
| 
      
 271 
     | 
    
         
            +
            		'匠の耳飾り'       => Equip.new(27, 1,  7,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,   45], Vec[0, 0, 0]),
         
     | 
| 
      
 272 
     | 
    
         
            +
            		'竜殺しの耳飾り'   => Equip.new(27, 1,  8,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,   58], Vec[0, 0, 0]),
         
     | 
| 
      
 273 
     | 
    
         
            +
            		'光り輝く耳飾り'   => Equip.new(27, 1,  9,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,   72], Vec[0, 0, 0]),
         
     | 
| 
      
 274 
     | 
    
         
            +
            		'歴戦の耳飾り'     => Equip.new(27, 1, 10,  0, 10, Vec[   0,    0,    0,    0,    0,    0,    0,    0,   88], Vec[0, 0, 0]),
         
     | 
| 
      
 275 
     | 
    
         
            +
            		'紫色小太刀'       => Equip.new( 0, 1, 10,  0,  5, Vec[ 200,    0,    0,    0,    0,    0,    0,   80,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 276 
     | 
    
         
            +
            		'氷炎二刀'         => Equip.new( 1, 2, 10,  0,  5, Vec[ 170,    0,    0,    0,    0,    0,    0,    0,  100], Vec[1, 0, 1]),
         
     | 
| 
      
 277 
     | 
    
         
            +
            		'ムーンライト'     => Equip.new( 2, 2, 10,  0,  4, Vec[ 270,    0,    0,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 278 
     | 
    
         
            +
            		'大腿骨砕き'       => Equip.new( 3, 3, 10,  0,  8, Vec[ 250,    0,    0,    0,    0,   20,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 279 
     | 
    
         
            +
            		'小竜咆哮'         => Equip.new( 4, 1, 10,  1,  4, Vec[  50,    0,    0,    0,    0,    0,  120,   50,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 280 
     | 
    
         
            +
            		'軍用弩'           => Equip.new( 5, 2, 10,  3,  0, Vec[ 300,    0,    0,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 281 
     | 
    
         
            +
            		'大樹の杖'         => Equip.new( 6, 1, 10,  1,  6, Vec[   0,    0,   50,    0,   20,    0,    0,    0,  170], Vec[0, 0, 0]),
         
     | 
| 
      
 282 
     | 
    
         
            +
            		'闇の書'           => Equip.new( 7, 1, 10, 11,  4, Vec[   0,    0,    0,    0,    0,    0,    0,    0,  200], Vec[0, 0, 0]),
         
     | 
| 
      
 283 
     | 
    
         
            +
            		'グランクニーヴ'   => Equip.new( 0, 2, 10,  0,  5, Vec[ 150,    0,   50,    0,    0,    0,  100,   80,    0], Vec[1, 1, 1]),
         
     | 
| 
      
 284 
     | 
    
         
            +
            		'デグルガウス'     => Equip.new( 1, 3, 10,  0,  5, Vec[ 220,    0,    0,    0,    0,   10,   20,   75,   60], Vec[0, 0, 0]),
         
     | 
| 
      
 285 
     | 
    
         
            +
            		'竜剣ラウ'         => Equip.new( 2, 3, 10,  0,  4, Vec[ 240,   50,    0,  100,    0,    0,   50,    0,  100], Vec[0, 0, 0]),
         
     | 
| 
      
 286 
     | 
    
         
            +
            		'覇王戦斧'         => Equip.new( 3, 4, 10,  0,  8, Vec[ 350,    0,    0,  100,    0,   50,    0,   20,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 287 
     | 
    
         
            +
            		'サジタリウス'     => Equip.new( 4, 3, 10,  1,  4, Vec[ 100,    0,    0,   50,    0,   30,  200,   30,   30], Vec[1, 1, 1]),
         
     | 
| 
      
 288 
     | 
    
         
            +
            		'炎龍の息吹'       => Equip.new( 5, 3, 10,  3,  0, Vec[ 100,    0,    0,    0,   10,    0,  140,   30,    0], Vec[5, 0, 0]),
         
     | 
| 
      
 289 
     | 
    
         
            +
            		'万物の杖'         => Equip.new( 6, 2, 10,  1,  6, Vec[  50,    0,    0,   20,   20,    0,   50,    0,  250], Vec[0, 0, 0]),
         
     | 
| 
      
 290 
     | 
    
         
            +
            		'聖典'             => Equip.new( 7, 2, 10, 11,  4, Vec[ 100,    0,  100,   50,    0,    0,    0,    0,  200], Vec[0, 0, 0]),
         
     | 
| 
      
 291 
     | 
    
         
            +
            		'陽炎の兜'         => Equip.new( 8, 3, 10,  2,  8, Vec[   0,  150,  100, 1000,    0,    0,    0,    0,    0], Vec[3, 0, 0]),
         
     | 
| 
      
 292 
     | 
    
         
            +
            		'ボロボロな服'     => Equip.new(14, 1,  1,  2, 10, Vec[   0,    2,    1,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 293 
     | 
    
         
            +
            		'異界の法衣'       => Equip.new(15, 2, 10,  2, 10, Vec[   0,  100,  400,  100,   10,    0,    0,    0,   50], Vec[1, 1, 1]),
         
     | 
| 
      
 294 
     | 
    
         
            +
            		'竜盾デグノル'     => Equip.new(16, 3, 10,  2, 10, Vec[   0,  300,  250,  300,    0,    0,  150,    0,    0], Vec[0, 0, 3]),
         
     | 
| 
      
 295 
     | 
    
         
            +
            		'天鬼の靴'         => Equip.new(22, 2, 10,  2, 10, Vec[   0,  100,  200,    0,   50,    0,    0,  200,    0], Vec[0, 3, 0]),
         
     | 
| 
      
 296 
     | 
    
         
            +
            		'古びたペンダント' => Equip.new(27, 1, 10,  0,  6, Vec[   0,    0,    0,   50,    5,    0,    0,    0,    0], Vec[1, 1, 1]),
         
     | 
| 
      
 297 
     | 
    
         
            +
            		'劣悪な短剣'       => Equip.new( 0, 1,  1,  0, 10, Vec[   5,    0,    0,    0,    0,    0,    1,    1,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 298 
     | 
    
         
            +
            		'劣悪な双短剣'     => Equip.new( 1, 2,  1,  0, 10, Vec[   7,    0,    0,    0,    0,    0,    0,    1,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 299 
     | 
    
         
            +
            		'劣悪な剣'         => Equip.new( 2, 2,  1,  0, 10, Vec[   6,    0,    0,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 300 
     | 
    
         
            +
            		'劣悪な斧'         => Equip.new( 3, 3,  1,  0, 10, Vec[   9,    0,    0,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 301 
     | 
    
         
            +
            		'劣悪な弓'         => Equip.new( 4, 1,  1,  1, 10, Vec[   3,    0,    0,    0,    0,    0,    4,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 302 
     | 
    
         
            +
            		'劣悪な弩'         => Equip.new( 5, 2,  1,  1, 10, Vec[   4,    0,    0,    0,    0,    0,    2,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 303 
     | 
    
         
            +
            		'劣悪な杖'         => Equip.new( 6, 2,  1,  4, 10, Vec[   1,    0,    0,    0,    0,    0,    0,    0,    5], Vec[0, 0, 0]),
         
     | 
| 
      
 304 
     | 
    
         
            +
            		'劣悪な本'         => Equip.new( 7, 2,  1, 11, 10, Vec[   5,    0,    0,    0,    0,    0,    0,    0,    3], Vec[0, 0, 0]),
         
     | 
| 
      
 305 
     | 
    
         
            +
            		'劣悪な重鎧'       => Equip.new(12, 3,  1,  0, 10, Vec[   0,    7,    0,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 306 
     | 
    
         
            +
            		'劣悪な軽鎧'       => Equip.new(13, 2,  1,  3, 10, Vec[   0,    4,    0,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 307 
     | 
    
         
            +
            		'劣悪な服'         => Equip.new(14, 1,  1,  2, 10, Vec[   0,    2,    1,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 308 
     | 
    
         
            +
            		'劣悪なローブ'     => Equip.new(15, 1,  1,  2, 10, Vec[   0,    1,    3,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 309 
     | 
    
         
            +
            		'劣悪な盾'         => Equip.new(16, 1,  1,  0, 10, Vec[   0,    4,    0,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0]),
         
     | 
| 
      
 310 
     | 
    
         
            +
            		'劣悪な小手'       => Equip.new(17, 1,  1,  0, 10, Vec[   0,    2,    0,    0,    0,    0,    0,    0,    0], Vec[0, 0, 0])
         
     | 
| 
      
 311 
     | 
    
         
            +
            	}
         
     | 
| 
      
 312 
     | 
    
         
            +
            	SystemEquip.keys.each do |k|
         
     | 
| 
      
 313 
     | 
    
         
            +
            		if /弩\Z/.match(k)
         
     | 
| 
      
 314 
     | 
    
         
            +
            			SystemEquip.store(k.sub(/弩\Z/, 'ボウガン'), SystemEquip[k])
         
     | 
| 
      
 315 
     | 
    
         
            +
            			SystemEquip.store(k.sub(/弩\Z/, 'ボーガン'), SystemEquip[k])
         
     | 
| 
      
 316 
     | 
    
         
            +
            		elsif /法衣\Z/.match(k)
         
     | 
| 
      
 317 
     | 
    
         
            +
            			SystemEquip.store(k.sub(/法衣\Z/, 'ローブ'), SystemEquip[k])
         
     | 
| 
      
 318 
     | 
    
         
            +
            		elsif /ローブ\Z/.match(k)
         
     | 
| 
      
 319 
     | 
    
         
            +
            			SystemEquip.store(k.sub(/ローブ\Z/, '法衣'), SystemEquip[k])
         
     | 
| 
      
 320 
     | 
    
         
            +
            		elsif /手袋\Z/.match(k)
         
     | 
| 
      
 321 
     | 
    
         
            +
            			SystemEquip.store(k.sub(/手袋\Z/, 'グローブ'), SystemEquip[k])
         
     | 
| 
      
 322 
     | 
    
         
            +
            		elsif /脛当て\Z/.match(k)
         
     | 
| 
      
 323 
     | 
    
         
            +
            			SystemEquip.store(k.sub(/脛当て\Z/, 'すね当て'), SystemEquip[k])
         
     | 
| 
      
 324 
     | 
    
         
            +
            		end
         
     | 
| 
      
 325 
     | 
    
         
            +
            	end
         
     | 
| 
      
 326 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/mgmg/utils.rb
    ADDED
    
    | 
         @@ -0,0 +1,315 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Mgmg
         
     | 
| 
      
 2 
     | 
    
         
            +
            	module Refiner
         
     | 
| 
      
 3 
     | 
    
         
            +
            		refine Integer do
         
     | 
| 
      
 4 
     | 
    
         
            +
            			def comma3
         
     | 
| 
      
 5 
     | 
    
         
            +
            				self.to_s.gsub(/(\d)(?=(\d{3})+(?!\d))/, '\1,')
         
     | 
| 
      
 6 
     | 
    
         
            +
            			end
         
     | 
| 
      
 7 
     | 
    
         
            +
            			
         
     | 
| 
      
 8 
     | 
    
         
            +
            			# 0への丸めを行う整数除
         
     | 
| 
      
 9 
     | 
    
         
            +
            			def cdiv(other)
         
     | 
| 
      
 10 
     | 
    
         
            +
            				if self < 0
         
     | 
| 
      
 11 
     | 
    
         
            +
            					-(-self).div(other)
         
     | 
| 
      
 12 
     | 
    
         
            +
            				else
         
     | 
| 
      
 13 
     | 
    
         
            +
            					self.div(other)
         
     | 
| 
      
 14 
     | 
    
         
            +
            				end
         
     | 
| 
      
 15 
     | 
    
         
            +
            			end
         
     | 
| 
      
 16 
     | 
    
         
            +
            		end
         
     | 
| 
      
 17 
     | 
    
         
            +
            	end
         
     | 
| 
      
 18 
     | 
    
         
            +
            	using Refiner
         
     | 
| 
      
 19 
     | 
    
         
            +
            	
         
     | 
| 
      
 20 
     | 
    
         
            +
            	class InvalidCharacterError < StandardError
         
     | 
| 
      
 21 
     | 
    
         
            +
            		def initialize(match)
         
     | 
| 
      
 22 
     | 
    
         
            +
            			@wchar = match[0]
         
     | 
| 
      
 23 
     | 
    
         
            +
            			super("`#{@wchar}' is not a valid character for recipes")
         
     | 
| 
      
 24 
     | 
    
         
            +
            		end
         
     | 
| 
      
 25 
     | 
    
         
            +
            		attr_accessor :wchar
         
     | 
| 
      
 26 
     | 
    
         
            +
            	end
         
     | 
| 
      
 27 
     | 
    
         
            +
            	class InvalidBracketError < StandardError; end
         
     | 
| 
      
 28 
     | 
    
         
            +
            	class InvalidSmithError < StandardError
         
     | 
| 
      
 29 
     | 
    
         
            +
            		def initialize(str)
         
     | 
| 
      
 30 
     | 
    
         
            +
            			@recipe = str
         
     | 
| 
      
 31 
     | 
    
         
            +
            			super("`#{@recipe}' is not a valid recipe for smithing")
         
     | 
| 
      
 32 
     | 
    
         
            +
            		end
         
     | 
| 
      
 33 
     | 
    
         
            +
            		attr_accessor :recipe
         
     | 
| 
      
 34 
     | 
    
         
            +
            	end
         
     | 
| 
      
 35 
     | 
    
         
            +
            	class InvalidMaterialError < StandardError
         
     | 
| 
      
 36 
     | 
    
         
            +
            		def initialize(str)
         
     | 
| 
      
 37 
     | 
    
         
            +
            			@material = str
         
     | 
| 
      
 38 
     | 
    
         
            +
            			super("`#{@material}' is not a valid material name")
         
     | 
| 
      
 39 
     | 
    
         
            +
            		end
         
     | 
| 
      
 40 
     | 
    
         
            +
            		attr_accessor :material
         
     | 
| 
      
 41 
     | 
    
         
            +
            	end
         
     | 
| 
      
 42 
     | 
    
         
            +
            	class InvalidEquipClassError < StandardError
         
     | 
| 
      
 43 
     | 
    
         
            +
            		def initialize(str)
         
     | 
| 
      
 44 
     | 
    
         
            +
            			@equip = str
         
     | 
| 
      
 45 
     | 
    
         
            +
            			super("`#{@equip}' is not a valid equip class name")
         
     | 
| 
      
 46 
     | 
    
         
            +
            		end
         
     | 
| 
      
 47 
     | 
    
         
            +
            		attr_accessor :equip
         
     | 
| 
      
 48 
     | 
    
         
            +
            	end
         
     | 
| 
      
 49 
     | 
    
         
            +
            	class SearchCutException < StandardError; end
         
     | 
| 
      
 50 
     | 
    
         
            +
            	
         
     | 
| 
      
 51 
     | 
    
         
            +
            	module_function def exp(smith, armor, comp=armor.tap{armor=0})
         
     | 
| 
      
 52 
     | 
    
         
            +
            		if armor <= 0
         
     | 
| 
      
 53 
     | 
    
         
            +
            			if smith <= 0
         
     | 
| 
      
 54 
     | 
    
         
            +
            				if comp <= 0
         
     | 
| 
      
 55 
     | 
    
         
            +
            					0
         
     | 
| 
      
 56 
     | 
    
         
            +
            				else
         
     | 
| 
      
 57 
     | 
    
         
            +
            					(2*((comp-1)**2)) + 2
         
     | 
| 
      
 58 
     | 
    
         
            +
            				end
         
     | 
| 
      
 59 
     | 
    
         
            +
            			else
         
     | 
| 
      
 60 
     | 
    
         
            +
            				if comp <= 0
         
     | 
| 
      
 61 
     | 
    
         
            +
            					((smith-1)**2) + 1
         
     | 
| 
      
 62 
     | 
    
         
            +
            				else
         
     | 
| 
      
 63 
     | 
    
         
            +
            					((smith-1)**2) + (2*((comp-1)**2)) + 3
         
     | 
| 
      
 64 
     | 
    
         
            +
            				end
         
     | 
| 
      
 65 
     | 
    
         
            +
            			end
         
     | 
| 
      
 66 
     | 
    
         
            +
            		else
         
     | 
| 
      
 67 
     | 
    
         
            +
            			if smith <= 0
         
     | 
| 
      
 68 
     | 
    
         
            +
            				if comp <= 0
         
     | 
| 
      
 69 
     | 
    
         
            +
            					((armor-1)**2) + 1
         
     | 
| 
      
 70 
     | 
    
         
            +
            				else
         
     | 
| 
      
 71 
     | 
    
         
            +
            					((armor-1)**2) + (2*((comp-1)**2)) + 3
         
     | 
| 
      
 72 
     | 
    
         
            +
            				end
         
     | 
| 
      
 73 
     | 
    
         
            +
            			else
         
     | 
| 
      
 74 
     | 
    
         
            +
            				if comp <= 0
         
     | 
| 
      
 75 
     | 
    
         
            +
            					((smith-1)**2) + ((armor-1)**2) + 2
         
     | 
| 
      
 76 
     | 
    
         
            +
            				else
         
     | 
| 
      
 77 
     | 
    
         
            +
            					((smith-1)**2) + ((armor-1)**2) + (2*((comp-1)**2)) + 4
         
     | 
| 
      
 78 
     | 
    
         
            +
            				end
         
     | 
| 
      
 79 
     | 
    
         
            +
            			end
         
     | 
| 
      
 80 
     | 
    
         
            +
            		end
         
     | 
| 
      
 81 
     | 
    
         
            +
            	end
         
     | 
| 
      
 82 
     | 
    
         
            +
            	module_function def invexp2(exp, comp)
         
     | 
| 
      
 83 
     | 
    
         
            +
            		Math.sqrt(exp - (2*((comp-1)**2)) - 3).round + 1
         
     | 
| 
      
 84 
     | 
    
         
            +
            	end
         
     | 
| 
      
 85 
     | 
    
         
            +
            	module_function def invexp3(exp, sa, comp)
         
     | 
| 
      
 86 
     | 
    
         
            +
            		Math.sqrt(exp - ((sa-1)**2) - (2*((comp-1)**2)) - 4).round + 1
         
     | 
| 
      
 87 
     | 
    
         
            +
            	end
         
     | 
| 
      
 88 
     | 
    
         
            +
            	
         
     | 
| 
      
 89 
     | 
    
         
            +
            	CharacterList = /[^\(\)\+0123456789\[\]あきくしすたてなねのびりるイウガクグサジスタダチツデトドニノフブペボムラリルロンヴー一万二光兜典刀剣劣匠双古名吹咆品哮地大天太子安宝小帽弓弩当息悪戦手指斧書服木本杖業樹歴殺水氷法火炎牙物玉王産用界異的皮盾短石砕竜紫綿耳聖脛腕腿般良色衣袋覇質軍軽輝輪重量金鉄鎧闇陽靴額飾首骨鬼龍]/
         
     | 
| 
      
 90 
     | 
    
         
            +
            	module_function def check_string(str)
         
     | 
| 
      
 91 
     | 
    
         
            +
            		str = str.gsub(/[\s \\]/, '')
         
     | 
| 
      
 92 
     | 
    
         
            +
            		if m = CharacterList.match(str)
         
     | 
| 
      
 93 
     | 
    
         
            +
            			raise InvalidCharacterError.new(m)
         
     | 
| 
      
 94 
     | 
    
         
            +
            		end
         
     | 
| 
      
 95 
     | 
    
         
            +
            		levels = [0, 0]
         
     | 
| 
      
 96 
     | 
    
         
            +
            		str.each_char do |c|
         
     | 
| 
      
 97 
     | 
    
         
            +
            			if c == '('
         
     | 
| 
      
 98 
     | 
    
         
            +
            				if levels[0] == 0
         
     | 
| 
      
 99 
     | 
    
         
            +
            					levels[0] = 1
         
     | 
| 
      
 100 
     | 
    
         
            +
            				else
         
     | 
| 
      
 101 
     | 
    
         
            +
            					raise InvalidBracketError.new("parentheses cannot be nested")
         
     | 
| 
      
 102 
     | 
    
         
            +
            				end
         
     | 
| 
      
 103 
     | 
    
         
            +
            			elsif c == ')'
         
     | 
| 
      
 104 
     | 
    
         
            +
            				if levels[0] == 0
         
     | 
| 
      
 105 
     | 
    
         
            +
            					raise InvalidBracketError.new("parentheses must be opened before closing")
         
     | 
| 
      
 106 
     | 
    
         
            +
            				else
         
     | 
| 
      
 107 
     | 
    
         
            +
            					levels[0] -= 1
         
     | 
| 
      
 108 
     | 
    
         
            +
            				end
         
     | 
| 
      
 109 
     | 
    
         
            +
            			elsif c == '['
         
     | 
| 
      
 110 
     | 
    
         
            +
            				if levels[0] != 0
         
     | 
| 
      
 111 
     | 
    
         
            +
            					raise InvalidBracketError.new("brackets cannot be nested in parentheses")
         
     | 
| 
      
 112 
     | 
    
         
            +
            				else
         
     | 
| 
      
 113 
     | 
    
         
            +
            					levels[1] += 1
         
     | 
| 
      
 114 
     | 
    
         
            +
            				end
         
     | 
| 
      
 115 
     | 
    
         
            +
            			elsif c == ']'
         
     | 
| 
      
 116 
     | 
    
         
            +
            				if levels[0] != 0
         
     | 
| 
      
 117 
     | 
    
         
            +
            					raise InvalidBracketError.new("parentheses must be closed before closing brackets")
         
     | 
| 
      
 118 
     | 
    
         
            +
            				elsif levels[1] == 0
         
     | 
| 
      
 119 
     | 
    
         
            +
            					raise InvalidBracketError.new("brackets must be opened before closing")
         
     | 
| 
      
 120 
     | 
    
         
            +
            				else
         
     | 
| 
      
 121 
     | 
    
         
            +
            					levels[1] -= 1
         
     | 
| 
      
 122 
     | 
    
         
            +
            				end
         
     | 
| 
      
 123 
     | 
    
         
            +
            			end
         
     | 
| 
      
 124 
     | 
    
         
            +
            		end
         
     | 
| 
      
 125 
     | 
    
         
            +
            		if levels[0] != 0
         
     | 
| 
      
 126 
     | 
    
         
            +
            			raise InvalidBracketError.new("parentheses must be closed")
         
     | 
| 
      
 127 
     | 
    
         
            +
            		elsif levels[1] != 0
         
     | 
| 
      
 128 
     | 
    
         
            +
            			raise InvalidBracketError.new("brackets must be closed")
         
     | 
| 
      
 129 
     | 
    
         
            +
            		end
         
     | 
| 
      
 130 
     | 
    
         
            +
            		str
         
     | 
| 
      
 131 
     | 
    
         
            +
            	end
         
     | 
| 
      
 132 
     | 
    
         
            +
            	
         
     | 
| 
      
 133 
     | 
    
         
            +
            	class Vec < Array
         
     | 
| 
      
 134 
     | 
    
         
            +
            		def add!(other)
         
     | 
| 
      
 135 
     | 
    
         
            +
            			case other
         
     | 
| 
      
 136 
     | 
    
         
            +
            			when Array
         
     | 
| 
      
 137 
     | 
    
         
            +
            				self.map!.with_index do |e, i|
         
     | 
| 
      
 138 
     | 
    
         
            +
            					e + other[i]
         
     | 
| 
      
 139 
     | 
    
         
            +
            				end
         
     | 
| 
      
 140 
     | 
    
         
            +
            			else
         
     | 
| 
      
 141 
     | 
    
         
            +
            				self.map! do |e|
         
     | 
| 
      
 142 
     | 
    
         
            +
            					e + other
         
     | 
| 
      
 143 
     | 
    
         
            +
            				end
         
     | 
| 
      
 144 
     | 
    
         
            +
            			end
         
     | 
| 
      
 145 
     | 
    
         
            +
            			self
         
     | 
| 
      
 146 
     | 
    
         
            +
            		end
         
     | 
| 
      
 147 
     | 
    
         
            +
            		def sub!(other)
         
     | 
| 
      
 148 
     | 
    
         
            +
            			case other
         
     | 
| 
      
 149 
     | 
    
         
            +
            			when Array
         
     | 
| 
      
 150 
     | 
    
         
            +
            				self.map!.with_index do |e, i|
         
     | 
| 
      
 151 
     | 
    
         
            +
            					e - other[i]
         
     | 
| 
      
 152 
     | 
    
         
            +
            				end
         
     | 
| 
      
 153 
     | 
    
         
            +
            			else
         
     | 
| 
      
 154 
     | 
    
         
            +
            				self.map! do |e|
         
     | 
| 
      
 155 
     | 
    
         
            +
            					e - other
         
     | 
| 
      
 156 
     | 
    
         
            +
            				end
         
     | 
| 
      
 157 
     | 
    
         
            +
            			end
         
     | 
| 
      
 158 
     | 
    
         
            +
            			self
         
     | 
| 
      
 159 
     | 
    
         
            +
            		end
         
     | 
| 
      
 160 
     | 
    
         
            +
            		def e_mul!(other)
         
     | 
| 
      
 161 
     | 
    
         
            +
            			case other
         
     | 
| 
      
 162 
     | 
    
         
            +
            			when Array
         
     | 
| 
      
 163 
     | 
    
         
            +
            				self.map!.with_index do |e, i|
         
     | 
| 
      
 164 
     | 
    
         
            +
            					e * other[i]
         
     | 
| 
      
 165 
     | 
    
         
            +
            				end
         
     | 
| 
      
 166 
     | 
    
         
            +
            			else
         
     | 
| 
      
 167 
     | 
    
         
            +
            				self.map! do |e|
         
     | 
| 
      
 168 
     | 
    
         
            +
            					e * other
         
     | 
| 
      
 169 
     | 
    
         
            +
            				end
         
     | 
| 
      
 170 
     | 
    
         
            +
            			end
         
     | 
| 
      
 171 
     | 
    
         
            +
            			self
         
     | 
| 
      
 172 
     | 
    
         
            +
            		end
         
     | 
| 
      
 173 
     | 
    
         
            +
            		def e_div!(other)
         
     | 
| 
      
 174 
     | 
    
         
            +
            			case other
         
     | 
| 
      
 175 
     | 
    
         
            +
            			when Array
         
     | 
| 
      
 176 
     | 
    
         
            +
            				self.map!.with_index do |e, i|
         
     | 
| 
      
 177 
     | 
    
         
            +
            					e.cdiv(other[i])
         
     | 
| 
      
 178 
     | 
    
         
            +
            				end
         
     | 
| 
      
 179 
     | 
    
         
            +
            			else
         
     | 
| 
      
 180 
     | 
    
         
            +
            				self.map! do |e|
         
     | 
| 
      
 181 
     | 
    
         
            +
            					e.cdiv(other)
         
     | 
| 
      
 182 
     | 
    
         
            +
            				end
         
     | 
| 
      
 183 
     | 
    
         
            +
            			end
         
     | 
| 
      
 184 
     | 
    
         
            +
            			self
         
     | 
| 
      
 185 
     | 
    
         
            +
            		end
         
     | 
| 
      
 186 
     | 
    
         
            +
            		def self.irange(size)
         
     | 
| 
      
 187 
     | 
    
         
            +
            			Vec.new(size, &:itself)
         
     | 
| 
      
 188 
     | 
    
         
            +
            		end
         
     | 
| 
      
 189 
     | 
    
         
            +
            		def []=(*arg)
         
     | 
| 
      
 190 
     | 
    
         
            +
            			case arg.size
         
     | 
| 
      
 191 
     | 
    
         
            +
            			when 1
         
     | 
| 
      
 192 
     | 
    
         
            +
            				self.replace(arg[0])
         
     | 
| 
      
 193 
     | 
    
         
            +
            				arg[0]
         
     | 
| 
      
 194 
     | 
    
         
            +
            			else
         
     | 
| 
      
 195 
     | 
    
         
            +
            				super
         
     | 
| 
      
 196 
     | 
    
         
            +
            			end
         
     | 
| 
      
 197 
     | 
    
         
            +
            		end
         
     | 
| 
      
 198 
     | 
    
         
            +
            	end
         
     | 
| 
      
 199 
     | 
    
         
            +
            	
         
     | 
| 
      
 200 
     | 
    
         
            +
            	class Mat
         
     | 
| 
      
 201 
     | 
    
         
            +
            		def initialize(m, n, value=nil)
         
     | 
| 
      
 202 
     | 
    
         
            +
            			if block_given?
         
     | 
| 
      
 203 
     | 
    
         
            +
            				@body = Array.new(m) do |i|
         
     | 
| 
      
 204 
     | 
    
         
            +
            					Array.new(n) do |j|
         
     | 
| 
      
 205 
     | 
    
         
            +
            						yield(i, j)
         
     | 
| 
      
 206 
     | 
    
         
            +
            					end
         
     | 
| 
      
 207 
     | 
    
         
            +
            				end
         
     | 
| 
      
 208 
     | 
    
         
            +
            			else
         
     | 
| 
      
 209 
     | 
    
         
            +
            				@body = Array.new(m) do
         
     | 
| 
      
 210 
     | 
    
         
            +
            					Array.new(n, value)
         
     | 
| 
      
 211 
     | 
    
         
            +
            				end
         
     | 
| 
      
 212 
     | 
    
         
            +
            			end
         
     | 
| 
      
 213 
     | 
    
         
            +
            		end
         
     | 
| 
      
 214 
     | 
    
         
            +
            		attr_accessor :body
         
     | 
| 
      
 215 
     | 
    
         
            +
            		def initialize_copy(obj)
         
     | 
| 
      
 216 
     | 
    
         
            +
            			@body = obj.body.map(&:dup)
         
     | 
| 
      
 217 
     | 
    
         
            +
            		end
         
     | 
| 
      
 218 
     | 
    
         
            +
            		def row_size
         
     | 
| 
      
 219 
     | 
    
         
            +
            			@body.length
         
     | 
| 
      
 220 
     | 
    
         
            +
            		end
         
     | 
| 
      
 221 
     | 
    
         
            +
            		def col_size
         
     | 
| 
      
 222 
     | 
    
         
            +
            			@body[0].length
         
     | 
| 
      
 223 
     | 
    
         
            +
            		end
         
     | 
| 
      
 224 
     | 
    
         
            +
            		def shape
         
     | 
| 
      
 225 
     | 
    
         
            +
            			[row_size(), col_size()]
         
     | 
| 
      
 226 
     | 
    
         
            +
            		end
         
     | 
| 
      
 227 
     | 
    
         
            +
            		def each_with_index
         
     | 
| 
      
 228 
     | 
    
         
            +
            			@body.each.with_index do |row, i|
         
     | 
| 
      
 229 
     | 
    
         
            +
            				row.each.with_index do |e, j|
         
     | 
| 
      
 230 
     | 
    
         
            +
            					yield(e, i, j)
         
     | 
| 
      
 231 
     | 
    
         
            +
            				end
         
     | 
| 
      
 232 
     | 
    
         
            +
            			end
         
     | 
| 
      
 233 
     | 
    
         
            +
            			self
         
     | 
| 
      
 234 
     | 
    
         
            +
            		end
         
     | 
| 
      
 235 
     | 
    
         
            +
            		def map_with_index!
         
     | 
| 
      
 236 
     | 
    
         
            +
            			@body.each.with_index do |row, i|
         
     | 
| 
      
 237 
     | 
    
         
            +
            				row.map!.with_index do |e, j|
         
     | 
| 
      
 238 
     | 
    
         
            +
            					yield(e, i, j)
         
     | 
| 
      
 239 
     | 
    
         
            +
            				end
         
     | 
| 
      
 240 
     | 
    
         
            +
            			end
         
     | 
| 
      
 241 
     | 
    
         
            +
            			self
         
     | 
| 
      
 242 
     | 
    
         
            +
            		end
         
     | 
| 
      
 243 
     | 
    
         
            +
            		def map_with_index(&block)
         
     | 
| 
      
 244 
     | 
    
         
            +
            			dup.map_with_index!(&block)
         
     | 
| 
      
 245 
     | 
    
         
            +
            		end
         
     | 
| 
      
 246 
     | 
    
         
            +
            		def submat_add!(is, js, other)
         
     | 
| 
      
 247 
     | 
    
         
            +
            			i_s, i_e = index_treatment(is, row_size)
         
     | 
| 
      
 248 
     | 
    
         
            +
            			j_s, j_e = index_treatment(js, col_size)
         
     | 
| 
      
 249 
     | 
    
         
            +
            			i_s.upto(i_e).with_index do |i, io|
         
     | 
| 
      
 250 
     | 
    
         
            +
            				row = @body[i]
         
     | 
| 
      
 251 
     | 
    
         
            +
            				o_row = other.body[io]
         
     | 
| 
      
 252 
     | 
    
         
            +
            				j_s.upto(j_e).with_index do |j, jo|
         
     | 
| 
      
 253 
     | 
    
         
            +
            					row[j] += o_row[jo]
         
     | 
| 
      
 254 
     | 
    
         
            +
            				end
         
     | 
| 
      
 255 
     | 
    
         
            +
            			end
         
     | 
| 
      
 256 
     | 
    
         
            +
            			self
         
     | 
| 
      
 257 
     | 
    
         
            +
            		end
         
     | 
| 
      
 258 
     | 
    
         
            +
            		private def index_treatment(idx, max)
         
     | 
| 
      
 259 
     | 
    
         
            +
            			case idx
         
     | 
| 
      
 260 
     | 
    
         
            +
            			when Integer
         
     | 
| 
      
 261 
     | 
    
         
            +
            				[idx, idx]
         
     | 
| 
      
 262 
     | 
    
         
            +
            			when Range
         
     | 
| 
      
 263 
     | 
    
         
            +
            				if idx.exclude_end?
         
     | 
| 
      
 264 
     | 
    
         
            +
            					[idx.first, idx.last-1]
         
     | 
| 
      
 265 
     | 
    
         
            +
            				else
         
     | 
| 
      
 266 
     | 
    
         
            +
            					[idx.first, idx.last]
         
     | 
| 
      
 267 
     | 
    
         
            +
            				end
         
     | 
| 
      
 268 
     | 
    
         
            +
            			when Array
         
     | 
| 
      
 269 
     | 
    
         
            +
            				[idx[0], idx[0]+idx[1]-1]
         
     | 
| 
      
 270 
     | 
    
         
            +
            			when nil
         
     | 
| 
      
 271 
     | 
    
         
            +
            				[0, max]
         
     | 
| 
      
 272 
     | 
    
         
            +
            			else
         
     | 
| 
      
 273 
     | 
    
         
            +
            				raise ArgumentError, "#{idx.class} is not available for Mat index"
         
     | 
| 
      
 274 
     | 
    
         
            +
            			end.map! do |i|
         
     | 
| 
      
 275 
     | 
    
         
            +
            				i < 0 ? max-i : i
         
     | 
| 
      
 276 
     | 
    
         
            +
            			end
         
     | 
| 
      
 277 
     | 
    
         
            +
            		end
         
     | 
| 
      
 278 
     | 
    
         
            +
            		def scalar!(value)
         
     | 
| 
      
 279 
     | 
    
         
            +
            			self.map_with_index! do |e, i, j|
         
     | 
| 
      
 280 
     | 
    
         
            +
            				e * value
         
     | 
| 
      
 281 
     | 
    
         
            +
            			end
         
     | 
| 
      
 282 
     | 
    
         
            +
            		end
         
     | 
| 
      
 283 
     | 
    
         
            +
            		def scalar(value)
         
     | 
| 
      
 284 
     | 
    
         
            +
            			self.dup.scalar!(value)
         
     | 
| 
      
 285 
     | 
    
         
            +
            		end
         
     | 
| 
      
 286 
     | 
    
         
            +
            		def sum
         
     | 
| 
      
 287 
     | 
    
         
            +
            			@body.map(&:sum).sum
         
     | 
| 
      
 288 
     | 
    
         
            +
            		end
         
     | 
| 
      
 289 
     | 
    
         
            +
            		def pprod(other)
         
     | 
| 
      
 290 
     | 
    
         
            +
            			r, c = row_size, col_size
         
     | 
| 
      
 291 
     | 
    
         
            +
            			ret = self.class.new(r+other.row_size-1, c+other.col_size-1, 0)
         
     | 
| 
      
 292 
     | 
    
         
            +
            			other.each_with_index do |o, i, j|
         
     | 
| 
      
 293 
     | 
    
         
            +
            				ret.submat_add!(i...(i+r), j...(j+c), scalar(o))
         
     | 
| 
      
 294 
     | 
    
         
            +
            			end
         
     | 
| 
      
 295 
     | 
    
         
            +
            			ret
         
     | 
| 
      
 296 
     | 
    
         
            +
            		end
         
     | 
| 
      
 297 
     | 
    
         
            +
            		def padd(other)
         
     | 
| 
      
 298 
     | 
    
         
            +
            			ret = self.class.new([row_size, other.row_size].max, [col_size, other.col_size].max, 0)
         
     | 
| 
      
 299 
     | 
    
         
            +
            			ret.submat_add!(0...row_size, 0...col_size, self)
         
     | 
| 
      
 300 
     | 
    
         
            +
            			ret.submat_add!(0...(other.row_size), 0...(other.col_size), other)
         
     | 
| 
      
 301 
     | 
    
         
            +
            		end
         
     | 
| 
      
 302 
     | 
    
         
            +
            	end
         
     | 
| 
      
 303 
     | 
    
         
            +
            	class << Mat
         
     | 
| 
      
 304 
     | 
    
         
            +
            		def v_array(*ary)
         
     | 
| 
      
 305 
     | 
    
         
            +
            			new(ary.length, 1) do |i, j|
         
     | 
| 
      
 306 
     | 
    
         
            +
            				ary[i]
         
     | 
| 
      
 307 
     | 
    
         
            +
            			end
         
     | 
| 
      
 308 
     | 
    
         
            +
            		end
         
     | 
| 
      
 309 
     | 
    
         
            +
            		def h_array(*ary)
         
     | 
| 
      
 310 
     | 
    
         
            +
            			new(1, ary.length) do |i, j|
         
     | 
| 
      
 311 
     | 
    
         
            +
            				ary[j]
         
     | 
| 
      
 312 
     | 
    
         
            +
            			end
         
     | 
| 
      
 313 
     | 
    
         
            +
            		end
         
     | 
| 
      
 314 
     | 
    
         
            +
            	end
         
     | 
| 
      
 315 
     | 
    
         
            +
            end
         
     |