diff --git a/Asset/data/asset/functions/artifact/1585.sword_of_isolation/give/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1585.sword_of_isolation/give/1.trigger.mcfunction new file mode 100644 index 0000000000..ec7a46276f --- /dev/null +++ b/Asset/data/asset/functions/artifact/1585.sword_of_isolation/give/1.trigger.mcfunction @@ -0,0 +1,7 @@ +#> asset:artifact/1585.sword_of_isolation/give/1.trigger +# +# 神器の取得処理の呼び出し時に実行されるfunction +# +# @within tag/function asset:artifact/give + +execute if data storage asset:context {id:1585} run function asset:artifact/1585.sword_of_isolation/give/2.give \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1585.sword_of_isolation/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/1585.sword_of_isolation/give/2.give.mcfunction new file mode 100644 index 0000000000..8fbc65ed23 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1585.sword_of_isolation/give/2.give.mcfunction @@ -0,0 +1,68 @@ +#> asset:artifact/1585.sword_of_isolation/give/2.give +# +# 神器の作成部 ここでID等を定義する +# +# @user +# @within function asset:artifact/1585.sword_of_isolation/give/1.trigger + +# 神器の説明や消費MPなどをここで設定する。 +# 最後にasset:artifact/common/giveを実行することで入手可能。 + +# 神器のID (int) スプレッドシートの値を入れる + data modify storage asset:artifact ID set value 1585 +# 神器のベースアイテム + data modify storage asset:artifact Item set value "minecraft:stick" +# 神器の名前 (TextComponentString) + data modify storage asset:artifact Name set value '{"text": "懸絶の剣"}' +# 神器の説明文 (TextComponentString[]) + data modify storage asset:artifact Lore set value ['{"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 +# 神器を発動できるスロット (string) Wikiを参照 + data modify storage asset:artifact Slot set value "mainhand" +# 神器のトリガー (string) Wikiを参照 + data modify storage asset:artifact Trigger set value "onAttackByMelee" +# 神器の発動条件 (TextComponentString) (オプション) + # data modify storage asset:artifact Condition set value +# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.Damage set value [1500] +# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.AttackType set value [Physical] +# 攻撃に関する情報 -攻撃属性 (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 +# MP消費量 (int) + data modify storage asset:artifact MPCost set value 60 +# MP必要量 (int) (オプション) + # data modify storage asset:artifact MPRequire set value +# MP回復量 (int) + # data modify storage asset:artifact MPHealWhenHit set value +# 神器のクールダウン (int) (オプション) + # data modify storage asset:artifact LocalCooldown set value +# 種別クールダウン ({Type: string, Duration: int}) (オプション) + data modify storage asset:artifact TypeCooldown.Type set value "shortRange" + data modify storage asset:artifact TypeCooldown.Duration set value 20 +# グローバルクールダウン (int) (オプション) + data modify storage asset:artifact SpecialCooldown set value 40 +# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableCooldownMessage set value +# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableMPMessage set value +# 破壊時の音を鳴らさないかどうか (boolean) (オプション) + # data modify storage asset:artifact DisableBreakSound set value +# 扱える神 (string[]) Wikiを参照 + data modify storage asset:artifact CanUsedGod set value ["Flora", "Urban", "Nyaptov"] +# カスタム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/1585.sword_of_isolation/register.mcfunction b/Asset/data/asset/functions/artifact/1585.sword_of_isolation/register.mcfunction new file mode 100644 index 0000000000..4744fff65b --- /dev/null +++ b/Asset/data/asset/functions/artifact/1585.sword_of_isolation/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/1585.sword_of_isolation/register +# +# 神器プールへの登録処理 +# +# @within tag/function asset:artifact/register + +data modify storage asset:artifact RarityRegistry[4] append value [1585] +data modify storage asset:artifact RarityRegistryWithColor.Red[4] append value [1585] diff --git a/Asset/data/asset/functions/artifact/1585.sword_of_isolation/trigger/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1585.sword_of_isolation/trigger/1.trigger.mcfunction new file mode 100644 index 0000000000..a130b0659b --- /dev/null +++ b/Asset/data/asset/functions/artifact/1585.sword_of_isolation/trigger/1.trigger.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/1585.sword_of_isolation/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:1585} run function asset:artifact/1585.sword_of_isolation/trigger/2.check_condition \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1585.sword_of_isolation/trigger/2.check_condition.mcfunction b/Asset/data/asset/functions/artifact/1585.sword_of_isolation/trigger/2.check_condition.mcfunction new file mode 100644 index 0000000000..0fdefaf5e7 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1585.sword_of_isolation/trigger/2.check_condition.mcfunction @@ -0,0 +1,12 @@ +#> asset:artifact/1585.sword_of_isolation/trigger/2.check_condition +# +# 神器の発動条件をチェックします +# +# @within function asset:artifact/1585.sword_of_isolation/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/1585.sword_of_isolation/trigger/3.main \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1585.sword_of_isolation/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/1585.sword_of_isolation/trigger/3.main.mcfunction new file mode 100644 index 0000000000..52437a2da9 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1585.sword_of_isolation/trigger/3.main.mcfunction @@ -0,0 +1,15 @@ +#> asset:artifact/1585.sword_of_isolation/trigger/3.main +# +# 神器のメイン処理部 +# +# @within function asset:artifact/1585.sword_of_isolation/trigger/2.check_condition + +# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う + function asset:artifact/common/use/mainhand + +# ここから先は神器側の効果の処理を書く + execute as @e[type=#lib:living_without_player,tag=Victim,distance=..10] at @s anchored eyes positioned ^ ^ ^ run function asset:artifact/1585.sword_of_isolation/trigger/damage + +# 演出 + playsound item.trident.throw player @a ~ ~ ~ 1.0 0.8 + playsound block.glass.break player @a ~ ~ ~ 1.0 0.7 diff --git a/Asset/data/asset/functions/artifact/1585.sword_of_isolation/trigger/damage.mcfunction b/Asset/data/asset/functions/artifact/1585.sword_of_isolation/trigger/damage.mcfunction new file mode 100644 index 0000000000..71b7b286da --- /dev/null +++ b/Asset/data/asset/functions/artifact/1585.sword_of_isolation/trigger/damage.mcfunction @@ -0,0 +1,22 @@ +#> asset:artifact/1585.sword_of_isolation/trigger/damage +# +# +# +# @within function asset:artifact/1585.sword_of_isolation/trigger/3.main + +# ダメージ + data modify storage api: Argument.Damage set value 1500 + data modify storage api: Argument.AttackType set value "Physical" + data modify storage api: Argument.ElementType set value "None" + #プレイヤーの攻撃補正だけを無視 + data modify storage api: Argument.FixedDamage set value true + execute as @p[tag=this] run function api:damage/modifier + #敵の耐性もろもろは計算する + data modify storage api: Argument.FixedDamage set value false + data modify storage api: Argument.BypassModifier set value false + function api:damage/ + function api:damage/reset + +# 演出 + particle ash ~ ~-0.5 ~ 0.1 0.5 0.1 0.1 45 + particle trial_spawner_detection ~ ~-1.5 ~ 0.1 0.5 0.1 0.0 20 diff --git a/Asset/data/asset/tags/functions/artifact/attack/melee.json b/Asset/data/asset/tags/functions/artifact/attack/melee.json index befbe3d3d1..56698b554b 100644 --- a/Asset/data/asset/tags/functions/artifact/attack/melee.json +++ b/Asset/data/asset/tags/functions/artifact/attack/melee.json @@ -1,5 +1,6 @@ { "values": [ + "asset:artifact/1585.sword_of_isolation/trigger/1.trigger", "asset:artifact/1269.apocalypse/trigger/1.trigger", "asset:artifact/1209.sinful_scythe/trigger/1.trigger", "asset:artifact/1282.ice_axe/trigger/1.trigger", @@ -73,4 +74,4 @@ "asset:artifact/0672.aurora_blade/trigger/1.trigger", "asset:artifact/0745.blade_of_whirlwind/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..97ea6bee25 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/1585.sword_of_isolation/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 +541,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 2bba1f3f33..c25da83685 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/1585.sword_of_isolation/register", "asset:artifact/1562.tsukimi_dango/register", "asset:artifact/1453.frost_flake_bow/register", "asset:artifact/1430.shield_of_fate/register", @@ -318,4 +319,4 @@ "asset:artifact/1027.fire_of_rebirth/register", "asset:artifact/1111.rod_o_redeem/register" ] -} +} \ No newline at end of file