Пример #1
0
 int FindThreshold()
 {
     try
     {
         ModSettingsJSON settings = JsonConvert.DeserializeObject <ModSettingsJSON>(modSettings.Settings);
         if (settings != null)
         {
             if (settings.countdownTime < 5)
             {
                 return(5);
             }
             else if (settings.countdownTime > 60)
             {
                 return(60);
             }
             else
             {
                 return(settings.countdownTime);
             }
         }
         else
         {
             return(10);
         }
     }
     catch (JsonReaderException e)
     {
         Debug.LogFormat("[Fast Math #{0}] JSON reading failed with error {1}, using default threshold.", _moduleId, e.Message);
         return(10);
     }
 }
Пример #2
0
 //function for getting total number of stages; default is 3
 int findTotalStageNum()
 {
     try {
         ModSettingsJSON settings = JsonConvert.DeserializeObject <ModSettingsJSON>(modSettings.Settings);
         if (settings != null)
         {
             if (settings.totalStageNum < 1)
             {
                 return(1);
             }
             else if (settings.totalStageNum > 20)
             {
                 return(20);
             }
             else
             {
                 return(settings.totalStageNum);
             }
         }
         else
         {
             return(3);
         }
     } catch (JsonReaderException e) {
         Debug.LogFormat("[Homestuck Flashes #{0}] JSON reading failed with error {1}; using default value of 3.", _moduleId, e.Message);
         return(3);
     }
 }
Пример #3
0
    private void Start()
    {
        _gameInfo = GetComponent <KMGameInfo>();
        _gameInfo.OnStateChange += OnStateChange;

        _modSettings = GetComponent <KMModSettings>();

        ModSettingsJSON settings = JsonConvert.DeserializeObject <ModSettingsJSON>(_modSettings.Settings);

        if (settings == null)
        {
            DebugHelper.LogError("Failed to read connection settings from mod settings.");
            return;
        }

        DebugMode = (settings.debug == true);

        _ircConnection = new IRCConnection(settings.authToken, settings.userName, settings.channelName, settings.serverName, settings.serverPort);
        _ircConnection.Connect();

        _coroutineCanceller = new CoroutineCanceller();

        _coroutineQueue = GetComponent <CoroutineQueue>();
        _coroutineQueue.coroutineCanceller = _coroutineCanceller;

        logUploader = GetComponent <LogUploader>();
        logUploader.ircConnection = _ircConnection;

        urlHelper = GetComponent <UrlHelper>();
        urlHelper.ChangeMode(settings.shortUrls == true);

        _leaderboard = new Leaderboard();
        _leaderboard.LoadDataFromFile();

        ModuleData.LoadDataFromFile();
        ModuleData.WriteDataToFile();

        TwitchPlaySettings.LoadDataFromFile();

        UserAccess.AddUser(settings.userName, AccessLevel.Streamer | AccessLevel.SuperUser | AccessLevel.Admin | AccessLevel.Mod);
        UserAccess.AddUser(settings.channelName.Replace("#", ""), AccessLevel.Streamer | AccessLevel.SuperUser | AccessLevel.Admin | AccessLevel.Mod);
        UserAccess.WriteAccessList();

        SetupResponder(bombMessageResponder);
        SetupResponder(postGameMessageResponder);
        SetupResponder(missionMessageResponder);
        SetupResponder(miscellaneousMessageResponder);

        bombMessageResponder.leaderboard          = _leaderboard;
        postGameMessageResponder.leaderboard      = _leaderboard;
        miscellaneousMessageResponder.leaderboard = _leaderboard;

        bombMessageResponder.parentService = this;
    }
Пример #4
0
    private void Start()
    {
        Activated = 0;
        moduleId  = ++ModuleIdCounter;
        ModSettingsJSON.Get(this, out dimension, out rotation, out colorAssist, out isUsingBounce, out stretchToFit);

        ModuleSelectable.OnInteract          += Interact.Init(this, true, dimension - Info.GetSolvableModuleNames().Where(i => i == "The Octadecayotton").Count());
        SubModuleSelectable.OnInteract       += Interact.OnInteract(this, false, dimension - Info.GetSolvableModuleNames().Where(i => i == "The Octadecayotton").Count());
        SubModuleSelectable.OnHighlight      += () => SelectableRenderer.enabled = true;
        SubModuleSelectable.OnHighlightEnded += () => SelectableRenderer.enabled = false;
    }
Пример #5
0
    /// <summary>
    /// The startup method for Init, which gets the module prepared to be interacted with.
    /// </summary>
    internal void Activate()
    {
        // Sets module ID.
        moduleId = ++moduleIdCounter;

        // Sets accessibility.
        ModSettingsJSON.Get(pho, out render.cruelMode, out vrMode, out streamDelay);
        UpdateCruel();

        // This allows TP to read this class.
        pho.TP.Activate(this);

        // Plays voice lines only if it is the last one initiated. Not checking this causes multiple sounds to stack up.
        pho.Info.OnBombSolved += () => { if (moduleId == moduleIdCounter)
                                         {
                                             pho.PlaySound("voice_bombdisarmed");
                                         }
        };
        pho.Info.OnBombExploded += () => { if (moduleId == moduleIdCounter)
                                           {
                                               pho.PlaySound("voice_gameover");
                                           }
        };

        pho.Number.OnInteract += select.NumberPress();
        pho.Color.OnInteract  += select.ColorPress();
        pho.Buttons.OnInteractArray(select.ButtonPress);

        // Initalize markers, and use OnDefocus.
        if (!vrMode)
        {
            pho.Color.OnDefocus += select.ColorRelease();
            pho.Markers.OnInteractArray(select.MarkerPress);
        }

        // Otherwise, remove markers and use OnInteractEnded.
        else
        {
            pho.Color.OnInteractEnded += select.ColorRelease();

            foreach (var highlight in pho.MarkerHighlightables)
            {
                highlight.transform.localPosition = new Vector3(highlight.transform.localPosition.x, -0.5f, highlight.transform.localPosition.z);
            }
        }
    }