diff --git a/Asset/data/asset/functions/artifact/1456.ice_brand_arts/give/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1456.ice_brand_arts/give/1.trigger.mcfunction new file mode 100644 index 0000000000..d4dd2f8702 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1456.ice_brand_arts/give/1.trigger.mcfunction @@ -0,0 +1,7 @@ +#> asset:artifact/1456.ice_brand_arts/give/1.trigger +# +# 神器の取得処理の呼び出し時に実行されるfunction +# +# @within tag/function asset:artifact/give + +execute if data storage asset:context {id:1456} run function asset:artifact/1456.ice_brand_arts/give/2.give diff --git a/Asset/data/asset/functions/artifact/1456.ice_brand_arts/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/1456.ice_brand_arts/give/2.give.mcfunction new file mode 100644 index 0000000000..837488f8bf --- /dev/null +++ b/Asset/data/asset/functions/artifact/1456.ice_brand_arts/give/2.give.mcfunction @@ -0,0 +1,68 @@ +#> asset:artifact/1456.ice_brand_arts/give/2.give +# +# 神器の作成部 ここでID等を定義する +# +# @user +# @within function asset:artifact/1456.ice_brand_arts/give/1.trigger + +# 神器の説明や消費MPなどをここで設定する。 +# 最後にasset:artifact/common/giveを実行することで入手可能。 + +# 神器のID (int) スプレッドシートの値を入れる + data modify storage asset:artifact ID set value 1456 +# 神器のベースアイテム + data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick" +# 神器の名前 (TextComponentString) + data modify storage asset:artifact Name set value '{"text":"アイスブランドアーツ","color":"#7DFFF2","bold":true}' +# 神器の説明文 (TextComponentString[]) + data modify storage asset:artifact Lore set value ['{"text":"周囲に複数の氷製の神器を生成する","color":"white"}','{"text":"生成した神器は誰でも右クリックで回収可能","color":"white"}','{"text":"生成した神器は生成してから時間が経つほど威力が減衰する","color":"white"}'] +# 消費アイテム ({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 [100,2000] +# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.AttackType set value [Physical] +# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.ElementType set value [Water] +# 攻撃に関する情報 -防御無視 (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 10 +# MP消費量 (int) + data modify storage asset:artifact MPCost set value 70 +# MP必要量 (int) (オプション) + # data modify storage asset:artifact MPRequire set value 200 +# MP回復量 (int) + # data modify storage asset:artifact MPHealWhenHit set value +# 神器のクールダウン (int) (オプション) + data modify storage asset:artifact LocalCooldown set value 600 +# 種別クールダウン ({Type: string, Duration: int}) (オプション) + data modify storage asset:artifact TypeCooldown.Type set value "longRange" + data modify storage asset:artifact TypeCooldown.Duration set value 60 +# グローバルクールダウン (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 ["Flora","Urban","Rumor","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/1456.ice_brand_arts/register.mcfunction b/Asset/data/asset/functions/artifact/1456.ice_brand_arts/register.mcfunction new file mode 100644 index 0000000000..43553b9595 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1456.ice_brand_arts/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/1456.ice_brand_arts/register +# +# 神器プールへの登録処理 +# +# @within tag/function asset:artifact/register + +data modify storage asset:artifact RarityRegistry[3] append value [1456] +data modify storage asset:artifact RarityRegistryWithColor.Red[3] append value [1456] diff --git a/Asset/data/asset/functions/artifact/1456.ice_brand_arts/trigger/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1456.ice_brand_arts/trigger/1.trigger.mcfunction new file mode 100644 index 0000000000..d49102c672 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1456.ice_brand_arts/trigger/1.trigger.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/1456.ice_brand_arts/trigger/1.trigger +# +# 指定したイベントタイミングで実行されるfunction +# +# @within tag/function asset:artifact/** + +# storage asset:idのautoに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する + execute if data storage asset:context id{mainhand:1456} run function asset:artifact/1456.ice_brand_arts/trigger/2.check_condition diff --git a/Asset/data/asset/functions/artifact/1456.ice_brand_arts/trigger/2.check_condition.mcfunction b/Asset/data/asset/functions/artifact/1456.ice_brand_arts/trigger/2.check_condition.mcfunction new file mode 100644 index 0000000000..085c804118 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1456.ice_brand_arts/trigger/2.check_condition.mcfunction @@ -0,0 +1,14 @@ +#> asset:artifact/1456.ice_brand_arts/trigger/2.check_condition +# +# 神器の発動条件をチェックします +# +# @within function asset:artifact/1456.ice_brand_arts/trigger/1.trigger + +# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く + function asset:artifact/common/check_condition/mainhand +# 他にアイテム等確認する場合はここに書く +# 戦闘外に使うべからず + execute unless predicate lib:in_battle run tellraw @s[tag=CanUsed] {"text":"戦闘中のみ使用可能です。","color":"red"} + execute unless predicate lib:in_battle run tag @s remove CanUsed +# CanUsedタグをチェックして3.main.mcfunctionを実行する + execute if entity @s[tag=CanUsed] run function asset:artifact/1456.ice_brand_arts/trigger/3.main diff --git a/Asset/data/asset/functions/artifact/1456.ice_brand_arts/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/1456.ice_brand_arts/trigger/3.main.mcfunction new file mode 100644 index 0000000000..10a3253236 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1456.ice_brand_arts/trigger/3.main.mcfunction @@ -0,0 +1,31 @@ +#> asset:artifact/1456.ice_brand_arts/trigger/3.main +# +# 神器のメイン処理部 +# +# @within function asset:artifact/1456.ice_brand_arts/trigger/2.check_condition + +# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う + function asset:artifact/common/use/auto + +# ここから先は神器側の効果の処理を書く +#アイシクルライン付与 + data modify storage api: Argument.ID set value 365 + data modify storage api: Argument.Duration set value 600 + execute store result storage api: Argument.FieldOverride.Time int 1 run data get storage global Time + # data modify storage api: Argument.Stack set value <スタック数> # オプション + # data modify storage api: Argument.DurationOperation set value "replace" # オプション + # data modify storage api: Argument.StackOperation set value "replace" # オプション + # data modify storage api: Argument.FieldOverride set value {…} # オプション + execute at @s as @a[distance=..10] run function api:entity/mob/effect/give + function api:entity/mob/effect/reset +# 0〜3の乱数を生成し、ストレージの[type]に保存 + execute store result storage asset:temp type int 1 run random value 0..3 +# 生成音 + playsound block.amethyst_cluster.break player @a ~ ~ ~ 1 1.2 + playsound block.amethyst_block.chime player @a ~ ~ ~ 1 1.5 +# 乱数(0〜3)に応じて、基準の向きを東西南北に変えて展開functionを呼び出す + execute if data storage asset:temp {type:0} at @s rotated 0 0 run function asset:artifact/1456.ice_brand_arts/trigger/position_set + execute if data storage asset:temp {type:1} at @s rotated 90 0 run function asset:artifact/1456.ice_brand_arts/trigger/position_set + execute if data storage asset:temp {type:2} at @s rotated 180 0 run function asset:artifact/1456.ice_brand_arts/trigger/position_set + execute if data storage asset:temp {type:3} at @s rotated -90 0 run function asset:artifact/1456.ice_brand_arts/trigger/position_set + data remove storage asset:temp type diff --git a/Asset/data/asset/functions/artifact/1456.ice_brand_arts/trigger/position_set.mcfunction b/Asset/data/asset/functions/artifact/1456.ice_brand_arts/trigger/position_set.mcfunction new file mode 100644 index 0000000000..96e9ea4a0d --- /dev/null +++ b/Asset/data/asset/functions/artifact/1456.ice_brand_arts/trigger/position_set.mcfunction @@ -0,0 +1,16 @@ +#> asset:artifact/1456.ice_brand_arts/trigger/position_set +# +# 神器のメイン処理部 +# +# @within function asset:artifact/1456.ice_brand_arts/trigger/3.main + +# それぞれの位置に武器召喚コマンド + execute rotated ~15 0 positioned ^ ^ ^6 positioned ~ ~4 ~ run function asset:artifact/1456.ice_brand_arts/trigger/summon + execute rotated ~-40 0 positioned ^ ^ ^10 positioned ~ ~4 ~ run function asset:artifact/1456.ice_brand_arts/trigger/summon + execute rotated ~75 0 positioned ^ ^ ^8.5 positioned ~ ~4 ~ run function asset:artifact/1456.ice_brand_arts/trigger/summon + execute rotated ~110 0 positioned ^ ^ ^4.5 positioned ~ ~4 ~ run function asset:artifact/1456.ice_brand_arts/trigger/summon + execute rotated ~160 0 positioned ^ ^ ^10 positioned ~ ~4 ~ run function asset:artifact/1456.ice_brand_arts/trigger/summon + execute rotated ~-150 0 positioned ^ ^ ^6.5 positioned ~ ~4 ~ run function asset:artifact/1456.ice_brand_arts/trigger/summon + execute rotated ~-100 0 positioned ^ ^ ^11.5 positioned ~ ~4 ~ run function asset:artifact/1456.ice_brand_arts/trigger/summon + execute rotated ~-10 0 positioned ^ ^ ^7.5 positioned ~ ~4 ~ run function asset:artifact/1456.ice_brand_arts/trigger/summon + execute rotated ~180 0 positioned ^ ^ ^3 positioned ~ ~4 ~ run function asset:artifact/1456.ice_brand_arts/trigger/summon diff --git a/Asset/data/asset/functions/artifact/1456.ice_brand_arts/trigger/summon.mcfunction b/Asset/data/asset/functions/artifact/1456.ice_brand_arts/trigger/summon.mcfunction new file mode 100644 index 0000000000..9a18a6d1d0 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1456.ice_brand_arts/trigger/summon.mcfunction @@ -0,0 +1,39 @@ +#> asset:artifact/1456.ice_brand_arts/trigger/position_set +# +# 神器のメイン処理部 +# +# @within function asset:artifact/1456.ice_brand_arts/trigger/position_set + +# 演出 + particle minecraft:dust_color_transition 0.5 0.8 1.0 1.2 1.0 1.0 1.0 ~ ~0.5 ~ 0.4 0.4 0.4 0 30 normal + particle minecraft:snowflake ~ ~0.5 ~ 1 1 1 0.02 10 normal + particle minecraft:end_rod ~ ~0.5 ~ 0.2 0.2 0.2 0.03 20 normal + +#武器設置 + # 引数: ID + data modify storage api: Argument.ID set value 1161 + +# Field の値を上書き + #武器種の確定 + execute store result storage api: Argument.FieldOverride.Weapon int 1 run random value 0..5 + #向きをずらす + execute store result storage api: Argument.FieldOverride.Yaw float 0.001 run random value -1000..1000 + execute store result storage api: Argument.FieldOverride.Pitch float 0.001 run random value -200..700 + # 正しいアイテムが表示されるように + data modify storage api: Argument.FieldOverride.Id set value "minecraft:stick" + execute if data storage api: Argument.FieldOverride{Weapon:4} run data modify storage api: Argument.FieldOverride.Id set value "minecraft:carrot_on_a_stick" + execute if data storage api: Argument.FieldOverride{Weapon:5} run data modify storage api: Argument.FieldOverride.Id set value "minecraft:carrot_on_a_stick" + # custommodelの変更 + execute if data storage api: Argument.FieldOverride{Weapon:0} run data modify storage api: Argument.FieldOverride.Model set value 1457 + execute if data storage api: Argument.FieldOverride{Weapon:1} run data modify storage api: Argument.FieldOverride.Model set value 1458 + execute if data storage api: Argument.FieldOverride{Weapon:2} run data modify storage api: Argument.FieldOverride.Model set value 1459 + execute if data storage api: Argument.FieldOverride{Weapon:3} run data modify storage api: Argument.FieldOverride.Model set value 1460 + execute if data storage api: Argument.FieldOverride{Weapon:4} run data modify storage api: Argument.FieldOverride.Model set value 1461 + execute if data storage api: Argument.FieldOverride{Weapon:5} run data modify storage api: Argument.FieldOverride.Model set value 1462 +# 見た目変更(トンファーだけ刺さる向きを逆に) + data modify storage api: Argument.FieldOverride.Rotation set value "[0f,0f,0f,1f]" + execute if data storage api: Argument.FieldOverride{Weapon:3} run data modify storage api: Argument.FieldOverride.Rotation set value "[0f,0f,1f,0f]" + + +# 召喚位置・向きは実行者のものが使われる + function api:object/summon diff --git a/Asset/data/asset/functions/artifact/1457.ice_brand_arts_axe/give/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1457.ice_brand_arts_axe/give/1.trigger.mcfunction new file mode 100644 index 0000000000..ec0a16be70 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1457.ice_brand_arts_axe/give/1.trigger.mcfunction @@ -0,0 +1,7 @@ +#> asset:artifact/1457.ice_brand_arts_axe/give/1.trigger +# +# 神器の取得処理の呼び出し時に実行されるfunction +# +# @within tag/function asset:artifact/give + +execute if data storage asset:context {id:1457} run function asset:artifact/1457.ice_brand_arts_axe/give/2.give \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1457.ice_brand_arts_axe/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/1457.ice_brand_arts_axe/give/2.give.mcfunction new file mode 100644 index 0000000000..49942cd2f0 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1457.ice_brand_arts_axe/give/2.give.mcfunction @@ -0,0 +1,68 @@ +#> asset:artifact/1457.ice_brand_arts_axe/give/2.give +# +# 神器の作成部 ここでID等を定義する +# +# @user +# @within function asset:artifact/1457.ice_brand_arts_axe/give/1.trigger + +# 神器の説明や消費MPなどをここで設定する。 +# 最後にasset:artifact/common/giveを実行することで入手可能。 + +# 神器のID (int) スプレッドシートの値を入れる + data modify storage asset:artifact ID set value 1457 +# 神器のベースアイテム + data modify storage asset:artifact Item set value "minecraft:stick" +# 神器の名前 (TextComponentString) + data modify storage asset:artifact Name set value '{"text":"アイスブランドアーツ(斧)","color":"#7DFFF2"}' +# 神器の説明文 (TextComponentString[]) + data modify storage asset:artifact Lore set value ['{"text":"アイスブランドアーツで生成した氷の斧","color":"white"}','{"text":"敵単体に強烈な一撃をお見舞いする","color":"white"}','{"text":"生成してから時間が経つほど威力が減衰する","color":"white"}'] +# 消費アイテム ({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 1 +# 神器を発動できるスロット (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 '{"text":"クリティカル攻撃"}' +# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.Damage set value [500,2000] +# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.AttackType set value [Physical] +# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.ElementType set value [Water] +# 攻撃に関する情報 -防御無視 (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 60 +# MP必要量 (int) (オプション) + #data modify storage asset:artifact MPRequire set value 150 +# MP回復量 (int) + # data modify storage asset:artifact MPHealWhenHit set value +# 神器のクールダウン (int) (オプション) + # data modify storage asset:artifact LocalCooldown set value 30 +# 種別クールダウン ({Type: string, Duration: int}) (オプション) + data modify storage asset:artifact TypeCooldown.Type set value "shortRange" + data modify storage asset:artifact TypeCooldown.Duration set value 30 +# グローバルクールダウン (int) (オプション) + # data modify storage asset:artifact SpecialCooldown set value +# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableCooldownMessage set value +# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableMPMessage set value +# 破壊時の音を鳴らさないかどうか (boolean) (オプション) + # data modify storage asset:artifact DisableBreakSound set value +# 扱える神 (string[]) Wikiを参照 + data modify storage asset:artifact CanUsedGod set value "ALL" +# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション) + # data modify storage asset:artifact CustomNBT set value {} + +# 神器の入手用function + function asset:artifact/common/give diff --git a/Asset/data/asset/functions/artifact/1457.ice_brand_arts_axe/trigger/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1457.ice_brand_arts_axe/trigger/1.trigger.mcfunction new file mode 100644 index 0000000000..4f1c6dbad0 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1457.ice_brand_arts_axe/trigger/1.trigger.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/1457.ice_brand_arts_axe/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:1457} run function asset:artifact/1457.ice_brand_arts_axe/trigger/2.check_condition \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1457.ice_brand_arts_axe/trigger/2.check_condition.mcfunction b/Asset/data/asset/functions/artifact/1457.ice_brand_arts_axe/trigger/2.check_condition.mcfunction new file mode 100644 index 0000000000..d18f7e6d85 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1457.ice_brand_arts_axe/trigger/2.check_condition.mcfunction @@ -0,0 +1,12 @@ +#> asset:artifact/1457.ice_brand_arts_axe/trigger/2.check_condition +# +# 神器の発動条件をチェックします +# +# @within function asset:artifact/1457.ice_brand_arts_axe/trigger/1.trigger + +# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く + function asset:artifact/common/check_condition/mainhand +# 他にアイテム等確認する場合はここに書く + execute if entity @s[tag=CanUsed] unless data storage asset:context Attack{Crit:true} run tag @s remove CanUsed +# CanUsedタグをチェックして3.main.mcfunctionを実行する + execute if entity @s[tag=CanUsed] run function asset:artifact/1457.ice_brand_arts_axe/trigger/3.main diff --git a/Asset/data/asset/functions/artifact/1457.ice_brand_arts_axe/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/1457.ice_brand_arts_axe/trigger/3.main.mcfunction new file mode 100644 index 0000000000..93d0d34a08 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1457.ice_brand_arts_axe/trigger/3.main.mcfunction @@ -0,0 +1,61 @@ +#> asset:artifact/1457.ice_brand_arts_axe/trigger/3.main +# +# 神器のメイン処理部 +# +# @within function asset:artifact/1457.ice_brand_arts_axe/trigger/2.check_condition + +#> Private +# @private + #declare score_holder $UseTime + #declare score_holder $NowTime + #declare score_holder $value + #declare score_holder $MaxDamageBaf + #declare score_holder $BaseDamage + +# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う + function asset:artifact/common/use/mainhand + +# ここから先は神器側の効果の処理を書く +# 攻撃時演出 + execute at @e[type=#lib:living_without_player,tag=Victim,distance=..6] run particle block ice ~ ~ ~ 1 1 1 0 100 + execute at @e[type=#lib:living_without_player,tag=Victim,distance=..6] run playsound block.glass.break player @a ~ ~ ~ 1.2 0.7 + execute at @e[type=#lib:living_without_player,tag=Victim,distance=..6] run playsound entity.zombie.attack_iron_door player @a ~ ~ ~ 0.4 0.7 + +# 威力計算 + # 基礎ダメージ決定 + scoreboard players set $BaseDamage Temporary 500 + # ダメージ増加量決定 + scoreboard players set $MaxDamageBaf Temporary 1500 + # 諸々準備 + scoreboard players set $value Temporary 600 + data modify storage api: Argument.ID set value 365 + function api:entity/mob/effect/get/from_id + # 使用時間取る + execute store result score $UseTime Temporary run data get storage api: Return.Effect.Field.Time + # 現在時間取る + execute store result score $NowTime Temporary run data get storage global Time + # 引き算して + scoreboard players operation $NowTime Temporary -= $UseTime Temporary + scoreboard players operation $value Temporary -= $NowTime Temporary + execute if score $value Temporary matches ..-1 run scoreboard players set $value Temporary 0 + # 威力決定 + scoreboard players operation $MaxDamageBaf Temporary *= $value Temporary + scoreboard players operation $MaxDamageBaf Temporary /= $600 Const + scoreboard players operation $BaseDamage Temporary += $MaxDamageBaf Temporary + +# 引数を set(ダメージ) + execute store result storage api: Argument.Damage float 1 run scoreboard players get $BaseDamage Temporary + data modify storage api: Argument.AttackType set value "Physical" + data modify storage api: Argument.ElementType set value "Water" +# 補正functionを実行 + function api:damage/modifier +# 実行(攻撃対象にダメージ) + execute as @e[type=#lib:living_without_player,tag=Victim,distance=..6] run function api:damage/ +# リセット + function api:damage/reset +# スコアリセット + scoreboard players reset $NowTime Temporary + scoreboard players reset $UseTime Temporary + scoreboard players reset $value Temporary + scoreboard players reset $MaxDamageBaf Temporary + scoreboard players reset $BaseDamage Temporary diff --git a/Asset/data/asset/functions/artifact/1458.ice_brand_arts_hammer/give/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1458.ice_brand_arts_hammer/give/1.trigger.mcfunction new file mode 100644 index 0000000000..96680a714f --- /dev/null +++ b/Asset/data/asset/functions/artifact/1458.ice_brand_arts_hammer/give/1.trigger.mcfunction @@ -0,0 +1,7 @@ +#> asset:artifact/1458.ice_brand_arts_hammer/give/1.trigger +# +# 神器の取得処理の呼び出し時に実行されるfunction +# +# @within tag/function asset:artifact/give + +execute if data storage asset:context {id:1458} run function asset:artifact/1458.ice_brand_arts_hammer/give/2.give \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1458.ice_brand_arts_hammer/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/1458.ice_brand_arts_hammer/give/2.give.mcfunction new file mode 100644 index 0000000000..df29a30d12 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1458.ice_brand_arts_hammer/give/2.give.mcfunction @@ -0,0 +1,68 @@ +#> asset:artifact/1458.ice_brand_arts_hammer/give/2.give +# +# 神器の作成部 ここでID等を定義する +# +# @user +# @within function asset:artifact/1458.ice_brand_arts_hammer/give/1.trigger + +# 神器の説明や消費MPなどをここで設定する。 +# 最後にasset:artifact/common/giveを実行することで入手可能。 + +# 神器のID (int) スプレッドシートの値を入れる + data modify storage asset:artifact ID set value 1458 +# 神器のベースアイテム + data modify storage asset:artifact Item set value "minecraft:stick" +# 神器の名前 (TextComponentString) + data modify storage asset:artifact Name set value '{"text":"アイスブランドアーツ(ハンマー)","color":"#7DFFF2"}' +# 神器の説明文 (TextComponentString[]) + data modify storage asset:artifact Lore set value ['{"text":"アイスブランドアーツで生成した氷のハンマー","color":"white"}','{"text":"周囲の敵も巻き込む強力な打撃を放つ","color":"white"}','{"text":"生成してから時間が経つほど威力が減衰する","color":"white"}'] +# 消費アイテム ({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 1 +# 神器を発動できるスロット (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 "350-1400 / 175-700" +# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.AttackType set value [Physical] +# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.ElementType set value [Water] +# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション) + # data modify storage asset:artifact AttackInfo.BypassResist set value +# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.IsRangeAttack set value "every" +# 攻撃に関する情報 -攻撃範囲 (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 100 +# 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 30 +# グローバルクールダウン (int) (オプション) + # data modify storage asset:artifact SpecialCooldown set value +# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableCooldownMessage set value +# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableMPMessage set value +# 破壊時の音を鳴らさないかどうか (boolean) (オプション) + # data modify storage asset:artifact DisableBreakSound set value +# 扱える神 (string[]) Wikiを参照 + data modify storage asset:artifact CanUsedGod set value "ALL" +# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション) + # data modify storage asset:artifact CustomNBT set value {} + +# 神器の入手用function + function asset:artifact/common/give diff --git a/Asset/data/asset/functions/artifact/1458.ice_brand_arts_hammer/trigger/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1458.ice_brand_arts_hammer/trigger/1.trigger.mcfunction new file mode 100644 index 0000000000..9125e4f57f --- /dev/null +++ b/Asset/data/asset/functions/artifact/1458.ice_brand_arts_hammer/trigger/1.trigger.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/1458.ice_brand_arts_hammer/trigger/1.trigger +# +# 指定したイベントタイミングで実行されるfunction +# +# @within tag/function asset:artifact/** + +# storage asset:idのautoに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する + execute if data storage asset:context id{mainhand:1458} run function asset:artifact/1458.ice_brand_arts_hammer/trigger/2.check_condition diff --git a/Asset/data/asset/functions/artifact/1458.ice_brand_arts_hammer/trigger/2.check_condition.mcfunction b/Asset/data/asset/functions/artifact/1458.ice_brand_arts_hammer/trigger/2.check_condition.mcfunction new file mode 100644 index 0000000000..fe5a70ba01 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1458.ice_brand_arts_hammer/trigger/2.check_condition.mcfunction @@ -0,0 +1,12 @@ +#> asset:artifact/1458.ice_brand_arts_hammer/trigger/2.check_condition +# +# 神器の発動条件をチェックします +# +# @within function asset:artifact/1458.ice_brand_arts_hammer/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/1458.ice_brand_arts_hammer/trigger/3.main diff --git a/Asset/data/asset/functions/artifact/1458.ice_brand_arts_hammer/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/1458.ice_brand_arts_hammer/trigger/3.main.mcfunction new file mode 100644 index 0000000000..850fa2c7c7 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1458.ice_brand_arts_hammer/trigger/3.main.mcfunction @@ -0,0 +1,74 @@ +#> asset:artifact/1458.ice_brand_arts_hammer/trigger/3.main +# +# 神器のメイン処理部 +# +# @within function asset:artifact/1458.ice_brand_arts_hammer/trigger/2.check_condition + +#> Private +# @private + #declare score_holder $UseTime + #declare score_holder $NowTime + #declare score_holder $value + #declare score_holder $MaxDamageBaf + #declare score_holder $BaseDamage + +# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う + function asset:artifact/common/use/mainhand + +# ここから先は神器側の効果の処理を書く + +# 攻撃時演出 + execute at @e[type=#lib:living_without_player,tag=Victim,distance=..6] run function asset:artifact/1458.ice_brand_arts_hammer/trigger/direction + +# 威力計算 + # 基礎ダメージ決定 + scoreboard players set $BaseDamage Temporary 350 + # ダメージ増加量決定 + scoreboard players set $MaxDamageBaf Temporary 1050 + # 諸々準備 + scoreboard players set $value Temporary 600 + data modify storage api: Argument.ID set value 365 + function api:entity/mob/effect/get/from_id + # 使用時間取る + execute store result score $UseTime Temporary run data get storage api: Return.Effect.Field.Time + # 現在時間取る + execute store result score $NowTime Temporary run data get storage global Time + # 引き算して + scoreboard players operation $NowTime Temporary -= $UseTime Temporary + scoreboard players operation $value Temporary -= $NowTime Temporary + execute if score $value Temporary matches ..-1 run scoreboard players set $value Temporary 0 + # 威力決定 + scoreboard players operation $MaxDamageBaf Temporary *= $value Temporary + scoreboard players operation $MaxDamageBaf Temporary /= $600 Const + scoreboard players operation $BaseDamage Temporary += $MaxDamageBaf Temporary + +#対象に大ダメージ +# 引数を set + execute store result storage api: Argument.Damage float 1 run scoreboard players get $BaseDamage Temporary + data modify storage api: Argument.AttackType set value "Physical" + data modify storage api: Argument.ElementType set value "Water" +# 補正functionを実行 + function api:damage/modifier +# 実行(攻撃対象にダメージ) + execute as @e[type=#lib:living_without_player,tag=Victim,distance=..6] run function api:damage/ +# リセット + function api:damage/reset + +# 近くの敵も巻き込む +# 引数を set + scoreboard players operation $BaseDamage Temporary /= $2 Const + execute store result storage api: Argument.Damage float 1 run scoreboard players get $BaseDamage Temporary + data modify storage api: Argument.AttackType set value "Physical" + data modify storage api: Argument.ElementType set value "Water" +# 補正functionを実行 + function api:damage/modifier +# 実行(攻撃対象にダメージ) + execute at @e[type=#lib:living_without_player,tag=Victim,distance=..6] as @e[type=#lib:living_without_player,tag=!Victim,distance=..3] run function api:damage/ +# リセット + function api:damage/reset +# スコアリセット + scoreboard players reset $NowTime Temporary + scoreboard players reset $UseTime Temporary + scoreboard players reset $value Temporary + scoreboard players reset $MaxDamageBaf Temporary + scoreboard players reset $BaseDamage Temporary diff --git a/Asset/data/asset/functions/artifact/1458.ice_brand_arts_hammer/trigger/direction.mcfunction b/Asset/data/asset/functions/artifact/1458.ice_brand_arts_hammer/trigger/direction.mcfunction new file mode 100644 index 0000000000..a8e4cf080e --- /dev/null +++ b/Asset/data/asset/functions/artifact/1458.ice_brand_arts_hammer/trigger/direction.mcfunction @@ -0,0 +1,20 @@ +#> asset:artifact/1458.ice_brand_arts_hammer/trigger/3.main +# +# ハンマーの演出 +# +# @within function asset:artifact/1458.ice_brand_arts_hammer/trigger/3.main + + +# 1. 中心から氷の結晶(白)を激しく跳ね上げる + particle minecraft:dust 1.0 1.0 1.0 2.0 ~ ~ ~ 0.5 0.5 0.5 0.1 50 force @a + particle block ice ~ ~ ~ 1 1 1 0 100 + +# 2. 叩きつけた衝撃で広がる青い霧(水色) + particle minecraft:cloud ~ ~ ~ 1.5 0.5 1.5 0.05 40 normal @a + particle minecraft:dust 0.4 0.8 1.0 1.5 ~ ~ ~ 1.5 0.5 1.5 0.05 60 force @a + +# 3. 氷の破片が四方八方に飛び散るサウンド + playsound minecraft:block.glass.break player @a ~ ~ ~ 0.8 0.5 0 + playsound minecraft:entity.generic.explode player @a ~ ~ ~ 0.5 1.5 0 + playsound block.glass.break player @a ~ ~ ~ 1.2 0.7 + playsound entity.zombie.attack_wooden_door player @a ~ ~ ~ 0.4 0.7 diff --git a/Asset/data/asset/functions/artifact/1459.ice_brand_arts_sword/give/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1459.ice_brand_arts_sword/give/1.trigger.mcfunction new file mode 100644 index 0000000000..2c8f611172 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1459.ice_brand_arts_sword/give/1.trigger.mcfunction @@ -0,0 +1,7 @@ +#> asset:artifact/1459.ice_brand_arts_sword/give/1.trigger +# +# 神器の取得処理の呼び出し時に実行されるfunction +# +# @within tag/function asset:artifact/give + +execute if data storage asset:context {id:1459} run function asset:artifact/1459.ice_brand_arts_sword/give/2.give \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1459.ice_brand_arts_sword/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/1459.ice_brand_arts_sword/give/2.give.mcfunction new file mode 100644 index 0000000000..0ed7980e56 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1459.ice_brand_arts_sword/give/2.give.mcfunction @@ -0,0 +1,68 @@ +#> asset:artifact/1459.ice_brand_arts_sword/give/2.give +# +# 神器の作成部 ここでID等を定義する +# +# @user +# @within function asset:artifact/1459.ice_brand_arts_sword/give/1.trigger + +# 神器の説明や消費MPなどをここで設定する。 +# 最後にasset:artifact/common/giveを実行することで入手可能。 + +# 神器のID (int) スプレッドシートの値を入れる + data modify storage asset:artifact ID set value 1459 +# 神器のベースアイテム + data modify storage asset:artifact Item set value "minecraft:stick" +# 神器の名前 (TextComponentString) + data modify storage asset:artifact Name set value '{"text":"アイスブランドアーツ(剣)","color":"#7DFFF2"}' +# 神器の説明文 (TextComponentString[]) + data modify storage asset:artifact Lore set value ['{"text":"アイスブランドアーツで生成した氷の剣","color":"white"}','{"text":"鋭い刃で敵単体を切り刻む","color":"white"}','{"text":"生成してから時間が経つほど威力が減衰する","color":"white"}'] +# 消費アイテム ({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 3 +# 神器を発動できるスロット (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 [225,900] +# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.AttackType set value [Physical] +# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.ElementType set value [Water] +# 攻撃に関する情報 -防御無視 (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 20 +# 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 16 +# 種別クールダウン ({Type: string, Duration: int}) (オプション) + data modify storage asset:artifact TypeCooldown.Type set value "shortRange" + data modify storage asset:artifact TypeCooldown.Duration set value 10 +# グローバルクールダウン (int) (オプション) + # data modify storage asset:artifact SpecialCooldown set value +# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableCooldownMessage set value +# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableMPMessage set value +# 破壊時の音を鳴らさないかどうか (boolean) (オプション) + # data modify storage asset:artifact DisableBreakSound set value +# 扱える神 (string[]) Wikiを参照 + data modify storage asset:artifact CanUsedGod set value "ALL" +# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション) + # data modify storage asset:artifact CustomNBT set value {} + +# 神器の入手用function + function asset:artifact/common/give diff --git a/Asset/data/asset/functions/artifact/1459.ice_brand_arts_sword/trigger/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1459.ice_brand_arts_sword/trigger/1.trigger.mcfunction new file mode 100644 index 0000000000..ab4684cbe3 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1459.ice_brand_arts_sword/trigger/1.trigger.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/1459.ice_brand_arts_sword/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:1459} run function asset:artifact/1459.ice_brand_arts_sword/trigger/2.check_condition \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1459.ice_brand_arts_sword/trigger/2.check_condition.mcfunction b/Asset/data/asset/functions/artifact/1459.ice_brand_arts_sword/trigger/2.check_condition.mcfunction new file mode 100644 index 0000000000..fe04f775ff --- /dev/null +++ b/Asset/data/asset/functions/artifact/1459.ice_brand_arts_sword/trigger/2.check_condition.mcfunction @@ -0,0 +1,12 @@ +#> asset:artifact/1459.ice_brand_arts_sword/trigger/2.check_condition +# +# 神器の発動条件をチェックします +# +# @within function asset:artifact/1459.ice_brand_arts_sword/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/1459.ice_brand_arts_sword/trigger/3.main \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1459.ice_brand_arts_sword/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/1459.ice_brand_arts_sword/trigger/3.main.mcfunction new file mode 100644 index 0000000000..7ea1b08e5c --- /dev/null +++ b/Asset/data/asset/functions/artifact/1459.ice_brand_arts_sword/trigger/3.main.mcfunction @@ -0,0 +1,63 @@ +#> asset:artifact/1459.ice_brand_arts_sword/trigger/3.main +# +# 神器のメイン処理部 +# +# @within function asset:artifact/1459.ice_brand_arts_sword/trigger/2.check_condition + +#> Private +# @private + #declare score_holder $UseTime + #declare score_holder $NowTime + #declare score_holder $value + #declare score_holder $MaxDamageBaf + #declare score_holder $BaseDamage + +# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う + function asset:artifact/common/use/mainhand + + +# 攻撃時演出 + execute at @e[type=#lib:living_without_player,tag=Victim,distance=..6] run particle block ice ~ ~ ~ 0.7 0.7 0.7 0 70 + execute at @e[type=#lib:living_without_player,tag=Victim,distance=..6] run particle sweep_attack ~ ~1 ~ + execute at @e[type=#lib:living_without_player,tag=Victim,distance=..6] run playsound block.glass.break player @a ~ ~ ~ 1.2 1.7 + execute at @e[type=#lib:living_without_player,tag=Victim,distance=..6] run playsound entity.player.attack.sweep player @a ~ ~ ~ 1 0.8 + +# 威力計算 + # 基礎ダメージ決定 + scoreboard players set $BaseDamage Temporary 225 + # ダメージ増加量決定 + scoreboard players set $MaxDamageBaf Temporary 775 + # 諸々準備 + scoreboard players set $value Temporary 600 + data modify storage api: Argument.ID set value 365 + function api:entity/mob/effect/get/from_id + # 使用時間取る + execute store result score $UseTime Temporary run data get storage api: Return.Effect.Field.Time + # 現在時間取る + execute store result score $NowTime Temporary run data get storage global Time + # 引き算して + scoreboard players operation $NowTime Temporary -= $UseTime Temporary + scoreboard players operation $value Temporary -= $NowTime Temporary + execute if score $value Temporary matches ..-1 run scoreboard players set $value Temporary 0 + # 威力決定 + scoreboard players operation $MaxDamageBaf Temporary *= $value Temporary + scoreboard players operation $MaxDamageBaf Temporary /= $600 Const + scoreboard players operation $BaseDamage Temporary += $MaxDamageBaf Temporary + +#対象に大ダメージ +# 引数を set + execute store result storage api: Argument.Damage float 1 run scoreboard players get $BaseDamage Temporary + data modify storage api: Argument.AttackType set value "Physical" + data modify storage api: Argument.ElementType set value "Water" +# 補正functionを実行 + function api:damage/modifier +# 実行(攻撃対象にダメージ) + execute as @e[type=#lib:living_without_player,tag=Victim,distance=..6] run function api:damage/ +# リセット + function api:damage/reset +# スコアリセット + scoreboard players reset $NowTime Temporary + scoreboard players reset $UseTime Temporary + scoreboard players reset $value Temporary + scoreboard players reset $MaxDamageBaf Temporary + scoreboard players reset $BaseDamage Temporary diff --git a/Asset/data/asset/functions/artifact/1460.ice_brand_arts_tonfa/give/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1460.ice_brand_arts_tonfa/give/1.trigger.mcfunction new file mode 100644 index 0000000000..e845456b21 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1460.ice_brand_arts_tonfa/give/1.trigger.mcfunction @@ -0,0 +1,7 @@ +#> asset:artifact/1460.ice_brand_arts_tonfa/give/1.trigger +# +# 神器の取得処理の呼び出し時に実行されるfunction +# +# @within tag/function asset:artifact/give + +execute if data storage asset:context {id:1460} run function asset:artifact/1460.ice_brand_arts_tonfa/give/2.give \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1460.ice_brand_arts_tonfa/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/1460.ice_brand_arts_tonfa/give/2.give.mcfunction new file mode 100644 index 0000000000..f95ed78782 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1460.ice_brand_arts_tonfa/give/2.give.mcfunction @@ -0,0 +1,68 @@ +#> asset:artifact/1460.ice_brand_arts_tonfa/give/2.give +# +# 神器の作成部 ここでID等を定義する +# +# @user +# @within function asset:artifact/1460.ice_brand_arts_tonfa/give/1.trigger + +# 神器の説明や消費MPなどをここで設定する。 +# 最後にasset:artifact/common/giveを実行することで入手可能。 + +# 神器のID (int) スプレッドシートの値を入れる + data modify storage asset:artifact ID set value 1460 +# 神器のベースアイテム + data modify storage asset:artifact Item set value "minecraft:stick" +# 神器の名前 (TextComponentString) + data modify storage asset:artifact Name set value '{"text":"アイスブランドアーツ(トンファー)","color":"#7DFFF2"}' +# 神器の説明文 (TextComponentString[]) + data modify storage asset:artifact Lore set value ['{"text":"アイスブランドアーツで生成した氷のトンファー","color":"white"}','{"text":"敵単体に連続攻撃できる","color":"white"}','{"text":"生成してから時間が経つほど威力が減衰する","color":"white"}'] +# 消費アイテム ({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 "onAttackByMelee" +# 神器の発動条件 (TextComponentString) (オプション) + # data modify storage asset:artifact Condition set value +# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.Damage set value [100,400] +# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.AttackType set value [Physical] +# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.ElementType set value [Water] +# 攻撃に関する情報 -防御無視 (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 10 +# 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 6 +# グローバルクールダウン (int) (オプション) + # data modify storage asset:artifact SpecialCooldown set value +# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableCooldownMessage set value +# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableMPMessage set value +# 破壊時の音を鳴らさないかどうか (boolean) (オプション) + # data modify storage asset:artifact DisableBreakSound set value +# 扱える神 (string[]) Wikiを参照 + data modify storage asset:artifact CanUsedGod set value "ALL" +# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション) + # data modify storage asset:artifact CustomNBT set value {} + +# 神器の入手用function + function asset:artifact/common/give diff --git a/Asset/data/asset/functions/artifact/1460.ice_brand_arts_tonfa/trigger/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1460.ice_brand_arts_tonfa/trigger/1.trigger.mcfunction new file mode 100644 index 0000000000..e29298b324 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1460.ice_brand_arts_tonfa/trigger/1.trigger.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/1460.ice_brand_arts_tonfa/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:1460} run function asset:artifact/1460.ice_brand_arts_tonfa/trigger/2.check_condition \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1460.ice_brand_arts_tonfa/trigger/2.check_condition.mcfunction b/Asset/data/asset/functions/artifact/1460.ice_brand_arts_tonfa/trigger/2.check_condition.mcfunction new file mode 100644 index 0000000000..ecba82cfdd --- /dev/null +++ b/Asset/data/asset/functions/artifact/1460.ice_brand_arts_tonfa/trigger/2.check_condition.mcfunction @@ -0,0 +1,12 @@ +#> asset:artifact/1460.ice_brand_arts_tonfa/trigger/2.check_condition +# +# 神器の発動条件をチェックします +# +# @within function asset:artifact/1460.ice_brand_arts_tonfa/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/1460.ice_brand_arts_tonfa/trigger/3.main \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1460.ice_brand_arts_tonfa/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/1460.ice_brand_arts_tonfa/trigger/3.main.mcfunction new file mode 100644 index 0000000000..762ceee59d --- /dev/null +++ b/Asset/data/asset/functions/artifact/1460.ice_brand_arts_tonfa/trigger/3.main.mcfunction @@ -0,0 +1,62 @@ +#> asset:artifact/1460.ice_brand_arts_tonfa/trigger/3.main +# +# 神器のメイン処理部 +# +# @within function asset:artifact/1460.ice_brand_arts_tonfa/trigger/2.check_condition + +#> Private +# @private + #declare score_holder $UseTime + #declare score_holder $NowTime + #declare score_holder $value + #declare score_holder $MaxDamageBaf + #declare score_holder $BaseDamage + +# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う + function asset:artifact/common/use/mainhand + +# 攻撃時演出 + execute at @e[type=#lib:living_without_player,tag=Victim,distance=..6] run particle block ice ~ ~ ~ 0.7 0.7 0.7 0 70 + execute at @e[type=#lib:living_without_player,tag=Victim,distance=..6] run playsound block.glass.break player @a ~ ~ ~ 0.7 1.7 + execute at @e[type=#lib:living_without_player,tag=Victim,distance=..6] run playsound entity.egg.throw player @a ~ ~ ~ 1 0.6 + execute at @e[type=#lib:living_without_player,tag=Victim,distance=..6] run playsound minecraft:entity.player.attack.crit player @a ~ ~ ~ 0.7 0.8 + +# 威力計算 + # 基礎ダメージ決定 + scoreboard players set $BaseDamage Temporary 100 + # ダメージ増加量決定 + scoreboard players set $MaxDamageBaf Temporary 300 + # 諸々準備 + scoreboard players set $value Temporary 600 + data modify storage api: Argument.ID set value 365 + function api:entity/mob/effect/get/from_id + # 使用時間取る + execute store result score $UseTime Temporary run data get storage api: Return.Effect.Field.Time + # 現在時間取る + execute store result score $NowTime Temporary run data get storage global Time + # 引き算して + scoreboard players operation $NowTime Temporary -= $UseTime Temporary + scoreboard players operation $value Temporary -= $NowTime Temporary + execute if score $value Temporary matches ..-1 run scoreboard players set $value Temporary 0 + # 威力決定 + scoreboard players operation $MaxDamageBaf Temporary *= $value Temporary + scoreboard players operation $MaxDamageBaf Temporary /= $600 Const + scoreboard players operation $BaseDamage Temporary += $MaxDamageBaf Temporary + +#対象に大ダメージ +# 引数を set + execute store result storage api: Argument.Damage float 1 run scoreboard players get $BaseDamage Temporary + data modify storage api: Argument.AttackType set value "Physical" + data modify storage api: Argument.ElementType set value "Water" +# 補正functionを実行 + function api:damage/modifier +# 実行(攻撃対象にダメージ) + execute as @e[type=#lib:living_without_player,tag=Victim,distance=..6] run function api:damage/ +# リセット + function api:damage/reset +# スコアリセット + scoreboard players reset $NowTime Temporary + scoreboard players reset $UseTime Temporary + scoreboard players reset $value Temporary + scoreboard players reset $MaxDamageBaf Temporary + scoreboard players reset $BaseDamage Temporary diff --git a/Asset/data/asset/functions/artifact/1461.ice_brand_arts_katana/give/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1461.ice_brand_arts_katana/give/1.trigger.mcfunction new file mode 100644 index 0000000000..483d4a7ac3 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1461.ice_brand_arts_katana/give/1.trigger.mcfunction @@ -0,0 +1,7 @@ +#> asset:artifact/1461.ice_brand_arts_katana/give/1.trigger +# +# 神器の取得処理の呼び出し時に実行されるfunction +# +# @within tag/function asset:artifact/give + +execute if data storage asset:context {id:1461} run function asset:artifact/1461.ice_brand_arts_katana/give/2.give \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1461.ice_brand_arts_katana/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/1461.ice_brand_arts_katana/give/2.give.mcfunction new file mode 100644 index 0000000000..a6bd6c83fd --- /dev/null +++ b/Asset/data/asset/functions/artifact/1461.ice_brand_arts_katana/give/2.give.mcfunction @@ -0,0 +1,68 @@ +#> asset:artifact/1461.ice_brand_arts_katana/give/2.give +# +# 神器の作成部 ここでID等を定義する +# +# @user +# @within function asset:artifact/1461.ice_brand_arts_katana/give/1.trigger + +# 神器の説明や消費MPなどをここで設定する。 +# 最後にasset:artifact/common/giveを実行することで入手可能。 + +# 神器のID (int) スプレッドシートの値を入れる + data modify storage asset:artifact ID set value 1461 +# 神器のベースアイテム + data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick" +# 神器の名前 (TextComponentString) + data modify storage asset:artifact Name set value '{"text":"アイスブランドアーツ(日本刀)","color":"#7DFFF2"}' +# 神器の説明文 (TextComponentString[]) + data modify storage asset:artifact Lore set value ['{"text":"アイスブランドアーツで生成した氷の日本刀","color":"white"}','{"text":"居合で正面の敵全体を巻き込む斬撃を行う","color":"white"}','{"text":"生成してから時間が経つほど威力が減衰する","color":"white"}'] +# 消費アイテム ({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 2 +# 神器を発動できるスロット (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,800] +# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.AttackType set value [Physical] +# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.ElementType set value [Water] +# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション) + # data modify storage asset:artifact AttackInfo.BypassResist set value +# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.IsRangeAttack set value 'every' +# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.AttackRange set value 5 +# MP消費量 (int) + data modify storage asset:artifact MPCost set value 40 +# 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 +# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableCooldownMessage set value +# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableMPMessage set value +# 破壊時の音を鳴らさないかどうか (boolean) (オプション) + # data modify storage asset:artifact DisableBreakSound set value +# 扱える神 (string[]) Wikiを参照 + data modify storage asset:artifact CanUsedGod set value "ALL" +# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション) + # data modify storage asset:artifact CustomNBT set value {} + +# 神器の入手用function + function asset:artifact/common/give diff --git a/Asset/data/asset/functions/artifact/1461.ice_brand_arts_katana/trigger/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1461.ice_brand_arts_katana/trigger/1.trigger.mcfunction new file mode 100644 index 0000000000..79e62d4c04 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1461.ice_brand_arts_katana/trigger/1.trigger.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/1461.ice_brand_arts_katana/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:1461} run function asset:artifact/1461.ice_brand_arts_katana/trigger/2.check_condition diff --git a/Asset/data/asset/functions/artifact/1461.ice_brand_arts_katana/trigger/2.check_condition.mcfunction b/Asset/data/asset/functions/artifact/1461.ice_brand_arts_katana/trigger/2.check_condition.mcfunction new file mode 100644 index 0000000000..48dd36d23f --- /dev/null +++ b/Asset/data/asset/functions/artifact/1461.ice_brand_arts_katana/trigger/2.check_condition.mcfunction @@ -0,0 +1,12 @@ +#> asset:artifact/1461.ice_brand_arts_katana/trigger/2.check_condition +# +# 神器の発動条件をチェックします +# +# @within function asset:artifact/1461.ice_brand_arts_katana/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/1461.ice_brand_arts_katana/trigger/3.main diff --git a/Asset/data/asset/functions/artifact/1461.ice_brand_arts_katana/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/1461.ice_brand_arts_katana/trigger/3.main.mcfunction new file mode 100644 index 0000000000..3f3bb6e2ee --- /dev/null +++ b/Asset/data/asset/functions/artifact/1461.ice_brand_arts_katana/trigger/3.main.mcfunction @@ -0,0 +1,70 @@ +#> asset:artifact/1461.ice_brand_arts_katana/trigger/3.main +# +# 神器のメイン処理部 +# +# @within function asset:artifact/1461.ice_brand_arts_katana/trigger/2.check_condition + +#> Private +# @private + #declare score_holder $UseTime + #declare score_holder $NowTime + #declare score_holder $value + #declare score_holder $MaxDamageBaf + #declare score_holder $BaseDamage + +# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う + function asset:artifact/common/use/mainhand + +# ターゲット指定 + tag @e[type=#lib:living_without_player,tag=!Uninterferable,distance=..5.5] add ICE_Hit + execute as @e[type=#lib:living_without_player,tag=ICE_Hit,tag=!Uninterferable,distance=..5.5] positioned ^ ^ ^-100 run tag @s[type=#lib:living_without_player,tag=ICE_Hit,tag=!Uninterferable,distance=..100] remove ICE_Hit + +# 攻撃時演出 + execute at @e[type=#lib:living_without_player,tag=ICE_Hit,tag=!Uninterferable,distance=..5.5] run particle block ice ~ ~ ~ 1 1 1 0 100 + playsound block.glass.break player @a ~ ~ ~ 0.7 1.2 + playsound item.trident.throw player @a ~ ~ ~ 1 1 + data modify storage api: Argument.ID set value 2001 + data modify storage api: Argument.FieldOverride set value {Color:2978760,Frames:[20335,20336,20337],Scale:[5f,5f,0.1f],Transformation:{left_rotation:[0.561f,-0.43f,0.43f,0.561f],right_rotation:[0f,0f,0f,1f],translation:[0f,0f,0f]}} + execute positioned ^ ^ ^1.5 positioned ~ ~0.7 ~ run function api:object/summon + # function asset:artifact/1461.ice_brand_arts_katana/trigger/slash + +# 威力計算 + # 基礎ダメージ決定 + scoreboard players set $BaseDamage Temporary 200 + # ダメージ増加量決定 + scoreboard players set $MaxDamageBaf Temporary 600 + # 諸々準備 + scoreboard players set $value Temporary 600 + data modify storage api: Argument.ID set value 365 + function api:entity/mob/effect/get/from_id + # 使用時間取る + execute store result score $UseTime Temporary run data get storage api: Return.Effect.Field.Time + # 現在時間取る + execute store result score $NowTime Temporary run data get storage global Time + # 引き算して + scoreboard players operation $NowTime Temporary -= $UseTime Temporary + scoreboard players operation $value Temporary -= $NowTime Temporary + execute if score $value Temporary matches ..-1 run scoreboard players set $value Temporary 0 + # 威力決定 + scoreboard players operation $MaxDamageBaf Temporary *= $value Temporary + scoreboard players operation $MaxDamageBaf Temporary /= $600 Const + scoreboard players operation $BaseDamage Temporary += $MaxDamageBaf Temporary + +#対象に大ダメージ +# 引数を set + execute store result storage api: Argument.Damage float 1 run scoreboard players get $BaseDamage Temporary + data modify storage api: Argument.AttackType set value "Physical" + data modify storage api: Argument.ElementType set value "Water" +# 補正functionを実行 + function api:damage/modifier +# 実行(攻撃対象にダメージ) + execute as @e[type=#lib:living_without_player,tag=ICE_Hit,tag=!Uninterferable,distance=..5.5] run function api:damage/ +# リセット + function api:damage/reset + tag @e[type=#lib:living_without_player,tag=ICE_Hit,tag=!Uninterferable,distance=..5.5] remove ICE_Hit +# スコアリセット + scoreboard players reset $NowTime Temporary + scoreboard players reset $UseTime Temporary + scoreboard players reset $value Temporary + scoreboard players reset $MaxDamageBaf Temporary + scoreboard players reset $BaseDamage Temporary diff --git a/Asset/data/asset/functions/artifact/1461.ice_brand_arts_katana/trigger/_index.d.mcfunction b/Asset/data/asset/functions/artifact/1461.ice_brand_arts_katana/trigger/_index.d.mcfunction new file mode 100644 index 0000000000..f36f39ef1c --- /dev/null +++ b/Asset/data/asset/functions/artifact/1461.ice_brand_arts_katana/trigger/_index.d.mcfunction @@ -0,0 +1,6 @@ +#> asset:artifact/1461.ice_brand_arts_katana/trigger/_index.d +# @private + +#> tag +# @within function asset:artifact/1461.ice_brand_arts_katana/trigger/** + #declare tag ICE_Hit diff --git a/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/give/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/give/1.trigger.mcfunction new file mode 100644 index 0000000000..cb271bb2c6 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/give/1.trigger.mcfunction @@ -0,0 +1,7 @@ +#> asset:artifact/1462.ice_brand_arts_spear/give/1.trigger +# +# 神器の取得処理の呼び出し時に実行されるfunction +# +# @within tag/function asset:artifact/give + +execute if data storage asset:context {id:1462} run function asset:artifact/1462.ice_brand_arts_spear/give/2.give \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/give/2.give.mcfunction new file mode 100644 index 0000000000..216a0a2b9e --- /dev/null +++ b/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/give/2.give.mcfunction @@ -0,0 +1,68 @@ +#> asset:artifact/1462.ice_brand_arts_spear/give/2.give +# +# 神器の作成部 ここでID等を定義する +# +# @user +# @within function asset:artifact/1462.ice_brand_arts_spear/give/1.trigger + +# 神器の説明や消費MPなどをここで設定する。 +# 最後にasset:artifact/common/giveを実行することで入手可能。 + +# 神器のID (int) スプレッドシートの値を入れる + data modify storage asset:artifact ID set value 1462 +# 神器のベースアイテム + data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick" +# 神器の名前 (TextComponentString) + data modify storage asset:artifact Name set value '{"text":"アイスブランドアーツ(槍)","color":"#7DFFF2"}' +# 神器の説明文 (TextComponentString[]) + data modify storage asset:artifact Lore set value ['{"text":"アイスブランドアーツで生成した氷の槍","color":"white"}','{"text":"長射程の突きで正面の敵全体を貫く","color":"white"}','{"text":"生成してから時間が経つほど威力が減衰する","color":"white"}'] +# 消費アイテム ({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 2 +# 神器を発動できるスロット (string) Wikiを参照 + data modify storage asset:artifact Slot set value "auto" +# 神器のトリガー (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,800] +# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.AttackType set value [Physical] +# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.ElementType set value [Water] +# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション) + # data modify storage asset:artifact AttackInfo.BypassResist set value +# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.IsRangeAttack set value "every" +# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.AttackRange set value 10 +# MP消費量 (int) + data modify storage asset:artifact MPCost set value 40 +# 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 +# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableCooldownMessage set value +# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableMPMessage set value +# 破壊時の音を鳴らさないかどうか (boolean) (オプション) + # data modify storage asset:artifact DisableBreakSound set value +# 扱える神 (string[]) Wikiを参照 + data modify storage asset:artifact CanUsedGod set value "ALL" +# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション) + # data modify storage asset:artifact CustomNBT set value {} + +# 神器の入手用function + function asset:artifact/common/give diff --git a/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/trigger/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/trigger/1.trigger.mcfunction new file mode 100644 index 0000000000..f685892fc6 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/trigger/1.trigger.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/1462.ice_brand_arts_spear/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:1462} run function asset:artifact/1462.ice_brand_arts_spear/trigger/2.check_condition diff --git a/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/trigger/2.check_condition.mcfunction b/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/trigger/2.check_condition.mcfunction new file mode 100644 index 0000000000..af7da77d74 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/trigger/2.check_condition.mcfunction @@ -0,0 +1,12 @@ +#> asset:artifact/1462.ice_brand_arts_spear/trigger/2.check_condition +# +# 神器の発動条件をチェックします +# +# @within function asset:artifact/1462.ice_brand_arts_spear/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/1462.ice_brand_arts_spear/trigger/3.main diff --git a/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/trigger/3.main.mcfunction new file mode 100644 index 0000000000..10e073de6b --- /dev/null +++ b/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/trigger/3.main.mcfunction @@ -0,0 +1,79 @@ +#> asset:artifact/1462.ice_brand_arts_spear/trigger/3.main +# +# 神器のメイン処理部 +# +# @within function asset:artifact/1462.ice_brand_arts_spear/trigger/2.check_condition + +#> Private +# @private + #declare tag ICE_Hit + #declare score_holder $UseTime + #declare score_holder $NowTime + #declare score_holder $value + #declare score_holder $MaxDamageBaf + #declare score_holder $BaseDamage + + +# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う + function asset:artifact/common/use/mainhand + +# ターゲット指定 + execute at @s positioned ^ ^ ^1 run tag @e[type=#lib:living_without_player,tag=!Uninterferable,distance=..2] add ICE_Hit + execute at @s positioned ^ ^ ^2 run tag @e[type=#lib:living_without_player,tag=!Uninterferable,distance=..2] add ICE_Hit + execute at @s positioned ^ ^ ^3 run tag @e[type=#lib:living_without_player,tag=!Uninterferable,distance=..2] add ICE_Hit + execute at @s positioned ^ ^ ^4 run tag @e[type=#lib:living_without_player,tag=!Uninterferable,distance=..2] add ICE_Hit + execute at @s positioned ^ ^ ^5 run tag @e[type=#lib:living_without_player,tag=!Uninterferable,distance=..2] add ICE_Hit + execute at @s positioned ^ ^ ^6 run tag @e[type=#lib:living_without_player,tag=!Uninterferable,distance=..2] add ICE_Hit + execute at @s positioned ^ ^ ^7 run tag @e[type=#lib:living_without_player,tag=!Uninterferable,distance=..2] add ICE_Hit + execute at @s positioned ^ ^ ^8 run tag @e[type=#lib:living_without_player,tag=!Uninterferable,distance=..2] add ICE_Hit + execute at @s positioned ^ ^ ^9 run tag @e[type=#lib:living_without_player,tag=!Uninterferable,distance=..2] add ICE_Hit + execute at @s positioned ^ ^ ^10 run tag @e[type=#lib:living_without_player,tag=!Uninterferable,distance=..2] add ICE_Hit + +# 攻撃時演出 + execute at @e[type=#lib:living_without_player,tag=ICE_Hit,tag=!Uninterferable,distance=..10.5] run particle block ice ~ ~ ~ 1 1 1 0 100 + playsound block.glass.break player @a ~ ~ ~ 0.7 1.2 + playsound item.trident.riptide_1 player @a ~ ~ ~ 0.4 1.4 + playsound item.trident.throw player @a ~ ~ ~ 1 1 + execute at @s anchored eyes run function asset:artifact/1462.ice_brand_arts_spear/trigger/yari + +# 威力計算 + # 基礎ダメージ決定 + scoreboard players set $BaseDamage Temporary 200 + # ダメージ増加量決定 + scoreboard players set $MaxDamageBaf Temporary 600 + # 諸々準備 + scoreboard players set $value Temporary 600 + data modify storage api: Argument.ID set value 365 + function api:entity/mob/effect/get/from_id + # 使用時間取る + execute store result score $UseTime Temporary run data get storage api: Return.Effect.Field.Time + # 現在時間取る + execute store result score $NowTime Temporary run data get storage global Time + # 引き算して + scoreboard players operation $NowTime Temporary -= $UseTime Temporary + scoreboard players operation $value Temporary -= $NowTime Temporary + execute if score $value Temporary matches ..-1 run scoreboard players set $value Temporary 0 + # 威力決定 + scoreboard players operation $MaxDamageBaf Temporary *= $value Temporary + scoreboard players operation $MaxDamageBaf Temporary /= $600 Const + scoreboard players operation $BaseDamage Temporary += $MaxDamageBaf Temporary + +#対象に大ダメージ +# 引数を set + execute store result storage api: Argument.Damage float 1 run scoreboard players get $BaseDamage Temporary + data modify storage api: Argument.AttackType set value "Physical" + data modify storage api: Argument.ElementType set value "Water" +# 補正functionを実行 + function api:damage/modifier +# 実行(攻撃対象にダメージ) + execute as @e[type=#lib:living_without_player,tag=ICE_Hit,tag=!Uninterferable,distance=..10.5] run function api:damage/ +# リセット + function api:damage/reset + tag @e[type=#lib:living_without_player,tag=ICE_Hit,tag=!Uninterferable,distance=..12.5] remove ICE_Hit + +# スコアリセット + scoreboard players reset $NowTime Temporary + scoreboard players reset $UseTime Temporary + scoreboard players reset $value Temporary + scoreboard players reset $MaxDamageBaf Temporary + scoreboard players reset $BaseDamage Temporary diff --git a/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/trigger/_index.d.mcfunction b/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/trigger/_index.d.mcfunction new file mode 100644 index 0000000000..00840b4f7e --- /dev/null +++ b/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/trigger/_index.d.mcfunction @@ -0,0 +1,6 @@ +#> asset:artifact/1462.ice_brand_arts_spear/trigger/_index.d +# @private + +#> tag +# @within function asset:artifact/1462.ice_brand_arts_spear/trigger/** + #declare tag ICE_Hit diff --git a/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/trigger/yari.mcfunction b/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/trigger/yari.mcfunction new file mode 100644 index 0000000000..4f287a8c1e --- /dev/null +++ b/Asset/data/asset/functions/artifact/1462.ice_brand_arts_spear/trigger/yari.mcfunction @@ -0,0 +1,51 @@ +#> asset:artifact/1462.ice_brand_arts_spear/trigger/yari +# +# 神器のメイン処理部 +# +# @within function asset:artifact/1462.ice_brand_arts_spear/trigger/3.main + +#根元部分(手元付近は魔力が力強く荒ぶる) + execute positioned ^ ^ ^1.0 run particle minecraft:dust 0.45 0.70 0.95 1.0 ~ ~ ~ 0.02 0.02 0.02 0 3 + execute positioned ^ ^ ^1.0 run particle minecraft:dust 0.18 0.45 0.78 1.2 ~ ~ ~ 0.20 0.20 0.20 0 10 + execute positioned ^ ^ ^1.5 run particle minecraft:dust 0.45 0.70 0.95 1.0 ~ ~ ~ 0.02 0.02 0.02 0 3 + execute positioned ^ ^ ^1.5 run particle minecraft:dust 0.18 0.45 0.78 1.1 ~ ~ ~ 0.18 0.18 0.18 0 10 + execute positioned ^ ^ ^2.0 run particle minecraft:dust 0.45 0.70 0.95 0.9 ~ ~ ~ 0.02 0.02 0.02 0 3 + execute positioned ^ ^ ^2.0 run particle minecraft:dust 0.18 0.45 0.78 1.0 ~ ~ ~ 0.16 0.16 0.16 0 10 + execute positioned ^ ^ ^2.5 run particle minecraft:dust 0.45 0.70 0.95 0.9 ~ ~ ~ 0.02 0.02 0.02 0 3 + execute positioned ^ ^ ^2.5 run particle minecraft:dust 0.18 0.45 0.78 1.0 ~ ~ ~ 0.14 0.14 0.14 0 10 + execute positioned ^ ^ ^3.0 run particle minecraft:dust 0.45 0.70 0.95 0.8 ~ ~ ~ 0.02 0.02 0.02 0 3 + execute positioned ^ ^ ^3.0 run particle minecraft:dust 0.18 0.45 0.78 0.9 ~ ~ ~ 0.12 0.12 0.12 0 8 + +#中間部分(拡散範囲を徐々に狭めて一本の線にしていく) + execute positioned ^ ^ ^3.5 run particle minecraft:dust 0.45 0.70 0.95 0.8 ~ ~ ~ 0.02 0.02 0.02 0 3 + execute positioned ^ ^ ^3.5 run particle minecraft:dust 0.18 0.45 0.78 0.8 ~ ~ ~ 0.10 0.10 0.10 0 8 + execute positioned ^ ^ ^4.0 run particle minecraft:dust 0.45 0.70 0.95 0.7 ~ ~ ~ 0.02 0.02 0.02 0 3 + execute positioned ^ ^ ^4.0 run particle minecraft:dust 0.18 0.45 0.78 0.7 ~ ~ ~ 0.08 0.08 0.08 0 8 + execute positioned ^ ^ ^4.5 run particle minecraft:dust 0.45 0.70 0.95 0.7 ~ ~ ~ 0.01 0.01 0.01 0 3 + execute positioned ^ ^ ^4.5 run particle minecraft:dust 0.18 0.45 0.78 0.7 ~ ~ ~ 0.07 0.07 0.07 0 8 + execute positioned ^ ^ ^5.0 run particle minecraft:dust 0.45 0.70 0.95 0.7 ~ ~ ~ 0.01 0.01 0.01 0 3 + execute positioned ^ ^ ^5.0 run particle minecraft:dust 0.18 0.45 0.78 0.6 ~ ~ ~ 0.06 0.06 0.06 0 6 + execute positioned ^ ^ ^5.5 run particle minecraft:dust 0.45 0.70 0.95 0.6 ~ ~ ~ 0.01 0.01 0.01 0 3 + execute positioned ^ ^ ^5.5 run particle minecraft:dust 0.18 0.45 0.78 0.6 ~ ~ ~ 0.05 0.05 0.05 0 6 + execute positioned ^ ^ ^6.0 run particle minecraft:dust 0.45 0.70 0.95 0.6 ~ ~ ~ 0.01 0.01 0.01 0 3 + execute positioned ^ ^ ^6.0 run particle minecraft:dust 0.18 0.45 0.78 0.5 ~ ~ ~ 0.04 0.04 0.04 0 6 + execute positioned ^ ^ ^6.5 run particle minecraft:dust 0.45 0.70 0.95 0.5 ~ ~ ~ 0.01 0.01 0.01 0 3 + execute positioned ^ ^ ^6.5 run particle minecraft:dust 0.18 0.45 0.78 0.5 ~ ~ ~ 0.035 0.035 0.035 0 6 + +#先端部分(サイズは0.4以上をキープしつつ発生数を増やして寿命を長く見せる) + execute positioned ^ ^ ^7.0 run particle minecraft:dust 0.45 0.70 0.95 0.5 ~ ~ ~ 0.01 0.01 0.01 0 5 + execute positioned ^ ^ ^7.0 run particle minecraft:dust 0.18 0.45 0.78 0.5 ~ ~ ~ 0.03 0.03 0.03 0 6 + execute positioned ^ ^ ^7.5 run particle minecraft:dust 0.45 0.70 0.95 0.5 ~ ~ ~ 0.01 0.01 0.01 0 5 + execute positioned ^ ^ ^7.5 run particle minecraft:dust 0.18 0.45 0.78 0.5 ~ ~ ~ 0.025 0.025 0.025 0 6 + execute positioned ^ ^ ^8.0 run particle minecraft:dust 0.45 0.70 0.95 0.5 ~ ~ ~ 0.01 0.01 0.01 0 5 + execute positioned ^ ^ ^8.0 run particle minecraft:dust 0.18 0.45 0.78 0.5 ~ ~ ~ 0.02 0.02 0.02 0 6 + execute positioned ^ ^ ^8.5 run particle minecraft:dust 0.45 0.70 0.95 0.4 ~ ~ ~ 0.0 0.0 0.0 0 5 + execute positioned ^ ^ ^8.5 run particle minecraft:dust 0.18 0.45 0.78 0.4 ~ ~ ~ 0.015 0.015 0.015 0 6 + execute positioned ^ ^ ^9.0 run particle minecraft:dust 0.45 0.70 0.95 0.4 ~ ~ ~ 0.0 0.0 0.0 0 6 + execute positioned ^ ^ ^9.0 run particle minecraft:dust 0.18 0.45 0.78 0.4 ~ ~ ~ 0.01 0.01 0.01 0 6 + execute positioned ^ ^ ^9.5 run particle minecraft:dust 0.45 0.70 0.95 0.4 ~ ~ ~ 0.0 0.0 0.0 0 6 + execute positioned ^ ^ ^9.5 run particle minecraft:dust 0.18 0.45 0.78 0.4 ~ ~ ~ 0.005 0.005 0.005 0 6 + +#最も鋭い先端部分(広がりを0にし、まとまったパーティクルを多めに配置して存在感を出す) + execute positioned ^ ^ ^10.0 run particle minecraft:dust 0.45 0.70 0.95 0.4 ~ ~ ~ 0.0 0.0 0.0 0 8 + execute positioned ^ ^ ^10.0 run particle minecraft:dust 0.18 0.45 0.78 0.4 ~ ~ ~ 0.0 0.0 0.0 0 8 diff --git a/Asset/data/asset/functions/effect/0365.icicle_line/_/end.mcfunction b/Asset/data/asset/functions/effect/0365.icicle_line/_/end.mcfunction new file mode 100644 index 0000000000..9ef810e2fa --- /dev/null +++ b/Asset/data/asset/functions/effect/0365.icicle_line/_/end.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/0365.icicle_line/_/end +# +# Effectの効果の終了時に実行されるfunction +# +# @within tag/function asset:effect/end + +execute if data storage asset:context {id:365} run function asset:effect/0365.icicle_line/end/ diff --git a/Asset/data/asset/functions/effect/0365.icicle_line/_/given.mcfunction b/Asset/data/asset/functions/effect/0365.icicle_line/_/given.mcfunction new file mode 100644 index 0000000000..5c8e7e50ed --- /dev/null +++ b/Asset/data/asset/functions/effect/0365.icicle_line/_/given.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/0365.icicle_line/_/given +# +# Effectが付与された時に実行されるfunction +# +# @within tag/function asset:effect/given + +execute if data storage asset:context {id:365} run function asset:effect/0365.icicle_line/given/ diff --git a/Asset/data/asset/functions/effect/0365.icicle_line/_/re-given.mcfunction b/Asset/data/asset/functions/effect/0365.icicle_line/_/re-given.mcfunction new file mode 100644 index 0000000000..dbe80e7737 --- /dev/null +++ b/Asset/data/asset/functions/effect/0365.icicle_line/_/re-given.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/0365.icicle_line/_/re-given +# +# Effectが上書きされた時に実行されるfunction +# +# @within tag/function asset:effect/re-given + +execute if data storage asset:context {id:365} run function asset:effect/0365.icicle_line/re-given/ diff --git a/Asset/data/asset/functions/effect/0365.icicle_line/_/register.mcfunction b/Asset/data/asset/functions/effect/0365.icicle_line/_/register.mcfunction new file mode 100644 index 0000000000..f8105e035f --- /dev/null +++ b/Asset/data/asset/functions/effect/0365.icicle_line/_/register.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/0365.icicle_line/_/register +# +# +# +# @within tag/function asset:effect/register + +execute if data storage asset:context {id:365} run function asset:effect/0365.icicle_line/register diff --git a/Asset/data/asset/functions/effect/0365.icicle_line/_/remove.mcfunction b/Asset/data/asset/functions/effect/0365.icicle_line/_/remove.mcfunction new file mode 100644 index 0000000000..d9dd713c08 --- /dev/null +++ b/Asset/data/asset/functions/effect/0365.icicle_line/_/remove.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/0365.icicle_line/_/remove +# +# Effectが神器や牛乳によって削除された時に実行されるfunction +# +# @within tag/function asset:effect/remove + +execute if data storage asset:context {id:365} run function asset:effect/0365.icicle_line/remove/ diff --git a/Asset/data/asset/functions/effect/0365.icicle_line/end/.mcfunction b/Asset/data/asset/functions/effect/0365.icicle_line/end/.mcfunction new file mode 100644 index 0000000000..3f971a5989 --- /dev/null +++ b/Asset/data/asset/functions/effect/0365.icicle_line/end/.mcfunction @@ -0,0 +1,5 @@ +#> asset:effect/0365.icicle_line/end/ +# +# Effectの効果が切れた時の処理 +# +# @within function asset:effect/0365.icicle_line/_/end diff --git a/Asset/data/asset/functions/effect/0365.icicle_line/given/.mcfunction b/Asset/data/asset/functions/effect/0365.icicle_line/given/.mcfunction new file mode 100644 index 0000000000..6623c025d7 --- /dev/null +++ b/Asset/data/asset/functions/effect/0365.icicle_line/given/.mcfunction @@ -0,0 +1,8 @@ +#> asset:effect/0365.icicle_line/given/ +# +# Effectが付与された時の処理 +# +# @within function asset:effect/0365.icicle_line/_/given + +#particle + particle snowflake ~ ~ ~ 1 1 1 0 30 diff --git a/Asset/data/asset/functions/effect/0365.icicle_line/re-given/.mcfunction b/Asset/data/asset/functions/effect/0365.icicle_line/re-given/.mcfunction new file mode 100644 index 0000000000..cd2a8eb5f5 --- /dev/null +++ b/Asset/data/asset/functions/effect/0365.icicle_line/re-given/.mcfunction @@ -0,0 +1,5 @@ +#> asset:effect/0365.icicle_line/re-given/ +# +# Effectが上書きされた時の処理 +# +# @within function asset:effect/0365.icicle_line/_/re-given diff --git a/Asset/data/asset/functions/effect/0365.icicle_line/register.mcfunction b/Asset/data/asset/functions/effect/0365.icicle_line/register.mcfunction new file mode 100644 index 0000000000..75897c5426 --- /dev/null +++ b/Asset/data/asset/functions/effect/0365.icicle_line/register.mcfunction @@ -0,0 +1,39 @@ +#> asset:effect/0365.icicle_line/register +# +# Effectのデータを指定 +# +# @within function asset:effect/0365.icicle_line/_/register + +# ExtendsSafe (boolean) (default = false) + # data modify storage asset:effect ExtendsSafe set value true +# ID (int) + data modify storage asset:effect ID set value 365 +# 名前 (TextComponentString) + data modify storage asset:effect Name set value '{"text":"アイシクルライン","color":"#7DFFF2"}' +# 説明文 (TextComponentString[]) + data modify storage asset:effect Description set value ['{"text":"アイスブランドアーツの使用時に付与される","color":"white"}','{"text":"生成した神器に魔力を供給し、威力を一時的に強化する","color":"white"}'] +# 効果時間 (int) (default = API || error) + #data modify storage asset:effect Duration set value 400 +# スタック (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 +# 最大スタック (int) (default = 2147483647) + # data modify storage asset:effect MaxStack set value +# 悪い効果か否か (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 true +# エフェクトのスタックををUIに表示するか (boolean) (default = true) + data modify storage asset:effect StackVisible set value false + +# フィールド + # data modify storage asset:effect Field set value {} diff --git a/Asset/data/asset/functions/effect/0365.icicle_line/remove/.mcfunction b/Asset/data/asset/functions/effect/0365.icicle_line/remove/.mcfunction new file mode 100644 index 0000000000..04d485857b --- /dev/null +++ b/Asset/data/asset/functions/effect/0365.icicle_line/remove/.mcfunction @@ -0,0 +1,5 @@ +#> asset:effect/0365.icicle_line/remove/ +# +# Effectが削除された時の処理 +# +# @within function asset:effect/0365.icicle_line/_/remove diff --git a/Asset/data/asset/functions/object/1161.ice_brand_arts/load.mcfunction b/Asset/data/asset/functions/object/1161.ice_brand_arts/load.mcfunction new file mode 100644 index 0000000000..d8d71e5efc --- /dev/null +++ b/Asset/data/asset/functions/object/1161.ice_brand_arts/load.mcfunction @@ -0,0 +1,17 @@ +#> asset:object/1161.ice_brand_arts/load +# +# Objectに利用するスコアボード等の初期化処理 +# +# @within tag/function asset:object/load + +#> 定義類はここに +# @within function asset:object/1161.ice_brand_arts/** + #declare tag W9.Land + #declare tag Weapon_0 + #declare tag Weapon_1 + #declare tag Weapon_2 + #declare tag Weapon_3 + #declare tag Weapon_4 + #declare tag Weapon_5 + scoreboard objectives add 1161.Land dummy + scoreboard objectives add 1161.Kind dummy diff --git a/Asset/data/asset/functions/object/1161.ice_brand_arts/pick/.mcfunction b/Asset/data/asset/functions/object/1161.ice_brand_arts/pick/.mcfunction new file mode 100644 index 0000000000..0d71b4f77f --- /dev/null +++ b/Asset/data/asset/functions/object/1161.ice_brand_arts/pick/.mcfunction @@ -0,0 +1,16 @@ +#> asset:object/1161.ice_brand_arts/tick/ +# +# +# +# @within function asset:object/1161.ice_brand_arts/tick/ + + + execute if entity @s[tag=Weapon_0] on target run data modify storage api: Argument.ID set value 1457 + execute if entity @s[tag=Weapon_1] on target run data modify storage api: Argument.ID set value 1458 + execute if entity @s[tag=Weapon_2] on target run data modify storage api: Argument.ID set value 1459 + execute if entity @s[tag=Weapon_3] on target run data modify storage api: Argument.ID set value 1460 + execute if entity @s[tag=Weapon_4] on target run data modify storage api: Argument.ID set value 1461 + execute if entity @s[tag=Weapon_5] on target run data modify storage api: Argument.ID set value 1462 + execute on target run function api:artifact/give/from_id + execute on target at @s run playsound item.trident.hit player @a ~ ~ ~ 1 1.5 + execute on vehicle run kill @s diff --git a/Asset/data/asset/functions/object/1161.ice_brand_arts/register.mcfunction b/Asset/data/asset/functions/object/1161.ice_brand_arts/register.mcfunction new file mode 100644 index 0000000000..12429db148 --- /dev/null +++ b/Asset/data/asset/functions/object/1161.ice_brand_arts/register.mcfunction @@ -0,0 +1,20 @@ +#> asset:object/1161.ice_brand_arts/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/1161/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 true + +# ID (int) + data modify storage asset:object ID set value 1161 +# フィールド(オプション) + # data modify storage asset:object Field.myValue set value diff --git a/Asset/data/asset/functions/object/1161.ice_brand_arts/summon/.mcfunction b/Asset/data/asset/functions/object/1161.ice_brand_arts/summon/.mcfunction new file mode 100644 index 0000000000..6cf0788c55 --- /dev/null +++ b/Asset/data/asset/functions/object/1161.ice_brand_arts/summon/.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/1161.ice_brand_arts/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/1161/summon + +# 元となるEntityを召喚する + + function asset:object/1161.ice_brand_arts/summon/m with storage api: Argument.FieldOverride diff --git a/Asset/data/asset/functions/object/1161.ice_brand_arts/summon/m.mcfunction b/Asset/data/asset/functions/object/1161.ice_brand_arts/summon/m.mcfunction new file mode 100644 index 0000000000..e3b00e0bc1 --- /dev/null +++ b/Asset/data/asset/functions/object/1161.ice_brand_arts/summon/m.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/1161.ice_brand_arts/summon/m +# +# +# +# @within function asset:object/1161.ice_brand_arts/summon/ + + +# 召喚 +$summon item_display ~ ~ ~ {NoGravity:0b,view_range:100f,teleport_duration:2,Tags:["ObjectInit"],Passengers:[{id:"minecraft:interaction",width:1f,height:2f,Tags:["AutoKillWhenDieVehicle","ProcessCommonTag","Weapon_$(Weapon)"]}],transformation:{left_rotation:$(Rotation),right_rotation:[$(Yaw)f,$(Pitch)f,2.5f,1f],translation:[0f,0.6f,0f],scale:[0.2f,0.2f,0.2f]},item:{id:"$(Id)",Count:1b,tag:{CustomModelData:$(Model)}}} diff --git a/Asset/data/asset/functions/object/1161.ice_brand_arts/tick/.mcfunction b/Asset/data/asset/functions/object/1161.ice_brand_arts/tick/.mcfunction new file mode 100644 index 0000000000..7c626a3d50 --- /dev/null +++ b/Asset/data/asset/functions/object/1161.ice_brand_arts/tick/.mcfunction @@ -0,0 +1,16 @@ +#> asset:object/1161.ice_brand_arts/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/1161/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + execute on passengers if data entity @s interaction run function asset:object/1161.ice_brand_arts/pick/ + +# 落下処理 + + execute if score @s General.Object.Tick matches 10.. unless entity @s[tag=W9.Land] at @s run function asset:object/1161.ice_brand_arts/tick/fall + +# 消滅処理 + execute at @s[scores={General.Object.Tick=600..}] run function asset:object/1161.ice_brand_arts/tick/kill diff --git a/Asset/data/asset/functions/object/1161.ice_brand_arts/tick/fall.mcfunction b/Asset/data/asset/functions/object/1161.ice_brand_arts/tick/fall.mcfunction new file mode 100644 index 0000000000..09a1997fb1 --- /dev/null +++ b/Asset/data/asset/functions/object/1161.ice_brand_arts/tick/fall.mcfunction @@ -0,0 +1,15 @@ +#> asset:object/1161.ice_brand_arts/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/1161/tick + + +#落下処理 + execute if block ~ ~-0.5 ~ #lib:no_collision/ run tp @s ~ ~-0.5 ~ + execute if block ~ ~-0.5 ~ #lib:no_collision/ run tp @s ~ ~-0.5 ~ + particle minecraft:dust 0.6 0.8 1.0 1.5 ~ ~ ~ + execute unless block ~ ~-0.5 ~ #lib:no_collision/ run particle block dirt ~ ~ ~ 1 1 1 0 20 + execute unless block ~ ~-0.5 ~ #lib:no_collision/ run playsound item.trident.hit_ground player @a ~ ~ ~ 1 2 + execute unless block ~ ~-0.5 ~ #lib:no_collision/ run tag @s add W9.Land + # execute if score @s 1161.Land matches 0 at @s run function asset:object/1161.ice_brand_arts/tick/fall diff --git a/Asset/data/asset/functions/object/1161.ice_brand_arts/tick/kill.mcfunction b/Asset/data/asset/functions/object/1161.ice_brand_arts/tick/kill.mcfunction new file mode 100644 index 0000000000..135830e10a --- /dev/null +++ b/Asset/data/asset/functions/object/1161.ice_brand_arts/tick/kill.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/1161.ice_brand_arts/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/1161/tick + +# 消滅処理 + particle block packed_ice ~ ~ ~ 0.8 0.8 0.8 0 30 + playsound block.glass.break player @a ~ ~ ~ 1 1.4 + kill @s diff --git a/Asset/data/asset/functions/object/alias/1161/register.mcfunction b/Asset/data/asset/functions/object/alias/1161/register.mcfunction new file mode 100644 index 0000000000..661f2c47b3 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1161/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1161/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/1161.ice_brand_arts/register diff --git a/Asset/data/asset/functions/object/alias/1161/summon.mcfunction b/Asset/data/asset/functions/object/alias/1161/summon.mcfunction new file mode 100644 index 0000000000..5e2a1b4aa1 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1161/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1161/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/1161.ice_brand_arts/summon/ diff --git a/Asset/data/asset/functions/object/alias/1161/tick.mcfunction b/Asset/data/asset/functions/object/alias/1161/tick.mcfunction new file mode 100644 index 0000000000..6a62415f62 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1161/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1161/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/1161.ice_brand_arts/tick/ diff --git a/Asset/data/asset/tags/functions/artifact/attack/melee.json b/Asset/data/asset/tags/functions/artifact/attack/melee.json index befbe3d3d1..2ebbd75309 100644 --- a/Asset/data/asset/tags/functions/artifact/attack/melee.json +++ b/Asset/data/asset/tags/functions/artifact/attack/melee.json @@ -1,5 +1,9 @@ { "values": [ + "asset:artifact/1460.ice_brand_arts_tonfa/trigger/1.trigger", + "asset:artifact/1459.ice_brand_arts_sword/trigger/1.trigger", + "asset:artifact/1457.ice_brand_arts_axe/trigger/1.trigger", + "asset:artifact/1458.ice_brand_arts_hammer/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 +77,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/click.carrot_on_a_stick.json b/Asset/data/asset/tags/functions/artifact/click.carrot_on_a_stick.json index 8b0fecd8b5..56d26faff3 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,8 @@ { "values": [ + "asset:artifact/1462.ice_brand_arts_spear/trigger/1.trigger", + "asset:artifact/1461.ice_brand_arts_katana/trigger/1.trigger", + "asset:artifact/1456.ice_brand_arts/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 +180,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 f8f86c672d..5a1028e428 100644 --- a/Asset/data/asset/tags/functions/artifact/give.json +++ b/Asset/data/asset/tags/functions/artifact/give.json @@ -1,5 +1,12 @@ { "values": [ + "asset:artifact/1462.ice_brand_arts_spear/give/1.trigger", + "asset:artifact/1461.ice_brand_arts_katana/give/1.trigger", + "asset:artifact/1460.ice_brand_arts_tonfa/give/1.trigger", + "asset:artifact/1459.ice_brand_arts_sword/give/1.trigger", + "asset:artifact/1457.ice_brand_arts_axe/give/1.trigger", + "asset:artifact/1458.ice_brand_arts_hammer/give/1.trigger", + "asset:artifact/1456.ice_brand_arts/give/1.trigger", "asset:artifact/1409.mana_charm/give/1.trigger", "asset:artifact/1327.lunatic_torch/give/1.trigger", "asset:artifact/1332.bebebeam/give/1.trigger", @@ -533,4 +540,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 bb157c2708..68cec456ba 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/1456.ice_brand_arts/register", "asset:artifact/1409.mana_charm/register", "asset:artifact/1327.lunatic_torch/register", "asset:artifact/1332.bebebeam/register", @@ -311,4 +312,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/effect/end.json b/Asset/data/asset/tags/functions/effect/end.json index f2adb3b1fe..f4b1208dcd 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/0365.icicle_line/_/end", "asset:effect/0356.dolphin_blessing/_/end", "asset:effect/0302.safety_check_complete/_/end", "asset:effect/0346.lunatic_time/_/end", diff --git a/Asset/data/asset/tags/functions/effect/given.json b/Asset/data/asset/tags/functions/effect/given.json index 83c1f83390..6dc0642902 100644 --- a/Asset/data/asset/tags/functions/effect/given.json +++ b/Asset/data/asset/tags/functions/effect/given.json @@ -1,5 +1,6 @@ { "values": [ + "asset:effect/0365.icicle_line/_/given", "asset:effect/0302.safety_check_complete/_/given", "asset:effect/0346.lunatic_time/_/given", "asset:effect/0352.kitsunebi/_/given", diff --git a/Asset/data/asset/tags/functions/effect/re-given.json b/Asset/data/asset/tags/functions/effect/re-given.json index d3650bf09a..42685270d3 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/0365.icicle_line/_/re-given", "asset:effect/0352.kitsunebi/_/re-given", "asset:effect/0345.topaz_protection/_/re-given", "asset:effect/0029.poison/_/re-given", diff --git a/Asset/data/asset/tags/functions/effect/register.json b/Asset/data/asset/tags/functions/effect/register.json index 7fd6eb28a7..b1b19d0e0a 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/0365.icicle_line/_/register", "asset:effect/0356.dolphin_blessing/_/register", "asset:effect/0302.safety_check_complete/_/register", "asset:effect/0346.lunatic_time/_/register", diff --git a/Asset/data/asset/tags/functions/effect/remove.json b/Asset/data/asset/tags/functions/effect/remove.json index f502b52237..4bc3f9c959 100644 --- a/Asset/data/asset/tags/functions/effect/remove.json +++ b/Asset/data/asset/tags/functions/effect/remove.json @@ -1,5 +1,6 @@ { "values": [ + "asset:effect/0365.icicle_line/_/remove", "asset:effect/0356.dolphin_blessing/_/remove", "asset:effect/0302.safety_check_complete/_/remove", "asset:effect/0346.lunatic_time/_/remove", diff --git a/Asset/data/asset/tags/functions/object/load.json b/Asset/data/asset/tags/functions/object/load.json index 370cd7f01b..7637aa4fbb 100644 --- a/Asset/data/asset/tags/functions/object/load.json +++ b/Asset/data/asset/tags/functions/object/load.json @@ -1,5 +1,6 @@ { "values": [ + "asset:object/1161.ice_brand_arts/load", "asset:object/1061.azure_jelly/load", "asset:object/2251.wall_laser_clock/load", "asset:object/2212.eclael_upper_shot/load",