using UnityEngine; using System; using System.Collections; namespace Fungus.Script { public enum VariableType { Boolean, Integer, Float, String }; public enum VariableScope { Local, Global }; [Serializable] public class Variable { public string key; public VariableType type; public VariableScope scope; bool booleanValue; int integerValue; float floatValue; string stringValue; public bool BooleanValue { get { return booleanValue; } set { booleanValue = value; } } public int IntegerValue { get { return integerValue; } set { integerValue = value; } } public float FloatValue { get { return floatValue; } set { floatValue = value; } } public string StringValue { get { return stringValue; } set { stringValue = value; } } public bool IsSameType(Variable other) { return (this.type == other.type); } public bool Assign(Variable other) { if (!IsSameType(other)) { return false; } booleanValue = other.booleanValue; integerValue = other.integerValue; floatValue = other.floatValue; stringValue = other.stringValue; return true; } } [Serializable] public class VariableData { } [Serializable] public class BooleanData : VariableData { public bool value; } [Serializable] public class IntegerData : VariableData { public int value; } [Serializable] public class FloatData : VariableData { public float value; } [Serializable] public class StringData : VariableData { public string value; } }