/// <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); }
/// <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)); }
/// <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(); }
/// <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); }
/// <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); }
/// <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); }