public static void EnableNextIconButton()
    {
        if (GameManager.Mode != GameMode.Rehearsal)
        {
            return;
        }

        int[] siteIDs = InteractablePathManager.GetPathSiteIDs();

        // Disable last scene button
        if (activeIndex >= 0)
        {
            int lastSiteID = siteIDs[activeIndex];
            allIconButtons[lastSiteID].GetComponent <Button>().interactable = false;
            allIconButtons[lastSiteID].enableCover.gameObject.SetActive(true);

            Animator prevAnimator = allIconButtons[lastSiteID].GetComponent <Animator>();
            prevAnimator.Play("UIButtonIdle");
        }

        // Enable next scene button
        if (activeIndex + 1 < siteIDs.Length)
        {
            int nextSiteID = siteIDs[activeIndex + 1];
            allIconButtons[nextSiteID].GetComponent <Button>().interactable = true;
            allIconButtons[nextSiteID].enableCover.gameObject.SetActive(false);
            LevelIconButton.ActivateIconForRehersal(nextSiteID, activeIndex + 1);

            Animator nextAnimator = allIconButtons[nextSiteID].GetComponent <Animator>();
            nextAnimator.Play("UIButtonHighlight");
        }
    }
Exemple #2
0
 public void ResetPlaythrough()
 {
     InteractablePathManager.Reset();
     MenuScreenManager.ActivateSceneLineUp();
     gameObject.SetActive(false);
     GameManager.GraduatedMode = true;
 }
Exemple #3
0
    public void SetRandomSeed()
    {
        InteractablePathManager.SetRandomSeed();

        TMP_InputField seedInputField = GetComponentInChildren <TMP_InputField>();

        seedInputField.text = InteractablePathManager.SeedString;
    }
Exemple #4
0
    public void GoToStart()
    {
        InteractablePathManager.Reset();

        state = MenuScreenStates.Start;
        ResetCanvas();
        startCanvas.gameObject.SetActive(true);
    }
Exemple #5
0
    static public void ActivateStart()
    {
        InteractablePathManager.Reset();
        LevelSetManager.ResetCurrentLevels();
        LevelIconButton.ResetButtonIcons();

        Instance.SetBackground(true);
        Instance.GoToStart();
    }
Exemple #6
0
    public void SetRandomBIP39Seed()
    {
        BIP39Converter bpc = new BIP39Converter();

        InteractablePathManager.SetRandomSeed();

        TMP_InputField seedInputField = GetComponentInChildren <TMP_InputField>();

        seedInputField.text = bpc.getSentenceFromHex(InteractablePathManager.SeedString);
    }
Exemple #7
0
    public void ResetScene()
    {
        for (int i = 0; i < InteractableConfig.ActionsPerSite; i++)
        {
            InteractablePathManager.UndoLastAction();
        }

        InteractablePathManager.ShowLevelComplete = false;
        GameManager.State = GameManager.PrevState;
        ToggleOff();
    }
Exemple #8
0
    /// <summary> Handles selecting Rehearsal Button </summary>
    public void Rehearsal()
    {
        GameManager.Mode  = GameMode.Rehearsal;
        GameManager.State = GameState.Play;

        InteractablePathManager.InitalizePathAndLog();
        InteractableManager.destroyInteractables();

        Scene scene = SceneManager.GetActiveScene();

        SceneManager.LoadScene(scene.name);
    }
Exemple #9
0
 void Update()
 {
     if (siteIndex == InteractablePathManager.NextInteractableSiteID())
     {
         GetComponent <CanvasGroup>().alpha = 0.75f + 0.25f * Mathf.Sin(5 * Time.time);
         GetComponentInChildren <TextMeshProUGUI>(true).gameObject.SetActive(true);
     }
     else
     {
         GetComponentInChildren <TextMeshProUGUI>(true).gameObject.SetActive(false);
     }
 }
Exemple #10
0
    public void SetupEncodeSeedBip()
    {
        SetLevelPanelDefault();

        if (GameManager.Mode == GameMode.Rehearsal)
        {
            TMP_InputField seedInputField = GetComponentInChildren <TMP_InputField>(true);

            string seedFromInput = seedInputField.text;
            string hexSeed       = "";

            if (!detectHex(seedFromInput) && validBip(seedFromInput))
            {
                BIP39Converter bpc = new BIP39Converter();
                hexSeed = bpc.getHexFromSentence(seedFromInput);
            }
            else
            {
                hexSeed = seedFromInput;
                if (InteractableConfig.SeedHexLength % 2 == 1)
                {
                    if (seedFromInput.Length == InteractableConfig.SeedHexLength)
                    {
                        string seedText = seedFromInput + "0";
                        char[] array    = seedText.ToCharArray();
                        array[array.Length - 1] = array[array.Length - 2];
                        array[array.Length - 2] = '0';
                        hexSeed = new string(array);
                    }
                    else if (seedFromInput.Length == InteractableConfig.SeedHexLength + 1)
                    {
                        char[] array = seedFromInput.ToCharArray();
                        array[array.Length - 2] = '0';
                        hexSeed = new string(array);
                    }
                    else
                    {
                        Debug.Log("Seed: " + hexSeed);
                    }
                }
            }

            //Debug.Log("Sentence: " + seedFromInput);
            Debug.Log("Seed: " + hexSeed);

            InteractablePathManager.SeedString = hexSeed;

            int[] siteIDs = InteractablePathManager.GetPathSiteIDs();

            SetIconAndPanelForRehearsal(siteIDs);
        }
    }
Exemple #11
0
    public void SetupEncodeSeed()
    {
        SetLevelPanelDefault();

        if (GameManager.Mode == GameMode.Rehearsal)
        {
            TMP_InputField seedInputField = GetComponentInChildren <TMP_InputField>(true);
            InteractablePathManager.SeedString = seedInputField.text;

            int[] siteIDs = InteractablePathManager.GetPathSiteIDs();
            SetIconAndPanelForRehearsal(siteIDs);
        }
    }
Exemple #12
0
    public void Undo()
    {
        int actionsThisScene = InteractableLog.Count % InteractableConfig.ActionsPerSite;

        if (actionsThisScene > 0)
        {
            InteractablePathManager.UndoLastAction();
        }
        else
        {
            Debug.Log("Unable to undo actions from a previous scene.");
        }
    }
    public void EnableNext()
    {
        if (GameManager.Mode != GameMode.Rehearsal)
        {
            return;
        }

        int[] siteIDs = InteractablePathManager.GetPathSiteIDs();
        if (sceneCount < siteIDs.Length)
        {
            int nextID = siteIDs[sceneCount];
            buttons[nextID].interactable = true;
            indicators[nextID].Activate(sceneCount);
        }
    }
Exemple #14
0
 public void ExitToMainMenu()
 {
     SeedQuest.Level.LevelManager.Instance.StopLevelMusic();
     InteractablePathManager.Reset();
     if (GameManager.V2Menus)
     {
         MenuScreenV2.Instance.GoToStart();
     }
     else
     {
         MenuScreenManager.ActivateStart();
     }
     //gameObject.SetActive(false);
     animator.Play("SlideDown");
     GameManager.GraduatedMode = false;
 }
Exemple #15
0
    private void Start()
    {
        GameManager.ResetCursor();
        InteractableManager.Reset();
        InteractablePathManager.Reset();

        GameObject sideNav = GameObject.FindGameObjectWithTag("SideNav");

        for (int i = 0; i < demoList.Length; i++)
        {
            Vector3 position = buttonOffset + new Vector3(0, -i * buttonPadding, 0);
            demoList[i].select = createLevelButton(demoList[i], sideNav.transform, position);
        }

        demoList[0].select.onClick.Invoke();
    }
Exemple #16
0
 void Awake()
 {
     GameManager.Mode         = GameMode.Rehearsal;
     GameManager.TutorialMode = true;
     canvas              = GetComponentsInChildren <Canvas>(true);
     currentCanvasIndex  = 0;
     playerStartPosition = GameObject.FindGameObjectWithTag("Player").transform.localPosition;
     InteractablePathManager.SeedString = "A09206A09206000000000000000000000";
     InteractablePathManager.SetupInteractablePathIDs();
     InteractablePathManager.Initalize();
     menuBar = FindObjectOfType <MenuProgressTopBarUI>();
     menuBar.gameObject.GetComponent <Canvas>().sortingOrder = 1;
     sliderCanvas = FindObjectOfType <CameraSlider>().transform.parent.parent.gameObject.GetComponent <Canvas>();
     sliderCanvas.sortingOrder  = 1;
     minimapCanvas              = FindObjectOfType <MinimapUI>().gameObject.GetComponent <Canvas>();
     minimapCanvas.sortingOrder = 1;
 }
Exemple #17
0
    private void SetValidLevelSelect()
    {
        if (GameManager.Mode == GameMode.Rehearsal)
        {
            foreach (Button button in levelButtonList)
            {
                button.interactable = false;
            }

            levelButtonList[InteractablePathManager.NextInteractableSiteID()].interactable = true;
        }
        else
        {
            foreach (Button button in levelButtonList)
            {
                button.interactable = true;
            }
        }
    }
    public void EncodeSeed()
    {
        if (GameManager.Mode == GameMode.Rehearsal)
        {
            string seedFromInput = seedInputField.text;
            string hexSeed       = "";

            if (!SeedUtility.detectHex(seedFromInput) && SeedUtility.validBip(seedFromInput))
            {
                hexSeed = bpc.getHexFromSentence(seedFromInput);
            }
            else
            {
                hexSeed = seedFromInput;
                if (InteractableConfig.SeedHexLength % 2 == 1)
                {
                    if (seedFromInput.Length == InteractableConfig.SeedHexLength)
                    {
                        string seedText = seedFromInput + "0";
                        char[] array    = seedText.ToCharArray();
                        array[array.Length - 1] = array[array.Length - 2];
                        array[array.Length - 2] = '0';
                        hexSeed = new string(array);
                    }
                    else if (seedFromInput.Length == InteractableConfig.SeedHexLength + 1)
                    {
                        char[] array = seedFromInput.ToCharArray();
                        array[array.Length - 2] = '0';
                        hexSeed = new string(array);
                    }
                    else
                    {
                        Debug.Log("Seed: " + hexSeed);
                    }
                }
            }
            Debug.Log("Seed: " + hexSeed);

            InteractablePathManager.SeedString = hexSeed;
            int[] siteIDs = InteractablePathManager.GetPathSiteIDs();
        }
    }
Exemple #19
0
    public void replayScene()
    {
        // remove any actions performed in the current scene from the interactable log
        // calculate # of actions to undo
        int actionsThisScene = InteractableLog.Count % InteractableConfig.ActionsPerSite;

        //Debug.Log("Found " + actionsThisScene + " actions to undo");

        if (actionsThisScene > 0)
        {
            for (int i = 0; i < actionsThisScene; i++)
            {
                InteractablePathManager.UndoLastAction();
                Debug.Log("Undo number " + (i + 1));
            }

            InteractablePathManager.ShowLevelComplete = false;
        }

        GameManager.State = GameManager.PrevState;
        gameObject.SetActive(false);
    }
Exemple #20
0
    public void SetupEncodeSeed()
    {
        SetLevelPanelDefault();

        if (GameManager.Mode == GameMode.Rehearsal)
        {
            TMP_InputField seedInputField = GetComponentInChildren <TMP_InputField>(true);

            string seedFromInput = removeHexPrefix(seedInputField.text);

            if (InteractableConfig.SeedHexLength % 2 == 1)
            {
                if (seedFromInput.Length == InteractableConfig.SeedHexLength)
                {
                    string seedText = seedFromInput + "0";
                    char[] array    = seedText.ToCharArray();
                    array[array.Length - 1] = array[array.Length - 2];
                    array[array.Length - 2] = '0';
                    seedFromInput           = new string(array);
                }
                else if (seedFromInput.Length == InteractableConfig.SeedHexLength + 1)
                {
                    char[] array = seedFromInput.ToCharArray();
                    array[array.Length - 2] = '0';
                    seedFromInput           = new string(array);
                }
                else
                {
                    Debug.Log("Seed: " + seedFromInput);
                }
            }

            InteractablePathManager.SeedString = seedFromInput;

            int[] siteIDs = InteractablePathManager.GetPathSiteIDs();
            SetIconAndPanelForRehearsal(siteIDs);
        }
    }
Exemple #21
0
    // Creates a custom learn mode - does the heavy lifting for the above two functions
    public static string learnTest(string input, bool random, bool iterative, bool tryToBreak)
    {
        string[] stringInputs = input.Split(null);
        int[]    scenes       = new int[InteractableConfig.SitesPerGame];
        int[]    actions      = new int[InteractableConfig.SitesPerGame + (InteractableConfig.SitesPerGame * InteractableConfig.ActionsPerSite * 2)];
        if (stringInputs.Length <= 0 || input == null || input == "")
        {
            return("Please enter at least one scene name for the custom learn path.");
        }
        Debug.Log("Input: " + input);
        Debug.Log("String input length: " + stringInputs.Length);

        for (int i = 0; i < InteractableConfig.SitesPerGame; i++)
        {
            // queue up the scenes entered by user into a seed
            if (i < stringInputs.Length)
            {
                if (sceneIndeces.ContainsKey(stringInputs[i]))
                {
                    scenes[i] = sceneIndeces[stringInputs[i]];
                }
                else if (fuzzySceneNames.ContainsKey(stringInputs[i]))
                {
                    scenes[i] = sceneIndeces[fuzzySceneNames[stringInputs[i]]];
                }
                else
                {
                    Debug.Log("Do not recognize scene name: " + stringInputs[i]);
                    return("Do not recognize scene name: " + stringInputs[i]);
                }
            }
            else
            {
                scenes[i] = 2;
            }
        }

        int counter = 0;

        // Create custom seed using the chosen scenes
        for (int i = 0; i < InteractableConfig.SitesPerGame; i++)
        {
            actions[i + i * InteractableConfig.ActionsPerSite * 2] = scenes[i];

            for (int j = 0; j < InteractableConfig.ActionsPerSite; j++)
            {
                if (iterative)
                {
                    actions[j * 2 + 1 + i + i * InteractableConfig.ActionsPerSite * 2] = counter % 16;
                }
                else if (random)
                {
                    actions[j * 2 + 1 + i + i * InteractableConfig.ActionsPerSite * 2] = UnityEngine.Random.Range(0, 100) % 16;
                }
                else if (tryToBreak)
                {
                    actions[j * 2 + 1 + i + i * InteractableConfig.ActionsPerSite * 2] = j + 13;
                }
                else
                {
                    actions[j * 2 + 1 + i + i * InteractableConfig.ActionsPerSite * 2] = j % 16;
                }

                actions[j * 2 + 2 + i + i * InteractableConfig.ActionsPerSite * 2] = j % 4;

                //if (iterative)
                //    Debug.Log("Counter " + counter % 16);
                counter++;
            }
        }

        SeedToByte seeds = new SeedToByte();
        string     seed  = seeds.getSeed(actions);

        Debug.Log("Artificial seed: " + seed);

        InteractablePathManager.SeedString = seed;
        InteractablePath.ResetPath();
        InteractablePathManager.Reset();
        if (GameManager.V2Menus)
        {
            WorldManager.Reset();
        }
        else
        {
            LevelSetManager.ResetCurrentLevels();
        }


        for (int i = 0; i < scenes.Length; i++)
        {
            if (GameManager.V2Menus)
            {
                WorldManager.Add(scenes[i]);
            }
            else
            {
                LevelSetManager.AddLevel(scenes[i]);
            }
        }

        GameManager.Mode  = GameMode.Rehearsal;
        GameManager.State = GameState.Play;
        InteractablePathManager.Initalize();

        if (fuzzySceneNames.ContainsKey(stringInputs[0]))
        {
            SceneManager.LoadScene(fuzzySceneNames[stringInputs[0]]);
            return("Loading custom seed. Scene: " + fuzzySceneNames[stringInputs[0]]);
        }
        else
        {
            Debug.Log("Could not find scene named " + stringInputs[0]);
        }

        SceneManager.LoadScene(stringInputs[0]);

        return("Loading custom seed. Scene: " + stringInputs[0]);
    }
Exemple #22
0
    private void Update()
    {
        if (currentCanvasIndex == 2)
        {
            menuBar.gameObject.GetComponent <Canvas>().sortingOrder = 3;
        }

        if (currentCanvasIndex == 5)
        {
            menuBar.gameObject.GetComponent <Canvas>().sortingOrder = 1;
            GameObject player = GameObject.FindGameObjectWithTag("Player");
            if (Vector3.Distance(playerStartPosition, player.transform.localPosition) > 0.037)
            {
                if (!coroutineStarted)
                {
                    coroutineStarted = true;
                    StartCoroutine(WaitNextCanvas(1.5f));
                }
            }
        }

        if (currentCanvasIndex == 6)
        {
            minimapCanvas.sortingOrder = 3;
            sliderCanvas.sortingOrder  = 3;
        }

        if (currentCanvasIndex == 7)
        {
            minimapCanvas.sortingOrder = 1;
            sliderCanvas.sortingOrder  = 1;
        }

        if (currentCanvasIndex < 10)
        {
            if (InteractableLog.Count > 0)
            {
                InteractablePathManager.Reset();
                InteractablePath.InitializeNextInteractable();
            }
        }

        else if (currentCanvasIndex == 10)
        {
            if (InteractableLog.Count > 0)
            {
                NextCanvas();
            }
        }

        else if (currentCanvasIndex == 11)
        {
            if (InteractableLog.Count == 2)
            {
                GoToCanvas(13);
            }
        }

        else if (currentCanvasIndex == 12)
        {
            if (InteractableLog.Count == 0)
            {
                GoToCanvas(11);
            }
        }

        else if (currentCanvasIndex == 13)
        {
            if (InteractableLog.Count == 3)
            {
                InteractablePathManager.Reset();
                InteractablePreviewUI.ToggleShow();
                InteractableManager.UnHighlightAllInteractables();
                InteractableManager.UnTrackAllInteractables();
                ParticleSystem[] particles = FindObjectsOfType <ParticleSystem>();
                foreach (ParticleSystem particle in particles)
                {
                    particle.Stop();
                }
                GoToCanvas(14);
            }
        }

        else if (currentCanvasIndex == 14)
        {
            if (recall)
            {
                //Debug.Log(InteractableLog.Count);
                if (InteractableLog.Count == 3)
                {
                    GoToCanvas(15);
                }
            }
        }
    }
Exemple #23
0
 public void Undo()
 {
     InteractablePathManager.UndoLastAction();
 }
Exemple #24
0
 /// <summary> Handles selecting PrototypeSelect Button </summary>
 public void PrototypeSelect()
 {
     InteractablePathManager.InitalizePathAndLog();
     InteractableManager.destroyInteractables();
     SceneManager.LoadScene("PrototypeSelect");
 }
 public void SetRandomSeed()
 {
     InteractablePathManager.SetRandomSeed();
     seedInputField.text = InteractablePathManager.SeedString;
 }
 public void SetRandomBIP39Seed()
 {
     InteractablePathManager.SetRandomSeed();
     seedInputField.text = bpc.getSentenceFromHex(InteractablePathManager.SeedString);
 }