public FightMenager(FightAniMenager AniMgr) { this.FightAniMenager = AniMgr; this.FightProcess = new FightProcess(AniMgr); }
//private static WAR_COPY_ATTACK _objInstance; ///// <summary>WAR_COPY_ATTACK单体模式</summary> //public static WAR_COPY_ATTACK GetInstance() //{ // return _objInstance ?? (_objInstance = new WAR_COPY_ATTACK()); //} /// <summary> 出阵 </summary> public ASObject CommandStart(TGGSession session, ASObject data) { var planId = session.Player.War.planId; if (planId == 0) { return(CommonHelper.ErrorResult(ResultType.BASE_TABLE_ERROR)); } var _id = data.ContainsKey("id") ? data["id"] : null; var _zhenId = data.ContainsKey("zhenId") ? data["zhenId"] : null; var _list = data.ContainsKey("list") ? data["list"] : null; if (_id == null || _zhenId == null || _list == null) { return(CommonHelper.ErrorResult(ResultType.FRONT_DATA_ERROR)); } var id = Convert.ToInt32(_id); var zhenId = Convert.ToInt32(_zhenId); var objs = _list as object[]; var list = new List <WarRolesLinesVo>(); var userid = session.Player.User.id; var level = session.Player.Role.Kind.role_level; var username = session.Player.User.player_name; var baseWarCopy = Variable.BASE_WAR_COPY.FirstOrDefault(m => m.id == id); if (baseWarCopy == null) { return(CommonHelper.ErrorResult(ResultType.BASE_TABLE_ERROR)); } if (level < baseWarCopy.level) { return(CommonHelper.ErrorResult(ResultType.WAR_LEVEL_ERROR)); } var warroles = new List <tg_war_role>(); var result = BuildWarRole(objs, userid, ref list, ref warroles); if (result != ResultType.SUCCESS) { return(CommonHelper.ErrorResult(result)); } if (!warroles.Any()) { return(CommonHelper.ErrorResult(ResultType.WAR_COPY_ROLE_ERROR)); } var count = warroles.Sum(m => m.army_soldier); var model = tg_war_copy.GetFindByUserId(userid); var temp = tg_war_copy_count.GetEntityBySceneId(userid, baseWarCopy.sceneId); if (model == null || temp == null) { return(CommonHelper.ErrorResult(ResultType.WAR_COPY_SOLDIER_NULL)); } if (count <= 0) { return(CommonHelper.ErrorResult(ResultType.WAR_COPY_SOLDIER_COUNT_ERROR)); } if (temp.count <= 0) { return(CommonHelper.ErrorResult(ResultType.WAR_COPY_COUNT_ERROR)); } if (model.forces < count) { return(CommonHelper.ErrorResult(ResultType.WAR_COPY_SOLDIER_COUNT_ERROR)); } var entity = new WarFight(planId, baseWarCopy, list, warroles, zhenId, model.morale, username); var fightvo = new FightProcess().GetFightProcess(entity); //调用合战战斗 if (fightvo == null) { return(CommonHelper.ErrorResult(ResultType.WAR_FIGHT_ERROR)); } if (fightvo.Item2.result.isWin == 1) //胜利 { var rewards = GetReward(baseWarCopy.reward); //组装获取奖励 var str = GetReward(rewards); //获取邮件通用奖励字符串 model.score += baseWarCopy.integral; model.latest_time = DateTime.Now.Ticks; var flag = new RandomSingle().IsTrue(baseWarCopy.dropProbability); if (flag) //是否获得筑城令 { var prop = GetProp(baseWarCopy, userid); if (prop != null) { str = str + "|" + (int)GoodsType.TYPE_PROP + "_" + prop.base_id + "_" + prop.bind + "_" + prop.count; rewards.Add(new RewardVo { goodsType = (int)GoodsType.TYPE_PROP, increases = new List <ASObject> { AMFConvert.ToASObject(EntityToVo.ToPropVo(prop)) }, }); } } (new Share.Message()).BuildMessagesSend(userid, "挑战合战副本胜利奖励", "挑战合战副本胜利奖励", str); temp.count -= 1; temp.Update(); fightvo.Item2.result.reward = rewards; } model.forces -= fightvo.Item2.result.myDieCount; if (model.forces < 0) { model.forces = 0; } model.Update(); return(BuildData(fightvo.Item2)); }