Ejemplo n.º 1
0
        public void DoWork()
        {
            TTRPG.Api.consoleOutput("Started DynamicWeather Thread");
            while (!_interuped)
            {
                var _loadedDie = new LoadedDie(new int[] {
                    155, //Extra Sunny
                    155, //Clear
                    155, //Clouds
                    45,  //Smog
                    45,  //Foggy
                    45,  //Overcast
                    45,  //Rain
                    45,  //Thunder
                    45,  //Light rain
                    45,  //Smoggy light rain
                    45,  //Very light Snow
                    45,  //Windy light Snow
                    45,  //Light snow
                    45   //Unknown (No Effect)
                });

                int    _weatherID = _loadedDie.NextValue();
                string weather    = "";
                switch (_weatherID)
                {
                case 0: weather = "Extra Sunny"; break;

                case 1: weather = "Clear"; break;

                case 2: weather = "Clouds"; break;

                case 3: weather = "Smog"; break;

                case 4: weather = "Foggy"; break;

                case 5: weather = "Overcast"; break;

                case 6: weather = "Rain"; break;

                case 7: weather = "Thunder"; break;

                case 8: weather = "Light rain"; break;

                case 9: weather = "Smoggy light rain"; break;

                case 10: weather = "Very light Snow"; break;

                case 11: weather = "Windy light Snow"; break;

                case 12: weather = "Light snow"; break;

                case 13: weather = "Unknown (No Effect)"; break;
                }

                TTRPG.Api.consoleOutput("[DynamicWeather] The Weather has changed to " + weather);
                TTRPG.Api.setWeather(_weatherID);

                Thread.Sleep(1200000);
            }
        }
Ejemplo n.º 2
0
    private void CreateItem(Vector3 newPos)
    {
        noItemRowPrefabs = scriptContainer.GetComponent <VariableScript>().getNoItemRowPrefabs();
        itemRowPrefabs   = scriptContainer.GetComponent <VariableScript>().getItemRowPrefabs();
        nowNoItemRows    = scriptContainer.GetComponent <VariableScript>().getNowNoItemRows();

        //Liste nach ItemRows, die an der Spielweite (Position des Game-Balls) generiert werden können, filtern.
        generateableItemRows = itemRowPrefabs.FindAll(delegate(GameObject b)
        {
            return(b.GetComponent <ItemPreFabPositions>().getGenerierungAbWeite() < this.gameObject.transform.position.z);
        });

        //Zu jedem generierbaren Item-Prefab die Wahrscheinlichkeit in ein Array von INT zusammenfügen.
        int[] generateableItemRowsProbability = generateableItemRows.ConvertAll(delegate(GameObject b)
        {
            return(b.GetComponent <ItemPreFabPositions>().wahrscheinlichkeit);
        }).ToArray();

        //Loaded Die (Zufallsgenerator mit Wahrscheinlichkeit zu jedem Item) mit der Wahrscheinlichkeitsliste instanzieren.
        LoadedDie randomGenerateableItemRowsDie = new LoadedDie(generateableItemRowsProbability);

        //SaveRow generiert
        if (generatedSave != -1)
        {
            if (nowNoItemRows == 0)
            {
                //Generate Row with Item
                int itemRow = randomGenerateableItemRowsDie.NextValue();
                Instantiate(generateableItemRows[itemRow], newPos, this.gameObject.transform.rotation);
                scriptContainer.GetComponent <VariableScript>().resetNowNoItemRows();
            }
            else
            {
                //Generate Row without Item
                int noItemRow = Random.Range(0, noItemRowPrefabs.Count);
                Instantiate(noItemRowPrefabs[noItemRow], newPos, this.gameObject.transform.rotation);
                scriptContainer.GetComponent <VariableScript>().reduceNowNoItemRows();
            }
        }
        //UnsaveRow generiert
        else if (generatedUnsave != -1)
        {
            if (nowNoItemRows == 0)
            {
                //Generate Row with Item
                int itemRow = randomGenerateableItemRowsDie.NextValue();
                while (true)
                {
                    if (checkItemPosition(itemRow, generatedUnsave, generateableItemRows))
                    {
                        break;
                    }
                    itemRow = randomGenerateableItemRowsDie.NextValue();
                }
                Instantiate(generateableItemRows[itemRow], newPos, this.gameObject.transform.rotation);
                scriptContainer.GetComponent <VariableScript>().resetNowNoItemRows();
            }
            else
            {
                //Generate Row without Item
                int noItemRow = Random.Range(0, noItemRowPrefabs.Count);
                Instantiate(noItemRowPrefabs[noItemRow], newPos, this.gameObject.transform.rotation);
                scriptContainer.GetComponent <VariableScript>().reduceNowNoItemRows();
            }
        }
        else
        {
            Debug.Log("Kein Item generierbar");
            Debug.Log("Save: " + generatedSave + "; Unsave: " + generatedUnsave);
        }
    }