Skip to content
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#> asset:artifact/1360.vintage_wine/give/1.trigger
#
# 神器の取得処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:artifact/give

execute if data storage asset:context {id:1360} run function asset:artifact/1360.vintage_wine/give/2.give
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#> asset:artifact/1360.vintage_wine/give/2.give
#
# 神器の作成部 ここでID等を定義する
#
# @user
# @within function asset:artifact/1360.vintage_wine/give/1.trigger

# 神器の説明や消費MPなどをここで設定する。
# 最後にasset:artifact/common/giveを実行することで入手可能。

# 神器のID (int) スプレッドシートの値を入れる
data modify storage asset:artifact ID set value 1360
# 神器のベースアイテム
data modify storage asset:artifact Item set value "minecraft:honey_bottle"
# 神器の名前 (TextComponentString)
data modify storage asset:artifact Name set value '{"text":"ヴィンテージ・ワイン","color":"#d93d64"}'
# 神器の説明文 (TextComponentString[])
data modify storage asset:artifact Lore set value ['{"text":"体力を10回復する","color":"white"}','{"text":"オフハンドに所持していた時間が2秒につき回復量が増加する","color":"white"}','{"text":"(最大回復量:90、所持時間18秒で効果最大)","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 "offhand"
# 神器のトリガー (string) Wikiを参照
data modify storage asset:artifact Trigger set value "itemUse"
# 神器の発動条件 (TextComponentString) (オプション)
# data modify storage asset:artifact Condition set value
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
# data modify storage asset:artifact AttackInfo.Damage set value [0,0]
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
# data modify storage asset:artifact AttackInfo.AttackType set value [Physical,Magic]
# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション)
# data modify storage asset:artifact AttackInfo.ElementType set value [Fire,Water,Thunder,None]
# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション)
# data modify storage asset:artifact AttackInfo.BypassResist set value
# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション)
# data modify storage asset:artifact AttackInfo.IsRangeAttack set value
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
# data modify storage asset:artifact AttackInfo.AttackRange set value
# MP消費量 (int)
data modify storage asset:artifact MPCost set value 0
# MP必要量 (int) (オプション)
# data modify storage asset:artifact MPRequire set value
# MP回復量 (int)
# data modify storage asset:artifact MPHealWhenHit set value
# 神器のクールダウン (int) (オプション)
# data modify storage asset:artifact LocalCooldown set value
# 種別クールダウン ({Type: string, Duration: int}) (オプション)
# data modify storage asset:artifact TypeCooldown.Type set value
# data modify storage asset:artifact TypeCooldown.Duration set value
# グローバルクールダウン (int) (オプション)
# data modify storage asset:artifact SpecialCooldown set value
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
# data modify storage asset:artifact DisableCooldownMessage set value
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
# data modify storage asset:artifact DisableMPMessage set value
# 破壊時の音を鳴らさないかどうか (boolean) (オプション)
data modify storage asset:artifact DisableBreakSound set value true
# 扱える神 (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
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#> asset:artifact/1360.vintage_wine/register
#
# 神器プールへの登録処理
#
# @within tag/function asset:artifact/register

# 日替わり商人に売らせる予定(Lv2?)
# data modify storage asset:artifact RarityRegistry[1] append value [1360]
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#> asset:artifact/1360.vintage_wine/tick/1.trigger
#
#
#
# @within tag/function asset:artifact/tick

#
execute if data storage asset:context id{offhand:1360} run function asset:artifact/1360.vintage_wine/tick/2.check_condition
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#> asset:artifact/1360.vintage_wine/tick/2.check_condition
#
#
#
# @within function asset:artifact/1360.vintage_wine/tick/1.trigger

# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く
function asset:artifact/common/check_condition/offhand
# 他にアイテム等確認する場合はここに書く

# CanUsedタグをチェックして3.main.mcfunctionを実行する
execute if entity @s[tag=CanUsed] run function asset:artifact/1360.vintage_wine/tick/3.main

# CanUsedを削除
tag @s remove CanUsed
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#> asset:artifact/1360.vintage_wine/tick/3.main
#
#
#
# @within function asset:artifact/1360.vintage_wine/tick/2.check_condition

#> Private
# @private
#declare score_holder $Stack

# 固有バフチェック
data modify storage api: Argument.ID set value 369
function api:entity/mob/effect/get/from_id

# チャージ+1
execute store result storage api: Argument.FieldOverride.Charge int -1 run data get storage api: Return.Effect.Field.Charge -1.000000001

# チャージが0なら1に初期化
execute if data storage api: Argument.FieldOverride{Charge:0} run data modify storage api: Argument.FieldOverride.Charge set value 1

# (チャージ / N) + 1をスタックとする
execute store result score $Stack Temporary run data get storage api: Argument.FieldOverride.Charge
scoreboard players operation $Stack Temporary /= $40 Const
scoreboard players add $Stack Temporary 1
# 最大スタック
scoreboard players operation $Stack Temporary < $10 Const

# tellraw @a {"storage":"api:","nbt":"Argument.FieldOverride.Charge"}

# 固有バフを付与
data modify storage api: Argument.ID set value 369
execute store result storage api: Argument.Stack int 1 run scoreboard players get $Stack Temporary
function api:entity/mob/effect/give
function api:entity/mob/effect/reset

# リセマラ
scoreboard players reset $Stack Temporary
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#> asset:artifact/1360.vintage_wine/use_item/1.trigger
#
# 指定したイベントタイミングで実行されるfunction
#
# @within tag/function asset:artifact/**

# storage asset:idのoffhandに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する
execute if data storage asset:context id{offhand:1360} run function asset:artifact/1360.vintage_wine/use_item/2.check_condition
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#> asset:artifact/1360.vintage_wine/use_item/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/1360.vintage_wine/use_item/1.trigger

# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く
function asset:artifact/common/check_condition/offhand
# 他にアイテム等確認する場合はここに書く

# CanUsedタグをチェックして3.main.mcfunctionを実行する
execute if entity @s[tag=CanUsed] run function asset:artifact/1360.vintage_wine/use_item/3.main
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#> asset:artifact/1360.vintage_wine/use_item/3.main
#
# 神器のメイン処理部
#
# @within function asset:artifact/1360.vintage_wine/use_item/2.check_condition

# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う
function asset:artifact/common/use/offhand

# ここから先は神器側の効果の処理を書く

# 演出
particle dust 1 0.278 0.459 1 ~ ~1.2 ~ 0.4 0.4 0.4 1 10 normal

# 固有バフチェック
data modify storage api: Argument.ID set value 369
function api:entity/mob/effect/get/from_id

# スタックにつき回復量を変更
execute if data storage api: Return.Effect{Stack: 1} run data modify storage api: Argument.Heal set value 10d
execute if data storage api: Return.Effect{Stack: 2} run data modify storage api: Argument.Heal set value 12d
execute if data storage api: Return.Effect{Stack: 3} run data modify storage api: Argument.Heal set value 15d
execute if data storage api: Return.Effect{Stack: 4} run data modify storage api: Argument.Heal set value 19d
execute if data storage api: Return.Effect{Stack: 5} run data modify storage api: Argument.Heal set value 25d
execute if data storage api: Return.Effect{Stack: 6} run data modify storage api: Argument.Heal set value 33d
execute if data storage api: Return.Effect{Stack: 7} run data modify storage api: Argument.Heal set value 43d
execute if data storage api: Return.Effect{Stack: 8} run data modify storage api: Argument.Heal set value 56d
execute if data storage api: Return.Effect{Stack: 9} run data modify storage api: Argument.Heal set value 71d
execute if data storage api: Return.Effect{Stack:10} run data modify storage api: Argument.Heal set value 90d

# 回復
function api:heal/modifier
function api:heal/
function api:heal/reset

# 念のため固有バフ解除
data modify storage api: Argument.ID set value 369
function api:entity/mob/effect/remove/from_id
function api:entity/mob/effect/reset
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#> asset:effect/0369.elevage/_/register
#
#
#
# @within tag/function asset:effect/register

execute if data storage asset:context {id:369} run function asset:effect/0369.elevage/register
39 changes: 39 additions & 0 deletions Asset/data/asset/functions/effect/0369.elevage/register.mcfunction
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#> asset:effect/0369.elevage/register
#
# Effectのデータを指定
#
# @within function asset:effect/0369.elevage/_/register

# ExtendsSafe (boolean) (default = false)
# data modify storage asset:effect ExtendsSafe set value true
# ID (int)
data modify storage asset:effect ID set value 369
# 名前 (TextComponentString)
data modify storage asset:effect Name set value '{"text":"Élevage","color":"#d93d64"}'
# 説明文 (TextComponentString[])
data modify storage asset:effect Description set value ['{"text":"ヴィンテージ・ワインの回復量が上昇する"}']
# 効果時間 (int) (default = API || error)
data modify storage asset:effect Duration set value 1
# スタック (int) (default = API || 1)
# data modify storage asset:effect Stack set value
# 効果時間の操作方法 (default = API || "replace")
# data modify storage asset:effect DurationOperation set value
# スタックの操作方法 (default = API || "replace")
# data modify storage asset:effect StackOperation set value
# 最大効果時間 (int) (default = 2147483647)
# data modify storage asset:effect MaxDuration set value
# 最大スタック (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
# エフェクトのスタックををUIに表示するか (boolean) (default = true)
# data modify storage asset:effect StackVisible set value

# フィールド
# data modify storage asset:effect Field set value {}
3 changes: 2 additions & 1 deletion Asset/data/asset/tags/functions/artifact/give.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"values": [
"asset:artifact/1360.vintage_wine/give/1.trigger",
"asset:artifact/1453.frost_flake_bow/give/1.trigger",
"asset:artifact/1534.drop_in_the_bucket/give/1.trigger",
"asset:artifact/1366.shaved_ice_melon/give/1.trigger",
Expand Down Expand Up @@ -538,4 +539,4 @@
"asset:artifact/0735.collision_plate/give/1.trigger",
"asset:artifact/0745.blade_of_whirlwind/give/1.trigger"
]
}
}
3 changes: 2 additions & 1 deletion Asset/data/asset/tags/functions/artifact/register.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"values": [
"asset:artifact/1360.vintage_wine/register",
"asset:artifact/1534.drop_in_the_bucket/register",
"asset:artifact/1365.shaved_ice_blue_hawaii/register",
"asset:artifact/1366.shaved_ice_melon/register",
Expand Down Expand Up @@ -315,4 +316,4 @@
"asset:artifact/1027.fire_of_rebirth/register",
"asset:artifact/1111.rod_o_redeem/register"
]
}
}
1 change: 1 addition & 0 deletions Asset/data/asset/tags/functions/artifact/tick.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"values": [
"asset:artifact/1360.vintage_wine/tick/1.trigger",
"asset:artifact/1324.balance_star/trigger/1.trigger",
"asset:artifact/0237.schrodingers_cat/trigger/1.trigger",
"asset:artifact/1057.great_demon_head/tick/1.trigger",
Expand Down
1 change: 1 addition & 0 deletions Asset/data/asset/tags/functions/artifact/use_item.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"values": [
"asset:artifact/1360.vintage_wine/use_item/1.trigger",
"asset:artifact/1366.shaved_ice_melon/trigger/1.trigger",
"asset:artifact/1365.shaved_ice_blue_hawaii/trigger/1.trigger",
"asset:artifact/1364.shaved_ice_strawberry/trigger/1.trigger",
Expand Down
1 change: 1 addition & 0 deletions Asset/data/asset/tags/functions/effect/register.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"values": [
"asset:effect/0369.elevage/_/register",
"asset:effect/0348.cool_feeling/_/register",
"asset:effect/0356.dolphin_blessing/_/register",
"asset:effect/0302.safety_check_complete/_/register",
Expand Down
Loading