private float GetNumValue(BulletValue v, BulletMLTask task)
{
if (v.valueType == BLValueType.Number)
{
return v.value;
}
else if (v.valueType == BLValueType.Rand)
{
return (float)BulletMLManager.GetRandom();
}
else if (v.valueType == BLValueType.Rank)
{
return BulletMLManager.GetRank();
}
else if (v.valueType == BLValueType.Param)
{
BulletMLTask ownerTask = task;
while (ownerTask.paramList.Count == 0)
ownerTask = ownerTask.owner;
float val = ownerTask.paramList[(int)v.value - 1];
//BulletMLTask ownerTask = task;
//while (ownerTask.paramNode == null)
// ownerTask = ownerTask.owner;
//float val = ownerTask.paramNode.children[(int)v.value - 1].GetValue(ownerTask.owner);
//Debug.WriteLine(String.Format( "{2} param{0} = {1}", (int)v.value - 1, val, ownerTask));
return val;
}
else
{
//Debug.WriteLine("不正な値がパラメータになっています");
return 0;
}
}