示例#1
0
    /// <summary>
    /// Returns random non-unique activities.
    /// </summary>
    /// <param name="numOfActivitiesArg"></param>
    /// <returns></returns>
    private List <HavenActivityData> GetRandomNonUniqueActivities(int numOfActivitiesArg)
    {
        // load all non-unique activity templates
        HavenActivityDataTemplate[] loadedActivityTemplates = AssetRefMethods.
                                                              LoadAllBundleAssetHavenActivityTemplates();

        // if NOT enough loaded activites to return
        if (numOfActivitiesArg > loadedActivityTemplates.Length)
        {
            // print warning to console
            Debug.LogWarning("Not enough loaded activites to return! " +
                             $"Only found {loadedActivityTemplates.Length} potential activites.");

            // return some default value
            return(null);
        }

        // get shuffled template list
        List <HavenActivityDataTemplate> shuffledTemplateList = GeneralMethods.
                                                                Shuffle <HavenActivityDataTemplate>(loadedActivityTemplates.ToList());

        // initialize return list as empty list
        List <HavenActivityData> returnList = new List <HavenActivityData>();

        // loop for as many activites as should return
        for (int i = 0; i < numOfActivitiesArg; i++)
        {
            // add iterating activity to return list
            returnList.Add(new HavenActivityData(shuffledTemplateList[i]));
        }

        // return populated list
        return(returnList);
    }