game/prompt/08_fix_equip_hp_exploit.md

1.6 KiB

장비 착용/해제 시 HP 처리 로직 수정

현재 상황 및 문제점

현재 시스템에서는 방어구나 장신구 등 최대 체력(Max HP)을 올려주는 장비를 착용하거나 해제할 때, 체력 처리 방식에 따라 예상치 못한 동작(예: 체력 회복 꼼수 등)이 발생할 수 있습니다.

요청 사항

장비를 착용하거나 해제할 때, 최대 체력(Max HP)의 변동에 관계없이 현재 체력(Current HP)의 퍼센트(%) 비율을 유지하도록 로직을 수정해주세요.

구체적인 요구조건

  1. 장비 변경 전 현재 HP 비율 계산: 장비 착용/해제 전에 Current HP / Max HP 비율을 계산합니다.
  2. 장비 변경 후 HP 적용: 장비 변경(Max HP 변화)이 발생한 후, 이전에 계산한 HP 비율을 새로운 Max HP에 적용하여 Current HP를 설정합니다.
    • 예시: 현재 50/100 (50%) -> 장비 착용으로 Max HP가 150이 되면, Current HP는 75 (150의 50%)로 조정됩니다.
    • 예시: 현재 150/150 (100%) -> 장비 해제로 Max HP가 100이 되면, Current HP는 100 (100의 100%)으로 조정됩니다.
  3. 최소값 및 최대값 보정: Current HP는 항상 0보다 크거나 같아야 하며, 새로운 Max HP를 초과할 수 없습니다.

목표

  • 장비 변경 시 Current HPMax HP의 비율에 맞춰 일관성 있게 변화하도록 합니다.

참고 코드

  • lib/game/model/entity.dart (Character 클래스 내 장비 착용/해제 로직)
  • lib/providers/battle_provider.dart (장비 장착/해제 액션 처리)