public void SetValue(int newValue, SetVarMethod setVarMethod) { if (setVarMethod == SetVarMethod.IncreaseByValue) { val += newValue; } else if (setVarMethod == SetVarMethod.SetAsRandom) { val = Random.Range(0, newValue); } else { val = newValue; } if (type == VariableType.Boolean) { if (val > 0) { val = 1; } else { val = 0; } } }
/** * <summary>Sets the value if its type is Float.</summary> * <param name = "newValue">The new float value</param> * <param name = "setVarMethod">How the new value affects the old (replaces, increases by, or randomises)</param> */ public void SetFloatValue(float newValue, SetVarMethod setVarMethod = SetVarMethod.SetValue) { if (setVarMethod == SetVarMethod.IncreaseByValue) { floatVal += newValue; } else if (setVarMethod == SetVarMethod.SetAsRandom) { floatVal = Random.Range(0f, newValue); } else { floatVal = newValue; } }
/** * <summary>Sets the value if its type is Float.</summary> * <param name = "newValue">The new float value</param> * <param name = "setVarMethod">How the new value affects the old (replaces, increases by, or randomises)</param> */ public void SetFloatValue(float newValue, SetVarMethod setVarMethod = SetVarMethod.SetValue) { float originalValue = floatVal; if (setVarMethod == SetVarMethod.IncreaseByValue) { FloatValue = originalValue + newValue; } else if (setVarMethod == SetVarMethod.SetAsRandom) { FloatValue = Random.Range(0f, newValue); } else { FloatValue = newValue; } }
/** * <summary>Sets the value if its type is Integer, Boolean or PopUp.</summary> * <param name = "newValue">The new integer value</param> * <param name = "setVarMethod">How the new value affects the old (replaces, increases by, or randomises)</param> */ public void SetValue(int newValue, SetVarMethod setVarMethod = SetVarMethod.SetValue) { int originalValue = val; if (setVarMethod == SetVarMethod.IncreaseByValue) { val += newValue; } else if (setVarMethod == SetVarMethod.SetAsRandom) { val = Random.Range(0, newValue); } else { val = newValue; } if (type == VariableType.Boolean) { if (val > 0) { val = 1; } else { val = 0; } } else if (type == VariableType.PopUp) { if (val < 0) { val = 0; } else if (val >= popUps.Length) { val = popUps.Length - 1; } } if (originalValue != val) { KickStarter.eventManager.Call_OnVariableChange(this); } }
/** * <summary>Sets the value if its type is Float.</summary> * <param name = "newValue">The new float value</param> * <param name = "setVarMethod">How the new value affects the old (replaces, increases by, or randomises)</param> */ public void SetFloatValue(float newValue, SetVarMethod setVarMethod = SetVarMethod.SetValue) { float originalValue = floatVal; if (setVarMethod == SetVarMethod.IncreaseByValue) { floatVal += newValue; } else if (setVarMethod == SetVarMethod.SetAsRandom) { floatVal = Random.Range(0f, newValue); } else { floatVal = newValue; } if (originalValue != floatVal) { KickStarter.eventManager.Call_OnVariableChange(this); } }
/** * <summary>Sets the value if its type is Integer, Boolean or PopUp.</summary> * <param name = "newValue">The new integer value</param> * <param name = "setVarMethod">How the new value affects the old (replaces, increases by, or randomises)</param> */ public void SetValue(int newValue, SetVarMethod setVarMethod = SetVarMethod.SetValue) { if (setVarMethod == SetVarMethod.IncreaseByValue) { newValue = IntegerValue + newValue; } else if (setVarMethod == SetVarMethod.SetAsRandom) { newValue = Random.Range(0, newValue); } if (type == VariableType.Boolean) { BooleanValue = (newValue > 0); return; } else if (type == VariableType.PopUp) { newValue = Mathf.Clamp(newValue, 0, GetNumPopUpValues() - 1); } IntegerValue = newValue; }
private void ShowVarGUI(List <GVar> vars, List <ActionParameter> parameters, ParameterType parameterType) { // Create a string List of the field's names (for the PopUp box) List <string> labelList = new List <string>(); int i = 0; if (parameterID == -1) { variableNumber = -1; } if (vars.Count > 0) { foreach (GVar _var in vars) { labelList.Add(_var.label); // If a GlobalVar variable has been removed, make sure selected variable is still valid if (_var.id == variableID) { variableNumber = i; } i++; } if (variableNumber == -1 && (parameters == null || parameters.Count == 0 || parameterID == -1)) { // Wasn't found (variable was deleted?), so revert to zero Debug.LogWarning("Previously chosen variable no longer exists!"); variableNumber = 0; variableID = 0; } parameterID = Action.ChooseParameterGUI("Variable:", parameters, parameterID, parameterType); if (parameterID >= 0) { //variableNumber = 0; variableNumber = Mathf.Min(variableNumber, vars.Count - 1); variableID = -1; } else { variableNumber = EditorGUILayout.Popup("Variable:", variableNumber, labelList.ToArray()); variableID = vars [variableNumber].id; } string label = "Statement: "; if (vars [variableNumber].type == VariableType.Boolean) { setVarMethodIntBool = (SetVarMethodIntBool)EditorGUILayout.EnumPopup("New value is:", setVarMethodIntBool); label += "="; if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.Boolean); if (setParameterID < 0) { boolValue = (BoolValue)EditorGUILayout.EnumPopup(label, boolValue); } } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { ShowMecanimGUI(); } } if (vars [variableNumber].type == VariableType.PopUp) { label += "="; intValue = EditorGUILayout.Popup(label, intValue, vars[variableNumber].popUps); } else if (vars [variableNumber].type == VariableType.Integer) { setVarMethodIntBool = (SetVarMethodIntBool)EditorGUILayout.EnumPopup("New value is:", setVarMethodIntBool); if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { setVarMethod = (SetVarMethod)EditorGUILayout.EnumPopup("Method:", setVarMethod); if (setVarMethod == SetVarMethod.Formula) { label += "="; setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.String); if (setParameterID < 0) { formula = EditorGUILayout.TextField(label, formula); } #if UNITY_WP8 EditorGUILayout.HelpBox("This feature is not available for Windows Phone 8.", MessageType.Warning); #endif } else { if (setVarMethod == SetVarMethod.IncreaseByValue) { label += "+="; } else if (setVarMethod == SetVarMethod.SetValue) { label += "="; } else if (setVarMethod == SetVarMethod.SetAsRandom) { label += ("= 0 to"); } setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.Integer); if (setParameterID < 0) { intValue = EditorGUILayout.IntField(label, intValue); if (setVarMethod == SetVarMethod.SetAsRandom && intValue < 0) { intValue = 0; } } } } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { ShowMecanimGUI(); } } else if (vars [variableNumber].type == VariableType.Float) { setVarMethodIntBool = (SetVarMethodIntBool)EditorGUILayout.EnumPopup("New value is:", setVarMethodIntBool); if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { setVarMethod = (SetVarMethod)EditorGUILayout.EnumPopup("Method:", setVarMethod); if (setVarMethod == SetVarMethod.Formula) { label += "="; setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.String); if (setParameterID < 0) { formula = EditorGUILayout.TextField(label, formula); } #if UNITY_WP8 EditorGUILayout.HelpBox("This feature is not available for Windows Phone 8.", MessageType.Warning); #endif } else { if (setVarMethod == SetVarMethod.IncreaseByValue) { label += "+="; } else if (setVarMethod == SetVarMethod.SetValue) { label += "="; } else if (setVarMethod == SetVarMethod.SetAsRandom) { label += "= 0 to"; } setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.Float); if (setParameterID < 0) { floatValue = EditorGUILayout.FloatField(label, floatValue); if (setVarMethod == SetVarMethod.SetAsRandom && floatValue < 0f) { floatValue = 0f; } } } } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { ShowMecanimGUI(); } } else if (vars [variableNumber].type == VariableType.String) { setVarMethodString = (SetVarMethodString)EditorGUILayout.EnumPopup("New value is:", setVarMethodString); label += "="; if (setVarMethodString == SetVarMethodString.EnteredHere) { setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.String); if (setParameterID < 0) { stringValue = EditorGUILayout.TextField(label, stringValue); } } else if (setVarMethodString == SetVarMethodString.SetAsMenuElementText) { menuName = EditorGUILayout.TextField("Menu name:", menuName); elementName = EditorGUILayout.TextField("Element name:", elementName); slotNumberParameterID = Action.ChooseParameterGUI("Slot # (optional):", parameters, slotNumberParameterID, ParameterType.Integer); if (slotNumberParameterID < 0) { slotNumber = EditorGUILayout.IntField("Slot # (optional):", slotNumber); } } } AfterRunningOption(); } else { EditorGUILayout.HelpBox("No variables exist!", MessageType.Info); variableID = -1; variableNumber = -1; } }
private void SetVariable(GVar var, VariableLocation location, bool doSkip) { if (var == null) { return; } if (location == VariableLocation.Global) { var.Download(); } if (var.type == VariableType.Integer) { int _value = 0; if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { if (setVarMethod == SetVarMethod.Formula) { _value = (int)AdvGame.CalculateFormula(AdvGame.ConvertTokens(formula)); } else { _value = intValue; } } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { if (animator && parameterName != "") { _value = animator.GetInteger(parameterName); setVarMethod = SetVarMethod.SetValue; } } if (setVarMethod == SetVarMethod.IncreaseByValue && doSkip) { var.RestoreBackupValue(); } var.SetValue(_value, setVarMethod); if (doSkip) { var.BackupValue(); } } if (var.type == VariableType.Float) { float _value = 0; if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { if (setVarMethod == SetVarMethod.Formula) { _value = (float)AdvGame.CalculateFormula(AdvGame.ConvertTokens(formula)); } else { _value = floatValue; } } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { if (animator && parameterName != "") { _value = animator.GetFloat(parameterName); setVarMethod = SetVarMethod.SetValue; } } if (setVarMethod == SetVarMethod.IncreaseByValue && doSkip) { var.RestoreBackupValue(); } var.SetValue(_value, setVarMethod); if (doSkip) { var.BackupValue(); } } else if (var.type == VariableType.Boolean) { int _value = 0; if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { _value = (int)boolValue; } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { if (animator && parameterName != "") { if (animator.GetBool(parameterName)) { _value = 1; } } } var.SetValue(_value, SetVarMethod.SetValue); } else if (var.type == VariableType.PopUp) { var.SetValue(intValue); } else if (var.type == VariableType.String) { string _value = ""; if (setVarMethodString == SetVarMethodString.EnteredHere) { _value = AdvGame.ConvertTokens(stringValue); } else if (setVarMethodString == SetVarMethodString.SetAsMenuElementText) { MenuElement menuElement = PlayerMenus.GetElementWithName(menuName, elementName); if (menuElement != null) { if (menuElement is MenuInput) { MenuInput menuInput = (MenuInput)menuElement; _value = menuInput.GetContents(); if ((Options.GetLanguageName() == "Arabic" || Options.GetLanguageName() == "Hebrew") && _value.Length > 0) { // Invert char[] charArray = _value.ToCharArray(); _value = ""; for (int i = charArray.Length - 1; i >= 0; i--) { _value += charArray[i]; } } } else { PlayerMenus.GetMenuWithName(menuName).Recalculate(); menuElement.PreDisplay(slotNumber, Options.GetLanguage(), false); _value = menuElement.GetLabel(slotNumber, Options.GetLanguage()); } } else { Debug.LogWarning("Could not find MenuInput '" + elementName + "' in Menu '" + menuName + "'"); } } var.SetValue(_value); } if (location == VariableLocation.Global) { var.Upload(); } KickStarter.actionListManager.VariableChanged(); }
private void ShowVarGUI(List<GVar> vars, List<ActionParameter> parameters, ParameterType parameterType) { // Create a string List of the field's names (for the PopUp box) List<string> labelList = new List<string>(); int i = 0; if (parameterID == -1) { variableNumber = -1; } if (vars.Count > 0) { foreach (GVar _var in vars) { labelList.Add (_var.label); // If a GlobalVar variable has been removed, make sure selected variable is still valid if (_var.id == variableID) { variableNumber = i; } i ++; } if (variableNumber == -1 && (parameters == null || parameters.Count == 0 || parameterID == -1)) { // Wasn't found (variable was deleted?), so revert to zero Debug.LogWarning ("Previously chosen variable no longer exists!"); variableNumber = 0; variableID = 0; } parameterID = Action.ChooseParameterGUI ("Variable:", parameters, parameterID, parameterType); if (parameterID >= 0) { //variableNumber = 0; variableNumber = Mathf.Min (variableNumber, vars.Count-1); variableID = -1; } else { variableNumber = EditorGUILayout.Popup ("Variable:", variableNumber, labelList.ToArray()); variableID = vars [variableNumber].id; } string label = "Statement: "; if (vars [variableNumber].type == VariableType.Boolean) { setVarMethodIntBool = (SetVarMethodIntBool) EditorGUILayout.EnumPopup ("New value is:", setVarMethodIntBool); label += "="; if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { setParameterID = Action.ChooseParameterGUI (label, parameters, setParameterID, ParameterType.Boolean); if (setParameterID < 0) { boolValue = (BoolValue) EditorGUILayout.EnumPopup (label, boolValue); } } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { ShowMecanimGUI (); } } if (vars [variableNumber].type == VariableType.PopUp) { label += "="; intValue = EditorGUILayout.Popup (label, intValue, vars[variableNumber].popUps); } else if (vars [variableNumber].type == VariableType.Integer) { setVarMethodIntBool = (SetVarMethodIntBool) EditorGUILayout.EnumPopup ("New value is:", setVarMethodIntBool); if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { setVarMethod = (SetVarMethod) EditorGUILayout.EnumPopup ("Method:", setVarMethod); if (setVarMethod == SetVarMethod.Formula) { label += "="; setParameterID = Action.ChooseParameterGUI (label, parameters, setParameterID, ParameterType.String); if (setParameterID < 0) { formula = EditorGUILayout.TextField (label, formula); } #if UNITY_WP8 EditorGUILayout.HelpBox ("This feature is not available for Windows Phone 8.", MessageType.Warning); #endif } else { if (setVarMethod == SetVarMethod.IncreaseByValue) { label += "+="; } else if (setVarMethod == SetVarMethod.SetValue) { label += "="; } else if (setVarMethod == SetVarMethod.SetAsRandom) { label += ("= 0 to"); } setParameterID = Action.ChooseParameterGUI (label, parameters, setParameterID, ParameterType.Integer); if (setParameterID < 0) { intValue = EditorGUILayout.IntField (label, intValue); if (setVarMethod == SetVarMethod.SetAsRandom && intValue < 0) { intValue = 0; } } } } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { ShowMecanimGUI (); } } else if (vars [variableNumber].type == VariableType.Float) { setVarMethodIntBool = (SetVarMethodIntBool) EditorGUILayout.EnumPopup ("New value is:", setVarMethodIntBool); if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { setVarMethod = (SetVarMethod) EditorGUILayout.EnumPopup ("Method:", setVarMethod); if (setVarMethod == SetVarMethod.Formula) { label += "="; setParameterID = Action.ChooseParameterGUI (label, parameters, setParameterID, ParameterType.String); if (setParameterID < 0) { formula = EditorGUILayout.TextField (label, formula); } #if UNITY_WP8 EditorGUILayout.HelpBox ("This feature is not available for Windows Phone 8.", MessageType.Warning); #endif } else { if (setVarMethod == SetVarMethod.IncreaseByValue) { label += "+="; } else if (setVarMethod == SetVarMethod.SetValue) { label += "="; } else if (setVarMethod == SetVarMethod.SetAsRandom) { label += "= 0 to"; } setParameterID = Action.ChooseParameterGUI (label, parameters, setParameterID, ParameterType.Float); if (setParameterID < 0) { floatValue = EditorGUILayout.FloatField (label, floatValue); if (setVarMethod == SetVarMethod.SetAsRandom && floatValue < 0f) { floatValue = 0f; } } } } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { ShowMecanimGUI (); } } else if (vars [variableNumber].type == VariableType.String) { setVarMethodString = (SetVarMethodString) EditorGUILayout.EnumPopup ("New value is:", setVarMethodString); label += "="; if (setVarMethodString == SetVarMethodString.EnteredHere) { setParameterID = Action.ChooseParameterGUI (label, parameters, setParameterID, ParameterType.String); if (setParameterID < 0) { stringValue = EditorGUILayout.TextField (label, stringValue); } } else if (setVarMethodString == SetVarMethodString.SetAsMenuElementText) { menuName = EditorGUILayout.TextField ("Menu name:", menuName); elementName = EditorGUILayout.TextField ("Element name:", elementName); slotNumberParameterID = Action.ChooseParameterGUI ("Slot # (optional):", parameters, slotNumberParameterID, ParameterType.Integer); if (slotNumberParameterID < 0) { slotNumber = EditorGUILayout.IntField ("Slot # (optional):", slotNumber); } } } AfterRunningOption (); } else { EditorGUILayout.HelpBox ("No variables exist!", MessageType.Info); variableID = -1; variableNumber = -1; } }
private void SetVariable(GVar var, VariableLocation location, bool doSkip) { if (var == null) { return; } if (location == VariableLocation.Global) { var.Download (); } if (var.type == VariableType.Integer) { int _value = 0; if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { if (setVarMethod == SetVarMethod.Formula) { _value = (int) AdvGame.CalculateFormula (AdvGame.ConvertTokens (formula)); } else { _value = intValue; } } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { if (animator && parameterName != "") { _value = animator.GetInteger (parameterName); setVarMethod = SetVarMethod.SetValue; } } if (setVarMethod == SetVarMethod.IncreaseByValue && doSkip) { var.RestoreBackupValue (); } var.SetValue (_value, setVarMethod); if (doSkip) { var.BackupValue (); } } if (var.type == VariableType.Float) { float _value = 0; if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { if (setVarMethod == SetVarMethod.Formula) { _value = (float) AdvGame.CalculateFormula (AdvGame.ConvertTokens (formula)); } else { _value = floatValue; } } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { if (animator && parameterName != "") { _value = animator.GetFloat (parameterName); setVarMethod = SetVarMethod.SetValue; } } if (setVarMethod == SetVarMethod.IncreaseByValue && doSkip) { var.RestoreBackupValue (); } var.SetFloatValue (_value, setVarMethod); if (doSkip) { var.BackupValue (); } } else if (var.type == VariableType.Boolean) { int _value = 0; if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { _value = (int) boolValue; } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { if (animator && parameterName != "") { if (animator.GetBool (parameterName)) { _value = 1; } } } var.SetValue (_value, SetVarMethod.SetValue); } else if (var.type == VariableType.PopUp) { var.SetValue (intValue); } else if (var.type == VariableType.String) { string _value = ""; if (setVarMethodString == SetVarMethodString.EnteredHere) { _value = AdvGame.ConvertTokens (stringValue); } else if (setVarMethodString == SetVarMethodString.SetAsMenuElementText) { MenuElement menuElement = PlayerMenus.GetElementWithName (menuName, elementName); if (menuElement != null) { if (menuElement is MenuInput) { MenuInput menuInput = (MenuInput) menuElement; _value = menuInput.GetContents (); if ((Options.GetLanguageName () == "Arabic" || Options.GetLanguageName () == "Hebrew") && _value.Length > 0) { // Invert char[] charArray = _value.ToCharArray (); _value = ""; for (int i = charArray.Length-1; i >= 0; i --) { _value += charArray[i]; } } } else { PlayerMenus.GetMenuWithName (menuName).Recalculate (); menuElement.PreDisplay (slotNumber, Options.GetLanguage (), false); _value = menuElement.GetLabel (slotNumber, Options.GetLanguage ()); } } else { Debug.LogWarning ("Could not find MenuInput '" + elementName + "' in Menu '" + menuName + "'"); } } var.SetStringValue (_value); } if (location == VariableLocation.Global) { var.Upload (); } KickStarter.actionListManager.VariableChanged (); }
/** * <summary>Sets the value if its type is Integer, Boolean or PopUp.</summary> * <param name = "newValue">The new integer value</param> * <param name = "setVarMethod">How the new value affects the old (replaces, increases by, or randomises)</param> */ public void SetValue(int newValue, SetVarMethod setVarMethod = SetVarMethod.SetValue) { if (setVarMethod == SetVarMethod.IncreaseByValue) { val += newValue; } else if (setVarMethod == SetVarMethod.SetAsRandom) { val = Random.Range (0, newValue); } else { val = newValue; } if (type == VariableType.Boolean) { if (val > 0) { val = 1; } else { val = 0; } } else if (type == VariableType.PopUp) { if (val < 0) { val = 0; } else if (val >= popUps.Length) { val = popUps.Length - 1; } } }
/** * <summary>Sets the value if its type is Float.</summary> * <param name = "newValue">The new float value</param> * <param name = "setVarMethod">How the new value affects the old (replaces, increases by, or randomises)</param> */ public void SetFloatValue(float newValue, SetVarMethod setVarMethod = SetVarMethod.SetValue) { if (setVarMethod == SetVarMethod.IncreaseByValue) { floatVal += newValue; } else if (setVarMethod == SetVarMethod.SetAsRandom) { floatVal = Random.Range (0f, newValue); } else { floatVal = newValue; } }
private void ShowVarGUI(List <GVar> _vars, List <ActionParameter> parameters, ParameterType parameterType, bool changeID) { // Create a string List of the field's names (for the PopUp box) List <string> labelList = new List <string>(); int i = 0; if (parameterID == -1) { variableNumber = -1; } VariableType showType = VariableType.Boolean; if (changeID) { if (_vars != null && _vars.Count > 0) { foreach (GVar _var in _vars) { labelList.Add(_var.label); // If a GlobalVar variable has been removed, make sure selected variable is still valid if (changeID && _var.id == variableID) { variableNumber = i; } i++; } if (variableNumber == -1 && (parameters == null || parameters.Count == 0 || parameterID == -1)) { // Wasn't found (variable was deleted?), so revert to zero ACDebug.LogWarning("Previously chosen variable no longer exists!"); variableNumber = 0; variableID = 0; } variableNumber = EditorGUILayout.Popup("Variable:", variableNumber, labelList.ToArray()); variableID = _vars [variableNumber].id; showType = _vars[variableNumber].type; } else { EditorGUILayout.HelpBox("No variables exist!", MessageType.Info); variableID = -1; variableNumber = -1; return; } placeholderType = showType; } else { showType = placeholderType; } string label = "Statement: "; switch (showType) { case VariableType.Boolean: setVarMethodIntBool = (SetVarMethodIntBool)EditorGUILayout.EnumPopup("New value is:", setVarMethodIntBool); label += "="; if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.Boolean); if (setParameterID < 0) { boolValue = (BoolValue)EditorGUILayout.EnumPopup(label, boolValue); } } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { ShowMecanimGUI(); } break; case VariableType.Float: setVarMethodIntBool = (SetVarMethodIntBool)EditorGUILayout.EnumPopup("New value is:", setVarMethodIntBool); if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { setVarMethod = (SetVarMethod)EditorGUILayout.EnumPopup("Method:", setVarMethod); if (setVarMethod == SetVarMethod.Formula) { label += "="; setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.String); if (setParameterID < 0) { formula = EditorGUILayout.TextField(label, formula); } #if UNITY_WP8 EditorGUILayout.HelpBox("This feature is not available for Windows Phone 8.", MessageType.Warning); #endif } else { if (setVarMethod == SetVarMethod.IncreaseByValue) { label += "+="; } else if (setVarMethod == SetVarMethod.SetValue) { label += "="; } else if (setVarMethod == SetVarMethod.SetAsRandom) { label += "= 0 to (exc.)"; } setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.Float); if (setParameterID < 0) { floatValue = EditorGUILayout.FloatField(label, floatValue); if (setVarMethod == SetVarMethod.SetAsRandom && floatValue < 0f) { floatValue = 0f; } } } } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { ShowMecanimGUI(); } break; case VariableType.Integer: setVarMethodIntBool = (SetVarMethodIntBool)EditorGUILayout.EnumPopup("New value is:", setVarMethodIntBool); if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { setVarMethod = (SetVarMethod)EditorGUILayout.EnumPopup("Method:", setVarMethod); if (setVarMethod == SetVarMethod.Formula) { label += "="; setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.String); if (setParameterID < 0) { formula = EditorGUILayout.TextField(label, formula); } #if UNITY_WP8 EditorGUILayout.HelpBox("This feature is not available for Windows Phone 8.", MessageType.Warning); #endif } else { if (setVarMethod == SetVarMethod.IncreaseByValue) { label += "+="; } else if (setVarMethod == SetVarMethod.SetValue) { label += "="; } else if (setVarMethod == SetVarMethod.SetAsRandom) { label += ("= 0 to"); } setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.Integer); if (setParameterID < 0) { intValue = EditorGUILayout.IntField(label, intValue); if (setVarMethod == SetVarMethod.SetAsRandom && intValue < 0) { intValue = 0; } } } } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { ShowMecanimGUI(); } break; case VariableType.PopUp: setVarMethod = (SetVarMethod)EditorGUILayout.EnumPopup("Method:", setVarMethod); if (setVarMethod == SetVarMethod.Formula) { label += "="; setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.String); if (setParameterID < 0) { formula = EditorGUILayout.TextField(label, formula); } #if UNITY_WP8 EditorGUILayout.HelpBox("This feature is not available for Windows Phone 8.", MessageType.Warning); #endif } else if (setVarMethod == SetVarMethod.IncreaseByValue || setVarMethod == SetVarMethod.SetValue) { if (setVarMethod == SetVarMethod.IncreaseByValue) { label += "+="; } else if (setVarMethod == SetVarMethod.SetValue) { label += "="; } setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.Integer); if (setParameterID < 0) { if (setVarMethod == SetVarMethod.SetValue && changeID && _vars != null) { string[] popUpLabels = _vars[variableNumber].GenerateEditorPopUpLabels(); intValue = EditorGUILayout.Popup(label, intValue, popUpLabels); placeholderPopUpLabelDataID = _vars[variableNumber].popUpID; } else if (setVarMethod == SetVarMethod.SetValue && !changeID && AdvGame.GetReferences().variablesManager != null) { // Parameter override placeholderPopUpLabelDataID = AdvGame.GetReferences().variablesManager.ShowPlaceholderPresetData(placeholderPopUpLabelDataID); PopUpLabelData popUpLabelData = AdvGame.GetReferences().variablesManager.GetPopUpLabelData(placeholderPopUpLabelDataID); if (popUpLabelData != null && placeholderPopUpLabelDataID >= 0) { // Show placeholder labels intValue = EditorGUILayout.Popup(label, intValue, popUpLabelData.GenerateEditorPopUpLabels()); } else { intValue = EditorGUILayout.IntField(label, intValue); } } else { intValue = EditorGUILayout.IntField(label, intValue); } if (setVarMethod == SetVarMethod.SetAsRandom && intValue < 0) { intValue = 0; } } } break; case VariableType.String: setVarMethodString = (SetVarMethodString)EditorGUILayout.EnumPopup("New value is:", setVarMethodString); label += "="; if (setVarMethodString == SetVarMethodString.EnteredHere) { setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.String); if (setParameterID < 0) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(label, GUILayout.Width(140f)); EditorStyles.textField.wordWrap = true; stringValue = EditorGUILayout.TextArea(stringValue, GUILayout.MaxWidth(400f)); EditorGUILayout.EndHorizontal(); } } else if (setVarMethodString == SetVarMethodString.SetAsMenuElementText) { menuName = EditorGUILayout.TextField("Menu name:", menuName); elementName = EditorGUILayout.TextField("Element name:", elementName); slotNumberParameterID = Action.ChooseParameterGUI("Slot # (optional):", parameters, slotNumberParameterID, ParameterType.Integer); if (slotNumberParameterID < 0) { slotNumber = EditorGUILayout.IntField("Slot # (optional):", slotNumber); } } break; case VariableType.Vector3: setVarMethodVector = (SetVarMethodVector)EditorGUILayout.EnumPopup("Method:", setVarMethodVector); if (setVarMethodVector == SetVarMethodVector.IncreaseByValue) { label += "+="; } else if (setVarMethodVector == SetVarMethodVector.SetValue) { label += "="; } setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.Vector3); if (setParameterID < 0) { vector3Value = EditorGUILayout.Vector3Field(label, vector3Value); } break; default: break; } }
protected void SetVariable(GVar var, VariableLocation location, bool doSkip) { if (var == null) { return; } switch (var.type) { case VariableType.Integer: { int _value = 0; if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { if (setVarMethod == SetVarMethod.Formula) { _value = (int)AdvGame.CalculateFormula(AdvGame.ConvertTokens(formula, Options.GetLanguage(), localVariables)); } else { _value = intValue; } } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { if (animator && !string.IsNullOrEmpty(parameterName)) { _value = animator.GetInteger(parameterName); setVarMethod = SetVarMethod.SetValue; } } if (setVarMethod == SetVarMethod.IncreaseByValue && doSkip) { var.RestoreBackupValue(); } var.SetValue(_value, setVarMethod); if (doSkip) { var.BackupValue(); } break; } case VariableType.Float: { float _value = 0; if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { if (setVarMethod == SetVarMethod.Formula) { _value = (float)AdvGame.CalculateFormula(AdvGame.ConvertTokens(formula, Options.GetLanguage(), localVariables)); } else { _value = floatValue; } } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { if (animator && !string.IsNullOrEmpty(parameterName)) { _value = animator.GetFloat(parameterName); setVarMethod = SetVarMethod.SetValue; } } if (setVarMethod == SetVarMethod.IncreaseByValue && doSkip) { var.RestoreBackupValue(); } var.SetFloatValue(_value, setVarMethod); if (doSkip) { var.BackupValue(); } break; } case VariableType.Boolean: { int _value = 0; if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { _value = (int)boolValue; } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { if (animator && !string.IsNullOrEmpty(parameterName)) { if (animator.GetBool(parameterName)) { _value = 1; } } } var.SetValue(_value, SetVarMethod.SetValue); break; } case VariableType.Vector3: { Vector3 newValue = vector3Value; if (setVarMethodVector == SetVarMethodVector.IncreaseByValue) { newValue += var.vector3Val; } var.SetVector3Value(newValue); break; } case VariableType.PopUp: { int _value = 0; if (setVarMethod == SetVarMethod.Formula) { _value = (int)AdvGame.CalculateFormula(AdvGame.ConvertTokens(formula, Options.GetLanguage(), localVariables)); } else if (setVarMethod == SetVarMethod.SetAsRandom) { _value = var.GetNumPopUpValues(); } else { _value = Mathf.Clamp(intValue, 0, var.GetNumPopUpValues() - 1); } if (setVarMethod == SetVarMethod.IncreaseByValue && doSkip) { var.RestoreBackupValue(); } var.SetValue(_value, setVarMethod); if (doSkip) { var.BackupValue(); } break; } case VariableType.String: { string _value = string.Empty; if (setVarMethodString == SetVarMethodString.EnteredHere) { _value = AdvGame.ConvertTokens(stringValue, Options.GetLanguage(), localVariables); } else if (setVarMethodString == SetVarMethodString.SetAsMenuElementText) { MenuElement menuElement = PlayerMenus.GetElementWithName(menuName, elementName); if (menuElement != null) { if (menuElement is MenuInput) { MenuInput menuInput = (MenuInput)menuElement; _value = menuInput.GetContents(); if (KickStarter.runtimeLanguages.LanguageReadsRightToLeft(Options.GetLanguage()) && _value.Length > 0) { // Invert char[] charArray = _value.ToCharArray(); _value = ""; for (int i = charArray.Length - 1; i >= 0; i--) { _value += charArray[i]; } } } else { PlayerMenus.GetMenuWithName(menuName).Recalculate(); menuElement.PreDisplay(slotNumber, Options.GetLanguage(), false); _value = menuElement.GetLabel(slotNumber, Options.GetLanguage()); } } else { LogWarning("Could not find MenuInput '" + elementName + "' in Menu '" + menuName + "'"); } } var.SetStringValue(_value, lineID); break; } default: break; } var.Upload(location, runtimeVariables); KickStarter.actionListManager.VariableChanged(); }
private void SetVariable (GVar var, VariableLocation location) { if (var == null) { return; } if (location == VariableLocation.Global) { var.Download (); } if (var.type == VariableType.Integer) { int _value = 0; if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { if (setVarMethod == SetVarMethod.Formula) { _value = (int) AdvGame.CalculateFormula (AdvGame.ConvertTokens (formula)); } else { _value = intValue; } } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { if (animator && parameterName != "") { _value = animator.GetInteger (parameterName); setVarMethod = SetVarMethod.SetValue; } } var.SetValue (_value, setVarMethod); } if (var.type == VariableType.Float) { float _value = 0; if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { if (setVarMethod == SetVarMethod.Formula) { _value = (float) AdvGame.CalculateFormula (AdvGame.ConvertTokens (formula)); } else { _value = floatValue; } } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { if (animator && parameterName != "") { _value = animator.GetFloat (parameterName); setVarMethod = SetVarMethod.SetValue; } } var.SetValue (_value, setVarMethod); } else if (var.type == VariableType.Boolean) { int _value = 0; if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere) { _value = (int) boolValue; } else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter) { if (animator && parameterName != "") { if (animator.GetBool (parameterName)) { _value = 1; } } } var.SetValue (_value, SetVarMethod.SetValue); } else if (var.type == VariableType.PopUp) { var.SetValue (intValue); } else if (var.type == VariableType.String) { string _value = ""; if (setVarMethodString == SetVarMethodString.EnteredHere) { _value = AdvGame.ConvertTokens (stringValue); } else if (setVarMethodString == SetVarMethodString.SetAsMenuInputLabel) { if (PlayerMenus.GetElementWithName (menuName, elementName) != null) { MenuInput menuInput = (MenuInput) PlayerMenus.GetElementWithName (menuName, elementName); _value = menuInput.label; if ((Options.GetLanguageName () == "Arabic" || Options.GetLanguageName () == "Hebrew") && _value.Length > 0) { // Invert char[] charArray = _value.ToCharArray (); _value = ""; for (int i = charArray.Length-1; i >= 0; i --) { _value += charArray[i]; } } } else { Debug.LogWarning ("Could not find MenuInput '" + elementName + "' in Menu '" + menuName + "'"); } } var.SetValue (_value); } if (location == VariableLocation.Global) { var.Upload (); } GameObject.FindWithTag (Tags.gameEngine).GetComponent <ActionListManager>().VariableChanged (); }