Exemplo n.º 1
0
    public void startNewQuest(string missionName)
    {
        if (!offloadingMissions.ContainsKey(missionName))
        {
            return;
        }
        var mission = SaveHandler.instance.GetSave().missions.Find(m => m.name == missionName);

        if (mission.prerequisites != null && SaveHandler.instance.GetSave().missions.Exists(m =>
                                                                                            mission.prerequisites.Contains(m.name) &&
                                                                                            m.status != Mission.MissionStatus.Complete))
        {
            return;
        }

        var path = offloadingMissions[missionName];

        offloadingMissions.Remove(missionName);
        var XMLImport = new XMLImportExport();
        var canvas    = XMLImport.Import(path) as QuestCanvas;

        if (canvas != null)
        {
            var traverser = new MissionTraverser(canvas);
            if (traverser != null)
            {
                traversers.Add(traverser);
                var start = traverser.findRoot();
                if (start != null)
                {
                    start.TryAddMission();
                }

                traverser.StartQuest();
            }
        }
    }
Exemplo n.º 2
0
 public void RemoveTraverser(MissionTraverser traverser)
 {
     traversers.Remove(traverser);
 }