Esempio n. 1
0
        protected void PlayStartCutscene()
        {
            KickStarter.stateHandler.PlayGlobalOnStart();

            KickStarter.eventManager.Call_OnStartScene();

            switch (actionListSource)
            {
            case ActionListSource.InScene:
                if (cutsceneOnStart)
                {
                    cutsceneOnStart.Interact();
                }
                break;

            case ActionListSource.AssetFile:
                if (actionListAssetOnStart)
                {
                    actionListAssetOnStart.Interact();
                }
                break;

            default:
                break;
            }
        }
Esempio n. 2
0
        /**
         * <summary>Creates and displays the correct InvItem, based on the current Recipe, provided craftingType = CraftingElementType.Output.</summary>
         */
        public void SetOutput()
        {
            if (craftingType != CraftingElementType.Output)
            {
                return;
            }

            invInstances = new List <InvInstance>();

            activeRecipe = KickStarter.runtimeInventory.CalculateRecipe();
            if (activeRecipe != null)
            {
                AdvGame.RunActionListAsset(activeRecipe.actionListOnCreate);

                foreach (InvItem assetItem in AdvGame.GetReferences().inventoryManager.items)
                {
                    if (assetItem.id == activeRecipe.resultID)
                    {
                        invInstances.Add(new InvInstance(assetItem, 1));
                    }
                }

                KickStarter.eventManager.Call_OnCraftingSucceed(activeRecipe);
            }
            else
            {
                if (!autoCreate && actionListOnWrongIngredients)
                {
                    actionListOnWrongIngredients.Interact();
                }
            }
        }
Esempio n. 3
0
        protected void RunInteraction(bool onMove)
        {
            int parameterID = (onMove) ? moveParameterID : dropParameterID;

            switch (actionListSource)
            {
            case ActionListSource.InScene:
                Interaction interaction = (onMove) ? interactionOnMove : interactionOnDrop;
                if (interaction != null && gameObject.layer != LayerMask.NameToLayer(KickStarter.settingsManager.deactivatedLayer))
                {
                    if (!onMove || !KickStarter.actionListManager.IsListRunning(interaction))
                    {
                        if (parameterID >= 0)
                        {
                            ActionParameter parameter = interaction.GetParameter(parameterID);
                            if (parameter != null && parameter.parameterType == ParameterType.GameObject)
                            {
                                parameter.gameObject = gameObject;
                            }
                        }

                        interaction.Interact();
                    }
                }
                break;

            case ActionListSource.AssetFile:
                ActionListAsset actionListAsset = (onMove) ? actionListAssetOnMove : actionListAssetOnDrop;
                if (actionListAsset != null && gameObject.layer != LayerMask.NameToLayer(KickStarter.settingsManager.deactivatedLayer))
                {
                    if (!onMove || !KickStarter.actionListAssetManager.IsListRunning(actionListAsset))
                    {
                        if (parameterID >= 0)
                        {
                            ActionParameter parameter = actionListAsset.GetParameter(parameterID);
                            if (parameter != null && parameter.parameterType == ParameterType.GameObject)
                            {
                                parameter.gameObject = gameObject;
                                if (GetComponent <ConstantID>())
                                {
                                    parameter.intValue = GetComponent <ConstantID>().constantID;
                                }
                                else
                                {
                                    ACDebug.LogWarning("Cannot set the value of parameter " + parameterID + " ('" + parameter.label + "') as " + gameObject.name + " has no Constant ID component.", gameObject);
                                }
                            }
                        }

                        actionListAsset.Interact();
                    }
                }
                break;
            }
        }
Esempio n. 4
0
 /**
  * Runs the "cutsceneOnLoad" Cutscene.
  */
 public void OnLoad()
 {
     if (actionListSource == ActionListSource.InScene)
     {
         if (cutsceneOnLoad != null)
         {
             cutsceneOnLoad.Interact();
         }
     }
     else if (actionListSource == ActionListSource.AssetFile)
     {
         if (actionListAssetOnLoad != null)
         {
             actionListAssetOnLoad.Interact();
         }
     }
 }
Esempio n. 5
0
 /**
  * <summary>Runs the Arrow's linkedCutscene.</summary>
  * <param name = "actionListSource">Where the Actions are stored when not being run</param>
  */
 public void Run(ActionListSource actionListSource)
 {
     if (actionListSource == ActionListSource.AssetFile)
     {
         if (linkedActionList != null)
         {
             linkedActionList.Interact();
         }
     }
     else if (actionListSource == ActionListSource.InScene)
     {
         if (linkedCutscene != null)
         {
             linkedCutscene.Interact();
         }
     }
 }
Esempio n. 6
0
        public void SetParameter(ActionListSource source, GameObject gameObject)
        {
            if (source == ActionListSource.InScene && cutscene != null)
            {
                if (cutscene.useParameters && parameterID >= 0 && cutscene.parameters.Count > parameterID)
                {
                    ActionParameter parameter = cutscene.GetParameter(parameterID);
                    if (parameter != null)
                    {
                        parameter.SetValue(gameObject);
                    }
                }

                if (!pausesCharacter)
                {
                    cutscene.Interact();
                }
            }
            else if (source == ActionListSource.AssetFile && actionListAsset != null)
            {
                if (actionListAsset.useParameters && parameterID >= 0 && actionListAsset.parameters.Count > parameterID)
                {
                    int idToSend = 0;
                    if (gameObject.GetComponent <ConstantID>())
                    {
                        idToSend = gameObject.GetComponent <ConstantID>().constantID;
                    }
                    else
                    {
                        ACDebug.LogWarning(gameObject.name + " requires a ConstantID script component!", gameObject);
                    }

                    ActionParameter parameter = actionListAsset.GetParameter(parameterID);
                    if (parameter != null)
                    {
                        parameter.SetValue(idToSend);
                    }
                }

                if (!pausesCharacter)
                {
                    actionListAsset.Interact();
                }
            }
        }
Esempio n. 7
0
        /**
         * <summary>Runs the 'on snap' ActionList associated with the region</summary>
         * <param name = "actionListSource">The source of the ActionList (InScene, AssetFile)</param>
         */
        public void RunSnapCutscene(ActionListSource actionListSource)
        {
            switch (actionListSource)
            {
            case ActionListSource.InScene:
                if (cutsceneOnSnap)
                {
                    cutsceneOnSnap.Interact();
                }
                break;

            case ActionListSource.AssetFile:
                if (actionListAssetOnSnap)
                {
                    actionListAssetOnSnap.Interact();
                }
                break;
            }
        }
Esempio n. 8
0
        protected void PlayStartCutscene()
        {
            KickStarter.stateHandler.PlayGlobalOnStart();

            KickStarter.eventManager.Call_OnStartScene();

            if (actionListSource == ActionListSource.InScene)
            {
                if (cutsceneOnStart != null)
                {
                    cutsceneOnStart.Interact();
                }
            }
            else if (actionListSource == ActionListSource.AssetFile)
            {
                if (actionListAssetOnStart != null)
                {
                    actionListAssetOnStart.Interact();
                }
            }
        }
Esempio n. 9
0
        private void RunCutsceneOnStart()
        {
            KickStarter.eventManager.Call_OnStartScene();

            if (actionListSource == ActionListSource.InScene)
            {
                if (cutsceneOnStart != null)
                {
                    KickStarter.stateHandler.gameState = GameState.Normal;
                    cutsceneOnStart.Interact();
                }
            }
            else if (actionListSource == ActionListSource.AssetFile)
            {
                if (actionListAssetOnStart != null)
                {
                    KickStarter.stateHandler.gameState = GameState.Normal;
                    actionListAssetOnStart.Interact();
                }
            }
        }
Esempio n. 10
0
        /**
         * <summary>Creates and displays the correct InvItem, based on the current Recipe, provided craftingType = CraftingElementType.Output.</summary>
         * <param name = "source">How the parent Menu is displayed (AdventureCreator, UnityUiPrefab, UnityUiInScene)</param>
         */
        public void SetOutput(MenuSource source)
        {
            if (craftingType != CraftingElementType.Output)
            {
                return;
            }

            items = new List <InvItem>();

            activeRecipe = KickStarter.runtimeInventory.CalculateRecipe();
            if (activeRecipe != null)
            {
                AdvGame.RunActionListAsset(activeRecipe.actionListOnCreate);

                foreach (InvItem assetItem in AdvGame.GetReferences().inventoryManager.items)
                {
                    if (assetItem.id == activeRecipe.resultID)
                    {
                        InvItem newItem = new InvItem(assetItem);
                        newItem.count = 1;
                        items.Add(newItem);
                    }
                }

                KickStarter.eventManager.Call_OnCraftingSucceed(activeRecipe);
            }
            else
            {
                if (!autoCreate && actionListOnWrongIngredients != null)
                {
                    actionListOnWrongIngredients.Interact();
                }
            }

            /*if (!autoCreate)
             * {
             *      base.RecalculateSize (source);
             * }*/
        }
Esempio n. 11
0
        private void RunActionLists()
        {
            switch (actionListSource)
            {
            case ActionListSource.InScene:
                if (actionList != null)
                {
                    if (setParameters)
                    {
                        AssignParameterValues(actionList);
                    }

                    if (actionList.IsSkippable() && runInstantly)
                    {
                        actionList.Skip();
                    }
                    else
                    {
                        actionList.Interact();
                    }
                }
                break;

            case ActionListSource.AssetFile:
                if (actionListAsset != null)
                {
                    if (setParameters && runMultipleTimes)
                    {
                        if (actionListAsset.canRunMultipleInstances)
                        {
                            for (int i = 0; i < successiveGUIData.Length + 1; i++)
                            {
                                AssignParameterValues(actionListAsset, i);

                                if (actionListAsset.IsSkippable() && runInstantly)
                                {
                                    AdvGame.SkipActionListAsset(actionListAsset);
                                }
                                else
                                {
                                    actionListAsset.Interact();
                                }
                            }
                        }
                        else
                        {
                            ACDebug.LogWarning("Cannot set run multiple parameter configurations because the ActionList asset '" + actionListAsset + "' has 'Can run multiple instances?' unchecked.", actionListAsset);
                        }
                        return;
                    }

                    if (setParameters)
                    {
                        AssignParameterValues(actionListAsset);
                    }

                    if (actionListAsset.IsSkippable() && runInstantly)
                    {
                        AdvGame.SkipActionListAsset(actionListAsset);
                    }
                    else
                    {
                        actionListAsset.Interact();
                    }
                }
                break;
            }
        }