public override bool addElement(int type, string id)
        {
            if (!canAddElement(type))
            {
                return(false);
            }

            var milestone = new Completable.Milestone();

            progress.addMilestone(milestone);
            milestoneDataControls.Add(new MilestoneDataControl(milestone));

            return(true);
        }
Beispiel #2
0
        public void Init(Completable.Milestone mil)
        {
            editor = EditorWindow.GetWindow <MilestoneEditorWindow>();

            editor.Milestone = mil;

            scenes     = Controller.getInstance().getSelectedChapterDataControl().getScenesList().getScenesIDs();
            characters = Controller.getInstance().getSelectedChapterDataControl().getNPCsList().getNPCsIDs();
            items      = Controller.getInstance().getSelectedChapterDataControl().getItemsList().getItemsIDs();

            List <string> tmplist = new List <string>();

            foreach (Completable c in Controller.getInstance().getSelectedChapterDataControl().getCompletables())
            {
                tmplist.Add(c.getId());
            }
            completables = tmplist.ToArray();

            selectedId = 0;
            antiguo    = milestone.getType();

            if (milestone.getId() != "")
            {
                string[] tmp = { };
                switch (milestone.getType())
                {
                case Completable.Milestone.MilestoneType.CHARACTER: tmp = characters; break;

                case Completable.Milestone.MilestoneType.ITEM: tmp = items; break;

                case Completable.Milestone.MilestoneType.SCENE: tmp = scenes; break;

                case Completable.Milestone.MilestoneType.COMPLETABLE: break;
                }

                for (int i = 0; i < tmp.Length; i++)
                {
                    if (tmp[i] == milestone.getId())
                    {
                        selectedId = i;
                        break;
                    }
                }
            }
        }
Beispiel #3
0
        public static XmlElement buildMilestoneDOM(Completable.Milestone milestone, string elementName = "milestone")
        {
            XmlElement milestoneNode = Writer.GetDoc().CreateElement(elementName);

            milestoneNode.SetAttribute("type", milestone.getType().ToString());

            if (milestone.getType() != Completable.Milestone.MilestoneType.CONDITION)
            {
                milestoneNode.SetAttribute("targetId", milestone.getId());
            }
            else
            {
                DOMWriterUtility.DOMWrite(milestoneNode, milestone.getConditions());
            }

            if (milestone.getProgress() >= 0)
            {
                milestoneNode.SetAttribute("progress", milestone.getProgress().ToString());
            }

            return(milestoneNode);
        }
Beispiel #4
0
 public MilestoneController(Completable.Milestone milestone)
 {
     Milestone = milestone;
 }
        public void OnGUI()
        {
            GUILayout.Label("Progress is given by: ");

            progress.setType((Completable.Progress.ProgressType)EditorGUILayout.Popup((int)progress.getType(), typeoptions));

            GUILayout.Label("Milestones: ");

            //GUILayout.BeginArea(tableRect);
            GUILayout.BeginHorizontal();
            GUILayout.BeginVertical(GUILayout.Width(position.width * 0.9f));
            GUILayout.BeginHorizontal();
            if (progress.getType() == Completable.Progress.ProgressType.SUM)
            {
                GUILayout.Box("Time", GUILayout.Width(position.width * 0.88f));
            }
            else
            {
                GUILayout.Box("Time", GUILayout.Width(position.width * 0.44f));
                GUILayout.Box("Progress", GUILayout.Width(position.width * 0.44f));
            }
            GUILayout.EndHorizontal();

            scrollPosition = GUILayout.BeginScrollView(scrollPosition);
            foreach (Completable.Milestone milestone in progress.getMilestones())
            {
                GUILayout.BeginHorizontal();
                if (progress.getType() == Completable.Progress.ProgressType.SUM)
                {
                    if (GUILayout.Button(milestone.ToString(), GUILayout.Width(position.width * 0.88f)))
                    {
                        MilestoneEditorWindow window = ScriptableObject.CreateInstance <MilestoneEditorWindow>();
                        window.Init(milestone);
                    }
                }
                else
                {
                    if (GUILayout.Button(milestone.ToString(), GUILayout.Width(position.width * 0.44f)))
                    {
                        MilestoneEditorWindow window = ScriptableObject.CreateInstance <MilestoneEditorWindow>();
                        window.Init(milestone);
                    }

                    milestone.setProgress(EditorGUILayout.Slider(milestone.getProgress(), 0, 1, GUILayout.Width(position.width * 0.44f)));
                }

                GUILayout.EndHorizontal();
            }
            GUILayout.EndScrollView();
            GUILayout.EndVertical();


            //GUILayout.EndArea();


            //GUILayout.BeginArea(rightPanelRect);
            GUILayout.BeginVertical(GUILayout.Width(0.1f * position.width));
            if (GUILayout.Button(addTexture))
            {
                progress.addMilestone(new Completable.Milestone());
            }
            if (GUILayout.Button(moveUp))
            {
                int pos = progress.getMilestones().IndexOf(selectedMilestone);
                if (pos > 0)
                {
                    Completable.Milestone tmp = progress.getMilestones()[pos - 1];
                    progress.getMilestones()[pos - 1] = progress.getMilestones()[pos];
                    progress.getMilestones()[pos]     = tmp;
                }
            }
            if (GUILayout.Button(moveDown))
            {
                int pos = progress.getMilestones().IndexOf(selectedMilestone);
                if (pos < progress.getMilestones().Count - 1)
                {
                    Completable.Milestone tmp = progress.getMilestones()[pos + 1];
                    progress.getMilestones()[pos + 1] = progress.getMilestones()[pos];
                    progress.getMilestones()[pos]     = tmp;
                }
            }
            if (GUILayout.Button(clearImg))
            {
            }
            GUILayout.EndVertical();
            GUILayout.EndHorizontal();
        }
 public MilestoneDataControl(Completable.Milestone milestone)
 {
     this.milestone            = milestone;
     this.conditionsController = new ConditionsController(milestone.getConditions());
 }
Beispiel #7
0
        protected void Awake()
        {
            Game.instance = this;
            executeStack  = new Stack <KeyValuePair <Interactuable, ExecutionEvent> >();

            skin = Resources.Load("basic") as GUISkin;

            if (!string.IsNullOrEmpty(gamePath))
            {
                ResourceManager = ResourceManagerFactory.CreateExternal(gamePath + gameName);
            }
            else
            {
                if (!string.IsNullOrEmpty(gameName))
                {
                    ResourceManager = ResourceManagerFactory.CreateLocal(gameName, useSystemIO ? ResourceManager.LoadingType.SYSTEM_IO : ResourceManager.LoadingType.RESOURCES_LOAD);
                }
                else
                {
                    ResourceManager = ResourceManagerFactory.CreateLocal("CurrentGame/", useSystemIO ? ResourceManager.LoadingType.SYSTEM_IO : ResourceManager.LoadingType.RESOURCES_LOAD);
                }
            }

            if (Game.GameToLoad != "")
            {
                gameName    = Game.GameToLoad;
                gamePath    = ResourceManager.getCurrentDirectory() + System.IO.Path.DirectorySeparatorChar + "Games" + System.IO.Path.DirectorySeparatorChar;
                useSystemIO = true;
            }

            AdventureData    data       = new AdventureData();
            var              incidences = new List <Incidence>();
            AdventureHandler adventure  = new AdventureHandler(data, ResourceManager, incidences);

            adventure.Parse("descriptor.xml");
            PrepareTracker(data.getTrackerConfig());

            game_state = new GameState(data);

            //Create Main game completable

            Completable mainGame = new Completable();

            Completable.Milestone gameStart = new Completable.Milestone();
            gameStart.setType(Completable.Milestone.MilestoneType.SCENE);
            gameStart.setId(data.getChapters()[0].getInitialChapterTarget().getId());
            mainGame.setStart(gameStart);
            mainGame.setId(data.getTitle());
            mainGame.setType(Completable.TYPE_GAME);

            Completable.Milestone gameEnd = new Completable.Milestone();
            gameEnd.setType(Completable.Milestone.MilestoneType.ENDING);
            mainGame.setEnd(gameEnd);

            Completable.Progress gameProgress = new Completable.Progress();
            gameProgress.setType(Completable.Progress.ProgressType.SUM);

            Completable.Score mainScore = new Completable.Score();
            mainScore.setMethod(Completable.Score.ScoreMethod.AVERAGE);

            foreach (Completable part in GameState.GetCompletables())
            {
                Completable.Milestone tmpMilestone = new Completable.Milestone();
                tmpMilestone.setType(Completable.Milestone.MilestoneType.COMPLETABLE);
                tmpMilestone.setId(part.getId());
                gameProgress.addMilestone(tmpMilestone);

                Completable.Score tmpScore = new Completable.Score();
                tmpScore.setMethod(Completable.Score.ScoreMethod.SINGLE);
                tmpScore.setType(Completable.Score.ScoreType.COMPLETABLE);
                tmpScore.setId(part.getId());
                mainScore.addSubScore(tmpScore);
            }
            mainGame.setProgress(gameProgress);
            mainGame.setScore(mainScore);

            GameState.GetCompletables().Insert(0, mainGame);

            CompletablesController.Instance.SetCompletables(GameState.GetCompletables());

            bookDrawer = new BookDrawer(ResourceManager);
        }