diff --git a/Asset/data/asset/functions/artifact/1465.versatile_plasma/give/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1465.versatile_plasma/give/1.trigger.mcfunction new file mode 100644 index 0000000000..cc46a1a9a5 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1465.versatile_plasma/give/1.trigger.mcfunction @@ -0,0 +1,7 @@ +#> asset:artifact/1465.versatile_plasma/give/1.trigger +# +# 神器の取得処理の呼び出し時に実行されるfunction +# +# @within tag/function asset:artifact/give + +execute if data storage asset:context {id:1465} run function asset:artifact/1465.versatile_plasma/give/2.give \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1465.versatile_plasma/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/1465.versatile_plasma/give/2.give.mcfunction new file mode 100644 index 0000000000..21dde854db --- /dev/null +++ b/Asset/data/asset/functions/artifact/1465.versatile_plasma/give/2.give.mcfunction @@ -0,0 +1,68 @@ +#> asset:artifact/1465.versatile_plasma/give/2.give +# +# 神器の作成部 ここでID等を定義する +# +# @user +# @within function asset:artifact/1465.versatile_plasma/give/1.trigger + +# 神器の説明や消費MPなどをここで設定する。 +# 最後にasset:artifact/common/giveを実行することで入手可能。 + +# 神器のID (int) スプレッドシートの値を入れる + data modify storage asset:artifact ID set value 1465 +# 神器のベースアイテム + data modify storage asset:artifact Item set value "minecraft:ender_eye" +# 神器の名前 (TextComponentString) + data modify storage asset:artifact Name set value '{"text": "ヴァースティル・プラズマ", "color": "#D4FFBA"}' +# 神器の説明文 (TextComponentString[]) + data modify storage asset:artifact Lore set value ['{"text": "チャージ段階に応じて異なる方法で攻撃する。"}', '{"text": "チャージを2層重ねると25、3層重ねると追加で35のMPを消費する。"}'] +# 消費アイテム ({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 +# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.Damage set value [30, 300] +# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.AttackType set value [Physical] +# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.ElementType set value [Thunder] +# 攻撃に関する情報 -防御無視 (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 +# MP必要量 (int) (オプション) + # data modify storage asset:artifact MPRequire set value +# MP回復量 (int) + data modify storage asset:artifact MPHealWhenHit set value 5 +# 神器のクールダウン (int) (オプション) + data modify storage asset:artifact LocalCooldown set value 100 +# 種別クールダウン ({Type: string, Duration: int}) (オプション) + data modify storage asset:artifact TypeCooldown.Type set value "longRange" + data modify storage asset:artifact TypeCooldown.Duration set value 50 +# グローバルクールダウン (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 ["Urban", "Wi-ki"] +# カスタム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/1465.versatile_plasma/register.mcfunction b/Asset/data/asset/functions/artifact/1465.versatile_plasma/register.mcfunction new file mode 100644 index 0000000000..e26bb3ec03 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1465.versatile_plasma/register.mcfunction @@ -0,0 +1,7 @@ +#> asset:artifact/1465.versatile_plasma/register +# +# 神器プールへの登録処理 +# +# @within tag/function asset:artifact/register + +data modify storage asset:artifact RarityRegistry[3] append value [1465] \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1465.versatile_plasma/trigger/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1465.versatile_plasma/trigger/1.trigger.mcfunction new file mode 100644 index 0000000000..4744c2c87e --- /dev/null +++ b/Asset/data/asset/functions/artifact/1465.versatile_plasma/trigger/1.trigger.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/1465.versatile_plasma/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:1465} run function asset:artifact/1465.versatile_plasma/trigger/2.check_condition \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1465.versatile_plasma/trigger/2.check_condition.mcfunction b/Asset/data/asset/functions/artifact/1465.versatile_plasma/trigger/2.check_condition.mcfunction new file mode 100644 index 0000000000..9de6cd60d9 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1465.versatile_plasma/trigger/2.check_condition.mcfunction @@ -0,0 +1,17 @@ +#> asset:artifact/1465.versatile_plasma/trigger/2.check_condition +# +# 神器の発動条件をチェックします +# +# @within function asset:artifact/1465.versatile_plasma/trigger/1.trigger + +# チャージ段階のEffect取得 + data modify storage api: Argument.ID set value 374 + function api:entity/mob/effect/get/from_id +# チャージ中ならば強制的にチャージ続行 + execute if data storage api: Return.Effect run return run function asset:artifact/1465.versatile_plasma/trigger/charge + +# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く + function asset:artifact/common/check_condition/mainhand + +# CanUsedタグをチェックして3.main.mcfunctionを実行する + execute if entity @s[tag=CanUsed] run function asset:artifact/1465.versatile_plasma/trigger/3.main diff --git a/Asset/data/asset/functions/artifact/1465.versatile_plasma/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/1465.versatile_plasma/trigger/3.main.mcfunction new file mode 100644 index 0000000000..fde8e3c5ad --- /dev/null +++ b/Asset/data/asset/functions/artifact/1465.versatile_plasma/trigger/3.main.mcfunction @@ -0,0 +1,16 @@ +#> asset:artifact/1465.versatile_plasma/trigger/3.main +# +# 神器のメイン処理部 +# +# @within function asset:artifact/1465.versatile_plasma/trigger/2.check_condition + +# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う + function asset:artifact/common/use/mainhand + +# チャージ用Effectを付与 + data modify storage api: Argument.ID set value 374 + function api:entity/mob/effect/give + function api:entity/mob/effect/reset + +# 演出 + playsound block.iron_door.open player @a ~ ~ ~ 2 0.5 diff --git a/Asset/data/asset/functions/artifact/1465.versatile_plasma/trigger/charge.mcfunction b/Asset/data/asset/functions/artifact/1465.versatile_plasma/trigger/charge.mcfunction new file mode 100644 index 0000000000..a6779a9d71 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1465.versatile_plasma/trigger/charge.mcfunction @@ -0,0 +1,10 @@ +#> asset:artifact/1465.versatile_plasma/trigger/charge +# +# +# +# @within function asset:artifact/1465.versatile_plasma/trigger/2.check_condition + +# チャージ用Effectを付与 + data modify storage api: Argument.ID set value 374 + function api:entity/mob/effect/give + function api:entity/mob/effect/reset diff --git a/Asset/data/asset/functions/effect/374.charge_plasma/_/end.mcfunction b/Asset/data/asset/functions/effect/374.charge_plasma/_/end.mcfunction new file mode 100644 index 0000000000..c00f95c415 --- /dev/null +++ b/Asset/data/asset/functions/effect/374.charge_plasma/_/end.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/374.charge_plasma/_/end +# +# Effectの効果の終了時に実行されるfunction +# +# @within tag/function asset:effect/end + +execute if data storage asset:context {id:374} run function asset:effect/374.charge_plasma/end/ \ No newline at end of file diff --git a/Asset/data/asset/functions/effect/374.charge_plasma/_/re-given.mcfunction b/Asset/data/asset/functions/effect/374.charge_plasma/_/re-given.mcfunction new file mode 100644 index 0000000000..5f7c753fdc --- /dev/null +++ b/Asset/data/asset/functions/effect/374.charge_plasma/_/re-given.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/374.charge_plasma/_/re-given +# +# Effectが上書きされた時に実行されるfunction +# +# @within tag/function asset:effect/re-given + +execute if data storage asset:context {id:374} run function asset:effect/374.charge_plasma/re-given/ \ No newline at end of file diff --git a/Asset/data/asset/functions/effect/374.charge_plasma/_/register.mcfunction b/Asset/data/asset/functions/effect/374.charge_plasma/_/register.mcfunction new file mode 100644 index 0000000000..7175e6c65d --- /dev/null +++ b/Asset/data/asset/functions/effect/374.charge_plasma/_/register.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/374.charge_plasma/_/register +# +# +# +# @within tag/function asset:effect/register + +execute if data storage asset:context {id:374} run function asset:effect/374.charge_plasma/register \ No newline at end of file diff --git a/Asset/data/asset/functions/effect/374.charge_plasma/end/.mcfunction b/Asset/data/asset/functions/effect/374.charge_plasma/end/.mcfunction new file mode 100644 index 0000000000..c748cbb2e8 --- /dev/null +++ b/Asset/data/asset/functions/effect/374.charge_plasma/end/.mcfunction @@ -0,0 +1,10 @@ +#> asset:effect/374.charge_plasma/end/ +# +# Effectの効果が切れた時の処理 +# +# @within function asset:effect/374.charge_plasma/_/end + +# スタック数に応じてそれぞれの攻撃処理を実行 + execute if data storage asset:context {Stack:1} run function asset:effect/374.charge_plasma/end/attack/1/ + execute if data storage asset:context {Stack:2} anchored eyes positioned ^ ^-0.25 ^ run function asset:effect/374.charge_plasma/end/attack/2 + execute if data storage asset:context {Stack:3} run function asset:effect/374.charge_plasma/end/attack/3/ diff --git a/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/1/.mcfunction b/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/1/.mcfunction new file mode 100644 index 0000000000..8c301a5357 --- /dev/null +++ b/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/1/.mcfunction @@ -0,0 +1,25 @@ +#> asset:effect/374.charge_plasma/end/attack/1 +# +# 攻撃(ため1段階):スパーク +# +# @within function asset:effect/374.charge_plasma/end/** + +#> Private +# @within function asset:effect/374.charge_plasma/end/attack/** + #declare score_holder $rec + +# 36回実行 + scoreboard players set $rec Temporary 36 + +# 向いている方向に確定で一個だす + data modify storage api: Argument.ID set value 1168 + data modify storage api: Argument.FieldOverride.AdditionalMPHeal set from storage api: PersistentArgument.AdditionalMPHeal + execute store result storage api: Argument.FieldOverride.UserID int 1 run scoreboard players get @s UserID + execute anchored eyes positioned ^ ^ ^2.5 run function api:object/summon + +# 本体 + execute anchored eyes run function asset:effect/374.charge_plasma/end/attack/1/rec + +# リセット + scoreboard players reset $rec + data remove storage asset:temp Args diff --git a/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/1/m.mcfunction b/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/1/m.mcfunction new file mode 100644 index 0000000000..f9fd2a0adc --- /dev/null +++ b/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/1/m.mcfunction @@ -0,0 +1,10 @@ +#> asset:effect/374.charge_plasma/end/attack/1/m +# +# Object 1168を召喚 +# +# @within function asset:effect/374.charge_plasma/end/attack/1/rec + + data modify storage api: Argument.ID set value 1168 + data modify storage api: Argument.FieldOverride.AdditionalMPHeal set from storage api: PersistentArgument.AdditionalMPHeal + execute store result storage api: Argument.FieldOverride.UserID int 1 run scoreboard players get @s UserID + $execute positioned ^$(OffsetX) ^$(OffsetY) ^$(OffsetZ) run function api:object/summon diff --git a/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/1/rec.mcfunction b/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/1/rec.mcfunction new file mode 100644 index 0000000000..7ed87e69d3 --- /dev/null +++ b/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/1/rec.mcfunction @@ -0,0 +1,19 @@ +#> asset:effect/374.charge_plasma/end/attack/1/rec +# +# 再帰処理 +# +# @within function asset:effect/374.charge_plasma/end/attack/1/** + +# rec減算 + scoreboard players remove $rec Temporary 1 + +# ランダムなoffsetを設定 + execute store result storage asset:temp Args.OffsetX float 0.1 run random value -20..20 + execute store result storage asset:temp Args.OffsetY float 0.1 run random value -5..5 + execute store result storage asset:temp Args.OffsetZ float 0.1 run random value 5..35 + +# マクロでObject召喚 + function asset:effect/374.charge_plasma/end/attack/1/m with storage asset:temp Args + +# 再帰 + execute if score $rec Temporary matches 1.. run function asset:effect/374.charge_plasma/end/attack/1/rec diff --git a/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/2.mcfunction b/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/2.mcfunction new file mode 100644 index 0000000000..8d18055546 --- /dev/null +++ b/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/2.mcfunction @@ -0,0 +1,24 @@ +#> asset:effect/374.charge_plasma/end/attack/2 +# +# プラズマ攻撃2: 拡散レーザー +# +# @within function asset:effect/374.charge_plasma/end/** + +# 3発撃つ + data modify storage api: Argument.ID set value 1169 + data modify storage api: Argument.FieldOverride.AdditionalMPHeal set from storage api: PersistentArgument.AdditionalMPHeal + execute store result storage api: Argument.FieldOverride.UserID int 1 run scoreboard players get @s UserID + execute rotated ~-30 ~ run function api:object/summon + + data modify storage api: Argument.ID set value 1169 + data modify storage api: Argument.FieldOverride.AdditionalMPHeal set from storage api: PersistentArgument.AdditionalMPHeal + execute store result storage api: Argument.FieldOverride.UserID int 1 run scoreboard players get @s UserID + execute rotated ~ ~ run function api:object/summon + + data modify storage api: Argument.ID set value 1169 + data modify storage api: Argument.FieldOverride.AdditionalMPHeal set from storage api: PersistentArgument.AdditionalMPHeal + execute store result storage api: Argument.FieldOverride.UserID int 1 run scoreboard players get @s UserID + execute rotated ~30 ~ run function api:object/summon + +# 演出 + playsound block.respawn_anchor.deplete player @a ~ ~ ~ 2 2 diff --git a/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/3/.mcfunction b/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/3/.mcfunction new file mode 100644 index 0000000000..d4b2658dab --- /dev/null +++ b/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/3/.mcfunction @@ -0,0 +1,19 @@ +#> asset:effect/374.charge_plasma/end/attack/3/ +# +# 攻撃3: 貫通レーザー +# +# @within function asset:effect/374.charge_plasma/end/** + +#> Private +# @within function asset:effect/374.charge_plasma/end/attack/3/** + #declare tag Hit + #declare tag HitTarget + +# 再帰処理 + execute anchored eyes run function asset:effect/374.charge_plasma/end/attack/3/rec + tag @s remove Hit + tag @e[tag=HitTarget,distance=..20] remove HitTarget + +# 演出 + playsound ogg:block.vault.open_shutter master @a ~ ~ ~ 2 2 + playsound ogg:block.vault.break master @a ~ ~ ~ 1 1 diff --git a/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/3/damage.mcfunction b/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/3/damage.mcfunction new file mode 100644 index 0000000000..9bbe96c21f --- /dev/null +++ b/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/3/damage.mcfunction @@ -0,0 +1,18 @@ +#> asset:effect/374.charge_plasma/end/attack/3/damage +# +# +# +# @within function asset:effect/374.charge_plasma/end/attack/3/rec + + +# ヒット済みタグ + execute positioned ~-0.5 ~-0.5 ~-0.5 run tag @e[type=#lib:living_without_player,tag=!Uninterferable,dx=0,limit=1] add HitTarget + +# ダメージ + data modify storage api: Argument.Damage set value 300 + data modify storage api: Argument.AttackType set value "Physical" + data modify storage api: Argument.ElementType set value "Thunder" + data modify storage api: Argument.AdditionalMPHeal set value 5 + function api:damage/modifier + execute positioned ~-0.5 ~-0.5 ~-0.5 as @e[type=#lib:living_without_player,tag=!Uninterferable,dx=0,limit=1] run function api:damage/ + function api:damage/reset diff --git a/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/3/rec.mcfunction b/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/3/rec.mcfunction new file mode 100644 index 0000000000..ed6421d92d --- /dev/null +++ b/Asset/data/asset/functions/effect/374.charge_plasma/end/attack/3/rec.mcfunction @@ -0,0 +1,19 @@ +#> asset:effect/374.charge_plasma/end/attack/3/rec +# +# +# +# @within function asset:effect/374.charge_plasma/end/attack/3/** + +# 着弾検知 + execute unless block ^ ^ ^0.5 #lib:no_collision/ run tag @s add Hit + +# 命中 + execute positioned ~-0.5 ~-0.5 ~-0.5 if entity @e[type=#lib:living_without_player,tag=!HitTarget,tag=!Uninterferable,dx=0,limit=1] run function asset:effect/374.charge_plasma/end/attack/3/damage + +# 演出 + particle dust 0.8 1.0 0.5 1.0 ~ ~ ~ 0.0 0.0 0.0 1 1 + particle dust 0.5 1.0 0.5 1.5 ~ ~ ~ 0.0 0.0 0.0 1 1 + particle dust 0.8 0.8 0.3 0.5 ~ ~ ~ 0.0 0.0 0.0 1 1 + +# 再起 + execute positioned ^ ^ ^0.5 if entity @s[tag=!Hit,distance=..20] run function asset:effect/374.charge_plasma/end/attack/3/rec diff --git a/Asset/data/asset/functions/effect/374.charge_plasma/re-given/.mcfunction b/Asset/data/asset/functions/effect/374.charge_plasma/re-given/.mcfunction new file mode 100644 index 0000000000..05e9241d07 --- /dev/null +++ b/Asset/data/asset/functions/effect/374.charge_plasma/re-given/.mcfunction @@ -0,0 +1,28 @@ +#> asset:effect/374.charge_plasma/re-given/ +# +# Effectが上書きされた時の処理 +# +# @within function asset:effect/374.charge_plasma/_/re-given + +#> Private +# @private + #declare score_holder $Charge + #declare score_holder $MP + +# チャージ時間を取得 + execute store result score $Charge Temporary run data get storage asset:context PreviousField.Charge + +# MPを取得 + function api:mp/get_current + execute store result score $MP Temporary run data get storage api: Return.CurrentMP + +# Field.Chargeを+1 + execute store result storage asset:context this.Charge int 1 run scoreboard players add $Charge Temporary 1 + +# 時間に応じてバフをスタック + execute if data storage asset:context {Stack:1} if score $Charge Temporary matches 25.. if score $MP Temporary matches 25.. run function asset:effect/374.charge_plasma/re-given/charge/2 + execute if data storage asset:context {Stack:2} if score $Charge Temporary matches 50.. if score $MP Temporary matches 35.. run function asset:effect/374.charge_plasma/re-given/charge/3 + +# リセット + scoreboard players reset $Charge + scoreboard players reset $MP diff --git a/Asset/data/asset/functions/effect/374.charge_plasma/re-given/charge/2.mcfunction b/Asset/data/asset/functions/effect/374.charge_plasma/re-given/charge/2.mcfunction new file mode 100644 index 0000000000..ee8527f714 --- /dev/null +++ b/Asset/data/asset/functions/effect/374.charge_plasma/re-given/charge/2.mcfunction @@ -0,0 +1,19 @@ +#> asset:effect/374.charge_plasma/re-given/charge/2 +# +# +# +# @within function asset:effect/374.charge_plasma/re-given/ + +# スタック数を増やす + data modify storage asset:context Stack set value 2 + +# MP消費 + data modify storage api: Argument.Fluctuation set value -25 + data modify storage api: Argument.DisableLog set value 1b + function api:mp/fluctuation + +# 演出 + playsound block.piston.extend player @a ~ ~ ~ 2 2 + particle dust 0.8 1.0 0.5 2.0 ~ ~ ~ 0.5 1.0 0.5 1 8 + particle dust 0.5 1.0 0.5 2.5 ~ ~ ~ 0.5 1.0 0.5 1 8 + particle dust 0.8 0.8 0.3 1.5 ~ ~ ~ 0.5 1.0 0.5 1 8 diff --git a/Asset/data/asset/functions/effect/374.charge_plasma/re-given/charge/3.mcfunction b/Asset/data/asset/functions/effect/374.charge_plasma/re-given/charge/3.mcfunction new file mode 100644 index 0000000000..3e0946a5ce --- /dev/null +++ b/Asset/data/asset/functions/effect/374.charge_plasma/re-given/charge/3.mcfunction @@ -0,0 +1,20 @@ +#> asset:effect/374.charge_plasma/re-given/charge/3 +# +# +# +# @within function asset:effect/374.charge_plasma/re-given/ + +# スタック数を増やす + data modify storage asset:context Stack set value 3 + +# MP消費 + data modify storage api: Argument.Fluctuation set value -35 + data modify storage api: Argument.DisableLog set value 1b + function api:mp/fluctuation + +# 演出 + playsound block.piston.extend player @a ~ ~ ~ 2 2 + playsound block.trial_spawner.detect_player player @a ~ ~ ~ 2 0.5 + particle dust 0.8 1.0 0.5 2.0 ~ ~ ~ 0.5 1.0 0.5 1 8 + particle dust 0.5 1.0 0.5 2.5 ~ ~ ~ 0.5 1.0 0.5 1 8 + particle dust 0.8 0.8 0.3 1.5 ~ ~ ~ 0.5 1.0 0.5 1 8 diff --git a/Asset/data/asset/functions/effect/374.charge_plasma/register.mcfunction b/Asset/data/asset/functions/effect/374.charge_plasma/register.mcfunction new file mode 100644 index 0000000000..6e61a3ca90 --- /dev/null +++ b/Asset/data/asset/functions/effect/374.charge_plasma/register.mcfunction @@ -0,0 +1,39 @@ +#> asset:effect/374.charge_plasma/register +# +# Effectのデータを指定 +# +# @within function asset:effect/374.charge_plasma/_/register + +# ExtendsSafe (boolean) (default = false) + # data modify storage asset:effect ExtendsSafe set value true +# ID (int) + data modify storage asset:effect ID set value 374 +# 名前 (TextComponentString) + data modify storage asset:effect Name set value '{"text": "チャージ・プラズマ", "color": "#D4FFBA"}' +# 説明文 (TextComponentString[]) + data modify storage asset:effect Description set value ['{"text": "チャージ終了時、チャージ段階に応じて異なる攻撃を放つ"}'] +# 効果時間 (int) (default = API || error) + data modify storage asset:effect Duration set value 1 +# スタック (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 1 +# 最大スタック (int) (default = 2147483647) + data modify storage asset:effect MaxStack set value 3 +# 悪い効果か否か (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 3 +# エフェクトをUIに表示するか (boolean) (default = true) + # data modify storage asset:effect Visible set value +# エフェクトのスタックををUIに表示するか (boolean) (default = true) + # data modify storage asset:effect StackVisible set value + +# フィールド + # data modify storage asset:effect Field set value {} diff --git a/Asset/data/asset/functions/object/1168.plasma_spark/init/.mcfunction b/Asset/data/asset/functions/object/1168.plasma_spark/init/.mcfunction new file mode 100644 index 0000000000..5c8d60eebe --- /dev/null +++ b/Asset/data/asset/functions/object/1168.plasma_spark/init/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/1168.plasma_spark/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/1168/init + +# Tickをランダムに設定 + execute store result score @s General.Object.Tick run random value 2..7 diff --git a/Asset/data/asset/functions/object/1168.plasma_spark/register.mcfunction b/Asset/data/asset/functions/object/1168.plasma_spark/register.mcfunction new file mode 100644 index 0000000000..06914ef81c --- /dev/null +++ b/Asset/data/asset/functions/object/1168.plasma_spark/register.mcfunction @@ -0,0 +1,22 @@ +#> asset:object/1168.plasma_spark/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/1168/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 1168 +# フィールド(オプション) + data modify storage asset:object Field.Damage set value 30 + data modify storage asset:object Field.AdditionalMPHeal set value 5 + data modify storage asset:object Field.UserID set value -1 diff --git a/Asset/data/asset/functions/object/1168.plasma_spark/summon/.mcfunction b/Asset/data/asset/functions/object/1168.plasma_spark/summon/.mcfunction new file mode 100644 index 0000000000..2f2d174a7d --- /dev/null +++ b/Asset/data/asset/functions/object/1168.plasma_spark/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/1168.plasma_spark/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/1168/summon + +# 元となるEntityを召喚する + summon marker ~ ~ ~ {Tags:["ObjectInit"]} diff --git a/Asset/data/asset/functions/object/1168.plasma_spark/summon/debug.mcfunction b/Asset/data/asset/functions/object/1168.plasma_spark/summon/debug.mcfunction new file mode 100644 index 0000000000..9423b8a200 --- /dev/null +++ b/Asset/data/asset/functions/object/1168.plasma_spark/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/1168.plasma_spark/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 1168 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/1168.plasma_spark/tick/.mcfunction b/Asset/data/asset/functions/object/1168.plasma_spark/tick/.mcfunction new file mode 100644 index 0000000000..7f6341f01c --- /dev/null +++ b/Asset/data/asset/functions/object/1168.plasma_spark/tick/.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/1168.plasma_spark/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/1168/tick + +# Tick減算 + scoreboard players remove @s General.Object.Tick 1 + +# 炸裂処理 + execute if score @s General.Object.Tick matches ..0 run function asset:object/1168.plasma_spark/tick/explode diff --git a/Asset/data/asset/functions/object/1168.plasma_spark/tick/explode.mcfunction b/Asset/data/asset/functions/object/1168.plasma_spark/tick/explode.mcfunction new file mode 100644 index 0000000000..be5ad48d2f --- /dev/null +++ b/Asset/data/asset/functions/object/1168.plasma_spark/tick/explode.mcfunction @@ -0,0 +1,30 @@ +#> asset:object/1168.plasma_spark/tick/explode +# +# 攻撃処理 +# +# @within function asset:object/1168.plasma_spark/tick/** + +#> Private +# @private + #declare score_holder $UserID + +# 攻撃判定 + 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 "Thunder" + data modify storage api: Argument.AdditionalMPHeal set from storage asset:context this.AdditionalMPHeal + 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,tag=!Uninterferable,dx=0] positioned ~-0.75 ~-0.75 ~-0.75 if entity @s[dx=0] run function api:damage/ + function api:damage/reset + +# 演出 + particle end_rod ~ ~ ~ 0 0 0 0 1 + playsound entity.firework_rocket.twinkle player @a ~ ~ ~ 0.25 2 + playsound block.copper_bulb.turn_on player @a ~ ~ ~ 2 2 + +# リセット + scoreboard players reset $UserID + +# 消す + kill @s diff --git a/Asset/data/asset/functions/object/1169.plasma_beam/detect_hit_entity/.mcfunction b/Asset/data/asset/functions/object/1169.plasma_beam/detect_hit_entity/.mcfunction new file mode 100644 index 0000000000..fc84aa8330 --- /dev/null +++ b/Asset/data/asset/functions/object/1169.plasma_beam/detect_hit_entity/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/1169.plasma_beam/detect_hit_entity/ +# +# 継承先などから実行される処理 +# +# @within asset:object/alias/1169/detect_hit_entity + +# 判定 + execute positioned ~-0.5 ~-0.5 ~-0.5 if entity @e[type=#lib:living_without_player,tag=!Uninterferable,dx=0] run data modify storage asset:context IsHitEntity set value true diff --git a/Asset/data/asset/functions/object/1169.plasma_beam/hit_entity/.mcfunction b/Asset/data/asset/functions/object/1169.plasma_beam/hit_entity/.mcfunction new file mode 100644 index 0000000000..c83fd0f37a --- /dev/null +++ b/Asset/data/asset/functions/object/1169.plasma_beam/hit_entity/.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/1169.plasma_beam/hit_entity/ +# +# ヒット処理 +# +# @within asset:object/alias/1169/hit_entity + +# ダメージ + execute positioned ~-0.5 ~-0.5 ~-0.5 as @e[type=#lib:living_without_player,tag=!Uninterferable,dx=0,sort=random,limit=1] run function asset:object/1169.plasma_beam/hit_entity/damage + +# 消す + function asset:object/call.m {method:kill} diff --git a/Asset/data/asset/functions/object/1169.plasma_beam/hit_entity/damage.mcfunction b/Asset/data/asset/functions/object/1169.plasma_beam/hit_entity/damage.mcfunction new file mode 100644 index 0000000000..d6ed284706 --- /dev/null +++ b/Asset/data/asset/functions/object/1169.plasma_beam/hit_entity/damage.mcfunction @@ -0,0 +1,26 @@ +#> asset:object/1169.plasma_beam/hit_entity/damage +# +# ダメージ処理 +# +# @within function asset:object/1169.plasma_beam/hit_entity/ + +#> Private +# @private + #declare score_holder $UserID + + 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 "Thunder" + data modify storage api: Argument.AdditionalMPHeal set from storage asset:context this.AdditionalMPHeal + 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 + function api:damage/ + function api:damage/reset + +# ノックバック + data modify storage lib: Argument.KnockbackResist set value true + data modify storage lib: Argument.VectorMagnitude set value 3.5d + execute rotated ~ -30 run function lib:motion/looking + +# リセット + scoreboard players reset $UserID diff --git a/Asset/data/asset/functions/object/1169.plasma_beam/register.mcfunction b/Asset/data/asset/functions/object/1169.plasma_beam/register.mcfunction new file mode 100644 index 0000000000..a3c84e8fbd --- /dev/null +++ b/Asset/data/asset/functions/object/1169.plasma_beam/register.mcfunction @@ -0,0 +1,24 @@ +#> asset:object/1169.plasma_beam/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/1169/register + +# 継承(オプション) + data modify storage asset:object Extends append value 1 + 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 true + +# ID (int) + data modify storage asset:object ID set value 1169 +# フィールド(オプション) + data modify storage asset:object Field.Damage set value 150 + data modify storage asset:object Field.AdditionalMPHeal set value 5 + data modify storage asset:object Field.Speed set value 2 + data modify storage asset:object Field.Range set value 50 + data modify storage asset:object Field.UserID set value -1 diff --git a/Asset/data/asset/functions/object/1169.plasma_beam/summon/.mcfunction b/Asset/data/asset/functions/object/1169.plasma_beam/summon/.mcfunction new file mode 100644 index 0000000000..959010ef5d --- /dev/null +++ b/Asset/data/asset/functions/object/1169.plasma_beam/summon/.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/1169.plasma_beam/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/1169/summon + +# 元となるEntityを召喚する + execute as 0-0-0-0-0 in minecraft:overworld positioned as @s run tp @s ^ ^ ^ ~ ~ + data modify storage asset:temp Args.Rotation set from entity 0-0-0-0-0 Rotation + function asset:object/1169.plasma_beam/summon/m with storage asset:temp Args + data remove storage asset:temp Args diff --git a/Asset/data/asset/functions/object/1169.plasma_beam/summon/debug.mcfunction b/Asset/data/asset/functions/object/1169.plasma_beam/summon/debug.mcfunction new file mode 100644 index 0000000000..80568122ea --- /dev/null +++ b/Asset/data/asset/functions/object/1169.plasma_beam/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/1169.plasma_beam/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 1169 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/1169.plasma_beam/summon/m.mcfunction b/Asset/data/asset/functions/object/1169.plasma_beam/summon/m.mcfunction new file mode 100644 index 0000000000..5364d165be --- /dev/null +++ b/Asset/data/asset/functions/object/1169.plasma_beam/summon/m.mcfunction @@ -0,0 +1,7 @@ +#> asset:object/1169.plasma_beam/summon/m +# +# @input args: +# Rotation : float @ 2 +# @within function asset:object/1169.plasma_beam/summon/ + + $summon item_display ~ ~ ~ {Rotation: $(Rotation),Tags:["ObjectInit"],item:{id:"minecraft:stick",Count:1b,tag:{CustomModelData:20630}},brightness:{block:15,sky:15},teleport_duration:1} diff --git a/Asset/data/asset/functions/object/alias/1168/init.mcfunction b/Asset/data/asset/functions/object/alias/1168/init.mcfunction new file mode 100644 index 0000000000..a0a41b7315 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1168/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1168/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/1168.plasma_spark/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/1168/register.mcfunction b/Asset/data/asset/functions/object/alias/1168/register.mcfunction new file mode 100644 index 0000000000..81771735e3 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1168/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1168/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/1168.plasma_spark/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/1168/summon.mcfunction b/Asset/data/asset/functions/object/alias/1168/summon.mcfunction new file mode 100644 index 0000000000..461e2deec8 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1168/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1168/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/1168.plasma_spark/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/1168/tick.mcfunction b/Asset/data/asset/functions/object/alias/1168/tick.mcfunction new file mode 100644 index 0000000000..b7822787b3 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1168/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1168/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/1168.plasma_spark/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/1169/detect_hit_entity.mcfunction b/Asset/data/asset/functions/object/alias/1169/detect_hit_entity.mcfunction new file mode 100644 index 0000000000..aaf4cb2a3d --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1169/detect_hit_entity.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1169/detect_hit_entity +# +# メソッド処理のエイリアス +# +# @within asset_manager:object/call_method/run_method.m + +# 元のメソッド処理を呼び出す + function asset:object/1169.plasma_beam/detect_hit_entity/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/1169/hit_entity.mcfunction b/Asset/data/asset/functions/object/alias/1169/hit_entity.mcfunction new file mode 100644 index 0000000000..301f4e7e96 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1169/hit_entity.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1169/hit_entity +# +# メソッド処理のエイリアス +# +# @within asset_manager:object/call_method/run_method.m + +# 元のメソッド処理を呼び出す + function asset:object/1169.plasma_beam/hit_entity/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/1169/register.mcfunction b/Asset/data/asset/functions/object/alias/1169/register.mcfunction new file mode 100644 index 0000000000..e8cc16b447 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1169/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1169/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/1169.plasma_beam/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/1169/summon.mcfunction b/Asset/data/asset/functions/object/alias/1169/summon.mcfunction new file mode 100644 index 0000000000..798eaeb33d --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1169/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1169/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/1169.plasma_beam/summon/ \ 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 16715fe3c7..2c71544d3b 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/1465.versatile_plasma/give/1.trigger", "asset:artifact/1252.fox_candle/give/1.trigger", "asset:artifact/1343.coffee_milk_pack/give/1.trigger", "asset:artifact/1342.fruit_milk_pack/give/1.trigger", @@ -530,4 +531,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/register.json b/Asset/data/asset/tags/functions/artifact/register.json index 7e92660e5a..61e72dbe22 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/1465.versatile_plasma/register", "asset:artifact/1252.fox_candle/register", "asset:artifact/1343.coffee_milk_pack/register", "asset:artifact/1342.fruit_milk_pack/register", @@ -308,4 +309,4 @@ "asset:artifact/1027.fire_of_rebirth/register", "asset:artifact/1111.rod_o_redeem/register" ] -} +} \ No newline at end of file diff --git a/Asset/data/asset/tags/functions/artifact/using_item.json b/Asset/data/asset/tags/functions/artifact/using_item.json index 499dc901af..7af85ba9f9 100644 --- a/Asset/data/asset/tags/functions/artifact/using_item.json +++ b/Asset/data/asset/tags/functions/artifact/using_item.json @@ -1,5 +1,6 @@ { "values": [ + "asset:artifact/1465.versatile_plasma/trigger/1.trigger", "asset:artifact/1220.sacred_hardener/trigger/1.trigger", "asset:artifact/1269.apocalypse/using_item/1.trigger", "asset:artifact/1228.fatalerror/trigger/1.trigger", diff --git a/Asset/data/asset/tags/functions/effect/end.json b/Asset/data/asset/tags/functions/effect/end.json index 48b7d4613e..68e9ab8894 100644 --- a/Asset/data/asset/tags/functions/effect/end.json +++ b/Asset/data/asset/tags/functions/effect/end.json @@ -1,5 +1,6 @@ { "values": [ + "asset:effect/374.charge_plasma/_/end", "asset:effect/0360.calamity_bind/_/end", "asset:effect/0345.topaz_protection/_/end", "asset:effect/0342.prayer_amidst_blight/_/end", @@ -105,4 +106,4 @@ "asset:effect/0007.defense_base_debuff/_/end", "asset:effect/0258.spirit_melody/_/end" ] -} +} \ No newline at end of file diff --git a/Asset/data/asset/tags/functions/effect/re-given.json b/Asset/data/asset/tags/functions/effect/re-given.json index d3650bf09a..381d5ee8da 100644 --- a/Asset/data/asset/tags/functions/effect/re-given.json +++ b/Asset/data/asset/tags/functions/effect/re-given.json @@ -1,5 +1,6 @@ { "values": [ + "asset:effect/374.charge_plasma/_/re-given", "asset:effect/0352.kitsunebi/_/re-given", "asset:effect/0345.topaz_protection/_/re-given", "asset:effect/0029.poison/_/re-given", @@ -60,4 +61,4 @@ "asset:effect/0007.defense_base_debuff/_/re-given", "asset:effect/0258.spirit_melody/_/re-given" ] -} +} \ No newline at end of file diff --git a/Asset/data/asset/tags/functions/effect/register.json b/Asset/data/asset/tags/functions/effect/register.json index 2a88625f93..1edc87b976 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/374.charge_plasma/_/register", "asset:effect/0352.kitsunebi/_/register", "asset:effect/0351.nectar_regeneration/_/register", "asset:effect/0117.slowness/_/register", @@ -175,4 +176,4 @@ "asset:effect/0007.defense_base_debuff/_/register", "asset:effect/0258.spirit_melody/_/register" ] -} +} \ No newline at end of file