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)); }
public void RegistReserve(AppearCharacterModel appearCharacterModel, ConversationModel conversationModel, RewardModel rewardModel, IDailyAppearCharacterRegistCondition dailyAppearCharacterRegistCondition) { var playerAppearCharacterReserveModel = this.dailyAppearCharacterRegistReserveCreateService.Execute( appearCharacterModel, conversationModel, rewardModel, dailyAppearCharacterRegistCondition ); this.RegistReserve(playerAppearCharacterReserveModel); }