diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/_index.d.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/_index.d.mcfunction new file mode 100644 index 00000000000..439c8128d87 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/_index.d.mcfunction @@ -0,0 +1,139 @@ +#> asset:mob/0456.gargo_ex_machina/_index.d +# @private + +#> tag +# @within function asset:mob/0456.gargo_ex_machina/** + # - 共通 + #declare tag CO.EntityRoot 自分自身 + #declare tag CO.ModelRoot AJモデルのRootEntity + #declare tag CO.Hitbox 当たり判定 + #declare tag CO.CenterPosition 中心点 + #declare tag CO.IsLatter 後半戦 + #declare tag CO.IsRematch 再戦 + #declare tag CO.IsInvulnerable 無敵 + # - スキル + #declare tag CO.Skill.Activate 起動 + #declare tag CO.Skill.Activate.Short 起動・演出短縮版 + #declare tag CO.Skill.ChangeHead 後半戦移行 + #declare tag CO.Skill.Move 移動 + #declare tag CO.Skill.Move.End 移動 + #declare tag CO.Skill.Move.Near 近距離移動 + #declare tag CO.Skill.SwordAttack 剣叩きつけ + #declare tag CO.Skill.SwordAttack.Charge 剣叩きつけ + #declare tag CO.Skill.SwordAttack.Attack 剣叩きつけ + #declare tag CO.Skill.SwordAttack.Double 剣叩きつけ + #declare tag CO.Skill.HalfBeam 半面焼きビーム + #declare tag CO.Skill.HalfBeam.Charge 半面焼きビーム + #declare tag CO.Skill.HalfBeam.Attack 半面焼きビーム + #declare tag CO.Skill.HalfBeam.IsRight 半面焼きビーム + #declare tag CO.Skill.HalfBeamSword 半面焼きビーム + #declare tag CO.Skill.HalfBeamSword.Charge 半面焼きビーム + #declare tag CO.Skill.HalfBeamSword.Attack 半面焼きビーム + #declare tag CO.Skill.HalfBeamSword.IsRight 半面焼きビーム + #declare tag CO.Skill.HalfBeamShot 半面焼きビーム + #declare tag CO.Skill.HalfBeamShot.Charge 半面焼きビーム + #declare tag CO.Skill.HalfBeamShot.Attack 半面焼きビーム + #declare tag CO.Skill.HalfBeamShot.IsRight 半面焼きビーム + #declare tag CO.Skill.SuperJump スーパージャンプ + #declare tag CO.Skill.SuperJump.Attack スーパージャンプ + #declare tag CO.Skill.FieldModify フィールド・モディファイ + #declare tag CO.Skill.Transform.Shoot 銃変形 + #declare tag CO.Skill.Transform.Sword 剣変形 + #declare tag CO.Skill.RocketPunch ロケットパンチ + #declare tag CO.Skill.RocketPunch.Cross 交差ロケットパンチ + #declare tag CO.Skill.RocketPunch.Alter 交互ロケットパンチ + #declare tag CO.Skill.RocketPunch.AlterInv 交互ロケットパンチ + #declare tag CO.Skill.Shot 射撃 + #declare tag CO.Skill.UpperShot 上空射撃 + #declare tag CO.UpperShot.Asyuc 上空射撃攻撃判定用 + #declare tag CO.UpperShot.Pt.Random ランダムパターン + #declare tag CO.UpperShot.Pt.Target 追尾パターン + #declare tag CO.UpperShot.Pt.MoveLine 移動直線範囲パターン + #declare tag CO.UpperShot.Pt.Cross 交差パターン + #declare tag CO.UpperShot.Pt.Panto パンクラパターン + #declare tag CO.Skill.BluteForce ブルートフォースアタック + #declare tag CO.Skill.BluteForce.First ブルートフォースアタック + #declare tag CO.Skill.BluteForce.Async ブルートフォースアタック攻撃判定用 + #declare tag CO.Skill.BluteForce.Pt.Tutorial 全員お披露目パターン + #declare tag CO.Skill.BluteForce.Pt.Spin 回転パターン + #declare tag CO.Skill.BluteForce.Pt.SpinInv 回転パターン + #declare tag CO.Skill.BluteForce.Pt.Exa エクサパターン + #declare tag CO.Skill.BluteForce.Pt.ExaInv エクサパターン + #declare tag CO.Skill.BluteForce.Pt.Half 半面焼きパターン + #declare tag CO.Skill.BluteForce.Pt.HalfInv 半面焼きパターン + # - オブジェクト用 + #declare tag CO.Shadow + #declare tag CO.Object + #declare tag CO.Object.FieldModify + # - 汎用 + #declare tag CO.ScapeSheep + #declare tag CO.MainTarget + #declare tag CO.Aec.Target + #declare tag CO.Temp.Rotation + #declare tag CO.Aec.Destination + #declare tag CO.Aec.AttackPosition + #declare tag CO.Aec.AttackPosition.Init + #declare tag CO.Aec.UpperShotPosition + #declare tag CO.Aec.FieldModify + #declare tag CO.Aec.FieldModify.A + #declare tag CO.Aec.FieldModify.B + #declare tag CO.Aec.FieldModify.C + #declare tag CO.Aec.FieldModify.D + #declare tag CO.Aec.FieldModify.Init + #declare tag CO.Temp.Ground + #declare tag CO.Temp.Dummy + # - 自動生成 + #declare tag aj.global.data + #declare tag aj.gargo_ex_machina.animation.idle.playing + #declare tag aj.gargo_ex_machina.animation.idle_shot.playing + #declare tag aj.gargo_ex_machina.bone.head + #declare function animated_java:gargo_ex_machina/summon + #declare function animated_java:gargo_ex_machina/as_own_locator_entities + #declare function animated_java:gargo_ex_machina/animations/pause_all + #declare function animated_java:gargo_ex_machina/animations/idle/tween + #declare function animated_java:gargo_ex_machina/animations/activation/tween + #declare function animated_java:gargo_ex_machina/animations/change_head_start/tween + #declare function animated_java:gargo_ex_machina/animations/change_head/tween + #declare function animated_java:gargo_ex_machina/animations/move_to_field_fast/resume + #declare function animated_java:gargo_ex_machina/animations/move_to_field_fast/tween + #declare function animated_java:gargo_ex_machina/animations/move_to_field_fast/pause + #declare function animated_java:gargo_ex_machina/animations/move_to_field_short/tween + #declare function animated_java:gargo_ex_machina/animations/sword_smash_start/tween + #declare function animated_java:gargo_ex_machina/animations/sword_smash_charge/tween + #declare function animated_java:gargo_ex_machina/animations/sword_smash_attack/tween + #declare function animated_java:gargo_ex_machina/animations/sword_smash_attack/pause + #declare function animated_java:gargo_ex_machina/animations/sword_smash_attack/resume + #declare function animated_java:gargo_ex_machina/animations/sword_smash_attack_double/tween + #declare function animated_java:gargo_ex_machina/animations/beam_start/tween + #declare function animated_java:gargo_ex_machina/animations/beam_charge/tween + #declare function animated_java:gargo_ex_machina/animations/beam_attack_right/tween + #declare function animated_java:gargo_ex_machina/animations/beam_attack_left/tween + #declare function animated_java:gargo_ex_machina/animations/beam_end/tween + #declare function animated_java:gargo_ex_machina/animations/beam_sword_start/tween + #declare function animated_java:gargo_ex_machina/animations/beam_sword_charge/tween + #declare function animated_java:gargo_ex_machina/animations/beam_sword_attack_right/tween + #declare function animated_java:gargo_ex_machina/animations/beam_sword_attack_left/tween + #declare function animated_java:gargo_ex_machina/animations/beam_shot_start/tween + #declare function animated_java:gargo_ex_machina/animations/beam_shot_charge/tween + #declare function animated_java:gargo_ex_machina/animations/beam_shot_attack_right/tween + #declare function animated_java:gargo_ex_machina/animations/beam_shot_attack_left/tween + #declare function animated_java:gargo_ex_machina/animations/walk_start/tween + #declare function animated_java:gargo_ex_machina/animations/walk/tween + #declare function animated_java:gargo_ex_machina/animations/walk_end/tween + #declare function animated_java:gargo_ex_machina/animations/super_jump_start/tween + #declare function animated_java:gargo_ex_machina/animations/super_jump_end/tween + #declare function animated_java:gargo_ex_machina/animations/super_jump_end/pause + #declare function animated_java:gargo_ex_machina/animations/super_jump_end/resume + #declare function animated_java:gargo_ex_machina/animations/call_drone/tween + #declare function animated_java:gargo_ex_machina/animations/call_drone_first/tween + #declare function animated_java:gargo_ex_machina/animations/change_to_shot/tween + #declare function animated_java:gargo_ex_machina/animations/change_to_sword/tween + #declare function animated_java:gargo_ex_machina/animations/idle_shot/tween + #declare function animated_java:gargo_ex_machina/animations/shot_target_spin/tween + #declare function animated_java:gargo_ex_machina/animations/shot_upper/tween + #declare function animated_java:gargo_ex_machina/animations/summon_punch/tween + #declare function animated_java:gargo_ex_machina/variants/blue/apply + #declare function animated_java:gargo_ex_machina/remove/all + #declare function animated_java:gem_attack_drone/remove/all + #declare function animated_java:gem_tnt_drone/remove/all + #declare function animated_java:gem_panjan_drone/remove/all diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/death/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/death/.mcfunction new file mode 100644 index 00000000000..685df142f0f --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/death/.mcfunction @@ -0,0 +1,65 @@ +#> asset:mob/0456.gargo_ex_machina/death/ +# +# Mobの死亡時の処理 +# +# @within function asset:mob/alias/456/death + +#> Val +# @private + #declare score_holder $Min + #declare score_holder $Sec + +# 継承元の処理実行 + function asset:mob/super.death + +# kill時のparticleが見えないように + tp @s ~ ~-100 ~ + +# 死亡演出 + data modify storage api: Argument.ID set value 2273 + function api:object/summon + +# 中心点消去 + kill @e[type=marker,tag=CO.CenterPosition] + +# 当たり判定消去 + execute as @e[type=item_display,tag=CO.ModelRoot] run function animated_java:gargo_ex_machina/as_own_locator_entities {command:'function asset:mob/0456.gargo_ex_machina/death/kill_hitbox'} + # function animated_java:gargo_ex_machina/remove/all + +# その他リセット + # function asset:mob/0456.gargo_ex_machina/tick/util/remove_all_tag + bossbar remove asset:co_field_modify + bossbar remove asset:co_gem_former + +# オブジェクト消去 + function animated_java:gem_attack_drone/remove/all + function animated_java:gem_tnt_drone/remove/all + function animated_java:gem_panjan_drone/remove/all + execute as @e[tag=CO.Object,distance=..160] on passengers run kill @s + kill @e[tag=CO.Object,distance=..160] + +# 石像移動 + function asset:mob/0456.gargo_ex_machina/death/clone_statue + +# --- + tellraw @a[distance=..80] [{"text":"-------------------------------------------------"}] + +# クリアタイム表示 + execute store result score $Sec Temporary store result score $Min Temporary run scoreboard players operation @s CO.BattleTimer /= $20 Const + scoreboard players operation $Min Temporary /= $60 Const + scoreboard players operation $Sec Temporary %= $60 Const + execute if score $Sec Temporary matches 10.. run tellraw @a[distance=..80] [{"text":"【 クリアタイム:"},{"score":{"name":"$Min","objective":"Temporary"}},{"text": ":"},{"score":{"name":"$Sec","objective":"Temporary"}},{"text": " !! 】"}] + execute if score $Sec Temporary matches ..9 run tellraw @a[distance=..80] [{"text":"【 クリアタイム:"},{"score":{"name":"$Min","objective":"Temporary"}},{"text": ":0"},{"score":{"name":"$Sec","objective":"Temporary"}},{"text": " !! 】"}] + scoreboard players reset $Min Temporary + scoreboard players reset $Sec Temporary + +# DPS表示 + scoreboard players operation @s CO.ActualHealth /= @s CO.DpsTimer + scoreboard players operation @s CO.ActualHealth *= $20 Const + tellraw @a[distance=..80] [{"text":"【 DPS:"},{"score":{"name":"@s","objective":"CO.ActualHealth"}},{"text": " !! 】"}] + +# --- + tellraw @a[distance=..80] [{"text":"-------------------------------------------------"}] + +# 再戦フラグ用marker設置 + execute unless entity @e[type=marker,tag=CO.IsRematch,distance=..30] run summon marker ~ ~ ~ {Tags:["CO.IsRematch"]} diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/death/clone_statue.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/death/clone_statue.mcfunction new file mode 100644 index 00000000000..59c42e5b7d4 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/death/clone_statue.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0456.gargo_ex_machina/death/clone_statue +# +# Mobのinit時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/death/ + +# 石像を移動 + execute positioned 520 0 834 run clone ~ ~ ~ ~14 ~19 ~3 ~ 91 ~ + execute positioned 520 0 834 run fill ~ ~ ~ ~14 ~19 ~3 air diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/death/kill_hitbox.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/death/kill_hitbox.mcfunction new file mode 100644 index 00000000000..c303722465e --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/death/kill_hitbox.mcfunction @@ -0,0 +1,11 @@ +#> asset:mob/0456.gargo_ex_machina/death/kill_hitbox +# +# Mobの死亡時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/death/ +# @within asset:mob/0456.gargo_ex_machina/remove/ + +# 当たり判定消去 + execute if entity @s[type=slime] run data merge entity @s {Size:0,Tags:["CO.Temp.Dummy"]} + execute if entity @s[type=slime] run tp @s ~ ~-100 ~ + kill @s[type=slime] diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/hurt/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/hurt/.mcfunction new file mode 100644 index 00000000000..b6136000404 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/hurt/.mcfunction @@ -0,0 +1,23 @@ +#> asset:mob/0456.gargo_ex_machina/hurt/ +# +# Mobのダメージ時の処理 +# +# @within function asset:mob/alias/456/hurt + +# 継承元の処理実行 + function asset:mob/super.hurt + +# 効果音 + playsound entity.generic.hurt hostile @a ~ ~ ~ 1 1 + +# 前半戦 + execute unless entity @s[tag=CO.IsLatter] run function asset:mob/0456.gargo_ex_machina/tick/util/update_former_bossbar + +# フェーズ処理 + # 残HP割合取得 + function api:mob/get_health_percent + execute store result score $HealthPer Temporary run data get storage api: Return.HealthPer 100 + # フェーズ移行 + execute unless entity @s[tag=CO.IsLatter] if score $HealthPer Temporary matches ..40 run function asset:mob/0456.gargo_ex_machina/tick/event/change_head/start + # 終了 + scoreboard players reset $HealthPer Temporary diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/init/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/init/.mcfunction new file mode 100644 index 00000000000..00249d5175e --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/init/.mcfunction @@ -0,0 +1,45 @@ +#> asset:mob/0456.gargo_ex_machina/init/ +# +# Mobのinit時の処理 +# +# @within asset:mob/alias/456/init + +# AJロード + # data modify storage asset:datapack ActivationState set value [{Datapack:"gargo_ex_machina",Active:true}] + # function asset:datapack/set_activation_state + +# 継承元の処理実行 + function asset:mob/super.init + +# 再戦フラグチェック + execute if entity @e[type=marker,tag=CO.IsRematch,distance=..80] run tag @s add CO.IsRematch + +# 独自init処理 + # 登場演出再生 + # tag @s add CO.Skill.Start + # 中心点設置 + summon marker ~ ~0.5 ~ {Tags:["CO.CenterPosition"]} + execute as @e[type=marker,tag=CO.CenterPosition] at @s run tp @s ~ ~ ~ 0 0 + # NBT設定 + # Aj関連初期化 + function asset:mob/0456.gargo_ex_machina/init/animated_java.m with storage asset:context this.FirstPos + # じゃまにならないよう移動 + execute at @e[type=marker,tag=CO.CenterPosition] run tp @s ~ ~10 ~ + # スコア初期化 + scoreboard players set @s CO.EventTimer 0 + scoreboard players set @s CO.Counter 0 + +# ダミー用ひつじ召喚 + execute unless entity @s[tag=CO.IsRematch] run data modify storage api: Argument.ID set value 2264 + execute unless entity @s[tag=CO.IsRematch] run function api:object/summon + +# 登場モーション再生 + tag @s add CO.Skill.Activate + # 再戦フラグ有効の場合、短縮版登場モーションを再生する + execute if entity @s[tag=CO.IsRematch] run tag @s add CO.Skill.Activate.Short + +# DPSタイマー計算開始 + function asset:mob/0456.gargo_ex_machina/init/set_dps_timer + +# デバッグ + # tag @s add CO.IsLatter diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/init/animated_java.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/init/animated_java.m.mcfunction new file mode 100644 index 00000000000..15d12784501 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/init/animated_java.m.mcfunction @@ -0,0 +1,23 @@ +#> asset:mob/0456.gargo_ex_machina/init/animated_java.m +# +# 初期化処理 Aj関連 +# +# @within asset:mob/0456.gargo_ex_machina/init/ + +# AjModelの召喚 + # execute positioned 527.5 91.0 836.0 rotated 180 ~ run function animated_java:gargo_ex_machina/summon {args: {animation: 'activation'}} + $execute unless entity @s[tag=CO.IsRematch] positioned $(X) $(Y) $(Z) rotated 180 ~ run function animated_java:gargo_ex_machina/summon {args: {animation: 'activation'}} + execute if entity @s[tag=CO.IsRematch] positioned ^ ^ ^15 rotated 180 ~ run function animated_java:gargo_ex_machina/summon {args: {animation: 'move_to_field_short'}} + # AjModelのパーツに以下処理を実行する + execute as @e[type=item_display,tag=CO.ModelRoot,distance=..80] run data merge entity @s {view_range:16f,width:0f,height:0f,teleport_duration:2} + execute as @e[type=item_display,tag=CO.ModelRoot,distance=..80] on passengers if entity @s[type=item_display] run data merge entity @s {view_range:16f,width:0f,height:0f,teleport_duration:2} + # Locatorの初期化 + execute as @e[type=item_display,tag=CO.ModelRoot,distance=..80] run function animated_java:gargo_ex_machina/as_own_locator_entities {command:'function asset:mob/0456.gargo_ex_machina/init/locator'} + +# スコア初期化 + execute as @e[type=item_display,tag=CO.ModelRoot,distance=..80] run scoreboard players set @s CO.EventTimer 0 + execute as @e[type=item_display,tag=CO.ModelRoot,distance=..80] run scoreboard players set @s CO.IdleTimer 60 + +# テスト + # 待機モーション再生 + # execute as @e[type=item_display,tag=CO.ModelRoot] at @s run function animated_java:gargo_ex_machina/animations/idle/tween {duration:1, to_frame: 1} diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/init/clone_statue.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/init/clone_statue.mcfunction new file mode 100644 index 00000000000..1e705db5282 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/init/clone_statue.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/activate/clone_statue +# +# 起動 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/activate/ + +# 石像を移動 + execute positioned 520 91 834 run clone ~ ~ ~ ~14 ~19 ~3 ~ 0 ~ + execute positioned 520 91 834 run fill ~ ~ ~ ~14 ~19 ~3 air diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/init/locator.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/init/locator.mcfunction new file mode 100644 index 00000000000..c8bf14242bf --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/init/locator.mcfunction @@ -0,0 +1,19 @@ +#> asset:mob/0456.gargo_ex_machina/init/locator +# +# 初期化処理 Aj関連 +# +# @within asset:mob/0456.gargo_ex_machina/init/animated_java.m + +# slime以外では実行しない + execute unless entity @s[type=slime] run return 0 + +# Locatorに以下処理を実行する + data merge entity @s {CustomName:'{"text":"絡繰仕掛の石像","italic":false}',Silent:1b,NoAI:1b,DeathLootTable:"minecraft:empty",PersistenceRequired :1b,Attributes:[{Name:"generic.max_health",Base:1024d}],ArmorDropChances:[0.000f,0.000f,0.000f,0.000f]} + scoreboard players operation @s ForwardTargetMobUUID = @e[type=slime,tag=CO.EntityRoot,limit=1] MobUUID + tag @s add Enemy + tag @s add Enemy.Boss + tag @s add ExtendedCollision + tag @s add AlwaysInvisible + tag @s add ProcessCommonTag + tag @s add CO.Hitbox + # effect give @s instant_health infinite 0 true diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/init/set_dps_timer.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/init/set_dps_timer.mcfunction new file mode 100644 index 00000000000..1c994d6507e --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/init/set_dps_timer.mcfunction @@ -0,0 +1,11 @@ +#> asset:mob/0456.gargo_ex_machina/init/set_dps_timer +# +# Mobのinit時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/init/ + +# 実HP計算 + function api:mob/get_max_health + execute store result score @s CO.ActualHealth run data get storage api: Return.MaxHealth 1 + data remove storage api: Return + scoreboard players set @s CO.DpsTimer 0 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/load.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/load.mcfunction new file mode 100644 index 00000000000..f89f9b8962f --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/load.mcfunction @@ -0,0 +1,31 @@ +#> asset:mob/0456.gargo_ex_machina/load +# +# Mobに利用するスコアボード等の初期化処理 +# +# @within tag/function asset:mob/load + +#> 定義類はここに +# @within function asset:mob/0456.gargo_ex_machina/** + scoreboard objectives add CO.EventTimer dummy + scoreboard objectives add CO.EventTimer.UpperShot dummy + scoreboard objectives add CO.EventTimer.BluteForce dummy + scoreboard objectives add CO.FieldModify.Color dummy + scoreboard objectives add CO.Counter dummy + scoreboard objectives add CO.IdleTimer dummy + scoreboard objectives add CO.PreTimer dummy + scoreboard objectives add CO.JumpCount dummy + scoreboard objectives add CO.BattleTimer dummy + scoreboard objectives add CO.DpsTimer dummy + scoreboard objectives add CO.HealthOffset dummy + scoreboard objectives add CO.ActualHealth dummy +#> Object管理用 +# @within function asset:mob/0456.gargo_ex_machina/** +# @within function asset:object/2260.gem_attack_drone/** +# @within function asset:object/2261.gem_yeeter_drone/** +# @within function asset:object/2262.gem_panjan_drone/** +# @within function asset:object/2269.gem_rocket_punch/** + scoreboard objectives add CO.ObjectId dummy +#> Object管理用 +# @within function asset:mob/0456.gargo_ex_machina/** +# @within function asset:mob/2268.gem_upper_shot/** + scoreboard objectives add CO.UpperShot.Hit dummy diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/register.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/register.mcfunction new file mode 100644 index 00000000000..392f491d2c8 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/register.mcfunction @@ -0,0 +1,62 @@ +#> asset:mob/0456.gargo_ex_machina/register +# +# Mobのデータを指定 +# +# @within function asset:mob/alias/456/register + +# 継承 (int) (オプション) + data modify storage asset:mob Extends append value 2000 + function asset:mob/extends +# 継承されることを前提とした、抽象的なモブであるかどうか(boolean) + data modify storage asset:mob IsAbstract set value false +# ID (int) + data modify storage asset:mob ID set value 456 +# Type (string) Wikiを参照 + data modify storage asset:mob Type set value "Enemy.Boss" +# 干渉可能か否か (boolean) + data modify storage asset:mob Interferable set value false + data modify storage asset:mob IsForwardTarget set value true +# 名前 (TextComponentString) (オプション) + data modify storage asset:mob Name set value '{"text":"絡繰仕掛の石像"}' +# Mobの説明文 (TextComponentString[]) (オプション) + data modify storage asset:mob Lore set value ['{"text":" > Exception in thread \\"main\\": java.lang.NullPointerException","color":"red"}','{"text":" at item.artifact.getLore(atf/0001.book_of_all-seeing)","color":"red"}','{"text":" Caused by: java.util.NoSuchElementException: Missing \'Lore\'","color":"red"}'] +# 体力 (double) (オプション) +# 前後半戦で回復するので実態の半分の値を入れる + data modify storage asset:mob Health set value 237000 +# 属性倍率 // 1.0fで100% 最低でも25%は軽減されずに入る + # 物理倍率 (float) (オプション) + data modify storage asset:mob Resist.Physical set value 1.0f + # 魔法倍率 (float) (オプション) + data modify storage asset:mob Resist.Magic set value 1.0f + # 火倍率 (float) (オプション) + data modify storage asset:mob Resist.Fire set value 1.0f + # 水倍率 (float) (オプション) + data modify storage asset:mob Resist.Water set value 1.0f + # 雷倍率 (float) (オプション) + data modify storage asset:mob Resist.Thunder set value 1.0f +# フィールド + # 石像の初期位置 + data modify storage asset:mob Field.FirstPos.X set value 527.5 + data modify storage asset:mob Field.FirstPos.Y set value 91.0 + data modify storage asset:mob Field.FirstPos.Z set value 836.0 + # フェーズチェンジ + data modify storage asset:mob Field.Damage.ChangeHead set value {Amount:500.0,Type:"Physical",Element:"None"} + # 剣叩きつけ + data modify storage asset:mob Field.Damage.SwordAttack set value {Amount:80.0,Type:"Physical",Element:"None"} + # 半面焼きビーム + data modify storage asset:mob Field.Damage.HalfBeam set value {Amount:110.0,Type:"Magic",Element:"None"} + # 半面焼きビーム・回転斬り部分 + data modify storage asset:mob Field.Damage.HalfBeamSword set value {Amount:100.0,Type:"Physical",Element:"None"} + # スーパージャンプ + data modify storage asset:mob Field.Damage.SuperJump set value {Amount:90.0,Type:"Physical",Element:"None"} + # 色床 + data modify storage asset:mob Field.Damage.FieldModify set value {Amount:120.0,Type:"Magic",Element:"None"} + # 射撃 + data modify storage asset:mob Field.Damage.Shot set value {Amount:65.0,Type:"Magic",Element:"None"} + # ロケットパンチ + data modify storage asset:mob Field.Damage.RocketPunch set value {Amount:80.0,Type:"Physical",Element:"None"} + # ドローン + data modify storage asset:mob Field.Damage.AttackDrone set value {Amount:90.0,Type:"Physical",Element:"None"} + data modify storage asset:mob Field.Damage.YeeterDrone set value {Amount:90.0,Type:"Physical",Element:"None"} + data modify storage asset:mob Field.Damage.PanjanDrone set value {Amount:90.0,Type:"Physical",Element:"None"} + data modify storage asset:mob Field.Damage.PanjanDrone.Flame set value {Amount:40.0,Type:"Magic",Element:"Fire"} diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/remove/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/remove/.mcfunction new file mode 100644 index 00000000000..6e524c561cf --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/remove/.mcfunction @@ -0,0 +1,40 @@ +#> asset:mob/0456.gargo_ex_machina/remove/ +# +# 天使が居なくなる際に実行される処理 +# +# @within asset:mob/alias/456/remove + +# 継承元の処理実行 + function asset:mob/super.remove + +# kill時のparticleが見えないように + tp @s ~ ~-100 ~ + +# 中心点消去 + kill @e[type=marker,tag=CO.CenterPosition] + +# Ajモデル消去 + # execute as @e[type=item_display,tag=BE.ModelRoot] on passengers if entity @s[type=snowball] on origin run data merge entity @s {Size:0,Tags:["BE.Temp.Dummy"]} + # execute as @e[type=slime,tag=BE.Temp.Dummy] run tp @s ~ ~100 ~ + # kill @e[type=slime,tag=BE.Temp.Dummy] + # execute as @e[type=item_display,tag=CO.ModelRoot] run function animated_java:gargo_ex_machina/as_own_locator_entities {command:'function asset:mob/0456.gargo_ex_machina/remove/kill_hitbox'} + # function animated_java:gargo_ex_machina/remove/all + +# 当たり判定消去 + execute as @e[type=item_display,tag=CO.ModelRoot] run function animated_java:gargo_ex_machina/as_own_locator_entities {command:'function asset:mob/0456.gargo_ex_machina/death/kill_hitbox'} + function animated_java:gargo_ex_machina/remove/all + +# その他リセット + # function asset:mob/0456.gargo_ex_machina/tick/util/remove_all_tag + bossbar remove asset:co_field_modify + bossbar remove asset:co_gem_former + +# オブジェクト消去 + function animated_java:gem_attack_drone/remove/all + function animated_java:gem_tnt_drone/remove/all + function animated_java:gem_panjan_drone/remove/all + execute as @e[tag=CO.Object,distance=..160] on passengers run kill @s + kill @e[tag=CO.Object,distance=..160] + +# 石像移動 + function asset:mob/0456.gargo_ex_machina/remove/clone_statue diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/remove/clone_statue.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/remove/clone_statue.mcfunction new file mode 100644 index 00000000000..c1bf0150788 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/remove/clone_statue.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0456.gargo_ex_machina/remove/clone_statue +# +# Mobのinit時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/remove/ + +# 石像を移動 + execute positioned 520 0 834 run clone ~ ~ ~ ~14 ~19 ~3 ~ 91 ~ + execute positioned 520 0 834 run fill ~ ~ ~ ~14 ~19 ~3 air diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/summon/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/summon/.mcfunction new file mode 100644 index 00000000000..f943ade3e0c --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0456.gargo_ex_machina/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:mob/alias/456/summon + +# 元となるEntityを召喚する + summon slime ~ ~ ~ {Tags:["MobInit","ProcessCommonTag","AlwaysInvisible","CO.EntityRoot"],Size:0,NoAI:1b,Silent:1b,DeathLootTable:"empty"} diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/summon/debug.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/summon/debug.mcfunction new file mode 100644 index 00000000000..717040d75b6 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0456.gargo_ex_machina/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 456 + function api:mob/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/.mcfunction new file mode 100644 index 00000000000..176b38bf6de --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/.mcfunction @@ -0,0 +1,16 @@ +#> asset:mob/0456.gargo_ex_machina/tick/ +# +# Mobのtick時の処理 +# +# @within asset:mob/alias/456/tick + +# スキル用イベントハンドラ + function asset:mob/0456.gargo_ex_machina/tick/event/ + +# 多重ヒット防止 + execute as @a[scores={CO.UpperShot.Hit=1..}] run scoreboard players remove @s CO.UpperShot.Hit 1 + execute as @a[scores={CO.UpperShot.Hit=..0}] run scoreboard players reset @s CO.UpperShot.Hit + +# 戦闘タイマー増加 + execute if entity @s[tag=!CO.Skill.Activate,tag=!CO.Skill.ChangeHead] run scoreboard players add @s CO.BattleTimer 1 + execute if entity @s[tag=!CO.IsInvulnerable] run scoreboard players add @s CO.DpsTimer 1 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/.mcfunction new file mode 100644 index 00000000000..677c882faf7 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/.mcfunction @@ -0,0 +1,31 @@ +#> asset:mob/0456.gargo_ex_machina/tick/act/ +# +# Mobのtick時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +# debug + # return 0 + +# 行動リセット + function asset:mob/0456.gargo_ex_machina/tick/util/remove_animation_tag + # execute as @e[type=item_display,tag=CO.ModelRoot,distance=..30,sort=nearest,limit=1] unless entity @s[tag=aj.gargo_ex_machina.animation.idle.playing] run function animated_java:gargo_ex_machina/animations/idle/tween {duration:1, to_frame: 1} + +# ターゲット変更 + function asset:mob/0456.gargo_ex_machina/tick/util/change_target + +# 待機時間仮設定 + scoreboard players set @e[type=item_display,tag=CO.ModelRoot,distance=..30] CO.EventTimer 0 + scoreboard players set @e[type=item_display,tag=CO.ModelRoot,distance=..30] CO.IdleTimer 2 + +# 行動回数増加 + scoreboard players set @s CO.EventTimer -1 + scoreboard players add @s CO.Counter 1 + +# 前半戦 + execute unless entity @s[tag=CO.IsLatter] run function asset:mob/0456.gargo_ex_machina/tick/act/phase_1/ + +# 後半 + execute if entity @s[tag=CO.IsLatter] run function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/ + +# say act diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_1/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_1/.mcfunction new file mode 100644 index 00000000000..e0e57d69418 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_1/.mcfunction @@ -0,0 +1,107 @@ +#> asset:mob/0456.gargo_ex_machina/tick/act/phase_1/ +# +# Mobのtick時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/tick/act/ + +# 最初に戻る + execute if score @s CO.Counter matches 38.. run scoreboard players set @s CO.Counter 18 + +# 四隅に移動 + execute if score @s CO.Counter matches ..1 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_1/move_to_corner +# 剣叩きつけ + execute if score @s CO.Counter matches 2 run tag @s add CO.Skill.SwordAttack +# 待機 + execute if score @s CO.Counter matches 3 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 80 +# ロケットパンチ + execute if score @s CO.Counter matches 4 run scoreboard players set @s CO.PreTimer 140 + execute if score @s CO.Counter matches 4 run tag @s add CO.Skill.RocketPunch +# スーパージャンプ + execute if score @s CO.Counter matches 5 run scoreboard players set @s CO.PreTimer 150 + execute if score @s CO.Counter matches 5 run tag @s add CO.Skill.SuperJump +# 中心に移動 + execute if score @s CO.Counter matches 6 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_1/move_to_center +# 薙ぎ払いレーザー + execute if score @s CO.Counter matches 7 run tag @s add CO.Skill.HalfBeam +# 待機 + execute if score @s CO.Counter matches 8 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 80 +# 銃変形 + execute if score @s CO.Counter matches 9 run tag @s add CO.Skill.Transform.Shoot +# プレイヤー狙い弾 + execute if score @s CO.Counter matches 10 run tag @s add CO.Skill.Shot +# 待機 + execute if score @s CO.Counter matches 11 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 40 +# 上空射撃・ランダムパターン + execute if score @s CO.Counter matches 12 run tag @s add CO.UpperShot.Pt.Random + execute if score @s CO.Counter matches 12 run tag @s add CO.Skill.UpperShot +# 待機 + execute if score @s CO.Counter matches 13 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 60 +# 剣変形 + execute if score @s CO.Counter matches 14 run tag @s add CO.Skill.Transform.Sword +# フィールドモディファイ + execute if score @s CO.Counter matches 15 run scoreboard players set @s CO.PreTimer 2 + execute if score @s CO.Counter matches 15 run tag @s add CO.Skill.FieldModify +# 中央にスーパージャンプ + execute if score @s CO.Counter matches 16 run scoreboard players set @s CO.PreTimer 520 + execute if score @s CO.Counter matches 16 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] run summon area_effect_cloud ^ ^ ^ {Tags:["CO.Aec.Destination"],Duration:80} + execute if score @s CO.Counter matches 16 run tag @s add CO.Skill.SuperJump +# 待機 + execute if score @s CO.Counter matches 17 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 100 + +# 以下ループ +## ロケットパンチ + 剣 + # ロケットパンチ + execute if score @s CO.Counter matches 18 run scoreboard players set @s CO.PreTimer 140 + execute if score @s CO.Counter matches 18 run tag @s add CO.Skill.RocketPunch + # 四隅に移動 + execute if score @s CO.Counter matches 19 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_1/move_to_corner + # 剣叩きつけ + execute if score @s CO.Counter matches 20 run tag @s add CO.Skill.SwordAttack +# 待機 + execute if score @s CO.Counter matches 21 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 80 +## 上空射撃 + 通常射撃 + # 中心に移動 + execute if score @s CO.Counter matches 22 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_1/move_to_center + # 銃変形 + execute if score @s CO.Counter matches 23 run tag @s add CO.Skill.Transform.Shoot + # 上空射撃・追尾パターン + execute if score @s CO.Counter matches 24 run tag @s add CO.UpperShot.Pt.Target + execute if score @s CO.Counter matches 24 run tag @s add CO.Skill.UpperShot + # プレイヤー狙い弾 + execute if score @s CO.Counter matches 25 run tag @s add CO.Skill.Shot +# 待機 + execute if score @s CO.Counter matches 26 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 120 +## 交差ロケットパンチ + # 剣変形 + execute if score @s CO.Counter matches 27 run tag @s add CO.Skill.Transform.Sword + # ロケットパンチ1回目 + execute if score @s CO.Counter matches 28 run tag @s add CO.Skill.RocketPunch.Cross + execute if score @s CO.Counter matches 28 run scoreboard players set @s CO.PreTimer 180 + execute if score @s CO.Counter matches 28 run tag @s add CO.Skill.RocketPunch + # 待機 + execute if score @s CO.Counter matches 29 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 40 + # ロケットパンチ2回目 + execute if score @s CO.Counter matches 30 as @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] at @s run tp @s ~ ~ ~ ~180 0 + execute if score @s CO.Counter matches 30 run tag @s add CO.Skill.RocketPunch.Cross + execute if score @s CO.Counter matches 30 run scoreboard players set @s CO.PreTimer 280 + execute if score @s CO.Counter matches 30 run tag @s add CO.Skill.RocketPunch + # スーパージャンプ + execute if score @s CO.Counter matches 31 run scoreboard players set @s CO.PreTimer 240 + execute if score @s CO.Counter matches 31 run tag @s add CO.Skill.SuperJump +# 待機 + execute if score @s CO.Counter matches 32 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 120 +# 中心に移動 + execute if score @s CO.Counter matches 33 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_1/move_to_center +## 薙ぎ払いレーザー + execute if score @s CO.Counter matches 34 run tag @s add CO.Skill.HalfBeam +## モディファイ + 連続ジャンプ + # フィールドモディファイ・四分割パターン + execute if score @s CO.Counter matches 35 as @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] at @s positioned ~ ~-0.499 ~ rotated 0 0 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_1/field_modify_square + execute if score @s CO.Counter matches 35 run scoreboard players set @s CO.PreTimer 2 + execute if score @s CO.Counter matches 35 run tag @s add CO.Skill.FieldModify + # 連続スーパージャンプ + execute if score @s CO.Counter matches 36 run scoreboard players set @s CO.JumpCount 4 + execute if score @s CO.Counter matches 36 run scoreboard players set @s CO.PreTimer 40 + execute if score @s CO.Counter matches 36 run tag @s add CO.Skill.SuperJump +# 待機 + execute if score @s CO.Counter matches 37 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 200 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_1/field_modify_square.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_1/field_modify_square.mcfunction new file mode 100644 index 00000000000..263989c051f --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_1/field_modify_square.mcfunction @@ -0,0 +1,27 @@ +#> asset:mob/0456.gargo_ex_machina/tick/act/phase_1/field_modify_square +# +# フィールド・モディファイ +# +# @within asset:mob/0456.gargo_ex_machina/tick/act/phase_1/ + +# 位置決定用AEC召喚 + # A + summon area_effect_cloud ^22.5 ^ ^7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.A"],Duration:80} + summon area_effect_cloud ^7.5 ^ ^7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.A"],Duration:80} + summon area_effect_cloud ^7.5 ^ ^22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.A"],Duration:80} + summon area_effect_cloud ^22.5 ^ ^22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.A"],Duration:80} + # B + summon area_effect_cloud ^-22.5 ^ ^7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.B"],Duration:80} + summon area_effect_cloud ^-7.5 ^ ^7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.B"],Duration:80} + summon area_effect_cloud ^-22.5 ^ ^22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.B"],Duration:80} + summon area_effect_cloud ^-7.5 ^ ^22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.B"],Duration:80} + # C + summon area_effect_cloud ^7.5 ^ ^-7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.C"],Duration:80} + summon area_effect_cloud ^22.5 ^ ^-7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.C"],Duration:80} + summon area_effect_cloud ^7.5 ^ ^-22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.C"],Duration:80} + summon area_effect_cloud ^22.5 ^ ^-22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.C"],Duration:80} + # D + summon area_effect_cloud ^-22.5 ^ ^-7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.D"],Duration:80} + summon area_effect_cloud ^-7.5 ^ ^-7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.D"],Duration:80} + summon area_effect_cloud ^-22.5 ^ ^-22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.D"],Duration:80} + summon area_effect_cloud ^-7.5 ^ ^-22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.D"],Duration:80} diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_1/move_to_center.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_1/move_to_center.mcfunction new file mode 100644 index 00000000000..5c2bd94e30b --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_1/move_to_center.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0456.gargo_ex_machina/tick/act/phase_1/move_to_center +# +# Mobのtick時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/tick/act/phase_1/ + +# 中心点に移動 + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] run summon area_effect_cloud ^ ^ ^ {Tags:["CO.Aec.Destination"],Duration:80} + tag @s add CO.Skill.Move diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_1/move_to_corner.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_1/move_to_corner.mcfunction new file mode 100644 index 00000000000..becba8d3ac9 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_1/move_to_corner.mcfunction @@ -0,0 +1,27 @@ +#> asset:mob/0456.gargo_ex_machina/tick/act/phase_1/move_to_corner +# +# Mobのtick時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/tick/act/phase_1/ + +#> Private +# @within function asset:mob/0456.gargo_ex_machina/tick/act/phase_1/move_to_corner + #declare score_holder $CO.Temp.Rotation + +# 中心点ランダム回転 + execute store result score $CO.Temp.Rotation Global run random value 0..3 + execute store result entity @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] Rotation[0] float 1 run scoreboard players operation $CO.Temp.Rotation Global *= $90 Const + scoreboard players reset $CO.Temp.Rotation + +# 4隅にポイント召喚 + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~45 ~ run summon area_effect_cloud ^ ^ ^32 {Tags:["CO.Aec.Destination"],Duration:80} + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~135 ~ run summon area_effect_cloud ^ ^ ^32 {Tags:["CO.Aec.Destination"],Duration:80} + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~225 ~ run summon area_effect_cloud ^ ^ ^32 {Tags:["CO.Aec.Destination"],Duration:80} + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~315 ~ run summon area_effect_cloud ^ ^ ^32 {Tags:["CO.Aec.Destination"],Duration:80} + +# 自身に近い位置と、ランダム2か所を削除 + kill @e[type=area_effect_cloud,tag=CO.Aec.Destination,distance=..80,sort=nearest,limit=1] + kill @e[type=area_effect_cloud,tag=CO.Aec.Destination,distance=..80,sort=random,limit=2] + +# 終了 + tag @s add CO.Skill.Move diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/.mcfunction new file mode 100644 index 00000000000..01a0b591fa6 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/.mcfunction @@ -0,0 +1,154 @@ +#> asset:mob/0456.gargo_ex_machina/tick/act/phase_2/ +# +# Mobのtick時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/tick/act/ + +# ループ + execute if score @s CO.Counter matches 54.. run scoreboard players set @s CO.Counter 10 + +## ブルートフォース:チュートリアル + # 四辺に移動 + execute if score @s CO.Counter matches ..1 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_line + # ブルートフォース・チュートリアル + execute if score @s CO.Counter matches 2 run tag @s add CO.Skill.BluteForce.First + execute if score @s CO.Counter matches 2 run tag @s add CO.Skill.BluteForce.Pt.Tutorial + # スーパージャンプ + execute if score @s CO.Counter matches 3 run scoreboard players set @s CO.PreTimer 500 + execute if score @s CO.Counter matches 3 run tag @s add CO.Skill.SuperJump +# 待機 + execute if score @s CO.Counter matches 4 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 80 +## 剣叩きつけ + execute if score @s CO.Counter matches 5 run tag @s add CO.Skill.SwordAttack +# 待機 + execute if score @s CO.Counter matches 6 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 40 +## 薙ぎ払いレーザー + # 中心に移動 + execute if score @s CO.Counter matches 7 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_center + # 薙ぎ払いレーザー + execute if score @s CO.Counter matches 8 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/half_beam +# 待機 + execute if score @s CO.Counter matches 9 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 30 +## 剣叩きつけ + ATTACKドローン + # 四隅に移動 + ドローン召喚 + execute if score @s CO.Counter matches 10 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/summon_attack_drone_corner + # 剣叩きつけ + execute if score @s CO.Counter matches 11 run tag @s add CO.Skill.SwordAttack +# 待機 + execute if score @s CO.Counter matches 12 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 30 +## ブルートフォース:回転パターン + # 中央に移動 + execute if score @s CO.Counter matches 13 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_center + # ブルートフォース・回転パターン + execute if score @s CO.Counter matches 14 run tag @s add CO.Skill.BluteForce + execute if score @s CO.Counter matches 14 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/bluteforce_spin + # スーパージャンプ + execute if score @s CO.Counter matches 15 run scoreboard players set @s CO.PreTimer 400 + execute if score @s CO.Counter matches 15 run tag @s add CO.Skill.SuperJump +# 待機 + execute if score @s CO.Counter matches 16 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 100 +## 射撃 + PANJANドローン + # 四辺に移動 + execute if score @s CO.Counter matches 17 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_line + # 銃変形 + ドローン召喚 + execute if score @s CO.Counter matches 18 run tag @s add CO.Skill.Transform.Shoot + execute if score @s CO.Counter matches 18 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/summon_panjan_drone_near + # 射撃 + execute if score @s CO.Counter matches 19 run tag @s add CO.Skill.Shot +# 待機 + execute if score @s CO.Counter matches 20 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 60 +## 上空射撃 + YEETERドローン + # 上空射撃・移動直線範囲パターン + execute if score @s CO.Counter matches 21 run tag @s add CO.UpperShot.Pt.MoveLine + execute if score @s CO.Counter matches 21 run tag @s add CO.Skill.UpperShot + # Yeeter召喚 + execute if score @s CO.Counter matches 21 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/summon_yeeter_drone_corner +# 待機 + execute if score @s CO.Counter matches 22 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 340 +## モディファイ + ロケットパンチ + # 剣変形 + execute if score @s CO.Counter matches 23 run tag @s add CO.Skill.Transform.Sword + # フィールドモディファイ・ボーダーパターン + execute if score @s CO.Counter matches 24 as @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] at @s positioned ~ ~-0.499 ~ run function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/field_modify_border + execute if score @s CO.Counter matches 24 run scoreboard players set @s CO.PreTimer 3 + execute if score @s CO.Counter matches 24 run tag @s add CO.Skill.FieldModify + # ロケットパンチ1回目 + execute if score @s CO.Counter matches 25 as @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] at @s run tp @s ~ ~ ~ ~90 0 + execute if score @s CO.Counter matches 25 run tag @s add CO.Skill.RocketPunch.Alter + execute if score @s CO.Counter matches 25 run scoreboard players set @s CO.PreTimer 180 + execute if score @s CO.Counter matches 25 run tag @s add CO.Skill.RocketPunch + # ロケットパンチ2回目 + execute if score @s CO.Counter matches 26 run tag @s add CO.Skill.RocketPunch.AlterInv + execute if score @s CO.Counter matches 26 run scoreboard players set @s CO.PreTimer 180 + execute if score @s CO.Counter matches 26 run tag @s add CO.Skill.RocketPunch + # 待機 + execute if score @s CO.Counter matches 27 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 220 + # ロケットパンチ3回目 + 待機 + execute if score @s CO.Counter matches 28 as @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] at @s run tp @s ~ ~ ~ ~180 0 + execute if score @s CO.Counter matches 25 run tag @s add CO.Skill.RocketPunch.Alter + execute if score @s CO.Counter matches 28 run scoreboard players set @s CO.PreTimer 180 + execute if score @s CO.Counter matches 28 run tag @s add CO.Skill.RocketPunch + execute if score @s CO.Counter matches 28 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 80 + # 四隅に移動 + execute if score @s CO.Counter matches 29 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_corner + ## 剣叩きつけ + execute if score @s CO.Counter matches 30 run tag @s add CO.Skill.SwordAttack +# 待機 + execute if score @s CO.Counter matches 31 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 100 +## 薙ぎ払いレーザー + # 中心に移動 + execute if score @s CO.Counter matches 32 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_center + # 薙ぎ払いレーザー + execute if score @s CO.Counter matches 33 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/half_beam +# 待機 + execute if score @s CO.Counter matches 34 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 20 +## 剣叩きつけ + ATTACKドローン + # 四隅に移動 + ドローン召喚 + execute if score @s CO.Counter matches 35 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/summon_attack_drone_corner + # 剣叩きつけ + execute if score @s CO.Counter matches 36 run tag @s add CO.Skill.SwordAttack +## ブルートフォース:エクサパターン + # ブルートフォース:エクサ + execute if score @s CO.Counter matches 37 run tag @s add CO.Skill.BluteForce + execute if score @s CO.Counter matches 38 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/bluteforce_exa + # 銃変形 + execute if score @s CO.Counter matches 39 run tag @s add CO.Skill.Transform.Shoot + # 上空射撃・追尾パターン + execute if score @s CO.Counter matches 40 run tag @s add CO.UpperShot.Pt.Target + execute if score @s CO.Counter matches 40 run tag @s add CO.Skill.UpperShot + # 剣変形 + execute if score @s CO.Counter matches 41 run tag @s add CO.Skill.Transform.Sword + # スーパージャンプ + execute if score @s CO.Counter matches 42 run scoreboard players set @s CO.PreTimer 300 + execute if score @s CO.Counter matches 42 run tag @s add CO.Skill.SuperJump +# 待機 + execute if score @s CO.Counter matches 43 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 100 +## 剣叩きつけ + YEETERドローン + # 四辺に移動 + YEETERドローン + execute if score @s CO.Counter matches 44 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/summon_yeeter_drone_line + # 剣叩きつけ + execute if score @s CO.Counter matches 45 run tag @s add CO.Skill.SwordAttack +## モディファイ + 上空射撃 + # フィールドモディファイ・ボーダーパターン + execute if score @s CO.Counter matches 46 as @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] at @s positioned ~ ~-0.499 ~ run function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/field_modify_square + execute if score @s CO.Counter matches 46 run scoreboard players set @s CO.PreTimer 2 + execute if score @s CO.Counter matches 46 run tag @s add CO.Skill.FieldModify + # 銃変形 + execute if score @s CO.Counter matches 47 run tag @s add CO.Skill.Transform.Shoot + # 上空射撃・交差パターン + execute if score @s CO.Counter matches 48 run tag @s add CO.UpperShot.Pt.Cross + execute if score @s CO.Counter matches 48 run tag @s add CO.Skill.UpperShot +# 待機 + execute if score @s CO.Counter matches 49 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 80 +## ブルートフォース:半面焼きパターン + # 剣変形 + execute if score @s CO.Counter matches 50 run tag @s add CO.Skill.Transform.Sword + # ブルートフォース:半面焼き + execute if score @s CO.Counter matches 51 run tag @s add CO.Skill.BluteForce + execute if score @s CO.Counter matches 51 run function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/bluteforce_half + # 連続スーパージャンプ + execute if score @s CO.Counter matches 52 run scoreboard players set @s CO.JumpCount 2 + execute if score @s CO.Counter matches 52 run scoreboard players set @s CO.PreTimer 120 + execute if score @s CO.Counter matches 52 run tag @s add CO.Skill.SuperJump +# 待機 + execute if score @s CO.Counter matches 53 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run scoreboard players set @s CO.IdleTimer 160 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/bluteforce_exa.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/bluteforce_exa.mcfunction new file mode 100644 index 00000000000..0959a07ab68 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/bluteforce_exa.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0456.gargo_ex_machina/tick/act/phase_2/bluteforce_exa +# +# Mobのtick時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/tick/act/phase_2/ + +# ランダムで使用 + execute if predicate lib:random_pass_per/50 run tag @s add CO.Skill.BluteForce.Pt.Exa + execute unless entity @s[tag=CO.Skill.BluteForce.Pt.Exa] run tag @s add CO.Skill.BluteForce.Pt.ExaInv diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/bluteforce_half.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/bluteforce_half.mcfunction new file mode 100644 index 00000000000..3f2cf860f6d --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/bluteforce_half.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0456.gargo_ex_machina/tick/act/phase_2/bluteforce_half +# +# Mobのtick時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/tick/act/phase_2/ + +# ランダムで使用 + execute if predicate lib:random_pass_per/50 run tag @s add CO.Skill.BluteForce.Pt.Half + execute unless entity @s[tag=CO.Skill.BluteForce.Pt.Half] run tag @s add CO.Skill.BluteForce.Pt.HalfInv diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/bluteforce_spin.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/bluteforce_spin.mcfunction new file mode 100644 index 00000000000..19d91e82365 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/bluteforce_spin.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0456.gargo_ex_machina/tick/act/phase_2/bluteforce_spin +# +# Mobのtick時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/tick/act/phase_2/ + +# ランダムで使用 + execute if predicate lib:random_pass_per/50 run tag @s add CO.Skill.BluteForce.Pt.Spin + execute unless entity @s[tag=CO.Skill.BluteForce.Pt.Spin] run tag @s add CO.Skill.BluteForce.Pt.SpinInv diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/field_modify_border.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/field_modify_border.mcfunction new file mode 100644 index 00000000000..2dc983f246c --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/field_modify_border.mcfunction @@ -0,0 +1,27 @@ +#> asset:mob/0456.gargo_ex_machina/tick/act/phase_2/field_modify_border +# +# フィールド・モディファイ +# +# @within asset:mob/0456.gargo_ex_machina/tick/act/phase_2/ + +# 位置決定用AEC召喚 + # A + summon area_effect_cloud ^22.5 ^ ^7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.A"],Duration:80} + summon area_effect_cloud ^22.5 ^ ^-7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.A"],Duration:80} + summon area_effect_cloud ^22.5 ^ ^22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.A"],Duration:80} + summon area_effect_cloud ^22.5 ^ ^-22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.A"],Duration:80} + # B + summon area_effect_cloud ^7.5 ^ ^7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.B"],Duration:80} + summon area_effect_cloud ^7.5 ^ ^22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.B"],Duration:80} + summon area_effect_cloud ^7.5 ^ ^-7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.B"],Duration:80} + summon area_effect_cloud ^7.5 ^ ^-22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.B"],Duration:80} + # C + summon area_effect_cloud ^-7.5 ^ ^-7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.C"],Duration:80} + summon area_effect_cloud ^-7.5 ^ ^7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.C"],Duration:80} + summon area_effect_cloud ^-7.5 ^ ^22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.C"],Duration:80} + summon area_effect_cloud ^-7.5 ^ ^-22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.C"],Duration:80} + # D + summon area_effect_cloud ^-22.5 ^ ^7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.D"],Duration:80} + summon area_effect_cloud ^-22.5 ^ ^-7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.D"],Duration:80} + summon area_effect_cloud ^-22.5 ^ ^22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.D"],Duration:80} + summon area_effect_cloud ^-22.5 ^ ^-22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.D"],Duration:80} diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/field_modify_square.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/field_modify_square.mcfunction new file mode 100644 index 00000000000..8a299a77540 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/field_modify_square.mcfunction @@ -0,0 +1,27 @@ +#> asset:mob/0456.gargo_ex_machina/tick/act/phase_2/field_modify_square +# +# フィールド・モディファイ +# +# @within asset:mob/0456.gargo_ex_machina/tick/act/phase_2/ + +# 位置決定用AEC召喚 + # A + summon area_effect_cloud ^22.5 ^ ^7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.A"],Duration:80} + summon area_effect_cloud ^7.5 ^ ^7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.A"],Duration:80} + summon area_effect_cloud ^7.5 ^ ^22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.A"],Duration:80} + summon area_effect_cloud ^22.5 ^ ^22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.A"],Duration:80} + # B + summon area_effect_cloud ^-22.5 ^ ^7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.B"],Duration:80} + summon area_effect_cloud ^-7.5 ^ ^7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.B"],Duration:80} + summon area_effect_cloud ^-22.5 ^ ^22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.B"],Duration:80} + summon area_effect_cloud ^-7.5 ^ ^22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.B"],Duration:80} + # C + summon area_effect_cloud ^7.5 ^ ^-7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.C"],Duration:80} + summon area_effect_cloud ^22.5 ^ ^-7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.C"],Duration:80} + summon area_effect_cloud ^7.5 ^ ^-22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.C"],Duration:80} + summon area_effect_cloud ^22.5 ^ ^-22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.C"],Duration:80} + # D + summon area_effect_cloud ^-22.5 ^ ^-7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.D"],Duration:80} + summon area_effect_cloud ^-7.5 ^ ^-7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.D"],Duration:80} + summon area_effect_cloud ^-22.5 ^ ^-22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.D"],Duration:80} + summon area_effect_cloud ^-7.5 ^ ^-22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.D"],Duration:80} diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/half_beam.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/half_beam.mcfunction new file mode 100644 index 00000000000..bff0cce5477 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/half_beam.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0456.gargo_ex_machina/tick/act/phase_2/half_beam +# +# Mobのtick時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/tick/act/phase_2/ + +# ランダムで使用 + execute if predicate lib:random_pass_per/50 run tag @s add CO.Skill.HalfBeamSword + execute unless entity @s[tag=CO.Skill.HalfBeamSword] run tag @s add CO.Skill.HalfBeamShot diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_center.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_center.mcfunction new file mode 100644 index 00000000000..fafb807b33b --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_center.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_center +# +# Mobのtick時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/tick/act/phase_2/ + +# 中心点に移動 + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] run summon area_effect_cloud ^ ^ ^ {Tags:["CO.Aec.Destination"],Duration:80} + tag @s add CO.Skill.Move diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_corner.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_corner.mcfunction new file mode 100644 index 00000000000..db38bb57fef --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_corner.mcfunction @@ -0,0 +1,27 @@ +#> asset:mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_corner +# +# Mobのtick時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/tick/act/phase_2/ + +#> Private +# @within function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_corner + #declare score_holder $CO.Temp.Rotation + +# 中心点ランダム回転 + execute store result score $CO.Temp.Rotation Global run random value 0..3 + execute store result entity @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] Rotation[0] float 1 run scoreboard players operation $CO.Temp.Rotation Global *= $90 Const + scoreboard players reset $CO.Temp.Rotation + +# 4隅にポイント召喚 + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~45 ~ run summon area_effect_cloud ^ ^ ^32 {Tags:["CO.Aec.Destination"],Duration:80} + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~135 ~ run summon area_effect_cloud ^ ^ ^32 {Tags:["CO.Aec.Destination"],Duration:80} + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~225 ~ run summon area_effect_cloud ^ ^ ^32 {Tags:["CO.Aec.Destination"],Duration:80} + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~315 ~ run summon area_effect_cloud ^ ^ ^32 {Tags:["CO.Aec.Destination"],Duration:80} + +# 自身に近い位置と、ランダム2か所を削除 + kill @e[type=area_effect_cloud,tag=CO.Aec.Destination,distance=..80,sort=nearest,limit=1] + kill @e[type=area_effect_cloud,tag=CO.Aec.Destination,distance=..80,sort=random,limit=2] + +# 終了 + tag @s add CO.Skill.Move diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_line.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_line.mcfunction new file mode 100644 index 00000000000..629c32bd949 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_line.mcfunction @@ -0,0 +1,11 @@ +#> asset:mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_line +# +# Mobのtick時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/tick/act/phase_2/ + +# ランダムな4辺中央に移動 + execute store result score $CO.Temp.Rotation Global run random value 0..3 + execute store result entity @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] Rotation[0] float 1 run scoreboard players operation $CO.Temp.Rotation Global *= $90 Const + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~ ~ run summon area_effect_cloud ^ ^ ^-25 {Tags:["CO.Aec.Destination"],Duration:80} + tag @s add CO.Skill.Move diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/summon_attack_drone_corner.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/summon_attack_drone_corner.mcfunction new file mode 100644 index 00000000000..badbe89c4ad --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/summon_attack_drone_corner.mcfunction @@ -0,0 +1,41 @@ +#> asset:mob/0456.gargo_ex_machina/tick/act/phase_2/summon_attack_drone_corner +# +# Mobのtick時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/tick/act/phase_2/ + +#> Private +# @within function asset:mob/0456.gargo_ex_machina/tick/act/phase_2/move_to_corner + #declare score_holder $CO.Temp.Rotation + +# 中心点ランダム回転 + execute store result score $CO.Temp.Rotation Global run random value 0..3 + execute store result entity @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] Rotation[0] float 1 run scoreboard players operation $CO.Temp.Rotation Global *= $90 Const + scoreboard players reset $CO.Temp.Rotation + +# 4隅にポイント召喚 + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~45 ~ run summon area_effect_cloud ^ ^ ^32 {Tags:["CO.Aec.Destination"],Duration:80} + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~135 ~ run summon area_effect_cloud ^ ^ ^32 {Tags:["CO.Aec.Destination"],Duration:80} + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~225 ~ run summon area_effect_cloud ^ ^ ^32 {Tags:["CO.Aec.Destination"],Duration:80} + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~315 ~ run summon area_effect_cloud ^ ^ ^32 {Tags:["CO.Aec.Destination"],Duration:80} + +# 自身に近い位置と、ランダム2か所を削除 + kill @e[type=area_effect_cloud,tag=CO.Aec.Destination,distance=..80,sort=nearest,limit=1] + kill @e[type=area_effect_cloud,tag=CO.Aec.Destination,distance=..80,sort=random,limit=2] + +# 残ったポイントの左右にドローン召喚 + data modify storage api: Argument.ID set value 2260 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + function asset:mob/0456.gargo_ex_machina/tick/util/assing_object_id + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage.AttackDrone + data modify storage api: Argument.FieldOverride.IsTarget set value true + execute positioned as @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] facing entity @e[type=area_effect_cloud,tag=CO.Aec.Destination,distance=..80,sort=nearest,limit=1] feet rotated ~30 0 positioned ^ ^ ^25 rotated ~180 0 run function api:object/summon + data modify storage api: Argument.ID set value 2260 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + function asset:mob/0456.gargo_ex_machina/tick/util/assing_object_id + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage.AttackDrone + data modify storage api: Argument.FieldOverride.IsTarget set value true + execute positioned as @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] facing entity @e[type=area_effect_cloud,tag=CO.Aec.Destination,distance=..80,sort=nearest,limit=1] feet rotated ~-30 0 positioned ^ ^ ^25 rotated ~180 0 run function api:object/summon + +# 終了 + tag @s add CO.Skill.Move diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/summon_panjan_drone_near.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/summon_panjan_drone_near.mcfunction new file mode 100644 index 00000000000..09086a82dd0 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/summon_panjan_drone_near.mcfunction @@ -0,0 +1,21 @@ +#> asset:mob/0456.gargo_ex_machina/tick/act/phase_2/summon_panjan_drone_near +# +# Mobのtick時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/tick/act/phase_2/ + +# 自身左右にドローン召喚 + data modify storage api: Argument.ID set value 2262 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + function asset:mob/0456.gargo_ex_machina/tick/util/assing_object_id + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage.PanjanDrone + data modify storage api: Argument.FieldOverride.FlameDamage set from storage asset:context this.Damage.PanjanDrone.Flame + data modify storage api: Argument.FieldOverride.IsMove set value true + execute rotated ~ 0 facing entity @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] feet positioned ^12 ^0.01 ^ run function api:object/summon + data modify storage api: Argument.ID set value 2262 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + function asset:mob/0456.gargo_ex_machina/tick/util/assing_object_id + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage.PanjanDrone + data modify storage api: Argument.FieldOverride.FlameDamage set from storage asset:context this.Damage.PanjanDrone.Flame + data modify storage api: Argument.FieldOverride.IsMove set value true + execute rotated ~ 0 facing entity @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] feet positioned ^-12 ^0.01 ^ run function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/summon_yeeter_drone_corner.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/summon_yeeter_drone_corner.mcfunction new file mode 100644 index 00000000000..29cbfdd6b49 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/summon_yeeter_drone_corner.mcfunction @@ -0,0 +1,21 @@ +#> asset:mob/0456.gargo_ex_machina/tick/act/phase_2/summon_yeeter_drone_corner +# +# Mobのtick時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/tick/act/phase_2/ + +# 対角にドローン召喚 + data modify storage api: Argument.ID set value 2261 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + function asset:mob/0456.gargo_ex_machina/tick/util/assing_object_id + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage.YeeterDrone + data modify storage api: Argument.FieldOverride.IsRotate set value false + data modify storage api: Argument.FieldOverride.IsRotateInverse set value false + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] positioned ^-16 ^ ^23 rotated ~180 0 run function api:object/summon + data modify storage api: Argument.ID set value 2261 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + function asset:mob/0456.gargo_ex_machina/tick/util/assing_object_id + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage.YeeterDrone + data modify storage api: Argument.FieldOverride.IsRotate set value false + data modify storage api: Argument.FieldOverride.IsRotateInverse set value false + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] positioned ^16 ^ ^-23 rotated ~0 0 run function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/summon_yeeter_drone_line.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/summon_yeeter_drone_line.mcfunction new file mode 100644 index 00000000000..9e50c0455e3 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/act/phase_2/summon_yeeter_drone_line.mcfunction @@ -0,0 +1,27 @@ +#> asset:mob/0456.gargo_ex_machina/tick/act/phase_2/summon_yeeter_drone_line +# +# Mobのtick時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/tick/act/phase_2/ + +# ランダムな4辺中央に移動 + execute store result score $CO.Temp.Rotation Global run random value 0..3 + execute store result entity @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] Rotation[0] float 1 run scoreboard players operation $CO.Temp.Rotation Global *= $90 Const + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~ ~ run summon area_effect_cloud ^ ^ ^-25 {Tags:["CO.Aec.Destination"],Duration:80} + tag @s add CO.Skill.Move + +# 左右にドローン召喚 + data modify storage api: Argument.ID set value 2261 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + function asset:mob/0456.gargo_ex_machina/tick/util/assing_object_id + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage.YeeterDrone + data modify storage api: Argument.FieldOverride.IsRotate set value false + data modify storage api: Argument.FieldOverride.IsRotateInverse set value false + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] positioned ^-20 ^ ^-28 run function api:object/summon + data modify storage api: Argument.ID set value 2261 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + function asset:mob/0456.gargo_ex_machina/tick/util/assing_object_id + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage.YeeterDrone + data modify storage api: Argument.FieldOverride.IsRotate set value false + data modify storage api: Argument.FieldOverride.IsRotateInverse set value false + execute at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] positioned ^20 ^ ^-28 run function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/debug/act.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/debug/act.mcfunction new file mode 100644 index 00000000000..060db410a5e --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/debug/act.mcfunction @@ -0,0 +1,21 @@ +#> asset:mob/0456.gargo_ex_machina/tick/debug/act +# +# デバッグ用処理 割り込みで強制的にイベントを実行する +# +# @within asset:mob/alias/456/tick + +# メモ + # execute as @e[type=slime,tag=CO.EntityRoot] at @s run function asset:mob/0456.gargo_ex_machina/tick/debug/act + +# 全アニメーション停止 + function asset:mob/0456.gargo_ex_machina/tick/debug/reset + +# 位置リセット + # execute at @e[type=marker,tag=CO.CenterPosition] run tp @s ^ ^ ^ 0 0 + # execute at @s run tp @e[type=item_display,tag=CO.ModelRoot] ~ ~ ~ ~ 0 + +# パターンを任意のタイミングに設定 + $scoreboard players set @s CO.Counter $(Act) + +# イベント実行 + function asset:mob/0456.gargo_ex_machina/tick/act/ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/debug/interrupt.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/debug/interrupt.mcfunction new file mode 100644 index 00000000000..434eecfe7cf --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/debug/interrupt.mcfunction @@ -0,0 +1,24 @@ +#> asset:mob/0456.gargo_ex_machina/tick/debug/interrupt +# +# デバッグ用処理 割り込みで強制的にイベントを実行する +# +# @within asset:mob/alias/456/tick + +# メモ + # execute as @e[type=slime,tag=CO.EntityRoot] at @s run function asset:mob/0456.gargo_ex_machina/tick/debug/interrupt + +# テスト + # execute at @e[type=marker,tag=CO.CenterPosition] positioned ~-0.3 ~ ~0.2 run return run function asset:mob/0456.gargo_ex_machina/tick/event/final_flare/particle_floor + +# 全アニメーション停止 + function asset:mob/0456.gargo_ex_machina/tick/util/stop_all_animations + +# 位置リセット + # execute at @e[type=marker,tag=CO.CenterPosition] run tp @s ^ ^ ^ 0 0 + # execute at @s run tp @e[type=item_display,tag=CO.ModelRoot] ~ ~ ~ ~ 0 + +# イベント実行 + scoreboard players set @s CO.EventTimer 0 + # tag @s add CO.Skill.ChangeHead + tag @s add CO.Skill.UpperShot + tag @s add CO.UpperShot.Pt.Target diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/debug/reset.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/debug/reset.mcfunction new file mode 100644 index 00000000000..e05cf7cf886 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/debug/reset.mcfunction @@ -0,0 +1,17 @@ +#> asset:mob/0456.gargo_ex_machina/tick/debug/reset +# +# デバッグ用処理 割り込みで強制的に初期状態に戻す +# +# @within asset:mob/0456.gargo_ex_machina/tick/debug/interrupt +# @within asset:mob/0456.gargo_ex_machina/tick/debug/interrupt.m +# @within asset:mob/0456.gargo_ex_machina/tick/debug/act + +# メモ + # execute as @e[type=slime,tag=BE.EntityRoot] at @s run function asset:mob/0456.gargo_ex_machina/tick/debug/reset + +# 全アニメーション停止 + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/pause_all + +# イベント実行 + scoreboard players set @s CO.EventTimer 0 + # execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function asset:mob/0456.gargo_ex_machina/tick/animated_java/play/1_idle diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/.mcfunction new file mode 100644 index 00000000000..3cfadb4e649 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/.mcfunction @@ -0,0 +1,85 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/ +# +# Mobのtick時の処理 +# +# @within asset:mob/0456.gargo_ex_machina/tick/ + +# 待機検出 + execute as @e[type=item_display,tag=CO.ModelRoot,distance=..30] at @s run function asset:mob/0456.gargo_ex_machina/tick/event/idle/check + +# 起動 + execute if entity @s[tag=CO.Skill.Activate,tag=!CO.Skill.Activate.Short] run function asset:mob/0456.gargo_ex_machina/tick/event/activate/ + execute if entity @s[tag=CO.Skill.Activate,tag=CO.Skill.Activate.Short] run function asset:mob/0456.gargo_ex_machina/tick/event/activate/event_short + +# 後半戦移行 + execute if entity @s[tag=CO.Skill.ChangeHead] run function asset:mob/0456.gargo_ex_machina/tick/event/change_head/ + +# 変形 + execute if entity @s[tag=CO.Skill.Transform.Shoot] run function asset:mob/0456.gargo_ex_machina/tick/event/transform_shoot/ + execute if entity @s[tag=CO.Skill.Transform.Sword] run function asset:mob/0456.gargo_ex_machina/tick/event/transform_sword/ + +# 移動 + execute if entity @s[tag=CO.Skill.Move] run function asset:mob/0456.gargo_ex_machina/tick/event/move/ + execute if entity @s[tag=CO.Skill.Move.End] run function asset:mob/0456.gargo_ex_machina/tick/event/move/event_end + +# 剣叩きつけ + execute if entity @s[tag=CO.Skill.SwordAttack] run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/event_start + execute if entity @s[tag=CO.Skill.SwordAttack.Charge] run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/event_charging + execute if entity @s[tag=CO.Skill.SwordAttack.Attack] run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/event_attack + execute if entity @s[tag=CO.Skill.SwordAttack.Double] run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/event_attack_double + +# 半面焼きビーム + execute if entity @s[tag=CO.Skill.HalfBeam] run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/event_start + execute if entity @s[tag=CO.Skill.HalfBeam.Charge] run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/event_charging + execute if entity @s[tag=CO.Skill.HalfBeam.Attack] run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/event_attack + +# 半面焼きビーム + 回転斬り + execute if entity @s[tag=CO.Skill.HalfBeamSword] run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_start + execute if entity @s[tag=CO.Skill.HalfBeamSword.Charge] run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_charging + execute if entity @s[tag=CO.Skill.HalfBeamSword.Attack] run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_attack + +# 半面焼きビーム + 上空射撃 + execute if entity @s[tag=CO.Skill.HalfBeamShot] run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_start + execute if entity @s[tag=CO.Skill.HalfBeamShot.Charge] run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_charging + execute if entity @s[tag=CO.Skill.HalfBeamShot.Attack] run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_attack + +# スーパージャンプ + execute if entity @s[tag=CO.Skill.SuperJump] run function asset:mob/0456.gargo_ex_machina/tick/event/super_jump/event_start + execute if entity @s[tag=CO.Skill.SuperJump.Attack] run function asset:mob/0456.gargo_ex_machina/tick/event/super_jump/event_attack + +# フィールド・モディファイ + execute if entity @s[tag=CO.Skill.FieldModify] run function asset:mob/0456.gargo_ex_machina/tick/event/field_modify/event_start + +# ロケットパンチ + execute if entity @s[tag=CO.Skill.RocketPunch] run function asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/ + +# 射撃 + execute if entity @s[tag=CO.Skill.Shot] run function asset:mob/0456.gargo_ex_machina/tick/event/shot/ + +# 上空射撃 + execute if entity @s[tag=CO.Skill.UpperShot] run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/ + # ランダムパターン + execute if entity @s[tag=CO.UpperShot.Asyuc,tag=CO.UpperShot.Pt.Random] run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_random + # 追尾パターン + execute if entity @s[tag=CO.UpperShot.Asyuc,tag=CO.UpperShot.Pt.Target] run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_target + # 移動直線範囲パターン + execute if entity @s[tag=CO.UpperShot.Asyuc,tag=CO.UpperShot.Pt.MoveLine] run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_moveline + # 交差パターン + execute if entity @s[tag=CO.UpperShot.Asyuc,tag=CO.UpperShot.Pt.Cross] run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_cross + # パンクラパターン + execute if entity @s[tag=CO.UpperShot.Asyuc,tag=CO.UpperShot.Pt.Panto] run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_pantokrator + +# ブルートフォースアタック + execute if entity @s[tag=CO.Skill.BluteForce] run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/ + execute if entity @s[tag=CO.Skill.BluteForce.First] run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/event_first + # お披露目パターン + execute if entity @s[tag=CO.Skill.BluteForce.Async,tag=CO.Skill.BluteForce.Pt.Tutorial] at @e[type=marker,tag=CO.CenterPosition,distance=..80] run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_tutorial + # 回転パターン + execute if entity @s[tag=CO.Skill.BluteForce.Async,tag=CO.Skill.BluteForce.Pt.Spin] at @e[type=marker,tag=CO.CenterPosition,distance=..80] run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_spin + execute if entity @s[tag=CO.Skill.BluteForce.Async,tag=CO.Skill.BluteForce.Pt.SpinInv] at @e[type=marker,tag=CO.CenterPosition,distance=..80] run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_spin_inv + # エクサパターン + execute if entity @s[tag=CO.Skill.BluteForce.Async,tag=CO.Skill.BluteForce.Pt.Exa] at @e[type=marker,tag=CO.CenterPosition,distance=..80] run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_exa + execute if entity @s[tag=CO.Skill.BluteForce.Async,tag=CO.Skill.BluteForce.Pt.ExaInv] at @e[type=marker,tag=CO.CenterPosition,distance=..80] run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_exa_inv + # 半面焼きパターン + execute if entity @s[tag=CO.Skill.BluteForce.Async,tag=CO.Skill.BluteForce.Pt.Half] at @e[type=marker,tag=CO.CenterPosition,distance=..80] run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_half + execute if entity @s[tag=CO.Skill.BluteForce.Async,tag=CO.Skill.BluteForce.Pt.HalfInv] at @e[type=marker,tag=CO.CenterPosition,distance=..80] run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_half_inv diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/activate/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/activate/.mcfunction new file mode 100644 index 00000000000..35107efa74d --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/activate/.mcfunction @@ -0,0 +1,67 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/activate/ +# +# 起動 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 起動 + # アニメーション再生 + execute if score @s CO.EventTimer matches 80 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/activation/tween {duration:1, to_frame: 1} + # 石像移動 + execute if score @s CO.EventTimer matches 2 run function asset:mob/0456.gargo_ex_machina/tick/event/activate/clone_statue + # 影 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.Shadow] run function asset:mob/0456.gargo_ex_machina/tick/util/hide_shadow + # 効果音 + execute if score @s CO.EventTimer matches 60 positioned as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 118 positioned as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 125 positioned as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 155 positioned as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function asset:mob/0456.gargo_ex_machina/tick/util/sound + +# 移動 + # アニメーション再生 + execute if score @s CO.EventTimer matches 205 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/move_to_field_fast/tween {duration:1, to_frame: 1} + execute if score @s CO.EventTimer matches 265 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/move_to_field_fast/pause + execute if score @s CO.EventTimer matches 305 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/move_to_field_fast/resume + # フィールドに移動 + execute if score @s CO.EventTimer matches 231 positioned as @e[type=item_display,tag=CO.ScapeSheep] run tp @s ~ ~ ~ 180 0 + # モデルを合わせる + execute if score @s CO.EventTimer matches 231.. as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + # 影 + execute if score @s CO.EventTimer matches 232 as @e[type=item_display,tag=CO.Shadow] run function asset:mob/0456.gargo_ex_machina/tick/util/show_shadow + # 演出 + execute if score @s CO.EventTimer matches 251 run particle explosion ~ ~1 ~ 4 0.1 4 0 30 + execute if score @s CO.EventTimer matches 251 run particle campfire_cosy_smoke ~ ~1 ~ 4 0.1 4 0.05 100 + # 効果音 + execute if score @s CO.EventTimer matches 205 positioned as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 227 positioned as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 251 positioned ~ ~20 ~ run playsound entity.ravager.step hostile @a[distance=..100] ~ ~ ~ 0 0.7 0.5 + execute if score @s CO.EventTimer matches 251 positioned ~ ~20 ~ run playsound entity.ravager.step hostile @a[distance=..100] ~ ~ ~ 0 0.6 0.5 + execute if score @s CO.EventTimer matches 251 positioned ~ ~20 ~ run playsound entity.ravager.step hostile @a[distance=..100] ~ ~ ~ 0 0.5 0.5 + execute if score @s CO.EventTimer matches 251 positioned ~ ~20 ~ run playsound entity.generic.explode hostile @a[distance=..100] ~ ~ ~ 0 0.8 1 + execute if score @s CO.EventTimer matches 251 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~2 + execute if score @s CO.EventTimer matches 252 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-4 + execute if score @s CO.EventTimer matches 253 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~4 + execute if score @s CO.EventTimer matches 254 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-4 + execute if score @s CO.EventTimer matches 255 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~3 + execute if score @s CO.EventTimer matches 256 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-3 + execute if score @s CO.EventTimer matches 257 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~3 + execute if score @s CO.EventTimer matches 258 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-1 + execute if score @s CO.EventTimer matches 321 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 345 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + # ボス名変更 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/change_bossbar_name.m {Name:"絡繰仕掛の石像",Visible:"false"} + # execute if score @s CO.EventTimer matches 350 run function asset:mob/0456.gargo_ex_machina/tick/util/change_bossbar_name.m {Name:"絡繰仕掛の石像",Visible:"true"} + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/event/activate/show_dummy_bossbar + execute if score @s CO.EventTimer matches 251 run function asset:mob/0456.gargo_ex_machina/tick/event/activate/clear_dummy_bossbar + execute if score @s CO.EventTimer matches 350 run function asset:mob/0456.gargo_ex_machina/tick/util/show_former_bossbar + execute if score @s CO.EventTimer matches 300 run bossbar remove asset:co_scape_sheep + +# 無敵化 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/start_invulnerable + execute if score @s CO.EventTimer matches 350 run function asset:mob/0456.gargo_ex_machina/tick/util/end_invulnerable + +# 終了 + execute if score @s CO.EventTimer matches 351.. run function asset:mob/0456.gargo_ex_machina/tick/event/activate/end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/activate/clear_dummy_bossbar.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/activate/clear_dummy_bossbar.mcfunction new file mode 100644 index 00000000000..b6377914ce7 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/activate/clear_dummy_bossbar.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/activate/clear_dummy_bossbar +# +# 起動 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/activate/ +# @private + #declare score_holder $TempValue + +# ひつじBossbar表示 + bossbar set asset:co_scape_sheep name {"text":"逆襲のひつじしゃん","strikethrough":true} + scoreboard players set $TempValue Global 0 + execute store result bossbar asset:co_scape_sheep value run scoreboard players get $TempValue Global + scoreboard players reset $TempValue diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/activate/clone_statue.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/activate/clone_statue.mcfunction new file mode 100644 index 00000000000..1e705db5282 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/activate/clone_statue.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/activate/clone_statue +# +# 起動 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/activate/ + +# 石像を移動 + execute positioned 520 91 834 run clone ~ ~ ~ ~14 ~19 ~3 ~ 0 ~ + execute positioned 520 91 834 run fill ~ ~ ~ ~14 ~19 ~3 air diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/activate/end.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/activate/end.mcfunction new file mode 100644 index 00000000000..8ad65ea4b9b --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/activate/end.mcfunction @@ -0,0 +1,17 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/activate/end +# +# 起動 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/activate/ +# @within asset:mob/0456.gargo_ex_machina/tick/event/activate/event_short + +# タグ消去 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.Activate + tag @s remove CO.Skill.Activate.Short + +# 待機モーション再生 + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/idle/tween {duration:1, to_frame: 1} + +# 行動 + # function asset:mob/0410.heiloang/tick/act/ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/activate/event_short.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/activate/event_short.mcfunction new file mode 100644 index 00000000000..63b708a0775 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/activate/event_short.mcfunction @@ -0,0 +1,44 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/activate/event_short +# +# 起動 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 移動 + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/move_to_field_short/tween {duration:1, to_frame: 1} + # フィールドに移動 + execute if score @s CO.EventTimer matches 1 at @e[type=marker,tag=CO.CenterPosition,distance=..80] positioned ^ ^ ^15 run tp @s ~ ~ ~ ~180 0 + # モデルを合わせる + execute if score @s CO.EventTimer matches 1.. as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + # 演出 + execute if score @s CO.EventTimer matches 12 run particle explosion ~ ~1 ~ 4 0.1 4 0 30 + execute if score @s CO.EventTimer matches 12 run particle campfire_cosy_smoke ~ ~1 ~ 4 0.1 4 0.05 100 + # 効果音 + execute if score @s CO.EventTimer matches 12 positioned ~ ~20 ~ run playsound entity.ravager.step hostile @a[distance=..100] ~ ~ ~ 0 0.7 0.5 + execute if score @s CO.EventTimer matches 12 positioned ~ ~20 ~ run playsound entity.ravager.step hostile @a[distance=..100] ~ ~ ~ 0 0.6 0.5 + execute if score @s CO.EventTimer matches 12 positioned ~ ~20 ~ run playsound entity.ravager.step hostile @a[distance=..100] ~ ~ ~ 0 0.5 0.5 + execute if score @s CO.EventTimer matches 12 positioned ~ ~20 ~ run playsound entity.generic.explode hostile @a[distance=..100] ~ ~ ~ 0 0.8 1 + execute if score @s CO.EventTimer matches 12 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~2 + execute if score @s CO.EventTimer matches 13 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-4 + execute if score @s CO.EventTimer matches 14 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~4 + execute if score @s CO.EventTimer matches 15 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-4 + execute if score @s CO.EventTimer matches 16 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~3 + execute if score @s CO.EventTimer matches 17 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-3 + execute if score @s CO.EventTimer matches 18 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~3 + execute if score @s CO.EventTimer matches 19 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-1 + execute if score @s CO.EventTimer matches 40 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 65 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + # ボス名変更 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/change_bossbar_name.m {Name:"絡繰仕掛の石像",Visible:"false"} + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/show_former_bossbar + +# 無敵化 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/start_invulnerable + execute if score @s CO.EventTimer matches 70 run function asset:mob/0456.gargo_ex_machina/tick/util/end_invulnerable + +# 終了 + execute if score @s CO.EventTimer matches 71.. run function asset:mob/0456.gargo_ex_machina/tick/event/activate/end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/activate/show_dummy_bossbar.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/activate/show_dummy_bossbar.mcfunction new file mode 100644 index 00000000000..9bf9ffed247 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/activate/show_dummy_bossbar.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/activate/show_dummy_bossbar +# +# 起動 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/activate/ + +# ひつじBossbar表示 + bossbar add asset:co_scape_sheep {"text":"逆襲のひつじしゃん"} + bossbar set asset:co_scape_sheep players @a[distance=..80] + bossbar set asset:co_scape_sheep color pink + bossbar set asset:co_scape_sheep style notched_10 + bossbar set asset:co_scape_sheep max 1 + execute store result bossbar asset:co_scape_sheep value run scoreboard players get @s CO.EventTimer diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/.mcfunction new file mode 100644 index 00000000000..83601b8da91 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/.mcfunction @@ -0,0 +1,47 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/ +# +# ブルートフォースアタック +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 構え + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/call_drone/tween {duration:1, to_frame: 1} + # 効果音 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 50 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + # 演出 + # 画面エフェクト + execute if score @s CO.EventTimer matches 23 run title @a[distance=..160] times 3 0 5 + execute if score @s CO.EventTimer matches 23 run title @a[distance=..160] title {"text":"\uE010","font":"screen_effect","color":"#E8E8E8"} + execute if score @s CO.EventTimer matches 25 run playsound block.beacon.power_select hostile @a ~ ~ ~ 4 1.5 + execute if score @s CO.EventTimer matches 25 run playsound block.beacon.power_select hostile @a ~ ~ ~ 4 1.7 + # モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + # 召喚開始 + execute if score @s CO.EventTimer matches 24 run tag @s add CO.Skill.BluteForce.Async + execute if score @s CO.EventTimer matches 24 run scoreboard players set @s CO.EventTimer.BluteForce 0 + # 全員お披露目パターン + # execute if score @s CO.EventTimer matches 25 positioned ^ ^ ^10 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m + # execute if score @s CO.EventTimer matches 26 positioned ^-15 ^ ^8 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m + # execute if score @s CO.EventTimer matches 27 positioned ^15 ^ ^8 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m + # execute if score @s CO.EventTimer matches 28 positioned ^-20 ^ ^6 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m + # execute if score @s CO.EventTimer matches 29 positioned ^20 ^ ^6 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m + # execute if score @s CO.EventTimer matches 28 positioned ^ ^ ^-8 rotated ~ ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m + # execute if score @s CO.EventTimer matches 28 positioned ^-23 ^ ^-6 rotated ~ ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m + # execute if score @s CO.EventTimer matches 28 positioned ^23 ^ ^-6 rotated ~ ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m + # パンジャン+回転Yeeterパターン + # execute if score @s CO.EventTimer matches 25 at @e[type=marker,tag=CO.CenterPosition,distance=..80] rotated ~ ~ positioned ^ ^ ^20 rotated ~-90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m + # execute if score @s CO.EventTimer matches 25 at @e[type=marker,tag=CO.CenterPosition,distance=..80] rotated ~120 ~ positioned ^ ^ ^20 rotated ~-90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m + # execute if score @s CO.EventTimer matches 25 at @e[type=marker,tag=CO.CenterPosition,distance=..80] rotated ~240 ~ positioned ^ ^ ^20 rotated ~-90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m + # execute if score @s CO.EventTimer matches 25 at @e[type=marker,tag=CO.CenterPosition,distance=..80] positioned ^ ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m + # execute if score @s CO.EventTimer matches 25 at @e[type=marker,tag=CO.CenterPosition,distance=..80] positioned ^22 ^ ^22 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m + # execute if score @s CO.EventTimer matches 25 at @e[type=marker,tag=CO.CenterPosition,distance=..80] positioned ^-22 ^ ^22 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m + # execute if score @s CO.EventTimer matches 25 at @e[type=marker,tag=CO.CenterPosition,distance=..80] positioned ^22 ^ ^-22 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m + # execute if score @s CO.EventTimer matches 25 at @e[type=marker,tag=CO.CenterPosition,distance=..80] positioned ^-22 ^ ^-22 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m + +# 終了 + execute if score @s CO.EventTimer matches 65.. run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_end.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_end.mcfunction new file mode 100644 index 00000000000..ebd5e418241 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_end.mcfunction @@ -0,0 +1,24 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_end +# +# ブルートフォースアタック +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_tutorial +# @within asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_spin +# @within asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_spin_inv +# @within asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_exa +# @within asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_exa_inv +# @within asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_half +# @within asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_half_inv + +# タイマーリセット + scoreboard players reset @s CO.EventTimer.BluteForce + +# タグ消去 + tag @s remove CO.Skill.BluteForce.Async + tag @s remove CO.Skill.BluteForce.Pt.Tutorial + tag @s remove CO.Skill.BluteForce.Pt.Spin + tag @s remove CO.Skill.BluteForce.Pt.SpinInv + tag @s remove CO.Skill.BluteForce.Pt.Exa + tag @s remove CO.Skill.BluteForce.Pt.ExaInv + tag @s remove CO.Skill.BluteForce.Pt.Half + tag @s remove CO.Skill.BluteForce.Pt.ExaInv diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_exa.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_exa.mcfunction new file mode 100644 index 00000000000..9939e42103a --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_exa.mcfunction @@ -0,0 +1,27 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_exa +# +# ブルートフォースアタック +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer.BluteForce 1 + +# 回転パターン + # Attack + execute if score @s CO.EventTimer.BluteForce matches 1 if predicate api:global_vars/difficulty/min/3_blessless rotated ~ ~ rotated ~135 ~ positioned ^ ^ ^29 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"true"} + execute if score @s CO.EventTimer.BluteForce matches 81 if predicate api:global_vars/difficulty/min/3_blessless rotated ~90 ~ rotated ~135 ~ positioned ^ ^ ^29 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"true"} + execute if score @s CO.EventTimer.BluteForce matches 161 if predicate api:global_vars/difficulty/min/3_blessless rotated ~180 ~ rotated ~135 ~ positioned ^ ^ ^29 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"true"} + execute if score @s CO.EventTimer.BluteForce matches 241 if predicate api:global_vars/difficulty/min/3_blessless rotated ~270 ~ rotated ~135 ~ positioned ^ ^ ^29 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"true"} + # Yeeter + execute if score @s CO.EventTimer.BluteForce matches 1 rotated ~ ~ positioned ^ ^ ^29 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 41 rotated ~45 ~ positioned ^ ^ ^32 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 81 rotated ~90 ~ positioned ^ ^ ^29 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 121 rotated ~135 ~ positioned ^ ^ ^32 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 161 if predicate api:global_vars/difficulty/min/2_hard rotated ~180 ~ positioned ^ ^ ^29 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 201 if predicate api:global_vars/difficulty/min/3_blessless rotated ~225 ~ positioned ^ ^ ^32 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 241 if predicate api:global_vars/difficulty/min/3_blessless rotated ~270 ~ positioned ^ ^ ^29 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 281 if predicate api:global_vars/difficulty/min/3_blessless rotated ~315 ~ positioned ^ ^ ^32 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + +# 終了 + execute if score @s CO.EventTimer.BluteForce matches 282.. run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_exa_inv.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_exa_inv.mcfunction new file mode 100644 index 00000000000..4fa3796c0c8 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_exa_inv.mcfunction @@ -0,0 +1,27 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_exa_inv +# +# ブルートフォースアタック +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer.BluteForce 1 + +# 回転パターン + # Attack + execute if score @s CO.EventTimer.BluteForce matches 1 if predicate api:global_vars/difficulty/min/3_blessless rotated ~ ~ rotated ~-135 ~ positioned ^ ^ ^29 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"true"} + execute if score @s CO.EventTimer.BluteForce matches 81 if predicate api:global_vars/difficulty/min/3_blessless rotated ~-90 ~ rotated ~-135 ~ positioned ^ ^ ^29 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"true"} + execute if score @s CO.EventTimer.BluteForce matches 161 if predicate api:global_vars/difficulty/min/3_blessless rotated ~-180 ~ rotated ~-135 ~ positioned ^ ^ ^29 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"true"} + execute if score @s CO.EventTimer.BluteForce matches 241 if predicate api:global_vars/difficulty/min/3_blessless rotated ~-270 ~ rotated ~-135 ~ positioned ^ ^ ^29 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"true"} + # Yeeter + execute if score @s CO.EventTimer.BluteForce matches 1 rotated ~ ~ positioned ^ ^ ^29 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 41 rotated ~-45 ~ positioned ^ ^ ^32 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 81 rotated ~-90 ~ positioned ^ ^ ^29 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 121 rotated ~-135 ~ positioned ^ ^ ^32 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 161 if predicate api:global_vars/difficulty/min/2_hard rotated ~-180 ~ positioned ^ ^ ^29 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 201 if predicate api:global_vars/difficulty/min/3_blessless rotated ~-225 ~ positioned ^ ^ ^32 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 241 if predicate api:global_vars/difficulty/min/3_blessless rotated ~-270 ~ positioned ^ ^ ^29 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 281 if predicate api:global_vars/difficulty/min/3_blessless rotated ~-315 ~ positioned ^ ^ ^32 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + +# 終了 + execute if score @s CO.EventTimer.BluteForce matches 282.. run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_half.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_half.mcfunction new file mode 100644 index 00000000000..08dbc316812 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_half.mcfunction @@ -0,0 +1,39 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_half +# +# ブルートフォースアタック +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer.BluteForce 1 + +# 1回目 + # ATTACK + execute if score @s CO.EventTimer.BluteForce matches 1 positioned ^28 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 21 positioned ^20 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 41 positioned ^12 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 61 positioned ^4 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 81 positioned ^-4 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 101 positioned ^-12 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 121 positioned ^-20 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 141 positioned ^-28 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + # YEETER + execute if score @s CO.EventTimer.BluteForce matches 1 rotated ~-90 ~ positioned ^-25 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 1 rotated ~-90 ~ positioned ^-12 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + +# 2回目 + # ATTACK + execute if score @s CO.EventTimer.BluteForce matches 201 rotated ~90 ~ positioned ^28 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 221 rotated ~90 ~ positioned ^20 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 241 rotated ~90 ~ positioned ^12 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 261 rotated ~90 ~ positioned ^4 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 281 rotated ~90 ~ positioned ^-4 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 301 rotated ~90 ~ positioned ^-12 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 321 rotated ~90 ~ positioned ^-20 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 341 rotated ~90 ~ positioned ^-28 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + # YEETER + execute if score @s CO.EventTimer.BluteForce matches 201 rotated ~0 ~ positioned ^25 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 201 rotated ~0 ~ positioned ^12 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + +# 終了 + execute if score @s CO.EventTimer.BluteForce matches 400.. run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_half_inv.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_half_inv.mcfunction new file mode 100644 index 00000000000..db7e9c6506b --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_half_inv.mcfunction @@ -0,0 +1,39 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_half_inv +# +# ブルートフォースアタック +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer.BluteForce 1 + +# 1回目 + # ATTACK + execute if score @s CO.EventTimer.BluteForce matches 1 positioned ^-28 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 21 positioned ^-20 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 41 positioned ^-12 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 61 positioned ^-4 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 81 positioned ^4 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 101 positioned ^12 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 121 positioned ^20 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 141 positioned ^28 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + # YEETER + execute if score @s CO.EventTimer.BluteForce matches 1 rotated ~90 ~ positioned ^25 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 1 rotated ~90 ~ positioned ^12 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + +# 2回目 + # ATTACK + execute if score @s CO.EventTimer.BluteForce matches 201 rotated ~-90 ~ positioned ^-28 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 221 rotated ~-90 ~ positioned ^-20 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 241 rotated ~-90 ~ positioned ^-12 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 261 rotated ~-90 ~ positioned ^-4 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 281 rotated ~-90 ~ positioned ^4 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 301 rotated ~-90 ~ positioned ^12 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 321 rotated ~-90 ~ positioned ^20 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + execute if score @s CO.EventTimer.BluteForce matches 341 rotated ~-90 ~ positioned ^28 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"false"} + # YEETER + execute if score @s CO.EventTimer.BluteForce matches 201 rotated ~180 ~ positioned ^25 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 201 rotated ~180 ~ positioned ^12 ^ ^28 rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + +# 終了 + execute if score @s CO.EventTimer.BluteForce matches 400.. run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_spin.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_spin.mcfunction new file mode 100644 index 00000000000..23206803854 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_spin.mcfunction @@ -0,0 +1,25 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_spin +# +# ブルートフォースアタック +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer.BluteForce 1 + +# 回転パターン + execute if score @s CO.EventTimer.BluteForce matches 1 positioned ^ ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m {IsMove:"false"} + execute if score @s CO.EventTimer.BluteForce matches 1 positioned ^22 ^ ^22 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m {IsMove:"false"} + execute if score @s CO.EventTimer.BluteForce matches 1 positioned ^-22 ^ ^22 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m {IsMove:"false"} + execute if score @s CO.EventTimer.BluteForce matches 1 positioned ^22 ^ ^-22 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m {IsMove:"false"} + execute if score @s CO.EventTimer.BluteForce matches 1 positioned ^-22 ^ ^-22 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m {IsMove:"false"} + execute if score @s CO.EventTimer.BluteForce matches 40 if predicate api:global_vars/difficulty/max/2_hard rotated ~ ~ positioned ^ ^ ^20 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"true",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 40 if predicate api:global_vars/difficulty/max/2_hard rotated ~120 ~ positioned ^ ^ ^20 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"true",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 40 if predicate api:global_vars/difficulty/max/2_hard rotated ~240 ~ positioned ^ ^ ^20 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"true",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 40 if predicate api:global_vars/difficulty/min/3_blessless rotated ~ ~ positioned ^ ^ ^20 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"true",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 40 if predicate api:global_vars/difficulty/min/3_blessless rotated ~90 ~ positioned ^ ^ ^20 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"true",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 40 if predicate api:global_vars/difficulty/min/3_blessless rotated ~180 ~ positioned ^ ^ ^20 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"true",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 40 if predicate api:global_vars/difficulty/min/3_blessless rotated ~270 ~ positioned ^ ^ ^20 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"true",IsRotateInverse:"false"} + +# 終了 + execute if score @s CO.EventTimer.BluteForce matches 41.. run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_spin_inv.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_spin_inv.mcfunction new file mode 100644 index 00000000000..2b51cd3407c --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_spin_inv.mcfunction @@ -0,0 +1,25 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_spin_inv +# +# ブルートフォースアタック +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer.BluteForce 1 + +# 回転パターン + execute if score @s CO.EventTimer.BluteForce matches 1 positioned ^ ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m {IsMove:"false"} + execute if score @s CO.EventTimer.BluteForce matches 1 positioned ^22 ^ ^22 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m {IsMove:"false"} + execute if score @s CO.EventTimer.BluteForce matches 1 positioned ^-22 ^ ^22 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m {IsMove:"false"} + execute if score @s CO.EventTimer.BluteForce matches 1 positioned ^22 ^ ^-22 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m {IsMove:"false"} + execute if score @s CO.EventTimer.BluteForce matches 1 positioned ^-22 ^ ^-22 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m {IsMove:"false"} + execute if score @s CO.EventTimer.BluteForce matches 40 if predicate api:global_vars/difficulty/max/2_hard rotated ~ ~ positioned ^ ^ ^20 rotated ~-90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"true"} + execute if score @s CO.EventTimer.BluteForce matches 40 if predicate api:global_vars/difficulty/max/2_hard rotated ~120 ~ positioned ^ ^ ^20 rotated ~-90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"true"} + execute if score @s CO.EventTimer.BluteForce matches 40 if predicate api:global_vars/difficulty/max/2_hard rotated ~240 ~ positioned ^ ^ ^20 rotated ~-90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"true"} + execute if score @s CO.EventTimer.BluteForce matches 40 if predicate api:global_vars/difficulty/min/3_blessless rotated ~ ~ positioned ^ ^ ^20 rotated ~-90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"true"} + execute if score @s CO.EventTimer.BluteForce matches 40 if predicate api:global_vars/difficulty/min/3_blessless rotated ~90 ~ positioned ^ ^ ^20 rotated ~-90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"true"} + execute if score @s CO.EventTimer.BluteForce matches 40 if predicate api:global_vars/difficulty/min/3_blessless rotated ~180 ~ positioned ^ ^ ^20 rotated ~-90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"true"} + execute if score @s CO.EventTimer.BluteForce matches 40 if predicate api:global_vars/difficulty/min/3_blessless rotated ~270 ~ positioned ^ ^ ^20 rotated ~-90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"true"} + +# 終了 + execute if score @s CO.EventTimer.BluteForce matches 41.. run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_tutorial.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_tutorial.mcfunction new file mode 100644 index 00000000000..a1f9c8c9487 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_tutorial.mcfunction @@ -0,0 +1,21 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_pattern_tutorial +# +# ブルートフォースアタック +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer.BluteForce 1 + +# 全員お披露目パターン + execute if score @s CO.EventTimer.BluteForce matches 1 positioned ^ ^ ^-8 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"true"} + execute if score @s CO.EventTimer.BluteForce matches 2 positioned ^-15 ^ ^-12 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"true"} + execute if score @s CO.EventTimer.BluteForce matches 3 positioned ^15 ^ ^-12 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m {IsTarget:"true"} + execute if score @s CO.EventTimer.BluteForce matches 73 positioned ^ ^ ^-28 rotated ~ ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 74 positioned ^-23 ^ ^-28 rotated ~ ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 75 positioned ^23 ^ ^-28 rotated ~ ~ run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m {IsRotate:"false",IsRotateInverse:"false"} + execute if score @s CO.EventTimer.BluteForce matches 140 positioned ^-12 ^ ^-18 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m {IsMove:"true"} + execute if score @s CO.EventTimer.BluteForce matches 141 positioned ^12 ^ ^-18 run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m {IsMove:"true"} + +# 終了 + execute if score @s CO.EventTimer.BluteForce matches 142.. run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/async_end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/effect.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/effect.mcfunction new file mode 100644 index 00000000000..57460f1b037 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/effect.mcfunction @@ -0,0 +1,81 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/field_modify/effect +# +# フィールド・モディファイ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/field_modify/event_start + +# パーティクル +# 円型ベクトルパーティクル + execute rotated ~00 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~10 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~20 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~30 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~40 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~50 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~60 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~70 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~80 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~90 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~100 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~110 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~120 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~130 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~140 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~150 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~160 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~170 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~180 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~190 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~200 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~210 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~220 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~230 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~240 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~250 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~260 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~270 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~280 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~290 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~300 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~310 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~320 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~330 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~340 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~350 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 +# 円型ベクトルパーティクル + execute rotated ~00 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~10 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~20 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~30 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~40 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~50 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~60 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~70 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~80 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~90 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~100 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~110 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~120 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~130 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~140 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~150 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~160 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~170 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~180 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~190 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~200 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~210 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~220 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~230 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~240 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~250 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~260 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~270 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~280 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~290 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~300 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~310 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~320 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~330 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~340 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~350 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/end.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/end.mcfunction new file mode 100644 index 00000000000..dfa3091aea6 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/end.mcfunction @@ -0,0 +1,17 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/end +# +# ブルートフォースアタック +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/ +# @within asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/event_first + +# タグ消去 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.BluteForce + tag @s remove CO.Skill.BluteForce.First + +# 待機モーション再生 + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/idle/tween {duration:1, to_frame: 1} + +# 行動 + # function asset:mob/0410.heiloang/tick/act/ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/event_first.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/event_first.mcfunction new file mode 100644 index 00000000000..786bc780f42 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/event_first.mcfunction @@ -0,0 +1,32 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/event_first +# +# ブルートフォースアタック +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 構え + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/call_drone_first/tween {duration:1, to_frame: 1} + # 効果音 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 90 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + # 演出 + # 画面エフェクト + execute if score @s CO.EventTimer matches 73 run title @a[distance=..160] times 3 0 5 + execute if score @s CO.EventTimer matches 73 run title @a[distance=..160] title {"text":"\uE010","font":"screen_effect","color":"#E8E8E8"} + execute if score @s CO.EventTimer matches 75 run playsound block.beacon.power_select hostile @a ~ ~ ~ 4 1.5 + execute if score @s CO.EventTimer matches 75 run playsound block.beacon.power_select hostile @a ~ ~ ~ 4 1.7 + # 中央を見る + execute if score @s CO.EventTimer matches 1 at @e[type=marker,tag=CO.CenterPosition,distance=..80] run summon area_effect_cloud ~ ~ ~ {Tags:["CO.Aec.Destination"],Duration:45} + execute if score @s CO.EventTimer matches 1..40 run function asset:mob/0456.gargo_ex_machina/tick/util/rotate_to_destination + # モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + # 召喚開始 + execute if score @s CO.EventTimer matches 74 run tag @s add CO.Skill.BluteForce.Async + execute if score @s CO.EventTimer matches 74 run scoreboard players set @s CO.EventTimer.BluteForce 0 + +# 終了 + execute if score @s CO.EventTimer matches 110.. run function asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m.mcfunction new file mode 100644 index 00000000000..565420ffa1c --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_attack_drone.m +# +# ブルートフォースアタック +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/** + +# ATTACKドローン召喚 + data modify storage api: Argument.ID set value 2260 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + function asset:mob/0456.gargo_ex_machina/tick/util/assing_object_id + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage.AttackDrone + $data modify storage api: Argument.FieldOverride.IsTarget set value $(IsTarget) + function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m.mcfunction new file mode 100644 index 00000000000..7ae089e84a2 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m.mcfunction @@ -0,0 +1,14 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_panjan_drone.m +# +# ブルートフォースアタック +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/** + +# PANJANドローン召喚 + data modify storage api: Argument.ID set value 2262 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + function asset:mob/0456.gargo_ex_machina/tick/util/assing_object_id + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage.PanjanDrone + data modify storage api: Argument.FieldOverride.FlameDamage set from storage asset:context this.Damage.PanjanDrone.Flame + $data modify storage api: Argument.FieldOverride.IsMove set value $(IsMove) + function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m.mcfunction new file mode 100644 index 00000000000..3769a455eaf --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m.mcfunction @@ -0,0 +1,14 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/summon_yeeter_drone.m +# +# ブルートフォースアタック +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/blute_force_attack/** + +# YEERERドローン召喚 + data modify storage api: Argument.ID set value 2261 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + function asset:mob/0456.gargo_ex_machina/tick/util/assing_object_id + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage.YeeterDrone + $data modify storage api: Argument.FieldOverride.IsRotate set value $(IsRotate) + $data modify storage api: Argument.FieldOverride.IsRotateInverse set value $(IsRotateInverse) + function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/change_head/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/change_head/.mcfunction new file mode 100644 index 00000000000..c202931e3e0 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/change_head/.mcfunction @@ -0,0 +1,69 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/change_head/ +# +# 後半戦移行 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/change_head_start/tween {duration:1, to_frame: 1} + execute if score @s CO.EventTimer matches 200 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/change_head/tween {duration:1, to_frame: 1} + +# 演出 + execute if score @s CO.EventTimer matches 1 run playsound entity.item.break hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 1 run playsound entity.item.break hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 2 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s CO.EventTimer matches 7 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s CO.EventTimer matches 12 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s CO.EventTimer matches 17 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s CO.EventTimer matches 22 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s CO.EventTimer matches 27 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s CO.EventTimer matches 1..30 run particle explosion ~ ~20 ~ 4 7 4 0 5 force @a[distance=..80] + execute if score @s CO.EventTimer matches 20 run playsound block.beacon.deactivate hostile @a ~ ~ ~ 4 1.3 + execute if score @s CO.EventTimer matches 20 run playsound block.beacon.deactivate hostile @a ~ ~ ~ 4 1.1 + execute if score @s CO.EventTimer matches 228 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 246 run playsound block.iron_door.close hostile @a ~ ~ ~ 4 0.7 + execute if score @s CO.EventTimer matches 246 run playsound block.iron_door.close hostile @a ~ ~ ~ 4 0.5 + execute if score @s CO.EventTimer matches 256 run playsound block.end_portal_frame.fill hostile @a ~ ~ ~ 4 1.0 + execute if score @s CO.EventTimer matches 256 run playsound block.end_portal_frame.fill hostile @a ~ ~ ~ 4 0.8 + # 画面エフェクト + execute if score @s CO.EventTimer matches 279 run title @a[distance=..160] times 3 0 5 + execute if score @s CO.EventTimer matches 279 run title @a[distance=..160] title {"text":"\uE010","font":"screen_effect","color":"#E8E8E8"} + execute if score @s CO.EventTimer matches 280 run playsound entity.wither.spawn hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s CO.EventTimer matches 280 run playsound minecraft:block.end_portal.spawn hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s CO.EventTimer matches 280 run playsound item.trident.thunder hostile @a[distance=..80] ~ ~ ~ 0.4 0.6 0.4 + # モデル変更 + execute if score @s CO.EventTimer matches 256 run function asset:mob/0456.gargo_ex_machina/tick/util/change_model + execute if score @s CO.EventTimer matches 280 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/variants/blue/apply + +# 攻撃 + execute if score @s CO.EventTimer matches 110 positioned ^ ^ ^12 run function asset:mob/0456.gargo_ex_machina/tick/event/change_head/prediction + execute if score @s CO.EventTimer matches 210 positioned ^ ^ ^12 run function asset:mob/0456.gargo_ex_machina/tick/event/change_head/attack + # 攻撃演出 + execute if score @s CO.EventTimer matches 210 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~2 + execute if score @s CO.EventTimer matches 211 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-4 + execute if score @s CO.EventTimer matches 212 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~4 + execute if score @s CO.EventTimer matches 213 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-4 + execute if score @s CO.EventTimer matches 214 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~3 + execute if score @s CO.EventTimer matches 215 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-3 + execute if score @s CO.EventTimer matches 216 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~3 + execute if score @s CO.EventTimer matches 217 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-1 + +# ボス名変更 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/remove_former_bossbar + execute if score @s CO.EventTimer matches 271 run function asset:mob/0456.gargo_ex_machina/tick/util/change_health + execute if score @s CO.EventTimer matches 272 run function asset:mob/0456.gargo_ex_machina/tick/util/change_bossbar_name.m {Name:"絡繰仕掛の石像",Visible:"true"} + +# 無敵化 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/start_invulnerable + execute if score @s CO.EventTimer matches 325 run function asset:mob/0456.gargo_ex_machina/tick/util/end_invulnerable + +# 回転 + execute if score @s CO.EventTimer matches ..80 run function asset:mob/0456.gargo_ex_machina/tick/util/rotate_to_center +# モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + +# 終了 + execute if score @s CO.EventTimer matches 326.. run function asset:mob/0456.gargo_ex_machina/tick/event/change_head/end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/change_head/attack.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/change_head/attack.mcfunction new file mode 100644 index 00000000000..ef4ecb9f928 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/change_head/attack.mcfunction @@ -0,0 +1,102 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/change_head/attack +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/change_head/ + +# ヒット判定 + # 円範囲 + tag @a[tag=!PlayerShouldInvulnerable,distance=..10] add DXYZ + +# ダメージ + data modify storage api: Argument.Damage set from storage asset:context this.Damage.ChangeHead.Amount + data modify storage api: Argument.AttackType set from storage asset:context this.Damage.ChangeHead.Type + data modify storage api: Argument.ElementType set from storage asset:context this.Damage.ChangeHead.Element + function api:damage/modifier + execute as @a[tag=DXYZ] run function api:damage/ + function api:damage/reset + +# 効果音 + playsound entity.generic.explode hostile @a ~ ~ ~ 2 0.5 + playsound entity.iron_golem.death hostile @a ~ ~ ~ 2 0.5 + playsound entity.wither.break_block hostile @a ~ ~ ~ 2 0.7 + +# パーティクル + particle explosion ~ ~1 ~ 5 2 5 0 30 + # 円型ベクトルパーティクル + execute rotated ~00 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~10 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~20 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~30 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~40 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~50 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~60 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~70 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~80 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~90 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~100 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~110 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~120 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~130 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~140 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~150 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~160 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~170 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~180 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~190 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~200 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~210 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~220 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~230 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~240 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~250 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~260 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~270 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~280 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~290 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~300 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~310 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~320 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~330 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~340 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~350 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + # 円型ベクトルパーティクル + execute rotated ~00 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~10 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~20 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~30 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~40 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~50 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~60 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~70 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~80 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~90 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~100 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~110 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~120 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~130 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~140 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~150 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~160 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~170 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~180 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~190 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~200 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~210 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~220 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~230 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~240 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~250 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~260 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~270 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~280 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~290 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~300 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~310 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~320 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~330 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~340 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~350 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + +# 終了 + tag @a[tag=DXYZ] remove DXYZ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/change_head/end.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/change_head/end.mcfunction new file mode 100644 index 00000000000..f1bfbb614cb --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/change_head/end.mcfunction @@ -0,0 +1,15 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/change_head/end +# +# 起動 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/change_head/ + +# タグ消去 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.ChangeHead + +# 待機モーション再生 + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/idle/tween {duration:1, to_frame: 1} + +# 行動 + # function asset:mob/0410.heiloang/tick/act/ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/change_head/prediction.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/change_head/prediction.mcfunction new file mode 100644 index 00000000000..b0268215b88 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/change_head/prediction.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/change_head/prediction +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/change_head/ + +# 予告:円範囲 + data modify storage api: Argument.ID set value 2063 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + data modify storage api: Argument.FieldOverride.Color set value 3381759 + data modify storage api: Argument.FieldOverride.Scale set value [20f, 20f, 0.05f] + data modify storage api: Argument.FieldOverride.Tick set value 100 + execute positioned ^ ^0.2 ^ rotated ~ 0 run function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/change_head/start.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/change_head/start.mcfunction new file mode 100644 index 00000000000..818f0e0342d --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/change_head/start.mcfunction @@ -0,0 +1,26 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/change_head/start +# +# 後半戦移行 +# +# @within asset:mob/0456.gargo_ex_machina/hurt/ + +# 全アニメーション停止 + function asset:mob/0456.gargo_ex_machina/tick/util/stop_all_animations + tag @s remove CO.UpperShot.Asyuc + tag @s remove CO.UpperShot.Pt.Cross + tag @s remove CO.UpperShot.Pt.MoveLine + tag @s remove CO.UpperShot.Pt.Panto + tag @s remove CO.UpperShot.Pt.Random + tag @s remove CO.UpperShot.Pt.Target + +# オブジェクト消去 + execute as @e[tag=CO.Object,distance=..160] on passengers run kill @s + kill @e[tag=CO.Object,distance=..160] + +# イベント実行 + tag @s add CO.Skill.ChangeHead + +# フェーズ移行など + scoreboard players set @s CO.EventTimer 0 + scoreboard players set @s CO.Counter 0 + tag @s add CO.IsLatter diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/effect.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/effect.mcfunction new file mode 100644 index 00000000000..57460f1b037 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/effect.mcfunction @@ -0,0 +1,81 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/field_modify/effect +# +# フィールド・モディファイ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/field_modify/event_start + +# パーティクル +# 円型ベクトルパーティクル + execute rotated ~00 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~10 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~20 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~30 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~40 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~50 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~60 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~70 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~80 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~90 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~100 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~110 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~120 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~130 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~140 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~150 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~160 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~170 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~180 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~190 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~200 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~210 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~220 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~230 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~240 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~250 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~260 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~270 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~280 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~290 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~300 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~310 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~320 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~330 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~340 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~350 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 +# 円型ベクトルパーティクル + execute rotated ~00 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~10 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~20 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~30 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~40 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~50 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~60 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~70 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~80 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~90 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~100 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~110 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~120 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~130 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~140 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~150 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~160 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~170 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~180 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~190 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~200 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~210 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~220 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~230 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~240 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~250 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~260 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~270 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~280 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~290 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~300 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~310 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~320 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~330 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~340 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~350 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/end.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/end.mcfunction new file mode 100644 index 00000000000..6501d579b97 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/end.mcfunction @@ -0,0 +1,16 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/field_modify/end +# +# フィールド・モディファイ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/field_modify/event_start + +# タグ消去 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.FieldModify + scoreboard players reset @s CO.PreTimer + +# 待機モーション再生 + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/idle/tween {duration:1, to_frame: 1} + +# 行動 + # function asset:mob/0410.heiloang/tick/act/ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/event_start.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/event_start.mcfunction new file mode 100644 index 00000000000..d38d5d4586b --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/event_start.mcfunction @@ -0,0 +1,34 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/field_modify/event_start +# +# フィールド・モディファイ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 構え + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/call_drone/tween {duration:1, to_frame: 1} + # 効果音 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 50 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + # 演出 + # 画面エフェクト + execute if score @s CO.EventTimer matches 23 run title @a[distance=..160] times 3 0 5 + execute if score @s CO.EventTimer matches 23 run title @a[distance=..160] title {"text":"\uE010","font":"screen_effect","color":"#E8E8E8"} + execute if score @s CO.EventTimer matches 25 run playsound block.beacon.power_select hostile @a ~ ~ ~ 4 1.5 + execute if score @s CO.EventTimer matches 25 run playsound block.beacon.power_select hostile @a ~ ~ ~ 4 1.7 + execute if score @s CO.EventTimer matches 25 positioned ~ ~1 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/field_modify/effect + execute if score @s CO.EventTimer matches 26 positioned ~ ~6 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/field_modify/effect + execute if score @s CO.EventTimer matches 27 positioned ~ ~11 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/field_modify/effect + # モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + # 召喚 + execute if score @s CO.EventTimer matches 25 run function asset:mob/0456.gargo_ex_machina/tick/event/field_modify/summon_manager + # 床召喚位置が配置されていない場合、ランダム配置 + execute if score @s CO.EventTimer matches 22 unless entity @e[type=area_effect_cloud,tag=CO.Aec.FieldModify,distance=..80] positioned as @e[type=marker,tag=CO.CenterPosition,distance=..80,sort=nearest,limit=1] positioned ~ ~-0.499 ~ rotated 0 0 run function asset:mob/0456.gargo_ex_machina/tick/event/field_modify/summon_field_start + execute if score @s CO.EventTimer matches 22 as @e[type=area_effect_cloud,tag=CO.Aec.FieldModify,distance=..80] at @s run function asset:mob/0456.gargo_ex_machina/tick/event/field_modify/summon_field + +# 終了 + execute if score @s CO.EventTimer matches 65.. run function asset:mob/0456.gargo_ex_machina/tick/event/field_modify/end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/summon_field.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/summon_field.mcfunction new file mode 100644 index 00000000000..a968acb18b5 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/summon_field.mcfunction @@ -0,0 +1,20 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/field_modify/summon_field +# +# フィールド・モディファイ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/field_modify/event_start + +# マネージャー召喚 + data modify storage api: Argument.ID set value 2266 + execute if entity @s[tag=CO.Aec.FieldModify.A] run data modify storage api: Argument.FieldOverride.Model set value 20591 + execute if entity @s[tag=CO.Aec.FieldModify.A] run data modify storage api: Argument.FieldOverride.Color set value 0 + execute if entity @s[tag=CO.Aec.FieldModify.B] run data modify storage api: Argument.FieldOverride.Model set value 20592 + execute if entity @s[tag=CO.Aec.FieldModify.B] run data modify storage api: Argument.FieldOverride.Color set value 1 + execute if entity @s[tag=CO.Aec.FieldModify.C] run data modify storage api: Argument.FieldOverride.Model set value 20593 + execute if entity @s[tag=CO.Aec.FieldModify.C] run data modify storage api: Argument.FieldOverride.Color set value 2 + execute if entity @s[tag=CO.Aec.FieldModify.D] run data modify storage api: Argument.FieldOverride.Model set value 20594 + execute if entity @s[tag=CO.Aec.FieldModify.D] run data modify storage api: Argument.FieldOverride.Color set value 3 + execute positioned ~ ~ ~ run function api:object/summon + +# 終了 + kill @s diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/summon_field_init.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/summon_field_init.m.mcfunction new file mode 100644 index 00000000000..6a46316c6c6 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/summon_field_init.m.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/field_modify/summon_field_init.m +# +# フィールド・モディファイ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/field_modify/summon_field_start + +# 初期化 + $tag @s add CO.Aec.FieldModify.$(Tag) + tag @s remove CO.Aec.FieldModify.Init diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/summon_field_start.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/summon_field_start.mcfunction new file mode 100644 index 00000000000..b656f5f5fb8 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/summon_field_start.mcfunction @@ -0,0 +1,34 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/field_modify/summon_field_start +# +# フィールド・モディファイ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/field_modify/event_start + +# 位置決定用AEC召喚 + # [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYcRADEQExwAsAnALQBGRA7C03Ve0wIYA2dkSYV2dAGYAOFhRZ0406mFwZ+AWwTJAW74ACAIyqwMfgCdNAZyTgAxgHs8GCEjq5JZ+xptgAbvxQ8bXAADyQmamoAOgBWXCgkSNiAX2TcCHsff0DgsDDEJLiwBILomNTce0lJSzgXRApcFjgALzQ4MyRGsDRLACFW9rMAUQBHPACUKABlU1tyJEkA2orwaHhSdCxjAmJSWwN2AGYj-mpmSRiKA25BalsmBkkjikeGfgoGA0ijuEkVNSabRgfQ3BwwBK4UwWDTWRB2RzOVzuTzeeF+AJBHz5CJleJIdgpNKQTLo7JY9H5Qr4xCE8rEqo1OpdJqDDosnr9NkjcaTGZzBaIJYoFZpNawYFbHD4QgkZBHGiHThHATfGLcOhEfgCaRwagCGInfhEQS2SS2BjS9RaUigpjgqD2+wQ4zQqw+BxOepuMAeLxZTG5HHU4rhOkVEkBnLYxJ40OIJjhhnVWr1brNNrshq4XoDTM8iYoKazfjzOXC0XYcUbZBSnay0iHFhLAwWpgmuh0bj8I76hjUQQ3CQxAwMXUxf6COjGa3Au0Op0QxeQkzmd3oz1IxA+v1o8DkoPhEMlXFE9Kk-eBmOlWI00-0yop5nZsAZoYc3PcsaF4sC8vLOBUgAXSAA_3 + # 線 1-copy + summon area_effect_cloud ^-22.5 ^ ^7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.Init"]} + summon area_effect_cloud ^-7.5 ^ ^7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.Init"]} + summon area_effect_cloud ^7.5 ^ ^7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.Init"]} + summon area_effect_cloud ^22.5 ^ ^7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.Init"]} + # 線 1 + summon area_effect_cloud ^-22.5 ^ ^22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.Init"]} + summon area_effect_cloud ^-7.5 ^ ^22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.Init"]} + summon area_effect_cloud ^7.5 ^ ^22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.Init"]} + summon area_effect_cloud ^22.5 ^ ^22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.Init"]} + # 線 1-copy-copy + summon area_effect_cloud ^-22.5 ^ ^-7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.Init"]} + summon area_effect_cloud ^-7.5 ^ ^-7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.Init"]} + summon area_effect_cloud ^7.5 ^ ^-7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.Init"]} + summon area_effect_cloud ^22.5 ^ ^-7.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.Init"]} + # 線 1-copy-copy-copy + summon area_effect_cloud ^-22.5 ^ ^-22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.Init"]} + summon area_effect_cloud ^-7.5 ^ ^-22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.Init"]} + summon area_effect_cloud ^7.5 ^ ^-22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.Init"]} + summon area_effect_cloud ^22.5 ^ ^-22.5 {Tags:["CO.Aec.FieldModify","CO.Aec.FieldModify.Init"]} + +# 初期化 + execute as @e[type=area_effect_cloud,tag=CO.Aec.FieldModify.Init,distance=..80,sort=random,limit=4] at @s run function asset:mob/0456.gargo_ex_machina/tick/event/field_modify/summon_field_init.m {Tag:"A"} + execute as @e[type=area_effect_cloud,tag=CO.Aec.FieldModify.Init,distance=..80,sort=random,limit=4] at @s run function asset:mob/0456.gargo_ex_machina/tick/event/field_modify/summon_field_init.m {Tag:"B"} + execute as @e[type=area_effect_cloud,tag=CO.Aec.FieldModify.Init,distance=..80,sort=random,limit=4] at @s run function asset:mob/0456.gargo_ex_machina/tick/event/field_modify/summon_field_init.m {Tag:"C"} + execute as @e[type=area_effect_cloud,tag=CO.Aec.FieldModify.Init,distance=..80,sort=random,limit=4] at @s run function asset:mob/0456.gargo_ex_machina/tick/event/field_modify/summon_field_init.m {Tag:"D"} diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/summon_manager.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/summon_manager.mcfunction new file mode 100644 index 00000000000..0eed491fd84 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/field_modify/summon_manager.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/field_modify/summon_manager +# +# フィールド・モディファイ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/field_modify/event_start + +# マネージャー召喚 + data modify storage api: Argument.ID set value 2265 + data modify storage api: Argument.FieldOverride.AttackCount set value 4 + execute if score @s CO.PreTimer matches 1.. store result storage api: Argument.FieldOverride.AttackCount int 1 run scoreboard players get @s CO.PreTimer + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage.FieldModify + execute store result storage api: Argument.FieldOverride.UUID int 1 run scoreboard players get @s MobUUID + function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/attack.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/attack.mcfunction new file mode 100644 index 00000000000..30a41f76198 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/attack.mcfunction @@ -0,0 +1,30 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam/attack +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam/event_attack + +# ヒット判定 + # 直線範囲 + tag @a[tag=DXYZ] remove DXYZ + data modify storage lib: args.dx set value 30 + data modify storage lib: args.dy set value 5 + data modify storage lib: args.dz set value 50 + data modify storage lib: args.selector set value "@a[tag=!PlayerShouldInvulnerable,distance=..50]" + execute rotated ~20 0 positioned ^ ^ ^ run function lib:rotatable_dxyz/m with storage lib: args + data modify storage lib: args.dx set value 30 + data modify storage lib: args.dy set value 5 + data modify storage lib: args.dz set value 50 + data modify storage lib: args.selector set value "@a[tag=!PlayerShouldInvulnerable,distance=..50]" + execute rotated ~-20 0 positioned ^ ^ ^ run function lib:rotatable_dxyz/m with storage lib: args + +# ダメージ + data modify storage api: Argument.Damage set from storage asset:context this.Damage.HalfBeam.Amount + data modify storage api: Argument.AttackType set from storage asset:context this.Damage.HalfBeam.Type + data modify storage api: Argument.ElementType set from storage asset:context this.Damage.HalfBeam.Element + function api:damage/modifier + execute as @a[tag=DXYZ] run function api:damage/ + function api:damage/reset + +# 終了 + tag @a[tag=DXYZ] remove DXYZ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect.mcfunction new file mode 100644 index 00000000000..41aaf996358 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect.mcfunction @@ -0,0 +1,164 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect_start + +# パーティクル + # [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYATAOxEAcAbACwBmFAtAMa1Uv0CsAzERYAjWgAZGLHkICMAQwCc1PrOrSOYXBlkBbBMkBbvgAJpGsDFkAnHQGck4NgHs8GCEmk9cjCw+12wAN1kUPD1wAA8kFjIPMCgkUQBfBNwIBz9A4NCwCMRo3DjEROSwB0ZGazhXQtwhOAAvNDgLeNw0awAhesaLAFEARzwglCgAZXM2OBJERiCKpOxwaHhSdCxTAmJSOFl6Pmp5Hmp2AR5uajhToSkyFlEyeVEeMgE+DjZTLV1SI2l2Bxg4rhzFZtLZEPYnC43DEvD50kEQn4clEYgUePNIGlwQEEVkcnlYkh0cVSuVKi0wLUGk0KW1OtTegMhqNxpMkDMUHNkotYHpUJgcPhCFMwDt5GxZHxaLIWPJOKxeLJWDtpKIWNIGERGHKVEJZEIPjo+T8-gDTYCzJYbH5HM4qu5PN5fNiMojsciCQVVRjUvDMkikJ63EVcKSKlVRDUujTqmA6dHGYMUMMxrIJlMOVyFpBeSsBethVs4BQpBQ+Gq4DIbvQhHqWLIyEQZfI4NJ5EIm7Q2EJRKJDV8DMZzebTMDrdjbVDEA6wLDneBXXjIkHp8SUliF7iA7lUdCMWHybGqd1aR0E-0kynWRnZnB5jzlshVoKNiKiDw4HwmIw2MJ6BwzmUWV5AoVgyA7ahDilHheANTQjW+IdHDNZCLTHUEbUhe0YSdP03XCZdd1yENMTwpcd3yQMSIPCMowZU96W6C9mVTdN2VvJIAF0gA_3 + # 線 1-copy-copy + particle explosion ^-25 ^ ^20 3 2 3 0 1 + particle explosion ^-21.42857 ^ ^20 3 2 3 0 1 + particle explosion ^-17.85714 ^ ^20 3 2 3 0 1 + particle explosion ^-14.28571 ^ ^20 3 2 3 0 1 + particle explosion ^-10.71429 ^ ^20 3 2 3 0 1 + particle explosion ^-7.14286 ^ ^20 3 2 3 0 1 + particle explosion ^-3.57143 ^ ^20 3 2 3 0 1 + particle explosion ^0 ^ ^20 3 2 3 0 1 + particle explosion ^3.57143 ^ ^20 3 2 3 0 1 + particle explosion ^7.14286 ^ ^20 3 2 3 0 1 + particle explosion ^10.71429 ^ ^20 3 2 3 0 1 + particle explosion ^14.28571 ^ ^20 3 2 3 0 1 + particle explosion ^17.85714 ^ ^20 3 2 3 0 1 + particle explosion ^21.42857 ^ ^20 3 2 3 0 1 + particle explosion ^25 ^ ^20 3 2 3 0 1 + # 線 1 + particle explosion ^-25 ^ ^0 3 2 3 0 1 + particle explosion ^-21.42857 ^ ^0 3 2 3 0 1 + particle explosion ^-17.85714 ^ ^0 3 2 3 0 1 + particle explosion ^-14.28571 ^ ^0 3 2 3 0 1 + particle explosion ^-10.71429 ^ ^0 3 2 3 0 1 + particle explosion ^-7.14286 ^ ^0 3 2 3 0 1 + particle explosion ^-3.57143 ^ ^0 3 2 3 0 1 + particle explosion ^0 ^ ^0 3 2 3 0 1 + particle explosion ^3.57143 ^ ^0 3 2 3 0 1 + particle explosion ^7.14286 ^ ^0 3 2 3 0 1 + particle explosion ^10.71429 ^ ^0 3 2 3 0 1 + particle explosion ^14.28571 ^ ^0 3 2 3 0 1 + particle explosion ^17.85714 ^ ^0 3 2 3 0 1 + particle explosion ^21.42857 ^ ^0 3 2 3 0 1 + particle explosion ^25 ^ ^0 3 2 3 0 1 + # 線 1-copy + particle explosion ^-25 ^ ^5 3 2 3 0 1 + particle explosion ^-21.42857 ^ ^5 3 2 3 0 1 + particle explosion ^-17.85714 ^ ^5 3 2 3 0 1 + particle explosion ^-14.28571 ^ ^5 3 2 3 0 1 + particle explosion ^-10.71429 ^ ^5 3 2 3 0 1 + particle explosion ^-7.14286 ^ ^5 3 2 3 0 1 + particle explosion ^-3.57143 ^ ^5 3 2 3 0 1 + particle explosion ^0 ^ ^5 3 2 3 0 1 + particle explosion ^3.57143 ^ ^5 3 2 3 0 1 + particle explosion ^7.14286 ^ ^5 3 2 3 0 1 + particle explosion ^10.71429 ^ ^5 3 2 3 0 1 + particle explosion ^14.28571 ^ ^5 3 2 3 0 1 + particle explosion ^17.85714 ^ ^5 3 2 3 0 1 + particle explosion ^21.42857 ^ ^5 3 2 3 0 1 + particle explosion ^25 ^ ^5 3 2 3 0 1 + # 線 1-copy-copy + particle explosion ^-25 ^ ^10 3 2 3 0 1 + particle explosion ^-21.42857 ^ ^10 3 2 3 0 1 + particle explosion ^-17.85714 ^ ^10 3 2 3 0 1 + particle explosion ^-14.28571 ^ ^10 3 2 3 0 1 + particle explosion ^-10.71429 ^ ^10 3 2 3 0 1 + particle explosion ^-7.14286 ^ ^10 3 2 3 0 1 + particle explosion ^-3.57143 ^ ^10 3 2 3 0 1 + particle explosion ^0 ^ ^10 3 2 3 0 1 + particle explosion ^3.57143 ^ ^10 3 2 3 0 1 + particle explosion ^7.14286 ^ ^10 3 2 3 0 1 + particle explosion ^10.71429 ^ ^10 3 2 3 0 1 + particle explosion ^14.28571 ^ ^10 3 2 3 0 1 + particle explosion ^17.85714 ^ ^10 3 2 3 0 1 + particle explosion ^21.42857 ^ ^10 3 2 3 0 1 + particle explosion ^25 ^ ^10 3 2 3 0 1 + # 線 1-copy-copy + particle explosion ^-25 ^ ^15 3 2 3 0 1 + particle explosion ^-21.42857 ^ ^15 3 2 3 0 1 + particle explosion ^-17.85714 ^ ^15 3 2 3 0 1 + particle explosion ^-14.28571 ^ ^15 3 2 3 0 1 + particle explosion ^-10.71429 ^ ^15 3 2 3 0 1 + particle explosion ^-7.14286 ^ ^15 3 2 3 0 1 + particle explosion ^-3.57143 ^ ^15 3 2 3 0 1 + particle explosion ^0 ^ ^15 3 2 3 0 1 + particle explosion ^3.57143 ^ ^15 3 2 3 0 1 + particle explosion ^7.14286 ^ ^15 3 2 3 0 1 + particle explosion ^10.71429 ^ ^15 3 2 3 0 1 + particle explosion ^14.28571 ^ ^15 3 2 3 0 1 + particle explosion ^17.85714 ^ ^15 3 2 3 0 1 + particle explosion ^21.42857 ^ ^15 3 2 3 0 1 + particle explosion ^25 ^ ^15 3 2 3 0 1 + # [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYATAOxEAcAbACwBmFAtAMa1Uv0CsAzERYAjWgAZGLHkICMAQwCc1PrOrSOYXBlkBbBMkBbvgAJpGsDFkAnHQGck4NgHs8GCEgq5GFh9rtgAbrIoeHrgAB5ILGQ8uFBIogC+8bgQDr4BQSFg4YhRMXGJuA6MjNZwroiiuEJwAF5ocBZxuGjWAEK19RYAogCOeIEoUADK5mxwJIiMgaUF4NDwpOhYpgTEpHCy9HzU8jzU7AI83NRwR0JSZCyiZPKiPGQCfBxsplq6pEbS7A4wsbjmVm0tkQ9icLiQtA8Xh8IP8gWCvmykWiYFiiB4BUgqVh6QRsOyuVRSAxSTARRKZSaYGqdQaVJa7Vp3T6A2Go3GSCmKBmSTmsD0qEwOHwhAmYE28jYsj4tFkLHknFYvFkrE20lELGkDCIjAVKiEsiErx0As+31+5r+ZksNl8jmc5RRnm8aXhmSRhLR6sxKVdGURSE9SG9pPJpXKlWpHTpFWabWjzP6KEGI1kYwmXJ52D5C2QS2FqzFcDgFCkFD4GrgMku9CEBpYsjIRDl8jg0nkQmbtDYQlEomN7wMxktltMANtsPt4MQ1ChLpxboDiGReUQ0hJyWx4Fx7sDKK9G7JxXDVJpnXp8aZvSTKfZGemcFmkH5iyFK1FpCIPDgfCYjDYwj0BwxzKPK8gUKwZCdtQewyjwvBGpoJofMOjgWmhVrjkCdpguUkJgM6MLbou+IREGOQJKSvoLv6pE5PugaUYUx6UrGUZMhejKdNerKpumnIPokAC6QA_3 + # 線 1-copy-copy + particle flash ^-25 ^ ^20 3 1 3 0 1 + particle flash ^-15 ^ ^20 3 1 3 0 1 + particle flash ^-5 ^ ^20 3 1 3 0 1 + particle flash ^5 ^ ^20 3 1 3 0 1 + particle flash ^15 ^ ^20 3 1 3 0 1 + particle flash ^25 ^ ^20 3 1 3 0 1 + # 線 1 + particle flash ^-25 ^ ^0 3 1 3 0 1 + particle flash ^-16.66667 ^ ^0 3 1 3 0 1 + particle flash ^-8.33333 ^ ^0 3 1 3 0 1 + particle flash ^0 ^ ^0 3 1 3 0 1 + particle flash ^8.33333 ^ ^0 3 1 3 0 1 + particle flash ^16.66667 ^ ^0 3 1 3 0 1 + particle flash ^25 ^ ^0 3 1 3 0 1 + # 線 1-copy + particle flash ^-25 ^ ^5 3 1 3 0 1 + particle flash ^-15 ^ ^5 3 1 3 0 1 + particle flash ^-5 ^ ^5 3 1 3 0 1 + particle flash ^5 ^ ^5 3 1 3 0 1 + particle flash ^15 ^ ^5 3 1 3 0 1 + particle flash ^25 ^ ^5 3 1 3 0 1 + # 線 1-copy-copy + particle flash ^-25 ^ ^10 3 1 3 0 1 + particle flash ^-12.5 ^ ^10 3 1 3 0 1 + particle flash ^0 ^ ^10 3 1 3 0 1 + particle flash ^12.5 ^ ^10 3 1 3 0 1 + particle flash ^25 ^ ^10 3 1 3 0 1 + # 線 1-copy-copy + particle flash ^-25 ^ ^15 3 1 3 0 1 + particle flash ^-17.85714 ^ ^15 3 1 3 0 1 + particle flash ^-10.71429 ^ ^15 3 1 3 0 1 + particle flash ^-3.57143 ^ ^15 3 1 3 0 1 + particle flash ^3.57143 ^ ^15 3 1 3 0 1 + particle flash ^10.71429 ^ ^15 3 1 3 0 1 + particle flash ^17.85714 ^ ^15 3 1 3 0 1 + particle flash ^25 ^ ^15 3 1 3 0 1 + # [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYATAOxEAcAbACwBmFAtAMa1Uv0CsAzERYAjWgAZGLHkICMAQwCc1PrOrSOYXBlkBbBMkBbvgAJpGsDFkAnHQGck4NgHs8GCEgq5GFh9rtgAbrIoeHrgAB5ILGQ8uFBIogC+8bgQDr4BQSFg4YhRMXGJuA6MjNZwroiiuEJwAF5ocBZxuGjWAEK19RYAogCOeIEoUADK5mxwJIiMgaUF4NDwpOhYpgTEpHCy9HzU8jzU7AI83NRwR0JSZCyiZPKiPGQCfBxsplq6pEbS7A4wsbjmVm0tkQ9icLiQtA8Xh8IP8gWCvmykWiYFiiB4BUgqVh6QRsOyuVRSAxSTARRKZSaYGqdQaVJa7Vp3T6A2Go3GSCmKBmSTmsD0qEwOHwhAmYE28jYsj4tFkLHknFYvFkrE20lELGkDCIjAVKiEsiErx0As+31+5r+ZksNl8jmc5RRnm8aXhmSRhLR6sxKVdGURSE9SG9pPJpXKlWpHTpFWabWjzP6KEGI1kYwmXJ52D5C2QS2FqzFcDgFCkFD4GrgMku9CEBpYsjIRDl8jg0nkQmbtDYQlEomN7wMxktltMANtsPt4MQ1ChLpxboDiGReUQ0hJyWx4Fx7sDKK9G7JxXDVJpnXp8aZvSTKfZGemcFmkH5iyFK1FpCIPDgfCYjDYwj0BwxzKPK8gUKwZCdtQewyjwvBGpoJofMOjgWmhVrjkCdpguUkJgM6MLbou+IREGOQJKSvoLv6pE5PugaUYUx6UrGUZMhejKdNerKpumnIPokAC6QA_3 + # 線 1-copy-copy + particle lava ^-25 ^ ^20 3 1 3 0 1 + particle lava ^-15 ^ ^20 3 1 3 0 1 + particle lava ^-5 ^ ^20 3 1 3 0 1 + particle lava ^5 ^ ^20 3 1 3 0 1 + particle lava ^15 ^ ^20 3 1 3 0 1 + particle lava ^25 ^ ^20 3 1 3 0 1 + # 線 1 + particle lava ^-25 ^ ^0 3 1 3 0 1 + particle lava ^-16.66667 ^ ^0 3 1 3 0 1 + particle lava ^-8.33333 ^ ^0 3 1 3 0 1 + particle lava ^0 ^ ^0 3 1 3 0 1 + particle lava ^8.33333 ^ ^0 3 1 3 0 1 + particle lava ^16.66667 ^ ^0 3 1 3 0 1 + particle lava ^25 ^ ^0 3 1 3 0 1 + # 線 1-copy + particle lava ^-25 ^ ^5 3 1 3 0 1 + particle lava ^-15 ^ ^5 3 1 3 0 1 + particle lava ^-5 ^ ^5 3 1 3 0 1 + particle lava ^5 ^ ^5 3 1 3 0 1 + particle lava ^15 ^ ^5 3 1 3 0 1 + particle lava ^25 ^ ^5 3 1 3 0 1 + # 線 1-copy-copy + particle lava ^-25 ^ ^10 3 1 3 0 1 + particle lava ^-12.5 ^ ^10 3 1 3 0 1 + particle lava ^0 ^ ^10 3 1 3 0 1 + particle lava ^12.5 ^ ^10 3 1 3 0 1 + particle lava ^25 ^ ^10 3 1 3 0 1 + # 線 1-copy-copy + particle lava ^-25 ^ ^15 3 1 3 0 1 + particle lava ^-17.85714 ^ ^15 3 1 3 0 1 + particle lava ^-10.71429 ^ ^15 3 1 3 0 1 + particle lava ^-3.57143 ^ ^15 3 1 3 0 1 + particle lava ^3.57143 ^ ^15 3 1 3 0 1 + particle lava ^10.71429 ^ ^15 3 1 3 0 1 + particle lava ^17.85714 ^ ^15 3 1 3 0 1 + particle lava ^25 ^ ^15 3 1 3 0 1 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect_start.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect_start.mcfunction new file mode 100644 index 00000000000..6860d9d11f8 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect_start.mcfunction @@ -0,0 +1,15 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect_start +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam/event_attack + +# 演出 + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] rotated ~60 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] rotated ~120 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] rotated ~-60 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] rotated ~-120 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect + +# 効果音 + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] rotated ~90 ~ run playsound entity.generic.explode hostile @a ^ ^ ^10 2 0.7 + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] rotated ~-90 ~ run playsound entity.generic.explode hostile @a ^ ^ ^10 2 0.7 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/end.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/end.mcfunction new file mode 100644 index 00000000000..8c6544349f7 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/end.mcfunction @@ -0,0 +1,16 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam/end +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam/event_attack + +# タグ消去 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.HalfBeam.Attack + tag @s remove CO.Skill.HalfBeam.IsRight + +# 待機モーション再生 + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/idle/tween {duration:1, to_frame: 1} + +# 行動 + # function asset:mob/0410.heiloang/tick/act/ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/event_attack.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/event_attack.mcfunction new file mode 100644 index 00000000000..698e4941f43 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/event_attack.mcfunction @@ -0,0 +1,38 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam/event_attack +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 攻撃 + # アニメーション再生 + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/beam_attack_right/tween {duration:1, to_frame: 1} + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/beam_attack_left/tween {duration:1, to_frame: 1} + execute if score @s CO.EventTimer matches 60 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/beam_end/tween {duration:1, to_frame: 1} + # 効果音 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 1 run playsound ui.stonecutter.take_result hostile @a ~ ~ ~ 2 0.5 + execute if score @s CO.EventTimer matches 10 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 15 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 41 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 60 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + # 攻撃 + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 23 positioned ^-30 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/attack + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 23 positioned ^30 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/attack + # 攻撃演出 + execute if score @s CO.EventTimer matches 9 positioned ~ ~15 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/summon_laser_start + execute if score @s CO.EventTimer matches 11..18 run playsound entity.breeze.jump hostile @a ~ ~ ~ 2 0.5 + execute if score @s CO.EventTimer matches 11..18 run playsound entity.breeze.jump hostile @a ~ ~ ~ 2 0.6 + execute if score @s CO.EventTimer matches 23 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect_start + execute if score @s CO.EventTimer matches 25 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect_start + execute if score @s CO.EventTimer matches 27 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect_start + execute if score @s CO.EventTimer matches 29 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect_start + execute if score @s CO.EventTimer matches 31 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect_start + execute if score @s CO.EventTimer matches 33 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect_start + execute if score @s CO.EventTimer matches 35 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/attack_effect_start + +# 終了 + execute if score @s CO.EventTimer matches 95.. run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/event_charging.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/event_charging.mcfunction new file mode 100644 index 00000000000..05d3086d87e --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/event_charging.mcfunction @@ -0,0 +1,53 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam/event_charging +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 溜め + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/beam_charge/tween {duration:1, to_frame: 1} + # モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + # 予告 + # ノーマル + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 15 positioned ^-30 ^ ^ rotated ~-20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/prediction.m {Interpolation:20,Tick:158} + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 35 positioned ^-30 ^0.05 ^ rotated ~20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/prediction.m {Interpolation:20,Tick:138} + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 15 positioned ^30 ^ ^ rotated ~20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/prediction.m {Interpolation:20,Tick:158} + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 35 positioned ^30 ^0.05 ^ rotated ~-20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/prediction.m {Interpolation:20,Tick:138} + # # ハード + # execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/2_hard if score @s CO.EventTimer matches 35 positioned ^-30 ^ ^ rotated ~-20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/prediction.m {Interpolation:20,Tick:88} + # execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/2_hard if score @s CO.EventTimer matches 55 positioned ^-30 ^0.05 ^ rotated ~20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/prediction.m {Interpolation:20,Tick:68} + # execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/2_hard if score @s CO.EventTimer matches 35 positioned ^30 ^ ^ rotated ~20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/prediction.m {Interpolation:20,Tick:88} + # execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/2_hard if score @s CO.EventTimer matches 55 positioned ^30 ^0.05 ^ rotated ~-20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/prediction.m {Interpolation:20,Tick:68} + # # ブレスレス + # execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/min/3_blessless if score @s CO.EventTimer matches 90 positioned ^-30 ^ ^ rotated ~-20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/prediction.m {Interpolation:2,Tick:33} + # execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/min/3_blessless if score @s CO.EventTimer matches 95 positioned ^-30 ^0.05 ^ rotated ~20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/prediction.m {Interpolation:2,Tick:28} + # execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/min/3_blessless if score @s CO.EventTimer matches 90 positioned ^30 ^ ^ rotated ~20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/prediction.m {Interpolation:2,Tick:33} + # execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/min/3_blessless if score @s CO.EventTimer matches 95 positioned ^30 ^0.05 ^ rotated ~-20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/prediction.m {Interpolation:2,Tick:28} + # 効果音 + execute if score @s CO.EventTimer matches 1..180 positioned ~ ~15 ~ run particle end_rod ~ ~ ~ 2 2 2 0.05 1 + +# 予告 + execute if score @s CO.EventTimer matches 1 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.1 + execute if score @s CO.EventTimer matches 1 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.1 + execute if score @s CO.EventTimer matches 20 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.2 + execute if score @s CO.EventTimer matches 20 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.2 + execute if score @s CO.EventTimer matches 40 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.3 + execute if score @s CO.EventTimer matches 40 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.3 + execute if score @s CO.EventTimer matches 60 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.4 + execute if score @s CO.EventTimer matches 60 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.4 + execute if score @s CO.EventTimer matches 80 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.5 + execute if score @s CO.EventTimer matches 80 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.5 + execute if score @s CO.EventTimer matches 100 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.6 + execute if score @s CO.EventTimer matches 100 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.6 + execute if score @s CO.EventTimer matches 120 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.7 + execute if score @s CO.EventTimer matches 120 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.7 + execute if score @s CO.EventTimer matches 140 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.8 + execute if score @s CO.EventTimer matches 140 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.8 + +# 終了 + execute if score @s CO.EventTimer matches 150.. run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/start_attack diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/event_start.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/event_start.mcfunction new file mode 100644 index 00000000000..a7f5621d377 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/event_start.mcfunction @@ -0,0 +1,31 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam/event_start +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 構え + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/beam_start/tween {duration:1, to_frame: 1} + # 効果音 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 22 run playsound entity.ravager.step hostile @a ~ ~ ~ 2 0.7 + execute if score @s CO.EventTimer matches 22 run playsound entity.ravager.step hostile @a ~ ~ ~ 2 0.6 + execute if score @s CO.EventTimer matches 22 run playsound entity.ravager.step hostile @a ~ ~ ~ 2 0.5 + execute if score @s CO.EventTimer matches 25 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + # モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + # 演出 + execute if score @s CO.EventTimer matches 21 positioned ^ ^ ^6 run particle explosion ~ ~ ~ 1 0.5 1 0 6 + execute if score @s CO.EventTimer matches 21 positioned ^ ^ ^6 run particle block quartz_block ~ ~ ~ 1 0.5 1 0 100 + # 攻撃方向をランダムに決定 + execute if score @s CO.EventTimer matches 1 if predicate lib:random_pass_per/50 run tag @s add CO.Skill.HalfBeam.IsRight + # 予告 + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 1 run tellraw @a [{"text":"【石像の","color": "dark_purple","bold": true},{"text":" 右眼 ","color": "red","bold": true},{"text":"が光り始めた!!】","color": "dark_purple","bold": true}] + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 1 run tellraw @a [{"text":"【石像の","color": "dark_purple","bold": true},{"text":" 左眼 ","color": "blue","bold": true},{"text":"が光り始めた!!】","color": "dark_purple","bold": true}] + +# 溜めに移行 + execute if score @s CO.EventTimer matches 36.. run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/start_charging diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/prediction.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/prediction.m.mcfunction new file mode 100644 index 00000000000..782d703d1f7 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/prediction.m.mcfunction @@ -0,0 +1,15 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam/prediction.m +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam/event_charging + +# 予告 + data modify storage api: Argument.ID set value 2113 + data modify storage api: Argument.FieldOverride.RotationX set from entity @s Rotation[0] + data modify storage api: Argument.FieldOverride.Color set value 3381759 + data modify storage api: Argument.FieldOverride.Scale set value [60f,100f] + $data modify storage api: Argument.FieldOverride.Interpolation set value $(Interpolation) + $data modify storage api: Argument.FieldOverride.Tick set value $(Tick) + data modify storage api: Argument.FieldOverride.ViewRange set value 16f + execute positioned ^ ^0.1 ^50 rotated ~180 0 run function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/start_attack.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/start_attack.mcfunction new file mode 100644 index 00000000000..affa3486fa9 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/start_attack.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam/start_attack +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam/event_charging + +# タグ更新 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.HalfBeam.Charge + tag @s add CO.Skill.HalfBeam.Attack diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/start_charging.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/start_charging.mcfunction new file mode 100644 index 00000000000..3fe10233d2e --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/start_charging.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam/start_charging +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam/event_start + +# タグ更新 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.HalfBeam + tag @s add CO.Skill.HalfBeam.Charge diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/summon_laser.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/summon_laser.mcfunction new file mode 100644 index 00000000000..650882ea3f1 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/summon_laser.mcfunction @@ -0,0 +1,11 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam/summon_laser +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam/summon_laser_start + +# 演出 + data modify storage api: Argument.ID set value 2263 + data modify storage api: Argument.FieldOverride.Rotation set from entity @s Rotation + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] run data modify storage api: Argument.FieldOverride.IsRight set value true + function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/summon_laser_start.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/summon_laser_start.mcfunction new file mode 100644 index 00000000000..f1efaebe013 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam/summon_laser_start.mcfunction @@ -0,0 +1,24 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam/summon_laser_start +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam/event_attack + +# 基準用AEC召喚 + summon area_effect_cloud ~ ~ ~ {Tags:["CO.Aec.Target"]} + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] run tag @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] add CO.Skill.HalfBeam.IsRight + +# 演出 + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] run tp @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] ^-2 ^ ^ ~-30 60 + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] run tp @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] ^2 ^ ^ ~30 60 + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s positioned ^-2 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/summon_laser + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s positioned ^2 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/summon_laser + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s run tp @s ~ ~ ~ ~ 45 + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s positioned ^-2 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/summon_laser + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s positioned ^2 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/summon_laser + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s run tp @s ~ ~ ~ ~ 30 + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s positioned ^-2 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/summon_laser + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s positioned ^2 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam/summon_laser + +# 終了 + kill @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack.mcfunction new file mode 100644 index 00000000000..ec2c91c3655 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack.mcfunction @@ -0,0 +1,30 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_attack + +# ヒット判定 + # 直線範囲 + tag @a[tag=DXYZ] remove DXYZ + data modify storage lib: args.dx set value 30 + data modify storage lib: args.dy set value 5 + data modify storage lib: args.dz set value 50 + data modify storage lib: args.selector set value "@a[tag=!PlayerShouldInvulnerable,distance=..50]" + execute rotated ~20 0 positioned ^ ^ ^ run function lib:rotatable_dxyz/m with storage lib: args + data modify storage lib: args.dx set value 30 + data modify storage lib: args.dy set value 5 + data modify storage lib: args.dz set value 50 + data modify storage lib: args.selector set value "@a[tag=!PlayerShouldInvulnerable,distance=..50]" + execute rotated ~-20 0 positioned ^ ^ ^ run function lib:rotatable_dxyz/m with storage lib: args + +# ダメージ + data modify storage api: Argument.Damage set from storage asset:context this.Damage.HalfBeam.Amount + data modify storage api: Argument.AttackType set from storage asset:context this.Damage.HalfBeam.Type + data modify storage api: Argument.ElementType set from storage asset:context this.Damage.HalfBeam.Element + function api:damage/modifier + execute as @a[tag=DXYZ] run function api:damage/ + function api:damage/reset + +# 終了 + tag @a[tag=DXYZ] remove DXYZ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect.mcfunction new file mode 100644 index 00000000000..c127f967f94 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect.mcfunction @@ -0,0 +1,167 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect_start + +# 効果音 + playsound entity.generic.explode hostile @a ~ ~ ~ 2 0.7 + +# パーティクル + # [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYATAOxEAcAbACwBmFAtAMa1Uv0CsAzERYAjWgAZGLHkICMAQwCc1PrOrSOYXBlkBbBMkBbvgAJpGsDFkAnHQGck4NgHs8GCEmk9cjCw+12wAN1kUPD1wAA8kFjIPMCgkUQBfBNwIBz9A4NCwCMRo3DjEROSwB0ZGazhXQtwhOAAvNDgLeNw0awAhesaLAFEARzwglCgAZXM2OBJERiCKpOxwaHhSdCxTAmJSOFl6Pmp5Hmp2AR5uajhToSkyFlEyeVEeMgE+DjZTLV1SI2l2Bxg4rhzFZtLZEPYnC43DEvD50kEQn4clEYgUePNIGlwQEEVkcnlYkh0cVSuVKi0wLUGk0KW1OtTegMhqNxpMkDMUHNkotYHpUJgcPhCFMwDt5GxZHxaLIWPJOKxeLJWDtpKIWNIGERGHKVEJZEIPjo+T8-gDTYCzJYbH5HM4qu5PN5fNiMojsciCQVVRjUvDMkikJ63EVcKSKlVRDUujTqmA6dHGYMUMMxrIJlMOVyFpBeSsBethVs4BQpBQ+Gq4DIbvQhHqWLIyEQZfI4NJ5EIm7Q2EJRKJDV8DMZzebTMDrdjbVDEA6wLDneBXXjIkHp8SUliF7iA7lUdCMWHybGqd1aR0E-0kynWRnZnB5jzlshVoKNiKiDw4HwmIw2MJ6BwzmUWV5AoVgyA7ahDilHheANTQjW+IdHDNZCLTHUEbUhe0YSdP03XCZdd1yENMTwpcd3yQMSIPCMowZU96W6C9mVTdN2VvJIAF0gA_3 + # 線 1-copy-copy + particle explosion ^-25 ^ ^20 3 2 3 0 1 + particle explosion ^-21.42857 ^ ^20 3 2 3 0 1 + particle explosion ^-17.85714 ^ ^20 3 2 3 0 1 + particle explosion ^-14.28571 ^ ^20 3 2 3 0 1 + particle explosion ^-10.71429 ^ ^20 3 2 3 0 1 + particle explosion ^-7.14286 ^ ^20 3 2 3 0 1 + particle explosion ^-3.57143 ^ ^20 3 2 3 0 1 + particle explosion ^0 ^ ^20 3 2 3 0 1 + particle explosion ^3.57143 ^ ^20 3 2 3 0 1 + particle explosion ^7.14286 ^ ^20 3 2 3 0 1 + particle explosion ^10.71429 ^ ^20 3 2 3 0 1 + particle explosion ^14.28571 ^ ^20 3 2 3 0 1 + particle explosion ^17.85714 ^ ^20 3 2 3 0 1 + particle explosion ^21.42857 ^ ^20 3 2 3 0 1 + particle explosion ^25 ^ ^20 3 2 3 0 1 + # 線 1 + particle explosion ^-25 ^ ^0 3 2 3 0 1 + particle explosion ^-21.42857 ^ ^0 3 2 3 0 1 + particle explosion ^-17.85714 ^ ^0 3 2 3 0 1 + particle explosion ^-14.28571 ^ ^0 3 2 3 0 1 + particle explosion ^-10.71429 ^ ^0 3 2 3 0 1 + particle explosion ^-7.14286 ^ ^0 3 2 3 0 1 + particle explosion ^-3.57143 ^ ^0 3 2 3 0 1 + particle explosion ^0 ^ ^0 3 2 3 0 1 + particle explosion ^3.57143 ^ ^0 3 2 3 0 1 + particle explosion ^7.14286 ^ ^0 3 2 3 0 1 + particle explosion ^10.71429 ^ ^0 3 2 3 0 1 + particle explosion ^14.28571 ^ ^0 3 2 3 0 1 + particle explosion ^17.85714 ^ ^0 3 2 3 0 1 + particle explosion ^21.42857 ^ ^0 3 2 3 0 1 + particle explosion ^25 ^ ^0 3 2 3 0 1 + # 線 1-copy + particle explosion ^-25 ^ ^5 3 2 3 0 1 + particle explosion ^-21.42857 ^ ^5 3 2 3 0 1 + particle explosion ^-17.85714 ^ ^5 3 2 3 0 1 + particle explosion ^-14.28571 ^ ^5 3 2 3 0 1 + particle explosion ^-10.71429 ^ ^5 3 2 3 0 1 + particle explosion ^-7.14286 ^ ^5 3 2 3 0 1 + particle explosion ^-3.57143 ^ ^5 3 2 3 0 1 + particle explosion ^0 ^ ^5 3 2 3 0 1 + particle explosion ^3.57143 ^ ^5 3 2 3 0 1 + particle explosion ^7.14286 ^ ^5 3 2 3 0 1 + particle explosion ^10.71429 ^ ^5 3 2 3 0 1 + particle explosion ^14.28571 ^ ^5 3 2 3 0 1 + particle explosion ^17.85714 ^ ^5 3 2 3 0 1 + particle explosion ^21.42857 ^ ^5 3 2 3 0 1 + particle explosion ^25 ^ ^5 3 2 3 0 1 + # 線 1-copy-copy + particle explosion ^-25 ^ ^10 3 2 3 0 1 + particle explosion ^-21.42857 ^ ^10 3 2 3 0 1 + particle explosion ^-17.85714 ^ ^10 3 2 3 0 1 + particle explosion ^-14.28571 ^ ^10 3 2 3 0 1 + particle explosion ^-10.71429 ^ ^10 3 2 3 0 1 + particle explosion ^-7.14286 ^ ^10 3 2 3 0 1 + particle explosion ^-3.57143 ^ ^10 3 2 3 0 1 + particle explosion ^0 ^ ^10 3 2 3 0 1 + particle explosion ^3.57143 ^ ^10 3 2 3 0 1 + particle explosion ^7.14286 ^ ^10 3 2 3 0 1 + particle explosion ^10.71429 ^ ^10 3 2 3 0 1 + particle explosion ^14.28571 ^ ^10 3 2 3 0 1 + particle explosion ^17.85714 ^ ^10 3 2 3 0 1 + particle explosion ^21.42857 ^ ^10 3 2 3 0 1 + particle explosion ^25 ^ ^10 3 2 3 0 1 + # 線 1-copy-copy + particle explosion ^-25 ^ ^15 3 2 3 0 1 + particle explosion ^-21.42857 ^ ^15 3 2 3 0 1 + particle explosion ^-17.85714 ^ ^15 3 2 3 0 1 + particle explosion ^-14.28571 ^ ^15 3 2 3 0 1 + particle explosion ^-10.71429 ^ ^15 3 2 3 0 1 + particle explosion ^-7.14286 ^ ^15 3 2 3 0 1 + particle explosion ^-3.57143 ^ ^15 3 2 3 0 1 + particle explosion ^0 ^ ^15 3 2 3 0 1 + particle explosion ^3.57143 ^ ^15 3 2 3 0 1 + particle explosion ^7.14286 ^ ^15 3 2 3 0 1 + particle explosion ^10.71429 ^ ^15 3 2 3 0 1 + particle explosion ^14.28571 ^ ^15 3 2 3 0 1 + particle explosion ^17.85714 ^ ^15 3 2 3 0 1 + particle explosion ^21.42857 ^ ^15 3 2 3 0 1 + particle explosion ^25 ^ ^15 3 2 3 0 1 + # [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYATAOxEAcAbACwBmFAtAMa1Uv0CsAzERYAjWgAZGLHkICMAQwCc1PrOrSOYXBlkBbBMkBbvgAJpGsDFkAnHQGck4NgHs8GCEgq5GFh9rtgAbrIoeHrgAB5ILGQ8uFBIogC+8bgQDr4BQSFg4YhRMXGJuA6MjNZwroiiuEJwAF5ocBZxuGjWAEK19RYAogCOeIEoUADK5mxwJIiMgaUF4NDwpOhYpgTEpHCy9HzU8jzU7AI83NRwR0JSZCyiZPKiPGQCfBxsplq6pEbS7A4wsbjmVm0tkQ9icLiQtA8Xh8IP8gWCvmykWiYFiiB4BUgqVh6QRsOyuVRSAxSTARRKZSaYGqdQaVJa7Vp3T6A2Go3GSCmKBmSTmsD0qEwOHwhAmYE28jYsj4tFkLHknFYvFkrE20lELGkDCIjAVKiEsiErx0As+31+5r+ZksNl8jmc5RRnm8aXhmSRhLR6sxKVdGURSE9SG9pPJpXKlWpHTpFWabWjzP6KEGI1kYwmXJ52D5C2QS2FqzFcDgFCkFD4GrgMku9CEBpYsjIRDl8jg0nkQmbtDYQlEomN7wMxktltMANtsPt4MQ1ChLpxboDiGReUQ0hJyWx4Fx7sDKK9G7JxXDVJpnXp8aZvSTKfZGemcFmkH5iyFK1FpCIPDgfCYjDYwj0BwxzKPK8gUKwZCdtQewyjwvBGpoJofMOjgWmhVrjkCdpguUkJgM6MLbou+IREGOQJKSvoLv6pE5PugaUYUx6UrGUZMhejKdNerKpumnIPokAC6QA_3 + # 線 1-copy-copy + particle flash ^-25 ^ ^20 3 1 3 0 1 + particle flash ^-15 ^ ^20 3 1 3 0 1 + particle flash ^-5 ^ ^20 3 1 3 0 1 + particle flash ^5 ^ ^20 3 1 3 0 1 + particle flash ^15 ^ ^20 3 1 3 0 1 + particle flash ^25 ^ ^20 3 1 3 0 1 + # 線 1 + particle flash ^-25 ^ ^0 3 1 3 0 1 + particle flash ^-16.66667 ^ ^0 3 1 3 0 1 + particle flash ^-8.33333 ^ ^0 3 1 3 0 1 + particle flash ^0 ^ ^0 3 1 3 0 1 + particle flash ^8.33333 ^ ^0 3 1 3 0 1 + particle flash ^16.66667 ^ ^0 3 1 3 0 1 + particle flash ^25 ^ ^0 3 1 3 0 1 + # 線 1-copy + particle flash ^-25 ^ ^5 3 1 3 0 1 + particle flash ^-15 ^ ^5 3 1 3 0 1 + particle flash ^-5 ^ ^5 3 1 3 0 1 + particle flash ^5 ^ ^5 3 1 3 0 1 + particle flash ^15 ^ ^5 3 1 3 0 1 + particle flash ^25 ^ ^5 3 1 3 0 1 + # 線 1-copy-copy + particle flash ^-25 ^ ^10 3 1 3 0 1 + particle flash ^-12.5 ^ ^10 3 1 3 0 1 + particle flash ^0 ^ ^10 3 1 3 0 1 + particle flash ^12.5 ^ ^10 3 1 3 0 1 + particle flash ^25 ^ ^10 3 1 3 0 1 + # 線 1-copy-copy + particle flash ^-25 ^ ^15 3 1 3 0 1 + particle flash ^-17.85714 ^ ^15 3 1 3 0 1 + particle flash ^-10.71429 ^ ^15 3 1 3 0 1 + particle flash ^-3.57143 ^ ^15 3 1 3 0 1 + particle flash ^3.57143 ^ ^15 3 1 3 0 1 + particle flash ^10.71429 ^ ^15 3 1 3 0 1 + particle flash ^17.85714 ^ ^15 3 1 3 0 1 + particle flash ^25 ^ ^15 3 1 3 0 1 + # [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYATAOxEAcAbACwBmFAtAMa1Uv0CsAzERYAjWgAZGLHkICMAQwCc1PrOrSOYXBlkBbBMkBbvgAJpGsDFkAnHQGck4NgHs8GCEgq5GFh9rtgAbrIoeHrgAB5ILGQ8uFBIogC+8bgQDr4BQSFg4YhRMXGJuA6MjNZwroiiuEJwAF5ocBZxuGjWAEK19RYAogCOeIEoUADK5mxwJIiMgaUF4NDwpOhYpgTEpHCy9HzU8jzU7AI83NRwR0JSZCyiZPKiPGQCfBxsplq6pEbS7A4wsbjmVm0tkQ9icLiQtA8Xh8IP8gWCvmykWiYFiiB4BUgqVh6QRsOyuVRSAxSTARRKZSaYGqdQaVJa7Vp3T6A2Go3GSCmKBmSTmsD0qEwOHwhAmYE28jYsj4tFkLHknFYvFkrE20lELGkDCIjAVKiEsiErx0As+31+5r+ZksNl8jmc5RRnm8aXhmSRhLR6sxKVdGURSE9SG9pPJpXKlWpHTpFWabWjzP6KEGI1kYwmXJ52D5C2QS2FqzFcDgFCkFD4GrgMku9CEBpYsjIRDl8jg0nkQmbtDYQlEomN7wMxktltMANtsPt4MQ1ChLpxboDiGReUQ0hJyWx4Fx7sDKK9G7JxXDVJpnXp8aZvSTKfZGemcFmkH5iyFK1FpCIPDgfCYjDYwj0BwxzKPK8gUKwZCdtQewyjwvBGpoJofMOjgWmhVrjkCdpguUkJgM6MLbou+IREGOQJKSvoLv6pE5PugaUYUx6UrGUZMhejKdNerKpumnIPokAC6QA_3 + # 線 1-copy-copy + particle lava ^-25 ^ ^20 3 1 3 0 1 + particle lava ^-15 ^ ^20 3 1 3 0 1 + particle lava ^-5 ^ ^20 3 1 3 0 1 + particle lava ^5 ^ ^20 3 1 3 0 1 + particle lava ^15 ^ ^20 3 1 3 0 1 + particle lava ^25 ^ ^20 3 1 3 0 1 + # 線 1 + particle lava ^-25 ^ ^0 3 1 3 0 1 + particle lava ^-16.66667 ^ ^0 3 1 3 0 1 + particle lava ^-8.33333 ^ ^0 3 1 3 0 1 + particle lava ^0 ^ ^0 3 1 3 0 1 + particle lava ^8.33333 ^ ^0 3 1 3 0 1 + particle lava ^16.66667 ^ ^0 3 1 3 0 1 + particle lava ^25 ^ ^0 3 1 3 0 1 + # 線 1-copy + particle lava ^-25 ^ ^5 3 1 3 0 1 + particle lava ^-15 ^ ^5 3 1 3 0 1 + particle lava ^-5 ^ ^5 3 1 3 0 1 + particle lava ^5 ^ ^5 3 1 3 0 1 + particle lava ^15 ^ ^5 3 1 3 0 1 + particle lava ^25 ^ ^5 3 1 3 0 1 + # 線 1-copy-copy + particle lava ^-25 ^ ^10 3 1 3 0 1 + particle lava ^-12.5 ^ ^10 3 1 3 0 1 + particle lava ^0 ^ ^10 3 1 3 0 1 + particle lava ^12.5 ^ ^10 3 1 3 0 1 + particle lava ^25 ^ ^10 3 1 3 0 1 + # 線 1-copy-copy + particle lava ^-25 ^ ^15 3 1 3 0 1 + particle lava ^-17.85714 ^ ^15 3 1 3 0 1 + particle lava ^-10.71429 ^ ^15 3 1 3 0 1 + particle lava ^-3.57143 ^ ^15 3 1 3 0 1 + particle lava ^3.57143 ^ ^15 3 1 3 0 1 + particle lava ^10.71429 ^ ^15 3 1 3 0 1 + particle lava ^17.85714 ^ ^15 3 1 3 0 1 + particle lava ^25 ^ ^15 3 1 3 0 1 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect_start.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect_start.mcfunction new file mode 100644 index 00000000000..2c55f5dbb9c --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect_start.mcfunction @@ -0,0 +1,11 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect_start +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_attack + +# 演出 + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] rotated ~60 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] rotated ~120 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] rotated ~-60 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] rotated ~-120 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_shot.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_shot.mcfunction new file mode 100644 index 00000000000..35e4e080d1a --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_shot.mcfunction @@ -0,0 +1,22 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_shot +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_attack + +# ヒット判定 + # ドーナツ範囲 + tag @a[tag=DXYZ] remove DXYZ + tag @a[tag=!PlayerShouldInvulnerable,distance=..80] add DXYZ + tag @a[tag=DXYZ,distance=..18] remove DXYZ + +# ダメージ + data modify storage api: Argument.Damage set from storage asset:context this.Damage.Shot.Amount + data modify storage api: Argument.AttackType set from storage asset:context this.Damage.Shot.Type + data modify storage api: Argument.ElementType set from storage asset:context this.Damage.Shot.Element + function api:damage/modifier + execute as @a[tag=DXYZ] run function api:damage/ + function api:damage/reset + +# 終了 + tag @a[tag=DXYZ] remove DXYZ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/end.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/end.mcfunction new file mode 100644 index 00000000000..79b07000ed1 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/end.mcfunction @@ -0,0 +1,16 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/end +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_attack + +# タグ消去 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.HalfBeamShot.Attack + tag @s remove CO.Skill.HalfBeam.IsRight + +# 待機モーション再生 + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/idle/tween {duration:1, to_frame: 1} + +# 行動 + # function asset:mob/0410.heiloang/tick/act/ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_attack.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_attack.mcfunction new file mode 100644 index 00000000000..30c182561d3 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_attack.mcfunction @@ -0,0 +1,48 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_attack +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 攻撃 + # アニメーション再生 + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/beam_shot_attack_right/tween {duration:1, to_frame: 1} + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/beam_shot_attack_left/tween {duration:1, to_frame: 1} + # 効果音 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 1 run playsound ui.stonecutter.take_result hostile @a ~ ~ ~ 2 0.5 + execute if score @s CO.EventTimer matches 10 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 11 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 32 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 50 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 60 positioned ^-4 ^ ^-3 run function asset:mob/0456.gargo_ex_machina/tick/util/step_sound + execute if score @s CO.EventTimer matches 51 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 53 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.9 + execute if score @s CO.EventTimer matches 53 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 55 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 55 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 57 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.9 + execute if score @s CO.EventTimer matches 57 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 59 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 59 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.5 + # 攻撃 + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 19 positioned ^-30 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 19 positioned ^30 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack + execute if score @s CO.EventTimer matches 19 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_shot + # 攻撃演出 + execute if score @s CO.EventTimer matches 7 positioned ~ ~15 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_laser_start + execute if score @s CO.EventTimer matches 7..14 run playsound entity.breeze.jump hostile @a ~ ~ ~ 2 0.5 + execute if score @s CO.EventTimer matches 7..14 run playsound entity.breeze.jump hostile @a ~ ~ ~ 2 0.6 + execute if score @s CO.EventTimer matches 19 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect_start + execute if score @s CO.EventTimer matches 21 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect_start + execute if score @s CO.EventTimer matches 23 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect_start + execute if score @s CO.EventTimer matches 25 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect_start + execute if score @s CO.EventTimer matches 27 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect_start + execute if score @s CO.EventTimer matches 29 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect_start + execute if score @s CO.EventTimer matches 31 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/attack_effect_start + +# 終了 + execute if score @s CO.EventTimer matches 61.. run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_charging.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_charging.mcfunction new file mode 100644 index 00000000000..e5022c11c20 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_charging.mcfunction @@ -0,0 +1,60 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_charging +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 溜め + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/beam_shot_charge/tween {duration:1, to_frame: 1} + # モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + # 予告 + # レーザー + # ノーマル + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 15 positioned ^-30 ^ ^ rotated ~-20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/prediction.m {Interpolation:20,Tick:134} + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 35 positioned ^-30 ^0.05 ^ rotated ~20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/prediction.m {Interpolation:20,Tick:114} + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 15 positioned ^30 ^ ^ rotated ~20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/prediction.m {Interpolation:20,Tick:134} + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 35 positioned ^30 ^0.05 ^ rotated ~-20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/prediction.m {Interpolation:20,Tick:114} + # # ハード + # execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/2_hard if score @s CO.EventTimer matches 35 positioned ^-30 ^ ^ rotated ~-20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/prediction.m {Interpolation:20,Tick:84} + # execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/2_hard if score @s CO.EventTimer matches 55 positioned ^-30 ^0.05 ^ rotated ~20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/prediction.m {Interpolation:20,Tick:64} + # execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/2_hard if score @s CO.EventTimer matches 35 positioned ^30 ^ ^ rotated ~20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/prediction.m {Interpolation:20,Tick:84} + # execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/2_hard if score @s CO.EventTimer matches 55 positioned ^30 ^0.05 ^ rotated ~-20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/prediction.m {Interpolation:20,Tick:64} + # # ブレスレス + # execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/min/3_blessless if score @s CO.EventTimer matches 90 positioned ^-30 ^ ^ rotated ~-20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/prediction.m {Interpolation:2,Tick:29} + # execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/min/3_blessless if score @s CO.EventTimer matches 95 positioned ^-30 ^0.05 ^ rotated ~20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/prediction.m {Interpolation:2,Tick:24} + # execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/min/3_blessless if score @s CO.EventTimer matches 90 positioned ^30 ^ ^ rotated ~20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/prediction.m {Interpolation:2,Tick:29} + # execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/min/3_blessless if score @s CO.EventTimer matches 95 positioned ^30 ^0.05 ^ rotated ~-20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/prediction.m {Interpolation:2,Tick:24} + # 射撃 + execute if score @s CO.EventTimer matches 10 at @e[type=marker,tag=CO.CenterPosition] run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/set_attack_position + # ノーマル + execute if score @s CO.EventTimer matches 15.. at @e[type=area_effect_cloud,tag=CO.Aec.AttackPosition,distance=..80,sort=random,limit=5] run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_shot.m {PredictionTime:135,AttackTime:135} + # # ハード + # execute if predicate api:global_vars/difficulty/2_hard if score @s CO.EventTimer matches 45.. at @e[type=area_effect_cloud,tag=CO.Aec.AttackPosition,distance=..80,sort=random,limit=5] run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_shot.m {PredictionTime:75,AttackTime:75} + # # ブレスレス + # execute if predicate api:global_vars/difficulty/min/3_blessless if score @s CO.EventTimer matches 85.. at @e[type=area_effect_cloud,tag=CO.Aec.AttackPosition,distance=..80,sort=random,limit=5] run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_shot.m {PredictionTime:35,AttackTime:35} + # 効果音 + execute if score @s CO.EventTimer matches 1..180 positioned ~ ~15 ~ run particle end_rod ~ ~ ~ 2 2 2 0.05 1 + +# 予告 + execute if score @s CO.EventTimer matches 1 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.1 + execute if score @s CO.EventTimer matches 1 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.1 + execute if score @s CO.EventTimer matches 20 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.2 + execute if score @s CO.EventTimer matches 20 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.2 + execute if score @s CO.EventTimer matches 40 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.3 + execute if score @s CO.EventTimer matches 40 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.3 + execute if score @s CO.EventTimer matches 60 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.4 + execute if score @s CO.EventTimer matches 60 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.4 + execute if score @s CO.EventTimer matches 80 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.5 + execute if score @s CO.EventTimer matches 80 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.5 + execute if score @s CO.EventTimer matches 100 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.6 + execute if score @s CO.EventTimer matches 100 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.6 + execute if score @s CO.EventTimer matches 120 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.7 + execute if score @s CO.EventTimer matches 120 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.7 + +# 終了 + execute if score @s CO.EventTimer matches 130.. run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/start_attack diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_start.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_start.mcfunction new file mode 100644 index 00000000000..1a44d119684 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_start.mcfunction @@ -0,0 +1,38 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_start +# +# 半面焼きビーム + 回転斬り +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 構え + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/beam_shot_start/tween {duration:1, to_frame: 1} + # 効果音 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 24 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 1 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 3 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.9 + execute if score @s CO.EventTimer matches 3 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 5 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 5 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 7 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.9 + execute if score @s CO.EventTimer matches 7 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 9 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 9 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 11 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 11 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 13 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 13 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + # モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + # 攻撃方向をランダムに決定 + execute if score @s CO.EventTimer matches 1 if predicate lib:random_pass_per/50 run tag @s add CO.Skill.HalfBeam.IsRight + # 予告 + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 1 run tellraw @a [{"text":"【石像の","color": "dark_purple","bold": true},{"text":" 右眼 ","color": "red","bold": true},{"text":"が光り始めた!!】","color": "dark_purple","bold": true}] + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 1 run tellraw @a [{"text":"【石像の","color": "dark_purple","bold": true},{"text":" 左眼 ","color": "blue","bold": true},{"text":"が光り始めた!!】","color": "dark_purple","bold": true}] + +# 溜めに移行 + execute if score @s CO.EventTimer matches 26.. run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/start_charging diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/prediction.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/prediction.m.mcfunction new file mode 100644 index 00000000000..1e78f76ca3d --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/prediction.m.mcfunction @@ -0,0 +1,15 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/prediction.m +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_charging + +# 予告 + data modify storage api: Argument.ID set value 2113 + data modify storage api: Argument.FieldOverride.RotationX set from entity @s Rotation[0] + data modify storage api: Argument.FieldOverride.Color set value 3381759 + data modify storage api: Argument.FieldOverride.Scale set value [60f,100f] + $data modify storage api: Argument.FieldOverride.Interpolation set value $(Interpolation) + $data modify storage api: Argument.FieldOverride.Tick set value $(Tick) + data modify storage api: Argument.FieldOverride.ViewRange set value 16f + execute positioned ^ ^0.1 ^50 rotated ~180 0 run function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/prediction_circle.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/prediction_circle.m.mcfunction new file mode 100644 index 00000000000..b5c4f734a96 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/prediction_circle.m.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction_circle.m +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_charging + +# 予告:円範囲 + data modify storage api: Argument.ID set value 2063 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + data modify storage api: Argument.FieldOverride.Color set value 3381759 + data modify storage api: Argument.FieldOverride.Scale set value [40f, 40f, 0.05f] + $data modify storage api: Argument.FieldOverride.Tick set value $(Tick) + execute positioned ^ ^0.2 ^ rotated ~ 0 run function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/set_attack_position.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/set_attack_position.mcfunction new file mode 100644 index 00000000000..41b861a7e5f --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/set_attack_position.mcfunction @@ -0,0 +1,60 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/set_attack_position +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_charging + +# [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkqgCwDMcAnAGYAMTAtHQOwCMARq5Qy5dWADjhcUrAGxS6XJgEMuI6kylcwBAHYKAtgmSAwxQAEGgjAUY9AZyTgUAe0JaISLhwIo4LuBjtgANwVsQgNwAA8kJgIoKIBfOIIrUjRCW0QAJhEAOikCawhLV0RosDhsbDQYawN5UowHQogDUrRrAFEKqpr2gEdCYOwoAGULL3JEBmCahLxwaHgKdCxcTSISCbAFEQEmDhE2EW42GgVqVh44JkkuDJ5qOhEAVgUnhieMtZ19ChNhRxgsXMlhs-kczmKXCenm8zT8iHAQRCYTAkRKMXiiTAyVS6QyXHyhQwxQ8ZS61VqLCSjQUzSiBDanUqFL6AwqIzGcAmU2wM0S81gBlQmBw+HWZAoeykpDgKCelFYGTuGX4ElIogebFIShEGWol1IpGoZjA3yFJk+wKsunS9icLjcIhhPnhiOCoX8aNKsRKs2xChSaSQ1Eo2UohKKbgyBHKzJqbip2JpdPRYEZ5J6-UGHIU4yQPL5AF0gA_3 +# 円 1-copy +summon area_effect_cloud ^2.55926 ^ ^-20.84347 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^10.8158 ^ ^-18.00051 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^17.20219 ^ ^-12.04511 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^20.61417 ^ ^-4.00699 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^20.46177 ^ ^4.72397 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^16.77135 ^ ^12.63812 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^10.181 ^ ^18.36701 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^1.83027 ^ ^20.92009 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-6.83693 ^ ^19.85589 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-14.32197 ^ ^15.35843 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-19.3306 ^ ^8.20535 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-20.9968 ^ ^-0.3665 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-19.03246 ^ ^-8.87498 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-13.77724 ^ ^-15.8489 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-6.13981 ^ ^-20.0824 {Tags:["CO.Aec.AttackPosition"],Duration:100} +# 円 1 +summon area_effect_cloud ^0 ^ ^-28.6 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^10.33151 ^ ^-26.66871 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^19.2677 ^ ^-21.13566 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^25.60167 ^ ^-12.74812 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^28.478 ^ ^-2.63888 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^27.50821 ^ ^7.82676 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^22.82329 ^ ^17.23535 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^15.05596 ^ ^24.31621 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^5.25524 ^ ^28.11303 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-5.25524 ^ ^28.11303 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-15.05596 ^ ^24.31621 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-22.82329 ^ ^17.23535 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-27.50821 ^ ^7.82676 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-28.478 ^ ^-2.63888 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-25.60167 ^ ^-12.74812 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-19.2677 ^ ^-21.13566 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-10.33151 ^ ^-26.66871 {Tags:["CO.Aec.AttackPosition"],Duration:100} +# 円 2 +summon area_effect_cloud ^7.15216 ^ ^-33.64828 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^18.22922 ^ ^-29.17285 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^27.10757 ^ ^-21.17875 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^32.71634 ^ ^-10.63018 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^34.37904 ^ ^1.20054 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^31.89512 ^ ^12.88647 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^25.56418 ^ ^23.01809 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^16.14982 ^ ^30.3734 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^4.78755 ^ ^34.06522 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-7.15216 ^ ^33.64828 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-18.22922 ^ ^29.17285 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-27.10757 ^ ^21.17875 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-32.71634 ^ ^10.63018 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-34.37904 ^ ^-1.20054 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-31.89512 ^ ^-12.88647 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-25.56418 ^ ^-23.01809 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-16.14982 ^ ^-30.3734 {Tags:["CO.Aec.AttackPosition"],Duration:100} +summon area_effect_cloud ^-4.78755 ^ ^-34.06522 {Tags:["CO.Aec.AttackPosition"],Duration:100} diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/start_attack.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/start_attack.mcfunction new file mode 100644 index 00000000000..8c2dacbbc67 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/start_attack.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/start_attack +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_charging + +# タグ更新 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.HalfBeamShot.Charge + tag @s add CO.Skill.HalfBeamShot.Attack diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/start_charging.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/start_charging.mcfunction new file mode 100644 index 00000000000..2387b55f2a3 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/start_charging.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/start_charging +# +# 半面焼きビーム + 回転斬り +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_start + +# タグ更新 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.HalfBeamShot + tag @s add CO.Skill.HalfBeamShot.Charge diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_laser.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_laser.mcfunction new file mode 100644 index 00000000000..6f8a10ed988 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_laser.mcfunction @@ -0,0 +1,11 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_laser +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_laser_start + +# 演出 + data modify storage api: Argument.ID set value 2263 + data modify storage api: Argument.FieldOverride.Rotation set from entity @s Rotation + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] run data modify storage api: Argument.FieldOverride.IsRight set value true + function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_laser_start.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_laser_start.mcfunction new file mode 100644 index 00000000000..397fc035a30 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_laser_start.mcfunction @@ -0,0 +1,24 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_laser_start +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_attack + +# 基準用AEC召喚 + summon area_effect_cloud ~ ~ ~ {Tags:["CO.Aec.Target"]} + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] run tag @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] add CO.Skill.HalfBeam.IsRight + +# 演出 + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] run tp @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] ^-2 ^ ^ ~-30 60 + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] run tp @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] ^2 ^ ^ ~30 60 + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s positioned ^-2 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_laser + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s positioned ^2 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_laser + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s run tp @s ~ ~ ~ ~ 45 + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s positioned ^-2 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_laser + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s positioned ^2 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_laser + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s run tp @s ~ ~ ~ ~ 30 + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s positioned ^-2 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_laser + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s positioned ^2 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_laser + +# 終了 + kill @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_shot.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_shot.m.mcfunction new file mode 100644 index 00000000000..fc67ea97b2c --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_shot.m.mcfunction @@ -0,0 +1,18 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/summon_shot.m +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_shot/event_charging + +# 床が無い場合、消去 + execute if block ~ ~-1 ~ #lib:no_collision run return run kill @e[type=area_effect_cloud,tag=CO.Aec.AttackPosition,distance=..10,sort=nearest,limit=1] + +# 攻撃判定召喚 + data modify storage api: Argument.ID set value 2268 + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage.Shot + $data modify storage api: Argument.FieldOverride.PredictionTime set value $(PredictionTime) + $data modify storage api: Argument.FieldOverride.AttackTime set value $(AttackTime) + data modify storage api: Argument.FieldOverride.IsNoDamage set value true + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + execute positioned ~ ~ ~ run function api:object/summon + kill @e[type=area_effect_cloud,tag=CO.Aec.AttackPosition,distance=..10,sort=nearest,limit=1] diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack.mcfunction new file mode 100644 index 00000000000..3c27dae70f9 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack.mcfunction @@ -0,0 +1,30 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_attack + +# ヒット判定 + # 直線範囲 + tag @a[tag=DXYZ] remove DXYZ + data modify storage lib: args.dx set value 30 + data modify storage lib: args.dy set value 5 + data modify storage lib: args.dz set value 50 + data modify storage lib: args.selector set value "@a[tag=!PlayerShouldInvulnerable,distance=..50]" + execute rotated ~20 0 positioned ^ ^ ^ run function lib:rotatable_dxyz/m with storage lib: args + data modify storage lib: args.dx set value 30 + data modify storage lib: args.dy set value 5 + data modify storage lib: args.dz set value 50 + data modify storage lib: args.selector set value "@a[tag=!PlayerShouldInvulnerable,distance=..50]" + execute rotated ~-20 0 positioned ^ ^ ^ run function lib:rotatable_dxyz/m with storage lib: args + +# ダメージ + data modify storage api: Argument.Damage set from storage asset:context this.Damage.HalfBeam.Amount + data modify storage api: Argument.AttackType set from storage asset:context this.Damage.HalfBeam.Type + data modify storage api: Argument.ElementType set from storage asset:context this.Damage.HalfBeam.Element + function api:damage/modifier + execute as @a[tag=DXYZ] run function api:damage/ + function api:damage/reset + +# 終了 + tag @a[tag=DXYZ] remove DXYZ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect.mcfunction new file mode 100644 index 00000000000..e3ddc687916 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect.mcfunction @@ -0,0 +1,167 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect_start + +# 効果音 + playsound entity.generic.explode hostile @a ~ ~ ~ 2 0.7 + +# パーティクル + # [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYATAOxEAcAbACwBmFAtAMa1Uv0CsAzERYAjWgAZGLHkICMAQwCc1PrOrSOYXBlkBbBMkBbvgAJpGsDFkAnHQGck4NgHs8GCEmk9cjCw+12wAN1kUPD1wAA8kFjIPMCgkUQBfBNwIBz9A4NCwCMRo3DjEROSwB0ZGazhXQtwhOAAvNDgLeNw0awAhesaLAFEARzwglCgAZXM2OBJERiCKpOxwaHhSdCxTAmJSOFl6Pmp5Hmp2AR5uajhToSkyFlEyeVEeMgE+DjZTLV1SI2l2Bxg4rhzFZtLZEPYnC43DEvD50kEQn4clEYgUePNIGlwQEEVkcnlYkh0cVSuVKi0wLUGk0KW1OtTegMhqNxpMkDMUHNkotYHpUJgcPhCFMwDt5GxZHxaLIWPJOKxeLJWDtpKIWNIGERGHKVEJZEIPjo+T8-gDTYCzJYbH5HM4qu5PN5fNiMojsciCQVVRjUvDMkikJ63EVcKSKlVRDUujTqmA6dHGYMUMMxrIJlMOVyFpBeSsBethVs4BQpBQ+Gq4DIbvQhHqWLIyEQZfI4NJ5EIm7Q2EJRKJDV8DMZzebTMDrdjbVDEA6wLDneBXXjIkHp8SUliF7iA7lUdCMWHybGqd1aR0E-0kynWRnZnB5jzlshVoKNiKiDw4HwmIw2MJ6BwzmUWV5AoVgyA7ahDilHheANTQjW+IdHDNZCLTHUEbUhe0YSdP03XCZdd1yENMTwpcd3yQMSIPCMowZU96W6C9mVTdN2VvJIAF0gA_3 + # 線 1-copy-copy + particle explosion ^-25 ^ ^20 3 2 3 0 1 + particle explosion ^-21.42857 ^ ^20 3 2 3 0 1 + particle explosion ^-17.85714 ^ ^20 3 2 3 0 1 + particle explosion ^-14.28571 ^ ^20 3 2 3 0 1 + particle explosion ^-10.71429 ^ ^20 3 2 3 0 1 + particle explosion ^-7.14286 ^ ^20 3 2 3 0 1 + particle explosion ^-3.57143 ^ ^20 3 2 3 0 1 + particle explosion ^0 ^ ^20 3 2 3 0 1 + particle explosion ^3.57143 ^ ^20 3 2 3 0 1 + particle explosion ^7.14286 ^ ^20 3 2 3 0 1 + particle explosion ^10.71429 ^ ^20 3 2 3 0 1 + particle explosion ^14.28571 ^ ^20 3 2 3 0 1 + particle explosion ^17.85714 ^ ^20 3 2 3 0 1 + particle explosion ^21.42857 ^ ^20 3 2 3 0 1 + particle explosion ^25 ^ ^20 3 2 3 0 1 + # 線 1 + particle explosion ^-25 ^ ^0 3 2 3 0 1 + particle explosion ^-21.42857 ^ ^0 3 2 3 0 1 + particle explosion ^-17.85714 ^ ^0 3 2 3 0 1 + particle explosion ^-14.28571 ^ ^0 3 2 3 0 1 + particle explosion ^-10.71429 ^ ^0 3 2 3 0 1 + particle explosion ^-7.14286 ^ ^0 3 2 3 0 1 + particle explosion ^-3.57143 ^ ^0 3 2 3 0 1 + particle explosion ^0 ^ ^0 3 2 3 0 1 + particle explosion ^3.57143 ^ ^0 3 2 3 0 1 + particle explosion ^7.14286 ^ ^0 3 2 3 0 1 + particle explosion ^10.71429 ^ ^0 3 2 3 0 1 + particle explosion ^14.28571 ^ ^0 3 2 3 0 1 + particle explosion ^17.85714 ^ ^0 3 2 3 0 1 + particle explosion ^21.42857 ^ ^0 3 2 3 0 1 + particle explosion ^25 ^ ^0 3 2 3 0 1 + # 線 1-copy + particle explosion ^-25 ^ ^5 3 2 3 0 1 + particle explosion ^-21.42857 ^ ^5 3 2 3 0 1 + particle explosion ^-17.85714 ^ ^5 3 2 3 0 1 + particle explosion ^-14.28571 ^ ^5 3 2 3 0 1 + particle explosion ^-10.71429 ^ ^5 3 2 3 0 1 + particle explosion ^-7.14286 ^ ^5 3 2 3 0 1 + particle explosion ^-3.57143 ^ ^5 3 2 3 0 1 + particle explosion ^0 ^ ^5 3 2 3 0 1 + particle explosion ^3.57143 ^ ^5 3 2 3 0 1 + particle explosion ^7.14286 ^ ^5 3 2 3 0 1 + particle explosion ^10.71429 ^ ^5 3 2 3 0 1 + particle explosion ^14.28571 ^ ^5 3 2 3 0 1 + particle explosion ^17.85714 ^ ^5 3 2 3 0 1 + particle explosion ^21.42857 ^ ^5 3 2 3 0 1 + particle explosion ^25 ^ ^5 3 2 3 0 1 + # 線 1-copy-copy + particle explosion ^-25 ^ ^10 3 2 3 0 1 + particle explosion ^-21.42857 ^ ^10 3 2 3 0 1 + particle explosion ^-17.85714 ^ ^10 3 2 3 0 1 + particle explosion ^-14.28571 ^ ^10 3 2 3 0 1 + particle explosion ^-10.71429 ^ ^10 3 2 3 0 1 + particle explosion ^-7.14286 ^ ^10 3 2 3 0 1 + particle explosion ^-3.57143 ^ ^10 3 2 3 0 1 + particle explosion ^0 ^ ^10 3 2 3 0 1 + particle explosion ^3.57143 ^ ^10 3 2 3 0 1 + particle explosion ^7.14286 ^ ^10 3 2 3 0 1 + particle explosion ^10.71429 ^ ^10 3 2 3 0 1 + particle explosion ^14.28571 ^ ^10 3 2 3 0 1 + particle explosion ^17.85714 ^ ^10 3 2 3 0 1 + particle explosion ^21.42857 ^ ^10 3 2 3 0 1 + particle explosion ^25 ^ ^10 3 2 3 0 1 + # 線 1-copy-copy + particle explosion ^-25 ^ ^15 3 2 3 0 1 + particle explosion ^-21.42857 ^ ^15 3 2 3 0 1 + particle explosion ^-17.85714 ^ ^15 3 2 3 0 1 + particle explosion ^-14.28571 ^ ^15 3 2 3 0 1 + particle explosion ^-10.71429 ^ ^15 3 2 3 0 1 + particle explosion ^-7.14286 ^ ^15 3 2 3 0 1 + particle explosion ^-3.57143 ^ ^15 3 2 3 0 1 + particle explosion ^0 ^ ^15 3 2 3 0 1 + particle explosion ^3.57143 ^ ^15 3 2 3 0 1 + particle explosion ^7.14286 ^ ^15 3 2 3 0 1 + particle explosion ^10.71429 ^ ^15 3 2 3 0 1 + particle explosion ^14.28571 ^ ^15 3 2 3 0 1 + particle explosion ^17.85714 ^ ^15 3 2 3 0 1 + particle explosion ^21.42857 ^ ^15 3 2 3 0 1 + particle explosion ^25 ^ ^15 3 2 3 0 1 + # [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYATAOxEAcAbACwBmFAtAMa1Uv0CsAzERYAjWgAZGLHkICMAQwCc1PrOrSOYXBlkBbBMkBbvgAJpGsDFkAnHQGck4NgHs8GCEgq5GFh9rtgAbrIoeHrgAB5ILGQ8uFBIogC+8bgQDr4BQSFg4YhRMXGJuA6MjNZwroiiuEJwAF5ocBZxuGjWAEK19RYAogCOeIEoUADK5mxwJIiMgaUF4NDwpOhYpgTEpHCy9HzU8jzU7AI83NRwR0JSZCyiZPKiPGQCfBxsplq6pEbS7A4wsbjmVm0tkQ9icLiQtA8Xh8IP8gWCvmykWiYFiiB4BUgqVh6QRsOyuVRSAxSTARRKZSaYGqdQaVJa7Vp3T6A2Go3GSCmKBmSTmsD0qEwOHwhAmYE28jYsj4tFkLHknFYvFkrE20lELGkDCIjAVKiEsiErx0As+31+5r+ZksNl8jmc5RRnm8aXhmSRhLR6sxKVdGURSE9SG9pPJpXKlWpHTpFWabWjzP6KEGI1kYwmXJ52D5C2QS2FqzFcDgFCkFD4GrgMku9CEBpYsjIRDl8jg0nkQmbtDYQlEomN7wMxktltMANtsPt4MQ1ChLpxboDiGReUQ0hJyWx4Fx7sDKK9G7JxXDVJpnXp8aZvSTKfZGemcFmkH5iyFK1FpCIPDgfCYjDYwj0BwxzKPK8gUKwZCdtQewyjwvBGpoJofMOjgWmhVrjkCdpguUkJgM6MLbou+IREGOQJKSvoLv6pE5PugaUYUx6UrGUZMhejKdNerKpumnIPokAC6QA_3 + # 線 1-copy-copy + particle flash ^-25 ^ ^20 3 1 3 0 1 + particle flash ^-15 ^ ^20 3 1 3 0 1 + particle flash ^-5 ^ ^20 3 1 3 0 1 + particle flash ^5 ^ ^20 3 1 3 0 1 + particle flash ^15 ^ ^20 3 1 3 0 1 + particle flash ^25 ^ ^20 3 1 3 0 1 + # 線 1 + particle flash ^-25 ^ ^0 3 1 3 0 1 + particle flash ^-16.66667 ^ ^0 3 1 3 0 1 + particle flash ^-8.33333 ^ ^0 3 1 3 0 1 + particle flash ^0 ^ ^0 3 1 3 0 1 + particle flash ^8.33333 ^ ^0 3 1 3 0 1 + particle flash ^16.66667 ^ ^0 3 1 3 0 1 + particle flash ^25 ^ ^0 3 1 3 0 1 + # 線 1-copy + particle flash ^-25 ^ ^5 3 1 3 0 1 + particle flash ^-15 ^ ^5 3 1 3 0 1 + particle flash ^-5 ^ ^5 3 1 3 0 1 + particle flash ^5 ^ ^5 3 1 3 0 1 + particle flash ^15 ^ ^5 3 1 3 0 1 + particle flash ^25 ^ ^5 3 1 3 0 1 + # 線 1-copy-copy + particle flash ^-25 ^ ^10 3 1 3 0 1 + particle flash ^-12.5 ^ ^10 3 1 3 0 1 + particle flash ^0 ^ ^10 3 1 3 0 1 + particle flash ^12.5 ^ ^10 3 1 3 0 1 + particle flash ^25 ^ ^10 3 1 3 0 1 + # 線 1-copy-copy + particle flash ^-25 ^ ^15 3 1 3 0 1 + particle flash ^-17.85714 ^ ^15 3 1 3 0 1 + particle flash ^-10.71429 ^ ^15 3 1 3 0 1 + particle flash ^-3.57143 ^ ^15 3 1 3 0 1 + particle flash ^3.57143 ^ ^15 3 1 3 0 1 + particle flash ^10.71429 ^ ^15 3 1 3 0 1 + particle flash ^17.85714 ^ ^15 3 1 3 0 1 + particle flash ^25 ^ ^15 3 1 3 0 1 + # [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYATAOxEAcAbACwBmFAtAMa1Uv0CsAzERYAjWgAZGLHkICMAQwCc1PrOrSOYXBlkBbBMkBbvgAJpGsDFkAnHQGck4NgHs8GCEgq5GFh9rtgAbrIoeHrgAB5ILGQ8uFBIogC+8bgQDr4BQSFg4YhRMXGJuA6MjNZwroiiuEJwAF5ocBZxuGjWAEK19RYAogCOeIEoUADK5mxwJIiMgaUF4NDwpOhYpgTEpHCy9HzU8jzU7AI83NRwR0JSZCyiZPKiPGQCfBxsplq6pEbS7A4wsbjmVm0tkQ9icLiQtA8Xh8IP8gWCvmykWiYFiiB4BUgqVh6QRsOyuVRSAxSTARRKZSaYGqdQaVJa7Vp3T6A2Go3GSCmKBmSTmsD0qEwOHwhAmYE28jYsj4tFkLHknFYvFkrE20lELGkDCIjAVKiEsiErx0As+31+5r+ZksNl8jmc5RRnm8aXhmSRhLR6sxKVdGURSE9SG9pPJpXKlWpHTpFWabWjzP6KEGI1kYwmXJ52D5C2QS2FqzFcDgFCkFD4GrgMku9CEBpYsjIRDl8jg0nkQmbtDYQlEomN7wMxktltMANtsPt4MQ1ChLpxboDiGReUQ0hJyWx4Fx7sDKK9G7JxXDVJpnXp8aZvSTKfZGemcFmkH5iyFK1FpCIPDgfCYjDYwj0BwxzKPK8gUKwZCdtQewyjwvBGpoJofMOjgWmhVrjkCdpguUkJgM6MLbou+IREGOQJKSvoLv6pE5PugaUYUx6UrGUZMhejKdNerKpumnIPokAC6QA_3 + # 線 1-copy-copy + particle lava ^-25 ^ ^20 3 1 3 0 1 + particle lava ^-15 ^ ^20 3 1 3 0 1 + particle lava ^-5 ^ ^20 3 1 3 0 1 + particle lava ^5 ^ ^20 3 1 3 0 1 + particle lava ^15 ^ ^20 3 1 3 0 1 + particle lava ^25 ^ ^20 3 1 3 0 1 + # 線 1 + particle lava ^-25 ^ ^0 3 1 3 0 1 + particle lava ^-16.66667 ^ ^0 3 1 3 0 1 + particle lava ^-8.33333 ^ ^0 3 1 3 0 1 + particle lava ^0 ^ ^0 3 1 3 0 1 + particle lava ^8.33333 ^ ^0 3 1 3 0 1 + particle lava ^16.66667 ^ ^0 3 1 3 0 1 + particle lava ^25 ^ ^0 3 1 3 0 1 + # 線 1-copy + particle lava ^-25 ^ ^5 3 1 3 0 1 + particle lava ^-15 ^ ^5 3 1 3 0 1 + particle lava ^-5 ^ ^5 3 1 3 0 1 + particle lava ^5 ^ ^5 3 1 3 0 1 + particle lava ^15 ^ ^5 3 1 3 0 1 + particle lava ^25 ^ ^5 3 1 3 0 1 + # 線 1-copy-copy + particle lava ^-25 ^ ^10 3 1 3 0 1 + particle lava ^-12.5 ^ ^10 3 1 3 0 1 + particle lava ^0 ^ ^10 3 1 3 0 1 + particle lava ^12.5 ^ ^10 3 1 3 0 1 + particle lava ^25 ^ ^10 3 1 3 0 1 + # 線 1-copy-copy + particle lava ^-25 ^ ^15 3 1 3 0 1 + particle lava ^-17.85714 ^ ^15 3 1 3 0 1 + particle lava ^-10.71429 ^ ^15 3 1 3 0 1 + particle lava ^-3.57143 ^ ^15 3 1 3 0 1 + particle lava ^3.57143 ^ ^15 3 1 3 0 1 + particle lava ^10.71429 ^ ^15 3 1 3 0 1 + particle lava ^17.85714 ^ ^15 3 1 3 0 1 + particle lava ^25 ^ ^15 3 1 3 0 1 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect_start.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect_start.mcfunction new file mode 100644 index 00000000000..d115fac3ff6 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect_start.mcfunction @@ -0,0 +1,11 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect_start +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_attack + +# 演出 + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] rotated ~60 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] rotated ~120 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] rotated ~-60 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] rotated ~-120 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_sword.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_sword.mcfunction new file mode 100644 index 00000000000..de163adcaa5 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_sword.mcfunction @@ -0,0 +1,111 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_sword +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_attack + +# ヒット判定 + # 円範囲 + tag @a[tag=!PlayerShouldInvulnerable,distance=..20] add DXYZ + +# ダメージ + data modify storage api: Argument.Damage set from storage asset:context this.Damage.HalfBeamSword.Amount + data modify storage api: Argument.AttackType set from storage asset:context this.Damage.HalfBeamSword.Type + data modify storage api: Argument.ElementType set from storage asset:context this.Damage.HalfBeamSword.Element + function api:damage/modifier + execute as @a[tag=DXYZ] run function api:damage/ + function api:damage/reset + +# 斬撃オブジェクト + data modify storage api: Argument.ID set value 2001 + data modify storage api: Argument.FieldOverride set value {Color:9484241,Scale:[40f,40f,7f],Transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0f,0f]}} + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] positioned ^3 ^4 ^-4 rotated ~ -82 run function api:object/summon + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] positioned ^3 ^4 ^4 rotated ~ 82 run function api:object/summon + data modify storage api: Argument.ID set value 2001 + data modify storage api: Argument.FieldOverride set value {Color:9484241,Scale:[40f,40f,7f],Transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0f,0f]}} + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] positioned ^-3 ^4 ^4 rotated ~180 -82 run function api:object/summon + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] positioned ^-3 ^4 ^-4 rotated ~180 82 run function api:object/summon + +# 効果音 + playsound item.trident.throw hostile @a ~ ~ ~ 3 0.7 + playsound item.trident.throw hostile @a ~ ~ ~ 3 0.6 + playsound entity.breeze.shoot hostile @a ~ ~ ~ 3 0.6 + +# パーティクル + # 円型ベクトルパーティクル + execute rotated ~00 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~10 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~20 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~30 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~40 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~50 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~60 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~70 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~80 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~90 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~100 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~110 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~120 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~130 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~140 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~150 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~160 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~170 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~180 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~190 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~200 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~210 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~220 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~230 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~240 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~250 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~260 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~270 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~280 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~290 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~300 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~310 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~320 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~330 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~340 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + execute rotated ~350 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000015 0 + # 円型ベクトルパーティクル + execute rotated ~00 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~10 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~20 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~30 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~40 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~50 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~60 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~70 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~80 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~90 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~100 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~110 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~120 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~130 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~140 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~150 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~160 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~170 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~180 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~190 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~200 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~210 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~220 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~230 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~240 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~250 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~260 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~270 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~280 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~290 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~300 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~310 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~320 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~330 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~340 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + execute rotated ~350 0 positioned ^ ^6 ^ run particle cloud ~ ~ ~ ^ ^-15000000 ^100000000 0.000000025 0 + +# 終了 + tag @a[tag=DXYZ] remove DXYZ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/end.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/end.mcfunction new file mode 100644 index 00000000000..8692bdb8a47 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/end.mcfunction @@ -0,0 +1,16 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/end +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_attack + +# タグ消去 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.HalfBeamSword.Attack + tag @s remove CO.Skill.HalfBeam.IsRight + +# 待機モーション再生 + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/idle/tween {duration:1, to_frame: 1} + +# 行動 + # function asset:mob/0410.heiloang/tick/act/ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_attack.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_attack.mcfunction new file mode 100644 index 00000000000..45da0e2afe4 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_attack.mcfunction @@ -0,0 +1,42 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_attack +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 攻撃 + # アニメーション再生 + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/beam_sword_attack_right/tween {duration:1, to_frame: 1} + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/beam_sword_attack_left/tween {duration:1, to_frame: 1} + # 効果音 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 1 run playsound ui.stonecutter.take_result hostile @a ~ ~ ~ 2 0.5 + execute if score @s CO.EventTimer matches 10 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 15 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 32 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 50 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 44 positioned ^-4 ^ ^-3 run function asset:mob/0456.gargo_ex_machina/tick/util/step_sound + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 60 positioned ^4 ^ ^4 run function asset:mob/0456.gargo_ex_machina/tick/util/step_sound + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 44 positioned ^4 ^ ^4 run function asset:mob/0456.gargo_ex_machina/tick/util/step_sound + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 60 positioned ^-4 ^ ^-3 run function asset:mob/0456.gargo_ex_machina/tick/util/step_sound + # 攻撃 + execute if score @s CO.EventTimer matches 16 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_sword + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 23 positioned ^-30 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 23 positioned ^30 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack + # 攻撃演出 + execute if score @s CO.EventTimer matches 11 positioned ~ ~12 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/summon_laser_start + execute if score @s CO.EventTimer matches 11..18 run playsound entity.breeze.jump hostile @a ~ ~ ~ 2 0.5 + execute if score @s CO.EventTimer matches 11..18 run playsound entity.breeze.jump hostile @a ~ ~ ~ 2 0.6 + execute if score @s CO.EventTimer matches 23 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect_start + execute if score @s CO.EventTimer matches 25 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect_start + execute if score @s CO.EventTimer matches 27 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect_start + execute if score @s CO.EventTimer matches 29 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect_start + execute if score @s CO.EventTimer matches 31 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect_start + execute if score @s CO.EventTimer matches 33 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect_start + execute if score @s CO.EventTimer matches 35 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/attack_effect_start + +# 終了 + execute if score @s CO.EventTimer matches 61.. run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_charging.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_charging.mcfunction new file mode 100644 index 00000000000..c70263d55bd --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_charging.mcfunction @@ -0,0 +1,59 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_charging +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 溜め + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/beam_sword_charge/tween {duration:1, to_frame: 1} + # モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + # 予告 + # レーザー + # ノーマル + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 15 positioned ^-30 ^ ^ rotated ~-20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction.m {Interpolation:20,Tick:138} + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 35 positioned ^-30 ^0.05 ^ rotated ~20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction.m {Interpolation:20,Tick:118} + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 15 positioned ^30 ^ ^ rotated ~20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction.m {Interpolation:20,Tick:138} + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 35 positioned ^30 ^0.05 ^ rotated ~-20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction.m {Interpolation:20,Tick:118} + # # ハード + # execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/2_hard if score @s CO.EventTimer matches 35 positioned ^-30 ^ ^ rotated ~-20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction.m {Interpolation:20,Tick:88} + # execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/2_hard if score @s CO.EventTimer matches 55 positioned ^-30 ^0.05 ^ rotated ~20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction.m {Interpolation:20,Tick:68} + # execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/2_hard if score @s CO.EventTimer matches 35 positioned ^30 ^ ^ rotated ~20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction.m {Interpolation:20,Tick:88} + # execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/2_hard if score @s CO.EventTimer matches 55 positioned ^30 ^0.05 ^ rotated ~-20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction.m {Interpolation:20,Tick:68} + # # ブレスレス + # execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/min/3_blessless if score @s CO.EventTimer matches 90 positioned ^-30 ^ ^ rotated ~-20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction.m {Interpolation:2,Tick:33} + # execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/min/3_blessless if score @s CO.EventTimer matches 95 positioned ^-30 ^0.05 ^ rotated ~20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction.m {Interpolation:2,Tick:28} + # execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/min/3_blessless if score @s CO.EventTimer matches 90 positioned ^30 ^ ^ rotated ~20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction.m {Interpolation:2,Tick:33} + # execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if predicate api:global_vars/difficulty/min/3_blessless if score @s CO.EventTimer matches 95 positioned ^30 ^0.05 ^ rotated ~-20 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction.m {Interpolation:2,Tick:28} + # 剣 + # ノーマル + execute if score @s CO.EventTimer matches 15 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction_circle.m {Tick:132} + # # ハード + # execute if predicate api:global_vars/difficulty/2_hard if score @s CO.EventTimer matches 35 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction_circle.m {Tick:82} + # # ブレスレス + # execute if predicate api:global_vars/difficulty/min/3_blessless if score @s CO.EventTimer matches 90 run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction_circle.m {Tick:27} + # 効果音 + execute if score @s CO.EventTimer matches 1..180 positioned ~ ~15 ~ run particle end_rod ~ ~ ~ 2 2 2 0.05 1 + +# 予告 + execute if score @s CO.EventTimer matches 1 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.1 + execute if score @s CO.EventTimer matches 1 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.1 + execute if score @s CO.EventTimer matches 20 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.2 + execute if score @s CO.EventTimer matches 20 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.2 + execute if score @s CO.EventTimer matches 40 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.3 + execute if score @s CO.EventTimer matches 40 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.3 + execute if score @s CO.EventTimer matches 60 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.4 + execute if score @s CO.EventTimer matches 60 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.4 + execute if score @s CO.EventTimer matches 80 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.5 + execute if score @s CO.EventTimer matches 80 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.5 + execute if score @s CO.EventTimer matches 100 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.6 + execute if score @s CO.EventTimer matches 100 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.6 + execute if score @s CO.EventTimer matches 120 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.7 + execute if score @s CO.EventTimer matches 120 run playsound block.beacon.activate hostile @a ~ ~ ~ 2 1.7 + +# 終了 + execute if score @s CO.EventTimer matches 130.. run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/start_attack diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_start.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_start.mcfunction new file mode 100644 index 00000000000..8b49dc20887 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_start.mcfunction @@ -0,0 +1,25 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_start +# +# 半面焼きビーム + 回転斬り +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 構え + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/beam_sword_start/tween {duration:1, to_frame: 1} + # 効果音 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 24 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + # モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + # 攻撃方向をランダムに決定 + execute if score @s CO.EventTimer matches 1 if predicate lib:random_pass_per/50 run tag @s add CO.Skill.HalfBeam.IsRight + # 予告 + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 1 run tellraw @a [{"text":"【石像の","color": "dark_purple","bold": true},{"text":" 右眼 ","color": "red","bold": true},{"text":"が光り始めた!!】","color": "dark_purple","bold": true}] + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] if score @s CO.EventTimer matches 1 run tellraw @a [{"text":"【石像の","color": "dark_purple","bold": true},{"text":" 左眼 ","color": "blue","bold": true},{"text":"が光り始めた!!】","color": "dark_purple","bold": true}] + +# 溜めに移行 + execute if score @s CO.EventTimer matches 26.. run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/start_charging diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction.m.mcfunction new file mode 100644 index 00000000000..176327a1a71 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction.m.mcfunction @@ -0,0 +1,15 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction.m +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_charging + +# 予告 + data modify storage api: Argument.ID set value 2113 + data modify storage api: Argument.FieldOverride.RotationX set from entity @s Rotation[0] + data modify storage api: Argument.FieldOverride.Color set value 3381759 + data modify storage api: Argument.FieldOverride.Scale set value [60f,100f] + $data modify storage api: Argument.FieldOverride.Interpolation set value $(Interpolation) + $data modify storage api: Argument.FieldOverride.Tick set value $(Tick) + data modify storage api: Argument.FieldOverride.ViewRange set value 16f + execute positioned ^ ^0.1 ^50 rotated ~180 0 run function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction_circle.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction_circle.m.mcfunction new file mode 100644 index 00000000000..b5c4f734a96 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction_circle.m.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/prediction_circle.m +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_charging + +# 予告:円範囲 + data modify storage api: Argument.ID set value 2063 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + data modify storage api: Argument.FieldOverride.Color set value 3381759 + data modify storage api: Argument.FieldOverride.Scale set value [40f, 40f, 0.05f] + $data modify storage api: Argument.FieldOverride.Tick set value $(Tick) + execute positioned ^ ^0.2 ^ rotated ~ 0 run function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/start_attack.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/start_attack.mcfunction new file mode 100644 index 00000000000..b88d4a8b58c --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/start_attack.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/start_attack +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_charging + +# タグ更新 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.HalfBeamSword.Charge + tag @s add CO.Skill.HalfBeamSword.Attack diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/start_charging.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/start_charging.mcfunction new file mode 100644 index 00000000000..7c65afdc88a --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/start_charging.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/start_charging +# +# 半面焼きビーム + 回転斬り +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_start + +# タグ更新 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.HalfBeamSword + tag @s add CO.Skill.HalfBeamSword.Charge diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/summon_laser.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/summon_laser.mcfunction new file mode 100644 index 00000000000..9e6a47aabb5 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/summon_laser.mcfunction @@ -0,0 +1,11 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/summon_laser +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/summon_laser_start + +# 演出 + data modify storage api: Argument.ID set value 2263 + data modify storage api: Argument.FieldOverride.Rotation set from entity @s Rotation + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] run data modify storage api: Argument.FieldOverride.IsRight set value true + function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/summon_laser_start.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/summon_laser_start.mcfunction new file mode 100644 index 00000000000..d94b3b95e63 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/half_beam_sword/summon_laser_start.mcfunction @@ -0,0 +1,24 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/summon_laser_start +# +# 半面焼きビーム +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/event_attack + +# 基準用AEC召喚 + summon area_effect_cloud ~ ~ ~ {Tags:["CO.Aec.Target"]} + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] run tag @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] add CO.Skill.HalfBeam.IsRight + +# 演出 + execute if entity @s[tag=CO.Skill.HalfBeam.IsRight] run tp @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] ^-2 ^ ^ ~-30 60 + execute unless entity @s[tag=CO.Skill.HalfBeam.IsRight] run tp @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] ^2 ^ ^ ~30 60 + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s positioned ^-2 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/summon_laser + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s positioned ^2 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/summon_laser + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s run tp @s ~ ~ ~ ~ 45 + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s positioned ^-2 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/summon_laser + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s positioned ^2 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/summon_laser + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s run tp @s ~ ~ ~ ~ 30 + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s positioned ^-2 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/summon_laser + execute as @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] at @s positioned ^2 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/half_beam_sword/summon_laser + +# 終了 + kill @e[type=area_effect_cloud,tag=CO.Aec.Target,distance=..10,limit=1] diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/idle/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/idle/.mcfunction new file mode 100644 index 00000000000..920ef329812 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/idle/.mcfunction @@ -0,0 +1,11 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/idle/ +# +# 移動 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/idle/check + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 行動 + execute if score @s CO.EventTimer >= @s CO.IdleTimer as @e[type=slime,tag=CO.EntityRoot,distance=..30] at @s run function asset:mob/0456.gargo_ex_machina/tick/act/ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/idle/check.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/idle/check.mcfunction new file mode 100644 index 00000000000..3bb29b345d7 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/idle/check.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/idle/check +# +# 移動 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# 待機検証 + execute if entity @s[tag=aj.gargo_ex_machina.animation.idle.playing] run function asset:mob/0456.gargo_ex_machina/tick/event/idle/ + execute if entity @s[tag=aj.gargo_ex_machina.animation.idle_shot.playing] run function asset:mob/0456.gargo_ex_machina/tick/event/idle/ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/move/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/move/.mcfunction new file mode 100644 index 00000000000..af2a089575b --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/move/.mcfunction @@ -0,0 +1,56 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/move/ +# +# 移動 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 目的地決定 + # 目的地が指定されていない場合 + # 中心地から遠い場合、中心地に召喚 + execute if score @s CO.EventTimer matches 1 unless entity @e[type=area_effect_cloud,tag=CO.Aec.Destination,distance=..80] unless entity @e[type=marker,tag=CO.CenterPosition,distance=..8] positioned as @e[type=marker,tag=CO.CenterPosition,distance=..80] run summon area_effect_cloud ~ ~ ~ {Tags:["CO.Aec.Destination"],Duration:80} + # 中心地から近い場合、ターゲット位置に移動 + execute if score @s CO.EventTimer matches 1 unless entity @e[type=area_effect_cloud,tag=CO.Aec.Destination,distance=..80] if entity @e[type=marker,tag=CO.CenterPosition,distance=..8] positioned as @p[tag=CO.MainTarget] run summon area_effect_cloud ~ ~ ~ {Tags:["CO.Aec.Destination"],Duration:80} + # 移動アニメーション再生回数決定 + execute if score @s CO.EventTimer matches 1 if entity @e[type=area_effect_cloud,tag=CO.Aec.Destination,distance=..22] run tag @s add CO.Skill.Move.Near + # 計算 + execute if entity @s[tag=CO.Skill.Move.Near] if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/move_calc.m {Tick:38} + execute unless entity @s[tag=CO.Skill.Move.Near] if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/move_calc.m {Tick:61} + +# 移動 + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/walk_start/tween {duration:1, to_frame: 1} + execute if score @s CO.EventTimer matches 10 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/walk/tween {duration:1, to_frame: 1} + # 効果音・演出 + execute if score @s CO.EventTimer matches 24 positioned ^-2.5 ^ ^3 run function asset:mob/0456.gargo_ex_machina/tick/util/step_sound + execute if score @s CO.EventTimer matches 39 positioned ^2.5 ^ ^3 run function asset:mob/0456.gargo_ex_machina/tick/util/step_sound + execute if score @s CO.EventTimer matches 54 positioned ^-2.5 ^ ^3 run function asset:mob/0456.gargo_ex_machina/tick/util/step_sound + execute if score @s CO.EventTimer matches 69 positioned ^2.5 ^ ^3 run function asset:mob/0456.gargo_ex_machina/tick/util/step_sound + execute if score @s CO.EventTimer matches 10..65 positioned ^-14 ^ ^-10 run particle crit ~ ~0.5 ~ 0.5 0.1 0.5 0.5 3 force @a[distance=..80] + execute if score @s CO.EventTimer matches 10..65 positioned ^-14 ^ ^-10 run particle block quartz_block ~ ~ ~ 0.5 0.1 0.5 0 5 force @a[distance=..80] + execute if score @s CO.EventTimer matches 10..65 positioned ^-14 ^ ^-10 run particle explosion ~ ~0.5 ~ 0.5 0.1 0.5 0.5 1 force @a[distance=..80] + execute if score @s CO.EventTimer matches 10..65 positioned ^-14 ^ ^-10 run particle lava ~ ~0.5 ~ 0.5 0.1 0.5 0.5 1 force @a[distance=..80] + execute if score @s CO.EventTimer matches 10 positioned ^-12 ^ ^-10 run function asset:mob/0456.gargo_ex_machina/tick/event/move/sword_sound + execute if score @s CO.EventTimer matches 15 positioned ^-12 ^ ^-10 run function asset:mob/0456.gargo_ex_machina/tick/event/move/sword_sound + execute if score @s CO.EventTimer matches 25 positioned ^-12 ^ ^-10 run function asset:mob/0456.gargo_ex_machina/tick/event/move/sword_sound + execute if score @s CO.EventTimer matches 30 positioned ^-12 ^ ^-10 run function asset:mob/0456.gargo_ex_machina/tick/event/move/sword_sound + execute if score @s CO.EventTimer matches 40 positioned ^-12 ^ ^-10 run function asset:mob/0456.gargo_ex_machina/tick/event/move/sword_sound + execute if score @s CO.EventTimer matches 45 positioned ^-12 ^ ^-10 run function asset:mob/0456.gargo_ex_machina/tick/event/move/sword_sound + execute if score @s CO.EventTimer matches 55 positioned ^-12 ^ ^-10 run function asset:mob/0456.gargo_ex_machina/tick/event/move/sword_sound + execute if score @s CO.EventTimer matches 60 positioned ^-12 ^ ^-10 run function asset:mob/0456.gargo_ex_machina/tick/event/move/sword_sound + # 移動 + execute if score @s CO.EventTimer matches 2..23 run function asset:mob/0456.gargo_ex_machina/tick/util/move + execute if score @s CO.EventTimer matches 26..38 run function asset:mob/0456.gargo_ex_machina/tick/util/move + execute if score @s CO.EventTimer matches 41..53 run function asset:mob/0456.gargo_ex_machina/tick/util/move + execute if score @s CO.EventTimer matches 56..68 run function asset:mob/0456.gargo_ex_machina/tick/util/move + # 目的地を見る + execute if score @s CO.EventTimer matches 1..40 at @s run function asset:mob/0456.gargo_ex_machina/tick/util/rotate_to_destination + +# モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + +# 終了 + execute if entity @s[tag=CO.Skill.Move.Near] if score @s CO.EventTimer matches 40.. run function asset:mob/0456.gargo_ex_machina/tick/event/move/start_end + execute if score @s CO.EventTimer matches 70.. run function asset:mob/0456.gargo_ex_machina/tick/event/move/start_end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/move/end.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/move/end.mcfunction new file mode 100644 index 00000000000..6af24cb1bdb --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/move/end.mcfunction @@ -0,0 +1,19 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/move/end +# +# 移動 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/move/event_end + +# タグ消去 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.Move.End + tag @s remove CO.Skill.Move.Near + +# 目的地消去 + kill @e[type=area_effect_cloud,tag=CO.Aec.Destination,distance=..80] + +# 待機モーション再生 + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/idle/tween {duration:1, to_frame: 1} + +# 行動 + # function asset:mob/0410.heiloang/tick/act/ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/move/event_end.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/move/event_end.mcfunction new file mode 100644 index 00000000000..0e8ffddcc3f --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/move/event_end.mcfunction @@ -0,0 +1,18 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/move/event_end +# +# 移動 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 移動 + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/walk_end/tween {duration:1, to_frame: 1} + +# モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + +# 終了 + execute if score @s CO.EventTimer matches 15.. run function asset:mob/0456.gargo_ex_machina/tick/event/move/end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/move/start_end.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/move/start_end.mcfunction new file mode 100644 index 00000000000..96f2c21fca1 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/move/start_end.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/move/start_end +# +# 移動 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/move/ + +# タグ更新 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.Move + tag @s add CO.Skill.Move.End diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/move/sword_sound.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/move/sword_sound.mcfunction new file mode 100644 index 00000000000..bbb419496c8 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/move/sword_sound.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/move/sword_sound +# +# 移動 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/move/ + +# 演出 + playsound block.grindstone.use hostile @a ~ ~ ~ 3 0.7 + playsound block.grindstone.use hostile @a ~ ~ ~ 3 0.8 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/.mcfunction new file mode 100644 index 00000000000..12bc74edd63 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/.mcfunction @@ -0,0 +1,33 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/ +# +# ロケットパンチ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 構え + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/summon_punch/tween {duration:1, to_frame: 1} + # 効果音 + execute if score @s CO.EventTimer matches 9 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + # 演出 + execute if score @s CO.EventTimer matches 14 run playsound block.beacon.power_select hostile @a ~ ~ ~ 4 1.5 + execute if score @s CO.EventTimer matches 14 run playsound block.beacon.power_select hostile @a ~ ~ ~ 4 1.7 + # モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + # 攻撃位置決定 + # 通常パターン + execute if entity @s[tag=!CO.Skill.RocketPunch.Alter,tag=!CO.Skill.RocketPunch.AlterInv,tag=!CO.Skill.RocketPunch.Cross] if score @s CO.EventTimer matches 14 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] run function asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_normal + # 交差パターン + execute if entity @s[tag=CO.Skill.RocketPunch.Cross,tag=!CO.Skill.RocketPunch.Alter,tag=!CO.Skill.RocketPunch.AlterInv] if score @s CO.EventTimer matches 14 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] run function asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_cross + # 交互パターン + execute if entity @s[tag=CO.Skill.RocketPunch.Alter,tag=!CO.Skill.RocketPunch.Cross] if score @s CO.EventTimer matches 14 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] run function asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_alter + execute if entity @s[tag=CO.Skill.RocketPunch.AlterInv,tag=!CO.Skill.RocketPunch.Cross] if score @s CO.EventTimer matches 14 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] run function asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_alter_inv + # 召喚 + execute if score @s CO.EventTimer matches 14.. at @e[type=area_effect_cloud,tag=CO.Aec.AttackPosition,distance=..80,sort=random,limit=1] run function asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/summon_punch + execute if score @s CO.EventTimer matches 40 run kill @e[type=area_effect_cloud,tag=CO.Aec.AttackPosition,distance=..80] + +# 終了 + execute if score @s CO.EventTimer matches 45.. run function asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/effect.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/effect.mcfunction new file mode 100644 index 00000000000..57460f1b037 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/effect.mcfunction @@ -0,0 +1,81 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/field_modify/effect +# +# フィールド・モディファイ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/field_modify/event_start + +# パーティクル +# 円型ベクトルパーティクル + execute rotated ~00 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~10 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~20 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~30 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~40 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~50 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~60 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~70 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~80 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~90 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~100 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~110 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~120 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~130 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~140 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~150 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~160 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~170 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~180 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~190 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~200 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~210 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~220 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~230 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~240 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~250 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~260 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~270 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~280 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~290 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~300 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~310 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~320 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~330 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~340 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~350 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000015 0 +# 円型ベクトルパーティクル + execute rotated ~00 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~10 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~20 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~30 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~40 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~50 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~60 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~70 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~80 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~90 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~100 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~110 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~120 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~130 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~140 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~150 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~160 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~170 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~180 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~190 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~200 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~210 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~220 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~230 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~240 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~250 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~260 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~270 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~280 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~290 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~300 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~310 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~320 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~330 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~340 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~350 0 positioned ^ ^-0.3 ^ run particle end_rod ~ ~ ~ ^ ^ ^100000000 0.000000025 0 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/end.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/end.mcfunction new file mode 100644 index 00000000000..a38b0f40133 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/end.mcfunction @@ -0,0 +1,19 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/end +# +# ロケットパンチ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/ + +# タグ消去 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.RocketPunch + tag @s remove CO.Skill.RocketPunch.Cross + tag @s remove CO.Skill.RocketPunch.Alter + tag @s remove CO.Skill.RocketPunch.AlterInv + scoreboard players reset @s CO.PreTimer + +# 待機モーション再生 + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/idle/tween {duration:1, to_frame: 1} + +# 行動 + # function asset:mob/0410.heiloang/tick/act/ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_alter.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_alter.mcfunction new file mode 100644 index 00000000000..dc6e0c2347f --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_alter.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_alter +# +# ロケットパンチ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/ + +# 攻撃位置決定 + execute positioned ^ ^ ^35 rotated ~180 0 run function asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/summon_aec_alter diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_alter_inv.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_alter_inv.mcfunction new file mode 100644 index 00000000000..95f9078baa4 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_alter_inv.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_alter_inv +# +# ロケットパンチ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/ + +# 攻撃位置決定 + execute positioned ^ ^ ^35 rotated ~180 0 positioned ^10 ^ ^ run function asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/summon_aec_alter diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_cross.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_cross.mcfunction new file mode 100644 index 00000000000..5707174e70d --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_cross.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_cross +# +# ロケットパンチ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/ + +# 攻撃位置決定 + execute positioned ^ ^ ^35 rotated ~180 0 run function asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/summon_aec + execute rotated ~90 ~ positioned ^ ^ ^35 rotated ~180 0 run function asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/summon_aec diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_normal.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_normal.mcfunction new file mode 100644 index 00000000000..242b351d68d --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_normal.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/pattern_normal +# +# ロケットパンチ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/ + +# 攻撃位置決定 + execute positioned ^ ^ ^35 rotated ~180 0 run function asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/summon_aec diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/summon_aec.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/summon_aec.mcfunction new file mode 100644 index 00000000000..ad2a93af87d --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/summon_aec.mcfunction @@ -0,0 +1,24 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/summon_aec +# +# ロケットパンチ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/** + +# [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYRA7ACzkCGNATAGwC0ArAMb3vOUCcADAGZmNOERrN+tIgCM4-fpXqywuDDQC2CZIC3fAAQBGVWBg0ATpoDOScOwD2eDBCSNcAMzN2NNsADcaKHja4AAeSMz0rLhQSPwAvnG4EHY+-oHBYGGIkdGxCbh2bm6WcM6I-LhyAF5ocGaxuGiWAEJwNXUAogCOeAEoUADKpuxiSG4BJQkAukA_3 +# 線 1 +summon area_effect_cloud ^-25 ^ ^0 {Tags:["CO.Aec.AttackPosition","CO.Aec.AttackPosition.Init"],Duration:80} +summon area_effect_cloud ^-15 ^ ^0 {Tags:["CO.Aec.AttackPosition","CO.Aec.AttackPosition.Init"],Duration:80} +summon area_effect_cloud ^-5 ^ ^0 {Tags:["CO.Aec.AttackPosition","CO.Aec.AttackPosition.Init"],Duration:80} +summon area_effect_cloud ^5 ^ ^0 {Tags:["CO.Aec.AttackPosition","CO.Aec.AttackPosition.Init"],Duration:80} +summon area_effect_cloud ^15 ^ ^0 {Tags:["CO.Aec.AttackPosition","CO.Aec.AttackPosition.Init"],Duration:80} +summon area_effect_cloud ^25 ^ ^0 {Tags:["CO.Aec.AttackPosition","CO.Aec.AttackPosition.Init"],Duration:80} + +# 数を減らす + execute if predicate api:global_vars/difficulty/1_normal run kill @e[type=area_effect_cloud,tag=CO.Aec.AttackPosition,tag=CO.Aec.AttackPosition.Init,distance=..80,sort=random,limit=2] + execute if predicate api:global_vars/difficulty/min/2_hard run kill @e[type=area_effect_cloud,tag=CO.Aec.AttackPosition,tag=CO.Aec.AttackPosition.Init,distance=..80,sort=random,limit=1] + +# 回転 + execute as @e[type=area_effect_cloud,tag=CO.Aec.AttackPosition,tag=CO.Aec.AttackPosition.Init,distance=..80] positioned as @s run tp @s ~ ~ ~ ~ ~ + +# 終了 + tag @e[type=area_effect_cloud,tag=CO.Aec.AttackPosition,tag=CO.Aec.AttackPosition.Init,distance=..80] remove CO.Aec.AttackPosition.Init diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/summon_aec_alter.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/summon_aec_alter.mcfunction new file mode 100644 index 00000000000..f54aaa01874 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/summon_aec_alter.mcfunction @@ -0,0 +1,20 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/summon_aec_alter +# +# ロケットパンチ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/** + +# [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYRA7ACzkCGNATAGwC0ArAMb3vOUCcADAGZmNOERrN+tIgCM4-fpXqywuDDQC2CZIC3fAAQBGVWBg0ATpoDOScOwD2eDBCSNcAMzN2NNsADcaKHja4AAeSMz0rLhQSPwAvnG4EHY+-oHBYGGIkdGxCbh2bm6WcM6I-LhyAF5ocGaxuGiWAEJwNXUAogCOeAEoUADKpuxiSG4BJQkAukA_3 +# 線 1 +summon area_effect_cloud ^-25 ^ ^0 {Tags:["CO.Aec.AttackPosition","CO.Aec.AttackPosition.Init"],Duration:80} +# summon area_effect_cloud ^-15 ^ ^0 {Tags:["CO.Aec.AttackPosition","CO.Aec.AttackPosition.Init"],Duration:80} +summon area_effect_cloud ^-5 ^ ^0 {Tags:["CO.Aec.AttackPosition","CO.Aec.AttackPosition.Init"],Duration:80} +# summon area_effect_cloud ^5 ^ ^0 {Tags:["CO.Aec.AttackPosition","CO.Aec.AttackPosition.Init"],Duration:80} +summon area_effect_cloud ^15 ^ ^0 {Tags:["CO.Aec.AttackPosition","CO.Aec.AttackPosition.Init"],Duration:80} +# summon area_effect_cloud ^25 ^ ^0 {Tags:["CO.Aec.AttackPosition","CO.Aec.AttackPosition.Init"],Duration:80} + +# 回転 + execute as @e[type=area_effect_cloud,tag=CO.Aec.AttackPosition,tag=CO.Aec.AttackPosition.Init,distance=..80] positioned as @s run tp @s ~ ~ ~ ~ ~ + +# 終了 + tag @e[type=area_effect_cloud,tag=CO.Aec.AttackPosition,tag=CO.Aec.AttackPosition.Init,distance=..80] remove CO.Aec.AttackPosition.Init diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/summon_punch.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/summon_punch.mcfunction new file mode 100644 index 00000000000..87eea886a56 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/rocket_punch/summon_punch.mcfunction @@ -0,0 +1,15 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/summon_punch +# +# ブルートフォースアタック +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/rocket_punch/ + +# ATTACKドローン召喚 + data modify storage api: Argument.ID set value 2269 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage.RocketPunch + execute if score @s CO.PreTimer matches 1.. store result storage api: Argument.FieldOverride.WaitTime int 1 run scoreboard players get @s CO.PreTimer + function api:object/summon + +# 消去 + kill @e[type=area_effect_cloud,tag=CO.Aec.AttackPosition,distance=..5,sort=nearest,limit=1] diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/.mcfunction new file mode 100644 index 00000000000..d8bea17f1cd --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/.mcfunction @@ -0,0 +1,53 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/shot/ +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 構え + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/shot_target_spin/tween {duration:1, to_frame: 1} + # 効果音 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 16 positioned ^-4 ^ ^4 run function asset:mob/0456.gargo_ex_machina/tick/util/step_sound + execute if score @s CO.EventTimer matches 72 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 84 run playsound block.piston.contract hostile @a ~ ~ ~ 2 0.9 + execute if score @s CO.EventTimer matches 100 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 122 positioned ^-4 ^ ^-3 run function asset:mob/0456.gargo_ex_machina/tick/util/step_sound + # モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + # 対象を向く + execute if score @s CO.EventTimer matches 1..30 run function asset:mob/0456.gargo_ex_machina/tick/util/rotate_to_target + # 攻撃 + # 攻撃位置決定 + execute if score @s CO.EventTimer matches 30 at @p[tag=CO.MainTarget,distance=..80] run summon area_effect_cloud ~ ~ ~ {Tags:["CO.Aec.AttackPosition"],Duration:80} + execute if score @s CO.EventTimer matches 30 as @e[type=area_effect_cloud,tag=CO.Aec.AttackPosition,distance=..80,limit=1] at @s run function asset:mob/0456.gargo_ex_machina/tick/util/move_to_ground + # 予兆 + execute if score @s CO.EventTimer matches 30 at @e[type=area_effect_cloud,tag=CO.Aec.AttackPosition,distance=..80,limit=1] run function asset:mob/0456.gargo_ex_machina/tick/event/shot/prediction.m {Tick:42} + # 演出 + execute if score @s CO.EventTimer matches 5..68 as @e[type=item_display,tag=CO.ModelRoot,distance=..80,sort=nearest,limit=1] at @s on passengers if entity @s[tag=aj.global.data] run function asset:mob/0456.gargo_ex_machina/tick/event/shot/charge_effect.m with entity @s data.locators.muzzle + execute if score @s CO.EventTimer matches 69 as @e[type=item_display,tag=CO.ModelRoot,distance=..80,sort=nearest,limit=1] at @s on passengers if entity @s[tag=aj.global.data] run function asset:mob/0456.gargo_ex_machina/tick/event/shot/summon_laser.m with entity @s data.locators.muzzle + execute if score @s CO.EventTimer matches 1 run playsound block.beacon.activate hostile @a ~ ~ ~ 3 1.4 + execute if score @s CO.EventTimer matches 1 run playsound block.beacon.activate hostile @a ~ ~ ~ 3 1.4 + execute if score @s CO.EventTimer matches 10 run playsound block.beacon.activate hostile @a ~ ~ ~ 3 1.5 + execute if score @s CO.EventTimer matches 10 run playsound block.beacon.activate hostile @a ~ ~ ~ 3 1.5 + execute if score @s CO.EventTimer matches 20 run playsound block.beacon.activate hostile @a ~ ~ ~ 3 1.6 + execute if score @s CO.EventTimer matches 20 run playsound block.beacon.activate hostile @a ~ ~ ~ 3 1.6 + execute if score @s CO.EventTimer matches 30 run playsound block.beacon.activate hostile @a ~ ~ ~ 3 1.7 + execute if score @s CO.EventTimer matches 30 run playsound block.beacon.activate hostile @a ~ ~ ~ 3 1.7 + execute if score @s CO.EventTimer matches 40 run playsound block.beacon.activate hostile @a ~ ~ ~ 3 1.8 + execute if score @s CO.EventTimer matches 40 run playsound block.beacon.activate hostile @a ~ ~ ~ 3 1.8 + execute if score @s CO.EventTimer matches 50 run playsound block.beacon.activate hostile @a ~ ~ ~ 3 1.9 + execute if score @s CO.EventTimer matches 50 run playsound block.beacon.activate hostile @a ~ ~ ~ 3 1.9 + execute if score @s CO.EventTimer matches 60 run playsound block.beacon.activate hostile @a ~ ~ ~ 3 2.0 + execute if score @s CO.EventTimer matches 60 run playsound block.beacon.activate hostile @a ~ ~ ~ 3 2.0 + # 攻撃 + execute if score @s CO.EventTimer matches 72..74 run playsound entity.breeze.jump hostile @a ~ ~ ~ 2 0.5 + execute if score @s CO.EventTimer matches 72..74 run playsound entity.breeze.jump hostile @a ~ ~ ~ 2 0.6 + execute if score @s CO.EventTimer matches 72 at @e[type=area_effect_cloud,tag=CO.Aec.AttackPosition,distance=..80,limit=1] run function asset:mob/0456.gargo_ex_machina/tick/event/shot/attack + +# 終了 + execute if score @s CO.EventTimer matches 126.. run function asset:mob/0456.gargo_ex_machina/tick/event/shot/end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/attack.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/attack.mcfunction new file mode 100644 index 00000000000..158a7a83d85 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/attack.mcfunction @@ -0,0 +1,29 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/shot/attack +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/shot/ + +# ヒット判定 + # 円範囲 + tag @a[tag=!PlayerShouldInvulnerable,distance=..7.5] add DXYZ + +# ダメージ + # 円範囲 + data modify storage api: Argument.Damage set from storage asset:context this.Damage.Shot.Amount + data modify storage api: Argument.AttackType set from storage asset:context this.Damage.Shot.Type + data modify storage api: Argument.ElementType set from storage asset:context this.Damage.Shot.Element + function api:damage/modifier + execute as @a[tag=DXYZ] run function api:damage/ + function api:damage/reset + # 広がるドーナツ範囲 + data modify storage api: Argument.ID set value 2267 + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage.Shot + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + execute positioned ~ ~-0.3 ~ run function api:object/summon + +# 演出 + function asset:mob/0456.gargo_ex_machina/tick/event/shot/attack_effect + +# 終了 + tag @a[tag=DXYZ] remove DXYZ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/attack_effect.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/attack_effect.mcfunction new file mode 100644 index 00000000000..6b2eab2640c --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/attack_effect.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/shot/attack_effect +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/shot/attack + +# 効果音 + playsound entity.generic.explode hostile @a ~ ~ ~ 1 0.7 + +# 演出 + particle explosion_emitter ~ ~1 ~ 0 0 0 0 1 + particle explosion ~ ~1 ~ 1.5 1.5 1.5 0 20 + particle lava ~ ~ ~ 1 1 1 0 15 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/charge_effect.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/charge_effect.m.mcfunction new file mode 100644 index 00000000000..48eb51ccab3 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/charge_effect.m.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/shot/charge_effect.m +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/shot/ + + +# 演出 + $particle end_rod ^$(posx) ^$(posy) ^$(posz) 0 0 0 0.5 3 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/end.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/end.mcfunction new file mode 100644 index 00000000000..90312377ba2 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/end.mcfunction @@ -0,0 +1,15 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/shot/end +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/shot/ + +# タグ消去 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.Shot + +# 待機モーション再生 + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/idle_shot/tween {duration:1, to_frame: 1} + +# 行動 + # function asset:mob/0410.heiloang/tick/act/ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/prediction.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/prediction.m.mcfunction new file mode 100644 index 00000000000..593d8346c31 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/prediction.m.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/shot/prediction.m +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/shot/ + +# 予告:円範囲 + data modify storage api: Argument.ID set value 2063 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + data modify storage api: Argument.FieldOverride.Color set value 3381759 + data modify storage api: Argument.FieldOverride.Scale set value [15f, 15f, 0.05f] + $data modify storage api: Argument.FieldOverride.Tick set value $(Tick) + execute positioned ^ ^ ^ rotated ~ 0 run function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/summon_laser.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/summon_laser.m.mcfunction new file mode 100644 index 00000000000..8aa1c7d9890 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/shot/summon_laser.m.mcfunction @@ -0,0 +1,15 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/shot/summon_laser.m +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/shot/ + + +# 演出 + $summon area_effect_cloud ^$(posx) ^$(posy) ^$(posz) {Tags:["CO.Temp.Rotation"]} + execute as @e[type=area_effect_cloud,tag=CO.Temp.Rotation,distance=..30,limit=1] positioned as @s facing entity @e[type=area_effect_cloud,tag=CO.Aec.AttackPosition,distance=..80,limit=1] feet run tp @s ~ ~ ~ ~ ~ + data modify storage api: Argument.ID set value 2263 + data modify storage api: Argument.FieldOverride.Rotation set from entity @e[type=area_effect_cloud,tag=CO.Temp.Rotation,distance=..30,limit=1] Rotation + data modify storage api: Argument.FieldOverride.IsShot set value true + execute positioned as @e[type=area_effect_cloud,tag=CO.Temp.Rotation,distance=..30,limit=1] run function api:object/summon + kill @e[type=area_effect_cloud,tag=CO.Temp.Rotation,distance=..30,limit=1] diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/attack.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/attack.mcfunction new file mode 100644 index 00000000000..4411eb28ea7 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/attack.mcfunction @@ -0,0 +1,23 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/super_jump/attack +# +# スーパージャンプ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/super_jump/event_attack + +# ヒット判定 + # 円範囲 + tag @a[tag=!PlayerShouldInvulnerable,distance=..15] add DXYZ + +# ダメージ + data modify storage api: Argument.Damage set from storage asset:context this.Damage.SuperJump.Amount + data modify storage api: Argument.AttackType set from storage asset:context this.Damage.SuperJump.Type + data modify storage api: Argument.ElementType set from storage asset:context this.Damage.SuperJump.Element + function api:damage/modifier + execute as @a[tag=DXYZ] run function api:damage/ + function api:damage/reset + +# 演出 + function asset:mob/0456.gargo_ex_machina/tick/event/super_jump/attack_effect + +# 終了 + tag @a[tag=DXYZ] remove DXYZ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/attack_effect.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/attack_effect.mcfunction new file mode 100644 index 00000000000..d1eb7042978 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/attack_effect.mcfunction @@ -0,0 +1,87 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/super_jump/attack_effect +# +# スーパージャンプ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/super_jump/attack + +# 効果音 + execute positioned ~ ~50 ~ run playsound entity.generic.explode hostile @a[distance=..150] ~ ~ ~ 2 0.5 0.7 + execute positioned ~ ~50 ~ run playsound entity.iron_golem.death hostile @a[distance=..150] ~ ~ ~ 2 0.5 0.7 + execute positioned ~ ~50 ~ run playsound entity.wither.break_block hostile @a[distance=..150] ~ ~ ~ 2 0.7 0.7 + +# パーティクル + particle explosion ~ ~1 ~ 5 2 5 0 30 + # 円型ベクトルパーティクル + execute rotated ~00 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~10 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~20 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~30 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~40 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~50 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~60 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~70 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~80 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~90 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~100 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~110 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~120 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~130 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~140 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~150 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~160 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~170 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~180 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~190 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~200 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~210 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~220 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~230 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~240 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~250 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~260 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~270 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~280 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~290 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~300 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~310 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~320 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~330 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~340 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~350 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + # 円型ベクトルパーティクル + execute rotated ~00 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~10 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~20 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~30 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~40 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~50 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~60 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~70 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~80 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~90 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~100 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~110 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~120 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~130 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~140 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~150 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~160 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~170 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~180 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~190 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~200 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~210 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~220 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~230 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~240 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~250 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~260 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~270 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~280 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~290 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~300 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~310 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~320 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~330 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~340 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~350 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/continue.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/continue.mcfunction new file mode 100644 index 00000000000..c2cc0ce9064 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/continue.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/super_jump/continue +# +# スーパージャンプ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/super_jump/event_attack + +# タグ更新 + scoreboard players set @s CO.EventTimer 5 + tag @s remove CO.Skill.SuperJump.Attack + tag @s add CO.Skill.SuperJump + +# アニメーション再生 + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/super_jump_start/tween {duration:5, to_frame: 10} diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/end.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/end.mcfunction new file mode 100644 index 00000000000..1c80c7c36e4 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/end.mcfunction @@ -0,0 +1,17 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/super_jump/end +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/super_jump/event_attack + +# タグ消去 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.SuperJump.Attack + scoreboard players reset @s CO.PreTimer + scoreboard players reset @s CO.JumpCount + +# 待機モーション再生 + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/idle/tween {duration:1, to_frame: 1} + +# 行動 + # function asset:mob/0410.heiloang/tick/act/ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/event_attack.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/event_attack.mcfunction new file mode 100644 index 00000000000..37b60e8a3c9 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/event_attack.mcfunction @@ -0,0 +1,41 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/super_jump/event_attack +# +# スーパージャンプ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 攻撃 + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/super_jump_end/tween {duration:1, to_frame: 1} + execute if score @s CO.EventTimer matches 21 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/super_jump_end/pause + execute if score @s CO.EventTimer matches 70 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/super_jump_end/resume + # 効果音 + execute if score @s CO.EventTimer matches 131 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + # 予兆 + execute if score @s CO.EventTimer matches 20 if predicate api:global_vars/difficulty/max/2_hard run function asset:mob/0456.gargo_ex_machina/tick/event/super_jump/prediction.m {Tick:60} + execute if score @s CO.EventTimer matches 70 if predicate api:global_vars/difficulty/min/3_blessless run function asset:mob/0456.gargo_ex_machina/tick/event/super_jump/prediction.m {Tick:10} + # 攻撃 + execute if score @s CO.EventTimer matches 80 run function asset:mob/0456.gargo_ex_machina/tick/event/super_jump/attack + # 攻撃演出 + execute if score @s CO.EventTimer matches 80 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~2 + execute if score @s CO.EventTimer matches 81 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-4 + execute if score @s CO.EventTimer matches 82 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~4 + execute if score @s CO.EventTimer matches 83 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-4 + execute if score @s CO.EventTimer matches 84 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~3 + execute if score @s CO.EventTimer matches 85 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-3 + execute if score @s CO.EventTimer matches 86 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~3 + execute if score @s CO.EventTimer matches 87 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-1 + # モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + +# 継続 + execute if score @s CO.EventTimer matches 90 if score @s CO.JumpCount matches 1.. run function asset:mob/0456.gargo_ex_machina/tick/event/super_jump/continue + +# 無敵化 + execute if score @s CO.EventTimer matches 80 run function asset:mob/0456.gargo_ex_machina/tick/util/end_invulnerable + +# 終了 + execute if score @s CO.EventTimer matches 139.. run function asset:mob/0456.gargo_ex_machina/tick/event/super_jump/end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/event_start.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/event_start.mcfunction new file mode 100644 index 00000000000..eb30300011b --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/event_start.mcfunction @@ -0,0 +1,36 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/super_jump/event_start +# +# スーパージャンプ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 待機時間が未設定の場合、指定する + execute if score @s CO.EventTimer matches 1 unless score @s CO.PreTimer matches 32.. run scoreboard players set @s CO.PreTimer 100 + +# 構え + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/super_jump_start/tween {duration:1, to_frame: 1} + # 効果音 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 13 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + # 演出 + execute if score @s CO.EventTimer matches 15 run particle block quartz_block ~ ~0.5 ~ 2 0.1 2 0 30 + +# 目的地決定 + # 目的地が指定されていない場合、ターゲット位置に移動 + execute if score @s CO.EventTimer matches 25 unless entity @e[type=area_effect_cloud,tag=CO.Aec.Destination,distance=..80] positioned as @p[tag=CO.MainTarget] run summon area_effect_cloud ~ ~ ~ {Tags:["CO.Aec.Destination"],Duration:80} + # 移動 + execute if score @s CO.EventTimer matches 25 positioned as @e[type=area_effect_cloud,tag=CO.Aec.Destination,distance=..80] run tp @s ~ ~ ~ + execute if score @s CO.EventTimer matches 25 at @s run function asset:mob/0456.gargo_ex_machina/tick/util/move_to_ground + +# モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + +# 無敵化 + execute if score @s CO.EventTimer matches 20 run function asset:mob/0456.gargo_ex_machina/tick/util/start_invulnerable + +# 攻撃に移行 + execute if score @s CO.EventTimer >= @s CO.PreTimer run function asset:mob/0456.gargo_ex_machina/tick/event/super_jump/start_attack diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/prediction.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/prediction.m.mcfunction new file mode 100644 index 00000000000..b72859614de --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/prediction.m.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/super_jump/prediction.m +# +# スーパージャンプ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/super_jump/event_attack + +# 予告:円範囲 + data modify storage api: Argument.ID set value 2063 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + data modify storage api: Argument.FieldOverride.Color set value 3381759 + data modify storage api: Argument.FieldOverride.Scale set value [30f, 30f, 0.05f] + $data modify storage api: Argument.FieldOverride.Tick set value $(Tick) + execute positioned ^ ^0.1 ^ rotated ~ 0 run function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/start_attack.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/start_attack.mcfunction new file mode 100644 index 00000000000..f3c67e0301f --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/super_jump/start_attack.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/super_jump/start_attack +# +# スーパージャンプ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/super_jump/event_start + +# タグ更新 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.SuperJump + tag @s add CO.Skill.SuperJump.Attack + +# 連続ジャンプ回数減算 + execute if score @s CO.JumpCount matches 1.. run scoreboard players remove @s CO.JumpCount 1 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/attack.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/attack.mcfunction new file mode 100644 index 00000000000..d9c626f4fc0 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/attack.mcfunction @@ -0,0 +1,43 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/event_attack + +# ヒット判定 + # 円範囲 + tag @a[distance=..10] add DXYZ + # 直線範囲 + tag @a[tag=DXYZ] remove DXYZ + execute if predicate api:global_vars/difficulty/max/2_hard run data modify storage lib: args.dx set value 4 + execute if predicate api:global_vars/difficulty/min/3_blessless run data modify storage lib: args.dx set value 6 + data modify storage lib: args.dy set value 5 + data modify storage lib: args.dz set value 50 + data modify storage lib: args.selector set value "@a[tag=!PlayerShouldInvulnerable,distance=..50]" + execute rotated ~ 0 run function lib:rotatable_dxyz/m with storage lib: args + execute if predicate api:global_vars/difficulty/max/2_hard run data modify storage lib: args.dx set value 4 + execute if predicate api:global_vars/difficulty/min/3_blessless run data modify storage lib: args.dx set value 6 + data modify storage lib: args.dy set value 5 + data modify storage lib: args.dz set value 50 + data modify storage lib: args.selector set value "@a[tag=!PlayerShouldInvulnerable,distance=..50]" + execute rotated ~60 0 run function lib:rotatable_dxyz/m with storage lib: args + execute if predicate api:global_vars/difficulty/max/2_hard run data modify storage lib: args.dx set value 4 + execute if predicate api:global_vars/difficulty/min/3_blessless run data modify storage lib: args.dx set value 6 + data modify storage lib: args.dy set value 5 + data modify storage lib: args.dz set value 50 + data modify storage lib: args.selector set value "@a[tag=!PlayerShouldInvulnerable,distance=..50]" + execute rotated ~120 0 run function lib:rotatable_dxyz/m with storage lib: args + +# ダメージ + data modify storage api: Argument.Damage set from storage asset:context this.Damage.SwordAttack.Amount + data modify storage api: Argument.AttackType set from storage asset:context this.Damage.SwordAttack.Type + data modify storage api: Argument.ElementType set from storage asset:context this.Damage.SwordAttack.Element + function api:damage/modifier + execute as @a[tag=DXYZ] run function api:damage/ + function api:damage/reset + +# 演出 + function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect + +# 終了 + tag @a[tag=DXYZ] remove DXYZ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_double.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_double.mcfunction new file mode 100644 index 00000000000..7af80a8394f --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_double.mcfunction @@ -0,0 +1,43 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_double +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/event_attack_double + +# ヒット判定 + # 円範囲 + tag @a[distance=..10] add DXYZ + # 直線範囲 + tag @a[tag=DXYZ] remove DXYZ + execute if predicate api:global_vars/difficulty/max/2_hard run data modify storage lib: args.dx set value 4 + execute if predicate api:global_vars/difficulty/min/3_blessless run data modify storage lib: args.dx set value 6 + data modify storage lib: args.dy set value 5 + data modify storage lib: args.dz set value 50 + data modify storage lib: args.selector set value "@a[tag=!PlayerShouldInvulnerable,distance=..50]" + execute rotated ~30 0 run function lib:rotatable_dxyz/m with storage lib: args + execute if predicate api:global_vars/difficulty/max/2_hard run data modify storage lib: args.dx set value 4 + execute if predicate api:global_vars/difficulty/min/3_blessless run data modify storage lib: args.dx set value 6 + data modify storage lib: args.dy set value 5 + data modify storage lib: args.dz set value 50 + data modify storage lib: args.selector set value "@a[tag=!PlayerShouldInvulnerable,distance=..50]" + execute rotated ~90 0 run function lib:rotatable_dxyz/m with storage lib: args + execute if predicate api:global_vars/difficulty/max/2_hard run data modify storage lib: args.dx set value 4 + execute if predicate api:global_vars/difficulty/min/3_blessless run data modify storage lib: args.dx set value 6 + data modify storage lib: args.dy set value 5 + data modify storage lib: args.dz set value 50 + data modify storage lib: args.selector set value "@a[tag=!PlayerShouldInvulnerable,distance=..50]" + execute rotated ~150 0 run function lib:rotatable_dxyz/m with storage lib: args + +# ダメージ + data modify storage api: Argument.Damage set from storage asset:context this.Damage.SwordAttack.Amount + data modify storage api: Argument.AttackType set from storage asset:context this.Damage.SwordAttack.Type + data modify storage api: Argument.ElementType set from storage asset:context this.Damage.SwordAttack.Element + function api:damage/modifier + execute as @a[tag=DXYZ] run function api:damage/ + function api:damage/reset + +# 演出 + function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect + +# 終了 + tag @a[tag=DXYZ] remove DXYZ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect.mcfunction new file mode 100644 index 00000000000..f76e17c0cb7 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect.mcfunction @@ -0,0 +1,93 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack +# @within asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_double + +# 効果音 + playsound entity.generic.explode hostile @a ~ ~ ~ 2 0.5 + playsound entity.iron_golem.death hostile @a ~ ~ ~ 2 0.5 + playsound entity.wither.break_block hostile @a ~ ~ ~ 2 0.7 + +# 斬撃オブジェクト + data modify storage api: Argument.ID set value 2001 + data modify storage api: Argument.FieldOverride set value {Color:9484241,Scale:[40f,40f,7f],Transformation:{left_rotation:[0f,-0.7068252f,0f,0.7073883f],right_rotation:[0f,0f,0f,1f],translation:[0f,0f,0f]}} + execute positioned ^ ^8 ^-18 run function api:object/summon + +# パーティクル + particle explosion ~ ~1 ~ 5 2 5 0 30 + # 円型ベクトルパーティクル + execute rotated ~00 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~10 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~20 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~30 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~40 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~50 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~60 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~70 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~80 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~90 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~100 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~110 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~120 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~130 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~140 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~150 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~160 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~170 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~180 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~190 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~200 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~210 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~220 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~230 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~240 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~250 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~260 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~270 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~280 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~290 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~300 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~310 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~320 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~330 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~340 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + execute rotated ~350 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000015 0 + # 円型ベクトルパーティクル + execute rotated ~00 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~10 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~20 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~30 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~40 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~50 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~60 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~70 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~80 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~90 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~100 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~110 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~120 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~130 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~140 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~150 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~160 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~170 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~180 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~190 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~200 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~210 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~220 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~230 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~240 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~250 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~260 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~270 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~280 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~290 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~300 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~310 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~320 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~330 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~340 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 + execute rotated ~350 0 positioned ^ ^-0.3 ^ run particle cloud ~ ~ ~ ^ ^ ^100000000 0.000000025 0 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line.m.mcfunction new file mode 100644 index 00000000000..508caf067fa --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line.m.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line.m +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/event_attack + +# パーティクル + $execute rotated ~0 ~ positioned ^ ^ ^$(Dist) run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line + $execute rotated ~60 ~ positioned ^ ^ ^$(Dist) run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line + $execute rotated ~-60 ~ positioned ^ ^ ^$(Dist) run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line + $execute rotated ~120 ~ positioned ^ ^ ^$(Dist) run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line + $execute rotated ~-120 ~ positioned ^ ^ ^$(Dist) run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line + $execute rotated ~180 ~ positioned ^ ^ ^$(Dist) run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line.mcfunction new file mode 100644 index 00000000000..58afa46e304 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line.mcfunction @@ -0,0 +1,25 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line.m +# @within asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line_double.m + +# パーティクル + # [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYATAOxEAcAbACwBmFAtAMa1Uv0CsAzERYAjWgAZGLHkICMAQwCc1PrOrSOYXBlkBbBMkBbvgAJpGsDFkAnHQGck4NgHs8GCEmk9cjCw+12wAN1kUPD1wAA8kUVwoSIBfWNwIBz9A4NCwCMQosBjEd3jcB0ZGazhXLNwhOAAvNDgLSNw0awAhGrqLAFEARzwglCgAZXM2OBJERiDS+IBdIA_3 + # 線 1 + particle explosion ^0 ^1 ^0 2 2 2 0 8 + particle explosion ^0 ^1 ^1.07143 2 2 2 0 8 + particle explosion ^0 ^1 ^2.14286 2 2 2 0 8 + particle explosion ^0 ^1 ^3.21429 2 2 2 0 8 + particle explosion ^0 ^1 ^4.28571 2 2 2 0 8 + particle explosion ^0 ^1 ^5.35714 2 2 2 0 8 + particle explosion ^0 ^1 ^6.42857 2 2 2 0 8 + particle explosion ^0 ^1 ^7.5 2 2 2 0 8 + particle explosion ^0 ^1 ^8.57143 2 2 2 0 8 + particle explosion ^0 ^1 ^9.64286 2 2 2 0 8 + particle explosion ^0 ^1 ^10.71429 2 2 2 0 8 + particle explosion ^0 ^1 ^11.78571 2 2 2 0 8 + particle explosion ^0 ^1 ^12.85714 2 2 2 0 8 + particle explosion ^0 ^1 ^13.92857 2 2 2 0 8 + particle explosion ^0 ^1 ^15 2 2 2 0 8 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line_double.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line_double.m.mcfunction new file mode 100644 index 00000000000..f837afe28ff --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line_double.m.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line_double.m +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/event_attack_double + +# パーティクル + $execute rotated ~30 ~ positioned ^ ^ ^$(Dist) run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line + $execute rotated ~90 ~ positioned ^ ^ ^$(Dist) run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line + $execute rotated ~-30 ~ positioned ^ ^ ^$(Dist) run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line + $execute rotated ~-90 ~ positioned ^ ^ ^$(Dist) run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line + $execute rotated ~150 ~ positioned ^ ^ ^$(Dist) run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line + $execute rotated ~-150 ~ positioned ^ ^ ^$(Dist) run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/end.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/end.mcfunction new file mode 100644 index 00000000000..d3bc918809e --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/end.mcfunction @@ -0,0 +1,17 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/end +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/event_attack +# @within asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/event_attack_double + +# タグ消去 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.SwordAttack.Attack + tag @s remove CO.Skill.SwordAttack.Double + +# 待機モーション再生 + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/idle/tween {duration:1, to_frame: 1} + +# 行動 + # function asset:mob/0410.heiloang/tick/act/ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/event_attack.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/event_attack.mcfunction new file mode 100644 index 00000000000..124418a1c84 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/event_attack.mcfunction @@ -0,0 +1,39 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/event_attack +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 攻撃 + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/sword_smash_attack/tween {duration:1, to_frame: 1} + execute if score @s CO.EventTimer matches 35 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/sword_smash_attack/pause + execute if score @s CO.EventTimer matches 60 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/sword_smash_attack/resume + # 効果音 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 65 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 93 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + # 攻撃 + execute if score @s CO.EventTimer matches 15 positioned ^ ^ ^25 run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack + # 攻撃演出 + execute if score @s CO.EventTimer matches 17 positioned ^ ^ ^25 positioned as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run playsound entity.breeze.shoot hostile @a ~ ~ ~ 2 0.9 + execute if score @s CO.EventTimer matches 17 positioned ^ ^ ^25 run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line.m {Dist:0} + execute if score @s CO.EventTimer matches 19 positioned ^ ^ ^25 run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line.m {Dist:15} + execute if score @s CO.EventTimer matches 21 positioned ^ ^ ^25 run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line.m {Dist:30} + execute if score @s CO.EventTimer matches 16 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~2 + execute if score @s CO.EventTimer matches 17 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-4 + execute if score @s CO.EventTimer matches 18 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~4 + execute if score @s CO.EventTimer matches 19 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-4 + execute if score @s CO.EventTimer matches 20 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~3 + execute if score @s CO.EventTimer matches 21 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-3 + execute if score @s CO.EventTimer matches 22 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~3 + execute if score @s CO.EventTimer matches 23 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-1 + +# 2連叩きつけに遷移 + execute if entity @s[tag=CO.IsLatter] if score @s CO.EventTimer matches 30 run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/start_double + +# 終了 + execute if score @s CO.EventTimer matches 95.. run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/event_attack_double.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/event_attack_double.mcfunction new file mode 100644 index 00000000000..95d865f9f01 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/event_attack_double.mcfunction @@ -0,0 +1,36 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/event_attack_double +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 攻撃 + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/sword_smash_attack_double/tween {duration:1, to_frame: 1} + # 効果音 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 76 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 113 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + # 予告 + execute if score @s CO.EventTimer matches 20 positioned ^ ^0.2 ^25 run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/prediction_double + # 攻撃 + execute if score @s CO.EventTimer matches 40 positioned ^ ^ ^25 run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_double + # 攻撃演出 + execute if score @s CO.EventTimer matches 42 positioned ^ ^ ^25 positioned as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run playsound entity.breeze.shoot hostile @a ~ ~ ~ 2 0.9 + execute if score @s CO.EventTimer matches 42 positioned ^ ^ ^25 run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line_double.m {Dist:0} + execute if score @s CO.EventTimer matches 44 positioned ^ ^ ^25 run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line_double.m {Dist:15} + execute if score @s CO.EventTimer matches 46 positioned ^ ^ ^25 run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/attack_effect_line_double.m {Dist:30} + execute if score @s CO.EventTimer matches 42 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~2 + execute if score @s CO.EventTimer matches 43 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-4 + execute if score @s CO.EventTimer matches 44 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~4 + execute if score @s CO.EventTimer matches 45 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-4 + execute if score @s CO.EventTimer matches 46 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~3 + execute if score @s CO.EventTimer matches 47 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-3 + execute if score @s CO.EventTimer matches 48 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~3 + execute if score @s CO.EventTimer matches 49 as @a[distance=..80] at @s run tp @s ~ ~ ~ ~ ~-1 + +# 終了 + execute if score @s CO.EventTimer matches 114.. run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/event_charging.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/event_charging.mcfunction new file mode 100644 index 00000000000..ee0352a399e --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/event_charging.mcfunction @@ -0,0 +1,19 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/event_charging +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 溜め + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/sword_smash_charge/tween {duration:1, to_frame: 1} + # モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + # 予告 + execute if score @s CO.EventTimer matches 1 positioned ^ ^0.2 ^25 run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/prediction + +# 終了 + execute if score @s CO.EventTimer matches 40.. run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/start_attack diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/event_start.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/event_start.mcfunction new file mode 100644 index 00000000000..bbdac9bc65e --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/event_start.mcfunction @@ -0,0 +1,22 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/event_start +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 構え + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/sword_smash_start/tween {duration:1, to_frame: 1} + # 効果音 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 25 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + # 対象を向く + function asset:mob/0456.gargo_ex_machina/tick/util/rotate_to_target + # モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + +# 溜めに移行 + execute if score @s CO.EventTimer matches 26.. run function asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/start_charging diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/prediction.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/prediction.mcfunction new file mode 100644 index 00000000000..383c75939fe --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/prediction.mcfunction @@ -0,0 +1,63 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/prediction +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/event_charging + +# 予告:円範囲 + data modify storage api: Argument.ID set value 2063 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + data modify storage api: Argument.FieldOverride.Color set value 3381759 + data modify storage api: Argument.FieldOverride.Scale set value [20f, 20f, 0.05f] + data modify storage api: Argument.FieldOverride.Tick set value 55 + execute positioned ^ ^0.2 ^ rotated ~ 0 run function api:object/summon + +# 予告 + data modify storage api: Argument.ID set value 2113 + data modify storage api: Argument.FieldOverride.RotationX set from entity @s Rotation[0] + data modify storage api: Argument.FieldOverride.Color set value 3381759 + execute if predicate api:global_vars/difficulty/max/2_hard run data modify storage api: Argument.FieldOverride.Scale set value [8f,50f] + execute if predicate api:global_vars/difficulty/min/3_blessless run data modify storage api: Argument.FieldOverride.Scale set value [12f,50f] + data modify storage api: Argument.FieldOverride.Interpolation set value 30 + data modify storage api: Argument.FieldOverride.Tick set value 55 + execute positioned ^ ^0.1 ^ rotated ~ 0 run function api:object/summon + data modify storage api: Argument.ID set value 2113 + data modify storage api: Argument.FieldOverride.RotationX set from entity @s Rotation[0] + data modify storage api: Argument.FieldOverride.Color set value 3381759 + execute if predicate api:global_vars/difficulty/max/2_hard run data modify storage api: Argument.FieldOverride.Scale set value [8f,50f] + execute if predicate api:global_vars/difficulty/min/3_blessless run data modify storage api: Argument.FieldOverride.Scale set value [12f,50f] + data modify storage api: Argument.FieldOverride.Interpolation set value 30 + data modify storage api: Argument.FieldOverride.Tick set value 55 + execute positioned ^ ^0.1 ^ rotated ~60 0 run function api:object/summon + data modify storage api: Argument.ID set value 2113 + data modify storage api: Argument.FieldOverride.RotationX set from entity @s Rotation[0] + data modify storage api: Argument.FieldOverride.Color set value 3381759 + execute if predicate api:global_vars/difficulty/max/2_hard run data modify storage api: Argument.FieldOverride.Scale set value [8f,50f] + execute if predicate api:global_vars/difficulty/min/3_blessless run data modify storage api: Argument.FieldOverride.Scale set value [12f,50f] + data modify storage api: Argument.FieldOverride.Interpolation set value 30 + data modify storage api: Argument.FieldOverride.Tick set value 55 + execute positioned ^ ^0.1 ^ rotated ~-60 0 run function api:object/summon + data modify storage api: Argument.ID set value 2113 + data modify storage api: Argument.FieldOverride.RotationX set from entity @s Rotation[0] + data modify storage api: Argument.FieldOverride.Color set value 3381759 + execute if predicate api:global_vars/difficulty/max/2_hard run data modify storage api: Argument.FieldOverride.Scale set value [8f,50f] + execute if predicate api:global_vars/difficulty/min/3_blessless run data modify storage api: Argument.FieldOverride.Scale set value [12f,50f] + data modify storage api: Argument.FieldOverride.Interpolation set value 30 + data modify storage api: Argument.FieldOverride.Tick set value 55 + execute positioned ^ ^0.1 ^ rotated ~120 0 run function api:object/summon + data modify storage api: Argument.ID set value 2113 + data modify storage api: Argument.FieldOverride.RotationX set from entity @s Rotation[0] + data modify storage api: Argument.FieldOverride.Color set value 3381759 + execute if predicate api:global_vars/difficulty/max/2_hard run data modify storage api: Argument.FieldOverride.Scale set value [8f,50f] + execute if predicate api:global_vars/difficulty/min/3_blessless run data modify storage api: Argument.FieldOverride.Scale set value [12f,50f] + data modify storage api: Argument.FieldOverride.Interpolation set value 30 + data modify storage api: Argument.FieldOverride.Tick set value 55 + execute positioned ^ ^0.1 ^ rotated ~-120 0 run function api:object/summon + data modify storage api: Argument.ID set value 2113 + data modify storage api: Argument.FieldOverride.RotationX set from entity @s Rotation[0] + data modify storage api: Argument.FieldOverride.Color set value 3381759 + execute if predicate api:global_vars/difficulty/max/2_hard run data modify storage api: Argument.FieldOverride.Scale set value [8f,50f] + execute if predicate api:global_vars/difficulty/min/3_blessless run data modify storage api: Argument.FieldOverride.Scale set value [12f,50f] + data modify storage api: Argument.FieldOverride.Interpolation set value 30 + data modify storage api: Argument.FieldOverride.Tick set value 55 + execute positioned ^ ^0.1 ^ rotated ~180 0 run function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/prediction_double.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/prediction_double.mcfunction new file mode 100644 index 00000000000..5900d328421 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/prediction_double.mcfunction @@ -0,0 +1,63 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/prediction_double +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/event_attack_double + +# 予告:円範囲 + data modify storage api: Argument.ID set value 2063 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + data modify storage api: Argument.FieldOverride.Color set value 3381759 + data modify storage api: Argument.FieldOverride.Scale set value [20f, 20f, 0.05f] + data modify storage api: Argument.FieldOverride.Tick set value 20 + execute positioned ^ ^0.2 ^ rotated ~ 0 run function api:object/summon + +# 予告 + data modify storage api: Argument.ID set value 2113 + data modify storage api: Argument.FieldOverride.RotationX set from entity @s Rotation[0] + data modify storage api: Argument.FieldOverride.Color set value 3381759 + execute if predicate api:global_vars/difficulty/max/2_hard run data modify storage api: Argument.FieldOverride.Scale set value [8f,50f] + execute if predicate api:global_vars/difficulty/min/3_blessless run data modify storage api: Argument.FieldOverride.Scale set value [12f,50f] + data modify storage api: Argument.FieldOverride.Interpolation set value 10 + data modify storage api: Argument.FieldOverride.Tick set value 20 + execute positioned ^ ^0.1 ^ rotated ~30 0 run function api:object/summon + data modify storage api: Argument.ID set value 2113 + data modify storage api: Argument.FieldOverride.RotationX set from entity @s Rotation[0] + data modify storage api: Argument.FieldOverride.Color set value 3381759 + execute if predicate api:global_vars/difficulty/max/2_hard run data modify storage api: Argument.FieldOverride.Scale set value [8f,50f] + execute if predicate api:global_vars/difficulty/min/3_blessless run data modify storage api: Argument.FieldOverride.Scale set value [12f,50f] + data modify storage api: Argument.FieldOverride.Interpolation set value 10 + data modify storage api: Argument.FieldOverride.Tick set value 20 + execute positioned ^ ^0.1 ^ rotated ~-30 0 run function api:object/summon + data modify storage api: Argument.ID set value 2113 + data modify storage api: Argument.FieldOverride.RotationX set from entity @s Rotation[0] + data modify storage api: Argument.FieldOverride.Color set value 3381759 + execute if predicate api:global_vars/difficulty/max/2_hard run data modify storage api: Argument.FieldOverride.Scale set value [8f,50f] + execute if predicate api:global_vars/difficulty/min/3_blessless run data modify storage api: Argument.FieldOverride.Scale set value [12f,50f] + data modify storage api: Argument.FieldOverride.Interpolation set value 10 + data modify storage api: Argument.FieldOverride.Tick set value 20 + execute positioned ^ ^0.1 ^ rotated ~90 0 run function api:object/summon + data modify storage api: Argument.ID set value 2113 + data modify storage api: Argument.FieldOverride.RotationX set from entity @s Rotation[0] + data modify storage api: Argument.FieldOverride.Color set value 3381759 + execute if predicate api:global_vars/difficulty/max/2_hard run data modify storage api: Argument.FieldOverride.Scale set value [8f,50f] + execute if predicate api:global_vars/difficulty/min/3_blessless run data modify storage api: Argument.FieldOverride.Scale set value [12f,50f] + data modify storage api: Argument.FieldOverride.Interpolation set value 10 + data modify storage api: Argument.FieldOverride.Tick set value 20 + execute positioned ^ ^0.1 ^ rotated ~-90 0 run function api:object/summon + data modify storage api: Argument.ID set value 2113 + data modify storage api: Argument.FieldOverride.RotationX set from entity @s Rotation[0] + data modify storage api: Argument.FieldOverride.Color set value 3381759 + execute if predicate api:global_vars/difficulty/max/2_hard run data modify storage api: Argument.FieldOverride.Scale set value [8f,50f] + execute if predicate api:global_vars/difficulty/min/3_blessless run data modify storage api: Argument.FieldOverride.Scale set value [12f,50f] + data modify storage api: Argument.FieldOverride.Interpolation set value 10 + data modify storage api: Argument.FieldOverride.Tick set value 20 + execute positioned ^ ^0.1 ^ rotated ~150 0 run function api:object/summon + data modify storage api: Argument.ID set value 2113 + data modify storage api: Argument.FieldOverride.RotationX set from entity @s Rotation[0] + data modify storage api: Argument.FieldOverride.Color set value 3381759 + execute if predicate api:global_vars/difficulty/max/2_hard run data modify storage api: Argument.FieldOverride.Scale set value [8f,50f] + execute if predicate api:global_vars/difficulty/min/3_blessless run data modify storage api: Argument.FieldOverride.Scale set value [12f,50f] + data modify storage api: Argument.FieldOverride.Interpolation set value 10 + data modify storage api: Argument.FieldOverride.Tick set value 20 + execute positioned ^ ^0.1 ^ rotated ~-150 0 run function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/start_attack.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/start_attack.mcfunction new file mode 100644 index 00000000000..eec75902fc2 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/start_attack.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/start_attack +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/event_charging + +# タグ更新 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.SwordAttack.Charge + tag @s add CO.Skill.SwordAttack.Attack diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/start_charging.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/start_charging.mcfunction new file mode 100644 index 00000000000..a216a1488c8 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/start_charging.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/start_charging +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/event_start + +# タグ更新 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.SwordAttack + tag @s add CO.Skill.SwordAttack.Charge diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/start_double.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/start_double.mcfunction new file mode 100644 index 00000000000..a4eae42c795 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/sword_attack/start_double.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/start_double +# +# 剣叩きつけ +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/sword_attack/event_attack + +# タグ更新 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.SwordAttack.Attack + tag @s add CO.Skill.SwordAttack.Double diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/transform_shoot/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/transform_shoot/.mcfunction new file mode 100644 index 00000000000..2357eb5b34d --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/transform_shoot/.mcfunction @@ -0,0 +1,46 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/transform_shoot/ +# +# 銃変形 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 変形 + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/change_to_shot/tween {duration:1, to_frame: 1} + # 効果音 + execute if score @s CO.EventTimer matches 1 run playsound block.grindstone.use hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 1 run playsound ui.stonecutter.take_result hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 10 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 10 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 15 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 15 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 20 run playsound block.piston.extend hostile @a ~ ~ ~ 2 1.1 + execute if score @s CO.EventTimer matches 26 run playsound block.piston.contract hostile @a ~ ~ ~ 2 1.2 + execute if score @s CO.EventTimer matches 31 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 34 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.9 + execute if score @s CO.EventTimer matches 37 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 40 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.9 + execute if score @s CO.EventTimer matches 43 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 31 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 34 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 37 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 40 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 43 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 50 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 50 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 45 run playsound block.piston.extend hostile @a ~ ~ ~ 2 1.1 + execute if score @s CO.EventTimer matches 58 run playsound block.piston.contract hostile @a ~ ~ ~ 2 1.1 + execute if score @s CO.EventTimer matches 65 run playsound block.grindstone.use hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 65 run playsound ui.stonecutter.take_result hostile @a ~ ~ ~ 3 0.5 + +# 回転 + function asset:mob/0456.gargo_ex_machina/tick/util/rotate_to_center + +# モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + +# 終了 + execute if score @s CO.EventTimer matches 85.. run function asset:mob/0456.gargo_ex_machina/tick/event/transform_shoot/end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/transform_shoot/end.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/transform_shoot/end.mcfunction new file mode 100644 index 00000000000..b3c23b05e50 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/transform_shoot/end.mcfunction @@ -0,0 +1,15 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/transform_shoot/end +# +# 剣変形 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/transform_shoot/ + +# タグ消去 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.Transform.Shoot + +# 待機モーション再生 + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/idle_shot/tween {duration:1, to_frame: 1} + +# 行動 + # function asset:mob/0410.heiloang/tick/act/ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/transform_sword/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/transform_sword/.mcfunction new file mode 100644 index 00000000000..1783c5059b4 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/transform_sword/.mcfunction @@ -0,0 +1,46 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/transform_sword/ +# +# 剣変形 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 変形 + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/change_to_sword/tween {duration:1, to_frame: 1} + # 効果音 + execute if score @s CO.EventTimer matches 1 run playsound block.grindstone.use hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 1 run playsound ui.stonecutter.take_result hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 55 run playsound block.piston.contract hostile @a ~ ~ ~ 2 1.2 + execute if score @s CO.EventTimer matches 51 run playsound block.piston.extend hostile @a ~ ~ ~ 2 1.1 + execute if score @s CO.EventTimer matches 44 run playsound block.piston.contract hostile @a ~ ~ ~ 2 1.2 + execute if score @s CO.EventTimer matches 42 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 42 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.9 + execute if score @s CO.EventTimer matches 39 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 39 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.9 + execute if score @s CO.EventTimer matches 36 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 36 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.9 + execute if score @s CO.EventTimer matches 33 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 33 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 32 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 32 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 29 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 29 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 26 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 26 run playsound item.crossbow.loading_end hostile @a ~ ~ ~ 3 0.7 + execute if score @s CO.EventTimer matches 21 run playsound block.piston.extend hostile @a ~ ~ ~ 2 1.1 + execute if score @s CO.EventTimer matches 15 run playsound block.piston.contract hostile @a ~ ~ ~ 2 1.1 + execute if score @s CO.EventTimer matches 10 run playsound block.piston.extend hostile @a ~ ~ ~ 2 1.1 + execute if score @s CO.EventTimer matches 65 run playsound block.grindstone.use hostile @a ~ ~ ~ 3 0.5 + execute if score @s CO.EventTimer matches 65 run playsound ui.stonecutter.take_result hostile @a ~ ~ ~ 3 0.5 + +# 回転 + function asset:mob/0456.gargo_ex_machina/tick/util/rotate_to_center + +# モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + +# 終了 + execute if score @s CO.EventTimer matches 85.. run function asset:mob/0456.gargo_ex_machina/tick/event/transform_sword/end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/transform_sword/end.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/transform_sword/end.mcfunction new file mode 100644 index 00000000000..eb42ed5cdfb --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/transform_sword/end.mcfunction @@ -0,0 +1,18 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/transform_sword/end +# +# 銃変形 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/transform_sword/ + +# タグ消去 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.Transform.Sword + +# 目的地消去 + kill @e[type=area_effect_cloud,tag=CO.Aec.Destination,distance=..80] + +# 待機モーション再生 + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/idle/tween {duration:1, to_frame: 1} + +# 行動 + # function asset:mob/0410.heiloang/tick/act/ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/.mcfunction new file mode 100644 index 00000000000..df547c844f5 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/.mcfunction @@ -0,0 +1,28 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/ +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer 1 + +# 構え + # アニメーション再生 + execute if score @s CO.EventTimer matches 1 as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/shot_upper/tween {duration:1, to_frame: 1} + # 効果音 + execute if score @s CO.EventTimer matches 1 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 10 positioned ^-4 ^ ^4 run function asset:mob/0456.gargo_ex_machina/tick/util/step_sound + execute if score @s CO.EventTimer matches 50 run function asset:mob/0456.gargo_ex_machina/tick/util/sound + execute if score @s CO.EventTimer matches 70 run playsound block.piston.contract hostile @a ~ ~ ~ 2 0.9 + # モデルを合わせる + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run tp @s ~ ~ ~ ~ ~ + # 演出 + execute if score @s CO.EventTimer matches 28 as @e[type=item_display,tag=CO.ModelRoot,distance=..80,sort=nearest,limit=1] at @s on passengers if entity @s[tag=aj.global.data] run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/summon_laser.m with entity @s data.locators.muzzle + execute if score @s CO.EventTimer matches 30..32 run playsound entity.breeze.jump hostile @a ~ ~ ~ 2 0.5 + execute if score @s CO.EventTimer matches 30..32 run playsound entity.breeze.jump hostile @a ~ ~ ~ 2 0.6 + # 攻撃開始 + execute if score @s CO.EventTimer matches 48 run tag @s add CO.UpperShot.Asyuc + +# 終了 + execute if score @s CO.EventTimer matches 70.. run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/async_end.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/async_end.mcfunction new file mode 100644 index 00000000000..55abb016dc0 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/async_end.mcfunction @@ -0,0 +1,14 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_end +# +# 上空射撃 設置後すぐ別の動きをしてもいいように、攻撃処理だけ非同期で実行 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/** + +# 実行 + scoreboard players set @s CO.EventTimer.UpperShot 0 + execute unless entity @e[type=area_effect_cloud,tag=CO.Aec.UpperShotPosition,distance=..80] run tag @s remove CO.UpperShot.Asyuc + execute unless entity @s[tag=CO.UpperShot.Asyuc] run tag @s remove CO.UpperShot.Pt.Random + execute unless entity @s[tag=CO.UpperShot.Asyuc] run tag @s remove CO.UpperShot.Pt.Target + execute unless entity @s[tag=CO.UpperShot.Asyuc] run tag @s remove CO.UpperShot.Pt.MoveLine + execute unless entity @s[tag=CO.UpperShot.Asyuc] run tag @s remove CO.UpperShot.Pt.Cross + execute unless entity @s[tag=CO.UpperShot.Asyuc] run tag @s remove CO.UpperShot.Pt.Panto diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_cross.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_cross.mcfunction new file mode 100644 index 00000000000..5912c35ac75 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_cross.mcfunction @@ -0,0 +1,19 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_cross +# +# 上空射撃 設置後すぐ別の動きをしてもいいように、攻撃処理だけ非同期で実行 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer.UpperShot 1 + +# 攻撃位置決定 + execute if score @s CO.EventTimer.UpperShot matches 1 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated 45 0 run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_cross + execute if score @s CO.EventTimer.UpperShot matches 100 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated 0 0 run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_cross + execute if score @s CO.EventTimer.UpperShot matches 200 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated 45 0 run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_cross + +# 実行 + execute at @e[type=area_effect_cloud,tag=CO.Aec.UpperShotPosition,distance=..80,sort=random,limit=3] run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/attack.m {AttackTime:120} + +# 終了 + execute if score @s CO.EventTimer.UpperShot matches 250.. run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_moveline.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_moveline.mcfunction new file mode 100644 index 00000000000..f0d9426b855 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_moveline.mcfunction @@ -0,0 +1,32 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_moveline +# +# 上空射撃 設置後すぐ別の動きをしてもいいように、攻撃処理だけ非同期で実行 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer.UpperShot 1 + +# 攻撃位置決定 + # 正面 + execute if score @s CO.EventTimer.UpperShot matches 1 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~ ~ positioned ^ ^ ^30 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_moveline + execute if score @s CO.EventTimer.UpperShot matches 51 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~ ~ positioned ^ ^ ^20 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_moveline + execute if score @s CO.EventTimer.UpperShot matches 101 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~ ~ positioned ^ ^ ^10 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_moveline + execute if score @s CO.EventTimer.UpperShot matches 151 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~ ~ positioned ^ ^ ^0 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_moveline + execute if score @s CO.EventTimer.UpperShot matches 201 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~ ~ positioned ^ ^ ^-10 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_moveline + execute if score @s CO.EventTimer.UpperShot matches 251 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~ ~ positioned ^ ^ ^-20 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_moveline + execute if score @s CO.EventTimer.UpperShot matches 301 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~ ~ positioned ^ ^ ^-30 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_moveline + # 交差 + execute if score @s CO.EventTimer.UpperShot matches 1 if predicate api:global_vars/difficulty/min/3_blessless at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~90 ~ positioned ^ ^ ^30 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_moveline + execute if score @s CO.EventTimer.UpperShot matches 51 if predicate api:global_vars/difficulty/min/3_blessless at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~90 ~ positioned ^ ^ ^20 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_moveline + execute if score @s CO.EventTimer.UpperShot matches 101 if predicate api:global_vars/difficulty/min/3_blessless at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~90 ~ positioned ^ ^ ^10 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_moveline + execute if score @s CO.EventTimer.UpperShot matches 151 if predicate api:global_vars/difficulty/min/3_blessless at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~90 ~ positioned ^ ^ ^0 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_moveline + execute if score @s CO.EventTimer.UpperShot matches 201 if predicate api:global_vars/difficulty/min/3_blessless at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~90 ~ positioned ^ ^ ^-10 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_moveline + execute if score @s CO.EventTimer.UpperShot matches 251 if predicate api:global_vars/difficulty/min/3_blessless at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~90 ~ positioned ^ ^ ^-20 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_moveline + execute if score @s CO.EventTimer.UpperShot matches 301 if predicate api:global_vars/difficulty/min/3_blessless at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~90 ~ positioned ^ ^ ^-30 rotated ~90 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_moveline + +# 実行 + execute at @e[type=area_effect_cloud,tag=CO.Aec.UpperShotPosition,distance=..80,sort=random,limit=3] run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/attack.m {AttackTime:60} + +# 終了 + execute if score @s CO.EventTimer.UpperShot matches 350.. run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_pantokrator.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_pantokrator.mcfunction new file mode 100644 index 00000000000..e6c9cd0ad29 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_pantokrator.mcfunction @@ -0,0 +1,24 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_pantokrator +# +# 上空射撃 設置後すぐ別の動きをしてもいいように、攻撃処理だけ非同期で実行 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer.UpperShot 1 + +# 攻撃位置決定 + # 攻撃位置決定 + execute if score @s CO.EventTimer.UpperShot matches 1 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~ ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_pantokrator + execute if score @s CO.EventTimer.UpperShot matches 60 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~60 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_pantokrator + execute if score @s CO.EventTimer.UpperShot matches 120 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~120 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_pantokrator + execute if score @s CO.EventTimer.UpperShot matches 180 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~180 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_pantokrator + execute if score @s CO.EventTimer.UpperShot matches 240 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~240 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_pantokrator + execute if score @s CO.EventTimer.UpperShot matches 300 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~300 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_pantokrator + execute if score @s CO.EventTimer.UpperShot matches 360 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] rotated ~360 ~ run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_pantokrator + +# 実行 + execute at @e[type=area_effect_cloud,tag=CO.Aec.UpperShotPosition,distance=..80,sort=random,limit=3] run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/attack.m {AttackTime:100} + +# 終了 + execute if score @s CO.EventTimer.UpperShot matches 420.. run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_random.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_random.mcfunction new file mode 100644 index 00000000000..e9f7c2eeb77 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_random.mcfunction @@ -0,0 +1,18 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_random +# +# 上空射撃 設置後すぐ別の動きをしてもいいように、攻撃処理だけ非同期で実行 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + scoreboard players add @s CO.EventTimer.UpperShot 1 + +# 攻撃位置決定 + # 攻撃位置決定 + execute if score @s CO.EventTimer.UpperShot matches 1 at @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_random + +# 実行 + execute at @e[type=area_effect_cloud,tag=CO.Aec.UpperShotPosition,distance=..80,sort=random,limit=2] run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/attack.m {AttackTime:60} + +# 終了 + execute if score @s CO.EventTimer.UpperShot matches 40.. run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_target.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_target.mcfunction new file mode 100644 index 00000000000..84407e60b87 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_target.mcfunction @@ -0,0 +1,19 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_target +# +# 上空射撃 設置後すぐ別の動きをしてもいいように、攻撃処理だけ非同期で実行 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/ + +# タイマー増加 + execute store result score $Interval Temporary run scoreboard players add @s CO.EventTimer.UpperShot 1 + +# 攻撃位置決定: 一定間隔で実行 + scoreboard players operation $Interval Temporary %= $30 Const + execute if score $Interval Temporary matches 0 run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_target + +# 攻撃 + execute if score $Interval Temporary matches 0 at @e[type=area_effect_cloud,tag=CO.Aec.UpperShotPosition,distance=..80] run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/attack.m {AttackTime:60} + +# 終了 + scoreboard players reset $Interval Temporary + execute if score @s CO.EventTimer.UpperShot matches 331.. run function asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_end diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/attack.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/attack.m.mcfunction new file mode 100644 index 00000000000..3aa8a920759 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/attack.m.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/attack.m +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/** + +# 攻撃判定召喚 + data modify storage api: Argument.ID set value 2268 + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage.Shot + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + $data modify storage api: Argument.FieldOverride.AttackTime set value $(AttackTime) + execute positioned ~ ~ ~ run function api:object/summon + kill @e[type=area_effect_cloud,tag=CO.Aec.UpperShotPosition,distance=..10,sort=nearest,limit=1] diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/attack_pantokrator.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/attack_pantokrator.mcfunction new file mode 100644 index 00000000000..2718b0507b2 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/attack_pantokrator.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/attack_pantokrator +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/** + +# 攻撃判定召喚 + data modify storage api: Argument.ID set value 2268 + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage.Shot + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + data modify storage api: Argument.FieldOverride.AttackTime set value 100 + execute positioned ~ ~ ~ run function api:object/summon + kill @e[type=area_effect_cloud,tag=CO.Aec.UpperShotPosition,distance=..10,sort=nearest,limit=1] diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/end.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/end.mcfunction new file mode 100644 index 00000000000..af77c3cbbee --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/end.mcfunction @@ -0,0 +1,18 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/end +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/ + +# タグ消去 + scoreboard players set @s CO.EventTimer 0 + tag @s remove CO.Skill.UpperShot + +# 攻撃地点消去 + kill @e[type=area_effect_cloud,tag=CO.Aec.AttackPosition,distance=..80] + +# 待機モーション再生 + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/idle_shot/tween {duration:1, to_frame: 1} + +# 行動 + # function asset:mob/0410.heiloang/tick/act/ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_cross.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_cross.mcfunction new file mode 100644 index 00000000000..b704a873b54 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_cross.mcfunction @@ -0,0 +1,29 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_cross +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_cross + +# [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYADAEwDMAbAIwCcRA7ALQCsDjrALJQBysARjwBmPVjR50hdOEKHs6dHmFwYAhgFsEyQFu+AAjpqwMDQCdtAZyTgAxgHs8GCEjplco8w622wANw0UPF1wAA8kDzAoJAp+AF943AgHP0Dg0LAIxCiYxFY4xNwHUVErOFcc3CE4AC80OHNI3DQrACE6hvMAUQBHPCCUKABlMzs4EkRRIPKi8Gh4UnQsEwJiUn4yOCpRIgoyVnciOl4lGmE7diFWIjI7GjIqBhq9jRNNHVJDE8cYGNwzJYtDZEPYnC43FEvD40kEQn5snFcHkyEVIKlQQE4ZlsgV+MjImiSmUKs0wDV6o0ya0OpSev1BiMxhMkNMULN4gBdIA_3 +# 線 1-copy +summon area_effect_cloud ^28 ^ ^0 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^21.77778 ^ ^0 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^15.55556 ^ ^0 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^9.33333 ^ ^0 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^3.11111 ^ ^0 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-3.11111 ^ ^0 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-9.33333 ^ ^0 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-15.55556 ^ ^0 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-21.77778 ^ ^0 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-28 ^ ^0 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +# 線 1 +summon area_effect_cloud ^0 ^ ^28 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^21.77778 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^15.55556 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^9.33333 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^3.11111 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^-3.11111 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^-9.33333 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^-15.55556 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^-21.77778 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^-28 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_moveline.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_moveline.mcfunction new file mode 100644 index 00000000000..e0efccc8540 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_moveline.mcfunction @@ -0,0 +1,18 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_moveline +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_moveline + +# [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYAbACwBGAhgBwVkDMAtBQxW0QJwDsLNCkU4AzAAxi6YkQEYmTbmJxgMNALYJkgLd8ABDLC4YNAE7qAzknABjAPZ4MEJDLG4Rxm2stgAbjRR5NcAAPJBcwKCQWACZeADoyAF8E3AgbL19-QLAQxDCIxBik3BsRETM4R1zcKjgALzQ4Y1DcNDMAITqG4wBRAEc8PxQoAGUjKzgSRBE-cqSAXSA_3 +# 線 1 +summon area_effect_cloud ^0 ^ ^-27.6 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^-21.53333 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^-15.46667 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^-9.4 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^-3.33333 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^2.73333 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^8.8 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^14.86667 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^20.93333 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^27 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_pantokrator.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_pantokrator.mcfunction new file mode 100644 index 00000000000..502572a05bb --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_pantokrator.mcfunction @@ -0,0 +1,53 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_pantokrator +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_pantokrator + +# [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYAzAKwAMARnHAIZwC0RVAZgGzMAsAjAHYAnMwY8GAY2ZU+RBgCYAHDwE0iPdmFwYGAWwTJAW74ACMlrAwGAJz0BnJOAkB7PBghI+VXOytPdDsAA3BhQ8A3AADyQvMCgkHnkAX0TcCCcA4NDwsCjEGLjEXiSUsCd2dls4dzzcOgAvNDgraNw0WwAhOAamgFEARzwQlCgAZUsJOBJEdhDK5OxwaHhSdCxzAmJSTnEhdiE4ETJ2RREeDgFmGiEKdmYJuHkBFT4+TlpzHX1SEzI7pxgoH8AeZLDZdPZEI4XG4kEJvL5-JCgiEwgFcnDYkgyJx5pB0kjMqikblmBiCsxsbiyhUqi0wPVGs0amA2p1ulZ+oMUMMxpJJkgZig5ilFrADKhMDh8IQpmAeBROBJ2DweCwyEROL8zgw+MxlDM7lQBFR5BJ5Hx2NiBB89OKfkDAc4AQ6QdY7AFnK5qop4X4Mijsrk+D7MYgyFRcWl-Vk0UhmMHcOTw1TypVqjEGU06ayuozOUNRuN+dNZnB5qLlshVlKNrKBHA+BIaJx5BQ9TQKPJeHBFLqGER6KIqHABK8+GIxJwbV8jKYHfOnY7-nFcKD3UjPTDEAJfYjwITA3GE6HkyUowSA7HEMekxGStS03TM0yYjn2fnuYW+VNBcKFpAxRWSV1hlUgqCECYlXYFg4FoGheH2eCrjgKQhCICRBAYVQDhHac7TnRcF2XV0wQhKEvSQEMfD9C8Y2JOMySxHEz3xfdL3oxBGMKSl71TWlmWfbMOlzXoBgLXkJh-UtkgAXSAA_3 +# 線 3-copy-copy-copy-copy +summon area_effect_cloud ^-18 ^ ^30 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-12 ^ ^20 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-6 ^ ^10 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^0 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^6 ^ ^-10 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^12 ^ ^-20 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^18 ^ ^-30 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +# 線 3 +summon area_effect_cloud ^0 ^ ^42 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^32.66667 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^23.33333 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^14 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^4.66667 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^-4.66667 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^-14 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^-23.33333 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^-32.66667 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^0 ^ ^-42 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +# 線 3-copy-copy +summon area_effect_cloud ^9 ^ ^36 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^6.75 ^ ^27 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^4.5 ^ ^18 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^2.25 ^ ^9 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-2.25 ^ ^-9 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-4.5 ^ ^-18 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-6.75 ^ ^-27 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-9 ^ ^-36 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +# 線 3-copy-copy-copy +summon area_effect_cloud ^18 ^ ^30 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^12.85714 ^ ^21.42857 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^7.71429 ^ ^12.85714 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^2.57143 ^ ^4.28571 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-2.57143 ^ ^-4.28571 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-7.71429 ^ ^-12.85714 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-12.85714 ^ ^-21.42857 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-18 ^ ^-30 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +# 線 3-copy-copy-copy +summon area_effect_cloud ^-9 ^ ^36 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-6.42857 ^ ^25.71429 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-3.85714 ^ ^15.42857 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-1.28571 ^ ^5.14286 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^1.28571 ^ ^-5.14286 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^3.85714 ^ ^-15.42857 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^6.42857 ^ ^-25.71429 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^9 ^ ^-36 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_random.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_random.mcfunction new file mode 100644 index 00000000000..c6ce88b21a1 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_random.mcfunction @@ -0,0 +1,64 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_random +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_random + +# [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYAzAGwDsVAZgIxUDGAtFQCwCcZL7RcrAEZMAhgAYWtCrTFkmVImNqcqYXBhEBbBMkBbvgAJ6asDBEAnLQGck4JgHs8GCEgAcuWmbuabYAG4iUPB1wAA8kFgAmAFZcKHDogF8E3Ag7H39A4LAwxGjY+Kik3DtaWks4Z0QxXEE4AC80ODMkarA0SwAhesazAFEARzwAlCgAZVMmOBJEWgDyovBoeFJ0LGMCYlJaF1kiFRdIiiiqXgp2ChYRCjF2Fhu4CNpmMjFqEWMNbVIDehZ7GDiuFMFk01kQtgcTlc7k83nBfgCQR8OUiMTAcUQLHohWSkDS8IySPhOTy6PC2KKYBKZQqLRq3SadLanQZfUGwzGEymSFmKHmyUWsB0qEwOHwhGmYDgFHoFDgYioB0mZFu7CospYgkELlYcConBcigiEQo2vYHy0wp+fzsAJtAOMwKsPnsjkqbjAHi86URWRRpIxLBxKXx4EJfqQAfCwappXKlVatQajKquHaXWTbKGKBG4xEk2mvP52EFy2QqzFG0l7Dg7CY2rEIk1FBVvAYFxctCYBxE2IiZE4nCYETgg4tXz0hntUGn08d5md8NdUMQHq9cLDvuRBXyiBjqR9mW3uTRGJj1PjTKTPSZ6dZA2zua5hbmcAWkCFK1F6wlpHYN1kCIiFYThSkEXgRG2S46FYMh1TgFVhyiLgXHHK0p3+GdMNnTD5xBMEITdaFPVhQ8iVCHcyUQClcQPAkt2JSNTyQGjijjWlUzAa8U1aO9MwfDk8wLHlX3fJZhQrH9NmQJgZH4OROBYTgWyIXhDROQQREeFgiAHLtBGA004FQ9RLW+DDbUBEwF1BF1IXdGFvXoo9GMxKMT0pOjNxciiT13RJcQvDjE1ZW8WX49kc05fNuRmUSEgAXSAA_3 +# 線 1-copy +summon area_effect_cloud ^-25 ^ ^25 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-17.85714 ^ ^25 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-10.71429 ^ ^25 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-3.57143 ^ ^25 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^3.57143 ^ ^25 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^10.71429 ^ ^25 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^17.85714 ^ ^25 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^25 ^ ^25 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +# 線 1 +summon area_effect_cloud ^-25 ^ ^-25 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-17.85714 ^ ^-25 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-10.71429 ^ ^-25 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-3.57143 ^ ^-25 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^3.57143 ^ ^-25 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^10.71429 ^ ^-25 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^17.85714 ^ ^-25 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^25 ^ ^-25 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +# 線 1-copy +summon area_effect_cloud ^-25 ^ ^-15 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-17.85714 ^ ^-15 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-10.71429 ^ ^-15 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-3.57143 ^ ^-15 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^3.57143 ^ ^-15 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^10.71429 ^ ^-15 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^17.85714 ^ ^-15 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^25 ^ ^-15 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +# 線 1-copy-copy +summon area_effect_cloud ^-25 ^ ^-5 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-17.85714 ^ ^-5 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-10.71429 ^ ^-5 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-3.57143 ^ ^-5 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^3.57143 ^ ^-5 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^10.71429 ^ ^-5 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^17.85714 ^ ^-5 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^25 ^ ^-5 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +# 線 1-copy-copy-copy +summon area_effect_cloud ^-25 ^ ^5 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-17.85714 ^ ^5 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-10.71429 ^ ^5 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-3.57143 ^ ^5 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^3.57143 ^ ^5 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^10.71429 ^ ^5 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^17.85714 ^ ^5 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^25 ^ ^5 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +# 線 1-copy-copy-copy-copy +summon area_effect_cloud ^-25 ^ ^15 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-17.85714 ^ ^15 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-10.71429 ^ ^15 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^-3.57143 ^ ^15 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^3.57143 ^ ^15 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^10.71429 ^ ^15 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^17.85714 ^ ^15 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} +summon area_effect_cloud ^25 ^ ^15 {Tags:["CO.Aec.UpperShotPosition"],Duration:300} + +# 数を減らす + kill @e[type=area_effect_cloud,tag=CO.Aec.UpperShotPosition,distance=..80,sort=random,limit=12] diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_target.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_target.mcfunction new file mode 100644 index 00000000000..7bc81a74e52 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_target.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/pattern_target +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/async_pattern_target + +# 召喚 + execute at @a[distance=..80] run summon area_effect_cloud ^ ^ ^ {Tags:["CO.Aec.UpperShotPosition"],Duration:300} + execute as @e[type=area_effect_cloud,tag=CO.Aec.UpperShotPosition,distance=..80] at @s run function asset:mob/0456.gargo_ex_machina/tick/util/move_to_ground + execute as @e[type=area_effect_cloud,tag=CO.Aec.UpperShotPosition,distance=..80] at @s run tp @s ~ ~0.3 ~ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/prediction.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/prediction.m.mcfunction new file mode 100644 index 00000000000..593d8346c31 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/prediction.m.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/shot/prediction.m +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/shot/ + +# 予告:円範囲 + data modify storage api: Argument.ID set value 2063 + execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID + data modify storage api: Argument.FieldOverride.Color set value 3381759 + data modify storage api: Argument.FieldOverride.Scale set value [15f, 15f, 0.05f] + $data modify storage api: Argument.FieldOverride.Tick set value $(Tick) + execute positioned ^ ^ ^ rotated ~ 0 run function api:object/summon diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/summon_laser.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/summon_laser.m.mcfunction new file mode 100644 index 00000000000..1f6294bf98c --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/event/upper_shot/summon_laser.m.mcfunction @@ -0,0 +1,14 @@ +#> asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/summon_laser.m +# +# 射撃 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/upper_shot/ + +# 演出 + $summon area_effect_cloud ^$(posx) ^$(posy) ^$(posz) {Tags:["CO.Temp.Rotation"]} + execute as @e[type=area_effect_cloud,tag=CO.Temp.Rotation,distance=..30,limit=1] at @s run tp @s ~ ~ ~ ~ -90 + data modify storage api: Argument.ID set value 2263 + data modify storage api: Argument.FieldOverride.Rotation set from entity @e[type=area_effect_cloud,tag=CO.Temp.Rotation,distance=..30,limit=1] Rotation + data modify storage api: Argument.FieldOverride.IsShot set value true + execute positioned as @e[type=area_effect_cloud,tag=CO.Temp.Rotation,distance=..30,limit=1] run function api:object/summon + kill @e[type=area_effect_cloud,tag=CO.Temp.Rotation,distance=..30,limit=1] diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/assing_object_id.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/assing_object_id.mcfunction new file mode 100644 index 00000000000..c7fef59e9f4 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/assing_object_id.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/assing_object_id +# +# オブジェクトID割り当て +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +# 割り当て + execute store result storage api: Argument.FieldOverride.ObjectId int 1 run scoreboard players add @s CO.ObjectId 1 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/change_bossbar_color.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/change_bossbar_color.m.mcfunction new file mode 100644 index 00000000000..efcfced2fa0 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/change_bossbar_color.m.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/change_bossbar_color.m +# +# 汎用処理 ボスバー色変更 +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +# bossbar色変更 + $bossbar set asset:angel$(MobUUID) color $(Color) diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/change_bossbar_name.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/change_bossbar_name.m.mcfunction new file mode 100644 index 00000000000..0cd5789c91e --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/change_bossbar_name.m.mcfunction @@ -0,0 +1,12 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/change_bossbar_name.m +# +# ボス名変更 +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +# bossbar変更準備 + $data modify storage asset:temp CO.Name set value "$(Name)" + $data modify storage asset:temp CO.Visible set value "$(Visible)" + execute store result storage asset:temp CO.MobUUID int 1 run scoreboard players get @s MobUUID + function asset:mob/0456.gargo_ex_machina/tick/util/change_bossbar_name_apply.m with storage asset:temp CO + data remove storage asset:temp CO diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/change_bossbar_name_apply.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/change_bossbar_name_apply.m.mcfunction new file mode 100644 index 00000000000..049a0ba1173 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/change_bossbar_name_apply.m.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/change_bossbar_name_apply.m +# +# ボス名変更 +# +# @within asset:mob/0456.gargo_ex_machina/tick/util/change_bossbar_name.m + +# bossbar変更 + $bossbar set asset:angel$(MobUUID) name {"text":"$(Name)"} + $bossbar set asset:angel$(MobUUID) visible $(Visible) diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/change_health.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/change_health.mcfunction new file mode 100644 index 00000000000..8ad9517e574 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/change_health.mcfunction @@ -0,0 +1,11 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/change_health +# +# ボス名変更 +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +# 最大HPの100%分回復 + function api:mob/get_max_health + execute store result storage api: Argument.Delta double 1.0 run data get storage api: Return.MaxHealth 1 + function api:mob/modify_health + function asset:mob/call.m {method: "update_bossbar"} diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/change_model.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/change_model.mcfunction new file mode 100644 index 00000000000..0eba97c86ad --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/change_model.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/change_model +# +# ボス名変更 +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +# モデル変更 + execute as @e[type=item_display,tag=aj.gargo_ex_machina.bone.head,sort=nearest,limit=1] run data modify entity @s item.tag.CustomModelData set value 999 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/change_target.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/change_target.mcfunction new file mode 100644 index 00000000000..59ccda8a63f --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/change_target.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/change_target +# +# ターゲット変更 +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +# ターゲットをランダムに指定 + tag @a remove CO.MainTarget + tag @r[tag=!PlayerShouldInvulnerable,distance=..80] add CO.MainTarget + execute unless entity @a[tag=CO.MainTarget,distance=..80] run tag @r[distance=..80] add CO.MainTarget diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/end_invulnerable.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/end_invulnerable.mcfunction new file mode 100644 index 00000000000..9dd211aa8d5 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/end_invulnerable.mcfunction @@ -0,0 +1,18 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/end_invulnerable +# +# 汎用処理 無敵化解除 +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +# bossbarの色変更 + execute store result storage asset:temp CO.MobUUID int 1 run scoreboard players get @s MobUUID + data modify storage asset:temp CO.Color set value "pink" + function asset:mob/0456.gargo_ex_machina/tick/util/change_bossbar_color.m with storage asset:temp CO + data remove storage asset:temp CO + execute unless entity @s[tag=CO.IsLatter] run bossbar set asset:co_gem_former color pink + +# 全Locator無敵化解除 + execute as @e[type=item_display,tag=CO.ModelRoot] run function animated_java:gargo_ex_machina/as_own_locator_entities {command:'function asset:mob/0456.gargo_ex_machina/tick/util/end_invulnerable_locator'} + +# 無敵化フラグ + tag @s remove CO.IsInvulnerable diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/end_invulnerable_locator.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/end_invulnerable_locator.mcfunction new file mode 100644 index 00000000000..183a2c9530e --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/end_invulnerable_locator.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/end_invulnerable_locator +# +# 汎用処理 無敵化解除 +# +# @within asset:mob/0456.gargo_ex_machina/tick/util/end_invulnerable + +# 無敵化解除 + data modify entity @s Invulnerable set value false + tag @s remove Uninterferable diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/hide_shadow.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/hide_shadow.mcfunction new file mode 100644 index 00000000000..9f532adb664 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/hide_shadow.mcfunction @@ -0,0 +1,11 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/hide_shadow +# +# 影の非表示 +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +# 影非表示 + data modify entity @s interpolation_duration set value 5 + data modify entity @s start_interpolation set value -1 + data modify entity @s shadow_radius set value 0 + data modify entity @s shadow_strength set value 0f diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/move.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/move.m.mcfunction new file mode 100644 index 00000000000..5ab5c828951 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/move.m.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/move.m +# +# 移動実行 +# +# @within asset:mob/0456.gargo_ex_machina/tick/util/move + +# 移動 + $execute positioned ~$(X) ~ ~$(Z) run tp @s ~ ~ ~ ~ ~ diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/move.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/move.mcfunction new file mode 100644 index 00000000000..227a43d4c7d --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/move.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/move +# +# 移動実行 +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +# 移動実行 + function asset:mob/0456.gargo_ex_machina/tick/util/move.m with storage asset:context this.Move diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/move_calc.m.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/move_calc.m.mcfunction new file mode 100644 index 00000000000..2db9fe99ba6 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/move_calc.m.mcfunction @@ -0,0 +1,31 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/move_calc.m +# +# 移動距離計算 +# +# @within asset:mob/0456.gargo_ex_machina/tick/** +# @private + #declare score_holder $TempPos.X + #declare score_holder $TempPos.Z + +# 目的地 + data modify storage asset:temp CO.Pos set from entity @e[type=area_effect_cloud,tag=CO.Aec.Destination,distance=..80,sort=nearest,limit=1] Pos + execute store result score $TempPos.X Temporary run data get storage asset:temp CO.Pos[0] 1000 + execute store result score $TempPos.Z Temporary run data get storage asset:temp CO.Pos[2] 1000 + +# 自身の位置との差を計算 + data modify storage asset:temp CO.Pos set from entity @s Pos + execute store result score @s Temporary run data get storage asset:temp CO.Pos[0] 1000 + scoreboard players operation $TempPos.X Temporary -= @s Temporary + execute store result score @s Temporary run data get storage asset:temp CO.Pos[2] 1000 + scoreboard players operation $TempPos.Z Temporary -= @s Temporary + +# vector/tickを計算 + $scoreboard players set @s Temporary $(Tick) + execute store result storage asset:context this.Move.X float 0.001 run scoreboard players operation $TempPos.X Temporary /= @s Temporary + execute store result storage asset:context this.Move.Z float 0.001 run scoreboard players operation $TempPos.Z Temporary /= @s Temporary + +# 終了 + scoreboard players reset $TempPos.X Temporary + scoreboard players reset $TempPos.Z Temporary + scoreboard players reset @s Temporary + data remove storage asset:temp CO diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/move_to_ground.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/move_to_ground.mcfunction new file mode 100644 index 00000000000..17a6b067808 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/move_to_ground.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/move_to_ground +# +# 汎用処理 接地 +# +# @within asset:mob/0456.gargo_ex_machina/tick/event/** + +# 接地 + execute store result entity @s Pos[1] double 1 run data get entity @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] Pos[1] diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/remove_animation_tag.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/remove_animation_tag.mcfunction new file mode 100644 index 00000000000..eb02624d44c --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/remove_animation_tag.mcfunction @@ -0,0 +1,41 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/remove_animation_tag +# +# タグ消去 +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +# 行動停止 + tag @s remove CO.Skill.Activate + tag @s remove CO.Skill.ChangeHead + tag @s remove CO.Skill.Move + tag @s remove CO.Skill.Move.End + tag @s remove CO.Skill.Move.Near + tag @s remove CO.Skill.SwordAttack + tag @s remove CO.Skill.SwordAttack.Charge + tag @s remove CO.Skill.SwordAttack.Attack + tag @s remove CO.Skill.SwordAttack.Double + tag @s remove CO.Skill.HalfBeam + tag @s remove CO.Skill.HalfBeam.Charge + tag @s remove CO.Skill.HalfBeam.Attack + tag @s remove CO.Skill.HalfBeam.IsRight + tag @s remove CO.Skill.HalfBeamSword + tag @s remove CO.Skill.HalfBeamSword.Charge + tag @s remove CO.Skill.HalfBeamSword.Attack + tag @s remove CO.Skill.HalfBeamSword.IsRight + tag @s remove CO.Skill.HalfBeamShot + tag @s remove CO.Skill.HalfBeamShot.Charge + tag @s remove CO.Skill.HalfBeamShot.Attack + tag @s remove CO.Skill.HalfBeamShot.IsRight + tag @s remove CO.Skill.SuperJump + tag @s remove CO.Skill.SuperJump.Attack + tag @s remove CO.Skill.FieldModify + tag @s remove CO.Skill.Transform.Shoot + tag @s remove CO.Skill.Transform.Sword + tag @s remove CO.Skill.RocketPunch + tag @s remove CO.Skill.RocketPunch.Cross + tag @s remove CO.Skill.RocketPunch.Alter + tag @s remove CO.Skill.RocketPunch.AlterInv + tag @s remove CO.Skill.Shot + tag @s remove CO.Skill.UpperShot + tag @s remove CO.Skill.BluteForce + tag @s remove CO.Skill.BluteForce.First diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/remove_former_bossbar.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/remove_former_bossbar.mcfunction new file mode 100644 index 00000000000..a90711767fb --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/remove_former_bossbar.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/remove_former_bossbar +# +# 前半戦Bossbar消去 +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + + +# HP最大値調整 + bossbar remove asset:co_gem_former diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/rotate_to_center.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/rotate_to_center.mcfunction new file mode 100644 index 00000000000..af2d68e028b --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/rotate_to_center.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/rotate_to_center +# +# 中心点を向く +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +# 中心点の方を向く + execute rotated ~ 0 positioned ^ ^ ^-1 facing entity @e[type=marker,tag=CO.CenterPosition,distance=..80,limit=1] feet rotated ~ 0 positioned ^ ^ ^-1 facing entity @s feet positioned as @s positioned ^ ^ ^-1 rotated as @s rotated ~ 0 positioned ^ ^ ^-1 facing entity @s feet positioned as @s run tp @s ^ ^ ^ ~ 0 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/rotate_to_destination.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/rotate_to_destination.mcfunction new file mode 100644 index 00000000000..d2e047b935b --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/rotate_to_destination.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/rotate_to_destination +# +# 目的地を向く +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +# 目的地の方を向く + execute rotated ~ 0 positioned ^ ^ ^-1 facing entity @e[type=area_effect_cloud,tag=CO.Aec.Destination,distance=..80,limit=1] feet rotated ~ 0 positioned ^ ^ ^-1 facing entity @s feet positioned as @s positioned ^ ^ ^-1 rotated as @s rotated ~ 0 positioned ^ ^ ^-1 facing entity @s feet positioned as @s run tp @s ^ ^ ^ ~ 0 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/rotate_to_target.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/rotate_to_target.mcfunction new file mode 100644 index 00000000000..89f7803550c --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/rotate_to_target.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/rotate_to_target +# +# ターゲットを向く +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +# 対象の方を向く + execute rotated ~ 0 positioned ^ ^ ^-1 facing entity @p[tag=CO.MainTarget] feet rotated ~ 0 positioned ^ ^ ^-1 facing entity @s feet positioned as @s positioned ^ ^ ^-1 rotated as @s rotated ~ 0 positioned ^ ^ ^-1 facing entity @s feet positioned as @s run tp @s ^ ^ ^ ~ 0 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/show_former_bossbar.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/show_former_bossbar.mcfunction new file mode 100644 index 00000000000..25f8282a181 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/show_former_bossbar.mcfunction @@ -0,0 +1,24 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/show_former_bossbar +# +# 前半戦Bossbar表示 +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +#> Val +# @private + #declare score_holder $CalcHealth + +# 前半戦Bossbar表示 + bossbar add asset:co_gem_former {"text":"絡繰仕掛の石像"} + bossbar set asset:co_gem_former players @a[distance=..80] + bossbar set asset:co_gem_former color pink + bossbar set asset:co_gem_former style notched_10 + bossbar set asset:co_gem_former max 1 + execute store result bossbar asset:co_gem_former value run scoreboard players get @s CO.EventTimer + +# HP最大値調整 + function api:mob/get_max_health + execute store result score @s CO.HealthOffset run data get storage api: Return.MaxHealth 1 + execute store result score $CalcHealth Temporary store result bossbar asset:co_gem_former max store result bossbar asset:co_gem_former value run data get storage api: Return.MaxHealth 0.6 + scoreboard players operation @s CO.HealthOffset -= $CalcHealth Temporary + scoreboard players reset $CalcHealth Temporary diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/show_shadow.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/show_shadow.mcfunction new file mode 100644 index 00000000000..fae0d8b17d5 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/show_shadow.mcfunction @@ -0,0 +1,11 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/show_shadow +# +# 影の表示 +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +# 影表示 + data modify entity @s interpolation_duration set value 5 + data modify entity @s start_interpolation set value -1 + data modify entity @s shadow_radius set value 6 + data modify entity @s shadow_strength set value 1f diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/sound.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/sound.mcfunction new file mode 100644 index 00000000000..ad63bd4d84c --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/sound.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/sound +# +# 駆動音 +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +# 効果音 + playsound block.piston.extend hostile @a ~ ~ ~ 2 0.9 + playsound block.grindstone.use hostile @a ~ ~ ~ 3 0.5 + playsound ui.stonecutter.take_result hostile @a ~ ~ ~ 3 0.5 diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/start_invulnerable.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/start_invulnerable.mcfunction new file mode 100644 index 00000000000..c77e2bd53a9 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/start_invulnerable.mcfunction @@ -0,0 +1,18 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/start_invulnerable +# +# 汎用処理 無敵化 +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +# bossbarの色変更 + execute store result storage asset:temp CO.MobUUID int 1 run scoreboard players get @s MobUUID + data modify storage asset:temp CO.Color set value "white" + function asset:mob/0456.gargo_ex_machina/tick/util/change_bossbar_color.m with storage asset:temp CO + data remove storage asset:temp CO + execute unless entity @s[tag=CO.IsLatter] run bossbar set asset:co_gem_former color white + +# 全Locatorを無敵化 + execute as @e[type=item_display,tag=CO.ModelRoot] run function animated_java:gargo_ex_machina/as_own_locator_entities {command:'function asset:mob/0456.gargo_ex_machina/tick/util/start_invulnerable_locator'} + +# 無敵化フラグ + tag @s add CO.IsInvulnerable diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/start_invulnerable_locator.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/start_invulnerable_locator.mcfunction new file mode 100644 index 00000000000..8c144564d92 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/start_invulnerable_locator.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/start_invulnerable_locator +# +# 汎用処理 無敵化 +# +# @within asset:mob/0456.gargo_ex_machina/tick/util/start_invulnerable + +# 無敵化 + data modify entity @s Invulnerable set value true + tag @s add Uninterferable diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/step_sound.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/step_sound.mcfunction new file mode 100644 index 00000000000..29553099884 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/step_sound.mcfunction @@ -0,0 +1,11 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/step_sound +# +# 足音 +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +# 演出 + playsound entity.ravager.step hostile @a ~ ~ ~ 2 0.7 + playsound entity.ravager.step hostile @a ~ ~ ~ 2 0.8 + particle block quartz_block ~ ~ ~ 1 0.1 1 0 15 force @a[distance=..80] + particle explosion ~ ~ ~ 1 0.1 1 0 2 force @a[distance=..80] diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/stop_all_animations.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/stop_all_animations.mcfunction new file mode 100644 index 00000000000..1784dbbbb89 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/stop_all_animations.mcfunction @@ -0,0 +1,11 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/stop_all_animations +# +# 全アニメーション停止 +# +# @within asset:mob/0456.gargo_ex_machina/tick/** + +# 行動停止 + function asset:mob/0456.gargo_ex_machina/tick/util/remove_animation_tag + +# アニメーション停止 + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] run function animated_java:gargo_ex_machina/animations/pause_all diff --git a/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/update_former_bossbar.mcfunction b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/update_former_bossbar.mcfunction new file mode 100644 index 00000000000..f9d6b76d003 --- /dev/null +++ b/Asset/data/asset/functions/mob/0456.gargo_ex_machina/tick/util/update_former_bossbar.mcfunction @@ -0,0 +1,15 @@ +#> asset:mob/0456.gargo_ex_machina/tick/util/update_former_bossbar +# +# 前半戦Bossbar更新 +# +# @within asset:mob/0456.gargo_ex_machina/hurt/ + +#> Val +# @private + #declare score_holder $Health + +# HP最大値調整 + function api:mob/get_health + execute store result score $Health Temporary run data get storage api: Return.Health 1 + execute store result bossbar asset:co_gem_former value run scoreboard players operation $Health Temporary -= @s CO.HealthOffset + scoreboard players reset $Health Temporary diff --git a/Asset/data/asset/functions/mob/alias/456/death.mcfunction b/Asset/data/asset/functions/mob/alias/456/death.mcfunction new file mode 100644 index 00000000000..3c88200adbb --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/456/death.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/456/death +# +# Mobの死亡時の処理のエイリアス +# +# @within asset_manager:mob/triggers/death/death.m + +# 本来の処理を呼び出す + function asset:mob/0456.gargo_ex_machina/death/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/456/hurt.mcfunction b/Asset/data/asset/functions/mob/alias/456/hurt.mcfunction new file mode 100644 index 00000000000..bb5ea897549 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/456/hurt.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/456/hurt +# +# Mobのダメージ時の処理のエイリアス +# +# @within asset_manager:mob/triggers/hurt/hurt.m + +# 本来の処理を呼び出す + function asset:mob/0456.gargo_ex_machina/hurt/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/456/init.mcfunction b/Asset/data/asset/functions/mob/alias/456/init.mcfunction new file mode 100644 index 00000000000..4e7a04f0fa5 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/456/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/456/init +# +# Init処理のエイリアス +# +# @within asset_manager:mob/triggers/init/init.m + +# 元のInit処理を呼び出す + function asset:mob/0456.gargo_ex_machina/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/456/register.mcfunction b/Asset/data/asset/functions/mob/alias/456/register.mcfunction new file mode 100644 index 00000000000..a97451dbe1c --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/456/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/456/register +# +# Mobのデータ指定処理のエイリアス +# +# @within asset_manager:mob/triggers/summon/register.m + +# 元の登録処理を呼び出す + function asset:mob/0456.gargo_ex_machina/register \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/456/remove.mcfunction b/Asset/data/asset/functions/mob/alias/456/remove.mcfunction new file mode 100644 index 00000000000..2ea648b435b --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/456/remove.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/456/remove +# +# Remove処理のエイリアス +# +# @within asset_manager:mob/remove/remove.m + +# 元のInit処理を呼び出す + function asset:mob/0456.gargo_ex_machina/remove/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/456/summon.mcfunction b/Asset/data/asset/functions/mob/alias/456/summon.mcfunction new file mode 100644 index 00000000000..fbbc618b686 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/456/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/456/summon +# +# Mob召喚処理のエイリアス +# +# @within asset_manager:mob/triggers/summon/summon.m + +# 本来の処理を呼び出す + function asset:mob/0456.gargo_ex_machina/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/456/tick.mcfunction b/Asset/data/asset/functions/mob/alias/456/tick.mcfunction new file mode 100644 index 00000000000..4b9d99b1556 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/456/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/456/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:mob/triggers/tick/tick.m + +# 元のTick処理を呼び出す + function asset:mob/0456.gargo_ex_machina/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2113.rectangle_announce/init/.mcfunction b/Asset/data/asset/functions/object/2113.rectangle_announce/init/.mcfunction index 043ab508590..0dc506a1e6b 100644 --- a/Asset/data/asset/functions/object/2113.rectangle_announce/init/.mcfunction +++ b/Asset/data/asset/functions/object/2113.rectangle_announce/init/.mcfunction @@ -9,3 +9,6 @@ # ToForward:trueなら、this.Scale[1]の半分をthis.translationZへ execute if data storage asset:context this{ToForward:true} store result storage asset:context this.TranslationZ float 0.05 run data get storage asset:context this.Scale[1] 10 + +# ViewRange設定 + execute if data storage asset:context this.ViewRange run data modify entity @s view_range set from storage asset:context this.ViewRange diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/_index.d.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/_index.d.mcfunction new file mode 100644 index 00000000000..3b48a673ad8 --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/_index.d.mcfunction @@ -0,0 +1,25 @@ +#> asset:object/2260.gem_attack_drone/_index.d +# @private + +#> tag +# @within function asset:object/2260.gem_attack_drone/** + #declare tag CO.Object + #declare tag CO.Drone + #declare tag CO.Drone.Remove + #declare tag 2260.Model + #declare tag 2260.Model.Init + #declare tag 2260.Model.Target + #declare tag 2260.Phase.Idle + #declare tag 2260.Phase.Attack + #declare tag 2260.Phase.Start + #declare tag 2260.IsTarget + #declare tag 2260.TargetPlayer + #declare function animated_java:gem_attack_drone/summon + #declare function animated_java:gem_attack_drone/animations/summon/tween + #declare function animated_java:gem_attack_drone/animations/idle/tween + #declare function animated_java:gem_attack_drone/animations/attack_start/tween + #declare function animated_java:gem_attack_drone/animations/attack/tween + #declare function animated_java:gem_attack_drone/remove/this + #declare tag 2272.Line + #declare tag 2272.Line.Target + #declare objective 2272.ObjectId diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/init/.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/init/.mcfunction new file mode 100644 index 00000000000..1c46ab34184 --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/init/.mcfunction @@ -0,0 +1,29 @@ +#> asset:object/2260.gem_attack_drone/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/2260/init + +# 実行角度に合わせる + tp @s ~ ~ ~ ~ 0 + +# ID割り当て + execute store result score @s CO.ObjectId run data get storage asset:context this.ObjectId + +# モデル召喚 + function asset:object/2260.gem_attack_drone/init/animated_java + +# 仮指定 + scoreboard players set @s 2260.IdleTime 80 + +# IdleTime + +# ターゲット有無 + execute if data storage asset:context this{IsTarget:true} run tag @s add 2260.IsTarget + +# タイマー計算 + execute store result score @s 2260.PredictionTime run scoreboard players get @s 2260.IdleTime + scoreboard players remove @s 2260.PredictionTime 30 + +# 追従用設定 + execute if entity @s[tag=2260.IsTarget] store result storage asset:context this.TargetPlayerId int 1 run scoreboard players get @a[tag=!PlayerShouldInvulnerable,distance=..80,sort=random,limit=1] UserID diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/init/animated_java.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/init/animated_java.mcfunction new file mode 100644 index 00000000000..8f8a3cbd842 --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/init/animated_java.mcfunction @@ -0,0 +1,12 @@ +#> asset:object/2260.gem_attack_drone/init/animated_java +# +# Objectのinit時の処理 +# +# @within asset:object/2260.gem_attack_drone/init/ + +# モデル召喚 + function animated_java:gem_attack_drone/summon {args: {animation: 'summon'}} + +# ID割り当て + scoreboard players operation @e[type=item_display,tag=2260.Model,tag=!2260.Model.Init,distance=..10,sort=nearest,limit=1] CO.ObjectId = @s CO.ObjectId + tag @e[type=item_display,tag=2260.Model,tag=!2260.Model.Init,distance=..10,sort=nearest,limit=1] add 2260.Model.Init diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/load.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/load.mcfunction new file mode 100644 index 00000000000..9047c0955e5 --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/load.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2260.gem_attack_drone/load +# +# Objectに利用するスコアボード等の初期化処理 +# +# @within tag/function asset:object/load + +#> 定義類はここに +# @within function asset:object/2260.gem_attack_drone/** + scoreboard objectives add 2260.IdleTime dummy + scoreboard objectives add 2260.PredictionTime dummy diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/register.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/register.mcfunction new file mode 100644 index 00000000000..9f34a8389d7 --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2260.gem_attack_drone/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2260/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 2260 +# フィールド(オプション) + # data modify storage asset:object Field.myValue set value \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/summon/.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/summon/.mcfunction new file mode 100644 index 00000000000..4ce787485ae --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2260.gem_attack_drone/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2260/summon + +# 元となるEntityを召喚する + summon item_display ~ ~ ~ {Tags:["ObjectInit","CO.Object","2260.Phase.Start"]} diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/summon/debug.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/summon/debug.mcfunction new file mode 100644 index 00000000000..03c5d1077c3 --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2260.gem_attack_drone/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 2260 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/.mcfunction new file mode 100644 index 00000000000..11bd0d17667 --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/.mcfunction @@ -0,0 +1,25 @@ +#> asset:object/2260.gem_attack_drone/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2260/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 +# モデルを紐づけ + function asset:object/2260.gem_attack_drone/tick/link_model.m with storage asset:context this + +# 登場 + execute if entity @s[tag=2260.Phase.Start] run function asset:object/2260.gem_attack_drone/tick/event_start +# 待機 + execute if entity @s[tag=2260.Phase.Idle] run function asset:object/2260.gem_attack_drone/tick/event_idle +# 攻撃 + execute if entity @s[tag=2260.Phase.Attack] run function asset:object/2260.gem_attack_drone/tick/event_attack + +# 消去 + execute if entity @s[tag=CO.Drone.Remove] run function asset:object/2260.gem_attack_drone/tick/remove + +# モデルを自身の位置に合わせる + tp @e[type=item_display,tag=2260.Model.Target,distance=..80,sort=nearest,limit=1] ~ ~ ~ ~ ~ +# 紐づけ解除 + tag @e[type=item_display,tag=2260.Model.Target,distance=..80,sort=nearest,limit=1] remove 2260.Model.Target diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/attack.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/attack.mcfunction new file mode 100644 index 00000000000..c00e5acda91 --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/attack.mcfunction @@ -0,0 +1,28 @@ +#> asset:object/2260.gem_attack_drone/tick/attack +# +# Objectのtick時の処理 +# +# @within asset:object/2260.gem_attack_drone/tick/event_attack + +# 一定間隔で攻撃 + scoreboard players operation $Interval Temporary = @s General.Object.Tick + scoreboard players operation $Interval Temporary %= $4 Const + execute unless score $Interval Temporary matches 0 run return run scoreboard players reset $Interval Temporary + scoreboard players reset $Interval Temporary + +# ダメージ + # ヒット判定 + data modify storage lib: args.dx set value 4 + data modify storage lib: args.dy set value 5 + data modify storage lib: args.dz set value 3 + data modify storage lib: args.selector set value "@a[tag=!PlayerShouldInvulnerable,distance=..50]" + execute positioned ^ ^ ^3 run function lib:rotatable_dxyz/m with storage lib: args + # 攻撃 + data modify storage api: Argument.Damage set from storage asset:context this.Damage.Amount + data modify storage api: Argument.AttackType set from storage asset:context this.Damage.Type + data modify storage api: Argument.ElementType set from storage asset:context this.Damage.Element + data modify storage api: Argument.MobUUID set from storage asset:context this.MobUUID + function api:damage/modifier_manual + execute as @a[tag=DXYZ] run function api:damage/ + function api:damage/reset + tag @a remove DXYZ diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/event_attack.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/event_attack.mcfunction new file mode 100644 index 00000000000..5c3a0653827 --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/event_attack.mcfunction @@ -0,0 +1,27 @@ +#> asset:object/2260.gem_attack_drone/tick/event_attack +# +# Objectのtick時の処理 +# +# @within asset:object/2260.gem_attack_drone/tick/ + +# アニメーション再生 + execute if entity @s[scores={General.Object.Tick=1}] as @e[type=item_display,tag=2260.Model.Target,distance=..30,sort=nearest,limit=1] at @s run function animated_java:gem_attack_drone/animations/attack_start/tween {duration:1, to_frame: 1} + execute if entity @s[scores={General.Object.Tick=27}] as @e[type=item_display,tag=2260.Model.Target,distance=..30,sort=nearest,limit=1] at @s run function animated_java:gem_attack_drone/animations/attack/tween {duration:1, to_frame: 1} + +# 演出 + execute if entity @s[scores={General.Object.Tick=1}] run playsound block.piston.contract hostile @a ~ ~ ~ 2 0.8 + execute if entity @s[scores={General.Object.Tick=20}] run playsound entity.breeze.jump hostile @a ~ ~ ~ 2 0.7 + execute if entity @s[scores={General.Object.Tick=23..}] run particle cloud ^4 ^ ^ 0.1 0.1 0.1 0.05 1 + execute if entity @s[scores={General.Object.Tick=23..}] run particle cloud ^-4 ^ ^ 0.1 0.1 0.1 0.05 1 + execute if entity @s[scores={General.Object.Tick=20..}] run particle block quartz_block ^ ^ ^ 0.1 0.1 0.1 0.05 1 + +# 移動 + execute if entity @s[scores={General.Object.Tick=1..5}] run tp @s ^ ^ ^-0.5 + execute if entity @s[scores={General.Object.Tick=20..27}] run tp @s ^ ^ ^0.8 + execute if entity @s[scores={General.Object.Tick=28..}] run tp @s ^ ^ ^1.5 + +# 攻撃 + execute if entity @s[scores={General.Object.Tick=20..}] run function asset:object/2260.gem_attack_drone/tick/attack + +# 消去 + execute if entity @s[scores={General.Object.Tick=80..}] run tag @s add CO.Drone.Remove diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/event_idle.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/event_idle.mcfunction new file mode 100644 index 00000000000..8aaffd4de4c --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/event_idle.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2260.gem_attack_drone/tick/event_idle +# +# Objectのtick時の処理 +# +# @within asset:object/2260.gem_attack_drone/tick/ + +# アニメーション再生 + execute if entity @s[scores={General.Object.Tick=1}] as @e[type=item_display,tag=2260.Model.Target,distance=..30,sort=nearest,limit=1] at @s run function animated_java:gem_attack_drone/animations/idle/tween {duration:1, to_frame: 1} + +# プレイヤーターゲット処理 + execute if entity @s[tag=2260.IsTarget] if score @s General.Object.Tick matches 1 run function asset:object/2260.gem_attack_drone/tick/summon_target_line + execute if entity @s[tag=2260.IsTarget] run function asset:object/2260.gem_attack_drone/tick/link_target_line.m with storage asset:context this + execute if entity @s[tag=2260.IsTarget] if score @s General.Object.Tick = @s 2260.PredictionTime run function asset:object/2260.gem_attack_drone/tick/remove_target_line.m with storage asset:context this + execute if entity @s[tag=2260.IsTarget] if score @s General.Object.Tick <= @s 2260.PredictionTime at @s run function asset:object/2260.gem_attack_drone/tick/rotate_to_player.m with storage asset:context this + +# 予告 + execute if score @s General.Object.Tick = @s 2260.PredictionTime at @s run function asset:object/2260.gem_attack_drone/tick/prediction + +# idleに移行 + execute if score @s General.Object.Tick >= @s 2260.IdleTime run function asset:object/2260.gem_attack_drone/tick/start_attack diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/event_start.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/event_start.mcfunction new file mode 100644 index 00000000000..1cd8e790c5a --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/event_start.mcfunction @@ -0,0 +1,17 @@ +#> asset:object/2260.gem_attack_drone/tick/event_start +# +# Objectのtick時の処理 +# +# @within asset:object/2260.gem_attack_drone/tick/ + +# アニメーション再生 + execute if entity @s[scores={General.Object.Tick=1}] as @e[type=item_display,tag=2260.Model.Target,distance=..30,sort=nearest,limit=1] at @s run function animated_java:gem_attack_drone/animations/summon/tween {duration:1, to_frame: 1} + +# 演出 + execute if entity @s[scores={General.Object.Tick=15}] run playsound entity.ravager.step hostile @a ~ ~ ~ 2 0.7 + execute if entity @s[scores={General.Object.Tick=15}] run playsound entity.ravager.step hostile @a ~ ~ ~ 2 0.6 + execute if entity @s[scores={General.Object.Tick=15}] run particle block quartz_block ~ ~0.2 ~ 1.5 0.1 1.5 0 30 + execute if entity @s[scores={General.Object.Tick=28}] run playsound block.piston.contract hostile @a ~ ~ ~ 2 0.8 + execute if entity @s[scores={General.Object.Tick=50}] run playsound block.piston.contract hostile @a ~ ~ ~ 2 0.8 +# idleに移行 + execute if score @s General.Object.Tick matches 50.. run function asset:object/2260.gem_attack_drone/tick/start_idle diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/link_model.m.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/link_model.m.mcfunction new file mode 100644 index 00000000000..8979e768ae6 --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/link_model.m.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2260.gem_attack_drone/tick/link_model.m +# +# Objectのtick時の処理 +# +# @within asset:object/2260.gem_attack_drone/tick/ + +# 一定間隔で攻撃 + $execute as @e[type=item_display,tag=2260.Model,distance=..30] if score @s CO.ObjectId matches $(ObjectId) run tag @s add 2260.Model.Target diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/link_target_line.m.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/link_target_line.m.mcfunction new file mode 100644 index 00000000000..e5132a1fbf1 --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/link_target_line.m.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/2260.gem_attack_drone/tick/link_target_line.m +# +# Objectのtick時の処理 +# +# @within asset:object/2260.gem_attack_drone/tick/event_idle +# @within asset:object/2260.gem_attack_drone/tick/event_move + +# 線紐づけ、移動 + $execute as @e[type=item_display,tag=2272.Line,distance=..30] if score @s 2272.ObjectId matches $(ObjectId) run tag @s add 2272.Line.Target + execute at @s run tp @e[type=item_display,tag=2272.Line.Target,distance=..30] ^ ^3 ^0.4 0 0 + tag @e[type=item_display,tag=2272.Line.Target,distance=..30] remove 2272.Line.Target diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/prediction.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/prediction.mcfunction new file mode 100644 index 00000000000..47a92723651 --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/prediction.mcfunction @@ -0,0 +1,14 @@ +#> asset:object/2260.gem_attack_drone/tick/prediction +# +# Objectのtick時の処理 +# +# @within asset:object/2260.gem_attack_drone/tick/event_idle + +# 予告 + data modify storage api: Argument.ID set value 2113 + data modify storage api: Argument.FieldOverride.RotationX set from entity @s Rotation[0] + data modify storage api: Argument.FieldOverride.Color set value 3381759 + data modify storage api: Argument.FieldOverride.Scale set value [8f,80f] + data modify storage api: Argument.FieldOverride.Interpolation set value 10 + data modify storage api: Argument.FieldOverride.Tick set value 50 + execute positioned ^ ^0.2 ^ rotated ~ 0 run function api:object/summon diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/remove.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/remove.mcfunction new file mode 100644 index 00000000000..14a37296bd2 --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/remove.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/2260.gem_attack_drone/tick/remove +# +# Objectのtick時の処理 +# +# @within asset:object/2260.gem_attack_drone/tick/ + +# モデル消去 + execute as @e[type=item_display,tag=2260.Model.Target,distance=..30,sort=nearest,limit=1] run function animated_java:gem_attack_drone/remove/this + +# 自身を消去 + kill @s diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/remove_target_line.m.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/remove_target_line.m.mcfunction new file mode 100644 index 00000000000..4fd948a3a98 --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/remove_target_line.m.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/2262.gem_panjan_drone/tick/remove_target_line.m +# +# Objectのtick時の処理 +# +# @within asset:object/2262.gem_panjan_drone/tick/event_move + +# 線紐づけ + $execute as @e[type=item_display,tag=2272.Line,distance=..30] if score @s 2272.ObjectId matches $(ObjectId) run tag @s add 2272.Line.Target + kill @e[type=item_display,tag=2272.Line.Target,distance=..30] diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/rotate_to_player.m.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/rotate_to_player.m.mcfunction new file mode 100644 index 00000000000..2d63f329a6e --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/rotate_to_player.m.mcfunction @@ -0,0 +1,14 @@ +#> asset:object/2260.gem_attack_drone/tick/rotate_to_player.m +# +# Objectのtick時の処理 +# +# @within asset:object/2260.gem_attack_drone/tick/event_idle + +# ターゲット設定 + $tag @a[scores={UserID=$(TargetPlayerId)}] add 2260.TargetPlayer + +# 対象の方を向く + execute rotated ~ 0 positioned ^ ^ ^-1 facing entity @p[tag=2260.TargetPlayer] feet rotated ~ 0 positioned ^ ^ ^-1 facing entity @s feet positioned as @s positioned ^ ^ ^-1 rotated as @s rotated ~ 0 positioned ^ ^ ^-1 facing entity @s feet positioned as @s run tp @s ^ ^ ^ ~ 0 + +# 終了 + tag @a[tag=2260.TargetPlayer] remove 2260.TargetPlayer diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/start_attack.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/start_attack.mcfunction new file mode 100644 index 00000000000..2dcd8b231fa --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/start_attack.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2260.gem_attack_drone/tick/start_attack +# +# Objectのtick時の処理 +# +# @within asset:object/2260.gem_attack_drone/tick/event_idle + +# idleに移行 + tag @s remove 2260.Phase.Idle + tag @s add 2260.Phase.Attack + scoreboard players set @s General.Object.Tick 0 diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/start_idle.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/start_idle.mcfunction new file mode 100644 index 00000000000..2b275c1546e --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/start_idle.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2260.gem_attack_drone/tick/start_idle +# +# Objectのtick時の処理 +# +# @within asset:object/2260.gem_attack_drone/tick/event_start + +# idleに移行 + tag @s remove 2260.Phase.Start + tag @s add 2260.Phase.Idle + scoreboard players set @s General.Object.Tick 0 diff --git a/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/summon_target_line.mcfunction b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/summon_target_line.mcfunction new file mode 100644 index 00000000000..f337eb5be3d --- /dev/null +++ b/Asset/data/asset/functions/object/2260.gem_attack_drone/tick/summon_target_line.mcfunction @@ -0,0 +1,13 @@ +#> asset:object/2262.gem_panjan_drone/tick/summon_target_line +# +# Objectのtick時の処理 +# +# @within asset:object/2262.gem_panjan_drone/tick/event_idle + +# ターゲット線召喚 + data modify storage api: Argument.ID set value 2272 + data modify storage api: Argument.FieldOverride.TargetPlayerId set from storage asset:context this.TargetPlayerId + data modify storage api: Argument.FieldOverride.Tick set value 400 + data modify storage api: Argument.FieldOverride.Color set value 16758123 + data modify storage api: Argument.FieldOverride.ObjectId set from storage asset:context this.ObjectId + execute positioned ~ ~3 ~ run function api:object/summon diff --git a/Asset/data/asset/functions/object/2261.gem_yeeter_drone/_index.d.mcfunction b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/_index.d.mcfunction new file mode 100644 index 00000000000..7ce4980369f --- /dev/null +++ b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/_index.d.mcfunction @@ -0,0 +1,24 @@ +#> asset:object/2261.gem_yeeter_drone/_index.d +# @private + +#> tag +# @within function asset:object/2261.gem_yeeter_drone/** + #declare tag CO.Object + #declare tag CO.Drone + #declare tag CO.Drone.Remove + #declare tag 2261.Model + #declare tag 2261.Model.Init + #declare tag 2261.Model.Target + #declare tag 2261.Phase.Start + #declare tag 2261.Phase.Idle + #declare tag 2261.Phase.Attack + #declare tag 2261.Phase.Remove + #declare tag 2261.IsRotate + #declare tag 2261.IsRotate.Inverse + #declare function animated_java:gem_tnt_drone/summon + #declare function animated_java:gem_tnt_drone/animations/summon/tween + #declare function animated_java:gem_tnt_drone/animations/idle/tween + #declare function animated_java:gem_tnt_drone/animations/attack_start/tween + #declare function animated_java:gem_tnt_drone/animations/attack/tween + #declare function animated_java:gem_tnt_drone/animations/remove/tween + #declare function animated_java:gem_tnt_drone/remove/this diff --git a/Asset/data/asset/functions/object/2261.gem_yeeter_drone/init/.mcfunction b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/init/.mcfunction new file mode 100644 index 00000000000..2d7ba6c4d89 --- /dev/null +++ b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/init/.mcfunction @@ -0,0 +1,29 @@ +#> asset:object/2261.gem_yeeter_drone/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/2261/init + +# 実行角度に合わせる + tp @s ~ ~ ~ ~ 0 + +# ID割り当て + execute store result score @s CO.ObjectId run data get storage asset:context this.ObjectId + +# モデル召喚 + function asset:object/2261.gem_yeeter_drone/init/animated_java + +# 仮 + scoreboard players set @s 2261.IdleTime 100 + # tag @s add 2261.IsRotate.Inverse + +# 回転有無 + execute if data storage asset:context this{IsRotate:true} run tag @s add 2261.IsRotate + execute if data storage asset:context this{IsRotateInverse:true} run tag @s add 2261.IsRotate.Inverse + +# タイマー計算 + # IdleTimeは予備動作を考慮して短縮 + scoreboard players remove @s 2261.IdleTime 40 + execute if score @s 2261.IdleTime matches ..-1 run scoreboard players set @s 2261.IdleTime 0 + execute store result score @s 2261.PredictionTime run scoreboard players get @s 2261.IdleTime + scoreboard players remove @s 2261.PredictionTime 30 diff --git a/Asset/data/asset/functions/object/2261.gem_yeeter_drone/init/animated_java.mcfunction b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/init/animated_java.mcfunction new file mode 100644 index 00000000000..01d6fbb76ef --- /dev/null +++ b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/init/animated_java.mcfunction @@ -0,0 +1,12 @@ +#> asset:object/2261.gem_yeeter_drone/init/animated_java +# +# Objectのinit時の処理 +# +# @within asset:object/2261.gem_yeeter_drone/init/ + +# モデル召喚 + function animated_java:gem_tnt_drone/summon {args: {animation: 'summon'}} + +# ID割り当て + scoreboard players operation @e[type=item_display,tag=2261.Model,tag=!2261.Model.Init,distance=..10,sort=nearest,limit=1] CO.ObjectId = @s CO.ObjectId + tag @e[type=item_display,tag=2261.Model,tag=!2261.Model.Init,distance=..10,sort=nearest,limit=1] add 2261.Model.Init diff --git a/Asset/data/asset/functions/object/2261.gem_yeeter_drone/load.mcfunction b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/load.mcfunction new file mode 100644 index 00000000000..7e86443ad28 --- /dev/null +++ b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/load.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/2261.gem_yeeter_drone/load +# +# Objectに利用するスコアボード等の初期化処理 +# +# @within tag/function asset:object/load + +#> 定義類はここに +# @within function asset:object/2261.gem_yeeter_drone/** + scoreboard objectives add 2261.IdleTime dummy + scoreboard objectives add 2261.PredictionTime dummy + scoreboard objectives add 2261.AttackInterval dummy diff --git a/Asset/data/asset/functions/object/2261.gem_yeeter_drone/register.mcfunction b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/register.mcfunction new file mode 100644 index 00000000000..bdd027e3861 --- /dev/null +++ b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2261.gem_yeeter_drone/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2261/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 2261 +# フィールド(オプション) + # data modify storage asset:object Field.myValue set value \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2261.gem_yeeter_drone/summon/.mcfunction b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/summon/.mcfunction new file mode 100644 index 00000000000..9c684152ef9 --- /dev/null +++ b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2261.gem_yeeter_drone/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2261/summon + +# 元となるEntityを召喚する + summon item_display ~ ~ ~ {Tags:["ObjectInit","CO.Object","2261.Phase.Start"]} diff --git a/Asset/data/asset/functions/object/2261.gem_yeeter_drone/summon/debug.mcfunction b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/summon/debug.mcfunction new file mode 100644 index 00000000000..6a354845761 --- /dev/null +++ b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2261.gem_yeeter_drone/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 2261 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/.mcfunction b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/.mcfunction new file mode 100644 index 00000000000..64c865606b5 --- /dev/null +++ b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/.mcfunction @@ -0,0 +1,27 @@ +#> asset:object/2261.gem_yeeter_drone/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2261/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 +# モデル紐づけ + function asset:object/2261.gem_yeeter_drone/tick/link_model.m with storage asset:context this + +# 登場 + execute if entity @s[tag=2261.Phase.Start] run function asset:object/2261.gem_yeeter_drone/tick/event_start +# 待機 + execute if entity @s[tag=2261.Phase.Idle] run function asset:object/2261.gem_yeeter_drone/tick/event_idle +# 攻撃 + execute if entity @s[tag=2261.Phase.Attack] run function asset:object/2261.gem_yeeter_drone/tick/event_attack +# 消去 + execute if entity @s[tag=2261.Phase.Remove] run function asset:object/2261.gem_yeeter_drone/tick/event_remove + +# 消去 + execute if entity @s[tag=CO.Drone.Remove] run function asset:object/2261.gem_yeeter_drone/tick/remove + +# モデルを自身の位置に合わせる + tp @e[type=item_display,tag=2261.Model.Target,distance=..80,sort=nearest,limit=1] ~ ~5 ~ ~ ~ +# 紐づけ解除 + tag @e[type=item_display,tag=2261.Model.Target,distance=..80,sort=nearest,limit=1] remove 2261.Model.Target diff --git a/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/attack.m.mcfunction b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/attack.m.mcfunction new file mode 100644 index 00000000000..55e08d24714 --- /dev/null +++ b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/attack.m.mcfunction @@ -0,0 +1,15 @@ +#> asset:object/2261.gem_yeeter_drone/tick/attack +# +# Objectのtick時の処理 +# +# @within asset:object/2261.gem_yeeter_drone/tick/event_attack + +# 空中には設置しない + execute if block ~ ~-6 ~ #lib:no_collision run return 0 + +# TNT設置 + data modify storage api: Argument.ID set value 2270 + data modify storage api: Argument.FieldOverride.MobUUID set from storage asset:context this.MobUUID + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage + $data modify storage api: Argument.FieldOverride.IsNoPrediction set value $(NoPrediction) + function api:object/summon diff --git a/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/event_attack.mcfunction b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/event_attack.mcfunction new file mode 100644 index 00000000000..89c487bb5f5 --- /dev/null +++ b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/event_attack.mcfunction @@ -0,0 +1,39 @@ +#> asset:object/2261.gem_yeeter_drone/tick/event_attack +# +# Objectのtick時の処理 +# +# @within asset:object/2261.gem_yeeter_drone/tick/ + +# アニメーション再生 + execute if entity @s[scores={General.Object.Tick=1}] as @e[type=item_display,tag=2261.Model.Target,distance=..30,sort=nearest,limit=1] at @s run function animated_java:gem_tnt_drone/animations/attack_start/tween {duration:1, to_frame: 1} + execute if entity @s[scores={General.Object.Tick=40}] as @e[type=item_display,tag=2261.Model.Target,distance=..30,sort=nearest,limit=1] at @s run function animated_java:gem_tnt_drone/animations/attack/tween {duration:1, to_frame: 1} + +# 演出 + execute if entity @s[scores={General.Object.Tick=1}] run playsound entity.phantom.flap hostile @a ~ ~ ~ 2 1 + execute if entity @s[scores={General.Object.Tick=1}] run playsound entity.phantom.flap hostile @a ~ ~ ~ 2 1 + execute if entity @s[scores={General.Object.Tick=35}] run playsound entity.breeze.jump hostile @a ~ ~ ~ 2 0.7 + +# 移動 + execute if entity @s[scores={General.Object.Tick=1..20}] run tp @s ^ ^ ^-0.05 + execute if entity @s[tag=!2261.IsRotate,tag=!2261.IsRotate.Inverse,scores={General.Object.Tick=36..40}] run tp @s ^ ^ ^0.2 + execute if entity @s[tag=!2261.IsRotate,tag=!2261.IsRotate.Inverse,scores={General.Object.Tick=41..}] run tp @s ^ ^ ^0.4 + execute if predicate api:global_vars/difficulty/max/2_hard if entity @s[tag=2261.IsRotate,scores={General.Object.Tick=35..40}] at @s run tp @s ^ ^ ^0.1308 ~0.375 ~ + execute if predicate api:global_vars/difficulty/max/2_hard if entity @s[tag=2261.IsRotate,scores={General.Object.Tick=41..}] at @s run tp @s ^ ^ ^0.2616 ~0.75 ~ + execute if predicate api:global_vars/difficulty/max/2_hard if entity @s[tag=2261.IsRotate.Inverse,scores={General.Object.Tick=35..40}] at @s run tp @s ^ ^ ^0.1308 ~-0.375 ~ + execute if predicate api:global_vars/difficulty/max/2_hard if entity @s[tag=2261.IsRotate.Inverse,scores={General.Object.Tick=41..}] at @s run tp @s ^ ^ ^0.2616 ~-0.75 ~ + + execute if predicate api:global_vars/difficulty/min/3_blessless if entity @s[tag=2261.IsRotate,scores={General.Object.Tick=35..40}] at @s run tp @s ^ ^ ^0.157 ~0.45 ~ + execute if predicate api:global_vars/difficulty/min/3_blessless if entity @s[tag=2261.IsRotate,scores={General.Object.Tick=41..80}] at @s run tp @s ^ ^ ^0.314 ~0.9 ~ + execute if predicate api:global_vars/difficulty/min/3_blessless if entity @s[tag=2261.IsRotate,scores={General.Object.Tick=81..}] at @s run tp @s ^ ^ ^0.471 ~1.35 ~ + execute if predicate api:global_vars/difficulty/min/3_blessless if entity @s[tag=2261.IsRotate.Inverse,scores={General.Object.Tick=35..40}] at @s run tp @s ^ ^ ^0.157 ~-0.45 ~ + execute if predicate api:global_vars/difficulty/min/3_blessless if entity @s[tag=2261.IsRotate.Inverse,scores={General.Object.Tick=41..80}] at @s run tp @s ^ ^ ^0.314 ~-0.9 ~ + execute if predicate api:global_vars/difficulty/min/3_blessless if entity @s[tag=2261.IsRotate.Inverse,scores={General.Object.Tick=81..}] at @s run tp @s ^ ^ ^0.471 ~-1.35 ~ + +# 攻撃 + execute if entity @s[scores={General.Object.Tick=40..}] run scoreboard players add @s 2261.AttackInterval 1 + execute if entity @s[scores={2261.AttackInterval=40..}] run scoreboard players set @s 2261.AttackInterval 0 + execute if entity @s[scores={2261.AttackInterval=1,General.Object.Tick=..44}] positioned ~ ~5 ~ run function asset:object/2261.gem_yeeter_drone/tick/attack.m {NoPrediction:"true"} + execute if entity @s[scores={2261.AttackInterval=1,General.Object.Tick=45..}] positioned ~ ~5 ~ run function asset:object/2261.gem_yeeter_drone/tick/attack.m {NoPrediction:"false"} + +# 消去 + execute if entity @s[scores={General.Object.Tick=300..}] run function asset:object/2261.gem_yeeter_drone/tick/start_remove diff --git a/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/event_idle.mcfunction b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/event_idle.mcfunction new file mode 100644 index 00000000000..1ea946a5c3e --- /dev/null +++ b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/event_idle.mcfunction @@ -0,0 +1,14 @@ +#> asset:object/2261.gem_yeeter_drone/tick/event_idle +# +# Objectのtick時の処理 +# +# @within asset:object/2261.gem_yeeter_drone/tick/ + +# アニメーション再生 + execute if entity @s[scores={General.Object.Tick=1}] as @e[type=item_display,tag=2261.Model.Target,distance=..30,sort=nearest,limit=1] at @s run function animated_java:gem_tnt_drone/animations/idle/tween {duration:1, to_frame: 1} + +# 予告 + execute if score @s General.Object.Tick = @s 2261.PredictionTime run function asset:object/2261.gem_yeeter_drone/tick/prediction + +# idleに移行 + execute if score @s General.Object.Tick >= @s 2261.IdleTime run function asset:object/2261.gem_yeeter_drone/tick/start_attack diff --git a/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/event_remove.mcfunction b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/event_remove.mcfunction new file mode 100644 index 00000000000..aede3c80230 --- /dev/null +++ b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/event_remove.mcfunction @@ -0,0 +1,15 @@ +#> asset:object/2261.gem_yeeter_drone/tick/event_remove +# +# Objectのtick時の処理 +# +# @within asset:object/2261.gem_yeeter_drone/tick/ + +# アニメーション再生 + execute if entity @s[scores={General.Object.Tick=1}] as @e[type=item_display,tag=2261.Model.Target,distance=..30,sort=nearest,limit=1] at @s run function animated_java:gem_tnt_drone/animations/remove/tween {duration:1, to_frame: 1} + +# 演出 + execute if entity @s[scores={General.Object.Tick=1}] run playsound entity.phantom.flap hostile @a ~ ~ ~ 2 1 + execute if entity @s[scores={General.Object.Tick=1}] run playsound entity.phantom.flap hostile @a ~ ~ ~ 2 1 + +# 消去 + execute if entity @s[scores={General.Object.Tick=20..}] run tag @s add CO.Drone.Remove diff --git a/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/event_start.mcfunction b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/event_start.mcfunction new file mode 100644 index 00000000000..6464a715611 --- /dev/null +++ b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/event_start.mcfunction @@ -0,0 +1,19 @@ +#> asset:object/2261.gem_yeeter_drone/tick/event_start +# +# Objectのtick時の処理 +# +# @within asset:object/2261.gem_yeeter_drone/tick/ + +# アニメーション再生 + execute if entity @s[scores={General.Object.Tick=1}] as @e[type=item_display,tag=2261.Model.Target,distance=..30,sort=nearest,limit=1] at @s run function animated_java:gem_tnt_drone/animations/summon/tween {duration:1, to_frame: 1} + +# 演出 + execute if entity @s[scores={General.Object.Tick=15}] run playsound entity.phantom.flap hostile @a ~ ~ ~ 2 1 + execute if entity @s[scores={General.Object.Tick=15}] run playsound entity.phantom.flap hostile @a ~ ~ ~ 2 1 + # execute if entity @s[scores={General.Object.Tick=15}] run playsound entity.ravager.step hostile @a ~ ~ ~ 2 0.6 + # execute if entity @s[scores={General.Object.Tick=15}] run particle block quartz_block ~ ~0.2 ~ 1.5 0.1 1.5 0 30 + # execute if entity @s[scores={General.Object.Tick=28}] run playsound block.piston.contract hostile @a ~ ~ ~ 2 0.8 + # execute if entity @s[scores={General.Object.Tick=50}] run playsound block.piston.contract hostile @a ~ ~ ~ 2 0.8 + +# idleに移行 + execute if score @s General.Object.Tick matches 26.. run function asset:object/2261.gem_yeeter_drone/tick/start_idle diff --git a/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/link_model.m.mcfunction b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/link_model.m.mcfunction new file mode 100644 index 00000000000..bb2ef380611 --- /dev/null +++ b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/link_model.m.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2261.gem_yeeter_drone/tick/link_model.m +# +# Objectのtick時の処理 +# +# @within asset:object/2261.gem_yeeter_drone/tick/ + +# 一定間隔で攻撃 + $execute as @e[type=item_display,tag=2261.Model,distance=..30] if score @s CO.ObjectId matches $(ObjectId) run tag @s add 2261.Model.Target diff --git a/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/prediction.mcfunction b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/prediction.mcfunction new file mode 100644 index 00000000000..e942a99b5a2 --- /dev/null +++ b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/prediction.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2261.gem_yeeter_drone/tick/prediction +# +# Objectのtick時の処理 +# +# @within asset:object/2261.gem_yeeter_drone/tick/event_idle +# @private + #declare score_holder $PredictionTime + +# 予告 + data modify storage api: Argument.ID set value 2271 + data modify storage api: Argument.FieldOverride.Color set value 3381759 + data modify storage api: Argument.FieldOverride.TextColor set value "#ffcf80" + data modify storage api: Argument.FieldOverride.Scale set value [24f, 24f, 0.05f] + scoreboard players operation $PredictionTime Global = @s 2261.IdleTime + scoreboard players operation $PredictionTime Global -= @s 2261.PredictionTime + # 攻撃までの予備動作が40なのを考慮 + scoreboard players add $PredictionTime Global 40 + # TNTのtickが60なのを考慮 + execute store result storage api: Argument.FieldOverride.Tick int 1 run scoreboard players add $PredictionTime Global 60 + execute rotated ~ 0 positioned ~ ~0.2 ~ run function api:object/summon diff --git a/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/remove.mcfunction b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/remove.mcfunction new file mode 100644 index 00000000000..7ad18751811 --- /dev/null +++ b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/remove.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/2261.gem_yeeter_drone/tick/remove +# +# Objectのtick時の処理 +# +# @within asset:object/2261.gem_yeeter_drone/tick/ + +# モデル消去 + execute as @e[type=item_display,tag=2261.Model.Target,distance=..30,sort=nearest,limit=1] run function animated_java:gem_tnt_drone/remove/this + +# 自身を消去 + kill @s diff --git a/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/start_attack.mcfunction b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/start_attack.mcfunction new file mode 100644 index 00000000000..649a4509376 --- /dev/null +++ b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/start_attack.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2261.gem_yeeter_drone/tick/start_attack +# +# Objectのtick時の処理 +# +# @within asset:object/2261.gem_yeeter_drone/tick/event_idle + +# idleに移行 + tag @s remove 2261.Phase.Idle + tag @s add 2261.Phase.Attack + scoreboard players set @s General.Object.Tick 0 diff --git a/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/start_idle.mcfunction b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/start_idle.mcfunction new file mode 100644 index 00000000000..414ed2f6b63 --- /dev/null +++ b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/start_idle.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2261.gem_yeeter_drone/tick/start_idle +# +# Objectのtick時の処理 +# +# @within asset:object/2261.gem_yeeter_drone/tick/event_start + +# idleに移行 + tag @s remove 2261.Phase.Start + tag @s add 2261.Phase.Idle + scoreboard players set @s General.Object.Tick 0 diff --git a/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/start_remove.mcfunction b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/start_remove.mcfunction new file mode 100644 index 00000000000..074ef489de1 --- /dev/null +++ b/Asset/data/asset/functions/object/2261.gem_yeeter_drone/tick/start_remove.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2261.gem_yeeter_drone/tick/start_remove +# +# Objectのtick時の処理 +# +# @within asset:object/2261.gem_yeeter_drone/tick/event_attack + +# idleに移行 + tag @s remove 2261.Phase.Attack + tag @s add 2261.Phase.Remove + scoreboard players set @s General.Object.Tick 0 diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/_index.d.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/_index.d.mcfunction new file mode 100644 index 00000000000..6dcd8455852 --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/_index.d.mcfunction @@ -0,0 +1,28 @@ +#> asset:object/2262.gem_panjan_drone/_index.d +# @private + +#> tag +# @within function asset:object/2262.gem_panjan_drone/** + #declare tag CO.Object + #declare tag CO.Drone + #declare tag CO.Drone.Remove + #declare tag 2262.Model + #declare tag 2262.Model.Init + #declare tag 2262.Model.Target + #declare tag 2262.Phase.Idle + #declare tag 2262.Phase.Move + #declare tag 2262.Phase.Attack + #declare tag 2262.Phase.Flame + #declare tag 2262.Phase.Start + #declare tag 2262.IsMove + #declare tag 2262.TargetPlayer + #declare function animated_java:gem_panjan_drone/summon + #declare function animated_java:gem_panjan_drone/animations/summon/tween + #declare function animated_java:gem_panjan_drone/animations/idle/tween + #declare function animated_java:gem_panjan_drone/animations/move_start/tween + #declare function animated_java:gem_panjan_drone/animations/move/tween + #declare function animated_java:gem_panjan_drone/animations/attack/tween + #declare function animated_java:gem_panjan_drone/remove/this + #declare tag 2272.Line + #declare tag 2272.Line.Target + #declare objective 2272.ObjectId diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/init/.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/init/.mcfunction new file mode 100644 index 00000000000..92f14d586d3 --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/init/.mcfunction @@ -0,0 +1,30 @@ +#> asset:object/2262.gem_panjan_drone/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/2262/init + +# 実行角度に合わせる + tp @s ~ ~ ~ ~ 0 + +# ID割り当て + execute store result score @s CO.ObjectId run data get storage asset:context this.ObjectId + +# モデル召喚 + function asset:object/2262.gem_panjan_drone/init/animated_java + +# 仮 + scoreboard players set @s 2262.IdleTime 60 + # tag @s add 2262.IsMove + +# 移動有無 + execute if data storage asset:context this{IsMove:true} run tag @s add 2262.IsMove + +# タイマー計算 + # IdleTimeは予備動作を考慮して短縮 + scoreboard players remove @s 2262.IdleTime 25 + execute store result score @s 2262.PredictionTime run scoreboard players get @s 2262.IdleTime + scoreboard players remove @s 2262.PredictionTime 30 + +# 追従用設定 + execute if entity @s[tag=2262.IsMove] store result storage asset:context this.TargetPlayerId int 1 run scoreboard players get @a[tag=!PlayerShouldInvulnerable,distance=..80,sort=random,limit=1] UserID diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/init/animated_java.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/init/animated_java.mcfunction new file mode 100644 index 00000000000..d6bc4fbd26a --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/init/animated_java.mcfunction @@ -0,0 +1,12 @@ +#> asset:object/2262.gem_panjan_drone/init/animated_java +# +# Objectのinit時の処理 +# +# @within asset:object/2262.gem_panjan_drone/init/ + +# モデル召喚 + function animated_java:gem_panjan_drone/summon {args: {animation: 'summon'}} + +# ID割り当て + scoreboard players operation @e[type=item_display,tag=2262.Model,tag=!2262.Model.Init,distance=..10,sort=nearest,limit=1] CO.ObjectId = @s CO.ObjectId + tag @e[type=item_display,tag=2262.Model,tag=!2262.Model.Init,distance=..10,sort=nearest,limit=1] add 2262.Model.Init diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/load.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/load.mcfunction new file mode 100644 index 00000000000..5de044c59f4 --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/load.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/2262.gem_panjan_drone/load +# +# Objectに利用するスコアボード等の初期化処理 +# +# @within tag/function asset:object/load + +#> 定義類はここに +# @within function asset:object/2262.gem_panjan_drone/** + scoreboard objectives add 2262.IdleTime dummy + scoreboard objectives add 2262.PredictionTime dummy + scoreboard objectives add 2262.PredictionTime dummy diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/register.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/register.mcfunction new file mode 100644 index 00000000000..51c658d8c0a --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2262.gem_panjan_drone/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2262/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 2262 +# フィールド(オプション) + # data modify storage asset:object Field.myValue set value \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/summon/.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/summon/.mcfunction new file mode 100644 index 00000000000..b6ce65912f4 --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2262.gem_panjan_drone/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2262/summon + +# 元となるEntityを召喚する + summon item_display ~ ~ ~ {Tags:["ObjectInit","CO.Object","2262.Phase.Start"]} diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/summon/debug.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/summon/debug.mcfunction new file mode 100644 index 00000000000..ade6e1070d7 --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2262.gem_panjan_drone/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 2262 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/.mcfunction new file mode 100644 index 00000000000..d0aa3acd08e --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/.mcfunction @@ -0,0 +1,29 @@ +#> asset:object/2262.gem_panjan_drone/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2262/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 +# モデル紐づけ + function asset:object/2262.gem_panjan_drone/tick/link_model.m with storage asset:context this + +# 登場 + execute if entity @s[tag=2262.Phase.Start] run function asset:object/2262.gem_panjan_drone/tick/event_start +# 待機 + execute if entity @s[tag=2262.Phase.Idle] run function asset:object/2262.gem_panjan_drone/tick/event_idle +# 移動 + execute if entity @s[tag=2262.Phase.Move] run function asset:object/2262.gem_panjan_drone/tick/event_move +# 攻撃 + execute if entity @s[tag=2262.Phase.Attack] run function asset:object/2262.gem_panjan_drone/tick/event_attack +# ダメージ床 + execute if entity @s[tag=2262.Phase.Flame] positioned ~ ~0.5 ~ run function asset:object/2262.gem_panjan_drone/tick/event_flame + +# 消去 + execute if entity @s[tag=CO.Drone.Remove] run function asset:object/2262.gem_panjan_drone/tick/remove + +# モデルを自身の位置に合わせる + tp @e[type=item_display,tag=2262.Model.Target,distance=..80,sort=nearest,limit=1] ~ ~ ~ ~ ~ +# 紐づけ解除 + tag @e[type=item_display,tag=2262.Model.Target,distance=..80,sort=nearest,limit=1] remove 2262.Model.Target diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/attack.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/attack.mcfunction new file mode 100644 index 00000000000..29778d8a44b --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/attack.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2262.gem_panjan_drone/tick/attack +# +# Objectのtick時の処理 +# +# @within asset:object/2262.gem_panjan_drone/tick/event_attack + +# ダメージ + data modify storage api: Argument.Damage set from storage asset:context this.Damage.Amount + data modify storage api: Argument.AttackType set from storage asset:context this.Damage.Type + data modify storage api: Argument.ElementType set from storage asset:context this.Damage.Element + data modify storage api: Argument.MobUUID set from storage asset:context this.MobUUID + function api:damage/modifier_manual + execute as @a[tag=!PlayerShouldInvulnerable,distance=..10] run function api:damage/ + function api:damage/reset + +# 演出 + particle explosion_emitter ~ ~1 ~ 0 0 0 0 1 force + particle explosion ~ ~1 ~ 4 4 4 0 30 force + particle lava ~ ~1 ~ 4 1 4 0.2 10 + playsound entity.generic.explode hostile @a ~ ~ ~ 2 0.8 diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/attack_flame.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/attack_flame.mcfunction new file mode 100644 index 00000000000..8ffd5a29900 --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/attack_flame.mcfunction @@ -0,0 +1,22 @@ +#> asset:object/2262.gem_panjan_drone/tick/attack_flame +# +# Objectのtick時の処理 +# +# @within asset:object/2262.gem_panjan_drone/tick/event_flame + +# 計算 + scoreboard players operation $Interval Temporary = @s General.Object.Tick + scoreboard players operation $Interval Temporary %= $10 Const + execute unless score $Interval Temporary matches 9 run return run scoreboard players reset $Interval Temporary + +# ダメージ + data modify storage api: Argument.Damage set from storage asset:context this.FlameDamage.Amount + data modify storage api: Argument.AttackType set from storage asset:context this.FlameDamage.Type + data modify storage api: Argument.ElementType set from storage asset:context this.FlameDamage.Element + data modify storage api: Argument.MobUUID set from storage asset:context this.MobUUID + function api:damage/modifier_manual + execute as @a[tag=!PlayerShouldInvulnerable,distance=..10] run function api:damage/ + function api:damage/reset + +# 終了 + scoreboard players reset $Interval Temporary diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/event_attack.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/event_attack.mcfunction new file mode 100644 index 00000000000..edab84e6bba --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/event_attack.mcfunction @@ -0,0 +1,17 @@ +#> asset:object/2262.gem_panjan_drone/tick/event_attack +# +# Objectのtick時の処理 +# +# @within asset:object/2262.gem_panjan_drone/tick/ + +# アニメーション再生 + execute if entity @s[scores={General.Object.Tick=60}] as @e[type=item_display,tag=2262.Model.Target,distance=..30,sort=nearest,limit=1] at @s run function animated_java:gem_panjan_drone/animations/attack/tween {duration:1, to_frame: 1} + +# 予兆 + execute if entity @s[scores={General.Object.Tick=1}] positioned ~ ~ ~ run function asset:object/2262.gem_panjan_drone/tick/prediction.m {PredictionTime:60} + +# 攻撃 + execute if entity @s[scores={General.Object.Tick=60}] positioned ~ ~ ~ run function asset:object/2262.gem_panjan_drone/tick/attack + +# ダメージ床に移行 + execute if entity @s[scores={General.Object.Tick=61..}] positioned ~ ~ ~ run function asset:object/2262.gem_panjan_drone/tick/start_flame diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/event_flame.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/event_flame.mcfunction new file mode 100644 index 00000000000..a5684b54d44 --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/event_flame.mcfunction @@ -0,0 +1,80 @@ +#> asset:object/2262.gem_panjan_drone/tick/event_flame +# +# Objectのtick時の処理 +# +# @within asset:object/2262.gem_panjan_drone/tick/ + +# 移動 + tp @s ~ ~-0.5 ~ ~15 ~ + +# 演出 + # [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkqnCnAOwCsARjQLQBsrAjKcwCw80AzZgEM4HAJzMatAEwNSc8QLgCwBAHbCAtgmSAwxQAEHNWBjCM2gM5JwKAPaF1EJBxkFqTuBhtgAbsOxCXXAADyQABgIoCIBfGIILUjRCa0QADgJLCHNnREiwOGxsNBhLXQ5w-Iw7bIhdfLRLAFEikrKmgEdCAOwoAGUzanJEAQCyuLxwaHgKdCxcE2IyCg5hPnD2YWZSNLoUXh2eZnElDjYaHjgeAToAZlYGcJQTTR0KQxkTMwstVNsHJxIcTuOCebyIcD+QLBMBhPJRWLxMCJZKpOiZbIYXL5QrFUrlSoJGrCOoRAiNFp49pdHr9QZwYajbDjeJTWC6VCYHD4IgkYZgOjiBisARpUhnJgoLbXODhEQcFDcARSjg8RhPGisOgvbQcwy3L7mKw+eyOXI8EFgnxQoI+OH5aJ5CbI4RJFJIGQAOnRYCyOTJBVa+JchORxNJ8LAFKD1O6RTpwiGSCZLIAukA_3 + # 円 3 + particle flame ^0 ^ ^-2.5 0.2 0 0.2 0.05 1 + particle flame ^2.5 ^ ^0 0.2 0 0.2 0.05 1 + particle flame ^0 ^ ^2.5 0.2 0 0.2 0.05 1 + particle flame ^-2.5 ^ ^0 0.2 0 0.2 0.05 1 + # 円 1 + particle flame ^0 ^ ^-8 0.2 0 0.2 0.05 1 + particle flame ^4 ^ ^-6.9282 0.2 0 0.2 0.05 1 + particle flame ^6.9282 ^ ^-4 0.2 0 0.2 0.05 1 + particle flame ^8 ^ ^0 0.2 0 0.2 0.05 1 + particle flame ^6.9282 ^ ^4 0.2 0 0.2 0.05 1 + particle flame ^4 ^ ^6.9282 0.2 0 0.2 0.05 1 + particle flame ^0 ^ ^8 0.2 0 0.2 0.05 1 + particle flame ^-4 ^ ^6.9282 0.2 0 0.2 0.05 1 + particle flame ^-6.9282 ^ ^4 0.2 0 0.2 0.05 1 + particle flame ^-8 ^ ^0 0.2 0 0.2 0.05 1 + particle flame ^-6.9282 ^ ^-4 0.2 0 0.2 0.05 1 + particle flame ^-4 ^ ^-6.9282 0.2 0 0.2 0.05 1 + # 円 2 + particle flame ^0 ^ ^-5 0.2 0 0.2 0.05 1 + particle flame ^3.21394 ^ ^-3.83022 0.2 0 0.2 0.05 1 + particle flame ^4.92404 ^ ^-0.86824 0.2 0 0.2 0.05 1 + particle flame ^4.33013 ^ ^2.5 0.2 0 0.2 0.05 1 + particle flame ^1.7101 ^ ^4.69846 0.2 0 0.2 0.05 1 + particle flame ^-1.7101 ^ ^4.69846 0.2 0 0.2 0.05 1 + particle flame ^-4.33013 ^ ^2.5 0.2 0 0.2 0.05 1 + particle flame ^-4.92404 ^ ^-0.86824 0.2 0 0.2 0.05 1 + particle flame ^-3.21394 ^ ^-3.83022 0.2 0 0.2 0.05 1 + # [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkmAAwDsppAjACwDMAnALSsAc1K7jjAGZ8AhgCMRAVnYAmVpMn0ZgrsxmSZYAgDsRAWwTJAYYoACelrAwRGfQGck4FAHtC2iEmaUCKOG7gYHMAA3EWxCQ3AADyQvMCgYgF8EghtSNEJ7RHpY2whrd0RYuGxsNBhbQ2zYjCc8iENYtFsAURKyiuaAR0JQ7CgAZSsfckRBUIqkgF0gA_3 + # 円 1 + particle dust 0.502 0.102 0.102 1 ^0 ^ ^-10 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^2.07912 ^ ^-9.78148 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^4.06737 ^ ^-9.13545 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^5.87785 ^ ^-8.09017 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^7.43145 ^ ^-6.69131 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^8.66025 ^ ^-5 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^9.51057 ^ ^-3.09017 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^9.94522 ^ ^-1.04528 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^9.94522 ^ ^1.04528 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^9.51057 ^ ^3.09017 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^8.66025 ^ ^5 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^7.43145 ^ ^6.69131 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^5.87785 ^ ^8.09017 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^4.06737 ^ ^9.13545 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^2.07912 ^ ^9.78148 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^0 ^ ^10 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^-2.07912 ^ ^9.78148 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^-4.06737 ^ ^9.13545 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^-5.87785 ^ ^8.09017 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^-7.43145 ^ ^6.69131 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^-8.66025 ^ ^5 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^-9.51057 ^ ^3.09017 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^-9.94522 ^ ^1.04528 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^-9.94522 ^ ^-1.04528 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^-9.51057 ^ ^-3.09017 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^-8.66025 ^ ^-5 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^-7.43145 ^ ^-6.69131 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^-5.87785 ^ ^-8.09017 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^-4.06737 ^ ^-9.13545 0.2 0 0.2 0.05 1 + particle dust 0.502 0.102 0.102 1 ^-2.07912 ^ ^-9.78148 0.2 0 0.2 0.05 1 + +# 攻撃 + function asset:object/2262.gem_panjan_drone/tick/attack_flame + +# モデル消去 + execute if entity @s[scores={General.Object.Tick=11}] as @e[type=item_display,tag=2262.Model.Target,distance=..30,sort=nearest,limit=1] run function animated_java:gem_panjan_drone/remove/this + +# 消去 + execute if entity @s[scores={General.Object.Tick=601..}] run tag @s add CO.Drone.Remove diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/event_idle.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/event_idle.mcfunction new file mode 100644 index 00000000000..b4b515933a7 --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/event_idle.mcfunction @@ -0,0 +1,16 @@ +#> asset:object/2262.gem_panjan_drone/tick/event_idle +# +# Objectのtick時の処理 +# +# @within asset:object/2262.gem_panjan_drone/tick/ + +# アニメーション再生 + execute if entity @s[scores={General.Object.Tick=1}] as @e[type=item_display,tag=2262.Model.Target,distance=..30,sort=nearest,limit=1] at @s run function animated_java:gem_panjan_drone/animations/idle/tween {duration:1, to_frame: 1} + +# 線召喚 + execute if entity @s[tag=2262.IsMove] if score @s General.Object.Tick matches 1 run function asset:object/2262.gem_panjan_drone/tick/summon_target_line + execute if entity @s[tag=2262.IsMove] run function asset:object/2262.gem_panjan_drone/tick/link_target_line.m with storage asset:context this + +# 移動または攻撃に移行 + execute if entity @s[tag=2262.IsMove] if score @s General.Object.Tick >= @s 2262.IdleTime run function asset:object/2262.gem_panjan_drone/tick/start_move + execute unless entity @s[tag=2262.IsMove] if score @s General.Object.Tick >= @s 2262.IdleTime run function asset:object/2262.gem_panjan_drone/tick/start_attack diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/event_move.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/event_move.mcfunction new file mode 100644 index 00000000000..3bf9431cd6a --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/event_move.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2262.gem_panjan_drone/tick/event_move +# +# Objectのtick時の処理 +# +# @within asset:object/2262.gem_panjan_drone/tick/ + +# アニメーション再生 + execute if entity @s[scores={General.Object.Tick=1}] as @e[type=item_display,tag=2262.Model.Target,distance=..30,sort=nearest,limit=1] at @s run function animated_java:gem_panjan_drone/animations/move_start/tween {duration:1, to_frame: 1} + execute if entity @s[scores={General.Object.Tick=20}] as @e[type=item_display,tag=2262.Model.Target,distance=..30,sort=nearest,limit=1] at @s run function animated_java:gem_panjan_drone/animations/move/tween {duration:1, to_frame: 1} + +# 演出 + execute if entity @s[scores={General.Object.Tick=1}] run playsound block.piston.contract hostile @a ~ ~ ~ 2 0.8 + function asset:object/2262.gem_panjan_drone/tick/link_target_line.m with storage asset:context this + +# 移動 + execute if entity @s[scores={General.Object.Tick=20..}] run function asset:object/2262.gem_panjan_drone/tick/move_to_player.m with storage asset:context this + +# 攻撃に移行 + execute if score @s General.Object.Tick matches 200.. run function asset:object/2262.gem_panjan_drone/tick/remove_target_line.m with storage asset:context this + execute if score @s General.Object.Tick matches 200.. run function asset:object/2262.gem_panjan_drone/tick/start_attack diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/event_start.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/event_start.mcfunction new file mode 100644 index 00000000000..473c0824938 --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/event_start.mcfunction @@ -0,0 +1,19 @@ +#> asset:object/2262.gem_panjan_drone/tick/event_start +# +# Objectのtick時の処理 +# +# @within asset:object/2262.gem_panjan_drone/tick/ + +# アニメーション再生 + execute if entity @s[scores={General.Object.Tick=1}] as @e[type=item_display,tag=2262.Model.Target,distance=..30,sort=nearest,limit=1] at @s run function animated_java:gem_panjan_drone/animations/summon/tween {duration:1, to_frame: 1} + +# 演出 + execute if entity @s[scores={General.Object.Tick=10}] run playsound entity.ravager.step hostile @a ~ ~ ~ 2 0.6 + execute if entity @s[scores={General.Object.Tick=10}] run particle block quartz_block ~ ~0.2 ~ 1.5 0.1 1.5 0 30 + execute if entity @s[scores={General.Object.Tick=21}] run playsound entity.ravager.step hostile @a ~ ~ ~ 2 0.8 + execute if entity @s[scores={General.Object.Tick=21}] run particle block quartz_block ~ ~0.2 ~ 1.5 0.1 1.5 0 30 + # execute if entity @s[scores={General.Object.Tick=28}] run playsound block.piston.contract hostile @a ~ ~ ~ 2 0.8 + # execute if entity @s[scores={General.Object.Tick=50}] run playsound block.piston.contract hostile @a ~ ~ ~ 2 0.8 + +# idleに移行 + execute if score @s General.Object.Tick matches 31.. run function asset:object/2262.gem_panjan_drone/tick/start_idle diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/link_model.m.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/link_model.m.mcfunction new file mode 100644 index 00000000000..c1754ba0641 --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/link_model.m.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2262.gem_panjan_drone/tick/link_model.m +# +# Objectのtick時の処理 +# +# @within asset:object/2262.gem_panjan_drone/tick/ + +# モデル紐づけ + $execute as @e[type=item_display,tag=2262.Model,distance=..30] if score @s CO.ObjectId matches $(ObjectId) run tag @s add 2262.Model.Target diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/link_target_line.m.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/link_target_line.m.mcfunction new file mode 100644 index 00000000000..9fc50928161 --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/link_target_line.m.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/2262.gem_panjan_drone/tick/link_target_line.m +# +# Objectのtick時の処理 +# +# @within asset:object/2262.gem_panjan_drone/tick/event_idle +# @within asset:object/2262.gem_panjan_drone/tick/event_move + +# 線紐づけ、移動 + $execute as @e[type=item_display,tag=2272.Line,distance=..30] if score @s 2272.ObjectId matches $(ObjectId) run tag @s add 2272.Line.Target + execute at @s run tp @e[type=item_display,tag=2272.Line.Target,distance=..30] ^ ^2.8 ^1 0 0 + tag @e[type=item_display,tag=2272.Line.Target,distance=..30] remove 2272.Line.Target diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/move_to_player.m.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/move_to_player.m.mcfunction new file mode 100644 index 00000000000..ffa33b21520 --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/move_to_player.m.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2262.gem_panjan_drone/tick/move_to_player.m +# +# Objectのtick時の処理 +# +# @within asset:object/2262.gem_panjan_drone/tick/event_move + +# ターゲット設定 + $tag @a[scores={UserID=$(TargetPlayerId)}] add 2262.TargetPlayer + +# 対象の方を向く + execute rotated ~ 0 positioned ^ ^ ^-1 facing entity @p[tag=2262.TargetPlayer] feet rotated ~ 0 positioned ^ ^ ^-1 facing entity @s feet positioned as @s positioned ^ ^ ^-1 rotated as @s rotated ~ 0 positioned ^ ^ ^-1 facing entity @s feet positioned as @s run tp @s ^ ^ ^ ~ 0 + +# 移動 + execute at @s unless block ^ ^-1 ^0.5 #lib:no_collision run tp @s ^ ^ ^0.3 + +# ある程度プレイヤーに近づいたら攻撃開始 + execute if entity @a[tag=2262.TargetPlayer,distance=..1.5] run scoreboard players set @s General.Object.Tick 200 + +# 終了 + tag @a[tag=2262.TargetPlayer] remove 2262.TargetPlayer diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/prediction.m.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/prediction.m.mcfunction new file mode 100644 index 00000000000..ef1f4b1098e --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/prediction.m.mcfunction @@ -0,0 +1,12 @@ +#> asset:object/2262.gem_panjan_drone/tick/prediction.m +# +# Objectのtick時の処理 +# +# @within asset:object/2262.gem_panjan_drone/tick/event_attack + +# 予兆 + data modify storage api: Argument.ID set value 2063 + data modify storage api: Argument.FieldOverride.Color set value 3381759 + data modify storage api: Argument.FieldOverride.Scale set value [20f, 20f, 0.05f] + $data modify storage api: Argument.FieldOverride.Tick set value $(PredictionTime) + execute rotated ~ 0 run function api:object/summon diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/remove.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/remove.mcfunction new file mode 100644 index 00000000000..168c33aed03 --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/remove.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/2262.gem_panjan_drone/tick/remove +# +# Objectのtick時の処理 +# +# @within asset:object/2262.gem_panjan_drone/tick/ + +# モデル消去 + execute as @e[type=item_display,tag=2262.Model.Target,distance=..30,sort=nearest,limit=1] run function animated_java:gem_panjan_drone/remove/this + +# 自身を消去 + kill @s diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/remove_target_line.m.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/remove_target_line.m.mcfunction new file mode 100644 index 00000000000..4fd948a3a98 --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/remove_target_line.m.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/2262.gem_panjan_drone/tick/remove_target_line.m +# +# Objectのtick時の処理 +# +# @within asset:object/2262.gem_panjan_drone/tick/event_move + +# 線紐づけ + $execute as @e[type=item_display,tag=2272.Line,distance=..30] if score @s 2272.ObjectId matches $(ObjectId) run tag @s add 2272.Line.Target + kill @e[type=item_display,tag=2272.Line.Target,distance=..30] diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/start_attack.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/start_attack.mcfunction new file mode 100644 index 00000000000..f61460822ed --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/start_attack.mcfunction @@ -0,0 +1,12 @@ +#> asset:object/2262.gem_panjan_drone/tick/start_attack +# +# Objectのtick時の処理 +# +# @within asset:object/2262.gem_panjan_drone/tick/event_idle +# @within asset:object/2262.gem_panjan_drone/tick/event_move + +# idleに移行 + tag @s remove 2262.Phase.Idle + tag @s remove 2262.Phase.Move + tag @s add 2262.Phase.Attack + scoreboard players set @s General.Object.Tick 0 diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/start_flame.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/start_flame.mcfunction new file mode 100644 index 00000000000..fd808a5c98e --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/start_flame.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2262.gem_panjan_drone/tick/start_flame +# +# Objectのtick時の処理 +# +# @within asset:object/2262.gem_panjan_drone/tick/event_attack + +# flameに移行 + tag @s remove 2262.Phase.Attack + tag @s add 2262.Phase.Flame + scoreboard players set @s General.Object.Tick 0 diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/start_idle.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/start_idle.mcfunction new file mode 100644 index 00000000000..b12af1346c0 --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/start_idle.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2262.gem_panjan_drone/tick/start_idle +# +# Objectのtick時の処理 +# +# @within asset:object/2262.gem_panjan_drone/tick/event_start + +# idleに移行 + tag @s remove 2262.Phase.Start + tag @s add 2262.Phase.Idle + scoreboard players set @s General.Object.Tick 0 diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/start_move.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/start_move.mcfunction new file mode 100644 index 00000000000..40018236ff8 --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/start_move.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2262.gem_panjan_drone/tick/start_move +# +# Objectのtick時の処理 +# +# @within asset:object/2262.gem_panjan_drone/tick/event_idle + +# idleに移行 + tag @s remove 2262.Phase.Idle + tag @s add 2262.Phase.Move + scoreboard players set @s General.Object.Tick 0 diff --git a/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/summon_target_line.mcfunction b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/summon_target_line.mcfunction new file mode 100644 index 00000000000..779c8e5580b --- /dev/null +++ b/Asset/data/asset/functions/object/2262.gem_panjan_drone/tick/summon_target_line.mcfunction @@ -0,0 +1,13 @@ +#> asset:object/2260.gem_attack_drone/tick/summon_target_line +# +# Objectのtick時の処理 +# +# @within asset:object/2260.gem_attack_drone/tick/event_idle + +# ターゲット線召喚 + data modify storage api: Argument.ID set value 2272 + data modify storage api: Argument.FieldOverride.TargetPlayerId set from storage asset:context this.TargetPlayerId + data modify storage api: Argument.FieldOverride.Tick set value 400 + data modify storage api: Argument.FieldOverride.Color set value 16758123 + data modify storage api: Argument.FieldOverride.ObjectId set from storage asset:context this.ObjectId + execute positioned ~ ~3 ~ run function api:object/summon diff --git a/Asset/data/asset/functions/object/2263.gem_laser_vfx/_index.d.mcfunction b/Asset/data/asset/functions/object/2263.gem_laser_vfx/_index.d.mcfunction new file mode 100644 index 00000000000..4fe7bb80489 --- /dev/null +++ b/Asset/data/asset/functions/object/2263.gem_laser_vfx/_index.d.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/2263.gem_laser_vfx/_index.d +# @private + +#> tag +# @within function asset:object/2263.gem_laser_vfx/** + #declare tag CO.Object + #declare tag 2263.IsRight + #declare tag 2263.IsShot + #declare tag 2263.IsUpperShot diff --git a/Asset/data/asset/functions/object/2263.gem_laser_vfx/init/.mcfunction b/Asset/data/asset/functions/object/2263.gem_laser_vfx/init/.mcfunction new file mode 100644 index 00000000000..4f7109e51ea --- /dev/null +++ b/Asset/data/asset/functions/object/2263.gem_laser_vfx/init/.mcfunction @@ -0,0 +1,12 @@ +#> asset:object/2263.gem_laser_vfx/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/2263/init + +# 左右 + execute if data storage asset:context this{IsRight:true} run tag @s add 2263.IsRight + +# 射撃系演出用 + execute if data storage asset:context this{IsShot:true} run tag @s add 2263.IsShot + execute if data storage asset:context this{IsUpperShot:true} run tag @s add 2263.IsUpperShot diff --git a/Asset/data/asset/functions/object/2263.gem_laser_vfx/register.mcfunction b/Asset/data/asset/functions/object/2263.gem_laser_vfx/register.mcfunction new file mode 100644 index 00000000000..38a17f7c4a1 --- /dev/null +++ b/Asset/data/asset/functions/object/2263.gem_laser_vfx/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2263.gem_laser_vfx/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2263/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 2263 +# フィールド(オプション) + # data modify storage asset:object Field.myValue set value \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2263.gem_laser_vfx/summon/.mcfunction b/Asset/data/asset/functions/object/2263.gem_laser_vfx/summon/.mcfunction new file mode 100644 index 00000000000..35998bcbd89 --- /dev/null +++ b/Asset/data/asset/functions/object/2263.gem_laser_vfx/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2263.gem_laser_vfx/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2263/summon + +# 元となるEntityを召喚する + function asset:object/2263.gem_laser_vfx/summon/m with storage asset:context this diff --git a/Asset/data/asset/functions/object/2263.gem_laser_vfx/summon/debug.mcfunction b/Asset/data/asset/functions/object/2263.gem_laser_vfx/summon/debug.mcfunction new file mode 100644 index 00000000000..a17a0bd1a8c --- /dev/null +++ b/Asset/data/asset/functions/object/2263.gem_laser_vfx/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2263.gem_laser_vfx/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 2263 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2263.gem_laser_vfx/summon/m.mcfunction b/Asset/data/asset/functions/object/2263.gem_laser_vfx/summon/m.mcfunction new file mode 100644 index 00000000000..52c8e42e83b --- /dev/null +++ b/Asset/data/asset/functions/object/2263.gem_laser_vfx/summon/m.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2263.gem_laser_vfx/summon/m +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/2263.gem_laser_vfx/summon/ + +# 元となるEntityを召喚する + $summon minecraft:item_display ~ ~ ~ {Rotation:$(Rotation),brightness:{sky:15,block:15},Tags:["ObjectInit","CO.Object"],interpolation_duration:3,teleport_duration:1,item:{id:"stick",Count:1b,tag:{CustomModelData:20588}},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,50.0f]}} diff --git a/Asset/data/asset/functions/object/2263.gem_laser_vfx/tick/.mcfunction b/Asset/data/asset/functions/object/2263.gem_laser_vfx/tick/.mcfunction new file mode 100644 index 00000000000..b103ae19b81 --- /dev/null +++ b/Asset/data/asset/functions/object/2263.gem_laser_vfx/tick/.mcfunction @@ -0,0 +1,26 @@ +#> asset:object/2263.gem_laser_vfx/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2263/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# 拡大 + execute if score @s General.Object.Tick matches 3 run data modify entity @s start_interpolation set value -1 + execute if score @s General.Object.Tick matches 3 run data modify entity @s transformation.scale set value [5.0f,5.0f,100.0f] + execute if score @s General.Object.Tick matches 8 run data modify entity @s start_interpolation set value -1 + execute unless entity @s[tag=2263.IsUpperShot] if score @s General.Object.Tick matches 8 run data modify entity @s transformation.scale set value [0.0f,0.0f,100.0f] + execute if entity @s[tag=2263.IsUpperShot] if score @s General.Object.Tick matches 8 run data modify entity @s transformation.scale set value [0.0f,0.0f,0.0f] + execute unless entity @s[tag=2263.IsUpperShot] if score @s General.Object.Tick matches 3..12 run particle flash ~ ~ ~ 0 0 0 0 1 + +# 移動 + execute if entity @s[tag=2263.IsRight] unless entity @s[tag=2263.IsShot] if score @s General.Object.Tick matches 3.. run tp @s ~ ~ ~ ~35 ~ + execute unless entity @s[tag=2263.IsRight] unless entity @s[tag=2263.IsShot] if score @s General.Object.Tick matches 3.. run tp @s ~ ~ ~ ~-35 ~ + execute unless entity @s[tag=2263.IsShot] if score @s General.Object.Tick matches 3..5 at @s run tp @s ~ ~ ~ ~ ~-4 + execute unless entity @s[tag=2263.IsShot] if score @s General.Object.Tick matches 12..14 at @s run tp @s ~ ~ ~ ~ ~4 + execute if entity @s[tag=2263.IsShot,tag=!2263.IsUpperShot] if score @s General.Object.Tick matches 8.. at @s run tp @s ^ ^ ^20 + +# 消滅処理 + kill @s[scores={General.Object.Tick=14..}] diff --git a/Asset/data/asset/functions/object/2264.sheep_avenger/_index.d.mcfunction b/Asset/data/asset/functions/object/2264.sheep_avenger/_index.d.mcfunction new file mode 100644 index 00000000000..049bedd424b --- /dev/null +++ b/Asset/data/asset/functions/object/2264.sheep_avenger/_index.d.mcfunction @@ -0,0 +1,13 @@ +#> asset:object/2264.sheep_avenger/_index.d +# @private + +#> tag +# @within function asset:object/2264.sheep_avenger/** + #declare tag CO.Object + #declare tag CO.ScapeSheep + #declare tag 2264.Model + #declare function animated_java:sheep_avenger/summon + #declare function animated_java:sheep_avenger/animations/transform/play + #declare function animated_java:sheep_avenger/animations/walk/play + #declare function animated_java:sheep_avenger/animations/turn/play + #declare function animated_java:sheep_avenger/remove/all diff --git a/Asset/data/asset/functions/object/2264.sheep_avenger/init/.mcfunction b/Asset/data/asset/functions/object/2264.sheep_avenger/init/.mcfunction new file mode 100644 index 00000000000..5cf098dabdf --- /dev/null +++ b/Asset/data/asset/functions/object/2264.sheep_avenger/init/.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/2264.sheep_avenger/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/2264/init + +# AJモデル召喚 + function animated_java:sheep_avenger/summon {args: {animation: 'transform'}} + execute as @e[type=item_display,tag=2264.Model,distance=..10,limit=1] run data merge entity @s {view_range:16f,width:0f,height:0f,teleport_duration:2} diff --git a/Asset/data/asset/functions/object/2264.sheep_avenger/register.mcfunction b/Asset/data/asset/functions/object/2264.sheep_avenger/register.mcfunction new file mode 100644 index 00000000000..241c6a2205b --- /dev/null +++ b/Asset/data/asset/functions/object/2264.sheep_avenger/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2264.sheep_avenger/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2264/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 2264 +# フィールド(オプション) + # data modify storage asset:object Field.myValue set value \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2264.sheep_avenger/summon/.mcfunction b/Asset/data/asset/functions/object/2264.sheep_avenger/summon/.mcfunction new file mode 100644 index 00000000000..83dfcfe4c35 --- /dev/null +++ b/Asset/data/asset/functions/object/2264.sheep_avenger/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2264.sheep_avenger/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2264/summon + +# 元となるEntityを召喚する + summon item_display ~ ~ ~ {Tags:["ObjectInit","CO.Object","CO.ScapeSheep"]} diff --git a/Asset/data/asset/functions/object/2264.sheep_avenger/summon/debug.mcfunction b/Asset/data/asset/functions/object/2264.sheep_avenger/summon/debug.mcfunction new file mode 100644 index 00000000000..1d21a97bcb2 --- /dev/null +++ b/Asset/data/asset/functions/object/2264.sheep_avenger/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2264.sheep_avenger/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 2264 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2264.sheep_avenger/tick/.mcfunction b/Asset/data/asset/functions/object/2264.sheep_avenger/tick/.mcfunction new file mode 100644 index 00000000000..f701e4e2c90 --- /dev/null +++ b/Asset/data/asset/functions/object/2264.sheep_avenger/tick/.mcfunction @@ -0,0 +1,36 @@ +#> asset:object/2264.sheep_avenger/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2264/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# 変形 + execute if score @s General.Object.Tick matches 1 run playsound entity.sheep.ambient hostile @a ~ ~ ~ 2 1 + execute if score @s General.Object.Tick matches 31 as @e[type=item_display,tag=2264.Model,distance=..10,limit=1] run function animated_java:sheep_avenger/animations/transform/play + execute if score @s General.Object.Tick matches 63 run playsound minecraft:block.end_portal.spawn hostile @a[distance=..80] ~ ~ ~ 0.2 1 0.2 + execute if score @s General.Object.Tick matches 63 run playsound entity.puffer_fish.blow_up hostile @a[distance=..80] ~ ~ ~ 1 0.7 + execute if score @s General.Object.Tick matches 63 run playsound entity.sheep.hurt hostile @a ~ ~ ~ 2 0.7 + execute if score @s General.Object.Tick matches 63 run particle flash ~ ~2 ~ 2 2 2 0 50 + execute if score @s General.Object.Tick matches 63..251 run particle trial_spawner_detection ~ ~1.5 ~ 1 1.5 1 0.0 3 + +# 移動 + execute if score @s General.Object.Tick matches 91 as @e[type=item_display,tag=2264.Model,distance=..10,limit=1] run function animated_java:sheep_avenger/animations/walk/play + execute if score @s General.Object.Tick matches 91..210 run tp @s ^ ^ ^0.16 ~ 0 + execute if score @s General.Object.Tick matches 91..215 as @e[type=item_display,tag=2264.Model,distance=..10,limit=1] run tp @s ~ ~ ~ ~ ~ + execute if score @s General.Object.Tick matches 111 run function asset:object/2264.sheep_avenger/tick/step + execute if score @s General.Object.Tick matches 131 run function asset:object/2264.sheep_avenger/tick/step + execute if score @s General.Object.Tick matches 151 run function asset:object/2264.sheep_avenger/tick/step + execute if score @s General.Object.Tick matches 171 run function asset:object/2264.sheep_avenger/tick/step + execute if score @s General.Object.Tick matches 191 run function asset:object/2264.sheep_avenger/tick/step + execute if score @s General.Object.Tick matches 211 run function asset:object/2264.sheep_avenger/tick/step + +# 振り向き + execute if score @s General.Object.Tick matches 231 as @e[type=item_display,tag=2264.Model,distance=..10,limit=1] run function animated_java:sheep_avenger/animations/turn/play + execute if score @s General.Object.Tick matches 231 run playsound entity.sheep.death hostile @a ~ ~ ~ 2 1 + execute if score @s General.Object.Tick matches 234 as @e[type=item_display,tag=2264.Model,distance=..10,limit=1] on passengers if entity @s[type=item_display] run data modify entity @s brightness set value {sky:7,block:7} + +# 消滅処理 + execute if entity @s[scores={General.Object.Tick=300..}] run function asset:object/2264.sheep_avenger/tick/kill diff --git a/Asset/data/asset/functions/object/2264.sheep_avenger/tick/kill.mcfunction b/Asset/data/asset/functions/object/2264.sheep_avenger/tick/kill.mcfunction new file mode 100644 index 00000000000..605b8205000 --- /dev/null +++ b/Asset/data/asset/functions/object/2264.sheep_avenger/tick/kill.mcfunction @@ -0,0 +1,12 @@ +#> asset:object/2264.sheep_avenger/tick/kill +# +# Objectのtick時の処理 +# +# @within asset:object/2264.sheep_avenger/tick/ + +# モデル消去 + particle poof ~ ~0.3 ~ 0.5 0.5 0.5 0.1 10 + function animated_java:sheep_avenger/remove/all + +# 消滅 + kill @s diff --git a/Asset/data/asset/functions/object/2264.sheep_avenger/tick/step.mcfunction b/Asset/data/asset/functions/object/2264.sheep_avenger/tick/step.mcfunction new file mode 100644 index 00000000000..5d44cd34c18 --- /dev/null +++ b/Asset/data/asset/functions/object/2264.sheep_avenger/tick/step.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2264.sheep_avenger/tick/step +# +# Objectのtick時の処理 +# +# @within asset:object/2264.sheep_avenger/tick/ + +# 演出 + playsound entity.hoglin.step hostile @a ~ ~ ~ 2 0.5 + playsound entity.hoglin.step hostile @a ~ ~ ~ 2 0.6 + particle block quartz_block ~ ~0.1 ~ 0.7 0.1 0.7 0 10 diff --git a/Asset/data/asset/functions/object/2265.field_modify_manager/_index.d.mcfunction b/Asset/data/asset/functions/object/2265.field_modify_manager/_index.d.mcfunction new file mode 100644 index 00000000000..6a8cccfe980 --- /dev/null +++ b/Asset/data/asset/functions/object/2265.field_modify_manager/_index.d.mcfunction @@ -0,0 +1,15 @@ +#> asset:object/2265.field_modify_manager/_index.d +# @private + +#> tag +# @within function asset:object/2265.field_modify_manager/** + #declare tag CO.Object + #declare tag CO.Object.FieldModify + #declare tag 2265.Aec + #declare tag 2265.Aec.Target + #declare tag 2265.Aec.Red + #declare tag 2265.Aec.Blue + #declare tag 2265.Aec.Green + #declare tag 2265.Aec.Yellow + #declare tag 2265.Hit + #declare tag 2266.Remove diff --git a/Asset/data/asset/functions/object/2265.field_modify_manager/init/.mcfunction b/Asset/data/asset/functions/object/2265.field_modify_manager/init/.mcfunction new file mode 100644 index 00000000000..63e1ad71725 --- /dev/null +++ b/Asset/data/asset/functions/object/2265.field_modify_manager/init/.mcfunction @@ -0,0 +1,21 @@ +#> asset:object/2265.field_modify_manager/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/2265/init +# @private + #declare score_holder $Temp.Count + +# 攻撃回数決定 + execute store result score @s 2265.AttackCount store result score $Temp.Count 2265.AttackCount run data get storage asset:context this.AttackCount + scoreboard players set @s 2265.AttackCount.Inc 0 + +# Progressバーの最大値を決定 + scoreboard players set @s 2265.Progress.Current 0 + scoreboard players set @s 2265.Progress.Max 200 + +# 攻撃対象決定 + function asset:object/2265.field_modify_manager/init/decide_color + +# 終了 + scoreboard players reset $Temp.Count diff --git a/Asset/data/asset/functions/object/2265.field_modify_manager/init/decide_color.mcfunction b/Asset/data/asset/functions/object/2265.field_modify_manager/init/decide_color.mcfunction new file mode 100644 index 00000000000..35a309ca3bb --- /dev/null +++ b/Asset/data/asset/functions/object/2265.field_modify_manager/init/decide_color.mcfunction @@ -0,0 +1,21 @@ +#> asset:object/2265.field_modify_manager/init/decide_color +# +# Objectのtick時の処理 +# +# @within asset:object/2265.field_modify_manager/init/ +# @private + #declare score_holder $Temp.Count + +# 決定用AEC召喚 + summon area_effect_cloud ~ ~ ~ {Tags:["2265.Aec","2265.Aec.Red"]} + summon area_effect_cloud ~ ~ ~ {Tags:["2265.Aec","2265.Aec.Blue"]} + summon area_effect_cloud ~ ~ ~ {Tags:["2265.Aec","2265.Aec.Green"]} + summon area_effect_cloud ~ ~ ~ {Tags:["2265.Aec","2265.Aec.Yellow"]} + +# 決定処理 + data modify storage asset:context this.Target set value [] + data modify storage asset:context this.BossBar.Color set value [] + execute if score $Temp.Count 2265.AttackCount matches 1.. run function asset:object/2265.field_modify_manager/init/decide_color_loop + +# 終了 + kill @e[type=area_effect_cloud,tag=2265.Aec,distance=..10] diff --git a/Asset/data/asset/functions/object/2265.field_modify_manager/init/decide_color_loop.mcfunction b/Asset/data/asset/functions/object/2265.field_modify_manager/init/decide_color_loop.mcfunction new file mode 100644 index 00000000000..5ead5362f76 --- /dev/null +++ b/Asset/data/asset/functions/object/2265.field_modify_manager/init/decide_color_loop.mcfunction @@ -0,0 +1,26 @@ +#> asset:object/2265.field_modify_manager/init/decide_color_loop +# +# Objectのtick時の処理 +# +# @within asset:object/2265.field_modify_manager/init/decide_color +# @private + #declare score_holder $Temp.Count + +# デクリメント + scoreboard players remove $Temp.Count 2265.AttackCount 1 + +# ランダムに1つ取り出し、storageに保管 + tag @e[type=area_effect_cloud,tag=2265.Aec,distance=..10,sort=random,limit=1] add 2265.Aec.Target + execute if entity @e[type=area_effect_cloud,tag=2265.Aec.Target,tag=2265.Aec.Red,distance=..10,limit=1] run data modify storage asset:context this.Target append value 0 + execute if entity @e[type=area_effect_cloud,tag=2265.Aec.Target,tag=2265.Aec.Blue,distance=..10,limit=1] run data modify storage asset:context this.Target append value 1 + execute if entity @e[type=area_effect_cloud,tag=2265.Aec.Target,tag=2265.Aec.Green,distance=..10,limit=1] run data modify storage asset:context this.Target append value 2 + execute if entity @e[type=area_effect_cloud,tag=2265.Aec.Target,tag=2265.Aec.Yellow,distance=..10,limit=1] run data modify storage asset:context this.Target append value 3 + execute if entity @e[type=area_effect_cloud,tag=2265.Aec.Target,tag=2265.Aec.Red,distance=..10,limit=1] run data modify storage asset:context this.BossBar.Color append value '{"text":"0","color":"#FF61DF","font":"mob/456/modify","bold":false}' + execute if entity @e[type=area_effect_cloud,tag=2265.Aec.Target,tag=2265.Aec.Blue,distance=..10,limit=1] run data modify storage asset:context this.BossBar.Color append value '{"text":"1","color":"#5C7CFF","font":"mob/456/modify","bold":false}' + execute if entity @e[type=area_effect_cloud,tag=2265.Aec.Target,tag=2265.Aec.Green,distance=..10,limit=1] run data modify storage asset:context this.BossBar.Color append value '{"text":"2","color":"#6FFF59","font":"mob/456/modify","bold":false}' + execute if entity @e[type=area_effect_cloud,tag=2265.Aec.Target,tag=2265.Aec.Yellow,distance=..10,limit=1] run data modify storage asset:context this.BossBar.Color append value '{"text":"3","color":"#FFAC59","font":"mob/456/modify","bold":false}' + kill @e[type=area_effect_cloud,tag=2265.Aec.Target,distance=..10] + +# 繰り返す + execute if score $Temp.Count 2265.AttackCount matches 1.. run data modify storage asset:context this.BossBar.Color append value '{"text":"→","color":"white","font":"default","bold":false}' + execute if score $Temp.Count 2265.AttackCount matches 1.. run function asset:object/2265.field_modify_manager/init/decide_color_loop diff --git a/Asset/data/asset/functions/object/2265.field_modify_manager/load.mcfunction b/Asset/data/asset/functions/object/2265.field_modify_manager/load.mcfunction new file mode 100644 index 00000000000..dfb5e67f2b7 --- /dev/null +++ b/Asset/data/asset/functions/object/2265.field_modify_manager/load.mcfunction @@ -0,0 +1,13 @@ +#> asset:object/2265.field_modify_manager/load +# +# Objectに利用するスコアボード等の初期化処理 +# +# @within tag/function asset:object/load + +#> 定義類はここに +# @within function asset:object/2265.field_modify_manager/** + scoreboard objectives add 2265.AttackCount dummy + scoreboard objectives add 2265.AttackCount.Inc dummy + scoreboard objectives add 2265.Period dummy + scoreboard objectives add 2265.Progress.Current dummy + scoreboard objectives add 2265.Progress.Max dummy diff --git a/Asset/data/asset/functions/object/2265.field_modify_manager/register.mcfunction b/Asset/data/asset/functions/object/2265.field_modify_manager/register.mcfunction new file mode 100644 index 00000000000..189df179ca0 --- /dev/null +++ b/Asset/data/asset/functions/object/2265.field_modify_manager/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2265.field_modify_manager/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2265/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 2265 +# フィールド(オプション) + # data modify storage asset:object Field.myValue set value \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2265.field_modify_manager/summon/.mcfunction b/Asset/data/asset/functions/object/2265.field_modify_manager/summon/.mcfunction new file mode 100644 index 00000000000..255832cfcc4 --- /dev/null +++ b/Asset/data/asset/functions/object/2265.field_modify_manager/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2265.field_modify_manager/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2265/summon + +# 元となるEntityを召喚する + summon marker ~ ~ ~ {Tags:["ObjectInit","CO.Object"]} diff --git a/Asset/data/asset/functions/object/2265.field_modify_manager/summon/debug.mcfunction b/Asset/data/asset/functions/object/2265.field_modify_manager/summon/debug.mcfunction new file mode 100644 index 00000000000..63a504c84e1 --- /dev/null +++ b/Asset/data/asset/functions/object/2265.field_modify_manager/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2265.field_modify_manager/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 2265 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2265.field_modify_manager/tick/.mcfunction b/Asset/data/asset/functions/object/2265.field_modify_manager/tick/.mcfunction new file mode 100644 index 00000000000..52b36dd765d --- /dev/null +++ b/Asset/data/asset/functions/object/2265.field_modify_manager/tick/.mcfunction @@ -0,0 +1,17 @@ +#> asset:object/2265.field_modify_manager/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2265/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# Progress進行 + execute if score @s General.Object.Tick matches 1 run function asset:object/2265.field_modify_manager/tick/show_bossbar + execute if score @s General.Object.Tick matches 1.. run function asset:object/2265.field_modify_manager/tick/set_bossbar_name + execute if score @s General.Object.Tick matches 100.. store result bossbar asset:co_field_modify value run scoreboard players add @s 2265.Progress.Current 1 + +# 消滅処理 + execute if score @s 2265.Progress.Current >= @s 2265.Progress.Max run function asset:object/2265.field_modify_manager/tick/attack + execute if entity @s[scores={General.Object.Tick=1000..}] run function asset:object/2265.field_modify_manager/tick/kill diff --git a/Asset/data/asset/functions/object/2265.field_modify_manager/tick/attack.mcfunction b/Asset/data/asset/functions/object/2265.field_modify_manager/tick/attack.mcfunction new file mode 100644 index 00000000000..d86efa42945 --- /dev/null +++ b/Asset/data/asset/functions/object/2265.field_modify_manager/tick/attack.mcfunction @@ -0,0 +1,43 @@ +#> asset:object/2265.field_modify_manager/tick/attack +# +# Objectのtick時の処理 +# +# @within asset:object/2265.field_modify_manager/tick/ +# @private + #declare score_holder $Temp.Color + #declare objective 2266.Color + +# ヒット判定 + execute store result score $Temp.Color Global run data get storage asset:context this.Target[0] + tag @a[tag=!PlayerShouldInvulnerable,distance=..80] add 2265.Hit + execute as @e[type=item_display,tag=CO.Object.FieldModify,distance=..80] if score @s 2266.Color = $Temp.Color Global at @s positioned ^-7.5 ^-1 ^-7.5 run tag @a[dx=15,dy=50,dz=15] remove 2265.Hit + +# 演出 + execute positioned ~ ~100 ~ run playsound entity.generic.explode hostile @a[distance=..200] ~ ~ ~ 2 1 1 + execute positioned ~ ~100 ~ run playsound entity.lightning_bolt.thunder hostile @a[distance=..200] ~ ~ ~ 2 1 1 + execute as @e[type=item_display,tag=CO.Object.FieldModify,distance=..80] unless score @s 2266.Color = $Temp.Color Global at @s run function asset:object/2265.field_modify_manager/tick/attack_vfx + +# ダメージ + data modify storage api: Argument.Damage set from storage asset:context this.Damage.Amount + data modify storage api: Argument.AttackType set from storage asset:context this.Damage.Type + data modify storage api: Argument.ElementType set from storage asset:context this.Damage.Element + data modify storage api: Argument.MobUUID set from storage asset:context this.MobUUID + function api:damage/modifier + execute as @a[tag=2265.Hit] run function api:damage/ + function api:damage/reset + tag @a remove 2265.Hit + +# リセット + scoreboard players reset $Temp.Color Global + scoreboard players set @s 2265.Progress.Current 0 + +# Bossbar変更 + data modify storage asset:context this.Text set from storage asset:context this.Target[0] + execute store result storage asset:context this.Index int 1 run scoreboard players get @s 2265.AttackCount.Inc + function asset:object/2265.field_modify_manager/tick/set_bossbar_color.m with storage asset:context this + scoreboard players add @s 2265.AttackCount.Inc 2 + +# カウントを減らし、攻撃が終了した場合自身を消去 + data remove storage asset:context this.Target[0] + scoreboard players remove @s 2265.AttackCount 1 + execute if score @s 2265.AttackCount matches ..0 run function asset:object/2265.field_modify_manager/tick/kill diff --git a/Asset/data/asset/functions/object/2265.field_modify_manager/tick/attack_vfx.mcfunction b/Asset/data/asset/functions/object/2265.field_modify_manager/tick/attack_vfx.mcfunction new file mode 100644 index 00000000000..b6685c8539b --- /dev/null +++ b/Asset/data/asset/functions/object/2265.field_modify_manager/tick/attack_vfx.mcfunction @@ -0,0 +1,61 @@ +#> asset:object/2265.field_modify_manager/tick/attack_vfx +# +# Objectのtick時の処理 +# +# @within asset:object/2265.field_modify_manager/tick/attack + +# [ImportKey]: NobwRALgngDgpmAXGANgSwHYIDRgK55oAmSYAjAKwBMZcAxlQEYC0AZgMxGvMAsPZANmaMKcAAzMA7K0YBDCnTKMqsugE4wuDLIC2CZIC3fAARlNYGLIBOugM5JwdAPZ4MEJAA5crS4532wAG6yKHj64AAeSFIAdBS4UFGSsQC+ybgQjv5BIWFgkYhJcWAJiDEUqbiOrKw2cG6IYriMcABeaHCWSI1gaDYAQq3tlgCiAI54wShQAMoWdHAkiKzBtRXg0PCk6FhmBMSkdIzsDNJCklREVLxUkixqFAI8zGTuPIystLLu7HCyZtp6UjGMjMJwwBK4CzWHR2RAOZyuDxeHx+OGBYKhfz5MrxJCFCqQTJo7KYtH5Qq4gopNJgKo1OpdJqDDqMnr9ZkjcaTGZzBZIZYoVZpdawfSoTA4fCERZgSS-IiMASybg8OgUIi8WRqISyd6yZgCG7sATVVjq2Rif66MXA0GOcFmKG2fxOFz1Txgby+LIY3LYinFKI8anpIngEl+vGxSm8EO06q1erdZptFkNXC9AapzkTFBTWaqPlLFZwNaQUVbCW7aWkXU8CgUMh0fXvMgSHhEWRwZiyARkfWsOBUHgCRhqW4Cdx-LTWoEmO3ghcQ8xWZ1o12IxAer2o8O+rGJaOB0pkOMZH05A9UoolZ5xumJ1kpoaszMcsa5-O8xYCoXYEWbMg2ySnsMriDwXZqMsPaMEQIIdhQ3BqJw7DMFOk5wB2kijqwVBWoChjzmCUBLkujqrjCLoIu6yLesS+5koeN5IKe5Q0ue9GXox16UqxBIPgy6ZgM+abdG+2YftyBbzD+JZlhsYrAdW+zIHQdAmqwigglQMjdnw7hXGo9AapIYiSGoVDsIwzQjqYM4EWAtrEeR0KwvCbpIp6KIXqSERMZSwZsaGPmRjxx6BfxCaCcmHKvuyElcnmPKFrJgqlskAC6QA_3 + # 線 1-copy + particle explosion ^-7.5 ^ ^4.5 1 1 1 0 1 + particle explosion ^-5.35714 ^ ^4.5 1 1 1 0 1 + particle explosion ^-3.21429 ^ ^4.5 1 1 1 0 1 + particle explosion ^-1.07143 ^ ^4.5 1 1 1 0 1 + particle explosion ^1.07143 ^ ^4.5 1 1 1 0 1 + particle explosion ^3.21429 ^ ^4.5 1 1 1 0 1 + particle explosion ^5.35714 ^ ^4.5 1 1 1 0 1 + particle explosion ^7.5 ^ ^4.5 1 1 1 0 1 + # 線 1 + particle explosion ^-7.5 ^ ^-7.5 1 1 1 0 1 + particle explosion ^-5.35714 ^ ^-7.5 1 1 1 0 1 + particle explosion ^-3.21429 ^ ^-7.5 1 1 1 0 1 + particle explosion ^-1.07143 ^ ^-7.5 1 1 1 0 1 + particle explosion ^1.07143 ^ ^-7.5 1 1 1 0 1 + particle explosion ^3.21429 ^ ^-7.5 1 1 1 0 1 + particle explosion ^5.35714 ^ ^-7.5 1 1 1 0 1 + particle explosion ^7.5 ^ ^-7.5 1 1 1 0 1 + # 線 1-copy + particle explosion ^-7.5 ^ ^7.5 1 1 1 0 1 + particle explosion ^-5.35714 ^ ^7.5 1 1 1 0 1 + particle explosion ^-3.21429 ^ ^7.5 1 1 1 0 1 + particle explosion ^-1.07143 ^ ^7.5 1 1 1 0 1 + particle explosion ^1.07143 ^ ^7.5 1 1 1 0 1 + particle explosion ^3.21429 ^ ^7.5 1 1 1 0 1 + particle explosion ^5.35714 ^ ^7.5 1 1 1 0 1 + particle explosion ^7.5 ^ ^7.5 1 1 1 0 1 + # 線 1-copy + particle explosion ^-7.5 ^ ^-4.5 1 1 1 0 1 + particle explosion ^-5.35714 ^ ^-4.5 1 1 1 0 1 + particle explosion ^-3.21429 ^ ^-4.5 1 1 1 0 1 + particle explosion ^-1.07143 ^ ^-4.5 1 1 1 0 1 + particle explosion ^1.07143 ^ ^-4.5 1 1 1 0 1 + particle explosion ^3.21429 ^ ^-4.5 1 1 1 0 1 + particle explosion ^5.35714 ^ ^-4.5 1 1 1 0 1 + particle explosion ^7.5 ^ ^-4.5 1 1 1 0 1 + # 線 1-copy-copy + particle explosion ^-7.5 ^ ^-1.5 1 1 1 0 1 + particle explosion ^-5.35714 ^ ^-1.5 1 1 1 0 1 + particle explosion ^-3.21429 ^ ^-1.5 1 1 1 0 1 + particle explosion ^-1.07143 ^ ^-1.5 1 1 1 0 1 + particle explosion ^1.07143 ^ ^-1.5 1 1 1 0 1 + particle explosion ^3.21429 ^ ^-1.5 1 1 1 0 1 + particle explosion ^5.35714 ^ ^-1.5 1 1 1 0 1 + particle explosion ^7.5 ^ ^-1.5 1 1 1 0 1 + # 線 1-copy-copy-copy + particle explosion ^-7.5 ^ ^1.5 1 1 1 0 1 + particle explosion ^-5.35714 ^ ^1.5 1 1 1 0 1 + particle explosion ^-3.21429 ^ ^1.5 1 1 1 0 1 + particle explosion ^-1.07143 ^ ^1.5 1 1 1 0 1 + particle explosion ^1.07143 ^ ^1.5 1 1 1 0 1 + particle explosion ^3.21429 ^ ^1.5 1 1 1 0 1 + particle explosion ^5.35714 ^ ^1.5 1 1 1 0 1 + particle explosion ^7.5 ^ ^1.5 1 1 1 0 1 diff --git a/Asset/data/asset/functions/object/2265.field_modify_manager/tick/kill.mcfunction b/Asset/data/asset/functions/object/2265.field_modify_manager/tick/kill.mcfunction new file mode 100644 index 00000000000..8a01b077f2f --- /dev/null +++ b/Asset/data/asset/functions/object/2265.field_modify_manager/tick/kill.mcfunction @@ -0,0 +1,15 @@ +#> asset:object/2265.field_modify_manager/tick/kill +# +# Objectのtick時の処理 +# +# @within asset:object/2265.field_modify_manager/tick/ +# @within asset:object/2265.field_modify_manager/tick/attack + +# ボスバー消去 + bossbar remove asset:co_field_modify + +# 床消去 + tag @e[type=item_display,tag=CO.Object.FieldModify,distance=..80] add 2266.Remove + +# 消去 + kill @s diff --git a/Asset/data/asset/functions/object/2265.field_modify_manager/tick/set_bossbar_color.m.mcfunction b/Asset/data/asset/functions/object/2265.field_modify_manager/tick/set_bossbar_color.m.mcfunction new file mode 100644 index 00000000000..4c72ae6c791 --- /dev/null +++ b/Asset/data/asset/functions/object/2265.field_modify_manager/tick/set_bossbar_color.m.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2265.field_modify_manager/tick/set_bossbar_color.m +# +# Objectのtick時の処理 +# +# @within asset:object/2265.field_modify_manager/tick/attack + +# + $data modify storage asset:context this.BossBar.Color[$(Index)] set value '{"text":"$(Text)","color":"#5E5E5E","font":"mob/456/modify","bold":false}' diff --git a/Asset/data/asset/functions/object/2265.field_modify_manager/tick/set_bossbar_name.mcfunction b/Asset/data/asset/functions/object/2265.field_modify_manager/tick/set_bossbar_name.mcfunction new file mode 100644 index 00000000000..e8fd2249c84 --- /dev/null +++ b/Asset/data/asset/functions/object/2265.field_modify_manager/tick/set_bossbar_name.mcfunction @@ -0,0 +1,15 @@ +#> asset:object/2265.field_modify_manager/tick/set_bossbar_name +# +# Objectのtick時の処理 +# +# @within asset:object/2265.field_modify_manager/tick/ + +# ピリオド + scoreboard players add @s 2265.Period 1 + execute if score @s 2265.Period matches 30.. run scoreboard players set @s 2265.Period 0 + execute if score @s 2265.Period matches ..9 run data modify storage asset:context this.BossBar.Period set value ['{"text":".","bold":false,"font":"default"}','{"text":"\\uE004","font":"uniform","bold":false}'] + execute if score @s 2265.Period matches 10..19 run data modify storage asset:context this.BossBar.Period set value ['{"text":"..","bold":false,"font":"default"}','{"text":"\\uE002","font":"uniform","bold":false}'] + execute if score @s 2265.Period matches 20.. run data modify storage asset:context this.BossBar.Period set value ['{"text":"...","bold":false,"font":"default"}'] + +# ボスバー表示 + bossbar set asset:co_field_modify name [{"text":"> FIELD MODIFY PROCEEDING","color": "white","bold": true},{"storage":"asset:context","nbt":"this.BossBar.Period[]","interpret":true,"separator":""},{"text":" ","color": "white","bold": true},{"storage":"asset:context","nbt":"this.BossBar.Color[]","interpret":true,"separator":" "}] diff --git a/Asset/data/asset/functions/object/2265.field_modify_manager/tick/show_bossbar.mcfunction b/Asset/data/asset/functions/object/2265.field_modify_manager/tick/show_bossbar.mcfunction new file mode 100644 index 00000000000..8b543fa1512 --- /dev/null +++ b/Asset/data/asset/functions/object/2265.field_modify_manager/tick/show_bossbar.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/2265.field_modify_manager/tick/show_bossbar +# +# Objectのtick時の処理 +# +# @within asset:object/2265.field_modify_manager/tick/ + +# ボスバー表示 + bossbar add asset:co_field_modify {"text":""} + bossbar set asset:co_field_modify color blue + bossbar set asset:co_field_modify players @a[distance=..80] + execute store result bossbar asset:co_field_modify max run scoreboard players get @s 2265.Progress.Max diff --git a/Asset/data/asset/functions/object/2266.field_modify/_index.d.mcfunction b/Asset/data/asset/functions/object/2266.field_modify/_index.d.mcfunction new file mode 100644 index 00000000000..14f6f0eca7e --- /dev/null +++ b/Asset/data/asset/functions/object/2266.field_modify/_index.d.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2266.field_modify/_index.d +# @private + +#> tag +# @within function asset:object/2266.field_modify/** + #declare tag CO.Object + #declare tag CO.Object.FieldModify + #declare tag 2266.Remove diff --git a/Asset/data/asset/functions/object/2266.field_modify/init/.mcfunction b/Asset/data/asset/functions/object/2266.field_modify/init/.mcfunction new file mode 100644 index 00000000000..abe3289ac65 --- /dev/null +++ b/Asset/data/asset/functions/object/2266.field_modify/init/.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/2266.field_modify/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/2266/init + +# モデル上書き + function asset:object/2266.field_modify/init/change_model.m with storage asset:context this + +# 色設定 + execute store result score @s 2266.Color run data get storage asset:context this.Color diff --git a/Asset/data/asset/functions/object/2266.field_modify/init/change_model.m.mcfunction b/Asset/data/asset/functions/object/2266.field_modify/init/change_model.m.mcfunction new file mode 100644 index 00000000000..26065bfd838 --- /dev/null +++ b/Asset/data/asset/functions/object/2266.field_modify/init/change_model.m.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2266.field_modify/init/change_model.m +# +# Objectのinit時の処理 +# +# @within asset:object/2266.field_modify/init/ + +# モデル上書き + $data modify entity @s item set value {id:"minecraft:stick",Count:1b,tag:{CustomModelData:$(Model)}} diff --git a/Asset/data/asset/functions/object/2266.field_modify/load.mcfunction b/Asset/data/asset/functions/object/2266.field_modify/load.mcfunction new file mode 100644 index 00000000000..86000374b7d --- /dev/null +++ b/Asset/data/asset/functions/object/2266.field_modify/load.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2266.field_modify/load +# +# Objectに利用するスコアボード等の初期化処理 +# +# @within tag/function asset:object/load + +#> 定義類はここに +# @within function asset:object/2266.field_modify/** + scoreboard objectives add 2266.Color dummy + scoreboard objectives add 2266.RemoveTimer dummy diff --git a/Asset/data/asset/functions/object/2266.field_modify/register.mcfunction b/Asset/data/asset/functions/object/2266.field_modify/register.mcfunction new file mode 100644 index 00000000000..67e57ce0065 --- /dev/null +++ b/Asset/data/asset/functions/object/2266.field_modify/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2266.field_modify/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2266/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 2266 +# フィールド(オプション) + # data modify storage asset:object Field.myValue set value \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2266.field_modify/summon/.mcfunction b/Asset/data/asset/functions/object/2266.field_modify/summon/.mcfunction new file mode 100644 index 00000000000..92f6111b121 --- /dev/null +++ b/Asset/data/asset/functions/object/2266.field_modify/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2266.field_modify/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2266/summon + +# 元となるEntityを召喚する + summon item_display ~ ~ ~ {Tags:["ObjectInit","CO.Object","CO.Object.FieldModify"],brightness:{sky:15,block:15},interpolation_duration:5,teleport_duration:1,item:{id:"minecraft:stick",Count:1b,tag:{CustomModelData:20591}},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,8.0f,0.0f]}} diff --git a/Asset/data/asset/functions/object/2266.field_modify/summon/debug.mcfunction b/Asset/data/asset/functions/object/2266.field_modify/summon/debug.mcfunction new file mode 100644 index 00000000000..7e823f6bf02 --- /dev/null +++ b/Asset/data/asset/functions/object/2266.field_modify/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2266.field_modify/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 2266 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2266.field_modify/tick/.mcfunction b/Asset/data/asset/functions/object/2266.field_modify/tick/.mcfunction new file mode 100644 index 00000000000..2673211a0e4 --- /dev/null +++ b/Asset/data/asset/functions/object/2266.field_modify/tick/.mcfunction @@ -0,0 +1,19 @@ +#> asset:object/2266.field_modify/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2266/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + execute if entity @s[tag=2266.Remove] run scoreboard players add @s 2266.RemoveTimer 1 + +# 拡大 + execute if score @s General.Object.Tick matches 3 run data modify entity @s start_interpolation set value -1 + execute if score @s General.Object.Tick matches 3 run data modify entity @s transformation.scale set value [15.0f,2.0f,15.0f] + execute if score @s 2266.RemoveTimer matches 3 run data modify entity @s start_interpolation set value -1 + execute if score @s 2266.RemoveTimer matches 3 run data modify entity @s transformation.scale set value [0.0f,8.0f,0.0f] + +# 消滅処理 + kill @s[scores={General.Object.Tick=1000..}] + kill @s[scores={2266.RemoveTimer=10..}] diff --git a/Asset/data/asset/functions/object/2267.gem_shot_attack/_index.d.mcfunction b/Asset/data/asset/functions/object/2267.gem_shot_attack/_index.d.mcfunction new file mode 100644 index 00000000000..ad2e83c8c56 --- /dev/null +++ b/Asset/data/asset/functions/object/2267.gem_shot_attack/_index.d.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/2267.gem_shot_attack/_index.d +# @private + +#> tag +# @within function asset:object/2267.gem_shot_attack/** + #declare tag CO.Object + #declare tag 2267.Root + #declare tag 2267.AttackPosition + #declare tag 2267.Hit diff --git a/Asset/data/asset/functions/object/2267.gem_shot_attack/init/.mcfunction b/Asset/data/asset/functions/object/2267.gem_shot_attack/init/.mcfunction new file mode 100644 index 00000000000..538d1011a35 --- /dev/null +++ b/Asset/data/asset/functions/object/2267.gem_shot_attack/init/.mcfunction @@ -0,0 +1,5 @@ +#> asset:object/2267.gem_shot_attack/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/2267/init diff --git a/Asset/data/asset/functions/object/2267.gem_shot_attack/load.mcfunction b/Asset/data/asset/functions/object/2267.gem_shot_attack/load.mcfunction new file mode 100644 index 00000000000..b167a91701d --- /dev/null +++ b/Asset/data/asset/functions/object/2267.gem_shot_attack/load.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/2267.gem_shot_attack/load +# +# Objectに利用するスコアボード等の初期化処理 +# +# @within tag/function asset:object/load + +#> 定義類はここに +# @within function asset:object/2267.gem_shot_attack/** + # scoreboard objectives add diff --git a/Asset/data/asset/functions/object/2267.gem_shot_attack/register.mcfunction b/Asset/data/asset/functions/object/2267.gem_shot_attack/register.mcfunction new file mode 100644 index 00000000000..6c73dddb4bb --- /dev/null +++ b/Asset/data/asset/functions/object/2267.gem_shot_attack/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2267.gem_shot_attack/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2267/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 2267 +# フィールド(オプション) + # data modify storage asset:object Field.myValue set value \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2267.gem_shot_attack/summon/.mcfunction b/Asset/data/asset/functions/object/2267.gem_shot_attack/summon/.mcfunction new file mode 100644 index 00000000000..5bbff39f74e --- /dev/null +++ b/Asset/data/asset/functions/object/2267.gem_shot_attack/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2267.gem_shot_attack/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2267/summon + +# 元となるEntityを召喚する + summon marker ~ ~ ~ {Tags:["ObjectInit","CO.Object","2267.Root"]} diff --git a/Asset/data/asset/functions/object/2267.gem_shot_attack/summon/debug.mcfunction b/Asset/data/asset/functions/object/2267.gem_shot_attack/summon/debug.mcfunction new file mode 100644 index 00000000000..283a50ff29c --- /dev/null +++ b/Asset/data/asset/functions/object/2267.gem_shot_attack/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2267.gem_shot_attack/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 2267 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/.mcfunction b/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/.mcfunction new file mode 100644 index 00000000000..8c9b0ca2667 --- /dev/null +++ b/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/.mcfunction @@ -0,0 +1,30 @@ +#> asset:object/2267.gem_shot_attack/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2267/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# 攻撃 + execute if entity @s[scores={General.Object.Tick=6}] run function asset:object/2267.gem_shot_attack/tick/set_attack_pos_1 + execute if entity @s[scores={General.Object.Tick=6}] as @e[type=area_effect_cloud,tag=2267.AttackPosition,distance=..50] at @s run function asset:object/2267.gem_shot_attack/tick/prediction + execute if entity @s[scores={General.Object.Tick=37}] positioned ~ ~100 ~ run playsound entity.generic.explode hostile @a[distance=..180] ~ ~ ~ 0.5 0.7 0.5 + execute if entity @s[scores={General.Object.Tick=37}] at @e[type=area_effect_cloud,tag=2267.AttackPosition,distance=..50] run function asset:object/2267.gem_shot_attack/tick/hit_1 + execute if entity @s[scores={General.Object.Tick=37}] run function asset:object/2267.gem_shot_attack/tick/damage + + execute if entity @s[scores={General.Object.Tick=39}] run function asset:object/2267.gem_shot_attack/tick/set_attack_pos_2 + execute if entity @s[scores={General.Object.Tick=39}] as @e[type=area_effect_cloud,tag=2267.AttackPosition,distance=..50] at @s run function asset:object/2267.gem_shot_attack/tick/prediction + execute if entity @s[scores={General.Object.Tick=70}] positioned ~ ~100 ~ run playsound entity.generic.explode hostile @a[distance=..180] ~ ~ ~ 0.5 0.8 0.5 + execute if entity @s[scores={General.Object.Tick=70}] at @e[type=area_effect_cloud,tag=2267.AttackPosition,distance=..50] run function asset:object/2267.gem_shot_attack/tick/hit_2 + execute if entity @s[scores={General.Object.Tick=70}] run function asset:object/2267.gem_shot_attack/tick/damage + + execute if entity @s[scores={General.Object.Tick=72}] run function asset:object/2267.gem_shot_attack/tick/set_attack_pos_3 + execute if entity @s[scores={General.Object.Tick=72}] as @e[type=area_effect_cloud,tag=2267.AttackPosition,distance=..50] at @s run function asset:object/2267.gem_shot_attack/tick/prediction + execute if entity @s[scores={General.Object.Tick=103}] positioned ~ ~100 ~ run playsound entity.generic.explode hostile @a[distance=..180] ~ ~ ~ 0.5 0.8 0.5 + execute if entity @s[scores={General.Object.Tick=103}] at @e[type=area_effect_cloud,tag=2267.AttackPosition,distance=..50] run function asset:object/2267.gem_shot_attack/tick/hit_3 + execute if entity @s[scores={General.Object.Tick=103}] run function asset:object/2267.gem_shot_attack/tick/damage + +# 消滅処理 + kill @s[scores={General.Object.Tick=106..}] diff --git a/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/damage.mcfunction b/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/damage.mcfunction new file mode 100644 index 00000000000..697eb18fcb4 --- /dev/null +++ b/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/damage.mcfunction @@ -0,0 +1,15 @@ +#> asset:object/2267.gem_shot_attack/tick/damage +# +# Objectのtick時の処理 +# +# @within asset:object/2267.gem_shot_attack/tick/ + +# ダメージ + data modify storage api: Argument.Damage set from storage asset:context this.Damage.Amount + data modify storage api: Argument.AttackType set from storage asset:context this.Damage.Type + data modify storage api: Argument.ElementType set from storage asset:context this.Damage.Element + data modify storage api: Argument.MobUUID set from storage asset:context this.MobUUID + function api:damage/modifier_manual + execute as @a[tag=2267.Hit] run function api:damage/ + function api:damage/reset + tag @a remove 2267.Hit diff --git a/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/hit_1.mcfunction b/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/hit_1.mcfunction new file mode 100644 index 00000000000..3d3b369da0b --- /dev/null +++ b/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/hit_1.mcfunction @@ -0,0 +1,19 @@ +#> asset:object/2267.gem_shot_attack/tick/hit_1 +# +# Objectのtick時の処理 +# +# @within asset:object/2267.gem_shot_attack/tick/ + +# ヒット判定 + tag @a[tag=DXYZ] remove DXYZ + data modify storage lib: args.dx set value 5 + data modify storage lib: args.dy set value 10 + data modify storage lib: args.dz set value 4 + data modify storage lib: args.selector set value "@a[tag=!PlayerShouldInvulnerable,distance=..10]" + execute positioned ^ ^ ^ run function lib:rotatable_dxyz/m with storage lib: args + tag @a[tag=DXYZ] add 2267.Hit + tag @a[tag=DXYZ] remove DXYZ + +# 演出 + particle explosion ~ ~1 ~ 3 1 3 0 20 force + particle lava ~ ~1 ~ 3 1 3 0.2 10 diff --git a/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/hit_2.mcfunction b/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/hit_2.mcfunction new file mode 100644 index 00000000000..2fd66588045 --- /dev/null +++ b/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/hit_2.mcfunction @@ -0,0 +1,21 @@ +#> asset:object/2267.gem_shot_attack/tick/hit_2 +# +# Objectのtick時の処理 +# +# @within asset:object/2267.gem_shot_attack/tick/ + +# ヒット判定 + # execute positioned ^1.5 ^ ^ run tag @a[tag=!PlayerShouldInvulnerable,distance=..4] add 2176.Hit + # execute positioned ^-1.5 ^ ^ run tag @a[tag=!PlayerShouldInvulnerable,distance=..4] add 2176.Hit + tag @a[tag=DXYZ] remove DXYZ + data modify storage lib: args.dx set value 5 + data modify storage lib: args.dy set value 10 + data modify storage lib: args.dz set value 4 + data modify storage lib: args.selector set value "@a[tag=!PlayerShouldInvulnerable,distance=..10]" + execute positioned ^ ^ ^ run function lib:rotatable_dxyz/m with storage lib: args + tag @a[tag=DXYZ] add 2267.Hit + tag @a[tag=DXYZ] remove DXYZ + +# 演出 + particle explosion ~ ~1 ~ 3 1 3 0 20 force + particle lava ~ ~1 ~ 3 1 3 0.2 10 diff --git a/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/hit_3.mcfunction b/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/hit_3.mcfunction new file mode 100644 index 00000000000..dd6986e006a --- /dev/null +++ b/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/hit_3.mcfunction @@ -0,0 +1,21 @@ +#> asset:object/2267.gem_shot_attack/tick/hit_3 +# +# Objectのtick時の処理 +# +# @within asset:object/2267.gem_shot_attack/tick/ + +# ヒット判定 + # execute positioned ^1.5 ^ ^ run tag @a[tag=!PlayerShouldInvulnerable,distance=..4] add 2267.Hit + # execute positioned ^-1.5 ^ ^ run tag @a[tag=!PlayerShouldInvulnerable,distance=..4] add 2267.Hit + tag @a[tag=DXYZ] remove DXYZ + data modify storage lib: args.dx set value 5 + data modify storage lib: args.dy set value 10 + data modify storage lib: args.dz set value 4 + data modify storage lib: args.selector set value "@a[tag=!PlayerShouldInvulnerable,distance=..10]" + execute positioned ^ ^ ^ run function lib:rotatable_dxyz/m with storage lib: args + tag @a[tag=DXYZ] add 2267.Hit + tag @a[tag=DXYZ] remove DXYZ + +# 演出 + particle explosion ~ ~1 ~ 3 1 3 0 20 force + particle lava ~ ~1 ~ 3 1 3 0.2 10 diff --git a/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/prediction.mcfunction b/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/prediction.mcfunction new file mode 100644 index 00000000000..29f4d085265 --- /dev/null +++ b/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/prediction.mcfunction @@ -0,0 +1,18 @@ +#> asset:object/2267.gem_shot_attack/tick/prediction +# +# Objectのtick時の処理 +# +# @within asset:object/2267.gem_shot_attack/tick/ + +# 地面が無ければ消す + execute if block ~ ~-1 ~ #lib:no_collision run return run kill @s + +# 予告 + tp @s ~ ~ ~ ~ 0 + data modify storage api: Argument.ID set value 2113 + data modify storage api: Argument.FieldOverride.RotationX set from entity @s Rotation[0] + data modify storage api: Argument.FieldOverride.Color set value 3381759 + data modify storage api: Argument.FieldOverride.Scale set value [10f,8f] + data modify storage api: Argument.FieldOverride.Interpolation set value 10 + data modify storage api: Argument.FieldOverride.Tick set value 35 + execute positioned ^ ^0.5 ^-4 run function api:object/summon diff --git a/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/set_attack_pos_1.mcfunction b/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/set_attack_pos_1.mcfunction new file mode 100644 index 00000000000..e2998624912 --- /dev/null +++ b/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/set_attack_pos_1.mcfunction @@ -0,0 +1,19 @@ +#> asset:object/2267.gem_shot_attack/tick/set_attack_pos_1 +# +# Objectのtick時の処理 +# +# @within asset:object/2267.gem_shot_attack/tick/ + +# [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkmAIyUAMAzAGYBGAHCgLR11N3sAsKOgFZ2AQyZCATOxpCmpFnQDsiunFFgCAO1EBbBMkBhigAJKmsDFEY9AZyTgUAe0JaISFgRRxXcDPbAAbqLYhAbgAB5INARQUQC+cQTWpGiEdoi0BDYQVm6I0WBw2NhoMDYGtAUYjjkQBgVoNgCixaXlTQCOhMHYUADKll7kiAzB5QkAukA_3 +# 円 1 +execute positioned ^0 ^ ^-10 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^7.07107 ^ ^-7.07107 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^10 ^ ^0 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^7.07107 ^ ^7.07107 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^0 ^ ^10 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-7.07107 ^ ^7.07107 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-10 ^ ^0 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-7.07107 ^ ^-7.07107 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} + +# 角度調整 + execute as @e[type=area_effect_cloud,tag=2267.AttackPosition,distance=..50] at @s facing entity @e[type=marker,tag=2267.Root,distance=..50,limit=1] feet run tp @s ~ ~ ~ ~180 0 diff --git a/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/set_attack_pos_2.mcfunction b/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/set_attack_pos_2.mcfunction new file mode 100644 index 00000000000..1d6a0b3ffc3 --- /dev/null +++ b/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/set_attack_pos_2.mcfunction @@ -0,0 +1,27 @@ +#> asset:object/2267.gem_shot_attack/tick/set_attack_pos_2 +# +# Objectのtick時の処理 +# +# @within asset:object/2267.gem_shot_attack/tick/ + +# [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkmAIyUAMAzAGYBGAHCgLR11N3sAsKOgFZ2AQyZCATOxpCmpFnQDsiunFFgCAO1EBbBMkBhigAJKmsDFEY9AZyTgUAe0JaISSgDYCKOK7gZ7MAA3UWxCA3AADyQaAigYgF8EgmtSNEI7REoWAhsIKzdEWLA4bGw0GBsDWmKMR3yIA2K0GwBRMoqq1oBHQlDsKABlSx9yRAZQqqSAXSA_3 +# 円 1 +execute positioned ^0 ^0.05 ^-18 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^6.8883 ^0.1 ^-16.62983 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^12.72792 ^ ^-12.72792 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^16.62983 ^0.05 ^-6.8883 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^18 ^0.1 ^0 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^16.62983 ^ ^6.8883 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^12.72792 ^0.05 ^12.72792 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^6.8883 ^0.1 ^16.62983 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^0 ^ ^18 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-6.8883 ^0.05 ^16.62983 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-12.72792 ^0.1 ^12.72792 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-16.62983 ^ ^6.8883 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-18 ^0.05 ^0 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-16.62983 ^0.1 ^-6.8883 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-12.72792 ^ ^-12.72792 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-6.8883 ^0.05 ^-16.62983 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} + +# 角度調整 + execute as @e[type=area_effect_cloud,tag=2267.AttackPosition,distance=..50] at @s facing entity @e[type=marker,tag=2267.Root,distance=..50,limit=1] feet run tp @s ~ ~ ~ ~180 0 diff --git a/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/set_attack_pos_3.mcfunction b/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/set_attack_pos_3.mcfunction new file mode 100644 index 00000000000..d802facb338 --- /dev/null +++ b/Asset/data/asset/functions/object/2267.gem_shot_attack/tick/set_attack_pos_3.mcfunction @@ -0,0 +1,35 @@ +#> asset:object/2267.gem_shot_attack/tick/set_attack_pos_3 +# +# Objectのtick時の処理 +# +# @within asset:object/2267.gem_shot_attack/tick/ + +# [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkmAIyUAMAzAGYBGAHCgLR11N3sAsKOgFZ2AQyZCATOxpCmpFnQDsiunFFgCAO1EBbBMkBhigAJKmsDFEY9AZyTgUAe0JaISSXwIo4ruBntgAG6i2IQG4AAeSDQEUNEAvvEE1qRohHaIkgBsBDYQVm6IMWBw2NhoMDYGtMUYjvkQBsVoNgCiZRVVrQCOhCHYUADKlt7kiAwhVYkAukA_3 +# 円 1 +execute positioned ^0 ^ ^-26 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^6.7293 ^ ^-25.11407 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^13 ^ ^-22.51666 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^18.38478 ^ ^-18.38478 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^22.51666 ^ ^-13 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^25.11407 ^ ^-6.7293 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^26 ^ ^0 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^25.11407 ^ ^6.7293 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^22.51666 ^ ^13 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^18.38478 ^ ^18.38478 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^13 ^ ^22.51666 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^6.7293 ^ ^25.11407 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^0 ^ ^26 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-6.7293 ^ ^25.11407 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-13 ^ ^22.51666 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-18.38478 ^ ^18.38478 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-22.51666 ^ ^13 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-25.11407 ^ ^6.7293 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-26 ^ ^0 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-25.11407 ^ ^-6.7293 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-22.51666 ^ ^-13 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-18.38478 ^ ^-18.38478 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-13 ^ ^-22.51666 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} +execute positioned ^-6.7293 ^ ^-25.11407 run summon area_effect_cloud ~ ~ ~ {Duration:33,Tags:["2267.AttackPosition"]} + +# 角度調整 + execute as @e[type=area_effect_cloud,tag=2267.AttackPosition,distance=..50] at @s facing entity @e[type=marker,tag=2267.Root,distance=..50,limit=1] feet run tp @s ~ ~ ~ ~180 0 diff --git a/Asset/data/asset/functions/object/2268.gem_upper_shot/_index.d.mcfunction b/Asset/data/asset/functions/object/2268.gem_upper_shot/_index.d.mcfunction new file mode 100644 index 00000000000..e4b43c3e986 --- /dev/null +++ b/Asset/data/asset/functions/object/2268.gem_upper_shot/_index.d.mcfunction @@ -0,0 +1,7 @@ +#> asset:object/2268.gem_upper_shot/_index.d +# @private + +#> tag +# @within function asset:object/2268.gem_upper_shot/** + #declare tag CO.Object + #declare tag 2268.IsNoDamage diff --git a/Asset/data/asset/functions/object/2268.gem_upper_shot/init/.mcfunction b/Asset/data/asset/functions/object/2268.gem_upper_shot/init/.mcfunction new file mode 100644 index 00000000000..dac4e508871 --- /dev/null +++ b/Asset/data/asset/functions/object/2268.gem_upper_shot/init/.mcfunction @@ -0,0 +1,25 @@ +#> asset:object/2268.gem_upper_shot/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/2268/init + +# 角度をランダムに設定 + data modify storage asset:context this.Rotation set value [0.0f, -90.0f] + execute store result entity @s Rotation[0] float 0.1 run random value 0..3600 + execute store result storage asset:context this.Rotation[0] float 0.1 run random value 0..3600 + execute store result storage asset:context this.Rotation[1] float 0.1 run random value -900..-700 + +# 予兆・攻撃時間 + scoreboard players set @s 2268.AttackTime 60 + execute if data storage asset:context this.PredictionTime store result score @s 2268.PredictionTime run data get storage asset:context this.PredictionTime + execute if data storage asset:context this.AttackTime store result score @s 2268.AttackTime run data get storage asset:context this.AttackTime + execute unless data storage asset:context this.PredictionTime store result storage asset:context this.PredictionTime int 1 run scoreboard players set @s 2268.PredictionTime 60 + +# その他時間 + execute store result score @s 2268.VfxTime store result score @s 2268.KillTime run scoreboard players get @s 2268.AttackTime + scoreboard players remove @s 2268.VfxTime 3 + scoreboard players add @s 2268.KillTime 5 + +# 演出のみ + execute if data storage asset:context this{IsNoDamage:true} run tag @s add 2268.IsNoDamage diff --git a/Asset/data/asset/functions/object/2268.gem_upper_shot/load.mcfunction b/Asset/data/asset/functions/object/2268.gem_upper_shot/load.mcfunction new file mode 100644 index 00000000000..76a4e8ad32c --- /dev/null +++ b/Asset/data/asset/functions/object/2268.gem_upper_shot/load.mcfunction @@ -0,0 +1,12 @@ +#> asset:object/2268.gem_upper_shot/load +# +# Objectに利用するスコアボード等の初期化処理 +# +# @within tag/function asset:object/load + +#> 定義類はここに +# @within function asset:object/2268.gem_upper_shot/** + scoreboard objectives add 2268.PredictionTime dummy + scoreboard objectives add 2268.AttackTime dummy + scoreboard objectives add 2268.VfxTime dummy + scoreboard objectives add 2268.KillTime dummy diff --git a/Asset/data/asset/functions/object/2268.gem_upper_shot/register.mcfunction b/Asset/data/asset/functions/object/2268.gem_upper_shot/register.mcfunction new file mode 100644 index 00000000000..3fd12cb6f52 --- /dev/null +++ b/Asset/data/asset/functions/object/2268.gem_upper_shot/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2268.gem_upper_shot/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2268/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 2268 +# フィールド(オプション) + # data modify storage asset:object Field.myValue set value \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2268.gem_upper_shot/summon/.mcfunction b/Asset/data/asset/functions/object/2268.gem_upper_shot/summon/.mcfunction new file mode 100644 index 00000000000..88179fe909a --- /dev/null +++ b/Asset/data/asset/functions/object/2268.gem_upper_shot/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2268.gem_upper_shot/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2268/summon + +# 元となるEntityを召喚する + summon item_display ~ ~ ~ {Tags:["ObjectInit","CO.Object"],brightness:{sky:15,block:15},interpolation_duration:3,teleport_duration:1,item:{id:"minecraft:stick",Count:1b,tag:{CustomModelData:20595}},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/2268.gem_upper_shot/summon/debug.mcfunction b/Asset/data/asset/functions/object/2268.gem_upper_shot/summon/debug.mcfunction new file mode 100644 index 00000000000..6f04f2b520b --- /dev/null +++ b/Asset/data/asset/functions/object/2268.gem_upper_shot/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2268.gem_upper_shot/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 2268 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2268.gem_upper_shot/tick/.mcfunction b/Asset/data/asset/functions/object/2268.gem_upper_shot/tick/.mcfunction new file mode 100644 index 00000000000..0c877080d12 --- /dev/null +++ b/Asset/data/asset/functions/object/2268.gem_upper_shot/tick/.mcfunction @@ -0,0 +1,24 @@ +#> asset:object/2268.gem_upper_shot/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2268/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# 予兆 + execute if score @s General.Object.Tick matches 3 run data modify entity @s start_interpolation set value -1 + execute if score @s General.Object.Tick matches 3 if predicate api:global_vars/difficulty/max/2_hard run data modify entity @s transformation.scale set value [12.0f,0.0f,12.0f] + execute if score @s General.Object.Tick matches 3 if predicate api:global_vars/difficulty/min/3_blessless run data modify entity @s transformation.scale set value [18.0f,0.0f,18.0f] + # execute if entity @s[scores={General.Object.Tick=1}] run function asset:object/2268.gem_upper_shot/tick/prediction.m with storage asset:context this + +# 攻撃 + execute if score @s General.Object.Tick = @s 2268.VfxTime run function asset:object/2268.gem_upper_shot/tick/summon_laser + execute unless entity @s[tag=2268.IsNoDamage] if score @s General.Object.Tick = @s 2268.AttackTime run function asset:object/2268.gem_upper_shot/tick/damage + execute if score @s General.Object.Tick = @s 2268.AttackTime run function asset:object/2268.gem_upper_shot/tick/damage_vfx + execute if score @s General.Object.Tick = @s 2268.AttackTime run data modify entity @s start_interpolation set value -1 + execute if score @s General.Object.Tick = @s 2268.AttackTime run data modify entity @s transformation.scale set value [0.0f,0.0f,0.0f] + +# 消滅処理 + execute if score @s General.Object.Tick >= @s 2268.KillTime run kill @s diff --git a/Asset/data/asset/functions/object/2268.gem_upper_shot/tick/damage.mcfunction b/Asset/data/asset/functions/object/2268.gem_upper_shot/tick/damage.mcfunction new file mode 100644 index 00000000000..bc38dee7e65 --- /dev/null +++ b/Asset/data/asset/functions/object/2268.gem_upper_shot/tick/damage.mcfunction @@ -0,0 +1,23 @@ +#> asset:object/2268.gem_upper_shot/tick/damage +# +# Objectのtick時の処理 +# +# @within asset:object/2268.gem_upper_shot/tick/ + +#> Val +# @private +# @within function asset:object/2268.gem_upper_shot/tick/damage + #declare objective CO.UpperShot.Hit + +# ダメージ + data modify storage api: Argument.Damage set from storage asset:context this.Damage.Amount + data modify storage api: Argument.AttackType set from storage asset:context this.Damage.Type + data modify storage api: Argument.ElementType set from storage asset:context this.Damage.Element + data modify storage api: Argument.MobUUID set from storage asset:context this.MobUUID + function api:damage/modifier_manual + execute if predicate api:global_vars/difficulty/max/2_hard run tag @a[tag=!PlayerShouldInvulnerable,distance=..6] add DXYZ + execute if predicate api:global_vars/difficulty/min/3_blessless run tag @a[tag=!PlayerShouldInvulnerable,distance=..9] add DXYZ + execute as @a[tag=DXYZ] unless score @s CO.UpperShot.Hit matches 1.. run function api:damage/ + execute as @a[tag=DXYZ] run scoreboard players set @s CO.UpperShot.Hit 20 + tag @a remove DXYZ + function api:damage/reset diff --git a/Asset/data/asset/functions/object/2268.gem_upper_shot/tick/damage_vfx.mcfunction b/Asset/data/asset/functions/object/2268.gem_upper_shot/tick/damage_vfx.mcfunction new file mode 100644 index 00000000000..f397fb47190 --- /dev/null +++ b/Asset/data/asset/functions/object/2268.gem_upper_shot/tick/damage_vfx.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2268.gem_upper_shot/tick/damage_vfx +# +# Objectのtick時の処理 +# +# @within asset:object/2268.gem_upper_shot/tick/ + +# 演出 + particle explosion ~ ~1 ~ 3 1 3 0 20 force + particle lava ~ ~1 ~ 3 1 3 0.2 10 + playsound entity.generic.explode hostile @a ~ ~ ~ 1 0.8 diff --git a/Asset/data/asset/functions/object/2268.gem_upper_shot/tick/prediction.m.mcfunction b/Asset/data/asset/functions/object/2268.gem_upper_shot/tick/prediction.m.mcfunction new file mode 100644 index 00000000000..a5e2d34804e --- /dev/null +++ b/Asset/data/asset/functions/object/2268.gem_upper_shot/tick/prediction.m.mcfunction @@ -0,0 +1,12 @@ +#> asset:object/2268.gem_upper_shot/tick/prediction.m +# +# Objectのtick時の処理 +# +# @within asset:object/2268.gem_upper_shot/tick/ + +# 予兆 + data modify storage api: Argument.ID set value 2063 + data modify storage api: Argument.FieldOverride.Color set value 3381759 + data modify storage api: Argument.FieldOverride.Scale set value [12f, 12f, 0.05f] + $data modify storage api: Argument.FieldOverride.Tick set value $(PredictionTime) + execute rotated ~ 0 run function api:object/summon diff --git a/Asset/data/asset/functions/object/2268.gem_upper_shot/tick/summon_laser.mcfunction b/Asset/data/asset/functions/object/2268.gem_upper_shot/tick/summon_laser.mcfunction new file mode 100644 index 00000000000..7b1ea1c8fab --- /dev/null +++ b/Asset/data/asset/functions/object/2268.gem_upper_shot/tick/summon_laser.mcfunction @@ -0,0 +1,13 @@ +#> asset:object/2268.gem_upper_shot/tick/summon_laser +# +# Objectのtick時の処理 +# +# @within asset:object/2268.gem_upper_shot/tick/ + +# 演出 + data modify storage api: Argument.ID set value 2263 + data modify storage api: Argument.FieldOverride.Rotation set from entity @s Rotation + data modify storage api: Argument.FieldOverride.Rotation set from storage asset:context this.Rotation + data modify storage api: Argument.FieldOverride.IsShot set value true + data modify storage api: Argument.FieldOverride.IsUpperShot set value true + function api:object/summon diff --git a/Asset/data/asset/functions/object/2269.gem_rocket_punch/_index.d.mcfunction b/Asset/data/asset/functions/object/2269.gem_rocket_punch/_index.d.mcfunction new file mode 100644 index 00000000000..94f1f2d2c40 --- /dev/null +++ b/Asset/data/asset/functions/object/2269.gem_rocket_punch/_index.d.mcfunction @@ -0,0 +1,6 @@ +#> asset:object/2269.gem_rocket_punch/_index.d +# @private + +#> tag +# @within function asset:object/2269.gem_rocket_punch/** + #declare tag 2269.Attack diff --git a/Asset/data/asset/functions/object/2269.gem_rocket_punch/init/.mcfunction b/Asset/data/asset/functions/object/2269.gem_rocket_punch/init/.mcfunction new file mode 100644 index 00000000000..280f5fabf13 --- /dev/null +++ b/Asset/data/asset/functions/object/2269.gem_rocket_punch/init/.mcfunction @@ -0,0 +1,12 @@ +#> asset:object/2269.gem_rocket_punch/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/2269/init + +# 角度を合わせる + tp @s ~ ~ ~ ~ 90 + +# 待機時間 + scoreboard players set @s 2269.WaitTime 200 + execute if data storage asset:context this.WaitTime store result score @s 2269.WaitTime run data get storage asset:context this.WaitTime diff --git a/Asset/data/asset/functions/object/2269.gem_rocket_punch/load.mcfunction b/Asset/data/asset/functions/object/2269.gem_rocket_punch/load.mcfunction new file mode 100644 index 00000000000..d6bdd6aa72c --- /dev/null +++ b/Asset/data/asset/functions/object/2269.gem_rocket_punch/load.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/2269.gem_rocket_punch/load +# +# Objectに利用するスコアボード等の初期化処理 +# +# @within tag/function asset:object/load + +#> 定義類はここに +# @within function asset:object/2269.gem_rocket_punch/** + scoreboard objectives add 2269.WaitTime dummy diff --git a/Asset/data/asset/functions/object/2269.gem_rocket_punch/register.mcfunction b/Asset/data/asset/functions/object/2269.gem_rocket_punch/register.mcfunction new file mode 100644 index 00000000000..7f75b47d356 --- /dev/null +++ b/Asset/data/asset/functions/object/2269.gem_rocket_punch/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2269.gem_rocket_punch/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2269/register + +# 継承(オプション) + data modify storage asset:object Extends append value 2 + 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 2269 +# フィールド(オプション) + # data modify storage asset:object Field.myValue set value diff --git a/Asset/data/asset/functions/object/2269.gem_rocket_punch/summon/.mcfunction b/Asset/data/asset/functions/object/2269.gem_rocket_punch/summon/.mcfunction new file mode 100644 index 00000000000..3477df41426 --- /dev/null +++ b/Asset/data/asset/functions/object/2269.gem_rocket_punch/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2269.gem_rocket_punch/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2269/summon + +# 元となるEntityを召喚する + summon item_display ~ ~ ~ {view_range:16f,brightness:{sky:15,block:15},Tags:["ObjectInit","CO.Object"],interpolation_duration:3,teleport_duration:1,item:{id:"stick",Count:1b,tag:{CustomModelData:20589}},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/2269.gem_rocket_punch/summon/debug.mcfunction b/Asset/data/asset/functions/object/2269.gem_rocket_punch/summon/debug.mcfunction new file mode 100644 index 00000000000..6a2b31119ff --- /dev/null +++ b/Asset/data/asset/functions/object/2269.gem_rocket_punch/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2269.gem_rocket_punch/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 2269 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2269.gem_rocket_punch/tick/.mcfunction b/Asset/data/asset/functions/object/2269.gem_rocket_punch/tick/.mcfunction new file mode 100644 index 00000000000..1f7fa08421a --- /dev/null +++ b/Asset/data/asset/functions/object/2269.gem_rocket_punch/tick/.mcfunction @@ -0,0 +1,14 @@ +#> asset:object/2269.gem_rocket_punch/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2269/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# 出現、待機 + execute unless entity @s[tag=2269.Attack] run function asset:object/2269.gem_rocket_punch/tick/event_wait + +# 攻撃 + execute if entity @s[tag=2269.Attack] run function asset:object/2269.gem_rocket_punch/tick/event_attack diff --git a/Asset/data/asset/functions/object/2269.gem_rocket_punch/tick/damage.mcfunction b/Asset/data/asset/functions/object/2269.gem_rocket_punch/tick/damage.mcfunction new file mode 100644 index 00000000000..e32894b3264 --- /dev/null +++ b/Asset/data/asset/functions/object/2269.gem_rocket_punch/tick/damage.mcfunction @@ -0,0 +1,22 @@ +#> asset:object/2269.gem_rocket_punch/tick/damage +# +# Objectのtick時の処理 +# +# @within asset:object/2269.gem_rocket_punch/tick/event_attack + +# ヒット判定 + data modify storage lib: args.dx set value 5 + data modify storage lib: args.dy set value 5 + data modify storage lib: args.dz set value 5 + data modify storage lib: args.selector set value "@a[tag=!PlayerShouldInvulnerable,distance=..50]" + execute positioned ^ ^ ^5 run function lib:rotatable_dxyz/m with storage lib: args + +# 攻撃 + data modify storage api: Argument.Damage set from storage asset:context this.Damage.Amount + data modify storage api: Argument.AttackType set from storage asset:context this.Damage.Type + data modify storage api: Argument.ElementType set from storage asset:context this.Damage.Element + data modify storage api: Argument.MobUUID set from storage asset:context this.MobUUID + execute as @a[tag=DXYZ] run function asset:object/call.m {method:"check_duplicate"} + execute as @a[tag=DXYZ] if predicate asset:object/0002.duplicate_hit_protection_mixin/is_first_hit run function api:damage/ + function api:damage/reset + tag @a remove DXYZ diff --git a/Asset/data/asset/functions/object/2269.gem_rocket_punch/tick/event_attack.mcfunction b/Asset/data/asset/functions/object/2269.gem_rocket_punch/tick/event_attack.mcfunction new file mode 100644 index 00000000000..4382e5bdb47 --- /dev/null +++ b/Asset/data/asset/functions/object/2269.gem_rocket_punch/tick/event_attack.mcfunction @@ -0,0 +1,37 @@ +#> asset:object/2269.gem_rocket_punch/tick/event_attack +# +# Objectのtick時の処理 +# +# @within asset:object/2269.gem_rocket_punch/tick/ + +# 移動 + execute if score @s General.Object.Tick matches 209 run tp @s ~ ~0.1 ~ ~ ~-4 + execute if score @s General.Object.Tick matches 210 run tp @s ~ ~-0.2 ~ ~ ~8 + execute if score @s General.Object.Tick matches 211 run tp @s ~ ~0.1 ~ ~ ~-4 + execute if score @s General.Object.Tick matches 209..222 at @s run tp @s ^ ^0.05 ^-0.05 + execute if score @s General.Object.Tick matches 233..236 at @s run tp @s ~ ~ ~ ~ ~1 + execute if score @s General.Object.Tick matches 240..245 at @s run tp @s ~ ~ ~ ~ ~-1 + execute if score @s General.Object.Tick matches 246..255 at @s run tp @s ~ ~ ~ ~ ~-7 + execute if score @s General.Object.Tick matches 256.. at @s run tp @s ~ ~ ~ ~ ~-15 + execute if score @s General.Object.Tick matches 233.. at @s run tp @s ^ ^ ^5 + execute if score @s General.Object.Tick matches 233.. run particle soul_fire_flame ~ ~ ~ 0.1 0.1 0.1 0.05 3 + execute if score @s General.Object.Tick matches 233.. run particle cloud ~ ~ ~ 0.1 0.1 0.1 0.05 3 + +# 攻撃 + execute if score @s General.Object.Tick matches 190 positioned ~ ~-3 ~ rotated ~ 0 run function asset:object/2269.gem_rocket_punch/tick/prediction + execute if score @s General.Object.Tick matches 233 at @s run function asset:object/2269.gem_rocket_punch/tick/damage + execute if score @s General.Object.Tick matches 235 at @s run function asset:object/2269.gem_rocket_punch/tick/damage + execute if score @s General.Object.Tick matches 237 at @s run function asset:object/2269.gem_rocket_punch/tick/damage + execute if score @s General.Object.Tick matches 239 at @s run function asset:object/2269.gem_rocket_punch/tick/damage + execute if score @s General.Object.Tick matches 241 at @s run function asset:object/2269.gem_rocket_punch/tick/damage + execute if score @s General.Object.Tick matches 243 at @s run function asset:object/2269.gem_rocket_punch/tick/damage + execute if score @s General.Object.Tick matches 245 at @s run function asset:object/2269.gem_rocket_punch/tick/damage + +# 演出 + execute if score @s General.Object.Tick matches 209 at @s run playsound block.piston.extend hostile @a ~ ~ ~ 2 0.9 + execute if score @s General.Object.Tick matches 233 at @s run playsound entity.firework_rocket.launch hostile @a ~ ~ ~ 2 0.9 + +# 消滅処理 + execute if score @s General.Object.Tick matches 277 run data modify entity @s start_interpolation set value -1 + execute if score @s General.Object.Tick matches 277 run data modify entity @s transformation.scale set value [0.0f,0.0f,0.0f] + kill @s[scores={General.Object.Tick=280..}] diff --git a/Asset/data/asset/functions/object/2269.gem_rocket_punch/tick/event_wait.mcfunction b/Asset/data/asset/functions/object/2269.gem_rocket_punch/tick/event_wait.mcfunction new file mode 100644 index 00000000000..91d9a5547a1 --- /dev/null +++ b/Asset/data/asset/functions/object/2269.gem_rocket_punch/tick/event_wait.mcfunction @@ -0,0 +1,22 @@ +#> asset:object/2269.gem_rocket_punch/tick/event_wait +# +# Objectのtick時の処理 +# +# @within asset:object/2269.gem_rocket_punch/tick/ + +# 出現処理 + execute if score @s General.Object.Tick matches 1 run tp @s ^ ^-10 ^-51 + execute if score @s General.Object.Tick matches 3 run data modify entity @s start_interpolation set value -1 + execute if score @s General.Object.Tick matches 3 run data modify entity @s transformation.scale set value [8.0f,8.0f,8.0f] + execute if score @s General.Object.Tick matches 3..20 run tp @s ^ ^ ^3 + execute if score @s General.Object.Tick matches 21..25 run tp @s ^ ^ ^1 ~ ~-25 + execute if score @s General.Object.Tick matches 26..30 run tp @s ^ ^ ^1 ~ ~-15 + execute if score @s General.Object.Tick matches 31..34 run tp @s ^ ^ ^0.5 ~ ~3 + execute if score @s General.Object.Tick matches 35..46 run tp @s ^ ^ ^0.3 ~ ~7 + execute if score @s General.Object.Tick matches 47 run tp @s ^ ^ ^ ~ 0 + +# 演出 + execute if score @s General.Object.Tick matches 46 at @s run playsound block.piston.extend hostile @a ~ ~ ~ 2 0.9 + +# 攻撃開始 + execute if score @s General.Object.Tick matches 47.. if score @s General.Object.Tick >= @s 2269.WaitTime run function asset:object/2269.gem_rocket_punch/tick/start_attack diff --git a/Asset/data/asset/functions/object/2269.gem_rocket_punch/tick/prediction.mcfunction b/Asset/data/asset/functions/object/2269.gem_rocket_punch/tick/prediction.mcfunction new file mode 100644 index 00000000000..424df6fa6fc --- /dev/null +++ b/Asset/data/asset/functions/object/2269.gem_rocket_punch/tick/prediction.mcfunction @@ -0,0 +1,14 @@ +#> asset:object/2269.gem_rocket_punch/tick/prediction +# +# Objectのtick時の処理 +# +# @within asset:object/2269.gem_rocket_punch/tick/event_attack + +# 予告 + data modify storage api: Argument.ID set value 2113 + data modify storage api: Argument.FieldOverride.RotationX set from entity @s Rotation[0] + data modify storage api: Argument.FieldOverride.Color set value 3381759 + data modify storage api: Argument.FieldOverride.Scale set value [10f,70f] + data modify storage api: Argument.FieldOverride.Interpolation set value 15 + data modify storage api: Argument.FieldOverride.Tick set value 50 + execute positioned ^ ^0.1 ^ rotated ~ 0 run function api:object/summon diff --git a/Asset/data/asset/functions/object/2269.gem_rocket_punch/tick/start_attack.mcfunction b/Asset/data/asset/functions/object/2269.gem_rocket_punch/tick/start_attack.mcfunction new file mode 100644 index 00000000000..23bd72e9ef3 --- /dev/null +++ b/Asset/data/asset/functions/object/2269.gem_rocket_punch/tick/start_attack.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/2269.gem_rocket_punch/tick/start_attack +# +# Objectのtick時の処理 +# +# @within asset:object/2269.gem_rocket_punch/tick/event_wait + +# Tick設定 + scoreboard players set @s General.Object.Tick 190 + +# タグ付与 + tag @s add 2269.Attack diff --git a/Asset/data/asset/functions/object/2270.yeeter_tnt/_index.d.mcfunction b/Asset/data/asset/functions/object/2270.yeeter_tnt/_index.d.mcfunction new file mode 100644 index 00000000000..a750b503401 --- /dev/null +++ b/Asset/data/asset/functions/object/2270.yeeter_tnt/_index.d.mcfunction @@ -0,0 +1,6 @@ +#> asset:object/2270.yeeter_tnt/_index.d +# @private + +#> tag +# @within function asset:object/2270.yeeter_tnt/** + #declare tag 2270.NoPrediction diff --git a/Asset/data/asset/functions/object/2270.yeeter_tnt/init/.mcfunction b/Asset/data/asset/functions/object/2270.yeeter_tnt/init/.mcfunction new file mode 100644 index 00000000000..ac2f31f972c --- /dev/null +++ b/Asset/data/asset/functions/object/2270.yeeter_tnt/init/.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/2270.yeeter_tnt/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/2270/init + +# 実行角度に合わせる + tp @s ~ ~ ~ ~ 0 + +# 予兆無し + execute if data storage asset:context this{IsNoPrediction:true} run tag @s add 2270.NoPrediction diff --git a/Asset/data/asset/functions/object/2270.yeeter_tnt/load.mcfunction b/Asset/data/asset/functions/object/2270.yeeter_tnt/load.mcfunction new file mode 100644 index 00000000000..50fcbdd7223 --- /dev/null +++ b/Asset/data/asset/functions/object/2270.yeeter_tnt/load.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/2270.yeeter_tnt/load +# +# Objectに利用するスコアボード等の初期化処理 +# +# @within tag/function asset:object/load + +#> 定義類はここに +# @within function asset:object/2270.yeeter_tnt/** + # scoreboard objectives add diff --git a/Asset/data/asset/functions/object/2270.yeeter_tnt/register.mcfunction b/Asset/data/asset/functions/object/2270.yeeter_tnt/register.mcfunction new file mode 100644 index 00000000000..6800bba5768 --- /dev/null +++ b/Asset/data/asset/functions/object/2270.yeeter_tnt/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2270.yeeter_tnt/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2270/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 2270 +# フィールド(オプション) + # data modify storage asset:object Field.myValue set value \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2270.yeeter_tnt/summon/.mcfunction b/Asset/data/asset/functions/object/2270.yeeter_tnt/summon/.mcfunction new file mode 100644 index 00000000000..719d6ad3236 --- /dev/null +++ b/Asset/data/asset/functions/object/2270.yeeter_tnt/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2270.yeeter_tnt/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2270/summon + +# 元となるEntityを召喚する + summon item_display ~ ~ ~ {Tags:["ObjectInit","CO.Object"],interpolation_duration:3,teleport_duration:1,item:{id:"tnt",Count:1b},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:[1.0f,1.0f,1.0f]}} diff --git a/Asset/data/asset/functions/object/2270.yeeter_tnt/summon/debug.mcfunction b/Asset/data/asset/functions/object/2270.yeeter_tnt/summon/debug.mcfunction new file mode 100644 index 00000000000..ad82f9b1ea1 --- /dev/null +++ b/Asset/data/asset/functions/object/2270.yeeter_tnt/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2270.yeeter_tnt/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 2270 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2270.yeeter_tnt/tick/.mcfunction b/Asset/data/asset/functions/object/2270.yeeter_tnt/tick/.mcfunction new file mode 100644 index 00000000000..09547d03d79 --- /dev/null +++ b/Asset/data/asset/functions/object/2270.yeeter_tnt/tick/.mcfunction @@ -0,0 +1,26 @@ +#> asset:object/2270.yeeter_tnt/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2270/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# 拡大 + execute if entity @s[scores={General.Object.Tick=20}] run playsound entity.puffer_fish.blow_up hostile @a ~ ~ ~ 2 0.7 + execute if entity @s[scores={General.Object.Tick=20}] run data modify entity @s start_interpolation set value -1 + execute if entity @s[scores={General.Object.Tick=20}] run data modify entity @s transformation.translation set value [0.0f,0.75f,0.0f] + execute if entity @s[scores={General.Object.Tick=20}] run data modify entity @s transformation.scale set value [3.0f,3.0f,3.0f] + execute if entity @s[scores={General.Object.Tick=45}] run data modify entity @s start_interpolation set value -1 + execute if entity @s[scores={General.Object.Tick=45}] run playsound entity.puffer_fish.blow_up hostile @a ~ ~ ~ 2 1 + execute if entity @s[scores={General.Object.Tick=45}] run data modify entity @s transformation.scale set value [0.0f,6.0f,0.0f] + execute if entity @s[scores={General.Object.Tick=45}] run data modify entity @s transformation.scale set value [6.0f,6.0f,6.0f] + +# 攻撃 + execute if entity @s[scores={General.Object.Tick=1..5}] run tp @s ~ ~-1 ~ + execute if entity @s[tag=!2270.NoPrediction,scores={General.Object.Tick=1}] positioned ~ ~-5 ~ run function asset:object/2270.yeeter_tnt/tick/prediction.m {PredictionTime:60} + execute if entity @s[scores={General.Object.Tick=60..}] at @s run function asset:object/2270.yeeter_tnt/tick/damage + +# 消滅処理 + kill @s[scores={General.Object.Tick=60..}] diff --git a/Asset/data/asset/functions/object/2270.yeeter_tnt/tick/damage.mcfunction b/Asset/data/asset/functions/object/2270.yeeter_tnt/tick/damage.mcfunction new file mode 100644 index 00000000000..8ccbf84019e --- /dev/null +++ b/Asset/data/asset/functions/object/2270.yeeter_tnt/tick/damage.mcfunction @@ -0,0 +1,19 @@ +#> asset:object/2270.yeeter_tnt/tick/damage +# +# Objectのtick時の処理 +# +# @within function asset:object/2270.yeeter_tnt/tick/ + +# ダメージ + data modify storage api: Argument.Damage set from storage asset:context this.Damage.Amount + data modify storage api: Argument.AttackType set from storage asset:context this.Damage.Type + data modify storage api: Argument.ElementType set from storage asset:context this.Damage.Element + data modify storage api: Argument.MobUUID set from storage asset:context this.MobUUID + function api:damage/modifier_manual + execute as @a[tag=!PlayerShouldInvulnerable,distance=..12] run function api:damage/ + function api:damage/reset + +# 演出 + particle explosion ~ ~1 ~ 3 1 3 0 20 force + particle lava ~ ~1 ~ 3 1 3 0.2 10 + playsound entity.generic.explode hostile @a ~ ~ ~ 1.5 0.8 diff --git a/Asset/data/asset/functions/object/2270.yeeter_tnt/tick/prediction.m.mcfunction b/Asset/data/asset/functions/object/2270.yeeter_tnt/tick/prediction.m.mcfunction new file mode 100644 index 00000000000..871f0a677e0 --- /dev/null +++ b/Asset/data/asset/functions/object/2270.yeeter_tnt/tick/prediction.m.mcfunction @@ -0,0 +1,12 @@ +#> asset:object/2270.yeeter_tnt/tick/prediction.m +# +# Objectのtick時の処理 +# +# @within asset:object/2270.yeeter_tnt/tick/ + +# 予兆 + data modify storage api: Argument.ID set value 2063 + data modify storage api: Argument.FieldOverride.Color set value 3381759 + data modify storage api: Argument.FieldOverride.Scale set value [24f, 24f, 0.05f] + $data modify storage api: Argument.FieldOverride.Tick set value $(PredictionTime) + execute rotated ~ 0 run function api:object/summon diff --git a/Asset/data/asset/functions/object/2271.moving_circle_damage_area/_index.d.mcfunction b/Asset/data/asset/functions/object/2271.moving_circle_damage_area/_index.d.mcfunction new file mode 100644 index 00000000000..673468c00d8 --- /dev/null +++ b/Asset/data/asset/functions/object/2271.moving_circle_damage_area/_index.d.mcfunction @@ -0,0 +1,6 @@ +#> asset:object/2271.moving_circle_damage_area/_index.d +# @private + +#> tag +# @within function asset:object/2271.moving_circle_damage_area/** + #declare \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2271.moving_circle_damage_area/init/.mcfunction b/Asset/data/asset/functions/object/2271.moving_circle_damage_area/init/.mcfunction new file mode 100644 index 00000000000..82893c2f51a --- /dev/null +++ b/Asset/data/asset/functions/object/2271.moving_circle_damage_area/init/.mcfunction @@ -0,0 +1,28 @@ +#> asset:object/2271.moving_circle_damage_area/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/2271/init + +# 設定項目(FieldOverride) + # Color : 円範囲エフェクトの色。leather_horse_armorの色であるため、16777215が白。 + # TextColor : 矢印エフェクトの色。カラーコードで指定すること + # Scale : エフェクトの大きさ。[5f,5f,0.01f]がデフォルト。矢印エフェクトのサイズおよび位置調整にScale[0]を用いる。 + # Tick : 何Tick後にダメージを与えるかを指定する。ただしこのオブジェクトはあくまでも見た目だけなのでダメージ処理は自前で。 + +# 実行角度に合わせる + tp @s ~ ~ ~ ~ 0 + +# 通常の円範囲を召喚 + data modify storage api: Argument.ID set value 2063 + data modify storage api: Argument.FieldOverride.Color set from storage asset:context this.Color + data modify storage api: Argument.FieldOverride.Scale set from storage asset:context this.Scale + data modify storage api: Argument.FieldOverride.Tick set from storage asset:context this.Tick + execute rotated ~ 0 positioned ~ ~ ~ run function api:object/summon + +# 矢印のサイズおよび位置調整 + execute store result storage asset:context this.Text.ScaleX float 3 run data get storage asset:context this.Scale[0] + execute store result storage asset:context this.Text.ScaleY float 1 run data get storage asset:context this.Scale[0] + execute store result storage asset:context this.Text.Offset float 0.5 run data get storage asset:context this.Scale[0] + execute store result storage asset:context this.Text.PosOffset float 0.25 run data get storage asset:context this.Scale[0] + function asset:object/2271.moving_circle_damage_area/init/set_transformation with storage asset:context this.Text diff --git a/Asset/data/asset/functions/object/2271.moving_circle_damage_area/init/set_transformation.mcfunction b/Asset/data/asset/functions/object/2271.moving_circle_damage_area/init/set_transformation.mcfunction new file mode 100644 index 00000000000..45ef28cd293 --- /dev/null +++ b/Asset/data/asset/functions/object/2271.moving_circle_damage_area/init/set_transformation.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/2271.moving_circle_damage_area/init/set_transformation +# +# Objectのinit時の処理 +# +# @within asset:object/2271.moving_circle_damage_area/init/ + +# transformation更新 + $data modify entity @s transformation set value {left_rotation:{axis:[1f,0f,0f],angle:-1.5708f},right_rotation:[0.0f,0.0f,0.0f,1.0f],translation:[0f,0f,$(Offset)f],scale:[$(ScaleY)f,$(ScaleX)f,0.0f]} + $tp @s ^ ^ ^$(PosOffset) ~-90 0 diff --git a/Asset/data/asset/functions/object/2271.moving_circle_damage_area/load.mcfunction b/Asset/data/asset/functions/object/2271.moving_circle_damage_area/load.mcfunction new file mode 100644 index 00000000000..9ddd4224775 --- /dev/null +++ b/Asset/data/asset/functions/object/2271.moving_circle_damage_area/load.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/2271.moving_circle_damage_area/load +# +# Objectに利用するスコアボード等の初期化処理 +# +# @within tag/function asset:object/load + +#> 定義類はここに +# @within function asset:object/2271.moving_circle_damage_area/** + # scoreboard objectives add diff --git a/Asset/data/asset/functions/object/2271.moving_circle_damage_area/register.mcfunction b/Asset/data/asset/functions/object/2271.moving_circle_damage_area/register.mcfunction new file mode 100644 index 00000000000..b920691dcf9 --- /dev/null +++ b/Asset/data/asset/functions/object/2271.moving_circle_damage_area/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2271.moving_circle_damage_area/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2271/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 2271 +# フィールド(オプション) + # data modify storage asset:object Field.myValue set value \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2271.moving_circle_damage_area/summon/.mcfunction b/Asset/data/asset/functions/object/2271.moving_circle_damage_area/summon/.mcfunction new file mode 100644 index 00000000000..6219fa8228c --- /dev/null +++ b/Asset/data/asset/functions/object/2271.moving_circle_damage_area/summon/.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/2271.moving_circle_damage_area/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2271/summon + +# 元となるEntityを召喚する + # summon text_display ~ ~ ~ {Tags:["ObjectInit"],text_opacity:255,background:16711680,alignment:"right",line_width:210,transformation:[0.0000f,17.0000f,0.0000f,-2.8125f,0.0000f,-0.0000f,1.0000f,0.1250f,6.5000f,-0.0000f,-0.0000f,3.8125f,0.0000f,0.0000f,0.0000f,1.0000f]} + summon text_display ~ ~ ~ {Tags:["ObjectInit"],text_opacity:255,background:16711680,alignment:"right",line_width:210,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/2271.moving_circle_damage_area/summon/debug.mcfunction b/Asset/data/asset/functions/object/2271.moving_circle_damage_area/summon/debug.mcfunction new file mode 100644 index 00000000000..f71f85abe22 --- /dev/null +++ b/Asset/data/asset/functions/object/2271.moving_circle_damage_area/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2271.moving_circle_damage_area/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 2271 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2271.moving_circle_damage_area/tick/.mcfunction b/Asset/data/asset/functions/object/2271.moving_circle_damage_area/tick/.mcfunction new file mode 100644 index 00000000000..136db703bb5 --- /dev/null +++ b/Asset/data/asset/functions/object/2271.moving_circle_damage_area/tick/.mcfunction @@ -0,0 +1,14 @@ +#> asset:object/2271.moving_circle_damage_area/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2271/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# チカチカ + function asset:object/2271.moving_circle_damage_area/tick/effect with storage asset:context this + +# 消滅処理 + kill @s[scores={General.Object.Tick=100..}] diff --git a/Asset/data/asset/functions/object/2271.moving_circle_damage_area/tick/effect.mcfunction b/Asset/data/asset/functions/object/2271.moving_circle_damage_area/tick/effect.mcfunction new file mode 100644 index 00000000000..72c8122efd7 --- /dev/null +++ b/Asset/data/asset/functions/object/2271.moving_circle_damage_area/tick/effect.mcfunction @@ -0,0 +1,19 @@ +#< asset:object/2271.moving_circle_damage_area/tick/effect +# +# +# +# @within function asset:object/2271.moving_circle_damage_area/tick/ + +# 計算 + scoreboard players operation $Interval Temporary = @s General.Object.Tick + scoreboard players operation $Interval Temporary %= $23 Const + +# 予告線表示 + $execute if score $Interval Temporary matches 1 run data modify entity @s text set value '[{"text":"<<","color":"$(TextColor)","bold":true}]' + $execute if score $Interval Temporary matches 3 run data modify entity @s text set value '[{"text":"<","color":"#BF874E","bold":true},{"text":"<","color":"$(TextColor)","bold":true}]' + execute if score $Interval Temporary matches 5 run data modify entity @s text set value '[{"text":"<","color":"#BF874E","bold":true},{"text":"<","color":"#BF874E","bold":true}]' + $execute if score $Interval Temporary matches 20 run data modify entity @s text set value '[{"text":"<","color":"$(TextColor)","bold":true},{"text":"<","color":"#BF874E","bold":true}]' + $execute if score $Interval Temporary matches 22 run data modify entity @s text set value '[{"text":"<<","color":"$(TextColor)","bold":true}]' + +# 終了 + scoreboard players reset $Interval Temporary diff --git a/Asset/data/asset/functions/object/2272.player_target_line/_index.d.mcfunction b/Asset/data/asset/functions/object/2272.player_target_line/_index.d.mcfunction new file mode 100644 index 00000000000..9c7c44c5dd9 --- /dev/null +++ b/Asset/data/asset/functions/object/2272.player_target_line/_index.d.mcfunction @@ -0,0 +1,7 @@ +#> asset:object/2272.player_target_line/_index.d +# @private + +#> tag +# @within function asset:object/2272.player_target_line/** + #declare tag 2272.Line + #declare tag 2272.TargetPlayer diff --git a/Asset/data/asset/functions/object/2272.player_target_line/init/.mcfunction b/Asset/data/asset/functions/object/2272.player_target_line/init/.mcfunction new file mode 100644 index 00000000000..ec0c6c04779 --- /dev/null +++ b/Asset/data/asset/functions/object/2272.player_target_line/init/.mcfunction @@ -0,0 +1,21 @@ +#> asset:object/2272.player_target_line/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/2272/init + +# 設定項目(FieldOverride) + # TargetPlayerId : 対象のプレイヤーのUserID。 + # Tick : 表示時間。 + # Color : 線の色。CustomPotionColorで指定する。 + # (Optional) ObjectId : 紐づけ用のObjectId。これを利用したオブジェクトとの紐づけ方法は、Object2262を参照。 + # (Optional) IsChangePlayer : trueの場合、対象プレイヤーが一定以上離れた場合にロックオン対象を変更する。 + +# 対象プレイヤーの保持 + execute store result score @s 2272.PlayerId run data get storage asset:context this.TargetPlayerId + +# 表示時間取得 + execute store result score @s 2272.Tick run data get storage asset:context this.Tick + +# ObjectId + execute store result score @s 2272.ObjectId run data get storage asset:context this.ObjectId diff --git a/Asset/data/asset/functions/object/2272.player_target_line/load.mcfunction b/Asset/data/asset/functions/object/2272.player_target_line/load.mcfunction new file mode 100644 index 00000000000..0752ce63472 --- /dev/null +++ b/Asset/data/asset/functions/object/2272.player_target_line/load.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/2272.player_target_line/load +# +# Objectに利用するスコアボード等の初期化処理 +# +# @within tag/function asset:object/load + +#> 定義類はここに +# @within function asset:object/2272.player_target_line/** + scoreboard objectives add 2272.PlayerId dummy + scoreboard objectives add 2272.Tick dummy + scoreboard objectives add 2272.ObjectId dummy diff --git a/Asset/data/asset/functions/object/2272.player_target_line/register.mcfunction b/Asset/data/asset/functions/object/2272.player_target_line/register.mcfunction new file mode 100644 index 00000000000..aae9457fc9e --- /dev/null +++ b/Asset/data/asset/functions/object/2272.player_target_line/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2272.player_target_line/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2272/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 2272 +# フィールド(オプション) + # data modify storage asset:object Field.myValue set value diff --git a/Asset/data/asset/functions/object/2272.player_target_line/summon/.mcfunction b/Asset/data/asset/functions/object/2272.player_target_line/summon/.mcfunction new file mode 100644 index 00000000000..9e31c3b5b49 --- /dev/null +++ b/Asset/data/asset/functions/object/2272.player_target_line/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2272.player_target_line/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2272/summon + +# 元となるEntityを召喚する + summon item_display ~ ~ ~ {Tags:["ObjectInit","2272.Line"],interpolation_duration:1,teleport_duration:1,transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0f,0f],scale:[1f,1f,0f]}} diff --git a/Asset/data/asset/functions/object/2272.player_target_line/summon/debug.mcfunction b/Asset/data/asset/functions/object/2272.player_target_line/summon/debug.mcfunction new file mode 100644 index 00000000000..263c7a15e9a --- /dev/null +++ b/Asset/data/asset/functions/object/2272.player_target_line/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2272.player_target_line/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 2272 + function api:object/summon diff --git a/Asset/data/asset/functions/object/2272.player_target_line/tick/.mcfunction b/Asset/data/asset/functions/object/2272.player_target_line/tick/.mcfunction new file mode 100644 index 00000000000..f30394f3d91 --- /dev/null +++ b/Asset/data/asset/functions/object/2272.player_target_line/tick/.mcfunction @@ -0,0 +1,17 @@ +#> asset:object/2272.player_target_line/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2272/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# 表示 + execute if score @s General.Object.Tick matches 2 run function asset:object/2272.player_target_line/tick/show.m with storage asset:context this + +# ターゲット + execute at @s positioned ~ ~-1 ~ run function asset:object/2272.player_target_line/tick/rotate.m with storage asset:context this + +# 消滅処理 + execute if score @s General.Object.Tick >= @s 2272.Tick run kill @s diff --git a/Asset/data/asset/functions/object/2272.player_target_line/tick/rotate.m.mcfunction b/Asset/data/asset/functions/object/2272.player_target_line/tick/rotate.m.mcfunction new file mode 100644 index 00000000000..3b924af4e1a --- /dev/null +++ b/Asset/data/asset/functions/object/2272.player_target_line/tick/rotate.m.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2272.player_target_line/tick/rotate.m +# +# Objectのtick時の処理 +# +# @within asset:object/2272.player_target_line/tick/ + +# ターゲット設定 + $tag @a[scores={UserID=$(TargetPlayerId)}] add 2272.TargetPlayer + data modify entity @s start_interpolation set value -1 + +# プレイヤーを向く + execute facing entity @p[tag=2272.TargetPlayer] feet rotated ~ ~ run function lib:rotate_display/ + +# 距離測定 + execute as @p[tag=2272.TargetPlayer] run function lib:distance/as_to_at + execute store result entity @s transformation.scale[2] float 0.001 run data get storage lib: Return.Distance 990 + data remove storage lib: Return + +# 終了 + tag @a[tag=2272.TargetPlayer] remove 2272.TargetPlayer diff --git a/Asset/data/asset/functions/object/2272.player_target_line/tick/show.m.mcfunction b/Asset/data/asset/functions/object/2272.player_target_line/tick/show.m.mcfunction new file mode 100644 index 00000000000..c636dfa8fdd --- /dev/null +++ b/Asset/data/asset/functions/object/2272.player_target_line/tick/show.m.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2272.player_target_line/tick/show.m +# +# Objectのtick時の処理 +# +# @within asset:object/2272.player_target_line/tick/ + +# 表示 + $data modify entity @s item set value {id:"minecraft:potion",Count:1b,tag:{CustomPotionColor:$(Color),CustomModelData:20590}} diff --git a/Asset/data/asset/functions/object/2273.gem_death_animation/_index.d.mcfunction b/Asset/data/asset/functions/object/2273.gem_death_animation/_index.d.mcfunction new file mode 100644 index 00000000000..67f589516d6 --- /dev/null +++ b/Asset/data/asset/functions/object/2273.gem_death_animation/_index.d.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2273.gem_death_animation/_index.d +# @private + +#> tag +# @within function asset:object/2273.gem_death_animation/** + #declare tag CO.ModelRoot + #declare function animated_java:gargo_ex_machina/animations/death/tween + #declare function animated_java:gargo_ex_machina/remove/all diff --git a/Asset/data/asset/functions/object/2273.gem_death_animation/init/.mcfunction b/Asset/data/asset/functions/object/2273.gem_death_animation/init/.mcfunction new file mode 100644 index 00000000000..d696e8f4c89 --- /dev/null +++ b/Asset/data/asset/functions/object/2273.gem_death_animation/init/.mcfunction @@ -0,0 +1,5 @@ +#> asset:object/2273.gem_death_animation/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/2273/init diff --git a/Asset/data/asset/functions/object/2273.gem_death_animation/register.mcfunction b/Asset/data/asset/functions/object/2273.gem_death_animation/register.mcfunction new file mode 100644 index 00000000000..fb33cd02c5d --- /dev/null +++ b/Asset/data/asset/functions/object/2273.gem_death_animation/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2273.gem_death_animation/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2273/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 2273 +# フィールド(オプション) + # data modify storage asset:object Field.myValue set value \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2273.gem_death_animation/summon/.mcfunction b/Asset/data/asset/functions/object/2273.gem_death_animation/summon/.mcfunction new file mode 100644 index 00000000000..6e1e8dfbe2a --- /dev/null +++ b/Asset/data/asset/functions/object/2273.gem_death_animation/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2273.gem_death_animation/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2273/summon + +# 元となるEntityを召喚する + summon marker ~ ~ ~ {Tags:["ObjectInit"]} diff --git a/Asset/data/asset/functions/object/2273.gem_death_animation/summon/debug.mcfunction b/Asset/data/asset/functions/object/2273.gem_death_animation/summon/debug.mcfunction new file mode 100644 index 00000000000..ac8feed2b6f --- /dev/null +++ b/Asset/data/asset/functions/object/2273.gem_death_animation/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2273.gem_death_animation/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 2273 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2273.gem_death_animation/tick/.mcfunction b/Asset/data/asset/functions/object/2273.gem_death_animation/tick/.mcfunction new file mode 100644 index 00000000000..0b9a71b06a3 --- /dev/null +++ b/Asset/data/asset/functions/object/2273.gem_death_animation/tick/.mcfunction @@ -0,0 +1,21 @@ +#> asset:object/2273.gem_death_animation/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2273/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# モデルで実行 + execute as @e[type=item_display,tag=CO.ModelRoot,sort=nearest,limit=1] at @s run function asset:object/2273.gem_death_animation/tick/event + +# ボスドロップ配置 + # execute if entity @s[scores={General.Object.Tick=120}] run function asset:object/2174.heiloang_death_animation/tick/summon_bossdrop + +# AJアンロード + # execute if entity @s[scores={General.Object.Tick=170}] run data modify storage asset:datapack ActivationState set value [{Datapack:"AJ_heiloang",Active:false}] + # execute if entity @s[scores={General.Object.Tick=170}] run function asset:datapack/set_activation_state + +# 消滅処理 + kill @s[scores={General.Object.Tick=170..}] diff --git a/Asset/data/asset/functions/object/2273.gem_death_animation/tick/event.mcfunction b/Asset/data/asset/functions/object/2273.gem_death_animation/tick/event.mcfunction new file mode 100644 index 00000000000..b189979dd96 --- /dev/null +++ b/Asset/data/asset/functions/object/2273.gem_death_animation/tick/event.mcfunction @@ -0,0 +1,44 @@ +#> asset:object/2273.gem_death_animation/tick/event +# +# Objectのtick時の処理 +# +# @within function asset:object/2273.gem_death_animation/tick/ + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# アニメーション再生 + execute if score @s General.Object.Tick matches 1 run function animated_java:gargo_ex_machina/animations/death/tween {duration:1, to_frame: 0} + +# 演出 + execute if score @s General.Object.Tick matches 1 run playsound entity.item.break hostile @a ~ ~ ~ 3 0.5 + execute if score @s General.Object.Tick matches 1 run playsound entity.item.break hostile @a ~ ~ ~ 3 0.7 + execute if score @s General.Object.Tick matches 2 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s General.Object.Tick matches 7 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s General.Object.Tick matches 12 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s General.Object.Tick matches 17 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s General.Object.Tick matches 22 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s General.Object.Tick matches 27 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s General.Object.Tick matches 32 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s General.Object.Tick matches 37 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s General.Object.Tick matches 42 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s General.Object.Tick matches 47 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s General.Object.Tick matches 52 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s General.Object.Tick matches 57 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s General.Object.Tick matches 62 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s General.Object.Tick matches 1..70 run particle explosion ~ ~20 ~ 4 7 4 0 5 force @a[distance=..80] + +# 最後の大爆発 + execute if score @s General.Object.Tick matches 168 positioned ^ ^ ^-5 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s General.Object.Tick matches 168 positioned ^ ^ ^-5 positioned ~ ~30 ~ run playsound entity.generic.explode hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.7 + execute if score @s General.Object.Tick matches 168 positioned ^ ^ ^-5 positioned ~ ~30 ~ run playsound item.trident.thunder hostile @a[distance=..80] ~ ~ ~ 0.5 1 0.5 + execute if score @s General.Object.Tick matches 168 positioned ^ ^ ^-5 run particle lava ~ ~8 ~ 5 5 5 0 100 force @a[distance=..80] + execute if score @s General.Object.Tick matches 168 positioned ^ ^ ^-5 run particle explosion_emitter ~ ~8 ~ 3 3 3 0 10 force @a[distance=..80] + execute if score @s General.Object.Tick matches 168 positioned ^ ^ ^-5 run particle campfire_signal_smoke ~ ~8 ~ 3 3 3 0.05 100 force @a[distance=..80] + # 画面エフェクト + execute if score @s General.Object.Tick matches 167 run title @a[distance=..160] times 3 0 30 + execute if score @s General.Object.Tick matches 167 run title @a[distance=..160] title {"text":"\uE010","font":"screen_effect","color":"#E8E8E8"} + execute if score @s General.Object.Tick matches 168 positioned ^ ^ ^-5 positioned ~ ~8 ~ run function asset:object/2273.gem_death_animation/tick/summon_bullet + +# モデル消去 + execute if score @s General.Object.Tick matches 169.. run function animated_java:gargo_ex_machina/remove/all diff --git a/Asset/data/asset/functions/object/2273.gem_death_animation/tick/summon_bullet.mcfunction b/Asset/data/asset/functions/object/2273.gem_death_animation/tick/summon_bullet.mcfunction new file mode 100644 index 00000000000..ccc648d31ed --- /dev/null +++ b/Asset/data/asset/functions/object/2273.gem_death_animation/tick/summon_bullet.mcfunction @@ -0,0 +1,31 @@ +#> asset:object/2273.gem_death_animation/tick/summon_bullet +# +# Objectのtick時の処理 +# +# @within function asset:object/2273.gem_death_animation/tick/event + +# 演出召喚 + data modify storage api: Argument.ID set value 2274 + execute rotated 0 -80 run function api:object/summon + data modify storage api: Argument.ID set value 2274 + execute rotated 30 -80 run function api:object/summon + data modify storage api: Argument.ID set value 2274 + execute rotated 60 -80 run function api:object/summon + data modify storage api: Argument.ID set value 2274 + execute rotated 90 -80 run function api:object/summon + data modify storage api: Argument.ID set value 2274 + execute rotated 120 -80 run function api:object/summon + data modify storage api: Argument.ID set value 2274 + execute rotated 150 -80 run function api:object/summon + data modify storage api: Argument.ID set value 2274 + execute rotated 180 -80 run function api:object/summon + data modify storage api: Argument.ID set value 2274 + execute rotated 210 -80 run function api:object/summon + data modify storage api: Argument.ID set value 2274 + execute rotated 240 -80 run function api:object/summon + data modify storage api: Argument.ID set value 2274 + execute rotated 270 -80 run function api:object/summon + data modify storage api: Argument.ID set value 2274 + execute rotated 300 -80 run function api:object/summon + data modify storage api: Argument.ID set value 2274 + execute rotated 330 -80 run function api:object/summon diff --git a/Asset/data/asset/functions/object/2274.gem_smoke/_index.d.mcfunction b/Asset/data/asset/functions/object/2274.gem_smoke/_index.d.mcfunction new file mode 100644 index 00000000000..d3db05be8c0 --- /dev/null +++ b/Asset/data/asset/functions/object/2274.gem_smoke/_index.d.mcfunction @@ -0,0 +1,6 @@ +#> asset:object/2274.gem_smoke/_index.d +# @private + +#> tag +# @within function asset:object/2274.gem_smoke/** + #declare \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2274.gem_smoke/init/.mcfunction b/Asset/data/asset/functions/object/2274.gem_smoke/init/.mcfunction new file mode 100644 index 00000000000..1e6e3e398f0 --- /dev/null +++ b/Asset/data/asset/functions/object/2274.gem_smoke/init/.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/2274.gem_smoke/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/2274/init + +# 角度調整 + tp @s ~ ~ ~ ~ -50 + execute store result entity @s Rotation[1] float 0.1 run random value -600..-350 diff --git a/Asset/data/asset/functions/object/2274.gem_smoke/register.mcfunction b/Asset/data/asset/functions/object/2274.gem_smoke/register.mcfunction new file mode 100644 index 00000000000..daf4a17f82d --- /dev/null +++ b/Asset/data/asset/functions/object/2274.gem_smoke/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2274.gem_smoke/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/2274/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 2274 +# フィールド(オプション) + # data modify storage asset:object Field.myValue set value \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2274.gem_smoke/summon/.mcfunction b/Asset/data/asset/functions/object/2274.gem_smoke/summon/.mcfunction new file mode 100644 index 00000000000..833ea36d01f --- /dev/null +++ b/Asset/data/asset/functions/object/2274.gem_smoke/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/2274.gem_smoke/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/2274/summon + +# 元となるEntityを召喚する + summon item_display ~ ~ ~ {Tags:["ObjectInit"],item:{id:"minecraft:stone_bricks",Count:1b},teleport_duration:1} diff --git a/Asset/data/asset/functions/object/2274.gem_smoke/summon/debug.mcfunction b/Asset/data/asset/functions/object/2274.gem_smoke/summon/debug.mcfunction new file mode 100644 index 00000000000..177c1a52081 --- /dev/null +++ b/Asset/data/asset/functions/object/2274.gem_smoke/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/2274.gem_smoke/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 2274 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/2274.gem_smoke/tick/.mcfunction b/Asset/data/asset/functions/object/2274.gem_smoke/tick/.mcfunction new file mode 100644 index 00000000000..0340ffbc5d5 --- /dev/null +++ b/Asset/data/asset/functions/object/2274.gem_smoke/tick/.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/2274.gem_smoke/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/2274/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# 移動 + execute at @s run particle campfire_cosy_smoke ~ ~ ~ 0.3 0.3 0.3 0.01 1 force @a[distance=..80] + execute at @s run tp @s ^ ^ ^0.8 ~ ~1.5 + execute at @s run particle campfire_cosy_smoke ~ ~ ~ 0.3 0.3 0.3 0.01 1 force @a[distance=..80] + execute at @s run tp @s ^ ^ ^0.8 ~ ~1.5 + +# ブロック落とす + # execute if predicate lib:random_pass_per/30 run summon item ~ ~ ~ {Item:{id:"minecraft:stone_bricks",Count:1b}} + +# 消滅処理 + kill @s[scores={General.Object.Tick=160..}] diff --git a/Asset/data/asset/functions/object/alias/2260/init.mcfunction b/Asset/data/asset/functions/object/alias/2260/init.mcfunction new file mode 100644 index 00000000000..787635efb3c --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2260/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2260/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/2260.gem_attack_drone/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2260/register.mcfunction b/Asset/data/asset/functions/object/alias/2260/register.mcfunction new file mode 100644 index 00000000000..e9d5b447153 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2260/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2260/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2260.gem_attack_drone/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2260/summon.mcfunction b/Asset/data/asset/functions/object/alias/2260/summon.mcfunction new file mode 100644 index 00000000000..b26b0765c3c --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2260/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2260/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2260.gem_attack_drone/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2260/tick.mcfunction b/Asset/data/asset/functions/object/alias/2260/tick.mcfunction new file mode 100644 index 00000000000..f423e171029 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2260/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2260/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2260.gem_attack_drone/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2261/init.mcfunction b/Asset/data/asset/functions/object/alias/2261/init.mcfunction new file mode 100644 index 00000000000..8a72c45246e --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2261/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2261/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/2261.gem_yeeter_drone/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2261/register.mcfunction b/Asset/data/asset/functions/object/alias/2261/register.mcfunction new file mode 100644 index 00000000000..24205132eab --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2261/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2261/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2261.gem_yeeter_drone/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2261/summon.mcfunction b/Asset/data/asset/functions/object/alias/2261/summon.mcfunction new file mode 100644 index 00000000000..808bfc65c2c --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2261/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2261/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2261.gem_yeeter_drone/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2261/tick.mcfunction b/Asset/data/asset/functions/object/alias/2261/tick.mcfunction new file mode 100644 index 00000000000..d648a51a7d1 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2261/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2261/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2261.gem_yeeter_drone/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2262/init.mcfunction b/Asset/data/asset/functions/object/alias/2262/init.mcfunction new file mode 100644 index 00000000000..294df6db53c --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2262/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2262/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/2262.gem_panjan_drone/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2262/register.mcfunction b/Asset/data/asset/functions/object/alias/2262/register.mcfunction new file mode 100644 index 00000000000..a4c2db4b4e6 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2262/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2262/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2262.gem_panjan_drone/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2262/summon.mcfunction b/Asset/data/asset/functions/object/alias/2262/summon.mcfunction new file mode 100644 index 00000000000..a0ae45f0dd6 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2262/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2262/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2262.gem_panjan_drone/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2262/tick.mcfunction b/Asset/data/asset/functions/object/alias/2262/tick.mcfunction new file mode 100644 index 00000000000..4e1e272f0a4 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2262/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2262/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2262.gem_panjan_drone/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2263/init.mcfunction b/Asset/data/asset/functions/object/alias/2263/init.mcfunction new file mode 100644 index 00000000000..1c9387d6b13 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2263/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2263/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/2263.gem_laser_vfx/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2263/register.mcfunction b/Asset/data/asset/functions/object/alias/2263/register.mcfunction new file mode 100644 index 00000000000..4feb95cde53 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2263/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2263/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2263.gem_laser_vfx/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2263/summon.mcfunction b/Asset/data/asset/functions/object/alias/2263/summon.mcfunction new file mode 100644 index 00000000000..0aa4e472c71 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2263/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2263/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2263.gem_laser_vfx/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2263/tick.mcfunction b/Asset/data/asset/functions/object/alias/2263/tick.mcfunction new file mode 100644 index 00000000000..3cd21ea852e --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2263/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2263/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2263.gem_laser_vfx/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2264/init.mcfunction b/Asset/data/asset/functions/object/alias/2264/init.mcfunction new file mode 100644 index 00000000000..fb5c1f7284b --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2264/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2264/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/2264.sheep_avenger/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2264/register.mcfunction b/Asset/data/asset/functions/object/alias/2264/register.mcfunction new file mode 100644 index 00000000000..d6dd5f7dcad --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2264/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2264/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2264.sheep_avenger/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2264/summon.mcfunction b/Asset/data/asset/functions/object/alias/2264/summon.mcfunction new file mode 100644 index 00000000000..d498fed7fa3 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2264/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2264/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2264.sheep_avenger/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2264/tick.mcfunction b/Asset/data/asset/functions/object/alias/2264/tick.mcfunction new file mode 100644 index 00000000000..70d5d079f84 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2264/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2264/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2264.sheep_avenger/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2265/init.mcfunction b/Asset/data/asset/functions/object/alias/2265/init.mcfunction new file mode 100644 index 00000000000..145536e553f --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2265/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2265/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/2265.field_modify_manager/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2265/register.mcfunction b/Asset/data/asset/functions/object/alias/2265/register.mcfunction new file mode 100644 index 00000000000..b6ba0ad5b17 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2265/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2265/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2265.field_modify_manager/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2265/summon.mcfunction b/Asset/data/asset/functions/object/alias/2265/summon.mcfunction new file mode 100644 index 00000000000..07bbfcfa2e7 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2265/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2265/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2265.field_modify_manager/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2265/tick.mcfunction b/Asset/data/asset/functions/object/alias/2265/tick.mcfunction new file mode 100644 index 00000000000..726ae8bf50f --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2265/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2265/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2265.field_modify_manager/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2266/init.mcfunction b/Asset/data/asset/functions/object/alias/2266/init.mcfunction new file mode 100644 index 00000000000..924096f3fa1 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2266/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2266/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/2266.field_modify/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2266/register.mcfunction b/Asset/data/asset/functions/object/alias/2266/register.mcfunction new file mode 100644 index 00000000000..163418fc362 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2266/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2266/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2266.field_modify/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2266/summon.mcfunction b/Asset/data/asset/functions/object/alias/2266/summon.mcfunction new file mode 100644 index 00000000000..efc4c6de8c7 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2266/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2266/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2266.field_modify/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2266/tick.mcfunction b/Asset/data/asset/functions/object/alias/2266/tick.mcfunction new file mode 100644 index 00000000000..ce44f051517 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2266/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2266/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2266.field_modify/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2267/init.mcfunction b/Asset/data/asset/functions/object/alias/2267/init.mcfunction new file mode 100644 index 00000000000..f9134e265b1 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2267/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2267/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/2267.gem_shot_attack/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2267/register.mcfunction b/Asset/data/asset/functions/object/alias/2267/register.mcfunction new file mode 100644 index 00000000000..5f738e6638b --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2267/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2267/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2267.gem_shot_attack/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2267/summon.mcfunction b/Asset/data/asset/functions/object/alias/2267/summon.mcfunction new file mode 100644 index 00000000000..76300bbaf64 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2267/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2267/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2267.gem_shot_attack/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2267/tick.mcfunction b/Asset/data/asset/functions/object/alias/2267/tick.mcfunction new file mode 100644 index 00000000000..bd3ef95d580 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2267/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2267/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2267.gem_shot_attack/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2268/init.mcfunction b/Asset/data/asset/functions/object/alias/2268/init.mcfunction new file mode 100644 index 00000000000..ae60e28be62 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2268/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2268/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/2268.gem_upper_shot/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2268/register.mcfunction b/Asset/data/asset/functions/object/alias/2268/register.mcfunction new file mode 100644 index 00000000000..2b840101664 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2268/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2268/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2268.gem_upper_shot/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2268/summon.mcfunction b/Asset/data/asset/functions/object/alias/2268/summon.mcfunction new file mode 100644 index 00000000000..a7163f7e399 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2268/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2268/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2268.gem_upper_shot/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2268/tick.mcfunction b/Asset/data/asset/functions/object/alias/2268/tick.mcfunction new file mode 100644 index 00000000000..ba5f2d23998 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2268/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2268/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2268.gem_upper_shot/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2269/init.mcfunction b/Asset/data/asset/functions/object/alias/2269/init.mcfunction new file mode 100644 index 00000000000..a61f52c0637 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2269/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2269/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/2269.gem_rocket_punch/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2269/register.mcfunction b/Asset/data/asset/functions/object/alias/2269/register.mcfunction new file mode 100644 index 00000000000..97bcb9a7c2b --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2269/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2269/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2269.gem_rocket_punch/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2269/summon.mcfunction b/Asset/data/asset/functions/object/alias/2269/summon.mcfunction new file mode 100644 index 00000000000..e864b5fb1c7 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2269/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2269/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2269.gem_rocket_punch/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2269/tick.mcfunction b/Asset/data/asset/functions/object/alias/2269/tick.mcfunction new file mode 100644 index 00000000000..a088fcc079b --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2269/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2269/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2269.gem_rocket_punch/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2270/init.mcfunction b/Asset/data/asset/functions/object/alias/2270/init.mcfunction new file mode 100644 index 00000000000..2eee0e08cdf --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2270/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2270/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/2270.yeeter_tnt/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2270/register.mcfunction b/Asset/data/asset/functions/object/alias/2270/register.mcfunction new file mode 100644 index 00000000000..413ca9876ad --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2270/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2270/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2270.yeeter_tnt/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2270/summon.mcfunction b/Asset/data/asset/functions/object/alias/2270/summon.mcfunction new file mode 100644 index 00000000000..5abc8875f68 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2270/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2270/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2270.yeeter_tnt/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2270/tick.mcfunction b/Asset/data/asset/functions/object/alias/2270/tick.mcfunction new file mode 100644 index 00000000000..773fe067caa --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2270/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2270/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2270.yeeter_tnt/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2271/init.mcfunction b/Asset/data/asset/functions/object/alias/2271/init.mcfunction new file mode 100644 index 00000000000..b3dac5dd6e2 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2271/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2271/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/2271.moving_circle_damage_area/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2271/register.mcfunction b/Asset/data/asset/functions/object/alias/2271/register.mcfunction new file mode 100644 index 00000000000..b5a65b4f6fb --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2271/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2271/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2271.moving_circle_damage_area/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2271/summon.mcfunction b/Asset/data/asset/functions/object/alias/2271/summon.mcfunction new file mode 100644 index 00000000000..667a73ebf96 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2271/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2271/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2271.moving_circle_damage_area/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2271/tick.mcfunction b/Asset/data/asset/functions/object/alias/2271/tick.mcfunction new file mode 100644 index 00000000000..8f223c27170 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2271/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2271/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2271.moving_circle_damage_area/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2272/init.mcfunction b/Asset/data/asset/functions/object/alias/2272/init.mcfunction new file mode 100644 index 00000000000..d7bb464d0b4 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2272/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2272/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/2272.player_target_line/init/ diff --git a/Asset/data/asset/functions/object/alias/2272/register.mcfunction b/Asset/data/asset/functions/object/alias/2272/register.mcfunction new file mode 100644 index 00000000000..092cd4755fa --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2272/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2272/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2272.player_target_line/register diff --git a/Asset/data/asset/functions/object/alias/2272/summon.mcfunction b/Asset/data/asset/functions/object/alias/2272/summon.mcfunction new file mode 100644 index 00000000000..f1729bb3e8c --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2272/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2272/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2272.player_target_line/summon/ diff --git a/Asset/data/asset/functions/object/alias/2272/tick.mcfunction b/Asset/data/asset/functions/object/alias/2272/tick.mcfunction new file mode 100644 index 00000000000..f615e1cd034 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2272/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2272/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2272.player_target_line/tick/ diff --git a/Asset/data/asset/functions/object/alias/2273/init.mcfunction b/Asset/data/asset/functions/object/alias/2273/init.mcfunction new file mode 100644 index 00000000000..902459af79d --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2273/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2273/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/2273.gem_death_animation/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2273/register.mcfunction b/Asset/data/asset/functions/object/alias/2273/register.mcfunction new file mode 100644 index 00000000000..6bce466b640 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2273/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2273/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2273.gem_death_animation/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2273/summon.mcfunction b/Asset/data/asset/functions/object/alias/2273/summon.mcfunction new file mode 100644 index 00000000000..12dd767e278 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2273/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2273/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2273.gem_death_animation/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2273/tick.mcfunction b/Asset/data/asset/functions/object/alias/2273/tick.mcfunction new file mode 100644 index 00000000000..2fc7584e688 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2273/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2273/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2273.gem_death_animation/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2274/init.mcfunction b/Asset/data/asset/functions/object/alias/2274/init.mcfunction new file mode 100644 index 00000000000..fc4e16f11ea --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2274/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2274/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/2274.gem_smoke/init/ diff --git a/Asset/data/asset/functions/object/alias/2274/register.mcfunction b/Asset/data/asset/functions/object/alias/2274/register.mcfunction new file mode 100644 index 00000000000..0ac6f38e431 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2274/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2274/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/2274.gem_smoke/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2274/summon.mcfunction b/Asset/data/asset/functions/object/alias/2274/summon.mcfunction new file mode 100644 index 00000000000..bc57ac0f1d3 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2274/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2274/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/2274.gem_smoke/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/2274/tick.mcfunction b/Asset/data/asset/functions/object/alias/2274/tick.mcfunction new file mode 100644 index 00000000000..c1c16a34c1f --- /dev/null +++ b/Asset/data/asset/functions/object/alias/2274/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/2274/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/2274.gem_smoke/tick/ \ No newline at end of file diff --git a/Asset/data/asset/tags/functions/mob/load.json b/Asset/data/asset/tags/functions/mob/load.json index 3c05053eb53..cee0129046d 100644 --- a/Asset/data/asset/tags/functions/mob/load.json +++ b/Asset/data/asset/tags/functions/mob/load.json @@ -1,6 +1,7 @@ { "values": [ "asset:mob/2002.duplicate_hit_protection_mixin/load", + "asset:mob/0456.gargo_ex_machina/load", "asset:mob/0437.lawless_iron_doll/load", "asset:mob/0301.karmic/load", "asset:mob/0365.frestchika/load", diff --git a/Asset/data/asset/tags/functions/object/load.json b/Asset/data/asset/tags/functions/object/load.json index 7046352e616..ff63303d6c6 100644 --- a/Asset/data/asset/tags/functions/object/load.json +++ b/Asset/data/asset/tags/functions/object/load.json @@ -1,5 +1,16 @@ { "values": [ + "asset:object/2272.player_target_line/load", + "asset:object/2262.gem_panjan_drone/load", + "asset:object/2269.gem_rocket_punch/load", + "asset:object/2271.moving_circle_damage_area/load", + "asset:object/2270.yeeter_tnt/load", + "asset:object/2261.gem_yeeter_drone/load", + "asset:object/2260.gem_attack_drone/load", + "asset:object/2268.gem_upper_shot/load", + "asset:object/2267.gem_shot_attack/load", + "asset:object/2266.field_modify/load", + "asset:object/2265.field_modify_manager/load", "asset:object/2251.wall_laser_clock/load", "asset:object/2212.eclael_upper_shot/load", "asset:object/2187.heiloang_ff_main/load", @@ -58,4 +69,4 @@ "asset:object/1059.book_of_hero/load", "asset:object/2031.giant_pumpkin/load" ] -} \ No newline at end of file +}