/// <summary> /// Generates Sub Location with default constants /// </summary> public void GenerateSubLocations() { sublocations = new Dictionary <int, Sublocation>(); var keys = SubLocationFactory.GetRegisteredTypes().ToList(); for (int i = 1; i < STD_SIZE + 1; i++) { sublocations.Add(i, GenerateRandomSublocation(i, keys)); } currentSubLocation = null; }
/// <summary> /// Size constructor defaults to constant values for everything except size /// Invalid Size (size<=0) is set to STD_SIZE /// </summary> /// <param name="size">Size of the location (Number of sublocations)</param> public void GenerateSubLocations(int size) { if (size <= 0) { size = STD_SIZE; } visited = false; sublocations = new Dictionary <int, Sublocation>(); var keys = SubLocationFactory.GetRegisteredTypes().ToList(); for (int i = 1; i < size + 1; i++) { sublocations.Add(i, GenerateRandomSublocation(i, keys)); } currentSubLocation = null; }
/// <summary> /// Generates sub locations based on attibutes given /// Invalid params are set to standard values /// </summary> /// <param name="sizeMin">Minimum size</param> /// <param name="sizeMax">Maximum size</param> /// <param name="maxItems">Max items to be found at each sublocation</param> /// <param name="maxAmount">Max amount of each item to be found at each sublocation</param> public void GenerateSubLocations(int sizeMin, int sizeMax, int maxItems, int maxAmount) { if (sizeMin <= 0) { sizeMin = 1; } if (sizeMax <= 0) { sizeMax = STD_SIZE; } if (sizeMax < sizeMin) { sizeMax = sizeMin + 1; } if (maxItems <= 0) { maxItems = STD_MAX_ITEMS; } if (maxAmount <= 0) { maxAmount = STD_MAX_AMOUNT; } visited = false; sublocations = new Dictionary <int, Sublocation>(); var keys = SubLocationFactory.GetRegisteredTypes().ToList(); int size = rnd.Next(sizeMin, sizeMax + 1); for (int i = 1; i < size + 1; i++) { int sub_maxItems = rnd.Next(1, maxItems); int sub_maxAmount = rnd.Next(1, maxAmount); sublocations.Add(i, GenerateRandomSublocation(i, keys, sub_maxItems, sub_maxAmount)); } currentSubLocation = null; }
/// <summary> /// Generates sub locations based on attibutes given /// Invalid params are set to standard values /// </summary> /// <param name="size">Size of the location (Number of sublocations)</param> /// <param name="maxItems">Max items to be found at each sublocation</param> /// <param name="maxAmount">Max amount of each item to be found at each sublocation</param> public void GenerateSubLocations(int size, int maxItems, int maxAmount) { if (size <= 0) { size = STD_SIZE; } if (maxItems <= 0) { maxItems = STD_MAX_ITEMS; } if (maxAmount <= 0) { maxAmount = STD_MAX_AMOUNT; } visited = false; sublocations = new Dictionary <int, Sublocation>(); var keys = SubLocationFactory.GetRegisteredTypes().ToList(); for (int i = 1; i < size + 1; i++) { sublocations.Add(i, GenerateRandomSublocation(i, keys, maxItems, maxAmount)); } currentSubLocation = null; }