Skip to content

✨ [Artifact 1413] ライターを作成 - #2015

Open
IWBTK1613 wants to merge 20 commits into
masterfrom
dev/IWBTK_1413
Open

IWBTK1613 wants to merge 20 commits into
masterfrom
dev/IWBTK_1413

Conversation

@IWBTK1613

Copy link
Copy Markdown

一通りの流れ確認

@Lapis-LJA Lapis-LJA changed the title ライターのgive.mcfまで作成(test) ✨ [Artifact 1413] ライターを作成 Oct 16, 2026

@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.

魔法火で作ってる、って話が合ったから物理火属性になってるのは合ってる?
Asset/data/asset/tags/functions/artifact/register.jsonに登録されていないため、シャードのプールに登録されてなさそう

IWBTK1613 and others added 6 commits October 17, 2026 00:45
- AttackType を Physical から Magic に変更(Lore と Damage API の両方)
- tags/functions/artifact/register.json に 1413 を登録
- 火柱の攻撃対象を tag=Enemy に限定し、不要な sort=nearest を削除
- Lore の AttackRange を実際の判定範囲 4 に合わせる

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 最も近い敵を中心(139.MainTarget)とし、中心には50、周囲の敵には25-50の乱数ダメージ
- 周囲の敵への延焼演出を追加し、中心の火柱の演出を控えめに調整
- Lore とフレーバーテキストを新しい挙動に合わせて更新

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
attack から参照するため trigger 配下全体で有効な宣言にする

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1413 の tag 登録行を先頭から ID の近い位置へ移し、今後の競合を避ける

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@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を使用してレビューを行なったものです。鵜呑みにせず、指摘を採用するかはお任せします。

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

  • 〔不具合〕追加当たり判定を複数持つ敵には、延焼ダメージが判定の数だけ重ねて入る

Comment on lines +17 to +26
# 狙った敵へのダメージ
data modify storage api: Argument.Damage set value 50f
data modify storage api: Argument.AttackType set value "Magic"
data modify storage api: Argument.ElementType set value "Fire"
function api:damage/modifier
execute as @e[type=#lib:living_without_player,tag=139.MainTarget,distance=..4,limit=1] run function api:damage/
function api:damage/reset

# 周囲の敵へのダメージ
execute as @e[type=#lib:living_without_player,tag=Enemy,tag=!139.MainTarget,tag=!Uninterferable,distance=..4] run function asset:artifact/1413.lighter/trigger/splash_damage

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.

黒龍(0410)のように追加当たり判定(ExtendedCollision)を複数持つ敵に火柱を当てると、中心の敵から4m以内にある同じ敵の別の追加当たり判定にも、それぞれ延焼ダメージが入ります。本体は中心の敵への50に加えて、4m以内にある別の追加当たり判定の数だけ延焼のダメージ(25〜50)を重ねて受けます。

api:damage/ は、追加当たり判定から本体への転送を、api:damage/reset を呼ぶまでは本体ごとに1回に抑えます。single_damage_session(SDS)を開いている間は、reset を呼んでもこの記録が残ります。このPRでは中心の敵へのダメージのあと(23行目)と延焼の対象ごと(splash_damage.mcfunction の18行目)に reset を呼び、SDS も開いていないため、同じ本体への転送が延焼の対象ごとに通ります。黒龍・焔竜・闇竜(0410〜0412)は、AJ の locator に Enemy と ExtendedCollision を付けています。対象ごとにダメージを抽選する 1258 黎明の刃と 1632 フォトンバーストは、対象の処理全体を SDS で囲んでいます。

検証用サーバー(Minecraft 1.20.4、このPRの head a2ab19b)で確かめました。同じ本体へ転送する追加当たり判定を3つ(中心と、その左右3m)に並べて使うと、3回とも本体の MobEvents.Hurt が3件増えました(中心の敵への50と、延焼の36・31など)。同じ範囲に置いたハスクは毎回1件で、左右の2つを別の本体へ転送させた対照(1回)では各本体が1件ずつでした。attack を RCON から呼んだ場合は、SDS を開かないと3件、SDS の open と close で挟むと2回とも中心の敵への50の1件だけになりました。黒龍そのものは召喚せず、本体には黒龍の本体と同じタグを付けた slime を、追加当たり判定には asset:mob/0410.heiloang/init/locator を実行した slime を使い、右クリックは ClickCarrotEvent を1にして代えています。suggestion を適用したファイルでは試していません。

中心の敵へのダメージと延焼をまとめて SDS で囲むと、追加当たり判定を通したダメージは同じ本体へ最初の1回だけ入ります。

Suggested change
# 狙った敵へのダメージ
data modify storage api: Argument.Damage set value 50f
data modify storage api: Argument.AttackType set value "Magic"
data modify storage api: Argument.ElementType set value "Fire"
function api:damage/modifier
execute as @e[type=#lib:living_without_player,tag=139.MainTarget,distance=..4,limit=1] run function api:damage/
function api:damage/reset
# 周囲の敵へのダメージ
execute as @e[type=#lib:living_without_player,tag=Enemy,tag=!139.MainTarget,tag=!Uninterferable,distance=..4] run function asset:artifact/1413.lighter/trigger/splash_damage
# 追加当たり判定から同じ本体へ重ねてダメージを与えないよう、セッションを開く
function api:damage/single_damage_session/open
# 狙った敵へのダメージ
data modify storage api: Argument.Damage set value 50f
data modify storage api: Argument.AttackType set value "Magic"
data modify storage api: Argument.ElementType set value "Fire"
function api:damage/modifier
execute as @e[type=#lib:living_without_player,tag=139.MainTarget,distance=..4,limit=1] run function api:damage/
function api:damage/reset
# 周囲の敵へのダメージ
execute as @e[type=#lib:living_without_player,tag=Enemy,tag=!139.MainTarget,tag=!Uninterferable,distance=..4] run function asset:artifact/1413.lighter/trigger/splash_damage
function api:damage/single_damage_session/close

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.

修正を確認しました。追加当たり判定を複数持つ敵に延焼ダメージが判定の数だけ重ねて入る件は解消されていて、この指摘への対応として問題ありません。

7d0ea4c で、attack.mcfunction は中心の敵へのダメージの前(18行目)で single_damage_session を開き、延焼の処理のあと(30行目)で閉じるようになりました。suggestion と同じ形です。

検証用サーバー(Minecraft 1.20.4、このPRの head 7d0ea4c)で、前回と同じ手順で確かめました。同じ本体へ転送する追加当たり判定を3つ並べ、右クリックの経路で神器を3回使うと、本体の MobEvents.Hurt は毎回1件(中心の敵への50)だけ増えました。a2ab19b では3件でした。同じ範囲のハスクには毎回1件ずつ延焼が入り、左右の2つを別の本体へ転送させた対照では各本体に1件ずつ入りました。attack を RCON から呼んだ場合も本体は1件で、呼んだあとにセッションは閉じていました。

function api:damage/reset

# 周囲の敵へのダメージ
execute as @e[type=#lib:living_without_player,tag=Enemy,tag=!139.MainTarget,tag=!Uninterferable,distance=..4] run function asset:artifact/1413.lighter/trigger/splash_damage

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.

こうすれば、splash_damage.mcfでat @sいらなさそう

Suggested change
execute as @e[type=#lib:living_without_player,tag=Enemy,tag=!139.MainTarget,tag=!Uninterferable,distance=..4] run function asset:artifact/1413.lighter/trigger/splash_damage
execute as @e[type=#lib:living_without_player,tag=Enemy,tag=!139.MainTarget,tag=!Uninterferable,distance=..4] at @s run function asset:artifact/1413.lighter/trigger/splash_damage

Comment on lines +8 to +10
execute at @s run particle small_flame ~ ~0.8 ~ 0.25 0.4 0.25 0.02 12 normal @a
execute at @s run particle smoke ~ ~1.2 ~ 0.15 0.2 0.15 0.01 4 normal @a
execute at @s run playsound block.fire.ambient player @a ~ ~ ~ 0.4 1.4 0

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.

attack.mcfでat @sつければこっちはいらなさそう
あと、敵個別にplaysoundがあると、敵が密集してた時にめっっっっっっちゃうるさそう

Suggested change
execute at @s run particle small_flame ~ ~0.8 ~ 0.25 0.4 0.25 0.02 12 normal @a
execute at @s run particle smoke ~ ~1.2 ~ 0.15 0.2 0.15 0.01 4 normal @a
execute at @s run playsound block.fire.ambient player @a ~ ~ ~ 0.4 1.4 0
particle small_flame ~ ~0.8 ~ 0.25 0.4 0.25 0.02 12 normal @a
particle smoke ~ ~1.2 ~ 0.15 0.2 0.15 0.01 4 normal @a
playsound block.fire.ambient player @a ~ ~ ~ 0.4 1.4 0

Comment on lines +22 to +24
# 前方に敵が居た場合、最も近い敵を中心に火柱を発生させる
execute at @s run tag @e[type=#lib:living_without_player,tag=Target,distance=..10,sort=nearest,limit=1] add 139.MainTarget
execute at @e[type=#lib:living_without_player,tag=139.MainTarget,distance=..10,limit=1] run function asset:artifact/1413.lighter/trigger/attack

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.

実行者をこうしてしまえば、MainTarget自体が要らなくなりそう
※attackの先の処理も適宜変えてね

Suggested change
# 前方に敵が居た場合、最も近い敵を中心に火柱を発生させる
execute at @s run tag @e[type=#lib:living_without_player,tag=Target,distance=..10,sort=nearest,limit=1] add 139.MainTarget
execute at @e[type=#lib:living_without_player,tag=139.MainTarget,distance=..10,limit=1] run function asset:artifact/1413.lighter/trigger/attack
# 前方に敵が居た場合、最も近い敵を中心に火柱を発生させる
execute as @e[type=#lib:living_without_player,tag=Target,distance=..10,sort=nearest,limit=1] run function asset:artifact/1413.lighter/trigger/attack

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