/// <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); }
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(); //武将出手顺序初始 }