Exemplo n.º 1
0
    /**
     *
     * Function that is called after an activity has been played (or the game just started)
     *
     *
     */
    public void attemptActivityDebrief(WorldViewScript wv)
    {
        worldView = wv;
        worldView.setLoadingIconVisibility(true);

        if(WorldViewServerCommunication.tts!=null)
            WorldViewServerCommunication.tts.clearCache();

        gbMang = GhostbookManagerLight.getInstance();

        ghostbookIcon = Camera.main.transform.FindChild("GUI_Ghostbook");
        ghostbookIcon.GetComponent<Animator>().enabled = true;
        ghostbookIcon.GetComponent<Animator>().Play("GB_ButtonShine");
        closeGB = Resources.Load<Texture2D>("Textures/Ghostbook/UI/ghostbookiconclose");

        GBIconUIBounds = WorldSpawnHelper.getWorldToGUIBounds(ghostbookIcon.FindChild("ButtonMain").renderer.bounds,upAxisArr);
        PauseIconUIBounds = WorldSpawnHelper.getWorldToGUIBounds(ghostbookIcon.FindChild("GUI_Pause").FindChild("ButtonMain").renderer.bounds,upAxisArr);

        ghostbookIcon.gameObject.SetActive(showGBIcon);
        GBOpen = false;

        worldView.displayWorldCharacters(gbMang.visibleCharacters());

        questBar = Camera.main.transform.FindChild("QuestBar");
        questBarUiBounds = WorldSpawnHelper.getWorldToGUIBounds(questBar.gameObject.renderer.bounds,upAxisArr);
        questBarAbortBtnUiBounds = WorldSpawnHelper.getWorldToGUIBounds(questBar.FindChild("AbortQuestBtn").renderer.bounds,upAxisArr);
        showQuestBar = false;

        GameObject tmp = new GameObject();
        gbDisp = tmp.AddComponent<GhostBookDisplay>();
        gbDisp.init(this,gbMang);

        deactivateWVInterface();

        GameObject poRef = PersistentObjMang.getInstance();
        DatastoreScript ds = poRef.GetComponent<DatastoreScript>();

        if(ds.containsData("ActivityOutcome"))//An activity was played before
        {

            IServerServices server = (IServerServices)getServerObject().GetComponent(typeof(IServerServices));

            List<PackagedProfileUpdate> update = server.getProfileUpdate();

            loading = 0;//Wait for the pop-ups

            ActivityExternalDebriefer aed = transform.gameObject.AddComponent<ActivityExternalDebriefer>();
            aed.debrief(
                (ApplicationID) ((System.Object[])ds.getData("ActivityOutcome"))[0],
                (bool) ((System.Object[])ds.getData("ActivityOutcome"))[1],
                    (bool)((System.Object[]) ds.getData("ActivityOutcome"))[2],
                (ActivitySessionMetaData) ds.getData("AcMetaData"),
                gbMang,
                update,
                WorldViewServerCommunication.userProfile.getLiteracyProfile().getUserSeveritites().getSeverities(),
                this);

            ds.removeData("ActivityOutcome");
            ds.removeData("AcMetaData");

        }else{
            loading = 1;

        }

        if(!gbMang.getAvailableActivities().Contains(ApplicationID.TRAIN_DISPATCHER)){

                Debug.Log("Unlock Train");

                int newMainCharacter = LocalisationMang.getOwnerNpcOfActivity(ApplicationID.TRAIN_DISPATCHER);
                gbMang.unlockCharacterForLocation(newMainCharacter);
                worldView.displayWorldCharacters(new List<int>{newMainCharacter});
        }

        if(!gbMang.getAvailableActivities().Contains(ApplicationID.MOVING_PATHWAYS)){
                Debug.Log("Unlock Moving Pathways");

                int newMainCharacter = LocalisationMang.getOwnerNpcOfActivity(ApplicationID.MOVING_PATHWAYS);
                gbMang.unlockCharacterForLocation(newMainCharacter);
                worldView.displayWorldCharacters(new List<int>{newMainCharacter});
        }

        if(!gbMang.getAvailableActivities().Contains(ApplicationID.WHAK_A_MOLE)){
                Debug.Log("Unlock Whack");

                int newMainCharacter = LocalisationMang.getOwnerNpcOfActivity(ApplicationID.WHAK_A_MOLE);
                gbMang.unlockCharacterForLocation(newMainCharacter);
                worldView.displayWorldCharacters(new List<int>{newMainCharacter});
        }

        this.enabled = true;
    }