public void regenMp() { int baseMpr = 1; int wis = _pc.getAbility().getTotalWis(); if (wis == 15 || wis == 16) { baseMpr = 2; } else if (wis >= 17) { baseMpr = 3; } // 베이스 WIS 회복 보너스 int baseStatMpr = CalcStat.calcBaseMpr(_pc.getType(), _pc.getAbility().getBaseWis()); if (_pc.getSkillEffectTimerSet().hasSkillEffect(L1SkillId.STATUS_BLUE_POTION) == true) { if (wis < 11) { wis = 11; } baseMpr += wis - 10; } if (_pc.getSkillEffectTimerSet().hasSkillEffect(L1SkillId.STATUS_BLUE_POTION2) == true) { if (wis < 11) { wis = 11; } baseMpr += wis - 8; } if (_pc.getSkillEffectTimerSet().hasSkillEffect(L1SkillId.STATUS_BLUE_POTION3) == true) { baseMpr += 3; } if (_pc.getSkillEffectTimerSet().hasSkillEffect(L1SkillId.MEDITATION) == true) { baseMpr += 5; } if (_pc.getSkillEffectTimerSet().hasSkillEffect(L1SkillId.CONCENTRATION) == true) { baseMpr += 2; } if (L1HouseLocation.isInHouse(_pc.getX(), _pc.getY(), _pc.getMapId())) { baseMpr += 3; } if (isInn(_pc)) { baseMpr += 3; } if (L1HouseLocation.isRegenLoc(_pc, _pc.getX(), _pc.getY(), _pc.getMapId())) { baseMpr += 3; } int itemMpr = _pc.getInventory().mpRegenPerTick(); itemMpr += _pc.getMpr(); if (_pc.get_food() < 24 || isOverWeight(_pc)) { baseMpr = 0; baseStatMpr = 0; if (itemMpr > 0) { itemMpr = 0; } } int mpr = baseMpr + itemMpr + baseStatMpr; int newMp = _pc.getCurrentMp() + mpr; _pc.setCurrentMp(newMp); }