text:
#> asset:mob/0015.guardian/summon/2.summon
#
# Mobの召喚時の処理
#
# @within function asset:mob/0015.guardian/summon/1.trigger

# 元となるMobを召喚する
    summon guardian ~ ~ ~ {Tags:["MobInit"],DeathLootTable:"asset:mob/death/0015.guardian"}
# ID (int)
    data modify storage asset:mob ID set value 15
# Type (string) Wikiを参照
    data modify storage asset:mob Type set value "Enemy"
# 干渉可能か否か (boolean)
    data modify storage asset:mob Interferable set value true
# 名前 (TextComponentString) (オプション)
    data modify storage asset:mob Name set value '{"text":"監視者","color":"blue"}'
# 武器
    # メインハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Mainhand set value
    # オフハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Offhand set value
# 武器ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob WeaponDropChances set value
# 防具
    # 頭 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Head set value
    # 胴 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Chest set value
    # 脚 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Legs set value
    # 足 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Feet set value
# 防具ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob ArmorDropChances set value
# 体力 (double) (オプション)
    data modify storage asset:mob Health set value 279
# 攻撃力 (double) (オプション)
    data modify storage asset:mob AttackDamage set value 3.0
# 防御力 (double) (オプション) // 被ダメージがある程度大きい場合1ptにつき0.8%カット、小さい場合1ptにつき約4%カット 20pt以上は頭打ち
    # data modify storage asset:mob Defense set value
# 特殊防御力 (double) (オプション) // 4pointにつきダメージを大きく減らす
    # data modify storage asset:mob SpecialDefense set value
# 移動速度 (double) (オプション)
    data modify storage asset:mob Speed set value 0.20
# 索敵範囲 (double) (オプション)
    data modify storage asset:mob FollowRange set value 32.0
# ノックバック耐性 (double) (オプション)
    data modify storage asset:mob KnockBackResist set value 0.0
# 属性倍率 // 1.0fで100% 最低でも25%は軽減されずに入る
    # 物理倍率 (float) (オプション)
        data modify storage asset:mob Resist.Physical set value 0.8
    # 魔法倍率 (float) (オプション)
        data modify storage asset:mob Resist.Magic set value 0.8
    # 火倍率 (float) (オプション)
        data modify storage asset:mob Resist.Fire set value 0.25
    # 水倍率 (float) (オプション)
        data modify storage asset:mob Resist.Water set value 0.8
    # 雷倍率 (float) (オプション)
        data modify storage asset:mob Resist.Thunder set value 1.0

# MobInitタグ持ちを対象にして召喚関数呼び出し
    execute as @e[type=guardian,tag=MobInit,distance=..0.01] run function asset:mob/common/summon


text:
#> asset:mob/0015.guardian/summon/1.trigger
#
# Mob召喚処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:mob/summon

execute if data storage asset:context {id:15} run function asset:mob/0015.guardian/summon/2.summon

repo_name: ProjectTSB/TheSkyBlessing

repo_language: mcfunction

mime_type: text/plain


text:
#> asset:mob/0270.who_hate/summon/2.summon
#
# Mobの召喚時の処理
#
# @within function asset:mob/0270.who_hate/summon/1.trigger

# 元となるMobを召喚する
    summon zombified_piglin ~ ~ ~ {Tags:["MobInit","AlwaysInvisible"],ActiveEffects:[{Id:8,Amplifier:3b,Duration:2147483647,ShowParticles:0b}],DeathLootTable:"asset:mob/death/0270.who_hate"}
# ID (int)
    data modify storage asset:mob ID set value 270
# Type (string) Wikiを参照
    data modify storage asset:mob Type set value "Enemy"
# 干渉可能か否か (boolean)
    data modify storage asset:mob Interferable set value true
# 名前 (TextComponentString) (オプション)
    data modify storage asset:mob Name set value '{"text":"憎悪者","color":"#122233"}'
# 武器
    # メインハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Mainhand set value
    # オフハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Offhand set value
# 武器ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob WeaponDropChances set value
# 防具
    # 頭 (Compound(Item)) (オプション)
        data modify storage asset:mob Armor.Head set value {id:"minecraft:blast_furnace",Count:1b}
    # 胴 (Compound(Item)) (オプション)
        data modify storage asset:mob Armor.Chest set value {id:"minecraft:leather_chestplate",Count:1b,tag:{display:{color:6380378}}}
    # 脚 (Compound(Item)) (オプション)
        data modify storage asset:mob Armor.Legs set value {id:"minecraft:leather_leggings",Count:1b,tag:{display:{color:6380378}}}
    # 足 (Compound(Item)) (オプション)
        data modify storage asset:mob Armor.Feet set value {id:"minecraft:leather_boots",Count:1b,tag:{display:{color:6380378}}}
# 防具ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob ArmorDropChances set value
# 体力 (double) (オプション)
    data modify storage asset:mob Health set value 155
# 攻撃力 (double) (オプション)
    data modify storage asset:mob AttackDamage set value 1
# 防御力 (double) (オプション) // 被ダメージがある程度大きい場合1ptにつき0.8%カット、小さい場合1ptにつき約4%カット 20pt以上は頭打ち
    data modify storage asset:mob Defense set value -6
# 特殊防御力 (double) (オプション) // 4pointにつきダメージを大きく減らす
    # data modify storage asset:mob SpecialDefense set value
# 移動速度 (double) (オプション)
    data modify storage asset:mob Speed set value 0.3
# 索敵範囲 (double) (オプション)
    # data modify storage asset:mob FollowRange set value
# ノックバック耐性 (double) (オプション)
    # data modify storage asset:mob KnockBackResist set value
# 属性倍率 // 1.0fで100% 最低でも25%は軽減されずに入る
    # 物理倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Physical set value
    # 魔法倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Magic set value
    # 火倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Fire set value
    # 水倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Water set value
    # 雷倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Thunder set value

# MobInitタグ持ちを対象にして召喚関数呼び出し
    execute as @e[type=zombified_piglin,tag=MobInit,distance=..0.01] run function asset:mob/common/summon


text:
#> asset:mob/0270.who_hate/summon/1.trigger
#
# Mob召喚処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:mob/summon

execute if data storage asset:context {id:270} run function asset:mob/0270.who_hate/summon/2.summon


text:
#> asset:mob/0270.who_hate/attack/1.trigger
#
# Mobの攻撃時に実行されるfunction
#
# @within tag/function asset:mob/attack

execute if data storage asset:context {id:270} run function asset:mob/0270.who_hate/attack/2.attack


text:
#> asset:mob/0270.who_hate/attack/2.attack
#
# Mobの攻撃時の処理
#
# @within function asset:mob/0270.who_hate/attack/1.trigger

# 演出
    particle flame ~ ~1 ~ 0.8 0.8 0.8 0 20 normal @a
    playsound block.lava.extinguish hostile @a ~ ~ ~ 2 1 0

# 属性ダメージ
   # 与えるダメージ
        data modify storage lib: Argument.Damage set value 10.4f
    # 第一属性
        data modify storage lib: Argument.AttackType set value "Physical"
    # 第二属性
        data modify storage lib: Argument.ElementType set value "Fire"
    # 補正functionを実行
        function lib:damage/modifier
    # プレイヤー対象に
        execute as @p[tag=Victim] run function lib:damage/
    # リセット
        function lib:damage/reset


text:
#> asset:mob/0232.honey_leader/0.load
#
# MOBに利用するスコアボード等の初期化処理
#
# @within tag/function asset:mob/load

#> 定義類はここに
# @within function asset:mob/0232.honey_leader/**
    scoreboard objectives add 6G.Tick dummy
    scoreboard objectives add 6G.SkillSelect dummy


text:
#> asset:mob/0232.honey_leader/_index.d
# @private
#
#> Tag
# @within function
#   asset:mob/0232.honey_leader/tick/6.shoot_and_reset
#   asset:mob/0232.honey_leader/tick/7.beam
#   asset:mob/0232.honey_leader/tick/8.hit
    #declare tag LandingTarget


text:
#> asset:mob/0232.honey_leader/summon/2.summon
#
# Mobの召喚時の処理
#
# @within function asset:mob/0232.honey_leader/summon/1.trigger

# 元となるMobを召喚する
    summon skeleton ~ ~ ~ {Silent:1b,Tags:["MobInit","AlwaysInvisible"],ActiveEffects:[{Id:24,Amplifier:0b,Duration:2147483647,ShowParticles:0b}],DeathLootTable:"asset:mob/death/0232.honey_leader"}
# ID (int)
    data modify storage asset:mob ID set value 232
# Type (string) Wikiを参照
    data modify storage asset:mob Type set value "Enemy"
# 干渉可能か否か (boolean)
    data modify storage asset:mob Interferable set value true
# 名前 (TextComponentString) (オプション)
    data modify storage asset:mob Name set value '{"text":"ハニーリーダー","color":"#FFBD24"}'
# 武器
    # メインハンド (Compound(Item)) (オプション)
        data modify storage asset:mob Weapon.Mainhand set value {id:"carrot_on_a_stick",Count:1b,tag:{CustomModelData:840}}
    # オフハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Offhand set value
# 武器ドロップ率 ([float, float]) (オプション)
    data modify storage asset:mob WeaponDropChances set value [0.0f,0.0f]
# 防具
    # 頭 (Compound(Item)) (オプション)
        data modify storage asset:mob Armor.Head set value {id:"honey_block",Count:1b}
    # 胴 (Compound(Item)) (オプション)
        data modify storage asset:mob Armor.Chest set value {id:"minecraft:leather_chestplate",Count:1b,tag:{display:{color:16760100}}}
    # 脚 (Compound(Item)) (オプション)
        data modify storage asset:mob Armor.Legs set value {id:"minecraft:leather_leggings",Count:1b,tag:{display:{color:0}}}
    # 足 (Compound(Item)) (オプション)
        data modify storage asset:mob Armor.Feet set value {id:"minecraft:leather_boots",Count:1b,tag:{display:{color:16760100}}}
# 防具ドロップ率 ([float, float]) (オプション)
    data modify storage asset:mob ArmorDropChances set value [0.0f,0.0f,0.0f,0.0f]
# 体力 (double) (オプション)
    data modify storage asset:mob Health set value 4000
# 攻撃力 (double) (オプション)
    data modify storage asset:mob AttackDamage set value 0
# 防御力 (double) (オプション) // 被ダメージがある程度大きい場合1ptにつき0.8%カット、小さい場合1ptにつき約4%カット 20pt以上は頭打ち
    data modify storage asset:mob Defense set value -6
# 特殊防御力 (double) (オプション) // 4pointにつきダメージを大きく減らす
    # data modify storage asset:mob SpecialDefense set value
# 移動速度 (double) (オプション)
    data modify storage asset:mob Speed set value 0.23
# 索敵範囲 (double) (オプション)
    data modify storage asset:mob FollowRange set value 32.0
# ノックバック耐性 (double) (オプション)
    data modify storage asset:mob KnockBackResist set value 0.5
# 属性倍率 // 1.0fで100% 最低でも25%は軽減されずに入る
    # 物理倍率 (float) (オプション)
        data modify storage asset:mob Resist.Physical set value 0.8
    # 魔法倍率 (float) (オプション)
        data modify storage asset:mob Resist.Magic set value 1
    # 火倍率 (float) (オプション)
        data modify storage asset:mob Resist.Fire set value 1
    # 水倍率 (float) (オプション)
        data modify storage asset:mob Resist.Water set value 0.5
    # 雷倍率 (float) (オプション)
        data modify storage asset:mob Resist.Thunder set value 1

# 召喚時にスコアを与えておく
    scoreboard players set @e[type=skeleton,tag=MobInit,distance=..0.01] 6G.Tick -60

# MobInitタグ持ちを対象にして召喚関数呼び出し
    execute as @e[type=skeleton,tag=MobInit,distance=..0.01] run function asset:mob/common/summon


text:
#> asset:mob/0232.honey_leader/summon/1.trigger
#
# Mob召喚処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:mob/summon

execute if data storage asset:context {id:232} run function asset:mob/0232.honey_leader/summon/2.summon


text:
#> asset:mob/0232.honey_leader/hurt/2.hurt
#
# Mobの被ダメージ時の処理
#
# @within function asset:mob/0232.honey_leader/hurt/1.trigger

# 演出
    playsound block.honey_block.hit hostile @a ~ ~ ~ 0.6 1 0
    particle minecraft:block honey_block ~ ~1.2 ~ 0.4 0.4 0.4 0 20
    particle dust 1.000 0.741 0.141 1.3 ~ ~1.2 ~ 0.5 0.4 0.5 0 20 normal


text:
#> asset:mob/0232.honey_leader/hurt/1.trigger
#
# Mobの被ダメージに実行されるfunction
#
# @within tag/function asset:mob/hurt

execute if data storage asset:context {id:232} run function asset:mob/0232.honey_leader/hurt/2.hurt


text:
#> asset:mob/0232.honey_leader/tick/2.tick
#
# Mobのtick時の処理
#
# @within function asset:mob/0232.honey_leader/tick/1.trigger

# スキルスコア
    scoreboard players add @s 6G.Tick 1

# スキルを選択
    execute if entity @s[scores={6G.Tick=0}] run function asset:mob/0232.honey_leader/tick/3.skill_select

# 周囲にバフ&回復
    execute if entity @s[scores={6G.SkillSelect=0}] run function asset:mob/0232.honey_leader/tick/4.buff_and_heal

# ビームの予備動作演出
    execute if entity @s[scores={6G.SkillSelect=1,6G.Tick=0}] anchored eyes positioned ^ ^ ^0.3 run function asset:mob/0232.honey_leader/tick/5.ready_beam

# ビーム発射とリセット
    execute if entity @s[scores={6G.SkillSelect=1,6G.Tick=10..}] run function asset:mob/0232.honey_leader/tick/6.shoot_and_reset


text:
#> asset:mob/0232.honey_leader/tick/7.beam
#
# 再帰ビームを打つよ
#
# @within function
#   asset:mob/0232.honey_leader/tick/6.shoot_and_reset
#   asset:mob/0232.honey_leader/tick/7.beam

# 演出
    particle dust 1.000 0.741 0.141 1.3 ~ ~ ~ 0.1 0.1 0.1 0 4 normal @a
    particle dust 1.000 0.741 0.141 1.3 ^ ^ ^0.5 0.1 0.1 0.1 0 4 normal @a

# ヒット処理
    execute positioned ~-0.5 ~ ~-0.5 if entity @a[gamemode=!spectator,dx=0] run tag @a[tag=!PlayerShouldInvulnerable,dx=0] add LandingTarget

# 再帰
    execute if entity @s[distance=..32] positioned ^ ^ ^1 if block ~ ~ ~ #lib:no_collision run function asset:mob/0232.honey_leader/tick/7.beam


text:
#> asset:mob/0232.honey_leader/tick/6.shoot_and_reset
#
# ビーム発射の処理とリセット処理を行うよ
#
# @within function asset:mob/0232.honey_leader/tick/2.tick

# ビーム発射
    playsound entity.glow_squid.squirt hostile @a[distance=..32] ~ ~ ~ 1 1.5 0.8
    playsound block.honey_block.hit hostile @a[distance=..32] ~ ~ ~ 1 1 0.8
    playsound block.honey_block.hit hostile @a[distance=..32] ~ ~ ~ 1 1.2 0.8
    execute anchored eyes run function asset:mob/0232.honey_leader/tick/7.beam

# ヒット処理
    execute as @a[tag=LandingTarget,distance=..20] at @s run function asset:mob/0232.honey_leader/tick/8.hit

# NoAIとビームスコアリセット
    data modify entity @s NoAI set value 0b
    scoreboard players set @s 6G.Tick -60
    scoreboard players reset @s 6G.SkillSelect


text:
#> asset:mob/0232.honey_leader/tick/5.ready_beam
#
# 予備動作演出です
#
# @within function asset:mob/0232.honey_leader/tick/2.tick

# 視点固定&NoAI
    data modify entity @s NoAI set value 1b
    execute at @s anchored eyes run tp @s ~ ~ ~ facing entity @p[gamemode=!spectator] eyes

# 予備動作演出

# [ImportKey]: NobwRALgngDgpmAXGGB7ANlA5qgdmAGjAFdiBLAEyTACYaBmGgNgpoA4BaATnoGMKOAFiYB2AEYc29AAwBDDjS4BGWUorTeg6UoCshMLlkBbBMkBYmoCXIwEb6AAiX6YsgE7GAzknC9UxXBCRsiXjhfOCcPMAA3WXRiU3AADyRpIigkgF80ohcKMmJ3RCUiVwhnP0QuZLA4dHQyGFdTERos1BKIU0qvJ1xQpCYiACtiIxgkQrAxOAAvMl7ESrJXAFEauoalgEdiaMwAZUcgqkQAM2iGokWAIWnZp03tmqh92UOkU-QGjIBdIA_3
# 多角形 1
    particle wax_on ^1 ^0 ^ 0 0 0 0 1
    particle wax_on ^0.9375 ^0.07794 ^ 0 0 0 0 1
    particle wax_on ^0.875 ^0.15588 ^ 0 0 0 0 1
    particle wax_on ^0.8125 ^0.23383 ^ 0 0 0 0 1
    particle wax_on ^0.75 ^0.31177 ^ 0 0 0 0 1
    particle wax_on ^0.6875 ^0.38971 ^ 0 0 0 0 1
    particle wax_on ^0.625 ^0.46765 ^ 0 0 0 0 1
    particle wax_on ^0.5625 ^0.5456 ^ 0 0 0 0 1
    particle wax_on ^0.5 ^0.62354 ^ 0 0 0 0 1
    particle wax_on ^0.375 ^0.62354 ^ 0 0 0 0 1
    particle wax_on ^0.25 ^0.62354 ^ 0 0 0 0 1
    particle wax_on ^0.125 ^0.62354 ^ 0 0 0 0 1
    particle wax_on ^0 ^0.62354 ^ 0 0 0 0 1
    particle wax_on ^-0.125 ^0.62354 ^ 0 0 0 0 1
    particle wax_on ^-0.25 ^0.62354 ^ 0 0 0 0 1
    particle wax_on ^-0.375 ^0.62354 ^ 0 0 0 0 1
    particle wax_on ^-0.5 ^0.62354 ^ 0 0 0 0 1
    particle wax_on ^-0.5625 ^0.5456 ^ 0 0 0 0 1
    particle wax_on ^-0.625 ^0.46765 ^ 0 0 0 0 1
    particle wax_on ^-0.6875 ^0.38971 ^ 0 0 0 0 1
    particle wax_on ^-0.75 ^0.31177 ^ 0 0 0 0 1
    particle wax_on ^-0.8125 ^0.23383 ^ 0 0 0 0 1
    particle wax_on ^-0.875 ^0.15588 ^ 0 0 0 0 1
    particle wax_on ^-0.9375 ^0.07794 ^ 0 0 0 0 1
    particle wax_on ^-1 ^0 ^ 0 0 0 0 1
    particle wax_on ^-0.9375 ^-0.07794 ^ 0 0 0 0 1
    particle wax_on ^-0.875 ^-0.15588 ^ 0 0 0 0 1
    particle wax_on ^-0.8125 ^-0.23383 ^ 0 0 0 0 1
    particle wax_on ^-0.75 ^-0.31177 ^ 0 0 0 0 1
    particle wax_on ^-0.6875 ^-0.38971 ^ 0 0 0 0 1
    particle wax_on ^-0.625 ^-0.46765 ^ 0 0 0 0 1
    particle wax_on ^-0.5625 ^-0.5456 ^ 0 0 0 0 1
    particle wax_on ^-0.5 ^-0.62354 ^ 0 0 0 0 1
    particle wax_on ^-0.375 ^-0.62354 ^ 0 0 0 0 1
    particle wax_on ^-0.25 ^-0.62354 ^ 0 0 0 0 1
    particle wax_on ^-0.125 ^-0.62354 ^ 0 0 0 0 1
    particle wax_on ^0 ^-0.62354 ^ 0 0 0 0 1
    particle wax_on ^0.125 ^-0.62354 ^ 0 0 0 0 1
    particle wax_on ^0.25 ^-0.62354 ^ 0 0 0 0 1
    particle wax_on ^0.375 ^-0.62354 ^ 0 0 0 0 1
    particle wax_on ^0.5 ^-0.62354 ^ 0 0 0 0 1
    particle wax_on ^0.5625 ^-0.5456 ^ 0 0 0 0 1
    particle wax_on ^0.625 ^-0.46765 ^ 0 0 0 0 1
    particle wax_on ^0.6875 ^-0.38971 ^ 0 0 0 0 1
    particle wax_on ^0.75 ^-0.31177 ^ 0 0 0 0 1
    particle wax_on ^0.8125 ^-0.23383 ^ 0 0 0 0 1
    particle wax_on ^0.875 ^-0.15588 ^ 0 0 0 0 1
    particle wax_on ^0.9375 ^-0.07794 ^ 0 0 0 0 1


text:
#> asset:mob/0232.honey_leader/tick/1.trigger
#
# Mobが生きている間毎tick実行されるfunction
#
# @within tag/function asset:mob/tick

execute if data storage asset:context {id:232} run function asset:mob/0232.honey_leader/tick/2.tick


text:
#> asset:mob/0232.honey_leader/tick/4.buff_and_heal
#
# ハニー系のMobにバフを付与して回復するよ
#
# @within function asset:mob/0232.honey_leader/tick/2.tick

#> Private
# @private
    #declare tag 6G.HoneyMob

# 演出
    particle minecraft:block honey_block ~ ~1.2 ~ 2 0.4 2 0 30
    particle dust 1.000 0.741 0.141 1.3 ~ ~1.2 ~ 2 0.4 2 0 160 normal
    particle minecraft:wax_on ~ ~ ~ 2 2 2 0 100
    playsound minecraft:entity.glow_squid.squirt hostile @a ~ ~ ~ 1 0.8 0

# バフ/回復のターゲット
    tag @e[type=skeleton,scores={MobID=141..142},distance=..15] add 6G.HoneyMob
    tag @e[type=skeleton,scores={MobID=233},distance=..15] add 6G.HoneyMob

# バフ
    #effect give @e[type=skeleton,tag=6G.HoneyMob,distance=..15] resistance 2 1 true
    #effect give @e[type=skeleton,tag=6G.HoneyMob,distance=..15] speed 2 1 true

# 回復
    data modify storage lib: Argument.Heal set value 750f
    function lib:heal/modifier
    execute as @e[type=skeleton,tag=6G.HoneyMob,distance=..15] run function lib:heal/
    function lib:heal/reset

# タグを消しておく
    tag @e[type=skeleton,tag=6G.HoneyMob,distance=..15] remove 6G.HoneyMob

# 自身のスコアリセット
    scoreboard players set @s 6G.Tick -60
    scoreboard players reset @s 6G.SkillSelect


text:
#> asset:mob/0232.honey_leader/tick/3.skill_select
#
# スキル選択
#
# @within function asset:mob/0232.honey_leader/tick/2.tick

# まず0に設定 0の場合回復スキルを使う
    scoreboard players set @s 6G.SkillSelect 0

# もし視点先にプレイヤーがいたなら確率でビームにする
    execute positioned ^ ^ ^16 if entity @p[gamemode=!spectator,distance=..16] if predicate lib:random_pass_per/70 run scoreboard players set @s 6G.SkillSelect 1


text:
#> asset:mob/0232.honey_leader/tick/8.hit
#
# ヒット処理
#
# @within function asset:mob/0232.honey_leader/tick/6.shoot_and_reset

# 演出
    playsound entity.glow_squid.squirt hostile @a ~ ~ ~ 1 1.5 0
    playsound block.honey_block.hit hostile @a ~ ~ ~ 1 1 0

# ダメージ
    data modify storage lib: Argument.Damage set value 40f
# 属性
    data modify storage lib: Argument.AttackType set value "Magic"
    data modify storage lib: Argument.ElementType set value "Water"
# デスログ
    data modify storage lib: Argument.DeathMessage append value '[{"translate": "%1$sは%2$sに全身べとべとにされた","with":[{"selector":"@s"},{"nbt":"Return.AttackerName","storage":"lib:","interpret":true}]}]'
    data modify storage lib: Argument.DeathMessage append value '[{"translate": "%1$sは%2$sにハチの巣の材料にされた","with":[{"selector":"@s"},{"nbt":"Return.AttackerName","storage":"lib:","interpret":true}]}]'
# 補正
    execute as @e[type=skeleton,tag=this,distance=..32] run function lib:damage/modifier
# 実行
    function lib:damage/
# リセット
    function lib:damage/reset
# デバフ
    effect give @s mining_fatigue 3 1 true
    execute if predicate api:global_vars/difficulty/max/normal run effect give @s poison 3 1 true
    execute if predicate api:global_vars/difficulty/min/hard run effect give @s wither 3 1 true

# リセット処理
    tag @s remove LandingTarget


text:
#> asset:mob/0271.indomitable_warrior/summon/2.summon
#
# Mobの召喚時の処理
#
# @within function asset:mob/0271.indomitable_warrior/summon/1.trigger

# 元となるMobを召喚する
    summon zombified_piglin ~ ~ ~ {Tags:["MobInit","AlwaysInvisible"],DeathLootTable:"asset:mob/death/0271.indomitable_warrior"}
# ID (int)
    data modify storage asset:mob ID set value 271
# Type (string) Wikiを参照
    data modify storage asset:mob Type set value "Enemy"
# 干渉可能か否か (boolean)
    data modify storage asset:mob Interferable set value true
# 名前 (TextComponentString) (オプション)
    data modify storage asset:mob Name set value '{"text":"不屈の剣士","color":"dark_gray","bold":true}'
# 武器
    # メインハンド (Compound(Item)) (オプション)
        data modify storage asset:mob Weapon.Mainhand set value {id:"minecraft:stick",Count:1b,tag:{CustomModelData:20033}}
    # オフハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Offhand set value
# 武器ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob WeaponDropChances set value
# 防具
    # 頭 (Compound(Item)) (オプション)
        data modify storage asset:mob Armor.Head set value {id:"minecraft:light_gray_shulker_box",Count:1b}
    # 胴 (Compound(Item)) (オプション)
        data modify storage asset:mob Armor.Chest set value {id:"minecraft:leather_chestplate",Count:1b,tag:{display:{color:9539985}}}
    # 脚 (Compound(Item)) (オプション)
        data modify storage asset:mob Armor.Legs set value {id:"minecraft:leather_leggings",Count:1b,tag:{display:{color:9539985}}}
    # 足 (Compound(Item)) (オプション)
        data modify storage asset:mob Armor.Feet set value {id:"minecraft:leather_boots",Count:1b,tag:{display:{color:9539985}}}
# 防具ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob ArmorDropChances set value
# 体力 (double) (オプション)
    data modify storage asset:mob Health set value 500
# 攻撃力 (double) (オプション)
    data modify storage asset:mob AttackDamage set value 1
# 防御力 (double) (オプション) // 被ダメージがある程度大きい場合1ptにつき0.8%カット、小さい場合1ptにつき約4%カット 20pt以上は頭打ち
    data modify storage asset:mob Defense set value -6
# 特殊防御力 (double) (オプション) // 4pointにつきダメージを大きく減らす
    # data modify storage asset:mob SpecialDefense set value
# 移動速度 (double) (オプション)
    data modify storage asset:mob Speed set value 0.3
# 索敵範囲 (double) (オプション)
    # data modify storage asset:mob FollowRange set value
# ノックバック耐性 (double) (オプション)
    # data modify storage asset:mob KnockBackResist set value
# 属性倍率 // 1.0fで100% 最低でも25%は軽減されずに入る
    # 物理倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Physical set value
    # 魔法倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Magic set value
    # 火倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Fire set value
    # 水倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Water set value
    # 雷倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Thunder set value

# MobInitタグ持ちを対象にして召喚関数呼び出し
    execute as @e[type=zombified_piglin,tag=MobInit,distance=..0.01] run function asset:mob/common/summon


text:
#> asset:mob/0271.indomitable_warrior/summon/1.trigger
#
# Mob召喚処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:mob/summon

execute if data storage asset:context {id:271} run function asset:mob/0271.indomitable_warrior/summon/2.summon


text:
#> asset:mob/0271.indomitable_warrior/attack/1.trigger
#
# Mobの攻撃時に実行されるfunction
#
# @within tag/function asset:mob/attack

execute if data storage asset:context {id:271} run function asset:mob/0271.indomitable_warrior/attack/2.attack


text:
#> asset:mob/0271.indomitable_warrior/attack/2.attack
#
# Mobの攻撃時の処理
#
# @within function asset:mob/0271.indomitable_warrior/attack/1.trigger

# 演出
    execute at @p[tag=Victim] run particle dust 0.867 0.667 0.161 1 ~ ~2 ~ 0 2.5 0 0 50
    execute at @p[tag=Victim] run particle dust 1 1 0.161 1.5 ~ ~2 ~ 0 2.5 0 0 50
    execute at @p[tag=Victim] run particle minecraft:poof ~ ~ ~ 0.3 0 0.3 0.05 10

    playsound entity.lightning_bolt.thunder hostile @a ~ ~ ~ 1 2
    playsound item.trident.throw hostile @a ~ ~ ~ 1 1

# 属性ダメージ
   # 与えるダメージ
        data modify storage lib: Argument.Damage set value 19.5f
    # 第一属性
        data modify storage lib: Argument.AttackType set value "Physical"
    # 第二属性
        data modify storage lib: Argument.ElementType set value "Fire"
    # 補正functionを実行
        function lib:damage/modifier
    # プレイヤー対象に
        execute as @p[tag=Victim] run function lib:damage/
    # リセット
        function lib:damage/reset


text:
#> asset:mob/0016.shirker/death/2.death
#
# Mobの死亡時の処理
#
# @within function asset:mob/0016.shirker/death/1.trigger

# 演出
    particle bubble ~ ~ ~ 2 2 2 0 100 normal @a

# 死亡時監視者を3体召喚
    data modify storage api: Argument.ID set value 15
    function api:mob/summon
    data modify storage api: Argument.ID set value 15
    function api:mob/summon
    data modify storage api: Argument.ID set value 15
    function api:mob/summon


text:
#> asset:mob/0016.shirker/death/1.trigger
#
# Mobの死亡時に実行されるfunction
#
# @within tag/function asset:mob/death

execute if data storage asset:context {id:16} run function asset:mob/0016.shirker/death/2.death


text:
#> asset:mob/0016.shirker/summon/2.summon
#
# Mobの召喚時の処理
#
# @within function asset:mob/0016.shirker/summon/1.trigger

# 元となるMobを召喚する
    summon elder_guardian ~ ~ ~ {Tags:["MobInit"],DeathLootTable:"asset:mob/death/0016.shirker"}
# ID (int)
    data modify storage asset:mob ID set value 16
# Type (string) Wikiを参照
    data modify storage asset:mob Type set value "Enemy"
# 干渉可能か否か (boolean)
    data modify storage asset:mob Interferable set value true
# 名前 (TextComponentString) (オプション)
    data modify storage asset:mob Name set value '{"text":"忌視者","color":"blue"}'
# 武器
    # メインハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Mainhand set value
    # オフハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Offhand set value
# 武器ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob WeaponDropChances set value
# 防具
    # 頭 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Head set value
    # 胴 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Chest set value
    # 脚 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Legs set value
    # 足 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Feet set value
# 防具ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob ArmorDropChances set value
# 体力 (double) (オプション)
    data modify storage asset:mob Health set value 1000
# 攻撃力 (double) (オプション)
    data modify storage asset:mob AttackDamage set value 5.0
# 防御力 (double) (オプション) // 被ダメージがある程度大きい場合1ptにつき0.8%カット、小さい場合1ptにつき約4%カット 20pt以上は頭打ち
    data modify storage asset:mob Defense set value 0
# 特殊防御力 (double) (オプション) // 4pointにつきダメージを大きく減らす
    # data modify storage asset:mob SpecialDefense set value
# 移動速度 (double) (オプション)
    data modify storage asset:mob Speed set value 0.10
# 索敵範囲 (double) (オプション)
    data modify storage asset:mob FollowRange set value 32.0
# ノックバック耐性 (double) (オプション)
    data modify storage asset:mob KnockBackResist set value 0.0
# 属性倍率 // 1.0fで100% 最低でも25%は軽減されずに入る
    # 物理倍率 (float) (オプション)
        data modify storage asset:mob Resist.Physical set value 1
    # 魔法倍率 (float) (オプション)
        data modify storage asset:mob Resist.Magic set value 1
    # 火倍率 (float) (オプション)
        data modify storage asset:mob Resist.Fire set value 0.25
    # 水倍率 (float) (オプション)
        data modify storage asset:mob Resist.Water set value 0.8
    # 雷倍率 (float) (オプション)
        data modify storage asset:mob Resist.Thunder set value 1.0

# MobInitタグ持ちを対象にして召喚関数呼び出し
    execute as @e[type=elder_guardian,tag=MobInit,distance=..0.01] run function asset:mob/common/summon


text:
#> asset:mob/0016.shirker/summon/1.trigger
#
# Mob召喚処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:mob/summon

execute if data storage asset:context {id:16} run function asset:mob/0016.shirker/summon/2.summon


text:
#> asset:mob/0210.aurora_eye/0.load
#
# MOBに利用するスコアボード等の初期化処理
#
# @within tag/function asset:mob/load

#> 定義類はここに
# @within function asset:mob/0210.aurora_eye/**
    scoreboard objectives add 5U.AttackCT dummy
    scoreboard objectives add 5U.Shoot dummy

#> Projectile側と共通スコア
# @within function
#   asset:mob/0210.aurora_eye/**
#   asset:mob/0211.aurora_bullet/tick/3.hit
    scoreboard objectives add 5U.DebuffTime dummy


text:
#> asset:mob/0210.aurora_eye/rejoin_process
#
# 使い方は必ずwikiを見ること
#
# @within tag/function asset:rejoin

# スケジュールループ再開
    execute if entity @s[scores={5U.DebuffTime=0..}] run schedule function asset:mob/0210.aurora_eye/player_process/01.schedule_loop 1t replace


text:
#> asset:mob/0210.aurora_eye/death/2.death
#
# Mobの死亡時の処理
#
# @within function asset:mob/0210.aurora_eye/death/1.trigger

# 演出
    playsound minecraft:entity.spider.step hostile @a ~ ~ ~ 1.5 1.5
    particle dust_color_transition 0 0.235 1 1 0.000 1.000 0.886 ~ ~1.68 ~ 0.4 0.4 0.4 1 20 normal
    particle dust_color_transition 0.000 1.000 0.886 1 0 0.235 1 ~ ~1.68 ~ 0.4 0.4 0.4 1 20 normal

# 低確率で頭をドロップ
    execute if predicate lib:random_pass_per/3 run summon item ~ ~ ~ {Item:{id:"minecraft:player_head",Count:1b,tag:{display:{Name:'[{"text":"オ","color":"#00FFE2"},{"text":"ー","color":"#00E7E7"},{"text":"ロ","color":"#00D0ED"},{"text":"ラ","color":"#00B9F3"},{"text":"ア","color":"#00A2F9"},{"text":"イ","color":"#008BFF"},{"text":"の目","color":"white"}]'},SkullOwner:{Id:[I;1725447404,-1135126882,-2079282470,1109833247],Properties:{textures:[{Value:"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjlkMWYwYTJmNjFlMjc1ZTlhZTQ1YTY5MjQwM2I5ZGI5NDM2YjYwNjg1NDJhMTNkMDYzOGI0OWI1ZjY1NjliMyJ9fX0="}]}}}}}


text:
#> asset:mob/0210.aurora_eye/death/1.trigger
#
# Mobの死亡時に実行されるfunction
#
# @within tag/function asset:mob/death

execute if data storage asset:context {id:210} run function asset:mob/0210.aurora_eye/death/2.death


text:
#> asset:mob/0210.aurora_eye/summon/2.summon
#
# Mobの召喚時の処理
#
# @within function asset:mob/0210.aurora_eye/summon/1.trigger

# 元となるMobを召喚する
    summon zombie ~ ~ ~ {Silent:1b,NoAI:1b,Tags:["MobInit","AlwaysInvisible"],DeathLootTable:"asset:mob/death/0210.aurora_eye"}
# ID (int)
    data modify storage asset:mob ID set value 210
# Type (string) Wikiを参照
    data modify storage asset:mob Type set value "Enemy"
# 干渉可能か否か (boolean)
    data modify storage asset:mob Interferable set value true
# 名前 (TextComponentString) (オプション)
    data modify storage asset:mob Name set value '[{"text":"オ","color":"#00FFE2"},{"text":"ー","color":"#00e7e7"},{"text":"ロ","color":"#00D0ED"},{"text":"ラ","color":"#00B9F3"},{"text":"ア","color":"#00a2f9"},{"text":"イ","color":"#008bff"}]'
# 武器
    # メインハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Mainhand set value
    # オフハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Offhand set value
# 武器ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob WeaponDropChances set value
# 防具
    # 頭 (Compound(Item)) (オプション)
        data modify storage asset:mob Armor.Head set value {id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;1725447404,-1135126882,-2079282470,1109833247],Properties:{textures:[{Value:"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjlkMWYwYTJmNjFlMjc1ZTlhZTQ1YTY5MjQwM2I5ZGI5NDM2YjYwNjg1NDJhMTNkMDYzOGI0OWI1ZjY1NjliMyJ9fX0="}]}}}}
    # 胴 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Chest set value
    # 脚 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Legs set value
    # 足 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Feet set value
# 防具ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob ArmorDropChances set value
# 体力 (double) (オプション)
    data modify storage asset:mob Health set value 2300
# 攻撃力 (double) (オプション)
    # data modify storage asset:mob AttackDamage set value
# 防御力 (double) (オプション) // 被ダメージがある程度大きい場合1ptにつき0.8%カット、小さい場合1ptにつき約4%カット 20pt以上は頭打ち
    data modify storage asset:mob Defense set value 0
# 特殊防御力 (double) (オプション) // 4pointにつきダメージを大きく減らす
    # data modify storage asset:mob SpecialDefense set value
# 移動速度 (double) (オプション)
    # data modify storage asset:mob Speed set value
# 索敵範囲 (double) (オプション)
    # data modify storage asset:mob FollowRange set value
# ノックバック耐性 (double) (オプション)
    # data modify storage asset:mob KnockBackResist set value
# 属性倍率 // 1.0fで100% 最低でも25%は軽減されずに入る
    # 物理倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Physical set value
    # 魔法倍率 (float) (オプション)
        data modify storage asset:mob Resist.Magic set value 0.7
    # 火倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Fire set value
    # 水倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Water set value
    # 雷倍率 (float) (オプション)
        data modify storage asset:mob Resist.Thunder set value 0

# MobInitタグ持ちを対象にして召喚関数呼び出し
    execute as @e[type=zombie,tag=MobInit,distance=..0.01] run function asset:mob/common/summon


text:
#> asset:mob/0210.aurora_eye/summon/1.trigger
#
# Mob召喚処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:mob/summon

execute if data storage asset:context {id:210} run function asset:mob/0210.aurora_eye/summon/2.summon


text:
#> asset:mob/0210.aurora_eye/hurt/2.hurt
#
# Mobの被ダメージ時の処理
#
# @within function asset:mob/0210.aurora_eye/hurt/1.trigger

# 演出
    playsound minecraft:entity.spider.step hostile @a ~ ~ ~ 1.5 1.5
    particle dust_color_transition 0 0.235 1 1 0.000 1.000 0.886 ~ ~1.68 ~ 0.4 0.4 0.4 1 20 normal
    particle dust_color_transition 0.000 1.000 0.886 1 0 0.235 1 ~ ~1.68 ~ 0.4 0.4 0.4 1 20 normal


text:
#> asset:mob/0210.aurora_eye/hurt/1.trigger
#
# Mobの被ダメージに実行されるfunction
#
# @within tag/function asset:mob/hurt

execute if data storage asset:context {id:210} run function asset:mob/0210.aurora_eye/hurt/2.hurt


text:
#> asset:mob/0210.aurora_eye/player_process/01.schedule_loop
#
# 専用デバフのスケジュールループを行うよ
#
# @within function
#   asset:mob/0210.aurora_eye/player_process/02.main
#   asset:mob/0210.aurora_eye/tick/3.attack
#   asset:mob/0210.aurora_eye/rejoin_process
#   asset:mob/0211.aurora_bullet/tick/3.hit

# プレイヤーの処理
    execute as @a[scores={5U.DebuffTime=0..}] at @s run function asset:mob/0210.aurora_eye/player_process/02.main


text:
#> asset:mob/0210.aurora_eye/player_process/03.mp_reduction
#
# 最大MPの8%分減少させる
#
# @within function asset:mob/0210.aurora_eye/player_process/02.main

# MPを5%減らす
    execute store result storage asset:temp MP5Per double -0.05 run function lib:mp/get_max
    execute store result score $Fluctuation Lib run data get storage asset:temp MP5Per 1.0
    function lib:mp/fluctuation
    playsound block.beacon.power_select player @a ~ ~ ~ 0.2 2 0

# リセット
    data remove storage asset:temp MP5Per


text:
#> asset:mob/0210.aurora_eye/player_process/04.end
#
# デバフの終了処理だよ
#
# @within function asset:mob/0210.aurora_eye/player_process/02.main

# スコアリセット
    scoreboard players reset @s 5U.DebuffTime


text:
#> asset:mob/0210.aurora_eye/player_process/02.main
#
# 主な処理を行うよ
#
# @within function asset:mob/0210.aurora_eye/player_process/01.schedule_loop

#> Private
# @private
    #declare score_holder $Temp

# vfx
    particle dust_color_transition 0.000 1.000 0.886 1 0 0.235 1 ~ ~1.2 ~ 0.4 0.5 0.4 1 2 normal

# 定期的にMPを割合で減少させる
    scoreboard players operation $Temp Temporary = @s 5U.DebuffTime
    scoreboard players operation $Temp Temporary %= $40 Const
    execute if score $Temp Temporary matches 0 run function asset:mob/0210.aurora_eye/player_process/03.mp_reduction
    scoreboard players reset $Temp Temporary

# 効果時間の処理
    scoreboard players remove @s 5U.DebuffTime 1

# プレイヤー死亡時に終了
    execute if entity @s[tag=Death] run function asset:mob/0210.aurora_eye/player_process/04.end

# 終了
    execute if entity @s[scores={5U.DebuffTime=..0}] run function asset:mob/0210.aurora_eye/player_process/04.end

# スケジュールループ
    execute if entity @s[scores={5U.DebuffTime=0..}] run schedule function asset:mob/0210.aurora_eye/player_process/01.schedule_loop 1t replace


text:
#> asset:mob/0210.aurora_eye/tick/2.tick
#
# Mobのtick時の処理
#
# @within function asset:mob/0210.aurora_eye/tick/1.trigger

# 演出
    particle dust_color_transition 0.000 1.000 0.886 1 0 0.235 1 ~ ~1.68 ~ 0.25 0.25 0.25 0 1 normal

# 接地で上を向く
    execute unless block ~ ~0.4 ~ #lib:no_collision at @s run tp @s ~ ~ ~ ~ ~-35
    execute unless block ~ ~2.5 ~ #lib:no_collision at @s run tp @s ~ ~ ~ ~ ~80

# 範囲内ならホーミングじみた移動、ただしダメージを受けていないなら
    execute facing entity @p[gamemode=!spectator] feet positioned ^ ^ ^-100 rotated as @s positioned ^ ^ ^-800 facing entity @s feet positioned as @s run tp @s ^ ^ ^0.2 ~ ~

# クールタイムを減らす 0以下にはならない
    scoreboard players remove @s[scores={5U.AttackCT=1..}] 5U.AttackCT 1

# クールタイム中じゃないなら接触時に攻撃
    execute unless score @s 5U.AttackCT matches 1.. anchored eyes positioned ~-0.5 ~-0.5 ~-0.5 if entity @p[gamemode=!spectator,dx=0] as @p[tag=!PlayerShouldInvulnerable,dx=0] at @s run function asset:mob/0210.aurora_eye/tick/3.attack

# カベにぶつかった際の処理
    execute unless block ^ ^ ^0.3 #lib:no_collision at @s run tp @s ~ ~ ~ ~45 ~-45
    execute at @s unless block ^ ^ ^0.2 #lib:no_collision at @s run tp @s ~ ~ ~ ~45 ~-45

# 遠距離攻撃
    execute unless entity @a[gamemode=!spectator,distance=..8] run scoreboard players add @s 5U.Shoot 1
    execute if entity @s[scores={5U.Shoot=80..}] run function asset:mob/0210.aurora_eye/tick/4.summon_bullet


text:
#> asset:mob/0210.aurora_eye/tick/3.attack
#
# 攻撃
#
# @within function asset:mob/0210.aurora_eye/tick/2.tick

# VFX
    particle dust 0.000 0.545 1.000 1.5 ~ ~1.2 ~ 0.4 0.4 0.4 1 50 normal
    particle dust 0.000 1.000 0.886 1.5 ~ ~1.2 ~ 0.4 0.4 0.4 1 50 normal
    playsound entity.evoker.prepare_summon hostile @a ~ ~ ~ 0.5 2 0

# ダメージ設定
    data modify storage lib: Argument.Damage set value 36f
    data modify storage lib: Argument.AttackType set value "Magic"
    data modify storage lib: Argument.ElementType set value "Thunder"
# デスログ
    data modify storage lib: Argument.DeathMessage append value '[{"translate": "%1$sは%2$sによってオーロラに包まれ消滅した","with":[{"selector":"@s"},{"nbt":"Return.AttackerName","storage":"lib:","interpret":true}]}]'
    data modify storage lib: Argument.DeathMessage append value '[{"translate": "%1$sは%2$sによって空の塵となった","with":[{"selector":"@s"},{"nbt":"Return.AttackerName","storage":"lib:","interpret":true}]}]'
# 補正
    execute as @e[type=zombie,tag=this,distance=..5,sort=nearest,limit=1] run function lib:damage/modifier
# ダメージ
    function lib:damage/
# リセット
    function lib:damage/reset

# スコアを付与
    scoreboard players set @s 5U.DebuffTime 120

# スケジュールループを開始
    schedule function asset:mob/0210.aurora_eye/player_process/01.schedule_loop 1t replace

# クールタイム設定
    scoreboard players set @e[type=zombie,tag=this,distance=..5,sort=nearest,limit=1] 5U.AttackCT 20


text:
#> asset:mob/0210.aurora_eye/tick/1.trigger
#
# Mobが生きている間毎tick実行されるfunction
#
# @within tag/function asset:mob/tick

execute if data storage asset:context {id:210} run function asset:mob/0210.aurora_eye/tick/2.tick


text:
#> asset:mob/0210.aurora_eye/tick/4.summon_bullet
#
# オーロラ弾を発射するよ
#
# @within function asset:mob/0210.aurora_eye/tick/2.tick

# 発射
    data modify storage api: Argument.ID set value 211
    execute anchored eyes positioned ^ ^ ^-0.25 run function api:mob/summon
    execute anchored eyes positioned ^ ^ ^-0.25 run tp @e[type=marker,scores={MobID=211},distance=..0.01] ~ ~ ~ facing entity @p[gamemode=!spectator] eyes

# スコアリセット
    scoreboard players reset @s 5U.Shoot


text:
#> asset:mob/0214.water_magic/0.load
#
# MOBに利用するスコアボード等の初期化処理
#
# @within tag/function asset:mob/load

#> 定義類はここに
# @within function asset:mob/0214.water_magic/**
    scoreboard objectives add 5Y.Tick dummy


text:
#> asset:mob/0214.water_magic/summon/2.summon
#
# Mobの召喚時の処理
#
# @within function asset:mob/0214.water_magic/summon/1.trigger

# 元となるMobを召喚する
    summon marker ~ ~ ~ {Tags:["MobInit"]}
# ID (int)
    data modify storage asset:mob ID set value 214
# Type (string) Wikiを参照
    data modify storage asset:mob Type set value "Projectile"
# 干渉可能か否か (boolean)
    data modify storage asset:mob Interferable set value false
# 名前 (TextComponentString) (オプション)
    data modify storage asset:mob Name set from entity @s CustomName

# MobInitタグ持ちを対象にして召喚関数呼び出し
    execute as @e[type=marker,tag=MobInit,distance=..0.01] run function asset:mob/common/summon


text:
#> asset:mob/0214.water_magic/summon/1.trigger
#
# Mob召喚処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:mob/summon

execute if data storage asset:context {id:214} run function asset:mob/0214.water_magic/summon/2.summon


text:
#> asset:mob/0214.water_magic/tick/4.damage_and_vfx
#
#
#
# @within function asset:mob/0214.water_magic/tick/2.tick

# vfx
    execute positioned ~ ~0.3 ~ rotated 0 0 run function asset:mob/0214.water_magic/tick/vfx2

# ダメージ
    data modify storage lib: Argument.Damage set value 24.5f
# 属性
    data modify storage lib: Argument.AttackType set value "Magic"
     data modify storage lib: Argument.ElementType set value "Water"
# デスログ
    data modify storage lib: Argument.DeathMessage append value '[{"translate": "%1$sは%2$sにより激流に飲み込まれた","with":[{"selector":"@s"},{"nbt":"Return.AttackerName","storage":"lib:","interpret":true}]}]'
    data modify storage lib: Argument.DeathMessage append value '[{"translate": "%1$sは%2$sにより水底に沈んだ","with":[{"selector":"@s"},{"nbt":"Return.AttackerName","storage":"lib:","interpret":true}]}]'
# 補正
    function lib:damage/modifier
# ダメージ
    execute as @a[tag=!PlayerShouldInvulnerable,distance=..2.25] positioned ~-2.25 ~-1.5 ~-2.25 if entity @s[dx=3.5,dy=2,dz=3.5] run function lib:damage/
# リセット
    function lib:damage/reset


text:
#> asset:mob/0214.water_magic/tick/vfx2
#
#
#
# @within function asset:mob/0214.water_magic/tick/4.damage_and_vfx

# 音
    playsound entity.dolphin.splash hostile @a ~ ~ ~ 0.8 2 0
    playsound entity.dolphin.splash hostile @a ~ ~ ~ 0.8 1 0
    playsound entity.dolphin.splash hostile @a ~ ~ ~ 0.8 0 0

# [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkmABwCM1pAZgIamMC0AzAJydsAspKTq0oAjSgHZWANnrjq7cSM7sADJxVgCAO0YBbBMkBhigAJqmsDEYY9AZyTgUAe0JaISAKxSCKOK7gZ7MAA3RmxCA3AADyQVAigYgF8EgmtSNEI7RAAmADos9wIbCCs3RFiwOGxsNBgbA2oVcoxHYogDcrQbAFEqmrqugEdCUOwoAGVLH3JEJmw6pLxwaHgKGEdRgHNHLXNiMgp6d3YUXhEVXmkVRnpWXil3Nk5xehRWOHo4FEYROClOdyy5G0egMYEAWJqAJcjAEb6pnMlmsukyDmcriQ1Cy3l8bQCiHAITCETA0TKcUSyTAqXSmVy+UKxQwpXKlWqtXqjRSLUYbRi3kcGC0-iQXjAACtCLoYEgMWAfgAvNCCklgTo9Fn9IYjcaTODTWZ1AidABCcHl-kGwyqWsYUyQergSQAukA_3
# 多角形 1
    particle fishing ^0 ^ ^-2.25 0 0 0 0 1
    particle fishing ^0.16238 ^ ^-1.96875 0 0 0 0 1
    particle fishing ^0.32476 ^ ^-1.6875 0 0 0 0 1
    particle fishing ^0.48714 ^ ^-1.40625 0 0 0 0 1
    particle fishing ^0.64952 ^ ^-1.125 0 0 0 0 1
    particle fishing ^0.8119 ^ ^-0.84375 0 0 0 0 1
    particle fishing ^0.97428 ^ ^-0.5625 0 0 0 0 1
    particle fishing ^1.13666 ^ ^-0.28125 0 0 0 0 1
    particle fishing ^1.29904 ^ ^0 0 0 0 0 1
    particle fishing ^1.46142 ^ ^0.28125 0 0 0 0 1
    particle fishing ^1.6238 ^ ^0.5625 0 0 0 0 1
    particle fishing ^1.78618 ^ ^0.84375 0 0 0 0 1
    particle fishing ^1.94856 ^ ^-1.125 0 0 0 0 1
    particle fishing ^1.78618 ^ ^-0.84375 0 0 0 0 1
    particle fishing ^1.6238 ^ ^-0.5625 0 0 0 0 1
    particle fishing ^1.46142 ^ ^-0.28125 0 0 0 0 1
    particle fishing ^1.29904 ^ ^0 0 0 0 0 1
    particle fishing ^1.13666 ^ ^0.28125 0 0 0 0 1
    particle fishing ^0.97428 ^ ^0.5625 0 0 0 0 1
    particle fishing ^0.8119 ^ ^0.84375 0 0 0 0 1
    particle fishing ^0.64952 ^ ^1.125 0 0 0 0 1
    particle fishing ^0.48714 ^ ^1.40625 0 0 0 0 1
    particle fishing ^0.32476 ^ ^1.6875 0 0 0 0 1
    particle fishing ^0.16238 ^ ^1.96875 0 0 0 0 1
    particle fishing ^1.94856 ^ ^1.125 0 0 0 0 1
    particle fishing ^1.6238 ^ ^1.125 0 0 0 0 1
    particle fishing ^1.29904 ^ ^1.125 0 0 0 0 1
    particle fishing ^0.97428 ^ ^1.125 0 0 0 0 1
    particle fishing ^0.64952 ^ ^1.125 0 0 0 0 1
    particle fishing ^0.32476 ^ ^1.125 0 0 0 0 1
    particle fishing ^0 ^ ^1.125 0 0 0 0 1
    particle fishing ^-0.32476 ^ ^1.125 0 0 0 0 1
    particle fishing ^-0.64952 ^ ^1.125 0 0 0 0 1
    particle fishing ^-0.97428 ^ ^1.125 0 0 0 0 1
    particle fishing ^-1.29904 ^ ^1.125 0 0 0 0 1
    particle fishing ^-1.6238 ^ ^1.125 0 0 0 0 1
    particle fishing ^0 ^ ^2.25 0 0 0 0 1
    particle fishing ^-0.16238 ^ ^1.96875 0 0 0 0 1
    particle fishing ^-0.32476 ^ ^1.6875 0 0 0 0 1
    particle fishing ^-0.48714 ^ ^1.40625 0 0 0 0 1
    particle fishing ^-0.64952 ^ ^1.125 0 0 0 0 1
    particle fishing ^-0.8119 ^ ^0.84375 0 0 0 0 1
    particle fishing ^-0.97428 ^ ^0.5625 0 0 0 0 1
    particle fishing ^-1.13666 ^ ^0.28125 0 0 0 0 1
    particle fishing ^-1.29904 ^ ^0 0 0 0 0 1
    particle fishing ^-1.46142 ^ ^-0.28125 0 0 0 0 1
    particle fishing ^-1.6238 ^ ^-0.5625 0 0 0 0 1
    particle fishing ^-1.78618 ^ ^-0.84375 0 0 0 0 1
    particle fishing ^-1.94856 ^ ^1.125 0 0 0 0 1
    particle fishing ^-1.78618 ^ ^0.84375 0 0 0 0 1
    particle fishing ^-1.6238 ^ ^0.5625 0 0 0 0 1
    particle fishing ^-1.46142 ^ ^0.28125 0 0 0 0 1
    particle fishing ^-1.29904 ^ ^0 0 0 0 0 1
    particle fishing ^-1.13666 ^ ^-0.28125 0 0 0 0 1
    particle fishing ^-0.97428 ^ ^-0.5625 0 0 0 0 1
    particle fishing ^-0.8119 ^ ^-0.84375 0 0 0 0 1
    particle fishing ^-0.64952 ^ ^-1.125 0 0 0 0 1
    particle fishing ^-0.48714 ^ ^-1.40625 0 0 0 0 1
    particle fishing ^-0.32476 ^ ^-1.6875 0 0 0 0 1
    particle fishing ^-0.16238 ^ ^-1.96875 0 0 0 0 1
    particle fishing ^-1.94856 ^ ^-1.125 0 0 0 0 1
    particle fishing ^-1.6238 ^ ^-1.125 0 0 0 0 1
    particle fishing ^-1.29904 ^ ^-1.125 0 0 0 0 1
    particle fishing ^-0.97428 ^ ^-1.125 0 0 0 0 1
    particle fishing ^-0.64952 ^ ^-1.125 0 0 0 0 1
    particle fishing ^-0.32476 ^ ^-1.125 0 0 0 0 1
    particle fishing ^0 ^ ^-1.125 0 0 0 0 1
    particle fishing ^0.32476 ^ ^-1.125 0 0 0 0 1
    particle fishing ^0.64952 ^ ^-1.125 0 0 0 0 1
    particle fishing ^0.97428 ^ ^-1.125 0 0 0 0 1
    particle fishing ^1.29904 ^ ^-1.125 0 0 0 0 1
    particle fishing ^1.6238 ^ ^-1.125 0 0 0 0 1
# 円 1
    particle fishing ^0 ^ ^-2.25 0 0 0 0 1
    particle fishing ^0.25192 ^ ^-2.23585 0 0 0 0 1
    particle fishing ^0.50067 ^ ^-2.19359 0 0 0 0 1
    particle fishing ^0.74313 ^ ^-2.12374 0 0 0 0 1
    particle fishing ^0.97624 ^ ^-2.02718 0 0 0 0 1
    particle fishing ^1.19707 ^ ^-1.90513 0 0 0 0 1
    particle fishing ^1.40285 ^ ^-1.75912 0 0 0 0 1
    particle fishing ^1.59099 ^ ^-1.59099 0 0 0 0 1
    particle fishing ^1.75912 ^ ^-1.40285 0 0 0 0 1
    particle fishing ^1.90513 ^ ^-1.19707 0 0 0 0 1
    particle fishing ^2.02718 ^ ^-0.97624 0 0 0 0 1
    particle fishing ^2.12374 ^ ^-0.74313 0 0 0 0 1
    particle fishing ^2.19359 ^ ^-0.50067 0 0 0 0 1
    particle fishing ^2.23585 ^ ^-0.25192 0 0 0 0 1
    particle fishing ^2.25 ^ ^0 0 0 0 0 1
    particle fishing ^2.23585 ^ ^0.25192 0 0 0 0 1
    particle fishing ^2.19359 ^ ^0.50067 0 0 0 0 1
    particle fishing ^2.12374 ^ ^0.74313 0 0 0 0 1
    particle fishing ^2.02718 ^ ^0.97624 0 0 0 0 1
    particle fishing ^1.90513 ^ ^1.19707 0 0 0 0 1
    particle fishing ^1.75912 ^ ^1.40285 0 0 0 0 1
    particle fishing ^1.59099 ^ ^1.59099 0 0 0 0 1
    particle fishing ^1.40285 ^ ^1.75912 0 0 0 0 1
    particle fishing ^1.19707 ^ ^1.90513 0 0 0 0 1
    particle fishing ^0.97624 ^ ^2.02718 0 0 0 0 1
    particle fishing ^0.74313 ^ ^2.12374 0 0 0 0 1
    particle fishing ^0.50067 ^ ^2.19359 0 0 0 0 1
    particle fishing ^0.25192 ^ ^2.23585 0 0 0 0 1
    particle fishing ^0 ^ ^2.25 0 0 0 0 1
    particle fishing ^-0.25192 ^ ^2.23585 0 0 0 0 1
    particle fishing ^-0.50067 ^ ^2.19359 0 0 0 0 1
    particle fishing ^-0.74313 ^ ^2.12374 0 0 0 0 1
    particle fishing ^-0.97624 ^ ^2.02718 0 0 0 0 1
    particle fishing ^-1.19707 ^ ^1.90513 0 0 0 0 1
    particle fishing ^-1.40285 ^ ^1.75912 0 0 0 0 1
    particle fishing ^-1.59099 ^ ^1.59099 0 0 0 0 1
    particle fishing ^-1.75912 ^ ^1.40285 0 0 0 0 1
    particle fishing ^-1.90513 ^ ^1.19707 0 0 0 0 1
    particle fishing ^-2.02718 ^ ^0.97624 0 0 0 0 1
    particle fishing ^-2.12374 ^ ^0.74313 0 0 0 0 1
    particle fishing ^-2.19359 ^ ^0.50067 0 0 0 0 1
    particle fishing ^-2.23585 ^ ^0.25192 0 0 0 0 1
    particle fishing ^-2.25 ^ ^0 0 0 0 0 1
    particle fishing ^-2.23585 ^ ^-0.25192 0 0 0 0 1
    particle fishing ^-2.19359 ^ ^-0.50067 0 0 0 0 1
    particle fishing ^-2.12374 ^ ^-0.74313 0 0 0 0 1
    particle fishing ^-2.02718 ^ ^-0.97624 0 0 0 0 1
    particle fishing ^-1.90513 ^ ^-1.19707 0 0 0 0 1
    particle fishing ^-1.75912 ^ ^-1.40285 0 0 0 0 1
    particle fishing ^-1.59099 ^ ^-1.59099 0 0 0 0 1
    particle fishing ^-1.40285 ^ ^-1.75912 0 0 0 0 1
    particle fishing ^-1.19707 ^ ^-1.90513 0 0 0 0 1
    particle fishing ^-0.97624 ^ ^-2.02718 0 0 0 0 1
    particle fishing ^-0.74313 ^ ^-2.12374 0 0 0 0 1
    particle fishing ^-0.50067 ^ ^-2.19359 0 0 0 0 1
    particle fishing ^-0.25192 ^ ^-2.23585 0 0 0 0 1


text:
#> asset:mob/0214.water_magic/tick/2.tick
#
# Mobのtick時の処理
#
# @within function asset:mob/0214.water_magic/tick/1.trigger

#> Private
# @private
    #declare score_holder $Temp

# 一定間隔でダメージ&演出を行う

# 実行時間を移す
    scoreboard players operation $Temp Temporary = @s 5Y.Tick
    execute if entity @s[scores={5Y.Tick=..30}] run scoreboard players operation $Temp Temporary %= $2 Const

# 最初の数tickだけ当たり判定の円を表示
    execute if entity @s[scores={5Y.Tick=..5}] run function asset:mob/0214.water_magic/tick/vfx

# 発動前にパーティクル
    execute if entity @s[scores={5Y.Tick=..30}] if score $Temp Temporary matches 0 run function asset:mob/0214.water_magic/tick/3.ready_vfx

# 一定間隔毎に魔方陣表示とダメージ
    execute if entity @s[scores={5Y.Tick=30..}] run scoreboard players operation $Temp Temporary %= $5 Const
    execute if entity @s[scores={5Y.Tick=30..}] if score $Temp Temporary matches 0 run function asset:mob/0214.water_magic/tick/4.damage_and_vfx

# スコア加算
    scoreboard players add @s 5Y.Tick 1

# リセット
    scoreboard players reset $Temp Temporary

# kill
    execute if entity @s[scores={5Y.Tick=55..}] run kill @s


text:
#> asset:mob/0214.water_magic/tick/3.ready_vfx
#
#
#
# @within function asset:mob/0214.water_magic/tick/2.tick

# 自分を回転
    tp @s ~ ~ ~ ~7.5 0

# 演出
    playsound entity.player.swim hostile @a ~ ~ ~ 0.2 1 0
    particle fishing ^ ^ ^2 ~ ~1000000 ~ 0.00000025 0 normal
    particle fishing ^ ^ ^-2 ~ ~1000000 ~ 0.00000025 0 normal
    particle fishing ^2 ^ ^ ~ ~1000000 ~ 0.00000025 0 normal
    particle fishing ^-2 ^ ^ ~ ~1000000 ~ 0.00000025 0 normal
    particle fishing ^ ^ ^2 ~ ~1000000 ~ 0.00000025 0 normal
    particle fishing ^ ^ ^-2 ~ ~1000000 ~ 0.00000025 0 normal
    particle fishing ^2 ^ ^ ~ ~1000000 ~ 0.00000025 0 normal
    particle fishing ^-2 ^ ^ ~ ~1000000 ~ 0.00000025 0 normal
    particle fishing ^ ^ ^2 ~ ~1000000 ~ 0.00000025 0 normal
    particle fishing ^ ^ ^-2 ~ ~1000000 ~ 0.00000025 0 normal
    particle fishing ^2 ^ ^ ~ ~1000000 ~ 0.00000025 0 normal
    particle fishing ^-2 ^ ^ ~ ~1000000 ~ 0.00000025 0 normal


text:
#> asset:mob/0214.water_magic/tick/vfx
#
# 当たり判定表示の円
#
# @within function asset:mob/0214.water_magic/tick/2.tick

# [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkmABwCM1pAZgIamMC0AzAJydsAspKTq0oAjSgHZWANnrjq7cSM7sADJxVgCAO0YBbBMkBhigAJqmsDEYY9AZyTgUAe0JaISAEy8CKOK7gZ7MAA3RmxCA3AADyQVAigYgF8EgmtSNEI7RHcAOncAVgIbCCs3RFiwOGxsNBgbA2oVcoxHYogDcrQbAFEqmrqugEdCUOwoAGVLH3JEJmw6pIBdIA_3
# 円 1
    particle scrape ^0 ^ ^-2.25 0 0 0 0 1
    particle scrape ^0.58234 ^ ^-2.17333 0 0 0 0 1
    particle scrape ^1.125 ^ ^-1.94856 0 0 0 0 1
    particle scrape ^1.59099 ^ ^-1.59099 0 0 0 0 1
    particle scrape ^1.94856 ^ ^-1.125 0 0 0 0 1
    particle scrape ^2.17333 ^ ^-0.58234 0 0 0 0 1
    particle scrape ^2.25 ^ ^0 0 0 0 0 1
    particle scrape ^2.17333 ^ ^0.58234 0 0 0 0 1
    particle scrape ^1.94856 ^ ^1.125 0 0 0 0 1
    particle scrape ^1.59099 ^ ^1.59099 0 0 0 0 1
    particle scrape ^1.125 ^ ^1.94856 0 0 0 0 1
    particle scrape ^0.58234 ^ ^2.17333 0 0 0 0 1
    particle scrape ^0 ^ ^2.25 0 0 0 0 1
    particle scrape ^-0.58234 ^ ^2.17333 0 0 0 0 1
    particle scrape ^-1.125 ^ ^1.94856 0 0 0 0 1
    particle scrape ^-1.59099 ^ ^1.59099 0 0 0 0 1
    particle scrape ^-1.94856 ^ ^1.125 0 0 0 0 1
    particle scrape ^-2.17333 ^ ^0.58234 0 0 0 0 1
    particle scrape ^-2.25 ^ ^0 0 0 0 0 1
    particle scrape ^-2.17333 ^ ^-0.58234 0 0 0 0 1
    particle scrape ^-1.94856 ^ ^-1.125 0 0 0 0 1
    particle scrape ^-1.59099 ^ ^-1.59099 0 0 0 0 1
    particle scrape ^-1.125 ^ ^-1.94856 0 0 0 0 1
    particle scrape ^-0.58234 ^ ^-2.17333 0 0 0 0 1


text:
#> asset:mob/0214.water_magic/tick/1.trigger
#
# Mobが生きている間毎tick実行されるfunction
#
# @within tag/function asset:mob/tick

execute if data storage asset:context {id:214} run function asset:mob/0214.water_magic/tick/2.tick


text:
#> asset:mob/0269.goblins/summon/2.summon
#
# Mobの召喚時の処理
#
# @within function asset:mob/0269.goblins/summon/1.trigger

# 元となるMobを召喚する
    summon zombified_piglin ~ ~ ~ {Tags:["MobInit"],DeathLootTable:"asset:mob/death/0269.goblins"}
# ID (int)
    data modify storage asset:mob ID set value 269
# Type (string) Wikiを参照
    data modify storage asset:mob Type set value "Enemy"
# 干渉可能か否か (boolean)
    data modify storage asset:mob Interferable set value true
# 名前 (TextComponentString) (オプション)
    data modify storage asset:mob Name set value '{"text":"ゴブリン"}'
# 武器
    # メインハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Mainhand set value
    # オフハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Offhand set value
# 武器ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob WeaponDropChances set value
# 防具
    # 頭 (Compound(Item)) (オプション)
        data modify storage asset:mob Armor.Head set value {id:"minecraft:azalea",Count:1b}
    # 胴 (Compound(Item)) (オプション)
        data modify storage asset:mob Armor.Chest set value {id:"minecraft:leather_chestplate",Count:1b,tag:{display:{color:2447645}}}
    # 脚 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Legs set value
    # 足 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Feet set value
# 防具ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob ArmorDropChances set value
# 体力 (double) (オプション)
    data modify storage asset:mob Health set value 62.5
# 攻撃力 (double) (オプション)
    data modify storage asset:mob AttackDamage set value 1
# 防御力 (double) (オプション) // 被ダメージがある程度大きい場合1ptにつき0.8%カット、小さい場合1ptにつき約4%カット 20pt以上は頭打ち
    data modify storage asset:mob Defense set value -3
# 特殊防御力 (double) (オプション) // 4pointにつきダメージを大きく減らす
    # data modify storage asset:mob SpecialDefense set value
# 移動速度 (double) (オプション)
    data modify storage asset:mob Speed set value 0.28
# 索敵範囲 (double) (オプション)
    # data modify storage asset:mob FollowRange set value
# ノックバック耐性 (double) (オプション)
    # data modify storage asset:mob KnockBackResist set value
# 属性倍率 // 1.0fで100% 最低でも25%は軽減されずに入る
    # 物理倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Physical set value
    # 魔法倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Magic set value
    # 火倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Fire set value
    # 水倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Water set value
    # 雷倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Thunder set value

# MobInitタグ持ちを対象にして召喚関数呼び出し
    execute as @e[type=zombified_piglin,tag=MobInit,distance=..0.01] run function asset:mob/common/summon


text:
#> asset:mob/0269.goblins/summon/1.trigger
#
# Mob召喚処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:mob/summon

execute if data storage asset:context {id:269} run function asset:mob/0269.goblins/summon/2.summon


text:
#> asset:mob/0269.goblins/attack/1.trigger
#
# Mobの攻撃時に実行されるfunction
#
# @within tag/function asset:mob/attack

execute if data storage asset:context {id:269} run function asset:mob/0269.goblins/attack/2.attack


text:
#> asset:mob/0269.goblins/attack/2.attack
#
# Mobの攻撃時の処理
#
# @within function asset:mob/0269.goblins/attack/1.trigger

# 演出
    playsound minecraft:entity.wither_skeleton.hurt hostile @a ~ ~ ~ 1.0 1

# 引数の設定
    # 与えるダメージ
        data modify storage lib: Argument.Damage set value 3.9d
    # 第一属性
        data modify storage lib: Argument.AttackType set value "Physical"
    # 第二属性
        data modify storage lib: Argument.ElementType set value "None"
# 補正functionを実行
    function lib:damage/modifier
# ダメージ対象
    execute as @p[tag=Victim] run function lib:damage/
# リセット
    function lib:damage/reset


text:
#> asset:mob/sandbag3/summon/2.summon
# @private

# 元となるMobを召喚する
    summon skeleton ~ ~ ~ {Tags:["MobInit"],DeathLootTable:"empty"}
# ID (int)
    data modify storage asset:mob ID set value 10003
# Type (string) Wikiを参照
    data modify storage asset:mob Type set value "Enemy"
# 干渉可能か否か (boolean)
    data modify storage asset:mob Interferable set value true
# 名前 (TextComponentString) (オプション)
    data modify storage asset:mob Name set value '{"text":"雑魚サンドバッグ3"}'
# 武器
    # メインハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Mainhand set value
    # オフハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Offhand set value
# 武器ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob WeaponDropChances set value
# 防具
    # 頭 (Compound(Item)) (オプション)
        data modify storage asset:mob Armor.Head set value {id:"minecraft:glass",Count:1b}
    # 胴 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Chest set value
    # 脚 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Legs set value
    # 足 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Feet set value
# 防具ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob ArmorDropChances set value
# 体力 (double) (オプション)
    data modify storage asset:mob Health set value 1000
# 攻撃力 (double) (オプション)
    data modify storage asset:mob AttackDamage set value 19.5
# 防御力 (double) (オプション) // 被ダメージがある程度大きい場合1ptにつき0.8%カット、小さい場合1ptにつき約4%カット 20pt以上は頭打ち
    data modify storage asset:mob Defense set value 0
# 特殊防御力 (double) (オプション) // 4pointにつきダメージを大きく減らす
    data modify storage asset:mob SpecialDefense set value 0
# 移動速度 (double) (オプション)
    data modify storage asset:mob Speed set value 0
# 索敵範囲 (double) (オプション)
    # data modify storage asset:mob FollowRange set value
# ノックバック耐性 (double) (オプション)
    # data modify storage asset:mob KnockBackResist set value
# 属性倍率 // 1.0fで100% 最低でも25%は軽減されずに入る
    # 物理倍率 (float) (オプション)
        data modify storage asset:mob Resist.Physical set value 1.0
    # 魔法倍率 (float) (オプション)
        data modify storage asset:mob Resist.Magic set value 1.0
    # 火倍率 (float) (オプション)
        data modify storage asset:mob Resist.Fire set value 1.0
    # 水倍率 (float) (オプション)
        data modify storage asset:mob Resist.Water set value 1.0
    # 雷倍率 (float) (オプション)
        data modify storage asset:mob Resist.Thunder set value 1.0

# MobInitタグ持ちを対象にして召喚関数呼び出し
    execute as @e[type=skeleton,tag=MobInit,distance=..0.01] run function asset:mob/common/summon


text:
#> asset:mob/0054.pumpkin_meteor/0.load
#
# MOBに利用するスコアボード等の初期化処理
#
# @within tag/function asset:mob/load

#> 定義類はここに
# @within function asset:mob/0054.pumpkin_meteor/**
    scoreboard objectives add 1I.Time dummy


text:
#> asset:mob/0054.pumpkin_meteor/summon/2.summon
#
# Mobの召喚時の処理
#
# @within function asset:mob/0054.pumpkin_meteor/summon/1.trigger

# 元となるMobを召喚する
    summon zombie ~ ~-100 ~ {DeathTime:19s,Tags:["MobInit","AlwaysInvisible"],Silent:1b,NoAI:1b,IsBaby:0b,DeathLootTable:"asset:mob/death/0054.pumpkin_meteor"}
# ID (int)
    data modify storage asset:mob ID set value 54
# Type (string) Wikiを参照
    data modify storage asset:mob Type set value "Projectile"
# 干渉可能か否か (boolean)
    data modify storage asset:mob Interferable set value false
# 名前 (TextComponentString) (オプション)
    data modify storage asset:mob Name set value '{"text":"かぼちゃめてお"}'
# 武器
    # メインハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Mainhand set value
    # オフハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Offhand set value
# 武器ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob WeaponDropChances set value
# 防具
    # 頭 (Compound(Item)) (オプション)
        data modify storage asset:mob Armor.Head set value {id:"minecraft:stick",Count:1b,tag:{CustomModelData:20213}}
    # 胴 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Chest set value
    # 脚 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Legs set value
    # 足 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Feet set value
# 防具ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob ArmorDropChances set value
# 体力 (double) (オプション)
    # data modify storage asset:mob Health set value
# 攻撃力 (double) (オプション)
    # data modify storage asset:mob AttackDamage set value
# 防御力 (double) (オプション) // 被ダメージがある程度大きい場合1ptにつき0.8%カット、小さい場合1ptにつき約4%カット 20pt以上は頭打ち
    # data modify storage asset:mob Defense set value
# 特殊防御力 (double) (オプション) // 4pointにつきダメージを大きく減らす
    # data modify storage asset:mob SpecialDefense set value
# 移動速度 (double) (オプション)
    # data modify storage asset:mob Speed set value
# 索敵範囲 (double) (オプション)
    # data modify storage asset:mob FollowRange set value
# ノックバック耐性 (double) (オプション)
    # data modify storage asset:mob KnockBackResist set value
# 属性倍率 // 1.0fで100% 最低でも25%は軽減されずに入る
    # 物理倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Physical set value
    # 魔法倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Magic set value
    # 火倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Fire set value
    # 水倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Water set value
    # 雷倍率 (float) (オプション)
        # data modify storage asset:mob Resist.Thunder set value

# 上に持ってくる
    execute positioned ~ ~-100 ~ run tp @e[type=zombie,tag=MobInit,distance=..0.01] ~ ~100 ~

# プレイヤーをみる
    tp @e[type=zombie,tag=MobInit,distance=..0.01] ~ ~ ~ facing entity @p

# MobInitタグ持ちを対象にして召喚関数呼び出し
    execute as @e[type=zombie,tag=MobInit,distance=..0.01] run function asset:mob/common/summon


text:
#> asset:mob/0054.pumpkin_meteor/summon/1.trigger
#
# Mob召喚処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:mob/summon

execute if data storage asset:context {id:54} run function asset:mob/0054.pumpkin_meteor/summon/2.summon


text:
#> asset:mob/0054.pumpkin_meteor/tick/damage
#
#
#
# @within function asset:mob/0054.pumpkin_meteor/tick/2.tick

# 演出
    particle explosion ~ ~1.5 ~ 0 0 0 0 1 normal @a
    playsound entity.generic.explode hostile @a ~ ~ ~ 0.5 1 0

# ダメージを与える
# ダメージ設定
    # 与えるダメージ
        data modify storage lib: Argument.Damage set value 10.0f
    # 魔法属性
        data modify storage lib: Argument.AttackType set value "Magic"
    # 属性
        data modify storage lib: Argument.ElementType set value "Fire"
    # ダメージ
        function lib:damage/modifier
        execute as @a[tag=!PlayerShouldInvulnerable,distance=..3] run function lib:damage/
# リセット
    function lib:damage/reset

# キル
    kill @s


text:
#> asset:mob/0054.pumpkin_meteor/tick/2.tick
#
# Mobのtick時の処理
#
# @within function asset:mob/0054.pumpkin_meteor/tick/1.trigger

# 追尾する
    execute if entity @p[distance=..32] facing entity @p eyes positioned ^ ^ ^-100 rotated as @s positioned ^ ^ ^-1000 facing entity @s feet positioned as @s run tp @s ^ ^ ^0.5 ~ ~

# 演出
    particle dust 1 0.6 0 1 ~ ~1.5 ~ 0.2 0.2 0.2 0 1 force @a[distance=..40]
    particle dust 0.851 0 1 1 ~ ~1.5 ~ 0.2 0.2 0.2 0 1 force @a[distance=..40]
    particle flame ~ ~1.5 ~ 0.2 0.2 0.2 0 1 force @a[distance=..40]

# スコアを増やす
    scoreboard players add @s 1I.Time 1

# 殺す
    execute if score @s 1I.Time matches 150.. run kill @s
# ダメージ
    execute if entity @a[gamemode=!spectator,distance=..1.5] run function asset:mob/0054.pumpkin_meteor/tick/damage
# ジャックオランタンにもダメージがはいる
    execute if entity @e[type=zombie,scores={MobID=59},distance=..3] run function asset:mob/0054.pumpkin_meteor/tick/suicide


text:
#> asset:mob/0054.pumpkin_meteor/tick/suicide
#
#
#
# @within function asset:mob/0054.pumpkin_meteor/tick/2.tick

# 演出
    particle explosion ~ ~1.5 ~ 0 0 0 0 1 normal @a
    playsound entity.generic.explode hostile @a ~ ~ ~ 0.5 1 0
    playsound ogg:mob.pillager.celebrate2 hostile @a ~ ~ ~ 1 2

# 割合ダメージ
    execute store result storage lib: Argument.Damage float 0.0004 as @e[type=zombie,scores={MobID=59},distance=..3,sort=nearest,limit=1] run function api:mob/get_max_health
# 属性
    data modify storage lib: Argument.AttackType set value "Physical"
    data modify storage lib: Argument.FixedDamage set value 1b
# 補正
    function lib:damage/modifier
# ダメージ
    execute as @e[type=zombie,scores={MobID=59},distance=..3,sort=nearest,limit=1] run function lib:damage/
# リセット
    function lib:damage/reset

# キル
    kill @s


text:
#> asset:mob/0054.pumpkin_meteor/tick/1.trigger
#
# Mobが生きている間毎tick実行されるfunction
#
# @within tag/function asset:mob/tick

execute if data storage asset:context {id:54} run function asset:mob/0054.pumpkin_meteor/tick/2.tick


text:
#> asset:mob/sandbag3a/summon/2.summon
# @private

# 元となるMobを召喚する
    summon skeleton ~ ~ ~ {Tags:["MobInit"],DeathLootTable:"empty"}
# ID (int)
    data modify storage asset:mob ID set value 10012
# Type (string) Wikiを参照
    data modify storage asset:mob Type set value "Enemy.Boss"
# 干渉可能か否か (boolean)
    data modify storage asset:mob Interferable set value true
# 名前 (TextComponentString) (オプション)
    data modify storage asset:mob Name set value '{"text":"天使サンドバッグ3"}'
# 武器
    # メインハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Mainhand set value
    # オフハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Offhand set value
# 武器ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob WeaponDropChances set value
# 防具
    # 頭 (Compound(Item)) (オプション)
        data modify storage asset:mob Armor.Head set value {id:"minecraft:glass",Count:1b}
    # 胴 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Chest set value
    # 脚 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Legs set value
    # 足 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Feet set value
# 防具ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob ArmorDropChances set value
# 体力 (double) (オプション)
    data modify storage asset:mob Health set value 25000
# 攻撃力 (double) (オプション)
    data modify storage asset:mob AttackDamage set value 29
# 防御力 (double) (オプション) // 被ダメージがある程度大きい場合1ptにつき0.8%カット、小さい場合1ptにつき約4%カット 20pt以上は頭打ち
    data modify storage asset:mob Defense set value 0
# 特殊防御力 (double) (オプション) // 4pointにつきダメージを大きく減らす
    data modify storage asset:mob SpecialDefense set value 0
# 移動速度 (double) (オプション)
    data modify storage asset:mob Speed set value 0
# 索敵範囲 (double) (オプション)
    # data modify storage asset:mob FollowRange set value
# ノックバック耐性 (double) (オプション)
    # data modify storage asset:mob KnockBackResist set value
# 属性倍率 // 1.0fで100% 最低でも25%は軽減されずに入る
    # 物理倍率 (float) (オプション)
        data modify storage asset:mob Resist.Physical set value 1.0
    # 魔法倍率 (float) (オプション)
        data modify storage asset:mob Resist.Magic set value 1.0
    # 火倍率 (float) (オプション)
        data modify storage asset:mob Resist.Fire set value 1.0
    # 水倍率 (float) (オプション)
        data modify storage asset:mob Resist.Water set value 1.0
    # 雷倍率 (float) (オプション)
        data modify storage asset:mob Resist.Thunder set value 1.0

# MobInitタグ持ちを対象にして召喚関数呼び出し
    execute as @e[type=skeleton,tag=MobInit,distance=..0.01] run function asset:mob/common/summon


text:
#> asset:mob/1004.tultaria/0.load
#
# MOBに利用するスコアボード等の初期化処理
#
# @within tag/function asset:mob/load

#> 定義類はここに
# @within function asset:mob/1004.tultaria/**/**
    scoreboard objectives add RW.Tick dummy
    scoreboard objectives add RW.DeathExplode dummy
    scoreboard objectives add RW.HealthMax dummy


text:
#> asset:mob/1004.tultaria/rejoin_process
#
# 使い方は必ずwikiを見ること
#
# @within tag/function asset:rejoin
    execute if entity @e[type=armor_stand,tag=RW.DeathAnimation] run schedule function asset:mob/1004.tultaria/death/3.death_tick 1t


text:
#> asset:mob/1004.tultaria/_index.d
# @private

#> tag
# @within function asset:mob/1004.tultaria/**
    #declare tag RW.This
    #
    #declare tag RW.Boss
    #declare tag RW.ArmorStand
    #declare tag RW.ArmorStandThis
    #declare tag RW.XYZ
    #
    #declare tag RW.HPless75per
    #declare tag RW.HPless50per
    #declare tag RW.HPless40per
    #declare tag RW.HPless30per
    #
    #declare tag RW.SkillMelee
    #declare tag RW.SkillMeteor
    #declare tag RW.SkillCoordinate
    #declare tag RW.SkillOffCoordinate
    #declare tag RW.SkillBall
    #declare tag RW.SkillStarfury
    #declare tag RW.SkillSummon
    #
    #declare tag RW.MeteorMaker
    #declare tag RW.BigMeteorMaker
    #declare tag RW.CoordinateMarker
    #declare tag RW.OffCoordinateMarker
    #declare tag S2.Wait
    #
    #declare tag RW.DeathAnimation
    #declare tag RW.DeathInit


text:
#> asset:mob/1004.tultaria/death/explosion
#
#
#
# @within function asset:mob/1004.tultaria/death/4.main

particle minecraft:explosion ~ ~1 ~ 1 1 1 0.5 1 force @a[distance=..30]
playsound minecraft:item.trident.return hostile @a ~ ~ ~ 2 1.5
playsound minecraft:item.trident.return hostile @a ~ ~ ~ 2 2


text:
#> asset:mob/1004.tultaria/death/2.death
#
# Mobの死亡時の処理
#
# @within function asset:mob/1004.tultaria/death/1.trigger

# 演出
    playsound minecraft:block.glass.break hostile @a ~ ~ ~ 4 0.7
    playsound minecraft:block.amethyst_cluster.break hostile @a ~ ~ ~ 4 1.5

# 死亡アニメーションをするためのアマスタを召喚する
    summon armor_stand ~ ~ ~ {NoGravity:1b,Invisible:1b,Tags:["RW.DeathAnimation","RW.DeathInit","Object","Uninterferable"],Pose:{LeftArm:[-20f,0f,-10f],RightArm:[-90f,0f,30f],Head:[-25f,0.1f,0.1f]},DisabledSlots:4144959,HandItems:[{id:"minecraft:stick",Count:1b,tag:{CustomModelData:20068}},{id:"minecraft:stick",Count:1b,tag:{CustomModelData:20068}}],ArmorItems:[{},{},{},{id:"minecraft:stick",Count:1b,tag:{CustomModelData:20076}}]}

# アマスタに位置をあわせる
    execute as @e[type=armor_stand,tag=RW.ArmorStand,distance=..3,sort=nearest,limit=1] at @s run tp @e[type=armor_stand,tag=RW.DeathInit,distance=..3] ~ ~ ~ ~ ~

# タグを消す
    tag @e[type=armor_stand,tag=RW.DeathInit] remove RW.DeathInit

# もともといるアマスタには死んでもらう(複数召喚されてる場合、もし巻き込まれても大丈夫)
    kill @e[type=armor_stand,tag=RW.ArmorStand]

# マーカー消す
    kill @e[type=marker,tag=RW.XYZ,limit=1]

# スケジュールループを開始する
    schedule function asset:mob/1004.tultaria/death/3.death_tick 1t


text:
#> asset:mob/1004.tultaria/death/1.trigger
#
# Mobの死亡時に実行されるfunction
#
# @within tag/function asset:mob/death

execute if data storage asset:context {id:1004} run function asset:mob/1004.tultaria/death/2.death


text:
#> asset:mob/1004.tultaria/death/explosion_final
#
# どか～ん！と爆発する
#
# @within function asset:mob/1004.tultaria/death/4.main
playsound minecraft:item.trident.thunder hostile @a ~ ~ ~ 4 2
playsound minecraft:block.respawn_anchor.deplete hostile @a ~ ~ ~ 4 0.7
playsound minecraft:block.respawn_anchor.deplete hostile @a ~ ~ ~ 4 1
playsound minecraft:block.glass.break hostile @a ~ ~ ~ 4 0.7
playsound minecraft:block.glass.break hostile @a ~ ~ ~ 4 1
particle cloud ~ ~1 ~ 1 1 1 0.1 50
particle explosion_emitter ~ ~1 ~ 0 0 0 0 1
particle minecraft:end_rod ~ ~10 ~ 0.2 5 0.2 0.05 200 force @a[distance=..30]
kill @s


text:
#> asset:mob/1004.tultaria/death/4.main
#
# 仮の死亡演出 その2
#
# @within function asset:mob/1004.tultaria/death/3.death_tick

# スコア加算
    scoreboard players add @s RW.Tick 1

# 下がっていく
    execute if score @s RW.Tick matches ..9 run tp @s ^ ^ ^-0.05
    execute if score @s RW.Tick matches 10..39 run tp @s ^ ^ ^-0.02
    execute if score @s RW.Tick matches 40..79 run tp @s ^ ^ ^-0.01
    execute if score @s RW.Tick matches 80..120 run tp @s ^ ^ ^-0.007

# パーティクル
    execute if predicate lib:random_pass_per/50 run particle minecraft:end_rod ~ ~1 ~ 0.5 0.5 0.5 0 1 force @a[distance=..40]
    execute if predicate lib:random_pass_per/30 run particle minecraft:firework ~ ~1 ~ 0.5 0.5 0.5 0 1 force @a[distance=..40]
    particle minecraft:smoke ~ ~1 ~ 0.5 0.5 0.5 0 1 force @a[distance=..40]

# 爆発
    scoreboard players add @s RW.DeathExplode 1

# 爆発(最初のほう)
    execute if entity @s[scores={RW.Tick=40..79,RW.DeathExplode=10}] run function asset:mob/1004.tultaria/death/explosion
    execute if entity @s[scores={RW.Tick=40..79}] run scoreboard players reset @s[scores={RW.DeathExplode=10..}] RW.DeathExplode

# 爆発(後のほう)
    execute if entity @s[scores={RW.Tick=80..139,RW.DeathExplode=5}] run function asset:mob/1004.tultaria/death/explosion
    execute if entity @s[scores={RW.Tick=80..139}] run scoreboard players reset @s[scores={RW.DeathExplode=5..}] RW.DeathExplode

# 爆発(後のほう)
    execute if entity @s[scores={RW.Tick=140}] run playsound minecraft:block.portal.trigger hostile @a ~ ~ ~ 4 1.5
    execute if entity @s[scores={RW.Tick=140..180,RW.DeathExplode=2}] run function asset:mob/1004.tultaria/death/explosion
    execute if entity @s[scores={RW.Tick=140..180}] run scoreboard players reset @s[scores={RW.DeathExplode=2..}] RW.DeathExplode

# シメの大爆発
    execute if score @s RW.Tick matches 200 run function asset:mob/1004.tultaria/death/explosion_final


text:
#> asset:mob/1004.tultaria/death/3.death_tick
#
#
#
# @within function
#   asset:mob/1004.tultaria/death/2.death
#   asset:mob/1004.tultaria/rejoin_process
#   asset:mob/1004.tultaria/death/3.death_tick

# ファンクション
    execute as @e[type=armor_stand,tag=RW.DeathAnimation] at @s run function asset:mob/1004.tultaria/death/4.main

# ループ
    execute if entity @e[type=armor_stand,tag=RW.DeathAnimation] run schedule function asset:mob/1004.tultaria/death/3.death_tick 1t


text:
#> asset:mob/1004.tultaria/summon/2.summon
#
# Mobの召喚時の処理
#
# @within function asset:mob/1004.tultaria/summon/1.trigger

# 元となるMobを召喚する
    summon wither_skeleton ~ ~ ~ {Tags:["MobInit","AlwaysInvisible","RW.Boss"],PersistenceRequired:1b,Silent:1b,NoAI:1b,DeathLootTable:"asset:mob/death/1004.tultaria"}
# ID (int)
    data modify storage asset:mob ID set value 1004
# Type (string) Wikiを参照
    data modify storage asset:mob Type set value "Enemy.Boss"
# 干渉可能か否か (boolean)
    data modify storage asset:mob Interferable set value true
# 名前 (TextComponentString) (オプション)
    data modify storage asset:mob Name set value '{"text":"トゥルタリア"}'
# 武器
    # メインハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Mainhand set value
    # オフハンド (Compound(Item)) (オプション)
        # data modify storage asset:mob Weapon.Offhand set value
# 武器ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob WeaponDropChances set value
# 防具
    # 頭 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Head set value
    # 胴 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Chest set value
    # 脚 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Legs set value
    # 足 (Compound(Item)) (オプション)
        # data modify storage asset:mob Armor.Feet set value
# 防具ドロップ率 ([float, float]) (オプション)
    # data modify storage asset:mob ArmorDropChances set value
# 体力 (double) (オプション)
    data modify storage asset:mob Health set value 140000
# 攻撃力 (double) (オプション)
    # data modify storage asset:mob AttackDamage set value
# 防御力 (double) (オプション) // 被ダメージがある程度大きい場合1ptにつき0.8%カット、小さい場合1ptにつき約4%カット 20pt以上は頭打ち
    data modify storage asset:mob Defense set value 0
# 特殊防御力 (double) (オプション) // 4pointにつきダメージを大きく減らす
    # data modify storage asset:mob SpecialDefense set value
# 移動速度 (double) (オプション)
    # data modify storage asset:mob Speed set value
# 索敵範囲 (double) (オプション)
    # data modify storage asset:mob FollowRange set value
# ノックバック耐性 (double) (オプション)
    # data modify storage asset:mob KnockBackResist set value
# 属性倍率 // 1.0fで100% 最低でも25%は軽減されずに入る
    # 物理倍率 (float) (オプション)
        data modify storage asset:mob Resist.Physical set value 1.0
    # 魔法倍率 (float) (オプション)
        data modify storage asset:mob Resist.Magic set value 0.8
    # 火倍率 (float) (オプション)
        data modify storage asset:mob Resist.Fire set value 1.0
    # 水倍率 (float) (オプション)
        data modify storage asset:mob Resist.Water set value 1.0
    # 雷倍率 (float) (オプション)
        data modify storage asset:mob Resist.Thunder set value 1.0

# 見た目用のアマスタを召喚
    summon armor_stand ~ ~ ~ {Marker:1b,NoGravity:1b,Invisible:1b,Tags:["RW.ArmorStand","RW.ArmorStandThis","Object","Uninterferable"],Pose:{LeftArm:[15f,0f,-15f],RightArm:[15f,0f,15f]},HandItems:[{id:"minecraft:stick",Count:1b,tag:{CustomModelData:20068}},{id:"minecraft:stick",Count:1b,tag:{CustomModelData:20068}}],ArmorItems:[{},{},{},{id:"minecraft:stick",Count:1b,tag:{CustomModelData:20072}}]}

# 位置をあわせる
    execute as @e[type=wither_skeleton,tag=MobInit,distance=..0.01] at @s run tp @e[type=armor_stand,tag=RW.ArmorStandThis,distance=..0.01] @s

# タグを消す
    tag @e[type=armor_stand,tag=RW.ArmorStandThis,distance=..0.01] remove RW.ArmorStandThis

# 座標を記憶するあれ
    summon marker ~ ~ ~ {Tags:["RW.XYZ"]}

# スコアをセットする
    scoreboard players set @e[type=wither_skeleton,tag=MobInit,distance=..0.01] RW.Tick -100

# MobInitタグ持ちを対象にして召喚関数呼び出し
    execute as @e[type=wither_skeleton,tag=MobInit,distance=..0.01] run function asset:mob/common/summon


text:
#> asset:mob/1004.tultaria/summon/1.trigger
#
# Mob召喚処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:mob/summon

execute if data storage asset:context {id:1004} run function asset:mob/1004.tultaria/summon/2.summon


text:
#> asset:mob/1004.tultaria/hurt/2.hurt
#
# Mobの被ダメージ時の処理
#
# @within function asset:mob/1004.tultaria/hurt/1.trigger
#> private
# @private
    #declare score_holder $HealthPercent

# HP割合を取得
    function api:mob/get_health_percent
# 代入する
    execute store result score $HealthPercent Temporary run data get storage api: Return.HealthPer 100

# VFX
    playsound minecraft:entity.generic.hurt hostile @a ~ ~ ~ 1 0.7

# タグを消す
    tag @s remove RW.HPless75per
    tag @s remove RW.HPless50per

# タグ付与
# 75%以下
    execute if score $HealthPercent Temporary matches ..75 run tag @s add RW.HPless75per
# HP50%以下
    execute if score $HealthPercent Temporary matches ..50 run tag @s add RW.HPless50per
# HP40%以下
    execute if score $HealthPercent Temporary matches ..40 run tag @s add RW.HPless40per
# HP30%以下
    execute if score $HealthPercent Temporary matches ..30 run tag @s add RW.HPless30per

# リセット
    scoreboard players reset $HealthPercent


text:
#> asset:mob/1004.tultaria/hurt/1.trigger
#
# Mobの被ダメージに実行されるfunction
#
# @within tag/function asset:mob/hurt

execute if data storage asset:context {id:1004} run function asset:mob/1004.tultaria/hurt/2.hurt


text:
#> asset:mob/1004.tultaria/attack/1.trigger
#
# Mobの攻撃時に実行されるfunction
#
# @within tag/function asset:mob/attack

execute if data storage asset:context {id:1004} run function asset:mob/1004.tultaria/attack/2.attack


text:
#> asset:mob/1004.tultaria/attack/2.attack
#
# Mobの攻撃時の処理
#
# @within function asset:mob/1004.tultaria/attack/1.trigger


text:
#> asset:mob/1004.tultaria/remove/2.remove
#
#
#
# @within function asset:mob/1004.tultaria/remove/1.trigger

# アマスタ削除
    kill @e[type=armor_stand,tag=RW.ArmorStand]


text:
#> asset:mob/1004.tultaria/remove/1.trigger
#
#
#
# @within tag/function asset:mob/remove

execute if data storage asset:context {id:1004} run function asset:mob/1004.tultaria/remove/2.remove


text:
#> asset:mob/1004.tultaria/tick/armorstand_respawn
#
#
#
# @within function asset:mob/1004.tultaria/tick/2.tick

# どっかいったアマスタを殺す
    execute as @e[type=armor_stand,tag=RW.ArmorStand] at @s unless entity @e[type=wither_skeleton,tag=RW.Boss,distance=..0.1] run kill @s
# 見た目用のアマスタを召喚
    summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Tags:["RW.ArmorStand","RW.ArmorStandThis","Object","Uninterferable"],Pose:{LeftArm:[0f,0f,340f],RightArm:[0f,0f,20f]},HandItems:[{id:"minecraft:stick",Count:1b,tag:{CustomModelData:20069}},{id:"minecraft:stick",Count:1b,tag:{CustomModelData:20071}}],ArmorItems:[{},{},{},{id:"minecraft:stick",Count:1b,tag:{CustomModelData:20072}}]}
# 位置をあわせる
    tp @e[type=armor_stand,tag=RW.ArmorStandThis,distance=..0.01] @s
# タグを消す
    tag @e[type=armor_stand,tag=RW.ArmorStandThis,distance=..0.01] remove RW.ArmorStandThis
# スコアも一応戻す
    scoreboard players set @s RW.Tick -30

# スキル発動中に移動した場合困るので消す
    tag @s remove RW.SkillMelee
    tag @s remove RW.SkillMeteor
    tag @s remove RW.SkillCoordinate
    tag @s remove RW.SkillOffCoordinate
    tag @s remove RW.SkillBall
    tag @s remove RW.SkillStarfury
    tag @s remove RW.SkillSummon

# 強制的にテレポする
    data modify storage lib: Argument.Bounds set value [[8d,8d],[0d,0d],[8d,8d]]
    function asset:mob/1004.tultaria/tick/move/spread


text:
#> asset:mob/1004.tultaria/tick/5.tereport
#
#
#
# @within function asset:mob/1004.tultaria/tick/2.tick

# テレポート演出
    execute at @s run function asset:mob/1004.tultaria/tick/move/vfx

# 拡散値
    data modify storage lib: Argument.Bounds set value [[8d,12d],[0d,3d],[8d,12d]]

# 拡散
    function asset:mob/1004.tultaria/tick/move/spread
    execute at @s facing entity @p[distance=..100] eyes positioned ~ ~0.5 ~ run function asset:mob/1004.tultaria/tick/move/tereport

# テレポート演出
    execute at @s run function asset:mob/1004.tultaria/tick/move/vfx


text:
#> asset:mob/1004.tultaria/tick/2.tick
#
# Mobのtick時の処理
#
# @within function asset:mob/1004.tultaria/tick/1.trigger
#> private
# @private
    #declare score_holder $Count
    #declare score_holder $4tInterval

# スコアを増やす
    scoreboard players add @s RW.Tick 1

# テレポートさせる
    execute if entity @p[gamemode=!spectator,distance=..100] if score @s RW.Tick matches -15 run function asset:mob/1004.tultaria/tick/5.tereport

# プレイヤーを見る
    execute if score @s RW.Tick matches 0 at @s facing entity @p[distance=..100] eyes run function asset:mob/1004.tultaria/tick/move/tereport

# その後発動するスキル
# プレイヤーが周囲にいたらスキル選択
    execute if score @s RW.Tick matches 0 if entity @p[gamemode=!spectator,distance=..100] run function asset:mob/1004.tultaria/tick/3.skill_select

# プレイヤーが周囲にいないのに時間が着てしまった場合。スコアを戻す
    execute if score @s RW.Tick matches 0 unless entity @p[gamemode=!spectator,distance=..100] run scoreboard players set @s RW.Tick -60

# 選択したスキル発動
    execute if score @s RW.Tick matches 0.. run function asset:mob/1004.tultaria/tick/4.skill_active

# 4tickおきに実行するやつ
# 実行時間を移す
    scoreboard players operation $4tInterval Temporary = @s RW.Tick
# 4tickおきに実行
    scoreboard players operation $4tInterval Temporary %= $4 Const
    execute if score $4tInterval Temporary matches 0 run function asset:mob/1004.tultaria/tick/interval
# リセット
    scoreboard players reset $4tInterval

# HP減少時、パーティクルをまとう
    execute if entity @s[tag=RW.HPless75per] run particle smoke ~ ~0.7 ~ 0.3 0.5 0.3 0 3
    execute if entity @s[tag=RW.HPless50per] run particle end_rod ~ ~0.7 ~ 0.3 0.5 0.3 0 1

# 以下エラー時の処理
# もし同一座標に2体存在した場合瞬時にteleportする
    # 数のカウント
        execute store result score $Count Temporary if entity @e[type=armor_stand,tag=RW.ArmorStand,distance=..0.01]
    # もしいたらテレポ
        execute if score $Count Temporary matches 2.. run data modify storage lib: Argument.Bounds set value [[8d,8d],[0d,0d],[8d,8d]]
        execute if score $Count Temporary matches 2.. run function asset:mob/1004.tultaria/tick/move/spread
    # スコアも一応戻す
        execute if score $Count Temporary matches 2.. run scoreboard players reset @s RW.Tick
    # リセット
        scoreboard players reset $Count

# もしアマスタがどっかいってしまったら(tpの関係でatが無いと死ぬ)
    execute at @s unless entity @e[type=armor_stand,tag=RW.ArmorStand,distance=..0.01] run function asset:mob/1004.tultaria/tick/armorstand_respawn


text:
#> asset:mob/1004.tultaria/tick/interval
#
#
#
# @within function asset:mob/1004.tultaria/tick/2.tick

# 座標攻撃particle
    execute if entity @s[tag=RW.SkillCoordinate] at @e[type=area_effect_cloud,tag=RW.CoordinateMarker,distance=..100] run function asset:mob/1004.tultaria/tick/particle/coordinate

# 座標外し攻撃particle
    execute if entity @s[tag=RW.SkillOffCoordinate] at @e[type=area_effect_cloud,tag=RW.OffCoordinateMarker,distance=..100] positioned ~ ~0.2 ~ run function asset:mob/1004.tultaria/tick/particle/off_coordinate


text:
#> asset:mob/1004.tultaria/tick/1.trigger
#
# Mobが生きている間毎tick実行されるfunction
#
# @within tag/function asset:mob/tick

execute if data storage asset:context {id:1004} run function asset:mob/1004.tultaria/tick/2.tick


text:
#> asset:mob/1004.tultaria/tick/4.skill_active
#
#
#
# @within function asset:mob/1004.tultaria/tick/2.tick

# 近接
    execute if entity @s[tag=RW.SkillMelee] run function asset:mob/1004.tultaria/tick/1.melee_attack/1.melee_attack
# 範囲
    execute if entity @s[tag=RW.SkillMeteor] run function asset:mob/1004.tultaria/tick/2.meteor_attack/1.meteor_attack
# 座標
    execute if entity @s[tag=RW.SkillCoordinate] run function asset:mob/1004.tultaria/tick/3.coordinate_attack/1.coordinate_attack
# 座標外し
    execute if entity @s[tag=RW.SkillOffCoordinate] run function asset:mob/1004.tultaria/tick/4.off_coordinate_attack/1.off_coordinate_attack
# 弾攻撃
    execute if entity @s[tag=RW.SkillBall] run function asset:mob/1004.tultaria/tick/5.ball_attack/1.ball_attack
# 流星
    execute if entity @s[tag=RW.SkillStarfury] run function asset:mob/1004.tultaria/tick/6.starfury_attack/1.starfury_attack
# 召喚
    execute if entity @s[tag=RW.SkillSummon] run function asset:mob/1004.tultaria/tick/7.star_summon/1.star_summon


text:
#> asset:mob/1004.tultaria/tick/3.skill_select
#
#
#
# @within function asset:mob/1004.tultaria/tick/2.tick
#> private
# @private
    #declare score_holder $Random

# 疑似乱数取得
    execute store result score $Random Temporary run function lib:random/
# ほしい範囲に剰余算するやーつ
# HP50%以下
    execute if entity @s[tag=RW.HPless50per] run scoreboard players operation $Random Temporary %= $7 Const
# HP50%より上75%未満
    execute unless entity @s[tag=RW.HPless50per] if entity @s[tag=RW.HPless75per] run scoreboard players operation $Random Temporary %= $6 Const
# HP75%以上
    execute unless entity @s[tag=RW.HPless50per] unless entity @s[tag=RW.HPless75per] run scoreboard players operation $Random Temporary %= $3 Const

# デバッグのコマンド
    #scoreboard players set $Random Temporary 0

# スキル選択
    execute if score $Random Temporary matches 0 run tag @s add RW.SkillMelee
    execute if score $Random Temporary matches 1 run tag @s add RW.SkillMeteor
    execute if score $Random Temporary matches 2 run tag @s add RW.SkillCoordinate
    execute if score $Random Temporary matches 3 run tag @s add RW.SkillOffCoordinate
    execute if score $Random Temporary matches 4 run tag @s add RW.SkillBall
    execute if score $Random Temporary matches 5 run tag @s add RW.SkillStarfury
    execute if score $Random Temporary matches 6 run tag @s add RW.SkillSummon
# リセット
    scoreboard players reset $Random Temporary


text:
#> asset:mob/1004.tultaria/tick/reset
#
#
#
# @within function asset:mob/1004.tultaria/tick/**

# 腕を戻す
    data modify entity @e[type=armor_stand,tag=RW.ArmorStand,distance=..0.01,sort=nearest,limit=1] Pose.LeftArm set value [0f,0f,340f]
    data modify entity @e[type=armor_stand,tag=RW.ArmorStand,distance=..0.01,sort=nearest,limit=1] Pose.RightArm set value [0f,0f,20f]

# 頭のポーズ初期化
    data modify entity @e[type=armor_stand,tag=RW.ArmorStand,distance=..0.01,sort=nearest,limit=1] Pose.Head set value [0f,0f,0f]

# アイテムも戻す
    item replace entity @e[type=armor_stand,tag=RW.ArmorStand,distance=..0.01,sort=nearest,limit=1] weapon.mainhand with stick{CustomModelData:20068}
    item replace entity @e[type=armor_stand,tag=RW.ArmorStand,distance=..0.01,sort=nearest,limit=1] armor.head with stick{CustomModelData:20072}

# タグをリセットする
    tag @s remove RW.SkillMelee
    tag @s remove RW.SkillMeteor
    tag @s remove RW.SkillCoordinate
    tag @s remove RW.SkillOffCoordinate
    tag @s remove RW.SkillBall
    tag @s remove RW.SkillStarfury
    tag @s remove RW.SkillSummon

# スコアを戻す
    scoreboard players set @s RW.Tick -40
# 拡散値
    data modify storage lib: Argument.Bounds set value [[8d,8d],[0d,10d],[8d,8d]]


text:
#> asset:mob/1004.tultaria/tick/particle/coordinate
#
#
#
# @within function asset:mob/1004.tultaria/tick/interval

# [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkmAGwCMlKArAOxwAcAtAJzUcpsAslSn04d6pNpSYcATKSYAGOPRZgCAOwCGAWwTJAYYoACaqrAwNGbQGck4FAHtCaiEnryCKOE7gYbYAG4a2IS64AAeSG5gUBEAvjEEFqRohNaI9ASWEObOiJFw2NhoMJa61PKRGHZZELqRaJYAogVFJQ0AjoSB2FAAymYe5IgAZoElcXjg0PAUMHbdAOZ2aibEZBQaHBrSGizy0pxDivwARizCLCgc7Hwo0tRDcKQAzBqP+GCaOhSAWJqAS5GARvpGExmCxaVK2BxOJDSaTuTw1HyIcABIIhMDhXIEaK5cZgRLJVLpMCZbJIPhE-KFYqlcoJKoaGoRdx2DBqbxkggAK0IWhg0IIxzgAC80OzMWB6k0qa0Ol1ev1HkgRtgSgR6gAhYWijDtToFeUaAZK0ZwOIAXSAA_3
# 多角形 1
particle scrape ^3.53553 ^ ^-3.53553 0 0 0 0 1
particle scrape ^3.21412 ^ ^-3.21412 0 0 0 0 1
particle scrape ^2.89271 ^ ^-2.89271 0 0 0 0 1
particle scrape ^2.5713 ^ ^-2.5713 0 0 0 0 1
particle scrape ^2.24989 ^ ^-2.24989 0 0 0 0 1
particle scrape ^1.92847 ^ ^-1.92847 0 0 0 0 1
particle scrape ^1.60706 ^ ^-1.60706 0 0 0 0 1
particle scrape ^1.28565 ^ ^-1.28565 0 0 0 0 1
particle scrape ^0.96424 ^ ^-0.96424 0 0 0 0 1
particle scrape ^0.64282 ^ ^-0.64282 0 0 0 0 1
particle scrape ^0.32141 ^ ^-0.32141 0 0 0 0 1
particle scrape ^0 ^ ^0 0 0 0 0 1
particle scrape ^-0.32141 ^ ^0.32141 0 0 0 0 1
particle scrape ^-0.64282 ^ ^0.64282 0 0 0 0 1
particle scrape ^-0.96424 ^ ^0.96424 0 0 0 0 1
particle scrape ^-1.28565 ^ ^1.28565 0 0 0 0 1
particle scrape ^-1.60706 ^ ^1.60706 0 0 0 0 1
particle scrape ^-1.92847 ^ ^1.92847 0 0 0 0 1
particle scrape ^-2.24989 ^ ^2.24989 0 0 0 0 1
particle scrape ^-2.5713 ^ ^2.5713 0 0 0 0 1
particle scrape ^-2.89271 ^ ^2.89271 0 0 0 0 1
particle scrape ^-3.21412 ^ ^3.21412 0 0 0 0 1
particle scrape ^3.53553 ^ ^3.53553 0 0 0 0 1
particle scrape ^3.21412 ^ ^3.21412 0 0 0 0 1
particle scrape ^2.89271 ^ ^2.89271 0 0 0 0 1
particle scrape ^2.5713 ^ ^2.5713 0 0 0 0 1
particle scrape ^2.24989 ^ ^2.24989 0 0 0 0 1
particle scrape ^1.92847 ^ ^1.92847 0 0 0 0 1
particle scrape ^1.60706 ^ ^1.60706 0 0 0 0 1
particle scrape ^1.28565 ^ ^1.28565 0 0 0 0 1
particle scrape ^0.96424 ^ ^0.96424 0 0 0 0 1
particle scrape ^0.64282 ^ ^0.64282 0 0 0 0 1
particle scrape ^0.32141 ^ ^0.32141 0 0 0 0 1
particle scrape ^-0.32141 ^ ^-0.32141 0 0 0 0 1
particle scrape ^-0.64282 ^ ^-0.64282 0 0 0 0 1
particle scrape ^-0.96424 ^ ^-0.96424 0 0 0 0 1
particle scrape ^-1.28565 ^ ^-1.28565 0 0 0 0 1
particle scrape ^-1.60706 ^ ^-1.60706 0 0 0 0 1
particle scrape ^-1.92847 ^ ^-1.92847 0 0 0 0 1
particle scrape ^-2.24989 ^ ^-2.24989 0 0 0 0 1
particle scrape ^-2.5713 ^ ^-2.5713 0 0 0 0 1
particle scrape ^-2.89271 ^ ^-2.89271 0 0 0 0 1
particle scrape ^-3.21412 ^ ^-3.21412 0 0 0 0 1
particle scrape ^-3.53553 ^ ^3.53553 0 0 0 0 1
particle scrape ^-3.53553 ^ ^-3.53553 0 0 0 0 1
# 円 1
particle scrape ^0 ^ ^-5 0 0 0 0 1
particle scrape ^0.62667 ^ ^-4.96057 0 0 0 0 1
particle scrape ^1.24345 ^ ^-4.84292 0 0 0 0 1
particle scrape ^1.84062 ^ ^-4.64888 0 0 0 0 1
particle scrape ^2.40877 ^ ^-4.38153 0 0 0 0 1
particle scrape ^2.93893 ^ ^-4.04508 0 0 0 0 1
particle scrape ^3.42274 ^ ^-3.64484 0 0 0 0 1
particle scrape ^3.85257 ^ ^-3.18712 0 0 0 0 1
particle scrape ^4.22164 ^ ^-2.67913 0 0 0 0 1
particle scrape ^4.52414 ^ ^-2.1289 0 0 0 0 1
particle scrape ^4.75528 ^ ^-1.54508 0 0 0 0 1
particle scrape ^4.91144 ^ ^-0.93691 0 0 0 0 1
particle scrape ^4.99013 ^ ^-0.31395 0 0 0 0 1
particle scrape ^4.99013 ^ ^0.31395 0 0 0 0 1
particle scrape ^4.91144 ^ ^0.93691 0 0 0 0 1
particle scrape ^4.75528 ^ ^1.54508 0 0 0 0 1
particle scrape ^4.52414 ^ ^2.1289 0 0 0 0 1
particle scrape ^4.22164 ^ ^2.67913 0 0 0 0 1
particle scrape ^3.85257 ^ ^3.18712 0 0 0 0 1
particle scrape ^3.42274 ^ ^3.64484 0 0 0 0 1
particle scrape ^2.93893 ^ ^4.04508 0 0 0 0 1
particle scrape ^2.40877 ^ ^4.38153 0 0 0 0 1
particle scrape ^1.84062 ^ ^4.64888 0 0 0 0 1
particle scrape ^1.24345 ^ ^4.84292 0 0 0 0 1
particle scrape ^0.62667 ^ ^4.96057 0 0 0 0 1
particle scrape ^0 ^ ^5 0 0 0 0 1
particle scrape ^-0.62667 ^ ^4.96057 0 0 0 0 1
particle scrape ^-1.24345 ^ ^4.84292 0 0 0 0 1
particle scrape ^-1.84062 ^ ^4.64888 0 0 0 0 1
particle scrape ^-2.40877 ^ ^4.38153 0 0 0 0 1
particle scrape ^-2.93893 ^ ^4.04508 0 0 0 0 1
particle scrape ^-3.42274 ^ ^3.64484 0 0 0 0 1
particle scrape ^-3.85257 ^ ^3.18712 0 0 0 0 1
particle scrape ^-4.22164 ^ ^2.67913 0 0 0 0 1
particle scrape ^-4.52414 ^ ^2.1289 0 0 0 0 1
particle scrape ^-4.75528 ^ ^1.54508 0 0 0 0 1
particle scrape ^-4.91144 ^ ^0.93691 0 0 0 0 1
particle scrape ^-4.99013 ^ ^0.31395 0 0 0 0 1
particle scrape ^-4.99013 ^ ^-0.31395 0 0 0 0 1
particle scrape ^-4.91144 ^ ^-0.93691 0 0 0 0 1
particle scrape ^-4.75528 ^ ^-1.54508 0 0 0 0 1
particle scrape ^-4.52414 ^ ^-2.1289 0 0 0 0 1
particle scrape ^-4.22164 ^ ^-2.67913 0 0 0 0 1
particle scrape ^-3.85257 ^ ^-3.18712 0 0 0 0 1
particle scrape ^-3.42274 ^ ^-3.64484 0 0 0 0 1
particle scrape ^-2.93893 ^ ^-4.04508 0 0 0 0 1
particle scrape ^-2.40877 ^ ^-4.38153 0 0 0 0 1
particle scrape ^-1.84062 ^ ^-4.64888 0 0 0 0 1
particle scrape ^-1.24345 ^ ^-4.84292 0 0 0 0 1
particle scrape ^-0.62667 ^ ^-4.96057 0 0 0 0 1