Ejemplo n.º 1
0
    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));
        }
    }
Ejemplo n.º 5
0
 public QuestSet(QuestSet toCopy)
 {
     questSetName = toCopy.questSetName;
     allSetQuests = new List <Quest>(toCopy.allSetQuests);
 }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
 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));
 }