Skip to content

Comments

魔法ダメージのダメージ計算処理#997

Open
NePonpon wants to merge 6 commits intoreleases/1-21-4from
feature/entity-damage-defense
Open

魔法ダメージのダメージ計算処理#997
NePonpon wants to merge 6 commits intoreleases/1-21-4from
feature/entity-damage-defense

Conversation

@NePonpon
Copy link
Member

@NePonpon NePonpon commented Feb 16, 2026

チケット URL

GH-996

対応内容・対応背景・妥協点

魔法ダメージをコマンドで軽減する処理を追加

やったこと

  • 魔法、理外のダメージを防具や耐性で軽減できないように変更
    → コマンドでdamageコマンドの値を変える必要がある
  • 魔法ダメージの軽減式を実装

やってないこと

  • 魔法ダメージ軽減のエンチャントに対応していない
  • Shieldステータスを計算に考慮できていない

テスト

entity:damage/apply/core/get_magic_defenseの4行目に以下のコマンドを追加してプレイヤーの魔法防御力を調整してください

execute if entity @s[type=player] run return run scoreboard players get @s MagicDefense
data modify storage entity: damage set value {magic:10}
# MagicDefenseの値で軽減されることを確認してください
execute as @.p at @s run function entity:damage/apply/

チェックリスト (ガイドライン)

@NePonpon NePonpon requested review from a team and Tito5e February 16, 2026 11:57
@NePonpon NePonpon self-assigned this Feb 16, 2026
@github-actions github-actions bot added the 1-21-4 MCver1.21.4で確認された問題 label Feb 16, 2026
@Tito5e
Copy link

Tito5e commented Feb 16, 2026

現実的な数値のダメージ、魔法防御力での数値テストを行い、想定されたダメージが正常に与えられていることを確認しました

ただし、今後実装が考えられる魔法ダメージ(スキルダメージ)に極端に強いボスを想定してのテストでは演算誤差が見られました

使用した値

MagicDefense: 10000
Damage: 300
計算上のダメージ: 2
実際のダメージ: 0

MagicDefense: 10000
Damage: 1000
計算上のダメージ: 6程度
実際のダメージ: 0

MagicDefenseが1000程度であれば正常にダメージを計算できることを確認したため、実際の運用時にMagicDefenseを極端に大きくしないように仕様を決めておくのが良いと思われます

予想としては仕様上でDamageReductionRatioと表記される値が限りなく0に近づくことで精度が落ちていると予想されますが、これを仕様としておくことで魔法ダメージ完全無効のモブを実装することも出来そうです
具体的な方針はお願いします(どっちでも面白そうなので)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1-21-4 MCver1.21.4で確認された問題

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[feature] エンティティへのダメージに防御力の処理を追加する

2 participants