Skip to content

✨ [Effect 29, 30, 34] 継続ダメージ・回復エフェクトの実装 #841

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 22 commits into from
Mar 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
5287f3c
:sparkles: [Effect 29-30] 毒とウィザーを体力依存ダメージに
haiiro2gou Jan 29, 2025
a8446c9
:balance_scale: 一部 Mob の毒とウィザーのスタックを調整
haiiro2gou Jan 29, 2025
7dd2b60
:balance_scale: 継続ダメージ・回復によって被ダメージトリガーを有効化しないように
haiiro2gou Mar 6, 2025
70e493a
:children_crossing: [Effect 29-30] エフェクトの効果時間を付与時に必ず更新するように
haiiro2gou Mar 6, 2025
280e586
:sparkles: [Effect 34] 再生を作成
haiiro2gou Mar 6, 2025
a5f38ec
:technologist: [Effect 29-30, 34] 引数に DamagePer / HealPer を追加
haiiro2gou Mar 6, 2025
ab6effc
:balance_scale: [Artifact 562-565] ハートランドのフルセット効果を EffectAsset に移行
haiiro2gou Mar 6, 2025
ea90a73
⚖ [Artifact 190-192] アモール / ホルス / ファルシオスの杖の効果の調整 (#847)
Lapis-LJA Mar 6, 2025
60c9246
:adhesive_bandage: [Effect 29] 毒の最大スタックを 99 に
haiiro2gou Mar 6, 2025
2e5c270
:balance_scale: [Artifact 437] 蟹の味噌汁の回復・ダメージ量を調整
haiiro2gou Mar 6, 2025
b9c5c38
💩 [Artifact 252] 奈落との取引を封印
haiiro2gou Mar 6, 2025
93da69f
:balance_scale: [Artifact 1057] 豪鬼装備のセット効果の回復量を調整
haiiro2gou Mar 6, 2025
e3411c4
:balance_scale: 毒・ウィザーを EffectAsset に移行
haiiro2gou Mar 6, 2025
7ae3794
:alien: api: Argument.ActivateTrigger -> ApplyTrigger
haiiro2gou Mar 7, 2025
89ed88f
:adhesive_bandage: [Effect 266] エフェクト名の構文を修正
haiiro2gou Mar 9, 2025
72a660a
Merge branch 'master' into dev/haiiro_dot-effect
haiiro2gou Mar 9, 2025
d6046b5
:rewind: [Artifact 12] 誤って付与していた ApplyTrigger を削除
haiiro2gou Mar 9, 2025
942d6fb
:adhesive_bandage: [Artifact 12] デスログを追加
haiiro2gou Mar 9, 2025
cf295b7
:recycle: [Effect 301] より Stack の大きいものを残すように再実装
haiiro2gou Mar 9, 2025
04f5f47
:balance_scale: [Effect 34] 再生の回復量の計算式を変更
haiiro2gou Mar 9, 2025
eff53d1
Merge branch 'master' into dev/haiiro_dot-effect
haiiro2gou Mar 20, 2025
8c92642
:adhesive_bandage: [Effect 266] フィールドを修正
haiiro2gou Mar 20, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,25 @@
effect give @s minecraft:strength 60 10 true
effect give @s minecraft:resistance 60 1 true
effect give @s minecraft:nausea 60 0 true
effect give @s minecraft:poison 15 3 true
effect give @s minecraft:instant_damage 1 1 true

# 毒
data modify storage api: Argument.ID set value 29
data modify storage api: Argument.Stack set value 4
data modify storage api: Argument.Duration set value 300
function api:entity/mob/effect/give
function api:entity/mob/effect/reset

# ダメージ
data modify storage api: Argument.Damage set value 6
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.DeathMessage set value ['{"translate":"%1$s はハッパの中毒性に耐えられなかった","with":[{"selector":"@s"}]}']
function api:damage/
function api:damage/reset

# 演出
particle minecraft:smoke ~ ~ ~ 1 1 1 0.1 500 force @s
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
# 神器の名前 (TextComponentString)
data modify storage asset:artifact Name set value '{"text":"アモールの杖","color":"aqua"}'
# 神器の説明文 (TextComponentString[])
data modify storage asset:artifact Lore set value ['{"text":"周囲のプレイヤーの体力を少しだけ回復する"}']
data modify storage asset:artifact Lore set value ['{"text":"自身と周囲8mのプレイヤーの体力を7.0回復し"}','{"text":"その後10秒間かけて15.0回復する"}']
# 消費アイテム ({Item: TextComponent, Count: int, Extra?: TextComponent}) (オプション)
# data modify storage asset:artifact ConsumeItem.Item set value
# data modify storage asset:artifact ConsumeItem.Count set value
Expand All @@ -41,14 +41,14 @@
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
# data modify storage asset:artifact AttackInfo.AttackRange set value
# MP消費量 (int)
data modify storage asset:artifact MPCost set value 22
data modify storage asset:artifact MPCost set value 40
# MP必要量 (int) (オプション)
# data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
# data modify storage asset:artifact LocalCooldown set value 160
# 種別クールダウン ({Type: string, Duration: int}) (オプション)
data modify storage asset:artifact TypeCooldown.Type set value "heal"
data modify storage asset:artifact TypeCooldown.Duration set value 76
data modify storage asset:artifact TypeCooldown.Duration set value 80
# グローバルクールダウン (int) (オプション)
# data modify storage asset:artifact SpecialCooldown set value
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,15 @@
execute positioned ~ ~4 ~ run function asset:artifact/0190.amor_wand/trigger/vfx/

# 回復
data modify storage api: Argument.Heal set value 8.4
data modify storage api: Argument.Heal set value 7.0f
function api:heal/modifier
execute as @a[distance=..8] run function api:heal/

# リセット
function api:heal/reset

# 再生
data modify storage api: Argument.ID set value 301
data modify storage api: Argument.Stack set value 1
execute store result storage api: Argument.FieldOverride.UserID int 1 run scoreboard players get @s UserID
data modify storage api: Argument.FieldOverride.Heal set value 1.5
execute as @a[distance=..8] run function api:entity/mob/effect/give
function api:entity/mob/effect/reset
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
# 神器の名前 (TextComponentString)
data modify storage asset:artifact Name set value '{"text":"ホルスの杖","color":"gold"}'
# 神器の説明文 (TextComponentString[])
data modify storage asset:artifact Lore set value ['{"text":"周囲のプレイヤーの体力をそこそこ回復する"}']
data modify storage asset:artifact Lore set value ['{"text":"自身と周囲8mのプレイヤーの体力を17.0回復し"}','{"text":"その後10秒間かけて24.0回復する"}']
# 消費アイテム ({Item: TextComponent, Count: int, Extra?: TextComponent}) (オプション)
# data modify storage asset:artifact ConsumeItem.Item set value
# data modify storage asset:artifact ConsumeItem.Count set value
Expand All @@ -41,7 +41,7 @@
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
# data modify storage asset:artifact AttackInfo.AttackRange set value
# MP消費量 (int)
data modify storage asset:artifact MPCost set value 72
data modify storage asset:artifact MPCost set value 65
# MP必要量 (int) (オプション)
# data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,15 @@
execute positioned ~ ~4 ~ run function asset:artifact/0191.horus_wand/trigger/vfx/

# 回復
data modify storage api: Argument.Heal set value 15
data modify storage api: Argument.Heal set value 17.0f
function api:heal/modifier
execute as @a[distance=..8] run function api:heal/
effect give @a[distance=..8] regeneration 15 2 true

# リセット
function api:heal/reset

# 再生
data modify storage api: Argument.ID set value 301
data modify storage api: Argument.Stack set value 2
execute store result storage api: Argument.FieldOverride.UserID int 1 run scoreboard players get @s UserID
data modify storage api: Argument.FieldOverride.Heal set value 2.4
execute as @a[distance=..8] run function api:entity/mob/effect/give
function api:entity/mob/effect/reset
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
# 神器の名前 (TextComponentString)
data modify storage asset:artifact Name set value '{"text":"ファルシオスの杖","color":"white","bold":true}'
# 神器の説明文 (TextComponentString[])
data modify storage asset:artifact Lore set value ['{"text":"周囲のプレイヤーの体力を大きく回復する"}']
data modify storage asset:artifact Lore set value ['{"text":"自身と周囲8mのプレイヤーの体力を28.0回復し"}','{"text":"その後10秒間かけて30.0回復する"}']
# 消費アイテム ({Item: TextComponent, Count: int, Extra?: TextComponent}) (オプション)
# data modify storage asset:artifact ConsumeItem.Item set value
# data modify storage asset:artifact ConsumeItem.Count set value
Expand All @@ -41,7 +41,7 @@
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
# data modify storage asset:artifact AttackInfo.AttackRange set value
# MP消費量 (int)
data modify storage asset:artifact MPCost set value 82
data modify storage asset:artifact MPCost set value 80
# MP必要量 (int) (オプション)
# data modify storage asset:artifact MPRequire set value
# 神器のクールダウン (int) (オプション)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,15 @@
execute positioned ~ ~4 ~ run function asset:artifact/0192.falcios_wand/trigger/vfx/

# 回復
data modify storage api: Argument.Heal set value 26
data modify storage api: Argument.Heal set value 28.0f
function api:heal/modifier
execute as @a[distance=..8] run function api:heal/
effect give @a[distance=..8] regeneration 15 2 true

# リセット
function api:heal/reset

# 再生
data modify storage api: Argument.ID set value 301
data modify storage api: Argument.Stack set value 3
execute store result storage api: Argument.FieldOverride.UserID int 1 run scoreboard players get @s UserID
data modify storage api: Argument.FieldOverride.Heal set value 3.0
execute as @a[distance=..8] run 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,4 +4,5 @@
#
# @within tag/function asset:artifact/register

data modify storage asset:artifact RarityRegistry[3] append value [252]
# 一時的な封印指定
# data modify storage asset:artifact RarityRegistry[3] append value [252]
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
#> asset:artifact/0437.only_the_crabs_know/trigger/taste/awful_taste
#
# MP減少,毒 + 酷い味だ
# 毒 & MP減少 (酷い味だ)
#
# @within function asset:artifact/0437.only_the_crabs_know/trigger/3.main

# MP減少
# 減少する量 = 50
data modify storage api: Argument.Fluctuation set value -50
function api:mp/fluctuation

# 毒
effect give @s poison 15 2 true

# 演出
tellraw @a[distance=..10] [{"selector":"@s","bold":true},{"text":"は酷い味だと酷評した"}]
playsound entity.llama.ambient player @a ~ ~ ~ 1.0 1.0

# 毒
data modify storage api: Argument.ID set value 29
data modify storage api: Argument.Stack set value 3
data modify storage api: Argument.Duration set value 300
function api:entity/mob/effect/give
function api:entity/mob/effect/reset

# MP減少
data modify storage api: Argument.Fluctuation set value -50
function api:mp/fluctuation
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
#> asset:artifact/0437.only_the_crabs_know/trigger/taste/excellent_soup
#
# HP,MP回復 + うまいっ!
# HPMP回復 (うまいっ!)
#
# @within function asset:artifact/0437.only_the_crabs_know/trigger/3.main

# HP回復
# 回復する量 = 20
data modify storage api: Argument.Heal set value 20f
function api:heal/modifier
function api:heal/
# リセット
function api:heal/reset

# MP回復
# 回復する量 = 50
data modify storage api: Argument.Fluctuation set value 50
function api:mp/fluctuation

# 演出
tellraw @a[distance=..10] [{"selector":"@s","bold":true},{"text":"はうまいっ! と賞賛した"}]
playsound entity.experience_orb.pickup player @a ~ ~ ~ 1.0 2.0

# HP回復
data modify storage api: Argument.Heal set value 20f
data modify storage api: Argument.FixedHeal set value true
function api:heal/modifier
data modify storage api: Argument.FixedHeal set value false
function api:heal/
function api:heal/reset

# MP回復
data modify storage api: Argument.Fluctuation set value 50
function api:mp/fluctuation
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
#> asset:artifact/0437.only_the_crabs_know/trigger/taste/great_stock
# 回復,リジェネ + 出汁美味
#
# 回復 & リジェネ (出汁美味)
#
# @within function asset:artifact/0437.only_the_crabs_know/trigger/3.main

# HP回復
# 回復する量 = 10
data modify storage api: Argument.Heal set value 10f
function api:heal/modifier
function api:heal/
# リセット
function api:heal/reset
data modify storage api: Argument.Heal set value 10f
data modify storage api: Argument.FixedHeal set value true
function api:heal/modifier
data modify storage api: Argument.FixedHeal set value false
function api:heal/
function api:heal/reset

# リジェネ
effect give @s regeneration 600 3 true
data modify storage api: Argument.ID set value 84
data modify storage api: Argument.Stack set value 4
data modify storage api: Argument.Duration set value 12000
function api:entity/mob/effect/give
function api:entity/mob/effect/reset

# 演出
tellraw @a[distance=..10] [{"selector":"@s","bold":true},{"text":"は出汁が良く出ていると絶賛した"}]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,22 @@
#> asset:artifact/0437.only_the_crabs_know/trigger/taste/heavenly_feeling
#
# 初期ワープ,HPMP全快 + 天国にのぼるような
# 初期リスワープ & HPMP全快 (天国にのぼるような)
#
# @within function asset:artifact/0437.only_the_crabs_know/trigger/3.main

# 演出
tellraw @a [{"selector":"@s","bold":true},{"text":"は天国に上るような錯覚がした"}]
playsound ui.toast.challenge_complete player @a 23 3 24 1.0 1.2

# 初期地点ワープ
execute in minecraft:overworld run tp @s 23 3 24

# HP、MP全快
# HP回復
function api:modifier/max_health/get
data modify storage api: Argument.Heal set from storage api: Return.MaxHealth
data modify storage api: Argument.FixedHeal set value true
function api:heal/modifier
function api:heal/
function api:heal/reset
execute store result storage api: Argument.Heal double 0.01 run data get storage api: Return.MaxHealth 100
data modify storage api: Argument.FixedHeal set value true
function api:heal/modifier
function api:heal/
function api:heal/reset

# MP回復
data modify storage api: Argument.Fluctuation set value 10000
function api:mp/fluctuation

# 演出
tellraw @a [{"selector":"@s","bold":true},{"text":"は天国に上るような錯覚がした"}]
playsound ui.toast.challenge_complete player @a 23 3 24 1.0 1.2
data modify storage api: Argument.Fluctuation set value 10000
function api:mp/fluctuation
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#> asset:artifact/0437.only_the_crabs_know/trigger/taste/sanity_decrease
#
# HP減少MP回復 + 正気度減少
# HP減少MP回復 (正気度減少)
#
# @within function asset:artifact/0437.only_the_crabs_know/trigger/3.main

Expand All @@ -9,16 +9,14 @@
playsound entity.squid.death player @a ~ ~ ~ 1.0 1.5

# HP減少
# 防御無視・補正なし・魔法・無属性の15のダメージを与える
data modify storage api: Argument.Damage set value 15f
data modify storage api: Argument.AttackType set value "Magic"
data modify storage api: Argument.FixedDamage set value true
data modify storage api: Argument.DeathMessage append value '[{"translate": "%1$sは正気を失った","with":[{"selector":"@s"}]}]'
function api:damage/modifier
function api:damage/
function api:damage/reset
data modify storage api: Argument.Damage set value 15f
data modify storage api: Argument.AttackType set value "Magic"
data modify storage api: Argument.FixedDamage set value true
data modify storage api: Argument.DeathMessage append value '[{"translate": "%1$sは正気を失った","with":[{"selector":"@s"}]}]'
function api:damage/modifier
function api:damage/
function api:damage/reset

# MP回復
# 回復する量 = 100
data modify storage api: Argument.Fluctuation set value 100
function api:mp/fluctuation
data modify storage api: Argument.Fluctuation set value 100
function api:mp/fluctuation
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
@@ -1,8 +1,8 @@
#> asset:artifact/1057.great_demon_head/trigger/tick/1.trigger
#> asset:artifact/1057.great_demon_head/trigger/tick/
#
# フルセット時の毎Tick処理
#
# @within tag/function asset:artifact/tick

# フルセットなら実行
execute if data storage asset:context id{head:1057} if score @s TD.EquipCount matches 4 run function asset:artifact/1057.great_demon_head/trigger/tick/2.heal
execute if data storage asset:context id{head:1057} if score @s TD.EquipCount matches 4 run function asset:artifact/1057.great_demon_head/trigger/tick/check
Loading