Exemple #1
0
        //+ PREFAB CONTROL
        /// <summary>
        /// Gets all the prefabs from the given IDs
        /// </summary>
        /// <param name="dir">The lookup director</param>
        /// <param name="ids">The IDs</param>
        public static GameObject[] GetPrefabs(this LookupDirector dir, Identifiable.Id[] ids)
        {
            List <GameObject> objs = new List <GameObject>();

            foreach (Identifiable.Id id in ids)
            {
                objs.Add(dir.GetPrefab(id));
            }

            return(objs.ToArray());
        }
Exemple #2
0
        private void CommandLoadPrefabs() //load the prefab maps we need for randomization
        {
            lookupDirector = SRSingleton <GameContext> .Instance.LookupDirector;

            var slimes = Identifiable.SLIME_CLASS;

            slimePrefabToId = new Dictionary <String, Identifiable.Id>();
            foreach (Identifiable.Id id in slimes)
            {
                slimePrefabToId.Add(lookupDirector.GetPrefab(id).ToString(), id);
            }

            var produce = Identifiable.FRUIT_CLASS.ToList();

            produce.AddRange(Identifiable.VEGGIE_CLASS);
            producePrefabToId = new Dictionary <string, Identifiable.Id>();
            foreach (Identifiable.Id id in produce)
            {
                producePrefabToId.Add(lookupDirector.GetPrefab(id).ToString(), id);
            }
        }
Exemple #3
0
        public static GameObject GetRandomizedSlime(GameObject prefab)                      //currently no largo support, in future this will be added here
        {
            if (slimePrefabToId != null && !slimePrefabToId.ContainsKey(prefab.ToString())) //this slime is a largo. for now just return it
            {
                return(prefab);
            }

            Identifiable.Id id = slimePrefabToId[prefab.ToString()];

            if (!allowedSlimes.Contains(id)) //this means the slime was excluded via an option, return back the original (don't do anything)
            {
                return(prefab);
            }

            switch (slime_randomMode)
            {
            case RandomMode.DISABLED:     //randomization deactivated
                return(prefab);

            case RandomMode.CHAOTIC:     //no mapping
                return(lookupDirector.GetPrefab(allowedSlimes.ElementAt(runTimeRand.Next(allowedSlimes.Count))));

            case RandomMode.MAPPED_NODUPES:     //mapping
                return(lookupDirector.GetPrefab(slimeMap[slimePrefabToId[prefab.ToString()]]));

            case RandomMode.MAPPED_DUPES:     //also mapping
                return(lookupDirector.GetPrefab(slimeMap[slimePrefabToId[prefab.ToString()]]));

            default:     //do nothing
                Log("Warning: Invalid randomization mode: " + slime_randomMode);
                return(prefab);
            }
        }
    public static GameObject GetLargoPrefab(this LookupDirector director, Identifiable.Id slimeA, Identifiable.Id slimeB)
    {
        Identifiable.Id largo = Identifiable.Id.NONE;

        string nameA = slimeA.ToString().Replace("_SLIME", "");
        string nameB = slimeB.ToString().Replace("_SLIME", "");

        string largoA = $"{nameA}_{nameB}_LARGO";
        string largoB = $"{nameB}_{nameA}_LARGO";

        object result = Enum.Parse(typeof(Identifiable.Id), largoA) ?? Enum.Parse(typeof(Identifiable.Id), largoB);

        if (result != null)
        {
            largo = (Identifiable.Id)result;
        }

        return(largo == Identifiable.Id.NONE ? null : director.GetPrefab(largo));
    }
 // Get Component Methods
 public static Identifiable GetIdentifiable(this LookupDirector director, Identifiable.Id ID)
 {
     return(director.GetPrefab(ID).GetComponent <Identifiable>());
 }
    // Initializes the Extension
    internal static void InitExtension(this LookupDirector director)
    {
        // Required prefabs
        GameObject gingerSpawnResource = director.GetPrefab(Identifiable.Id.GINGER_VEGGIE).CreatePrefabCopy();

        gingerSpawnResource.GetComponent <ResourceCycle>().unripeGameHours = 12;

        GameObject kookadobaSpawnResource = director.GetPrefab(Identifiable.Id.KOOKADOBA_FRUIT).CreatePrefabCopy();

        kookadobaSpawnResource.GetComponent <ResourceCycle>().unripeGameHours = 6;

        // Load garden resources
        gardenResources.Add(Identifiable.Id.BEET_VEGGIE, director.GetPrefab(Identifiable.Id.BEET_VEGGIE));
        gardenResources.Add(Identifiable.Id.CARROT_VEGGIE, director.GetPrefab(Identifiable.Id.CARROT_VEGGIE));
        gardenResources.Add(Identifiable.Id.GINGER_VEGGIE, gingerSpawnResource);
        gardenResources.Add(Identifiable.Id.OCAOCA_VEGGIE, director.GetPrefab(Identifiable.Id.OCAOCA_VEGGIE));
        gardenResources.Add(Identifiable.Id.ONION_VEGGIE, director.GetPrefab(Identifiable.Id.BEET_VEGGIE));
        gardenResources.Add(Identifiable.Id.PARSNIP_VEGGIE, director.GetPrefab(Identifiable.Id.PARSNIP_VEGGIE));
        gardenResources.Add(Identifiable.Id.CUBERRY_FRUIT, director.GetPrefab(Identifiable.Id.CUBERRY_FRUIT));
        gardenResources.Add(Identifiable.Id.KOOKADOBA_FRUIT, kookadobaSpawnResource);
        gardenResources.Add(Identifiable.Id.LEMON_FRUIT, director.GetPrefab(Identifiable.Id.LEMON_FRUIT));
        gardenResources.Add(Identifiable.Id.MANGO_FRUIT, director.GetPrefab(Identifiable.Id.MANGO_FRUIT));
        gardenResources.Add(Identifiable.Id.PEAR_FRUIT, director.GetPrefab(Identifiable.Id.PEAR_FRUIT));
        gardenResources.Add(Identifiable.Id.POGO_FRUIT, director.GetPrefab(Identifiable.Id.POGO_FRUIT));
    }