void SychronizeBattleProgress2()
    {
        int fightId = InstancePlayer.instance.currentFightId;
        List <SlgPB.UnitGroup> deadUnits = PBConnect_finishBattle.GetPlayerDeadUnits();

        PBConnect_finishBattle.SychronizeBattleProgress(fightId, deadUnits, OnSychronizeBattleProgress2);
    }
    // ===========================
    // sychronize battle progress

//	private PBConnect_finishBattle.DelegateConnectCallback _cbSendBattleProgress = null;

    public void SendBattleProgress()
    {
        bool isOffline = IsStartOfOffline();

        if (isOffline)
        {
        }
        else
        {
            List <SlgPB.UnitGroup> deadUnits = PBConnect_finishBattle.GetPlayerDeadUnits();

            if (InstancePlayer.instance.pvpUser == null)
            {
                PBConnect_finishBattle.SychronizeBattleProgress(InstancePlayer.instance.currentFightId, deadUnits, OnSendBattleProgress);
            }
            else
            {
                PBConnect_finishPVPLadder.SychronizeBattleProgress(InstancePlayer.instance.currentPvpFightId, deadUnits, OnSendBattleProgress);
            }

//			FinishBattleRequest request = new FinishBattleRequest ();
//			request.api = new Model_ApiRequest ().api;
//
//			ListHelper.Push (request.unitGroup, PBConnect_finishBattle.GetPlayerDeadUnits ());
//
//			request.fightResult = -1;
//			request.star = 0;
//
//			(new PBConnect_finishBattle ()).Send (request, OnSendBattleProgress);
//			_cbSendBattleProgress = cbSendBattleProgress;
        }
    }
    void EndFight()
    {
        FinishBattleRequest request = new FinishBattleRequest();

        request.api = new Model_ApiRequest().api;

        request.fightId = InstancePlayer.instance.currentFightId;
        ListHelper.Push(request.unitGroup, PBConnect_finishBattle.GetPlayerDeadUnits());
        request.fightResult = (int)PBConnect_finishBattle.FIGHT_RESULT.WIN;
        request.star        = 1;

        (new PBConnect_finishBattle()).Send(request, OnEndFight);
    }
    public void EndFight()
    {
        // 同步战斗中损失到阵型
        InstancePlayer.instance.model_User.model_Formation.SyncBattleDamageUnit();

        bool isOffline = IsStartOfOffline();

        if (isOffline)
        {
            SceneHelper.SwitchScene(AppConfig.SCENE_NAME_BATTLE_OFFLINE);
        }
        else
        {
            _isBattleWin = InstancePlayer.instance.battle.IsPlayerWin();

            Model_Mission modelMission   = InstancePlayer.instance.model_User.model_level.GetMission(InstancePlayer.instance.battle.mission.magicId);
            int           battleStarMask = InstancePlayer.instance.battleEvaluation.starMask;  // _isBattleWin ? 7 : 0;
            battleStarMask |= modelMission.starMask;

            List <SlgPB.UnitGroup> deadUnits = PBConnect_finishBattle.GetPlayerDeadUnits();
            int fightId = InstancePlayer.instance.currentFightId;

            PBConnect_finishBattle.FinishBattle(fightId, deadUnits, _isBattleWin, battleStarMask, OnEndFight);


            /*
             * FinishBattleRequest request = new FinishBattleRequest ();
             * request.api = new Model_ApiRequest ().api;
             *
             * request.fightId = InstancePlayer.instance.currentFightId;
             * ListHelper.Push (request.unitGroup, PBConnect_finishBattle.GetPlayerDeadUnits ());
             *
             * if(InstancePlayer.instance.battle.IsPlayerWin ())
             * {
             *      request.fightResult = (int)PBConnect_finishBattle.FIGHT_RESULT.WIN;
             *      request.star = 7;
             *      _isBattleWin = true;
             * }
             * else
             * {
             *      request.fightResult = (int)PBConnect_finishBattle.FIGHT_RESULT.LOSS;
             *      request.star = 0;
             *      _isBattleWin = false;
             * }
             *
             * (new PBConnect_finishBattle ()).Send (request, OnEndFight);
             */
        }
    }
    public void EndPvpFight()
    {
        // 同步战斗中损失到阵型
        InstancePlayer.instance.model_User.model_Formation.SyncBattleDamageUnit();

        bool isOffline = IsStartOfOffline();

        if (isOffline)
        {
//			SceneHelper.SwitchScene (AppConfig.SCENE_NAME_BATTLE_OFFLINE);
        }
        else
        {
            bool win = InstancePlayer.instance.battle.IsPlayerWin();
            _isBattleWin = win;
            List <SlgPB.UnitGroup> deadUnits = PBConnect_finishBattle.GetPlayerDeadUnits();

            PBConnect_finishPVPLadder.FinishPvpLadder(
                InstancePlayer.instance.currentPvpFightId,
                (win ? (int)PBConnect_finishBattle.FIGHT_RESULT.WIN : (int)PBConnect_finishBattle.FIGHT_RESULT.LOSS),
                deadUnits,
                OnEndPvpFight
                );

/*
 *                      FinishBattleRequest request = new FinishBattleRequest ();
 *                      request.api = new Model_ApiRequest ().api;
 *
 *                      request.fightId = InstancePlayer.instance.currentFightId;
 *                      ListHelper.Push (request.unitGroup, PBConnect_finishBattle.GetPlayerDeadUnits ());
 *
 *                      if(InstancePlayer.instance.battle.IsPlayerWin ())
 *                      {
 *                              request.fightResult = 1;
 *                      }
 *                      else
 *                      {
 *                              request.fightResult = 0;
 *                      }
 *
 *                      request.star = 1;
 *                      (new PBConnect_finishBattle ()).Send (request, OnEndFight);
 */
        }
    }