リビジョン | 6e2e2d629db2b21efc512db22327a11f4bbc1512 (tree) |
---|---|
日時 | 2021-01-24 13:16:18 |
作者 | deskull <deskull@user...> |
コミッター | deskull |
Merge remote-tracking branch 'remotes/origin/Feature/Refactor-Drain-Staff-Wand' into develop
@@ -210,20 +210,20 @@ bool process_un_power(player_type *target_ptr, monap_type *monap_ptr) | ||
210 | 210 | object_kind *kind_ptr = &k_info[monap_ptr->o_ptr->k_idx]; |
211 | 211 | PARAMETER_VALUE pval = kind_ptr->pval; |
212 | 212 | DEPTH level = monap_ptr->rlev; |
213 | - HIT_POINT drain = pval * level / 400 + pval * randint1(level) / 400; | |
213 | + HIT_POINT drain = is_magic_mastery ? pval * level / 400 + pval * randint1(level) / 400 : pval; | |
214 | 214 | if (drain <= 0) |
215 | 215 | return FALSE; |
216 | 216 | |
217 | 217 | if (monap_ptr->o_ptr->tval == TV_STAFF) |
218 | 218 | drain *= monap_ptr->o_ptr->number; |
219 | 219 | |
220 | - drain = MIN(drain, (monap_ptr->m_ptr->maxhp - monap_ptr->m_ptr->hp) / drain); | |
221 | 220 | msg_print(_("ザックからエネルギーが吸い取られた!", "Energy was drained from your pack!")); |
222 | 221 | if (is_magic_mastery) |
223 | 222 | msg_print(_("しかし、あなたの魔法を操る力がその一部を取り返した!", "However, your skill of magic mastery got back the part of energy!")); |
224 | 223 | |
225 | 224 | monap_ptr->obvious = TRUE; |
226 | 225 | HIT_POINT recovery = drain * kind_ptr->level; |
226 | + recovery = MIN(recovery, monap_ptr->m_ptr->maxhp - monap_ptr->m_ptr->hp); | |
227 | 227 | monap_ptr->m_ptr->hp += recovery; |
228 | 228 | if (target_ptr->health_who == monap_ptr->m_idx) |
229 | 229 | target_ptr->redraw |= PR_HEALTH; |