private static BountyData GetDynamicBounty(QuestData quest) { var questId = quest.QuestId; if (DynamicBountyDirectory.ContainsKey(questId)) { var type = DynamicBountyDirectory[questId]; var bountyData = new BountyData(); switch (type) { case DynamicBountyType.BoundShaman: case DynamicBountyType.BlackKingsLegacy: case DynamicBountyType.PlagueOfBurrowers: bountyData = CreateChestAndClearBounty(quest); break; case DynamicBountyType.CursedShrines: bountyData = CreateMultiShrineBounty(quest); break; default: Logger.Error("Dynamic Bounty is not supported {0} ({1})", quest.Name, quest.QuestId, type, bountyData); break; } Logger.Debug("Created Dynamic Bounty for {0} ({1}) Type={2} {3}", quest.Name, quest.QuestId, type, bountyData); return bountyData; } return null; }
public QuestStepData(QuestData questData, QuestStep questStep) { StepId = questStep.StepId; Name = questStep.Name; Objectives = new List<QuestStepObjectiveData>(); foreach (var stepObjective in questStep.QuestStepObjectiveSet.QuestStepObjectives) { Objectives.Add(new QuestStepObjectiveData(questData, this, stepObjective)); } }
private static BountyData CreateChestAndClearBounty(QuestData quest) { return new BountyData() { QuestId = quest.QuestId, Act = quest.Act, WorldId = quest.Waypoint.WorldSnoId, QuestType = BountyQuestType.SpecialEvent, //WaypointNumber = quest.Waypoint.Number, Coroutines = new List<ISubroutine> { new EnterLevelAreaCoroutine(quest.QuestId, quest.Waypoint.WorldSnoId, BountyHelpers.DynamicBountyPortals.Values.ToList()), new InteractWithGizmoCoroutine(quest.QuestId, -1, 365097, 2912417, 5), new ClearAreaForNSecondsCoroutine(quest.QuestId, 60, 0, 0, 45), new ClearLevelAreaCoroutine(quest.QuestId), } }; }
public static QuestData GetQuestData(int questId) { var bountyInfo = GetBountyInfo(questId); var questData = new QuestData(); questData.QuestId = questId; //(int)bountyInfo.Quest; questData.Steps = new List<QuestStepData>(); if (bountyInfo == null) return questData; questData.Name = bountyInfo.Info.DisplayName.Replace("Bounty: ", string.Empty); questData.InternalName = bountyInfo.Quest.ToString(); questData.Act = bountyInfo.Act; questData.ActName = bountyInfo.Act.ToString(); questData.LevelAreaIds = new HashSet<int>(bountyInfo.LevelAreas.Select(la => (int)la)); questData.Waypoint = WaypointFactory.GetWaypointByLevelAreaId((int)bountyInfo.StartingLevelArea); foreach (var step in bountyInfo.Info.QuestRecord.Steps) { var questStep = new QuestStepData(questData, step); questData.Steps.Add(questStep); } //if (questData.QuestType == BountyQuestType.Unknown) //{ // questData.QuestType = BountyQuestTypeFactory.GetQuestType(bountyInfo); //} //var bountyScripts = new BountyScripts(); //if (bountyScripts.ContainsKey(questId)) //{ // questData.BountyScript = bountyScripts[questId]; // questData.BountyScript.Reset(); //} //Logger.Debug("[QuestData] Saving Quest {0} ({1})", questData.Name, questData.QuestId); //questData.Save(); return questData; }
public static QuestData GetQuestData(int questId) { var bountyInfo = GetBountyInfo(questId); var questData = new QuestData(); questData.QuestId = (int)bountyInfo.Quest; questData.Name = bountyInfo.Info.DisplayName.Replace("Bounty: ", string.Empty); questData.InternalName = bountyInfo.Quest.ToString(); questData.Act = bountyInfo.Act; questData.ActName = bountyInfo.Act.ToString(); questData.Steps = new List <QuestStepData>(); questData.LevelAreaIds = new HashSet <int>(bountyInfo.LevelAreas.Select(la => (int)la)); foreach (var step in bountyInfo.Info.QuestRecord.Steps) { var questStep = new QuestStepData(questData, step); questData.Steps.Add(questStep); } //if (questData.QuestType == BountyQuestType.Unknown) //{ // questData.QuestType = BountyQuestTypeFactory.GetQuestType(bountyInfo); //} //var bountyScripts = new BountyScripts(); //if (bountyScripts.ContainsKey(questId)) //{ // questData.BountyScript = bountyScripts[questId]; // questData.BountyScript.Reset(); //} //Logger.Debug("[QuestData] Saving Quest {0} ({1})", questData.Name, questData.QuestId); //questData.Save(); return(questData); }
public QuestStepObjectiveData(QuestData questData, QuestStepData questStepData, QuestStepObjective objective) { _questData = questData; _questStepData = questStepData; ObjectiveType = objective.ObjectiveType; ObjectiveTypeName = objective.ObjectiveType.ToString(); Name = objective.StepObjectiveName; }
private static BountyData CreateMultiShrineBounty(QuestData quest) { return new BountyData() { QuestId = quest.QuestId, Act = quest.Act, WorldId = quest.Waypoint.WorldSnoId, QuestType = BountyQuestType.SpecialEvent, //WaypointNumber = quest.Waypoint.Number, Coroutines = new List<ISubroutine> { new EnterLevelAreaCoroutine(quest.QuestId, quest.Waypoint.WorldSnoId, BountyHelpers.DynamicBountyPortals.Values.ToList()), new ClearLevelAreaCoroutine(quest.QuestId), new InteractWithGizmoCoroutine(448214, 443678, 445737, -1, 5, 1, 10, true), new ClearLevelAreaCoroutine(quest.QuestId) } }; }