text:
#> asset:artifact/0217.fish/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0217.fish/trigger/1.trigger

# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く auto/feet/legs/chest/head/mainhand/offhandを記載してね
    function asset:artifact/common/check_condition/auto
# 他にアイテム等確認する場合はここに書く

# CanUsedタグをチェックして3.main.mcfunctionを実行する
    execute if entity @s[tag=CanUsed] run function asset:artifact/0217.fish/trigger/3.main


text:
#> asset:artifact/0217.fish/trigger/3.main
#
# 神器のメイン処理部
#
# @within function asset:artifact/0217.fish/trigger/2.check_condition

# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う auto/feet/legs/chest/head/mainhand/offhandを記載してね
    function asset:artifact/common/use/auto

# ここから先は神器側の効果の処理を書く

# 回復する量 = 全回復
    data modify storage lib: Argument.Heal set value 10000f
# 実行者対象
    function lib:heal/modifier
    function lib:heal/
# リセット
    function lib:heal/reset

# 演出
    execute at @s run playsound entity.cat.ambient player @a[distance=..10] ~ ~ ~ 3 1
    execute at @s run tellraw @a[distance=..10] {"text":"ネコの気配を感じる……？","color":"white"}

repo_name: ProjectTSB/TheSkyBlessing

repo_language: mcfunction

mime_type: text/plain


text:
#> asset:artifact/0217.fish/trigger/1.trigger
#
# 指定したイベントタイミングで実行されるfunction
#
# @within tag/function asset:artifact/**

# storage asset:context idのauto/feet/legs/chest/head/mainhand/offhandに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する
    execute if data storage asset:context id{auto:217} run function asset:artifact/0217.fish/trigger/2.check_condition


text:
#> asset:artifact/0745.blade_of_whirlwind/register
#
# 神器プールへの登録処理
#
# @within tag/function asset:artifact/register

data modify storage asset:artifact RarityRegistry[3] append value 745


text:
#> asset:artifact/0745.blade_of_whirlwind/give/1.trigger
#
# 神器の取得処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:artifact/give

execute if data storage asset:context {id:745} run function asset:artifact/0745.blade_of_whirlwind/give/2.give


text:
#> asset:artifact/0745.blade_of_whirlwind/give/2.give
#
# 神器の作成部 ここでID等を定義する
#
# @user
# @within function asset:artifact/0745.blade_of_whirlwind/give/1.trigger

# 神器の説明や消費MPなどをここで設定する。
# 最後にasset:artifact/common/giveを実行することで入手可能。

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 745
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"風巻之刀","color":"#2970FF"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"攻撃対象を吹き飛ばす刀","color":"#7AB4FF"}','{"text":"自身の速度で吹き飛ばす距離と","color":"#7AB4FF"}','{"text":"ダメージが強化される","color":"#7AB4FF"}']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    # data modify storage asset:artifact RemainingCount set value
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "mainhand"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "onAttackByMelee"
# 神器の発動条件 (TextComponentString) (オプション)
    # data modify storage asset:artifact Condition set value
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.Damage set value [252,278]
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackType set value [Physical]
# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.ElementType set value [Water]
# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.BypassResist set value
# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.IsRangeAttack set value "never"
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.AttackRange set value
# MP消費量 (int)
    data modify storage asset:artifact MPCost set value 14
# MP必要量 (int) (オプション)
    # data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
    data modify storage asset:artifact LocalCooldown set value 24
# グローバルクールダウン (int) (オプション)
    # data modify storage asset:artifact SpecialCooldown set value
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableCooldownMessage set value
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableMPMessage set value
# 扱える神 (string[]) Wikiを参照
    data modify storage asset:artifact CanUsedGod set value ["Flora", "Urban", "Rumor"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

# 神器の入手用function
    function asset:artifact/common/give


text:
#> asset:artifact/0745.blade_of_whirlwind/trigger/5.knockback
#
#
#
# @within function asset:artifact/0745.blade_of_whirlwind/trigger/3.main

# こっちも補正無しの分の値を引く
    scoreboard players operation $VectorMagnitude Temporary -= $100 Const

# 補正の値を2倍する
    scoreboard players operation $VectorMagnitude Temporary *= $2 Const

# ノクバ最低値的な
    scoreboard players add $VectorMagnitude Temporary 220

# 代入する
    execute store result storage lib: Argument.VectorMagnitude double 0.01 run scoreboard players get $VectorMagnitude Temporary

# 対象が天使の場合に効果を半減
    execute store result storage lib: Argument.VectorMagnitude double 0.005 run scoreboard players get $VectorMagnitude Temporary

# 引数の設定
    data modify storage lib: Argument.KnockbackResist set value 1b

# 攻撃対象のMobをプレイヤーの向いてる方向にmotionで吹き飛ばす
    execute as @e[type=#lib:living,type=!player,tag=Victim,distance=..6] at @s rotated as @p[tag=this,distance=..6] rotated ~ ~-15 run function lib:motion/

# リセット
    data remove storage lib: Argument


text:
#> asset:artifact/0745.blade_of_whirlwind/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0745.blade_of_whirlwind/trigger/1.trigger

# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く
    function asset:artifact/common/check_condition/mainhand
# 他にアイテム等確認する場合はここに書く

# CanUsedタグをチェックして3.main.mcfunctionを実行する
    execute if entity @s[tag=CanUsed] run function asset:artifact/0745.blade_of_whirlwind/trigger/3.main


text:
#> asset:artifact/0745.blade_of_whirlwind/trigger/4.vfx
#
#
#
# @within function asset:artifact/0745.blade_of_whirlwind/trigger/3.main

# 演出
    particle cloud ~ ~1.2 ~ 0.6 0.4 0.6 0.3 50 normal @a
    particle dust 0.337 0.557 0.906 1.5 ~ ~1.2 ~ 0.7 0.4 0.7 0 50 normal @a
    particle sweep_attack ~ ~1.2 ~ 0.5 0.4 0.5 0 30 normal @a
    playsound entity.wither.shoot player @a ~ ~ ~ 0.5 1.6 0
    playsound item.trident.riptide_3 player @a ~ ~ ~ 0.7 1 0


text:
#> asset:artifact/0745.blade_of_whirlwind/trigger/3.main
#
# 神器のメイン処理部
#
# @within function asset:artifact/0745.blade_of_whirlwind/trigger/2.check_condition

# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う
    function asset:artifact/common/use/mainhand

# ここから先は神器側の効果の処理を書く

# 演出
    execute at @e[type=#lib:living,type=!player,tag=Victim,distance=..6] run function asset:artifact/0745.blade_of_whirlwind/trigger/4.vfx

# 移動速度をスコア化する
    execute store result score $AddDamage Temporary run attribute @s generic.movement_speed get 1000
    scoreboard players operation $VectorMagnitude Temporary = $AddDamage Temporary

# 本来の補正一切なしの値を減算
    scoreboard players operation $AddDamage Temporary -= $100 Const

# attributeの補正の値×250だけダメージに加算されるので、1000×5÷20=250、より5を掛け、20で割るので結果的に4で割る
    scoreboard players operation $AddDamage Temporary /= $2 Const

# ダメージ
    #ダメージブレのための処理
        # 疑似乱数取得
            execute store result score $RandomDamage Temporary run function lib:random/
        # 剰余算する。0~26の追加ダメージ
            scoreboard players operation $RandomDamage Temporary %= $27 Const
        # 最低ダメージ設定
            scoreboard players add $RandomDamage Temporary 252
        # 移動速度の追加分を加算
            scoreboard players operation $RandomDamage Temporary += $AddDamage Temporary
    #ダメージを代入
        execute store result storage lib: Argument.Damage float 1 run scoreboard players get $RandomDamage Temporary
    # 第一属性
        data modify storage lib: Argument.AttackType set value "Physical"
    # 第二属性
        data modify storage lib: Argument.ElementType set value "Water"

# 補正functionを実行
    function lib:damage/modifier
# ダメージ
    execute as @e[type=#lib:living,type=!player,tag=Victim,distance=..6] run function lib:damage/

# 自身の移動速度が1以上の時に実行
    execute if score $VectorMagnitude Temporary matches 1.. run function asset:artifact/0745.blade_of_whirlwind/trigger/5.knockback

# リセット
    function lib:damage/reset
    data remove storage lib: Argument
    scoreboard players reset $RandomDamage Temporary
    scoreboard players reset $VectorMagnitude Temporary
    scoreboard players reset $AddDamage Temporary


text:
#> asset:artifact/0745.blade_of_whirlwind/trigger/1.trigger
#
# 指定したイベントタイミングで実行されるfunction
#
# @within tag/function asset:artifact/**

# storage asset:idのmainhandに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する
    execute if data storage asset:context id{mainhand:745} run function asset:artifact/0745.blade_of_whirlwind/trigger/2.check_condition


text:
#> asset:artifact/0745.blade_of_whirlwind/trigger/_index.d
# @private
#
#> Tag and Score_Holder
# @within function asset:artifact/0745.blade_of_whirlwind/trigger/**
    #declare score_holder $RandomDamage
    #declare score_holder $VectorMagnitude
    #declare score_holder $AddDamage


text:
#> asset:artifact/0554.catastrophe/register
#
# 神器プールへの登録処理
#
# @within tag/function asset:artifact/register

data modify storage asset:artifact RarityRegistry[4] append value 554


text:
#> asset:artifact/0554.catastrophe/give/1.trigger
#
# 神器の取得処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:artifact/give

execute if data storage asset:context {id:554} run function asset:artifact/0554.catastrophe/give/2.give


text:
#> asset:artifact/0554.catastrophe/give/2.give
#
# 神器の作成部 ここでID等を定義する
#
# @user
# @within function asset:artifact/0554.catastrophe/give/1.trigger

# 神器の説明や消費MPなどをここで設定する。
# 最後にasset:artifact/common/giveを実行することで入手可能。

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 554
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:player_head"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '[{"text":"†","color":"white"},{"text":"カタストロフィ","color":"gray"},{"text":"†","color":"white"}]'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['[{"text":"崩壊の騎士のための装備"}]','[{"text":"傷付く度に、快楽を求めた"}]']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    # data modify storage asset:artifact RemainingCount set value
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "head"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "onDamageFromEntity"
# 神器の発動条件 (TextComponentString) (オプション)
    data modify storage asset:artifact Condition set value '{"text":"繋がる総てを身に纏う"}'
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.Damage set value 600
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackType set value [Magic]
# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.ElementType set value [None]
# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.BypassResist set value
# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.IsRangeAttack set value
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.AttackRange set value
# MP消費量 (int)
    data modify storage asset:artifact MPCost set value 5
# MP必要量 (int) (オプション)
    # data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
    # data modify storage asset:artifact LocalCooldown set value
# グローバルクールダウン (int) (オプション)
    # data modify storage asset:artifact SpecialCooldown set value
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableCooldownMessage set value
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableMPMessage set value
# 扱える神 (string[]) Wikiを参照
    data modify storage asset:artifact CanUsedGod set value ["Flora", "Urban", "Wi-ki"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    data modify storage asset:artifact CustomNBT set value {Unbreakable:1b,SkullOwner:{Id:[I;994325293,-761705917,-1324473476,-101849626],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYWRiN2Q4OGExNjhmNDg4MzU0Mjc0MDlmZGViYzVjOGRjYjQwNmI2ZGIyOGU1YTc5OWE4M2MzYzljMGNmNjQ4In19fQ=="}]}},AttributeModifiers:[{AttributeName:"generic.armor",Name:"generic.armor",Amount:5,Operation:0,UUID:[I;1,1,554,6],Slot:"head"},{AttributeName:"generic.armor_toughness",Name:"generic.armor_toughness",Amount:2.5,Operation:0,UUID:[I;1,1,554,6],Slot:"head"}]}

# 神器の入手用function
    function asset:artifact/common/give


text:
#> asset:artifact/0522.humanism/register
#
# 神器プールへの登録処理
#
# @within tag/function asset:artifact/register

data modify storage asset:artifact RarityRegistry[4] append value 522


text:
#> asset:artifact/0522.humanism/give/1.trigger
#
# 神器の取得処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:artifact/give

execute if data storage asset:context {id:522} run function asset:artifact/0522.humanism/give/2.give


text:
#> asset:artifact/0522.humanism/give/2.give
#
# 神器の作成部 ここでID等を定義する
#
# @user
# @within function asset:artifact/0522.humanism/give/1.trigger

# 神器の説明や消費MPなどをここで設定する。
# 最後にasset:artifact/common/giveを実行することで入手可能。

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 522
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '[{"text":"人","color":"yellow"},{"text":"が","color":"white"},{"text":"人","color":"dark_red"},{"text":"であるために","color":"white"}]'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['[{"text":"全てのプレイヤーについて","color":"white"},{"text":"失ったHPの75%を回復","color":"light_purple"},{"text":"し、","color":"white"}]','[{"text":"自分以外の全てのプレイヤーの","color":"white"},{"text":"MPを150回復","color":"dark_purple"},{"text":"する。","color":"white"}]','{"text":"さらに、全てのプレイヤーの","color":"white"}','[{"text":"周囲の敵全てに","color":"white"},{"text":"ダメージ","color":"red"},{"text":"を与える。","color":"white"}]']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    # data modify storage asset:artifact RemainingCount set value
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "auto"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "onClick"
# 神器の発動条件 (TextComponentString) (オプション)
    # data modify storage asset:artifact Condition set value
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.Damage set value [1700]
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackType set value [Magic]
# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.ElementType set value [Water]
# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.BypassResist set value
# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.IsRangeAttack set value "every"
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackRange set value 50
# MP消費量 (int)
    data modify storage asset:artifact MPCost set value 99999
# MP必要量 (int) (オプション)
    data modify storage asset:artifact MPRequire set value 0
# 神器のクールダウン (int) (オプション)
    # data modify storage asset:artifact LocalCooldown set value
# グローバルクールダウン (int) (オプション)
    data modify storage asset:artifact SpecialCooldown set value 3600
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableCooldownMessage set value
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableMPMessage set value
# 扱える神 (string[]) Wikiを参照
    data modify storage asset:artifact CanUsedGod set value ["Flora", "Urban", "Wi-ki", "Rumor"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

# 神器の入手用function
    function asset:artifact/common/give


text:
#> asset:artifact/0522.humanism/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0522.humanism/trigger/1.trigger

# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く auto/feet/legs/chest/head/mainhand/offhandを記載してね
    function asset:artifact/common/check_condition/auto
# 他にアイテム等確認する場合はここに書く

# CanUsedタグをチェックして3.main.mcfunctionを実行する
    execute if entity @s[tag=CanUsed] run function asset:artifact/0522.humanism/trigger/3.main


text:
#> asset:artifact/0522.humanism/trigger/3.main
#
# 神器のメイン処理部
#
# @within function asset:artifact/0522.humanism/trigger/2.check_condition

#>
# @private
#declare tag EI.Target

# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う auto/feet/legs/chest/head/mainhand/offhandを記載してね
    function asset:artifact/common/use/auto

# ここから先は神器側の効果の処理を書く

# 演出
    playsound block.enchantment_table.use player @a ~ ~ ~ 1 0 1
    particle flash ~ ~ ~ 1 1 1 1 100

# HP回復処理
    # 全プレイヤー全回復
        execute as @a run function asset:artifact/0522.humanism/trigger/heal

# MP回復処理
    execute as @a[tag=!this] run function asset:artifact/0522.humanism/trigger/mp_heal
# ダメージ処理
    # 全プレイヤーの周囲50Mの敵に魔法・水属性ダメージ
        data modify storage lib: Argument.Damage set value 1700f
        data modify storage lib: Argument.AttackType set value "Magic"
        data modify storage lib: Argument.ElementType set value "Water"
        function lib:damage/modifier
        execute at @a run tag @e[tag=Enemy,tag=!Uninterferable,distance=..50] add EI.Target
        execute as @e[tag=EI.Target] run function lib:damage/
        function lib:damage/reset

# タグリセット
    execute at @a run tag @e[tag=EI.Target,tag=!Uninterferable,distance=..50] remove EI.Target


text:
#> asset:artifact/0522.humanism/trigger/heal
#
#
#
# @within function asset:artifact/0522.humanism/trigger/3.main

#> Val
# @private
    #declare score_holder $MaxHealth
    #declare score_holder $CurHealth

# 現在/最大体力を取得する(100倍)
    function api:data_get/health
    execute store result score $CurHealth Temporary run data get storage api: Health 100
    execute store result score $MaxHealth Temporary run attribute @s generic.max_health get 100
# 失った体力(100倍)を計算する
    scoreboard players operation $MaxHealth Temporary -= $CurHealth Temporary
# 失った体力(100倍)の0.01倍*75%を回復量にする
    execute store result storage lib: Argument.Heal double 0.0075 run scoreboard players get $MaxHealth Temporary
# 回復量を固定する
    data modify storage lib: Argument.FixedHeal set value true
# 回復
    function lib:heal/
# リセット
    function lib:heal/reset
    scoreboard players reset $MaxHealth Temporary
    scoreboard players reset $CurHealth Temporary


text:
#> asset:artifact/0522.humanism/trigger/1.trigger
#
# 指定したイベントタイミングで実行されるfunction
#
# @within tag/function asset:artifact/**

# storage asset:idのauto/feet/legs/chest/head/mainhand/offhandに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する
    execute if data storage asset:context id{auto:522} run function asset:artifact/0522.humanism/trigger/2.check_condition


text:
#> asset:artifact/0522.humanism/trigger/mp_heal
#
#
#
# @within function asset:artifact/0522.humanism/trigger/3.main

    # 自身以外のプレイヤー全回復
        scoreboard players set $Fluctuation Lib 150
        function lib:mp/fluctuation


text:
#> asset:artifact/0981.soulfire_burst/register
#
# 神器プールへの登録処理
#
# @within tag/function asset:artifact/register

data modify storage asset:artifact RarityRegistry[4] append value 981


text:
#> asset:artifact/0981.soulfire_burst/give/1.trigger
#
# 神器の取得処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:artifact/give

execute if data storage asset:context {id:981} run function asset:artifact/0981.soulfire_burst/give/2.give


text:
#> asset:artifact/0981.soulfire_burst/give/2.give
#
# 神器の作成部 ここでID等を定義する
#
# @user
# @within function asset:artifact/0981.soulfire_burst/give/1.trigger

# 神器の説明や消費MPなどをここで設定する。
# 最後にasset:artifact/common/giveを実行することで入手可能。

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 981
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"ソウルファイアバースト","color":"red"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['[{"text":"前方に爆発する火の玉を放つ。","color":"white"}]','[{"text":"火の玉はしばらくすると、5つの小さな火球に分裂する。","color":"white"}]','{"text":"\\"行けぇッ！\\"","color":"gray"}']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    # data modify storage asset:artifact RemainingCount set value
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "auto"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "onClick"
# 神器の発動条件 (TextComponentString) (オプション)
    # data modify storage asset:artifact Condition set value
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.Damage set value ["900-1200 / 300-400×5"]
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackType set value [Magic]
# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.ElementType set value [Fire]
# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.BypassResist set value
# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.IsRangeAttack set value []
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.AttackRange set value
# MP消費量 (int)
    data modify storage asset:artifact MPCost set value 40
# MP必要量 (int) (オプション)
    # data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
    data modify storage asset:artifact LocalCooldown set value 40
# グローバルクールダウン (int) (オプション)
    # data modify storage asset:artifact SpecialCooldown set value
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableCooldownMessage set value
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableMPMessage set value
# 扱える神 (string[]) Wikiを参照
    data modify storage asset:artifact CanUsedGod set value ["Urban", "Nyaptov"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

# 神器の入手用function
    function asset:artifact/common/give


text:
#> asset:artifact/0981.soulfire_burst/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0981.soulfire_burst/trigger/1.trigger

# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く
    function asset:artifact/common/check_condition/auto
# 他にアイテム等確認する場合はここに書く

# CanUsedタグをチェックして3.main.mcfunctionを実行する
    execute if entity @s[tag=CanUsed] run function asset:artifact/0981.soulfire_burst/trigger/3.main


text:
#> asset:artifact/0981.soulfire_burst/trigger/3.main
#
# 神器のメイン処理部
#
# @within function asset:artifact/0981.soulfire_burst/trigger/2.check_condition

# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う
    function asset:artifact/common/use/auto

# ここから先は神器側の効果の処理を書く

# 演出
    playsound minecraft:entity.blaze.shoot player @a ~ ~ ~ 1.5 0.8
    playsound minecraft:entity.blaze.shoot player @a ~ ~ ~ 1.5 1.2
    playsound minecraft:entity.witch.throw player @a ~ ~ ~ 1.5 0.5
    playsound minecraft:block.soul_sand.step player @a ~ ~ ~ 1.5 0.5
    playsound minecraft:block.soul_sand.step player @a ~ ~ ~ 1.5 0.7

# デカい火の玉を放つ
    execute anchored eyes run summon armor_stand ^ ^ ^1 {Small:1b,Invisible:1b,Marker:1b,Tags:["R9.BigFireball","R9.Init","Projectile"],Passengers:[{id:"minecraft:snowball",Tags:["AllowProcessingCommonTag","AutoKillWhenDieVehicle","Uninterferable"],Item:{id:"minecraft:potion",Count:1b,tag:{CustomModelData:20233,CustomPotionColor:8639743}}}]}

# 火の玉にInit処理
    execute as @e[type=armor_stand,tag=R9.BigFireball,tag=R9.Init,distance=..3,sort=nearest,limit=1] run function asset:artifact/0981.soulfire_burst/trigger/big_fireball/1.init

# 火の玉を動かすShcheduleループ開始
    schedule function asset:artifact/0981.soulfire_burst/trigger/big_fireball/2.tick 1t


text:
#> asset:artifact/0981.soulfire_burst/trigger/0.load
#
# 神器に利用するスコアボード等の初期化処理
#
# @within tag/function asset:artifact/load

#> 定義類はここに
# @within function asset:artifact/0981.soulfire_burst/trigger/**
    scoreboard objectives add R9.UserID dummy
    scoreboard objectives add R9.Tick dummy
    scoreboard objectives add R9.Speed dummy
    scoreboard objectives add R9.Range dummy
    scoreboard objectives add R9.MoveTimesPerTick dummy


text:
#> asset:artifact/0981.soulfire_burst/trigger/rejoin_process
#
# 使い方は必ずwikiを見ること
#
# @within tag/function asset:rejoin

# このfunctionをループさせる
    execute if entity @e[type=armor_stand,tag=R9.SmallFireball] run schedule function asset:artifact/0981.soulfire_burst/trigger/small_fireball/2.tick 1t
    execute if entity @e[type=armor_stand,tag=R9.BigFireball] run schedule function asset:artifact/0981.soulfire_burst/trigger/big_fireball/2.tick 1t


text:
#> asset:artifact/0981.soulfire_burst/trigger/1.trigger
#
# 指定したイベントタイミングで実行されるfunction
#
# @within tag/function asset:artifact/**

# storage asset:idのautoに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する
    execute if data storage asset:context id{auto:981} run function asset:artifact/0981.soulfire_burst/trigger/2.check_condition


text:
#> asset:artifact/0981.soulfire_burst/trigger/_index.d
# @private

#> tag
# @within function asset:artifact/0981.soulfire_burst/trigger/**
    #declare tag R9.BigFireball
    #declare tag R9.SmallFireball
    #declare tag R9.Init
    #declare tag R9.CopyBase
    #declare tag R9.OwnerPlayer
    #declare tag R9.NotTarget


text:
#> asset:artifact/0981.soulfire_burst/trigger/small_fireball/damage
#
# ふっとばさない攻撃
#
# @within function asset:artifact/0981.soulfire_burst/trigger/small_fireball/hit

# ダメージ値設定
    #ダメージブレのための処理
        # 疑似乱数取得
            execute store result score $RandomDamage Temporary run function lib:random/
        # 剰余算する。追加ダメージ発生
          scoreboard players operation $RandomDamage Temporary %= $100 Const
        # 最低ダメージ設定
            scoreboard players add $RandomDamage Temporary 300
    #ダメージセット
        execute store result storage lib: Argument.Damage float 1 run scoreboard players get $RandomDamage Temporary

# 魔法火属性
    data modify storage lib: Argument.AttackType set value "Magic"
    data modify storage lib: Argument.ElementType set value "Fire"

# マスターとして補正functionを実行
    execute as @p[tag=R9.OwnerPlayer] run function lib:damage/modifier

# ダメージ実行
    function lib:damage/

# リセット
    function lib:damage/reset
    scoreboard players reset $RandomDamage Temporary


text:
#> asset:artifact/0981.soulfire_burst/trigger/small_fireball/2.tick
#
#
#
# @within function
#   asset:artifact/0981.soulfire_burst/trigger/big_fireball/split
#   asset:artifact/0981.soulfire_burst/trigger/small_fireball/2.tick
#   asset:artifact/0981.soulfire_burst/trigger/rejoin_process

# エンティティに実行させる
    execute as @e[type=armor_stand,tag=R9.SmallFireball] at @s run function asset:artifact/0981.soulfire_burst/trigger/small_fireball/3.main

# エンティティがいればループ
    execute if entity @e[type=armor_stand,tag=R9.SmallFireball] run schedule function asset:artifact/0981.soulfire_burst/trigger/small_fireball/2.tick 1t


text:
#> asset:artifact/0981.soulfire_burst/trigger/small_fireball/3.main
#
# Tick実行部分
#
# @within function asset:artifact/0981.soulfire_burst/trigger/small_fireball/2.tick

# ターゲットにしない人にタグ付与
    execute positioned ^35 ^ ^ run tag @e[type=#lib:living,tag=Enemy,distance=..30] add R9.NotTarget
    execute positioned ^-35 ^ ^ run tag @e[type=#lib:living,tag=Enemy,distance=..30] add R9.NotTarget

# 移動 カーブをfunction内で行うと曲がりすぎるのでここで書く
    execute facing entity @e[tag=Enemy,tag=!Uninterferable,tag=!R9.NotTarget,distance=..20,sort=nearest,limit=1] eyes positioned ^ ^ ^-50 rotated as @s positioned ^ ^ ^-400 facing entity @s eyes positioned as @s run function asset:artifact/0981.soulfire_burst/trigger/small_fireball/4.move
    execute unless entity @e[tag=Enemy,tag=!Uninterferable,tag=!R9.NotTarget,distance=..20,sort=nearest,limit=1] run function asset:artifact/0981.soulfire_burst/trigger/small_fireball/4.move

# 加速
    scoreboard players add @s[scores={R9.Speed=..21}] R9.Speed 1

# パーティクル
    particle minecraft:smoke ~ ~ ~ 0.05 0.05 0.05 0 1
    particle soul_fire_flame ~ ~ ~ 0 0 0 0 1 force @a[distance=..60]

# タグ削除
    tag @e[type=#lib:living,tag=R9.NotTarget,distance=..60] remove R9.NotTarget


text:
#> asset:artifact/0981.soulfire_burst/trigger/small_fireball/hit
#
# 着弾したとき。単体ダメージ。
#
# @within function asset:artifact/0981.soulfire_burst/trigger/small_fireball/4.move

# オーナーのプレイヤーを特定
    execute at @a[distance=..100] if score @s R9.UserID = @p UserID run tag @p add R9.OwnerPlayer

# 単体にダメージ。実行者がヒットしたモブになる。
    execute as @e[type=#lib:living,tag=Enemy,tag=!Uninterferable,distance=..4,sort=nearest,limit=1] at @s run function asset:artifact/0981.soulfire_burst/trigger/small_fireball/damage

# 演出
    particle minecraft:smoke ~ ~ ~ 0 0 0 0.05 2
    playsound minecraft:block.soul_sand.step neutral @a ~ ~ ~ 0.5 1.5

# オーナー情報削除
    tag @a[tag=R9.OwnerPlayer] remove R9.OwnerPlayer

# 弾を消す
    kill @s


text:
#> asset:artifact/0981.soulfire_burst/trigger/small_fireball/4.move
#
#
#
# @within function
#   asset:artifact/0981.soulfire_burst/trigger/small_fireball/3.main
#   asset:artifact/0981.soulfire_burst/trigger/small_fireball/4.move

# 再帰カウントが0なら弾速からセット
    execute unless entity @s[scores={R9.MoveTimesPerTick=1..,R9.Range=1..}] run scoreboard players operation @s R9.MoveTimesPerTick = @s R9.Speed

# パーティクル
    particle minecraft:dust 0.576 0.922 1 0.8 ~ ~ ~ 0 0 0 0 1

# 敵がいないなら直進
    tp @s ^ ^ ^0.1 ~ ~

# スコア減算
    scoreboard players remove @s R9.MoveTimesPerTick 1
    scoreboard players remove @s R9.Range 1

# 飛距離の限界で炸裂
    execute if entity @s[scores={R9.Range=0}] run kill @s

# 壁で消滅
    execute unless block ~ ~ ~ #lib:no_collision run kill @s

# モブに接触
    execute positioned ~-0.5 ~-0.5 ~-0.5 at @e[tag=Enemy,tag=!Uninterferable,dx=0,sort=nearest,limit=1] run function asset:artifact/0981.soulfire_burst/trigger/small_fireball/hit

# 再帰
    execute if entity @s[scores={R9.MoveTimesPerTick=1..,R9.Range=1..}] at @s run function asset:artifact/0981.soulfire_burst/trigger/small_fireball/4.move


text:
#> asset:artifact/0981.soulfire_burst/trigger/small_fireball/1.init
#
#
#
# @within function asset:artifact/0981.soulfire_burst/trigger/big_fireball/split

#> SpreadLib
# @private
#declare tag SpreadMarker

# IDコピー
    scoreboard players operation @s R9.UserID = @e[type=armor_stand,tag=R9.BigFireball,tag=R9.CopyBase,distance=..2,sort=nearest,limit=1] R9.UserID

# 向き揃える
    data modify entity @s Rotation set from entity @e[type=armor_stand,tag=R9.BigFireball,tag=R9.CopyBase,distance=..2,sort=nearest,limit=1] Rotation

# ステータス設定
    # 速度と飛距離
        scoreboard players set @s R9.Speed 1
        scoreboard players set @s R9.Range 300

    # 拡散値
        data modify storage lib: Argument.Distance set value 1
        data modify storage lib: Argument.Spread set value 1

# 拡散させるEntityを召喚する
    summon marker ~ ~ ~ {Tags:["SpreadMarker"]}

# 拡散
    execute as @e[type=marker,tag=SpreadMarker,distance=..20,limit=1] run function lib:forward_spreader/circle

# マーカーの方を向く
    execute facing entity @e[type=marker,tag=SpreadMarker,distance=..20,sort=nearest,limit=1] eyes run tp @s ~ ~ ~ ~ ~5

# リセット
    kill @e[type=marker,tag=SpreadMarker,distance=..20]

# タグ削除
    tag @s remove R9.Init


text:
#> asset:artifact/0981.soulfire_burst/trigger/big_fireball/damage
#
#
#
# @within function asset:artifact/0981.soulfire_burst/trigger/big_fireball/hit

# どうしてもダメージを受けてほしい（HurtTimeで反応を起こすモブもいるので)
    effect give @s instant_health
    effect give @s instant_damage

# デバフ
    effect give @s slowness 2 10

# ダメージ値設定
    #ダメージブレのための処理
        # 疑似乱数取得
            execute store result score $RandomDamage Temporary run function lib:random/
        # 剰余算する。追加ダメージ発生
          scoreboard players operation $RandomDamage Temporary %= $300 Const
        # 最低ダメージ設定
            scoreboard players add $RandomDamage Temporary 900
    #ダメージセット
        execute store result storage lib: Argument.Damage float 1 run scoreboard players get $RandomDamage Temporary

# 魔法、無属性のダメージをぶちかます
    data modify storage lib: Argument.AttackType set value "Magic"
    data modify storage lib: Argument.ElementType set value "Fire"

# マスターとして補正functionを実行
    execute as @p[tag=R9.OwnerPlayer] run function lib:damage/modifier

# ダメージ実行
    function lib:damage/

# ノクバ耐性を考慮して吹っ飛ばす
    data modify storage lib: Argument.VectorMagnitude set value -1
    data modify storage lib: Argument.KnockbackResist set value true
    execute at @s facing entity @e[type=armor_stand,tag=R9.BigFireball,sort=nearest,limit=1] feet rotated ~ 15 run function lib:motion/

# リセット
    function lib:damage/reset
    scoreboard players reset $RandomDamage Temporary
    data remove storage lib: Arugument


text:
#> asset:artifact/0981.soulfire_burst/trigger/big_fireball/2.tick
#
#
#
# @within function
#   asset:artifact/0981.soulfire_burst/trigger/big_fireball/2.tick
#   asset:artifact/0981.soulfire_burst/trigger/3.main
#   asset:artifact/0981.soulfire_burst/trigger/rejoin_process

# エンティティに実行させる
    execute as @e[type=armor_stand,tag=R9.BigFireball] at @s run function asset:artifact/0981.soulfire_burst/trigger/big_fireball/3.main

# エンティティがいればループ
    execute if entity @e[type=armor_stand,tag=R9.BigFireball] run schedule function asset:artifact/0981.soulfire_burst/trigger/big_fireball/2.tick 1t


text:
#> asset:artifact/0981.soulfire_burst/trigger/big_fireball/3.main
#
# Tick実行部分。多く出したくないパーティクルとかが放り込まれる
#
# @within function asset:artifact/0981.soulfire_burst/trigger/big_fireball/2.tick

# 移動
    function asset:artifact/0981.soulfire_burst/trigger/big_fireball/4.move

# パーティクル
    particle minecraft:smoke ~ ~ ~ 0.1 0.1 0.1 0 3
    particle minecraft:dust 0.373 0.584 0.631 1.5 ~ ~ ~ 0.2 0.2 0.2 0 3
    particle minecraft:entity_effect ~ ~ ~ 0 0.5 1.5 1 0


text:
#> asset:artifact/0981.soulfire_burst/trigger/big_fireball/hit
#
# 着弾したとき。周囲に範囲攻撃。
#
# @within function asset:artifact/0981.soulfire_burst/trigger/big_fireball/4.move

# オーナーのプレイヤーを特定
    execute at @a[distance=..100] if score @s R9.UserID = @p UserID run tag @p add R9.OwnerPlayer

# 範囲3にダメージ。着弾地点から範囲3以内のモブが実行者になる。
    execute as @e[type=#lib:living,tag=Enemy,tag=!Uninterferable,distance=..3] at @s run function asset:artifact/0981.soulfire_burst/trigger/big_fireball/damage

# 演出
    playsound minecraft:entity.generic.explode neutral @a ~ ~ ~ 1.5 1.5
    playsound minecraft:entity.ender_dragon.flap neutral @a ~ ~ ~ 2 0.8
    particle minecraft:explosion ~ ~ ~ 1 1 1 1 5
    particle minecraft:lava ~ ~ ~ 0.5 0.5 0.5 0 10

# オーナー情報削除
    tag @a[tag=R9.OwnerPlayer] remove R9.OwnerPlayer

# 弾を消す
    kill @s


text:
#> asset:artifact/0981.soulfire_burst/trigger/big_fireball/4.move
#
#
#
# @within function
#   asset:artifact/0981.soulfire_burst/trigger/big_fireball/3.main
#   asset:artifact/0981.soulfire_burst/trigger/big_fireball/4.move

# 再帰カウントが0なら弾速からセット
    execute unless entity @s[scores={R9.MoveTimesPerTick=1..,R9.Range=1..}] run scoreboard players operation @s R9.MoveTimesPerTick = @s R9.Speed

# 前進
    particle minecraft:soul_fire_flame ~ ~ ~ 0.2 0.2 0.2 0 1 force @a[distance=..30]
    tp @s ^ ^ ^0.1 ~ ~

# スコア減算
    scoreboard players remove @s R9.MoveTimesPerTick 1
    scoreboard players remove @s R9.Range 1

# 飛距離の限界で炸裂
    execute if entity @s[scores={R9.Range=0}] run function asset:artifact/0981.soulfire_burst/trigger/big_fireball/split

# 壁で爆発
    execute unless block ~ ~ ~ #lib:no_collision run function asset:artifact/0981.soulfire_burst/trigger/big_fireball/hit

# モブに接触
    execute positioned ~-0.5 ~-0.5 ~-0.5 at @e[tag=Enemy,tag=!Uninterferable,dx=0,sort=nearest,limit=1] run function asset:artifact/0981.soulfire_burst/trigger/big_fireball/hit

# 再帰
    execute if entity @s[scores={R9.MoveTimesPerTick=1..,R9.Range=1..}] at @s run function asset:artifact/0981.soulfire_burst/trigger/big_fireball/4.move


text:
#> asset:artifact/0981.soulfire_burst/trigger/big_fireball/split
#
# 飛距離の限界で炸裂する
#
# @within function asset:artifact/0981.soulfire_burst/trigger/big_fireball/4.move

# コピー時の対象を自身にだけ限定するタグ
    tag @s add R9.CopyBase

# 演出
    playsound minecraft:block.respawn_anchor.set_spawn neutral @a ~ ~ ~ 2 1.5
    playsound minecraft:entity.blaze.shoot neutral @a ~ ~ ~ 2 0.8
    playsound minecraft:block.soul_sand.step neutral @a ~ ~ ~ 2 1
    playsound minecraft:block.soul_sand.step neutral @a ~ ~ ~ 2 1.2

# 小さい火の玉をいっぱい召喚
    summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Tags:["R9.SmallFireball","R9.Init","Projectile"],Passengers:[{id:"minecraft:snowball",Tags:["AllowProcessingCommonTag","AutoKillWhenDieVehicle","Uninterferable"],Item:{id:"minecraft:potion",Count:1b,tag:{CustomModelData:20234,CustomPotionColor:8639743}}}]}
    summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Tags:["R9.SmallFireball","R9.Init","Projectile"],Passengers:[{id:"minecraft:snowball",Tags:["AllowProcessingCommonTag","AutoKillWhenDieVehicle","Uninterferable"],Item:{id:"minecraft:potion",Count:1b,tag:{CustomModelData:20234,CustomPotionColor:8639743}}}]}
    summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Tags:["R9.SmallFireball","R9.Init","Projectile"],Passengers:[{id:"minecraft:snowball",Tags:["AllowProcessingCommonTag","AutoKillWhenDieVehicle","Uninterferable"],Item:{id:"minecraft:potion",Count:1b,tag:{CustomModelData:20234,CustomPotionColor:8639743}}}]}
    summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Tags:["R9.SmallFireball","R9.Init","Projectile"],Passengers:[{id:"minecraft:snowball",Tags:["AllowProcessingCommonTag","AutoKillWhenDieVehicle","Uninterferable"],Item:{id:"minecraft:potion",Count:1b,tag:{CustomModelData:20234,CustomPotionColor:8639743}}}]}
    summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Tags:["R9.SmallFireball","R9.Init","Projectile"],Passengers:[{id:"minecraft:snowball",Tags:["AllowProcessingCommonTag","AutoKillWhenDieVehicle","Uninterferable"],Item:{id:"minecraft:potion",Count:1b,tag:{CustomModelData:20234,CustomPotionColor:8639743}}}]}

# 火の玉にInit処理
    execute as @e[type=armor_stand,tag=R9.SmallFireball,tag=R9.Init,distance=..10,sort=nearest,limit=5] run function asset:artifact/0981.soulfire_burst/trigger/small_fireball/1.init

# スケジュールループ開始
    schedule function asset:artifact/0981.soulfire_burst/trigger/small_fireball/2.tick 1t

# キル
    kill @s


text:
#> asset:artifact/0981.soulfire_burst/trigger/big_fireball/1.init
#
#
#
# @within function asset:artifact/0981.soulfire_burst/trigger/3.main

# 向き揃える
    data modify entity @s Rotation set from entity @p[tag=this] Rotation

# IDコピー
    scoreboard players operation @s R9.UserID = @p[tag=this] UserID

# 弾速と飛距離セット
    scoreboard players set @s R9.Speed 10
    scoreboard players set @s R9.Range 70

# タグ削除
    tag @s remove R9.Init


text:
#> asset:artifact/0933.auto_torch/register
#
# 神器プールへの登録処理
#
# @within tag/function asset:artifact/register

data modify storage asset:artifact RarityRegistry[2] append value 933


text:
#> asset:artifact/0933.auto_torch/give/1.trigger
#
# 神器の取得処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:artifact/give

execute if data storage asset:context {id:933} run function asset:artifact/0933.auto_torch/give/2.give


text:
#> asset:artifact/0933.auto_torch/give/2.give
#
# 神器の作成部 ここでID等を定義する
#
# @user
# @within function asset:artifact/0933.auto_torch/give/1.trigger

# 神器の説明や消費MPなどをここで設定する。
# 最後にasset:artifact/common/giveを実行することで入手可能。

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 933
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"オートトーチ"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"暗い場所で自動で松明を置くぞ！"}','{"text":"めんどくさい作業からはおさらば！"}','{"text":"A型の人使用禁止","color":"gray","strikethrough":true}']
# MP以外の消費物 (TextComponentString) (オプション)
    data modify storage asset:artifact CostText set value '[{"translate":"block.minecraft.torch"},{"text":" x1"}]'
# 使用回数 (int) (オプション)
    # data modify storage asset:artifact RemainingCount set value
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "hotbar"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "passive"
# 神器の発動条件 (TextComponentString) (オプション)
    # data modify storage asset:artifact Condition set value
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.Damage set value [0,0]
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.AttackType set value [Physical,Magic]
# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.ElementType set value [Fire,Water,Thunder,None]
# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.BypassResist set value
# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.IsRangeAttack set value
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.AttackRange set value
# MP消費量 (int)
    data modify storage asset:artifact MPCost set value 0
# MP必要量 (int) (オプション)
    # data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
    data modify storage asset:artifact LocalCooldown set value 20
# グローバルクールダウン (int) (オプション)
    # data modify storage asset:artifact SpecialCooldown set value
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    data modify storage asset:artifact DisableCooldownMessage set value true
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableMPMessage set value
# 扱える神 (string[]) Wikiを参照
    data modify storage asset:artifact CanUsedGod set value "ALL"
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

# 神器の入手用function
    function asset:artifact/common/give


text:
#> asset:artifact/0933.auto_torch/trigger/can_set_check
#
#
#
# @within function asset:artifact/0933.auto_torch/trigger/2.check_condition

#> Private
# @private
    #declare score_holder $Count

# 松明を持ってるかチェック
    execute store result score $Count Temporary run clear @s torch 0
    execute if score $Count Temporary matches ..0 run tag @s add ExtraCheckFailed
# これtickだとうるさそうだからとりあえずコメントアウト
    # execute if score $Count Temporary matches ..0 run function lib:message/artifact/dont_have_require_items
    scoreboard players reset $Count Temporary

# プレイヤーがサバイバルかどうかを確認
    execute unless entity @s[gamemode=!spectator,gamemode=!adventure] run tag @s add ExtraCheckFailed

# 暗い場所かどうかを確認
    execute if predicate lib:light_level/min/7 run tag @s add ExtraCheckFailed

# 設置可能かどうかを確認
    execute unless block ~ ~ ~ #lib:air run tag @s add ExtraCheckFailed
    execute if block ~ ~-1 ~ #lib:air run tag @s add ExtraCheckFailed


text:
#> asset:artifact/0933.auto_torch/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0933.auto_torch/trigger/1.trigger

# ID指定する
    data modify storage asset:artifact TargetID set value 933
# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く
    function asset:artifact/common/check_condition/hotbar
# 他にアイテム等確認する場合はここに書く
# いろいろチェックする
    execute if entity @s[tag=CanUsed] run function asset:artifact/0933.auto_torch/trigger/can_set_check
    execute if entity @s[tag=CanUsed,tag=ExtraCheckFailed] run tag @s remove CanUsed
    execute if entity @s[tag=ExtraCheckFailed] run tag @s remove ExtraCheckFailed

# CanUsedタグをチェックして3.main.mcfunctionを実行する
    execute if entity @s[tag=CanUsed] run function asset:artifact/0933.auto_torch/trigger/3.main


text:
#> asset:artifact/0933.auto_torch/trigger/3.main
#
# 神器のメイン処理部
#
# @within function asset:artifact/0933.auto_torch/trigger/2.check_condition

# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う
    function asset:artifact/common/use/hotbar

# ここから先は神器側の効果の処理を書く
    setblock ~ ~ ~ torch keep
    clear @s torch 1


text:
#> asset:artifact/0933.auto_torch/trigger/1.trigger
#
# 指定したイベントタイミングで実行されるfunction
#
# @within tag/function asset:artifact/**

# storage asset:idのhotbarに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する
    execute if data storage asset:context id{hotbar:[933]} run function asset:artifact/0933.auto_torch/trigger/2.check_condition


text:
#> asset:artifact/0933.auto_torch/trigger/_index.d
# @private

#> tag
# @within function asset:artifact/0933.auto_torch/trigger/**
    #declare tag ExtraCheckFailed


text:
#> asset:artifact/0501.infinity/register
#
# 神器プールへの登録処理
#
# @within tag/function asset:artifact/register

data modify storage asset:artifact RarityRegistry[3] append value 501


text:
#> asset:artifact/0501.infinity/give/1.trigger
#
# 神器の取得処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:artifact/give

execute if data storage asset:context {id:501} run function asset:artifact/0501.infinity/give/2.give


text:
#> asset:artifact/0501.infinity/give/2.give
#
# 神器の作成部 ここでID等を定義する
#
# @user
# @within function asset:artifact/0501.infinity/give/1.trigger
# @within function asset:artifact/0501.infinity/3.main

# 神器の説明や消費MPなどをここで設定する。
# 最後にasset:artifact/common/giveを実行することで入手可能。

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 501
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"無限増殖","color":"yellow"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"世界を埋め尽くすことも不可能ではない。","color":"white"}']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    # data modify storage asset:artifact RemainingCount set value
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "auto"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "onClick"
# 神器の発動条件 (TextComponentString) (オプション)
    # data modify storage asset:artifact Condition set value
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.Damage set value [0,0]
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.AttackType set value [Physical,Magic]
# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.ElementType set value [Fire,Water,Thunder,None]
# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.BypassResist set value
# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.IsRangeAttack set value
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.AttackRange set value
# MP消費量 (int)
    data modify storage asset:artifact MPCost set value 0
# MP必要量 (int) (オプション)
    # data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
    # data modify storage asset:artifact LocalCooldown set value
# グローバルクールダウン (int) (オプション)
    # data modify storage asset:artifact SpecialCooldown set value
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableCooldownMessage set value
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableMPMessage set value
# 扱える神 (string[]) Wikiを参照
    data modify storage asset:artifact CanUsedGod set value "ALL"
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

# 神器の入手用function
    function asset:artifact/common/give


text:
#> asset:artifact/0501.infinity/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0501.infinity/trigger/1.trigger

# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く auto/feet/legs/chest/head/mainhand/offhandを記載してね
    function asset:artifact/common/check_condition/auto
# 他にアイテム等確認する場合はここに書く

# CanUsedタグをチェックして3.main.mcfunctionを実行する
    execute if entity @s[tag=CanUsed] run function asset:artifact/0501.infinity/trigger/3.main


text:
#> asset:artifact/0501.infinity/trigger/3.main
#
# 神器のメイン処理部
#
# @within function asset:artifact/0501.infinity/trigger/2.check_condition

# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う auto/feet/legs/chest/head/mainhand/offhandを記載してね
    function asset:artifact/common/use/auto

# ここから先は神器側の効果の処理を書く
    data modify storage api: Argument.ID set value 501
    function api:artifact/give/from_id


text:
#> asset:artifact/0501.infinity/trigger/1.trigger
#
# 指定したイベントタイミングで実行されるfunction
#
# @within tag/function asset:artifact/**

# storage asset:idのauto/feet/legs/chest/head/mainhand/offhandに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する
    execute if data storage asset:context id{auto:501} run function asset:artifact/0501.infinity/trigger/2.check_condition


text:
#> asset:artifact/0162.rations/register
#
# 神器プールへの登録処理
#
# @within tag/function asset:artifact/register

data modify storage asset:artifact RarityRegistry[1] append value 162


text:
#> asset:artifact/0162.rations/give/1.trigger
#
# 神器の取得処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:artifact/give

execute if data storage asset:context {id:162} run function asset:artifact/0162.rations/give/2.give


text:
#> asset:artifact/0162.rations/give/2.give
#
# 神器の作成部 ここでID等を定義する
#
# @user
# @within function asset:artifact/0162.rations/give/1.trigger

# 神器の説明や消費MPなどをここで設定する。
# 最後にasset:artifact/common/giveを実行することで入手可能。

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 162
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"携帯食料","color":"yellow"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"一見、チョコレートのように見える"}']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    data modify storage asset:artifact RemainingCount set value 5
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "auto"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "onClick"
# 神器の発動条件 (TextComponentString) (オプション)
    # data modify storage asset:artifact Condition set value
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.Damage set value [0,0]
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.AttackType set value [Physical,Magic]
# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.ElementType set value [Fire,Water,Thunder,None]
# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.BypassResist set value
# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.IsRangeAttack set value
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.AttackRange set value
# MP消費量 (int)
    data modify storage asset:artifact MPCost set value 1
# MP必要量 (int) (オプション)
    # data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
    # data modify storage asset:artifact LocalCooldown set value
# グローバルクールダウン (int) (オプション)
    # data modify storage asset:artifact SpecialCooldown set value
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableCooldownMessage set value
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableMPMessage set value
# 扱える神 (string[]) Wikiを参照
    data modify storage asset:artifact CanUsedGod set value "ALL"
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

# 神器の入手用function
    function asset:artifact/common/give


text:
#> asset:artifact/0162.rations/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0162.rations/trigger/1.trigger

# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く auto/feet/legs/chest/head/mainhand/offhandを記載してね
    function asset:artifact/common/check_condition/auto
# 他にアイテム等確認する場合はここに書く

# CanUsedタグをチェックして3.main.mcfunctionを実行する
    execute if entity @s[tag=CanUsed] run function asset:artifact/0162.rations/trigger/3.main


text:
#> asset:artifact/0162.rations/trigger/3.main
#
# 神器のメイン処理部
#
# @within function asset:artifact/0162.rations/trigger/2.check_condition

# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う auto/feet/legs/chest/head/mainhand/offhandを記載してね
    function asset:artifact/common/use/auto

# ここから先は神器側の効果の処理を書く

# 満腹度回復の効果
    effect give @s minecraft:saturation 10 0 true

# パーティクル
    particle item minecraft:dark_oak_sign ~ ~1.5 ~ 0 0.2 0 0.2 20 force @s

# SE
    playsound minecraft:entity.player.burp player @s ~ ~ ~ 1 1.3


text:
#> asset:artifact/0162.rations/trigger/1.trigger
#
# 指定したイベントタイミングで実行されるfunction
#
# @within tag/function asset:artifact/*

# storage asset:context idのauto/feet/legs/chest/head/mainhand/offhandに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する
    execute if data storage asset:context id{auto:162} run function asset:artifact/0162.rations/trigger/2.check_condition


text:
#> asset:artifact/0379.miracle_rod/register
#
# 神器プールへの登録処理
#
# @within tag/function asset:artifact/register

data modify storage asset:artifact RarityRegistry[3] append value 379


text:
#> asset:artifact/0379.miracle_rod/give/1.trigger
#
# 神器の取得処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:artifact/give

execute if data storage asset:context {id:379} run function asset:artifact/0379.miracle_rod/give/2.give


text:
#> asset:artifact/0379.miracle_rod/give/2.give
#
# 神器の作成部 ここでID等を定義する
#
# @user
# @within function asset:artifact/0379.miracle_rod/give/1.trigger

# 神器の説明や消費MPなどをここで設定する。
# 最後にasset:artifact/common/giveを実行することで入手可能。

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 379
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '[{"text":"ミラクルロッド","color":"white","bold":"true"}]'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"夢想的な魔法の媒介になる杖。","color":"light_purple"}','{"text":"敵にやや強力な魔法無属性ダメージを与える","color":"light_purple"}']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    # data modify storage asset:artifact RemainingCount set value
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "auto"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "onClick"
# 神器の発動条件 (TextComponentString) (オプション)
    # data modify storage asset:artifact Condition set value
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.Damage set value [580]
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackType set value [Magic]
# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.ElementType set value [None]
# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.BypassResist set value
# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.IsRangeAttack set value "never"
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackRange set value 30
# MP消費量 (int)
    data modify storage asset:artifact MPCost set value 50
# MP必要量 (int) (オプション)
    # data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
    data modify storage asset:artifact LocalCooldown set value 60
# グローバルクールダウン (int) (オプション)
    # data modify storage asset:artifact SpecialCooldown set value
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableCooldownMessage set value
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableMPMessage set value
# 扱える神 (string[]) Wikiを参照
    data modify storage asset:artifact CanUsedGod set value ["Flora", "Nyaptov", "Wi-ki", "Rumor"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

# 神器の入手用function
    function asset:artifact/common/give


text:
#> asset:artifact/0379.miracle_rod/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0379.miracle_rod/trigger/1.trigger

# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く
    function asset:artifact/common/check_condition/auto
# 他にアイテム等確認する場合はここに書く

# CanUsedタグをチェックして3.main.mcfunctionを実行する
    execute if entity @s[tag=CanUsed] run function asset:artifact/0379.miracle_rod/trigger/3.main


text:
#> asset:artifact/0379.miracle_rod/trigger/3.main
#
# 神器のメイン処理部
#
# @within function asset:artifact/0379.miracle_rod/trigger/2.check_condition

# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う
    function asset:artifact/common/use/auto

# ここから先は神器側の効果の処理を書く

# 演出
    playsound minecraft:entity.puffer_fish.death player @a ~ ~ ~ 1 0

# 魔法陣展開
    summon area_effect_cloud ~ ~ ~ {Duration:2147483647,Tags:["AJ.Magic","AJ.MagicSet","Uninterferable"]}
    execute as @e[type=area_effect_cloud,tag=AJ.MagicSet,sort=nearest,limit=1] run tp @s @p
    scoreboard players set @e[type=area_effect_cloud,tag=AJ.MagicSet,sort=nearest,limit=1] AJ.CoolTime 10
    scoreboard players operation @e[type=area_effect_cloud,tag=AJ.MagicSet,sort=nearest,limit=1] AJ.UserID = @s UserID
    tag @e[type=area_effect_cloud,tag=AJ.MagicSet,sort=nearest,limit=1] remove AJ.MagicSet

# 魔法陣実行
    function asset:artifact/0379.miracle_rod/trigger/3.2.magic_circle


text:
#> asset:artifact/0379.miracle_rod/trigger/3.3.shoot
#
# 神器のメイン処理部
#
# @within function
#   asset:artifact/0379.miracle_rod/trigger/3.2.magic_circle
#   asset:artifact/0379.miracle_rod/trigger/3.3.shoot

# ここから先は神器側の効果の処理を書く
# 着弾検知
    execute if entity @e[type=#lib:living,type=!player,tag=!Uninterferable,distance=..2] run tag @s add Landing
    execute unless block ^ ^ ^0.5 #lib:no_collision run tag @s add Landing

# ターゲットにタグ付与
    execute if entity @e[type=#lib:living,type=!player,tag=!Uninterferable,distance=..2] run tag @e[type=#lib:living,type=!player,tag=!Uninterferable,distance=..2,limit=1] add LandingTarget

# 演出
    particle dust 1 1 1 1 ~ ~ ~ 0.2 0.2 0.2 0 20
    particle enchant ~ ~ ~ 0.4 0.4 0.4 0 20

# 着弾
    execute if entity @s[tag=Landing] run function asset:artifact/0379.miracle_rod/trigger/3.4.damage

# 再起
    execute positioned ^ ^ ^0.5 if entity @s[tag=!Landing,distance=..30] run function asset:artifact/0379.miracle_rod/trigger/3.3.shoot


text:
#> asset:artifact/0379.miracle_rod/trigger/0.load
#
# 神器に利用するスコアボード等の初期化処理
#
# @within tag/function asset:artifact/load

#> 定義類はここに
# @within function asset:artifact/0379.miracle_rod/trigger/**
    scoreboard objectives add AJ.CoolTime dummy
    scoreboard objectives add AJ.UserID dummy


text:
#> asset:artifact/0379.miracle_rod/trigger/1.trigger
#
# 指定したイベントタイミングで実行されるfunction
#
# @within tag/function asset:artifact/**

# storage asset:idのautoに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する
    execute if data storage asset:context id{auto:379} run function asset:artifact/0379.miracle_rod/trigger/2.check_condition


text:
#> asset:artifact/0379.miracle_rod/trigger/3.2.magic_circle
#
# 神器のメイン処理部
#
# @within function
#       asset:artifact/0379.miracle_rod/trigger/3.main
#       asset:artifact/0379.miracle_rod/trigger/3.2.magic_circle

# ここから先は神器側の効果の処理を書く

# 演出
    execute as @e[type=area_effect_cloud,tag=AJ.Magic] at @s positioned ~ ~1.5 ~ positioned ^ ^ ^2 rotated ~ ~90 run function asset:artifact/0379.miracle_rod/trigger/3.1.particle

# 発動
    execute as @e[type=area_effect_cloud,tag=AJ.Magic,scores={AJ.CoolTime=0}] at @s positioned ~ ~1.5 ~ positioned ^ ^ ^2 run function asset:artifact/0379.miracle_rod/trigger/3.3.shoot
    execute as @e[type=area_effect_cloud,tag=AJ.Magic,scores={AJ.CoolTime=0}] at @s run playsound minecraft:entity.wither.shoot player @a ~ ~ ~ 1 0.6
    kill @e[type=area_effect_cloud,tag=AJ.Magic,scores={AJ.CoolTime=0}]

# スコア減らす
    scoreboard players remove @e[type=area_effect_cloud,tag=AJ.Magic] AJ.CoolTime 1

# ループ
    execute if entity @e[type=area_effect_cloud,tag=AJ.Magic,limit=1] run schedule function asset:artifact/0379.miracle_rod/trigger/3.2.magic_circle 1t replace


text:
#> asset:artifact/0379.miracle_rod/trigger/_index.d
# @private

#> tag
# @within function
#   asset:artifact/0379.miracle_rod/trigger/**
    #declare tag AJ.Magic
    #declare tag AJ.MagicSet
    #declare tag Landing
    #declare tag LandingTarget


text:
#> asset:artifact/0379.miracle_rod/trigger/3.4.damage
#
# 神器のメイン処理部
#
# @within function
#   asset:artifact/0379.miracle_rod/trigger/3.3.shoot

# ここから先は神器側の効果の処理を書く

# 演出
    particle end_rod ~ ~ ~ 0 0 0 0.4 200
    particle minecraft:large_smoke ~ ~ ~ 0 0 0 0.4 10

    playsound item.trident.riptide_3 player @a ~ ~ ~ 1 2
    playsound item.trident.riptide_3 player @a ~ ~ ~ 1 2
    playsound item.trident.riptide_3 player @a ~ ~ ~ 1 2

# ダメージ設定
    # 与えるダメージ = 580
        data modify storage lib: Argument.Damage set value 580.0f
    # 魔法属性
        data modify storage lib: Argument.AttackType set value "Magic"
    # 無属性
        data modify storage lib: Argument.ElementType set value "None"
    # ダメージ
        execute as @a if score @s UserID = @e[type=area_effect_cloud,tag=AJ.Magic,scores={AJ.CoolTime=0},sort=nearest,limit=1] AJ.UserID run function lib:damage/modifier
        execute as @e[type=#lib:living,type=!player,tag=LandingTarget,tag=!Uninterferable,distance=..50,limit=1] run function lib:damage/
# リセット
    function lib:damage/reset

# 着弾タグを消す
    tag @e[type=#lib:living,type=!player,tag=LandingTarget,tag=!Uninterferable,distance=..50,limit=1] remove LandingTarget


text:
#> asset:artifact/0379.miracle_rod/trigger/3.1.particle
#
# 神器のメイン処理部
#
# @within function
#       asset:artifact/0379.miracle_rod/trigger/3.main
#       asset:artifact/0379.miracle_rod/trigger/3.2.magic_circle

# 全部パーティクル！
particle minecraft:soul_fire_flame ^-0.5999667763710023 ^0.0 ^-0.7107503652572629 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.6999612390995027 ^0.0 ^-0.53754209280014 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.3001439690589904 ^0.0 ^-0.5015829443931581 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.4001550436019898 ^0.0 ^-0.6747816324234011 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.500166118144989 ^0.0 ^-0.8479803204536439 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.5000830590724941 ^0.0 ^-0.8479803204536436 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.700083059072494 ^0.0 ^-0.8479803204536435 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.900083059072494 ^0.0 ^-0.8479803204536435 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.1000830590724942 ^0.0 ^-0.8479803204536435 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.300083059072494 ^0.0 ^-0.8479803204536434 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.500083059072494 ^0.0 ^-0.8479803204536434 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.8794435262680054 ^0.0 ^-0.6838801503181458 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.732082724571228 ^0.0 ^-0.9999446272850037 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.5321847200393677 ^0.0 ^-1.2854609489440918 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.2856078147888184 ^0.0 ^-1.5320614576339722 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.0001107454299927 ^0.0 ^-1.7319868803024292 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.6840603351593018 ^0.0 ^-1.8793779611587524 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.09999446272850032 ^0.0 ^-1.576791727542877 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.19998892545700064 ^0.0 ^-1.4035834550857544 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.2999833881855012 ^0.0 ^-1.2303751826286315 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.3999778509140015 ^0.0 ^-1.0571669101715087 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.49997231364250183 ^0.0 ^-0.8839586377143858 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.799955701828003 ^0.0 ^-0.3643338203430171 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.8999501645565033 ^0.0 ^-0.19112554788589442 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.9999446272850038 ^0.0 ^-0.01791727542877153 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.1001218199729919 ^0.0 ^-0.15518556833267216 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.200132894515991 ^0.0 ^-0.32838425636291513 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.10008305907249393 ^0.0 ^-0.8479803204536436 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.3000830590724939 ^0.0 ^-0.8479803204536436 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.9696303606033325 ^0.0 ^-0.34721243381500244 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.3474012613296509 ^0.0 ^-1.9695969820022583 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.0 ^0.0 ^-1.75 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.0 ^0.0 ^-1.75 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.10001107454299918 ^0.0 ^-1.576801311969757 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.20002214908599858 ^0.0 ^-1.403602623939514 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.300033223628998 ^0.0 ^-1.230403935909271 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.40004429817199716 ^0.0 ^-1.0572052478790281 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.5000553727149963 ^0.0 ^-0.8840065598487852 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.6000664472579955 ^0.0 ^-0.7108078718185422 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.7000775218009947 ^0.0 ^-0.5376091837882992 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.2999280154705044 ^0.0 ^-0.5015829443931581 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.399922478199005 ^0.0 ^-0.6747816324234011 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.499916940927505 ^0.0 ^-0.8479803204536439 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.4999169409275055 ^0.0 ^-0.8479803204536438 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.2999169409275058 ^0.0 ^-0.8479803204536438 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.099916940927506 ^0.0 ^-0.8479803204536438 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.8999169409275058 ^0.0 ^-0.8479803204536437 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.6999169409275057 ^0.0 ^-0.8479803204536437 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.49991694092750594 ^0.0 ^-0.8479803204536437 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.299916940927506 ^0.0 ^-0.8479803204536436 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.09991694092750603 ^0.0 ^-0.8479803204536436 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.0 ^0.0 ^-2.0 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.34721243381500244 ^0.0 ^-1.9696303606033325 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.6838801503181458 ^0.0 ^-1.8794435262680054 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.9999446272850037 ^0.0 ^-1.732082724571228 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.2854609489440918 ^0.0 ^-1.5321847200393677 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.5320614576339722 ^0.0 ^-1.2856078147888184 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.7319868803024292 ^0.0 ^-1.0001107454299927 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.8793779611587524 ^0.0 ^-0.6840603351593018 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.8000885963439939 ^0.0 ^-0.3644104957580563 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.900099670886993 ^0.0 ^-0.19121180772781354 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.0001107454299922 ^0.0 ^-0.0180131196975708 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.0999390900135038 ^0.0 ^-0.15518556833267216 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.1999335527420039 ^0.0 ^-0.32838425636291513 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.9695969820022583 ^0.0 ^-0.3474012613296509 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.1001218199729914 ^0.0 ^0.15518556833267194 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.2001328945159906 ^0.0 ^0.3283842563629147 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.3001439690589898 ^0.0 ^0.5015829443931574 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.400155043601989 ^0.0 ^0.6747816324234002 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.5001661181449881 ^0.0 ^0.8479803204536429 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.500166118144989 ^0.0 ^0.8479803204536438 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.3001661181449888 ^0.0 ^0.8479803204536438 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.100166118144989 ^0.0 ^0.8479803204536438 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.9001661181449894 ^0.0 ^0.8479803204536438 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.7001661181449892 ^0.0 ^0.8479803204536438 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.500166118144989 ^0.0 ^0.8479803204536438 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.3001661181449893 ^0.0 ^0.8479803204536438 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.10016611814498932 ^0.0 ^0.8479803204536438 0 0 0 0 1
particle minecraft:soul_fire_flame ^0 ^0.0 ^1.75 0 0 0 0 1
particle minecraft:soul_fire_flame ^0 ^0.0 ^1.75 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.09999446272850054 ^0.0 ^1.5768013119697573 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.19998892545700087 ^0.0 ^1.4036026239395145 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.2999833881855012 ^0.0 ^1.2304039359092718 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.3999778509140015 ^0.0 ^1.0572052478790286 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.49997231364250183 ^0.0 ^0.8840065598487854 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.5999667763710024 ^0.0 ^0.7108078718185427 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.6999612390995025 ^0.0 ^0.5376091837882999 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.7999557018280026 ^0.0 ^0.36441049575805673 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.8999501645565031 ^0.0 ^0.19121180772781377 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.9999446272850037 ^0.0 ^0.0180131196975708 0 0 0 0 1
particle minecraft:soul_fire_flame ^0 ^0.0 ^2.0 0 0 0 0 1
particle minecraft:soul_fire_flame ^2.0 ^0.0 ^0.0 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.9696303606033325 ^0.0 ^0.34721243381500244 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.8794435262680054 ^0.0 ^0.6838801503181458 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.732082724571228 ^0.0 ^0.9999446272850037 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.5321847200393677 ^0.0 ^1.2854609489440918 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.2856078147888184 ^0.0 ^1.5320614576339722 0 0 0 0 1
particle minecraft:soul_fire_flame ^1.0001107454299927 ^0.0 ^1.7319868803024292 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.6840603351593018 ^0.0 ^1.8793779611587524 0 0 0 0 1
particle minecraft:soul_fire_flame ^0.3474012613296509 ^0.0 ^1.9695969820022583 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.0999390900135042 ^0.0 ^0.15529099702835136 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.1999335527420045 ^0.0 ^0.32849926948547425 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.2999280154705048 ^0.0 ^0.5017075419425971 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.3999224781990052 ^0.0 ^0.67491581439972 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.4999169409275055 ^0.0 ^0.8481240868568429 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.6998338818550107 ^0.0 ^0.8479803204536438 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.8998338818550107 ^0.0 ^0.8479803204536438 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.0998338818550106 ^0.0 ^0.8479803204536438 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.2998338818550108 ^0.0 ^0.8479803204536438 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.4998338818550108 ^0.0 ^0.8479803204536438 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.5000553727149962 ^0.0 ^0.8840065598487854 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.6000664472579955 ^0.0 ^0.7108078718185427 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.7000775218009947 ^0.0 ^0.5376091837882999 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.8000885963439941 ^0.0 ^0.36441049575805673 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.9000996708869933 ^0.0 ^0.19121180772781377 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.0001107454299927 ^0.0 ^0.0180131196975708 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.6838801503181458 ^0.0 ^1.8794435262680054 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.9999446272850037 ^0.0 ^1.732082724571228 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.2854609489440918 ^0.0 ^1.5321847200393677 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.5320614576339722 ^0.0 ^1.2856078147888184 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.7319868803024292 ^0.0 ^1.0001107454299927 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.8793779611587524 ^0.0 ^0.6840603351593018 0 0 0 0 1
particle minecraft:soul_fire_flame ^-1.9695969820022583 ^0.0 ^0.3474012613296509 0 0 0 0 1
particle minecraft:soul_fire_flame ^-2.0 ^0.0 ^0 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.09983388185501063 ^0.0 ^0.8479803204536438 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.2998338818550108 ^0.0 ^0.8479803204536438 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.49983388185501076 ^0.0 ^0.8479803204536438 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.10001107454299918 ^0.0 ^1.5768013119697573 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.20002214908599836 ^0.0 ^1.4036026239395145 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.30003322362899754 ^0.0 ^1.2304039359092718 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.40004429817199694 ^0.0 ^1.0572052478790286 0 0 0 0 1
particle minecraft:soul_fire_flame ^-0.34721243381500244 ^0.0 ^1.9696303606033325 0 0 0 0 1


text:
#> asset:artifact/0561.solitariness/register
#
# 神器プールへの登録処理
#
# @within tag/function asset:artifact/register

data modify storage asset:artifact RarityRegistry[3] append value 561


text:
#> asset:artifact/0561.solitariness/give/1.trigger
#
# 神器の取得処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:artifact/give

execute if data storage asset:context {id:561} run function asset:artifact/0561.solitariness/give/2.give


text:
#> asset:artifact/0561.solitariness/give/2.give
#
# 神器の作成部 ここでID等を定義する
#
# @user
# @within function asset:artifact/0561.solitariness/give/1.trigger

# 神器の説明や消費MPなどをここで設定する。
# 最後にasset:artifact/common/giveを実行することで入手可能。

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 561
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:chainmail_boots"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '[{"text":"۞","color":"dark_gray"},{"text":"ソリタリネス","color":"gray"},{"text":"۞","color":"dark_gray"}]'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['[{"text":"孤独が唯一の友人だった。"}]']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    # data modify storage asset:artifact RemainingCount set value
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "chest"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "onAttackByMelee"
# 神器の発動条件 (TextComponentString) (オプション)
    data modify storage asset:artifact Condition set value '[{"text":"繋がる総てを身に纏い、蕭然の中に在る"}]'
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.Damage set value 10
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackType set value [Physical]
# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.ElementType set value [None]
# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.BypassResist set value false
# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.IsRangeAttack set value
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.AttackRange set value
# MP消費量 (int)
    data modify storage asset:artifact MPCost set value 5
# MP必要量 (int) (オプション)
    # data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
    # data modify storage asset:artifact LocalCooldown set value
# グローバルクールダウン (int) (オプション)
    # data modify storage asset:artifact SpecialCooldown set value
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableCooldownMessage set value
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableMPMessage set value
# 扱える神 (string[]) Wikiを参照
    data modify storage asset:artifact CanUsedGod set value ["Flora", "Nyaptov", "Wi-ki"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    data modify storage asset:artifact CustomNBT set value {HideFlags:64,Enchantments:[{id:unbreaking,lvl:3},{id:protection,lvl:5}],AttributeModifiers:[{UUID:[I;1,1,561,3],AttributeName:"generic.armor",Name:"armor",Slot:feet,Operation:0,Amount:3},{UUID:[I;1,1,561,3],AttributeName:"generic.max_health",Name:"max_health",Slot:feet,Operation:0,Amount:4},{UUID:[I;1,1,561,3],AttributeName:"generic.movement_speed",Name:"speed",Slot:feet,Operation:1,Amount:0.3}]}

# 神器の入手用function
    function asset:artifact/common/give


text:
#> asset:artifact/0246.magical_cane/register
#
# 神器プールへの登録処理
#
# @within tag/function asset:artifact/register

data modify storage asset:artifact RarityRegistry[4] append value 246


text:
#> asset:artifact/0246.magical_cane/give/1.trigger
#
# 神器の取得処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:artifact/give

execute if data storage asset:context {id:246} run function asset:artifact/0246.magical_cane/give/2.give


text:
#> asset:artifact/0246.magical_cane/give/2.give
#
# 神器の作成部 ここでID等を定義する
#
# @user
# @within function asset:artifact/0246.magical_cane/give/1.trigger

# 神器の説明や消費MPなどをここで設定する。
# 最後にasset:artifact/common/giveを実行することで入手可能。

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 246
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"マジカルステッキ","color":"green"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['[{"text":"MPを全て消費","color":"red"},{"text":"し、","color":"white"},{"text":"超強力","color":"gold"},{"text":"な攻撃をぶちかます。","color":"white"}]','[{"text":"天使に対してはダメージが","color":"white"},{"text":"半減","color":"red"},{"text":"する。","color":"white"}]']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    data modify storage asset:artifact RemainingCount set value 5
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "mainhand"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "onAttackByMelee"
# 神器の発動条件 (TextComponentString) (オプション)
    # data modify storage asset:artifact Condition set value
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.Damage set value "{消費MP×10}"
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackType set value [Magic]
# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.ElementType set value [None]
# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.BypassResist set value
# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.IsRangeAttack set value "never"
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.AttackRange set value
# MP消費量 (int)
    data modify storage asset:artifact MPCost set value 99999
# MP必要量 (int) (オプション)
    data modify storage asset:artifact MPRequire set value 0
# 神器のクールダウン (int) (オプション)
    data modify storage asset:artifact LocalCooldown set value 1200
# グローバルクールダウン (int) (オプション)
    data modify storage asset:artifact SpecialCooldown set value 600
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableCooldownMessage set value
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableMPMessage set value
# 扱える神 (string[]) Wikiを参照
    data modify storage asset:artifact CanUsedGod set value ["Flora", "Nyaptov", "Rumor"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    data modify storage asset:artifact CustomNBT set value {HideFlags:6,AttributeModifiers:[{AttributeName:"generic.attack_damage",Name:"generic.attack_damage",Amount:0,Operation:0,UUID:[I;1325912063,-1346287147,-1646160005,-2144481414],Slot:"mainhand"},{AttributeName:"generic.attack_speed",Name:"generic.attack_speed",Amount:100,Operation:0,UUID:[I;108815412,1284391254,-1801712452,1121514494]}]}

# 神器の入手用function
    function asset:artifact/common/give


text:
#> asset:artifact/0246.magical_cane/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0246.magical_cane/trigger/1.trigger

# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く auto/feet/legs/chest/head/mainhand/offhandを記載してね
    function asset:artifact/common/check_condition/mainhand
# 他にアイテム等確認する場合はここに書く

# CanUsedタグをチェックして3.main.mcfunctionを実行する
    execute if entity @s[tag=CanUsed] run function asset:artifact/0246.magical_cane/trigger/3.main


text:
#> asset:artifact/0246.magical_cane/trigger/3.2.strong_hit
#
# 40~120くらいの消費
#
# @within function asset:artifact/0246.magical_cane/trigger/3.main

    playsound minecraft:entity.evoker.prepare_summon player @a ~ ~ ~ 1 2
    playsound minecraft:entity.zombie.break_wooden_door player @a ~ ~ ~ 1.5 2
    playsound minecraft:block.respawn_anchor.deplete player @a ~ ~ ~ 1.5 2

# 付近のヒットさせた敵にパーティクルを出す
    execute as @e[type=#lib:living,type=!player,tag=Victim,distance=..10] at @s run particle enchanted_hit ~ ~1 ~ 0 0 0 0.5 20
    execute as @e[type=#lib:living,type=!player,tag=Victim,distance=..10] at @s run particle minecraft:dust 0.5 0.75 1 1 ~ ~2 ~ 0.1 1 0.1 0 50


text:
#> asset:artifact/0246.magical_cane/trigger/3.main
#
# 神器のメイン処理部
#
# @within function asset:artifact/0246.magical_cane/trigger/2.check_condition

# ここから先は神器側の効果の処理を書く

# 使用時のMPの数値によって演出がかわるよ
    execute store result score $MagicalCane Temporary run function lib:mp/get
    execute if score $MagicalCane Temporary matches 0..49 run function asset:artifact/0246.magical_cane/trigger/3.1.weak_hit
    execute if score $MagicalCane Temporary matches 50..249 run function asset:artifact/0246.magical_cane/trigger/3.2.strong_hit
    execute if score $MagicalCane Temporary matches 250.. run function asset:artifact/0246.magical_cane/trigger/3.3.hyper_hit

# $MagicalCaneに現在のスコアx10の数値を持たせる
    scoreboard players operation $MagicalCane Temporary *= $10 Const

# ぶん殴ったやつにさっきもたせた数値ぶんの魔法無属性のダメージをぶちかます
    execute store result storage lib: Argument.Damage float 1 run scoreboard players get $MagicalCane Temporary
    data modify storage lib: Argument.AttackType set value "Magic"
    data modify storage lib: Argument.ElementType set value "None"

# 補正実行
    function lib:damage/modifier

# ダメージを受けろ！
    execute as @e[type=#lib:living,type=!player,tag=Victim,distance=..10] run function lib:damage/

# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う auto/feet/legs/chest/head/mainhand/offhandを記載してね
    function asset:artifact/common/use/mainhand

# リセット
    function lib:damage/reset
    scoreboard players reset $MagicalCane Temporary


text:
#> asset:artifact/0246.magical_cane/trigger/3.3.hyper_hit
#
# MP120以上
#
# @within function asset:artifact/0246.magical_cane/trigger/3.main

    playsound minecraft:item.totem.use player @a ~ ~ ~ 1 2
    playsound minecraft:entity.zombie.break_wooden_door player @a ~ ~ ~ 1.5 2
    playsound minecraft:item.trident.thunder player @a ~ ~ ~ 1 2
    playsound minecraft:block.respawn_anchor.deplete player @a ~ ~ ~ 1.5 1

# 付近のヒットさせた敵にパーティクルを出す
    execute as @e[type=#lib:living,type=!player,tag=Victim,distance=..10] at @s run particle firework ~ ~1 ~ 0 0 0 0.2 20
    execute as @e[type=#lib:living,type=!player,tag=Victim,distance=..10] at @s run particle minecraft:end_rod ~ ~2 ~ 0.1 1 0.1 0.01 50


text:
#> asset:artifact/0246.magical_cane/trigger/3.1.weak_hit
#
# MPほぼ消費せずに使った場合
#
# @within function asset:artifact/0246.magical_cane/trigger/3.main

    stopsound @s player minecraft:entity.player.attack.strong
    stopsound @s player minecraft:entity.player.attack.knockback
    stopsound @s player minecraft:entity.player.attack.crit
    playsound minecraft:entity.chicken.egg player @a ~ ~ ~ 2 0.75
    playsound minecraft:block.note_block.xylophone player @a ~ ~ ~ 2 0

# 付近のヒットさせた敵によわそ～なパーティクルを出す
    execute as @e[type=#lib:living,type=!player,tag=Victim,distance=..10] at @s run particle crit ~ ~1 ~ 0 0 0 0.5 10


text:
#> asset:artifact/0246.magical_cane/trigger/1.trigger
#
# 指定したイベントタイミングで実行されるfunction
#
# @within tag/function asset:artifact/**

# storage asset:idのauto/feet/legs/chest/head/mainhand/offhandに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する
    execute if data storage asset:context id{mainhand:246} run function asset:artifact/0246.magical_cane/trigger/2.check_condition


text:
#> asset:artifact/0246.magical_cane/trigger/_index.d
# @private

#> デフォルトのMPスコアなど
# @within function asset:artifact/0246.magical_cane/trigger/**
    #declare score_holder $MagicalCane


text:
#> asset:artifact/0534.all_night_hellmet/register
#
# 神器プールへの登録処理
#
# @within tag/function asset:artifact/register

data modify storage asset:artifact RarityRegistry[1] append value 534


text:
#> asset:artifact/0534.all_night_hellmet/give/1.trigger
#
# 神器の取得処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:artifact/give

execute if data storage asset:context {id:534} run function asset:artifact/0534.all_night_hellmet/give/2.give


text:
#> asset:artifact/0534.all_night_hellmet/give/2.give
#
# 神器の作成部 ここでID等を定義する
#
# @user
# @within function asset:artifact/0534.all_night_hellmet/give/1.trigger

# 神器の説明や消費MPなどをここで設定する。
# 最後にasset:artifact/common/giveを実行することで入手可能。

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 534
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:leather_helmet"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"終夜","color":"dark_purple","bold":true,"underlined":true}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"夜を崇拝する者達の正装だ。","color":"dark_purple"}']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    # data modify storage asset:artifact RemainingCount set value
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "head"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "onAttackByMelee"
# 神器の発動条件 (TextComponentString) (オプション)
    data modify storage asset:artifact Condition set value '{"text":"夜の間、終夜をすべて着ている状態"}'
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.Damage set value [15]
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackType set value [Magic]
# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.ElementType set value [None]
# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.BypassResist set value
# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.IsRangeAttack set value "never"
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.AttackRange set value
# MP消費量 (int)
    data modify storage asset:artifact MPCost set value 0
# MP必要量 (int) (オプション)
    # data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
    # data modify storage asset:artifact LocalCooldown set value
# グローバルクールダウン (int) (オプション)
    # data modify storage asset:artifact SpecialCooldown set value
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableCooldownMessage set value
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableMPMessage set value
# 扱える神 (string[]) Wikiを参照
    data modify storage asset:artifact CanUsedGod set value ["Flora", "Urban", "Nyaptov", "Wi-ki", "Rumor"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    data modify storage asset:artifact CustomNBT set value {display:{color:1050959},HideFlags:64,Enchantments:[{id:"minecraft:protection",lvl:2s},{id:"minecraft:projectile_protection",lvl:3s},{id:"minecraft:unbreaking",lvl:2s}],AttributeModifiers:[{AttributeName:"generic.armor",Name:"generic.armor",Amount:1,Operation:0,UUID:[I;1,1,534,6],Slot:"head"}]}

# 神器の入手用function
    function asset:artifact/common/give


text:
#> asset:artifact/0140.hi_soma/give/1.trigger
#
# 神器の取得処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:artifact/give

execute if data storage asset:context {id:140} run function asset:artifact/0140.hi_soma/give/2.give


text:
#> asset:artifact/0140.hi_soma/give/2.give
#
# 神器の作成部 ここでID等を定義する
#
# @user
# @within function asset:artifact/0140.hi_soma/give/1.trigger

# 神器の説明や消費MPなどをここで設定する。
# 最後にasset:artifact/common/giveを実行することで入手可能。

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 140
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:potion"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"ハイソーマ","color":"aqua"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"HPを15、MPを75回復する"}']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    data modify storage asset:artifact RemainingCount set value 1
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "auto"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "itemUse"
# 神器の発動条件 (TextComponentString) (オプション)
    # data modify storage asset:artifact Condition set value
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.Damage set value [0,0]
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.AttackType set value [Physical,Magic]
# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.ElementType set value [Fire,Water,Thunder,None]
# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.BypassResist set value
# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.IsRangeAttack set value
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.AttackRange set value
# MP消費量 (int)
    data modify storage asset:artifact MPCost set value 0
# MP必要量 (int) (オプション)
    # data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
    # data modify storage asset:artifact LocalCooldown set value
# グローバルクールダウン (int) (オプション)
    # data modify storage asset:artifact SpecialCooldown set value
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableCooldownMessage set value
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableMPMessage set value
# 扱える神 (string[]) Wikiを参照
    data modify storage asset:artifact CanUsedGod set value "ALL"
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    data modify storage asset:artifact CustomNBT set value {CustomPotionColor:697855,HideFlags:32}

# 神器の入手用function
    function asset:artifact/common/give


text:
#> asset:artifact/0140.hi_soma/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0140.hi_soma/trigger/1.trigger

# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く auto/feet/legs/chest/head/mainhand/offhandを記載してね
    function asset:artifact/common/check_condition/auto
# 他にアイテム等確認する場合はここに書く

# CanUsedタグをチェックして3.main.mcfunctionを実行する
    execute if entity @s[tag=CanUsed] run function asset:artifact/0140.hi_soma/trigger/3.main


text:
#> asset:artifact/0140.hi_soma/trigger/3.main
#
# 神器のメイン処理部
#
# @within function asset:artifact/0140.hi_soma/trigger/2.check_condition

#> private
# @private
    #declare score_holder $Fluctuation

# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う auto/feet/legs/chest/head/mainhand/offhandを記載してね
    function asset:artifact/common/use/auto

# ここから先は神器側の効果の処理を書く

# 演出
    particle minecraft:composter ~ ~1 ~ 0.5 0.5 0.5 1 20 force @s
    particle minecraft:heart ~ ~0.5 ~ 0.3 0.5 0.3 1 5 force @s
    playsound minecraft:entity.arrow.hit_player player @s ~ ~ ~ 1 1

# MP回復
    scoreboard players set $Fluctuation Lib 75
    function lib:mp/fluctuation

# HP回復
    data modify storage lib: Argument.Heal set value 15
    function lib:heal/modifier
    function lib:heal/

# リセット
    function lib:heal/reset


text:
#> asset:artifact/0140.hi_soma/trigger/1.trigger
#
# 指定したイベントタイミングで実行されるfunction
#
# @within tag/function asset:artifact/**

# storage asset:idのauto/feet/legs/chest/head/mainhand/offhandに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する
    execute if data storage asset:context id{auto:140} run function asset:artifact/0140.hi_soma/trigger/2.check_condition


text:
#> asset:artifact/0079.shoot_down_a_flying_dragon/register
#
# 神器プールへの登録処理
#
# @within tag/function asset:artifact/register

data modify storage asset:artifact RarityRegistry[2] append value 79


text:
#> asset:artifact/0079.shoot_down_a_flying_dragon/give/1.trigger
#
# 神器の取得処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:artifact/give

execute if data storage asset:context {id:79} run function asset:artifact/0079.shoot_down_a_flying_dragon/give/2.give


text:
#> asset:artifact/0079.shoot_down_a_flying_dragon/give/2.give
#
# 神器の作成部 ここでID等を定義する
#
# @user
# @within function asset:artifact/0079.shoot_down_a_flying_dragon/give/1.trigger

# 神器の説明や消費MPなどをここで設定する。
# 最後にasset:artifact/common/giveを実行することで入手可能。

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 79
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '[{"text":"flying","color":"black","obfuscated":true},{"text":"- 飛竜落としの術 -","color":"yellow","obfuscated":false,"bold":true},{"text":"dragon","color":"black","obfuscated":true,"bold":false}]'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['[{"text":"嘗て天を翔け世界を波乱に貶めた"}]','[{"text":"龍を討ち落としたとされる神器"}]']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    data modify storage asset:artifact RemainingCount set value 50
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "auto"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "onClick"
# 神器の発動条件 (TextComponentString) (オプション)
    data modify storage asset:artifact Condition set value '{"text":"敵が範囲内にいる時"}'
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.Damage set value [160,270]
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackType set value [Magic]
# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.ElementType set value [Thunder]
# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.BypassResist set value
# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.IsRangeAttack set value "condition"
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackRange set value 10
# MP消費量 (int)
    data modify storage asset:artifact MPCost set value 35
# MP必要量 (int) (オプション)
    # data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
    data modify storage asset:artifact LocalCooldown set value 60
# グローバルクールダウン (int) (オプション)
    # data modify storage asset:artifact SpecialCooldown set value
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableCooldownMessage set value
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableMPMessage set value
# 扱える神 (string[]) Wikiを参照
    data modify storage asset:artifact CanUsedGod set value ["Flora", "Nyaptov", "Wi-ki", "Rumor"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

# 神器の入手用function
    function asset:artifact/common/give


text:
#> asset:artifact/0079.shoot_down_a_flying_dragon/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0079.shoot_down_a_flying_dragon/trigger/1.trigger

# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く auto/feet/legs/chest/head/mainhand/offhandを記載してね
    function asset:artifact/common/check_condition/auto
# 他にアイテム等確認する場合はここに書く
    execute unless entity @e[type=#lib:living,type=!player,tag=Enemy,tag=!Uninterferable,distance=..10] run tag @s remove CanUsed
# CanUsedタグをチェックして3.main.mcfunctionを実行する
    execute if entity @s[tag=CanUsed] run function asset:artifact/0079.shoot_down_a_flying_dragon/trigger/3.main