public static COutPacket UserQuestResult(QuestResultType op, QuestEntry pQuest, int nNpcTemplateId = 0, short usNextQuestID = 0)
            {
                var p = new COutPacket(SendOps.LP_UserQuestResult);

                p.Encode1(op);

                switch (op)
                {
                case QuestResultType.Failed_Equipped:
                case QuestResultType.Failed_Meso:
                case QuestResultType.Failed_OnlyItem:
                case QuestResultType.Failed_Unknown:
                    return(p);

                case QuestResultType.Failed_Inventory:
                case QuestResultType.Reset_QuestTimer:
                case QuestResultType.Failed_TimeOver:
                    p.Encode2(pQuest.nQuestID);
                    return(p);

                case QuestResultType.Success:
                    p.Encode2(pQuest.nQuestID);
                    p.Encode4(nNpcTemplateId);
                    p.Encode2(usNextQuestID);                             // 0 if no next
                    break;
                }

                return(p);
            }
        public void Initialize(QuestResultType type, QuestGroupModel questGroup, QuestModel quest, int starCount, int score, bool isNoticeMax)
        {
            this.type          = type;
            this.questGroup    = questGroup;
            this.quest         = quest;
            this.starCount     = starCount;
            this.score         = score;
            this.isNoticeMax   = isNoticeMax;
            this.opneInfo.text = "";

            if (CanUpdateScore(score, quest, type))
            {
                // 開放状況の設定
                SetOpenInfo();

                // 値のセット
                var playerQuestRepository = new PlayerQuestRepository();
                var playerQuestModel      = playerQuestRepository.Get(quest.ID);

                playerQuestModel.CurrentStarNum = starCount;
                playerQuestModel.CurrentScore   = score;
                playerQuestRepository.Set(playerQuestModel);
            }

            // 結果によって変えてもいいかも
            SoundManager.Instance.PlayBgm("kodoku");
        }
        private static bool CanUpdateScore(int nextScore, QuestModel model, QuestResultType type)
        {
            if (type == QuestResultType.Fail)
            {
                return(false);
            }

            var playerQuestRepository = new PlayerQuestRepository();
            var playerQuestModel      = playerQuestRepository.Get(model.ID);

            return(playerQuestModel.CurrentScore < nextScore);
        }
 public QuestResultSceneParameter(
     CharacterModel character,
     QuestGroupModel questGroup,
     QuestModel quest,
     int score,
     int starCount,
     QuestResultType resultType)
 {
     this.Chracter   = character;
     this.QuestGroup = questGroup;
     this.Quest      = quest;
     this.Score      = score;
     this.StarCount  = starCount;
     this.resultType = resultType;
 }