コード例 #1
0
ファイル: Seed.cs プロジェクト: Teel-Software/HybridHarvest
    /// <summary>
    /// Imports seed data from string
    /// </summary>
    /// <param name="data">string with "|" separator</param>
    public void SetValues(string data)
    {
        var parameters = data.Split('|');

        SeedStats     = CSVReader.GetSeedStats(parameters[0]);
        Name          = parameters[0];
        GrowTime      = int.Parse(parameters[2]);
        GrowTimeGen   = (Gen)int.Parse(parameters[3]);
        Gabitus       = int.Parse(parameters[4]);
        GabitusGen    = (Gen)int.Parse(parameters[5]);
        Taste         = int.Parse(parameters[6]);
        TasteGen      = (Gen)int.Parse(parameters[7]);
        minAmount     = int.Parse(parameters[8]);
        maxAmount     = int.Parse(parameters[9]);
        NameInRussian = parameters[10];
        NameInLatin   = parameters[11];
        //PlantSprite = Resources.Load<Sprite>("SeedsIcons\\" + parameters[12]);
        //SproutSprite = Resources.Load<Sprite>("SeedsIcons\\" + parameters[13]);
        //GrownSprite = Resources.Load<Sprite>("SeedsIcons\\" + parameters[14]);
        MutationChance = (MutationChance)int.Parse(parameters[12]);
    }
コード例 #2
0
    /// <summary>
    /// Returns SeedStatistics from file seedName.csv
    /// </summary>
    public static SeedStatistics GetSeedStats(string seedName)
    {
        var outStats = new SeedStatistics();
        var seedData = new string[] { };

        try
        {
            seedData = Resources
                       .Load <TextAsset>($@"SeedStats\{seedName}")
                       .text
                       .Split('\n');
        }
        catch
        {
            try {                 //Вариант для скрещенных
                using (var reader = new StreamReader(Path.Combine(Application.persistentDataPath, seedName + ".csv")))
                {
                    seedData = reader.ReadToEnd().Split('\n');
                }
            }
            catch { return(null); }
        }

        foreach (var line in seedData)
        {
            var splited = line
                          .Split(',')
                          .ToArray();

            switch (splited[0])
            {
            case var str when str.Contains("Габитус"):
                outStats.Gabitus = ConvertToDict <int>(splited
                                                       .Skip(1)
                                                       .Select(gab => int.Parse(gab))
                                                       .ToArray());

                break;

            case var str when str.Contains("Вкус"):
                outStats.Taste = ConvertToDict <int>(splited
                                                     .Skip(1)
                                                     .Select(taste => int.Parse(taste))
                                                     .ToArray());

                break;

            case var str when str.Contains("Кол"):
                outStats.MinAmount = ConvertToDict <int>(splited
                                                         .Skip(1)
                                                         .Select(amount => int.Parse(amount.Split('-')[0]))
                                                         .ToArray());

                outStats.MaxAmount = ConvertToDict <int>(splited
                                                         .Skip(1)
                                                         .Select(amount => int.Parse(amount.Split('-')[1]))
                                                         .ToArray());
                break;

            case var str when str.Contains("Мутац"):
                outStats.MutationChance = ConvertToDict <MutationChance>(splited
                                                                         .Skip(1)
                                                                         .Select(chance => char.ToLower(chance[0]) switch
                {
                    'н' => MutationChance.Low,
                    'с' => MutationChance.Normal,
                    'в' => MutationChance.High,
                    'о' => MutationChance.Ultra,
                    //_ => chance,
                    _ => MutationChance.Low,
                })
                                                                         .ToArray());

                break;