public void SaveStageData(int levelNum) //保存关卡数据到一个文件
{
_config = new ConfigOperator("Level" + levelNum);
_config.Write("Target", (int)Target);
_config.Write("StepLimit", StepLimit);
_config.Write("TimeLimit", TimeLimit);
_config.Write("ColorCount", ColorCount);
_config.Write("Nut1Count", Nut1Count);
_config.Write("Nut2Count", Nut2Count);
_config.Write("NutInitCount", NutInitCount);
_config.Write("NutMaxCount", NutMaxCount);
_config.Write("NutMinCount", NutMinCount);
_config.Write("NutStep", NutStep);
_config.Write("PlusInitCount", PlusInitCount);
_config.Write("PlusMaxCount", PlusMaxCount);
_config.Write("PlusStartTime", PlusStartTime);
_config.Write("PlusStepMin", PlusStepMin);
_config.Write("PlusStepMax", PlusStepMax);
_config.Write("Seed", Seed);
_config.Write("NewFormat", 1); //新格式标记
string temp = string.Empty;
for (int i = 0; i < 3; ++i )
{
temp = temp + StarScore[i] + ",";
}
_config.Write("StarScore", temp);
temp = string.Empty;
for (int i = 0; i < 3; ++i)
{
temp = temp + (int)CollectColors[i] + ",";
}
_config.Write("CollectColors", temp);
temp = string.Empty;
for (int i = 0; i < 3; ++i)
{
temp = temp + (int)CollectSpecial[i] + ",";
}
_config.Write("CollectSpecial", temp);
temp = string.Empty;
for (int i = 0; i < 3; ++i)
{
temp = temp + CollectCount[i] + ",";
}
_config.Write("CollectCount", temp);
temp = string.Empty;
for (int j = 0; j < GameLogic.BlockCountY; ++j)
{
for (int i = 0; i < GameLogic.BlockCountX; ++i)
{
temp = temp + GridData[i, j] + ",";
}
}
_config.Write("GridDataArray", temp);
temp = string.Empty;
foreach(KeyValuePair<int, Portal> pair in PortalToMap)
{
temp = temp + pair.Value.from.x + ",";
temp = temp + pair.Value.from.y + ",";
temp = temp + pair.Value.to.x + ",";
temp = temp + pair.Value.to.y + ",";
temp = temp + pair.Value.flag + ",";
}
_config.Write("PortalArray", temp);
//保存画面上的特殊块
temp = string.Empty;
for (int j = 0; j < GameLogic.BlockCountY; ++j)
{
for (int i = 0; i < GameLogic.BlockCountX; ++i)
{
CapBlock block = GameLogic.Singleton.GetBlock(new Position(i, j));
if (block != null && block.special != TSpecialBlock.ESpecial_Normal)
{
temp = temp + i + ",";
temp = temp + j + ",";
temp = temp + (int)block.special+ ",";
}
}
}
_config.Write("SpecialArray", temp);
_config.Save();
Debug.Log("Level " + levelNum + " Saved");
}
}