mgmg 1.5.2 → 1.5.5

Sign up to get free protection for your applications and to get access to all the features.
data/reference.md CHANGED
@@ -19,23 +19,23 @@
19
19
 
20
20
  `self`が解釈不能な場合,例外が発生します.また,製作Lvや完成品の☆制限のチェックを行っていないほか,本ライブラリでは`武器+防具`や`防具+武器`の合成も可能になっています.街の鍛冶・防具製作・道具製作屋に任せた場合をシミュレートする場合は製作Lvを負の値(`-1`など,負であれば何でもよい)にします(製作Lv0相当の性能を計算し,消費エレメント量は委託仕様となります).
21
21
 
22
- `opt`は,`left_associative`のみ使用します.
22
+ `opt`は,`left_associative`と`include_system_equips`のみ使用します.
23
23
 
24
24
  ## `Enumerable#build(smith=-1, armor=smith, comp=armor.tap{armor=smith}, opt: Mgmg.option())`
25
25
  複数のレシピ文字列からなる`self`の各要素を製作し,そのすべてを装備したときの`Mgmg::Equip`を返します.製作では`鍛冶Lv=smith`, `防具製作Lv=armor`, `道具製作Lv=comp`とします.1つしか指定しなければすべてそのLv,2つなら1つ目を`smith=armor`,2つ目を`comp`に,3つならそれぞれの値とします.製作Lvが負の場合,製作Lv0として計算した上で,消費エレメント量は街の製作屋に頼んだ場合の値を計算します.武器複数など,同時装備が不可能な場合でも,特にチェックはされません.
26
26
 
27
- `opt`は,`left_associative`のみ使用します.
27
+ `opt`は,`left_associative`と`include_system_equips`のみ使用します.
28
28
 
29
29
  ## `String#min_weight(opt: Mgmg.option())`
30
30
  製作可能な最小重量を返します.基本的には合成回数+1ですが,既製品を含む場合はその限りではありません.
31
31
 
32
- 製作を行うため,`opt`が指定可能ですが,特に結果には影響しません.
32
+ `opt`は,`include_system_equips`のみ使用します.
33
33
 
34
34
  ## `String#max_weight(include_outsourcing=false, opt: Mgmg.option())`
35
35
  製作可能な最大重量を返します.`include_outsourcing`が真の場合,委託製作時の重量を返します.
36
36
  委託製作では,製作Lv0相当となるため,素材の☆による最低製作Lvで作るよりも重くなる場合があります.
37
37
 
38
- 製作を行うため,`opt`が指定可能ですが,特に結果には影響しません.
38
+ `opt`は,`include_system_equips`のみ使用します.
39
39
 
40
40
  ## `String#min_level(w=0, include_outsourcing=false, opt: Mgmg.option())`
41
41
  `self`を重量`w`以下で作るための最低製作Lvを返します.
@@ -60,12 +60,12 @@
60
60
  ## `Enumerable#min_levels(weight=1, opt: Mgmg.option())`
61
61
  すべての要素`str`に対する`str.min_levels`をマージした`Hash`を返します.
62
62
 
63
- 製作を行うため,`opt`が指定可能ですが,特に結果には影響しません.
63
+ `opt`は,`include_system_equips`のみ使用します.
64
64
 
65
65
  ## `Enumerable#min_levels_max(weight=1, opt: Mgmg.option())`
66
66
  `self.min_levels`から武器,防具それぞれに対する最大値を求め,`[必要最小鍛冶Lv, 必要最小防具製作Lv]`を返します.武器,防具の一方のみが含まれる場合,もう一方は`-1`になります.
67
67
 
68
- 製作を行うため,`opt`が指定可能ですが,特に結果には影響しません.
68
+ `opt`は,`include_system_equips`のみ使用します.
69
69
 
70
70
  ## `String#min_comp(opt: Mgmg.option())`,`Enumerable#min_comp(opt: Mgmg.option())`
71
71
  レシピ通りに合成するのに必要な道具製作Lvを返します.ただし,全体が「[]」で囲われているか,非合成レシピの場合,代わりに`-1`を返します.
@@ -79,7 +79,7 @@
79
79
 
80
80
  `Enumerable`の場合,すべての要素に対し,武器,防具それぞれの最大値を求め,`[必要最小鍛冶Lv, 必要最小防具製作Lv]`を返します.武器,防具の一方のみが含まれる場合,もう一方は`-1`になります.
81
81
 
82
- 製作を行うため,`opt`が指定可能ですが,特に結果には影響しません.
82
+ `opt`は,`include_system_equips`のみ使用します.
83
83
 
84
84
  ## `String#poly(para=:cost, opt: Mgmg.option())`
85
85
  レシピ文字列である`self`を解釈し,`para`で指定した9パラ値について,丸めを無視した鍛冶・防具製作Lvと道具製作Lvの2変数からなる多項式関数を示す`Mgmg::TPolynomial`クラスのインスタンスを生成し,返します.`para`は次のシンボルのいずれかを指定します.
@@ -96,17 +96,17 @@
96
96
 
97
97
  また,`:cost`を渡すことで,消費エレメント量に関する近似多項式を得られます.`self`に`"+"`が含まれていれば合成品とみなし,最後の合成に必要な地エレメント量を,それ以外では,武器なら消費火エレメント量を,防具なら消費水エレメント量を返します.ただし,`self`が既成品そのものの場合,零多項式を返します.
98
98
 
99
- `opt`は,`left_associative`のみ使用します.
99
+ `opt`は,`left_associative`と`include_system_equips`のみ使用します.
100
100
 
101
101
  ## `String#ir(opt: Mgmg.option())`
102
102
  レシピ文字列である`self`を解釈し,9パラ値について,丸めを考慮した鍛冶・防具製作Lvと道具製作Lvの2変数からなる関数オブジェクトを保持する`Mgmg::IR`クラスのインスタンスを生成し,返します.詳しくは,[後述](#mgmgir)の`Mgmg::IR`クラスの説明を参照ください.
103
103
 
104
- `opt`は,`left_associative`と`reinforcement`を使用します.
104
+ `opt`は,`left_associative`と`include_system_equips`,`reinforcement`を使用します.
105
105
 
106
106
  ## `Enumerable#ir(opt: Mgmg.option())`
107
107
  複数のレシピ文字列からなる`self`の各要素を製作し,そのすべてを装備したときの`Mgmg::IR`を返します.この場合,鍛冶Lv,防具製作Lv,道具製作Lvの3変数からなる関数オブジェクトを保持するものとして扱われます.各装備の種別に応じ,鍛冶Lvまたは防具製作Lvを適用し,9パラ値を計算します.
108
108
 
109
- `opt`は,`left_associative`と`reinforcement`を使用します.
109
+ `opt`は,`left_associative`と`include_system_equips`,`reinforcement`を使用します.
110
110
 
111
111
  ## `String#smith_seach(para, target, comp, opt: Mgmg.option())`
112
112
  `para`の値が`target`以上となるのに必要な最小の鍛冶・防具製作Lvを二分探索で探索して返します.
@@ -441,21 +441,23 @@ alias として`*`があるほか`scalar(1.quo(value))`として`quo`,`/`,`s
441
441
  ## `Mgmg.#option(recipe=nil, **kw)`
442
442
  `kw`はキーワード引数本体です.定義されているキーワードと意味,使用される主なメソッドは下表の通りです.デフォルト値は簡易的な表示であり,細かい点では不正確です.
443
443
  `recipe`にレシピ`String`または`Enumerable`を渡すと,そのレシピを使ってデフォルト値を具体化しますが,各メソッドで自動的に具体化されるため,通常は必要ありません.
444
-
445
- |キーワード|デフォルト値|意味|主なメソッド,備考|
446
- |:-|:-|:-|:-|
447
- |left_associative|`true`|レシピ文字列を左結合で解釈する|`Mgmg::Option`を使用するすべてのメソッド|
448
- |smith_min|`recipe.min_level(target_weight)`|鍛冶Lvに関する探索範囲の最小値|`String#search`など|
449
- |armor_min|`recipe.min_level(*target_weight)[1]`|防具製作Lvに関する探索範囲の最小値|`Enumerable#search`など.`String`系では代わりに`smith_min`を使う|
450
- |comp_min|`recipe.min_comp`|道具製作Lvに関する探索範囲の最小値|`String#search`など|
451
- |smith_max, armor_max, comp_max|`10000`|各製作Lvの探索範囲の最大値|`String#search`など|
452
- |target_weight|`0`|`smith_min`のデフォルト値計算に使う目標重量|`String#search`など|
453
- |step|`1`|探索時において道具製作Lvを動かす幅|`String#search`など|
454
- |magdef_maximize|`true`|目標を魔防最大(真)かコスト最小(偽)にするためのスイッチ|`String#phydef_optimize`|
455
- |reinforcement|`[]`|[前述](#mgmgequipreinforcearg)の`Mgmg::Equip#reinforce`による強化リスト|一部を除くすべてのメソッド|
456
- |buff|`[]`|`reinforcement`のエイリアス|どちらか一方のみを指定する|
457
- |irep|`recipe.ir()`|`Mgmg::IR`の使い回しによる高速化|`String#search`など,内部的に使用|
458
- |cut_exp|`Float::INFINITY`|探索時の総経験値の打ち切り値|`String#search`など,内部的に使用|
444
+ `Defaults`対応が「対応」となっているキーワード引数については,`Mgmg::Option::Defaults[:include_system_equips]=false`などとすることで,デフォルト値をグローバルに変更することができます.デフォルト値にかかわらず,メソッド呼び出し時に個別に指定すればその値が優先されます.
445
+
446
+ |キーワード|デフォルト値|`Defaults`対応|意味|主なメソッド,備考|
447
+ |:-|:-|:-|:-|:-|
448
+ |left_associative|`true`|対応|レシピ文字列を左結合で解釈する|`Mgmg::Option`を使用するすべてのメソッド|
449
+ |smith_min|`recipe.min_level(target_weight)`|非対応|鍛冶Lvに関する探索範囲の最小値|`String#search`など|
450
+ |armor_min|`recipe.min_level(*target_weight)[1]`|非対応|防具製作Lvに関する探索範囲の最小値|`Enumerable#search`など.`String`系では代わりに`smith_min`を使う|
451
+ |comp_min|`recipe.min_comp`|非対応|道具製作Lvに関する探索範囲の最小値|`String#search`など|
452
+ |smith_max, armor_max, comp_max|`10000`|対応|各製作Lvの探索範囲の最大値|`String#search`など|
453
+ |target_weight|`0`|非対応|`smith_min`のデフォルト値計算に使う目標重量|`String#search`など|
454
+ |step|`1`|非対応|探索時において道具製作Lvを動かす幅|`String#search`など|
455
+ |magdef_maximize|`true`|非対応|目標を魔防最大()かコスト最小(偽)にするためのスイッチ|`String#phydef_optimize`|
456
+ |reinforcement|`[]`|非対応|[前述](#mgmgequipreinforcearg)の`Mgmg::Equip#reinforce`による強化リスト|一部を除くすべてのメソッド|
457
+ |buff|`[]`|非対応|`reinforcement`のエイリアス|どちらか一方のみを指定する|
458
+ |irep|`recipe.ir()`|非対応|`Mgmg::IR`の使い回しによる高速化|`String#search`など,内部的に使用|
459
+ |cut_exp|`Float::INFINITY`|非対応|探索時の総経験値の打ち切り値|`String#search`など,内部的に使用|
460
+ |include_system_equips|`true`|対応|レシピ解釈時に,既製品を受け付ける|`Mgmg::Option`を使用するすべてのメソッド|
459
461
 
460
462
  ## `Mgmg::Recipe`
461
463
  レシピ文字列,注目パラメータ,オプションをセットにして扱うためのクラスです.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mgmg
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.2
4
+ version: 1.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - KAZOON
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-27 00:00:00.000000000 Z
11
+ date: 2022-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -104,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
104
  - !ruby/object:Gem::Version
105
105
  version: '0'
106
106
  requirements: []
107
- rubygems_version: 3.3.16
107
+ rubygems_version: 3.3.17
108
108
  signing_key:
109
109
  specification_version: 4
110
110
  summary: Calculate specs of equipments of Megurimeguru, a game produced by Kou.