An easy to use Unity 3D library for creating illustrated Interactive Fiction games and more.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
1.5 KiB

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;
}
}