Exemplo n.º 1
0
        /// <summary>挑战怪物</summary>
        /// <param name="checkpoint">爬塔实体</param>
        /// <param name="towerid">塔主用户id</param>
        /// <param name="count">翻将次数</param>
        /// <param name="towersite">守护者层</param>
        private void FightMonster(tg_duplicate_checkpoint checkpoint, int towersite, int highsite)
        {
            var role       = tg_role.GetEntityByUserId(checkpoint.user_id);
            var user       = tg_user.GetUsersById(checkpoint.user_id);
            var userextend = tg_user_extend.GetByUserId(checkpoint.user_id);

            if (role == null || user == null || userextend == null)
            {
                return;
            }

            if (towersite == (int)DuplicateTargetType.WATCHMEM)
            {
                checkpoint.blood = role.att_life; //血回满
                var tower = tg_duplicate_checkpoint.GetEntityByTowerSite(checkpoint.site);
                if (tower == null)
                {
                    checkpoint = Common.GetInstance().BecomeTower(role.att_life, checkpoint);
                    if (checkpoint.site == highsite)
                    {
                        var uservo = Common.GetInstance().ConvertUser(user);
                        checkpoint.state = (int)DuplicateClearanceType.CLEARANCE_SUCCESS;
                        checkpoint.Update();
                        var _towervo = EntityToVo.ToTowerPassVo(checkpoint, 0, 0, userextend.npc_refresh_count, null);
                        CheckpointDarePush(checkpoint.user_id, uservo, _towervo, (int)FightResultType.WIN, checkpoint.blood,
                                           (int)DuplicateRightType.NORIGHT);
                        return;
                    }
                }
                else
                {
                    var wahtchmen = tg_user.GetUsersById(tower.user_id);
                    var uservo    = Common.GetInstance().ConvertUser(wahtchmen);
                    checkpoint.state = (int)DuplicateClearanceType.CLEARANCE_SUCCESS;
                    checkpoint.Update();
                    CheckpointDarePush(checkpoint.user_id, uservo, null, (int)FightResultType.WIN, checkpoint.blood, checkpoint.dekaron);
                    return;
                }
            }
            var towervo = Common.GetInstance().TowerPassMessage(userextend.npc_refresh_count, ref checkpoint);

            if (towervo == null)
            {
                return;
            }
            //checkpoint.npcids = null;
            Common.GetInstance().CheckpointUpdate(checkpoint);
            CheckpointDarePush(checkpoint.user_id, null, towervo, (int)FightResultType.WIN, checkpoint.blood, (int)DuplicateRightType.NORIGHT);
        }
Exemplo n.º 2
0
        /// <summary>挑战失败,验证挑战次数</summary>
        public ASObject CheckChallengCount(tg_duplicate_checkpoint checkpoint, BaseTowerPass towerpass, int blood)
        {
            var aso = new ASObject();

            if (!Variable.OnlinePlayer.ContainsKey(checkpoint.user_id))
            {
                return(aso);
            }

            var session    = Variable.OnlinePlayer[checkpoint.user_id] as TGGSession;
            var userextend = session.Player.UserExtend.CloneEntity();

            userextend.challenge_count--;
            userextend.Update();
            session.Player.UserExtend = userextend;

            if (userextend.challenge_count <= 0)
            {
                if (Common.GetInstance().CheckWatchmenRight(towerpass.watchmen, checkpoint))
                {
                    checkpoint.dekaron = (int)DuplicateRightType.NORIGHT;
                }
                else
                {
                    checkpoint.state = (int)DuplicateClearanceType.CLEARANCE_FAIL;
                }
                checkpoint.Update();
                aso = BulidData((int)ResultType.SUCCESS, null, null, (int)FightResultType.LOSE, checkpoint.blood, (int)DuplicateRightType.NORIGHT);
                return(aso);
            }
            checkpoint.blood = session.Player.Role.Kind.att_life;
            return(GetChalleng(userextend.npc_refresh_count, towerpass, checkpoint));
        }
Exemplo n.º 3
0
 /// <summary>清空当前关卡数据</summary>
 public void CheckpointUpdate(tg_duplicate_checkpoint checkpoint)
 {
     checkpoint.ninjutsu_star   = null;
     checkpoint.calculate_star  = null;
     checkpoint.npc_tea         = 0;
     checkpoint.user_tea        = 0;
     checkpoint.user_blood      = 0;
     checkpoint.npc_blood       = 0;
     checkpoint.select_position = null;
     checkpoint.all_cards       = null;
     checkpoint.state           = (int)DuplicateClearanceType.CLEARANCE_UNBEGIN;
     checkpoint.Update();
 }
Exemplo n.º 4
0
        /// <summary>获取npc</summary>
        public int GetNpcId(tg_duplicate_checkpoint checkpoint)
        {
            int npcid;

            if (checkpoint.npcids == null)
            {
                npcid             = Convert.ToInt32(RefreshNpc(checkpoint.site));
                checkpoint.npcids = npcid.ToString();
                checkpoint.Update();
            }
            else
            {
                npcid = GetNpc(checkpoint);
            }
            return(npcid);
        }
Exemplo n.º 5
0
 /// <summary>更新关卡信息</summary>
 private bool UpdateTower(tg_duplicate_checkpoint tower, int site)
 {
     tower.site            = site;
     tower.ninjutsu_star   = null;
     tower.calculate_star  = null;
     tower.state           = (int)DuplicateClearanceType.CLEARANCE_UNBEGIN;
     tower.npcids          = null;
     tower.npc_tea         = 0;
     tower.user_tea        = 0;
     tower.dekaron         = 0;
     tower.blood           = 1000;
     tower.user_blood      = 0;
     tower.npc_blood       = 0;
     tower.select_position = null;
     tower.all_cards       = null;
     return(tower.Update() > 0);
 }
Exemplo n.º 6
0
        /// <summary>挑战守护者</summary>
        /// <param name="checkpoint">爬塔实体</param>
        /// <param name="count">翻将次数</param>
        /// <param name="highsite">最高层数</param>
        private void FightWatchMen(tg_duplicate_checkpoint checkpoint, int highsite)
        {
            var role       = tg_role.GetEntityByUserId(checkpoint.user_id);
            var user       = tg_user.GetUsersById(checkpoint.user_id);
            var userextend = tg_user_extend.GetByUserId(checkpoint.user_id);

            if (role == null || user == null || userextend == null)
            {
                return;
            }

            var tower = tg_duplicate_checkpoint.GetEntityByTowerSite(checkpoint.site);

            checkpoint = Common.GetInstance().BecomeTower(role.att_life, checkpoint);
            if (checkpoint.site == highsite)
            {
                var uservo = Common.GetInstance().ConvertUser(user);
                checkpoint.state = (int)DuplicateClearanceType.CLEARANCE_SUCCESS;
                checkpoint.Update();
                var _towervo = EntityToVo.ToTowerPassVo(checkpoint, 0, 0, userextend.npc_refresh_count, null);
                CheckpointDarePush(checkpoint.user_id, uservo, _towervo, (int)FightResultType.WIN, checkpoint.blood,
                                   (int)DuplicateRightType.NORIGHT);
            }
            else
            {
                var towervo = Common.GetInstance().TowerPassMessage(userextend.npc_refresh_count, ref checkpoint);
                if (towervo == null)
                {
                    return;
                }
                Common.GetInstance().CheckpointUpdate(checkpoint);
                CheckpointDarePush(checkpoint.user_id, null, towervo, (int)FightResultType.WIN, checkpoint.blood,
                                   (int)DuplicateRightType.NORIGHT);
            }
            if (tower == null)
            {
                return;
            }
            tower.tower_site = 0;
            tower.Update();
            SendMessage(tower.user_id);
        }