Exemplo n.º 1
0
        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);
 }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 10
0
 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;
 }
Exemplo n.º 11
0
 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>();
 }
Exemplo n.º 12
0
        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);
        }