public void AddToList(ActionList _list, bool addToSkipQueue, int _startIndex) { if (skipQueue.Count == 0 && _list.IsSkippable()) { addToSkipQueue = true; } if (!IsListRunning(_list)) { activeLists.Add(_list); if (addToSkipQueue && !ListIsInSkipQueue(_list) && _list.IsSkippable()) { skipQueue.Add(new SkipList(_list, _startIndex)); } } if (_list.conversation) { conversationOnEnd = _list.conversation; } if (_list is RuntimeActionList && _list.actionListType == ActionListType.PauseGameplay && !_list.unfreezePauseMenus && KickStarter.playerMenus.ArePauseMenusOn(null)) { // Don't affect the gamestate if we want to remain frozen return; } SetCorrectGameState(); }
/** * <summary>Adds a new ActionList, assumed to already be running, to the internal record of currently-running ActionLists, and sets the correct GameState in StateHandler.</summary> * <param name = "_list">The ActionList to run</param> * <param name = "addToSkipQueue">If True, then the ActionList will be added to the list of ActionLists to skip</param> * <param name = "_startIndex">The index number of the Action to start skipping from, if addToSkipQueue = True</param> */ public void AddToList(ActionList _list, bool addToSkipQueue, int _startIndex) { if (skipQueue.Count == 0 && _list.IsSkippable ()) { addToSkipQueue = true; } if (!IsListRunning (_list)) { activeLists.Add (_list); if (addToSkipQueue && !ListIsInSkipQueue (_list) && _list.IsSkippable ()) { skipQueue.Add (new SkipList (_list, _startIndex)); } } if (_list.conversation) { conversationOnEnd = _list.conversation; } if (_list is RuntimeActionList && _list.actionListType == ActionListType.PauseGameplay && !_list.unfreezePauseMenus && KickStarter.playerMenus.ArePauseMenusOn (null)) { // Don't affect the gamestate if we want to remain frozen return; } SetCorrectGameState (); }
public void ShowGUI() { runOnStart = EditorGUILayout.Toggle("Run on scene start?", runOnStart); runOnLoad = EditorGUILayout.Toggle("Run on scene load?", runOnLoad); EditorGUILayout.HelpBox("The linked ActionList can also be run by invoking this script's RunActionList() method.", MessageType.Info); EditorGUILayout.Space(); actionListSource = (ActionListSource)EditorGUILayout.EnumPopup("ActionList source:", actionListSource); switch (actionListSource) { case ActionListSource.InScene: actionList = (ActionList)EditorGUILayout.ObjectField("ActionList to run:", actionList, typeof(ActionList), true); if (actionList != null && actionList.IsSkippable()) { runInstantly = EditorGUILayout.Toggle("Run instantly?", runInstantly); } EditorGUILayout.Space(); ShowParametersGUI(actionList); break; case ActionListSource.AssetFile: actionListAsset = (ActionListAsset)EditorGUILayout.ObjectField("Asset to run:", actionListAsset, typeof(ActionListAsset), false); if (actionListAsset != null && actionListAsset.IsSkippable()) { runInstantly = EditorGUILayout.Toggle("Run instantly?", runInstantly); } EditorGUILayout.Space(); ShowParametersGUI(actionListAsset); break; } }
public void ShowGUI() { runOnStart = EditorGUILayout.Toggle("Run on scene start?", runOnStart); runOnLoad = EditorGUILayout.Toggle("Run on scene load?", runOnLoad); if (runOnLoad && KickStarter.settingsManager && KickStarter.settingsManager.playerSwitching == PlayerSwitching.Allow) { sceneLoadCondition = (SceneLoadCondition)EditorGUILayout.EnumPopup("Scene load condition:", sceneLoadCondition); } EditorGUILayout.Space(); actionListSource = (ActionListSource)EditorGUILayout.EnumPopup("ActionList source:", actionListSource); switch (actionListSource) { case ActionListSource.InScene: actionList = (ActionList)EditorGUILayout.ObjectField("ActionList to run:", actionList, typeof(ActionList), true); if (actionList == null && GetComponent <ActionList>()) { actionList = GetComponent <ActionList>(); } if (actionList && actionList.IsSkippable()) { runInstantly = EditorGUILayout.Toggle("Run instantly?", runInstantly); } EditorGUILayout.Space(); ShowParametersGUI(actionList); break; case ActionListSource.AssetFile: actionListAsset = (ActionListAsset)EditorGUILayout.ObjectField("Asset to run:", actionListAsset, typeof(ActionListAsset), false); if (actionListAsset && actionListAsset.IsSkippable()) { runInstantly = EditorGUILayout.Toggle("Run instantly?", runInstantly); } EditorGUILayout.Space(); ShowParametersGUI(actionListAsset); break; } EditorGUILayout.Space(); EditorGUILayout.HelpBox("The linked ActionList can also be run by invoking this script's RunActionList() method.", MessageType.Info); }
private bool IsTargetSkippable() { if (listSource == ListSource.InScene && actionList != null) { return(actionList.IsSkippable()); } else if (listSource == ListSource.AssetFile && actionListAsset != null) { return(actionListAsset.IsSkippable()); } return(false); }
/** * <summary>Checks if a given ActionList should be skipped when the 'EndCutscene' input is triggered.</summary> * <param name = "actionList">The ActionList to check</param> * <param name = "originalValue">If True, the user would like it to be skippable.</param> * <returns>True if the ActionList can be skipped.</returns> */ public bool CanAddToSkipQueue(ActionList actionList, bool originalValue) { if (!actionList.IsSkippable()) { return(false); } else if (!KickStarter.actionListManager.IsInSkippableCutscene()) { if (KickStarter.player) { playerIDOnStartQueue = KickStarter.player.ID; } else { playerIDOnStartQueue = -1; } return(true); } return(originalValue); }
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; } }