Skip to content
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

💥 Artifact Assetのトリガーのマクロ化 #1621

Open
wants to merge 49 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
82639d3
:technologist: asset:common/context/**のwithinを修正
haiiro2gou Nov 17, 2024
67da7a2
:technologist: 神器の生成処理を再構築する
haiiro2gou Nov 22, 2024
2cacadc
:technologist: 落下耐性Attributeを正負反転して処理するように
haiiro2gou Nov 22, 2024
61a05a4
:fire: トリガー処理を一旦削除
haiiro2gou Nov 23, 2024
cd0883f
:truck: ArtifactEvents.Killed -> ArtifactEvents.Kill
haiiro2gou Nov 23, 2024
66912c5
:truck: LocalCoolDown -> LocalCooldown
haiiro2gou Nov 23, 2024
48cb3f8
:truck: NewとOldをasset:contextから外す
haiiro2gou Nov 23, 2024
fe15497
:technologist: Slot <-> Indexの変換処理を実装
haiiro2gou Nov 23, 2024
ad2836b
:technologist: トリガー処理を再実装
haiiro2gou Nov 23, 2024
15c5238
:technologist: トリガーの呼び出し処理を実装
haiiro2gou Nov 23, 2024
152f5ef
:recycle: 使用条件を確認する処理をリファクタリング
haiiro2gou Nov 23, 2024
b0398a2
:recycle: 神器を使用する処理をリファクタリング
haiiro2gou Nov 23, 2024
a8e2ee0
:technologist: 攻撃時のトリガー処理を実装
haiiro2gou Nov 23, 2024
68e0e8e
:technologist: 被ダメージ時のトリガー処理を実装
haiiro2gou Nov 23, 2024
f6df0ac
:technologist: 敵撃破時のトリガー処理を実装
haiiro2gou Nov 23, 2024
d23ec88
:technologist: スニーク時のトリガー処理を実装
haiiro2gou Nov 23, 2024
e1431f1
:technologist: 回復時のトリガー処理を実装
haiiro2gou Nov 23, 2024
8dc0203
:technologist: アイテム使用時のトリガー処理を実装
haiiro2gou Nov 23, 2024
39a2500
:technologist: その他のトリガー処理を実装
haiiro2gou Nov 23, 2024
5d1ba07
:technologist: example神器を実装
haiiro2gou Nov 23, 2024
fa0907b
:technologist: 装備変更時のステータス変動処理を内部化
haiiro2gou Nov 23, 2024
c8eec88
:bug: 信仰変更時に装備データが更新されないのを修正
haiiro2gou Nov 23, 2024
c3b9767
:wrench: 宣言ファイルのフィルタを設定しなおす
haiiro2gou Dec 2, 2024
3c58c87
:recycle: 神器の最大発動回数を制限する処理を実装
haiiro2gou Dec 2, 2024
9d81c75
Merge branch 'master' into rework/haiiro_artifact-trigger
haiiro2gou Dec 2, 2024
a1acfb5
💄 最大発動回数のフォントを修正
haiiro2gou Dec 2, 2024
6d79e0b
:technologist: 現在処理しているスロットをasset:contextで渡すように
haiiro2gou Dec 3, 2024
67710f8
:technologist: IgnoreItemUpdateを神器側の変数として登録するように
haiiro2gou Dec 3, 2024
b7ba236
:rewind: Revert ":technologist: 装備変更時のステータス変動処理を内部化"
haiiro2gou Dec 9, 2024
cbb272d
Merge branch 'master' into rework/haiiro_artifact-trigger
haiiro2gou Dec 9, 2024
94ff391
:technologist: RemainigCountも取得できるように
haiiro2gou Dec 9, 2024
78baea1
Merge branch 'master' into rework/haiiro_artifact-trigger
haiiro2gou Dec 17, 2024
b191f68
Merge branch 'master' into rework/haiiro_artifact-trigger
haiiro2gou Jan 17, 2025
8d749b4
:adhesive_bandage: マージミスを修正
haiiro2gou Jan 17, 2025
27a53f5
📝 神器の NBTDoc を追加
haiiro2gou Jan 20, 2025
0073192
:rewind: MP回復処理を現実装に戻す
haiiro2gou Jan 25, 2025
c728150
:truck: example神器のディレクトリを変更
haiiro2gou Jan 25, 2025
00c7a24
:sparkles: リセット用後処理を追加
haiiro2gou Jan 25, 2025
d06fced
Merge branch 'master' into rework/haiiro_artifact-trigger
haiiro2gou Jan 25, 2025
b5a999b
Merge branch 'master' into rework/haiiro_artifact-trigger
haiiro2gou Jan 25, 2025
6e1af6d
:fire: EnableDuplication オプションを削除
haiiro2gou Jan 26, 2025
e883a00
:speech_balloon: 最大重複数 -> 最大発動回数
haiiro2gou Jan 26, 2025
27ca782
:bug: MPHealWhenHit がリセットされない問題を修正
haiiro2gou Jan 26, 2025
227fa84
:bug: オフハンドが優先して処理される問題を修正
haiiro2gou Jan 26, 2025
af86165
:truck: FallDamage -> Defense.Fall
haiiro2gou Jan 26, 2025
7e60cc2
:rewind: クールダウン更新に用いるアイテムデータを元に戻す
haiiro2gou Jan 26, 2025
3450f04
:adhesive_bandage: MP関連の処理を修正
haiiro2gou Jan 26, 2025
587a083
:bug: shot トリガーが正常に機能していないのを修正
haiiro2gou Jan 28, 2025
9b58531
Merge branch 'master' into rework/haiiro_artifact-trigger
haiiro2gou Feb 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 4 additions & 3 deletions .github/workflows/datapack-linter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,10 @@ jobs:
REPOSITORY: ProjectTSB/TheSkyBlessing
BRANCH: master
VISIBILITY_FILTER: |
function@asset:artifact/ARTIFACT_NAME/trigger/2.check_condition
function@asset:artifact/ARTIFACT_NAME/trigger/3.main
function@asset:artifact/ARTIFACT_NAME/give/2.give
function@asset:artifact/ARTIFACT_NAME/TRIGGER_NAME/
function@asset:artifact/ARTIFACT_NAME/TRIGGER_NAME/check
function@asset:artifact/ARTIFACT_NAME/enroll_pool
function@asset:artifact/ARTIFACT_NAME/register
function@asset:effect/EFFECT_NAME/register
function@asset:effect/EFFECT_NAME/given/
function@asset:effect/EFFECT_NAME/tick/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,10 @@

# validate
execute unless data storage api: Argument.ID run tellraw @a [{"storage":"global","nbt":"Prefix.ERROR"},{"text":"引数が足りません","color":"white"},{"text":" ID","color":"red"}]
# 既存にasset:context idが存在する場合に備えて退避させる
function asset_manager:common/context/id/stash
# 代入
data modify storage asset:context id set from storage api: Argument.ID
data modify storage asset:context Type set value "box"
execute unless data storage api: Argument.ID run return fail
# 呼び出し
execute if data storage api: Argument.ID run function #asset:artifact/give
# 退避させたasset:context idを戻す
function asset_manager:common/context/id/pop
data modify storage api: Argument.Type set value "box"
function api:artifact/core/from_id
# リセット
data remove storage api: Argument.ID
data remove storage api: Argument.Type
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@

# validate
execute unless data storage api: Argument.Rarity run tellraw @a [{"storage":"global","nbt":"Prefix.ERROR"},{"text":"引数が足りません","color":"white"},{"text":" Rarity","color":"red"}]
execute unless data storage api: Argument.Rarity run return fail
# 呼び出し
data modify storage asset:context Type set value "box"
execute if data storage api: Argument.Rarity run function asset_manager:artifact/give/
data modify storage api: Argument.Type set value "box"
function api:artifact/core/from_rarity/
# リセット
data remove storage api: Argument.Rarity
data remove storage api: Argument.Type
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#> api:artifact/core/from_id
# @within function
# api:artifact/*/from_id
# api:artifact/core/from_rarity/foreach

# 既存にasset:context idが存在する場合に備えて退避させる
function asset_manager:common/context/id/stash

# ID
data modify storage asset:context id set from storage api: Argument.ID
# データ登録
function asset_manager:artifact/give/register.m with storage asset:context
# validate
execute unless data storage asset:artifact ID run tellraw @a [{"storage":"global","nbt":"Prefix.ERROR"},{"text":"このIDの神器は存在しません "},{"storage":"api:","nbt":"Argument.ID","color":"red"}]
# データをfill
execute if data storage asset:artifact ID run data modify storage asset:context Type set from storage api: Argument.Type
execute if data storage asset:artifact ID if data storage asset:context {Type:"drop"} run data modify storage asset:context Important set from storage api: Argument.Important
# 神器をgive
execute if data storage asset:artifact ID run function asset_manager:artifact/give/

# 退避させたasset:context idを戻す
function asset_manager:common/context/id/pop
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#> api:artifact/core/from_rarity/
#
#
#
# @within function api:artifact/*/from_rarity

#> For calc
# @private
#declare score_holder $CandidateLength
#declare score_holder $Argument.Index
#declare score_holder $Pulls

# セッション開ける
function lib:array/session/open
# 該当レアリティのデータを取得
execute if data storage api: Argument{Rarity:1} run data modify storage lib: Array set from storage asset:artifact ShardPool[1]
execute if data storage api: Argument{Rarity:2} run data modify storage lib: Array set from storage asset:artifact ShardPool[2]
execute if data storage api: Argument{Rarity:3} run data modify storage lib: Array set from storage asset:artifact ShardPool[3]
execute if data storage api: Argument{Rarity:4} run data modify storage lib: Array set from storage asset:artifact ShardPool[4]
# データサイズを取得
execute store result score $CandidateLength Temporary if data storage lib: Array[]
# 対象Indexを決定
execute if data storage api: Argument{Rarity:1} run data modify storage lib: Args.key set value "artifact_lv-1"
execute if data storage api: Argument{Rarity:2} run data modify storage lib: Args.key set value "artifact_lv-2"
execute if data storage api: Argument{Rarity:3} run data modify storage lib: Args.key set value "artifact_lv-3"
execute if data storage api: Argument{Rarity:4} run data modify storage lib: Args.key set value "artifact_lv-4"
execute store result storage lib: Args.max int 1 run scoreboard players get $CandidateLength Temporary
execute store result storage lib: Args.scarcity_history_size int 0.35 run scoreboard players get $CandidateLength Temporary
execute store result score $Argument.Index Lib run function lib:random/with_biased/manual.m with storage lib: Args
# 候補データを操作して対象Indexを-1に持ってくる
function lib:array/move
# 一旦リセット
data modify storage asset:artifact Picks set from storage lib: Array[-1]
function lib:array/session/close
# 候補データの再設定
function lib:array/session/open
data modify storage lib: Array set from storage asset:artifact Picks
# プル数を乱数により設定
# $Pulls = floor( $CandidateLength * 0.30~0.70(e2) ) / e2
execute store result score $CandidateLength Temporary if data storage lib: Array[]
scoreboard players remove $CandidateLength Temporary 1
execute store result score $Pulls Temporary run function lib:random/
scoreboard players operation $Pulls Temporary %= $41 Const
scoreboard players add $Pulls Temporary 30
scoreboard players operation $Pulls Temporary *= $CandidateLength Temporary
scoreboard players operation $Pulls Temporary /= $100 Const
# シャッフルして取り出す
data modify storage asset:artifact Type set from storage asset:context Type
function lib:array/shuffle
execute if score $Pulls Temporary matches 0.. if data storage lib: Array[0] run function api:artifact/core/from_rarity/foreach
# リセット
function lib:array/session/close
scoreboard players reset $CandidateLength Temporary
scoreboard players reset $Pulls Temporary
data remove storage lib: Args
data remove storage asset:artifact Picks
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#> asset_manager:artifact/give/foreach
# @within function asset_manager:artifact/give/*

#> private
# @private
#declare score_holder $Pulls

# 引数に代入
data modify storage api: Argument.ID set from storage lib: Array[-1]
# 呼び出し
function api:artifact/core/from_id

# リセット&ループ
data remove storage lib: Array[-1]
scoreboard players remove $Pulls Temporary 1
execute if score $Pulls Temporary matches 0.. run function api:artifact/core/from_rarity/foreach
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,10 @@

# validate
execute unless data storage api: Argument.ID run tellraw @a [{"storage":"global","nbt":"Prefix.ERROR"},{"text":"引数が足りません","color":"white"},{"text":" ID","color":"red"}]
# 既存にasset:context idが存在する場合に備えて退避させる
function asset_manager:common/context/id/stash
# 代入
data modify storage asset:context id set from storage api: Argument.ID
data modify storage asset:context Type set value "give"
execute unless data storage api: Argument.ID run return fail
# 呼び出し
execute if data storage api: Argument.ID run function #asset:artifact/give
# 退避させたasset:context idを戻す
function asset_manager:common/context/id/pop
data modify storage api: Argument.Type set value "give"
function api:artifact/core/from_id
# リセット
data remove storage api: Argument.ID
data remove storage api: Argument.Type
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@

# validate
execute unless data storage api: Argument.Rarity run tellraw @a [{"storage":"global","nbt":"Prefix.ERROR"},{"text":"引数が足りません","color":"white"},{"text":" Rarity","color":"red"}]
execute unless data storage api: Argument.Rarity run return fail
# 呼び出し
data modify storage asset:context Type set value "give"
execute if data storage api: Argument.Rarity run function asset_manager:artifact/give/
data modify storage api: Argument.Type set value "give"
function api:artifact/core/from_rarity/
# リセット
data remove storage api: Argument.Rarity
data remove storage api: Argument.Type
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,18 @@
# 神器Assetの入手処理を叩く処理
#
# @input storage api:
# Argument.ID
# Argument.Slot
# Argument.ID : int
# Argument.Slot? : string (default: "mainhand")
# @api

# validate
execute unless data storage api: Argument.ID run tellraw @a [{"storage":"global","nbt":"Prefix.ERROR"},{"text":"引数が足りません","color":"white"},{"text":" ID","color":"red"}]
# 既存にasset:context idが存在する場合に備えて退避させる
function asset_manager:common/context/id/stash
# 代入
data modify storage asset:context id set from storage api: Argument.ID
execute if data storage api: Argument.Slot run data modify storage asset:context Slot set from storage api: Argument.Slot
data modify storage asset:context Type set value "replace"
execute unless data storage api: Argument.ID run return fail
execute unless data storage api: Argument.Slot run data modify storage api: Argument.Slot set value "mainhand"
# 呼び出し
execute if data storage api: Argument.ID run function #asset:artifact/give
# 退避させたasset:context idを戻す
function asset_manager:common/context/id/pop
data modify storage api: Argument.Type set value "replace"
function api:artifact/core/from_id
# リセット
data remove storage api: Argument.ID
data remove storage api: Argument.Slot
data remove storage api: Argument.Type
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,19 @@
#
# 神器Assetの入手処理を叩く処理
#
# @input storage api: Argument.Rarity
# @input storage api:
# Argument.Rarity : (1 | 2 | 3 | 4)
# Argument.Slot? : string (default: "mainhand")
# @api

# validate
execute unless data storage api: Argument.Rarity run tellraw @a [{"storage":"global","nbt":"Prefix.ERROR"},{"text":"引数が足りません","color":"white"},{"text":" Rarity","color":"red"}]
execute unless data storage api: Argument.Rarity run return fail
execute unless data storage api: Argument.Slot run data modify storage api: Argument.Slot set value "mainhand"
# 呼び出し
data modify storage asset:context Type set value "replace"
execute if data storage api: Argument.Rarity run function asset_manager:artifact/give/
data modify storage api: Argument.Type set value "replace"
function api:artifact/core/from_rarity/
# リセット
data remove storage api: Argument.Rarity
data remove storage api: Argument.Slot
data remove storage api: Argument.Type
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,18 @@
# 神器Assetの入手処理を叩く処理
#
# @input storage api:
# Argument.Rarity : (1 | 2 | 3 | 4)
# Argument.Important : boolean
# Argument.ID : int
# Argument.Important? : boolean (default: false)
# @api

# validate
execute unless data storage api: Argument.ID run tellraw @a [{"storage":"global","nbt":"Prefix.ERROR"},{"text":"引数が足りません","color":"white"},{"text":" ID","color":"red"}]
# 既存にasset:context idが存在する場合に備えて退避させる
function asset_manager:common/context/id/stash
# 代入
data modify storage asset:context id set from storage api: Argument.ID
data modify storage asset:context Type set value "drop"
data modify storage asset:context Important set from storage api: Argument.Important
execute unless data storage api: Argument.ID run return fail
execute unless data storage api: Argument.Important run data modify storage api: Argument.Important set value false
# 呼び出し
execute if data storage api: Argument.ID run function #asset:artifact/give
# 退避させたasset:context idを戻す
function asset_manager:common/context/id/pop
data modify storage api: Argument.Type set value "drop"
function api:artifact/core/from_id
# リセット
data remove storage asset:context Important
data remove storage api: Argument.ID
data remove storage api: Argument.Important
data remove storage api: Argument.Type
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,17 @@
#
# @input storage api:
# Argument.Rarity : (1 | 2 | 3 | 4)
# Argument.Important : boolean
# Argument.Important? : boolean (default: false)
# @api

# validate
execute unless data storage api: Argument.Rarity run tellraw @a [{"storage":"global","nbt":"Prefix.ERROR"},{"text":"引数が足りません","color":"white"},{"text":" Rarity","color":"red"}]
execute unless data storage api: Argument.Rarity run return fail
execute unless data storage api: Argument.Important run data modify storage api: Argument.Important set value false
# 呼び出し
data modify storage asset:context Type set value "drop"
data modify storage asset:context Important set from storage api: Argument.Important
execute if data storage api: Argument.Rarity run function asset_manager:artifact/give/
data modify storage api: Argument.Type set value "drop"
function api:artifact/core/from_rarity/
# リセット
data remove storage asset:context Important
data remove storage api: Argument.Rarity
data remove storage api: Argument.Important
data remove storage api: Argument.Type
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
# リセット
scoreboard players reset $Health Temporary
scoreboard players reset $Damage Temporary
data remove storage api: ModifiedDamage

# MP 回復
execute if data storage api: Argument.AdditionalMPHeal if entity @s[type=!player] as @a if score @s UserID = $LatestModifiedUser UserID run function api:damage/core/mp_heal
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
execute unless predicate api:mob/has_forward_target store result storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].MobEvents.Death[-1].From int 1 run scoreboard players get @s UserID
# プレイヤーにイベントを追加する
function oh_my_dat:please
data modify storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].ArtifactEvents.Killed append value {Type: "api",IsVanilla:false}
execute store result storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].ArtifactEvents.Killed[-1].To int 1 run scoreboard players get $DamagerUUID Temporary
execute store result storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].ArtifactEvents.Killed[-1].Amount double 0.01 run scoreboard players get $Damage Temporary
data modify storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].ArtifactEvents.Killed[-1].AttackType set from storage api: Argument.AttackType
data modify storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].ArtifactEvents.Killed[-1].ElementType set from storage api: Argument.ElementType
data modify storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].ArtifactEvents.Killed[-1].Metadata set from storage api: Argument.Metadata
data modify storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].ArtifactEvents.Kill append value {Type: "api",IsVanilla:false}
execute store result storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].ArtifactEvents.Kill[-1].To int 1 run scoreboard players get $DamagerUUID Temporary
execute store result storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].ArtifactEvents.Kill[-1].Amount double 0.01 run scoreboard players get $Damage Temporary
data modify storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].ArtifactEvents.Kill[-1].AttackType set from storage api: Argument.AttackType
data modify storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].ArtifactEvents.Kill[-1].ElementType set from storage api: Argument.ElementType
data modify storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].ArtifactEvents.Kill[-1].Metadata set from storage api: Argument.Metadata
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
#> api:modifier/core/fall_damage/add
#> api:modifier/core/defense/fall/add
#
#
#
# @within function api:modifier/fall_damage/add
# @within function api:modifier/defense/fall/add

# UserStorage呼び出し
function oh_my_dat:please
# 無ければ入れる
execute unless data storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].Attributes.Modifier.FallDamage[0] run data modify storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].Attributes.Modifier.FallDamage set value []
execute unless data storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].Attributes.Modifier.Defense.Fall[0] run data modify storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].Attributes.Modifier.Defense.Fall set value []
# 同じUUIDのModifierを削除する
data modify storage api: Modifiers set from storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].Attributes.Modifier.FallDamage
data modify storage api: Modifiers set from storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].Attributes.Modifier.Defense.Fall
data modify storage api: NewModifiers set value []
data remove storage api: Removed
function api:modifier/core/common/remove_modifier
data modify storage api: Modifiers set from storage api: NewModifiers
# 新しいModifierを追加する
data modify storage api: Modifiers append value {}
data modify storage api: Modifiers[-1].UUID set from storage api: Argument.UUID
data modify storage api: Modifiers[-1].Amount set from storage api: Argument.Amount
execute store result storage api: Modifiers[-1].Amount double -0.001 run data get storage api: Argument.Amount 1000
data modify storage api: Modifiers[-1].Operation set from storage api: Argument.Operation
data modify storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].Attributes.Modifier.FallDamage set from storage api: Modifiers
data modify storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].Attributes.Modifier.Defense.Fall set from storage api: Modifiers
# データを更新
data modify storage api: Base set from storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].Attributes.Default.FallDamage
data modify storage api: Base set from storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].Attributes.Default.Defense.Fall
function api:modifier/core/common/update_modifier/
data modify storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].Attributes.Value.FallDamage set from storage api: Modifier
data modify storage oh_my_dat: _[-4][-4][-4][-4][-4][-4][-4][-4].Attributes.Value.Defense.Fall set from storage api: Modifier
# リセット
data remove storage api: Base
data remove storage api: Modifiers
Expand Down
Loading