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 0000000000..6ef185f0ae --- /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 0000000000..99fcb9c75f --- /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秒間残り、内側にいる天使に毎秒200のダメージを与え続ける。"}', '{"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 "never" +# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.AttackRange set value "30.0" +# 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 ["Wi-ki", "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/1598.banisher/trigger/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1598.banisher/trigger/1.trigger.mcfunction new file mode 100644 index 0000000000..9a9e3c05b5 --- /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 0000000000..1bb079c2ae --- /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 0000000000..6806a31112 --- /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 SpreadMarker + +# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う + function asset:artifact/common/use/mainhand + +# ここから先は神器側の効果の処理を書く +# 前方拡散 + summon marker ~ ~ ~ {Tags:["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=SpreadMarker,distance=..0.01,limit=1] run function lib:forward_spreader/circle + +# 発射 + execute facing entity @e[type=marker,tag=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=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 0000000000..11031c9447 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1598.banisher/trigger/damage/.mcfunction @@ -0,0 +1,22 @@ +#> asset:artifact/1598.banisher/trigger/damage/ +# +# +# +# @within function asset:artifact/1598.banisher/trigger/rec + +# 攻撃情報設定 + #通常 + data modify storage api: Argument.Damage set value 200 + #天使が対象の場合は残留攻撃を召喚 + 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" + 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 0000000000..bd7f3346aa --- /dev/null +++ b/Asset/data/asset/functions/artifact/1598.banisher/trigger/damage/boss.mcfunction @@ -0,0 +1,15 @@ +#> 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 + data modify storage api: Argument.FieldOverride.AttackType set value "Magic" + data modify storage api: Argument.FieldOverride.AttackElement set value "None" + + 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 0000000000..a38decbf32 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1598.banisher/trigger/rec.mcfunction @@ -0,0 +1,23 @@ +#> asset:artifact/1598.banisher/trigger/rec +# +# +# +# @within function asset:artifact/1598.banisher/trigger/** + +#> Private +# @within function asset:artifact/1598.banisher/trigger/** + #declare tag 1598.Target + +# 着弾検知 + execute as @e[type=#lib:living_without_player,tag=!Uninterferable,distance=..2] run tag @s add 1598.Target + execute unless block ^ ^ ^0.5 #lib:no_collision/ run return 0 +# ダメージ処理 + execute as @e[type=#lib:living_without_player,tag=1598.Target,distance=..2,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 0000000000..3c598611c9 --- /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 0000000000..9a32bdabc5 --- /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 0000000000..81873de866 --- /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 ["Wi-ki", "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/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 0000000000..66e9b286a4 --- /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 0000000000..f14b98b0b9 --- /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 predicate lib:in_battle run tellraw @s {"text":"戦闘中はリロードができない!","color":"red"} + execute 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 0000000000..9dbe1c8a09 --- /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 0000000000..261427d861 --- /dev/null +++ b/Asset/data/asset/functions/object/1188.banishing_ring/init/.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/1188.banishing_ring/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/1188/init + +# とりあえず空 + data modify entity @s transformation.scale set value [4.5f,4.5f,0.0f] + data modify entity @s transformation.translation set value [0.0f,0.01f,0.0f] + data modify entity @s transformation.left_rotation set value {axis:[1.0f, 0.0f, 0.0f], angle:1.5708f} 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 0000000000..9774610726 --- /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 0 + 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 20 + data modify storage asset:object Field.UserID set value 0 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 0000000000..952243864d --- /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}} 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 0000000000..ef784603f0 --- /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 0000000000..1f30b6875e --- /dev/null +++ b/Asset/data/asset/functions/object/1188.banishing_ring/tick/.mcfunction @@ -0,0 +1,15 @@ +#> asset:object/1188.banishing_ring/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/1188/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# 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=160..}] 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 0000000000..5fb468e13f --- /dev/null +++ b/Asset/data/asset/functions/object/1188.banishing_ring/tick/damage.mcfunction @@ -0,0 +1,31 @@ +#> asset:object/1188.banishing_ring/tick/damage +# +# +# +# @within function asset:object/1188.banishing_ring/tick/ + +#> Private +# @private + #declare score_holder $UserID + +# 半径4ブロックに攻撃 + #攻撃情報は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 $UserID Temporary run data get storage asset:context this.UserID + execute as @a if score @s UserID = $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 value 20 + scoreboard players reset $UserID Temporary 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 0000000000..fb56f31623 --- /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 0000000000..1f186ff7a8 --- /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 0000000000..718340da7f --- /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 0000000000..444ffa9b30 --- /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 8b0fecd8b5..3fe41094d4 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/1332.bebebeam/trigger/1.trigger", "asset:artifact/1306.will_o_wisp/trigger/1.trigger", "asset:artifact/1144.cradle_of_azure_moon/trigger/1.trigger", @@ -177,4 +178,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 fdb7a26c47..5a1f4c0acd 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/1562.tsukimi_dango/give/1.trigger", "asset:artifact/1430.shield_of_fate/give/1.trigger", "asset:artifact/1453.frost_flake_bow/give/1.trigger", @@ -540,4 +542,4 @@ "asset:artifact/0735.collision_plate/give/1.trigger", "asset:artifact/0745.blade_of_whirlwind/give/1.trigger" ] -} +} \ No newline at end of file diff --git a/Asset/data/asset/tags/functions/artifact/sneak/.json b/Asset/data/asset/tags/functions/artifact/sneak/.json index f345cb5af8..57dfe7201a 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 a4082b5ea7..b232f8f09d 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 +}