lomの武器強化の自動化その2
前回おおまかな仕様についてまとめたけれど今回はおおまかな実装の話
前回レシピ生成まで自動化しようと思ったんだけど効率悪すぎて止めました。
つまり、処理で生成させるより自分でレシピ作った方が早いって事です。
計算はしないほど高速なので計算は最後の1回だけに絞りたい
計算せずに処理するには?
じゃあどうするの?いたって簡単。必要素材を参照すれば良いだけです。
鍛冶システムは難しいと思われていますがみんなが思っているほど難しいシステムではありません。
今回は処理速度と軽量化の為に単Lv上限9としてるので更に簡単なパズルです。
サイトの方にも載せてますがLv9に必要なのはE256で、副原料Eの上限もE256なので更に簡単です。
(もうちょっと詳しく言うと副原料Eのみ上限自体はE288まで可能)
つまり、ランダム性はないのでレシピさえ作れば必要な個数もその素材内のLv上限を決められるという話です。
「でも、それが分かってるならそもそも自動化する必要性ないのでは?」
はい。その通りです。
前回の記事で記載した通り意味が無いと思っていたので自動化してなかったわけです。
覚える必要なのは「輝きx4>補助SPx3>精霊金貨」たったこれだけなので。
これを繰り返せば確実にLv9になるものの流石に効率が悪い。閑話休題。
エネルギー計算をせず、攻撃力計算もしないで持ってるアイテムだけでLv上限を特定する方法
先に述べた通り、Lv毎レシピがあれば必要アイテムをだけ見るだけでレシピが自動化できます。
「レシピの自動化をするのにそのレシピを事前に作るって事?」
はい。その通りです。
「でもそのためには大量のレシピを事前に作る必要があるのでは?」
はい。その通りです。
「そんな事したら事前準備がかなり面倒臭いのでは?」
はい。超絶面倒臭いですが逆に言えば、それは作成側が鍛冶システムを完全に熟知して想定される効率的レシピを全て作れば良いだけなので難しくはないです。
計算して都度Eを比較するよりも、特定属性のLv上限のアイテムが存在しているかだけを見るだけの方が遥かに高速です。
属性には強弱関係もありますが、別にそれもシステムを熟知して効率的順番に並べれば良いだけです。
チャートの組み方も全て公開してるので事前に基本的な効率チャートを作るのは簡単だと思います(絶望的に面倒臭いだけで)。
正直これだけでも割と十分です。
ただ、これだけだと一つがLv9でもう一つがLv1みたいな偏りが出ます。
もっと、攻撃力を上げる
さて、LOMの鍛冶システムは属性Lvの合計が高いほど攻撃力が高いです。
そして、Lvが上がるほど必要素材が爆発的に増えます。
特に抵抗8以上のLv8、Lv9などでは直接Eに関与しない輝きを強制除外回避の為に大量に使います。
つまり、高いLvを崩して使用可能な素材をリリースして低いLvを複数上げた方が良いという事です。
Lv上限下から見るか、上から見るか
平均化した方がよいと言いましたが考え方は2通りあります。
1つは各属性をLv1が可能か?Lv2は可能かと低いLvを各属性チェックしていく方法。
もう一つは一旦Lvを限界まで消費させて、低Lvの為に上のLvを削る方法。
正直どちらで良いですが今回は高Lvを削る方法で実装しています。
低Lvから上げる場合毎回各属性を舐める必要がある事と何処で終わるのかを予測しにくいからです。
高Lvから削る場合、もしその時点で上限ならその場で確定するからです。
更に言えば、上限から削るのでチェックする組み合わせがどんどん減る為です。
まとめ
- 前回よりより高速な仕様に考え直した
- ギリギリまで一切の計算をせずアイテムの数しかチェックしない事で超高速化している
- Lvを平均化する事でLvの合計を極力最大にしている
「LOM鍛冶ナビゲーター」まぁ、そんな感じで一先ず作ったのでよしなに使ってみてください。レシピ定義はもう少し直すかも。