diff --git a/Asset/data/asset/functions/artifact/1492.your_thoughts_frames/give/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1492.your_thoughts_frames/give/1.trigger.mcfunction new file mode 100644 index 0000000000..4762da41c0 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1492.your_thoughts_frames/give/1.trigger.mcfunction @@ -0,0 +1,7 @@ +#> asset:artifact/1492.your_thoughts_frames/give/1.trigger +# +# 神器の取得処理の呼び出し時に実行されるfunction +# +# @within tag/function asset:artifact/give + +execute if data storage asset:context {id:1492} run function asset:artifact/1492.your_thoughts_frames/give/2.give \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1492.your_thoughts_frames/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/1492.your_thoughts_frames/give/2.give.mcfunction new file mode 100644 index 0000000000..bc0884d8a7 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1492.your_thoughts_frames/give/2.give.mcfunction @@ -0,0 +1,68 @@ +#> asset:artifact/1492.your_thoughts_frames/give/2.give +# +# 神器の作成部 ここでID等を定義する +# +# @user +# @within function asset:artifact/1492.your_thoughts_frames/give/1.trigger + +# 神器の説明や消費MPなどをここで設定する。 +# 最後にasset:artifact/common/giveを実行することで入手可能。 + +# 神器のID (int) スプレッドシートの値を入れる + data modify storage asset:artifact ID set value 1492 +# 神器のベースアイテム + data modify storage asset:artifact Item set value "minecraft:stick" +# 神器の名前 (TextComponentString) + data modify storage asset:artifact Name set value '[{"text":"『繋","color":"#E499FF"},{"text":"創","color":"#DAA1FF"},{"text":"を","color":"#DAA1FF"},{"text":"想","color":"#C5A5FF"},{"text":"う","color":"#B8A8FF"},{"text":"額","color":"#9EAEFF"},{"text":"縁』","color":"#93AAFE"}]' +# 神器の説明文 (TextComponentString[]) + data modify storage asset:artifact Lore set value ['{"text":"発動時、敵が”気持ちの欠片”を近くに落とす"}','{"text":"気持ちの欠片に触れたプレイヤーはMPを31.4回復する。"}','{"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 "offhand" +# 神器のトリガー (string) Wikiを参照 + data modify storage asset:artifact Trigger set value "onAttack" +# 神器の発動条件 (TextComponentString) (オプション) + data modify storage asset:artifact Condition set value '{"text":"3%の確率で発動"}' +# 攻撃に関する情報 -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 0 +# MP必要量 (int) (オプション) + # data modify storage asset:artifact MPRequire set value +# MP回復量 (int) + # data modify storage asset:artifact MPHealWhenHit set value +# 神器のクールダウン 黄金比(約)1:1.618にちなみ16.20s + data modify storage asset:artifact LocalCooldown set value 324 +# 種別クールダウン ({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 true +# 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","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/1492.your_thoughts_frames/trigger/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1492.your_thoughts_frames/trigger/1.trigger.mcfunction new file mode 100644 index 0000000000..26ce2ad4e1 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1492.your_thoughts_frames/trigger/1.trigger.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/1492.your_thoughts_frames/trigger/1.trigger +# +# 指定したイベントタイミングで実行されるfunction +# +# @within tag/function asset:artifact/** + +# storage asset:idのoffhandに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する + execute if data storage asset:context id{offhand:1492} run function asset:artifact/1492.your_thoughts_frames/trigger/2.check_condition \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1492.your_thoughts_frames/trigger/2.check_condition.mcfunction b/Asset/data/asset/functions/artifact/1492.your_thoughts_frames/trigger/2.check_condition.mcfunction new file mode 100644 index 0000000000..660615448f --- /dev/null +++ b/Asset/data/asset/functions/artifact/1492.your_thoughts_frames/trigger/2.check_condition.mcfunction @@ -0,0 +1,17 @@ +#> asset:artifact/1492.your_thoughts_frames/trigger/2.check_condition +# +# 神器の発動条件をチェックします +# +# @within function asset:artifact/1492.your_thoughts_frames/trigger/1.trigger + +# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く + function asset:artifact/common/check_condition/offhand + +# IsDoT:trueならCanUsedを削除 + execute if entity @s[tag=CanUsed] if data storage asset:context Attack{IsDoT:true} run tag @s remove CanUsed + +# 3%の確率でCanUsedを残す(MP回復量とクールダウンはモチーフがある故調整するならここを調整してほしい気持ちがある) + execute unless predicate lib:random_pass_per/3 run tag @s remove CanUsed + +# CanUsedタグをチェックして3.main.mcfunctionを実行する + execute if entity @s[tag=CanUsed] run function asset:artifact/1492.your_thoughts_frames/trigger/3.main diff --git a/Asset/data/asset/functions/artifact/1492.your_thoughts_frames/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/1492.your_thoughts_frames/trigger/3.main.mcfunction new file mode 100644 index 0000000000..6c19dae3b1 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1492.your_thoughts_frames/trigger/3.main.mcfunction @@ -0,0 +1,19 @@ +#> asset:artifact/1492.your_thoughts_frames/trigger/3.main +# +# 神器のメイン処理部 +# +# @within function asset:artifact/1492.your_thoughts_frames/trigger/2.check_condition + +# 性能として、水属性のビルドで手数があるビルドか、上振れたときだとかなりMPの回復の足しになるくらいがうれしい + +# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う + function asset:artifact/common/use/offhand + +# 攻撃対象の近くにオーブを召喚 + execute at @e[type=#lib:living,type=!player,tag=Victim,distance=..30,limit=1] run function asset:artifact/1492.your_thoughts_frames/trigger/summon + +# 演出 + playsound block.amethyst_block.chime player @a ~ ~ ~ 5 0.8 + playsound minecraft:block.enchantment_table.use player @a ~ ~ ~ 0.9 1.4 0.0 + playsound minecraft:block.amethyst_cluster.hit player @a ~ ~ ~ 5.0 1.35 0.0 + playsound minecraft:block.amethyst_block.break player @a ~ ~ ~ 10 2 0.0 diff --git a/Asset/data/asset/functions/artifact/1492.your_thoughts_frames/trigger/summon.mcfunction b/Asset/data/asset/functions/artifact/1492.your_thoughts_frames/trigger/summon.mcfunction new file mode 100644 index 0000000000..61bde18dce --- /dev/null +++ b/Asset/data/asset/functions/artifact/1492.your_thoughts_frames/trigger/summon.mcfunction @@ -0,0 +1,13 @@ +#> asset:artifact/1492.your_thoughts_frames/trigger/summon +# +# オーブの召喚 +# +# @within function asset:artifact/1492.your_thoughts_frames/trigger/3.main + +# 演出 + particle item pink_stained_glass ~ ~1 ~ 0.3 0.5 0.3 0.1 100 normal @a + +# 召喚(MP回復量は円周率にちなみ31.4回復する。) + data modify storage api: Argument.ID set value 1164 + data modify storage api: Argument.FieldOverride.MPHeal set value 31.4 + execute positioned ~ ~1 ~ run function api:object/summon diff --git a/Asset/data/asset/functions/object/1164.piece_of_creation/init/.mcfunction b/Asset/data/asset/functions/object/1164.piece_of_creation/init/.mcfunction new file mode 100644 index 0000000000..e6419b6710 --- /dev/null +++ b/Asset/data/asset/functions/object/1164.piece_of_creation/init/.mcfunction @@ -0,0 +1,12 @@ +#> asset:object/1164.piece_of_creation/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/1164/init + +# 召喚場所からランダムに少し拡散する + data modify storage lib: Argument.Bounds set value [[2d,2d],[0d,0d],[2d,2d]] + function lib:spread_entity/ + +# sound + playsound minecraft:entity.vex.charge player @a ~ ~ ~ 5.0 1.75 0.0 diff --git a/Asset/data/asset/functions/object/1164.piece_of_creation/register.mcfunction b/Asset/data/asset/functions/object/1164.piece_of_creation/register.mcfunction new file mode 100644 index 0000000000..4a32a8f1ac --- /dev/null +++ b/Asset/data/asset/functions/object/1164.piece_of_creation/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/1164.piece_of_creation/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/1164/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 1164 +# フィールド(オプション) + data modify storage asset:object Field.MPHeal set value 30 diff --git a/Asset/data/asset/functions/object/1164.piece_of_creation/summon/.mcfunction b/Asset/data/asset/functions/object/1164.piece_of_creation/summon/.mcfunction new file mode 100644 index 0000000000..30a5f34910 --- /dev/null +++ b/Asset/data/asset/functions/object/1164.piece_of_creation/summon/.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/1164.piece_of_creation/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/1164/summon + +# 元となるEntityを召喚する + execute as 0-0-0-0-0 in minecraft:overworld positioned as @s run tp @s ~ ~ ~ ~ 0 + data modify storage asset:temp Args.Rotation set from entity 0-0-0-0-0 Rotation + function asset:object/1164.piece_of_creation/summon/m with storage asset:temp Args + data remove storage asset:temp Args diff --git a/Asset/data/asset/functions/object/1164.piece_of_creation/summon/m.mcfunction b/Asset/data/asset/functions/object/1164.piece_of_creation/summon/m.mcfunction new file mode 100644 index 0000000000..db5bf5d9a7 --- /dev/null +++ b/Asset/data/asset/functions/object/1164.piece_of_creation/summon/m.mcfunction @@ -0,0 +1,7 @@ +#> asset:object/1164.piece_of_creation/summon/m +# +# +# +# @within function asset:object/1164.piece_of_creation/summon/ + +$summon item_display ~ ~ ~ {Rotation:$(Rotation),teleport_duration:1,Tags:["ObjectInit","Uninterferable"],brightness:{sky:15,block:15},item:{id:"stick",Count:1b,tag:{CustomModelData:20620}},transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0f,0f],scale:[1.4f,1.4f,1.4f]}} diff --git a/Asset/data/asset/functions/object/1164.piece_of_creation/tick/.mcfunction b/Asset/data/asset/functions/object/1164.piece_of_creation/tick/.mcfunction new file mode 100644 index 0000000000..06facb5a1c --- /dev/null +++ b/Asset/data/asset/functions/object/1164.piece_of_creation/tick/.mcfunction @@ -0,0 +1,22 @@ +#> asset:object/1164.piece_of_creation/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/1164/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# 下にゆっくり落ちる + execute if block ~ ~-0.6 ~ #lib:no_collision/ run tp @s ~ ~-0.03 ~ +# ゆっくり回転 + execute at @s run tp @s ~ ~ ~ ~3 ~ + +# 近くのプレイヤーに自身の向きを変えずに追尾 + execute at @s facing entity @a[gamemode=!spectator,tag=!Death,distance=..2,limit=1] eyes positioned ^ ^ ^0.25 run tp @s ~ ~ ~ + +# playerに触れるとMPを回復して消滅 + execute positioned ~-0.5 ~-0.5 ~-0.5 if entity @a[gamemode=!spectator,tag=!Death,dx=0,limit=1] run function asset:object/1164.piece_of_creation/tick/hit_player + +# 消滅処理 + execute if entity @s[scores={General.Object.Tick=200..}] run function asset:object/1164.piece_of_creation/tick/kill diff --git a/Asset/data/asset/functions/object/1164.piece_of_creation/tick/hit_player.mcfunction b/Asset/data/asset/functions/object/1164.piece_of_creation/tick/hit_player.mcfunction new file mode 100644 index 0000000000..089ca60e10 --- /dev/null +++ b/Asset/data/asset/functions/object/1164.piece_of_creation/tick/hit_player.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/1164.piece_of_creation/tick/hit_player +# +# playerにヒットしたときの処理 +# +# @within function asset:object/1164.piece_of_creation/tick/ + +# 演出 + playsound minecraft:entity.arrow.hit_player player @a ~0.5 ~0.5 ~0.5 0.6 2 0.0 + playsound minecraft:entity.allay.ambient_with_item player @a ~ ~ ~ 2.0 0.9 0.0 + playsound minecraft:block.glass.break player @a ~ ~ ~ 1.0 1.4 0.0 + particle minecraft:dust_color_transition 1 0.4 1 0.8 0.2 0.8 1 ~ ~ ~ 2 2 2 1 40 + particle minecraft:dust_color_transition 1 0.4 1 0.8 0.2 0.8 1 ~ ~ ~ 0.4 0.4 0.4 1 40 + particle end_rod ~0.5 ~0.5 ~0.5 0 0 0 0.2 20 + +# hitしたプレイヤーのMPを回復する + data modify storage api: Argument.Fluctuation set from storage asset:context this.MPHeal + execute as @a[gamemode=!spectator,tag=!Death,dx=0,limit=1] run function api:mp/fluctuation + +# 消滅処理 + kill @s diff --git a/Asset/data/asset/functions/object/1164.piece_of_creation/tick/kill.mcfunction b/Asset/data/asset/functions/object/1164.piece_of_creation/tick/kill.mcfunction new file mode 100644 index 0000000000..9f05eb1fb4 --- /dev/null +++ b/Asset/data/asset/functions/object/1164.piece_of_creation/tick/kill.mcfunction @@ -0,0 +1,13 @@ +#> asset:object/1164.piece_of_creation/tick/kill +# +# 消滅処理 +# +# @within function asset:object/1164.piece_of_creation/tick/ + +# sound + playsound minecraft:entity.allay.ambient_with_item player @a ~ ~ ~ 1.0 0.9 0.0 + playsound minecraft:block.glass.break player @a ~ ~ ~ 0.6 1.8 0.0 + particle minecraft:dust_color_transition 1 0.4 1 0.8 0.2 0.8 1 ~ ~ ~ 0.4 0.4 0.4 1 40 + +# 消去 + kill @s diff --git a/Asset/data/asset/functions/object/alias/1164/init.mcfunction b/Asset/data/asset/functions/object/alias/1164/init.mcfunction new file mode 100644 index 0000000000..1a136a87c8 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1164/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1164/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/1164.piece_of_creation/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/1164/register.mcfunction b/Asset/data/asset/functions/object/alias/1164/register.mcfunction new file mode 100644 index 0000000000..714f725fcc --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1164/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1164/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/1164.piece_of_creation/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/1164/summon.mcfunction b/Asset/data/asset/functions/object/alias/1164/summon.mcfunction new file mode 100644 index 0000000000..d1cf575d18 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1164/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1164/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/1164.piece_of_creation/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/1164/tick.mcfunction b/Asset/data/asset/functions/object/alias/1164/tick.mcfunction new file mode 100644 index 0000000000..13a2d78517 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1164/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1164/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/1164.piece_of_creation/tick/ \ No newline at end of file diff --git a/Asset/data/asset/tags/functions/artifact/attack.json b/Asset/data/asset/tags/functions/artifact/attack.json index cc4f84a8b8..7ab7eaa810 100644 --- a/Asset/data/asset/tags/functions/artifact/attack.json +++ b/Asset/data/asset/tags/functions/artifact/attack.json @@ -1,5 +1,6 @@ { "values": [ + "asset:artifact/1492.your_thoughts_frames/trigger/1.trigger", "asset:artifact/1534.drop_in_the_bucket/trigger/1.trigger", "asset:artifact/1327.lunatic_torch/trigger/1.trigger", "asset:artifact/1308.magnifier_of_detective_girl/trigger/1.trigger", diff --git a/Asset/data/asset/tags/functions/artifact/give.json b/Asset/data/asset/tags/functions/artifact/give.json index 4af19ef38c..00f610b33e 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/1492.your_thoughts_frames/give/1.trigger", "asset:artifact/1534.drop_in_the_bucket/give/1.trigger", "asset:artifact/1366.shaved_ice_melon/give/1.trigger", "asset:artifact/1365.shaved_ice_blue_hawaii/give/1.trigger",