public void SaveQuestStart(QuestStart QuestStart) { if (QuestStart.Id == 0) { context.QuestStarts.Add(QuestStart); } else { var editMe = context.QuestStarts.Find(QuestStart.Id); if (editMe != null) { // dbEntry.Name = QuestStart.Name; // dbEntry.Message = QuestStart.Message; // dbEntry.TimeStamp = QuestStart.TimeStamp; } } try { context.SaveChanges(); } catch (OptimisticConcurrencyException) { //context.(RefreshMode.ClientWins, dbModels.Models.QuestStart); //context.SaveChanges(); } // context.SaveChanges(); }
private void OnClosedEventConfirm(int selectButtonIndex) { if (selectButtonIndex == 0) { QuestStart.StartEventStage(DataMng.Instance().GetResultUtilData().last_dng_req); } }
public virtual ActionResult QuestStart(int id = -1) { IQuestRepository repo = new EFQuestRepository(); var questStart = repo.QuestStarts.FirstOrDefault(q => q.Id == id); if (questStart == null) { questStart = new QuestStart { IsLive = false, Name = "[ UNNAMED QUEST ]", MinStartTurn = 0, MinStartLevel = 0, MaxStartTurn = 99999, MaxStartLevel = 99999, PrerequisiteQuest = 0, }; } IEnumerable <QuestStart> allStarts = repo.QuestStarts; ViewBag.OtherQuests = allStarts; var firstState = repo.QuestStates.FirstOrDefault(f => f.Id == questStart.StartState); ViewBag.firstState = firstState; return(PartialView(MVC.QuestWriter.Views.QuestStart, questStart)); }
public virtual ActionResult QuestStartSend(QuestStart input) { var newId = QuestWriterProcedures.SaveQuestStart(input); QuestWriterProcedures.LogQuestWriterAction(User.Identity.Name, newId, " began new quest with Id <b>" + newId + "</b>."); return(RedirectToAction(MVC.QuestWriter.QuestStart(newId))); }
private void StartEventStage() { GameWebAPI.WD_Req_DngStart startInfo = new GameWebAPI.WD_Req_DngStart { dungeonId = this.WorldDungeonData.worldDungeonM.worldDungeonId, deckNum = DataMng.Instance().RespDataMN_DeckList.selectDeckNum, userDungeonTicketId = this.WorldDungeonData.dungeon.userDungeonTicketId }; QuestStart.StartEventStage(startInfo); }
public static void PlayerBeginQuest(Player player, QuestStart questStart) { IPlayerRepository playerRepo = new EFPlayerRepository(); var dbPlayer = playerRepo.Players.FirstOrDefault(p => p.Id == player.Id); dbPlayer.InQuest = questStart.Id; dbPlayer.InQuestState = questStart.StartState; dbPlayer.LastActionTimestamp = DateTime.UtcNow; playerRepo.SavePlayer(dbPlayer); }
private void OnSelectEventStage() { if (this.WorldDungeonData.status == 4) { QuestStart.OpenConfirmReplayEvent(new Action <int>(this.OnClosedEventConfirm)); } else { this.StartEventStage(); } }
private void StartReplayRequest() { GameWebAPI.WD_Req_DngStart last_dng_req = DataMng.Instance().GetResultUtilData().last_dng_req; if (!ClassSingleton <QuestData> .Instance.ExistEvent(last_dng_req.dungeonId)) { this.restartCallBack(); } else { QuestStart.OpenConfirmReplayEvent(new Action <int>(this.OnClosedEventConfirm)); } }
public static int SaveQuestStart(QuestStart input) { IQuestRepository repo = new EFQuestRepository(); var questStart = repo.QuestStarts.FirstOrDefault(q => q.Id == input.Id); var questState = repo.QuestStates.FirstOrDefault(q => q.QuestId == input.Id); var newStart = false; if (questStart == null) { questStart = new QuestStart(); newStart = true; } questStart.dbName = input.dbName; questStart.Location = input.Location; questStart.MaxStartLevel = input.MaxStartLevel; questStart.MaxStartTurn = input.MaxStartTurn; questStart.MinStartLevel = input.MinStartLevel; questStart.MinStartTurn = input.MinStartTurn; questStart.Name = input.Name; questStart.PrerequisiteQuest = input.PrerequisiteQuest; questStart.RequiredGender = input.RequiredGender; questStart.StartState = input.StartState; questStart.Tags = input.Tags; questStart.Description = input.Description; repo.SaveQuestStart(questStart); // save an additional quest state to start this off if (newStart || questState == null) { questState = new QuestState { QuestId = questStart.Id, QuestStateName = "[ STARTING QUEST STATE ]", }; repo.SaveQuestState(questState); questStart.StartState = questState.Id; repo.SaveQuestStart(questStart); } return(questStart.Id); }
private IEnumerator GoBattle() { GameWebAPI.WD_Req_DngStart sendData = DataMng.Instance().GetResultUtilData().last_dng_req; if (!ClassSingleton <QuestData> .Instance.ExistEvent(sendData.dungeonId)) { RestrictionInput.StartLoad(RestrictionInput.LoadType.LARGE_IMAGE_MASK_ON); while (!AssetDataCacheMng.Instance().IsCacheAllReadyType(AssetDataCacheMng.CACHE_TYPE.BATTLE_COMMON)) { yield return(null); } this.SetCacheChipIconResources(); RestrictionInput.EndLoad(); BattleStateManager.StartSingle(0.5f, 0.5f, true, null); } else { QuestStart.StartEventStage(DataMng.Instance().GetResultUtilData().last_dng_req); } yield break; }
public override void SetUp() { base.SetUp(); player = new Player { dbLocationName = "location", Mobility = PvPStatics.MobilityFull, Gender = PvPStatics.GenderMale, LastCombatTimestamp = DateTime.UtcNow.AddYears(-1), LastCombatAttackedTimestamp = DateTime.UtcNow.AddYears(-1), BotId = AIStatics.ActivePlayerBotId, FirstName = "FirstName", LastName = "Lastname", Level = 1, ActionPoints = TurnTimesStatics.GetActionPointLimit(), Id = 1, LastActionTimestamp = DateTime.UtcNow.AddYears(-1), GameMode = 0, Health = 100, MaxHealth = 100, Mana = 100, MaxMana = 100, }; questStart = new QuestStart { RequiredGender = (int)QuestStatics.Gender.Any, PrerequisiteQuest = 0, IsLive = true, Location = "location", Id = fakeTestId, MinStartLevel = 0, MaxStartLevel = 99999, MinStartTurn = 0, MaxStartTurn = 99999, Name = "TestQuest", StartState = 1 }; turnNumber = 2000; questPlayerStatuses = new List <QuestPlayerStatus>(); }
public static bool PlayerCanBeginQuest(Player player, QuestStart questStart, IEnumerable <QuestPlayerStatus> questPlayerStatuses, int gameWorldTurn) { if (!questStart.IsLive) { return(false); } else if (questStart.MinStartLevel > player.Level) { return(false); } else if (questStart.MaxStartLevel < player.Level) { return(false); } else if (questStart.MinStartTurn > gameWorldTurn) { return(false); } else if (questStart.MaxStartTurn < gameWorldTurn) { return(false); } else if (questStart.RequiredGender == (int)QuestStatics.Gender.Male && player.Gender != PvPStatics.GenderMale) { return(false); } else if (questStart.RequiredGender == (int)QuestStatics.Gender.Female && player.Gender != PvPStatics.GenderFemale) { return(false); } foreach (var q in questPlayerStatuses) { if (q.QuestId == questStart.Id) { // player has already completed this quest so they can't do it again. if (q.Outcome == (int)QuestStatics.QuestOutcomes.Completed) { return(false); } // TODO? Filter out quests whose cooldowns are not yet expired //else if (q.Outcome==(int)QuestStatics.QuestOutcomes.Failed) //{ // if (gameWorldTurn - q.Outcome < QuestStatics.QuestFailCooldownTurnLength) // { // return false; // } //} } } // TODO: Filter out quests that have a prerequisite not yet fulfilled if (questStart.PrerequisiteQuest > 0) { var preReqMet = false; foreach (var q in questPlayerStatuses) { if (q.QuestId == questStart.PrerequisiteQuest && q.Outcome == (int)QuestStatics.QuestOutcomes.Completed) { preReqMet = true; break; } } if (!preReqMet) { return(false); } } // all checks passed, return true return(true); }