コード例 #1
0
ファイル: EntityToVo.cs プロジェクト: Lantnr/MyTest
 /// <summary>tg_role_recruit 转换 RecruitVo  </summary>
 public static RecruitVo ToRecruitVo(tg_role_recruit model)
 {
     return(new RecruitVo
     {
         id = model.id,
         baseId = model.role_id,
         position = model.position,
     });
 }
コード例 #2
0
        private Dictionary <String, Object> BuildData(int result, tg_role_recruit recruit)
        {
            var dic = new Dictionary <string, object>
            {
                { "result", result },
                { "role", EntityToVo.ToRecruitVo(recruit) },
            };

            return(dic);
        }
コード例 #3
0
        /// <summary> 武将抽取 </summary>
        private ASObject CommandStart(TGGSession session, ASObject data)
        {
            if (session.Player.Bag.BagIsFull)
            {
                return(CommonHelper.ErrorResult((int)ResultType.BAG_ISFULL_ERROR));
            }
            var position = Convert.ToInt32(data.FirstOrDefault(m => m.Key == "position").Value);

            if (position > 10 || position < 1)
            {
                return(CommonHelper.ErrorResult((int)ResultType.ROLE_RECRUIT_POSTITION_ERROR));
            }
            if (tg_role_recruit.GetFindIsExist(session.Player.User.id, position))
            {
                return(CommonHelper.ErrorResult((int)ResultType.ROLE_RECRUIT_ISEXIST_ERROR));
            }

            var player   = session.Player.CloneEntity();
            var identity = player.Role.Kind.role_identity;                          //随机身份卡牌

            var base_rule = Variable.BASE_RULE.FirstOrDefault(m => m.id == "7001"); //读取基表

            if (base_rule == null)
            {
                return(CommonHelper.ErrorResult((int)ResultType.BASE_TABLE_ERROR));
            }

            var cost   = Convert.ToInt64(base_rule.value);//金钱消耗
            var curent = player.User.coin;

            if (curent < cost)
            {
                return(CommonHelper.ErrorResult((int)ResultType.BASE_PLAYER_COIN_ERROR));
            }
            var surplus = curent - cost;

            var grades = RandomGrade(identity);                                                          //金钱足够后进行卡牌生成

            var list_card = Variable.BASE_PROP.Where(m => m.grade == grades && m.typeSub == 1).ToList(); //获取道具表家臣卡牌集合
            var card      = RandomCard(list_card);

            #region 组装数据

            var recuit = new tg_role_recruit
            {
                position = position,
                prop_id  = card.id,
                role_id  = card.roleId,
                grade    = card.grade,
                user_id  = player.User.id,
            };
            var bag = new tg_bag
            {
                base_id = card.id,
                bind    = card.bind,
                count   = 1,
                type    = card.type,
                user_id = player.User.id,
            };

            #endregion
            using (var scope = new TransactionScope())  //卡牌生成好后进行数据锁定操作
            {
                recuit.Insert();
                player.User.coin = surplus;
                tg_user.Update(player.User);
                (new Share.Bag()).BuildReward(player.User.id, new List <tg_bag> {
                    bag
                });
                scope.Complete();
            }
            session.Player = player;
            (new Share.User()).REWARDS_API((int)GoodsType.TYPE_COIN, session.Player.User);

            (new Share.DaMing()).CheckDaMing(player.User.id, (int)DaMingType.酒馆招募);  //检测大名令酒馆招募完成度
            var log_data = string.Format("武将招募获得P:{0}B:{1}G:{2}", player.User.id, card.id, card.grade);
            (new Share.Log()).WriteLog(player.User.id, (int)LogType.Get, (int)ModuleNumber.ROLE, (int)RoleCommand.RECRUIT_GET, log_data);
            return(new ASObject(BuildData((int)ResultType.SUCCESS, recuit)));
        }