Skip to content

[Artifact 1643] ジェットブースターの作成 - #2172

Open
firgde wants to merge 9 commits into
masterfrom
dev/firgde_artifact1643
Open

firgde wants to merge 9 commits into
masterfrom
dev/firgde_artifact1643

Conversation

@firgde

@firgde firgde commented Oct 11, 2026

Copy link
Copy Markdown
Member

以下のAssetを追加

  • Artifact 1643 ジェットブースター
  • Effect 408 発射用意

@Lapis-LJA Lapis-LJA left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

まず、前提としてこれじゃ厳密にMP消費量を取得できないけど大丈夫?
(MP回復とMP消費が同時に起こると計測できないため)

@firgde
firgde marked this pull request as draft October 20, 2026 12:09
@firgde
firgde marked this pull request as ready for review October 22, 2026 10:19

@tatuharu tatuharu left a comment •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

このレビューはハルがAI自動レビューの動作テストのためにOpus5.5 Extra Highを使用してレビューを行なったものです。鵜呑みにせず、指摘を採用するかはお任せします。

指摘はありません。

@tatuharu tatuharu left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

このレビューはハルがAI自動レビューの動作テストのためにOpus5.5 Extra Highを使用してレビューを行なったものです。鵜呑みにせず、指摘を採用するかはお任せします。

指摘が 2 件あります。詳細は行コメントに書いています。

  • 〔不具合〕攻撃範囲の段階を選ぶ前に $E0408.Magnitude に Multiplier を掛けているため、MP の差に関係なく常に3段階目の範囲になる
  • 〔挙動の変化〕攻撃範囲の中心が3段階とも ^ ^ ^-2 になり、2・3段階目の範囲がプレイヤーの前方へ移った

Comment on lines +36 to +37
execute store result score $E0408.Multiplier Temporary run data get storage asset:context this.Multiplier
execute store result storage api: Argument.Damage double 0.01 run scoreboard players operation $E0408.Magnitude Temporary *= $E0408.Multiplier Temporary

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3ab754e から、MP の差に関係なく、常に3段階目(半径8)の範囲で攻撃するようになっています。

37行目の scoreboard players operation $E0408.Magnitude Temporary *= $E0408.Multiplier Temporary は、ダメージを出すと同時に $E0408.Magnitude 自体を書き換えます。そのため48〜50行目で段階を選ぶときの $E0408.Magnitude は、100〜500ではなく20000〜100000になっています。境界の $E0408.Border1・$E0408.Border2 は200・300なので、いつも50行目の attack/3.m が呼ばれます。Lore の「MPが使用時と比べて低いほど攻撃範囲、威力、推進力が上昇する」に合わず、0bc93e0 では MP の差に応じて半径3・6・8の範囲を選んでいました。ダメージの値は変わっていません。

検証用サーバー(Minecraft 1.20.4、このPRの head 3ab754e)で確かめました。3人のプレイヤーに 3.main と同じ FieldOverride で api:entity/mob/effect/give から Effect 408 を付与し、効果中に MP を0・150・450減らして終了を待ちました。各プレイヤーの後ろ2・7・11ブロックと前5ブロックにハスクを置いています。3人とも後ろ2・7ブロックと前5ブロックのハスクに当たり、後ろ11ブロックには当たりませんでした。0bc93e0 で同じ手順を流すと、MP の差が0では後ろ2ブロックだけ、150では後ろ2・7ブロック、450では後ろ2・7・11ブロックに当たりました。ダメージ(196.8・492・984)はどちらも同じです。神器を使う経路では試していません。

掛け算の結果を $E0408.Multiplier に入れれば、$E0408.Magnitude は段階を選ぶときまで100〜500のまま残ります。この suggestion を当てて同じ手順を流すと、MP の差が0では後ろ2ブロックだけ、150では後ろ2・7ブロックに当たり、ダメージも同じでした。450の結果はもう1件の指摘(範囲の中心)のとおりです。

Suggested change
execute store result score $E0408.Multiplier Temporary run data get storage asset:context this.Multiplier
execute store result storage api: Argument.Damage double 0.01 run scoreboard players operation $E0408.Magnitude Temporary *= $E0408.Multiplier Temporary
execute store result score $E0408.Multiplier Temporary run data get storage asset:context this.Multiplier
scoreboard players operation $E0408.Multiplier Temporary *= $E0408.Magnitude Temporary
execute store result storage api: Argument.Damage double 0.01 run scoreboard players get $E0408.Multiplier Temporary

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

修正を確認しました。MP の差に関係なく常に3段階目の範囲になる件は解消されていて、この指摘への対応として問題ありません。

270a742 で37行目が掛け算の結果を $E0408.Multiplier に入れるようになり、段階を選ぶときの $E0408.Magnitude は100〜500のまま残ります。検証用サーバー(Minecraft 1.20.4、head 270a742)で前回と同じ手順を流すと、MP の差が0では後ろ2ブロックだけ、150では後ろ2・7ブロックに当たりました。450では3段階目の範囲になり、後ろ2・7ブロックと前5ブロックに当たっています。ダメージ(196.8・492・984)は前回と同じです。

Comment on lines +48 to +50
execute if score $E0408.Magnitude Temporary < $E0408.Border1 Temporary positioned ^ ^ ^-2 run function asset:effect/0408.fueling/end/attack/1.m with storage asset:context this.Range
execute if score $E0408.Magnitude Temporary >= $E0408.Border1 Temporary if score $E0408.Magnitude Temporary < $E0408.Border2 Temporary positioned ^ ^ ^-2 run function asset:effect/0408.fueling/end/attack/2.m with storage asset:context this.Range
execute if score $E0408.Magnitude Temporary >= $E0408.Border2 Temporary positioned ^ ^ ^-2 run function asset:effect/0408.fueling/end/attack/3.m with storage asset:context this.Range

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3ab754e で、攻撃範囲の中心が3段階とも positioned ^ ^ ^-2 になりました。0bc93e0 では段階ごとに ^ ^ ^-2・^ ^ ^-4・^ ^ ^-6 で、範囲が後ろへ広がっていました。いまの中心では、2段階目(半径6)はプレイヤーの前方4ブロック、3段階目(半径8)は前方6ブロックまで届き、後ろは8・10ブロックまでになります。このコミットは各種パラメーターを神器から設定する変更なので、意図した変更かを確認させてください。

1件目の指摘の suggestion を当てて、MP を450減らしたプレイヤーで試しました(検証用サーバー、Minecraft 1.20.4、head 3ab754e)。3段階目の範囲が選ばれ、前5ブロックのハスクに当たり、後ろ11ブロックのハスクには当たりませんでした。0bc93e0 では同じ条件で後ろ11ブロックに当たり、前5ブロックには当たりませんでした。MP の差が150のときは2段階目の範囲が選ばれ、後ろ2・7ブロックに当たって前5ブロックには当たりませんでした。前4ブロック以内のハスクでは試していません。

元の範囲に戻すなら、48〜50行目の positioned を段階ごとに ^ ^ ^-2・^ ^ ^-4・^ ^ ^-6 にします。

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

未解消です。270a742 では48〜50行目は変わっておらず、攻撃範囲の中心は3段階とも positioned ^ ^ ^-2 のままです。

検証用サーバー(Minecraft 1.20.4、head 270a742)で前回と同じ手順を流すと、MP を450減らしたプレイヤーでは3段階目の範囲が選ばれ、前5ブロックのハスクに当たり、後ろ11ブロックのハスクには当たりませんでした。0bc93e0 では同じ条件で後ろ11ブロックに当たり、前5ブロックには当たりませんでした。意図した変更なら、その旨の返信だけで十分です。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants