public void AddToLibrary(Quest newQuest, string setName) { bool alreadyExistingSet = false; for (int i = 0; i < allQuestSets.Count; i++) { QuestSet questSet = allQuestSets[i]; if (questSet.questSetName == setName) { alreadyExistingSet = true; // Ici, j'ai essayé de faire en sorte que mes quêtes s'associent automatiquement, sans succès /*if (questSet.allSetQuests == null) * questSet.allSetQuests = new List<Quest>(); * * if (questSet.allSetQuests.Contains(newQuest)) * break; * * allQuestSets[i].allSetQuests.Add(newQuest); * break;*/ } } if (!alreadyExistingSet) { QuestSet newQuestSet = new QuestSet(setName); // Ici, j'ai essayé de faire en sorte que mes quêtes s'associent automatiquement, sans succès //newQuestSet.allSetQuests.Add(newQuest); allQuestSets.Add(newQuestSet); } }
static QuestSet ExtractQuestSet(OneWayTreeNode node) { QuestSet set = new QuestSet(); OneWayTreeNode[] nodes = node.rAsList(); QuestInfo[] infos = new QuestInfo[nodes.Length]; for (int i = 0; i < nodes.Length; i++) { infos[i] = nodes[i].data; } set.quests = infos; return(set); }
public static OneWayTreeNode LoadTree(string QUESTS_LOAD_PATH, string QUESTTREE_LOAD_PATH) { QuestSet qs = LoadJsonFiles.LoadJsonToSerializable <QuestSet>(QUESTS_LOAD_PATH); if (qs == null) { return(null); } return(OneWayTreeNode.ConstructQuestTree( qs.quests, LoadJsonFiles.LoadJsonToSerializable <QuestTreeDirections>(QUESTTREE_LOAD_PATH) )); }
internal void PickQuestFromList(int i) { // also pick next quest. QuestSet data = manager.selectedQuests; if (i < data.quests.Length) { Debug.Log("Setting active quest " + i + " " + (i < manager.selectedQuests.quests.Length) + " " + manager.selectedQuests.quests[i]); QuestInfo v1 = data.quests[i]; manager.executingQuest = v1; } else { Debug.Log("Setting active quest " + i + " " + (i < manager.selectedQuests.quests.Length)); } }
public QuestSet(QuestSet toCopy) { questSetName = toCopy.questSetName; allSetQuests = new List <Quest>(toCopy.allSetQuests); }
private void SaveQuestLine() { MessageBox.Show("Do not use this to overwrite your original *.hqm file! This is still incomplete! You have been warned."); SelectTargetFileMessage message = new SelectTargetFileMessage { FileExtension = ".hqm", FileExtensionFilter = "HQM Files (*.hqm)|*.hqm|All Files (*.*)|*.*", PromptForOverwrite = true }; this.MessengerInstance.Send(message); if (String.IsNullOrEmpty(message.SelectedFilePath)) { return; } QuestLine questLine = new QuestLine(); questLine.Version = 20; questLine.PassCode = this.passCode; questLine.Description = this.description; int maxQuestSetId = this.questSetsMutable.Max(x => x.Id); questLine.QuestSets = new QuestSet[this.questSetsMutable.Count]; for (int questSetIndex = 0; questSetIndex < questLine.QuestSets.Length; questSetIndex++) { var questSet = this.questSetsMutable[questSetIndex]; // TODO: preserve old IDs, probably with a Dictionary<int, int>? // Remember newly created ones will have negative IDs. questSet.Id = questSetIndex; QuestSet outputQuestSet = questLine.QuestSets[questSetIndex] = new QuestSet(); outputQuestSet.Id = questSetIndex; outputQuestSet.Name = questSet.Name; outputQuestSet.Description = String.Empty; } var quests = this.questSetsMutable.SelectMany(questSet => questSet.Quests).ToArray(); // TODO: preserve old IDs, probably with a Dictionary<int, int>? // Remember newly created ones will have negative IDs. for (int questIndex = 0; questIndex < quests.Length; questIndex++) { quests[questIndex].Id = questIndex; } questLine.Quests = new Quest[quests.Length]; for (int questIndex = 0; questIndex < questLine.Quests.Length; questIndex++) { var quest = quests[questIndex]; var outputQuest = questLine.Quests[questIndex] = new Quest(); outputQuest.Id = questIndex; outputQuest.Name = quest.Name; outputQuest.Description = quest.Description; outputQuest.Icon = Conversions.ItemStackViewModelToItemStack(quest.Icon); outputQuest.XPos = quest.XPos; outputQuest.YPos = quest.YPos; outputQuest.IsBig = quest.IsBig; outputQuest.QuestSetId = quest.QuestSet.Id; outputQuest.ModifiedParentRequirementCount = quest.ModifiedParentRequirement.UseModifiedParentRequirement ? quest.ModifiedParentRequirement.ModifiedParentRequirementCount : default(int?); outputQuest.RepeatType = quest.RepeatOption.RepeatType; outputQuest.RepeatIntervalHours = quest.RepeatOption.RepeatIntervalHours; outputQuest.TriggerType = quest.TriggerOption.TriggerType; outputQuest.TriggerTaskCount = quest.TriggerOption.TaskCount; outputQuest.ReputationRewards = quest.ReputationRewards.Select(reward => new ReputationReward { Id = reward.ReputationId, Value = reward.Value }).ToArray(); // TODO: tasks. outputQuest.Tasks = new QuestTask[0]; } foreach (var questLink in this.questSetsMutable.SelectMany(questSet => questSet.QuestLinks).Concat(this.crossSetQuestLinksMutable)) { var q = questLine.Quests[questLink.ToQuest.Id]; q.RequiredQuestIds = (q.RequiredQuestIds ?? Enumerable.Empty <int>()).Concat(new[] { questLink.FromQuest.Id }).ToArray(); } questLine.Reputations = new Reputation[this.reputationsMutable.Count]; for (int reputationIndex = 0; reputationIndex < questLine.Reputations.Length; reputationIndex++) { questLine.Reputations[reputationIndex] = Conversions.ReputationViewModelToReputation(this.reputationsMutable[reputationIndex]); } // TODO: bags. questLine.Tiers = new RewardBagTier[0]; questLine.Bags = new RewardBag[0]; using (var stream = File.OpenWrite(message.SelectedFilePath)) { new HQMQuestLineWriter().WriteQuestLine(questLine, stream); } }
public XamlQuestSet(QuestSet questSet) { this.Id = questSet.Id; this.Name = questSet.Name; this.Description = questSet.Description; this.ReputationBars.CopyFrom(questSet.ReputationBars, bar => new XamlReputationBar(bar)); }