Exemple #1
0
        /// <summary>进入名塔</summary>
        public ASObject CommandStart(TGGSession session, ASObject data)
        {
#if DEBUG
            XTrace.WriteLine("{0}:{1}", "TOWER_SHOT_ENTER", "进入名塔");
#endif
            var shot = tg_duplicate_shot.GetEntityByUserId(session.Player.User.id);
            if (shot == null)
            {
                shot = new tg_duplicate_shot {
                    user_id = session.Player.User.id
                };
            }
            else
            {
                shot.score_current = 0;
                shot.score_total   = 0;
            }
            try
            {
                shot.Save();
            }
            catch
            {
                return(new ASObject(Common.GetInstance().BuilData((int)ResultType.DATABASE_ERROR, session.Player.UserExtend.shot_count)));
            }

            return(new ASObject(Common.GetInstance().BuilData((int)ResultType.SUCCESS, session.Player.UserExtend.shot_count)));
        }
Exemple #2
0
        /// <summary>分数未达到结束通关</summary>
        private ASObject UnPass(TGGSession session, tg_duplicate_shot shot, int score)
        {
            var exchange = 0;

            if (shot != null)
            {
                exchange           = shot.score_total + score;
                shot.score_current = 0;
                shot.score_total   = 0;
            }
            else
            {
                exchange = score;
                shot     = new tg_duplicate_shot {
                    user_id = session.Player.User.id
                };
            }
            try
            {
                var player = session.Player.CloneEntity();
                var user   = player.User;
                var extend = player.UserExtend;
#if DEBUG
                XTrace.WriteLine("兑换前分数:{0}", exchange);
#endif
                user.spirit = tg_user.IsSpiritMax(user.spirit, ConventSpirit(exchange));
#if DEBUG
                XTrace.WriteLine("兑换后魂:{0}", user.spirit);
#endif
                if (extend.shot_count != 0)
                {
                    extend.shot_count -= 1;
                }
                user.Save();
                shot.Save();
                extend.Save();
                //资源兑换
                session.Player.User       = user;
                session.Player.UserExtend = extend;
                (new Share.User()).REWARDS_API((int)GoodsType.TYPE_SPIRIT, session.Player.User);

                (new Share.DaMing()).CheckDaMing(session.Player.User.id, (int)DaMingType.猎魂);
                return(new ASObject(Common.GetInstance().BuilData((int)ResultType.CHALLENGE_FAIL, session.Player.UserExtend.shot_count)));
            }
            catch { return(new ASObject(Common.GetInstance().BuilData((int)ResultType.DATABASE_ERROR, null))); }
        }
Exemple #3
0
 /// <summary>分数达到通关</summary>
 private ASObject Pass(TGGSession session, tg_duplicate_shot shot, int score)
 {
     if (shot != null)
     {
         shot.score_current = score;
         shot.score_total  += score;
     }
     else
     {
         shot = new tg_duplicate_shot {
             user_id = session.Player.User.id, score_current = score
         };
         shot.score_total += score;
     }
     try
     {
         shot.Save();
         return(new ASObject(Common.GetInstance().BuilData((int)ResultType.SUCCESS, session.Player.UserExtend.shot_count)));
     }
     catch { return(new ASObject(Common.GetInstance().BuilData((int)ResultType.DATABASE_ERROR, null))); }
 }