2022年1月27日に実装された新武器「守護神の戦笛」、なんとドラクエウォーク史上初の系統強化武器となっています。メインスキルの単体ドルマ体技の「ガーディアンインパクト」は普通のスキルなのですが、サブスキル「ヒートボルテックス」が系統によって威力が異なるという性能であり、今までそんな武器はなく、こころマクロでどのようにシミュレーションしたらよいか、頭を抱えてしまいました。
というのも、こころマクロは、系統を指定できるようにしていて、それが自分で使っていて便利でして、例えば「物質系のほこら」であれば、物質系を指定することで、系統を指定しない場合と明らかに異なる最大火力のこころセットをシミュレーションすることができ、効率的にほこらを攻略することができます。こころマクロで系統を指定できる以上「ヒートボルテックス」のような系統強化の武器にも最適なこころセットをシミュレーションしたい!というわけです。
さいわいというか、属性複合武器という、ややこしい武器がありまして、クレセントムーンの「しおさいのセレナーデ(バギ+無属性)」、配布武器いなずまの剣の「まとい三閃斬り(バギ+イオ+デイン)」、最近だとドラゴンのつえの「ドラゴラム(メラ+無属性追撃)」などが該当するのですが、これらの火力を正確にシミュレーションするため、こころマクロでは武器の属性とダメージ割合を3つまで保持できるよう設計しています。
今回はこのテーブルを利用して、「ガーディアンインパクト」が指定された場合は、次のように内部でセットするようにしてみました。
そのうえで、あとはコードで処理、属性①~③まで順にみていきます。属性に「(」が存在する際は、今回のような系統強化武器と判断し、指定している系統と一致している場合のみ、このケースでいう無属性100%を300%に読み替えて値を変数に格納する、という処理を追加しました。コードの変更はこんな感じです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
'属性①②③ '↓2022/01/26 系統特攻の無属性ダメージがある武器に対応 '・無属性(物質系)は、その前に無属性(それ以外)があり、かつそれが最終行である前提 Dim 系統特攻判定用属性(1 To 3) Dim 系統特攻ありN(1 To 3) As Long For i = 1 To 3 系統特攻判定用属性(i) = Cells(10 + (i - 1) * 2, 3) 系統特攻ありN(i) = InStr(系統特攻判定用属性(i), "(") If 系統特攻ありN(i) = 0 Then '無属性(物質系)のような場合を除く 属性(i) = 系統特攻判定用属性(i) Else 属性(i) = Range("A1") '空白セルを参照 End If Next i 'スキル倍率①②③ For i = 1 To 3 If 系統特攻ありN(i) = 0 Then スキル倍率(i) = Cells(11 + (i - 1) * 2, 3) Else ' 無属性(物質系)のような場合、系統指定があり合致した場合のみ、直前の倍率を上書き If Mid(系統特攻判定用属性(i), 系統特攻ありN(i), 255) = "(" & 系統 & ")" Then スキル倍率(i - 1) = Cells(11 + (i - 1) * 2, 3) End If スキル倍率(i) = Range("A1") '空白セルを参照 End If |
1 |
これにより、後続の処理は一切変更することなく、正確にシミュレーションすることができるようになりました。「ガーディアンインパクト」を指定して、系統に「物質系」を指定しない場合と指定した場合の、実際のシミュレーション結果は次の通りです。
物質系相手だと「ひょうがまじん」が最強セット入りです。なるほど、物質系ダメージアップが効いてくるのですね。いやはや、なんとか対応することができた気がします。
ちなみに、無属性300%ではなく、100%で「物質系」を指定した際のシミュレーションがこちら
異なる結果となり、正しくシミュレーションできていました。「守護神の戦笛」を物質系に使った場合のダメージスコア、「壊れ」といってよいかもしれませんね。
これから先、武器やこころの性能が複雑化しても、しっかりと対応できるようにしたいと思います!
コメント