public void HunterRewardCalculate(E_RewardType type) //헌터 보상 정산만. { HunterIdea hunter = CharactorFrame.GetInstance().hunterIdea; Quest writtenQuest = QuestManager.GetInstance().GetQuest(hunter.associatedQuestKey); List <QuestPerMob> huntedList = hunter.HuntedList; int hunterExpireTerm = hunter.GetHunterExpireGap(); int hunterPayment = PayFormula.CalculateHuntLastPayment(writtenQuest, hunterExpireTerm, huntedList, type); GoldManager.GetInstance().AdjustGold(-1 * hunterPayment, GoldManager.E_PayType.TO_HUNTER); if (type != E_RewardType.PAYMENT_DENY) { Inventory.GetInstance().AddMobEviByList(CharactorFrame.GetInstance().hunterIdea.HuntedList); } }
/* * 플레이어가 작성했던 퀘스트 * 헌터가 실제로 잡아온 것. * 헌터가 의뢰 완수 후 반납 하러 왔을 때 주는 돈(성공보수) */ public static int CalculateHuntLastPayment(Quest writtenQuest, int expireTerm, List <QuestPerMob> huntedList, E_RewardType paymentWay) { int payment = 0; float hunterWholePay = ClientWholePayment(writtenQuest, expireTerm) * Constant.hunterRatio; float hunterLastPay = hunterWholePay - (hunterWholePay * Constant.depositRatio); float completeness = writtenQuest.GetCompleteness(huntedList); switch (paymentWay) { case E_RewardType.ALL_PAYMENT: payment = (int)hunterLastPay; break; case E_RewardType.PARTIAL_PAYMENT: payment = (int)(hunterLastPay * (completeness / 100)); break; case E_RewardType.PAYMENT_DENY: payment = 0; break; } return(payment); }