示例#1
0
        /// <summary> 获取道具 </summary>
        /// <param name="baseWarCopy">合战副本基表</param>
        /// <param name="userid">用户Id</param>
        private static tg_bag GetProp(BaseWarCopy baseWarCopy, Int64 userid)
        {
            var array = baseWarCopy.dropCount.Split('_');
            var arr   = baseWarCopy.zhuChengLing.Split('|');

            if (array.Length > 2 || arr.Length == 0)
            {
                return(null);
            }
            var rd       = new Random();
            var number   = rd.Next(Convert.ToInt32(array[0]), Convert.ToInt32(array[1]) + 1);
            var c        = rd.Next(0, arr.Length);
            var propid   = Convert.ToInt32(arr[c]);
            var baseProp = Variable.BASE_PROP.FirstOrDefault(m => m.id == propid);

            if (baseProp == null)
            {
                return(null);
            }
            var temp = new tg_bag
            {
                base_id = propid,
                bind    = baseProp.bind,
                count   = number,
                type    = baseProp.type,
                user_id = userid,
            };

            return(temp);
        }
示例#2
0
        public WarFight(int planId, BaseWarCopy temp, IEnumerable <WarRolesLinesVo> attackrolRolesVos, List <tg_war_role> attackroles, Int32 frontid, int morale, string username)
        {
            #region 防守武将


            var zhenId   = GetRandomNumber(temp.zhenId).First();
            var baseLand = Variable.BASE_LAND_POOL.FirstOrDefault(m => m.id == planId);
            if (baseLand == null)
            {
                return;
            }
            DefenseFrontId = zhenId;
            Area           = GetMapArea(baseLand.landConfig);
            DefenseRoles   = GetNpcDefenseRoles(baseLand.ambushConfig, temp.id);

            DefenseSoldierCount = DefenseRoles.Sum(m => m.SoldierCount);
            if (!isInitSuccess)
            {
                isInitSuccess = false; return;
            }
            //初始武将防守范围
            DefenseRange = Common.GetInstance().GetDefenseRangeInit(DefenseRoles);
            GetDoorAndCityInit(temp.gateDurable, temp.baseDurable); //城门本丸初始

            #endregion

            #region 进攻数据初始

            AttackRolesInit(attackrolRolesVos, attackroles, morale, username);
            AttackFrontId = frontid;

            #endregion

            WeatherState = GetWeatherStateInit(); //初始天气持续回合

            FiveState = GetFiveStateInit();       //初始五常持续回合

            AttackSort = GetRolesSort();          //武将出手顺序初始
        }