diff --git a/Asset/data/asset/functions/artifact/1598.banisher/give/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1598.banisher/give/1.trigger.mcfunction new file mode 100644 index 00000000000..6ef185f0ae2 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1598.banisher/give/1.trigger.mcfunction @@ -0,0 +1,7 @@ +#> asset:artifact/1598.banisher/give/1.trigger +# +# 神器の取得処理の呼び出し時に実行されるfunction +# +# @within tag/function asset:artifact/give + +execute if data storage asset:context {id:1598} run function asset:artifact/1598.banisher/give/2.give \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1598.banisher/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/1598.banisher/give/2.give.mcfunction new file mode 100644 index 00000000000..be1090081d9 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1598.banisher/give/2.give.mcfunction @@ -0,0 +1,68 @@ +#> asset:artifact/1598.banisher/give/2.give +# +# 神器の作成部 ここでID等を定義する +# +# @user +# @within function asset:artifact/1598.banisher/give/1.trigger + +# 神器の説明や消費MPなどをここで設定する。 +# 最後にasset:artifact/common/giveを実行することで入手可能。 + +# 神器のID (int) スプレッドシートの値を入れる + data modify storage asset:artifact ID set value 1598 +# 神器のベースアイテム + data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick" +# 神器の名前 (TextComponentString) + data modify storage asset:artifact Name set value '{"text": "堕天", "color": "#e1c6f5"}' +# 神器の説明文 (TextComponentString[]) + data modify storage asset:artifact Lore set value ['{"text": "天使を攻撃すると、命中した場所に天使の輪を召喚する。"}', '{"text": "輪は8秒間残り、内側にいる天使に毎秒ダメージを与え続ける。"}', '{"text": "弾が尽きても、非戦闘時ならリロードが可能だ。"}', '{"text": "「力ある者、天より堕とされる運命にあり」", "color": "gray"}'] +# 消費アイテム ({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 4 +# 神器を発動できるスロット (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 +# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.Damage set value "200 / 200x8" +# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.AttackType set value [Magic] +# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.ElementType set value [None] +# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション) + # data modify storage asset:artifact AttackInfo.BypassResist set value +# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.IsRangeAttack set value "condition" +# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.AttackRange set value 30 +# MP消費量 (int) + data modify storage asset:artifact MPCost set value 15 +# 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 "longRange" + data modify storage asset:artifact TypeCooldown.Duration set value 8 +# グローバルクールダウン (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 true +# 扱える神 (string[]) Wikiを参照 + data modify storage asset:artifact CanUsedGod set value "ALL" +# カスタム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/1598.banisher/trigger/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1598.banisher/trigger/1.trigger.mcfunction new file mode 100644 index 00000000000..9a9e3c05b58 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1598.banisher/trigger/1.trigger.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/1598.banisher/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:1598} run function asset:artifact/1598.banisher/trigger/2.check_condition \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1598.banisher/trigger/2.check_condition.mcfunction b/Asset/data/asset/functions/artifact/1598.banisher/trigger/2.check_condition.mcfunction new file mode 100644 index 00000000000..1bb079c2aef --- /dev/null +++ b/Asset/data/asset/functions/artifact/1598.banisher/trigger/2.check_condition.mcfunction @@ -0,0 +1,12 @@ +#> asset:artifact/1598.banisher/trigger/2.check_condition +# +# 神器の発動条件をチェックします +# +# @within function asset:artifact/1598.banisher/trigger/1.trigger + +# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く + function asset:artifact/common/check_condition/mainhand +# 他にアイテム等確認する場合はここに書く + +# CanUsedタグをチェックして3.main.mcfunctionを実行する + execute if entity @s[tag=CanUsed] run function asset:artifact/1598.banisher/trigger/3.main \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1598.banisher/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/1598.banisher/trigger/3.main.mcfunction new file mode 100644 index 00000000000..608b93724ad --- /dev/null +++ b/Asset/data/asset/functions/artifact/1598.banisher/trigger/3.main.mcfunction @@ -0,0 +1,42 @@ +#> asset:artifact/1598.banisher/trigger/3.main +# +# 神器のメイン処理部 +# +# @within function asset:artifact/1598.banisher/trigger/2.check_condition + +#> SpreadLib +# @private + #declare tag A1598.SpreadMarker + +# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う + function asset:artifact/common/use/mainhand + +# ここから先は神器側の効果の処理を書く +# 前方拡散 + summon marker ~ ~ ~ {Tags:["A1598.SpreadMarker"]} + data modify storage lib: Argument.Distance set value 0.8 + data modify storage lib: Argument.Spread set value 0.1 + execute as @e[type=marker,tag=A1598.SpreadMarker,distance=..0.01,limit=1] run function lib:forward_spreader/circle + +# 発射 + execute facing entity @e[type=marker,tag=A1598.SpreadMarker,distance=..1,limit=1] feet anchored eyes positioned ^-0.14 ^-0.05 ^0.35 run function asset:artifact/1598.banisher/trigger/rec + +# 演出 + playsound entity.firework_rocket.blast player @a ~ ~ ~ 1.0 0.7 + playsound entity.evoker.cast_spell player @a ~ ~ ~ 1.0 1.75 + playsound entity.illusioner.prepare_mirror player @a ~ ~ ~ 1.0 2.0 + # 特殊vfx + data modify storage api: Argument.FieldOverride.Item set value {id:"minecraft:stick",Count:1b} + data modify storage api: Argument.FieldOverride.Scale set value [0.5f,0.5f,0.0f] + data modify storage api: Argument.FieldOverride.Frames set value [20640,20641,20642,20643,20644,20645,20646] + data modify storage api: Argument.FieldOverride.LockRotation set value false + data modify storage api: Argument.FieldOverride.Transformation.left_rotation set value {axis:[1.0f, 0.0f, 0.0f], angle:1.577f} + data modify storage api: Argument.ID set value 2001 + execute anchored eyes positioned ^-0.14 ^-0.05 ^0.35 run function api:object/summon + +# 消費時の処理 + function asset:artifact/1598.banisher/trigger/reload + +# リセット + kill @e[type=marker,tag=A1598.SpreadMarker,distance=..1,limit=1] + data remove storage lib: Argument diff --git a/Asset/data/asset/functions/artifact/1598.banisher/trigger/damage/.mcfunction b/Asset/data/asset/functions/artifact/1598.banisher/trigger/damage/.mcfunction new file mode 100644 index 00000000000..d3d2433d8c7 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1598.banisher/trigger/damage/.mcfunction @@ -0,0 +1,23 @@ +#> asset:artifact/1598.banisher/trigger/damage/ +# +# +# +# @within function asset:artifact/1598.banisher/trigger/rec + +# 攻撃情報設定 + #通常 + data modify storage api: Argument.Damage set value 200.0d + #天使が対象の場合は残留攻撃を召喚 + execute if entity @s[tag=Enemy.Boss] as @p[tag=this] run function asset:artifact/1598.banisher/trigger/damage/boss + + data modify storage api: Argument.AttackType set value "Magic" + data modify storage api: Argument.ElementType set value "None" + execute as @p[tag=this] run function api:damage/modifier + function api:damage/ + function api:damage/reset + +# 演出 + particle crit ~ ~ ~ 0.2 0.5 0.2 1.0 25 + particle enchanted_hit ~ ~ ~ 0.2 0.5 0.2 1.0 20 + playsound item.trident.return player @a ~ ~ ~ 1.0 2.0 + playsound block.enchantment_table.use player @a ~ ~ ~ 1.0 1.2 diff --git a/Asset/data/asset/functions/artifact/1598.banisher/trigger/damage/boss.mcfunction b/Asset/data/asset/functions/artifact/1598.banisher/trigger/damage/boss.mcfunction new file mode 100644 index 00000000000..62e92b3115e --- /dev/null +++ b/Asset/data/asset/functions/artifact/1598.banisher/trigger/damage/boss.mcfunction @@ -0,0 +1,22 @@ +#> asset:artifact/1598.banisher/trigger/damage/boss +# +# +# +# @within function asset:artifact/1598.banisher/trigger/damage/ + +# 残留攻撃(Object 1188)を召喚 + data modify storage api: Argument.ID set value 1188 + execute store result storage api: Argument.FieldOverride.UserID int 1 run scoreboard players get @s UserID + + # 攻撃情報 + data modify storage api: Argument.FieldOverride.Damage set value 200.0d + data modify storage api: Argument.FieldOverride.AttackType set value "Magic" + data modify storage api: Argument.FieldOverride.ElementType set value "None" + + # 存在時間 + data modify storage api: Argument.FieldOverride.Tick set value 160 + + # 攻撃間隔 + data modify storage api: Argument.FieldOverride.AttackInterval set value 20 + + execute positioned ^ ^ ^0.5 run function api:object/summon diff --git a/Asset/data/asset/functions/artifact/1598.banisher/trigger/rec.mcfunction b/Asset/data/asset/functions/artifact/1598.banisher/trigger/rec.mcfunction new file mode 100644 index 00000000000..90d2583339c --- /dev/null +++ b/Asset/data/asset/functions/artifact/1598.banisher/trigger/rec.mcfunction @@ -0,0 +1,18 @@ +#> asset:artifact/1598.banisher/trigger/rec +# +# +# +# @within function asset:artifact/1598.banisher/trigger/** + +# 着弾検知 + execute unless block ^ ^ ^0.5 #lib:no_collision/ run return 0 +# ダメージ処理 + execute positioned ~-0.5 ~-0.5 ~-0.5 as @e[type=#lib:living_without_player,tag=Enemy,tag=!Uninterferable,dx=0,limit=1] run return run function asset:artifact/1598.banisher/trigger/damage/ + +# 演出 + particle dust 0.22 0.082 0.345 0.2 ~ ~ ~ 0.1 0.1 0.1 0 7 + particle dust 0.478 0.176 0.553 0.2 ~ ~ ~ 0.1 0.1 0.1 0 5 + particle dust 0.973 0.769 0.973 0.5 ~ ~ ~ 0.0 0.0 0.0 0 1 + +# 再帰 + execute positioned ^ ^ ^0.5 if entity @s[distance=..30] run function asset:artifact/1598.banisher/trigger/rec diff --git a/Asset/data/asset/functions/artifact/1598.banisher/trigger/reload.mcfunction b/Asset/data/asset/functions/artifact/1598.banisher/trigger/reload.mcfunction new file mode 100644 index 00000000000..3c598611c90 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1598.banisher/trigger/reload.mcfunction @@ -0,0 +1,13 @@ +#> asset:artifact/1598.banisher/trigger/reload +# +# +# +# @within function asset:artifact/1598.banisher/trigger/3.main + +# 使用回数が残っているならキャンセル + execute if data storage asset:context Items.mainhand.id run return fail + +# アイテム置き換え + data modify storage api: Argument.ID set value 1599 + data modify storage api: Argument.Slot set value "mainhand" + function api:artifact/replace/from_id diff --git a/Asset/data/asset/functions/artifact/1599.banisher_empty/give/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1599.banisher_empty/give/1.trigger.mcfunction new file mode 100644 index 00000000000..9a32bdabc55 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1599.banisher_empty/give/1.trigger.mcfunction @@ -0,0 +1,7 @@ +#> asset:artifact/1599.banisher_empty/give/1.trigger +# +# 神器の取得処理の呼び出し時に実行されるfunction +# +# @within tag/function asset:artifact/give + +execute if data storage asset:context {id:1599} run function asset:artifact/1599.banisher_empty/give/2.give \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1599.banisher_empty/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/1599.banisher_empty/give/2.give.mcfunction new file mode 100644 index 00000000000..7dcbad3293d --- /dev/null +++ b/Asset/data/asset/functions/artifact/1599.banisher_empty/give/2.give.mcfunction @@ -0,0 +1,68 @@ +#> asset:artifact/1599.banisher_empty/give/2.give +# +# 神器の作成部 ここでID等を定義する +# +# @user +# @within function asset:artifact/1599.banisher_empty/give/1.trigger + +# 神器の説明や消費MPなどをここで設定する。 +# 最後にasset:artifact/common/giveを実行することで入手可能。 + +# 神器のID (int) スプレッドシートの値を入れる + data modify storage asset:artifact ID set value 1599 +# 神器のベースアイテム + data modify storage asset:artifact Item set value "minecraft:stick" +# 神器の名前 (TextComponentString) + data modify storage asset:artifact Name set value '{"text": "堕天 ", "color": "#635671"}' +# 神器の説明文 (TextComponentString[]) + data modify storage asset:artifact Lore set value ['{"text": "非戦闘時にのみ、リロードができる。"}', '{"text": "天からの遣いを堕とすべく、力を使い果たした銃。", "color": "gray"}', '{"text": "集中の乱れを好まないようだ。", "color": "gray"}'] +# 消費アイテム ({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 "sneak" +# 神器の発動条件 (TextComponentString) (オプション) + data modify storage asset:artifact Condition set value "非戦闘時" +# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション) + # data modify storage asset:artifact AttackInfo.Damage set value [0,0] +# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション) + # data modify storage asset:artifact AttackInfo.AttackType set value [Physical,Magic] +# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション) + # data modify storage asset:artifact AttackInfo.ElementType set value [Fire,Water,Thunder,None] +# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション) + # data modify storage asset:artifact AttackInfo.BypassResist set value +# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション) + # data modify storage asset:artifact AttackInfo.IsRangeAttack set value +# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション) + # data modify storage asset:artifact AttackInfo.AttackRange set value +# MP消費量 (int) + data modify storage asset:artifact MPCost set value 50 +# 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 + # data modify storage asset:artifact TypeCooldown.Duration set value +# グローバルクールダウン (int) (オプション) + # data modify storage asset:artifact SpecialCooldown set value +# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableCooldownMessage set value +# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableMPMessage set value +# 破壊時の音を鳴らさないかどうか (boolean) (オプション) + # data modify storage asset:artifact DisableBreakSound set value +# 扱える神 (string[]) Wikiを参照 + data modify storage asset:artifact CanUsedGod set value "ALL" +# カスタム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/1599.banisher_empty/trigger/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1599.banisher_empty/trigger/1.trigger.mcfunction new file mode 100644 index 00000000000..66e9b286a47 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1599.banisher_empty/trigger/1.trigger.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/1599.banisher_empty/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:1599} run function asset:artifact/1599.banisher_empty/trigger/2.check_condition \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1599.banisher_empty/trigger/2.check_condition.mcfunction b/Asset/data/asset/functions/artifact/1599.banisher_empty/trigger/2.check_condition.mcfunction new file mode 100644 index 00000000000..5f92e77f9bc --- /dev/null +++ b/Asset/data/asset/functions/artifact/1599.banisher_empty/trigger/2.check_condition.mcfunction @@ -0,0 +1,15 @@ +#> asset:artifact/1599.banisher_empty/trigger/2.check_condition +# +# 神器の発動条件をチェックします +# +# @within function asset:artifact/1599.banisher_empty/trigger/1.trigger + +# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く + function asset:artifact/common/check_condition/mainhand +# 他にアイテム等確認する場合はここに書く +# 戦闘時ならCanUsed剝奪 + execute if entity @s[tag=CanUsed] if predicate lib:in_battle run tellraw @s {"text":"戦闘中はリロードができない!","color":"red"} + execute if entity @s[tag=CanUsed] if predicate lib:in_battle run tag @s remove CanUsed + +# CanUsedタグをチェックして3.main.mcfunctionを実行する + execute if entity @s[tag=CanUsed] run function asset:artifact/1599.banisher_empty/trigger/3.main diff --git a/Asset/data/asset/functions/artifact/1599.banisher_empty/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/1599.banisher_empty/trigger/3.main.mcfunction new file mode 100644 index 00000000000..9dbe1c8a097 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1599.banisher_empty/trigger/3.main.mcfunction @@ -0,0 +1,18 @@ +#> asset:artifact/1599.banisher_empty/trigger/3.main +# +# 神器のメイン処理部 +# +# @within function asset:artifact/1599.banisher_empty/trigger/2.check_condition + +# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う + function asset:artifact/common/use/mainhand + +# ここから先は神器側の効果の処理を書く +# リロード + data modify storage api: Argument.ID set value 1598 + data modify storage api: Argument.Slot set value "mainhand" + function api:artifact/replace/from_id + +# 演出 + playsound block.iron_door.open player @a ~ ~ ~ 2.0 1.7 + playsound block.amethyst_block.break player @a ~ ~ ~ 1.0 0.5 diff --git a/Asset/data/asset/functions/object/1188.banishing_ring/init/.mcfunction b/Asset/data/asset/functions/object/1188.banishing_ring/init/.mcfunction new file mode 100644 index 00000000000..9604bdf4443 --- /dev/null +++ b/Asset/data/asset/functions/object/1188.banishing_ring/init/.mcfunction @@ -0,0 +1,15 @@ +#> asset:object/1188.banishing_ring/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/1188/init + +# 存在時間 + execute store result score @s General.Object.Tick run data get storage asset:context this.Tick + +# アニメーション開始(存在時間 - 3) + scoreboard players operation @s O1188.InterpolationTick = @s General.Object.Tick + scoreboard players remove @s O1188.InterpolationTick 3 + +# Intervalに規定値を代入 + data modify storage asset:context this.Interval set from storage asset:context this.AttackInterval diff --git a/Asset/data/asset/functions/object/1188.banishing_ring/load.mcfunction b/Asset/data/asset/functions/object/1188.banishing_ring/load.mcfunction new file mode 100644 index 00000000000..036d48f0b51 --- /dev/null +++ b/Asset/data/asset/functions/object/1188.banishing_ring/load.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/1188.banishing_ring/load +# +# Objectに利用するスコアボード等の初期化処理 +# +# @within tag/function asset:object/load + +#> 定義類はここに +# @within function asset:object/1188.banishing_ring/** + scoreboard objectives add O1188.InterpolationTick dummy diff --git a/Asset/data/asset/functions/object/1188.banishing_ring/register.mcfunction b/Asset/data/asset/functions/object/1188.banishing_ring/register.mcfunction new file mode 100644 index 00000000000..03ee14c4a45 --- /dev/null +++ b/Asset/data/asset/functions/object/1188.banishing_ring/register.mcfunction @@ -0,0 +1,24 @@ +#> asset:object/1188.banishing_ring/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/1188/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 1188 +# フィールド(オプション) + data modify storage asset:object Field.Damage set value -1 + data modify storage asset:object Field.DamageType set value "" + data modify storage asset:object Field.ElementType set value "" + data modify storage asset:object Field.Interval set value -1 + data modify storage asset:object Field.UserID set value -1 diff --git a/Asset/data/asset/functions/object/1188.banishing_ring/summon/.mcfunction b/Asset/data/asset/functions/object/1188.banishing_ring/summon/.mcfunction new file mode 100644 index 00000000000..89f2f564007 --- /dev/null +++ b/Asset/data/asset/functions/object/1188.banishing_ring/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/1188.banishing_ring/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/1188/summon + +# 元となるEntityを召喚する + summon item_display ~ ~ ~ {Tags:["ObjectInit"],item:{id:"minecraft:stick", Count:1b, tag:{CustomModelData:20650}}, brightness:{block:15,sky:15}, interpolation_duration:2, transformation:{scale:[0.0f, 0.0f, 0.0f], translation: [0.0f, 0.01f, 0.0f], right_rotation: {axis:[0.0f, 0.0f, 0.0f], angle:0.0f}, left_rotation:{axis:[1.0f, 0.0f, 0.0f], angle:1.5708f}}, start_interpolation:3} diff --git a/Asset/data/asset/functions/object/1188.banishing_ring/summon/debug.mcfunction b/Asset/data/asset/functions/object/1188.banishing_ring/summon/debug.mcfunction new file mode 100644 index 00000000000..ef784603f09 --- /dev/null +++ b/Asset/data/asset/functions/object/1188.banishing_ring/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/1188.banishing_ring/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 1188 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/1188.banishing_ring/tick/.mcfunction b/Asset/data/asset/functions/object/1188.banishing_ring/tick/.mcfunction new file mode 100644 index 00000000000..b98ec9c0792 --- /dev/null +++ b/Asset/data/asset/functions/object/1188.banishing_ring/tick/.mcfunction @@ -0,0 +1,18 @@ +#> asset:object/1188.banishing_ring/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/1188/tick + +# Tick減算 + scoreboard players remove @s General.Object.Tick 1 + +# 召喚から3tick後だけ展開アニメーション + execute if score @s General.Object.Tick = @s O1188.InterpolationTick run data modify entity @s transformation.scale set value [4.5f,4.5f,0.0f] + +# Interval減算 + execute store result storage asset:context this.Interval int 0.9999999999 run data get storage asset:context this.Interval + execute if data storage asset:context this{Interval:0} run function asset:object/1188.banishing_ring/tick/damage + +# 消滅処理 + kill @s[scores={General.Object.Tick=..0}] diff --git a/Asset/data/asset/functions/object/1188.banishing_ring/tick/damage.mcfunction b/Asset/data/asset/functions/object/1188.banishing_ring/tick/damage.mcfunction new file mode 100644 index 00000000000..c396145ae8d --- /dev/null +++ b/Asset/data/asset/functions/object/1188.banishing_ring/tick/damage.mcfunction @@ -0,0 +1,32 @@ +#> asset:object/1188.banishing_ring/tick/damage +# +# +# +# @within function asset:object/1188.banishing_ring/tick/ + +#> Private +# @private + #declare score_holder $O1188.UserID + +# 半径2ブロックに攻撃 + #攻撃情報はFieldから + data modify storage api: Argument.Damage set from storage asset:context this.Damage + data modify storage api: Argument.AttackType set from storage asset:context this.AttackType + data modify storage api: Argument.ElementType set from storage asset:context this.ElementType + #召喚したプレイヤー取得 + execute store result score $O1188.UserID Temporary run data get storage asset:context this.UserID + + execute as @a if score @s UserID = $O1188.UserID Temporary run function api:damage/modifier + execute as @e[type=#lib:living_without_player,tag=Enemy.Boss,distance=..2] run function api:damage/ + function api:damage/reset + +# 演出 + particle flash ~ ~ ~ 0 0 0 1 1 + particle end_rod ~ ~2 ~ 0 2 0 0.1 30 + particle witch ~ ~ ~ 0.5 0.5 0.5 0.15 60 + playsound block.amethyst_cluster.break player @a ~ ~ ~ 1 0.5 + playsound entity.evoker.prepare_summon player @a ~ ~ ~ 1 1.75 + +# リセット + data modify storage asset:context this.Interval set from storage asset:context this.AttackInterval + scoreboard players reset $O1188.UserID diff --git a/Asset/data/asset/functions/object/alias/1188/init.mcfunction b/Asset/data/asset/functions/object/alias/1188/init.mcfunction new file mode 100644 index 00000000000..fb56f31623a --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1188/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1188/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/1188.banishing_ring/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/1188/register.mcfunction b/Asset/data/asset/functions/object/alias/1188/register.mcfunction new file mode 100644 index 00000000000..1f186ff7a87 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1188/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1188/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/1188.banishing_ring/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/1188/summon.mcfunction b/Asset/data/asset/functions/object/alias/1188/summon.mcfunction new file mode 100644 index 00000000000..718340da7f3 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1188/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1188/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/1188.banishing_ring/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/1188/tick.mcfunction b/Asset/data/asset/functions/object/alias/1188/tick.mcfunction new file mode 100644 index 00000000000..444ffa9b301 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1188/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1188/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/1188.banishing_ring/tick/ \ No newline at end of file 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 b52518691d0..af2b1aa5e11 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/1598.banisher/trigger/1.trigger", "asset:artifact/1661.starlight_circle/trigger/1.trigger", "asset:artifact/1662.salmon_canon/trigger/1.trigger", "asset:artifact/1632.photon_burst/trigger/1.trigger", diff --git a/Asset/data/asset/tags/functions/artifact/give.json b/Asset/data/asset/tags/functions/artifact/give.json index 4d1d5891d99..9b713902cc2 100644 --- a/Asset/data/asset/tags/functions/artifact/give.json +++ b/Asset/data/asset/tags/functions/artifact/give.json @@ -1,5 +1,7 @@ { "values": [ + "asset:artifact/1599.banisher_empty/give/1.trigger", + "asset:artifact/1598.banisher/give/1.trigger", "asset:artifact/1360.vintage_wine/give/1.trigger", "asset:artifact/1661.starlight_circle/give/1.trigger", "asset:artifact/1390.red_refraction_prism/give/1.trigger", diff --git a/Asset/data/asset/tags/functions/artifact/sneak/.json b/Asset/data/asset/tags/functions/artifact/sneak/.json index f345cb5af80..57dfe7201ac 100644 --- a/Asset/data/asset/tags/functions/artifact/sneak/.json +++ b/Asset/data/asset/tags/functions/artifact/sneak/.json @@ -1,4 +1,5 @@ { "values": [ + "asset:artifact/1599.banisher_empty/trigger/1.trigger" ] -} \ No newline at end of file +} diff --git a/Asset/data/asset/tags/functions/artifact/sneak/keep/.json b/Asset/data/asset/tags/functions/artifact/sneak/keep/.json index a4082b5ea7b..b232f8f09d7 100644 --- a/Asset/data/asset/tags/functions/artifact/sneak/keep/.json +++ b/Asset/data/asset/tags/functions/artifact/sneak/keep/.json @@ -5,4 +5,4 @@ "asset:artifact/0971.laser_eye_helmet/charge/1.trigger", "asset:artifact/0573.final_prism/trigger/1.trigger" ] -} \ No newline at end of file +} diff --git a/Asset/data/asset/tags/functions/object/load.json b/Asset/data/asset/tags/functions/object/load.json index 370cd7f01be..30e0703133b 100644 --- a/Asset/data/asset/tags/functions/object/load.json +++ b/Asset/data/asset/tags/functions/object/load.json @@ -1,5 +1,6 @@ { "values": [ + "asset:object/1188.banishing_ring/load", "asset:object/1061.azure_jelly/load", "asset:object/2251.wall_laser_clock/load", "asset:object/2212.eclael_upper_shot/load", @@ -58,4 +59,4 @@ "asset:object/1059.book_of_hero/load", "asset:object/2031.giant_pumpkin/load" ] -} +} \ No newline at end of file