diff --git a/Asset/data/asset/functions/artifact/1315.dolphin_dive/give/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1315.dolphin_dive/give/1.trigger.mcfunction new file mode 100644 index 0000000000..702184b57e --- /dev/null +++ b/Asset/data/asset/functions/artifact/1315.dolphin_dive/give/1.trigger.mcfunction @@ -0,0 +1,7 @@ +#> asset:artifact/1315.dolphin_dive/give/1.trigger +# +# 神器の取得処理の呼び出し時に実行されるfunction +# +# @within tag/function asset:artifact/give + +execute if data storage asset:context {id:1315} run function asset:artifact/1315.dolphin_dive/give/2.give \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1315.dolphin_dive/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/1315.dolphin_dive/give/2.give.mcfunction new file mode 100644 index 0000000000..fcb6240a3c --- /dev/null +++ b/Asset/data/asset/functions/artifact/1315.dolphin_dive/give/2.give.mcfunction @@ -0,0 +1,68 @@ +#> asset:artifact/1315.dolphin_dive/give/2.give +# +# 神器の作成部 ここでID等を定義する +# +# @user +# @within function asset:artifact/1315.dolphin_dive/give/1.trigger + +# 神器の説明や消費MPなどをここで設定する。 +# 最後にasset:artifact/common/giveを実行することで入手可能。 + +# 神器のID (int) スプレッドシートの値を入れる + data modify storage asset:artifact ID set value 1315 +# 神器のベースアイテム + data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick" +# 神器の名前 (TextComponentString) + data modify storage asset:artifact Name set value '{"text":"ドルフィンダイブ","color":"#96FFFC"}' +# 神器の説明文 (TextComponentString[]) + data modify storage asset:artifact Lore set value ['{"text":"前方に跳躍し、着地時に周囲にダメージを与える","color":"white"}','{"text":"使用後2秒間は落下ダメージを無効化する","color":"white"}'] +# 消費アイテム ({Item: TextComponent, Count: int, Extra?: TextComponent}) (オプション) + # data modify storage asset:artifact ConsumeItem.Item set value '{"translate":"item.minecraft.stick"}' + # data modify storage asset:artifact ConsumeItem.Count set value 1 + # data modify storage asset:artifact ConsumeItem.Extra set value +# 使用回数 (int) (オプション) + # data modify storage asset:artifact RemainingCount set value +# 神器を発動できるスロット (string) Wikiを参照 + data modify storage asset:artifact Slot set value "mainhand" +# 神器のトリガー (string) Wikiを参照 + data modify storage asset:artifact Trigger set value "onClick" +# 神器の発動条件 (TextComponentString) (オプション) + data modify storage asset:artifact Condition set value '{"text":"地面に立っているか、水面にいる","color":"white"}' +# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.Damage set value [1000] +# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.AttackType set value [Physical] +# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.ElementType set value [Water] +# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション) + # data modify storage asset:artifact AttackInfo.BypassResist set value +# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.IsRangeAttack set value "every" +# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.AttackRange set value 6 +# MP消費量 (int) + data modify storage asset:artifact MPCost set value 100 +# MP必要量 (int) (オプション) + # data modify storage asset:artifact MPRequire set value +# MP回復量 (int) + # data modify storage asset:artifact MPHealWhenHit set value +# 神器のクールダウン (int) (オプション) + # data modify storage asset:artifact LocalCooldown set value +# 種別クールダウン ({Type: string, Duration: int}) (オプション) + data modify storage asset:artifact TypeCooldown.Type set value "shortRange" + data modify storage asset:artifact TypeCooldown.Duration set value 80 +# グローバルクールダウン (int) (オプション) + # data modify storage asset:artifact SpecialCooldown set value +# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableCooldownMessage set value +# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableMPMessage set value +# 破壊時の音を鳴らさないかどうか (boolean) (オプション) + # data modify storage asset:artifact DisableBreakSound set value +# 扱える神 (string[]) Wikiを参照 + data modify storage asset:artifact CanUsedGod set value ["Flora", "Urban", "Rumor"] +# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション) + # data modify storage asset:artifact CustomNBT set value {} + +# 神器の入手用function + function asset:artifact/common/give diff --git a/Asset/data/asset/functions/artifact/1315.dolphin_dive/register.mcfunction b/Asset/data/asset/functions/artifact/1315.dolphin_dive/register.mcfunction new file mode 100644 index 0000000000..e02de1139b --- /dev/null +++ b/Asset/data/asset/functions/artifact/1315.dolphin_dive/register.mcfunction @@ -0,0 +1,7 @@ +#> asset:artifact/1315.dolphin_dive/register +# +# 神器プールへの登録処理 +# +# @within tag/function asset:artifact/register + +data modify storage asset:artifact RarityRegistry[4] append value [1315] \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1315.dolphin_dive/trigger/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1315.dolphin_dive/trigger/1.trigger.mcfunction new file mode 100644 index 0000000000..7673f024ac --- /dev/null +++ b/Asset/data/asset/functions/artifact/1315.dolphin_dive/trigger/1.trigger.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/1315.dolphin_dive/trigger/1.trigger +# +# 指定したイベントタイミングで実行されるfunction +# +# @within tag/function asset:artifact/** + +# storage asset:idのmainhandに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する + execute if data storage asset:context id{mainhand:1315} run function asset:artifact/1315.dolphin_dive/trigger/2.check_condition \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1315.dolphin_dive/trigger/2.check_condition.mcfunction b/Asset/data/asset/functions/artifact/1315.dolphin_dive/trigger/2.check_condition.mcfunction new file mode 100644 index 0000000000..60ba85b11f --- /dev/null +++ b/Asset/data/asset/functions/artifact/1315.dolphin_dive/trigger/2.check_condition.mcfunction @@ -0,0 +1,15 @@ +#> asset:artifact/1315.dolphin_dive/trigger/2.check_condition +# +# 神器の発動条件をチェックします +# +# @within function asset:artifact/1315.dolphin_dive/trigger/1.trigger + +# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く + function asset:artifact/common/check_condition/mainhand +# 他にアイテム等確認する場合はここに書く + +# 地面に足をついている or 水面にいる(疑似的に判定)なら使用可能 + execute if entity @s[tag=CanUsed] unless function asset:artifact/1315.dolphin_dive/trigger/predicate/on_ground unless function asset:artifact/1315.dolphin_dive/trigger/predicate/water_surface run tag @s remove CanUsed + +# CanUsedタグをチェックして3.main.mcfunctionを実行する + execute if entity @s[tag=CanUsed] run function asset:artifact/1315.dolphin_dive/trigger/3.main diff --git a/Asset/data/asset/functions/artifact/1315.dolphin_dive/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/1315.dolphin_dive/trigger/3.main.mcfunction new file mode 100644 index 0000000000..9823b802ae --- /dev/null +++ b/Asset/data/asset/functions/artifact/1315.dolphin_dive/trigger/3.main.mcfunction @@ -0,0 +1,35 @@ +#> asset:artifact/1315.dolphin_dive/trigger/3.main +# +# 神器のメイン処理部 +# +# @within function asset:artifact/1315.dolphin_dive/trigger/2.check_condition + +# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う + function asset:artifact/common/use/mainhand + +# ここから先は神器側の効果の処理を書く + +# 演出 + execute positioned ~ ~0.3 ~ rotated ~ 0 run function asset:artifact/1315.dolphin_dive/trigger/vfx + playsound entity.dolphin.jump player @a ~ ~ ~ 0.8 1.1 + playsound entity.dolphin.jump player @a ~ ~ ~ 0.8 1.0 + playsound entity.dolphin.jump player @a ~ ~ ~ 0.8 0.9 + playsound minecraft:entity.dolphin.splash player @a ~ ~ ~ 1 1 + execute if predicate lib:random_pass_per/50 run playsound minecraft:entity.dolphin.play player @a ~ ~ ~ 0.7 1 + +# Motion + data modify storage lib: Argument.VectorMagnitude set value 1.1d + execute rotated ~ -65 run function lib:motion/looking + +# 攻撃用エフェクト付与 + data modify storage api: Argument.ID set value 341 + data modify storage api: Argument.FieldOverride.Damage set value 1000 + function api:entity/mob/effect/give + function api:entity/mob/effect/reset + +# 落下ダメージ無効 + data modify storage api: Argument.ID set value 190 + data modify storage api: Argument.Stack set value 10 + data modify storage api: Argument.Duration set value 40 + function api:entity/mob/effect/give + function api:entity/mob/effect/reset diff --git a/Asset/data/asset/functions/artifact/1315.dolphin_dive/trigger/predicate/on_ground.mcfunction b/Asset/data/asset/functions/artifact/1315.dolphin_dive/trigger/predicate/on_ground.mcfunction new file mode 100644 index 0000000000..b31bde53ee --- /dev/null +++ b/Asset/data/asset/functions/artifact/1315.dolphin_dive/trigger/predicate/on_ground.mcfunction @@ -0,0 +1,9 @@ +#> asset:artifact/1315.dolphin_dive/trigger/predicate/on_ground +# +# +# +# @within function asset:artifact/1315.dolphin_dive/trigger/2.check_condition + +# OnGround:1bなら成功 + function api:data_get/on_ground + execute if data storage api: {OnGround:true} run return 1 diff --git a/Asset/data/asset/functions/artifact/1315.dolphin_dive/trigger/predicate/water_surface.mcfunction b/Asset/data/asset/functions/artifact/1315.dolphin_dive/trigger/predicate/water_surface.mcfunction new file mode 100644 index 0000000000..0dfd9d0149 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1315.dolphin_dive/trigger/predicate/water_surface.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/1315.dolphin_dive/trigger/predicate/water_surface +# +# +# +# @within function asset:artifact/1315.dolphin_dive/trigger/2.check_condition + +# 足元が水 かつ 顔が水中でないなら成功 + execute if block ~ ~ ~ water anchored eyes unless block ^ ^ ^ water run return 1 diff --git a/Asset/data/asset/functions/artifact/1315.dolphin_dive/trigger/vfx.mcfunction b/Asset/data/asset/functions/artifact/1315.dolphin_dive/trigger/vfx.mcfunction new file mode 100644 index 0000000000..bf18d22d6c --- /dev/null +++ b/Asset/data/asset/functions/artifact/1315.dolphin_dive/trigger/vfx.mcfunction @@ -0,0 +1,68 @@ +#> asset:artifact/1315.dolphin_dive/trigger/vfx +# +# +# +# @within function asset:artifact/1315.dolphin_dive/trigger/3.main + +# [ImportKey]: NobwRALgngDgpmAXGAxgSwE4oDYIDRgCuhaAJkmAJwAslcARqQBwCGAtAEwBs9AZm9QCMABmpt6LJhzaUucOCiaVhKAMwBWFGAIA7FgFsEyQGGKAAkHawMFhgMBnJOBQB7QjohIuwgijju4GI5gAG4s2IRG4AAeSN5gULEAvokEtqRohA6I6sK5ebkEdhA2HohxcNjYaDB2RiJxGM7FEEZxaHYAopXVtR0AjoRh2FAAyta+5Ii8YbXJALpAA_3 +# 円 1 +particle cloud ~ ~ ~ ^0 ^ ^-500000000 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^52264231.63383 ^ ^-497260947.68414 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^103955845.40888 ^ ^-489073800.3669 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^154508497.18747 ^ ^-475528258.14758 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^203368321.5379 ^ ^-456772728.8213 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^250000000 ^ ^-433012701.89222 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^293892626.14624 ^ ^-404508497.18747 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^334565303.17943 ^ ^-371572412.7387 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^371572412.7387 ^ ^-334565303.17943 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^404508497.18747 ^ ^-293892626.14624 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^433012701.89222 ^ ^-250000000 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^456772728.8213 ^ ^-203368321.5379 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^475528258.14758 ^ ^-154508497.18747 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^489073800.3669 ^ ^-103955845.40888 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^497260947.68414 ^ ^-52264231.63383 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^500000000 ^ ^0 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^497260947.68414 ^ ^52264231.63383 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^489073800.3669 ^ ^103955845.40888 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^475528258.14758 ^ ^154508497.18747 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^456772728.8213 ^ ^203368321.5379 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^433012701.89222 ^ ^250000000 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^404508497.18747 ^ ^293892626.14624 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^371572412.7387 ^ ^334565303.17943 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^334565303.17943 ^ ^371572412.7387 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^293892626.14624 ^ ^404508497.18747 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^250000000 ^ ^433012701.89222 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^203368321.5379 ^ ^456772728.8213 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^154508497.18747 ^ ^475528258.14758 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^103955845.40888 ^ ^489073800.3669 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^52264231.63383 ^ ^497260947.68414 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^0 ^ ^500000000 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-52264231.63383 ^ ^497260947.68414 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-103955845.40888 ^ ^489073800.3669 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-154508497.18747 ^ ^475528258.14758 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-203368321.5379 ^ ^456772728.8213 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-250000000 ^ ^433012701.89222 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-293892626.14624 ^ ^404508497.18747 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-334565303.17943 ^ ^371572412.7387 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-371572412.7387 ^ ^334565303.17943 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-404508497.18747 ^ ^293892626.14624 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-433012701.89222 ^ ^250000000 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-456772728.8213 ^ ^203368321.5379 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-475528258.14758 ^ ^154508497.18747 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-489073800.3669 ^ ^103955845.40888 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-497260947.68414 ^ ^52264231.63383 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-500000000 ^ ^0 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-497260947.68414 ^ ^-52264231.63383 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-489073800.3669 ^ ^-103955845.40888 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-475528258.14758 ^ ^-154508497.18747 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-456772728.8213 ^ ^-203368321.5379 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-433012701.89222 ^ ^-250000000 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-404508497.18747 ^ ^-293892626.14624 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-371572412.7387 ^ ^-334565303.17943 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-334565303.17943 ^ ^-371572412.7387 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-293892626.14624 ^ ^-404508497.18747 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-250000000 ^ ^-433012701.89222 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-203368321.5379 ^ ^-456772728.8213 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-154508497.18747 ^ ^-475528258.14758 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-103955845.40888 ^ ^-489073800.3669 0.000000001 0 normal @a +particle cloud ~ ~ ~ ^-52264231.63383 ^ ^-497260947.68414 0.000000001 0 normal @a diff --git a/Asset/data/asset/functions/effect/0341.dolphin_dive/_/register.mcfunction b/Asset/data/asset/functions/effect/0341.dolphin_dive/_/register.mcfunction new file mode 100644 index 0000000000..cec093314a --- /dev/null +++ b/Asset/data/asset/functions/effect/0341.dolphin_dive/_/register.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/0341.dolphin_dive/_/register +# +# +# +# @within tag/function asset:effect/register + +execute if data storage asset:context {id:341} run function asset:effect/0341.dolphin_dive/register \ No newline at end of file diff --git a/Asset/data/asset/functions/effect/0341.dolphin_dive/_/tick.mcfunction b/Asset/data/asset/functions/effect/0341.dolphin_dive/_/tick.mcfunction new file mode 100644 index 0000000000..dcbbc2c3d1 --- /dev/null +++ b/Asset/data/asset/functions/effect/0341.dolphin_dive/_/tick.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/0341.dolphin_dive/_/tick +# +# Effectが発動している間毎tick実行されるfunction +# +# @within tag/function asset:effect/tick + +execute if data storage asset:context {id:341} run function asset:effect/0341.dolphin_dive/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/effect/0341.dolphin_dive/register.mcfunction b/Asset/data/asset/functions/effect/0341.dolphin_dive/register.mcfunction new file mode 100644 index 0000000000..996b289527 --- /dev/null +++ b/Asset/data/asset/functions/effect/0341.dolphin_dive/register.mcfunction @@ -0,0 +1,39 @@ +#> asset:effect/0341.dolphin_dive/register +# +# Effectのデータを指定 +# +# @within function asset:effect/0341.dolphin_dive/_/register + +# ExtendsSafe (boolean) (default = false) + # data modify storage asset:effect ExtendsSafe set value true +# ID (int) + data modify storage asset:effect ID set value 341 +# 名前 (TextComponentString) + data modify storage asset:effect Name set value '{"text":"ドルフィンダイブ"}' +# 説明文 (TextComponentString[]) + data modify storage asset:effect Description set value [] +# 効果時間 (int) (default = API || error) + data modify storage asset:effect Duration set value 100 +# スタック (int) (default = API || 1) + # data modify storage asset:effect Stack set value +# 効果時間の操作方法 (default = API || "replace") + # data modify storage asset:effect DurationOperation set value +# スタックの操作方法 (default = API || "replace") + # data modify storage asset:effect StackOperation set value +# 最大効果時間 (int) (default = 2147483647) + # data modify storage asset:effect MaxDuration set value +# 最大スタック (int) (default = 2147483647) + data modify storage asset:effect MaxStack set value 1 +# 悪い効果か否か (boolean) + data modify storage asset:effect IsBadEffect set value false +# 死亡時のエフェクトの処理 (default = "remove") + # data modify storage asset:effect ProcessOnDied set value +# 消すのに必要なレベル (int) (default = 1) + data modify storage asset:effect RequireClearLv set value 4 +# エフェクトをUIに表示するか (boolean) (default = true) + data modify storage asset:effect Visible set value false +# エフェクトのスタックををUIに表示するか (boolean) (default = true) + # data modify storage asset:effect StackVisible set value + +# フィールド + data modify storage asset:effect Field.Delay set value 6 diff --git a/Asset/data/asset/functions/effect/0341.dolphin_dive/tick/.mcfunction b/Asset/data/asset/functions/effect/0341.dolphin_dive/tick/.mcfunction new file mode 100644 index 0000000000..17082e755c --- /dev/null +++ b/Asset/data/asset/functions/effect/0341.dolphin_dive/tick/.mcfunction @@ -0,0 +1,22 @@ +#> asset:effect/0341.dolphin_dive/tick/ +# +# Effectのtick処理 +# +# @within function asset:effect/0341.dolphin_dive/_/tick + +# 演出 + particle dolphin ~ ~1 ~ 0.4 0.3 0.4 0 5 normal @a + particle dust 0.4 1 1 1 ~ ~1 ~ 0.3 0.4 0.3 0 2 normal @a + +# 最初の数tickは着地検知を無効とする + execute store result storage asset:context this.Delay int 0.9999999999 run data get storage asset:context this.Delay + execute unless data storage asset:context this{Delay:0} run return fail + +# 着地検知 + function api:data_get/on_ground + +# 着地 + execute if data storage api: {OnGround:1b} run function asset:effect/0341.dolphin_dive/tick/landing + +# OnGround:0bかつすぐ下が水なら水面とみなして発動 + execute if data storage api: {OnGround:0b} if block ~ ~-0.5 ~ water align y run function asset:effect/0341.dolphin_dive/tick/landing diff --git a/Asset/data/asset/functions/effect/0341.dolphin_dive/tick/landing.mcfunction b/Asset/data/asset/functions/effect/0341.dolphin_dive/tick/landing.mcfunction new file mode 100644 index 0000000000..3c44929b78 --- /dev/null +++ b/Asset/data/asset/functions/effect/0341.dolphin_dive/tick/landing.mcfunction @@ -0,0 +1,20 @@ +#> asset:effect/0341.dolphin_dive/tick/landing +# +# +# +# @within function asset:effect/0341.dolphin_dive/tick/ + +# Durationを0にしてエフェクト解除 + data modify storage asset:context Duration set value 0 + + tp @s @s + +# PlayerMotion + data modify storage lib: Argument.VectorMagnitude set value 0.7d + execute rotated ~ -65 run function lib:motion/looking + +# Object召喚 + data modify storage api: Argument.ID set value 1151 + data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage + execute store result storage api: Argument.FieldOverride.UserID int 1 run scoreboard players get @s UserID + function api:object/summon diff --git a/Asset/data/asset/functions/object/1151.dolphin_dive/register.mcfunction b/Asset/data/asset/functions/object/1151.dolphin_dive/register.mcfunction new file mode 100644 index 0000000000..77e1f63a89 --- /dev/null +++ b/Asset/data/asset/functions/object/1151.dolphin_dive/register.mcfunction @@ -0,0 +1,21 @@ +#> asset:object/1151.dolphin_dive/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/1151/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 1151 +# フィールド(オプション) + data modify storage asset:object Field.Damage set value 1 + data modify storage asset:object Field.UserID set value -1 diff --git a/Asset/data/asset/functions/object/1151.dolphin_dive/summon/.mcfunction b/Asset/data/asset/functions/object/1151.dolphin_dive/summon/.mcfunction new file mode 100644 index 0000000000..f0ed4b8dce --- /dev/null +++ b/Asset/data/asset/functions/object/1151.dolphin_dive/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/1151.dolphin_dive/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/1151/summon + +# 元となるEntityを召喚する + summon marker ~ ~ ~ {Tags:["ObjectInit"]} diff --git a/Asset/data/asset/functions/object/1151.dolphin_dive/tick/.mcfunction b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/.mcfunction new file mode 100644 index 0000000000..d2a1c74348 --- /dev/null +++ b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/.mcfunction @@ -0,0 +1,16 @@ +#> asset:object/1151.dolphin_dive/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/1151/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# 波 + execute if score @s General.Object.Tick matches 1 run function asset:object/1151.dolphin_dive/tick/wave/1 + execute if score @s General.Object.Tick matches 4 run function asset:object/1151.dolphin_dive/tick/wave/2 + execute if score @s General.Object.Tick matches 9 run function asset:object/1151.dolphin_dive/tick/wave/3 + +# 消滅処理 + kill @s[scores={General.Object.Tick=9..}] diff --git a/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/1.mcfunction b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/1.mcfunction new file mode 100644 index 0000000000..f153d3be4c --- /dev/null +++ b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/1.mcfunction @@ -0,0 +1,19 @@ +#> asset:object/1151.dolphin_dive/tick/wave/1 +# +# +# +# @within function asset:object/1151.dolphin_dive/tick/ + +# ダメージ + function asset:object/1151.dolphin_dive/tick/wave/damage/1 + +# playsound + playsound minecraft:entity.dolphin.splash player @a ~ ~ ~ 0.7 0.8 + playsound minecraft:entity.dolphin.splash player @a ~ ~ ~ 0.7 0.75 + playsound minecraft:entity.dolphin.splash player @a ~ ~ ~ 0.7 0.7 + +# object + execute rotated ~000 ~ positioned ^ ^ ^1.5 run function asset:object/1151.dolphin_dive/tick/wave/summon/max_start + execute rotated ~090 ~ positioned ^ ^ ^1.5 run function asset:object/1151.dolphin_dive/tick/wave/summon/max_start + execute rotated ~180 ~ positioned ^ ^ ^1.5 run function asset:object/1151.dolphin_dive/tick/wave/summon/max_start + execute rotated ~270 ~ positioned ^ ^ ^1.5 run function asset:object/1151.dolphin_dive/tick/wave/summon/max_start diff --git a/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/2.mcfunction b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/2.mcfunction new file mode 100644 index 0000000000..60f8232ed9 --- /dev/null +++ b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/2.mcfunction @@ -0,0 +1,23 @@ +#> asset:object/1151.dolphin_dive/tick/wave/2 +# +# +# +# @within function asset:object/1151.dolphin_dive/tick/ + +# ダメージ + function asset:object/1151.dolphin_dive/tick/wave/damage/2 + +# playsound + playsound minecraft:entity.dolphin.splash player @a ~ ~ ~ 0.7 0.9 + playsound minecraft:entity.dolphin.splash player @a ~ ~ ~ 0.7 0.85 + playsound minecraft:entity.dolphin.splash player @a ~ ~ ~ 0.7 0.8 + +# object + execute rotated ~000 ~ positioned ^ ^ ^3 run function asset:object/1151.dolphin_dive/tick/wave/summon/ + execute rotated ~045 ~ positioned ^ ^ ^3 run function asset:object/1151.dolphin_dive/tick/wave/summon/ + execute rotated ~090 ~ positioned ^ ^ ^3 run function asset:object/1151.dolphin_dive/tick/wave/summon/ + execute rotated ~135 ~ positioned ^ ^ ^3 run function asset:object/1151.dolphin_dive/tick/wave/summon/ + execute rotated ~180 ~ positioned ^ ^ ^3 run function asset:object/1151.dolphin_dive/tick/wave/summon/ + execute rotated ~225 ~ positioned ^ ^ ^3 run function asset:object/1151.dolphin_dive/tick/wave/summon/ + execute rotated ~270 ~ positioned ^ ^ ^3 run function asset:object/1151.dolphin_dive/tick/wave/summon/ + execute rotated ~315 ~ positioned ^ ^ ^3 run function asset:object/1151.dolphin_dive/tick/wave/summon/ diff --git a/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/3.mcfunction b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/3.mcfunction new file mode 100644 index 0000000000..13042830ba --- /dev/null +++ b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/3.mcfunction @@ -0,0 +1,27 @@ +#> asset:object/1151.dolphin_dive/tick/wave/3 +# +# +# +# @within function asset:object/1151.dolphin_dive/tick/ + +# ダメージ + function asset:object/1151.dolphin_dive/tick/wave/damage/3 + +# playsound + playsound minecraft:entity.dolphin.splash player @a ~ ~ ~ 0.7 1.0 + playsound minecraft:entity.dolphin.splash player @a ~ ~ ~ 0.7 0.95 + playsound minecraft:entity.dolphin.splash player @a ~ ~ ~ 0.7 0.9 + +# object + execute rotated ~000 ~ positioned ^ ^ ^4.5 run function asset:object/1151.dolphin_dive/tick/wave/summon/ + execute rotated ~030 ~ positioned ^ ^ ^4.5 run function asset:object/1151.dolphin_dive/tick/wave/summon/ + execute rotated ~060 ~ positioned ^ ^ ^4.5 run function asset:object/1151.dolphin_dive/tick/wave/summon/ + execute rotated ~090 ~ positioned ^ ^ ^4.5 run function asset:object/1151.dolphin_dive/tick/wave/summon/ + execute rotated ~120 ~ positioned ^ ^ ^4.5 run function asset:object/1151.dolphin_dive/tick/wave/summon/ + execute rotated ~150 ~ positioned ^ ^ ^4.5 run function asset:object/1151.dolphin_dive/tick/wave/summon/ + execute rotated ~180 ~ positioned ^ ^ ^4.5 run function asset:object/1151.dolphin_dive/tick/wave/summon/ + execute rotated ~210 ~ positioned ^ ^ ^4.5 run function asset:object/1151.dolphin_dive/tick/wave/summon/ + execute rotated ~240 ~ positioned ^ ^ ^4.5 run function asset:object/1151.dolphin_dive/tick/wave/summon/ + execute rotated ~270 ~ positioned ^ ^ ^4.5 run function asset:object/1151.dolphin_dive/tick/wave/summon/ + execute rotated ~300 ~ positioned ^ ^ ^4.5 run function asset:object/1151.dolphin_dive/tick/wave/summon/ + execute rotated ~330 ~ positioned ^ ^ ^4.5 run function asset:object/1151.dolphin_dive/tick/wave/summon/ diff --git a/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/damage/1.mcfunction b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/damage/1.mcfunction new file mode 100644 index 0000000000..6e8575afae --- /dev/null +++ b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/damage/1.mcfunction @@ -0,0 +1,36 @@ +#> asset:object/1151.dolphin_dive/tick/wave/damage/1 +# +# +# +# @within function asset:object/1151.dolphin_dive/tick/wave/1 + +#> Private +# @private + #declare score_holder $UserID + +# 円柱Libを用いて判定する + data modify storage lib: Argument.BoundingCylinder.Radius set value 2d + data modify storage lib: Argument.BoundingCylinder.Height set value 5d + data modify storage lib: Argument.BoundingCylinder.Selector set value "@e[type=#lib:living_without_player,tag=Enemy,tag=!Uninterferable,distance=..7]" + execute positioned ~ ~-1 ~ run function lib:bounding_cylinder/ + +# ダメージ設定 + data modify storage api: Argument.Damage set from storage asset:context this.Damage + data modify storage api: Argument.AttackType set value "Physical" + data modify storage api: Argument.ElementType set value "Water" + execute store result score $UserID Temporary run data get storage asset:context this.UserID + execute as @a if score @s UserID = $UserID Temporary run function api:damage/modifier + +# Motion設定 + data modify storage lib: Argument.VectorMagnitude set value 3.5f + data modify storage lib: Argument.KnockbackResist set value 1b + +# 多重ヒット防止判定をしてダメージとMotion + execute as @e[type=#lib:living_without_player,tag=Enemy,tag=BoundingCylinder,tag=!Uninterferable,distance=..7] run function asset:object/1151.dolphin_dive/tick/wave/damage/check_duplicate + +# DamageAPI リセット + function api:damage/reset + +# その他リセット + scoreboard players reset $UserID Temporary + tag @e[type=#lib:living_without_player,tag=BoundingCylinder,distance=..7] remove BoundingCylinder diff --git a/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/damage/2.mcfunction b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/damage/2.mcfunction new file mode 100644 index 0000000000..0c92ac9d79 --- /dev/null +++ b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/damage/2.mcfunction @@ -0,0 +1,36 @@ +#> asset:object/1151.dolphin_dive/tick/wave/damage/2 +# +# +# +# @within function asset:object/1151.dolphin_dive/tick/wave/2 + +#> Private +# @private + #declare score_holder $UserID + +# 円柱Libを用いて判定する + data modify storage lib: Argument.BoundingCylinder.Radius set value 4d + data modify storage lib: Argument.BoundingCylinder.Height set value 5d + data modify storage lib: Argument.BoundingCylinder.Selector set value "@e[type=#lib:living_without_player,tag=Enemy,tag=!Uninterferable,distance=..7]" + execute positioned ~ ~-1 ~ run function lib:bounding_cylinder/ + +# ダメージ設定 + data modify storage api: Argument.Damage set from storage asset:context this.Damage + data modify storage api: Argument.AttackType set value "Physical" + data modify storage api: Argument.ElementType set value "Water" + execute store result score $UserID Temporary run data get storage asset:context this.UserID + execute as @a if score @s UserID = $UserID Temporary run function api:damage/modifier + +# Motion設定 + data modify storage lib: Argument.VectorMagnitude set value 3.0f + data modify storage lib: Argument.KnockbackResist set value 1b + +# 多重ヒット防止判定をしてダメージとMotion + execute as @e[type=#lib:living_without_player,tag=Enemy,tag=BoundingCylinder,tag=!Uninterferable,distance=..7] run function asset:object/1151.dolphin_dive/tick/wave/damage/check_duplicate + +# DamageAPI リセット + function api:damage/reset + +# リセット + scoreboard players reset $UserID Temporary + tag @e[type=#lib:living_without_player,tag=BoundingCylinder,distance=..7] remove BoundingCylinder diff --git a/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/damage/3.mcfunction b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/damage/3.mcfunction new file mode 100644 index 0000000000..60d9dacaf1 --- /dev/null +++ b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/damage/3.mcfunction @@ -0,0 +1,36 @@ +#> asset:object/1151.dolphin_dive/tick/wave/damage/3 +# +# +# +# @within function asset:object/1151.dolphin_dive/tick/wave/3 + +#> Private +# @private + #declare score_holder $UserID + +# 円柱Libを用いて判定する + data modify storage lib: Argument.BoundingCylinder.Radius set value 6d + data modify storage lib: Argument.BoundingCylinder.Height set value 5d + data modify storage lib: Argument.BoundingCylinder.Selector set value "@e[type=#lib:living_without_player,tag=Enemy,tag=!Uninterferable,distance=..7]" + execute positioned ~ ~-1 ~ run function lib:bounding_cylinder/ + +# ダメージ設定 + data modify storage api: Argument.Damage set from storage asset:context this.Damage + data modify storage api: Argument.AttackType set value "Physical" + data modify storage api: Argument.ElementType set value "Water" + execute store result score $UserID Temporary run data get storage asset:context this.UserID + execute as @a if score @s UserID = $UserID Temporary run function api:damage/modifier + +# Motion設定 + data modify storage lib: Argument.VectorMagnitude set value 2.5f + data modify storage lib: Argument.KnockbackResist set value 1b + +# 多重ヒット防止判定をしてダメージとMotion + execute as @e[type=#lib:living_without_player,tag=Enemy,tag=BoundingCylinder,tag=!Uninterferable,distance=..7] run function asset:object/1151.dolphin_dive/tick/wave/damage/check_duplicate + +# DamageAPI リセット + function api:damage/reset + +# リセット + scoreboard players reset $UserID Temporary + tag @e[type=#lib:living_without_player,tag=BoundingCylinder,distance=..7] remove BoundingCylinder diff --git a/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/damage/check_duplicate.mcfunction b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/damage/check_duplicate.mcfunction new file mode 100644 index 0000000000..eb8772cd03 --- /dev/null +++ b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/damage/check_duplicate.mcfunction @@ -0,0 +1,15 @@ +#> asset:object/1151.dolphin_dive/tick/wave/damage/check_duplicate +# +# +# +# @within function asset:object/1151.dolphin_dive/tick/wave/damage/* + +# 既にヒットしていなければダメージとモーション + function asset:object/call.m {method:"check_duplicate"} + execute unless predicate asset:object/0002.duplicate_hit_protection_mixin/is_first_hit run return fail + +# ダメージ + function api:damage/ + +# モーション + execute if entity @s[tag=!Immovable] facing entity @s feet rotated ~ -30 run function lib:motion/ diff --git a/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/summon/.mcfunction b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/summon/.mcfunction new file mode 100644 index 0000000000..7648cbceee --- /dev/null +++ b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/summon/.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/1151.dolphin_dive/tick/wave/summon/ +# +# +# +# @within function asset:object/1151.dolphin_dive/tick/wave/** + +# 召喚 + data modify storage api: Argument.ID set value 2256 + function api:object/summon diff --git a/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/summon/max_start.mcfunction b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/summon/max_start.mcfunction new file mode 100644 index 0000000000..9dae4270bf --- /dev/null +++ b/Asset/data/asset/functions/object/1151.dolphin_dive/tick/wave/summon/max_start.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/1151.dolphin_dive/tick/wave/summon/max_start +# +# +# +# @within function asset:object/1151.dolphin_dive/tick/wave/1 + +# 最初から水柱がほぼ最大の状態で召喚 + data modify storage api: Argument.FieldOverride.Frames set value [20572,20573,20574,20575,20576,20577] + function asset:object/1151.dolphin_dive/tick/wave/summon/ diff --git a/Asset/data/asset/functions/object/alias/1151/register.mcfunction b/Asset/data/asset/functions/object/alias/1151/register.mcfunction new file mode 100644 index 0000000000..92992958b7 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1151/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1151/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/1151.dolphin_dive/register diff --git a/Asset/data/asset/functions/object/alias/1151/summon.mcfunction b/Asset/data/asset/functions/object/alias/1151/summon.mcfunction new file mode 100644 index 0000000000..22cd3653a7 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1151/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1151/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/1151.dolphin_dive/summon/ diff --git a/Asset/data/asset/functions/object/alias/1151/tick.mcfunction b/Asset/data/asset/functions/object/alias/1151/tick.mcfunction new file mode 100644 index 0000000000..ec7218fba0 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1151/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1151/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/1151.dolphin_dive/tick/ diff --git a/Asset/data/asset/tags/functions/artifact/click.carrot_on_a_stick.json b/Asset/data/asset/tags/functions/artifact/click.carrot_on_a_stick.json index 196858485c..bf61121468 100644 --- a/Asset/data/asset/tags/functions/artifact/click.carrot_on_a_stick.json +++ b/Asset/data/asset/tags/functions/artifact/click.carrot_on_a_stick.json @@ -1,5 +1,6 @@ { "values": [ + "asset:artifact/1315.dolphin_dive/trigger/1.trigger", "asset:artifact/1144.cradle_of_azure_moon/trigger/1.trigger", "asset:artifact/0005.musket_matchlock/trigger/1.trigger", "asset:artifact/0017.harmful_books/trigger/1.trigger", @@ -175,4 +176,4 @@ "asset:artifact/2001.staff_of_the_willless/trigger/1.trigger", "asset:artifact/0019.scripture/trigger/1.trigger" ] -} \ No newline at end of file +} diff --git a/Asset/data/asset/tags/functions/artifact/give.json b/Asset/data/asset/tags/functions/artifact/give.json index 5cac74fad1..37f2980563 100644 --- a/Asset/data/asset/tags/functions/artifact/give.json +++ b/Asset/data/asset/tags/functions/artifact/give.json @@ -1,5 +1,6 @@ { "values": [ + "asset:artifact/1315.dolphin_dive/give/1.trigger", "asset:artifact/1308.magnifier_of_detective_girl/give/1.trigger", "asset:artifact/1109.black_lily_of_priestess/give/1.trigger", "asset:artifact/1311.yearning_rose/give/1.trigger", diff --git a/Asset/data/asset/tags/functions/artifact/register.json b/Asset/data/asset/tags/functions/artifact/register.json index f2e6035d7d..e624734d77 100644 --- a/Asset/data/asset/tags/functions/artifact/register.json +++ b/Asset/data/asset/tags/functions/artifact/register.json @@ -1,5 +1,6 @@ { "values": [ + "asset:artifact/1315.dolphin_dive/register", "asset:artifact/1308.magnifier_of_detective_girl/register", "asset:artifact/1109.black_lily_of_priestess/register", "asset:artifact/1311.yearning_rose/register", diff --git a/Asset/data/asset/tags/functions/effect/register.json b/Asset/data/asset/tags/functions/effect/register.json index f907f4ca50..72d8b1f30a 100644 --- a/Asset/data/asset/tags/functions/effect/register.json +++ b/Asset/data/asset/tags/functions/effect/register.json @@ -1,5 +1,6 @@ { "values": [ + "asset:effect/0341.dolphin_dive/_/register", "asset:effect/0342.prayer_amidst_blight/_/register", "asset:effect/0340.endless_thirst/_/register", "asset:effect/0350.yuzu/_/register", diff --git a/Asset/data/asset/tags/functions/effect/tick.json b/Asset/data/asset/tags/functions/effect/tick.json index 9fe669c474..a25cf47ccb 100644 --- a/Asset/data/asset/tags/functions/effect/tick.json +++ b/Asset/data/asset/tags/functions/effect/tick.json @@ -1,5 +1,6 @@ { "values": [ + "asset:effect/0341.dolphin_dive/_/tick", "asset:effect/0342.prayer_amidst_blight/_/tick", "asset:effect/0340.endless_thirst/_/tick", "asset:effect/0350.yuzu/_/tick",