Esempio n. 1
0
    public void Load()

    {
        CSVReader reader = new CSVReader();

        reader.LoadText("Config/Disassemblygirl_Monstergroup.txt", 3);

        int rows = reader.GetRowCount();

        for (int r = 0; r < rows; ++r)

        {
            string[] row = reader.GetRow(r);

            DisassemblygirlMonstergroupConfig ac = ConfigProcess(row) as DisassemblygirlMonstergroupConfig;

            configs.Add(ac.id, ac);
        }
    }
Esempio n. 2
0
    public object ConfigProcess(string[] row)

    {
        if (row.Length < 10)

        {
            return(null);
        }



        RowHelper rh = new RowHelper(row);

        DisassemblygirlMonstergroupConfig rec = new DisassemblygirlMonstergroupConfig();



        rec.id = CSVUtility.ToInt(rh.Read());             //id

        rec.monstersA = rh.Read();                        //怪物组A

        rec.monstersB = rh.Read();                        //怪物组B

        rec.monstersC = rh.Read();                        //怪物组C

        rec.monstersD = rh.Read();                        //怪物组D

        rec.monstersE = rh.Read();                        //怪物组E

        rec.boss = CSVUtility.ToInt(rh.Read());           //bossID

        rec.joinCount = CSVUtility.ToInt(rh.Read());      //每次加入战场单位数量

        rec.joinInterval = CSVUtility.ToFloat(rh.Read()); //加入间隔(秒)

        rec.isBoss = CSVUtility.ToInt(rh.Read());         //是否是BOSS组

        return(rec);
    }
Esempio n. 3
0
        public static MonsterGroupData FromConfig(DisassemblygirlMonstergroupConfig config)
        {
            Action <IList <int> > RandomShuffle = (IList <int> input) =>
            {
                Random random = new Random();

                int currentIndex = 0;
                int tempValue    = 0;

                for (int index = 0; index < input.Count; index++)
                {
                    currentIndex                   = random.Next(0, input.Count - index);
                    tempValue                      = input[currentIndex];
                    input[currentIndex]            = input[input.Count - 1 - index];
                    input[input.Count - 1 - index] = tempValue;
                }
            };

            Func <string, IList <MonsterData> > WrapperMonsters = (string monsters) =>
            {
                IList <MonsterData> monsterDatas = new List <MonsterData>();

                if (monsters == "0")
                {
                    return(monsterDatas);
                }

                IList <int> sourceIds = new List <int>();

                foreach (string monsterConfig in monsters.Split('|'))
                {
                    string[] parameters = monsterConfig.Split(':');

                    for (int index = 0, length = int.Parse(parameters[1]); index < length; index++)
                    {
                        sourceIds.Add(int.Parse(parameters[0]));
                    }
                }

                RandomShuffle(sourceIds);

                foreach (int monsterID in sourceIds)
                {
                    MonsterData monster = MonsterData.FromConfig(ConfigMgr.GetInstance().DisassemblygirlMonster.GetConfigById(monsterID));
                    monsterDatas.Add(monster);
                }

                return(monsterDatas);
            };

            MonsterGroupData group = new MonsterGroupData();

            group.id            = config.id;
            group.jointInterval = config.joinInterval;
            group.joinCount     = config.joinCount;
            group.isBoss        = config.isBoss == 0 ? false : true;

            group.monstersA = WrapperMonsters(config.monstersA);
            group.monstersB = WrapperMonsters(config.monstersB);
            group.monstersC = WrapperMonsters(config.monstersC);
            group.monstersD = WrapperMonsters(config.monstersD);
            group.monstersE = WrapperMonsters(config.monstersE);

            if (config.boss != 0)
            {
                group.boss        = MonsterData.FromConfig(ConfigMgr.GetInstance().DisassemblygirlMonster.GetConfigById(config.boss));
                group.boss.isBoss = true;
            }

            return(group);
        }