Esempio n. 1
0
        /// <summary>
        /// 获取单条数据
        /// </summary>
        /// <returns></returns>
        public V_xy_sp_userView GetCurrentUserStatebyUserID(string UserID)
        {
            V_xy_sp_userView           userV = new V_xy_sp_userView();
            tm_pm_userinfoBLL          ubll  = new tm_pm_userinfoBLL();
            xy_sp_userspiritBLL        upbll = new xy_sp_userspiritBLL();
            xy_sp_spiritequipmentBLL   sqBll = new xy_sp_spiritequipmentBLL();
            xy_sp_spiritskillBLL       skBll = new xy_sp_spiritskillBLL();
            xy_sp_userspiritpackageBLL spBll = new xy_sp_userspiritpackageBLL();
            xy_sp_taskBLL tkBll = new xy_sp_taskBLL();

            using (xy_sp_userspiritDAL dal = new xy_sp_userspiritDAL())
            {
                userV.User = ubll.GetUserInfoByID(UserID);
                xy_sp_userspirit entity = dal.GetSpiritbyUserID(UserID);
                userV.Spirit = EntityToModel(entity);
                //用户背包
                userV.Spirit.packageList = spBll.GetSpPackageListBySpID(userV.Spirit.SpiritID);
                //用户装备
                userV.Spirit.spEquipmentList = sqBll.GetSpEqListBySpID(userV.Spirit.SpiritID);
                //用户技能
                userV.Spirit.spSkillList = skBll.GetListBySpID(userV.Spirit.SpiritID);


                userV.Task = tkBll.getTaskContext(entity.CurrentTaskID);
                return(userV);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 战斗并返回所有怪物状态
        /// </summary>
        /// <param name="FighterFrom">用户精灵</param>
        /// <param name="skill">技能</param>
        /// <param name="FighterToList"></param>
        /// <returns></returns>
        public V_xy_sp_userView UserStartFight(V_xy_sp_userView userView, string skillName, ref string batmsgAll)
        {
            V_xy_sp_userspirit    FighterFrom   = userView.Spirit;
            V_xy_sp_skill         skill         = userView.Spirit.spSkillList[0].skill;
            List <V_xy_sp_spirit> FighterToList = userView.Task.SpiritsList;

            List <V_xy_sp_spirit> FighterToResult = new List <V_xy_sp_spirit>();

            FighterFrom.SpiritMagic = FighterFrom.SpiritMagic - skill.ExpendValue;

            int maxInjuryCount = 0;

            foreach (V_xy_sp_spirit spirit in FighterToList)
            {
                if (spirit.SpiritLife <= 0)
                {
                    continue;   //生命值低于0跳过
                }
                if (skill.isGroupinjury == 1 && maxInjuryCount == FighterToList.Count)
                {
                    //如果是群攻并且攻击次数已到最大次数,不攻击
                    FighterToResult.Add(spirit);
                    continue;
                }
                else if (maxInjuryCount == 1)
                {
                    //如果非群攻,不攻击
                    FighterToResult.Add(spirit);
                    continue;
                }
                string batmsg = string.Empty;
                SkillInjury(FighterFrom, skill, spirit, ref batmsg);
                batmsgAll = batmsgAll + System.Environment.NewLine + batmsg;
                maxInjuryCount++;
                FighterToResult.Add(spirit);
                //所有怪物已阵亡
                if (spirit == FighterToList.LastOrDefault())
                {
                    if (spirit.SpiritLife <= 0)
                    {
                        xy_sp_taskBLL tkBll      = new xy_sp_taskBLL();
                        string        NextTaskID = tkBll.GetNextTaskIDByTaskID(FighterFrom.CurrentTaskID);

                        userView.Task.IsClear = "1";
                        userView.NextTask     = tkBll.getTaskContext(NextTaskID);
                    }
                }
            }


            userView.Task.SpiritsList = FighterToResult;

            return(userView);
        }
Esempio n. 3
0
        void ws_NewMessageReceived(WebSocketSession session, string value)
        {
            string SpiritJsonData = string.Empty;

            try
            {
                string           tokenValue = session.Path.Split('=')[1];
                V_xy_sp_userView userView   = CacheServer.GetUserViewFromCache(tokenValue);
                switch (value)
                {
                case "skill1":
                    string batmsgAll = string.Empty;
                    fighter = new FightHelper_User();
                    //List<V_xy_sp_spirit> Enemys
                    V_xy_sp_userView userViewResult = fighter.UserStartFight(userView, "skill1", ref batmsgAll);

                    //更新缓存的敌人信息
                    //userView.Task.SpiritsList.Clear();
                    //userView.Task.SpiritsList.AddRange(Enemys);
                    CacheServer.UpdatetUserViewCache(tokenValue, userView);

                    ResponseObj <V_xy_sp_userView> resBat = new ResponseObj <V_xy_sp_userView>()
                    {
                        DataType    = "batinfo",
                        ObjType     = "obj",
                        IsSuccess   = "1",
                        Data        = userViewResult,
                        MessageInfo = batmsgAll
                    };
                    SpiritJsonData = JsonConvert.SerializeObject(resBat);
                    break;

                default:
                    V_xy_sp_userspirit   spirit = userView.Spirit;
                    ResponseObj <string> resMsg = new ResponseObj <string>()
                    {
                        DataType  = "msginfo",
                        ObjType   = "obj",
                        IsSuccess = "1",
                        Data      = spirit.SpiritName + " 说:" + value
                    };
                    SpiritJsonData = JsonConvert.SerializeObject(resMsg);
                    break;
                }
                SendToAll(session, SpiritJsonData);
            }catch (Exception ex)
            {
                Tracer.Debug(ex.ToString());
            }
        }
Esempio n. 4
0
        public static V_xy_sp_userView GetUserViewFromCache(string tokenValue)
        {
            V_tm_pm_userinfo userInfo = _cached.Get(tokenValue) as V_tm_pm_userinfo;

            if (userInfo == null)
            {
                userInfo = new tm_pm_userinfoBLL().GetLoginInfo(tokenValue);
            }

            V_xy_sp_userView userView = (V_xy_sp_userView)_cached.Get(tokenValue + "V_xy_sp_userView");

            if (userView == null)
            {
                userView = new xy_sp_userspiritBLL().GetCurrentUserStatebyUserID(userInfo.USERID);
                cacheuserView(tokenValue + "V_xy_sp_userView", userView);
            }
            return(userView);
        }
Esempio n. 5
0
 void fighter_FightComplete(object sender, V_xy_sp_userView e)
 {
     throw new NotImplementedException();
 }
Esempio n. 6
0
 public static void UpdatetUserViewCache(string tokenValue, V_xy_sp_userView userView)
 {
     _cached.Remove(tokenValue + "V_xy_sp_userView");
     cacheuserView(tokenValue + "V_xy_sp_userView", userView);
 }
Esempio n. 7
0
 public static void cacheuserView(string tokenValue, V_xy_sp_userView userView)
 {
     _cached.Set(tokenValue, userView);
 }