mgmg 1.2.4 → 1.2.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +33 -14
- data/lib/mgmg.rb +6 -132
- data/lib/mgmg/const.rb +0 -995
- data/lib/mgmg/equip.rb +323 -0
- data/lib/mgmg/poly.rb +266 -0
- data/lib/mgmg/system_equip.rb +326 -0
- data/lib/mgmg/utils.rb +273 -0
- data/lib/mgmg/version.rb +1 -1
- metadata +7 -3
@@ -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,273 @@
|
|
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
|
+
|
50
|
+
CharacterList = /[^\(\)\+0123456789\[\]あきくしすたてなねのびりるイウガクグサジスタダチツデトドニノフブペボムラリルロンヴー一万二光兜典刀剣劣匠双古名吹咆品哮地大天太子安宝小帽弓弩当息悪戦手指斧書服木本杖業樹歴殺水氷法火炎牙物玉王産用界異的皮盾短石砕竜紫綿耳聖脛腕腿般良色衣袋覇質軍軽輝輪重量金鉄鎧闇陽靴額飾首骨鬼龍]/
|
51
|
+
module_function def check_string(str)
|
52
|
+
str = str.gsub(/[\s \\]/, '')
|
53
|
+
if m = CharacterList.match(str)
|
54
|
+
raise InvalidCharacterError.new(m)
|
55
|
+
end
|
56
|
+
levels = [0, 0]
|
57
|
+
str.each_char do |c|
|
58
|
+
if c == '('
|
59
|
+
if levels[0] == 0
|
60
|
+
levels[0] = 1
|
61
|
+
else
|
62
|
+
raise InvalidBracketError.new("parentheses cannot be nested")
|
63
|
+
end
|
64
|
+
elsif c == ')'
|
65
|
+
if levels[0] == 0
|
66
|
+
raise InvalidBracketError.new("parentheses must be opened before closing")
|
67
|
+
else
|
68
|
+
levels[0] -= 1
|
69
|
+
end
|
70
|
+
elsif c == '['
|
71
|
+
if levels[0] != 0
|
72
|
+
raise InvalidBracketError.new("brackets cannot be nested in parentheses")
|
73
|
+
else
|
74
|
+
levels[1] += 1
|
75
|
+
end
|
76
|
+
elsif c == ']'
|
77
|
+
if levels[0] != 0
|
78
|
+
raise InvalidBracketError.new("parentheses must be closed before closing brackets")
|
79
|
+
elsif levels[1] == 0
|
80
|
+
raise InvalidBracketError.new("brackets must be opened before closing")
|
81
|
+
else
|
82
|
+
levels[1] -= 1
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
if levels[0] != 0
|
87
|
+
raise InvalidBracketError.new("parentheses must be closed")
|
88
|
+
elsif levels[1] != 0
|
89
|
+
raise InvalidBracketError.new("brackets must be closed")
|
90
|
+
end
|
91
|
+
str
|
92
|
+
end
|
93
|
+
|
94
|
+
class Vec < Array
|
95
|
+
def add!(other)
|
96
|
+
case other
|
97
|
+
when Array
|
98
|
+
self.map!.with_index do |e, i|
|
99
|
+
e + other[i]
|
100
|
+
end
|
101
|
+
else
|
102
|
+
self.map! do |e|
|
103
|
+
e + other
|
104
|
+
end
|
105
|
+
end
|
106
|
+
self
|
107
|
+
end
|
108
|
+
def sub!(other)
|
109
|
+
case other
|
110
|
+
when Array
|
111
|
+
self.map!.with_index do |e, i|
|
112
|
+
e - other[i]
|
113
|
+
end
|
114
|
+
else
|
115
|
+
self.map! do |e|
|
116
|
+
e - other
|
117
|
+
end
|
118
|
+
end
|
119
|
+
self
|
120
|
+
end
|
121
|
+
def e_mul!(other)
|
122
|
+
case other
|
123
|
+
when Array
|
124
|
+
self.map!.with_index do |e, i|
|
125
|
+
e * other[i]
|
126
|
+
end
|
127
|
+
else
|
128
|
+
self.map! do |e|
|
129
|
+
e * other
|
130
|
+
end
|
131
|
+
end
|
132
|
+
self
|
133
|
+
end
|
134
|
+
def e_div!(other)
|
135
|
+
case other
|
136
|
+
when Array
|
137
|
+
self.map!.with_index do |e, i|
|
138
|
+
e.cdiv(other[i])
|
139
|
+
end
|
140
|
+
else
|
141
|
+
self.map! do |e|
|
142
|
+
e.cdiv(other)
|
143
|
+
end
|
144
|
+
end
|
145
|
+
self
|
146
|
+
end
|
147
|
+
def self.irange(size)
|
148
|
+
Vec.new(size, &:itself)
|
149
|
+
end
|
150
|
+
def []=(*arg)
|
151
|
+
case arg.size
|
152
|
+
when 1
|
153
|
+
self.replace(arg[0])
|
154
|
+
arg[0]
|
155
|
+
else
|
156
|
+
super
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
class Mat
|
162
|
+
def initialize(m, n, value=nil)
|
163
|
+
if block_given?
|
164
|
+
@body = Array.new(m) do |i|
|
165
|
+
Array.new(n) do |j|
|
166
|
+
yield(i, j)
|
167
|
+
end
|
168
|
+
end
|
169
|
+
else
|
170
|
+
@body = Array.new(m) do
|
171
|
+
Array.new(n, value)
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
175
|
+
attr_accessor :body
|
176
|
+
def initialize_copy(obj)
|
177
|
+
@body = obj.body.map(&:dup)
|
178
|
+
end
|
179
|
+
def row_size
|
180
|
+
@body.length
|
181
|
+
end
|
182
|
+
def col_size
|
183
|
+
@body[0].length
|
184
|
+
end
|
185
|
+
def each_with_index
|
186
|
+
@body.each.with_index do |row, i|
|
187
|
+
row.each.with_index do |e, j|
|
188
|
+
yield(e, i, j)
|
189
|
+
end
|
190
|
+
end
|
191
|
+
self
|
192
|
+
end
|
193
|
+
def map_with_index!
|
194
|
+
@body.each.with_index do |row, i|
|
195
|
+
row.map!.with_index do |e, j|
|
196
|
+
yield(e, i, j)
|
197
|
+
end
|
198
|
+
end
|
199
|
+
self
|
200
|
+
end
|
201
|
+
def map_with_index(&block)
|
202
|
+
dup.map_with_index!(&block)
|
203
|
+
end
|
204
|
+
def submat_add!(is, js, other)
|
205
|
+
i_s, i_e = index_treatment(is, row_size)
|
206
|
+
j_s, j_e = index_treatment(js, col_size)
|
207
|
+
i_s.upto(i_e).with_index do |i, io|
|
208
|
+
row = @body[i]
|
209
|
+
o_row = other.body[io]
|
210
|
+
j_s.upto(j_e).with_index do |j, jo|
|
211
|
+
row[j] += o_row[jo]
|
212
|
+
end
|
213
|
+
end
|
214
|
+
self
|
215
|
+
end
|
216
|
+
private def index_treatment(idx, max)
|
217
|
+
case idx
|
218
|
+
when Integer
|
219
|
+
[idx, idx]
|
220
|
+
when Range
|
221
|
+
if idx.exclude_end?
|
222
|
+
[idx.first, idx.last-1]
|
223
|
+
else
|
224
|
+
[idx.first, idx.last]
|
225
|
+
end
|
226
|
+
when Array
|
227
|
+
[idx[0], idx[0]+idx[1]-1]
|
228
|
+
when nil
|
229
|
+
[0, max]
|
230
|
+
else
|
231
|
+
raise ArgumentError, "#{idx.class} is not available for Mat index"
|
232
|
+
end.map! do |i|
|
233
|
+
i < 0 ? max-i : i
|
234
|
+
end
|
235
|
+
end
|
236
|
+
def scalar!(value)
|
237
|
+
self.map_with_index! do |e, i, j|
|
238
|
+
e * value
|
239
|
+
end
|
240
|
+
end
|
241
|
+
def scalar(value)
|
242
|
+
self.dup.scalar!(value)
|
243
|
+
end
|
244
|
+
def sum
|
245
|
+
@body.map(&:sum).sum
|
246
|
+
end
|
247
|
+
def pprod(other)
|
248
|
+
r, c = row_size, col_size
|
249
|
+
ret = self.class.new(r+other.row_size-1, c+other.col_size-1, 0)
|
250
|
+
other.each_with_index do |o, i, j|
|
251
|
+
ret.submat_add!(i...(i+r), j...(j+c), scalar(o))
|
252
|
+
end
|
253
|
+
ret
|
254
|
+
end
|
255
|
+
def padd(other)
|
256
|
+
ret = self.class.new([row_size, other.row_size].max, [col_size, other.col_size].max, 0)
|
257
|
+
ret.submat_add!(0...row_size, 0...col_size, self)
|
258
|
+
ret.submat_add!(0...(other.row_size), 0...(other.col_size), other)
|
259
|
+
end
|
260
|
+
end
|
261
|
+
class << Mat
|
262
|
+
def v_array(*ary)
|
263
|
+
new(ary.length, 1) do |i, j|
|
264
|
+
ary[i]
|
265
|
+
end
|
266
|
+
end
|
267
|
+
def h_array(*ary)
|
268
|
+
new(1, ary.length) do |i, j|
|
269
|
+
ary[j]
|
270
|
+
end
|
271
|
+
end
|
272
|
+
end
|
273
|
+
end
|