public IQuest ReadQuest() { // if (dbConnection.State == ConnectionState.Closed) dbConnection.Open(); IDbCommand dbcmd = dbConnection.CreateCommand(); string sqlQuery = "SELECT * FROM Mission"; dbcmd.CommandText = sqlQuery; IDataReader reader = dbcmd.ExecuteReader(); IQuest currentQuest = null; if (reader.Read()) { currentQuest = QuestFactory.Instance().ParseQuest(reader); } reader.Close(); reader = null; dbcmd.Dispose(); dbcmd = null; // if (dbConnection.State == ConnectionState.Open) dbConnection.Close(); if (currentQuest == null) { currentQuest = QuestFactory.Instance().GetQuest(); } return(currentQuest); }
private void ReadQuests(string directory) { Regex regex = new Regex(QuestReaderConstants.QuestReaderPattern); string[] allQuests = this.GetQuestNames(directory); string questArgs = string.Empty; for (int i = 0; i < allQuests.Length; i++) { questArgs = this.fileReader.ReadToEnd(allQuests[i]); Match match = regex.Match(questArgs); string name = match.Groups[2].ToString().Trim(); string description = match.Groups[3].ToString().Trim(); string destination = match.Groups[4].ToString().Trim(); string enviroment = match.Groups[5].ToString().Trim(); string progress = match.Groups[6].ToString(); string itemRewards = match.Groups[7].ToString(); int experienceReward = int.Parse(match.Groups[8].ToString().Trim()); IQuest currentQuest = QuestFactory.CreateQuest(i + 1, name, description, destination, enviroment, experienceReward, this.GetEnemies(progress), this.GetItems(itemRewards)); this.quests.Add(currentQuest); } }
private static void PopulatePlayerQuests(JObject data, Player player) { string fileVersion = FileVersion(data); switch (fileVersion) { case "0.1.000": foreach (JToken questToken in (JArray)data[nameof(GameSession.CurrentPlayer)] [nameof(Player.Quests)]) { int questId = (int)questToken[nameof(QuestStatus.PlayerQuest)][nameof(QuestStatus.PlayerQuest.ID)]; Quest quest = QuestFactory.GetQuestByID(questId); QuestStatus questStatus = new QuestStatus(quest); questStatus.IsCompleted = (bool)questToken[nameof(QuestStatus.IsCompleted)]; player.Quests.Add(questStatus); } break; default: throw new InvalidDataException($"File version '{fileVersion}' not recognized"); } }
static QuestDebugRow[,] CreateQuestRow(TabPage tabPage) { var questRows = new QuestDebugRow[5, 6]; for (int actIndex = 0; actIndex < 5; actIndex++) { int y = actIndex * 100 - (actIndex > 3 ? 3 * 16 : 0); tabPage.Controls.Add(new Label { Text = "Act " + (actIndex + 1), Width = 40, Location = new Point(20, y) }); for (int questIndex = 0; questIndex < (actIndex == 3 ? 3 : 6); questIndex++) { var quest = QuestFactory.CreateByActAndOrder(actIndex + 1, questIndex + 1); var row = new QuestDebugRow(quest); row.Location = new Point(60, y + (questIndex * 16)); tabPage.Controls.Add(row); questRows[actIndex, questIndex] = row; } } return(questRows); }
private static void PopulatePlayerQuests(JsonDocument document, Player player) { var fileVersion = FileVersion(document); switch (fileVersion) { case "0.1.000": foreach (var jQuest in document.RootElement .GetProperty(nameof(GameSession.CurrentPlayer)) .GetProperty(nameof(Player.Quests)) .EnumerateArray()) { var questId = jQuest.GetProperty(nameof(QuestStatus.PlayerQuest)) .GetProperty(nameof(QuestStatus.PlayerQuest.ID)).GetInt32(); var quest = QuestFactory.GetQuestByID(questId); var questStatus = new QuestStatus(quest); questStatus.IsCompleted = jQuest.GetProperty(nameof(QuestStatus.IsCompleted)).GetBoolean(); player.Quests.Add(questStatus); } break; default: throw new InvalidDataException($"File version '{fileVersion}' not recognized."); } }
public static World CreateWorld() // add locations { World newWorld = new World(); // Forestmonster, mainTown, Mudhut, mudhutgarden, mainTown, TownGate, Trader, newWorld.Addlocation(-2, -1, "Ivan's Field", "This is ivan's field he likes sunflowers!", "pack://application:,,,/Engine;component/Images/Locations/Field.png"); newWorld.LocationAt(-2, -1).AddMonster(2, 100); newWorld.Addlocation(-1, -1, "Ivan's Home", "This is your friend's house.", "pack://application:,,,/Engine;component/Images/Locations/Framhouse.png"); newWorld.Addlocation(0, -1, "home", "This is your home", "pack://application:,,,/Engine;component/Images/Locations/home.png"); newWorld.Addlocation(-1, 0, "Trader", "This is a freindly trader, say hi!", "pack://application:,,,/Engine;component/Images/Locations/Trader.png"); newWorld.Addlocation(0, 0, "Main town", "Welcome to LONDON!", "pack://application:,,,/Engine;component/Images/Locations/mainTown.png"); newWorld.Addlocation(1, 0, "Town Gate", "used to proect from unwated guests, im nervous", "pack://application:,,,/Engine;component/Images/Locations/TownGate.png"); newWorld.Addlocation(2, 0, "Forest", "This place seems odd...", "pack://application:,,,/Engine;component/Images/Locations/Forestmonster.png"); newWorld.LocationAt(2, 0).AddMonster(3, 100); newWorld.Addlocation(0, 1, "Hut", "you can rest here... however something is waiting for you in the back...", "pack://application:,,,/Engine;component/Images/Locations/Mudhut.png"); newWorld.LocationAt(0, 1).QuestsAvailableHere.Add(QuestFactory.GetQuestByID(1)); newWorld.Addlocation(0, 2, "Hut garden", "this place looks AMAZING, however something approaches you", "pack://application:,,,/Engine;component/Images/Locations/mudhutgarden.png"); newWorld.LocationAt(0, 2).AddMonster(1, 100); return(newWorld); }
public RaceActionTest() { _quest = QuestFactory.CreateStartedWithMaleHero( out _, out _gameId, out _playerId, out _sequence); }
public Location ToLocation() { var location = new Location(X, Y, Name, Description, FilePaths.NormalizePath(Image)); if (Monsters?.Any() ?? false) { foreach (var encounter in Monsters) { var availableMonster = MonsterFactory.Get(encounter.Id); if (availableMonster != null) { location.AddEncounter(encounter.Id, encounter.Chance); } else { Trace.TraceWarning($"Location({Name}) has monster {encounter.Id} that could not be found"); } } ; } ; if (Quests?.Any() ?? false) { foreach (var quest in Quests) { var availableQuest = QuestFactory.FindQuest(quest.Id); if (availableQuest != null) { location.AddQuest(availableQuest); } else { Trace.TraceWarning($"Location({Name}) has quest {quest.Id} that could not be found"); } } ; } ; if (Trader > 0) { var availableTader = TraderFactory.GetTrader(Trader); if (availableTader != null) { location.TraderHere = availableTader; } else { Trace.TraceWarning($"Location({Name}) has tracer '{Trader}' that could not be found"); } } ; return(location); }
public IActionResult GetNPC(int npcId) { NPC npcInfo = NPCFactory.GetNPC(npcId); npcInfo.RelatedQuestsInfo = npcInfo.RelatedQuests?.Select(c => QuestFactory.GetQuest(c)).Where(c => c != null).Select(c => new QuestName() { id = c.Id, name = c.Name }).ToArray(); return(Json(npcInfo)); }
private void FinishQuest() { if (currentQuest.IsFinish()) { // Claim Reward // Geneerate new Quest currentQuest = null; currentQuest = QuestFactory.Instance().GetQuest(); } }
public void GenerateAnInitCode_ResultsInAnStringWith6Chars_Test() { // Arrange var quest = QuestFactory.Create(); // Act var initCode = quest.GenerateInitCode(); // Assert initCode.Should().HaveLength(6); }
public TakeOnQuestMenu(string name, IReader reader, IWriter writer, ITownsManager townsManager, IPlayerManager playerManager, IRandomNumberGenerator randomNumberGenerator, ICustomEventHandler handler) : base(name, reader, writer) { this.townsManager = townsManager; this.playerManager = playerManager; this.randomNumberGenerator = randomNumberGenerator; this.handler = handler; this.questFactory = new QuestFactory(this.townsManager.GetCurrentTown(), this.randomNumberGenerator, handler); }
private void Awake() { if (_instance == null) { _instance = this; DontDestroyOnLoad(gameObject); } else { Destroy(this); } }
public void GenerateAnInitCode_ResultsInAnUrlEncodedString_Test() { // Arrange var quest = QuestFactory.Create(); // Act var initCode = quest.GenerateInitCode(); var urlEncodedInitCode = HttpUtility.UrlEncode(initCode); // Assert initCode.Should().BeEquivalentTo(urlEncodedInitCode); }
public void StartJourney_ResultsInGeneratedGame_AndReturnsGameId_Test() { // Arrange var gameStore = new VolatileGameStore(); var quest = QuestFactory.Create(gameStore); // Act var gameId = quest.StartJourney(); // Assert Assert.NotEqual(Guid.Empty, gameId); Assert.NotNull(gameStore.Get(gameId)); }
private static void PopulatePlayerQuests(JObject data, Player player) { foreach (JToken questToken in (JArray)data[nameof(GameSession.CurrentPlayer)] [nameof(Player.Quests)]) { int questId = (int)questToken[nameof(QuestStatus.PlayerQuest)][nameof(QuestStatus.PlayerQuest.ID)]; Quest quest = QuestFactory.GetQuestByID(questId); QuestStatus questStatus = new QuestStatus(quest); questStatus.IsCompleted = (bool)questToken[nameof(QuestStatus.IsCompleted)]; player.Quests.Add(questStatus); } }
public override void _Ready() { world = (Spatial)GetNode("/root/MainScene/World"); player = (Player)GetNode("/root/MainScene/World/Player"); terrainFactory = (TerrainFactory)GetNode("/root/MainScene/Main/TerrainFactory"); questFactory = (QuestFactory)GetNode("/root/MainScene/Main/QuestFactory"); noiseTexture = (TextureRect)GetNode("/root/MainScene/Main/NoiseTexture"); noise = ((NoiseTexture)noiseTexture.Texture).Noise; ((LineEdit)GetNode("/root/MainScene/UI/SettingsPanel/SeedLine")).Text = noise.Seed.ToString(); steepness = 50; chunkBorderAreaHeight = 30; chunkCollisionAreaHeight = 500; forestChance = 50; }
public void BufferLookup() { Quest q = QuestFactory.CreateFromBufferIndex(1, 0); Assert.AreEqual(q.Name, "Den of Evil"); Assert.AreEqual(q.IsBossQuest, false); q = QuestFactory.CreateFromBufferIndex(9, 0); Assert.AreEqual(q.Name, "Radament's Lair"); q = QuestFactory.CreateFromBufferIndex(29, 0); Assert.AreEqual(q, null); q = QuestFactory.CreateFromBufferIndex(35, 0); Assert.AreEqual(q.Name, "Siege on Harrogath"); }
private void Save_Click(object sender, EventArgs e) { //checks the anwer of the question if (QuestFactory.CheckAnswer(answerAsString, quest.Answer)) { FinalAnswer = 1; MessageBox.Show("CORRECT!"); //logic if correct } else { FinalAnswer = 2; MessageBox.Show("NOT CORRECT"); //logic if not correct } Close(); }
public override void StateStart() { lifeTimer = GameObject.FindGameObjectWithTag("LifeTimer").GetComponent<LifeTimer>(); Siasaki = GameObject.FindGameObjectWithTag("Player").GetComponent<SiasakiChanController>(); questFactory = GameObject.FindGameObjectWithTag("QuestFactory").GetComponent<QuestFactory>(); yakubin = this.Siasaki.yakubin.GetComponent<Yakubin>(); questFactory.InstantQuest(); lifeTimer.isStop = false; //コールバック登録 Siasaki.NomikomuCallback += NomikomiEvent; Siasaki.Nomikomu_to_Idle_Callback += Nomikomu_to_Idle_Event; Siasaki.CreateYakuCallback += CreateYakuEvent; Siasaki.Damage_to_Idle_Callback += Damage_to_Idle_Event; questFactory.DestroyQuestCallBack += QuestTimeUpEvent; }
/// <summary> /// Create a named autosplit for the specified quest and difficulty. /// </summary> /// <param name="questId">The quest.</param> /// <param name="difficulty">Difficulty for quest.</param> /// <returns>An autosplit for a specific quest.</returns> AutoSplit CreateForQuest(QuestId questId, GameDifficulty difficulty) { var quest = QuestFactory.Create(questId, 0); var name = quest != null ? quest.CommonName : "Quest"; // Add difficulty to name if above normal. if (difficulty == GameDifficulty.Nightmare) { name += " (NM)"; } if (difficulty == GameDifficulty.Hell) { name += " (H)"; } return(new AutoSplit(name, AutoSplit.SplitType.Quest, (short)questId, (short)difficulty)); }
public void OnQuestInput(QuestInputData data) { var newDis = data.GetValue(DistanceQuestInput.INPUT_DISTANCE); var newShare = data.GetValue(FacebookQuestInput.INPUT_SHARE); dbReader.totalDistance = Math.Max(newDis, dbReader.totalDistance); dbReader.totalShare = Math.Max((int)newShare, dbReader.totalShare); manager.UpdateQuest(data); if (manager.QuestIsFinish()) { dbReader.money += manager.GetQuest().rewardMoney; dbReader.exp += manager.GetQuest().rewardExp; manager.SetQuest(QuestFactory.Instance().GetQuest()); dbReader.SaveSimpleData(); } }
public void BufferLookup() { ushort[] questBuffer = new ushort[256]; var quests = QuestFactory.CreateListFromBuffer(questBuffer); Assert.AreEqual(28, quests.Count); Assert.AreEqual("Den of Evil", quests[5].Name); Assert.AreEqual(false, quests[5].IsBossQuest); Assert.AreEqual("Radament's Lair", quests[10].Name); Assert.AreEqual("Siege on Harrogath", quests[22].Name); Assert.AreEqual("Cow King", quests[27].Name); Assert.AreEqual(28, QuestFactory.CreateListFromBuffer(new ushort[1]).Count); }
public IActionResult GetQuest(int questId) { var quest = QuestFactory.GetQuest(questId); if (quest.RequirementToStart.NPCId.HasValue) { quest.RequirementToStart.NPCInfo = NPCFactory.GetNPC(quest.RequirementToStart.NPCId.Value); } if (quest.RequirementToComplete.NPCId.HasValue) { quest.RequirementToComplete.NPCInfo = NPCFactory.GetNPC(quest.RequirementToComplete.NPCId.Value); } if (quest == null) { return(NotFound()); } return(Json(quest)); }
public void ShouldReachAutosplits() { var splitOnGameStart = new AutoSplit( "game start", AutoSplit.SplitType.Special, 1, (short)GameDifficulty.Normal ); var splitOnGameClear = new AutoSplit( "100% done", AutoSplit.SplitType.Special, 2, (short)GameDifficulty.Normal ); var splitOnGameClearAllDifficulties = new AutoSplit( "100% done all difficulties", AutoSplit.SplitType.Special, 3, (short)GameDifficulty.Normal ); var splitOnCharLevel10 = new AutoSplit( "char level 10", AutoSplit.SplitType.CharLevel, 10, (short)GameDifficulty.Normal ); var splitOnArea1 = new AutoSplit( "area 1", AutoSplit.SplitType.Area, (int)Area.ROGUE_ENCAMPMENT, (short)GameDifficulty.Normal ); var splitOnItem1 = new AutoSplit( "item 1", AutoSplit.SplitType.Item, 1, (short)GameDifficulty.Normal ); var splitOnGem1 = new AutoSplit( "gem 1", AutoSplit.SplitType.Gems, 1, (short)GameDifficulty.Normal ); var splitOnQuest81 = new AutoSplit( "quest 81 (den of evil)", AutoSplit.SplitType.Quest, 81, (short)GameDifficulty.Normal ); var cfg = new Config(); cfg.Enabled = true; cfg.Splits = new List <AutoSplit>(); cfg.Splits.Add(splitOnGameStart); cfg.Splits.Add(splitOnGameClear); cfg.Splits.Add(splitOnGameClearAllDifficulties); cfg.Splits.Add(splitOnCharLevel10); cfg.Splits.Add(splitOnArea1); cfg.Splits.Add(splitOnItem1); cfg.Splits.Add(splitOnGem1); cfg.Splits.Add(splitOnQuest81); var config = new Mock <ApplicationConfig>(); config.Setup(x => x.PluginConf(It.IsAny <string>())).Returns(cfg); var configService = new Mock <IConfigService>(); configService.SetupGet(x => x.CurrentConfig).Returns(config.Object); var gameService = new Mock <IGameService>(); var diabloInterface = new Mock <IDiabloInterface>(); diabloInterface.Setup(x => x.configService).Returns(configService.Object); diabloInterface.Setup(x => x.game).Returns(gameService.Object); var autoSplitService = new Plugin(); autoSplitService.Initialize(diabloInterface.Object); var normalQuests = new List <Quest>() { QuestFactory.Create(QuestId.DenOfEvil, 0), QuestFactory.Create(QuestId.Andariel, 0), }; var nightmareQuests = new List <Quest>() { QuestFactory.Create(QuestId.DenOfEvil, 0), QuestFactory.Create(QuestId.Andariel, 0), }; var hellQuests = new List <Quest>() { QuestFactory.Create(QuestId.DenOfEvil, 0), QuestFactory.Create(QuestId.Andariel, 0), }; var quests = new Quests(new List <List <Quest> > { normalQuests, nightmareQuests, hellQuests, }); var itemStrings = new Dictionary <BodyLocation, string>(); var itemsIds = new List <int>(); var characterMock = new Mock <Character>(); characterMock.SetupGet(x => x.Level).Returns(9); characterMock.SetupGet(x => x.IsNewChar).Returns(true); characterMock.SetupGet(x => x.InventoryItemIds).Returns(itemsIds); var processInfo = new ProcessInfo(); var game = new Game(); game.Area = 0; game.Difficulty = GameDifficulty.Normal; game.PlayersX = 1; game.GameCount = 0; game.CharCount = 0; game.Character = characterMock.Object; game.Quests = quests; List <Monster> killedMonsters = null; var args = new DataReadEventArgs(processInfo, game, killedMonsters); // test autosplit by game start Assert.AreEqual(false, splitOnGameStart.IsReached); gameService.Raise(g => g.DataRead += null, args); Assert.AreEqual(true, splitOnGameStart.IsReached); // test autosplit by level Assert.AreEqual(false, splitOnCharLevel10.IsReached); gameService.Raise(g => g.DataRead += null, args); Assert.AreEqual(false, splitOnCharLevel10.IsReached); characterMock.SetupGet(x => x.Level).Returns(10); gameService.Raise(g => g.DataRead += null, args); Assert.AreEqual(true, splitOnCharLevel10.IsReached); // test autosplit by area Assert.AreEqual(false, splitOnArea1.IsReached); game.Area = (int)Area.ROGUE_ENCAMPMENT; gameService.Raise(g => g.DataRead += null, args); game.Area = (int)Area.ROGUE_ENCAMPMENT + 1; Assert.AreEqual(true, splitOnArea1.IsReached); // test autosplit by item Assert.AreEqual(false, splitOnItem1.IsReached); Assert.AreEqual(false, splitOnGem1.IsReached); itemsIds.Add(1); gameService.Raise(g => g.DataRead += null, args); Assert.AreEqual(true, splitOnItem1.IsReached); Assert.AreEqual(true, splitOnGem1.IsReached); // test autosplit by quest Assert.AreEqual(false, splitOnQuest81.IsReached); normalQuests.Clear(); normalQuests.Add(QuestFactory.Create(QuestId.DenOfEvil, 1 << 0)); normalQuests.Add(QuestFactory.Create(QuestId.Andariel, 0)); gameService.Raise(g => g.DataRead += null, args); Assert.AreEqual(true, splitOnQuest81.IsReached); // test autosplit on game clear Assert.AreEqual(false, splitOnGameClear.IsReached); normalQuests.Clear(); normalQuests.Add(QuestFactory.Create(QuestId.DenOfEvil, 1 << 0)); normalQuests.Add(QuestFactory.Create(QuestId.Andariel, 1 << 0)); gameService.Raise(g => g.DataRead += null, args); Assert.AreEqual(true, splitOnGameClear.IsReached); // test autosplit on game clear all difficulties Assert.AreEqual(false, splitOnGameClearAllDifficulties.IsReached); nightmareQuests.Clear(); nightmareQuests.Add(QuestFactory.Create(QuestId.DenOfEvil, 1 << 0)); nightmareQuests.Add(QuestFactory.Create(QuestId.Andariel, 1 << 0)); gameService.Raise(g => g.DataRead += null, args); Assert.AreEqual(false, splitOnGameClearAllDifficulties.IsReached); hellQuests.Clear(); hellQuests.Add(QuestFactory.Create(QuestId.DenOfEvil, 1 << 0)); hellQuests.Add(QuestFactory.Create(QuestId.Andariel, 1 << 0)); gameService.Raise(g => g.DataRead += null, args); Assert.AreEqual(true, splitOnGameClearAllDifficulties.IsReached); }
public IActionResult List( [FromQuery] string searchFor = null, [FromQuery] int startPosition = 0, [FromQuery] int?count = null ) => Json(QuestFactory.GetQuests(searchFor, startPosition, count));
public QuestManagerFactory(GameObjectManager gom) { questFactory = new QuestFactory(gom); }
private StoryManager() { QuestFactory questFactory = new QuestFactory(); ActiveQuest = questFactory.GetQuests(); }
private void FillComboBoxes(AutoSplit autosplit) { if (autosplit.IsDifficultyIgnored()) { cmbDifficulty.Hide(); } else { cmbDifficulty.Show(); cmbDifficulty.SelectedIndex = autosplit.Difficulty; } cmbValue.Items.Clear(); switch (autosplit.Type) { case AutoSplit.SplitType.CharLevel: for (int i = 1; i < 100; i++) { cmbValue.Items.Add(new Item("" + i, i)); } break; case AutoSplit.SplitType.Area: foreach (Area area in Area.getAreaList()) { if (area.Id > 0) { cmbValue.Items.Add(new Item(area.ToString(), area.Id)); } } break; case AutoSplit.SplitType.Item: cmbValue.Items.Add(new Item(LABEL_HORADRIC_CUBE, (int)D2Data.ItemId.HORADRIC_CUBE)); cmbValue.Items.Add(new Item(LABEL_HORADRIC_SHAFT, (int)D2Data.ItemId.HORADRIC_SHAFT)); cmbValue.Items.Add(new Item(LABEL_HORADRIC_AMULET, (int)D2Data.ItemId.HORADRIC_AMULET)); cmbValue.Items.Add(new Item(LABEL_KHALIMS_EYE, (int)D2Data.ItemId.KHALIM_EYE)); cmbValue.Items.Add(new Item(LABEL_KHALIMS_HEART, (int)D2Data.ItemId.KHALIM_HEART)); cmbValue.Items.Add(new Item(LABEL_KHALIMS_BRAIN, (int)D2Data.ItemId.KHALIM_BRAIN)); break; case AutoSplit.SplitType.Quest: foreach (QuestId questId in Enum.GetValues(typeof(QuestId))) { var quest = QuestFactory.Create(questId, 0); var name = (quest.IsBossQuest ? "" : $"Act {quest.Act} - ") + quest.CommonName; cmbValue.Items.Add(new Item(name, (int)questId)); } break; case AutoSplit.SplitType.Special: cmbValue.Items.Add(new Item(LABEL_GAME_START, (int)AutoSplit.Special.GameStart)); cmbValue.Items.Add(new Item(LABEL_CLEAR_100_PERCENT, (int)AutoSplit.Special.Clear100Percent)); cmbValue.Items.Add(new Item(LABEL_CLEAR_100_PERCENT_ALL, (int)AutoSplit.Special.Clear100PercentAllDifficulties)); break; case AutoSplit.SplitType.Gems: foreach (Gem gem in Enum.GetValues(typeof(Gem))) { var name = Regex.Replace(gem.ToString(), @"(\B[A-Z])", " $1"); cmbValue.Items.Add(new Item(name, (int)gem)); } break; } }
private string QuestName(QuestId questId) { var quest = QuestFactory.Create(questId, 0); return((quest.IsBossQuest ? "" : $"Act {quest.Act} - ") + quest.CommonName); }
private void Question_Load(object sender, EventArgs e) { quest = QuestFactory.GenerateQuestOnCategory(); this.questionLabel.Text = quest.ToString(); }