text:
#> asset:artifact/0278.reveille/trigger/3.2.play_reveille
#
# 演奏処理を行う
#
# @within function asset:artifact/0278.reveille/trigger/3.1.play_manager

execute if score $Timeline 7Q.Timeline matches 8 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.707107 1
execute if score $Timeline 7Q.Timeline matches 16 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.707107 1
execute if score $Timeline 7Q.Timeline matches 20 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.529732 1
execute if score $Timeline 7Q.Timeline matches 28 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.707107 1
execute if score $Timeline 7Q.Timeline matches 32 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.890899 1
execute if score $Timeline 7Q.Timeline matches 40 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.890899 1
execute if score $Timeline 7Q.Timeline matches 44 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.707107 1
execute if score $Timeline 7Q.Timeline matches 52 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.890899 1
execute if score $Timeline 7Q.Timeline matches 56 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 1.059463 1
execute if score $Timeline 7Q.Timeline matches 64 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 1.059463 1
execute if score $Timeline 7Q.Timeline matches 68 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.890899 1
execute if score $Timeline 7Q.Timeline matches 76 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.707107 1
execute if score $Timeline 7Q.Timeline matches 80 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.529732 1
execute if score $Timeline 7Q.Timeline matches 88 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.529732 1
execute if score $Timeline 7Q.Timeline matches 92 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.529732 1
execute if score $Timeline 7Q.Timeline matches 104 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.707107 1
execute if score $Timeline 7Q.Timeline matches 112 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.707107 1
execute if score $Timeline 7Q.Timeline matches 116 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.529732 1
execute if score $Timeline 7Q.Timeline matches 124 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.707107 1
execute if score $Timeline 7Q.Timeline matches 128 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.890899 1
execute if score $Timeline 7Q.Timeline matches 136 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.890899 1
execute if score $Timeline 7Q.Timeline matches 140 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.707107 1
execute if score $Timeline 7Q.Timeline matches 148 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.890899 1
execute if score $Timeline 7Q.Timeline matches 152 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.529732 1
execute if score $Timeline 7Q.Timeline matches 160 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.529732 1
execute if score $Timeline 7Q.Timeline matches 164 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.707107 1
execute if score $Timeline 7Q.Timeline matches 172 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 0.890899 1
execute if score $Timeline 7Q.Timeline matches 176 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 1.059463 1
execute if score $Timeline 7Q.Timeline matches 184 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 1.059463 1
execute if score $Timeline 7Q.Timeline matches 188 run playsound minecraft:block.note_block.pling player @a ~ ~ ~ 1 1.059463 1


text:
#> asset:artifact/0278.reveille/trigger/3.1.play_manager
#
# 現在の演奏タイムラインを取得、タイムラインに応じて
#
# @within
#   function asset:artifact/0278.reveille/trigger/3.main
#   function asset:artifact/0278.reveille/trigger/3.1.play_manager

# 現在のタイムライン(AECのAge)を取得
scoreboard players add $Timeline 7Q.Timeline 1

# Durationが200以下だったら演奏function実行
execute if score $Timeline 7Q.Timeline matches 0..200 run function asset:artifact/0278.reveille/trigger/3.2.play_reveille

# Durationが200だったら朝にする
execute if score $Timeline 7Q.Timeline matches 200.. run function asset:artifact/0278.reveille/trigger/3.3.set_morning

# 次tickのmanager実行予約
execute if score $Timeline 7Q.Timeline matches 0..200 run schedule function asset:artifact/0278.reveille/trigger/3.1.play_manager 1t

repo_name: ProjectTSB/TheSkyBlessing

repo_language: mcfunction

mime_type: text/plain


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

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

# ここから先は神器側の効果の処理を書く
    scoreboard players set $Timeline 7Q.Timeline 0
    schedule function asset:artifact/0278.reveille/trigger/3.1.play_manager 1t


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

#> 定義類はここに
# @within function asset:artifact/0278.reveille/trigger/**
    scoreboard objectives add 7Q.Timeline dummy


text:
#> asset:artifact/0278.reveille/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:278} run function asset:artifact/0278.reveille/trigger/2.check_condition


text:
#> asset:artifact/0278.reveille/trigger/3.3.set_morning
#
# 朝にする
#
# @within function asset:artifact/0278.reveille/trigger/3.1.play_manager

# 朝にする
    time set day

# 音
    playsound ogg:random.levelup player @a ~ ~ ~ 1 1 1

# scoreリセット
    scoreboard players reset $Timeline 7Q.Timeline


text:
#> asset:artifact/0278.reveille/trigger/_index.d
# @private
#
#> tag
# @within function
#   asset:artifact/0278.reveille/trigger/**
    #declare score_holder $Timeline


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

execute if data storage asset:context {id:1016} run function asset:artifact/1016.sharpened_netherite_sword/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 1016
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"研がれたネザライトの剣","color":"white"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"神々の砥石で研がれたその剣は","color":"gray"}','{"text":"邪悪な敵に立ち向かうのに、十分なほどの鋭さを持つ。","color":"gray"}']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    data modify storage asset:artifact RemainingCount set value 80
# 神器を発動できるスロット (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 [500]
# 攻撃に関する情報 -攻撃タイプ (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
# 攻撃に関する情報 -範囲攻撃 (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 15
# グローバルクールダウン (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/1016.sharpened_netherite_sword/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/1016.sharpened_netherite_sword/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/1016.sharpened_netherite_sword/trigger/3.main


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

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

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

# 演出
    playsound entity.player.attack.sweep player @a ~ ~ ~ 0.8 1 0

# ダメージ
    data modify storage lib: Argument.Damage set value 500.0f
    data modify storage lib: Argument.AttackType set value "Physical"
    function lib:damage/modifier
    execute as @e[type=#lib:living,tag=Victim,distance=..6] run function lib:damage/
    function lib:damage/reset


text:
#> asset:artifact/1016.sharpened_netherite_sword/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:1016} run function asset:artifact/1016.sharpened_netherite_sword/trigger/2.check_condition


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

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


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

execute if data storage asset:context {id:898} run function asset:artifact/0898.gale_pendant/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 898
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"疾風のペンダント","color":"aqua"}'
# 神器の説明文 (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 "hotbar"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "equipping"
# 神器の発動条件 (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 ["Flora", "Nyaptov"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    data modify storage asset:artifact CustomNBT set value {Enchantments:[{}]}

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


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

# 神器IDの設定
    data modify storage asset:artifact TargetID set value 898
# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く
    function asset:artifact/common/check_condition/hotbar
# CanUsedタグをチェックして3.main.mcfunctionを実行する
    execute if entity @s[tag=CanUsed] run function asset:artifact/0898.gale_pendant/trigger/3.main


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

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

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

# VFX
    playsound block.beacon.activate player @a ~ ~ ~ 1 1.3
    particle dust 0.2 0.9 10000000 0.7 ~ ~1 ~ 0.5 0.8 0.5 1 100
# 補正を追加
    function asset:artifact/0898.gale_pendant/trigger/add_modifier


text:
#> asset:artifact/0898.gale_pendant/trigger/1.trigger
#
# 指定したイベントタイミングで実行されるfunction
# ここで自身の神器が判定をしてmain処理を呼び出す
#
# @within tag/function asset:artifact/**

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


text:
#> asset:artifact/0898.gale_pendant/trigger/add_modifier
#
#
#
# @within function asset:artifact/0898.gale_pendant/trigger/**main

#> 個数
# @private
#declare score_holder $Count

# 補正を削除
    attribute @s generic.movement_speed modifier remove 1-0-1-0-38200000007
# 個数を取得
    execute store result score $Count Temporary if data storage asset:context New.Items.hotbar[{tag:{TSB:{ID:898}}}]
# 速度増加を付与する
    execute if score $Count Temporary matches 1 run attribute @s generic.movement_speed modifier add 1-0-1-0-38200000007 "898" 0.2 multiply_base
    execute if score $Count Temporary matches 2 run attribute @s generic.movement_speed modifier add 1-0-1-0-38200000007 "898" 0.4 multiply_base
    execute if score $Count Temporary matches 3 run attribute @s generic.movement_speed modifier add 1-0-1-0-38200000007 "898" 0.6 multiply_base
    execute if score $Count Temporary matches 4 run attribute @s generic.movement_speed modifier add 1-0-1-0-38200000007 "898" 0.8 multiply_base
    execute if score $Count Temporary matches 5 run attribute @s generic.movement_speed modifier add 1-0-1-0-38200000007 "898" 1.0 multiply_base
    execute if score $Count Temporary matches 6 run attribute @s generic.movement_speed modifier add 1-0-1-0-38200000007 "898" 1.2 multiply_base
    execute if score $Count Temporary matches 7 run attribute @s generic.movement_speed modifier add 1-0-1-0-38200000007 "898" 1.4 multiply_base
    execute if score $Count Temporary matches 8 run attribute @s generic.movement_speed modifier add 1-0-1-0-38200000007 "898" 1.6 multiply_base
    execute if score $Count Temporary matches 9 run attribute @s generic.movement_speed modifier add 1-0-1-0-38200000007 "898" 1.8 multiply_base

# リセット
    scoreboard players reset $Count Temporary


text:
#> asset:artifact/0898.gale_pendant/trigger/dis_equip/main
#
# 装備を外した時のメイン処理
#
# @within function asset:artifact/0898.gale_pendant/trigger/dis_equip/

# 補正を削除
    attribute @s generic.movement_speed modifier remove 1-0-1-0-38200000007
# 補正を追加
    execute unless entity @s[tag=!DevPrivilege,predicate=!player_manager:is_believe/flora,predicate=!player_manager:is_believe/nyaptov] run function asset:artifact/0898.gale_pendant/trigger/add_modifier


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

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


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

execute if data storage asset:context {id:959} run function asset:artifact/0959.whirlwind_scabbard/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 959
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"旋風の鞘","color":"#7DFF9B"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"刀ではなく旋風を収めている鞘","color":"#B0FFC5"}','{"text":"その旋風を抜いた時、前を塞ぐ者を吹き飛ばす。","color":"#B0FFC5"}','{"text":"多く携えるほど旋風は勢いを増す。","color":"#B0FFC5"}']
# 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 "hotbar"
# 神器のトリガー (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 [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 5
# MP必要量 (int) (オプション)
    # data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
    data modify storage asset:artifact LocalCooldown set value 5
# グローバルクールダウン (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 ["Flora", "Urban", "Nyaptov", "Rumor"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

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


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

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

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


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

#> score_holder
# @private
    #declare score_holder $Base
    #declare score_holder $Count
    #declare score_holder $Multi

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

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

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

# 個数を取得
    execute store result score $Count Temporary if data storage asset:context Items.hotbar[{tag:{TSB:{ID:959}}}]

# motionの値の最低値
    scoreboard players set $Base Temporary 140

# 複数個ある場合の追加する値 (X=40×Count)
    execute if score $Count Temporary matches 2.. store result score $Multi Temporary run scoreboard players operation $Count Temporary *= $40 Const

# 合算する
    execute store result storage lib: Argument.VectorMagnitude float 0.01 run scoreboard players operation $Base Temporary += $Multi Temporary

# 対象が天使の場合、本来の値の20%にする
    execute if entity @e[type=#lib:living,type=!player,tag=Victim,tag=Enemy.Boss,distance=..6] store result storage lib: Argument.VectorMagnitude float 0.002 run scoreboard players get $Base Temporary

# motionLibの実行
    data modify storage lib: Argument.KnockbackResist set value 1b
    execute as @e[type=#lib:living,type=!player,tag=Victim,distance=..6] at @s rotated as @p[tag=this,distance=..6] rotated ~ -12 run function lib:motion/

# リセット
    scoreboard players reset $Base Temporary
    scoreboard players reset $Count Temporary
    scoreboard players reset $Multi Temporary
    data remove storage lib: Argument


text:
#> asset:artifact/0959.whirlwind_scabbard/trigger/vfx
#
# 攻撃時の演出
#
# @within function asset:artifact/0959.whirlwind_scabbard/trigger/3.main

# 演出
    particle cloud ~ ~1.2 ~ 0.4 0.4 0.4 0.3 15 normal @a
    particle sneeze ~ ~1.2 ~ 0.4 0.4 0.4 0.3 15 normal @a
    playsound entity.wither.shoot player @a ~ ~ ~ 0.2 2 0
    playsound entity.wither.shoot player @a ~ ~ ~ 0.2 1.6 0
    playsound entity.wither.shoot player @a ~ ~ ~ 0.2 1.4 0
    playsound entity.wither.shoot player @a ~ ~ ~ 0.2 1.2 0
    playsound entity.player.attack.sweep player @a ~ ~ ~ 0.5 1 0


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

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


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

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


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

execute if data storage asset:context {id:609} run function asset:artifact/0609.lunar_flare/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 609
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"ルナフレア","color":"#e10643"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"狙った箇所に魔法弾の雨を降らす。","color":"white","color":"white","italic":false}','{"text":"\\"月の裁き\\"","color":"gray","italic":false}']
# 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 ["80-100×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 "every"
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackRange set value 20
# MP消費量 (int)
    data modify storage asset:artifact MPCost set value 20
# 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 1b
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableMPMessage set value
# 扱える神 (string[]) Wikiを参照
    data modify storage asset:artifact CanUsedGod set value ["Nyaptov", "Wi-ki"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

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


text:
#> asset:artifact/0609.lunar_flare/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0609.lunar_flare/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/0609.lunar_flare/trigger/3.main


text:
#> asset:artifact/0609.lunar_flare/trigger/find_target_entity
#
# 視点先みるやつ
#
# @within function asset:artifact/0609.lunar_flare/trigger/3.main
# @within function asset:artifact/0609.lunar_flare/trigger/find_target_entity

# 地形にぶつかったとき
    execute unless entity @s[tag=GX.RecursiveEnd] unless block ^ ^ ^1 #lib:no_collision run function asset:artifact/0609.lunar_flare/trigger/summon_laser_pos

# 限界距離なら
    execute unless entity @s[tag=GX.RecursiveEnd] unless entity @s[distance=..20] run function asset:artifact/0609.lunar_flare/trigger/summon_laser_pos

# 敵にぶつかったとき
    execute unless entity @s[tag=GX.RecursiveEnd] positioned ~-0.5 ~-0.5 ~-0.5 at @e[type=#lib:living,type=!player,tag=!Object,tag=!Uninterferable,tag=!Projectile,tag=!Npc,dx=0,dy=0,dz=0,limit=1] run function asset:artifact/0609.lunar_flare/trigger/summon_laser_pos

# 再帰
    execute unless entity @s[tag=GX.RecursiveEnd] positioned ^ ^ ^0.15 if entity @s[distance=..25] if block ~ ~ ~ #lib:no_collision run function asset:artifact/0609.lunar_flare/trigger/find_target_entity


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

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

# 視点先検知
    execute anchored eyes positioned ^ ^ ^ run function asset:artifact/0609.lunar_flare/trigger/find_target_entity

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

# VFX
    playsound minecraft:block.fire.ambient player @a ~ ~ ~ 1 2
    playsound minecraft:entity.blaze.shoot player @a ~ ~ ~ 1 1.7
    playsound minecraft:block.amethyst_cluster.break player @a ~ ~ ~ 1 2
    playsound minecraft:block.amethyst_cluster.break player @a ~ ~ ~ 1 1.5

# スコアと同じ時間レーザーが降ってくる
    scoreboard players set @e[type=marker,tag=GX.LaserPosFirst] GX.BeamTime 10

# ユーザーIDを入れる
    scoreboard players operation @e[type=marker,tag=GX.LaserPosFirst,sort=nearest,limit=1] GX.UserID = @s UserID
    tag @e[type=marker,tag=GX.LaserPosFirst,sort=nearest,limit=1] remove GX.LaserPosFirst

# タグを消す
    tag @s[tag=GX.RecursiveEnd] remove GX.RecursiveEnd

# ファンクション分岐
    schedule function asset:artifact/0609.lunar_flare/trigger/projectile/laser_pos_main 1t


text:
#> asset:artifact/0609.lunar_flare/trigger/summon_laser_pos
#
#
#
# @within function asset:artifact/0609.lunar_flare/trigger/find_target_entity

# レーザー照射位置
    summon marker ~ ~ ~ {Tags:["GX.LaserPos","GX.LaserPosFirst","Projectile"]}

# タグ付与
    tag @s add GX.RecursiveEnd


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

#> 定義類はここに
# @within function asset:artifact/0609.lunar_flare/trigger/**
    scoreboard objectives add GX.BeamTime dummy
    scoreboard objectives add GX.BulletTime dummy
    scoreboard objectives add GX.UserID dummy


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

# 次tickも実行
    execute as @e[type=marker,tag=GX.LaserPos,scores={GX.BeamTime=1..}] run schedule function asset:artifact/0609.lunar_flare/trigger/projectile/laser_pos_main 1t replace


text:
#> asset:artifact/0609.lunar_flare/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:609} run function asset:artifact/0609.lunar_flare/trigger/2.check_condition


text:
#> asset:artifact/0609.lunar_flare/trigger/_index.d
# @private

#> Private
# @within asset:artifact/0609.lunar_flare/trigger/**
    #declare tag GX.First
    #declare tag GX.This
    #declare tag GX.RecursiveEnd
    #declare tag Landing
    #declare tag LandingTarget
    #declare tag Watcher
    #declare tag GX.Laser
    #declare tag GX.LaserPos
    #declare tag GX.LaserPosFirst
    #declare tag CanUsed


text:
#> asset:artifact/0609.lunar_flare/trigger/projectile/laser_pos_main
#
# ビーム部
#
# @within function
#    asset:artifact/0609.lunar_flare/trigger/3.main
#    asset:artifact/0609.lunar_flare/trigger/projectile/laser_pos_main
#    asset:artifact/0609.lunar_flare/trigger/rejoin_process

# またファンクション分岐
    execute as @e[type=marker,tag=GX.LaserPos,scores={GX.BeamTime=1..}] at @s rotated ~ 90 run function asset:artifact/0609.lunar_flare/trigger/projectile/summon_laser

# スコアをへらす
    scoreboard players remove @e[type=marker,tag=GX.LaserPos,scores={GX.BeamTime=1..}] GX.BeamTime 1

# 一定時間で消す
    kill @e[type=marker,tag=GX.LaserPos,scores={GX.BeamTime=0}]

# 次tickも実行
    execute if entity @e[type=marker,tag=GX.LaserPos,scores={GX.BeamTime=1..},limit=1] run schedule function asset:artifact/0609.lunar_flare/trigger/projectile/laser_pos_main 1t replace


text:
#> asset:artifact/0609.lunar_flare/trigger/projectile/summon_laser
#
# ビーム部
#
# @within function
#    asset:artifact/0609.lunar_flare/trigger/projectile/laser_pos_main

#> SpreadLib
# @private
#declare tag SpreadMarker

# 前方拡散設定
    summon marker ~ ~ ~ {Tags:["SpreadMarker"]}
    data modify storage lib: Argument.Distance set value 5.0
    data modify storage lib: Argument.Spread set value 3

# 前方拡散を実行する
    execute as @e[type=marker,tag=SpreadMarker] run function lib:forward_spreader/circle

# ビームを飛ばす
    # 判定用アマスタ召喚
        summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Tags:["GX.Laser","GX.First","Projectile"]}
    # ユーザーIDを適応
        scoreboard players operation @e[type=armor_stand,tag=GX.First] GX.UserID = @s GX.UserID
    # 分散させる。着弾点がまとまる
        execute facing entity @e[type=marker,tag=SpreadMarker,limit=1] feet run tp @e[type=armor_stand,tag=GX.First] ^ ^ ^-17.2 ~ ~
    # タグを消す
        tag @e[type=armor_stand,tag=GX.First] remove GX.First

# 前方拡散を消す
    kill @e[type=marker,tag=SpreadMarker]

# Scheduleで実行。重複しないようにしてる。
    schedule function asset:artifact/0609.lunar_flare/trigger/projectile/beamloop 1t replace


text:
#> asset:artifact/0609.lunar_flare/trigger/projectile/beamloop
#
# ビーム部
#
# @within function asset:artifact/0609.lunar_flare/trigger/**

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

# 2回実行して早くする
    function asset:artifact/0609.lunar_flare/trigger/projectile/beam
    function asset:artifact/0609.lunar_flare/trigger/projectile/beam

# 再帰
    execute if entity @e[tag=GX.Laser] run schedule function asset:artifact/0609.lunar_flare/trigger/projectile/beamloop 1t replace


text:
#> asset:artifact/0609.lunar_flare/trigger/projectile/hit
#
# ビーム部
#
# @within function asset:artifact/0609.lunar_flare/trigger/**

# 演出
    particle minecraft:dust 0 0.8 0.8 1 ~ ~-0.5 ~ 1.0 1.0 1.0 0 10 force @a[distance=..30]
    particle minecraft:dust 0 0.8 0.6 0.8 ~ ~-0.5 ~ 1.0 1.0 1.0 0 10 force @a[distance=..30]
    particle glow ~ ~-0.5 ~ 0.8 0.8 0.8 0 5 force @a[distance=..30]
    particle explosion ~ ~-0.5 ~ 0.5 0.2 0.5 0 1 force @a[distance=..30]
    playsound minecraft:entity.blaze.shoot neutral @a ~ ~ ~ 2 1.5
    playsound minecraft:entity.glow_squid.ambient neutral @a ~ ~ ~ 2 1.5

# タグ付与
    tag @s add GX.This

# ダメージ設定
    #ダメージブレのための処理
        # 疑似乱数取得
            execute store result score $RandomDamage Temporary run function lib:random/
        # 剰余算する。追加ダメージが発生。
          scoreboard players operation $RandomDamage Temporary %= $21 Const
        # 最低ダメージ設定
            scoreboard players add $RandomDamage Temporary 80

    # 属性
        data modify storage lib: Argument.AttackType set value "Magic"
        data modify storage lib: Argument.ElementType set value "None"

    #ダメージセット
        execute store result storage lib: Argument.Damage float 1 run scoreboard players get $RandomDamage Temporary

    # ダメージ 原作再現と他のエイム武器との差別化を兼ねて範囲攻撃
        execute as @a if score @s UserID = @e[type=armor_stand,tag=GX.This,distance=..1,limit=1] GX.UserID run function lib:damage/modifier
        execute positioned ~-0.5 ~-0.5 ~-0.5 at @e[type=#lib:living,type=!player,tag=!Uninterferable,dx=0] as @e[type=#lib:living,type=!player,tag=!Uninterferable,distance=..2.5] run function lib:damage/
        execute positioned ~-0.5 ~-0.5 ~-0.5 unless entity @e[type=#lib:living,type=!player,tag=!Uninterferable,dx=0] positioned ~0.5 ~0.5 ~0.5 as @e[type=#lib:living,type=!player,tag=!Uninterferable,distance=..2.5] run function lib:damage/

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


text:
#> asset:artifact/0609.lunar_flare/trigger/projectile/particle
#
#
#
# @within function asset:artifact/0609.lunar_flare/trigger/projectile/beam

particle minecraft:dust 0 0.8 0.8 0.8 ^ ^ ^ 0 0 0 0 1 force @a[distance=..30]
particle minecraft:dust 0 0.8 0.6 0.6 ^ ^ ^ 0 0 0 0 1 force @a[distance=..30]

particle minecraft:dust 0 0.8 0.8 0.8 ^ ^ ^0.5 0 0 0 0 1 force @a[distance=..30]
particle minecraft:dust 0 0.8 0.6 0.6 ^ ^ ^0.5 0 0 0 0 1 force @a[distance=..30]
particle glow ^ ^ ^0.5 0 0 0 0 1 force @a[distance=..30]


text:
#> asset:artifact/0609.lunar_flare/trigger/projectile/beam
#
# ビーム部
#
# @within function asset:artifact/0609.lunar_flare/trigger/**

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

# 進ませる
    execute as @e[tag=GX.Laser] at @s run tp @s ^ ^ ^1
    execute as @e[tag=GX.Laser] at @s run function asset:artifact/0609.lunar_flare/trigger/projectile/particle

# 攻撃する
    execute as @e[tag=GX.Laser] at @s positioned ~-0.5 ~-0.5 ~-0.5 if entity @e[type=#lib:living,type=!player,tag=!Uninterferable,dx=0] positioned ~0.5 ~0.5 ~0.5 run function asset:artifact/0609.lunar_flare/trigger/projectile/hit
    execute as @e[tag=GX.Laser,scores={GX.BulletTime=16}] at @s run function asset:artifact/0609.lunar_flare/trigger/projectile/hit

# スコアを与えて一定時間で殺す
    kill @e[tag=GX.Laser,scores={GX.BulletTime=16}]
    scoreboard players add @e[tag=GX.Laser] GX.BulletTime 1


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

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


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

execute if data storage asset:context {id:3} run function asset:artifact/0003.humanity/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 3
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:beetroot"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"人間性","color":"white"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"－人間性を捧げよ－", "bold":true, "color":"white"}', '{"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 "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 ["Flora", "Urban", "Nyaptov", "Wi-ki", "Rumor"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

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


text:
#> asset:artifact/0003.humanity/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0003.humanity/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/0003.humanity/trigger/3.main


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

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

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

# 10%の確率で死亡
    scoreboard players set @s Temporary 0
    execute if predicate lib:random_pass_per/10 run scoreboard players set @s Temporary 1

# 演出 共通
    title @a times 20 20 20
    particle portal ~ ~ ~ 0 0 0 2 250 force @a

# 演出 回復時
    execute if score @s Temporary matches 0 run title @a title {"text":"HUMANITY RESTORED","color":"dark_aqua"}
    execute if score @s Temporary matches 0 run playsound block.enchantment_table.use player @s ~ ~ ~ 1 0 1

# 演出 死亡時
    execute if score @s Temporary matches 1 run title @a title {"text":"YOU DIED","color":"red"}
    execute if score @s Temporary matches 1 run playsound block.beacon.power_select player @s ~ ~ ~ 1 0 1

# 回復処理
    execute if score @s Temporary matches 0 run data modify storage lib: Argument.Heal set value 10000f
    execute if score @s Temporary matches 0 run function lib:heal/modifier
    execute if score @s Temporary matches 0 run function lib:heal/

# 死亡処理
    execute if score @s Temporary matches 1 run kill

# リセット
    execute if score @s Temporary matches 0 run function lib:heal/reset
    scoreboard players reset @s Temporary


text:
#> asset:artifact/0003.humanity/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:3} run function asset:artifact/0003.humanity/trigger/2.check_condition


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

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


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

execute if data storage asset:context {id:333} run function asset:artifact/0333.koukisin/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 333
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '[{"text":"鋼","color":"gray"},{"text":"鬼","color":"red"},{"text":"針","color":"gray"}]'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"鬼の伝承に語られる武器のひとつ","color":"white"}','{"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 "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 [28]
# 攻撃に関する情報 -攻撃タイプ (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 1b
# 攻撃に関する情報 -範囲攻撃 (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 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 ["Urban", "Rumor"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

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


text:
#> asset:artifact/0333.koukisin/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0333.koukisin/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/0333.koukisin/trigger/3.main


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

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

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

# 演出
    execute as @e[type=#lib:living,type=!player,tag=Victim,distance=..150] run particle minecraft:crit ~ ~1 ~ 0.2 0.8 0.2 0 80 normal @a[distance=..30]
    playsound minecraft:block.anvil.place player @a[distance=..10] ~ ~ ~ 0.8 2

# ダメージ
    # 与えるダメージ = 28
        data modify storage lib: Argument.Damage set value 28f
    # 物理属性
        data modify storage lib: Argument.AttackType set value "Physical"
    # 属性耐性・防御力/防具強度・耐性エフェクトを無視するか否か
        data modify storage lib: Argument.FixedDamage set value true
# 攻撃した対象に実行
    execute as @e[type=#lib:living,type=!player,tag=Victim,tag=!Uninterferable,distance=..10,limit=1] run function lib:damage/
# リセット
    function lib:damage/reset


text:
#> asset:artifact/0333.koukisin/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:333} run function asset:artifact/0333.koukisin/trigger/2.check_condition


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

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


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

execute if data storage asset:context {id:249} run function asset:artifact/0249.wakinyan/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 249
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:bow"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '[{"text":"雷翔","color":"yellow"},{"text":"-Wakinyan-","color":"gold"}]'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['[{"text":"Wakinyan -ワキンヤン-"}]','[{"text":"インディアンの間に古来より伝わる神鳥である"}]','[{"text":"雷の精霊の力で自在に雷を放つと云われる"}]']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    data modify storage asset:artifact RemainingCount set value 30
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "mainhand"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "onAttackByProjectile"
# 神器の発動条件 (TextComponentString) (オプション)
    # data modify storage asset:artifact Condition set value
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.Damage set value [120,240]
# 攻撃に関する情報 -攻撃タイプ (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 "never"
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.AttackRange set value
# 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
# グローバルクールダウン (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", "Rumor"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    data modify storage asset:artifact CustomNBT set value {Unbreakable:1b,HideFlags:63}

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


text:
#> asset:artifact/0249.wakinyan/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0249.wakinyan/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/0249.wakinyan/trigger/3.main


text:
#> asset:artifact/0249.wakinyan/trigger/3.main
#
# 神器のメイン処理部
#
# @within function asset:artifact/0249.wakinyan/trigger/2.check_condition
#> private
# @private
    #declare tag Hit

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

# ここから先は神器側の効果の処理を書く
    # 対象選定 + クリティカル判定(周囲が水か)
        execute as @e[type=#lib:living,type=!player,tag=Victim,distance=..100] run tag @s add Hit
        # //ここで相手の周囲の水の量を@sのTemporaryにstore
        execute at @e[type=#lib:living,type=!player,tag=Victim,tag=Hit,distance=..100,limit=1] store result score @s Temporary run clone ~-0.5 ~-0.5 ~-0.5 ~0.5 ~0.5 ~0.5 ~-0.5 ~-0.5 ~-0.5 filtered water force

        # //ここから@sのTemporaryは強さ指数に変化(0..3)
        # //相手が水に浸かってたら(Temporaryが1..)指数が1に変更
        execute if score @s Temporary matches 1.. run scoreboard players set @s Temporary 1
        # //天気が雨だったら指数1追加
        execute unless predicate lib:weather/is_sunny run scoreboard players add @s Temporary 1
        # //天気が雷だったら更に1追加
        execute if predicate lib:weather/is_thundering run scoreboard players add @s Temporary 1

    # 演出
        execute at @e[type=#lib:living,type=!player,tag=Victim,tag=Hit,distance=..100,limit=1] run particle dust 0 0 0 1 ~ ~4 ~ 0.01 4.5 0.01 0 100 force @a
        execute if score @s Temporary matches 0 at @e[type=#lib:living,type=!player,tag=Victim,tag=Hit,distance=..100,limit=1] run particle dust 1 1 0 1 ~ ~4 ~ 0.01 4.5 0.01 0 100 force @a
        execute if score @s Temporary matches 1 at @e[type=#lib:living,type=!player,tag=Victim,tag=Hit,distance=..100,limit=1] run particle dust 1 0.6 0 1 ~ ~4 ~ 0.01 4.5 0.01 0 100 force @a
        execute if score @s Temporary matches 2 at @e[type=#lib:living,type=!player,tag=Victim,tag=Hit,distance=..100,limit=1] run particle dust 1 0 0 1 ~ ~4 ~ 0.01 4.5 0.01 0 100 force @a
        execute if score @s Temporary matches 3 at @e[type=#lib:living,type=!player,tag=Victim,tag=Hit,distance=..100,limit=1] run particle dust 1 0 1 1 ~ ~4 ~ 0.01 4.5 0.01 0 100 force @a
        execute at @e[type=#lib:living,type=!player,tag=Victim,tag=Hit,distance=..100,limit=1] run playsound entity.lightning_bolt.thunder player @a[distance=..100] ~ ~ ~ 3 2 0
        execute at @e[type=#lib:living,type=!player,tag=Victim,tag=Hit,distance=..100,limit=1] run playsound entity.lightning_bolt.thunder player @a[distance=..100] ~ ~ ~ 3 2 0
        # execute at @e[type=#lib:living,tag=Hit,distance=..100,limit=1] run summon lightning_bolt ~ ~ ~ {damage:0.001d,CustomName:'[{"text": "雷鳥の囃子","color":"yellow"}]'}
    # だめーーじ
        data merge storage lib: {Argument:{Damage:60.0f,AttackType:Magic,ElementType:Thunder,FixedDamage:0b}}
        execute if score @s Temporary matches 1 run data modify storage lib: Argument.Damage set value 120.0f
        execute if score @s Temporary matches 2 run data modify storage lib: Argument.Damage set value 180.0f
        execute if score @s Temporary matches 3 run data modify storage lib: Argument.Damage set value 240.0f
        function lib:damage/modifier
        execute as @e[type=#lib:living,type=!player,tag=Victim,tag=Hit,distance=..100,limit=1] run function lib:damage/
    # リセット
        scoreboard players reset @s Temporary
        function lib:damage/reset
        tag @e[type=#lib:living,type=!player,tag=Victim,tag=Hit,distance=..100,limit=1] remove Hit


text:
#> asset:artifact/0249.wakinyan/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:249} run function asset:artifact/0249.wakinyan/trigger/2.check_condition


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

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


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

execute if data storage asset:context {id:207} run function asset:artifact/0207.life_is_transitory/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 207
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:heart_of_the_sea"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"夢幻泡影","color":"aqua","bold":true}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"オフハンドに持っている間"}','{"text":"最大HPが1になり透明状態になる"}']
# 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 "offhand"
# 神器のトリガー (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
# グローバルクールダウン (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", "Wi-ki"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    data modify storage asset:artifact CustomNBT set value {AttributeModifiers:[{AttributeName:"generic.max_health",Name:"generic.max_health",Amount:-0.99,Operation:2,UUID:[I;1,1,207,2],Slot:"offhand"}]}

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


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

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

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


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

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

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

# プレイヤーのHPを1に
    scoreboard players set $Set Lib 1
    function lib:score_to_health_wrapper/set

# 効果・演出
    effect give @s invisibility 1 1 true
    particle minecraft:poof ~ ~ ~ 0 0 0 0.1 1


text:
#> asset:artifact/0207.life_is_transitory/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{offhand:207} run function asset:artifact/0207.life_is_transitory/trigger/2.check_condition


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

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


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

execute if data storage asset:context {id:346} run function asset:artifact/0346.gather_around/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 346
# 神器のベースアイテム
    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":"周囲のモブ及びプレイヤーを"}','{"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 50
# 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 ["Urban", "Wi-ki", "Rumor"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

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


text:
#> asset:artifact/0346.gather_around/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0346.gather_around/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/0346.gather_around/trigger/3.main


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

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

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

# 演出 (particleは共通)
    particle minecraft:reverse_portal ~ ~ ~ 0.75 0.125 0.75 0.3 100 force

    # 成功演出
        execute if entity @e[type=#lib:living,tag=!Uninterferable,distance=1..15,limit=1] run playsound minecraft:block.portal.travel player @a ~ ~ ~ 0.1 2
        execute if entity @e[type=#lib:living,tag=!Uninterferable,distance=1..15,limit=1] run tellraw @a[distance=..15] [{"text":"["},{"selector":"@s"},{"text":"] "},{"text":"全員集合ーっ！","bold":true}]

    # 失敗演出
        execute unless entity @e[type=#lib:living,tag=!Uninterferable,distance=1..15,limit=1] run playsound minecraft:entity.villager.no player @s ~ ~ ~ 1 0.8
        execute unless entity @e[type=#lib:living,tag=!Uninterferable,distance=1..15,limit=1] run tellraw @s {"text":"全員集ご...！ 誰もいないみたいだ..."}

# 集合
    tp @e[type=#lib:living,tag=!Uninterferable,distance=1..15] @s


text:
#> asset:artifact/0346.gather_around/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:346} run function asset:artifact/0346.gather_around/trigger/2.check_condition


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

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


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

execute if data storage asset:context {id:635} run function asset:artifact/0635.elec_boots/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 635
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:leather_boots"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"エレキブーツ","color":"yellow"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"雷耐性+3%","color":"yellow"}']
# 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 "feet"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "equipping"
# 神器の発動条件 (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 ["Flora", "Urban", "Nyaptov", "Wi-ki"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    data modify storage asset:artifact CustomNBT set value {HideFlags:68,display:{color:16776960},Unbreakable:1b,AttributeModifiers:[{AttributeName:"generic.armor",Name:"generic.armor",Amount:2,Operation:0,UUID:[I;1,1,635,3],Slot:"feet"},{AttributeName:"generic.armor_toughness",Name:"generic.armor_toughness",Amount:0.5,Operation:0,UUID:[I;1,1,635,3],Slot:"feet"}]}

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


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

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

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


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

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

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

# 引数の設定
    # UUID
        data modify storage api: Argument.UUID set value [I;1,1,635,3]
    # 補正値
        data modify storage api: Argument.Amount set value 0.03
    # 補正方法
        data modify storage api: Argument.Operation set value "multiply_base"
# 補正の追加
    function api:modifier/defense/thunder/add

#ちょっとした演出
    particle dust 1 1 0 1 ~ ~0.3 ~ 0.4 0.1 0.4 0 6 normal @a
    particle firework ~ ~0.3 ~ 0.4 0.2 0.4 0 6 normal @a
    playsound minecraft:entity.firework_rocket.twinkle player @a ~ ~ ~ 0.4 1.5 0

# 一式効果
    execute if data storage asset:context id.all{head:632,chest:633,legs:634,feet:635} run function asset:artifact/0633.elec_armor/trigger/4.fullset


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

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


text:
#> asset:artifact/0635.elec_boots/trigger/dis_equip/main
#
# 装備を外した時のメイン処理
#
# @within function asset:artifact/0635.elec_boots/trigger/dis_equip/

# UUID
    data modify storage api: Argument.UUID set value [I;1,1,635,3]

# 補正の削除
    function api:modifier/defense/thunder/remove

# 演出
    playsound minecraft:entity.firework_rocket.twinkle player @a ~ ~ ~ 0.4 1.1 0

# 一式効果削除
    execute if entity @s[tag=HL.Fullset] run function asset:artifact/0633.elec_armor/trigger/5.fullset_dis_equip


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

execute if data storage asset:context {id:877} run function asset:artifact/0877.hungry_uni/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 877
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"空腹のUNI","color":"dark_gray","bold":true,"underlined":true}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['[{"text":"UNIは棘皮動物に属す、","bold":false},{"text":"ヒトデやなまこの仲間","bold":true}]','{"text":"コンブを主食とし、餌を食べて身を太らせる","bold":false}','{"text":"食べる速度は非常に遅い","color":"dark_purple","bold":false,"italic":true}']
# MP以外の消費物 (TextComponentString) (オプション)
    data modify storage asset:artifact CostText set value '[{"translate":"block.minecraft.kelp"},{"text":" x1"}]'
# 使用回数 (int) (オプション)
    data modify storage asset:artifact RemainingCount set value 2
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "mainhand"
# 神器のトリガー (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 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 ["Flora", "Urban", "Nyaptov"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

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


text:
#> asset:artifact/0877.hungry_uni/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0877.hungry_uni/trigger/1.trigger
#> Private
# @private
    #declare score_holder $Count

# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く
    function asset:artifact/common/check_condition/mainhand
# 他にアイテム等確認する場合はここに書く
    # コンブを持ってるかチェック
        execute store result score $Count Temporary run clear @s kelp 0
        execute if score $Count Temporary matches 0 run tag @s remove CanUsed
        execute if score $Count Temporary matches 0 run function lib:message/artifact/dont_have_require_items
        scoreboard players reset $Count Temporary
# CanUsedタグをチェックして3.main.mcfunctionを実行する
    execute if entity @s[tag=CanUsed] run function asset:artifact/0877.hungry_uni/trigger/3.main


text:
#> asset:artifact/0877.hungry_uni/trigger/3.main
#
# 神器のメイン処理部
#
# @within function asset:artifact/0877.hungry_uni/trigger/2.check_condition
#> Private
# @private
    #declare score_holder $UseCount

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

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

# 食べる演出
    execute anchored eyes run particle item kelp ^ ^ ^0.2 0 0 0 0.05 10
    playsound minecraft:entity.generic.eat player @a ~ ~ ~ 1 0.6
# コンブへらす
    clear @s kelp 1
# 残り回数が1回の時発動した場合
    execute unless data storage asset:context Items.mainhand.id run data modify storage api: Argument.ID set value 876
    execute unless data storage asset:context Items.mainhand.id run function api:artifact/give/from_id


text:
#> asset:artifact/0877.hungry_uni/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{mainhand:877} run function asset:artifact/0877.hungry_uni/trigger/2.check_condition


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

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


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

execute if data storage asset:context {id:573} run function asset:artifact/0573.final_prism/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 573
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"ファイナル・プリズム","color":"light_purple","italic":false}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"撃ち続けると収束するレーザーを連射する。","color":"white","italic":false}','{"text":"\\"その究極の光の前には、全ては灰塵と化す！\\"","color":"gray","italic":false}']
# 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 "keepSneak"
# 神器の発動条件 (TextComponentString) (オプション)
    # data modify storage asset:artifact Condition set value
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.Damage set value [45,65]
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackType set value [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 1b
# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.IsRangeAttack set value "every"
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackRange set value 45
# MP消費量 (int)
    data modify storage asset:artifact MPCost set value 2
# 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", "Wi-ki"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

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


text:
#> asset:artifact/0573.final_prism/trigger/damage
#
# ヒット!
#
# @within function asset:artifact/0573.final_prism/trigger/3.main

# ダメージ
    # 魔法属性
        data modify storage lib: Argument.AttackType set value "Magic"
    # 防御貫通
        #data modify storage lib: Argument.FixedDamage set value true
    # 属性が変わる
        execute if score $Random Temporary matches 0 run data modify storage lib: Argument.ElementType set value "None"
        execute if score $Random Temporary matches 1 run data modify storage lib: Argument.ElementType set value "Fire"
        execute if score $Random Temporary matches 2 run data modify storage lib: Argument.ElementType set value "Water"
        execute if score $Random Temporary matches 3 run data modify storage lib: Argument.ElementType set value "Thunder"

# 補正functionを実行
    function lib:damage/modifier
# 攻撃した対象に実行
    execute as @e[type=#lib:living,tag=PrismDamage,distance=..50] at @s run function lib:damage/
    tag @e[type=#lib:living,tag=PrismDamage,distance=..50] remove PrismDamage

# リセット
    function lib:damage/reset


text:
#> asset:artifact/0573.final_prism/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0573.final_prism/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/0573.final_prism/trigger/3.main


text:
#> asset:artifact/0573.final_prism/trigger/final_laser
#
# 超必殺究極ビーム
#
# @within function asset:artifact/0573.final_prism/trigger/*

# お前をここで倒す！
    execute unless entity @s[distance=..2] run particle minecraft:dust 1 1 1 1 ~ ~ ~ 0.1 0.1 0.1 0 1 force
    execute unless entity @s[distance=..2] run particle minecraft:electric_spark ~ ~ ~ 0.15 0.15 0.15 0.1 2 force
    execute unless entity @s[distance=..2] if predicate lib:random_pass_per/5 run particle minecraft:end_rod ~ ~ ~ 0.15 0.15 0.15 0 1 force
    execute unless entity @s[distance=..2] if predicate lib:random_pass_per/25 run particle minecraft:glow ~ ~ ~ 0.15 0.15 0.15 0 1 force

# 接触時判定
    execute if entity @s[distance=..45] positioned ~-0.5 ~-0.5 ~-0.5 run tag @e[tag=Enemy,dx=0] add PrismDamage

# 前進
    execute if entity @s[distance=..45] if block ~ ~ ~ #lib:no_collision positioned ^ ^ ^0.5 run function asset:artifact/0573.final_prism/trigger/final_laser

# 減速
    effect give @s slowness 1 1 true


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

#> SpreadLib
# @private
#declare tag SpreadMarker

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

# 疑似乱数取得
    execute store result score $Random Temporary run function lib:random/
# ほしい範囲に剰余算
    scoreboard players operation $Random Temporary %= $4 Const
# ここから先は神器側の効果の処理を書く
    data modify storage lib: Argument.Distance set value 10.0f

# 精度をスニーク時間に
    scoreboard players set $Spread Temporary 45
    execute store result score $SneakTime Temporary run data get storage asset:context SneakTime.mainhand 1
    scoreboard players operation $Spread Temporary -= $SneakTime Temporary

# マイナスになるとやばいんだって
    execute if score $Spread Temporary matches ..0 run scoreboard players set $Spread Temporary 1

# スコアを精度に
    summon marker ~ ~ ~ {Tags:["SpreadMarker"]}
    execute store result storage lib: Argument.Spread float 0.05 run scoreboard players get $Spread Temporary
    data modify storage lib: Argument.Distance set value 10.0f
    execute as @e[type=marker,tag=SpreadMarker,limit=1] at @p[tag=this] anchored eyes positioned ^ ^ ^ run function lib:forward_spreader/circle

# 非収束ビーム
    execute if score $Spread Temporary matches 2.. facing entity @e[type=marker,tag=SpreadMarker,limit=1] eyes anchored eyes positioned ^ ^-0.25 ^ run function asset:artifact/0573.final_prism/trigger/laser
    # ダメージ設定
        execute if score $Spread Temporary matches 2.. run data modify storage lib: Argument.Damage set value 45f

# 完全収束ビーム
    execute if score $Spread Temporary matches ..1 facing entity @e[type=marker,tag=SpreadMarker,limit=1] eyes anchored eyes positioned ^ ^-0.25 ^ run function asset:artifact/0573.final_prism/trigger/final_laser
    execute if score $Spread Temporary matches 2 anchored eyes positioned ^ ^ ^1 run function asset:artifact/0573.final_prism/trigger/vfx/final_start
    # ダメージ設定
        execute if score $Spread Temporary matches ..1 run data modify storage lib: Argument.Damage set value 65f

# サウンド
    execute if score $Spread Temporary matches 2.. run function asset:artifact/0573.final_prism/trigger/vfx/normal_laser
    execute if score $Spread Temporary matches ..1 run function asset:artifact/0573.final_prism/trigger/vfx/final_laser

# ダメージはここで実行
    function asset:artifact/0573.final_prism/trigger/damage

# リセット
    scoreboard players reset $Random Temporary
    scoreboard players reset $Spread Temporary
    scoreboard players reset $SneakTime Temporary
    kill @e[type=marker,tag=SpreadMarker]


text:
#> asset:artifact/0573.final_prism/trigger/laser
#
# レーザー
#
# @within function asset:artifact/0573.final_prism/trigger/*

# 即着レーザー
# パーティクル 虹色だぞ
    execute unless entity @s[distance=..2] if score $Random Temporary matches 0 run particle minecraft:dust 1 1 1 1 ~ ~ ~ 0 0 0 0 1 force
    execute unless entity @s[distance=..2] if score $Random Temporary matches 1 run particle minecraft:dust 1 0.694 0.694 1 ~ ~ ~ 0 0 0 0 1 force
    execute unless entity @s[distance=..2] if score $Random Temporary matches 2 run particle minecraft:dust 0.765 0.882 1 1 ~ ~ ~ 0 0 0 0 1 force
    execute unless entity @s[distance=..2] if score $Random Temporary matches 3 run particle minecraft:dust 1 1 0.678 1 ~ ~ ~ 0 0 0 0 1 force

# 確率で派手派手だな
    execute unless entity @s[distance=..2] run particle minecraft:electric_spark ~ ~ ~ 0 0 0 0 1 force
    execute unless entity @s[distance=..2] if predicate lib:random_pass_per/10 run particle minecraft:crit ~ ~ ~ 0 0 0 0 1 force

# 接触時判定
    execute if entity @s[distance=..45] positioned ~-0.5 ~-0.5 ~-0.5 run tag @e[tag=Enemy,dx=0] add PrismDamage

# 前進
    execute if entity @s[distance=..45] if block ~ ~ ~ #lib:no_collision positioned ^ ^ ^0.5 run function asset:artifact/0573.final_prism/trigger/laser


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

#> 定義類はここに
# @within function asset:artifact/0573.final_prism/trigger/**
    scoreboard objectives add 573.Laser dummy


text:
#> asset:artifact/0573.final_prism/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:573} run function asset:artifact/0573.final_prism/trigger/2.check_condition


text:
#> asset:artifact/0573.final_prism/trigger/_index.d
#
# @private

#> tag
# @within function asset:artifact/0573.final_prism/trigger/**
    #declare tag PrismDamage


text:
#> asset:artifact/0573.final_prism/trigger/vfx/final_laser
#
# 究極ビームサウンド
#
# @within function asset:artifact/0573.final_prism/trigger/3.main

playsound block.amethyst_block.chime player @a ~ ~ ~ 1.5 0.7
playsound block.amethyst_block.chime player @a ~ ~ ~ 1.5 0.5


text:
#> asset:artifact/0573.final_prism/trigger/vfx/normal_laser
#
# 通常ビームサウンド
#
# @within function asset:artifact/0573.final_prism/trigger/3.main

playsound block.amethyst_block.chime player @a ~ ~ ~ 1.5 0.7
playsound block.amethyst_block.chime player @a ~ ~ ~ 1.5 1


text:
#> asset:artifact/0573.final_prism/trigger/vfx/final_start
#
# 派手派手だな
#
# @within function asset:artifact/0573.final_prism/trigger/3.main
playsound minecraft:block.amethyst_block.break player @a ~ ~ ~ 2 1
playsound minecraft:block.amethyst_block.break player @a ~ ~ ~ 2 1.5
playsound minecraft:block.bell.use player @a ~ ~ ~ 1.5 0.5
playsound minecraft:block.bell.use player @a ~ ~ ~ 1.5 1
particle explosion ~ ~ ~ 0 0 0 0 0 force
particle minecraft:end_rod ~ ~ ~ 0 0 0 0.1 10
execute rotated ~ ~90 positioned ^ ^1 ^ run function asset:artifact/0573.final_prism/trigger/vfx/circle
execute rotated ~ ~90 positioned ^ ^3 ^ run function asset:artifact/0573.final_prism/trigger/vfx/circle
execute rotated ~ ~90 positioned ^ ^5 ^ run function asset:artifact/0573.final_prism/trigger/vfx/circle


text:
#> asset:artifact/0573.final_prism/trigger/vfx/circle
#
# どえらい量のパーティクル
#
# @within function asset:artifact/0573.final_prism/trigger/vfx/final_start

particle end_rod ^0.99452 ^ ^0.10453 0 0 0 0 1
particle end_rod ^0.99452 ^ ^-0.10453 0 0 0 0 1
particle end_rod ^0.95106 ^ ^0.30902 0 0 0 0 1
particle end_rod ^0.95106 ^ ^-0.30902 0 0 0 0 1
particle end_rod ^0.86603 ^ ^0.5 0 0 0 0 1
particle end_rod ^0.86603 ^ ^-0.5 0 0 0 0 1
particle end_rod ^0.74314 ^ ^0.66913 0 0 0 0 1
particle end_rod ^0.74314 ^ ^-0.66913 0 0 0 0 1
particle end_rod ^0.58779 ^ ^0.80902 0 0 0 0 1
particle end_rod ^0.58779 ^ ^-0.80902 0 0 0 0 1
particle end_rod ^0.5 ^ ^0 0 0 0 0 1
particle end_rod ^0.47553 ^ ^0.15451 0 0 0 0 1
particle end_rod ^0.47553 ^ ^-0.15451 0 0 0 0 1
particle end_rod ^0.40674 ^ ^0.91355 0 0 0 0 1
particle end_rod ^0.40674 ^ ^-0.91355 0 0 0 0 1
particle end_rod ^0.40451 ^ ^0.29389 0 0 0 0 1
particle end_rod ^0.40451 ^ ^-0.29389 0 0 0 0 1
particle end_rod ^0.29389 ^ ^0.40451 0 0 0 0 1
particle end_rod ^0.29389 ^ ^-0.40451 0 0 0 0 1
particle end_rod ^0.20791 ^ ^-0.97815 0 0 0 0 1
particle end_rod ^0.20791 ^ ^0.97815 0 0 0 0 1
particle end_rod ^0.15451 ^ ^0.47553 0 0 0 0 1
particle end_rod ^0.15451 ^ ^-0.47553 0 0 0 0 1
particle end_rod ^0 ^ ^1 0 0 0 0 1
particle end_rod ^0 ^ ^0.5 0 0 0 0 1
particle end_rod ^0 ^ ^-0.5 0 0 0 0 1
particle end_rod ^0 ^ ^-1 0 0 0 0 1
particle end_rod ^-0.15451 ^ ^0.47553 0 0 0 0 1
particle end_rod ^-0.15451 ^ ^-0.47553 0 0 0 0 1
particle end_rod ^-0.20791 ^ ^0.97815 0 0 0 0 1
particle end_rod ^-0.20791 ^ ^-0.97815 0 0 0 0 1
particle end_rod ^-0.29389 ^ ^0.40451 0 0 0 0 1
particle end_rod ^-0.29389 ^ ^-0.40451 0 0 0 0 1
particle end_rod ^-0.40451 ^ ^0.29389 0 0 0 0 1
particle end_rod ^-0.40451 ^ ^-0.29389 0 0 0 0 1
particle end_rod ^-0.40674 ^ ^-0.91355 0 0 0 0 1
particle end_rod ^-0.40674 ^ ^0.91355 0 0 0 0 1
particle end_rod ^-0.47553 ^ ^0.15451 0 0 0 0 1
particle end_rod ^-0.47553 ^ ^-0.15451 0 0 0 0 1
particle end_rod ^-0.5 ^ ^0 0 0 0 0 1
particle end_rod ^-0.58779 ^ ^0.80902 0 0 0 0 1
particle end_rod ^-0.58779 ^ ^-0.80902 0 0 0 0 1
particle end_rod ^-0.74314 ^ ^0.66913 0 0 0 0 1
particle end_rod ^-0.74314 ^ ^-0.66913 0 0 0 0 1
particle end_rod ^-0.86603 ^ ^0.5 0 0 0 0 1
particle end_rod ^-0.86603 ^ ^-0.5 0 0 0 0 1
particle end_rod ^-0.95106 ^ ^0.30902 0 0 0 0 1
particle end_rod ^-0.95106 ^ ^-0.30902 0 0 0 0 1
particle end_rod ^-0.99452 ^ ^0.10453 0 0 0 0 1
particle end_rod ^-0.99452 ^ ^-0.10453 0 0 0 0 1


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

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


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

execute if data storage asset:context {id:313} run function asset:artifact/0313.raging_fire_sword/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 313
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"烈火の剣","color":"red"}'
# 神器の説明文 (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 "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 [90,120]
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackType set value [Physical]
# 攻撃に関する情報 -攻撃属性 (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 "never"
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.AttackRange set value
# MP消費量 (int)
    data modify storage asset:artifact MPCost set value 7
# MP必要量 (int) (オプション)
    # data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
    data modify storage asset:artifact LocalCooldown set value 8
# グローバルクールダウン (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", "Rumor"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

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


text:
#> asset:artifact/0313.raging_fire_sword/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0313.raging_fire_sword/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/0313.raging_fire_sword/trigger/3.main


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

#> private
# @private
    #declare score_holder $RandomDamage

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

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

# 演出
    execute as @e[type=#lib:living,type=!player,tag=Victim,distance=..10] at @s run particle minecraft:lava ~ ~0.5 ~ 0 0.5 0 0.1 20
    playsound minecraft:entity.blaze.shoot player @a ~ ~ ~ 1 0.8
    playsound minecraft:block.fire.ambient player @a ~ ~ ~ 1 1.3

# ダメージ
    #ダメージブレのための処理
        # 疑似乱数取得
            execute store result score $RandomDamage Temporary run function lib:random/
        # 剰余算する。0~30の追加ダメージ
            scoreboard players operation $RandomDamage Temporary %= $31 Const
        # 最低ダメージ設定
            scoreboard players add $RandomDamage Temporary 90
    #ダメージセット
        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 "Fire"
# 補正functionを実行
    function lib:damage/modifier
# ダメージを与える
    execute as @e[type=#lib:living,type=!player,tag=Victim,distance=..10] run function lib:damage/

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


text:
#> asset:artifact/0313.raging_fire_sword/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:313} run function asset:artifact/0313.raging_fire_sword/trigger/2.check_condition


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

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


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

execute if data storage asset:context {id:217} run function asset:artifact/0217.fish/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 217
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:cod"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"おさかな","color":"aqua"}'
# 神器の説明文 (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 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 10000
# MP必要量 (int) (オプション)
    data modify storage asset:artifact MPRequire set value 100
# 神器のクールダウン (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 {}

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