private void OnLoadComplete()
    {
        TrainManager.Instance.Load();
        for (int i = 0; i < 2; i++)
        {
            SpawnerDesc spawner = BrickManager.Instance.userMap.GetSpawner(Brick.SPAWNER_TYPE.BOMB_SPAWNER, i);
            if (spawner == null)
            {
                Debug.LogError("Fail to find BOMB SPAWNER from the geometry ");
            }
            else
            {
                GameObject brickObjectByPos = BrickManager.Instance.GetBrickObjectByPos(spawner.position);
                if (null != brickObjectByPos)
                {
                    BrickProperty component = brickObjectByPos.GetComponent <BrickProperty>();
                    if (null == component)
                    {
                        Debug.LogError("<BombObj> get BrickProperty failed..");
                    }
                    else
                    {
                        coreObjs[i].transform.position = spawner.position;
                        coreObjs[i].transform.rotation = brickObjectByPos.transform.rotation;
                        coreObjs[i].GetComponent <BlastTarget>().Spot = component.Seq;
                    }
                }
            }
        }
        bool flag = false;

        if (MyInfoManager.Instance.BreakingInto && MyInfoManager.Instance.BlastModeDesc != null)
        {
            if (MyInfoManager.Instance.BlastModeDesc.rounding)
            {
                step          = STEP.NOTHING;
                bombInstaller = -1;
                blastTarget   = -1;
                flag          = false;
            }
            else if (MyInfoManager.Instance.BlastModeDesc.bombInstaller < 0 || MyInfoManager.Instance.BlastModeDesc.blastTarget < 0)
            {
                step          = STEP.NOTHING;
                bombInstaller = -1;
                blastTarget   = -1;
                flag          = true;
            }
            else
            {
                step          = STEP.INSTALLED;
                bombInstaller = MyInfoManager.Instance.BlastModeDesc.bombInstaller;
                blastTarget   = MyInfoManager.Instance.BlastModeDesc.blastTarget;
                clockBomb.Install(MyInfoManager.Instance.BlastModeDesc.point, MyInfoManager.Instance.BlastModeDesc.normal);
                flag = true;
            }
            MyInfoManager.Instance.BlastModeDesc = null;
        }
        if (flag)
        {
            GlobalVars.Instance.battleStarting = false;
            GlobalVars.Instance.senseBombInit();
            GameObject gameObject = GameObject.Find("Main");
            if (null != gameObject)
            {
                string text = StringMgr.Instance.Get("WATCHING_USER_CHANGE");
                gameObject.BroadcastMessage("OnChat", new ChatText(ChatText.CHAT_TYPE.SYSTEM, -1, string.Empty, text));
            }
            MyInfoManager.Instance.ControlMode = MyInfoManager.CONTROL_MODE.PLAYING_SPECTATOR;
            localController.ResetGravity();
        }
        else
        {
            SpawnerDesc spawner2 = BrickManager.Instance.GetSpawner(MyInfoManager.Instance.GetTeamSpawnerType(), MyInfoManager.Instance.Ticket);
            if (spawner2 != null)
            {
                localController.Spawn(spawner2.position, Rot.ToQuaternion(spawner2.rotation));
            }
            else
            {
                localController.Spawn(BrickManager.Instance.GetRandomSpawnPos(), Rot.ToQuaternion((byte)UnityEngine.Random.Range(0, 4)));
            }
        }
        if (bRedTeam)
        {
            if (!MyInfoManager.Instance.GetCommonMask(MyInfoManager.COMMON_OPT.DONOT_EXPLOSION_ATTACK_GUIDE))
            {
                ExplosionAttackGuideDialog explosionAttackGuideDialog = (ExplosionAttackGuideDialog)DialogManager.Instance.GetDialogAlways(DialogManager.DIALOG_INDEX.EXPLOSION_ATTACK_GUIDE);
                if (explosionAttackGuideDialog != null && !explosionAttackGuideDialog.DontShowThisMessageAgain)
                {
                    ((ExplosionAttackGuideDialog)DialogManager.Instance.Popup(DialogManager.DIALOG_INDEX.EXPLOSION_ATTACK_GUIDE, exclusive: false))?.InitDialog();
                }
            }
        }
        else if (!MyInfoManager.Instance.GetCommonMask(MyInfoManager.COMMON_OPT.DONOT_EXPLOSION_DEFENCE_GUIDE))
        {
            ExplosionDefenceGuideDialog explosionDefenceGuideDialog = (ExplosionDefenceGuideDialog)DialogManager.Instance.GetDialogAlways(DialogManager.DIALOG_INDEX.EXPLOSION_DEFENCE_GUIDE);
            if (explosionDefenceGuideDialog != null && !explosionDefenceGuideDialog.DontShowThisMessageAgain)
            {
                ((ExplosionDefenceGuideDialog)DialogManager.Instance.Popup(DialogManager.DIALOG_INDEX.EXPLOSION_DEFENCE_GUIDE, exclusive: false))?.InitDialog();
            }
        }
    }