Beispiel #1
0
        private int _CheckMultipleTableToOddsRule()
        {
            var randNumber = _Visitor.FindIRandom(RandomData.RULE.ODDS, 4).NextInt(0, 1000);

            var oddsValue = new OddsTable().CheckRule(randNumber);

            return(_CheckFishToOddsRule(_FishData, oddsValue)
                                           ? oddsValue
                                           : 1);
        }
Beispiel #2
0
    // Start is called before the first frame update
    void Start()
    {
        m_oddsTable = new OddsTable();
        m_oddsTable.Add("m_ward1", 1, m_ward1);
        m_oddsTable.Add("m_ward2", 1, m_ward2);
        m_oddsTable.Add("m_ward3", 1, m_ward3);
        m_oddsTable.Add("m_ward4", 1, m_ward4);
        m_oddsTable.Add("m_ward5", 1, m_ward5);
        m_oddsTable.Add("m_ward6", 1, m_ward6);


        // Pick a ward at random
        GameObject prefab = (GameObject)m_oddsTable.GetPayload(m_oddsTable.Roll());

        if (prefab != null)
        {
            DeletePlaceHolder();
            GameObject spawnNode = Instantiate(prefab, new Vector3(0, 0, 0), Quaternion.identity);
            spawnNode.transform.SetParent(this.gameObject.transform, false);
        }
    }
Beispiel #3
0
    void StartMap()
    {
        Debug.Log("START MAP");
        if (m_useRandomMap)
        {
            m_mapSeed = Random.Range(0, System.Int32.MaxValue);
        }


        // Randomize 90 deg increments
        m_orientationOddsTable = new OddsTable();
        m_orientationOddsTable.Add("0", 5, 0);
        m_orientationOddsTable.Add("90", 5, 90);
        m_orientationOddsTable.Add("180", 5, 180);
        m_orientationOddsTable.Add("270", 5, 270);

        // Define the odds for the tile damage on the very bottom of the path damage
        m_tileOddsTable = new OddsTable();
        m_tileOddsTable.Add("Full", 5, m_pathTile1);
        m_tileOddsTable.Add("Damaged 75%", 5, m_pathTile2);
        m_tileOddsTable.Add("Damaged 50%", 2, m_pathTile3);
        m_tileOddsTable.Add("Damaged 25%", 2, m_pathTile4);

        // Define the odds of the shrubbary
        m_treeOddsTable = new OddsTable();
        m_treeOddsTable.Add("CherryTree", 3, m_treeCherry);
        m_treeOddsTable.Add("Trees1", 4, m_trees1);
        m_treeOddsTable.Add("Trees2", 4, m_trees2);
        m_treeOddsTable.Add("Trees3", 4, m_trees3);
        m_treeOddsTable.Add("Trees4", 0.2F, m_trees4);
        m_treeOddsTable.Add("Trees5", 3, m_trees4);

        m_bushOddsTable = new OddsTable();
        m_bushOddsTable.Add("Bush1", 4, m_bush1);
        m_bushOddsTable.Add("Bush2", 4, m_bush2);
        m_bushOddsTable.Add("Bush3", 4, m_bush3);
        m_bushOddsTable.Add("Bush4", 4, m_bush4);
        m_bushOddsTable.Add("Bush5", 4, m_bush5);
        m_bushOddsTable.Add("Crystals1", 1F, m_crystals1);



        // Since perlin noise has an effect have a high chance of having fire and tent together
        m_objectOddsTable = new OddsTable();
        int   n           = 0;
        int   times       = 30;
        float campFireSum = 1.5f;
        float tentSum     = 2.0f;
        float nothingSum  = 2.0f;
        float campfire    = campFireSum / times;
        float tent        = tentSum / times;
        float nothing     = nothingSum / times;

        m_objectOddsTable.Add("Nothing" + (++n), 0.5F, null);
        for (int i = 0; i < times; ++i)
        {
            m_objectOddsTable.Add("Nothing" + (++n), nothing, null);
            m_objectOddsTable.Add("CampFire" + (++n), campfire, m_campFire1);
            m_objectOddsTable.Add("Tent" + (++n), tent, m_tent1);
        }
        m_objectOddsTable.Add("Nothing" + (++n), 0.5F, null);



        m_shrubOddsTable = new OddsTable();
        //m_shrubOddsTable.Add("BlankGrass1", 3, m_blankGrass1); // subtle difference in texture
        m_shrubOddsTable.Add("Grass1", 3, m_grass1);
        m_shrubOddsTable.Add("Grass2", 2, m_grass2);
        m_shrubOddsTable.Add("Grass3", 3, m_grass3);



        m_environmentOddsTable = new OddsTable();
        m_environmentOddsTable.Add("Nothing", 5, null);
        m_environmentOddsTable.Add("Shrubs", 20, m_shrubOddsTable);
        m_environmentOddsTable.Add("Camp", 20, m_objectOddsTable);
        m_environmentOddsTable.Add("Bush", 30, m_bushOddsTable);
        m_environmentOddsTable.Add("Trees", 80, m_treeOddsTable);

        if (m_useRandomMap)
        {
            // Apply a random map template
            m_currentMapTemplate = GenerateMapTemplateFromSeed(m_mapSeed);
            m_mapSeed            = m_currentMapTemplate.GetMapSeed();
        }
        else
        {
            m_currentMapTemplate = GenerateMapTemplateFromSeed(m_mapSeed);

            // Load map template from file
            //m_currentMapTemplate = LoadMapTemplateFromFile("defaultMap.json");
        }

        ApplyTemplateToMap(m_currentMapTemplate);

        if (m_waypoints != null)
        {
            m_waypoints.CreateWaypoints();
        }
    }