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; } } }
/// <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); }
/// <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); }