override public float Run() { if (_parameter == null) { ACDebug.LogWarning("Cannot set parameter value since it cannot be found!"); return(0f); } if (setParamMethod == SetParamMethod.CopiedFromGlobalVariable) { GVar gVar = GlobalVariables.GetVariable(globalVariableID); if (gVar != null) { if (_parameter.parameterType == ParameterType.Boolean || _parameter.parameterType == ParameterType.Integer) { _parameter.intValue = gVar.val; } else if (_parameter.parameterType == ParameterType.Float) { _parameter.floatValue = gVar.floatVal; } else if (_parameter.parameterType == ParameterType.Vector3) { _parameter.vector3Value = gVar.vector3Val; } else if (_parameter.parameterType == ParameterType.String) { _parameter.stringValue = GlobalVariables.GetStringValue(globalVariableID, true, Options.GetLanguage()); } } } else if (setParamMethod == SetParamMethod.EnteredHere) { if (_parameter.parameterType == ParameterType.Boolean || _parameter.parameterType == ParameterType.Integer || _parameter.parameterType == ParameterType.GlobalVariable || _parameter.parameterType == ParameterType.LocalVariable || _parameter.parameterType == ParameterType.InventoryItem) { _parameter.intValue = intValue; } else if (_parameter.parameterType == ParameterType.Float) { _parameter.floatValue = floatValue; } else if (_parameter.parameterType == ParameterType.String) { _parameter.stringValue = stringValue; } else if (_parameter.parameterType == ParameterType.GameObject) { _parameter.gameObject = gameobjectValue; _parameter.intValue = gameObjectConstantID; } else if (_parameter.parameterType == ParameterType.UnityObject) { _parameter.objectValue = unityObjectValue; } else if (_parameter.parameterType == ParameterType.Vector3) { _parameter.vector3Value = vector3Value; } } else if (setParamMethod == SetParamMethod.Random) { if (_parameter.parameterType == ParameterType.Boolean) { _parameter.intValue = Random.Range(0, 2); } else if (_parameter.parameterType == ParameterType.Integer) { _parameter.intValue = Random.Range(intValue, intValueMax + 1); } else if (_parameter.parameterType == ParameterType.Float) { _parameter.floatValue = Random.Range(floatValue, floatValueMax); } else { ACDebug.LogWarning("Parameters of type '" + _parameter.parameterType + "' cannot be set randomly."); } } else if (setParamMethod == SetParamMethod.CopiedFromParameter) { if (_parameterToCopy == null) { ACDebug.LogWarning("Cannot copy parameter value since it cannot be found!"); return(0f); } _parameter.CopyValues(_parameterToCopy); } return(0f); }
/** * <summary>Performs what should happen when the element is clicked on.</summary> * <param name = "_menu">The element's parent Menu</param> * <param name = "_slot">Ignored by this subclass</param> * <param name = "_mouseState">The state of the mouse button</param> */ public override void ProcessClick(AC.Menu _menu, int _slot, MouseState _mouseState) { if (!_menu.IsClickable()) { return; } base.ProcessClick(_menu, _slot, _mouseState); #if UNITY_5_3_OR_NEWER if (uiDropdown != null) { selected = uiDropdown.value; } else { selected++; if (selected > optionsArray.Count - 1) { selected = 0; } } #else selected++; if (selected > optionsArray.Count - 1) { selected = 0; } #endif if (cycleType == AC_CycleType.Language) { if (selected == 0 && KickStarter.speechManager.ignoreOriginalText && KickStarter.runtimeLanguages.Languages.Count > 1) { // Ignore original text by skipping to first language selected = 1; } Options.SetLanguage(selected); } else if (cycleType == AC_CycleType.Variable) { if (varID >= 0) { GVar var = GlobalVariables.GetVariable(varID); if (var.type == VariableType.Integer) { var.val = selected; var.Upload(); } } } if (cycleType == AC_CycleType.CustomScript) { MenuSystem.OnElementClick(_menu, this, _slot, (int)_mouseState); } if (actionListOnClick) { AdvGame.RunActionListAsset(actionListOnClick); } }
override public float Run() { if (!KickStarter.settingsManager.useProfiles) { ACDebug.LogWarning("Save game profiles are not enabled - please set in Settings Manager to use this Action."); return(0f); } string newProfileLabel = ""; if ((manageProfileType == ManageProfileType.CreateProfile && useCustomLabel) || manageProfileType == ManageProfileType.RenameProfile) { GVar gVar = GlobalVariables.GetVariable(varID); if (gVar != null) { newProfileLabel = gVar.textVal; } else { ACDebug.LogWarning("Could not " + manageProfileType.ToString() + " - no variable found."); return(0f); } } if (manageProfileType == ManageProfileType.CreateProfile) { KickStarter.options.CreateProfile(newProfileLabel); } else if (manageProfileType == ManageProfileType.DeleteProfile || manageProfileType == ManageProfileType.RenameProfile || manageProfileType == ManageProfileType.SwitchActiveProfile) { if (deleteProfileType == DeleteProfileType.ActiveProfile) { if (manageProfileType == ManageProfileType.DeleteProfile) { KickStarter.saveSystem.DeleteProfile(); } else if (manageProfileType == ManageProfileType.RenameProfile) { KickStarter.options.RenameProfile(newProfileLabel); } return(0f); } else if (deleteProfileType == DeleteProfileType.SetProfileID) { int profileID = Mathf.Max(0, profileIndex); if (manageProfileType == ManageProfileType.DeleteProfile) { KickStarter.saveSystem.DeleteProfileID(profileID); } else if (manageProfileType == ManageProfileType.RenameProfile) { KickStarter.options.RenameProfileID(newProfileLabel, profileID); } else if (manageProfileType == ManageProfileType.SwitchActiveProfile) { Options.SwitchProfileID(profileID); } } else if (deleteProfileType == DeleteProfileType.SetSlotIndex || deleteProfileType == DeleteProfileType.SlotIndexFromVariable) { int i = Mathf.Max(0, profileIndex); if (deleteProfileType == DeleteProfileType.SlotIndexFromVariable) { GVar gVar = GlobalVariables.GetVariable(slotVarID); if (gVar != null) { i = gVar.val; } else { ACDebug.LogWarning("Could not " + manageProfileType.ToString() + " - no variable found."); return(0f); } } bool includeActive = true; if (menuName != "" && elementName != "") { MenuElement menuElement = PlayerMenus.GetElementWithName(menuName, elementName); if (menuElement != null && menuElement is MenuProfilesList) { MenuProfilesList menuProfilesList = (MenuProfilesList)menuElement; if (menuProfilesList.fixedOption) { ACDebug.LogWarning("Cannot refer to ProfilesLst " + elementName + " in Menu " + menuName + ", as it lists a fixed profile ID only!"); return(0f); } i += menuProfilesList.GetOffset(); includeActive = menuProfilesList.showActive; } else { ACDebug.LogWarning("Cannot find ProfilesList element '" + elementName + "' in Menu '" + menuName + "'."); } } else { ACDebug.LogWarning("No ProfilesList element referenced when trying to delete profile slot " + i.ToString()); } if (manageProfileType == ManageProfileType.DeleteProfile) { KickStarter.saveSystem.DeleteProfile(i, includeActive); } else if (manageProfileType == ManageProfileType.RenameProfile) { KickStarter.options.RenameProfile(newProfileLabel, i, includeActive); } else if (manageProfileType == ManageProfileType.SwitchActiveProfile) { KickStarter.options.SwitchProfile(i, includeActive); } } } return(0f); }
override public float Run() { if (teleporter && obToMove) { Vector3 position = teleporter.transform.position; Quaternion rotation = teleporter.transform.rotation; if (positionRelativeTo == PositionRelativeTo.RelativeToActiveCamera) { Transform mainCam = KickStarter.mainCamera.transform; float right = teleporter.transform.position.x; float up = teleporter.transform.position.y; float forward = teleporter.transform.position.z; position = mainCam.position + (mainCam.forward * forward) + (mainCam.right * right) + (mainCam.up * up); rotation.eulerAngles += mainCam.transform.rotation.eulerAngles; } else if (positionRelativeTo == PositionRelativeTo.RelativeToPlayer && !isPlayer) { if (KickStarter.player) { Transform playerTranform = KickStarter.player.transform; float right = teleporter.transform.position.x; float up = teleporter.transform.position.y; float forward = teleporter.transform.position.z; position = playerTranform.position + (playerTranform.forward * forward) + (playerTranform.right * right) + (playerTranform.up * up); rotation.eulerAngles += playerTranform.rotation.eulerAngles; } } else if (positionRelativeTo == PositionRelativeTo.RelativeToGameObject) { if (relativeGameObject != null) { Transform relativeTransform = relativeGameObject.transform; float right = teleporter.transform.position.x; float up = teleporter.transform.position.y; float forward = teleporter.transform.position.z; position = relativeTransform.position + (relativeTransform.forward * forward) + (relativeTransform.right * right) + (relativeTransform.up * up); rotation.eulerAngles += relativeTransform.rotation.eulerAngles; } } else if (positionRelativeTo == PositionRelativeTo.EnteredValue) { position += relativeVector; } else if (positionRelativeTo == PositionRelativeTo.VectorVariable) { if (variableLocation == VariableLocation.Global) { position += GlobalVariables.GetVector3Value(vectorVarID); } else if (variableLocation == VariableLocation.Local && !isAssetFile) { position += LocalVariables.GetVector3Value(vectorVarID); } } if (copyRotation) { obToMove.transform.rotation = rotation; if (obToMove.GetComponent <Char>()) { // Is a character, so set the lookDirection, otherwise will revert back to old rotation obToMove.GetComponent <Char>().SetLookDirection(teleporter.transform.forward, true); obToMove.GetComponent <Char>().Halt(); } } if (obToMove.GetComponent <Char>()) { obToMove.GetComponent <Char>().Teleport(position, recalculateActivePathFind); } else { obToMove.transform.position = position; } if (isPlayer && snapCamera) { if (KickStarter.mainCamera != null && KickStarter.mainCamera.attachedCamera != null && KickStarter.mainCamera.attachedCamera.targetIsPlayer) { KickStarter.mainCamera.attachedCamera.MoveCameraInstant(); } } } return(0f); }
public override ActionEnd End(List <Action> actions) { int actualNumber = 0; if (saveCheck == SaveCheck.NumberOfSaveGames) { actualNumber = KickStarter.saveSystem.GetNumSaves(includeAutoSaves); } else if (saveCheck == SaveCheck.NumberOfProfiles) { actualNumber = KickStarter.options.GetNumProfiles(); } else if (saveCheck == SaveCheck.IsSlotEmpty) { return(ProcessResult(!SaveSystem.DoesSaveExist(intValue, intValue, !checkByElementIndex), actions)); } else if (saveCheck == SaveCheck.DoesProfileExist) { if (checkByElementIndex) { int i = Mathf.Max(0, intValue); bool includeActive = true; if (menuName != "" && elementName != "") { MenuElement menuElement = PlayerMenus.GetElementWithName(menuName, elementName); if (menuElement != null && menuElement is MenuProfilesList) { MenuProfilesList menuProfilesList = (MenuProfilesList)menuElement; if (menuProfilesList.fixedOption) { LogWarning("Cannot refer to ProfilesList " + elementName + " in Menu " + menuName + ", as it lists a fixed profile ID only!"); return(ProcessResult(false, actions)); } i += menuProfilesList.GetOffset(); includeActive = menuProfilesList.showActive; } else { LogWarning("Cannot find ProfilesList element '" + elementName + "' in Menu '" + menuName + "'."); } } else { LogWarning("No ProfilesList element referenced when trying to delete profile slot " + i.ToString()); } bool result = KickStarter.options.DoesProfileExist(i, includeActive); return(ProcessResult(result, actions)); } else { // intValue is the profile ID bool result = Options.DoesProfileIDExist(intValue); return(ProcessResult(result, actions)); } } else if (saveCheck == SaveCheck.DoesProfileNameExist) { bool result = false; GVar gVar = GlobalVariables.GetVariable(profileVarID); if (gVar != null) { string profileName = gVar.textVal; result = KickStarter.options.DoesProfileExist(profileName); } else { LogWarning("Could not check for profile name - no variable found."); } return(ProcessResult(result, actions)); } else if (saveCheck == SaveCheck.IsSavingPossible) { return(ProcessResult(!PlayerMenus.IsSavingLocked(this), actions)); } return(ProcessResult(CheckCondition(actualNumber), actions)); }
/** * Updates the label's text buffer. This is normally done internally at runtime, but can be called manually to update it in Edit mode. */ public void UpdateLabelText(int languageNumber = 0) { string _oldLabel = newLabel; switch (labelType) { case AC_LabelType.Normal: newLabel = TranslateLabel(label, languageNumber); break; case AC_LabelType.Hotspot: string _newLabel = string.Empty; if (showPendingWhileMovingToHotspot && KickStarter.playerInteraction.GetHotspotMovingTo() != null && KickStarter.playerCursor.GetSelectedCursorID() == -1 && KickStarter.runtimeInventory.SelectedItem == null) { _newLabel = KickStarter.playerInteraction.MovingToHotspotLabel; } if (string.IsNullOrEmpty(_newLabel)) { _newLabel = KickStarter.playerMenus.GetHotspotLabel(); } if (!string.IsNullOrEmpty(_newLabel) || updateIfEmpty) { newLabel = _newLabel; } break; case AC_LabelType.GlobalVariable: GVar variable = GlobalVariables.GetVariable(variableID); if (variable != null) { newLabel = variable.GetValue(languageNumber); } else { ACDebug.LogWarning("Label element '" + title + "' cannot display Global Variable " + variableID + " as it does not exist!"); } break; case AC_LabelType.ActiveSaveProfile: newLabel = KickStarter.options.GetProfileName(); break; case AC_LabelType.InventoryProperty: newLabel = string.Empty; if (inventoryPropertyType == InventoryPropertyType.SelectedItem) { newLabel = GetPropertyDisplayValue(languageNumber, KickStarter.runtimeInventory.SelectedItem); } else if (inventoryPropertyType == InventoryPropertyType.LastClickedItem) { newLabel = GetPropertyDisplayValue(languageNumber, KickStarter.runtimeInventory.lastClickedItem); } else if (inventoryPropertyType == InventoryPropertyType.MouseOverItem) { newLabel = GetPropertyDisplayValue(languageNumber, KickStarter.runtimeInventory.hoverItem); } break; case AC_LabelType.DialogueLine: case AC_LabelType.DialogueSpeaker: if (parentMenu != null && parentMenu.IsFadingOut()) { return; } UpdateSpeechLink(); if (labelType == AC_LabelType.DialogueLine) { if (speech != null) { string line = speech.displayText; if (line != string.Empty || updateIfEmpty) { newLabel = line; } if (useCharacterColour) { speechColour = speech.GetColour(); if (uiText) { uiText.color = speechColour; } } } else if (!KickStarter.speechManager.keepTextInBuffer) { newLabel = string.Empty; } } else if (labelType == AC_LabelType.DialogueSpeaker) { if (speech != null) { string line = speech.GetSpeaker(languageNumber); if (line != string.Empty || updateIfEmpty || speech.GetSpeakingCharacter() == null) { newLabel = line; } } else if (!KickStarter.speechManager.keepTextInBuffer) { newLabel = string.Empty; } } break; case AC_LabelType.DocumentTitle: if (Document != null) { newLabel = KickStarter.runtimeLanguages.GetTranslation(Document.title, Document.titleLineID, languageNumber); } break; } if (newLabel != _oldLabel && sizeType == AC_SizeType.Automatic && parentMenu != null && parentMenu.menuSource == MenuSource.AdventureCreator) { parentMenu.Recalculate(); } }
public override void AssignValues(List <ActionParameter> parameters) { GameObject invPrefab = null; ActionParameter parameter = GetParameterWithID(parameters, parameterID); if (parameter != null && parameter.parameterType == ParameterType.InventoryItem) { InvItem invItem = KickStarter.inventoryManager.GetItem(parameter.intValue); if (invItem != null) { invPrefab = invItem.linkedPrefab; } } if (invAction == InvAction.Add || invAction == InvAction.Replace) { if (invPrefab != null) { _gameObject = invPrefab; } else { _gameObject = AssignFile(parameters, parameterID, 0, gameObject); } if (invAction == InvAction.Replace) { replaceGameObject = AssignFile(parameters, replaceParameterID, replaceConstantID, replaceGameObject); } else if (invAction == InvAction.Add) { relativeGameObject = AssignFile(parameters, relativeGameObjectParameterID, relativeGameObjectID, relativeGameObject); } } else if (invAction == InvAction.Remove) { if (invPrefab != null) { ConstantID invPrefabConstantID = invPrefab.GetComponent <ConstantID>(); if (invPrefabConstantID != null && invPrefabConstantID.constantID != 0) { _gameObject = AssignFile(invPrefabConstantID.constantID, _gameObject); } else { LogWarning("Cannot locate scene instance of prefab " + invPrefab + " as it has no Constant ID number"); } } else { _gameObject = AssignFile(parameters, parameterID, constantID, gameObject); } } relativeVector = AssignVector3(parameters, relativeVectorParameterID, relativeVector); if (invAction == InvAction.Add && positionRelativeTo == PositionRelativeTo.VectorVariable) { runtimeVariable = null; switch (variableLocation) { case VariableLocation.Global: vectorVarID = AssignVariableID(parameters, vectorVarParameterID, vectorVarID); runtimeVariable = GlobalVariables.GetVariable(vectorVarID, true); break; case VariableLocation.Local: if (!isAssetFile) { vectorVarID = AssignVariableID(parameters, vectorVarParameterID, vectorVarID); runtimeVariable = LocalVariables.GetVariable(vectorVarID, localVariables); } break; case VariableLocation.Component: Variables runtimeVariables = AssignFile <Variables> (variablesConstantID, variables); if (runtimeVariables != null) { runtimeVariable = runtimeVariables.GetVariable(vectorVarID); } runtimeVariable = AssignVariable(parameters, vectorVarParameterID, runtimeVariable); break; } } runtimeSpawnedObjectParameter = null; if (invAction == InvAction.Add) { runtimeSpawnedObjectParameter = GetParameterWithID(parameters, spawnedObjectParameterID); if (runtimeSpawnedObjectParameter != null && runtimeSpawnedObjectParameter.parameterType != ParameterType.GameObject) { runtimeSpawnedObjectParameter = null; } } }
override public float Run() { if ((saveHandling == SaveHandling.LoadGame || saveHandling == SaveHandling.ContinueFromLastSave) && doSelectiveLoad) { KickStarter.saveSystem.SetSelectiveLoadOptions(selectiveLoad); } string newSaveLabel = ""; if (customLabel && ((updateLabel && saveHandling == SaveHandling.OverwriteExistingSave) || saveHandling == AC.SaveHandling.SaveNewGame)) { if (selectSaveType != SelectSaveType.Autosave) { GVar gVar = GlobalVariables.GetVariable(varID); if (gVar != null) { //newSaveLabel = gVar.textVal; newSaveLabel = gVar.GetValue(Options.GetLanguage()); } else { ACDebug.LogWarning("Could not " + saveHandling.ToString() + " - no variable found."); return(0f); } } } int i = Mathf.Max(0, saveIndex); if (saveHandling == SaveHandling.ContinueFromLastSave) { SaveSystem.ContinueGame(); return(0f); } if (saveHandling == SaveHandling.LoadGame || saveHandling == SaveHandling.OverwriteExistingSave) { if (selectSaveType == SelectSaveType.Autosave) { if (saveHandling == SaveHandling.LoadGame) { SaveSystem.LoadAutoSave(); return(0f); } else { if (!PlayerMenus.IsSavingLocked(this)) { SaveSystem.SaveAutoSave(); } else { ACDebug.LogWarning("Cannot save at this time - either blocking ActionLists, a Converation is active, or saving has been manually locked."); } return(0f); } } else if (selectSaveType == SelectSaveType.SlotIndexFromVariable) { GVar gVar = GlobalVariables.GetVariable(slotVarID); if (gVar != null) { i = gVar.val; } else { ACDebug.LogWarning("Could not get save slot index - no variable found."); return(0f); } } } if (menuName != "" && elementName != "") { MenuElement menuElement = PlayerMenus.GetElementWithName(menuName, elementName); if (menuElement != null && menuElement is MenuSavesList) { MenuSavesList menuSavesList = (MenuSavesList)menuElement; i += menuSavesList.GetOffset(); } else { ACDebug.LogWarning("Cannot find ProfilesList element '" + elementName + "' in Menu '" + menuName + "'."); } } else { ACDebug.LogWarning("No SavesList element referenced when trying to find slot slot " + i.ToString()); } if (saveHandling == SaveHandling.LoadGame) { SaveSystem.LoadGame(i, -1, false); } else if (saveHandling == SaveHandling.OverwriteExistingSave || saveHandling == SaveHandling.SaveNewGame) { if (!PlayerMenus.IsSavingLocked(this)) { if (saveHandling == SaveHandling.OverwriteExistingSave) { SaveSystem.SaveGame(i, -1, false, updateLabel, newSaveLabel); } else if (saveHandling == SaveHandling.SaveNewGame) { SaveSystem.SaveNewGame(updateLabel, newSaveLabel); } } else { ACDebug.LogWarning("Cannot save at this time - either blocking ActionLists, a Converation is active, or saving has been manually locked."); } } return(0f); }
public override void AssignValues(List <ActionParameter> parameters) { if (invAction == InvAction.Add || invAction == InvAction.Replace) { _gameObject = AssignFile(parameters, parameterID, 0, gameObject); if (invAction == InvAction.Replace) { replaceGameObject = AssignFile(parameters, replaceParameterID, replaceConstantID, replaceGameObject); } else if (invAction == InvAction.Add) { relativeGameObject = AssignFile(parameters, relativeGameObjectParameterID, relativeGameObjectID, relativeGameObject); } } else if (invAction == InvAction.Remove) { _gameObject = AssignFile(parameters, parameterID, constantID, gameObject); } relativeVector = AssignVector3(parameters, relativeVectorParameterID, relativeVector); if (invAction == InvAction.Add && positionRelativeTo == PositionRelativeTo.VectorVariable) { runtimeVariable = null; switch (variableLocation) { case VariableLocation.Global: vectorVarID = AssignVariableID(parameters, vectorVarParameterID, vectorVarID); runtimeVariable = GlobalVariables.GetVariable(vectorVarID, true); break; case VariableLocation.Local: if (!isAssetFile) { vectorVarID = AssignVariableID(parameters, vectorVarParameterID, vectorVarID); runtimeVariable = LocalVariables.GetVariable(vectorVarID, localVariables); } break; case VariableLocation.Component: Variables runtimeVariables = AssignFile <Variables> (variablesConstantID, variables); if (runtimeVariables != null) { runtimeVariable = runtimeVariables.GetVariable(vectorVarID); } runtimeVariable = AssignVariable(parameters, vectorVarParameterID, runtimeVariable); break; } } runtimeSpawnedObjectParameter = null; if (invAction == InvAction.Add) { runtimeSpawnedObjectParameter = GetParameterWithID(parameters, spawnedObjectParameterID); if (runtimeSpawnedObjectParameter != null && runtimeSpawnedObjectParameter.parameterType != ParameterType.GameObject) { runtimeSpawnedObjectParameter = null; } } }
override public void AssignValues(List <ActionParameter> parameters) { if (isPlayer) { if (KickStarter.player != null) { runtimeLinkedProp = KickStarter.player.GetComponent <Moveable>(); if (runtimeLinkedProp == null) { ACDebug.LogWarning("The player " + KickStarter.player + " requires a Moveable component to be moved with the 'Object: Transform' Action.", KickStarter.player); } } else { runtimeLinkedProp = null; } } else { runtimeLinkedProp = AssignFile <Moveable> (parameters, parameterID, constantID, linkedProp); } runtimeMarker = AssignFile <Marker> (parameters, markerParameterID, markerID, marker); transitionTime = AssignFloat(parameters, transitionTimeParameterID, transitionTime); newVector = AssignVector3(parameters, newVectorParameterID, newVector); if (!(transformType == TransformType.CopyMarker || (transformType == TransformType.Translate && toBy == ToBy.To) || (transformType == TransformType.Rotate && toBy == ToBy.To))) { inWorldSpace = false; } runtimeVariable = null; if (transformType != TransformType.CopyMarker && setVectorMethod == SetVectorMethod.FromVector3Variable) { switch (variableLocation) { case VariableLocation.Global: vectorVarID = AssignVariableID(parameters, vectorVarParameterID, vectorVarID); runtimeVariable = GlobalVariables.GetVariable(vectorVarID, true); break; case VariableLocation.Local: if (!isAssetFile) { vectorVarID = AssignVariableID(parameters, vectorVarParameterID, vectorVarID); runtimeVariable = LocalVariables.GetVariable(vectorVarID, localVariables); } break; case VariableLocation.Component: Variables runtimeVariables = AssignFile <Variables> (variablesConstantID, variables); if (runtimeVariables != null) { runtimeVariable = runtimeVariables.GetVariable(vectorVarID); } runtimeVariable = AssignVariable(parameters, vectorVarParameterID, runtimeVariable); break; } } }
override public float Run() { if (_gameObject == null) { return(0f); } if (invAction == InvAction.Add) { // Instantiate GameObject oldOb = AssignFile(constantID, _gameObject); if (_gameObject.activeInHierarchy || (oldOb != null && oldOb.activeInHierarchy)) { RememberTransform rememberTransform = oldOb.GetComponent <RememberTransform>(); if (rememberTransform != null && rememberTransform.saveScenePresence && rememberTransform.linkedPrefabID != 0) { // Bypass this check } else { ACDebug.LogWarning(gameObject.name + " won't be instantiated, as it is already present in the scene."); return(0f); } } Vector3 position = _gameObject.transform.position; Quaternion rotation = _gameObject.transform.rotation; if (positionRelativeTo != PositionRelativeTo.Nothing) { float forward = _gameObject.transform.position.z; float right = _gameObject.transform.position.x; float up = _gameObject.transform.position.y; if (positionRelativeTo == PositionRelativeTo.RelativeToActiveCamera) { Transform mainCam = KickStarter.mainCamera.transform; position = mainCam.position + (mainCam.forward * forward) + (mainCam.right * right) + (mainCam.up * up); rotation.eulerAngles += mainCam.transform.rotation.eulerAngles; } else if (positionRelativeTo == PositionRelativeTo.RelativeToPlayer) { if (KickStarter.player) { Transform playerTranform = KickStarter.player.transform; position = playerTranform.position + (playerTranform.forward * forward) + (playerTranform.right * right) + (playerTranform.up * up); rotation.eulerAngles += playerTranform.rotation.eulerAngles; } } else if (positionRelativeTo == PositionRelativeTo.RelativeToGameObject) { if (relativeGameObject != null) { Transform relativeTransform = relativeGameObject.transform; position = relativeTransform.position + (relativeTransform.forward * forward) + (relativeTransform.right * right) + (relativeTransform.up * up); rotation.eulerAngles += relativeTransform.rotation.eulerAngles; } } else if (positionRelativeTo == PositionRelativeTo.EnteredValue) { position += relativeVector; } else if (positionRelativeTo == PositionRelativeTo.VectorVariable) { if (variableLocation == VariableLocation.Global) { position += GlobalVariables.GetVector3Value(vectorVarID); } else if (variableLocation == VariableLocation.Local && !isAssetFile) { position += LocalVariables.GetVector3Value(vectorVarID); } } } GameObject newObject = (GameObject)Instantiate(_gameObject, position, rotation); newObject.name = _gameObject.name; if (newObject.GetComponent <RememberTransform>()) { newObject.GetComponent <RememberTransform>().OnSpawn(); } KickStarter.stateHandler.IgnoreNavMeshCollisions(); } else if (invAction == InvAction.Remove) { // Delete KickStarter.sceneChanger.ScheduleForDeletion(_gameObject); } else if (invAction == InvAction.Replace) { if (replaceGameObject == null) { ACDebug.LogWarning("Cannot perform swap because the object to remove was not found in the scene."); return(0f); } Vector3 position = replaceGameObject.transform.position; Quaternion rotation = replaceGameObject.transform.rotation; GameObject oldOb = AssignFile(constantID, _gameObject); if (gameObject.activeInHierarchy || (oldOb != null && oldOb.activeInHierarchy)) { ACDebug.Log(gameObject.name + " won't be instantiated, as it is already present in the scene."); return(0f); } KickStarter.sceneChanger.ScheduleForDeletion(replaceGameObject); GameObject newObject = (GameObject)Instantiate(_gameObject, position, rotation); newObject.name = _gameObject.name; KickStarter.stateHandler.IgnoreNavMeshCollisions(); } return(0f); }
public override float Run() { string newSaveLabel = string.Empty; if (manageSaveType == ManageSaveType.RenameSave) { GVar gVar = GlobalVariables.GetVariable(varID); if (gVar != null) { newSaveLabel = gVar.TextValue; } else { LogWarning("Could not " + manageSaveType.ToString() + " - no variable found."); return(0f); } } int i = Mathf.Max(0, saveIndex); if (selectSaveType == SelectSaveType.SlotIndexFromVariable) { GVar gVar = GlobalVariables.GetVariable(slotVarID); if (gVar != null) { i = gVar.IntegerValue; } else { LogWarning("Could not rename save - no variable found."); return(0f); } } else if (selectSaveType == SelectSaveType.Autosave) { if (manageSaveType == ManageSaveType.DeleteSave) { SaveSystem.DeleteSave(0); } else if (manageSaveType == ManageSaveType.RenameSave) { LogWarning("The Autosave file cannot be renamed."); return(0f); } } if (selectSaveType != SelectSaveType.Autosave && selectSaveType != SelectSaveType.SetSaveID) { if (!string.IsNullOrEmpty(menuName) && !string.IsNullOrEmpty(elementName)) { MenuElement menuElement = PlayerMenus.GetElementWithName(menuName, elementName); if (menuElement != null && menuElement is MenuSavesList) { MenuSavesList menuSavesList = (MenuSavesList)menuElement; i += menuSavesList.GetOffset(); } else { LogWarning("Cannot find SavesList element '" + elementName + "' in Menu '" + menuName + "'."); } } else { LogWarning("No SavesList element referenced when trying to find save slot " + i.ToString()); } } if (manageSaveType == ManageSaveType.DeleteSave) { if (selectSaveType == SelectSaveType.SetSaveID) { SaveSystem.DeleteSave(i); } else { KickStarter.saveSystem.DeleteSave(i, -1, false); } } else if (manageSaveType == ManageSaveType.RenameSave) { if (selectSaveType == SelectSaveType.SetSaveID) { KickStarter.saveSystem.RenameSaveByID(newSaveLabel, i); } else { KickStarter.saveSystem.RenameSave(newSaveLabel, i); } } return(0f); }
/** * <summary>Performs all calculations necessary to display the element.</summary> * <param name = "_slot">Ignored by this subclass</param> * <param name = "languageNumber">The index number of the language to display text in</param> * <param name = "isActive">If True, then the element will be drawn as though highlighted</param> */ public override void PreDisplay(int _slot, int languageNumber, bool isActive) { if (Application.isPlaying) { if (labelType == AC_LabelType.Hotspot) { string _newLabel = ""; if (invItem != null) { _newLabel = invItem.GetFullLabel(languageNumber); } else if (hotspot != null) { _newLabel = hotspot.GetFullLabel(languageNumber); } else if (!showPendingWhileMovingToHotspot && KickStarter.settingsManager.interactionMethod == AC_InteractionMethod.ChooseInteractionThenHotspot && KickStarter.playerInteraction.GetHotspotMovingTo() != null && KickStarter.playerCursor.GetSelectedCursorID() == -1) { _newLabel = KickStarter.playerInteraction.MovingToHotspotLabel; } else { _newLabel = KickStarter.playerMenus.GetHotspotLabel(); } if (_newLabel != "" || updateIfEmpty) { newLabel = _newLabel; } } else if (labelType == AC_LabelType.Normal) { newLabel = TranslateLabel(label, languageNumber); } else if (labelType == AC_LabelType.GlobalVariable) { GVar variable = GlobalVariables.GetVariable(variableID); if (variable != null) { newLabel = variable.GetValue(languageNumber); } else { ACDebug.LogWarning("Label element '" + title + "' cannot display Global Variable " + variableID + " as it does not exist!"); } } else if (labelType == AC_LabelType.ActiveSaveProfile) { newLabel = KickStarter.options.GetProfileName(); } else if (labelType == AC_LabelType.InventoryProperty) { newLabel = ""; if (inventoryPropertyType == InventoryPropertyType.SelectedItem) { newLabel = GetPropertyDisplayValue(languageNumber, KickStarter.runtimeInventory.SelectedItem); } else if (inventoryPropertyType == InventoryPropertyType.LastClickedItem) { newLabel = GetPropertyDisplayValue(languageNumber, KickStarter.runtimeInventory.lastClickedItem); } else if (inventoryPropertyType == InventoryPropertyType.MouseOverItem) { newLabel = GetPropertyDisplayValue(languageNumber, KickStarter.runtimeInventory.hoverItem); } } else if (labelType == AC_LabelType.DialogueLine || labelType == AC_LabelType.DialogueSpeaker) { if (linkedMenu != null && linkedMenu.IsFadingOut()) { return; } UpdateSpeechLink(); if (labelType == AC_LabelType.DialogueLine) { if (speech != null) { string line = speech.displayText; if (line != "" || updateIfEmpty) { newLabel = line; } if (useCharacterColour) { speechColour = speech.GetColour(); if (uiText) { uiText.color = speechColour; } } } else if (!KickStarter.speechManager.keepTextInBuffer) { newLabel = ""; } } else if (labelType == AC_LabelType.DialogueSpeaker) { if (speech != null) { string line = speech.GetSpeaker(languageNumber); if (line != "" || updateIfEmpty || speech.GetSpeakingCharacter() == null) { newLabel = line; } } else if (!KickStarter.speechManager.keepTextInBuffer) { newLabel = ""; } } } } else { newLabel = label; } newLabel = AdvGame.ConvertTokens(newLabel, languageNumber); if (uiText != null && Application.isPlaying) { uiText.text = newLabel; UpdateUIElement(uiText); } }
private void RunToTime(float _time, bool isSkipping) { if (transformType == TransformType.CopyMarker) { if (marker) { linkedProp.Move(marker, moveMethod, inWorldSpace, _time, timeCurve); } } else { Vector3 targetVector = Vector3.zero; if (setVectorMethod == SetVectorMethod.FromVector3Variable) { if (variableLocation == VariableLocation.Global) { targetVector = GlobalVariables.GetVector3Value(vectorVarID); } else if (variableLocation == VariableLocation.Local && !isAssetFile) { targetVector = LocalVariables.GetVector3Value(vectorVarID); } } else if (setVectorMethod == SetVectorMethod.EnteredHere) { targetVector = newVector; } if (transformType == TransformType.Translate) { if (toBy == ToBy.By) { targetVector = SetRelativeTarget(targetVector, isSkipping, linkedProp.transform.localPosition); } } else if (transformType == TransformType.Rotate) { if (toBy == ToBy.By) { int numZeros = 0; if (targetVector.x == 0f) { numZeros++; } if (targetVector.y == 0f) { numZeros++; } if (targetVector.z == 0f) { numZeros++; } if (numZeros == 2) { targetVector = SetRelativeTarget(targetVector, isSkipping, linkedProp.transform.eulerAngles); } else { Quaternion currentRotation = linkedProp.transform.localRotation; linkedProp.transform.Rotate(targetVector, Space.World); targetVector = linkedProp.transform.localEulerAngles; linkedProp.transform.localRotation = currentRotation; } } } else if (transformType == TransformType.Scale) { if (toBy == ToBy.By) { targetVector = SetRelativeTarget(targetVector, isSkipping, linkedProp.transform.localScale); } } if (transformType == TransformType.Rotate) { linkedProp.Move(targetVector, moveMethod, inWorldSpace, _time, transformType, doEulerRotation, timeCurve, clearExisting); } else { linkedProp.Move(targetVector, moveMethod, inWorldSpace, _time, transformType, false, timeCurve, clearExisting); } } }
/** * <summary>Performs all calculations necessary to display the element.</summary> * <param name = "_slot">Ignored by this subclass</param> * <param name = "languageNumber">The index number of the language to display text in</param> * <param name = "isActive">If True, then the element will be drawn as though highlighted</param> */ public override void PreDisplay(int _slot, int languageNumber, bool isActive) { if (Application.isPlaying) { if (labelType == AC_LabelType.Hotspot) { string _newLabel = ""; if (invItem != null) { _newLabel = invItem.GetFullLabel(languageNumber); } else if (hotspot != null) { _newLabel = hotspot.GetFullLabel(languageNumber); } else { _newLabel = KickStarter.playerMenus.GetHotspotLabel(); } if (_newLabel != "" || updateIfEmpty) { newLabel = _newLabel; } } else if (labelType == AC_LabelType.Normal) { newLabel = TranslateLabel(label, languageNumber); } else if (labelType == AC_LabelType.GlobalVariable) { newLabel = GlobalVariables.GetVariable(variableID).GetValue(languageNumber); } else if (labelType == AC_LabelType.ActiveSaveProfile) { newLabel = KickStarter.options.GetProfileName(); } else if (labelType == AC_LabelType.InventoryProperty) { newLabel = ""; if (inventoryPropertyType == InventoryPropertyType.SelectedItem) { newLabel = GetPropertyDisplayValue(languageNumber, KickStarter.runtimeInventory.selectedItem); } else if (inventoryPropertyType == InventoryPropertyType.LastClickedItem) { newLabel = GetPropertyDisplayValue(languageNumber, KickStarter.runtimeInventory.lastClickedItem); } else if (inventoryPropertyType == InventoryPropertyType.MouseOverItem) { newLabel = GetPropertyDisplayValue(languageNumber, KickStarter.runtimeInventory.hoverItem); } } else if (labelType == AC_LabelType.DialogueLine || labelType == AC_LabelType.DialogueSpeaker) { if (linkedMenu != null && linkedMenu.IsFadingOut()) { return; } UpdateSpeechLink(); if (labelType == AC_LabelType.DialogueLine) { if (speech != null) { string line = speech.displayText; if (line != "" || updateIfEmpty) { newLabel = line; } if (useCharacterColour) { speechColour = speech.GetColour(); if (uiText) { uiText.color = speechColour; } } } else if (!KickStarter.speechManager.keepTextInBuffer) { newLabel = ""; } } else if (labelType == AC_LabelType.DialogueSpeaker) { if (speech != null) { string line = speech.GetSpeaker(languageNumber); if (line != "" || updateIfEmpty || speech.GetSpeakingCharacter() == null) { newLabel = line; } } else if (!KickStarter.speechManager.keepTextInBuffer) { newLabel = ""; } } } } else { newLabel = label; } newLabel = AdvGame.ConvertTokens(newLabel, languageNumber); if (uiText != null && Application.isPlaying) { uiText.text = newLabel; UpdateUIElement(uiText); } }
override public float Run() { string newSaveLabel = ""; if (manageSaveType == ManageSaveType.RenameSave) { GVar gVar = GlobalVariables.GetVariable(varID); if (gVar != null) { newSaveLabel = gVar.textVal; } else { ACDebug.LogWarning("Could not " + manageSaveType.ToString() + " - no variable found."); return(0f); } } int i = Mathf.Max(0, saveIndex); if (selectSaveType == SelectSaveType.SlotIndexFromVariable) { GVar gVar = GlobalVariables.GetVariable(slotVarID); if (gVar != null) { i = gVar.val; } else { ACDebug.LogWarning("Could not rename save - no variable found."); return(0f); } } if (menuName != "" && elementName != "") { MenuElement menuElement = PlayerMenus.GetElementWithName(menuName, elementName); if (menuElement != null && menuElement is MenuSavesList) { MenuSavesList menuSavesList = (MenuSavesList)menuElement; i += menuSavesList.GetOffset(); } else { ACDebug.LogWarning("Cannot find SavesList element '" + elementName + "' in Menu '" + menuName + "'."); } } else { ACDebug.LogWarning("No SavesList element referenced when trying to find save slot " + i.ToString()); } if (manageSaveType == ManageSaveType.DeleteSave) { KickStarter.saveSystem.DeleteSave(i, -1, false); } else if (manageSaveType == ManageSaveType.RenameSave) { KickStarter.saveSystem.RenameSave(newSaveLabel, i); } return(0f); }
protected void PerformSaveOrLoad() { ClearAllEvents(); if (saveHandling == SaveHandling.ContinueFromLastSave || saveHandling == SaveHandling.LoadGame) { EventManager.OnFinishLoading += OnFinishLoading; EventManager.OnFailLoading += OnFail; } else if (saveHandling == SaveHandling.OverwriteExistingSave || saveHandling == SaveHandling.SaveNewGame) { EventManager.OnFinishSaving += OnFinishSaving; EventManager.OnFailSaving += OnFail; } if ((saveHandling == SaveHandling.LoadGame || saveHandling == SaveHandling.ContinueFromLastSave) && doSelectiveLoad) { KickStarter.saveSystem.SetSelectiveLoadOptions(selectiveLoad); } string newSaveLabel = ""; if (customLabel && ((updateLabel && saveHandling == SaveHandling.OverwriteExistingSave) || saveHandling == AC.SaveHandling.SaveNewGame)) { if (selectSaveType != SelectSaveType.Autosave) { GVar gVar = GlobalVariables.GetVariable(varID); if (gVar != null) { newSaveLabel = gVar.GetValue(Options.GetLanguage()); } else { LogWarning("Could not " + saveHandling.ToString() + " - no variable found."); return; } } } int i = Mathf.Max(0, saveIndex); if (saveHandling == SaveHandling.ContinueFromLastSave) { SaveSystem.ContinueGame(); return; } if (saveHandling == SaveHandling.LoadGame || saveHandling == SaveHandling.OverwriteExistingSave) { if (selectSaveType == SelectSaveType.Autosave) { if (saveHandling == SaveHandling.LoadGame) { SaveSystem.LoadAutoSave(); return; } else { if (PlayerMenus.IsSavingLocked(this, true)) { OnComplete(); } else { SaveSystem.SaveAutoSave(); } return; } } else if (selectSaveType == SelectSaveType.SlotIndexFromVariable) { GVar gVar = GlobalVariables.GetVariable(slotVarID); if (gVar != null) { i = gVar.val; } else { LogWarning("Could not get save slot index - no variable found."); return; } } } if (!string.IsNullOrEmpty(menuName) && !string.IsNullOrEmpty(elementName)) { MenuElement menuElement = PlayerMenus.GetElementWithName(menuName, elementName); if (menuElement != null && menuElement is MenuSavesList) { MenuSavesList menuSavesList = (MenuSavesList)menuElement; i += menuSavesList.GetOffset(); } else { LogWarning("Cannot find ProfilesList element '" + elementName + "' in Menu '" + menuName + "'."); } } else { LogWarning("No SavesList element referenced when trying to find slot slot " + i.ToString()); } if (saveHandling == SaveHandling.LoadGame) { SaveSystem.LoadGame(i, -1, false); } else if (saveHandling == SaveHandling.OverwriteExistingSave || saveHandling == SaveHandling.SaveNewGame) { if (PlayerMenus.IsSavingLocked(this, true)) { OnComplete(); } else { if (saveHandling == SaveHandling.OverwriteExistingSave) { SaveSystem.SaveGame(i, -1, false, updateLabel, newSaveLabel); } else if (saveHandling == SaveHandling.SaveNewGame) { SaveSystem.SaveNewGame(updateLabel, newSaveLabel); } } } }
override public ActionEnd End(List <Action> actions) { if (numSockets <= 0) { ACDebug.LogWarning("Could not compute Random check because no values were possible!"); return(GenerateStopActionEnd()); } if (!saveToVariable) { int value = ownVarValue; ownVarValue++; if (ownVarValue >= numSockets) { if (doLoop) { ownVarValue = 0; } else { ownVarValue = numSockets - 1; } } return(ProcessResult(value, actions)); } if (variableID == -1) { return(GenerateStopActionEnd()); } GVar var = null; if (location == VariableLocation.Local && !isAssetFile) { var = LocalVariables.GetVariable(variableID); } else { var = GlobalVariables.GetVariable(variableID); } if (var != null) { if (var.type == VariableType.Integer) { var.Download(); if (var.val < 1) { var.val = 1; } int originalValue = var.val - 1; var.val++; if (var.val > numSockets) { if (doLoop) { var.val = 1; } else { var.val = numSockets; } } var.Upload(); return(ProcessResult(originalValue, actions)); } else { ACDebug.LogWarning("'Variable: Run sequence' Action is referencing a Variable that does not exist or is not an Integer!"); } } return(GenerateStopActionEnd()); }
private void UpdateValue() { if (uiSlider == null) { visualAmount = Mathf.Clamp(visualAmount, 0f, 1f); // Limit by steps if (numberOfSteps > 0) { visualAmount = Mathf.Round(visualAmount * numberOfSteps) / numberOfSteps; } amount = (visualAmount * (maxValue - minValue)) + minValue; } else { amount = visualAmount; } if (sliderType == AC_SliderType.Speech || sliderType == AC_SliderType.SFX || sliderType == AC_SliderType.Music) { if (Options.optionsData != null) { if (sliderType == AC_SliderType.Speech) { KickStarter.options.SetVolume(SoundType.Speech, amount); } else if (sliderType == AC_SliderType.Music) { KickStarter.options.SetVolume(SoundType.Music, amount); } else if (sliderType == AC_SliderType.SFX) { KickStarter.options.SetVolume(SoundType.SFX, amount); } #if UNITY_5 || UNITY_2017_1_OR_NEWER if (sliderType == AC_SliderType.Speech) { AdvGame.SetMixerVolume(KickStarter.settingsManager.speechMixerGroup, KickStarter.settingsManager.speechAttentuationParameter, amount); } else if (sliderType == AC_SliderType.Music) { AdvGame.SetMixerVolume(KickStarter.settingsManager.musicMixerGroup, KickStarter.settingsManager.musicAttentuationParameter, amount); } else if (sliderType == AC_SliderType.SFX) { AdvGame.SetMixerVolume(KickStarter.settingsManager.sfxMixerGroup, KickStarter.settingsManager.sfxAttentuationParameter, amount); } #endif } else { ACDebug.LogWarning("Could not find Options data!"); } } else if (sliderType == AC_SliderType.FloatVariable) { if (varID >= 0) { GVar var = GlobalVariables.GetVariable(varID); if (var.type == VariableType.Float) { var.SetFloatValue(amount); } } } if (!KickStarter.actionListAssetManager.IsListRunning(actionListOnChange)) { AdvGame.RunActionListAsset(actionListOnChange); } }
private void UpdateValue() { if (uiSlider == null) { visualAmount = Mathf.Clamp(visualAmount, 0f, 1f); // Limit by steps if (numberOfSteps > 0) { float valueSeparation = 1f / (float)numberOfSteps; float nearestValue = 0f; while (nearestValue < visualAmount) { nearestValue += valueSeparation; } // Now larger than amount, so which is closer? float lowerNearest = nearestValue - valueSeparation; if (visualAmount - lowerNearest > nearestValue - amount) { visualAmount = nearestValue; } else { visualAmount = lowerNearest; } } amount = (visualAmount * (maxValue - minValue)) + minValue; } else { amount = visualAmount; } if (sliderType == AC_SliderType.Speech || sliderType == AC_SliderType.SFX || sliderType == AC_SliderType.Music) { if (Options.optionsData != null) { if (sliderType == AC_SliderType.Speech) { Options.optionsData.speechVolume = amount; KickStarter.options.SetVolume(SoundType.SFX); } else if (sliderType == AC_SliderType.Music) { Options.optionsData.musicVolume = amount; KickStarter.options.SetVolume(SoundType.Music); } else if (sliderType == AC_SliderType.SFX) { Options.optionsData.sfxVolume = amount; KickStarter.options.SetVolume(SoundType.SFX); } #if UNITY_5 if (sliderType == AC_SliderType.Speech) { AdvGame.SetMixerVolume(KickStarter.settingsManager.speechMixerGroup, KickStarter.settingsManager.speechAttentuationParameter, amount); } else if (sliderType == AC_SliderType.Music) { AdvGame.SetMixerVolume(KickStarter.settingsManager.musicMixerGroup, KickStarter.settingsManager.musicAttentuationParameter, amount); } else if (sliderType == AC_SliderType.SFX) { AdvGame.SetMixerVolume(KickStarter.settingsManager.sfxMixerGroup, KickStarter.settingsManager.sfxAttentuationParameter, amount); } #endif Options.SavePrefs(); } else { ACDebug.LogWarning("Could not find Options data!"); } } else if (sliderType == AC_SliderType.FloatVariable) { if (varID >= 0) { GVar var = GlobalVariables.GetVariable(varID); if (var.type == VariableType.Float) { var.SetFloatValue(amount); } } } if (!KickStarter.actionListManager.IsListRunning(actionListOnChange)) { AdvGame.RunActionListAsset(actionListOnChange); } }