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

# タグを消す(チェストプレート側で実行)
    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,643,5]
# 補正の削除
    function api:modifier/defense/thunder/remove


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

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

repo_name: ProjectTSB/TheSkyBlessing

repo_language: mcfunction

mime_type: text/plain


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

execute if data storage asset:context {id:397} run function asset:artifact/0397.floor_sublimation_wing/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 397
# 神器のベースアイテム
    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","bold":true}]'
# 神器の説明文 (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 25
# 神器を発動できるスロット (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 20
# MP必要量 (int) (オプション)
    # data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
    data modify storage asset:artifact LocalCooldown set value 200
# グローバルクールダウン (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/0397.floor_sublimation_wing/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/0397.floor_sublimation_wing/trigger/1.trigger
#

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

# 他にアイテム等確認する場合はここに書く
    # 条件チェックに必要なオブジェクトの初期化
        scoreboard players set $397_Count Temporary 0
        scoreboard players set $397_Stat Temporary 0
    # Y <= 32ブロック に埋まることなくTPできるブロックが存在するか
        execute positioned ~ ~1 ~ run function asset:artifact/0397.floor_sublimation_wing/trigger/2.1.check_block
        execute if score $397_Stat Temporary matches 1 as @e[type=area_effect_cloud,tag=B1.Marker,distance=..32,limit=1] at @s if predicate lib:is_ban_tp_area run scoreboard players set $397_Stat Temporary 0
        execute if score $397_Stat Temporary matches 0 if entity @s[tag=CanUsed] run function lib:message/artifact/can_not_use_here
        execute if score $397_Stat Temporary matches 0 run tag @s remove CanUsed

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

# オブジェクトの開放
    kill @e[type=area_effect_cloud,tag=B1.Marker,distance=..32,limit=1]
    scoreboard players reset $397_Count Temporary
    scoreboard players reset $397_Stat Temporary


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

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

# ここから先は神器側の効果の処理を書く
    # 演出(テレポート元)
        playsound minecraft:entity.enderman.teleport player @a ~ ~ ~ 1 1.3
        playsound minecraft:entity.player.attack.weak player @a ~ ~ ~ 1 0.2
        particle minecraft:reverse_portal ~ ~ ~ 0.1 0.1 0.1 1 150
        particle minecraft:witch ~ ~ ~ 0.1 0.1 0.1 5 30

    # テレポート
        execute at @e[type=area_effect_cloud,tag=B1.Marker,distance=..32,limit=1] rotated as @s run tp @s ~ ~ ~

    # 演出(テレポート後)
        execute at @s run particle minecraft:reverse_portal ~ ~ ~ 0.1 0.1 0.1 1 150
        execute at @s run particle minecraft:witch ~ ~ ~ 0.1 0.1 0.1 5 30
        execute at @s run playsound minecraft:entity.enderman.teleport player @a ~ ~ ~ 1 1.3
        execute at @s run playsound minecraft:entity.player.attack.weak player @a ~ ~ ~ 1 0.2


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


text:
#> asset:artifact/0397.floor_sublimation_wing/trigger/_index.d
#
#
# @private

#> Temp
# 条件チェックに必要なスコアホルダー、タグ
#
# $397_Count: 2.1.check_blockの再起用
# $397_Stat: 現在の条件チェック結果(0: 条件を満たさない, 1: 条件を満たす)
#
# 397.Marker: TPに使用
#
# @within function
#   asset:artifact/0397.floor_sublimation_wing/trigger/2.*
#   asset:artifact/0397.floor_sublimation_wing/trigger/3.main
#
    #declare score_holder $397_Count
    #declare score_holder $397_Stat
    #declare tag B1.Marker


text:
#> asset:artifact/0397.floor_sublimation_wing/trigger/2.1.check_block
#
# Y <= 32 にテレポートすることができるブロックが存在するかチェックする
#
# @within function
#   asset:artifact/0397.floor_sublimation_wing/trigger/2.check_condition
#   asset:artifact/0397.floor_sublimation_wing/trigger/2.1.check_block

# 加算
    scoreboard players add $397_Count Temporary 1

# 実行位置に条件を満たすブロックがあれば $397_Stat を1に
    execute unless block ~ ~ ~ #lib:no_collision if block ~ ~1 ~ #lib:no_collision if block ~ ~2 ~ #lib:no_collision run scoreboard players set $397_Stat Temporary 1

# 位置保存用AEC召喚
    execute if score $397_Stat Temporary matches 1 run summon area_effect_cloud ~ ~1 ~ {Tags:["B1.Marker"],Particle:"block air",Radius:0f,Age:-1,Duration:1}

# 32マスまで再起
    execute if score $397_Count Temporary matches ..31 if score $397_Stat Temporary matches 0 positioned ~ ~1 ~ run function asset:artifact/0397.floor_sublimation_wing/trigger/2.1.check_block


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

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


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

execute if data storage asset:context {id:627} run function asset:artifact/0627.flame_boots/give/2.give


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

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

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

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


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


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

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

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

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

#ちょっとした演出
    particle flame ~ ~0.3 ~ 0.4 0.2 0.4 0 10 normal @a
    playsound minecraft:entity.blaze.shoot player @a ~ ~ ~ 0.4 1

# 一式検知
    execute if data storage asset:context id.all{head:624,chest:625,legs:626,feet:627} run function asset:artifact/0625.flame_armor/trigger/4.fullset


text:
#> asset:artifact/0627.flame_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:627} run function asset:artifact/0627.flame_boots/trigger/2.check_condition


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

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

# 演出
    playsound entity.generic.burn player @a ~ ~ ~ 0.2 1 0

# フルセットの耐性削除
    execute if data storage asset:context id.all{head:624,chest:625,legs:626,feet:627} run function asset:artifact/0625.flame_armor/trigger/5.fullset_dis_equip


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

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


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

execute if data storage asset:context {id:628} run function asset:artifact/0628.ice_helm/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 628
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:leather_helmet"
# 神器の名前 (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 "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 ["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,628,6],Slot:"head"},{AttributeName:"generic.armor_toughness",Name:"generic.armor_toughness",Amount:0.5,Operation:0,UUID:[I;1,1,628,6],Slot:"head"}]}

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


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


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

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

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

# 引数の設定
    # UUID
        data modify storage api: Argument.UUID set value [I;1,1,628,6]
    # 補正値
        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 ~ ~1.7 ~ 0.4 0.2 0.4 0 6 normal @a
    particle falling_dust snow_block ~ ~1.7 ~ 0.4 0.2 0.4 0 6 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/0628.ice_helm/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:628} run function asset:artifact/0628.ice_helm/trigger/2.check_condition


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

# UUID
    data modify storage api: Argument.UUID set value [I;1,1,628,6]
# 補正の削除
    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/0328.attract_hook_shot/register
#
# 神器プールへの登録処理
#
# @within tag/function asset:artifact/register

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


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

execute if data storage asset:context {id:328} run function asset:artifact/0328.attract_hook_shot/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 328
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:bow"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"引き寄せフックショット","color":"yellow"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['[{"text":"ヒットした","color":"white"},{"text":"敵","color":"red"},{"text":"を使用者の手前まで","color":"white"},{"text":"テレポート","color":"yellow"},{"text":"させる。","color":"white"}]']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    # data modify storage asset:artifact RemainingCount set value
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "mainhand"
# 神器のトリガー (string) Wikiを参照
    data modify storage asset:artifact Trigger set value "onAttackByProjectile"
# 神器の発動条件 (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 20
# 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 {}

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


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


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

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

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

# ヒットした敵をプレイヤーの手前にテレポート
    execute as @e[type=#lib:living,type=!player,tag=Victim,distance=..150] rotated ~ 0 run tp @s ^ ^ ^1

# 演出
    execute as @e[type=#lib:living,type=!player,tag=Victim,distance=..150] at @s run particle minecraft:witch ~ ~ ~ 0.5 0.5 0.5 2 50 force @a[distance=..150]
    playsound minecraft:entity.enderman.teleport player @s ~ ~ ~ 1 1


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


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

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


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

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


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

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

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

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


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

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


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

execute if data storage asset:context {id:707} run function asset:artifact/0707.mage_hat/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 707
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:leather_helmet"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"魔導士の帽子","color":"#360F57"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['[{"text":"魔導士が普段身に着けている帽子。","color":"gray"}]','[{"text":"魔法耐性+5% 魔法攻撃+5%","color":"dark_purple"}]','[{"text":"MP回復量+5%","color":"green"}]','[{"text":"物理耐性-5% 物理攻撃-5%","color":"dark_red"}]']
# 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 ["Flora", "Nyaptov", "Wi-ki", "Rumor"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    data modify storage asset:artifact CustomNBT set value {HideFlags:68,display:{color:3542871},Unbreakable:1b,AttributeModifiers:[{AttributeName:"generic.armor",Name:"generic.armor",Amount:3.5,Operation:0,UUID:[I;1,1,707,6],Slot:"head"},{AttributeName:"generic.armor_toughness",Name:"generic.armor_toughness",Amount:1,Operation:0,UUID:[I;1,1,707,6],Slot:"head"}]}

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


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


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

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

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

# 魔法耐性+5%
    data modify storage api: Argument.UUID set value [I;1,1,707,6]
    data modify storage api: Argument.Amount set value 0.05
    data modify storage api: Argument.Operation set value "multiply_base"
    function api:modifier/defense/magic/add

# 魔法攻撃+5%
    data modify storage api: Argument.UUID set value [I;1,1,707,6]
    data modify storage api: Argument.Amount set value 0.05
    data modify storage api: Argument.Operation set value "multiply_base"
    function api:modifier/attack/magic/add

# MP回復量+5%
    data modify storage api: Argument.UUID set value [I;1,1,707,6]
    data modify storage api: Argument.Amount set value 0.05
    data modify storage api: Argument.Operation set value "multiply_base"
    function api:modifier/mp_regen/add

# 物理耐性-5%
    data modify storage api: Argument.UUID set value [I;1,1,707,6]
    data modify storage api: Argument.Amount set value -0.05
    data modify storage api: Argument.Operation set value "multiply_base"
    function api:modifier/defense/physical/add

# 物理攻撃-5%
    data modify storage api: Argument.UUID set value [I;1,1,707,6]
    data modify storage api: Argument.Amount set value -0.05
    data modify storage api: Argument.Operation set value "multiply_base"
    function api:modifier/attack/physical/add

# 演出
    particle witch ~ ~1.7 ~ 0.3 0.1 0.3 1 10 normal @a
    particle enchant ~ ~1.7 ~ 0.4 0.1 0.4 0 30 normal @a
    playsound minecraft:block.enchantment_table.use player @a ~ ~ ~ 0.8 0 0


text:
#> asset:artifact/0707.mage_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:707} run function asset:artifact/0707.mage_hat/trigger/2.check_condition


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

# 魔法耐性、魔法攻撃、MP回復量、物理耐性、物理攻撃の削除

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

# UUID
    data modify storage api: Argument.UUID set value [I;1,1,707,6]
# 補正の削除
    function api:modifier/attack/magic/remove

# UUID
    data modify storage api: Argument.UUID set value [I;1,1,707,6]
# 補正の削除
    function api:modifier/mp_regen/remove

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

# UUID
    data modify storage api: Argument.UUID set value [I;1,1,707,6]
# 補正の削除
    function api:modifier/attack/physical/remove


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

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


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

execute if data storage asset:context {id:647} run function asset:artifact/0647.thorn_armor/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 647
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:leather_chestplate"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"ソーンアーマー","color":"#1D5923"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['[{"text":"荊の鎧を全て纒いし時、血吸いの荊が目を覚ます","color":"#1D5923"}]','[{"text":"水耐性+5% ","color":"aqua"},{"text":"雷耐性+5%","color":"yellow"}]']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    # data modify storage asset:artifact RemainingCount set value
# 神器を発動できるスロット (string) Wikiを参照
    data modify storage asset:artifact Slot set value "chest"
# 神器のトリガー (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"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    data modify storage asset:artifact CustomNBT set value {HideFlags:68,display:{color:2454317},Unbreakable:1b,AttributeModifiers:[{AttributeName:"generic.armor",Name:"generic.armor",Amount:7,Operation:0,UUID:[I;1,1,647,5],Slot:"chest"},{AttributeName:"generic.armor_toughness",Name:"generic.armor_toughness",Amount:2,Operation:0,UUID:[I;1,1,647,5],Slot:"chest"}]}

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


text:
#> asset:artifact/0647.thorn_armor/trigger/4.fullset
#
# フルセット時発動の処理
#
# @within function
#   asset:artifact/0646.thorn_helm/trigger/3.main
#   asset:artifact/0647.thorn_armor/trigger/3.main
#   asset:artifact/0648.thorn_leggings/trigger/3.main
#   asset:artifact/0649.thorn_boots/trigger/3.main

# 演出
    particle dust 0 0.2 0 1.5 ~ ~0.05 ~ 3 0 3 0 250 normal @a
    particle dust 0 0.2 0 1 ~ ~1.2 ~ 0.4 0.4 0.4 0 20 normal @a

# タグを付与
    tag @s add HZ.FullSet

# 演出
    particle dust 0 0.2 0 1 ~ ~1.2 ~ 0.4 0.5 0.6 0 80 normal @a
    playsound block.sweet_berry_bush.place player @a ~ ~ ~ 1 0 0

# ループスタート
    schedule function asset:artifact/0647.thorn_armor/trigger/9.loop 1t replace


text:
#> asset:artifact/0647.thorn_armor/trigger/7.hurt
#
# 被ダメ時の特殊効果
#
# @within function asset:artifact/0647.thorn_armor/trigger/6.hurt_trigger

#> Private
# @private
    #declare score_holder $Fluctuation

# クールタイム処理
    scoreboard players set @s HZ.CoolDown 20

# 演出
    # 相手に赤いパーティクル
        execute at @e[type=#lib:living,tag=Attacker,distance=..50] run particle falling_dust redstone_block ~ ~1.2 ~ 0.5 0.5 0.5 0 20 normal @a

    # 再帰使用：相手に棘を伸ばす演出
        execute positioned ~ ~1.5 ~ facing entity @e[type=#lib:living,tag=Attacker,distance=..50] eyes run function asset:artifact/0647.thorn_armor/trigger/8.exetend_thorn

# 被ダメージ時体力回復
    data modify storage lib: Argument.Heal set value 5.0f
    function lib:heal/modifier
    function lib:heal/
    function lib:heal/reset

# 被ダメージ時攻撃者にダメージ
    data modify storage lib: Argument.Damage set value 75.0f
    data modify storage lib: Argument.AttackType set value "Physical"
    function lib:damage/modifier
    execute as @e[type=#lib:living,type=!player,tag=Attacker,distance=..50] run function lib:damage/
    function lib:damage/reset


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

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

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


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

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

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

# 本来ならここにフルセット被ダメージ時の処理を置いて置くべきだと思うけど、流石に装備だし...となっているので
# 被ダメージ時トリガーは別に使っています ダメなようならレビューしてください

# 水耐性+5%
    data modify storage api: Argument.UUID set value [I;1,1,647,5]
    data modify storage api: Argument.Amount set value 0.05
    data modify storage api: Argument.Operation set value "multiply_base"
    function api:modifier/defense/water/add

# 雷耐性+5%
    data modify storage api: Argument.UUID set value [I;1,1,647,5]
    data modify storage api: Argument.Amount set value 0.05
    data modify storage api: Argument.Operation set value "multiply_base"
    function api:modifier/defense/thunder/add

# 演出
    particle dust 0 0.2 0 1 ~ ~1.3 ~ 0.4 0.4 0.4 0 10 normal @a
    playsound minecraft:block.sweet_berry_bush.place player @a ~ ~ ~ 1 1 0

# フルセット
    execute if data storage asset:context id.all{head:646,chest:647,legs:648,feet:649} run function asset:artifact/0647.thorn_armor/trigger/4.fullset


text:
#> asset:artifact/0647.thorn_armor/trigger/8.exetend_thorn
#
# 棘が伸びる演出
#
# @within function
#   asset:artifact/0647.thorn_armor/trigger/7.hurt
#   asset:artifact/0647.thorn_armor/trigger/8.exetend_thorn

# 演出
    particle block oak_leaves ~ ~ ~ 0 0 0 0 1 normal @a
    particle dust 0 0.2 0 1.4 ~ ~ ~ 0.1 0.1 0.1 0 1 normal @a
    playsound minecraft:block.sweet_berry_bush.break player @a ~ ~ ~ 0.2 1 0

# 再帰処理
    execute if entity @s[distance=..50] positioned ~-0.5 ~-0.5 ~-0.5 unless entity @e[type=#lib:living,tag=Attacker,dx=0] positioned ~0.5 ~0.5 ~0.5 positioned ^ ^ ^0.5 run function asset:artifact/0647.thorn_armor/trigger/8.exetend_thorn


text:
#> asset:artifact/0647.thorn_armor/trigger/6.hurt_trigger
#
# 被ダメ時にTagがついているかチェック
#
# @within tag/function asset:artifact/damage/from_entity/

# フルセットなら実行
    execute if entity @s[tag=HZ.FullSet] unless entity @s[scores={HZ.CoolDown=0..}] run function asset:artifact/0647.thorn_armor/trigger/7.hurt


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

#> 定義類はここに
# @within function asset:artifact/0647.thorn_armor/trigger/**
    scoreboard objectives add HZ.CoolDown dummy


text:
#> asset:artifact/0647.thorn_armor/trigger/9.loop
#
# スケジュールループを実行
#
# @within function
#   asset:artifact/0647.thorn_armor/trigger/4.fullset
#   asset:artifact/0647.thorn_armor/trigger/10.loop_process
#   asset:artifact/0647.thorn_armor/trigger/rejoin_process

# 対象がいるなら実行
    execute as @a[tag=HZ.FullSet] at @s run function asset:artifact/0647.thorn_armor/trigger/10.loop_process


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

# スケジュールループのリスタート
    execute if entity @a[tag=HZ.FullSet,limit=1] run schedule function asset:artifact/0647.thorn_armor/trigger/9.loop 1t replace


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

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


text:
#> asset:artifact/0647.thorn_armor/trigger/_index.d
# @private

#> Private
# @within asset:artifact/0647.thorn_armor/trigger/**
    #declare tag HZ.FullSet


text:
#> asset:artifact/0647.thorn_armor/trigger/10.loop_process
#
# フルセット時の処理
#
# @within function asset:artifact/0647.thorn_armor/trigger/9.loop

# 演出
    particle dust 0 0.2 0 1 ~ ~1.3 ~ 0.8 0.4 0.8 0 2 normal @a

# 特殊効果のクールダウン処理
    execute if entity @s[scores={HZ.CoolDown=0..}] run scoreboard players remove @s HZ.CoolDown 1
    execute if entity @s[scores={HZ.CoolDown=..0}] run scoreboard players reset @s HZ.CoolDown

# ループ
    schedule function asset:artifact/0647.thorn_armor/trigger/9.loop 1t replace


text:
#> asset:artifact/0647.thorn_armor/trigger/5.fullset_dis_equip
#
# フルセット解除の処理
#
# @within function
#   asset:artifact/0646.thorn_helm/trigger/dis_equip/main
#   asset:artifact/0647.thorn_armor/trigger/dis_equip/main
#   asset:artifact/0648.thorn_leggings/trigger/dis_equip/main
#   asset:artifact/0649.thorn_boots/trigger/dis_equip/main

# リセット
    tag @s remove HZ.FullSet
    scoreboard players reset @s HZ.CoolDown


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

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

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

# フルセット解除
    execute if entity @s[tag=HZ.FullSet] run function asset:artifact/0647.thorn_armor/trigger/5.fullset_dis_equip


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

execute if data storage asset:context {id:172} run function asset:artifact/0172.icicle/give/2.give


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

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

# 神器のID (int) スプレッドシートの値を入れる
    data modify storage asset:artifact ID set value 172
# 神器のベースアイテム
    data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick"
# 神器の名前 (TextComponentString)
    data modify storage asset:artifact Name set value '{"text":"つらら","color":"yellow"}'
# 神器の説明文 (TextComponentString[])
    data modify storage asset:artifact Lore set value ['{"text":"おっきなつららがてきをひきよせやっつける"}']
# MP以外の消費物 (TextComponentString) (オプション)
    # data modify storage asset:artifact CostText set value
# 使用回数 (int) (オプション)
    # data modify storage asset:artifact RemainingCount set value
# 神器を発動できるスロット (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 ["つよい"]
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackType set value [Magic]
# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.ElementType set value [Water]
# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション)
    # data modify storage asset:artifact AttackInfo.BypassResist set value
# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.IsRangeAttack set value "every"
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
    data modify storage asset:artifact AttackInfo.AttackRange set value 4
# MP消費量 (int)
    data modify storage asset:artifact MPCost set value 300
# 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 6000
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableCooldownMessage set value
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
    # data modify storage asset:artifact DisableMPMessage set value
# 扱える神 (string[]) Wikiを参照
    data modify storage asset:artifact CanUsedGod set value ["Flora", "Nyaptov", "Wi-ki"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
    # data modify storage asset:artifact CustomNBT set value {}

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


text:
#> asset:artifact/0172.icicle/trigger/5.laser_summon
#
#
#
# @within function asset:artifact/0172.icicle/trigger/4.block_check

#> tag
# @private
    #declare tag 4S.First

# 弾を召喚
    summon area_effect_cloud ~ ~ ~ {Particle:"block air",Duration:220,Tags:["4S.First","4S.Laser","Uninterferable"]}
# ユーザーID適応
    scoreboard players operation @e[type=area_effect_cloud,tag=4S.First,distance=..30] 4S.UserID = @s UserID
# タグを消す
    tag @e[tag=4S.First] remove 4S.First

#演出
    function asset:artifact/0172.icicle/trigger/particle


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


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

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

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

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

# 着弾地点にマーカー召喚
    execute anchored eyes positioned ^ ^ ^ run function asset:artifact/0172.icicle/trigger/4.block_check

# タグを消す
    tag @s remove Landing

# スケジュール開始
    schedule function asset:artifact/0172.icicle/trigger/laser/schedule 1t replace


text:
#> asset:artifact/0172.icicle/trigger/4.block_check
#
#
#
# @within function
#       asset:artifact/0172.icicle/trigger/3.main
#       asset:artifact/0172.icicle/trigger/4.block_check

# 着弾検知
    execute unless block ^ ^ ^0.5 #lib:no_collision run tag @s add Landing
# 距離限界で着弾したことにする
    execute if entity @s[tag=!Landing,distance=8..10] run tag @s add Landing

# 演出
    particle cloud ~ ~ ~ 0 0 0 0 1

# 着弾
    execute if entity @s[tag=Landing] run function asset:artifact/0172.icicle/trigger/5.laser_summon

# 再起
    execute positioned ^ ^ ^0.5 if entity @s[tag=!Landing,distance=..10] run function asset:artifact/0172.icicle/trigger/4.block_check


text:
#> asset:artifact/0172.icicle/trigger/particle
#
#
#
# @within function asset:artifact/0172.icicle/trigger/5.laser_summon

# [ImportKey]: NobwRALgngDgpmAXGGB7ANlA5qgdmAGjAFdiBLAEyTAE4BGAYwGY4AjAFhoFoAmOi9l3YUAZjy40AHADYA7FwCGABhE0eSgKySKdJa0JhcCgLYJkgLE1AS5GAjfQAEdAzAUAnEwGck4BqmK4ISdSIGOD84Z08wADcFdGIzcAAPJCUiKGSAX3SiVwoyYg9EdgA6WSI3CBd-RBSwOHR0Mhg3M10a51QKiDMa72dcMKRpIgArYmMYJDoiVjgALzIB6qIyNwBResbm1YBHYhjMAGUnYKpEERjm5bcAITmF5x29+qgjhROkc-RmzIJwaHhqGhMDh8ERSJRqBQNBQeCwNEouEwRBQFEI4DoJEwKBRFLJ2LI8RplJJ2OwDEZTNQrHY6FxvDA0kQnK5jAUvD4-AEeiEuuFEOBorF4mAkkswGlqj8wDk8gUmGUKs4qjU6g0mi0lG0Ogouskgqg+oshmBRuNJtM7osait1mqtrt9i9juiPhc4FdbvMwo9Ha93mc3ZkALpAA_3
# 多角形 1-copy
particle cloud ~ ~ ~ 0 0 -3 0.1 0
particle cloud ~ ~ ~ 0.1299 0 -2.925 0.1 0
particle cloud ~ ~ ~ 0.25981 0 -2.85 0.1 0
particle cloud ~ ~ ~ 0.38971 0 -2.775 0.1 0
particle cloud ~ ~ ~ 0.51962 0 -2.7 0.1 0
particle cloud ~ ~ ~ 0.64952 0 -2.625 0.1 0
particle cloud ~ ~ ~ 0.77942 0 -2.55 0.1 0
particle cloud ~ ~ ~ 0.90933 0 -2.475 0.1 0
particle cloud ~ ~ ~ 1.03923 0 -2.4 0.1 0
particle cloud ~ ~ ~ 1.16913 0 -2.325 0.1 0
particle cloud ~ ~ ~ 1.29904 0 -2.25 0.1 0
particle cloud ~ ~ ~ 1.42894 0 -2.175 0.1 0
particle cloud ~ ~ ~ 1.55885 0 -2.1 0.1 0
particle cloud ~ ~ ~ 1.68875 0 -2.025 0.1 0
particle cloud ~ ~ ~ 1.81865 0 -1.95 0.1 0
particle cloud ~ ~ ~ 1.94856 0 -1.875 0.1 0
particle cloud ~ ~ ~ 2.07846 0 -1.8 0.1 0
particle cloud ~ ~ ~ 2.20836 0 -1.725 0.1 0
particle cloud ~ ~ ~ 2.33827 0 -1.65 0.1 0
particle cloud ~ ~ ~ 2.46817 0 -1.575 0.1 0
particle cloud ~ ~ ~ 2.59808 0 -1.5 0.1 0
particle cloud ~ ~ ~ 2.59808 0 -1.35 0.1 0
particle cloud ~ ~ ~ 2.59808 0 -1.2 0.1 0
particle cloud ~ ~ ~ 2.59808 0 -1.05 0.1 0
particle cloud ~ ~ ~ 2.59808 0 -0.9 0.1 0
particle cloud ~ ~ ~ 2.59808 0 -0.75 0.1 0
particle cloud ~ ~ ~ 2.59808 0 -0.6 0.1 0
particle cloud ~ ~ ~ 2.59808 0 -0.45 0.1 0
particle cloud ~ ~ ~ 2.59808 0 -0.3 0.1 0
particle cloud ~ ~ ~ 2.59808 0 -0.15 0.1 0
particle cloud ~ ~ ~ 2.59808 0 0 0.1 0
particle cloud ~ ~ ~ 2.59808 0 0.15 0.1 0
particle cloud ~ ~ ~ 2.59808 0 0.3 0.1 0
particle cloud ~ ~ ~ 2.59808 0 0.45 0.1 0
particle cloud ~ ~ ~ 2.59808 0 0.6 0.1 0
particle cloud ~ ~ ~ 2.59808 0 0.75 0.1 0
particle cloud ~ ~ ~ 2.59808 0 0.9 0.1 0
particle cloud ~ ~ ~ 2.59808 0 1.05 0.1 0
particle cloud ~ ~ ~ 2.59808 0 1.2 0.1 0
particle cloud ~ ~ ~ 2.59808 0 1.35 0.1 0
particle cloud ~ ~ ~ 2.59808 0 1.5 0.1 0
particle cloud ~ ~ ~ 2.46817 0 1.575 0.1 0
particle cloud ~ ~ ~ 2.33827 0 1.65 0.1 0
particle cloud ~ ~ ~ 2.20836 0 1.725 0.1 0
particle cloud ~ ~ ~ 2.07846 0 1.8 0.1 0
particle cloud ~ ~ ~ 1.94856 0 1.875 0.1 0
particle cloud ~ ~ ~ 1.81865 0 1.95 0.1 0
particle cloud ~ ~ ~ 1.68875 0 2.025 0.1 0
particle cloud ~ ~ ~ 1.55885 0 2.1 0.1 0
particle cloud ~ ~ ~ 1.42894 0 2.175 0.1 0
particle cloud ~ ~ ~ 1.29904 0 2.25 0.1 0
particle cloud ~ ~ ~ 1.16913 0 2.325 0.1 0
particle cloud ~ ~ ~ 1.03923 0 2.4 0.1 0
particle cloud ~ ~ ~ 0.90933 0 2.475 0.1 0
particle cloud ~ ~ ~ 0.77942 0 2.55 0.1 0
particle cloud ~ ~ ~ 0.64952 0 2.625 0.1 0
particle cloud ~ ~ ~ 0.51962 0 2.7 0.1 0
particle cloud ~ ~ ~ 0.38971 0 2.775 0.1 0
particle cloud ~ ~ ~ 0.25981 0 2.85 0.1 0
particle cloud ~ ~ ~ 0.1299 0 2.925 0.1 0
particle cloud ~ ~ ~ 0 0 3 0.1 0
particle cloud ~ ~ ~ -0.1299 0 2.925 0.1 0
particle cloud ~ ~ ~ -0.25981 0 2.85 0.1 0
particle cloud ~ ~ ~ -0.38971 0 2.775 0.1 0
particle cloud ~ ~ ~ -0.51962 0 2.7 0.1 0
particle cloud ~ ~ ~ -0.64952 0 2.625 0.1 0
particle cloud ~ ~ ~ -0.77942 0 2.55 0.1 0
particle cloud ~ ~ ~ -0.90933 0 2.475 0.1 0
particle cloud ~ ~ ~ -1.03923 0 2.4 0.1 0
particle cloud ~ ~ ~ -1.16913 0 2.325 0.1 0
particle cloud ~ ~ ~ -1.29904 0 2.25 0.1 0
particle cloud ~ ~ ~ -1.42894 0 2.175 0.1 0
particle cloud ~ ~ ~ -1.55885 0 2.1 0.1 0
particle cloud ~ ~ ~ -1.68875 0 2.025 0.1 0
particle cloud ~ ~ ~ -1.81865 0 1.95 0.1 0
particle cloud ~ ~ ~ -1.94856 0 1.875 0.1 0
particle cloud ~ ~ ~ -2.07846 0 1.8 0.1 0
particle cloud ~ ~ ~ -2.20836 0 1.725 0.1 0
particle cloud ~ ~ ~ -2.33827 0 1.65 0.1 0
particle cloud ~ ~ ~ -2.46817 0 1.575 0.1 0
particle cloud ~ ~ ~ -2.59808 0 1.5 0.1 0
particle cloud ~ ~ ~ -2.59808 0 1.35 0.1 0
particle cloud ~ ~ ~ -2.59808 0 1.2 0.1 0
particle cloud ~ ~ ~ -2.59808 0 1.05 0.1 0
particle cloud ~ ~ ~ -2.59808 0 0.9 0.1 0
particle cloud ~ ~ ~ -2.59808 0 0.75 0.1 0
particle cloud ~ ~ ~ -2.59808 0 0.6 0.1 0
particle cloud ~ ~ ~ -2.59808 0 0.45 0.1 0
particle cloud ~ ~ ~ -2.59808 0 0.3 0.1 0
particle cloud ~ ~ ~ -2.59808 0 0.15 0.1 0
particle cloud ~ ~ ~ -2.59808 0 0 0.1 0
particle cloud ~ ~ ~ -2.59808 0 -0.15 0.1 0
particle cloud ~ ~ ~ -2.59808 0 -0.3 0.1 0
particle cloud ~ ~ ~ -2.59808 0 -0.45 0.1 0
particle cloud ~ ~ ~ -2.59808 0 -0.6 0.1 0
particle cloud ~ ~ ~ -2.59808 0 -0.75 0.1 0
particle cloud ~ ~ ~ -2.59808 0 -0.9 0.1 0
particle cloud ~ ~ ~ -2.59808 0 -1.05 0.1 0
particle cloud ~ ~ ~ -2.59808 0 -1.2 0.1 0
particle cloud ~ ~ ~ -2.59808 0 -1.35 0.1 0
particle cloud ~ ~ ~ -2.59808 0 -1.5 0.1 0
particle cloud ~ ~ ~ -2.46817 0 -1.575 0.1 0
particle cloud ~ ~ ~ -2.33827 0 -1.65 0.1 0
particle cloud ~ ~ ~ -2.20836 0 -1.725 0.1 0
particle cloud ~ ~ ~ -2.07846 0 -1.8 0.1 0
particle cloud ~ ~ ~ -1.94856 0 -1.875 0.1 0
particle cloud ~ ~ ~ -1.81865 0 -1.95 0.1 0
particle cloud ~ ~ ~ -1.68875 0 -2.025 0.1 0
particle cloud ~ ~ ~ -1.55885 0 -2.1 0.1 0
particle cloud ~ ~ ~ -1.42894 0 -2.175 0.1 0
particle cloud ~ ~ ~ -1.29904 0 -2.25 0.1 0
particle cloud ~ ~ ~ -1.16913 0 -2.325 0.1 0
particle cloud ~ ~ ~ -1.03923 0 -2.4 0.1 0
particle cloud ~ ~ ~ -0.90933 0 -2.475 0.1 0
particle cloud ~ ~ ~ -0.77942 0 -2.55 0.1 0
particle cloud ~ ~ ~ -0.64952 0 -2.625 0.1 0
particle cloud ~ ~ ~ -0.51962 0 -2.7 0.1 0
particle cloud ~ ~ ~ -0.38971 0 -2.775 0.1 0
particle cloud ~ ~ ~ -0.25981 0 -2.85 0.1 0
particle cloud ~ ~ ~ -0.1299 0 -2.925 0.1 0
# 多角形 1
particle cloud ~ ~ ~ 0 0 -4.7 0.1 0
particle cloud ~ ~ ~ 0.20352 0 -4.5825 0.1 0
particle cloud ~ ~ ~ 0.40703 0 -4.465 0.1 0
particle cloud ~ ~ ~ 0.61055 0 -4.3475 0.1 0
particle cloud ~ ~ ~ 0.81406 0 -4.23 0.1 0
particle cloud ~ ~ ~ 1.01758 0 -4.1125 0.1 0
particle cloud ~ ~ ~ 1.2211 0 -3.995 0.1 0
particle cloud ~ ~ ~ 1.42461 0 -3.8775 0.1 0
particle cloud ~ ~ ~ 1.62813 0 -3.76 0.1 0
particle cloud ~ ~ ~ 1.83164 0 -3.6425 0.1 0
particle cloud ~ ~ ~ 2.03516 0 -3.525 0.1 0
particle cloud ~ ~ ~ 2.23868 0 -3.4075 0.1 0
particle cloud ~ ~ ~ 2.44219 0 -3.29 0.1 0
particle cloud ~ ~ ~ 2.64571 0 -3.1725 0.1 0
particle cloud ~ ~ ~ 2.84922 0 -3.055 0.1 0
particle cloud ~ ~ ~ 3.05274 0 -2.9375 0.1 0
particle cloud ~ ~ ~ 3.25626 0 -2.82 0.1 0
particle cloud ~ ~ ~ 3.45977 0 -2.7025 0.1 0
particle cloud ~ ~ ~ 3.66329 0 -2.585 0.1 0
particle cloud ~ ~ ~ 3.8668 0 -2.4675 0.1 0
particle cloud ~ ~ ~ 4.07032 0 -2.35 0.1 0
particle cloud ~ ~ ~ 4.07032 0 -2.115 0.1 0
particle cloud ~ ~ ~ 4.07032 0 -1.88 0.1 0
particle cloud ~ ~ ~ 4.07032 0 -1.645 0.1 0
particle cloud ~ ~ ~ 4.07032 0 -1.41 0.1 0
particle cloud ~ ~ ~ 4.07032 0 -1.175 0.1 0
particle cloud ~ ~ ~ 4.07032 0 -0.94 0.1 0
particle cloud ~ ~ ~ 4.07032 0 -0.705 0.1 0
particle cloud ~ ~ ~ 4.07032 0 -0.47 0.1 0
particle cloud ~ ~ ~ 4.07032 0 -0.235 0.1 0
particle cloud ~ ~ ~ 4.07032 0 0 0.1 0
particle cloud ~ ~ ~ 4.07032 0 0.235 0.1 0
particle cloud ~ ~ ~ 4.07032 0 0.47 0.1 0
particle cloud ~ ~ ~ 4.07032 0 0.705 0.1 0
particle cloud ~ ~ ~ 4.07032 0 0.94 0.1 0
particle cloud ~ ~ ~ 4.07032 0 1.175 0.1 0
particle cloud ~ ~ ~ 4.07032 0 1.41 0.1 0
particle cloud ~ ~ ~ 4.07032 0 1.645 0.1 0
particle cloud ~ ~ ~ 4.07032 0 1.88 0.1 0
particle cloud ~ ~ ~ 4.07032 0 2.115 0.1 0
particle cloud ~ ~ ~ 4.07032 0 2.35 0.1 0
particle cloud ~ ~ ~ 3.8668 0 2.4675 0.1 0
particle cloud ~ ~ ~ 3.66329 0 2.585 0.1 0
particle cloud ~ ~ ~ 3.45977 0 2.7025 0.1 0
particle cloud ~ ~ ~ 3.25626 0 2.82 0.1 0
particle cloud ~ ~ ~ 3.05274 0 2.9375 0.1 0
particle cloud ~ ~ ~ 2.84922 0 3.055 0.1 0
particle cloud ~ ~ ~ 2.64571 0 3.1725 0.1 0
particle cloud ~ ~ ~ 2.44219 0 3.29 0.1 0
particle cloud ~ ~ ~ 2.23868 0 3.4075 0.1 0
particle cloud ~ ~ ~ 2.03516 0 3.525 0.1 0
particle cloud ~ ~ ~ 1.83164 0 3.6425 0.1 0
particle cloud ~ ~ ~ 1.62813 0 3.76 0.1 0
particle cloud ~ ~ ~ 1.42461 0 3.8775 0.1 0
particle cloud ~ ~ ~ 1.2211 0 3.995 0.1 0
particle cloud ~ ~ ~ 1.01758 0 4.1125 0.1 0
particle cloud ~ ~ ~ 0.81406 0 4.23 0.1 0
particle cloud ~ ~ ~ 0.61055 0 4.3475 0.1 0
particle cloud ~ ~ ~ 0.40703 0 4.465 0.1 0
particle cloud ~ ~ ~ 0.20352 0 4.5825 0.1 0
particle cloud ~ ~ ~ 0 0 4.7 0.1 0
particle cloud ~ ~ ~ -0.20352 0 4.5825 0.1 0
particle cloud ~ ~ ~ -0.40703 0 4.465 0.1 0
particle cloud ~ ~ ~ -0.61055 0 4.3475 0.1 0
particle cloud ~ ~ ~ -0.81406 0 4.23 0.1 0
particle cloud ~ ~ ~ -1.01758 0 4.1125 0.1 0
particle cloud ~ ~ ~ -1.2211 0 3.995 0.1 0
particle cloud ~ ~ ~ -1.42461 0 3.8775 0.1 0
particle cloud ~ ~ ~ -1.62813 0 3.76 0.1 0
particle cloud ~ ~ ~ -1.83164 0 3.6425 0.1 0
particle cloud ~ ~ ~ -2.03516 0 3.525 0.1 0
particle cloud ~ ~ ~ -2.23868 0 3.4075 0.1 0
particle cloud ~ ~ ~ -2.44219 0 3.29 0.1 0
particle cloud ~ ~ ~ -2.64571 0 3.1725 0.1 0
particle cloud ~ ~ ~ -2.84922 0 3.055 0.1 0
particle cloud ~ ~ ~ -3.05274 0 2.9375 0.1 0
particle cloud ~ ~ ~ -3.25626 0 2.82 0.1 0
particle cloud ~ ~ ~ -3.45977 0 2.7025 0.1 0
particle cloud ~ ~ ~ -3.66329 0 2.585 0.1 0
particle cloud ~ ~ ~ -3.8668 0 2.4675 0.1 0
particle cloud ~ ~ ~ -4.07032 0 2.35 0.1 0
particle cloud ~ ~ ~ -4.07032 0 2.115 0.1 0
particle cloud ~ ~ ~ -4.07032 0 1.88 0.1 0
particle cloud ~ ~ ~ -4.07032 0 1.645 0.1 0
particle cloud ~ ~ ~ -4.07032 0 1.41 0.1 0
particle cloud ~ ~ ~ -4.07032 0 1.175 0.1 0
particle cloud ~ ~ ~ -4.07032 0 0.94 0.1 0
particle cloud ~ ~ ~ -4.07032 0 0.705 0.1 0
particle cloud ~ ~ ~ -4.07032 0 0.47 0.1 0
particle cloud ~ ~ ~ -4.07032 0 0.235 0.1 0
particle cloud ~ ~ ~ -4.07032 0 0 0.1 0
particle cloud ~ ~ ~ -4.07032 0 -0.235 0.1 0
particle cloud ~ ~ ~ -4.07032 0 -0.47 0.1 0
particle cloud ~ ~ ~ -4.07032 0 -0.705 0.1 0
particle cloud ~ ~ ~ -4.07032 0 -0.94 0.1 0
particle cloud ~ ~ ~ -4.07032 0 -1.175 0.1 0
particle cloud ~ ~ ~ -4.07032 0 -1.41 0.1 0
particle cloud ~ ~ ~ -4.07032 0 -1.645 0.1 0
particle cloud ~ ~ ~ -4.07032 0 -1.88 0.1 0
particle cloud ~ ~ ~ -4.07032 0 -2.115 0.1 0
particle cloud ~ ~ ~ -4.07032 0 -2.35 0.1 0
particle cloud ~ ~ ~ -3.8668 0 -2.4675 0.1 0
particle cloud ~ ~ ~ -3.66329 0 -2.585 0.1 0
particle cloud ~ ~ ~ -3.45977 0 -2.7025 0.1 0
particle cloud ~ ~ ~ -3.25626 0 -2.82 0.1 0
particle cloud ~ ~ ~ -3.05274 0 -2.9375 0.1 0
particle cloud ~ ~ ~ -2.84922 0 -3.055 0.1 0
particle cloud ~ ~ ~ -2.64571 0 -3.1725 0.1 0
particle cloud ~ ~ ~ -2.44219 0 -3.29 0.1 0
particle cloud ~ ~ ~ -2.23868 0 -3.4075 0.1 0
particle cloud ~ ~ ~ -2.03516 0 -3.525 0.1 0
particle cloud ~ ~ ~ -1.83164 0 -3.6425 0.1 0
particle cloud ~ ~ ~ -1.62813 0 -3.76 0.1 0
particle cloud ~ ~ ~ -1.42461 0 -3.8775 0.1 0
particle cloud ~ ~ ~ -1.2211 0 -3.995 0.1 0
particle cloud ~ ~ ~ -1.01758 0 -4.1125 0.1 0
particle cloud ~ ~ ~ -0.81406 0 -4.23 0.1 0
particle cloud ~ ~ ~ -0.61055 0 -4.3475 0.1 0
particle cloud ~ ~ ~ -0.40703 0 -4.465 0.1 0
particle cloud ~ ~ ~ -0.20352 0 -4.5825 0.1 0


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

#> 定義類はここに
# @within function asset:artifact/0172.icicle/trigger/**
    scoreboard objectives add 4S.UserID dummy
    scoreboard objectives add 4S.Time dummy


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

# ループする
    execute if entity @e[type=area_effect_cloud,tag=4S.Laser,limit=1] run schedule function asset:artifact/0172.icicle/trigger/laser/schedule 1t replace


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


text:
#> asset:artifact/0172.icicle/trigger/_index.d
# @private

#> tag
# @within function asset:artifact/0172.icicle/trigger/**
    #declare tag Landing
    #declare tag LandingTarget
    #declare tag 4S.Laser
    #declare tag 4S.This


text:
#> asset:artifact/0172.icicle/trigger/laser/2.laser_directing
#
#
#
# @within function asset:artifact/0172.icicle/trigger/laser/1.laser

#> Private
# @private
    #declare tag SpreadMarker

# 演出
    particle firework ~ ~ ~ 0 0 0 1 10
    particle electric_spark ~ ~ ~ 0.5 0.4 0.5 1 20 normal
    playsound minecraft:entity.firework_rocket.twinkle_far player @a[distance=..30  ] ~ ~ ~ 0.72 2 0.72

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

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

# 発砲
    execute facing entity @e[type=marker,tag=SpreadMarker,distance=..50,limit=1] feet as @e[type=marker,tag=SpreadMarker,distance=..50,limit=1] run function asset:artifact/0172.icicle/trigger/laser/particle_special

# 前方拡散キル
    kill @e[type=marker,tag=SpreadMarker,distance=..50]


text:
#> asset:artifact/0172.icicle/trigger/laser/schedule
#
#
#
# @within function
#    asset:artifact/0172.icicle/trigger/3.main
#    asset:artifact/0172.icicle/trigger/rejoin_process
#    asset:artifact/0172.icicle/trigger/laser/schedule

# 実行する
    execute as @e[type=area_effect_cloud,tag=4S.Laser] at @s run function asset:artifact/0172.icicle/trigger/laser/1.laser

# ループする
    execute if entity @e[type=area_effect_cloud,tag=4S.Laser,limit=1] run schedule function asset:artifact/0172.icicle/trigger/laser/schedule 1t replace


text:
#> asset:artifact/0172.icicle/trigger/laser/4.laser_line
#
#
#
# @within function
#       asset:artifact/0172.icicle/trigger/laser/2t_interval
#       asset:artifact/0172.icicle/trigger/laser/4.laser_line

# 着弾検知
    execute unless block ^ ^ ^0.5 #lib:no_collision run tag @s add Landing
# 演出
    execute rotated 0 0 run function asset:artifact/0172.icicle/trigger/laser/particle5
    particle dust 1 1000000000 1000000000 1 ^ ^ ^ 0.5 0.5 0.5 0 5

# 再起
    execute positioned ^ ^ ^0.5 if entity @s[tag=!Landing,distance=..50] run function asset:artifact/0172.icicle/trigger/laser/4.laser_line


text:
#> asset:artifact/0172.icicle/trigger/laser/2t_interval
#
#
#
# @within function asset:artifact/0172.icicle/trigger/laser/1.laser

# 一段目展開
    execute if score @s 4S.Time matches 30.. positioned ~ ~5 ~ rotated 0 0 run function asset:artifact/0172.icicle/trigger/laser/particle
# 二段目展開
    execute if score @s 4S.Time matches 40.. positioned ~ ~10 ~ rotated 0 0 run function asset:artifact/0172.icicle/trigger/laser/particle2
# 三段目展開
    execute if score @s 4S.Time matches 50.. positioned ~ ~17 ~ rotated ~ 0 run function asset:artifact/0172.icicle/trigger/laser/particle3
# 放射
    execute if score @s 4S.Time matches 110.. run particle snowflake ~ ~7.5 ~ 1 7 1 0 30
    execute if score @s 4S.Time matches 110.. positioned ~ ~15 ~ rotated 0 90 run function asset:artifact/0172.icicle/trigger/laser/3.laser_circle
    execute if score @s 4S.Time matches 110.. positioned ~ ~15 ~ rotated 0 90 run function asset:artifact/0172.icicle/trigger/laser/4.laser_line

# タグ消し
    tag @s remove Landing


text:
#> asset:artifact/0172.icicle/trigger/laser/landing
#
#
#
# @within function asset:artifact/0172.icicle/trigger/laser/5.damage_laser

# タグ付与する
    tag @s add 4S.This

# ダメージ設定
    # ダメージ
        data modify storage lib: Argument.Damage set value 200.0f
    # 第一属性
        data modify storage lib: Argument.AttackType set value "Magic"
    # 第二属性
        data modify storage lib: Argument.ElementType set value "Water"
    # ダメージ
        execute as @a if score @s UserID = @e[type=area_effect_cloud,tag=4S.This,distance=..100,limit=1] 4S.UserID run function lib:damage/modifier
        execute as @e[type=#lib:living,tag=Enemy,distance=..4] run function lib:damage/
# リセット
    function lib:damage/reset

# 演出
    playsound minecraft:entity.generic.explode player @a ~ ~ ~ 1 0
    particle cloud ~ ~ ~ 0 0 0 0.1 30
    particle firework ~ ~ ~ 0 0 0 1 30
    particle explosion ~ ~ ~ 0 0 0 1 2

# タグを消す
    tag @s remove 4S.This

# 吸引
# 突進する
    data modify storage lib: Argument.VectorMagnitude set value 0.4
    data modify storage lib: Argument.KnockbackResist set value true
    execute as @e[type=#lib:living,tag=Enemy,tag=!Enemy.Boss,distance=..2] at @s facing entity @e[type=area_effect_cloud,tag=4S.Laser,distance=..100,sort=nearest,limit=1] eyes rotated ~ 0 run function lib:motion/
# リセット
    data remove storage lib: Argument


text:
#> asset:artifact/0172.icicle/trigger/laser/particle4
#
#
#
# @within function asset:artifact/0172.icicle/trigger/laser/3.laser_circle

# [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYAZgKxkDGRA7HAGwC0RALAAwXNtkAcAJmYBDOhz4i2AIwp8AzGQCMHdgLC4MwgLYJkgLd8ABIvVgYwgE7aAzknDUA9ngwQkiirjLn7W22ABuwih4uuAAHkgcuFBIzAIAdBQAvom4EPa+AUEhYOGI8e5g0Ygcybj2ZGRWcC7FuFJwAF5ocOauCbhoVgBCjc3mAKIAjniBKFAAymbUcCSIEObBpeDQ8KToWCYExKTCwopSiox8AJzMB3wsbMLUimdSZETMxxx0wmyMcHACz8cmmjqkQy3BwwaK4MyWLQ2RB2RzOVwFTzeDKBYK+XKRQoxfKlSDpGH+VHZXKxdpY4q48qVaoROq9FoxRRkzo9JotIYjFBjSbXGZIeaLFLLWC6VCYHD4QizMAcARsNhyeV0ETUORSHgUIhkZiCIiPMgCT4UWQUY7HXh-bSioHMEFQW32UEmCHWXwOJw1ZQeLw+AmZNEEklMxRRJDxOS4tIorLo7FkoolFJgKlVGqY+ps1rFOJ0DrdekDYajCZTPlzBZwJaQEVrcWbKWkRiMMgcOCy5VEY4UDg8RjHCTCE5yM6yKQCPgcRjCOBSOSWgH6IwO0HL+1250WV0E93wxBe8g+6MBsJtEPk8OR-Hgf3EsPxiKUiqp2lgDN9GIcHN51l9DnFnnTLMAqVokAC6QA_3
# 線 1-copy-copy-copy
particle dust 1 1000000000 1000000000 0.5 ^1.1 ^ ^2.3 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^1.35938 ^ ^2.12654 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^1.60131 ^ ^1.92952 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^1.82078 ^ ^1.70781 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^2.01371 ^ ^1.46268 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^2.17591 ^ ^1.19622 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^2.30504 ^ ^0.91225 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^2.40117 ^ ^0.61546 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^2.46506 ^ ^0.31007 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^2.5 ^ ^0 0 0 0 0 1
# 線 1
particle dust 1 1000000000 1000000000 0.5 ^0 ^ ^-2.5 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^0.27836 ^ ^-2.46835 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^0.55381 ^ ^-2.41736 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^0.82417 ^ ^-2.34415 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^1.08645 ^ ^-2.24593 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^1.33655 ^ ^-2.11994 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^1.56952 ^ ^-1.9646 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^1.78033 ^ ^-1.78033 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^1.9646 ^ ^-1.56952 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^2.11994 ^ ^-1.33655 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^2.24593 ^ ^-1.08645 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^2.34415 ^ ^-0.82417 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^2.41736 ^ ^-0.55381 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^2.46835 ^ ^-0.27836 0 0 0 0 1
# 線 1-copy
particle dust 1 1000000000 1000000000 0.5 ^-0.27836 ^ ^-2.46835 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-0.55381 ^ ^-2.41736 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-0.82417 ^ ^-2.34415 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-1.08645 ^ ^-2.24593 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-1.33655 ^ ^-2.11994 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-1.56952 ^ ^-1.9646 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-1.78033 ^ ^-1.78033 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-1.9646 ^ ^-1.56952 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-2.11994 ^ ^-1.33655 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-2.24593 ^ ^-1.08645 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-2.34415 ^ ^-0.82417 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-2.41736 ^ ^-0.55381 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-2.46835 ^ ^-0.27836 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-2.5 ^ ^0 0 0 0 0 1
# 線 1-copy-copy
particle dust 1 1000000000 1000000000 0.5 ^-1.1 ^ ^2.3 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-1.35938 ^ ^2.12654 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-1.60131 ^ ^1.92952 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-1.82078 ^ ^1.70781 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-2.01371 ^ ^1.46268 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-2.17591 ^ ^1.19622 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-2.30504 ^ ^0.91225 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-2.40117 ^ ^0.61546 0 0 0 0 1
particle dust 1 1000000000 1000000000 0.5 ^-2.46506 ^ ^0.31007 0 0 0 0 1