private void Init()
 {
     // First run
     targetOnExit = Game.Instance.GameState.GetChapterTarget(Game.Instance.GameState.CurrentTarget);
     Game.Instance.GameState.BeginChangeAmbit();
     exitEffects = toRun.ExitMb.GetExitEffects(out exits);
 }
Example #2
0
        public void exit()
        {
            //Game.Instance.hideMenu ();
            if (ConditionChecker.check(ed.getConditions()))
            {
                EffectHolder effect = new EffectHolder(ed.getEffects());

                if (Game.Instance.GameState.isCutscene(ed.getNextSceneId()))
                {
                    effect.effects.Add(new EffectHolderNode(new TriggerCutsceneEffect(ed.getNextSceneId())));
                }
                else
                {
                    effect.effects.Add(new EffectHolderNode(new TriggerSceneEffect(ed.getNextSceneId(), 0, 0, ed.getTransitionTime(), ed.getTransitionType())));
                }

                if (ed.getPostEffects() != null)
                {
                    EffectHolder eh = new EffectHolder(ed.getPostEffects());
                    foreach (EffectHolderNode ehn in eh.effects)
                    {
                        effect.effects.Add(ehn);
                    }
                }

                if (Game.Instance.getAlternativeTarget() != null)
                {
                    if (Game.Instance.getAlternativeTarget().getXApiType() == "menu")
                    {
                        Tracker.T.alternative.Selected(Game.Instance.getAlternativeTarget().getId(), ed.getNextSceneId(), AlternativeTracker.Alternative.Menu);
                    }
                    else
                    {
                        Tracker.T.alternative.Selected(Game.Instance.getAlternativeTarget().getId(), ed.getNextSceneId(), true);
                    }
                }

                Game.Instance.Execute(effect);
                GUIManager.Instance.setCursor("default");
            }
            else
            {
                if (Game.Instance.getAlternativeTarget() != null)
                {
                    if (Game.Instance.getAlternativeTarget().getXApiType() != "menu")
                    {
                        Tracker.T.alternative.Selected(Game.Instance.getAlternativeTarget().getId(), "Incorrect", false);
                    }
                }

                if (ed.isHasNotEffects())
                {
                    Game.Instance.Execute(new EffectHolder(ed.getNotEffects()));
                }
            }

            Tracker.T.RequestFlush();
        }
Example #3
0
 private void Init()
 {
     // First run
     targetOnExit = Game.Instance.GameState.GetChapterTarget(Game.Instance.GameState.CurrentTarget);
     try
     {
         trace = toRun.ExitMb.TraceExit(exits, targetOnExit);
         trace?.SetPartial();
     }
     catch (Exception ex)
     {
         Debug.Log("Error while tracing the exit! (" + ex.Message + ", " + ex.StackTrace + ")");
     }
     Game.Instance.GameState.BeginChangeAmbit(trace);
     exitEffects = toRun.ExitMb.GetExitEffects(out exits);
 }
Example #4
0
            public bool execute()
            {
                if (exitEffects == null)
                {
                    Game.Instance.GameState.BeginChangeAmbit();
                    targetOnExit = Game.Instance.GameState.GetChapterTarget(Game.Instance.GameState.CurrentTarget);
                    exitEffects  = toRun.ExitMb.GetExitEffects(out exit);
                }

                var forceWait = exitEffects.execute();

                if (!forceWait)
                {
                    Game.Instance.GameState.EndChangeAmbit();
                    toRun.ExitMb.TrackExit(exit, targetOnExit);
                }
                return(forceWait);
            }
Example #5
0
        private EffectHolder GetExitEffects(out bool exited)
        {
            var     ed      = area.Element as Exit;
            Effects effects = new Effects();

            exited = false;
            if (ConditionChecker.check(ed.getConditions()))
            {
                exited = true;
                effects.AddRange(ed.getEffects());

                if (Game.Instance.GameState.IsCutscene(ed.getNextSceneId()))
                {
                    effects.Add(new TriggerCutsceneEffect(ed.getNextSceneId()));
                }
                else
                {
                    effects.Add(new TriggerSceneEffect(ed.getNextSceneId(), ed.getDestinyX(), ed.getDestinyY(), ed.getDestinyScale(), ed.getTransitionTime(), ed.getTransitionType()));
                }

                if (ed.getPostEffects() != null)
                {
                    effects.AddRange(ed.getPostEffects());
                }
            }
            else
            {
                if (ed.isHasNotEffects())
                {
                    effects.AddRange(ed.getNotEffects());
                }
            }

            var effectHolder = new EffectHolder(effects);

            if (exited)
            {
                effectHolder.effects[ed.getEffects().Count].AddAdditionalInfo("not_trace", true);
            }

            return(effectHolder);
        }
Example #6
0
        public ConversationNodeHolder(ConversationNode node)
        {
            this.node = node;

            if (node != null)
            {
                if (node is DialogueConversationNode)
                {
                    var dialog = node as DialogueConversationNode;
                    this.additional_effects = new EffectHolder(dialog.getEffects());
                    this.child = 0;
                }
                else if (node is OptionConversationNode)
                {
                    var option = node as OptionConversationNode;
                    this.additional_effects = new EffectHolder(option.getEffects());
                    this.child      = -2;
                    this.showOption = option.isShowUserOption();
                }
            }
        }
        public ConversationNodeHolder(ConversationNode node)
        {
            this.node = node;

            if (node != null)
            {
                switch (node.getType())
                {
                case ConversationNodeViewEnum.DIALOGUE:
                    var dialog = node as DialogueConversationNode;
                    this.additional_effects = new EffectHolder(dialog.getEffects());
                    this.child = 0;
                    break;

                case ConversationNodeViewEnum.OPTION:
                    var option = node as OptionConversationNode;
                    this.additional_effects = new EffectHolder(option.getEffects());
                    this.child = -2;
                    break;
                }
            }
        }
Example #8
0
        public ConversationNodeHolder(GraphConversationHolder holder, Conversation conversation, ConversationNode node)
        {
            this.holder       = holder;
            this.conversation = conversation;
            this.node         = node;
            nodeIndex         = conversation.getAllNodes().IndexOf(node);

            if (node != null)
            {
                if (node is DialogueConversationNode)
                {
                    var dialog = node as DialogueConversationNode;
                    this.additional_effects = new EffectHolder(dialog.getEffects());
                    this.child = 0;
                }
                else if (node is OptionConversationNode)
                {
                    var option = node as OptionConversationNode;
                    this.additional_effects = new EffectHolder(option.getEffects());
                    this.child      = -2;
                    this.showOption = option.isShowUserOption();
                }
            }
        }