Skip to content

Commit

Permalink
Merge branch 'dev/haiiro_dot-effect' into fix/lapis_artifact190-192
Browse files Browse the repository at this point in the history
  • Loading branch information
haiiro2gou authored Mar 6, 2025
2 parents 178328f + ab6effc commit 72fefcb
Show file tree
Hide file tree
Showing 42 changed files with 326 additions and 36 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#> asset:artifact/0563.heartland/trigger/0.load
#
# 神器に利用するスコアボード等の初期化処理
#
# @within tag/function asset:artifact/load

#> 定義類はここに
# @within function asset:artifact/0563.heartland/trigger/**
scoreboard objectives add FN.LatestFullEffect dummy
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#> asset:artifact/0563.heartland/trigger/fullset/tick/foreach
#
#
#
# @within function asset:artifact/0563.heartland/trigger/fullset/tick/main

data modify storage api: Argument.ID set value 266
function api:entity/mob/effect/get/from_id
execute if data storage api: Return.Effect run return fail

data modify storage api: Argument.ID set value 266
function api:entity/mob/effect/give
function api:entity/mob/effect/reset
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,13 @@
#
# @within function asset:artifact/0563.heartland/trigger/fullset/tick/trigger

# 周囲5mのプレイヤーに既に自然回復エフェクトが付与されているかどうかを検知し、自然回復エフェクトを付与
execute as @a[distance=..5] if predicate asset:artifact/0563.heartland/regene_check run effect give @a[distance=..5] regeneration 15 1 false
#> private
# @private
#declare score_holder $FN.Temp

# 1秒に1回
execute store result score $FN.Temp Temporary run data get storage global Time
scoreboard players operation $FN.Temp Temporary -= @s FN.LatestFullEffect
execute if score $FN.Temp Temporary matches 20.. as @a[distance=..5] run function asset:artifact/0563.heartland/trigger/fullset/tick/foreach
execute if score $FN.Temp Temporary matches 20.. store result score @s FN.LatestFullEffect run data get storage global Time
scoreboard players reset $FN.Temp Temporary
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
#
# @within tag/function asset:artifact/tick

execute if entity @s[tag=FN.Fullset] run function asset:artifact/0563.heartland/trigger/fullset/tick/main
execute if entity @s[tag=FN.Fullset] run function asset:artifact/0563.heartland/trigger/fullset/tick/main
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@
# スタック (int) (default = API || 1)
# data modify storage asset:effect Stack set value
# 効果時間の操作方法 (default = API || "replace")
# data modify storage asset:effect DurationOperation set value
data modify storage asset:effect DurationOperation set value "forceReplace"
# スタックの操作方法 (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 256
data modify storage asset:effect MaxStack set value 100
# 悪い効果か否か (boolean)
data modify storage asset:effect IsBadEffect set value true
# 死亡時のエフェクトの処理 (default = "remove")
Expand All @@ -36,4 +36,5 @@
# data modify storage asset:effect StackVisible set value

# フィールド
# data modify storage asset:effect Field set value {}
data modify storage asset:effect Field.Tick set value 20
data modify storage asset:effect Field.DamagePer set value 0.01
11 changes: 7 additions & 4 deletions Asset/data/asset/functions/effect/0029.poison/tick/.mcfunction
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@
#
# @within function asset:effect/0029.poison/_/tick

# (Stack - 1)を求めてマクロで付与する
execute store result storage asset:temp 29.Stack int 0.9999999999 run data get storage asset:context Stack
function asset:effect/0029.poison/tick/m with storage asset:temp 29
data remove storage asset:temp 29
# 緑ハート
effect give @s poison 1 0 true

# 1秒ごとにダメージ
execute store result storage asset:context this.Tick int 0.9999999999 run data get storage asset:context this.Tick 1
execute if data storage asset:context this{Tick:0} run function asset:effect/0029.poison/tick/deal_damage
execute if data storage asset:context this{Tick:0} run data modify storage asset:context this.Tick set value 20
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#> asset:effect/0029.poison/tick/deal_damage
# @within function asset:effect/0029.poison/tick/

#> private
# @private
#declare score_holder $Damage
#declare score_holder $Per
#declare score_holder $Stack

# 現在体力の (Stack)%
function api:data_get/health
execute store result score $Damage Temporary run data get storage api: Health
execute store result score $Per Temporary run data get storage asset:context this.DamagePer 10000
execute store result score $Stack Temporary run data get storage asset:context Stack
scoreboard players operation $Damage Temporary *= $Per Temporary
scoreboard players operation $Damage Temporary *= $Stack Temporary
execute store result storage api: Argument.Damage double 0.0001 run scoreboard players get $Damage Temporary
data modify storage api: Argument.BypassModifier set value true
function api:damage/modifier
data modify storage api: Argument.BypassArmorDefense set value true
data modify storage api: Argument.BypassArmorToughness set value true
data modify storage api: Argument.BypassEnchantments set value true
data modify storage api: Argument.BypassDifficulty set value true
data modify storage api: Argument.ActivateTrigger set value false
function api:damage/
function api:damage/reset

# リセット
scoreboard players reset $Damage Temporary
scoreboard players reset $Per Temporary
scoreboard players reset $Stack Temporary

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@
# スタック (int) (default = API || 1)
# data modify storage asset:effect Stack set value
# 効果時間の操作方法 (default = API || "replace")
# data modify storage asset:effect DurationOperation set value
data modify storage asset:effect DurationOperation set value "forceReplace"
# スタックの操作方法 (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 256
data modify storage asset:effect MaxStack set value 100
# 悪い効果か否か (boolean)
data modify storage asset:effect IsBadEffect set value true
# 死亡時のエフェクトの処理 (default = "remove")
Expand All @@ -36,4 +36,5 @@
# data modify storage asset:effect StackVisible set value

# フィールド
# data modify storage asset:effect Field set value {}
data modify storage asset:effect Field.Tick set value 20
data modify storage asset:effect Field.DamagePer set value 0.01
11 changes: 7 additions & 4 deletions Asset/data/asset/functions/effect/0030.wither/tick/.mcfunction
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@
#
# @within function asset:effect/0030.wither/_/tick

# (Stack - 1)を求めてマクロで付与する
execute store result storage asset:temp 30.Stack int 0.9999999999 run data get storage asset:context Stack
function asset:effect/0030.wither/tick/m with storage asset:temp 30
data remove storage asset:temp 30
# 黒ハート
effect give @s wither 1 0 true

# 1秒ごとにダメージ
execute store result storage asset:context this.Tick int 0.9999999999 run data get storage asset:context this.Tick 1
execute if data storage asset:context this{Tick:0} run function asset:effect/0030.wither/tick/deal_damage
execute if data storage asset:context this{Tick:0} run data modify storage asset:context this.Tick set value 20
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#> asset:effect/0030.wither/tick/deal_damage
# @within function asset:effect/0030.wither/tick/

#> private
# @private
#declare score_holder $Damage
#declare score_holder $Per
#declare score_holder $Stack

# 最大体力の (Stack)%
function api:modifier/max_health/get
execute store result score $Damage Temporary run data get storage api: Return.MaxHealth
execute store result score $Per Temporary run data get storage asset:context this.DamagePer 10000
execute store result score $Stack Temporary run data get storage asset:context Stack
scoreboard players operation $Damage Temporary *= $Per Temporary
scoreboard players operation $Damage Temporary *= $Stack Temporary
execute store result storage api: Argument.Damage double 0.0001 run scoreboard players get $Damage Temporary
data modify storage api: Argument.BypassModifier set value true
function api:damage/modifier
data modify storage api: Argument.BypassArmorDefense set value true
data modify storage api: Argument.BypassArmorToughness set value true
data modify storage api: Argument.BypassEnchantments set value true
data modify storage api: Argument.BypassDifficulty set value true
data modify storage api: Argument.ActivateTrigger set value false
data modify storage api: Argument.DeathMessage set value ['{"translate":"%s は衰弱死した","with":[{"selector":"@s"}]}','{"translate":"%s は干からびた","with":[{"selector":"@s"}]}','{"translate":"%s の生命は枯れ果てた","with":[{"selector":"@s"}]}']
function api:damage/
function api:damage/reset

# リセット
scoreboard players reset $Damage Temporary
scoreboard players reset $Per Temporary
scoreboard players reset $Stack Temporary

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#> asset:effect/0034.regeneration/_/end
#
# Effectの効果の終了時に実行されるfunction
#
# @within tag/function asset:effect/end

execute if data storage asset:context {id:34} run function asset:effect/0034.regeneration/end/
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#> asset:effect/0034.regeneration/_/register
#
#
#
# @within tag/function asset:effect/register

execute if data storage asset:context {id:34} run function asset:effect/0034.regeneration/register
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#> asset:effect/0034.regeneration/_/remove
#
# Effectが神器や牛乳によって削除された時に実行されるfunction
#
# @within tag/function asset:effect/remove

execute if data storage asset:context {id:34} run function asset:effect/0034.regeneration/remove/
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#> asset:effect/0034.regeneration/_/tick
#
# Effectが発動している間毎tick実行されるfunction
#
# @within tag/function asset:effect/tick

execute if data storage asset:context {id:34} run function asset:effect/0034.regeneration/tick/
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#> asset:effect/0034.regeneration/end/
#
# Effectの効果が切れた時の処理
#
# @within function asset:effect/0034.regeneration/_/end
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#> asset:effect/0034.regeneration/register
#
# Effectのデータを指定
#
# @within function asset:effect/0034.regeneration/_/register

# ExtendsSafe (boolean) (default = false)
data modify storage asset:effect ExtendsSafe set value true
# ID (int)
data modify storage asset:effect ID set value 34
# 名前 (TextComponentString)
data modify storage asset:effect Name set value "再生"
# 説明文 (TextComponentString[])
data modify storage asset:effect Description set value ['{"text":"継続的に体力を回復する"}']
# 効果時間 (int) (default = API || error)
# data modify storage asset:effect Duration set value
# スタック (int) (default = API || 1)
# data modify storage asset:effect Stack set value
# 効果時間の操作方法 (default = API || "replace")
data modify storage asset:effect DurationOperation set value "forceReplace"
# スタックの操作方法 (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 100
# 悪い効果か否か (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 1
# エフェクトを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.Tick set value 20
data modify storage asset:effect Field.HealPer set value 0.01
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#> asset:effect/0034.regeneration/remove/
#
# Effectが削除された時の処理
#
# @within function asset:effect/0034.regeneration/_/remove
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#> asset:effect/0034.regeneration/tick/
#
# Effectのtick処理
#
# @within function asset:effect/0034.regeneration/_/tick

# 回復してそうな感じ
effect give @s regeneration 1 0 true

# 1秒ごとに回復
execute store result storage asset:context this.Tick int 0.9999999999 run data get storage asset:context this.Tick 1
execute if data storage asset:context this{Tick:0} run function asset:effect/0034.regeneration/tick/heal
execute if data storage asset:context this{Tick:0} run data modify storage asset:context this.Tick set value 20
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#> asset:effect/0034.regeneration/tick/heal
#
#
#
# @within function asset:effect/0034.regeneration/tick/

#> private
# @private
#declare score_holder $Heal
#declare score_holder $Per
#declare score_holder $Stack

# 最大体力の (Stack)%
function api:modifier/max_health/get
execute store result score $Heal Temporary run data get storage api: Return.MaxHealth
execute store result score $Per Temporary run data get storage asset:context this.HealPer 10000
execute store result score $Stack Temporary run data get storage asset:context Stack
scoreboard players operation $Heal Temporary *= $Per Temporary
scoreboard players operation $Heal Temporary *= $Stack Temporary
execute store result storage api: Argument.Heal double 0.0001 run scoreboard players get $Heal Temporary
execute store result storage api: Argument.Heal double 0.01 run scoreboard players operation $Heal Temporary *= $Stack Temporary
data modify storage api: Argument.FixedHeal set value true
function api:heal/modifier
data modify storage api: Argument.FixedHeal set value false
data modify storage api: Argument.ActivateTrigger set value false
function api:heal/
function api:heal/reset

# リセット
scoreboard players reset $Heal Temporary
scoreboard players reset $Per Temporary
scoreboard players reset $Stack Temporary
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#> asset:effect/0084.regeneration/_/register
#
#
#
# @within tag/function asset:effect/register

execute if data storage asset:context {id:84} run function asset:effect/0084.regeneration/register
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#> asset:effect/0084.regeneration/register
#
# Effectのデータを指定
#
# @within function asset:effect/0084.regeneration/_/register

# 継承 (int)
data modify storage asset:effect Extends append value 34
function asset:effect/extends
# ID (int)
data modify storage asset:effect ID set value 84
# 消すのに必要なレベル (int) (default = 1)
data modify storage asset:effect RequireClearLv set value 2
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#> asset:effect/0134.regeneration/_/register
#
#
#
# @within tag/function asset:effect/register

execute if data storage asset:context {id:134} run function asset:effect/0134.regeneration/register
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#> asset:effect/0134.regeneration/register
#
# Effectのデータを指定
#
# @within function asset:effect/0134.regeneration/_/register

# 継承 (int)
data modify storage asset:effect Extends append value 34
function asset:effect/extends
# ID (int)
data modify storage asset:effect ID set value 134
# 消すのに必要なレベル (int) (default = 1)
data modify storage asset:effect RequireClearLv set value 3
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
data modify storage api: Argument.Damage set value 25.0f
data modify storage api: Argument.AttackType set value "Physical"
execute as @a if score @s UserID = $AppliedFrom Temporary run function api:damage/modifier
data modify storage api: Argument.ActivateTrigger set value false
function api:damage/
function api:damage/reset
# リセット
Expand Down
Loading

0 comments on commit 72fefcb

Please sign in to comment.