コード例 #1
0
 public DropItemDescriptorEditor(DropItemDescriptor desc)
 {
     this.DropType         = Base.StringToGOType(desc.DropType);
     this.DropWeight       = desc.DropWeight;
     this.MaxNumOfDrop     = desc.MaxNumOfDrop;
     this.TimeForDropStart = desc.TimeForDropStart;
 }
コード例 #2
0
    /**********************************************************************************/
    // SaveGameData
    // сохраняем данные в файл, преобразуя к текстовому виду
    //
    /**********************************************************************************/
    private void SaveGameData(string useFilePath = "")
    {
        string filePath = "";

        if (useFilePath == "")
        {
            filePath = EditorUtility.SaveFilePanel("Save company data file", Application.streamingAssetsPath, "", "json");
        }
        else
        {
            filePath = useFilePath;
        }


        if (!string.IsNullOrEmpty(filePath))
        {
            CompanyDescriptor companyDescriptorToWrite = new CompanyDescriptor();
            companyDescriptorToWrite.missions = new MissionDescriptor[CompanyData.missions.Length];

            // разбираем миссию за миссией
            for (int missInd = 0; missInd < CompanyData.missions.Length; missInd++)
            {
                // создаём MissionDescriptorEditor и заполняем его данными из MissionDescriptor
                MissionDescriptor       missionToWrite = new MissionDescriptor();
                MissionDescriptorEditor mission        = CompanyData.missions[missInd];
                companyDescriptorToWrite.missions[missInd] = missionToWrite;

                missionToWrite.MapXSize                  = mission.MapXSize;
                missionToWrite.MapYSize                  = mission.MapYSize;
                missionToWrite.MissionDifficulties       = mission.MissionDifficulties;
                missionToWrite.RequiredStoryLineProgress = mission.RequiredStoryLineProgress;

                // конвертируем здание
                missionToWrite.Buildings = new AvailableBuilding[mission.Buildings.Length];
                for (int buildInd = 0; buildInd < mission.Buildings.Length; buildInd++)
                {
                    AvailableBuilding buildingToWrite = new AvailableBuilding();
                    missionToWrite.Buildings[buildInd] = buildingToWrite;

                    buildingToWrite.BuildingType = mission.Buildings[buildInd].BuildingType.ToString();
                    buildingToWrite.Weight       = mission.Buildings[buildInd].Weight;
                }

                // конвертируем список боссов
                missionToWrite.MissionBosses = new string[mission.MissionBosses.Length];
                for (int bossInd = 0; bossInd < mission.MissionBosses.Length; bossInd++)
                {
                    missionToWrite.MissionBosses[bossInd] = mission.MissionBosses[bossInd].ToString();
                }

                // конвертируем настройки дропа
                missionToWrite.DropDescriptor = new DropDescriptor();
                missionToWrite.DropDescriptor.MaxNumOfDroppedItem = mission.DropDescriptor.MaxNumOfDroppedItem;
                missionToWrite.DropDescriptor.DropItems           = new DropItemDescriptor[mission.DropDescriptor.DropItems.Length];

                for (int dropInd = 0; dropInd < mission.DropDescriptor.DropItems.Length; dropInd++)
                {
                    DropItemDescriptor dropToWrite = new DropItemDescriptor();
                    missionToWrite.DropDescriptor.DropItems[dropInd] = dropToWrite;

                    dropToWrite.DropType   = mission.DropDescriptor.DropItems[dropInd].DropType.ToString();
                    dropToWrite.DropWeight = mission.DropDescriptor.DropItems[dropInd].DropWeight;
                }
            }

            string dataAsJson = JsonUtility.ToJson(companyDescriptorToWrite);
            File.WriteAllText(filePath, dataAsJson);
        }
    }