Ejemplo n.º 1
0
        public void Awake()
        {
            instance = this;
            //Create Main game completable
            var trackerConfigs = Game.Instance.GameState.Data.getObjects <TrackerConfig>();

            PrepareTracker(trackerConfigs.Count == 0 ? new TrackerConfig() : trackerConfigs[0]);

            Completable mainGame = new Completable();

            Completable.Milestone gameStart = new Completable.Milestone();
            gameStart.setType(Completable.Milestone.MilestoneType.SCENE);
            gameStart.setId(Game.Instance.GameState.InitialChapterTarget.getId());
            mainGame.setStart(gameStart);
            mainGame.setId(Game.Instance.GameState.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);

            var completables = Game.Instance.GameState.GetObjects <Completable>();

            foreach (Completable part in completables)
            {
                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);

            completables.Insert(0, mainGame);

            SetCompletables(completables);

            Game.Instance.GameState.OnConditionChanged += (_, __) => ConditionChanged();
            Game.Instance.OnTargetChanged     += TargetChanged;
            Game.Instance.OnElementInteracted += ElementInteracted;
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        // #########################################
        // ############### COMPLETABLES ############
        // #########################################



        private void InitCompletables()
        {
            //Create Main game completabl
            Completable mainGame = new Completable();

            Completable.Milestone gameStart = new Completable.Milestone();
            gameStart.setType(Completable.Milestone.MilestoneType.SCENE);
            gameStart.setId(Game.Instance.GameState.InitialChapterTarget.getId());
            mainGame.setStart(gameStart);
            mainGame.setId(Game.Instance.GameState.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);

            completables = new List <Completable>(Game.Instance.GameState.GetObjects <Completable>());

            foreach (Completable part in completables)
            {
                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);

            completables.Insert(0, mainGame);

            SetCompletables(completables);
        }
Ejemplo n.º 4
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);
        }
Ejemplo n.º 5
0
        private Completable.Milestone parseMilestone(XmlElement element, params object[] parameters)
        {
            Completable.Milestone milestone = new Completable.Milestone();

            string tmpString = "";

            tmpString = element.GetAttribute("type");
            if (!string.IsNullOrEmpty(tmpString))
            {
                milestone.setType(ParseEnum <Completable.Milestone.MilestoneType>(tmpString));
            }

            if (milestone.getType() != Completable.Milestone.MilestoneType.CONDITION)
            {
                tmpString = element.GetAttribute("targetId");
                if (!string.IsNullOrEmpty(tmpString))
                {
                    milestone.setId(tmpString);
                }
            }
            else
            {
                XmlElement c = (XmlElement)element.SelectSingleNode("condition");

                if (c != null)
                {
                    milestone.setConditions(DOMParserUtility.DOMParse(c, parameters) as Conditions ?? new Conditions());
                }
            }

            tmpString = element.GetAttribute("progress");
            if (!string.IsNullOrEmpty(tmpString))
            {
                milestone.setProgress(float.Parse(tmpString));
            }

            return(milestone);
        }
Ejemplo n.º 6
0
 public MilestoneController(Completable.Milestone milestone)
 {
     Milestone = milestone;
 }
 public MilestoneController(Completable.Milestone milestone)
 {
     SetMilestone(milestone);
 }
 internal void SetMilestone(Completable.Milestone value)
 {
     milestone = value;
 }
Ejemplo n.º 9
0
 public MilestoneDataControl(Completable.Milestone milestone)
 {
     this.milestone            = milestone;
     this.conditionsController = new ConditionsController(milestone.getConditions());
 }