diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/_index.d.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/_index.d.mcfunction new file mode 100644 index 0000000000..3a3d2f038f --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/_index.d.mcfunction @@ -0,0 +1,78 @@ +#> asset:mob/0372.tutankhamen/_index.d +# @private + +#> tag +# @within function asset:mob/0372.tutankhamen/** +# スキルリスト +#declare tag AC.Coddin +#declare tag AC.Laser +#declare tag AC.ManyShoot +#declare tag AC.HyperLaser +# ダッシュリスト +#declare tag AC.Dash.Left +#declare tag AC.Dash.Right +#declare tag AC.Dash.Side +#declare tag AC.Dash.Slash +#declare tag AC.Dash.Charge +## 状態タグ +#declare tag AC.Health.50Per +# 動作タグ +#declare tag AC.Moveset.Transition +# その他タグ +#declare tag AC.InAction +#declare tag AC.DashUsed +#declare tag AC.Coffin +#declare tag AC.CoffinPoint +#declare tag AC.SpawnMarker +#declare tag AC.AJ +#declare tag AC.AJLink +#declare tag AC.Opening +#declare tag Target +#declare score_holder $Random +#declare score_holder $Interval +# Animated Java +#declare function animated_java:tutankhamen/summon +#declare function animated_java:tutankhamen/remove/this +#declare function animated_java:tutankhamen/summon +#declare function animated_java:tutankhamen/animations/neutral/play +#declare function animated_java:tutankhamen/animations/neutral/tween +#declare function animated_java:tutankhamen/animations/neutral/stop +#declare function animated_java:tutankhamen/animations/spawn/play +#declare function animated_java:tutankhamen/animations/spawn/stop +#declare function animated_java:tutankhamen/animations/death/play +#declare function animated_java:tutankhamen/animations/death/stop +#declare function animated_java:tutankhamen/animations/beam_shot/play +#declare function animated_java:tutankhamen/animations/beam_shot/stop +#declare function animated_java:tutankhamen/animations/beam_end/stop +#declare function animated_java:tutankhamen/animations/soul_shot/play +#declare function animated_java:tutankhamen/animations/soul_shot/stop +#declare function animated_java:tutankhamen/animations/beam_long/play +#declare function animated_java:tutankhamen/animations/beam_long/stop +#declare function animated_java:tutankhamen/animations/beam_long/tween +#declare function animated_java:tutankhamen/animations/beam_long_charge/play +#declare function animated_java:tutankhamen/animations/beam_long_charge/stop +#declare function animated_java:tutankhamen/animations/beam_long_shot/play +#declare function animated_java:tutankhamen/animations/beam_long_shot/stop +#declare function animated_java:tutankhamen/animations/rod_ground/tween +#declare function animated_java:tutankhamen/animations/rod_ground_end/tween +#declare function animated_java:tutankhamen/animations/dash/play +#declare function animated_java:tutankhamen/animations/dash/tween +#declare function animated_java:tutankhamen/animations/dash/stop +#declare function animated_java:tutankhamen/animations/dash_slash/play +#declare function animated_java:tutankhamen/animations/dash_slash/tween +#declare function animated_java:tutankhamen/animations/dash_slash/stop +#declare function animated_java:tutankhamen/animations/dash_end/play +#declare function animated_java:tutankhamen/animations/dash_end/tween +#declare function animated_java:tutankhamen/animations/dash_end/stop +#declare function animated_java:tutankhamen/animations/attack_melee_1/tween +#declare function animated_java:tutankhamen/animations/attack_dash_1/tween +#declare function animated_java:tutankhamen/animations/attack_dash_2/tween +#declare function animated_java:tutankhamen/animations/attack_laser_windup/tween +#declare function animated_java:tutankhamen/animations/attack_laser_loop/tween +#declare function animated_java:tutankhamen/animations/attack_laser_end/tween +#declare function animated_java:tutankhamen/animations/damage/tween +#declare function animated_java:tutankhamen/animations/soul_shot/tween +#declare function animated_java:tutankhamen/animations/attack_laser_2_windup/tween +#declare function animated_java:tutankhamen/animations/attack_laser_2_loop/tween +#declare function animated_java:tutankhamen/animations/attack_laser_2_end/tween +#declare tag AC.ModelLocator.Weapon diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/death/.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/death/.mcfunction new file mode 100644 index 0000000000..5e8eaf8e5d --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/death/.mcfunction @@ -0,0 +1,24 @@ +#> asset:mob/0372.tutankhamen/death/ +# +# Mobの死亡時の処理 +# +# @within function asset:mob/alias/372/death + +# super.death呼び出し + function asset:mob/super.death + +# SpawnMarkerを削除 + kill @e[type=marker,tag=AC.SpawnMarker,distance=..128] + +# CoffinPointを削除 + kill @e[type=marker,tag=AC.CoffinPoint,distance=..128] + +# 付近の棺を全部片付ける + execute as @e[type=polar_bear,scores={MobID=374},distance=..128] run function api:mob/kill + +# 自分のモデルを片付ける + execute as @e[type=item_display,tag=AC.AJ,distance=..100,sort=nearest,limit=1] run function animated_java:tutankhamen/remove/this + +# 撃破演出用オブジェクトを召喚 + data modify storage api: Argument.ID set value 2093 + execute facing entity @p[distance=..64] eyes run function api:object/summon diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/hurt/.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/hurt/.mcfunction new file mode 100644 index 0000000000..af87280bb8 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/hurt/.mcfunction @@ -0,0 +1,24 @@ +#> asset:mob/0372.tutankhamen/hurt/ +# +# Mobのダメージ時の処理 +# +# @within function asset:mob/alias/372/hurt + +#>ヘルス割合用のスコアホルダー +# @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 + +# HP50%以下時 + execute if entity @s[tag=!AC.Health.50Per] if score $HealthPercent Temporary matches ..50 run function asset:mob/0372.tutankhamen/hurt/active_50per + +# リセット + scoreboard players reset $HealthPercent Temporary + +# super.hurt呼び出し + function asset:mob/super.hurt diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/hurt/active_50per.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/hurt/active_50per.mcfunction new file mode 100644 index 0000000000..1cd9f7d6c1 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/hurt/active_50per.mcfunction @@ -0,0 +1,23 @@ +#> asset:mob/0372.tutankhamen/hurt/active_50per +# +# +# +# @within function asset:mob/0372.tutankhamen/hurt/ + +# フェイズ移行動作を実行 + tag @s add AC.Moveset.Transition + +# 無敵になる + data modify entity @s Invulnerable set value 1b + tag @s add Uninterferable + +# サウンド + playsound minecraft:entity.blaze.hurt hostile @a ~ ~ ~ 1.5 0.5 + playsound minecraft:entity.wither_skeleton.death hostile @a ~ ~ ~ 1.5 1.5 + playsound minecraft:entity.player.breath hostile @a ~ ~ ~ 1.5 0.8 + +# 全動作強制リセット + function asset:mob/0372.tutankhamen/tick/skill/reset + +# スコアリセット + scoreboard players set @s General.Mob.Tick -1 diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/init/.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/init/.mcfunction new file mode 100644 index 0000000000..05781fc7e0 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/init/.mcfunction @@ -0,0 +1,35 @@ +#> asset:mob/0372.tutankhamen/init/ +# +# Mobのinit時の処理 +# +# @within asset:mob/alias/372/init + +# super.init呼び出し + function asset:mob/super.init + +# 召喚位置を記録するマーカーを召喚 + summon marker ~ ~ ~ {Tags:["AC.SpawnMarker"]} + +# 棺召喚位置用markerを召喚 + execute rotated ~0 0 positioned ^ ^ ^12 run summon marker ~ ~ ~ {Tags:["AC.CoffinPoint"],Rotation:[180.0f,0.0f]} + execute rotated ~45 0 positioned ^ ^ ^12 run summon marker ~ ~ ~ {Tags:["AC.CoffinPoint"],Rotation:[225.0f,0.0f]} + execute rotated ~90 0 positioned ^ ^ ^12 run summon marker ~ ~ ~ {Tags:["AC.CoffinPoint"],Rotation:[270.0f,0.0f]} + execute rotated ~135 0 positioned ^ ^ ^12 run summon marker ~ ~ ~ {Tags:["AC.CoffinPoint"],Rotation:[315.0f,0.0f]} + execute rotated ~180 0 positioned ^ ^ ^12 run summon marker ~ ~ ~ {Tags:["AC.CoffinPoint"],Rotation:[0.0f,0.0f]} + execute rotated ~225 0 positioned ^ ^ ^12 run summon marker ~ ~ ~ {Tags:["AC.CoffinPoint"],Rotation:[45.0f,0.0f]} + execute rotated ~270 0 positioned ^ ^ ^12 run summon marker ~ ~ ~ {Tags:["AC.CoffinPoint"],Rotation:[90.0f,0.0f]} + execute rotated ~315 0 positioned ^ ^ ^12 run summon marker ~ ~ ~ {Tags:["AC.CoffinPoint"],Rotation:[135.0f,0.0f]} + +# AJ召喚 + execute rotated ~ 0 run function animated_java:tutankhamen/summon {args:{}} + +# tpさせる +# AC.AJはAJリポジトリ側で召喚時に付与されている + execute at @s as @e[type=item_display,tag=AC.AJ,sort=nearest,limit=1] run tp @s ~ ~ ~ + +# スコア初期化 + scoreboard players set @s General.Mob.Tick -1 + scoreboard players set @s AC.Count.Dash 0 + +# 召喚モーション用Tagを自身に付与 + tag @s add AC.Opening diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/load.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/load.mcfunction new file mode 100644 index 0000000000..bbbcb47d48 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/load.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0372.tutankhamen/load +# +# Mobに利用するスコアボード等の初期化処理 +# +# @within tag/function asset:mob/load + +#> 定義類はここに +# @within function asset:mob/0372.tutankhamen/** + scoreboard objectives add AC.TargetID dummy + scoreboard objectives add AC.Count.Dash dummy diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/register.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/register.mcfunction new file mode 100644 index 0000000000..a01a963cc4 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/register.mcfunction @@ -0,0 +1,69 @@ +#> asset:mob/0372.tutankhamen/register +# +# Mobのデータを指定 +# +# @within function asset:mob/alias/372/register + +# 継承  + data modify storage asset:mob Extends append value 2000 + function asset:mob/extends + +# 他のモブに継承されることを許可するか (boolean) (オプション) + # data modify storage asset:mob ExtendsSafe set value +# 継承されることを前提とした、抽象的なモブであるかどうか(boolean) + data modify storage asset:mob IsAbstract set value false +# ID (int) + data modify storage asset:mob ID set value 372 +# 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":"ツタンカーメン","color":"#13b3aa"}' +# Mobの説明文 (TextComponentString[]) (オプション) + data modify storage asset:mob Lore set value ['{"text":"その名は有名なファラオを彷彿とさせるが、","color":"white"}','{"text":"この天使は、様々な歴史や、人々の持つイメージなどを元に作り上げられた存在でしかない。","color":"white"}','{"text":"一体どんなイメージが紛れ込んだのか、この天使は魔術と剣術、両方に秀でている。","color":"white"}'] +# 武器 + # メインハンド (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 350000d +# 攻撃力 (double) (オプション) + data modify storage asset:mob AttackDamage set value 0.0d +# 防御力 (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.0d +# 索敵範囲 (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 +# フィールド + data modify storage asset:mob Field.Damage.ManyShoot set value 25f diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/remove/.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/remove/.mcfunction new file mode 100644 index 0000000000..63bfcf0347 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/remove/.mcfunction @@ -0,0 +1,17 @@ +#> asset:mob/0372.tutankhamen/remove/ +# +# 天使が居なくなる際に実行される処理 +# +# @within asset:mob/alias/372/remove + +# super.remove呼び出し + function asset:mob/super.remove + +# SpawnMarkerを削除 + kill @e[type=marker,tag=AC.SpawnMarker] + +# CoffinPointを削除 + kill @e[type=marker,tag=AC.CoffinPoint] + +# AJ削除 + execute at @s as @e[type=item_display,tag=AC.AJ,distance=..100,sort=nearest,limit=1] run function animated_java:tutankhamen/remove/this diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/summon/.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/summon/.mcfunction new file mode 100644 index 0000000000..6922a83769 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0372.tutankhamen/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:mob/alias/372/summon + +# 元となるEntityを召喚する + summon wither_skeleton ~ ~ ~ {NoAI:1b,Tags:["MobInit","AlwaysInvisible"],DeathLootTable:"empty"} diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/summon/debug.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/summon/debug.mcfunction new file mode 100644 index 0000000000..a45f30cf72 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0372.tutankhamen/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 372 + function api:mob/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/.mcfunction new file mode 100644 index 0000000000..a91fb5fb3e --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/.mcfunction @@ -0,0 +1,39 @@ +#> asset:mob/0372.tutankhamen/tick/ +# +# Mobのtick時の処理 +# +# @within asset:mob/alias/372/tick + +# スコア + scoreboard players add @s General.Mob.Tick 1 + +# AJモデルとの紐づけ + execute at @s run tag @e[type=item_display,tag=AC.AJ,distance=..16,sort=nearest,limit=1] add AC.AJLink + +# モデルを追従 + execute at @s run tp @e[type=item_display,tag=AC.AJLink,distance=..16,sort=nearest,limit=1] ~ ~ ~ ~ ~ + +# フェイズ移行動作 + execute if entity @s[tag=AC.Moveset.Transition] run function asset:mob/0372.tutankhamen/tick/phase_transition/ + +# スキル選択 開幕は実行しない + execute if entity @s[tag=AC.DashUsed,tag=!AC.Moveset.Transition,tag=!AC.InAction,tag=!AC.Opening] if score @s General.Mob.Tick matches 0 run function asset:mob/0372.tutankhamen/tick/skill_select + +# ダッシュ選択 開幕は実行しないし、スキル中も使用しない + execute if entity @s[tag=!AC.InAction,tag=!AC.Moveset.Transition,tag=!AC.Opening] if score @s General.Mob.Tick matches 0 run function asset:mob/0372.tutankhamen/tick/dash_select + +# スキル実行 + execute if entity @s[tag=!AC.Moveset.Transition] if score @s General.Mob.Tick matches 0.. run function asset:mob/0372.tutankhamen/tick/skill_branch + +# 本気のパーティクル + execute if entity @s[tag=AC.Health.50Per,tag=!AC.Moveset.Transition] if predicate lib:random_pass_per/50 run particle soul_fire_flame ~ ~1 ~ 0.3 0.5 0.3 0.02 1 force @a[distance=..64] + execute if entity @s[tag=AC.Health.50Per,tag=!AC.Moveset.Transition] if predicate lib:random_pass_per/50 run particle dust 0 1 1 1 ~ ~1 ~ 0.3 0.5 0.3 0.02 1 force @a[distance=..64] + +# 足元に何もなければ + execute if block ~ ~-0.2 ~ #lib:no_collision run particle minecraft:enchant ~ ~ ~ 0.4 0 0.4 0 10 + +# 足元が埋まっている間は上にちょっとずつ登る + execute unless block ~ ~ ~ #lib:no_collision run tp @s ~ ~0.1 ~ + +# AJモデルとの紐づけ解除 + execute at @s run tag @e[type=item_display,tag=AC.AJLink,distance=..0.01,sort=nearest,limit=1] remove AC.AJLink diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/dash_select.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/dash_select.mcfunction new file mode 100644 index 0000000000..f1d65bbeb0 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/dash_select.mcfunction @@ -0,0 +1,34 @@ +#> asset:mob/0372.tutankhamen/tick/dash_select +# +# +# +# @within function asset:mob/0372.tutankhamen/tick/ + +#> private +# @private + #declare score_holder $Random + +# 行動中扱いにする + tag @s add AC.InAction + +# ダッシュ使ったことにする + tag @s add AC.DashUsed + +# 乱数によるスキル選択 + data modify storage lib: Args.key set value "0372.Dash" + data modify storage lib: Args.max set value 4 + data modify storage lib: Args.scarcity_history_size set value 3 + execute store result score $Random Temporary run function lib:random/with_biased/manual.m with storage lib: Args + +# デバッグのコマンド +# scoreboard players set $Random Temporary 3 + +# スキル選択 + execute if score $Random Temporary matches 0..1 run tag @s add AC.Dash.Side + execute if score $Random Temporary matches 0 run tag @s add AC.Dash.Left + execute if score $Random Temporary matches 1 run tag @s add AC.Dash.Right + execute if score $Random Temporary matches 2 run tag @s add AC.Dash.Slash + execute if score $Random Temporary matches 3 run tag @s add AC.Dash.Charge + +# リセット + scoreboard players reset $Random Temporary diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/phase_transition/.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/phase_transition/.mcfunction new file mode 100644 index 0000000000..15bee91c81 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/phase_transition/.mcfunction @@ -0,0 +1,14 @@ +#> asset:mob/0372.tutankhamen/tick/phase_transition/ +# +# フェイズ移行動作 +# +# @within function asset:mob/0372.tutankhamen/tick/ + +# のけぞる + execute if score @s General.Mob.Tick matches 0 as @e[type=item_display,tag=AC.AJ,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/damage/tween {duration:1, to_frame:0} + +# 立て直すまで煙を吹く + execute if score @s General.Mob.Tick matches 0..50 run particle large_smoke ~ ~1.5 ~ 0.1 0.1 0.1 0.1 2 + +# 行動再開 + execute if score @s General.Mob.Tick matches 65 run function asset:mob/0372.tutankhamen/tick/phase_transition/restart diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/phase_transition/restart.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/phase_transition/restart.mcfunction new file mode 100644 index 0000000000..3c008f03d6 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/phase_transition/restart.mcfunction @@ -0,0 +1,16 @@ +#> asset:mob/0372.tutankhamen/tick/phase_transition/restart +# +# +# +# @within function asset:mob/0372.tutankhamen/tick/phase_transition/ + +# ベース動作を実行 + tag @s remove AC.Moveset.Transition + tag @s add AC.Health.50Per + +# スコアリセット + scoreboard players set @s General.Mob.Tick -20 + +# 無敵解除 + data modify entity @s Invulnerable set value 0b + tag @s remove Uninterferable diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/coffin/.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/coffin/.mcfunction new file mode 100644 index 0000000000..1c6833421b --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/coffin/.mcfunction @@ -0,0 +1,34 @@ +#> asset:mob/0372.tutankhamen/tick/skill/coffin/ +# +# +# +# @within function asset:mob/0372.tutankhamen/tick/skill_branch + +# アニメ再生 + execute if score @s General.Mob.Tick matches 0 as @e[type=item_display,tag=AC.AJLink,distance=..0.01,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/rod_ground/tween {to_frame:0 ,duration:5} + +# 攻撃前の演出 + execute if score @s General.Mob.Tick matches 10..20 run particle dust 1 1 0 2 ~ ~2.5 ~ 1 0 1 0 5 + execute if score @s General.Mob.Tick matches 10 run playsound item.trident.riptide_1 hostile @a ~ ~2.5 ~ 2 0.8 + execute if score @s General.Mob.Tick matches 15 run playsound item.trident.riptide_1 hostile @a ~ ~2.5 ~ 2 1.0 + execute if score @s General.Mob.Tick matches 20 run playsound item.trident.riptide_1 hostile @a ~ ~2.5 ~ 2 1.2 + +# 攻撃開始の演出 + execute if score @s General.Mob.Tick matches 30 run function asset:mob/0372.tutankhamen/tick/skill/coffin/vfx_start + +# 棺召喚 +# 難易度比例で召喚数を変える + execute if entity @s[scores={General.Mob.Tick=30}] at @e[type=marker,tag=AC.SpawnMarker,distance=..100] run function asset:mob/0372.tutankhamen/tick/skill/coffin/summon + execute if entity @s[scores={General.Mob.Tick=38}] if predicate api:global_vars/difficulty/min/normal at @e[type=marker,tag=AC.SpawnMarker,distance=..100] run function asset:mob/0372.tutankhamen/tick/skill/coffin/summon + execute if entity @s[scores={General.Mob.Tick=46}] if predicate api:global_vars/difficulty/min/hard at @e[type=marker,tag=AC.SpawnMarker,distance=..100] run function asset:mob/0372.tutankhamen/tick/skill/coffin/summon + +# アニメ再生 + execute if score @s General.Mob.Tick matches 60 as @e[type=item_display,tag=AC.AJLink,distance=..0.01,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/rod_ground_end/tween {to_frame:0 ,duration:1} + +# 攻撃後の演出 + execute if score @s General.Mob.Tick matches 64 run playsound item.trident.riptide_1 hostile @a ~ ~3 ~ 2 1.2 + execute if score @s General.Mob.Tick matches 69 run playsound item.trident.riptide_1 hostile @a ~ ~3 ~ 2 1.0 + execute if score @s General.Mob.Tick matches 74 run playsound item.trident.riptide_1 hostile @a ~ ~3 ~ 2 0.8 + +# 共通リセット処理 + execute if score @s General.Mob.Tick matches 90 run function asset:mob/0372.tutankhamen/tick/skill/reset diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/coffin/summon.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/coffin/summon.mcfunction new file mode 100644 index 0000000000..6975ff031a --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/coffin/summon.mcfunction @@ -0,0 +1,24 @@ +#> asset:mob/0372.tutankhamen/tick/skill/coffin/summon +# +# 棺を召喚する +# +# @within function asset:mob/0372.tutankhamen/tick/skill/coffin/ + +#> Private +# @private + #declare tag Summoned + #declare tag TargetCoffin + +# どこに棺がいるかチェックする +# 棺が召喚済みならSummonedをつける + execute as @e[type=marker,tag=AC.CoffinPoint,distance=..50] at @s if entity @e[type=polar_bear,scores={MobID=373..374},distance=..0.01] run tag @s add Summoned + +# Summonedではないランダムなmarkerの位置で棺を召喚 + tag @e[type=marker,tag=AC.CoffinPoint,tag=!Summoned,distance=..50,sort=random,limit=1] add TargetCoffin + data modify storage api: Argument.ID set value 374 + data modify storage api: Argument.FieldOverride.RotationX set from entity @e[type=marker,tag=TargetCoffin,distance=..50,limit=1] Rotation[0] + execute at @e[type=marker,tag=TargetCoffin,distance=..50,limit=1] run function api:mob/summon + +# Summonedを削除 + tag @e[type=marker,tag=AC.CoffinPoint,tag=Summoned,distance=..50] remove Summoned + tag @e[type=marker,tag=TargetCoffin,distance=..50] remove TargetCoffin diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/coffin/vfx_start.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/coffin/vfx_start.mcfunction new file mode 100644 index 0000000000..67aed5309e --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/coffin/vfx_start.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0372.tutankhamen/tick/skill/coffin/vfx_start +# +# +# +# @within function asset:mob/0372.tutankhamen/tick/skill/coffin/ + +playsound minecraft:item.trident.return hostile @a ~ ~ ~ 2 1.6 +playsound minecraft:item.trident.return hostile @a ~ ~ ~ 2 1.8 +playsound minecraft:item.trident.return hostile @a ~ ~ ~ 2 2 +particle witch ~ ~ ~ 0.5 0 0.5 1 50 diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/common/select_target.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/common/select_target.mcfunction new file mode 100644 index 0000000000..2281e80d41 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/common/select_target.mcfunction @@ -0,0 +1,11 @@ +#> asset:mob/0372.tutankhamen/tick/skill/common/select_target +# +# ターゲット選定 +# +# @within function asset:mob/0372.tutankhamen/tick/skill/** + +# 自身のスコアに突っ込む + scoreboard players operation @s AC.TargetID = @r[gamemode=!spectator,distance=..50] UserID + +# ターゲットのUserIDをフィールドにも突っ込む + execute store result storage asset:context this.TargetID int 1 run scoreboard players get @s AC.TargetID diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/chain_dash.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/chain_dash.mcfunction new file mode 100644 index 0000000000..40fd0d7adb --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/chain_dash.mcfunction @@ -0,0 +1,40 @@ +#> asset:mob/0372.tutankhamen/tick/skill/dash/chain_dash +# +# ダッシュからダッシュへ +# +# @within function asset:mob/0372.tutankhamen/tick/skill/dash/** + +# スコアをセット + scoreboard players set @s General.Mob.Tick -1 + +# 即座に付近のプレイヤーを見る + execute facing entity @p[distance=..64] feet run tp @s ~ ~ ~ ~ ~ + +# Tagを削除 + tag @s remove AC.Dash.Left + tag @s remove AC.Dash.Right + tag @s remove AC.Dash.Side + tag @s remove AC.Dash.Slash + tag @s remove AC.Dash.Charge + +# カウント増やす + scoreboard players add @s AC.Count.Dash 1 + +# 乱数によるスキル選択 + data modify storage lib: Args.key set value "0372.Dash" + data modify storage lib: Args.max set value 4 + data modify storage lib: Args.scarcity_history_size set value 3 + execute store result score $Random Temporary run function lib:random/with_biased/manual.m with storage lib: Args + +# デバッグのコマンド +# scoreboard players set $Random Temporary 2 + +# スキル選択 + execute if score $Random Temporary matches 0..1 run tag @s add AC.Dash.Side + execute if score $Random Temporary matches 0 run tag @s add AC.Dash.Left + execute if score $Random Temporary matches 1 run tag @s add AC.Dash.Right + execute if score $Random Temporary matches 2 run tag @s add AC.Dash.Slash + execute if score $Random Temporary matches 3 run tag @s add AC.Dash.Charge + +# リセット + scoreboard players reset $Random Temporary diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/charge/.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/charge/.mcfunction new file mode 100644 index 0000000000..56f7552b31 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/charge/.mcfunction @@ -0,0 +1,43 @@ +#> asset:mob/0372.tutankhamen/tick/skill/dash/charge/ +# +# 「チャージ」と言っても力を溜めることではなく、突進のことである +# +# @within function asset:mob/0372.tutankhamen/tick/skill_branch + +# バックステップアニメ + execute if score @s General.Mob.Tick matches 0 run function asset:mob/0372.tutankhamen/tick/skill/dash/charge/backstep + +# 後ろに下がる + execute if score @s General.Mob.Tick matches 0..5 rotated ~ 0 run tp @s ^ ^ ^-0.5 + execute if score @s General.Mob.Tick matches 6..10 rotated ~ 0 run tp @s ^ ^ ^-0.3 + execute if score @s General.Mob.Tick matches 11..15 rotated ~ 0 run tp @s ^ ^ ^-0.1 + +# 突進開始アニメ + execute if score @s General.Mob.Tick matches 15 run function asset:mob/0372.tutankhamen/tick/skill/dash/charge/start + +# 突進 + execute if score @s General.Mob.Tick matches 15..30 run function asset:mob/0372.tutankhamen/tick/skill/dash/charge/move + +# ブレーキ + execute if score @s General.Mob.Tick matches 30 as @e[type=item_display,tag=AC.AJLink,distance=..16,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/dash_end/tween {to_frame: 0, duration: 5} + +# 本気時は謎キャンセルでダッシュにチェインする + # ノーマルモード + execute unless predicate api:global_vars/difficulty/min/hard if score @s[tag=AC.Health.50Per] General.Mob.Tick matches 50 unless score @s AC.Count.Dash matches 0.. run function asset:mob/0372.tutankhamen/tick/skill/dash/chain_dash + # ハードモード + execute if predicate api:global_vars/difficulty/min/hard if score @s[tag=AC.Health.50Per] General.Mob.Tick matches 40 unless score @s AC.Count.Dash matches 0.. run function asset:mob/0372.tutankhamen/tick/skill/dash/chain_dash + +# ウソ慣性 + execute if score @s General.Mob.Tick matches 30..40 unless function asset:mob/0372.tutankhamen/tick/skill/dash/check_collide run tp @s ^ ^ ^0.5 + execute if score @s General.Mob.Tick matches 40..45 unless function asset:mob/0372.tutankhamen/tick/skill/dash/check_collide run tp @s ^ ^ ^0.3 + execute if score @s General.Mob.Tick matches 45..50 unless function asset:mob/0372.tutankhamen/tick/skill/dash/check_collide run tp @s ^ ^ ^0.1 + +# 終わり際のパーティクル + execute if score @s General.Mob.Tick matches 30..50 run particle dust 0 0.318 0.318 1 ~ ~1 ~ 0.5 0.5 0.5 0 10 + +# ニュートラルに戻る + execute if score @s General.Mob.Tick matches 50 as @e[type=item_display,tag=AC.AJLink,distance=..16,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/neutral/tween {to_frame: 0, duration: 5} + execute if score @s General.Mob.Tick matches 50 run tp @s ~ ~ ~ ~ 0 + +# リセット + execute if score @s General.Mob.Tick matches 50.. run function asset:mob/0372.tutankhamen/tick/skill/reset diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/charge/backstep.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/charge/backstep.mcfunction new file mode 100644 index 0000000000..ae89e7cda5 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/charge/backstep.mcfunction @@ -0,0 +1,15 @@ +#> asset:mob/0372.tutankhamen/tick/skill/dash/charge/backstep +# +# バックステップ +# +# @within function asset:mob/0372.tutankhamen/tick/skill/dash/charge/ + +# プレイヤーのほうを向く + execute facing entity @p[distance=..64] feet run tp @s ~ ~ ~ ~ 0 + +# アニメ開始 + execute as @e[type=item_display,tag=AC.AJLink,distance=..0.01,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/dash_end/tween {to_frame: 3, duration: 3} + +# 演出 + playsound minecraft:item.trident.return hostile @a ~ ~ ~ 1 2 + playsound minecraft:entity.player.breath hostile @a ~ ~ ~ 1 1 diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/charge/move.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/charge/move.mcfunction new file mode 100644 index 0000000000..c6356b6fbc --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/charge/move.mcfunction @@ -0,0 +1,43 @@ +#> asset:mob/0372.tutankhamen/tick/skill/dash/charge/move +# +# 高速突進とダメージ +# +# @within function asset:mob/0372.tutankhamen/tick/skill/dash/charge/ + +#> インターバルのスコアホルダー +# @private + #declare score_holder $Interval + +# 壁チェック + execute at @s if function asset:mob/0372.tutankhamen/tick/skill/dash/check_collide run tp @s ~ ~0.5 ~ ~ 0 + execute at @s if function asset:mob/0372.tutankhamen/tick/skill/dash/check_collide run scoreboard players set @s General.Mob.Tick 30 + +# 弱ホーミングダッシュ + execute facing entity @p[gamemode=!spectator] feet positioned ^ ^ ^-10 rotated as @s positioned ^ ^ ^-80 facing entity @s feet positioned as @s rotated ~ ~ run tp @s ^ ^ ^1.5 ~ ~ + +# 実行時間を移す + scoreboard players operation $Interval Temporary = @s General.Mob.Tick + +# 数Tickごとにサウンド + scoreboard players operation $Interval Temporary %= $2 Const + execute if score $Interval Temporary matches 0 run playsound minecraft:entity.breeze.slide hostile @a ~ ~ ~ 2 1.5 + execute if score $Interval Temporary matches 0 run playsound minecraft:entity.blaze.shoot hostile @a ~ ~ ~ 0.5 0.5 + execute if score $Interval Temporary matches 0 run playsound minecraft:item.trident.riptide_1 hostile @a ~ ~3 ~ 2 1.2 + scoreboard players reset $Interval Temporary + +# パーティクル + particle soul_fire_flame ~ ~1 ~ 0.2 0.2 0.2 0.05 10 + particle dust 0 1 1 2 ~ ~1 ~ 0.5 0.5 0.5 0 10 + execute at @e[type=marker,tag=AC.ModelLocator.Weapon,distance=..16,limit=1] run particle dust 1 1 0 2 ~ ~1 ~ 0.1 0.1 0.1 0 5 + +# ダメージ判定 + data modify storage api: Argument.Damage set value 50f +# 属性 + data modify storage api: Argument.AttackType set value "Physical" + data modify storage api: Argument.ElementType set value "Fire" +# 補正functionを実行 + function api:damage/modifier +# 対象 + execute as @p[tag=!PlayerShouldInvulnerable,distance=..1] run function api:damage/ +# リセット + function api:damage/reset diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/charge/start.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/charge/start.mcfunction new file mode 100644 index 0000000000..220e4468f2 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/charge/start.mcfunction @@ -0,0 +1,15 @@ +#> asset:mob/0372.tutankhamen/tick/skill/dash/charge/start +# +# +# +# @within function asset:mob/0372.tutankhamen/tick/skill/dash/charge/ + +# アニメ開始 + execute as @e[type=item_display,tag=AC.AJLink,distance=..0.01,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/attack_dash_2/tween {to_frame: 0, duration: 1} + +# 演出 + playsound ogg:mob.blaze.breathe2 hostile @a ~ ~ ~ 2 1 + playsound minecraft:entity.breeze.death hostile @a ~ ~ ~ 2 0.5 + playsound minecraft:entity.wither.shoot hostile @a ~ ~ ~ 1 1.7 + particle minecraft:crit ~ ~ ~ 0 0 0 1 25 + particle minecraft:poof ~ ~ ~ 0 0 0 0.3 50 diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/check_collide.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/check_collide.mcfunction new file mode 100644 index 0000000000..e55a9ae759 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/check_collide.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0372.tutankhamen/tick/skill/dash/check_collide +# +# 壁に激突してるかどうかのチェック +# +# @within function asset:mob/0372.tutankhamen/tick/skill/dash/** + +execute unless block ^ ^ ^1 #lib:no_collision run return 1 +execute anchored eyes unless block ^ ^ ^1 #lib:no_collision run return 1 diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/dash_slash/.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/dash_slash/.mcfunction new file mode 100644 index 0000000000..2a1b1c27bc --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/dash_slash/.mcfunction @@ -0,0 +1,40 @@ +#> asset:mob/0372.tutankhamen/tick/skill/dash/dash_slash/ +# +# +# +# @within function asset:mob/0372.tutankhamen/tick/skill_branch + +# ダッシュ開始 + execute if score @s General.Mob.Tick matches 0 run function asset:mob/0372.tutankhamen/tick/skill/dash/start + +# プレイヤーの方へ誘導する + execute if score @s General.Mob.Tick matches ..99 run function asset:mob/0372.tutankhamen/tick/skill/dash/dash_slash/move + +# プレイヤーが前方の範囲にいたらスコアを変える + execute if score @s General.Mob.Tick matches ..99 at @s positioned ^ ^ ^2 if entity @p[gamemode=!spectator,distance=..4] run scoreboard players set @s General.Mob.Tick 100 + +# 斬撃の構え + execute if score @s General.Mob.Tick matches 100 run function asset:mob/0372.tutankhamen/tick/skill/dash/dash_slash/slash/windup + +# 構えその2 + execute if score @s General.Mob.Tick matches 115 run function asset:mob/0372.tutankhamen/tick/skill/dash/dash_slash/slash/windup_2 + +# そして斬撃のダメージ + execute if score @s General.Mob.Tick matches 118 run function asset:mob/0372.tutankhamen/tick/skill/dash/dash_slash/slash/damage + +# 本気時は謎キャンセルでダッシュにチェインする + # ノーマルモード + execute unless predicate api:global_vars/difficulty/min/hard if score @s[tag=AC.Health.50Per] General.Mob.Tick matches 140 unless score @s AC.Count.Dash matches 0.. run function asset:mob/0372.tutankhamen/tick/skill/dash/chain_dash + # ハードモード + execute if predicate api:global_vars/difficulty/min/hard if score @s[tag=AC.Health.50Per] General.Mob.Tick matches 120 unless score @s AC.Count.Dash matches 0.. run function asset:mob/0372.tutankhamen/tick/skill/dash/chain_dash + +# ニュートラルに戻る + execute if score @s General.Mob.Tick matches 140 as @e[type=item_display,tag=AC.AJLink,distance=..16,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/neutral/tween {to_frame: 0, duration: 5} + execute if score @s General.Mob.Tick matches 140 run tp @s ~ ~ ~ ~ 0 +# ウソ慣性 + execute if score @s General.Mob.Tick matches 100..105 unless function asset:mob/0372.tutankhamen/tick/skill/dash/check_collide run tp @s ^ ^ ^0.5 + execute if score @s General.Mob.Tick matches 106 unless function asset:mob/0372.tutankhamen/tick/skill/dash/check_collide run tp @s ^ ^ ^0.3 + execute if score @s General.Mob.Tick matches 107..110 unless function asset:mob/0372.tutankhamen/tick/skill/dash/check_collide run tp @s ^ ^ ^0.1 + +# リセット + execute if score @s General.Mob.Tick matches 140.. run function asset:mob/0372.tutankhamen/tick/skill/reset diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/dash_slash/move.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/dash_slash/move.mcfunction new file mode 100644 index 0000000000..43f06e420a --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/dash_slash/move.mcfunction @@ -0,0 +1,24 @@ +#> asset:mob/0372.tutankhamen/tick/skill/dash/dash_slash/move +# +# 移動処理 +# +# @within function asset:mob/0372.tutankhamen/tick/skill/dash/dash_slash/ + +#> インターバルのスコアホルダー +# @private + #declare score_holder $Interval + +# 壁チェック + execute at @s if function asset:mob/0372.tutankhamen/tick/skill/dash/check_collide run tp @s ~ ~ ~ ~ 0 + execute at @s if function asset:mob/0372.tutankhamen/tick/skill/dash/check_collide run scoreboard players set @s General.Mob.Tick 100 + +# ホーミング + execute facing entity @p[gamemode=!spectator,distance=..64] feet positioned ^ ^ ^-10 rotated as @s positioned ^ ^ ^-20 facing entity @s feet positioned as @s rotated ~ ~ run tp @s ^ ^ ^1 ~ ~ + +# 実行時間を移す + scoreboard players operation $Interval Temporary = @s General.Mob.Tick + +# 数Tickごとにサウンド + scoreboard players operation $Interval Temporary %= $2 Const + execute if score $Interval Temporary matches 0 run playsound minecraft:entity.breeze.slide hostile @a ~ ~ ~ 2 1.5 + scoreboard players reset $Interval Temporary diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/dash_slash/slash/damage.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/dash_slash/slash/damage.mcfunction new file mode 100644 index 0000000000..95182d2131 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/dash_slash/slash/damage.mcfunction @@ -0,0 +1,26 @@ +#> asset:mob/0372.tutankhamen/tick/skill/dash/dash_slash/slash/damage +# +# 発動、ってかダメージ部分 +# +# @within function asset:mob/0372.tutankhamen/tick/skill/dash/dash_slash/ + +# 演出 + playsound minecraft:entity.witch.throw player @a ~ ~ ~ 1.5 0.7 + playsound minecraft:item.trident.throw player @a ~ ~ ~ 1.5 0.7 + playsound minecraft:item.axe.scrape player @a ~ ~ ~ 1 1.0 +# 斬撃オブジェクトを出す + data modify storage api: Argument.FieldOverride set value {Item:{id:"minecraft:leather_horse_armor",Count:1b,tag:{display:{color:0}}},Color:16760576,Frames:[20353,20354,20355],Scale:[7f,7f,0.1f],Transformation:{left_rotation:[0.478f,0.521f,0.596f,-0.38f],right_rotation:[0f,0f,0f,1f],translation:[0f,0f,0f]}} + data modify storage api: Argument.ID set value 2001 + execute rotated ~ ~ positioned ~ ~1.5 ~ positioned ^ ^ ^1.5 run function api:object/summon + +# ダメージ判定 + data modify storage api: Argument.Damage set value 45f +# 属性 + data modify storage api: Argument.AttackType set value "Physical" + data modify storage api: Argument.ElementType set value "None" +# 補正functionを実行 + function api:damage/modifier +# 対象 + execute positioned ^ ^ ^1.5 as @p[tag=!PlayerShouldInvulnerable,distance=..3] run function api:damage/ +# リセット + function api:damage/reset diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/dash_slash/slash/windup.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/dash_slash/slash/windup.mcfunction new file mode 100644 index 0000000000..0bac403f68 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/dash_slash/slash/windup.mcfunction @@ -0,0 +1,17 @@ +#> asset:mob/0372.tutankhamen/tick/skill/dash/dash_slash/slash/windup +# +# 斬撃前には構えるものだ +# +# @within function asset:mob/0372.tutankhamen/tick/skill/dash/dash_slash/ + +# アニメ + execute as @e[type=item_display,tag=AC.AJLink,distance=..16,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/attack_dash_1/tween {to_frame: 0, duration: 5} + +# プレイヤーのほうを向く + execute facing entity @p[distance=..16] feet run tp @s ~ ~ ~ ~ ~ + +# 演出 + playsound minecraft:item.trident.return hostile @a ~ ~ ~ 1 2 + playsound minecraft:entity.player.breath hostile @a ~ ~ ~ 1 1.5 + playsound minecraft:block.grindstone.use hostile @a ~ ~ ~ 1 1.5 + playsound minecraft:item.trident.return hostile @a ~ ~ ~ 1 2 diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/dash_slash/slash/windup_2.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/dash_slash/slash/windup_2.mcfunction new file mode 100644 index 0000000000..e8db94bf39 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/dash_slash/slash/windup_2.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0372.tutankhamen/tick/skill/dash/dash_slash/slash/windup_2 +# +# 予告その2 +# +# @within function asset:mob/0372.tutankhamen/tick/skill/dash/dash_slash/ + +# 演出 + playsound minecraft:item.trident.return hostile @a ~ ~ ~ 1 2 + playsound minecraft:block.grindstone.use hostile @a ~ ~ ~ 1 2 + playsound minecraft:item.trident.return hostile @a ~ ~ ~ 1 2 diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/side/.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/side/.mcfunction new file mode 100644 index 0000000000..631bf782bf --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/side/.mcfunction @@ -0,0 +1,40 @@ +#> asset:mob/0372.tutankhamen/tick/skill/dash/side/ +# +# +# +# @within function asset:mob/0372.tutankhamen/tick/skill_branch + +# ダッシュ開始 + execute if score @s[tag=AC.Dash.Left] General.Mob.Tick matches 0 run tp @s ~ ~ ~ ~-75 ~ + execute if score @s[tag=AC.Dash.Right] General.Mob.Tick matches 0 run tp @s ~ ~ ~ ~75 ~ + execute if score @s General.Mob.Tick matches 0 run function asset:mob/0372.tutankhamen/tick/skill/dash/start + +# ヘルス半減時はダッシュしながら弾を撒いてくる + execute if score @s[tag=AC.Health.50Per] General.Mob.Tick matches 0..15 run function asset:mob/0372.tutankhamen/tick/skill/dash/side/shoot/ + +# プレイヤーの方へ誘導する + execute if score @s General.Mob.Tick matches ..15 run function asset:mob/0372.tutankhamen/tick/skill/dash/side/move + +# ブレーキ + execute if score @s General.Mob.Tick matches 15 as @e[type=item_display,tag=AC.AJLink,distance=..16,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/dash_end/tween {to_frame: 0, duration: 5} + +# 本気時は謎キャンセルでダッシュにチェインする + # ノーマルモード + execute unless predicate api:global_vars/difficulty/min/hard if score @s[tag=AC.Health.50Per] General.Mob.Tick matches 25 unless score @s AC.Count.Dash matches 0.. run function asset:mob/0372.tutankhamen/tick/skill/dash/chain_dash + # ハードモード + execute if predicate api:global_vars/difficulty/min/hard if score @s[tag=AC.Health.50Per] General.Mob.Tick matches 15 unless score @s AC.Count.Dash matches 0.. run function asset:mob/0372.tutankhamen/tick/skill/dash/chain_dash + +# ブレーキかけつつプレイヤーの方を向く + execute if score @s General.Mob.Tick matches 15..30 facing entity @p[gamemode=!spectator] feet positioned ^ ^ ^-10 rotated as @s positioned ^ ^ ^-20 facing entity @s feet positioned as @s rotated ~ ~ run tp @s ^ ^ ^ ~ ~ + +# ウソ慣性 + execute if score @s General.Mob.Tick matches 15..20 unless function asset:mob/0372.tutankhamen/tick/skill/dash/check_collide run tp @s ^ ^ ^0.5 + execute if score @s General.Mob.Tick matches 20..25 unless function asset:mob/0372.tutankhamen/tick/skill/dash/check_collide run tp @s ^ ^ ^0.3 + execute if score @s General.Mob.Tick matches 25..30 unless function asset:mob/0372.tutankhamen/tick/skill/dash/check_collide run tp @s ^ ^ ^0.1 + +# ニュートラルに戻る + execute if score @s General.Mob.Tick matches 30 as @e[type=item_display,tag=AC.AJLink,distance=..16,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/neutral/tween {to_frame: 0, duration: 5} + execute if score @s General.Mob.Tick matches 30 run tp @s ~ ~ ~ ~ 0 + +# リセット + execute if score @s General.Mob.Tick matches 30.. run function asset:mob/0372.tutankhamen/tick/skill/reset diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/side/move.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/side/move.mcfunction new file mode 100644 index 0000000000..8067abc540 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/side/move.mcfunction @@ -0,0 +1,20 @@ +#> asset:mob/0372.tutankhamen/tick/skill/dash/side/move +# +# +# +# @within function asset:mob/0372.tutankhamen/tick/skill/dash/side/ + +# 壁チェック + execute at @s if function asset:mob/0372.tutankhamen/tick/skill/dash/check_collide run tp @s ~ ~ ~ ~ 0 + execute at @s if function asset:mob/0372.tutankhamen/tick/skill/dash/check_collide run scoreboard players set @s General.Mob.Tick 30 + +# 横に移動 + execute facing entity @p[gamemode=!spectator,distance=..64] feet positioned ^ ^ ^-10 rotated as @s positioned ^ ^ ^-150 facing entity @s feet positioned as @s rotated ~ ~ run tp @s ^ ^ ^1 ~ ~ + +# 実行時間を移す + scoreboard players operation $Interval Temporary = @s General.Mob.Tick + +# 数Tickごとにサウンド + scoreboard players operation $Interval Temporary %= $2 Const + execute if score $Interval Temporary matches 0 run playsound minecraft:entity.breeze.slide hostile @a ~ ~ ~ 2 1.5 + scoreboard players reset $Interval Temporary diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/side/shoot/.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/side/shoot/.mcfunction new file mode 100644 index 0000000000..3d189860bb --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/side/shoot/.mcfunction @@ -0,0 +1,17 @@ +#> asset:mob/0372.tutankhamen/tick/skill/dash/side/shoot/ +# +# +# +# @within function asset:mob/0372.tutankhamen/tick/skill/dash/side/ + +#> 攻撃のインターバルのスコアホルダー +# @private + #declare score_holder $AttackInterval + +# 実行時間を移す + scoreboard players operation $AttackInterval Temporary = @s General.Mob.Tick + +# 数Tickごとにサウンド + scoreboard players operation $AttackInterval Temporary %= $4 Const + execute if score $AttackInterval Temporary matches 0 run function asset:mob/0372.tutankhamen/tick/skill/dash/side/shoot/summon + scoreboard players reset $AttackInterval Temporary diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/side/shoot/summon.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/side/shoot/summon.mcfunction new file mode 100644 index 0000000000..082ad59cf2 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/side/shoot/summon.mcfunction @@ -0,0 +1,16 @@ +#> asset:mob/0372.tutankhamen/tick/skill/dash/side/shoot/summon +# +# +# +# @within function asset:mob/0372.tutankhamen/tick/skill/dash/side/shoot/ + +# データ設定 + execute store result storage api: Argument.FieldOverride.Damage int 1 run data get storage asset:context this.Damage.ManyShoot + data modify storage api: Argument.FieldOverride.StartDelay set value 40 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + execute store result storage api: Argument.FieldOverride.TargetID int 1 run scoreboard players get @r[distance=..64] UserID + +# 召喚 + data modify storage api: Argument.ID set value 2092 + execute positioned ~ ~2 ~ run function api:object/summon + execute positioned ~ ~2 ~ run particle soul_fire_flame ~ ~ ~ 0.1 0.1 0.1 0.05 10 force @a[distance=..32] diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/start.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/start.mcfunction new file mode 100644 index 0000000000..7ef21ceed5 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/dash/start.mcfunction @@ -0,0 +1,14 @@ +#> asset:mob/0372.tutankhamen/tick/skill/dash/start +# +# 共通ダッシュ開始モーション +# +# @within function asset:mob/0372.tutankhamen/tick/skill/dash/** + +# アニメ開始 + execute as @e[type=item_display,tag=AC.AJLink,distance=..0.01,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/dash/tween {to_frame: 0, duration: 1} + +# 演出 + playsound minecraft:entity.wither.shoot hostile @a ~ ~ ~ 1 1.7 + playsound minecraft:entity.breeze.shoot hostile @a ~ ~ ~ 2 1 + particle minecraft:crit ~ ~ ~ 0 0 0 1 25 + particle minecraft:poof ~ ~ ~ 0 0 0 0.3 50 diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/hyper_laser/.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/hyper_laser/.mcfunction new file mode 100644 index 0000000000..dee8587273 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/hyper_laser/.mcfunction @@ -0,0 +1,39 @@ +#> asset:mob/0372.tutankhamen/tick/skill/hyper_laser/ +# +# ハイパーレーザー。「ソウルストリーム」って名前付けたら怒られるかな? +# +# @within function asset:mob/0372.tutankhamen/tick/skill_branch + +# 構え開始 + execute if score @s General.Mob.Tick matches 0 run function asset:mob/0372.tutankhamen/tick/skill/hyper_laser/windup + +# 杖振り下ろしたときの演出 + execute if score @s General.Mob.Tick matches 23 run playsound item.trident.throw hostile @a ~ ~3 ~ 2 0.7 + execute if score @s General.Mob.Tick matches 23 at @e[type=marker,tag=AC.ModelLocator.Weapon] run particle crit ~ ~ ~ 0 0 0 0.5 25 + +# 降りる + execute if score @s General.Mob.Tick matches 0..20 if block ~ ~-0.1 ~ #lib:no_collision if function asset:mob/0372.tutankhamen/tick/skill/hyper_laser/check_ground run tp @s ~ ~-0.1 ~ + +# プレイヤーの方を向く + execute if score @s General.Mob.Tick matches 0..20 facing entity @p[gamemode=!spectator] feet positioned ^ ^ ^-10 rotated as @s positioned ^ ^ ^-40 facing entity @s feet positioned as @s rotated ~ 0 run tp @s ^ ^ ^ ~ ~ + +# ビームループ + execute if score @s General.Mob.Tick matches 26 as @e[type=item_display,tag=AC.AJLink,distance=..0.01,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/attack_laser_loop/tween {to_frame:0, duration:1} + +# 前方に魔法陣を召喚、体力半減で増える + execute if score @s General.Mob.Tick matches 20 anchored eyes positioned ^ ^-0.5 ^2.5 run function asset:mob/0372.tutankhamen/tick/skill/hyper_laser/summon_square + execute if score @s General.Mob.Tick matches 25 anchored eyes positioned ^7 ^-0.5 ^2.5 run function asset:mob/0372.tutankhamen/tick/skill/hyper_laser/summon_square + execute if score @s General.Mob.Tick matches 25 anchored eyes positioned ^-7 ^-0.5 ^2.5 run function asset:mob/0372.tutankhamen/tick/skill/hyper_laser/summon_square + execute if score @s[tag=AC.Health.50Per] General.Mob.Tick matches 30 anchored eyes positioned ^14 ^-0.5 ^2.5 run function asset:mob/0372.tutankhamen/tick/skill/hyper_laser/summon_square + execute if score @s[tag=AC.Health.50Per] General.Mob.Tick matches 30 anchored eyes positioned ^-14 ^-0.5 ^2.5 run function asset:mob/0372.tutankhamen/tick/skill/hyper_laser/summon_square + execute if score @s[tag=AC.Health.50Per] General.Mob.Tick matches 35 anchored eyes positioned ^21 ^-0.5 ^2.5 run function asset:mob/0372.tutankhamen/tick/skill/hyper_laser/summon_square + execute if score @s[tag=AC.Health.50Per] General.Mob.Tick matches 35 anchored eyes positioned ^-21 ^-0.5 ^2.5 run function asset:mob/0372.tutankhamen/tick/skill/hyper_laser/summon_square + +# 発射モーション(32tick) + execute if score @s General.Mob.Tick matches 55 as @e[type=item_display,tag=AC.AJLink,distance=..0.01,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/attack_laser_end/tween {to_frame:0, duration:1} + +# 杖解除演出 + execute if score @s General.Mob.Tick matches 55 run playsound item.trident.throw hostile @a ~ ~3 ~ 2 1 + +# 共通リセット処理 + execute if score @s General.Mob.Tick matches 87 run function asset:mob/0372.tutankhamen/tick/skill/reset diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/hyper_laser/check_ground.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/hyper_laser/check_ground.mcfunction new file mode 100644 index 0000000000..abfe58084b --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/hyper_laser/check_ground.mcfunction @@ -0,0 +1,11 @@ +#> asset:mob/0372.tutankhamen/tick/skill/hyper_laser/check_ground +# +# 地面チェック +# +# @within function +# asset:mob/0372.tutankhamen/tick/skill/hyper_laser/ +# asset:mob/0372.tutankhamen/tick/skill/hyper_laser/check_ground + +execute unless entity @s[distance=..10] run return fail +execute unless block ~ ~ ~ #lib:no_collision run return 1 +execute if block ~ ~ ~ #lib:no_collision positioned ~ ~-1 ~ run return run function asset:mob/0372.tutankhamen/tick/skill/hyper_laser/check_ground diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/hyper_laser/summon_square.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/hyper_laser/summon_square.mcfunction new file mode 100644 index 0000000000..846af0d717 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/hyper_laser/summon_square.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0372.tutankhamen/tick/skill/hyper_laser/summon_square +# +# +# +# @within function asset:mob/0372.tutankhamen/tick/skill/hyper_laser/ + +# データ指定 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + data modify storage api: Argument.FieldOverride.Rotation set from entity @s Rotation + +# 召喚 + data modify storage api: Argument.ID set value 2091 + function api:object/summon diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/hyper_laser/vfx.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/hyper_laser/vfx.mcfunction new file mode 100644 index 0000000000..54992cf6ee --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/hyper_laser/vfx.mcfunction @@ -0,0 +1,285 @@ +#> asset:mob/0372.tutankhamen/tick/skill/hyper_laser/vfx +# +# +# +# @within function asset:mob/0372.tutankhamen/tick/skill/hyper_laser/shoot + +# [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkmAIwAcAbAKz0CG1ADALSUBG9A7OwBZeAMwHsAnClZiUpJrXH04KLtNpgCAOyYBbBMkBhigAJKGsDCYZdAZyTgUAe0KaISAEzUCKOC7gY7YABuTNiE+uAAHkisBFDRAL7xBFakaIS2iG4AdG4E1hCWrogxYHDY2Ggw1vqUrCUYDgUQ+iVo1gCi5ZXV7QCOhCHYUADKFt7kiMIh1Yl44NDwFDAOQwDmDppmxGQUAkzCwpSUbmLipJSkgrSU9OzUcHBiAtRsJ1y0cNS8rGbaehSALE1AEuRgCN9ExmCxWHQZexOFxITyoHzNfyIcDBULhMBRYqxBJJMApNIZShZRH5QpIWglMoVKo1OrJRpMZrRLwODCaPxIADMBAAVoQdDAkJQCFw4AAvNDc3FgNqdOk9fqDEZjOATKbYaoENoAISlMowfQG5TVTHGSC1M3iAF0gA_3 +# 多角形 1 +particle soul_fire_flame ^1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0 ^1.8 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0 ^-0.9 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000005 0 normal @a +# 円 1 +particle soul_fire_flame ^0 ^-2.2 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^2.2 ^0 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0 ^2.2 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-2.2 ^0 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000005 0 normal @a + +# [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkmAIwAcAbAKz0CG1ADALSUBG9A7OwBZeAMwHsAnClZiUpJrXH04KLtNpgCAOyYBbBMkBhigAJKGsDCYZdAZyTgUAe0KaISAEzUCKOC7gY7YABuTNiE+uAAHkisBFDRAL7xBFakaIS2iG4AdG4E1hCWrogxYHDY2Ggw1vqUrCUYDgUQ+iVo1gCi5ZXV7QCOhCHYUADKFt7kiMIh1Yl44NDwFDAOQwDmDppmxGQUAkzCwpSUbmLipJSkgrSU9OzUcHBiAtRsJ1y0cNS8rGbaehSALE1AEuRgCN9ExmCxWHQZexOFxITyoHzNfyIcDBULhMBRYqxBJJMApNIZShZRH5QpIWglMoVKo1OrJRpMZrRLwODCaPxIADMBAAVoQdDAkJQCFw4AAvNDc3FgNqdOk9fqDEZjOATKbYaoENoAISlMowfQG5TVTHGSC1M3iAF0gA_3 +# 多角形 1 +particle soul_fire_flame ^1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0 ^1.8 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0 ^-0.9 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000010 0 normal @a +# 円 1 +particle soul_fire_flame ^0 ^-2.2 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^2.2 ^0 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0 ^2.2 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-2.2 ^0 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000010 0 normal @a + +# [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkmAIwAcAbAKz0CG1ADALSUBG9A7OwBZeAMwHsAnClZiUpJrXH04KLtNpgCAOyYBbBMkBhigAJKGsDCYZdAZyTgUAe0KaISAEzUCKOC7gY7YABuTNiE+uAAHkisBFDRAL7xBFakaIS2iG4AdG4E1hCWrogxYHDY2Ggw1vqUrCUYDgUQ+iVo1gCi5ZXV7QCOhCHYUADKFt7kiMIh1Yl44NDwFDAOQwDmDppmxGQUAkzCwpSUbmLipJSkgrSU9OzUcHBiAtRsJ1y0cNS8rGbaehSALE1AEuRgCN9ExmCxWHQZexOFxITyoHzNfyIcDBULhMBRYqxBJJMApNIZShZRH5QpIWglMoVKo1OrJRpMZrRLwODCaPxIADMBAAVoQdDAkJQCFw4AAvNDc3FgNqdOk9fqDEZjOATKbYaoENoAISlMowfQG5TVTHGSC1M3iAF0gA_3 +# 多角形 1 +particle soul_fire_flame ^1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0 ^1.8 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0 ^-0.9 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000015 0 normal @a +# 円 1 +particle soul_fire_flame ^0 ^-2.2 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^2.2 ^0 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0 ^2.2 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-2.2 ^0 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000015 0 normal @a + +# [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkmAIwAcAbAKz0CG1ADALSUBG9A7OwBZeAMwHsAnClZiUpJrXH04KLtNpgCAOyYBbBMkBhigAJKGsDCYZdAZyTgUAe0KaISAEzUCKOC7gY7YABuTNiE+uAAHkisBFDRAL7xBFakaIS2iG4AdG4E1hCWrogxYHDY2Ggw1vqUrCUYDgUQ+iVo1gCi5ZXV7QCOhCHYUADKFt7kiMIh1Yl44NDwFDAOQwDmDppmxGQUAkzCwpSUbmLipJSkgrSU9OzUcHBiAtRsJ1y0cNS8rGbaehSALE1AEuRgCN9ExmCxWHQZexOFxITyoHzNfyIcDBULhMBRYqxBJJMApNIZShZRH5QpIWglMoVKo1OrJRpMZrRLwODCaPxIADMBAAVoQdDAkJQCFw4AAvNDc3FgNqdOk9fqDEZjOATKbYaoENoAISlMowfQG5TVTHGSC1M3iAF0gA_3 +# 多角形 1 +particle soul_fire_flame ^1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0 ^1.8 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0 ^-0.9 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000020 0 normal @a +# 円 1 +particle soul_fire_flame ^0 ^-2.2 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^2.2 ^0 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0 ^2.2 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-2.2 ^0 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000020 0 normal @a + +# [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkmAIwAcAbAKz0CG1ADALSUBG9A7OwBZeAMwHsAnClZiUpJrXH04KLtNpgCAOyYBbBMkBhigAJKGsDCYZdAZyTgUAe0KaISAEzUCKOC7gY7YABuTNiE+uAAHkisBFDRAL7xBFakaIS2iG4AdG4E1hCWrogxYHDY2Ggw1vqUrCUYDgUQ+iVo1gCi5ZXV7QCOhCHYUADKFt7kiMIh1Yl44NDwFDAOQwDmDppmxGQUAkzCwpSUbmLipJSkgrSU9OzUcHBiAtRsJ1y0cNS8rGbaehSALE1AEuRgCN9ExmCxWHQZexOFxITyoHzNfyIcDBULhMBRYqxBJJMApNIZShZRH5QpIWglMoVKo1OrJRpMZrRLwODCaPxIADMBAAVoQdDAkJQCFw4AAvNDc3FgNqdOk9fqDEZjOATKbYaoENoAISlMowfQG5TVTHGSC1M3iAF0gA_3 +# 多角形 1 +particle soul_fire_flame ^1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0 ^1.8 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0 ^-0.9 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000025 0 normal @a +# 円 1 +particle soul_fire_flame ^0 ^-2.2 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^2.2 ^0 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0 ^2.2 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-2.2 ^0 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000025 0 normal @a diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/hyper_laser/windup.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/hyper_laser/windup.mcfunction new file mode 100644 index 0000000000..7b534f554c --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/hyper_laser/windup.mcfunction @@ -0,0 +1,14 @@ +#> asset:mob/0372.tutankhamen/tick/skill/hyper_laser/windup +# +# +# +# @within function asset:mob/0372.tutankhamen/tick/skill/hyper_laser/ + +# アニメ再生 + execute as @e[type=item_display,tag=AC.AJLink,distance=..0.01,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/attack_laser_windup/tween {to_frame:0, duration:10} + +# 演出 + playsound minecraft:item.trident.return hostile @a ~ ~ ~ 1 2 + playsound minecraft:entity.player.breath hostile @a ~ ~ ~ 1 1 + playsound minecraft:block.grindstone.use hostile @a ~ ~ ~ 1 1.5 + playsound minecraft:item.trident.return hostile @a ~ ~ ~ 1 2 diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/laser/.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/laser/.mcfunction new file mode 100644 index 0000000000..ae187886dc --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/laser/.mcfunction @@ -0,0 +1,40 @@ +#> asset:mob/0372.tutankhamen/tick/skill/laser/ +# +# こっちにエイムを合わせながらのレーザー連射 +# +# @within function asset:mob/0372.tutankhamen/tick/skill_branch + +# AJの開始アニメーション + execute if score @s General.Mob.Tick matches 0 run function asset:mob/0372.tutankhamen/tick/skill/laser/windup + +# 演出 + execute if score @s General.Mob.Tick matches 4 run playsound minecraft:item.trident.return hostile @a ~ ~ ~ 2 0.7 + execute if score @s General.Mob.Tick matches 8 run playsound minecraft:item.trident.return hostile @a ~ ~ ~ 2 1 + +# ビーム開始 + execute if score @s General.Mob.Tick matches 23 as @e[type=item_display,tag=AC.AJLink,distance=..0.01,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/attack_laser_2_loop/tween {to_frame:0, duration:1} + +# 対象に対して追従 + execute if score @s General.Mob.Tick matches 0..100 run function asset:mob/0372.tutankhamen/tick/skill/laser/facing_target.m with storage asset:context this + +# 予告 + execute if score @s General.Mob.Tick matches 23..63 at @e[type=marker,tag=AC.ModelLocator.Weapon,distance=..8,sort=nearest,limit=1] rotated as @s run function asset:mob/0372.tutankhamen/tick/skill/laser/alert + +# 数Tickごとにレーザー + scoreboard players operation $Interval Temporary = @s General.Mob.Tick + scoreboard players operation $Interval Temporary %= $3 Const + execute if score $Interval Temporary matches 0 if score @s General.Mob.Tick matches 63..100 at @e[type=marker,tag=AC.ModelLocator.Weapon,distance=..8,sort=nearest,limit=1] rotated as @s positioned ^ ^ ^-2 run function asset:mob/0372.tutankhamen/tick/skill/laser/shoot/ + +# ビーム終了アニメ、ついでにまっすぐ前を向く + execute if score @s General.Mob.Tick matches 100 run tp @s ~ ~ ~ ~ 0 + execute if score @s General.Mob.Tick matches 100 as @e[type=item_display,tag=AC.AJLink,distance=..0.01,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/attack_laser_2_end/tween {to_frame:0, duration:1} + +# 演出 + execute if score @s General.Mob.Tick matches 105 run playsound item.trident.riptide_1 hostile @a ~ ~ ~ 2 1 + execute if score @s General.Mob.Tick matches 110 run playsound item.trident.riptide_1 hostile @a ~ ~ ~ 2 1.5 + +# ニュートラルポーズへと + execute if score @s General.Mob.Tick matches 120 as @e[type=item_display,tag=AC.AJLink,distance=..0.01,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/neutral/tween {to_frame:0, duration:10} + +# リセット + execute if score @s General.Mob.Tick matches 140 run function asset:mob/0372.tutankhamen/tick/skill/reset diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/laser/alert.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/laser/alert.mcfunction new file mode 100644 index 0000000000..413bb65a89 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/laser/alert.mcfunction @@ -0,0 +1,15 @@ +#> asset:mob/0372.tutankhamen/tick/skill/laser/alert +# +# +# +# @within function +# asset:mob/0372.tutankhamen/tick/skill/laser/ +# asset:mob/0372.tutankhamen/tick/skill/laser/alert + +# パーティクル + particle minecraft:dust 0 1 1 0.5 ^ ^ ^ 0 0 0 0 1 force @a[distance=..32] + particle minecraft:dust 0.3 1 1 0.5 ^ ^ ^0.5 0 0 0 0 1 force @a[distance=..32] + particle minecraft:dust 0.7 1 1 0.5 ^ ^ ^-0.5 0 0 0 0 1 force @a[distance=..32] + +# 自身が範囲内なら再帰。壁貫通攻撃である。 + execute if entity @s[distance=..32] positioned ^ ^ ^1 run function asset:mob/0372.tutankhamen/tick/skill/laser/alert diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/laser/facing_target.m.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/laser/facing_target.m.mcfunction new file mode 100644 index 0000000000..a1f00399b6 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/laser/facing_target.m.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0372.tutankhamen/tick/skill/laser/facing_target.m +# +# ターゲットの方を向く +# +# @input args: +# TargetName : String +# @within function asset:mob/0372.tutankhamen/tick/skill/laser/ + +# ホーミング + $execute facing entity $(TargetName) feet positioned ^ ^ ^-10 rotated as @s positioned ^ ^ ^-60 facing entity @s feet positioned as @s rotated ~ ~ run tp @s ^ ^ ^ ~ ~ diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/laser/shoot/.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/laser/shoot/.mcfunction new file mode 100644 index 0000000000..397c47d7ba --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/laser/shoot/.mcfunction @@ -0,0 +1,27 @@ +#> asset:mob/0372.tutankhamen/tick/skill/laser/shoot/ +# +# 拡散レーザー部分 +# +# @within function asset:mob/0372.tutankhamen/tick/skill/laser/ + +#> SpreadLib +# @private +#declare tag SpreadMarker + +# 演出 + execute positioned ^ ^ ^1 run playsound ogg:block.respawn_anchor.deplete1 player @a ~ ~ ~ 1.5 2 + execute positioned ^ ^ ^1 run playsound tsb_sounds:blaster1 player @a ~ ~ ~ 1.5 2 + #execute positioned ^ ^ ^1 run playsound minecraft:entity.allay.hurt player @a ~ ~ ~ 1 2 + +# 拡散させて、前方のランダムな位置からレーザーが飛ぶ。ブレイブロッド。 + # 拡散させるEntityを召喚する + summon marker ~ ~ ~ {Tags:["SpreadMarker"]} + # ステータス設定 + data modify storage lib: Argument.Distance set value 1.0 + data modify storage lib: Argument.Spread set value 1.0 + # 拡散 + execute as @e[type=marker,tag=SpreadMarker,limit=1] run function lib:forward_spreader/circle + # その位置から実行 + execute at @e[type=marker,tag=SpreadMarker,limit=1] rotated as @s run function asset:mob/0372.tutankhamen/tick/skill/laser/shoot/summon + # リセット + kill @e[type=marker,tag=SpreadMarker] diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/laser/shoot/summon.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/laser/shoot/summon.mcfunction new file mode 100644 index 0000000000..671a79b7bb --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/laser/shoot/summon.mcfunction @@ -0,0 +1,36 @@ +#> asset:mob/0372.tutankhamen/tick/skill/laser/shoot/summon +# +# オブジェクト召喚部分 +# +# @within function asset:mob/0372.tutankhamen/tick/skill/laser/shoot/ + +# オブジェクト召喚 + data modify storage api: Argument.ID set value 2168 + data modify storage api: Argument.FieldOverride set value {Scale:[0.25f,60f,0.25f],Color:65535,DisappearInterpolation:2,LifeTime:10} + function api:object/summon + +# パーティクル + particle dust 0 1 1 1 ~ ~ ~ 0.1 0.1 0.1 1 10 + particle soul_fire_flame ~ ~ ~ 0.1 0.1 0.1 0.05 1 + +# 立方体範囲内のプレイヤーにtag付け + data modify storage lib: args.dx set value 0.5 + data modify storage lib: args.dy set value 1.5 + data modify storage lib: args.dz set value 60.0 + data modify storage lib: args.selector set value "@a[tag=!PlayerShouldInvulnerable,distance=..64]" + execute positioned ^ ^-1 ^30 run function lib:rotatable_dxyz/m with storage lib: args + +# ダメージを与える + # データ設定 + data modify storage api: Argument.Damage set value 20.0f + data modify storage api: Argument.AttackType set value "Magic" + data modify storage api: Argument.ElementType set value "None" + # tag付けされたプレイヤーにダメージを与える + function api:damage/modifier + execute as @a[tag=DXYZ,distance=..64] run function api:damage/ + +# リセット + function api:damage/reset + +# tagリセット + tag @a[tag=DXYZ,distance=..64] remove DXYZ diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/laser/windup.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/laser/windup.mcfunction new file mode 100644 index 0000000000..3aca912bc3 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/laser/windup.mcfunction @@ -0,0 +1,12 @@ +#> asset:mob/0372.tutankhamen/tick/skill/laser/windup +# +# 予備動作とか +# +# @within function asset:mob/0372.tutankhamen/tick/skill/laser/ + +# AJの開始アニメーション + execute as @e[type=item_display,tag=AC.AJLink,distance=..0.01,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/attack_laser_2_windup/tween {to_frame:0, duration:5} + +# 狙うプレイヤーを決定しフィールドに放り込む + execute as @r[gamemode=!spectator,distance=..32] run function lib:get_name/ + data modify storage asset:context this.TargetName set from storage lib: Return.Name diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/many_shoot/.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/many_shoot/.mcfunction new file mode 100644 index 0000000000..54b3cb9593 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/many_shoot/.mcfunction @@ -0,0 +1,35 @@ +#> asset:mob/0372.tutankhamen/tick/skill/many_shoot/ +# +# 沢山球を撃つ +# +# @within function asset:mob/0372.tutankhamen/tick/skill_branch + +# AJ + execute if score @s General.Mob.Tick matches 0 as @e[type=item_display,tag=AC.AJLink,distance=..0.01,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/soul_shot/tween {to_frame:5 ,duration:5} + +# 演出 + execute if score @s General.Mob.Tick matches 15..35 run particle dust 0 0.7 0.7 1 ~ ~3 ~ 1 0 1 0 5 + execute if score @s General.Mob.Tick matches 15 run playsound item.trident.riptide_1 hostile @a ~ ~3 ~ 2 0.8 + execute if score @s General.Mob.Tick matches 25 run playsound item.trident.riptide_1 hostile @a ~ ~3 ~ 2 1.0 + execute if score @s General.Mob.Tick matches 35 run playsound item.trident.riptide_1 hostile @a ~ ~3 ~ 2 1.2 + +# 攻撃開始 + execute if score @s General.Mob.Tick matches 60 run function asset:mob/0372.tutankhamen/tick/skill/many_shoot/start + +# ターゲット選定 + function asset:mob/0372.tutankhamen/tick/skill/common/select_target + +# ターゲットの方を向き続ける + execute at @a[distance=..100] if score @s AC.TargetID = @p UserID run tag @p add Target + execute facing entity @p[tag=Target] eyes rotated ~ 0 run tp @s ~ ~ ~ ~ ~ + tp @e[type=item_display,tag=AC.AJLink,distance=..0.01,sort=nearest,limit=1] ~ ~ ~ ~ ~ + tag @p[tag=Target] remove Target + +# 一定間隔で拡散して召喚 + scoreboard players operation $Interval Temporary = @s General.Mob.Tick + scoreboard players operation $Interval Temporary %= $4 Const + execute if score @s General.Mob.Tick matches 15..59 if score $Interval Temporary matches 0 rotated ~ 0 positioned ^ ^3 ^ summon marker run function asset:mob/0372.tutankhamen/tick/skill/many_shoot/spread + scoreboard players reset $Interval Temporary + +# 共通リセット処理 + execute if score @s General.Mob.Tick matches 80 run function asset:mob/0372.tutankhamen/tick/skill/reset diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/many_shoot/spread.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/many_shoot/spread.mcfunction new file mode 100644 index 0000000000..5cc8426110 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/many_shoot/spread.mcfunction @@ -0,0 +1,18 @@ +#> asset:mob/0372.tutankhamen/tick/skill/many_shoot/spread +# +# 拡散して召喚する +# +# @within function asset:mob/0372.tutankhamen/tick/skill/many_shoot/ + +#> SpreadLib +# @private + #declare tag SpreadMarker + +# 拡散 + summon marker ~ ~ ~ {Tags:["SpreadMarker"]} + data modify storage lib: Argument.Bounds set value [[3.5d,3.5d],[0.3d,0d],[3.5d,3.5d]] + execute as @e[type=marker,tag=SpreadMarker,distance=..0.01,limit=1] at @s run function lib:spread_entity/ + execute at @e[type=marker,tag=SpreadMarker,distance=..20,limit=1] summon marker run function asset:mob/0372.tutankhamen/tick/skill/many_shoot/summon + +# リセット + kill @e[type=marker,tag=SpreadMarker] diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/many_shoot/start.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/many_shoot/start.mcfunction new file mode 100644 index 0000000000..20a83fc8e9 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/many_shoot/start.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0372.tutankhamen/tick/skill/many_shoot/start +# +# 攻撃開始 +# +# @within function asset:mob/0372.tutankhamen/tick/skill/many_shoot/ + +playsound item.trident.throw hostile @a ~ ~3 ~ 2 0.7 +execute at @e[type=marker,tag=AC.ModelLocator.Weapon] run particle crit ~ ~ ~ 0 0 0 0.5 25 diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/many_shoot/summon.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/many_shoot/summon.mcfunction new file mode 100644 index 0000000000..2c4a3a25b5 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/many_shoot/summon.mcfunction @@ -0,0 +1,40 @@ +#> asset:mob/0372.tutankhamen/tick/skill/many_shoot/summon +# +# 魔法陣を召喚 +# +# @within function asset:mob/0372.tutankhamen/tick/skill/many_shoot/spread + +#> Private +# @private + #declare score_holder $StartDelay + +# プレイヤーの方を向く + tp @s ~ ~ ~ facing entity @p[distance=..100] eyes + +# StartDelayを調整 + scoreboard players set $StartDelay Temporary 49 + +# 発射タイミングをある程度一定にする + scoreboard players operation $StartDelay Temporary -= @s General.Mob.Tick + +# 発射タイミングのランダム性 + execute store result score $Random Temporary run function lib:random/ + scoreboard players operation $Random Temporary %= $10 Const + scoreboard players remove $Random Temporary 20 + scoreboard players operation $StartDelay Temporary += $Random Temporary + +# 召喚 + data modify storage api: Argument.ID set value 2092 + data modify storage api: Argument.FieldOverride.Rotation set from entity @s Rotation + execute store result storage api: Argument.FieldOverride.Damage int 1 run data get storage asset:context this.Damage.ManyShoot + execute store result storage api: Argument.FieldOverride.StartDelay int 1 run scoreboard players get $StartDelay Temporary + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @e[type=wither_skeleton,tag=this,distance=..10,sort=nearest,limit=1] MobUUID + execute store result storage api: Argument.FieldOverride.TargetID int 1 run scoreboard players get @e[type=wither_skeleton,tag=this,distance=..10,sort=nearest,limit=1] AC.TargetID + function api:object/summon + +# リセット + scoreboard players reset $StartDelay Temporary + scoreboard players reset $Random Temporary + +# 消滅 + kill @s diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/opening/.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/opening/.mcfunction new file mode 100644 index 0000000000..db73215043 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/opening/.mcfunction @@ -0,0 +1,12 @@ +#> asset:mob/0372.tutankhamen/tick/skill/opening/ +# +# 開幕演出の処理 +# +# @within function asset:mob/0372.tutankhamen/tick/skill_branch + +# AJ処理 + execute if entity @s[scores={General.Mob.Tick=0}] as @e[type=item_display,tag=AC.AJLink,distance=..0.01,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/neutral/stop + execute if entity @s[scores={General.Mob.Tick=0}] as @e[type=item_display,tag=AC.AJLink,distance=..0.01,sort=nearest,limit=1] run function animated_java:tutankhamen/animations/spawn/play + +# 共通リセット処理 + execute if entity @s[scores={General.Mob.Tick=59..}] run function asset:mob/0372.tutankhamen/tick/skill/reset diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/reset.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/reset.mcfunction new file mode 100644 index 0000000000..65f12b4b8b --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill/reset.mcfunction @@ -0,0 +1,28 @@ +#> asset:mob/0372.tutankhamen/tick/skill/reset +# +# +# +# @within function +# asset:mob/0372.tutankhamen/tick/skill/** +# asset:mob/0372.tutankhamen/hurt/active_50per + +# スコアをセット + scoreboard players set @s General.Mob.Tick -10 + +# リセット + scoreboard players reset @s AC.Count.Dash + +# Tagを削除 + tag @s remove AC.Opening + tag @s remove AC.Laser + tag @s remove AC.ManyShoot + tag @s remove AC.HyperLaser + tag @s remove AC.Coffin + + tag @s remove AC.Dash.Left + tag @s remove AC.Dash.Right + tag @s remove AC.Dash.Side + tag @s remove AC.Dash.Slash + tag @s remove AC.Dash.Charge + + tag @s remove AC.InAction diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill_branch.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill_branch.mcfunction new file mode 100644 index 0000000000..5579895a6e --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill_branch.mcfunction @@ -0,0 +1,28 @@ +#> asset:mob/0372.tutankhamen/tick/skill_branch +# +# +# +# @within function asset:mob/0372.tutankhamen/tick/ + +# 開幕演出 + execute if entity @s[tag=AC.Opening] run function asset:mob/0372.tutankhamen/tick/skill/opening/ + +# レーザー + execute if entity @s[tag=AC.Laser] run function asset:mob/0372.tutankhamen/tick/skill/laser/ + +# いっぱい撃つ + execute if entity @s[tag=AC.ManyShoot] run function asset:mob/0372.tutankhamen/tick/skill/many_shoot/ + +# ハイパーレーザー + execute if entity @s[tag=AC.HyperLaser] run function asset:mob/0372.tutankhamen/tick/skill/hyper_laser/ + +# 棺召喚 + execute if entity @s[tag=AC.Coffin] run function asset:mob/0372.tutankhamen/tick/skill/coffin/ + +# ダッシュ + # サイドダッシュ + execute if entity @s[tag=AC.Dash.Side] run function asset:mob/0372.tutankhamen/tick/skill/dash/side/ + # ダッシュスラッシュ + execute if entity @s[tag=AC.Dash.Slash] run function asset:mob/0372.tutankhamen/tick/skill/dash/dash_slash/ + # ファラオ・ぶちかまし + execute if entity @s[tag=AC.Dash.Charge] run function asset:mob/0372.tutankhamen/tick/skill/dash/charge/ diff --git a/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill_select.mcfunction b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill_select.mcfunction new file mode 100644 index 0000000000..77e21a0c37 --- /dev/null +++ b/Asset/data/asset/functions/mob/0372.tutankhamen/tick/skill_select.mcfunction @@ -0,0 +1,31 @@ +#> asset:mob/0372.tutankhamen/tick/skill_select +# +# スキルを選択する +# +# @within function asset:mob/0372.tutankhamen/tick/ + +#> private +# @private + #declare score_holder $Random + +# 行動中扱いにする + tag @s add AC.InAction + +# 乱数によるスキル選択 + data modify storage lib: Args.key set value "0372.Skill" + data modify storage lib: Args.max set value 4 + data modify storage lib: Args.scarcity_history_size set value 3 + execute store result score $Random Temporary run function lib:random/with_biased/manual.m with storage lib: Args + +# デバッグのコマンド +# scoreboard players set $Random Temporary 3 + +# スキル選択 + execute if score $Random Temporary matches 0 run tag @s add AC.Laser + execute if score $Random Temporary matches 1 run tag @s add AC.ManyShoot + execute if score $Random Temporary matches 2 run tag @s add AC.HyperLaser + execute if score $Random Temporary matches 3 run tag @s add AC.Coffin + +# リセット + scoreboard players reset $Random Temporary + tag @s remove AC.DashUsed diff --git a/Asset/data/asset/functions/mob/0373.gold_coffin/_index.d.mcfunction b/Asset/data/asset/functions/mob/0373.gold_coffin/_index.d.mcfunction new file mode 100644 index 0000000000..f369f0a325 --- /dev/null +++ b/Asset/data/asset/functions/mob/0373.gold_coffin/_index.d.mcfunction @@ -0,0 +1,6 @@ +#> asset:mob/0373.gold_coffin/_index.d +# @private + +#> tag +# @within function asset:mob/0373.gold_coffin/** + #declare tag diff --git a/Asset/data/asset/functions/mob/0373.gold_coffin/death/.mcfunction b/Asset/data/asset/functions/mob/0373.gold_coffin/death/.mcfunction new file mode 100644 index 0000000000..34be8e191d --- /dev/null +++ b/Asset/data/asset/functions/mob/0373.gold_coffin/death/.mcfunction @@ -0,0 +1,5 @@ +#> asset:mob/0373.gold_coffin/death/ +# +# Mobの死亡時の処理 +# +# @within function asset:mob/alias/373/death diff --git a/Asset/data/asset/functions/mob/0373.gold_coffin/init/.mcfunction b/Asset/data/asset/functions/mob/0373.gold_coffin/init/.mcfunction new file mode 100644 index 0000000000..d63b065503 --- /dev/null +++ b/Asset/data/asset/functions/mob/0373.gold_coffin/init/.mcfunction @@ -0,0 +1,5 @@ +#> asset:mob/0373.gold_coffin/init/ +# +# Mobのinit時の処理 +# +# @within asset:mob/alias/373/init diff --git a/Asset/data/asset/functions/mob/0373.gold_coffin/register.mcfunction b/Asset/data/asset/functions/mob/0373.gold_coffin/register.mcfunction new file mode 100644 index 0000000000..dbce0d4c57 --- /dev/null +++ b/Asset/data/asset/functions/mob/0373.gold_coffin/register.mcfunction @@ -0,0 +1,65 @@ +#> asset:mob/0373.gold_coffin/register +# +# Mobのデータを指定 +# +# @within function asset:mob/alias/373/register + +# 他のモブに継承されることを許可するか (boolean) (オプション) + # data modify storage asset:mob ExtendsSafe set value +# 継承されることを前提とした、抽象的なモブであるかどうか(boolean) + data modify storage asset:mob IsAbstract set value false +# ID (int) + data modify storage asset:mob ID set value 373 +# 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 +# Mobの説明文 (TextComponentString[]) (オプション) + # data modify storage asset:mob Lore set value +# 武器 + # メインハンド (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 +# 攻撃力 (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 +# フィールド + # data modify storage asset:mob Field.myValue set value diff --git a/Asset/data/asset/functions/mob/0373.gold_coffin/summon/.mcfunction b/Asset/data/asset/functions/mob/0373.gold_coffin/summon/.mcfunction new file mode 100644 index 0000000000..1767188f54 --- /dev/null +++ b/Asset/data/asset/functions/mob/0373.gold_coffin/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0373.gold_coffin/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:mob/alias/373/summon + +# 元となるEntityを召喚する + summon polar_bear ~ ~ ~ {NoAI:1b,Silent:1b,Tags:["MobInit","AlwaysInvisible"],DeathLootTable:"empty",Passengers:[{id:"item_display",Tags:["AssetMob","AutoKillWhenDieVehicle"],item:{id:"stick",Count:1b,tag:{CustomModelData:20446}},transformation:{left_rotation:[-0.7071f,0f,0f,0.7071f],right_rotation:[0f,0f,0f,1f],translation:[0f,-0.7f,0.7f],scale:[1.35f,1.35f,1.35f]}}]} diff --git a/Asset/data/asset/functions/mob/0373.gold_coffin/summon/debug.mcfunction b/Asset/data/asset/functions/mob/0373.gold_coffin/summon/debug.mcfunction new file mode 100644 index 0000000000..81dcd0b59b --- /dev/null +++ b/Asset/data/asset/functions/mob/0373.gold_coffin/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0373.gold_coffin/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 373 + function api:mob/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/0373.gold_coffin/tick/.mcfunction b/Asset/data/asset/functions/mob/0373.gold_coffin/tick/.mcfunction new file mode 100644 index 0000000000..7aa6a0f365 --- /dev/null +++ b/Asset/data/asset/functions/mob/0373.gold_coffin/tick/.mcfunction @@ -0,0 +1,14 @@ +#> asset:mob/0373.gold_coffin/tick/ +# +# Mobのtick時の処理 +# +# @within asset:mob/alias/373/tick + +# スコア + scoreboard players add @s General.Mob.Tick 1 + +# パッカーン + execute if entity @s[scores={General.Mob.Tick=100}] on passengers run data modify entity @s item.tag.CustomModelData set value 20447 + +# 一定時間で消滅 + execute if entity @s[scores={General.Mob.Tick=200..}] run kill @s diff --git a/Asset/data/asset/functions/mob/0374.gray_coffin/death/.mcfunction b/Asset/data/asset/functions/mob/0374.gray_coffin/death/.mcfunction new file mode 100644 index 0000000000..287f9759e6 --- /dev/null +++ b/Asset/data/asset/functions/mob/0374.gray_coffin/death/.mcfunction @@ -0,0 +1,5 @@ +#> asset:mob/0374.gray_coffin/death/ +# +# Mobの死亡時の処理 +# +# @within function asset:mob/alias/374/death diff --git a/Asset/data/asset/functions/mob/0374.gray_coffin/init/.mcfunction b/Asset/data/asset/functions/mob/0374.gray_coffin/init/.mcfunction new file mode 100644 index 0000000000..b4ee1b620c --- /dev/null +++ b/Asset/data/asset/functions/mob/0374.gray_coffin/init/.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0374.gray_coffin/init/ +# +# Mobのinit時の処理 +# +# @within asset:mob/alias/374/init + +# 演出 + particle poof ^ ^1 ^0.5 0.4 0.4 0.4 0.05 60 normal @a + particle poof ^ ^1 ^-0.5 0.4 0.4 0.4 0.05 60 normal @a diff --git a/Asset/data/asset/functions/mob/0374.gray_coffin/register.mcfunction b/Asset/data/asset/functions/mob/0374.gray_coffin/register.mcfunction new file mode 100644 index 0000000000..93bf29bf0b --- /dev/null +++ b/Asset/data/asset/functions/mob/0374.gray_coffin/register.mcfunction @@ -0,0 +1,66 @@ +#> asset:mob/0374.gray_coffin/register +# +# Mobのデータを指定 +# +# @within function asset:mob/alias/374/register + +# 他のモブに継承されることを許可するか (boolean) (オプション) + # data modify storage asset:mob ExtendsSafe set value +# 継承されることを前提とした、抽象的なモブであるかどうか(boolean) + data modify storage asset:mob IsAbstract set value false +# ID (int) + data modify storage asset:mob ID set value 374 +# 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 +# Mobの説明文 (TextComponentString[]) (オプション) + # data modify storage asset:mob Lore set value +# 武器 + # メインハンド (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 2400d +# 攻撃力 (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 +# フィールド + data modify storage asset:mob Field.Damage set value 36.0f + data modify storage asset:mob Field.RotationX set value 0.0f diff --git a/Asset/data/asset/functions/mob/0374.gray_coffin/summon/.m.mcfunction b/Asset/data/asset/functions/mob/0374.gray_coffin/summon/.m.mcfunction new file mode 100644 index 0000000000..426e505601 --- /dev/null +++ b/Asset/data/asset/functions/mob/0374.gray_coffin/summon/.m.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0374.gray_coffin/summon/.m +# +# +# +# @within function asset:mob/0374.gray_coffin/summon/ + +# 元となるEntityを召喚する + $summon polar_bear ~ ~ ~ {Rotation:[$(RotationX)f,0.0f],NoAI:1b,Silent:1b,Tags:["MobInit","AlwaysInvisible"],DeathLootTable:"empty",Passengers:[{id:"item_display",Rotation:[$(RotationX)f,0.0f],Tags:["AssetMob","AutoKillWhenDieVehicle"],item:{id:"stick",Count:1b,tag:{CustomModelData:20448}},transformation:{left_rotation:[-0.7071f,0f,0f,0.7071f],right_rotation:[0f,0f,0f,1f],translation:[0f,-0.7f,0.7f],scale:[1.35f,1.35f,1.35f]}}]} diff --git a/Asset/data/asset/functions/mob/0374.gray_coffin/summon/.mcfunction b/Asset/data/asset/functions/mob/0374.gray_coffin/summon/.mcfunction new file mode 100644 index 0000000000..898b4fd0b1 --- /dev/null +++ b/Asset/data/asset/functions/mob/0374.gray_coffin/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0374.gray_coffin/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:mob/alias/374/summon + +# 元となるEntityを召喚する + function asset:mob/0374.gray_coffin/summon/.m with storage asset:context this diff --git a/Asset/data/asset/functions/mob/0374.gray_coffin/summon/debug.mcfunction b/Asset/data/asset/functions/mob/0374.gray_coffin/summon/debug.mcfunction new file mode 100644 index 0000000000..683ece34c3 --- /dev/null +++ b/Asset/data/asset/functions/mob/0374.gray_coffin/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0374.gray_coffin/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 374 + function api:mob/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/0374.gray_coffin/tick/.mcfunction b/Asset/data/asset/functions/mob/0374.gray_coffin/tick/.mcfunction new file mode 100644 index 0000000000..05368d1889 --- /dev/null +++ b/Asset/data/asset/functions/mob/0374.gray_coffin/tick/.mcfunction @@ -0,0 +1,18 @@ +#> asset:mob/0374.gray_coffin/tick/ +# +# Mobのtick時の処理 +# +# @within asset:mob/alias/374/tick + +# スコア + scoreboard players add @s General.Mob.Tick 1 + +# 演出 + execute if predicate lib:random_pass_per/30 run particle witch ^ ^1 ^0.5 0.5 0.5 0.5 0 1 normal @a + execute if predicate lib:random_pass_per/30 run particle witch ^ ^1 ^-0.5 0.5 0.5 0.5 0 1 normal @a + +# 開閉を繰り返す + execute if entity @s[scores={General.Mob.Tick=..1000}] run function asset:mob/0374.gray_coffin/tick/open_and_close + +# ペナルティとして爆発する + execute if entity @s[scores={General.Mob.Tick=1000..}] run function asset:mob/0374.gray_coffin/tick/penalty_ready diff --git a/Asset/data/asset/functions/mob/0374.gray_coffin/tick/open_and_close.mcfunction b/Asset/data/asset/functions/mob/0374.gray_coffin/tick/open_and_close.mcfunction new file mode 100644 index 0000000000..fb04bf2e19 --- /dev/null +++ b/Asset/data/asset/functions/mob/0374.gray_coffin/tick/open_and_close.mcfunction @@ -0,0 +1,35 @@ +#> asset:mob/0374.gray_coffin/tick/open_and_close +# +# 開閉を繰り返す +# +# @within function asset:mob/0374.gray_coffin/tick/ + +#> Private +# @private + #declare score_holder $Interval + #declare score_holder $201 + +# 201を定義 + scoreboard players set $201 Temporary 201 + +# 一定周期で開閉を繰り返す + scoreboard players operation $Interval Temporary = @s General.Mob.Tick + scoreboard players operation $Interval Temporary %= $201 Temporary + +# パッカーン + execute if score $Interval Temporary matches 100 on passengers run data modify entity @s item.tag.CustomModelData set value 20449 + execute if score $Interval Temporary matches 100 run playsound block.chest.open hostile @a ~ ~ ~ 1 0.5 0 + +# 召喚 + execute if score $Interval Temporary matches 120 positioned ^ ^2.5 ^0.6 summon marker run function asset:mob/0374.gray_coffin/tick/summon + execute if score $Interval Temporary matches 140 positioned ^ ^2.5 ^0.3 summon marker run function asset:mob/0374.gray_coffin/tick/summon + execute if score $Interval Temporary matches 160 positioned ^ ^2.5 ^0.0 summon marker run function asset:mob/0374.gray_coffin/tick/summon + execute if score $Interval Temporary matches 180 positioned ^ ^2.5 ^-0.3 summon marker run function asset:mob/0374.gray_coffin/tick/summon + +# 閉じる + execute if score $Interval Temporary matches 200 on passengers run data modify entity @s item.tag.CustomModelData set value 20448 + execute if score $Interval Temporary matches 200 run playsound block.chest.close hostile @a ~ ~ ~ 1 0.5 0 + +# リセット + scoreboard players reset $Interval Temporary + scoreboard players reset $201 Temporary diff --git a/Asset/data/asset/functions/mob/0374.gray_coffin/tick/penalty_explode.mcfunction b/Asset/data/asset/functions/mob/0374.gray_coffin/tick/penalty_explode.mcfunction new file mode 100644 index 0000000000..0a7d79de1f --- /dev/null +++ b/Asset/data/asset/functions/mob/0374.gray_coffin/tick/penalty_explode.mcfunction @@ -0,0 +1,23 @@ +#> asset:mob/0374.gray_coffin/tick/penalty_explode +# +# 爆発 +# +# @within function asset:mob/0374.gray_coffin/tick/penalty_ready + +# 演出 + particle explosion_emitter ~ ~1 ~ 0.2 0.3 0.2 1 1 normal @a + particle soul_fire_flame ~ ~1 ~ 0.2 0.3 0.2 0.3 100 normal @a + playsound entity.generic.explode hostile @a ~ ~ ~ 1 0.5 0 + playsound block.sculk_shrieker.shriek hostile @a ~ ~ ~ 1 0.8 0 + +# ダメージ + data modify storage api: Argument.Damage set value 50f + data modify storage api: Argument.AttackType set value "Magic" + data modify storage api: Argument.ElementType set value "Fire" + #data modify storage api: Argument.DeathMessage append value '{"translate": "%1$sは%2$sによって","with":[{"selector":"@s"},{"nbt":"Return.AttackerName","storage":"api:","interpret":true}]}' + function api:damage/modifier + execute as @a[tag=!PlayerShouldInvulnerable,distance=..5] run function api:damage/ + function api:damage/reset + +# 消滅 + function api:mob/remove diff --git a/Asset/data/asset/functions/mob/0374.gray_coffin/tick/penalty_ready.mcfunction b/Asset/data/asset/functions/mob/0374.gray_coffin/tick/penalty_ready.mcfunction new file mode 100644 index 0000000000..11205408b3 --- /dev/null +++ b/Asset/data/asset/functions/mob/0374.gray_coffin/tick/penalty_ready.mcfunction @@ -0,0 +1,34 @@ +#> asset:mob/0374.gray_coffin/tick/penalty_ready +# +# +# +# @within function asset:mob/0374.gray_coffin/tick/ + +# 高速で開閉を繰り返して爆発する + execute if entity @s[scores={General.Mob.Tick=1000}] on passengers run data modify entity @s item.tag.CustomModelData set value 20448 + execute if entity @s[scores={General.Mob.Tick=1000}] run playsound block.chest.close hostile @a ~ ~ ~ 1 0.7 0 + execute if entity @s[scores={General.Mob.Tick=1008}] on passengers run data modify entity @s item.tag.CustomModelData set value 20449 + execute if entity @s[scores={General.Mob.Tick=1008}] run playsound block.chest.open hostile @a ~ ~ ~ 1 0.7 0 + + execute if entity @s[scores={General.Mob.Tick=1015}] on passengers run data modify entity @s item.tag.CustomModelData set value 20448 + execute if entity @s[scores={General.Mob.Tick=1015}] run playsound block.chest.close hostile @a ~ ~ ~ 1 0.8 0 + execute if entity @s[scores={General.Mob.Tick=1022}] on passengers run data modify entity @s item.tag.CustomModelData set value 20449 + execute if entity @s[scores={General.Mob.Tick=1022}] run playsound block.chest.open hostile @a ~ ~ ~ 1 0.8 0 + + execute if entity @s[scores={General.Mob.Tick=1028}] on passengers run data modify entity @s item.tag.CustomModelData set value 20448 + execute if entity @s[scores={General.Mob.Tick=1028}] run playsound block.chest.close hostile @a ~ ~ ~ 1 0.9 0 + execute if entity @s[scores={General.Mob.Tick=1034}] on passengers run data modify entity @s item.tag.CustomModelData set value 20449 + execute if entity @s[scores={General.Mob.Tick=1034}] run playsound block.chest.open hostile @a ~ ~ ~ 1 0.9 0 + + execute if entity @s[scores={General.Mob.Tick=1039}] on passengers run data modify entity @s item.tag.CustomModelData set value 20448 + execute if entity @s[scores={General.Mob.Tick=1039}] run playsound block.chest.close hostile @a ~ ~ ~ 1 1.0 0 + execute if entity @s[scores={General.Mob.Tick=1044}] on passengers run data modify entity @s item.tag.CustomModelData set value 20449 + execute if entity @s[scores={General.Mob.Tick=1044}] run playsound block.chest.open hostile @a ~ ~ ~ 1 1.0 0 + + execute if entity @s[scores={General.Mob.Tick=1048}] on passengers run data modify entity @s item.tag.CustomModelData set value 20448 + execute if entity @s[scores={General.Mob.Tick=1048}] run playsound block.chest.close hostile @a ~ ~ ~ 1 1.1 0 + execute if entity @s[scores={General.Mob.Tick=1052}] on passengers run data modify entity @s item.tag.CustomModelData set value 20449 + execute if entity @s[scores={General.Mob.Tick=1052}] run playsound block.chest.open hostile @a ~ ~ ~ 1 1.1 0 + +# 爆発 + execute if entity @s[scores={General.Mob.Tick=1060..}] run function asset:mob/0374.gray_coffin/tick/penalty_explode diff --git a/Asset/data/asset/functions/mob/0374.gray_coffin/tick/summon.mcfunction b/Asset/data/asset/functions/mob/0374.gray_coffin/tick/summon.mcfunction new file mode 100644 index 0000000000..a369222516 --- /dev/null +++ b/Asset/data/asset/functions/mob/0374.gray_coffin/tick/summon.mcfunction @@ -0,0 +1,30 @@ +#> asset:mob/0374.gray_coffin/tick/summon +# +# 怨霊弾を召喚する +# +# @within function asset:mob/0374.gray_coffin/tick/open_and_close + +#> Private +# @private + #declare tag Target + +# ランダムなプレイヤーをターゲットとする + tag @r[gamemode=!spectator,distance=..50] add Target + +# プレイヤーの方を見る + tp @s ~ ~ ~ facing entity @p[tag=Target] eyes + +# 召喚 + data modify storage api: Argument.ID set value 2092 + data modify storage api: Argument.FieldOverride.StartDelay set value 50 + execute store result storage api: Argument.FieldOverride.TargetID int 1 run scoreboard players get @p[tag=Target] UserID + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @e[type=polar_bear,tag=this,distance=..5,sort=nearest,limit=1] MobUUID + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage + data modify storage api: Argument.FieldOverride.Rotation set from entity @s Rotation + function api:object/summon + +# リセット + tag @p[tag=Target] remove Target + +# 消滅 + kill @s diff --git a/Asset/data/asset/functions/mob/alias/372/death.mcfunction b/Asset/data/asset/functions/mob/alias/372/death.mcfunction new file mode 100644 index 0000000000..060b4f4316 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/372/death.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/372/death +# +# Mobの死亡時の処理のエイリアス +# +# @within asset_manager:mob/triggers/death/death.m + +# 本来の処理を呼び出す + function asset:mob/0372.tutankhamen/death/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/372/hurt.mcfunction b/Asset/data/asset/functions/mob/alias/372/hurt.mcfunction new file mode 100644 index 0000000000..84e56473f2 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/372/hurt.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/372/hurt +# +# Mobのダメージ時の処理のエイリアス +# +# @within asset_manager:mob/triggers/hurt/hurt.m + +# 本来の処理を呼び出す + function asset:mob/0372.tutankhamen/hurt/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/372/init.mcfunction b/Asset/data/asset/functions/mob/alias/372/init.mcfunction new file mode 100644 index 0000000000..a191f67411 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/372/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/372/init +# +# Init処理のエイリアス +# +# @within asset_manager:mob/triggers/init/init.m + +# 元のInit処理を呼び出す + function asset:mob/0372.tutankhamen/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/372/register.mcfunction b/Asset/data/asset/functions/mob/alias/372/register.mcfunction new file mode 100644 index 0000000000..4f4742b143 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/372/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/372/register +# +# Mobのデータ指定処理のエイリアス +# +# @within asset_manager:mob/triggers/summon/register.m + +# 元の登録処理を呼び出す + function asset:mob/0372.tutankhamen/register \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/372/remove.mcfunction b/Asset/data/asset/functions/mob/alias/372/remove.mcfunction new file mode 100644 index 0000000000..e158c9c243 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/372/remove.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/372/init +# +# Remove処理のエイリアス +# +# @within asset_manager:mob/remove/remove.m + +# 元のInit処理を呼び出す + function asset:mob/0372.tutankhamen/remove/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/372/summon.mcfunction b/Asset/data/asset/functions/mob/alias/372/summon.mcfunction new file mode 100644 index 0000000000..f33546354e --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/372/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/372/summon +# +# Mob召喚処理のエイリアス +# +# @within asset_manager:mob/triggers/summon/summon.m + +# 本来の処理を呼び出す + function asset:mob/0372.tutankhamen/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/372/tick.mcfunction b/Asset/data/asset/functions/mob/alias/372/tick.mcfunction new file mode 100644 index 0000000000..bd22a24887 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/372/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/372/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:mob/triggers/tick/tick.m + +# 元のTick処理を呼び出す + function asset:mob/0372.tutankhamen/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/373/death.mcfunction b/Asset/data/asset/functions/mob/alias/373/death.mcfunction new file mode 100644 index 0000000000..240a5f2e5c --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/373/death.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/373/death +# +# Mobの死亡時の処理のエイリアス +# +# @within asset_manager:mob/triggers/death/death.m + +# 本来の処理を呼び出す + function asset:mob/0373.gold_coffin/death/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/373/init.mcfunction b/Asset/data/asset/functions/mob/alias/373/init.mcfunction new file mode 100644 index 0000000000..21eee1090b --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/373/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/373/init +# +# Init処理のエイリアス +# +# @within asset_manager:mob/triggers/init/init.m + +# 元のInit処理を呼び出す + function asset:mob/0373.gold_coffin/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/373/register.mcfunction b/Asset/data/asset/functions/mob/alias/373/register.mcfunction new file mode 100644 index 0000000000..eae653f0b4 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/373/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/373/register +# +# Mobのデータ指定処理のエイリアス +# +# @within asset_manager:mob/triggers/summon/register.m + +# 元の登録処理を呼び出す + function asset:mob/0373.gold_coffin/register \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/373/summon.mcfunction b/Asset/data/asset/functions/mob/alias/373/summon.mcfunction new file mode 100644 index 0000000000..54c51c0a14 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/373/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/373/summon +# +# Mob召喚処理のエイリアス +# +# @within asset_manager:mob/triggers/summon/summon.m + +# 本来の処理を呼び出す + function asset:mob/0373.gold_coffin/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/373/tick.mcfunction b/Asset/data/asset/functions/mob/alias/373/tick.mcfunction new file mode 100644 index 0000000000..5e0b495eb6 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/373/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/373/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:mob/triggers/tick/tick.m + +# 元のTick処理を呼び出す + function asset:mob/0373.gold_coffin/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/374/death.mcfunction b/Asset/data/asset/functions/mob/alias/374/death.mcfunction new file mode 100644 index 0000000000..610b4ce89e --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/374/death.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/374/death +# +# Mobの死亡時の処理のエイリアス +# +# @within asset_manager:mob/triggers/death/death.m + +# 本来の処理を呼び出す + function asset:mob/0374.gray_coffin/death/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/374/init.mcfunction b/Asset/data/asset/functions/mob/alias/374/init.mcfunction new file mode 100644 index 0000000000..19ccc86f38 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/374/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/374/init +# +# Init処理のエイリアス +# +# @within asset_manager:mob/triggers/init/init.m + +# 元のInit処理を呼び出す + function asset:mob/0374.gray_coffin/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/374/register.mcfunction b/Asset/data/asset/functions/mob/alias/374/register.mcfunction new file mode 100644 index 0000000000..81ba071e61 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/374/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/374/register +# +# Mobのデータ指定処理のエイリアス +# +# @within asset_manager:mob/triggers/summon/register.m + +# 元の登録処理を呼び出す + function asset:mob/0374.gray_coffin/register \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/374/summon.mcfunction b/Asset/data/asset/functions/mob/alias/374/summon.mcfunction new file mode 100644 index 0000000000..5a491d19db --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/374/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/374/summon +# +# Mob召喚処理のエイリアス +# +# @within asset_manager:mob/triggers/summon/summon.m + +# 本来の処理を呼び出す + function asset:mob/0374.gray_coffin/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/374/tick.mcfunction b/Asset/data/asset/functions/mob/alias/374/tick.mcfunction new file mode 100644 index 0000000000..a723f250f1 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/374/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/374/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:mob/triggers/tick/tick.m + +# 元のTick処理を呼び出す + function asset:mob/0374.gray_coffin/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2090.magic_square/load.mcfunction b/Asset/data/asset/functions/object/2090.magic_square/load.mcfunction new file mode 100644 index 0000000000..b246347959 --- /dev/null +++ b/Asset/data/asset/functions/object/2090.magic_square/load.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/2090.magic_square/load +# +# Objectに利用するスコアボード等の初期化処理 +# +# @within tag/function asset:object/load + +#> 定義類はここに +# @within function asset:object/2090.magic_square/** + scoreboard objectives add 2090.SpinCount dummy diff --git a/Asset/data/asset/functions/object/2090.magic_square/register.mcfunction b/Asset/data/asset/functions/object/2090.magic_square/register.mcfunction new file mode 100644 index 0000000000..b8bf5311d5 --- /dev/null +++ b/Asset/data/asset/functions/object/2090.magic_square/register.mcfunction @@ -0,0 +1,23 @@ +#> asset:object/2090.magic_square/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2090/register + +# 継承(オプション) + # data modify storage asset:object Extends append value + # function asset:object/extends +# 他のモブに継承されることを許可するか (boolean) (オプション) + # data modify storage asset:object ExtendsSafe set value +# 継承されることを前提とした、抽象的なオブジェクトであるかどうか(boolean) + data modify storage asset:object IsAbstract set value false +# Tickするかどうか(boolean) (オプション) + # data modify storage asset:object IsTicking set value + +# ID (int) + data modify storage asset:object ID set value 2090 +# フィールド(オプション) + data modify storage asset:object Field.Rotation set value [0.0f,0.0f] + data modify storage asset:object Field.Color set value 16777215 + data modify storage asset:object Field.Scale set value [1.0f,1.0f,1.0f] + data modify storage asset:object Field.CMD set value 20443 diff --git a/Asset/data/asset/functions/object/2090.magic_square/summon/.m.mcfunction b/Asset/data/asset/functions/object/2090.magic_square/summon/.m.mcfunction new file mode 100644 index 0000000000..7daf5fb1eb --- /dev/null +++ b/Asset/data/asset/functions/object/2090.magic_square/summon/.m.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/2090.magic_square/summon/.m +# +# マクロで召喚する +# +# @input args: +# Rotation : double @ 2 +# @within function asset:object/2090.magic_square/summon/ + + $summon minecraft:item_display ~ ~ ~ {Rotation:$(Rotation),Tags:["ObjectInit"],interpolation_duration:15,teleport_duration:1,item:{id:"leather_horse_armor",Count:1b,tag:{CustomModelData:$(CMD),display:{color:$(Color)}}},transformation:{left_rotation:[0.0f,0.0f,0.0f,1.0f],right_rotation:[0.0f,0.0f,0.0f,1.0f],translation:[0.0f,0.0f,0.0f],scale:[0.0f,0.0f,0.0f]}} diff --git a/Asset/data/asset/functions/object/2090.magic_square/summon/.mcfunction b/Asset/data/asset/functions/object/2090.magic_square/summon/.mcfunction new file mode 100644 index 0000000000..3ce9433234 --- /dev/null +++ b/Asset/data/asset/functions/object/2090.magic_square/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2090.magic_square/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2090/summon + +# 元となるEntityを召喚する + function asset:object/2090.magic_square/summon/.m with storage asset:context this diff --git a/Asset/data/asset/functions/object/2090.magic_square/summon/debug.mcfunction b/Asset/data/asset/functions/object/2090.magic_square/summon/debug.mcfunction new file mode 100644 index 0000000000..613ca6f6e5 --- /dev/null +++ b/Asset/data/asset/functions/object/2090.magic_square/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2090.magic_square/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 2090 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2090.magic_square/tick/.mcfunction b/Asset/data/asset/functions/object/2090.magic_square/tick/.mcfunction new file mode 100644 index 0000000000..2ecf70c70e --- /dev/null +++ b/Asset/data/asset/functions/object/2090.magic_square/tick/.mcfunction @@ -0,0 +1,29 @@ +#> asset:object/2090.magic_square/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2090/tick + +#> Private +# @private + #declare score_holder $Interval + +# デカくなる + execute if entity @s[scores={General.Object.Tick=3}] run data modify entity @s start_interpolation set value 0 + execute if entity @s[scores={General.Object.Tick=3}] run data modify entity @s transformation.scale set from storage asset:context this.Scale + +# 一定間隔で回転 + scoreboard players operation $Interval Temporary = @s General.Object.Tick + scoreboard players add $Interval Temporary 9 + scoreboard players operation $Interval Temporary %= $12 Const + execute if score $Interval Temporary matches 0 if entity @s[scores={General.Object.Tick=3..}] run function asset:object/2090.magic_square/tick/spin + scoreboard players reset $Interval Temporary + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# 消失時にはぬるりと消えていく + execute if score @s General.Object.Tick matches 95 run function asset:object/2090.magic_square/tick/transdorm + +# 消滅処理 + kill @s[scores={General.Object.Tick=100..}] diff --git a/Asset/data/asset/functions/object/2090.magic_square/tick/spin.mcfunction b/Asset/data/asset/functions/object/2090.magic_square/tick/spin.mcfunction new file mode 100644 index 0000000000..37502f13b9 --- /dev/null +++ b/Asset/data/asset/functions/object/2090.magic_square/tick/spin.mcfunction @@ -0,0 +1,26 @@ +#> asset:object/2090.magic_square/tick/spin +# +# +# +# @within function asset:object/2090.magic_square/tick/ + +# 回転のカウント + scoreboard players add @s 2090.SpinCount 1 + +# start_interpolation + data modify entity @s start_interpolation set value 0 + +# 回転 フィールドによって回転方向を変える +# 2,4は共通 + execute if entity @s[scores={2090.SpinCount=1}] unless data storage asset:context this{LeftRotate:true} run data modify entity @s transformation set value [-0.0f,1.0f,0.0f,0.0f,-1.0f,-0.0f,0.0f,0.0f,0.0f,0.0f,1.0f,0.0f,0.0f,0.0f,0.0f,1.0f] + execute if entity @s[scores={2090.SpinCount=1}] if data storage asset:context this{LeftRotate:true} run data modify entity @s transformation set value [-0.0f,-1.0f,0.0f,0.0f,1.0f,-0.0f,0.0f,0.0f,0.0f,0.0f,1.0f,0.0f,0.0f,0.0f,0.0f,1.0f] + execute if entity @s[scores={2090.SpinCount=2}] run data modify entity @s transformation set value [-1.0f,-0.0f,0.0f,0.0f,0.0f,-1.0f,0.0f,0.0f,0.0f,0.0f,1.0f,0.0f,0.0f,0.0f,0.0f,1.0f] + execute if entity @s[scores={2090.SpinCount=3}] unless data storage asset:context this{LeftRotate:true} run data modify entity @s transformation set value [-0.0f,-1.0f,0.0f,0.0f,1.0f,-0.0f,0.0f,0.0f,0.0f,0.0f,1.0f,0.0f,0.0f,0.0f,0.0f,1.0f] + execute if entity @s[scores={2090.SpinCount=3}] if data storage asset:context this{LeftRotate:true} run data modify entity @s transformation set value [-0.0f,1.0f,0.0f,0.0f,-1.0f,-0.0f,0.0f,0.0f,0.0f,0.0f,1.0f,0.0f,0.0f,0.0f,0.0f,1.0f] + execute if entity @s[scores={2090.SpinCount=4}] run data modify entity @s transformation set value [1.0f,0.0f,0.0f,0.0f,0.0f,1.0f,0.0f,0.0f,0.0f,0.0f,1.0f,0.0f,0.0f,0.0f,0.0f,1.0f] + +# Scaleだけ別で設定し直す + data modify entity @s transformation.scale set from storage asset:context this.Scale + +# 回転カウントのリセット + execute if entity @s[scores={2090.SpinCount=4..}] run scoreboard players reset @s 2090.SpinCount diff --git a/Asset/data/asset/functions/object/2090.magic_square/tick/transdorm.mcfunction b/Asset/data/asset/functions/object/2090.magic_square/tick/transdorm.mcfunction new file mode 100644 index 0000000000..d92041c896 --- /dev/null +++ b/Asset/data/asset/functions/object/2090.magic_square/tick/transdorm.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/2090.magic_square/tick/transdorm +# +# 消える +# +# @within function asset:object/2090.magic_square/tick/ + +data modify entity @s start_interpolation set value 0 +data modify entity @s interpolation_duration set value 5 +data modify entity @s transformation.scale set value [0.0f,0.0f,0.0f] diff --git a/Asset/data/asset/functions/object/2091.hyper_laser_manager/_index.d.mcfunction b/Asset/data/asset/functions/object/2091.hyper_laser_manager/_index.d.mcfunction new file mode 100644 index 0000000000..060ea78bc3 --- /dev/null +++ b/Asset/data/asset/functions/object/2091.hyper_laser_manager/_index.d.mcfunction @@ -0,0 +1,7 @@ +#> asset:object/2091.hyper_laser_manager/_index.d +# @private + +#> tag +# @within function asset:object/2091.hyper_laser_manager/** + #declare score_holder $Interval + #declare score_holder $Recursive diff --git a/Asset/data/asset/functions/object/2091.hyper_laser_manager/register.mcfunction b/Asset/data/asset/functions/object/2091.hyper_laser_manager/register.mcfunction new file mode 100644 index 0000000000..cfc11c02ec --- /dev/null +++ b/Asset/data/asset/functions/object/2091.hyper_laser_manager/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2091.hyper_laser_manager/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2091/register + +# 継承(オプション) + # data modify storage asset:object Extends append value + # function asset:object/extends +# 他のObjectに継承されることを許可するか (boolean) (オプション) + # data modify storage asset:object ExtendsSafe set value +# 継承されることを前提とした、抽象的なObjectであるかどうか(boolean) + data modify storage asset:object IsAbstract set value false +# Tickするかどうか(boolean) (オプション) + # data modify storage asset:object IsTicking set value + +# ID (int) + data modify storage asset:object ID set value 2091 +# フィールド(オプション) + # data modify storage asset:object Field.myValue set value \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2091.hyper_laser_manager/summon/.m.mcfunction b/Asset/data/asset/functions/object/2091.hyper_laser_manager/summon/.m.mcfunction new file mode 100644 index 0000000000..541385fb1c --- /dev/null +++ b/Asset/data/asset/functions/object/2091.hyper_laser_manager/summon/.m.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2091.hyper_laser_manager/summon/.m +# +# マクロを使って召喚する +# +# @input args: +# Rotation : double @ 2 +# @within function asset:object/2091.hyper_laser_manager/summon/ + +# 召喚する + $summon marker ~ ~ ~ {Rotation:$(Rotation),Tags:["ObjectInit"]} diff --git a/Asset/data/asset/functions/object/2091.hyper_laser_manager/summon/.mcfunction b/Asset/data/asset/functions/object/2091.hyper_laser_manager/summon/.mcfunction new file mode 100644 index 0000000000..8ac002482d --- /dev/null +++ b/Asset/data/asset/functions/object/2091.hyper_laser_manager/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2091.hyper_laser_manager/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2091/summon + +# 元となるEntityを召喚する + function asset:object/2091.hyper_laser_manager/summon/.m with storage asset:context this diff --git a/Asset/data/asset/functions/object/2091.hyper_laser_manager/summon/debug.mcfunction b/Asset/data/asset/functions/object/2091.hyper_laser_manager/summon/debug.mcfunction new file mode 100644 index 0000000000..4110a93247 --- /dev/null +++ b/Asset/data/asset/functions/object/2091.hyper_laser_manager/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2091.hyper_laser_manager/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 2091 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/.mcfunction b/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/.mcfunction new file mode 100644 index 0000000000..d6f0bece1c --- /dev/null +++ b/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/.mcfunction @@ -0,0 +1,41 @@ +#> asset:object/2091.hyper_laser_manager/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2091/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# アラート + execute if score @s General.Object.Tick matches 1 positioned ~ ~-1.5 ~ run function asset:object/2091.hyper_laser_manager/tick/alert + +# 前方に魔法陣を召喚 + execute if score @s General.Object.Tick matches 1 run data modify storage api: Argument.FieldOverride set value {Scale:[4.2f,4.2f,0.01f],Color:5436415} + execute if score @s General.Object.Tick matches 1 anchored eyes positioned ^ ^ ^ run function asset:object/2091.hyper_laser_manager/tick/summon_square + execute if score @s General.Object.Tick matches 2 run data modify storage api: Argument.FieldOverride set value {Scale:[2.8f,2.8f,0.01f],CMD:20444,Color:5436415,LeftRotate:true} + execute if score @s General.Object.Tick matches 2 anchored eyes positioned ^ ^ ^0.2 run function asset:object/2091.hyper_laser_manager/tick/summon_square + execute if score @s General.Object.Tick matches 3 run data modify storage api: Argument.FieldOverride set value {Scale:[1.4f,1.4f,0.01f],CMD:20444,Color:5436415} + execute if score @s General.Object.Tick matches 3 anchored eyes positioned ^ ^ ^0.4 run function asset:object/2091.hyper_laser_manager/tick/summon_square + +# 一定間隔での演出 + scoreboard players operation $Interval Temporary = @s General.Object.Tick + scoreboard players operation $Interval Temporary %= $3 Const + execute if score $Interval Temporary matches 0 if score @s General.Object.Tick matches 1..5 run playsound entity.zombie_villager.converted hostile @a ~ ~ ~ 0.5 1.2 + execute if score $Interval Temporary matches 0 if score @s General.Object.Tick matches 6..10 run playsound entity.zombie_villager.converted hostile @a ~ ~ ~ 0.5 1.3 + execute if score $Interval Temporary matches 0 if score @s General.Object.Tick matches 11..15 run playsound entity.zombie_villager.converted hostile @a ~ ~ ~ 0.5 1.4 + execute if score $Interval Temporary matches 0 if score @s General.Object.Tick matches 16..20 run playsound entity.zombie_villager.converted hostile @a ~ ~ ~ 0.5 1.5 + execute if score $Interval Temporary matches 0 if score @s General.Object.Tick matches 21..25 run playsound entity.zombie_villager.converted hostile @a ~ ~ ~ 0.5 1.7 + execute if score $Interval Temporary matches 0 if score @s General.Object.Tick matches 26..30 run playsound entity.zombie_villager.converted hostile @a ~ ~ ~ 0.5 1.8 + execute if score $Interval Temporary matches 0 if score @s General.Object.Tick matches 31..35 run playsound entity.zombie_villager.converted hostile @a ~ ~ ~ 0.5 1.9 + execute if score $Interval Temporary matches 0 if score @s General.Object.Tick matches 35.. run playsound entity.zombie_villager.converted hostile @a ~ ~ ~ 0.5 2.0 + scoreboard players reset $Interval Temporary + +# ビーム! + execute if score @s General.Object.Tick matches 42 run function asset:object/2091.hyper_laser_manager/tick/summon_laser + +# 発射 + execute if score @s General.Object.Tick matches 42 anchored eyes positioned ^ ^ ^ run function asset:object/2091.hyper_laser_manager/tick/shoot + +# 消滅処理 + execute if score @s General.Object.Tick matches 42 run kill @s diff --git a/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/alert.mcfunction b/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/alert.mcfunction new file mode 100644 index 0000000000..95562a1510 --- /dev/null +++ b/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/alert.mcfunction @@ -0,0 +1,15 @@ +#> asset:object/2091.hyper_laser_manager/tick/alert +# +# +# +# @within function asset:object/2091.hyper_laser_manager/tick/ + +# データ設定 + data modify storage api: Argument.FieldOverride set value {Color:5436415,Interpolation:15,Tick:40,Scale:[5f,30.0f]} + +# 見てる方向へRotationXを設定 + data modify storage api: Argument.FieldOverride.RotationX set from entity @s Rotation[0] + +# 召喚 + data modify storage api: Argument.ID set value 2113 + function api:object/summon diff --git a/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/recursive.mcfunction b/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/recursive.mcfunction new file mode 100644 index 0000000000..7edf890aea --- /dev/null +++ b/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/recursive.mcfunction @@ -0,0 +1,24 @@ +#> asset:object/2091.hyper_laser_manager/tick/recursive +# +# +# +# @within function +# asset:object/2091.hyper_laser_manager/tick/shoot +# asset:object/2091.hyper_laser_manager/tick/recursive + +# 演出 + execute if predicate lib:random_pass_per/75 run particle soul_fire_flame ~ ~ ~ 0.1 0.1 0.1 0.08 1 normal @a + execute if predicate lib:random_pass_per/75 run particle soul_fire_flame ^ ^ ^0.25 0.1 0.1 0.1 0.08 1 normal @a + execute if predicate lib:random_pass_per/50 run particle soul ~ ~ ~ 0.5 .5 0.5 0.25 1 normal @a + +# 一定間隔での演出 + scoreboard players operation $Interval Temporary = $Recursive Temporary + scoreboard players operation $Interval Temporary %= $5 Const +# execute if score $Interval Temporary matches 0 run particle sonic_boom ~ ~ ~ 0 0 0 0 1 + scoreboard players reset $Interval Temporary + +# 再帰スコア + scoreboard players add $Recursive Temporary 1 + +# 再帰 + execute if score $Recursive Temporary matches ..60 positioned ^ ^ ^0.5 run function asset:object/2091.hyper_laser_manager/tick/recursive diff --git a/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/shoot.mcfunction b/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/shoot.mcfunction new file mode 100644 index 0000000000..c903b6282c --- /dev/null +++ b/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/shoot.mcfunction @@ -0,0 +1,38 @@ +#> asset:object/2091.hyper_laser_manager/tick/shoot +# +# +# +# @within function asset:object/2091.hyper_laser_manager/tick/ + +# サウンドと図形での演出 + particle minecraft:dust 0 1 1 2 ~ ~ ~ 0.7 0.7 0.7 0 100 + function asset:object/2091.hyper_laser_manager/tick/vfx + execute as @a[distance=..32] at @s facing entity @e[type=marker,tag=this,distance=..30] eyes positioned ^ ^ ^1 run playsound minecraft:entity.warden.sonic_boom hostile @s ~ ~ ~ 0.7 1.8 + execute as @a[distance=..32] at @s facing entity @e[type=marker,tag=this,distance=..30] eyes positioned ^ ^ ^1 run playsound ogg:block.respawn_anchor.deplete2 hostile @a ~ ~ ~ 0.7 1 + execute as @a[distance=..32] at @s facing entity @e[type=marker,tag=this,distance=..30] eyes positioned ^ ^ ^1 run playsound minecraft:entity.breeze.death hostile @a ~ ~ ~ 0.7 0.7 + +# 再帰パーティクル演出 + function asset:object/2091.hyper_laser_manager/tick/recursive + scoreboard players reset $Recursive Temporary + +# 立方体範囲内のプレイヤーにtag付け + data modify storage lib: args.dx set value 2.5 + data modify storage lib: args.dy set value 2.5 + data modify storage lib: args.dz set value 30.0 + data modify storage lib: args.selector set value "@a[tag=!PlayerShouldInvulnerable,distance=..64]" + execute positioned ^ ^ ^15 run function lib:rotatable_dxyz/m with storage lib: args + +# ダメージを与える + # データ設定 + data modify storage api: Argument.Damage set value 55.0f + data modify storage api: Argument.AttackType set value "Magic" + data modify storage api: Argument.ElementType set value "Fire" + # tag付けされたプレイヤーにダメージを与える + function api:damage/modifier + execute as @a[tag=DXYZ,distance=..64] run function api:damage/ + +# リセット + function api:damage/reset + +# tagリセット + tag @a[tag=DXYZ,distance=..64] remove DXYZ diff --git a/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/summon_laser.mcfunction b/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/summon_laser.mcfunction new file mode 100644 index 0000000000..2586989e56 --- /dev/null +++ b/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/summon_laser.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/2091.hyper_laser_manager/tick/summon_laser +# +# +# +# @within function asset:object/2091.hyper_laser_manager/tick/ + +data modify storage api: Argument.ID set value 2168 +data modify storage api: Argument.FieldOverride set value {Scale:[7f,60f,7f],Color:9763071,DisappearInterpolation:3,LifeTime:15} +function api:object/summon diff --git a/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/summon_square.mcfunction b/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/summon_square.mcfunction new file mode 100644 index 0000000000..5b0618cc75 --- /dev/null +++ b/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/summon_square.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2091.hyper_laser_manager/tick/summon_square +# +# +# +# @within function asset:object/2091.hyper_laser_manager/tick/ + +# 魔法陣召喚 + data modify storage api: Argument.ID set value 2090 + data modify storage api: Argument.FieldOverride.Rotation set from entity @s Rotation + function api:object/summon diff --git a/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/vfx.mcfunction b/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/vfx.mcfunction new file mode 100644 index 0000000000..be394aa6b7 --- /dev/null +++ b/Asset/data/asset/functions/object/2091.hyper_laser_manager/tick/vfx.mcfunction @@ -0,0 +1,285 @@ +#> asset:object/2091.hyper_laser_manager/tick/vfx +# +# +# +# @within function asset:object/2091.hyper_laser_manager/tick/shoot + +# [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkmAIwAcAbAKz0CG1ADALSUBG9A7OwBZeAMwHsAnClZiUpJrXH04KLtNpgCAOyYBbBMkBhigAJKGsDCYZdAZyTgUAe0KaISAEzUCKOC7gY7YABuTNiE+uAAHkisBFDRAL7xBFakaIS2iG4AdG4E1hCWrogxYHDY2Ggw1vqUrCUYDgUQ+iVo1gCi5ZXV7QCOhCHYUADKFt7kiMIh1Yl44NDwFDAOQwDmDppmxGQUAkzCwpSUbmLipJSkgrSU9OzUcHBiAtRsJ1y0cNS8rGbaehSALE1AEuRgCN9ExmCxWHQZexOFxITyoHzNfyIcDBULhMBRYqxBJJMApNIZShZRH5QpIWglMoVKo1OrJRpMZrRLwODCaPxIADMBAAVoQdDAkJQCFw4AAvNDc3FgNqdOk9fqDEZjOATKbYaoENoAISlMowfQG5TVTHGSC1M3iAF0gA_3 +# 多角形 1 +particle soul_fire_flame ^1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0 ^1.8 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0 ^-0.9 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000005 0 normal @a +# 円 1 +particle soul_fire_flame ^0 ^-2.2 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^2.2 ^0 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^0 ^2.2 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-2.2 ^0 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000005 0 normal @a +particle soul_fire_flame ^-0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000005 0 normal @a + +# [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkmAIwAcAbAKz0CG1ADALSUBG9A7OwBZeAMwHsAnClZiUpJrXH04KLtNpgCAOyYBbBMkBhigAJKGsDCYZdAZyTgUAe0KaISAEzUCKOC7gY7YABuTNiE+uAAHkisBFDRAL7xBFakaIS2iG4AdG4E1hCWrogxYHDY2Ggw1vqUrCUYDgUQ+iVo1gCi5ZXV7QCOhCHYUADKFt7kiMIh1Yl44NDwFDAOQwDmDppmxGQUAkzCwpSUbmLipJSkgrSU9OzUcHBiAtRsJ1y0cNS8rGbaehSALE1AEuRgCN9ExmCxWHQZexOFxITyoHzNfyIcDBULhMBRYqxBJJMApNIZShZRH5QpIWglMoVKo1OrJRpMZrRLwODCaPxIADMBAAVoQdDAkJQCFw4AAvNDc3FgNqdOk9fqDEZjOATKbYaoENoAISlMowfQG5TVTHGSC1M3iAF0gA_3 +# 多角形 1 +particle soul_fire_flame ^1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0 ^1.8 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0 ^-0.9 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000010 0 normal @a +# 円 1 +particle soul_fire_flame ^0 ^-2.2 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^2.2 ^0 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^0 ^2.2 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-2.2 ^0 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000010 0 normal @a +particle soul_fire_flame ^-0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000010 0 normal @a + +# [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkmAIwAcAbAKz0CG1ADALSUBG9A7OwBZeAMwHsAnClZiUpJrXH04KLtNpgCAOyYBbBMkBhigAJKGsDCYZdAZyTgUAe0KaISAEzUCKOC7gY7YABuTNiE+uAAHkisBFDRAL7xBFakaIS2iG4AdG4E1hCWrogxYHDY2Ggw1vqUrCUYDgUQ+iVo1gCi5ZXV7QCOhCHYUADKFt7kiMIh1Yl44NDwFDAOQwDmDppmxGQUAkzCwpSUbmLipJSkgrSU9OzUcHBiAtRsJ1y0cNS8rGbaehSALE1AEuRgCN9ExmCxWHQZexOFxITyoHzNfyIcDBULhMBRYqxBJJMApNIZShZRH5QpIWglMoVKo1OrJRpMZrRLwODCaPxIADMBAAVoQdDAkJQCFw4AAvNDc3FgNqdOk9fqDEZjOATKbYaoENoAISlMowfQG5TVTHGSC1M3iAF0gA_3 +# 多角形 1 +particle soul_fire_flame ^1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0 ^1.8 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0 ^-0.9 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000015 0 normal @a +# 円 1 +particle soul_fire_flame ^0 ^-2.2 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^2.2 ^0 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^0 ^2.2 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-2.2 ^0 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000015 0 normal @a +particle soul_fire_flame ^-0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000015 0 normal @a + +# [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkmAIwAcAbAKz0CG1ADALSUBG9A7OwBZeAMwHsAnClZiUpJrXH04KLtNpgCAOyYBbBMkBhigAJKGsDCYZdAZyTgUAe0KaISAEzUCKOC7gY7YABuTNiE+uAAHkisBFDRAL7xBFakaIS2iG4AdG4E1hCWrogxYHDY2Ggw1vqUrCUYDgUQ+iVo1gCi5ZXV7QCOhCHYUADKFt7kiMIh1Yl44NDwFDAOQwDmDppmxGQUAkzCwpSUbmLipJSkgrSU9OzUcHBiAtRsJ1y0cNS8rGbaehSALE1AEuRgCN9ExmCxWHQZexOFxITyoHzNfyIcDBULhMBRYqxBJJMApNIZShZRH5QpIWglMoVKo1OrJRpMZrRLwODCaPxIADMBAAVoQdDAkJQCFw4AAvNDc3FgNqdOk9fqDEZjOATKbYaoENoAISlMowfQG5TVTHGSC1M3iAF0gA_3 +# 多角形 1 +particle soul_fire_flame ^1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0 ^1.8 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0 ^-0.9 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000020 0 normal @a +# 円 1 +particle soul_fire_flame ^0 ^-2.2 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^2.2 ^0 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^0 ^2.2 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-2.2 ^0 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000020 0 normal @a +particle soul_fire_flame ^-0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000020 0 normal @a + +# [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkmAIwAcAbAKz0CG1ADALSUBG9A7OwBZeAMwHsAnClZiUpJrXH04KLtNpgCAOyYBbBMkBhigAJKGsDCYZdAZyTgUAe0KaISAEzUCKOC7gY7YABuTNiE+uAAHkisBFDRAL7xBFakaIS2iG4AdG4E1hCWrogxYHDY2Ggw1vqUrCUYDgUQ+iVo1gCi5ZXV7QCOhCHYUADKFt7kiMIh1Yl44NDwFDAOQwDmDppmxGQUAkzCwpSUbmLipJSkgrSU9OzUcHBiAtRsJ1y0cNS8rGbaehSALE1AEuRgCN9ExmCxWHQZexOFxITyoHzNfyIcDBULhMBRYqxBJJMApNIZShZRH5QpIWglMoVKo1OrJRpMZrRLwODCaPxIADMBAAVoQdDAkJQCFw4AAvNDc3FgNqdOk9fqDEZjOATKbYaoENoAISlMowfQG5TVTHGSC1M3iAF0gA_3 +# 多角形 1 +particle soul_fire_flame ^1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0 ^1.8 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.19486 ^1.4625 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.38971 ^1.125 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.58457 ^0.7875 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.77942 ^0.45 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.97428 ^0.1125 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.225 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.36399 ^-0.5625 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.55885 ^-0.9 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0 ^-0.9 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.38971 ^-0.9 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.77942 ^-0.9 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^1.16913 ^-0.9 ^ ^ ^ ^1000000 0.0000025 0 normal @a +# 円 1 +particle soul_fire_flame ^0 ^-2.2 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^2.2 ^0 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^0 ^2.2 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.48955 ^2.14484 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.95454 ^1.98213 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.37168 ^1.72003 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.72003 ^1.37168 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.98213 ^0.95454 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-2.14484 ^0.48955 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-2.2 ^0 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-2.14484 ^-0.48955 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.98213 ^-0.95454 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.72003 ^-1.37168 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-1.37168 ^-1.72003 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.95454 ^-1.98213 ^ ^ ^ ^1000000 0.0000025 0 normal @a +particle soul_fire_flame ^-0.48955 ^-2.14484 ^ ^ ^ ^1000000 0.0000025 0 normal @a diff --git a/Asset/data/asset/functions/object/2092.ghost_bullet/init/.mcfunction b/Asset/data/asset/functions/object/2092.ghost_bullet/init/.mcfunction new file mode 100644 index 0000000000..ad616e8f0a --- /dev/null +++ b/Asset/data/asset/functions/object/2092.ghost_bullet/init/.mcfunction @@ -0,0 +1,19 @@ +#> asset:object/2092.ghost_bullet/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/2092/init + +# 演出 + particle soul_fire_flame ~ ~ ~ 0.2 0.2 0.2 0.03 20 + playsound block.sculk_sensor.clicking neutral @a ~ ~ ~ 2 0 + playsound block.fire.ambient neutral @a ~ ~ ~ 2 0.8 + +# StartDelay + execute store result score @s General.Object.Tick run data get storage asset:context this.StartDelay -1 + +# TargetID + execute store result score @s 2092.TargetID run data get storage asset:context this.TargetID + +# 継承 + function asset:object/super.init diff --git a/Asset/data/asset/functions/object/2092.ghost_bullet/kill/.mcfunction b/Asset/data/asset/functions/object/2092.ghost_bullet/kill/.mcfunction new file mode 100644 index 0000000000..019d1825fb --- /dev/null +++ b/Asset/data/asset/functions/object/2092.ghost_bullet/kill/.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2092.ghost_bullet/kill/ +# +# 継承先などから実行される処理 +# +# @within asset:object/alias/2092/kill + +# 演出 + playsound ogg:mob.vex.idle1 hostile @a ~ ~ ~ 0.8 0.5 0 + +# ダメージ + data modify storage api: Argument.Damage set from storage asset:context this.Damage + data modify storage api: Argument.AttackType set value "Magic" + data modify storage api: Argument.ElementType set value "Fire" + data modify storage api: Argument.MobUUID set from storage asset:context this.MobUUID + function api:damage/modifier_manual + execute positioned ~-0.5 ~-0.5 ~-0.5 as @p[tag=!PlayerShouldInvulnerable,dx=0] run function api:damage/ + function api:damage/reset + +# 消滅 + kill @s diff --git a/Asset/data/asset/functions/object/2092.ghost_bullet/load.mcfunction b/Asset/data/asset/functions/object/2092.ghost_bullet/load.mcfunction new file mode 100644 index 0000000000..0ef81be20f --- /dev/null +++ b/Asset/data/asset/functions/object/2092.ghost_bullet/load.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/2092.ghost_bullet/load +# +# Objectに利用するスコアボード等の初期化処理 +# +# @within tag/function asset:object/load + +#> 定義類はここに +# @within function asset:object/2092.ghost_bullet/** + scoreboard objectives add 2092.TargetID dummy diff --git a/Asset/data/asset/functions/object/2092.ghost_bullet/recursive/.mcfunction b/Asset/data/asset/functions/object/2092.ghost_bullet/recursive/.mcfunction new file mode 100644 index 0000000000..a8e308d158 --- /dev/null +++ b/Asset/data/asset/functions/object/2092.ghost_bullet/recursive/.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/2092.ghost_bullet/recursive/ +# +# 継承先などから実行される処理 +# +# @within asset:object/alias/2092/recursive + +# 演出 + particle dust 0 0.7 0.7 1 ~ ~-0.1 ~ 0.15 0.15 0.15 0 1 + execute if predicate lib:random_pass_per/50 run particle soul_fire_flame ~ ~-0.1 ~ 0.15 0.15 0.15 0.02 1 diff --git a/Asset/data/asset/functions/object/2092.ghost_bullet/register.mcfunction b/Asset/data/asset/functions/object/2092.ghost_bullet/register.mcfunction new file mode 100644 index 0000000000..1d1bc7685b --- /dev/null +++ b/Asset/data/asset/functions/object/2092.ghost_bullet/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2092.ghost_bullet/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2092/register + +# 継承(オプション) + data modify storage asset:object Extends append value 1 + function asset:object/extends +# 他のモブに継承されることを許可するか (boolean) (オプション) + # data modify storage asset:object ExtendsSafe set value +# 継承されることを前提とした、抽象的なオブジェクトであるかどうか(boolean) + data modify storage asset:object IsAbstract set value false + +# ID (int) + data modify storage asset:object ID set value 2092 +# フィールド(オプション) + data modify storage asset:object Field.Speed set value 2 + data modify storage asset:object Field.Range set value 100 + data modify storage asset:object Field.MovePerStep set value 0.4 diff --git a/Asset/data/asset/functions/object/2092.ghost_bullet/summon/.mcfunction b/Asset/data/asset/functions/object/2092.ghost_bullet/summon/.mcfunction new file mode 100644 index 0000000000..937a724712 --- /dev/null +++ b/Asset/data/asset/functions/object/2092.ghost_bullet/summon/.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/2092.ghost_bullet/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2092/summon + +# 元となるEntityを召喚する + execute as 0-0-0-0-0 positioned as @s run tp @s ~ ~ ~ ~ ~ + data modify storage asset:temp Args.Rotation set from entity 0-0-0-0-0 Rotation + function asset:object/2092.ghost_bullet/summon/m with storage asset:temp Args + data remove storage asset:temp Args diff --git a/Asset/data/asset/functions/object/2092.ghost_bullet/summon/debug.mcfunction b/Asset/data/asset/functions/object/2092.ghost_bullet/summon/debug.mcfunction new file mode 100644 index 0000000000..a63ba96541 --- /dev/null +++ b/Asset/data/asset/functions/object/2092.ghost_bullet/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2092.ghost_bullet/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 2092 + function api:object/summon diff --git a/Asset/data/asset/functions/object/2092.ghost_bullet/summon/m.mcfunction b/Asset/data/asset/functions/object/2092.ghost_bullet/summon/m.mcfunction new file mode 100644 index 0000000000..a9a7f7391e --- /dev/null +++ b/Asset/data/asset/functions/object/2092.ghost_bullet/summon/m.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2092.ghost_bullet/summon/m +# +# +# +# @within function asset:object/2092.ghost_bullet/summon/ + +# 元となるEntityを召喚する + $summon item_display ~ ~ ~ {Rotation:$(Rotation),Tags:["ObjectInit"],teleport_duration:1,item:{id:"minecraft:wither_skeleton_skull",Count:1b},transformation:{left_rotation:[0.0f,1.0f,0.0f,0.0f],right_rotation:[0.0f,0.0f,0.0f,1.0f],translation:[0f,0f,0f],scale:[0.8f,0.8f,0.8f]}} diff --git a/Asset/data/asset/functions/object/2092.ghost_bullet/tick/.mcfunction b/Asset/data/asset/functions/object/2092.ghost_bullet/tick/.mcfunction new file mode 100644 index 0000000000..b214233b72 --- /dev/null +++ b/Asset/data/asset/functions/object/2092.ghost_bullet/tick/.mcfunction @@ -0,0 +1,47 @@ +#> asset:object/2092.ghost_bullet/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2092/tick + +#> Private +# @private + #declare tag Target + #declare score_holder $Interval + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# 演出 + # + +# 最初は少し上昇する +# 上向き移動の際はobjectを上に向かせる必要があり、プレイヤーの方を見ていてほしく +# displayのtransformationを弄る必要があるので飛翔体抽象の処理は用いない + execute if entity @s[scores={General.Object.Tick=..0}] run tp @s ~ ~0.05 ~ + +# ターゲットの方を見る + execute at @a if score @s 2092.TargetID = @p UserID run tag @p add Target + execute if entity @s[scores={General.Object.Tick=..0}] at @s facing entity @p[tag=Target] eyes run tp @s ~ ~ ~ ~ ~ + +# スコアが0の時に演出 + execute if entity @s[scores={General.Object.Tick=0}] run playsound entity.blaze.shoot hostile @a ~ ~ ~ 1 0.8 0 + +# 発射してすぐまでは誘導 + execute if entity @s[scores={General.Object.Tick=0..10}] at @s facing entity @p[tag=Target] eyes positioned ^ ^ ^-120 rotated as @s positioned ^ ^ ^-800 facing entity @s eyes positioned as @s run tp @s ~ ~ ~ ~ ~ + +# 定期的に追加で演出 + scoreboard players operation $Interval Temporary = @s General.Object.Tick + scoreboard players operation $Interval Temporary %= $5 Const + #execute if score $Interval Temporary matches 0 run playsound ogg:mob.vex.idle1 hostile @a ~ ~ ~ 0.8 0.5 0 + #execute if score $Interval Temporary matches 0 run playsound entity.blaze.shoot hostile @a ~ ~ ~ 0.15 1.8 0 + scoreboard players reset $Interval Temporary + +# 継承 + execute if entity @s[scores={General.Object.Tick=0..}] at @s run function asset:object/super.tick + +# リセット + tag @p[tag=Target] remove Target + +# 消滅処理 + kill @s[scores={General.Object.Tick=200..}] diff --git a/Asset/data/asset/functions/object/2093.tutankhamen_death/_index.d.mcfunction b/Asset/data/asset/functions/object/2093.tutankhamen_death/_index.d.mcfunction new file mode 100644 index 0000000000..0dce39e189 --- /dev/null +++ b/Asset/data/asset/functions/object/2093.tutankhamen_death/_index.d.mcfunction @@ -0,0 +1,7 @@ +#> asset:object/2093.tutankhamen_death/_index.d +# +# +# +# @within function asset:object/2093.tutankhamen_death/tick/ + #declare tag AC.ModelLocator.Body + #declare function animated_java:tutankhamen/remove/this diff --git a/Asset/data/asset/functions/object/2093.tutankhamen_death/init/.mcfunction b/Asset/data/asset/functions/object/2093.tutankhamen_death/init/.mcfunction new file mode 100644 index 0000000000..51aac69def --- /dev/null +++ b/Asset/data/asset/functions/object/2093.tutankhamen_death/init/.mcfunction @@ -0,0 +1,12 @@ +#> asset:object/2093.tutankhamen_death/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/2093/init + +# Animated Javaのリグを召喚する + execute at @s rotated ~ 0 run function animated_java:tutankhamen/summon {args: {animation: 'death', start_animation: true}} + +# 演出 + playsound minecraft:entity.wither_skeleton.death hostile @a ~ ~ ~ 1 0.8 + playsound minecraft:entity.breeze.idle_ground hostile @a ~ ~ ~ 1 0.5 diff --git a/Asset/data/asset/functions/object/2093.tutankhamen_death/register.mcfunction b/Asset/data/asset/functions/object/2093.tutankhamen_death/register.mcfunction new file mode 100644 index 0000000000..0299ccca8b --- /dev/null +++ b/Asset/data/asset/functions/object/2093.tutankhamen_death/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2093.tutankhamen_death/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2093/register + +# 継承(オプション) + # data modify storage asset:object Extends append value + # function asset:object/extends +# 他のObjectに継承されることを許可するか (boolean) (オプション) + # data modify storage asset:object ExtendsSafe set value +# 継承されることを前提とした、抽象的なObjectであるかどうか(boolean) + data modify storage asset:object IsAbstract set value false +# Tickするかどうか(boolean) (オプション) + # data modify storage asset:object IsTicking set value + +# ID (int) + data modify storage asset:object ID set value 2093 +# フィールド(オプション) + # data modify storage asset:object Field.myValue set value \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2093.tutankhamen_death/summon/.mcfunction b/Asset/data/asset/functions/object/2093.tutankhamen_death/summon/.mcfunction new file mode 100644 index 0000000000..2234974bac --- /dev/null +++ b/Asset/data/asset/functions/object/2093.tutankhamen_death/summon/.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/2093.tutankhamen_death/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2093/summon + +# 元となるEntityを召喚する + execute as 0-0-0-0-0 positioned as @s run tp @s ~ ~ ~ ~ 0 + data modify storage asset:temp Args.Rotation set from entity 0-0-0-0-0 Rotation + function asset:object/2093.tutankhamen_death/summon/m with storage asset:temp Args + data remove storage asset:temp Args diff --git a/Asset/data/asset/functions/object/2093.tutankhamen_death/summon/m.mcfunction b/Asset/data/asset/functions/object/2093.tutankhamen_death/summon/m.mcfunction new file mode 100644 index 0000000000..f1b436852d --- /dev/null +++ b/Asset/data/asset/functions/object/2093.tutankhamen_death/summon/m.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2093.tutankhamen_death/summon/m +# +# +# +# @within function asset:object/2093.tutankhamen_death/summon/ + +# 元となるEntityを召喚する + $summon marker ~ ~ ~ {Rotation:$(Rotation),Tags:["ObjectInit"]} diff --git a/Asset/data/asset/functions/object/2093.tutankhamen_death/tick/.mcfunction b/Asset/data/asset/functions/object/2093.tutankhamen_death/tick/.mcfunction new file mode 100644 index 0000000000..9859ecae8d --- /dev/null +++ b/Asset/data/asset/functions/object/2093.tutankhamen_death/tick/.mcfunction @@ -0,0 +1,25 @@ +#> asset:object/2093.tutankhamen_death/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2093/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# パーティクル + execute at @e[type=marker,tag=AC.ModelLocator.Body,distance=..8,limit=1] run particle minecraft:ash ~ ~ ~ 0.2 0.2 0.2 0 5 + execute at @e[type=marker,tag=AC.ModelLocator.Body,distance=..8,limit=1] run particle smoke ~ ~ ~ 0.2 0.5 0.2 0.01 1 + execute if score @s General.Object.Tick matches ..42 if predicate lib:random_pass_per/50 run particle soul ~ ~1 ~ 0.2 0.5 0.2 0.01 1 + +# サウンド + execute if score @s General.Object.Tick matches 25 run playsound minecraft:entity.item.break hostile @a ~ ~ ~ 1 1.0 + execute if score @s General.Object.Tick matches 33 run playsound minecraft:entity.item.break hostile @a ~ ~ ~ 1 1.5 + execute if score @s General.Object.Tick matches 42 run playsound minecraft:entity.breeze.inhale hostile @a ~ ~ ~ 1 0.5 + execute if score @s General.Object.Tick matches 80 run playsound minecraft:entity.breeze.inhale hostile @a ~ ~ ~ 1 0.7 + +# 消失 + execute if score @s General.Object.Tick matches 110 run function asset:object/2093.tutankhamen_death/tick/end + +# 足元に何もなければ + execute if block ~ ~-0.2 ~ #lib:no_collision run particle minecraft:enchant ~ ~ ~ 0.4 0 0.4 0 10 diff --git a/Asset/data/asset/functions/object/2093.tutankhamen_death/tick/end.mcfunction b/Asset/data/asset/functions/object/2093.tutankhamen_death/tick/end.mcfunction new file mode 100644 index 0000000000..16831d494b --- /dev/null +++ b/Asset/data/asset/functions/object/2093.tutankhamen_death/tick/end.mcfunction @@ -0,0 +1,22 @@ +#> asset:object/2093.tutankhamen_death/tick/end +# +# +# +# @within function asset:object/2093.tutankhamen_death/tick/ + +# パーティクル + execute at @e[type=marker,tag=AC.ModelLocator.Body,distance=..8,limit=1] run particle minecraft:large_smoke ~ ~ ~ 1 0.1 1 0.05 50 + +# サウンド + playsound minecraft:entity.breeze.death hostile @a ~ ~ ~ 1 1.5 + +# モデルを消す + execute as @e[type=item_display,tag=AC.AJ,distance=..8,limit=1] run function animated_java:tutankhamen/remove/this + +# ボスドロ + data modify storage api: Argument.ID set value 928 + data modify storage api: Argument.Important set value true + function api:artifact/spawn/from_id + +# 消失 + kill @s diff --git a/Asset/data/asset/functions/object/2168.general_long_laser/_index.d.mcfunction b/Asset/data/asset/functions/object/2168.general_long_laser/_index.d.mcfunction new file mode 100644 index 0000000000..1016e820b0 --- /dev/null +++ b/Asset/data/asset/functions/object/2168.general_long_laser/_index.d.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/2168.general_long_laser/_index.d +# @private + +#> tag +# @within function asset:object/2168.general_long_laser/** + #declare tag 2168.Marker.Rotate + #declare tag 2168.Marker.Init + #declare tag 2168.Marker.Temp + #declare tag 2168.Target diff --git a/Asset/data/asset/functions/object/2168.general_long_laser/init/.mcfunction b/Asset/data/asset/functions/object/2168.general_long_laser/init/.mcfunction new file mode 100644 index 0000000000..924979b01f --- /dev/null +++ b/Asset/data/asset/functions/object/2168.general_long_laser/init/.mcfunction @@ -0,0 +1,18 @@ +#> asset:object/2168.general_long_laser/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/2168/init + +#> Temp +# @private +#declare score_holder $Temporary + +# フィールドのTickデータをスコアボードに移す + execute store result score @s 2168.LifeTime run data get storage asset:context this.LifeTime + +# 出現には少し時間をおく都合で、DisapperTickに数値をプラスしないといけない + execute store result score $Temporary Temporary run data get storage asset:context this.DisappearTick + scoreboard players operation $Temporary Temporary += $2 Const + scoreboard players operation @s 2168.DisppearTick = $Temporary Temporary + scoreboard players reset $Temporary diff --git a/Asset/data/asset/functions/object/2168.general_long_laser/load.mcfunction b/Asset/data/asset/functions/object/2168.general_long_laser/load.mcfunction new file mode 100644 index 0000000000..485bb29b6e --- /dev/null +++ b/Asset/data/asset/functions/object/2168.general_long_laser/load.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2168.general_long_laser/load +# +# Objectに利用するスコアボード等の初期化処理 +# +# @within tag/function asset:object/load + +#> 定義類はここに +# @within function asset:object/2168.general_long_laser/** + scoreboard objectives add 2168.LifeTime dummy + scoreboard objectives add 2168.DisppearTick dummy diff --git a/Asset/data/asset/functions/object/2168.general_long_laser/register.mcfunction b/Asset/data/asset/functions/object/2168.general_long_laser/register.mcfunction new file mode 100644 index 0000000000..37355698a5 --- /dev/null +++ b/Asset/data/asset/functions/object/2168.general_long_laser/register.mcfunction @@ -0,0 +1,36 @@ +#> asset:object/2168.general_long_laser/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2168/register + +# 継承(オプション) + # data modify storage asset:object Extends append value + # function asset:object/extends +# 他のObjectに継承されることを許可するか (boolean) (オプション) + # data modify storage asset:object ExtendsSafe set value +# 継承されることを前提とした、抽象的なObjectであるかどうか(boolean) + data modify storage asset:object IsAbstract set value false +# Tickするかどうか(boolean) (オプション) + # data modify storage asset:object IsTicking set value + +# ID (int) + data modify storage asset:object ID set value 2168 +# フィールド(オプション) + # 変えるべからず + data modify storage asset:object Field.LeftRotation set value {axis:[1f,0f,0f],angle:0} + data modify storage asset:object Field.RightRotation set value {axis:[0f,-1f,0f],angle:0} + # 見た目に使うCustomModelData(革の馬鎧。また、使うモデルはなんでもいいわけではない) + data modify storage asset:object Field.CustomModelData set value 20381 + # 色(10進数) + data modify storage asset:object Field.Color set value 16777215 + # サイズ(横の太さ、長さ、縦の太さ) + data modify storage asset:object Field.Scale set value [3f,40f,3f] + # 出現にかかる時間 + data modify storage asset:object Field.AppearInterpolation set value 2 + # 何Tick後に消失に向かうか + data modify storage asset:object Field.DisappearTick set value 2 + # 縮小にかかる時間 + data modify storage asset:object Field.DisappearInterpolation set value 2 + # 存在時間(上記とは別、こちらは単純に指定されたTick分だけ残る) + data modify storage asset:object Field.LifeTime set value 20 diff --git a/Asset/data/asset/functions/object/2168.general_long_laser/summon/.mcfunction b/Asset/data/asset/functions/object/2168.general_long_laser/summon/.mcfunction new file mode 100644 index 0000000000..53dec11d89 --- /dev/null +++ b/Asset/data/asset/functions/object/2168.general_long_laser/summon/.mcfunction @@ -0,0 +1,13 @@ +#> asset:object/2168.general_long_laser/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2168/summon + +# 元となるエンティティを召喚 + execute as 0-0-0-0-0 positioned as @s run tp @s ~ ~ ~ ~ ~ + data modify storage asset:temp Args.CustomModelData set from storage asset:context this.CustomModelData + data modify storage asset:temp Args.Color set from storage asset:context this.Color + data modify storage asset:temp Args.Rotation set from entity 0-0-0-0-0 Rotation + function asset:object/2168.general_long_laser/summon/m with storage asset:temp Args + data remove storage asset:temp Args diff --git a/Asset/data/asset/functions/object/2168.general_long_laser/summon/debug.mcfunction b/Asset/data/asset/functions/object/2168.general_long_laser/summon/debug.mcfunction new file mode 100644 index 0000000000..7dd48a3264 --- /dev/null +++ b/Asset/data/asset/functions/object/2168.general_long_laser/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2168.general_long_laser/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 2168 + function api:object/summon diff --git a/Asset/data/asset/functions/object/2168.general_long_laser/summon/m.mcfunction b/Asset/data/asset/functions/object/2168.general_long_laser/summon/m.mcfunction new file mode 100644 index 0000000000..4ca03f9ede --- /dev/null +++ b/Asset/data/asset/functions/object/2168.general_long_laser/summon/m.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2168.general_long_laser/summon/m +# +# +# +# @within function asset:object/2168.general_long_laser/summon/ + +# 元となるオブジェクトを召喚: ややこしいが、item_displayの上に乗っているmarkerの向きをマクロで変えている + $summon item_display ~ ~ ~ {Tags:["ObjectInit"],Passengers:[{id:"minecraft:marker",Rotation:$(Rotation),Tags:["2168.Marker.Rotate"]}],brightness:{sky:15,block:15},transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0f,0f],scale:[0f,0f,0f]},item:{id:"minecraft:leather_horse_armor",Count:1b,tag:{display:{color:$(Color)},CustomModelData:$(CustomModelData)}}} diff --git a/Asset/data/asset/functions/object/2168.general_long_laser/tick/.mcfunction b/Asset/data/asset/functions/object/2168.general_long_laser/tick/.mcfunction new file mode 100644 index 0000000000..2479c5c8e1 --- /dev/null +++ b/Asset/data/asset/functions/object/2168.general_long_laser/tick/.mcfunction @@ -0,0 +1,55 @@ +#> asset:object/2168.general_long_laser/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2168/tick + +# ストレージ用意 + data modify storage asset:context this.LeftRotation set value {axis:[1f,0f,0f],angle:0} + data modify storage asset:context this.RightRotation set value {axis:[0f,-1f,0f],angle:0} + +# 上に乗ってるマーカーを指定 + execute on passengers run tag @s add 2168.Target + +# 一時エンティティ召喚 + summon marker ~ ~ ~ {Tags:["2168.Marker.Temp"]} + +# 向き変更…? + execute as @e[type=marker,tag=2168.Marker.Temp,sort=nearest,limit=1] at @s rotated as @e[type=marker,tag=2168.Target,limit=1] run tp @s ~ ~ ~ ~ ~ + execute rotated as @e[type=marker,tag=2168.Target,limit=1] positioned 0.0 0.0 0.0 run tp @e[type=marker,tag=2168.Marker.Temp,limit=1] ^1 ^ ^ ~ ~ + data modify storage asset:context this.LeftRotation.axis set from entity @e[type=marker,tag=2168.Marker.Temp,limit=1] Pos + execute store result storage asset:context this.RightRotation.angle float 0.000001745 run data get entity @e[type=marker,tag=2168.Marker.Temp,limit=1] Rotation[0] 10000 + +# execute幾何学で、縦角度[-90~90]⇒横角度[0~180]に変換 + execute rotated as @e[type=marker,tag=2168.Target,limit=1] rotated -90 ~ positioned 0.0 0.0 0.0 positioned ^ ^ ^1 rotated ~180 ~ positioned ^ ^ ^-1 rotated ~-90 ~ positioned ^ ^1 ^ rotated ~180 ~ positioned ^ ^-1 ^ facing 0.0 0.0 0.0 run tp @e[type=marker,tag=2168.Marker.Temp,limit=1] 0.0 0.0 0.0 ~ ~ + execute store result storage asset:context this.LeftRotation.angle float 0.000001745 run data get entity @e[type=marker,tag=2168.Marker.Temp,limit=1] Rotation[0] 10000 + +# 一時エンティティ削除 + kill @e[type=marker,tag=2168.Marker.Temp,sort=nearest,limit=1] + + +# 一時エンティティ削除: 0 0 0に飛んでるのでdistanceは付けられないかもしれない + kill @e[tag=2168.Marker.Temp,limit=1] + +# ターゲット解除 + execute on passengers run tag @s remove 2168.Target + +# 変形反映 + data modify entity @s transformation.left_rotation set from storage asset:context this.LeftRotation + data modify entity @s transformation.right_rotation set from storage asset:context this.RightRotation + #data modify entity @s transformation.scale set value [1f,100f,1f] + +# アニメの速さを設定 + data modify entity @s start_interpolation set value 0 + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# 変形 + execute if score @s General.Object.Tick matches 2 run function asset:object/2168.general_long_laser/tick/transform/appear + +# 縮む + execute if score @s General.Object.Tick = @s 2168.DisppearTick run function asset:object/2168.general_long_laser/tick/transform/disappear + +# 消滅処理 + execute if score @s General.Object.Tick > @s 2168.LifeTime run kill @s diff --git a/Asset/data/asset/functions/object/2168.general_long_laser/tick/transform/appear.mcfunction b/Asset/data/asset/functions/object/2168.general_long_laser/tick/transform/appear.mcfunction new file mode 100644 index 0000000000..56368f8ca5 --- /dev/null +++ b/Asset/data/asset/functions/object/2168.general_long_laser/tick/transform/appear.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/2168.general_long_laser/tick/transform/appear +# +# +# +# @within function asset:object/2168.general_long_laser/tick/ + +# 指定されたinterpolation_durationに設定 + data modify entity @s interpolation_duration set from storage asset:context this.AppearInterpolation + +# Scaleの値を放り込む + data modify entity @s transformation.scale set from storage asset:context this.Scale diff --git a/Asset/data/asset/functions/object/2168.general_long_laser/tick/transform/disappear.mcfunction b/Asset/data/asset/functions/object/2168.general_long_laser/tick/transform/disappear.mcfunction new file mode 100644 index 0000000000..709f5444d5 --- /dev/null +++ b/Asset/data/asset/functions/object/2168.general_long_laser/tick/transform/disappear.mcfunction @@ -0,0 +1,12 @@ +#> asset:object/2168.general_long_laser/tick/transform/disappear +# +# +# +# @within function asset:object/2168.general_long_laser/tick/ + +# 指定されたinterpolation_durationに設定 + data modify entity @s interpolation_duration set from storage asset:context this.DisappearInterpolation + +# Y以外が小さくなっていく + data modify entity @s transformation.scale[0] set value 0.0f + data modify entity @s transformation.scale[2] set value 0.0f diff --git a/Asset/data/asset/functions/object/alias/2090/register.mcfunction b/Asset/data/asset/functions/object/alias/2090/register.mcfunction new file mode 100644 index 0000000000..92f201f050 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2090/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2090/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2090.magic_square/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2090/summon.mcfunction b/Asset/data/asset/functions/object/alias/2090/summon.mcfunction new file mode 100644 index 0000000000..4b58542d11 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2090/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2090/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2090.magic_square/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2090/tick.mcfunction b/Asset/data/asset/functions/object/alias/2090/tick.mcfunction new file mode 100644 index 0000000000..78d2f166ca --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2090/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2090/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2090.magic_square/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2091/register.mcfunction b/Asset/data/asset/functions/object/alias/2091/register.mcfunction new file mode 100644 index 0000000000..56f5f5a2eb --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2091/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2091/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2091.hyper_laser_manager/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2091/summon.mcfunction b/Asset/data/asset/functions/object/alias/2091/summon.mcfunction new file mode 100644 index 0000000000..6ec9aa93fc --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2091/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2091/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2091.hyper_laser_manager/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2091/tick.mcfunction b/Asset/data/asset/functions/object/alias/2091/tick.mcfunction new file mode 100644 index 0000000000..bb19684a97 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2091/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2091/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2091.hyper_laser_manager/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2092/init.mcfunction b/Asset/data/asset/functions/object/alias/2092/init.mcfunction new file mode 100644 index 0000000000..6a24506133 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2092/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2092/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/2092.ghost_bullet/init/ diff --git a/Asset/data/asset/functions/object/alias/2092/kill.mcfunction b/Asset/data/asset/functions/object/alias/2092/kill.mcfunction new file mode 100644 index 0000000000..da2dda1ee6 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2092/kill.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2092/kill +# +# メソッド処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のメソッド処理を呼び出す + function asset:object/2092.ghost_bullet/kill/ diff --git a/Asset/data/asset/functions/object/alias/2092/recursive.mcfunction b/Asset/data/asset/functions/object/alias/2092/recursive.mcfunction new file mode 100644 index 0000000000..5e84d026d7 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2092/recursive.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2092/recursive +# +# メソッド処理のエイリアス +# +# @within asset_manager:object/call_method/run_method.m + +# 元のメソッド処理を呼び出す + function asset:object/2092.ghost_bullet/recursive/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2092/register.mcfunction b/Asset/data/asset/functions/object/alias/2092/register.mcfunction new file mode 100644 index 0000000000..0a47a476b5 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2092/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2092/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2092.ghost_bullet/register diff --git a/Asset/data/asset/functions/object/alias/2092/summon.mcfunction b/Asset/data/asset/functions/object/alias/2092/summon.mcfunction new file mode 100644 index 0000000000..7b2330b61b --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2092/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2092/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2092.ghost_bullet/summon/ diff --git a/Asset/data/asset/functions/object/alias/2092/tick.mcfunction b/Asset/data/asset/functions/object/alias/2092/tick.mcfunction new file mode 100644 index 0000000000..264dad8ace --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2092/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2092/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2092.ghost_bullet/tick/ diff --git a/Asset/data/asset/functions/object/alias/2093/init.mcfunction b/Asset/data/asset/functions/object/alias/2093/init.mcfunction new file mode 100644 index 0000000000..e76ee534db --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2093/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2093/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/2093.tutankhamen_death/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2093/register.mcfunction b/Asset/data/asset/functions/object/alias/2093/register.mcfunction new file mode 100644 index 0000000000..57f50457cd --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2093/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2093/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2093.tutankhamen_death/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2093/summon.mcfunction b/Asset/data/asset/functions/object/alias/2093/summon.mcfunction new file mode 100644 index 0000000000..84c6fa749f --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2093/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2093/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2093.tutankhamen_death/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2093/tick.mcfunction b/Asset/data/asset/functions/object/alias/2093/tick.mcfunction new file mode 100644 index 0000000000..d40c8a93ae --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2093/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2093/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2093.tutankhamen_death/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2168/init.mcfunction b/Asset/data/asset/functions/object/alias/2168/init.mcfunction new file mode 100644 index 0000000000..f9c1b69fa2 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2168/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2168/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/2168.general_long_laser/init/ diff --git a/Asset/data/asset/functions/object/alias/2168/register.mcfunction b/Asset/data/asset/functions/object/alias/2168/register.mcfunction new file mode 100644 index 0000000000..0015072704 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2168/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2168/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2168.general_long_laser/register diff --git a/Asset/data/asset/functions/object/alias/2168/summon.mcfunction b/Asset/data/asset/functions/object/alias/2168/summon.mcfunction new file mode 100644 index 0000000000..157f0a66bc --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2168/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2168/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2168.general_long_laser/summon/ diff --git a/Asset/data/asset/functions/object/alias/2168/tick.mcfunction b/Asset/data/asset/functions/object/alias/2168/tick.mcfunction new file mode 100644 index 0000000000..071fbea228 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2168/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2168/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2168.general_long_laser/tick/ diff --git a/Asset/data/asset/tags/functions/mob/load.json b/Asset/data/asset/tags/functions/mob/load.json index 48a4f56386..245bc49219 100644 --- a/Asset/data/asset/tags/functions/mob/load.json +++ b/Asset/data/asset/tags/functions/mob/load.json @@ -1,5 +1,6 @@ { "values": [ + "asset:mob/0372.tutankhamen/load", "asset:mob/0380.haruclaire_v3/load", "asset:mob/0311.blazing_inferno/load", "asset:mob/0376.convict_v2/load", diff --git a/Asset/data/asset/tags/functions/object/load.json b/Asset/data/asset/tags/functions/object/load.json index 635c67881a..977cc865cf 100644 --- a/Asset/data/asset/tags/functions/object/load.json +++ b/Asset/data/asset/tags/functions/object/load.json @@ -1,5 +1,8 @@ { "values": [ + "asset:object/2168.general_long_laser/load", + "asset:object/2092.ghost_bullet/load", + "asset:object/2090.magic_square/load", "asset:object/2157.haruclaire_spread_icespear/load", "asset:object/2156.haruclaire_icepillar/load", "asset:object/2155.haruclaire_icelaser/load",