Linear ArchiveArchived issues viewer
← Back to list
INS-280

キャラクターに対する装備のパラメータ適用の修正

StatusDone
TeamInstansys
Assigneeyasuhisa.hiraga@instansys.co.jp
PriorityNo priority
Created2025/12/26 05:25
Completed2025/12/29 02:17
Archived2026/02/01 12:17

Description

乗算すべきところを加算になっていたり、用途不明な装備のパラメータが存在するので修正する

  • healPowerを削除
  • healのGradeMapを適用
  • physical_attack/magical_attack も乗算
  • defence も乗算
  • calculateEquippedCharacterStatsの方の処理も直す
  • バトルデータへの反映とcalculateEquippedCharacterStatsを統一化したい

Comments (4)

yasuhisa.hiraga@instansys.co.jp2025/12/29 00:10
  • calculateEquippedCharacterStatsでのhp,attack,defenceの適用処理を乗算に変更した
yasuhisa.hiraga@instansys.co.jp2025/12/29 00:11
  • calculateEquippedCharacterStats は 装備のLvが適用されてないので、適用する必要がある
yasuhisa.hiraga@instansys.co.jp2025/12/29 00:39
  1. equipment-stats.tsをsharedに移動
- apps/client/src/lib/equipment-stats.ts → packages/shared/src/lib/equipment-stats.ts
- package.jsonに "./lib/*": "./src/lib/*.ts" を追加
  1. applyEquipmentToCharacterStats関数を追加
- 共通関数としてpackages/shared/src/lib/equipment-stats.tsに実装
- hp/attack/defenseは乗算(パーセント上昇)、その他は加算で適用
  1. character-entity.ts を更新
- 装備適用ロジックを applyEquipmentToCharacterStats 呼び出しに置き換え
- 50行以上のコードが4行に削減
  1. server/character.ts を更新
- calculateEquippedCharacterStats が { equipmentMasterId, level }[] を受け取るように変更
- 装備レベルの倍率も反映されるようになった
  1. インポートを更新したファイル
- useEquipmentPossessions.ts
- EquipmentUpgradeModal.tsx
- SmithEquipmentDetailPanel.tsx
yasuhisa.hiraga@instansys.co.jp2025/12/29 00:39

結果

装備パラメータの適用ロジックがclientとserverで統一され、以下の計算式が共通で使われます:

  • 攻撃力: baseAttack × (1 + (physicalAttack + magicalAttack) / 100)
  • 防御力: defense × (1 + defence / 100)
  • HP: maxHp × (1 + hp / 100)
  • クリティカル率/倍率: 加算
  • 属性ダメージ/チャージ速度: 加算