Beispiel #1
0
    void Start()
    {
        CounterTimerPlay.Instance.StartTime();
        ManagerAnalytics.MissionStarted(Application.loadedLevelName, false);

        CallTrophy();
    }
Beispiel #2
0
    IEnumerator WaitingPortal()
    {
        while (true)
        {
            if (!ManagerPause.Pause && !ManagerStop.Stop)
            {
                if (ReInput.players.GetPlayer(0).GetAxis("Move Y") > SaveManager.Instance.dataKlaus.controlSensitivity)
                {
                    //Entro al nivel
                    CharacterManager.Instance.FreezeAll();
                    LoadLevelManager.Instance.LoadLevel(NextScene, true);
                    MoveStateKlaus[] moves = GameObject.FindObjectsOfType <MoveStateKlaus>();
                    for (int i = 0; i < moves.Length; ++i)
                    {
                        moves[i].isEnter = true;
                    }
                    anim.SetTrigger("Open");
                    StartCoroutine(EnterPortal(timeEnter));
                    float timer = CounterTimerPlay.Instance.EndTime();
                    SaveManager.Instance.AddPlayTime(timer);
                    ManagerAnalytics.MissionCompleted(Application.loadedLevelName,
                                                      false, timer, 0, false);
                    break;
                }
            }

            yield return(null);
        }
    }
Beispiel #3
0
    protected IEnumerator OnEnterAction()
    {
        float timeArcade = 0;

        if (TimeAttackSystem.Instance != null)
        {
            TimeAttackSystem.Instance.PauseTimer();
            timeArcade = TimeAttackSystem.Instance.timer;
        }

        ChangueScene();
        StopCoroutine("LevelCounterTime");
        Klaus.CanMove(true);
        Klaus.activeJump = false;
        Instantiate(floatingMusik, transform.position, transform.rotation);//Musica
        Camera.main.GetComponent <InputTouchPS4>().Block(true);
        float timer = CounterTimerPlay.Instance.EndTime();

        SaveManager.Instance.AddPlayTime(timer);

        ManagerAnalytics.MissionCompleted(Application.loadedLevelName,
                                          false, timer, timeArcade, true);
        CompleteScene();
        CompleteLevel();
        yield return(StartCoroutine(new TimeCallBacks().WaitPause(TimeTochangeLevel)));

        if (SaveManager.Instance.comingFromTimeArcadeMode && ShowArcade)
        {
            ManagerHudUI.Instance.ShowLevelCompleted(SceneToGoArcade);
        }
        else
        {
            ActivateManualty();
        }
    }
Beispiel #4
0
    IEnumerator WaitingPortal()
    {
        CharacterManager.Instance.FreezeAll();
        CharacterManager.Instance.BecomeInmortal(true);
        //Salvo
        posToShow = CollectablesManager.setCollectable(TypeLevel);

        GetComponent <SpriteRenderer>().enabled = false;
        for (int i = 0; i < transform.childCount; ++i)
        {
            transform.GetChild(i).gameObject.SetActive(false);
        }

        yield return(StartCoroutine(new TimeCallBacks().WaitPause(timeToShowNextStep)));

        collectable_UI.onFinish += FinishGivePiece;
        if (posToShow >= 0)
        {
            collectable_UI.SetCollect(posToShow);
        }
        else
        {
            collectable_UI.SetCollect(0);
        }

        float timer = CounterTimerPlay.Instance.EndTime();

        SaveManager.Instance.AddPlayTime(timer);
        ManagerAnalytics.MissionCompleted(Application.loadedLevelName,
                                          false, timer, 0, false);


        //Precargo la escena de video
        //    LoadLevelManager.Instance.LoadLevel(Application.loadedLevelName + "_Video", ThreadPriority.Low, true);
    }
Beispiel #5
0
    IEnumerator Start()
    {
        this.originalY = this.transform.position.y;
        yield return(null);

        ManagerAnalytics.MissionStarted(Application.loadedLevelName, false);
        CounterTimerPlay.Instance.StartTime();
        CheckForNextStep();
    }
Beispiel #6
0
 public AnalyticsController(ManagerAnalytics view)
 {
     this.view                 = view;
     this.serviceModel         = new Models.Service();
     this.patientModel         = new Models.Patient();
     this.doctorModel          = new Models.Doctor();
     this.nurseModel           = new Models.Nurse();
     this.reservationAnalytics = new Models.ReservationAnalytics();
 }
Beispiel #7
0
    public void CompleteScene()
    {
        StopCoroutine("LevelCounterTime");
        SaveManager.Instance.AddPlayTime(timer);
        ManagerAnalytics.MissionCompleted(Application.loadedLevelName,
                                          false, timer, 0, true);

        if (completeSceneCallback != null)
        {
            completeSceneCallback();
        }
    }
Beispiel #8
0
    protected override void OnEnterAction(Collider2D other)
    {
        base.OnEnterAction(other);

        float timer = door.StopTimerAndReturn();

        SaveManager.Instance.AddPlayTime(timer);
        SaveManager.Instance.dataKlaus.CompleteMainStory = true;
        ManagerAnalytics.MissionCompleted(Application.loadedLevelName,
                                          false, timer, 0, false);

        LoadLevelManager.Instance.LoadLevel(SaveManager.Instance.comingFromTimeArcadeMode ? NextSceneArcadeMode : NextSceneHistory, false);
    }
Beispiel #9
0
    void RestartSection()
    {
        var levelName = SceneManager.GetActiveScene().name;

        ManagerAnalytics.MissionFailed(levelName,
                                       false, "Reset", CounterTimerPlay.Instance.TimePlayingLevel);

        /*  if (callbackChangeLevel != null)
         *    callbackChangeLevel();*/

        Time.timeScale = 1;
        LoadLevelManager.Instance.RestartCurrentLevel();
    }
Beispiel #10
0
    IEnumerator EnterKlauses()
    {
        float timeArcade = 0;

        if (TimeAttackSystem.Instance != null)
        {
            TimeAttackSystem.Instance.PauseTimer();
            timeArcade = TimeAttackSystem.Instance.timer;
        }

        if (onEnterElevator != null)
        {
            onEnterElevator();
        }
        yield return(StartCoroutine(new TimeCallBacks().WaitPause(0.1f)));

        Instantiate(floatingMusik, transform.position, transform.rotation);//Musica

        Camera.main.GetComponent <InputTouchPS4>().Block(true);

        for (int i = 0; i < CharacterManager.Instance.canMove.Length; ++i)
        {
            if (CharacterManager.Instance.canMove[i])
            {
                CharacterManager.Instance.charsInput[i].GetComponent <MoveState>().isEnterElevator = true;
            }
        }

        float timer = CounterTimerPlay.Instance.EndTime();

        SaveManager.Instance.AddPlayTime(timer);

        ManagerAnalytics.MissionCompleted(SceneManager.GetActiveScene().name,
                                          false, timer, timeArcade, true);
        CompleteScene();
        CompleteLevel();

        yield return(StartCoroutine(new TimeCallBacks().WaitPause(TimeToWaitKlausEnter)));

        doorAnim.SetTrigger("Close");//Se abre la reja
        yield return(StartCoroutine(new TimeCallBacks().WaitPause(TimeToWaitCloseDoor)));

        if (SaveManager.Instance.isComingFromArcade)
        {
            ManagerHudUI.Instance.ShowLevelCompleted(SceneToGoArcade);
        }
        else
        {
            ActivateManualty();
        }
    }
Beispiel #11
0
    void EnterKlauses()
    {
        float timeArcade = 0;

        if (TimeAttackSystem.Instance != null)
        {
            TimeAttackSystem.Instance.PauseTimer();
            if (isFinalLevel || isEndTimeAttack)
            {
                timeArcade = TimeAttackSystem.Instance.timer;
            }
        }
        doorAnim.SetBool("Open", true);

        for (int i = 0; i < CharacterManager.Instance.canMove.Length && EntrarMismoTiempo && SoloPaEntrar == null; ++i)
        {
            if (CharacterManager.Instance.canMove[i])
            {
                CharacterManager.Instance.charsInput[i].GetComponent <MoveState>().isEnter = true;
            }
        }
        float timer = CounterTimerPlay.Instance.EndTime();

        SaveManager.Instance.AddPlayTime(timer);

        ManagerAnalytics.MissionCompleted(Application.loadedLevelName,
                                          isTutorial, timer, timeArcade, isFinalLevel || isEndTimeAttack);

        CompleteScene();

        if (isFinalLevel || isEndTimeAttack)
        {
            CompleteLevel();

            HUD_LevelCompletedMenu.Instance.SetQuote(QuoteText);
            Camera.main.GetComponent <InputTouchPS4>().Block(true);

            if (SaveManager.Instance.isComingFromArcade)
            {
                ManagerHudUI.Instance.ShowLevelCompleted(SceneToGoArcade, preLoadScene);
            }
            else
            {
                ManagerHudUI.Instance.ShowLevelCompleted(NextScene, preLoadScene);
            }
        }
        else
        {
            EffectCamera();
        }
    }
Beispiel #12
0
    void Start()
    {
        CameraShake.Instance.proCameraShake.Duration = 5;
        // RumbleManager.Instance.Stop();
        ManagerAnalytics.MissionStarted(Application.loadedLevelName, false);

        CallTrophy();
        StartCoroutine("LevelCounterTime");
        CameraShake.Instance.proCameraShake.Shake();
        StartShake(1);
        StartVibration();

        RumbleManager.Instance.Vibrate();
    }
Beispiel #13
0
    void ExitGame()
    {
        var levelName = SceneManager.GetActiveScene().name;

        ManagerAnalytics.MissionFailed(levelName,
                                       false, "Leave", CounterTimerPlay.Instance.TimePlayingLevel);

        TimeAttackSystem.Instance.ResetTimer();
        Time.timeScale = 1;

        callbackChangeLevel?.Invoke();

        LoadLevelManager.Instance.LoadLevelWithLoadingScene("PrincipalMenu", false);
    }
Beispiel #14
0
    IEnumerator Start()
    {
        for (int i = 0; i < CharacterManager.Instance.charsInput.Length; ++i)
        {
            isInPlayer.Add(CharacterManager.Instance.charsInput[i].gameObject.GetInstanceID(), false);
            PlayerPos.Add(i, CharacterManager.Instance.charsInput[i].gameObject.GetInstanceID());
        }

        yield return(new WaitForSeconds(TimeToShowLevelName));

        //     TitleLevelHUD.Instance.Show(GropulLevelNameText, ChapterNameText, LevelNameText);

        CounterTimerPlay.Instance.StartTime();
        ManagerAnalytics.MissionStarted(SceneManager.GetActiveScene().name, false);

        CallTrophy();
    }
Beispiel #15
0
    // Use this for initialization
    IEnumerator Start()
    {
        for (int i = 0; i < CharacterManager.Instance.charsInput.Length; ++i)
        {
            isInPlayer.Add(CharacterManager.Instance.charsInput[i].gameObject.GetInstanceID(), false);
            PlayerPos.Add(i, CharacterManager.Instance.charsInput[i].gameObject.GetInstanceID());
        }
        if (!ItsAnotherDoor)
        {
            TitleLevelHUD.Instance.SetCompleteName(CompleteSectionName);
            if (isFinalLevel || isEndTimeAttack)
            {
                FinalLevelAsset.gameObject.SetActive(true);
                FinalLevelAsset.Rebind();
            }
            else
            {
                FinalLevelAsset.gameObject.SetActive(false);
            }
            yield return(new WaitForSeconds(TimeToShowLevelName));

            if (isStartLevel)
            {
                TitleLevelHUD.Instance.Show(GropulLevelNameText, ChapterNameText, LevelNameText);
            }

            if (canStartAnalitic)
            {
                ManagerAnalytics.MissionStarted(SceneManager.GetActiveScene().name, isTutorial);
            }

            CallTrophy();
        }
        SetLevelCounterTimer(0);
        if (StartOff)
        {
            gameObject.SetActive(false);
        }
        if (isFinalLevel || isEndTimeAttack)
        {
            //Al levecompleted need load scene
            preLoadScene = false;
        }
    }
Beispiel #16
0
    protected virtual void OnEnterAction(Collider2D other)
    {
        float timer = CounterTimerPlay.Instance.EndTime();

        SaveManager.Instance.AddPlayTime(timer);
        ManagerAnalytics.MissionCompleted(Application.loadedLevelName,
                                          false, timer, 0, false);

        isActive = true;
        //Entro al nivel
        CharacterManager.Instance.FreezeAll();
        gameObject.AddComponent <AudioListener>();
        for (int i = 0; i < CharacterManager.Instance.charsInput.Length; ++i)
        {
            CharacterManager.Instance.charsInput[i].gameObject.SetActive(false);
        }
        if (PreLoadScene)
        {
            LoadLevelManager.Instance.LoadLevel(SaveManager.Instance.comingFromCollectables ? SaveManager.Instance.LevelToLoadCollectable : DefaultScene, true);
        }
        else
        {
            CollectableLoadLevel loaded = GetComponentInChildren <CollectableLoadLevel>();
            if (loaded != null)
            {
                loaded.PreloadScene = false;
                if (SaveManager.Instance.comingFromCollectables)
                {
                    loaded.sceneToLoad = SaveManager.Instance.LevelToLoadCollectable;
                }
                else
                {
                    loaded.sceneToLoad = DefaultScene;
                }
            }
        }

        if (CameraShake.Instance != null)
        {
            CameraShake.Instance.StartShake(ShakePReset);
        }
        //Aviso a HUD
        anim.SetTrigger("Play");
    }
Beispiel #17
0
    void RestartLevel()
    {
        var levelName = SceneManager.GetActiveScene().name;

        ManagerAnalytics.MissionFailed(levelName,
                                       false, "Reset", CounterTimerPlay.Instance.TimePlayingLevel);

        TimeAttackSystem.Instance.ResetTimer();
        Time.timeScale = 1;


        string FirstLetter = levelName.Substring(0, 1);

        if (FirstLetter == "W")
        {
            callbackChangeLevel?.Invoke();
            string typeLevel = levelName.Substring(2, 1);
            if (typeLevel == "L")
            {
                LoadLevelManager.Instance.LoadLevelWithLoadingScene(levelName.Substring(0, 6) + "1", false);
            }
            else if (typeLevel == "B")
            {
                LoadLevelManager.Instance.RestartCurrentLevel();
            }
            else if (typeLevel == "C")
            {
                if (SaveManager.Instance.LevelToLoadCollectable != "")
                {
                    LoadLevelManager.Instance.LoadLevelWithLoadingScene(SaveManager.Instance.LevelToLoadCollectable.Substring(0, 6) + "1", false);
                }
                else
                {
                    LoadLevelManager.Instance.RestartCurrentLevel();
                }
                //LoadLevelManager.Instance.RestartCurrentLevel();
            }
        }
        else if (FirstLetter == "C")
        {
            LoadLevelManager.Instance.RestartCurrentLevel();
        }
    }
Beispiel #18
0
    IEnumerator Cutscene_Enter()
    {
        audioEnding.PlayDelayed(0.01f);
        DeadState state = target.GetComponentInChildren <DeadState>();

        state.blockRespawn = true;
        state.UnSuscribeOnStart(OnPlayerDead);
        CharacterManager.Instance.FreezeAll();

        // Flip if needed
        if (target.position.x < cachedRigidbody.position.x)
        {
            target.GetComponentInChildren <FlipSprite>().FlipIfCanFlip(Vector3.right);
        }
        else
        {
            target.GetComponentInChildren <FlipSprite>().FlipIfCanFlip(-Vector3.right);
        }

        // Show K1 dialogues


        Animator       K1Animator = K1.GetComponent(typeof(Animator)) as Animator;
        SpriteRenderer K1Sprite   = K1.GetComponent(typeof(SpriteRenderer)) as SpriteRenderer;

        K1Animator.enabled = false;
        K1Sprite.sprite    = K1SpriteAngry.sprite;


        for (int i = 0; i != K1Dialogues.Length; ++i)
        {
            K1Dialogues[i].InitText();
            if (i == 0)
            {
                CameraShake.Instance.StartShake();
            }
            //VolDownMusik
            if (AS_W4BossMusik.Instance != null)
            {
                AS_W4BossMusik.Instance.MusikMuere();
            }
            yield return(StartCoroutine(new TimeCallBacks().WaitForSecondsPauseStop(K1TimeBewteenDialogues[i])));

            if (i == 0)
            {
                CameraShake.Instance.StopShake();
            }
        }

        yield return(StartCoroutine(new TimeCallBacks().WaitForSecondsPauseStop(timeForKlausAttack)));

        K1Animator.enabled = true;

        // Klaus GETS UP AND ATTACKS!!
        animator.SetBool("FinalAttack", true);
        animator.SetBool("Vulnerable", false);

        Blink overlayBlink = overlay.GetComponent <Blink>();

        overlayBlink.Play(5f, new Color(0, 0, 0, 0), new Color(0, 0, 0, 0.5f));

        foreach (GameObject effect in beforeReleaseEffects)
        {
            effect.SetActive(true);
        }

        foreach (GameObject effect in onReleaseEffects)
        {
            effect.SetActive(true);
        }

        //MusikClonesUp
        messageMix.SendMessage("NormalMix");
        if (AS_W4BossMusik.Instance != null)
        {
            AS_W4BossMusik.Instance.MusikRevive();
        }
        BulletHandler bullet = finalBulletPrefab.Spawn <BulletHandler>(cachedRigidbody.position, Quaternion.identity);

        bullet.transform.right = Vector3.Normalize(target.position - transform.position);
        bullet.SetDirection(new BulletInfo(bullet.transform.right, 60f));

        // Hide dialogues
        for (int i = 0; i != K1Dialogues.Length; ++i)
        {
            K1Dialogues[i].HideText();
            yield return(StartCoroutine(new TimeCallBacks().WaitForSecondsPauseStop(0.1f)));
        }

        yield return(StartCoroutine(new TimeCallBacks().WaitForSecondsPauseStop(0.5f)));

        // Now Klaus waits until it exits its trance
        overlayBlink.Stop();
        overlayBlink.SetColor(new Color(0, 0, 0, 0));

        foreach (GameObject effect in onReleaseEffects)
        {
            effect.SetActive(false);
        }

        yield return(StartCoroutine(new TimeCallBacks().WaitForSecondsPauseStop(timeAfterKlausAttack * 0.1f)));

        foreach (GameObject effect in beforeReleaseEffects)
        {
            effect.SetActive(false);
        }

        yield return(StartCoroutine(new TimeCallBacks().WaitForSecondsPauseStop(timeAfterKlausAttack * 0.9f)));

        // He gets up and sees K1
        animator.SetTrigger("WakeUp");
        KlausDialogues[0].HideText();

        Collider2D[] colliders = target.GetComponentsInChildren <Collider2D>();
        foreach (Collider2D collider in colliders)
        {
            collider.enabled = false;
        }

        target.GetComponentInChildren <Rigidbody2D>().isKinematic = true;

        DynamicCameraManager.Instance.RemoveEspecialTargetForK1();
        DynamicCameraManager.Instance.ChangueEspecialTargetForK1(transform, 0.5f, 7.5f, 0.5f);

        while (!inFrontOfCpu)
        {
            yield return(null);
        }

        // Run to the CPU
        animator.SetFloat("SpeedX", 5f);
        yield return(StartCoroutine(MoveTowards(cpuPosition, 5f, restrictY: true)));

        animator.SetFloat("SpeedX", 0f);
        ShowOutroDialogue(7);

        //lUIS COunter
        float timer = CounterTimerPlay.Instance.EndTime();

        SaveManager.Instance.AddPlayTime(timer);
        ManagerAnalytics.MissionCompleted(Application.loadedLevelName, false, timer, 0, true);

        // Hack the CPU
        LoadLevelManager.Instance.LoadLevel(SaveManager.Instance.isComingFromArcade ? "PrincipalMenu" : nextScene, true);
        animator.SetBool("TurnAround", true);
        animator.SetBool("isCoding", true);
        cpu.SetBool("Hacking", true);
        klausAudio.clip         = klausHacking;
        klausAudio.loop         = true;
        klausAudio.spatialBlend = 1;
        klausAudio.volume       = 0.6f;
        klausAudio.Play();

        yield return(StartCoroutine(new TimeCallBacks().WaitForSecondsPauseStop(hackTime)));

        // CPU hacked
        klausAudio.Stop();
        klausAudio.loop       = false;
        sfxAudio.clip         = klausHaked;
        sfxAudio.spatialBlend = 1;
        sfxAudio.volume       = 0.6f;
        sfxAudio.Play();
        cpu.SetBool("HackingTrue", true);

        yield return(StartCoroutine(new TimeCallBacks().WaitForSecondsPauseStop(2f)));

        ShowOutroDialogue(8);

        // Load level
        yield return(StartCoroutine(new TimeCallBacks().WaitForSecondsPauseStop(2f)));

        LoadLevelManager.Instance.ActivateLoadedLevel();

        while (true)
        {
            yield return(null);
        }
    }
Beispiel #19
0
    public override void DoBeforeEntering()
    {
        //   rigidBody2D.velocity = Vector2.zero;
        anim.SetBool("isDead", true);
        switch (typeOfDead)
        {
        case DeadType.Normal:
            break;

        case DeadType.Acid:
            anim.SetBool("DeadAcid", true);
            break;

        case DeadType.Ray:
            anim.SetBool("DeadRay", true);
            break;

        case DeadType.MegaRay:
            anim.SetBool("DeadRayForReal", true);
            break;
        }
        ManagerAnalytics.CharacterDied(Application.loadedLevelName,
                                       gameObject.name,
                                       transform.position.x,
                                       transform.position.y);

        anim.SetFloat("SpeedX", 0);

        anim.SetTrigger("firstIsDead");

        if (!blockRespawn)
        {
            StartCoroutine("ReloadLevel", (deathTime));
        }

        //ManagerPause.Pause = true;
        if (OnStart != null)
        {
            OnStart();
        }

        //KLVO DIGAMOS QUE AQUI LA MUSICA
        if (SFX != null)
        {
            SFX.Spawn();
        }

        ManagerStop.Instance.StopAll();
        if (SaveManager.Instance.dataKlaus != null)
        {
            SaveManager.Instance.dataKlaus.AddDeath();
        }

        inputController.SetNoInput();

        if (!_controllerInput.enabled)
        {
            CameraFollow.Instance.ChangueTargetOnly(transform, deathTime + TimeToRemove);
        }
        rigidBody2D.gravityScale = GravityScaleWhenDead;
    }
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
            this.SuspendLayout();
            //
            // Panels
            //
            LogInPanel logInPanel = new LogInPanel();

            ManagerMainPanel managerMainPanel        = new ManagerMainPanel();
            ManagerAnalytics managerAnalyticsPanel   = new ManagerAnalytics(managerMainPanel.Panel);
            DoctorInCharge   managerDICPanel         = new DoctorInCharge(managerMainPanel.Panel);
            Medicaments      managerMedicamentsPanel = new Medicaments(managerMainPanel.Panel);
            Services         managerServicesPanel    = new Services(managerMainPanel.Panel);
            Timetables       managerTimetablesPanel  = new Timetables(managerMainPanel.Panel);
            Users            managerUsersPanel       = new Users(managerMainPanel.Panel);

            OperatorMainPanel     operatorMainPanel          = new OperatorMainPanel();
            OperatorPatientCharts operatorPatientChartsPanel = new OperatorPatientCharts(operatorMainPanel.Panel);
            Patients           operatorPatientsPanel         = new Patients(operatorMainPanel.Panel);
            Reservations       operatorReservationsPanel     = new Reservations(operatorMainPanel.Panel);
            OperatorTimetables operatorTimeTablesPanel       = new OperatorTimetables(operatorMainPanel.Panel);

            DoctorMainPanel doctorMainPanel            = new DoctorMainPanel();
            TimeTablesDoc   doctorTimeTablesDocPanel   = new TimeTablesDoc(doctorMainPanel.Panel);
            ReservationsDoc doctorReservationsDocPanel = new ReservationsDoc(doctorMainPanel.Panel);
            Prescription    doctorPrescriptionPanel    = new Prescription(doctorMainPanel.Panel);

            NurseMainPanel    nurseMainPanel              = new NurseMainPanel();
            Schedule          nurseSchedulePanel          = new Schedule(nurseMainPanel.Panel);
            ReservationsNurse nurseReservationsNursePanel = new ReservationsNurse(nurseMainPanel.Panel);
            AnalysisNurse     nurseAnalysisPanel          = new AnalysisNurse(nurseMainPanel.Panel);

            logInPanel.initNextPanels(
                managerMainPanel,
                operatorMainPanel,
                doctorMainPanel,
                nurseMainPanel
                );

            managerMainPanel.initNextPanels(
                managerUsersPanel,
                managerTimetablesPanel,
                managerServicesPanel,
                managerMedicamentsPanel,
                managerDICPanel,
                managerAnalyticsPanel,
                logInPanel
                );

            operatorMainPanel.initNextPanels(
                operatorPatientsPanel,
                operatorPatientChartsPanel,
                operatorReservationsPanel,
                operatorTimeTablesPanel,
                logInPanel
                );

            doctorMainPanel.initNextPanels(
                doctorTimeTablesDocPanel,
                doctorReservationsDocPanel,
                doctorPrescriptionPanel,
                logInPanel
                );

            nurseMainPanel.initNextPanels(
                nurseSchedulePanel,
                logInPanel,
                nurseReservationsNursePanel,
                nurseAnalysisPanel
                );

            //
            // MainForm
            //
            this.AutoScaleMode = AutoScaleMode.Font;
            this.Icon          = ((Icon)(resources.GetObject("$this.Icon")));
            this.Left          = this.Top = 0;
            this.MaximumSize   = new Size(Dimensions.VIEW_WIDTH, Dimensions.VIEW_HEIGHT);
            this.MinimumSize   = this.MaximumSize;
            this.Name          = "MainForm";
            this.MaximizeBox   = false;
            this.StartPosition = FormStartPosition.CenterScreen;
            this.Text          = "E-Pacient GG";
            this.ResumeLayout(false);
            this.PerformLayout();

            this.Controls.Add(logInPanel.Panel);

            this.Controls.Add(managerMainPanel.Panel);
            this.Controls.Add(managerAnalyticsPanel.Panel);
            this.Controls.Add(managerDICPanel.Panel);
            this.Controls.Add(managerMedicamentsPanel.Panel);
            this.Controls.Add(managerTimetablesPanel.Panel);
            this.Controls.Add(managerUsersPanel.Panel);
            this.Controls.Add(managerServicesPanel.Panel);

            this.Controls.Add(operatorMainPanel.Panel);
            this.Controls.Add(operatorPatientsPanel.Panel);
            this.Controls.Add(operatorPatientChartsPanel.Panel);
            this.Controls.Add(operatorReservationsPanel.Panel);
            this.Controls.Add(operatorTimeTablesPanel.Panel);

            this.Controls.Add(doctorMainPanel.Panel);
            this.Controls.Add(doctorTimeTablesDocPanel.Panel);
            this.Controls.Add(doctorReservationsDocPanel.Panel);
            this.Controls.Add(doctorPrescriptionPanel.Panel);

            this.Controls.Add(nurseMainPanel.Panel);
            this.Controls.Add(nurseSchedulePanel.Panel);
            this.Controls.Add(nurseAnalysisPanel.Panel);
            this.Controls.Add(nurseReservationsNursePanel.Panel);
        }