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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 184
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '[{"text":"増えるクッキー","color":"gold"}]'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['[{"text":"幾億ものクッキーを生み出す可能性を秘めている"}]']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    # data modify storage asset:artifact RemainingCount set value
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "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 10
# MP必要量 (int) (オプション)
    # data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
    # data modify storage asset:artifact LocalCooldown set value
# グローバルクールダウン (int) (オプション)
    # data modify storage asset:artifact SpecialCooldown set value
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableCooldownMessage set value
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableMPMessage set value
# 扱える神 (string[]) Wikiを参照
    data modify storage asset:artifact CanUsedGod set value "ALL"
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

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


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

repo_name: ProjectTSB/TheSkyBlessing

repo_language: mcfunction

mime_type: text/plain


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

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

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


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


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

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


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

execute if data storage asset:context {id:165} run function asset:artifact/0165.blessing_leggings/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 165
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:diamond_leggings"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"加護のレギンス","color":"light_purple"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['[{"text":"神々の加護","color":"yellow"},{"text":"を受けたレギンス","color":"white"}]','[{"text":"奈落","color":"dark_purple"},{"text":"から身を守る機能もあるが、","color":"white"}]','{"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 "legs"
# 神器のトリガー (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", "Urban", "Nyaptov", "Wi-ki", "Rumor"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    data modify storage asset:artifact CustomNBT set value {AttributeModifiers:[{AttributeName:"generic.knockback_resistance",Name:"generic.knockback_resistance",Amount:0.2,Operation:1,UUID:[I;1,1,165,5],Slot:"legs"},{AttributeName:"generic.armor",Name:"generic.armor",Amount:-1,Operation:1,UUID:[I;1,1,165,5],Slot:"legs"}]}

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


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

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

# Y座標が0未満のみ処理
    execute unless predicate lib:is_void run tag @s remove CanUsed

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


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

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

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

# 落下速度低下付与
    effect give @s minecraft:slow_falling 1 1

# テレポート
    execute in minecraft:overworld run tp @s 23 3 24

# 演出
    particle portal 23 3 24 0 0 0 2 250 force @a
    particle effect 23 3 24 0 10 0 0.1 250 force @a
    playsound entity.illusioner.prepare_blindness player @s 23 3 24 1 0 1


text:
#> asset:artifact/0165.blessing_leggings/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{legs:165} run function asset:artifact/0165.blessing_leggings/trigger/2.check_condition


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

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


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

execute if data storage asset:context {id:915} run function asset:artifact/0915.flame_hunter_hat/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 915
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:leather_helmet"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"炎を追う狩人の帽子","color":"red"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['[{"text":"2部位装備:","color":"white"}]','[{"text":"火耐性+10% 火攻撃+10% ","color":"red"},{"text":"水耐性-10% ","color":"dark_red"},{"text":"移動速度+5%","color":"white"}]','[{"text":"4部位装備:","color":"white"}]','[{"text":"火耐性+15% 火攻撃+15% ","color":"red"},{"text":"水耐性-10% ","color":"dark_red"},{"text":"移動速度+10%","color":"white"}]','[{"text":"「森で緑を纏い、狩りをする者がいた。","color":"white","italic":"true"}]','[{"text":"その者は獣を必要な数だけ狩り暮らしていた。」","color":"white","italic":"true"}]']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    # data modify storage asset:artifact RemainingCount set value
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "head"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "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 ["Urban", "Nyaptov", "Rumor"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    data modify storage asset:artifact CustomNBT set value {HideFlags:68,display:{color:10691106},Unbreakable:1b,AttributeModifiers:[{AttributeName:"generic.armor",Name:"generic.armor",Amount:3.5,Operation:0,UUID:[I;1,1,915,6],Slot:"head"},{AttributeName:"generic.armor_toughness",Name:"generic.armor_toughness",Amount:1,Operation:0,UUID:[I;1,1,915,6],Slot:"head"}]}

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


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

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

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


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

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

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

# 演出
    particle flame ~ ~1.7 ~ 0.3 0.2 0.3 0 30 normal @a
    particle block azalea ~ ~1.7 ~ 0.3 0.2 0.3 0 60 normal @a
    playsound block.grass.break player @a ~ ~ ~ 0.4 1.2 0
    playsound block.grass.break player @a ~ ~ ~ 0.4 1.4 0
    playsound block.fire.ambient player @a ~ ~ ~ 0.8 1 0

# 装備時の共通処理
    function asset:artifact/0915.flame_hunter_hat/trigger/common/equip


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

#> 定義類はここに
# @within function
#   asset:artifact/0915.flame_hunter_hat/trigger/common/**
    scoreboard objectives add PF.ArmorCount dummy


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

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


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

# 装備を外したときの共通処理
    function asset:artifact/0915.flame_hunter_hat/trigger/common/dis_equip


text:
#> asset:artifact/0915.flame_hunter_hat/trigger/common/equip_2parts
#
# 2部位補正
#
# @within function asset:artifact/0915.flame_hunter_hat/trigger/common/equip

# 火耐性
    data modify storage api: Argument.UUID set value [I;1,1,915,6]
    data modify storage api: Argument.Amount set value 0.1
    data modify storage api: Argument.Operation set value "multiply_base"
    function api:modifier/defense/fire/add

# 火攻撃
    data modify storage api: Argument.UUID set value [I;1,1,915,6]
    data modify storage api: Argument.Amount set value 0.1
    data modify storage api: Argument.Operation set value "multiply_base"
    function api:modifier/attack/fire/add

# 水耐性
    data modify storage api: Argument.UUID set value [I;1,1,915,6]
    data modify storage api: Argument.Amount set value -0.1
    data modify storage api: Argument.Operation set value "multiply_base"
    function api:modifier/defense/water/add

# 移動速度
    attribute @s generic.movement_speed modifier add 00000001-0000-0001-0000-039300000001 "915.2Parts" 0.05 multiply_base


text:
#> asset:artifact/0915.flame_hunter_hat/trigger/common/dis_equip_2parts
#
# 2部位の補正を削除
#
# @within function asset:artifact/0915.flame_hunter_hat/trigger/common/dis_equip

# 火耐性
    data modify storage api: Argument.UUID set value [I;1,1,915,6]
    function api:modifier/defense/fire/remove

# 火攻撃
    data modify storage api: Argument.UUID set value [I;1,1,915,6]
    function api:modifier/attack/fire/remove

# 水耐性
    data modify storage api: Argument.UUID set value [I;1,1,915,6]
    function api:modifier/defense/water/remove

# 移動速度
    attribute @s generic.movement_speed modifier remove 00000001-0000-0001-0000-039300000001


text:
#> asset:artifact/0915.flame_hunter_hat/trigger/common/equip
#
# 装備したときの共通処理
#
# @within function
#   asset:artifact/0915.flame_hunter_hat/trigger/3.main
#   asset:artifact/0916.flame_hunter_clothes/trigger/3.main
#   asset:artifact/0917.flame_hunter_clothes/trigger/3.main
#   asset:artifact/0918.flame_hunter_boots/trigger/3.main

# 装備数スコア
    scoreboard players add @s PF.ArmorCount 1

# スコアが2なら2部位の補正
    execute if entity @s[scores={PF.ArmorCount=2}] run function asset:artifact/0915.flame_hunter_hat/trigger/common/equip_2parts

# スコアが4なら4部位の補正
    execute if entity @s[scores={PF.ArmorCount=4}] run function asset:artifact/0915.flame_hunter_hat/trigger/common/equip_4parts


text:
#> asset:artifact/0915.flame_hunter_hat/trigger/common/dis_equip_4parts
#
# 4部位の補正を削除
#
# @within function asset:artifact/0915.flame_hunter_hat/trigger/common/dis_equip

# 火耐性
    data modify storage api: Argument.UUID set value [I;1,2,915,6]
    function api:modifier/defense/fire/remove

# 火攻撃
    data modify storage api: Argument.UUID set value [I;1,2,915,6]
    function api:modifier/attack/fire/remove

# 水耐性
    data modify storage api: Argument.UUID set value [I;1,2,915,6]
    function api:modifier/defense/water/remove

# 移動速度
    attribute @s generic.movement_speed modifier remove 00000001-0000-0002-0000-039300000001


text:
#> asset:artifact/0915.flame_hunter_hat/trigger/common/equip_4parts
#
#
#
# @within function asset:artifact/0915.flame_hunter_hat/trigger/common/equip

# 火耐性
    data modify storage api: Argument.UUID set value [I;1,2,915,6]
    data modify storage api: Argument.Amount set value 0.15
    data modify storage api: Argument.Operation set value "multiply_base"
    function api:modifier/defense/fire/add

# 火攻撃
    data modify storage api: Argument.UUID set value [I;1,2,915,6]
    data modify storage api: Argument.Amount set value 0.15
    data modify storage api: Argument.Operation set value "multiply_base"
    function api:modifier/attack/fire/add

# 水耐性
    data modify storage api: Argument.UUID set value [I;1,2,915,6]
    data modify storage api: Argument.Amount set value -0.1
    data modify storage api: Argument.Operation set value "multiply_base"
    function api:modifier/defense/water/add

# 移動速度
    attribute @s generic.movement_speed modifier add 00000001-0000-0002-0000-039300000001 "915.4Parts" 0.1 multiply_base


text:
#> asset:artifact/0915.flame_hunter_hat/trigger/common/dis_equip
#
# 装備外した時の共通処理
#
# @within function
#   asset:artifact/0915.flame_hunter_hat/trigger/dis_equip/main
#   asset:artifact/0916.flame_hunter_clothes/trigger/dis_equip/main
#   asset:artifact/0917.flame_hunter_clothes/trigger/dis_equip/main
#   asset:artifact/0918.flame_hunter_boots/trigger/dis_equip/main

# 2部位の補正を削除
    execute if entity @s[scores={PF.ArmorCount=2}] run function asset:artifact/0915.flame_hunter_hat/trigger/common/dis_equip_2parts

# 4部位の補正を削除
    execute if entity @s[scores={PF.ArmorCount=4}] run function asset:artifact/0915.flame_hunter_hat/trigger/common/dis_equip_4parts

# 装備数スコアを減らす
    scoreboard players remove @s PF.ArmorCount 1
    execute if entity @s[scores={PF.ArmorCount=..0}] run scoreboard players reset @s PF.ArmorCount


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

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


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

execute if data storage asset:context {id:645} run function asset:artifact/0645.raimei_boots/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 645
# 神器のベースアイテム
    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":"雷耐性+4%","color":"yellow"}','{"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 "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:16514938},Unbreakable:1b,AttributeModifiers:[{AttributeName:"generic.armor",Name:"generic.armor",Amount:3.5,Operation:0,UUID:[I;1,1,645,3],Slot:"feet"},{AttributeName:"generic.armor_toughness",Name:"generic.armor_toughness",Amount:1,Operation:0,UUID:[I;1,1,645,3],Slot:"feet"},{AttributeName:"generic.movement_speed",Name:"generic.movement_speed",Amount:0.05,Operation:1,UUID:[I;1,1,645,3],Slot:"feet"}]}

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


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


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

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

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

# 演出
    playsound minecraft:block.respawn_anchor.charge player @s ~ ~ ~ 1 2

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

#セット効果用のファンクション実行（実行はチェストプレートの方へ）
    execute if data storage asset:context id.all{head:642,chest:643,legs:644,feet:645} run function asset:artifact/0643.raimei_chestplate/trigger/3.1.armorfullset


text:
#> asset:artifact/0645.raimei_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:645} run function asset:artifact/0645.raimei_boots/trigger/2.check_condition


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

#> Private
# @private
    #declare tag HV.Full

# タグを消す(チェストプレート側で実行)
    execute if entity @s[tag=HV.Full] run function asset:artifact/0643.raimei_chestplate/trigger/3.3.tag_delete

# 引数の設定
    # UUID
    data modify storage api: Argument.UUID set value [I;1,1,645,3]
# 補正の削除
    function api:modifier/defense/thunder/remove


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

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


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

execute if data storage asset:context {id:631} run function asset:artifact/0631.ice_boots/give/2.give


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

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

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

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


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


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

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

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

# 引数の設定
    # UUID
        data modify storage api: Argument.UUID set value [I;1,1,631,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/water/add

#ちょっとした演出
    particle falling_dust diamond_block ~ ~0.3 ~ 0.4 0.1 0.4 0 5 normal @a
    particle falling_dust snow_block ~ ~0.3 ~ 0.4 0.1 0.4 0 5 normal @a
    playsound minecraft:block.glass.break player @a ~ ~ ~ 0.4 1.2 0

# フルセット
execute if data storage asset:context id.all{head:628,chest:629,legs:630,feet:631} run function asset:artifact/0629.ice_armor/trigger/4.fullset


text:
#> asset:artifact/0631.ice_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:631} run function asset:artifact/0631.ice_boots/trigger/2.check_condition


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

# UUID
    data modify storage api: Argument.UUID set value [I;1,1,631,3]
# 補正の削除
    function api:modifier/defense/water/remove

    playsound minecraft:block.glass.break player @a ~ ~ ~ 0.4 0.8 0

# フルセット効果削除
    execute if entity @s[tag=HH.Fullset] run function asset:artifact/0629.ice_armor/trigger/5.fullset_dis_equip


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

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


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

execute if data storage asset:context {id:462} run function asset:artifact/0462.456_dice/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 462
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"4・5・6ダイス","color":"yellow"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"4・5・6しか出ない変なサイコロ。"}','[{"text":"サイコロは近くの敵1体に"},{"text":"火 ","color":"red"},{"text":"水 ","color":"aqua"},{"text":"雷","color":"yellow"},{"text":"属性の攻撃を行う。","color":"white"}]','{"text":"攻撃回数は出目によって変わる。"}','{"text":"\\"バレバレのイカサマ\\"","color":"gray"}']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    # data modify storage asset:artifact RemainingCount set value
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "auto"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "onClick"
# 神器の発動条件 (TextComponentString) (オプション)
    # data modify storage asset:artifact Condition set value
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.Damage set value ["50×4~6"]
# 攻撃に関する情報 -攻撃タイプ (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]
# 攻撃に関する情報 -防御無視 (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 20
# MP消費量 (int)
    data modify storage asset:artifact MPCost set value 12
# MP必要量 (int) (オプション)
    # data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
    data modify storage asset:artifact LocalCooldown set value 14
# グローバルクールダウン (int) (オプション)
    # data modify storage asset:artifact SpecialCooldown set value
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    data modify storage asset:artifact DisableCooldownMessage set value false
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableMPMessage set value
# 扱える神 (string[]) Wikiを参照
    data modify storage asset:artifact CanUsedGod set value ["Flora", "Wi-ki", "Rumor"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

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


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


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

#> Private
# @private
    #declare tag CU.Target

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

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

# サイコロを振る
    # 疑似乱数取得
        execute store result score @s Temporary run function lib:random/
    # ほしい範囲に剰余算
        scoreboard players operation @s Temporary %= $3 Const
    # 0~2の値を4~6になるように4加算
        scoreboard players add @s Temporary 4

# ダメージを与えるエンティティの絞り込み
    tag @e[tag=Enemy,tag=!Uninterferable,distance=..20,sort=nearest,limit=1] add CU.Target

# ダイス召喚
    data modify storage api: Argument.ID set value 286
    execute anchored eyes positioned ^ ^ ^2 positioned ~ ~-2 ~ run function api:mob/summon

# サウンド
    playsound minecraft:entity.witch.throw player @a ~ ~ ~ 1.5 1

# リセット
    scoreboard players reset @s Temporary
    tag @e[tag=CU.Target] remove CU.Target


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


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

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


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

execute if data storage asset:context {id:247} run function asset:artifact/0247.heavenly_herb/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 247
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:feather"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '[{"text":"hea ","color":"white","obfuscated":true},{"text":"天国草","color":"yellow","obfuscated":false},{"text":" ven","color":"white","obfuscated":true}]'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"傷を即座に癒す効能があるが、"}','{"text":"5％の確率で昇天してしまう。"}','{"text":"＊オフハンドで効果が発動する","color":"green"}']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    data modify storage asset:artifact RemainingCount set value 25
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "offhand"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "onDamage"
# 神器の発動条件 (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/0247.heavenly_herb/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0247.heavenly_herb/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/0247.heavenly_herb/trigger/3.main


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

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

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

# 昇天判定
    execute if predicate lib:random_pass_per/5 run kill @s

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

# 演出
    particle minecraft:happy_villager ~ ~ ~ 1 1 1 1 100 normal @s
    playsound minecraft:entity.arrow.hit_player player @s ~ ~ ~ 1 0.1


text:
#> asset:artifact/0247.heavenly_herb/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{offhand:247} run function asset:artifact/0247.heavenly_herb/trigger/2.check_condition


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

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


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

execute if data storage asset:context {id:152} run function asset:artifact/0152.call_cat/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 152
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"コール:イエネコ","color":"green"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"「可愛い猫ちゃんに癒されたい？」"}']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    data modify storage asset:artifact RemainingCount set value 100
# 神器を発動できるスロット (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 40
# MP必要量 (int) (オプション)
    # data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
    data modify storage asset:artifact LocalCooldown set value 600
# グローバルクールダウン (int) (オプション)
    # data modify storage asset:artifact SpecialCooldown set value
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableCooldownMessage set value
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableMPMessage set value
# 扱える神 (string[]) Wikiを参照
    data modify storage asset:artifact CanUsedGod set value ["Flora", "Nyaptov", "Wi-ki", "Rumor"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

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


text:
#> asset:artifact/0152.call_cat/trigger/3.1.entity_manager
#
# ネコがいるときに毎tick実行 仲間の回復とネコのさようならを管理する
#
# @within function
#   asset:artifact/0152.call_cat/trigger/3.main
#   asset:artifact/0152.call_cat/trigger/3.1.entity_manager

# ネコの勤務時間とプレーヤー回復クールダウン加算
    scoreboard players add @e[type=cat,tag=48.CalledCat] 48.CatTime 1
    scoreboard players add @a[scores={48.CatTime=..20}] 48.CatTime 1

# 近くにプレイヤーが居たら回復
    execute at @e[type=cat,tag=48.CalledCat] if entity @a[gamemode=!spectator,scores={48.CatTime=21},distance=..2.5,limit=1] as @a[gamemode=!spectator,scores={48.CatTime=21},distance=..2.5] run function asset:artifact/0152.call_cat/trigger/3.1.1.heal

# 1回以上回復したプレーヤーのクールダウンを設定
    execute if entity @a[scores={48.CatTime=22..}] run scoreboard players set @a[scores={48.CatTime=22..}] 48.CatTime 0

# ネコのCatTimeが600以上（勤務時間30秒経過）になったらさようなら
    execute if entity @e[type=cat,tag=48.CalledCat,scores={48.CatTime=600..},limit=1] as @e[type=cat,tag=48.CalledCat,scores={48.CatTime=600..}] at @s run function asset:artifact/0152.call_cat/trigger/3.1.2.goodbye_cat

# ネコがいるなら次tick予約
    execute if entity @e[type=cat,tag=48.CalledCat,limit=1] run schedule function asset:artifact/0152.call_cat/trigger/3.1.entity_manager 1t replace


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


text:
#> asset:artifact/0152.call_cat/trigger/3.1.1.heal
#
# 周囲の仲間を回復させる
#
# @within function asset:artifact/0152.call_cat/trigger/3.1.entity_manager

# ネコの場所に演出
    particle minecraft:heart ~ ~0.75 ~ 0.1 0.1 0.1 1 1

# プレーヤーの場所に演出
    execute at @s run particle minecraft:happy_villager ~ ~1 ~ 0.25 0.25 0.25 0 4

# 回復
    # 引数の設定
        data modify storage lib: Argument.Heal set value 2.0f
    # 補正function
        function lib:heal/modifier
    # 実行（既に4回回復した場合は実行しない）
        execute if entity @s[scores={48.CatTime=21..24}] run function lib:heal/
    # リセット
        function lib:heal/reset

# 回復回数を+1
    scoreboard players add @s 48.CatTime 1


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

#> Private
# @private
    #declare tag AbstractCat

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

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

    # ネコ召喚
        summon cat ~ ~ ~ {DeathLootTable:"minecraft:empty",PersistenceRequired:1b,CanPickUpLoot:0b,variant:"tabby",Tags:["AbstractCat","48.CalledCat","Friend"]}
        particle minecraft:heart ~ ~ ~ 0.5 0.25 0.5 1 10
        playsound minecraft:entity.cat.ambient neutral @a ~ ~ ~ 1 1.25

    # ネコの種類をランダムに
        execute store result score $Random Temporary run function lib:random/
        scoreboard players operation $Random Temporary %= $11 Const
        execute if score $Random Temporary matches 0 run data modify entity @e[type=cat,tag=AbstractCat,distance=..1,limit=1] variant set value "all_black"
        execute if score $Random Temporary matches 1 run data modify entity @e[type=cat,tag=AbstractCat,distance=..1,limit=1] variant set value "black"
        execute if score $Random Temporary matches 2 run data modify entity @e[type=cat,tag=AbstractCat,distance=..1,limit=1] variant set value "british_shorthair"
        execute if score $Random Temporary matches 3 run data modify entity @e[type=cat,tag=AbstractCat,distance=..1,limit=1] variant set value "calico"
        execute if score $Random Temporary matches 4 run data modify entity @e[type=cat,tag=AbstractCat,distance=..1,limit=1] variant set value "jellie"
        execute if score $Random Temporary matches 5 run data modify entity @e[type=cat,tag=AbstractCat,distance=..1,limit=1] variant set value "persian"
        execute if score $Random Temporary matches 6 run data modify entity @e[type=cat,tag=AbstractCat,distance=..1,limit=1] variant set value "ragdoll"
        execute if score $Random Temporary matches 7 run data modify entity @e[type=cat,tag=AbstractCat,distance=..1,limit=1] variant set value "red"
        execute if score $Random Temporary matches 8 run data modify entity @e[type=cat,tag=AbstractCat,distance=..1,limit=1] variant set value "siamese"
        execute if score $Random Temporary matches 9 run data modify entity @e[type=cat,tag=AbstractCat,distance=..1,limit=1] variant set value "tabby"
        execute if score $Random Temporary matches 10 run data modify entity @e[type=cat,tag=AbstractCat,distance=..1,limit=1] variant set value "white"

    # 使用者に懐かせる
        function api:data_get/uuid
        data modify entity @e[type=cat,tag=AbstractCat,distance=..1,limit=1] Owner set from storage api: UUID

    # 回復クールダウンスコア設定
        execute as @a unless score @s 48.CatTime matches -10.. run scoreboard players set @s 48.CatTime -10

    # ネコがいる間tickさせるfunctionをschedule
        schedule function asset:artifact/0152.call_cat/trigger/3.1.entity_manager 1t replace

    # リセット
        scoreboard players reset $Random Temporary
        tag @e[type=cat,tag=AbstractCat,distance=..1,limit=1] remove AbstractCat


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

#> 定義類はここに
# @within function
#   asset:artifact/0152.call_cat/trigger/*
    scoreboard objectives add 48.CatTime dummy


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


text:
#> asset:artifact/0152.call_cat/trigger/_index.d
# @private

#> tag
# @within function asset:artifact/0152.call_cat/trigger/*
    #declare tag 48.CalledCat

# スコアをどう使ってるかのメモ
    # ネコ
        # 0───────────>600
        #  生存してる時間
        #
        # 30秒経ったらネコを帰らせるため

    # プレーヤー
        # -10──────────────────>0───────────────>21>22───────────>
        #  使用者限定召喚直後回復CD |回復クールダウン(CD) |回復量カウント
        #
        # プレーヤーを21まで毎tickカウントアップさせる（クールダウン）
        # 一度の回復量を制限するため、回復した場合にネコ1匹につきプレーヤのスコアを1加算（21を引けば回復回数が求められる）


text:
#> asset:artifact/0152.call_cat/trigger/3.1.2.goodbye_cat
#
# 役目を終えたネコにさようならをするfunction
#
# @within function asset:artifact/0152.call_cat/trigger/3.1.entity_manager

# さようなら //killだとログがプレイヤーに出る、死亡音が聞こえるためdataで消す
    playsound minecraft:item.chorus_fruit.teleport neutral @a ~ ~ ~ 1 0.75
    particle minecraft:reverse_portal ~ ~ ~ 0.1 0.1 0.1 0.01 200
    effect give @s invisibility 1 0 true
    tp @s ~ -256 ~
    data modify entity @s Health set value 0


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

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


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

execute if data storage asset:context {id:630} run function asset:artifact/0630.ice_leggings/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 630
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:leather_leggings"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"アイスレギンス","color":"aqua"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['[{"text":"水耐性+3%","color":"aqua"}]']
# 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 "legs"
# 神器のトリガー (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", "Wi-ki", "Rumor"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    data modify storage asset:artifact CustomNBT set value {HideFlags:68,display:{color:7274495},Unbreakable:1b,AttributeModifiers:[{AttributeName:"generic.armor",Name:"generic.armor",Amount:5,Operation:0,UUID:[I;1,1,630,4],Slot:"legs"},{AttributeName:"generic.armor_toughness",Name:"generic.armor_toughness",Amount:0.5,Operation:0,UUID:[I;1,1,630,4],Slot:"legs"}]}

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


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

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

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


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

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

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

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

#ちょっとした演出
    particle falling_dust diamond_block ~ ~0.4 ~ 0.4 0.3 0.4 0 5 normal @a
    particle falling_dust snow_block ~ ~0.4 ~ 0.4 0.3 0.4 0 5 normal @a
    playsound minecraft:block.glass.break player @a ~ ~ ~ 0.4 1.2 0

# フルセット
execute if data storage asset:context id.all{head:628,chest:629,legs:630,feet:631} run function asset:artifact/0629.ice_armor/trigger/4.fullset


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

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


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

# UUID
    data modify storage api: Argument.UUID set value [I;1,1,630,4]
# 補正の削除
    function api:modifier/defense/water/remove

# 演出
    playsound minecraft:block.glass.break player @a ~ ~ ~ 0.4 0.8 0

# フルセット効果削除
    execute if entity @s[tag=HH.Fullset] run function asset:artifact/0629.ice_armor/trigger/5.fullset_dis_equip


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

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


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 1014
# 神器のベースアイテム
    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 [150]
# 攻撃に関する情報 -攻撃タイプ (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/1014.sharpened_golden_sword/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/1014.sharpened_golden_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/1014.sharpened_golden_sword/trigger/3.main


text:
#> asset:artifact/1014.sharpened_golden_sword/trigger/3.main
#
# 神器のメイン処理部
#
# @within function asset:artifact/1014.sharpened_golden_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 150.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/1014.sharpened_golden_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:1014} run function asset:artifact/1014.sharpened_golden_sword/trigger/2.check_condition


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

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


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

execute if data storage asset:context {id:441} run function asset:artifact/0441.awaited_opportunity/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 441
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"待望の瞬間","color":"red","bold":true}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"”待”ってたぜェ!!この”瞬間”をよぉ!!","bold":true}','{"text":" "}','{"text":"（“事故”る奴は…“不運”と”踊”っちまったんだよ…）","color":"gray"}']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    data modify storage asset:artifact RemainingCount set value 500
# 神器を発動できるスロット (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 "39.5"
# 攻撃に関する情報 -攻撃タイプ (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
# グローバルクールダウン (int) (オプション)
    # data modify storage asset:artifact SpecialCooldown set value
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableCooldownMessage set value
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableMPMessage set value
# 扱える神 (string[]) Wikiを参照
    data modify storage asset:artifact CanUsedGod set value ["Flora", "Urban", "Rumor"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

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


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


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

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

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

# エフェクト付与
    effect give @s speed 10 2 true

# 30%の確率でメッセージを流す
    execute if predicate lib:random_pass_per/30 run function asset:artifact/0441.awaited_opportunity/trigger/3.1.message

# 攻撃対象にダメージ
    execute as @e[type=#lib:living,type=!player,tag=Victim,distance=..150] at @s run function asset:artifact/0441.awaited_opportunity/trigger/3.3.attack


text:
#> asset:artifact/0441.awaited_opportunity/trigger/3.2.hardluck
#
# ダンスる
#
# @within function asset:artifact/0441.awaited_opportunity/trigger/3.1.message

# プレイヤーが"不運"と"踊"っちまった時
    tellraw @a[distance=..30] [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"があああああッ･･！！"}]
    effect give @s unluck 30 1

# ダメージを受ける
    # 与えるダメージ = 3.5
        data modify storage lib: Argument.Damage set value 3.5f
    # 第一属性
        data modify storage lib: Argument.AttackType set value "Physical"
# 補正function
    function lib:damage/modifier
# 対象は自分
    function lib:damage/
# リセット
    function lib:damage/reset


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


text:
#> asset:artifact/0441.awaited_opportunity/trigger/3.3.attack
#
# 破壊っわす
#
# @within function asset:artifact/0441.awaited_opportunity/trigger/3.main

# 演出
    particle minecraft:block redstone_block ~ ~1 ~ 0.1 0.1 0.1 1 10

# ダメージを与える
    # 与えるダメージ
        data modify storage lib: Argument.Damage set value 39.5f
    # 第一属性
        data modify storage lib: Argument.AttackType set value "Physical"
# 補正function
    execute as @p[tag=this] run function lib:damage/modifier
# 対象に
    function lib:damage/
# リセット
    function lib:damage/reset


text:
#> asset:artifact/0441.awaited_opportunity/trigger/3.1.message
#
# メッセージを流す
#
# @within function asset:artifact/0441.awaited_opportunity/trigger/3.main
#> Private
# @private
    #declare score_holder $Random

# マガジンマーク召喚
    execute as @e[type=#lib:living,type=!player,tag=Victim,distance=..150] at @s positioned ~ ~1 ~ run summon area_effect_cloud ^0.5 ^ ^ {CustomNameVisible:1b,Radius:0f,Duration:20,CustomName:'{"text":"！？","bold":true}'}
# 効果音
    playsound minecraft:item.trident.return player @a ~ ~ ~ 1 0

# ランダムでメッセージを垂れ流す
    # 疑似乱数取得
        execute store result score $Random Temporary run function lib:random/
    # ほしい範囲に剰余算
        scoreboard players operation $Random Temporary %= $100 Const
    # メッセージ出力
        execute if score $Random Temporary matches 0..4 run tellraw @a[distance=..30] [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"あんまチョーシくれてっとひき肉にしちまうよ！"}]
        execute if score $Random Temporary matches 5..9 run tellraw @a[distance=..30] [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"おまえも････ うるさい蟲だ････"}]
        execute if score $Random Temporary matches 10..14 run tellraw @a[distance=..30] [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"殺し合いだッ...！クソ野郎！！"}]
        execute if score $Random Temporary matches 15..19 run tellraw @a[distance=..30] [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"フザけろよ････？ コラ････"}]
        execute if score $Random Temporary matches 20..24 run tellraw @a[distance=..30] [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"まだ”疼き”は 止まらねーゾぉ･･？"}]
        execute if score $Random Temporary matches 25..29 run tellraw @a[distance=..30] [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"カチ割ってやんゾ！？そのド頭ぁっ！！"}]
        execute if score $Random Temporary matches 30..34 run tellraw @a[distance=..30] [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"てめーも海に沈めてやんよォ！！"}]
        execute if score $Random Temporary matches 35..39 run tellraw @a[distance=..30] [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"ケンカの話の時間だ！コラァ！！"}]
        execute if score $Random Temporary matches 40..44 run tellraw @a[distance=..30] [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"おぉ！上等だよ！てめーら上等だってんだよ！！"}]
        execute if score $Random Temporary matches 45..49 run tellraw @a[distance=..30] [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"今夜で”オワリ”にしてやるよ！"}]
        execute if score $Random Temporary matches 50..54 run tellraw @a[distance=..30] [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"冥府に送っちまえってよォ！！"}]
        execute if score $Random Temporary matches 55..59 as @e[type=#lib:living,type=!player,tag=Victim,distance=..150] run tellraw @a [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"“事故”る奴は････“不運”と”踊”っちまったんだよ････"}]
        execute if score $Random Temporary matches 60..64 run tellraw @a[distance=..30] [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"てめェの臓物ブチまけてやる････！！"}]
        execute if score $Random Temporary matches 65..69 run tellraw @a[distance=..30] [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"俺が手に入れてやる･･･！その領域･･！”スピードの向こう側”を･･！！"}]
        execute if score $Random Temporary matches 70..74 run tellraw @a[distance=..30] [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"疼くんだよゥ････"}]
        execute if score $Random Temporary matches 75..79 run tellraw @a[distance=..30] [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"楽しーぜェ！？月が狂っちまってやがるぜェ！？てめーらよぅ！！"}]
        execute if score $Random Temporary matches 80..84 run tellraw @a[distance=..30] [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"”ひき肉”だッ！！てめーらぁ！？"}]
        execute if score $Random Temporary matches 85..94 run tellraw @a[distance=..30] [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"”全部”････潰してくれてやんからよぅ････"}]
        execute if score $Random Temporary matches 95..99 run tellraw @a[distance=..30] [{"text":"<","color":"white"},{"selector":"@s"},{"text":"> "},{"text":"めんどくせーから全部殺すか？あ？"}]

    # プレイヤーが"不運"と"踊"っちまった時
        execute if score $Random Temporary matches 55..59 run function asset:artifact/0441.awaited_opportunity/trigger/3.2.hardluck

    # スピードの向こう側
        execute if score $Random Temporary matches 65..69 run effect give @s speed 30 10 true

    # リセット
        scoreboard players reset $Random Temporary


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

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


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

execute if data storage asset:context {id:822} run function asset:artifact/0822.sound_of_a_star/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 822
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"星の音","color":"aqua"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['[{"text":"「やがて星となって再会しよう。」","color":"gray"}]','""','[{"text":"前方に星を発射する","color":"gray"}]','[{"text":"使用時のMPの割合により","color":"gray"}]','[{"text":"発射する星の数が変化する","color":"gray"}]']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    # data modify storage asset:artifact RemainingCount set value
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "auto"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "onClick"
# 神器の発動条件 (TextComponentString) (オプション)
    # data modify storage asset:artifact Condition set value
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.Damage set value [800,1200]
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackType set value [Magic]
# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.ElementType set value [None]
# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.BypassResist set value
# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.IsRangeAttack set value "never"
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackRange set value 30
# MP消費量 (int)
    data modify storage asset:artifact MPCost set value 60
# MP必要量 (int) (オプション)
    # data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
    data modify storage asset:artifact LocalCooldown set value 30
# グローバルクールダウン (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/0822.sound_of_a_star/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0822.sound_of_a_star/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/0822.sound_of_a_star/trigger/3.main


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

# 最初にMP割合を求める
# 最大MPを取得する
    execute store result score $MPMaxValue Temporary run function lib:mp/get_max
# 使用直前のMPを取得する
    execute store result score $MPValue Temporary run function lib:mp/get

# MP現在量を100倍する
    scoreboard players operation $MPValue Temporary *= $100 Const

# 割る
    scoreboard players operation $MPValue Temporary /= $MPMaxValue Temporary

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

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

# 演出
    playsound minecraft:block.beacon.activate player @a ~ ~ ~ 0.7 0 0
    playsound minecraft:block.beacon.activate player @a ~ ~ ~ 0.4 0.5 0
    playsound minecraft:block.bell.resonate player @a ~ ~ ~ 0.8 0.5

# 星を召喚 MP割合によって個数変化
    summon marker ~ ~1.8 ~ {Tags:["MU.Star","Projectile"]}

# UseIDをコピー
    execute positioned ~ ~1.8 ~ run scoreboard players operation @e[type=marker,tag=MU.Star,tag=!MU.Already,distance=..0.01,sort=nearest,limit=1] MU.UserID = @s UserID

# 所定の位置に移動させる
    execute positioned ~ ~1.8 ~ run tp @e[type=marker,tag=MU.Star,tag=!MU.Already,distance=..0.01,sort=nearest,limit=1] ^ ^ ^0.5 ~ ~

# 誤動作しないようにTagを付与
    execute positioned ~ ~1.8 ~ positioned ^ ^ ^0.5 run tag @e[type=marker,tag=MU.Star,distance=..0.01,sort=nearest,limit=1] add MU.Already

# MP割合が34%以上なら2個目
    execute if score $MPValue Temporary matches 34.. positioned ~ ~1.3 ~ run function asset:artifact/0822.sound_of_a_star/trigger/4.summon_2nd

# MP割合が67%以上なら3個目
    execute if score $MPValue Temporary matches 67.. positioned ~ ~1.3 ~ run function asset:artifact/0822.sound_of_a_star/trigger/5.summon_3rd

# 星の処理開始
    schedule function asset:artifact/0822.sound_of_a_star/trigger/star/01.schedule 1t replace

# リセット
    scoreboard players reset $MPMaxValue Temporary
    scoreboard players reset $MPValue Temporary


text:
#> asset:artifact/0822.sound_of_a_star/trigger/4.summon_2nd
#
# 2個目の星を召喚する
#
# @within function asset:artifact/0822.sound_of_a_star/trigger/3.main

# 2個目の星を召喚
    summon marker ~ ~ ~ {Tags:["MU.Star","MU.2","Projectile"]}

# UserIDをコピー
    scoreboard players operation @e[type=marker,tag=MU.Star,tag=MU.2,tag=!MU.Already,distance=..0.01,sort=nearest,limit=1] MU.UserID = @s UserID

# 発射のズレのためにマイナスのスコアをセット
    scoreboard players set @e[type=marker,tag=MU.Star,tag=MU.2,tag=!MU.Already,distance=..0.01,sort=nearest,limit=1] MU.Time -5

# 所定の位置に移動させる
    tp @e[type=marker,tag=MU.Star,tag=MU.2,tag=!MU.Already,distance=..0.01,sort=nearest,limit=1] ^0.4 ^ ^0.5 ~ ~

# 誤動作しないようにTagを付与
    execute positioned ^0.4 ^ ^0.5 run tag @e[type=marker,tag=MU.Star,tag=MU.2,tag=!MU.Already,distance=..0.01,sort=nearest,limit=1] add MU.Already


text:
#> asset:artifact/0822.sound_of_a_star/trigger/5.summon_3rd
#
# 3個目の星を召喚する
#
# @within function asset:artifact/0822.sound_of_a_star/trigger/3.main

# 3個目の星を召喚
    summon marker ~ ~ ~ {Tags:["MU.Star","MU.3","Projectile"]}

# UserIDをコピー
    scoreboard players operation @e[type=marker,tag=MU.Star,tag=MU.3,tag=!MU.Already,distance=..0.01,sort=nearest,limit=1] MU.UserID = @s UserID

# 発射のズレのためにマイナスのスコアをセット
    scoreboard players set @e[type=marker,tag=MU.Star,tag=MU.3,tag=!MU.Already,distance=..0.01,sort=nearest,limit=1] MU.Time -10

# 所定の位置に移動させる
    tp @e[type=marker,tag=MU.Star,tag=MU.3,tag=!MU.Already,distance=..0.01,sort=nearest,limit=1] ^-0.4 ^ ^0.5 ~ ~

# 誤動作しないようにTagを付与
    execute positioned ^-0.4 ^ ^0.5 run tag @e[type=marker,tag=MU.Star,tag=MU.3,tag=!MU.Already,distance=..0.01,sort=nearest,limit=1] add MU.Already


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

#> 定義類はここに
# @within function asset:artifact/0822.sound_of_a_star/trigger/**
    scoreboard objectives add MU.UserID dummy
    scoreboard objectives add MU.Time dummy


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

# スケジュールループ再開
    execute if entity @e[type=marker,tag=MU.Star,limit=1] run schedule function asset:artifact/0822.sound_of_a_star/trigger/star/01.schedule 1t replace


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


text:
#> asset:artifact/0822.sound_of_a_star/trigger/_index.d
# @private

#> tag and score holder
# @within function asset:artifact/0822.sound_of_a_star/trigger/**
    #declare tag MU.Star
    #declare tag MU.2
    #declare tag MU.3
    #declare tag MU.Already
    #declare tag MU.This
    #declare score_holder $MPMaxValue
    #declare score_holder $MPValue


text:
#> asset:artifact/0822.sound_of_a_star/trigger/star/04.banish
#
# 消滅処理
#
# @within function asset:artifact/0822.sound_of_a_star/trigger/star/02.main

# 演出
    playsound block.beacon.deactivate neutral @a ~ ~ ~ 0.8 0.8 0
    particle dust 0 1 1 2 ~ ~ ~ 0.4 0.4 0.4 0 15 normal @a
    particle scrape ~ ~ ~ 0.5 0.5 0.5 0 30 normal @a
# 消える
    kill @s


text:
#> asset:artifact/0822.sound_of_a_star/trigger/star/03.hit
#
# ヒット処理
#
# @within function asset:artifact/0822.sound_of_a_star/trigger/star/02.main

# 演出
    execute at @s run playsound block.beacon.deactivate neutral @a ~ ~ ~ 0.8 0.8 0
    execute at @s run particle dust 0 1 1 2 ~ ~ ~ 0.4 0.4 0.4 0 15 normal @a
    execute at @s run particle scrape ~ ~ ~ 0.5 0.5 0.5 0 30 normal @a

# 鈍足を1秒付与
    effect give @e[type=#lib:living,type=!player,tag=!Uninterferable,dx=0,sort=nearest,limit=1] slowness 1 1 true

# 自身にtagを付与
    tag @s add MU.This

# ダメージ
    data modify storage lib: Argument.Damage set value 800.0f
    execute if entity @s[tag=MU.2] run data modify storage lib: Argument.Damage set value 1000.0f
    execute if entity @s[tag=MU.3] run data modify storage lib: Argument.Damage set value 1200.0f
    data modify storage lib: Argument.AttackType set value "Magic"
    data modify storage lib: Argument.ElementType set value "None"
    execute at @s as @a if score @s UserID = @e[type=marker,tag=MU.This,distance=..0.01,sort=nearest,limit=1] MU.UserID run function lib:damage/modifier
    execute as @e[type=#lib:living,type=!player,tag=!Uninterferable,dx=0,sort=nearest,limit=1] run function lib:damage/
# リセット
    function lib:damage/reset

# 消える
    kill @s


text:
#> asset:artifact/0822.sound_of_a_star/trigger/star/01.schedule
#
# 星のスケジュールループを回す場所
#
# @within function
#   asset:artifact/0822.sound_of_a_star/trigger/3.main
#   asset:artifact/0822.sound_of_a_star/trigger/star/02.main
#   asset:artifact/0822.sound_of_a_star/trigger/rejoin_process

# 処理
    execute if entity @e[type=marker,tag=MU.Star,limit=1] as @e[type=marker,tag=MU.Star] at @s run function asset:artifact/0822.sound_of_a_star/trigger/star/02.main


text:
#> asset:artifact/0822.sound_of_a_star/trigger/star/vfx
#
# 星の形
#
# @within function asset:artifact/0822.sound_of_a_star/trigger/star/02.main

# [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYArAGYAccAbAAwDM9AtFQIwUBMLALO1wosARnADGYluwCGvAOy8AnGOFz67RWFwZpAWwTJAW74ACdlrAxpAJz0BnJODEB7PBghJGuClae6HYADdpFDwDcAAPJHoAOgEyXCgogF8k3AgnfyCQsLBIxHoEqNiuMhTcJwoKWzh3fNxRAC80OCso3DRbACE4JpaAUQBHPGCUKABlSzE4EkQKYOqy8Gh4UnQscwJiUip6CiJpKiohIn4iPkUyXjY5DRZaaVo4CmEuOUYiLkZzHX1SEy5zJYbLp7IhHC43B4vD4-GDAsFQv48iwYnFCvkypAMnCsoi4XkCmBEvliqVUmAKlUam0wI1mq06mAOt1elZBsMUKMJtIpjM5igFqklrADGAxGgrGIUDh8IQZmBpBQyIw6FRaCw5LRaMI+Go4CJpldFOw4NJpIp6HAyOx6ADtHpRYAwxVMgOsdn8zlctXiYrgbhamQROQJsXRKNimJsRDQeFBMXotBKuFsEGstUJcE5aBg1SQNsJPlTEAMhI6fSzObg7JG40m0yQ-MF2GFK2Q4sl0o2ctIvCY1oo7DOwl4XHYuqoOtkjCEVEERDE0i4qkUVF43wdpGddosbpBHoh3twU39DPAuODSHD7DDqMj0mjsaKCaTYBTaZpmfQlbz9ALTiLJbtLY5ZftU1acrWPL1rM8xwIskAiqQ7ZSjKmzylw2pyFa5psCqih8MI0iMCwii8LwQhiPQDzSGQEh7HAmj2r8yDOl8uBAu6cKepCiBcISx7Fqe8LZEiNLEvGjB3g+cbRBhyaplY6a4J+2a5og+a4IW0jFjSZYVmBQw1tyvINrB8HLKKyGdrgaE9owiZwHIiosEQcD0GcShEPhwhUGI+G0OwjCMLwppkPQmpsWAPyioAS3mACIMgAXCYAYEqusCoLgl6UK+iegYifiYnJOSUYxjJ6jye+jIqd+6m-pp-7aYBTLAfpVaGRBxnQY2cFJAAukAA_3

# ある程度数値変えたのでImportKeyはほとんど役に立たない、ので今後変えるときは再度細かく調整すること

# 円 2
    particle dust 0 1 1 0.4 ^-0.1 ^0.1625 ^ 0 0 0 0 1 normal @s
    particle dust 0 1 1 0.4 ^-0.04056 ^0.11931 ^ 0 0 0 0 1 normal @s
    particle dust 0 1 1 0.4 ^-0.13674 ^0.04944 ^ 0 0 0 0 1 normal @s
    particle dust 0 1 1 0.4 ^-0.15944 ^0.11931 ^ 0 0 0 0 1 normal @s
# 線 1
    particle dust 0 1 1 0.4 ^0.125 ^0 ^ 0 0 0 0 1 normal @s
    particle dust 0 1 1 0.4 ^0.0625 ^-0.0625 ^ 0 0 0 0 1 normal @s
    particle dust 0 1 1 0.4 ^0 ^-0.125 ^ 0 0 0 0 1 normal @s
# 線 2
    particle dust 0 1 1 0.4 ^-0.125 ^0 ^ 0 0 0 0 1 normal @s
    particle dust 0 1 1 0.4 ^-0.0625 ^-0.0625 ^ 0 0 0 0 1 normal @s
    particle dust 0 1 1 0.4 ^0 ^0.125 ^ 0 0 0 0 1 normal @s
# 円 1
    particle dust 0 1 1 0.4 ^0.1 ^0.1625 ^ 0 0 0 0 1 normal @s
    particle dust 0 1 1 0.4 ^0.15944 ^0.11931 ^ 0 0 0 0 1 normal @s
    particle dust 0 1 1 0.4 ^0.13674 ^0.04944 ^ 0 0 0 0 1 normal @s
    particle dust 0 1 1 0.4 ^0.04056 ^0.11931 ^ 0 0 0 0 1 normal @s

# 円 3
    particle dust 0.565 0.733 0.733 0.4 ^0 ^-0.23 ^ 0 0 0 0 1 normal @s
    particle dust 0.565 0.733 0.733 0.4 ^0.08034 ^-0.21727 ^ 0 0 0 0 1 normal @s
    particle dust 0.565 0.733 0.733 0.4 ^0.15282 ^-0.18034 ^ 0 0 0 0 1 normal @s
    particle dust 0.565 0.733 0.733 0.4 ^0.21034 ^-0.12282 ^ 0 0 0 0 1 normal @s
    particle dust 0.565 0.733 0.733 0.4 ^0.24727 ^-0.05034 ^ 0 0 0 0 1 normal @s
    particle dust 0.565 0.733 0.733 0.4 ^0.26 ^0.03 ^ 0 0 0 0 1 normal @s
    particle dust 0.565 0.733 0.733 0.4 ^0.24727 ^0.11034 ^ 0 0 0 0 1 normal @s
    particle dust 0.565 0.733 0.733 0.4 ^0.21034 ^0.18282 ^ 0 0 0 0 1 normal @s
    particle dust 0.565 0.733 0.733 0.4 ^0.15282 ^0.24034 ^ 0 0 0 0 1 normal @s
    particle dust 0.565 0.733 0.733 0.4 ^0.08034 ^0.27727 ^ 0 0 0 0 1 normal @s
    particle dust 0.565 0.733 0.733 0.4 ^0 ^0.29 ^ 0 0 0 0 1 normal @s
    particle dust 0.565 0.733 0.733 0.4 ^-0.08034 ^0.27727 ^ 0 0 0 0 1 normal @s
    particle dust 0.565 0.733 0.733 0.4 ^-0.15282 ^0.24034 ^ 0 0 0 0 1 normal @s
    particle dust 0.565 0.733 0.733 0.4 ^-0.21034 ^0.18282 ^ 0 0 0 0 1 normal @s
    particle dust 0.565 0.733 0.733 0.4 ^-0.24727 ^0.11034 ^ 0 0 0 0 1 normal @s
    particle dust 0.565 0.733 0.733 0.4 ^-0.26 ^0.03 ^ 0 0 0 0 1 normal @s
    particle dust 0.565 0.733 0.733 0.4 ^-0.24727 ^-0.05034 ^ 0 0 0 0 1 normal @s
    particle dust 0.565 0.733 0.733 0.4 ^-0.21034 ^-0.12282 ^ 0 0 0 0 1 normal @s
    particle dust 0.565 0.733 0.733 0.4 ^-0.15282 ^-0.18034 ^ 0 0 0 0 1 normal @s
    particle dust 0.565 0.733 0.733 0.4 ^-0.08034 ^-0.21727 ^ 0 0 0 0 1 normal @s

# 黒い部分
    particle dust 0 0 0 0.5 ^0 ^0.01 ^ 0 0 0 0 1 normal @s
    particle dust 0 0 0 0.5 ^-0.05 ^0.06 ^ 0 0 0 0 1 normal @s
    particle dust 0 0 0 0.5 ^0.05 ^0.06 ^ 0 0 0 0 1 normal @s


text:
#> asset:artifact/0822.sound_of_a_star/trigger/star/02.main
#
# 星の基本処理部
#
# @within function asset:artifact/0822.sound_of_a_star/trigger/star/01.schedule

# スコア
    scoreboard players add @s MU.Time 1

# 演出
    execute as @a[distance=..32] facing entity @s eyes run function asset:artifact/0822.sound_of_a_star/trigger/star/vfx

# 少しとどまってから発射
    execute if entity @s[scores={MU.Time=10..}] run tp @s ^ ^ ^1

# ヒット処理
    execute positioned ~-0.5 ~-0.5 ~-0.5 if entity @e[type=#lib:living,type=!player,tag=!Uninterferable,dx=0,limit=1] run function asset:artifact/0822.sound_of_a_star/trigger/star/03.hit

# 壁の中、壁が目の前にあると消える
    execute unless block ~ ~ ~ #lib:no_collision run function asset:artifact/0822.sound_of_a_star/trigger/star/04.banish
    execute unless block ^ ^ ^1 #lib:no_collision run function asset:artifact/0822.sound_of_a_star/trigger/star/04.banish

# 消滅
    execute if entity @s[scores={MU.Time=50..}] run kill @s

# スケジュールループ
    schedule function asset:artifact/0822.sound_of_a_star/trigger/star/01.schedule 1t replace


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

execute if data storage asset:context {id:364} run function asset:artifact/0364.red_knights_sword/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 364
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"赤い騎士の剣","color":"dark_red","bold":true,"italic":true}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"渇きは収まることを知らない。","color":"dark_red"}','[{"text":"血の欲望は","color":"dark_red"},{"text":"貴方","color":"dark_red","underlined":true},{"text":"の身体まで求める。","color":"dark_red"}]','{"text":"壊れたとしても血を与えれば再生する。","color":"dark_red","underlined":true}']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    data modify storage asset:artifact RemainingCount set value 13
# 神器を発動できるスロット (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 [900]
# 攻撃に関する情報 -攻撃タイプ (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 10
# グローバルクールダウン (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"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

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


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


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

#> Private
# @private
    #declare score_holder $UseCount

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

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

# 残り回数が1回の時発動した場合
    execute unless data storage asset:context Items.mainhand.id run data modify storage api: Argument.ID set value 365
    execute unless data storage asset:context Items.mainhand.id run function api:artifact/give/from_id
    execute unless data storage asset:context Items.mainhand.id run tellraw @s {"text":"赤い騎士の剣は血を欲している","color":"dark_red","bold":true}

# 演出
    playsound minecraft:item.trident.return player @a ~ ~ ~ 1 2

# ほしい範囲に剰余算
    execute store result score $Random Temporary run function lib:random/
# 疑似乱数取得
    scoreboard players operation $Random Temporary %= $3 Const
# メッセージ出力
    execute if score $Random Temporary matches 0 anchored eyes positioned ^ ^ ^1 run function asset:artifact/0364.red_knights_sword/trigger/particle/particle_1
    execute if score $Random Temporary matches 1 anchored eyes positioned ^ ^ ^1 run function asset:artifact/0364.red_knights_sword/trigger/particle/particle_2
    execute if score $Random Temporary matches 2 anchored eyes positioned ^ ^ ^1 run function asset:artifact/0364.red_knights_sword/trigger/particle/particle_3
# リセット
    scoreboard players reset $Random Temporary

# ダメージ設定
    # 与えるダメージ = 900
        data modify storage lib: Argument.Damage set value 900f
    # 第一属性
        data modify storage lib: Argument.AttackType set value "Physical"
    # ダメージ
        function lib:damage/modifier
        execute as @e[type=#lib:living,type=!player,tag=Victim,distance=..10] run function lib:damage/

# 自身に5の防御貫通ダメージを与える
    # ダメージ量
        data modify storage lib: Argument.Damage set value 5.0f
    # 第一属性
        data modify storage lib: Argument.AttackType set value "Physical"
    # 補正をしない
        data modify storage lib: Argument.FixedDamage set value true
    # 死亡メッセージ
        data modify storage lib: Argument.DeathMessage set value ['[{"translate": "%1$sは赤い騎士の剣に呑まれた。","with":[{"selector":"@s"}]}]']
    # ダメージ
        function lib:damage/modifier_continuation
        execute as @s[tag=!PlayerShouldInvulnerable] run function lib:damage/
# リセット
    function lib:damage/reset


text:
#> asset:artifact/0364.red_knights_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:364} run function asset:artifact/0364.red_knights_sword/trigger/2.check_condition