public PlayerAppearCharacterReserveModel Execute(
     AppearCharacterModel appearCharacterModel,
     ConversationModel conversationModel,
     RewardModel rewardModel,
     IDailyAppearCharacterRegistCondition dailyAppearCharacterRegistCondition
     )
 {
     return(playerAppearCharacterReserveRepository.Create(
                appearCharacterModel,
                conversationModel,
                rewardModel,
                dailyAppearCharacterRegistCondition
                ));
 }
 public PlayerAppearCharacterReserveModel(
     uint id,
     AppearCharacterModel appearCharacterModel,
     ConversationModel conversationModel,
     RewardModel rewardModel,
     IDailyAppearCharacterRegistCondition dailyAppearCharacterRegistCondition,
     bool isNextRemove)
 {
     this.Id = id;
     this.AppearCharacterModel = appearCharacterModel;
     this.ConversationModel    = conversationModel;
     this.RewardModel          = rewardModel;
     this.DailyAppearCharacterRegistCondition = dailyAppearCharacterRegistCondition;
     this.IsNextRemove = isNextRemove;
 }
        private PlayerAppearCharacterReserveModel CreateByEntry(PlayerAppearCharacterReserveEntry entry)
        {
            var appearCharacterModel = this.appearCharacterRepository.Get(entry.AppearCharacterId);

            Debug.Assert(appearCharacterModel != null, "appearCharacterModel が存在していません");

            var conversationModel = this.conversationRepository.Get(entry.ConversationId);

            Debug.Assert(conversationModel != null, "conversationModel が存在していません");

            var rewardModel = this.rewardRepository.Get(entry.RewardId);

            Debug.Assert(rewardModel != null, "rewardModel が存在していません");

            var state = Condition.None;

            if (Enum.TryParse(entry.State, out Condition outState))
            {
                state = outState;
            }

            IDailyAppearCharacterRegistCondition condition = null;

            if (state == Condition.ByChance)
            {
                condition = new DailyAppearCharacterRegistConditionByChance(entry.Rate);
            }
            else if (state == Condition.Force)
            {
                condition = new DailyAppearCharacterRegistConditionForce();
            }
            else
            {
                Debug.Assert(false, "街燈する state がありません");
            }

            return(new PlayerAppearCharacterReserveModel(
                       entry.Id,
                       appearCharacterModel,
                       conversationModel,
                       rewardModel,
                       condition,
                       entry.IsNextRemove
                       ));
        }
        public PlayerAppearCharacterReserveModel Create(
            AppearCharacterModel appearCharacterModel,
            ConversationModel conversationModel,
            RewardModel rewardModel,
            IDailyAppearCharacterRegistCondition dailyAppearCharacterRegistCondition
            )
        {
            var id = this.MaximuId() + 1;

            var condition = Condition.None;
            var rate      = 0.0f;

            if (dailyAppearCharacterRegistCondition is DailyAppearCharacterRegistConditionForce)
            {
                condition = Condition.Force;
            }
            else if (dailyAppearCharacterRegistCondition is DailyAppearCharacterRegistConditionByChance)
            {
                condition = Condition.ByChance;
                rate      = (dailyAppearCharacterRegistCondition as DailyAppearCharacterRegistConditionByChance).Rate;
            }
            else
            {
                Debug.Assert(false, "条件が見つかりません");
            }

            var entry = new PlayerAppearCharacterReserveEntry()
            {
                Id = id,
                AppearCharacterId = appearCharacterModel.Id,
                ConversationId    = conversationModel.Id,
                RewardId          = rewardModel.Id,
                State             = condition.ToString(),
                Rate         = rate,
                IsNextRemove = false
            };

            this.entrys.Add(entry);
            PlayerContextMap.WriteEntry(this.entrys);
            return(CreateByEntry(entry));
        }
示例#5
0
        public void RegistReserve(AppearCharacterModel appearCharacterModel, ConversationModel conversationModel, RewardModel rewardModel, IDailyAppearCharacterRegistCondition dailyAppearCharacterRegistCondition)
        {
            var playerAppearCharacterReserveModel = this.dailyAppearCharacterRegistReserveCreateService.Execute(
                appearCharacterModel,
                conversationModel,
                rewardModel,
                dailyAppearCharacterRegistCondition
                );

            this.RegistReserve(playerAppearCharacterReserveModel);
        }