Esempio n. 1
0
    private static void GenBrickEquip(List <BrickRoot> bricks, List <int> dropList)
    {
        int brickNum = bricks.Count;

        for (int i = 0; i < bricks.Count; i++)
        {
            if (COMMON.RandomIsSuccess(dropList.Count, brickNum))
            {
                bricks[i].GenEquip(dropList[0]);
                dropList.RemoveAt(0);
                bricks.RemoveAt(i);
            }
            brickNum -= 1;
            if (dropList.Count == 0)
            {
                break;
            }
        }
    }
Esempio n. 2
0
    /// <summary>
    /// 生成怪物
    /// </summary>
    /// <param name="brickRoots">所有砖块列表</param>
    /// <param name="monsters">怪物ID列表</param>
    /// <returns></returns>
    private static List <BrickRoot> GenBrickMonster(List <BrickRoot> brickRoots, List <int> monsters)
    {
        //对砖块进行随机排序
        List <BrickRoot> bricks = COMMON.RandomSortList(brickRoots);
        int brickNum            = brickRoots.Count;

        for (int i = 0; i < bricks.Count; i++)
        {
            if (COMMON.RandomIsSuccess(monsters.Count, brickNum))
            {
                bricks[i].GenMonster(monsters[0]);
                monsters.RemoveAt(0);
                bricks.RemoveAt(i);
            }
            brickNum -= 1;
            if (monsters.Count == 0)
            {
                break;
            }
        }
        return(bricks);
    }
Esempio n. 3
0
    /// <summary>
    /// 生成装备
    /// </summary>
    /// <param name="dropId">掉落ID</param>
    public void GenEquip(int dropId)
    {
        Cfg_Drop cfg_Drop    = Cfg_Drop.GetCfg(dropId);
        int      maxDropNum  = cfg_Drop.MaxDrop;
        int      alreadyDrop = 0;
        double   dropNum     = 0;
        double   dropPro;

        equipList = new List <int>();
        for (int i = 0; i < 100; i++)
        {
            if (alreadyDrop >= maxDropNum)
            {
                break;
            }
            dropPro = cfg_Drop.DropPro / 10000;
            dropNum = Math.Floor(dropPro);
            for (int j = 0; j < dropNum; j++)
            {
                equipList.Add(cfg_Drop.DropItem);
                alreadyDrop += 1;
            }
            if (COMMON.RandomIsSuccess(cfg_Drop.DropPro % 10000, 10000))
            {
                equipList.Add(cfg_Drop.DropItem);
                alreadyDrop += 1;
            }
            if (cfg_Drop.NextDrop != 0)
            {
                cfg_Drop = Cfg_Drop.GetCfg(cfg_Drop.NextDrop);
            }
            else
            {
                break;
            }
        }
        //生成道具物体
        GenEquipItem(equipList);
    }