public C_HL_ROOMTYPE UpdateFeatures(int combinedContentID, C_HL_ROOMTYPE previousRoomType) { // Structure numTotalNodes++; // Content int numFeatures = System.Enum.GetValues(typeof(C_FEATURES)).Length; int numSettings = System.Enum.GetValues(typeof(C_SETTINGS)).Length; //(THIS IS CONVERTED FROM PCGGenericRoomManager AS C# CANT CALL Javascript STUFF BECAUSE Javascript is already calling C# C_SETTINGS[] featureSettings = new C_SETTINGS[numFeatures]; for (int i = 0; i < numFeatures; i++) { float denominator = Mathf.Pow(numSettings, (numFeatures - (i + 1))); int settingVal = Mathf.FloorToInt(combinedContentID / denominator); featureSettings[i] = (C_SETTINGS)settingVal; if (settingVal != 0) { combinedContentID = (int)(combinedContentID % denominator); } } spiderEnumSum = spiderEnumSum + (int)(featureSettings[(int)C_FEATURES.Spider]); buzzEnumSum = buzzEnumSum + (int)featureSettings[(int)C_FEATURES.Buzz]; mechEnumSum = mechEnumSum + (int)featureSettings[(int)C_FEATURES.Mech]; healthEnumSum = healthEnumSum + (int)featureSettings[(int)C_FEATURES.Health]; ammoEnumSum = ammoEnumSum + (int)featureSettings[(int)C_FEATURES.Ammo]; weaponEnumSum = weaponEnumSum + (int)featureSettings[(int)C_FEATURES.Weapon]; // Room Type float numE = (int)(featureSettings[(int)C_FEATURES.Spider]) + (int)(featureSettings[(int)C_FEATURES.Buzz]) + (int)(featureSettings[(int)C_FEATURES.Mech]); float numP = (int)(featureSettings[(int)C_FEATURES.Health]) + (int)(featureSettings[(int)C_FEATURES.Ammo]) + (int)(featureSettings[(int)C_FEATURES.Weapon]); float avgSetting = ((float)(C_SETTINGS.High) * 3) / 2.0f; C_HL_ROOMTYPE roomType = C_HL_ROOMTYPE.LowELowP; if ((numE < avgSetting) && (numP < avgSetting)) { roomType = C_HL_ROOMTYPE.LowELowP; LowELowPCount++; if (previousRoomType == C_HL_ROOMTYPE.LowELowP) { LowEToLowECount++; LowPToLowPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.LowEHighP) { LowEToLowECount++; HighPToLowPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.HighELowP) { HighEToLowECount++; LowPToLowPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.HighEHighP) { HighEToLowECount++; HighPToLowPCount++; } } else if ((numE < avgSetting) && (numP >= avgSetting)) { roomType = C_HL_ROOMTYPE.LowEHighP; LowEHighPCount++; if (previousRoomType == C_HL_ROOMTYPE.LowELowP) { LowEToLowECount++; LowPToHighPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.LowEHighP) { LowEToLowECount++; HighPToHighPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.HighELowP) { HighEToLowECount++; LowPToHighPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.HighEHighP) { HighEToLowECount++; HighPToHighPCount++; } } else if ((numE >= avgSetting) && (numP < avgSetting)) { roomType = C_HL_ROOMTYPE.HighELowP; HighELowPCount++; if (previousRoomType == C_HL_ROOMTYPE.LowELowP) { LowEToHighECount++; LowPToLowPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.LowEHighP) { LowEToHighECount++; HighPToLowPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.HighELowP) { HighEToHighECount++; LowPToLowPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.HighEHighP) { HighEToHighECount++; HighPToLowPCount++; } } else if ((numE >= avgSetting) && (numP >= avgSetting)) { roomType = C_HL_ROOMTYPE.HighEHighP; HighEHighPCount++; if (previousRoomType == C_HL_ROOMTYPE.LowELowP) { LowEToHighECount++; LowPToHighPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.LowEHighP) { LowEToHighECount++; HighPToHighPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.HighELowP) { HighEToHighECount++; LowPToHighPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.HighEHighP) { HighEToHighECount++; HighPToHighPCount++; } } return(roomType); }
public C_HL_ROOMTYPE UpdateFeatures(int combinedContentID, C_HL_ROOMTYPE previousRoomType) { // Structure numTotalNodes++; // Content int numFeatures = System.Enum.GetValues(typeof(C_FEATURES)).Length; int numSettings = System.Enum.GetValues(typeof(C_SETTINGS)).Length; //(THIS IS CONVERTED FROM PCGGenericRoomManager AS C# CANT CALL Javascript STUFF BECAUSE Javascript is already calling C# C_SETTINGS[] featureSettings = new C_SETTINGS[numFeatures]; for (int i = 0; i < numFeatures; i++) { float denominator = Mathf.Pow(numSettings,(numFeatures-(i+1))); int settingVal = Mathf.FloorToInt(combinedContentID/denominator); featureSettings[i] = (C_SETTINGS)settingVal; if (settingVal != 0) combinedContentID = (int)(combinedContentID % denominator); } spiderEnumSum = spiderEnumSum + (int)(featureSettings[(int)C_FEATURES.Spider]); buzzEnumSum = buzzEnumSum + (int)featureSettings[(int)C_FEATURES.Buzz]; mechEnumSum = mechEnumSum + (int)featureSettings[(int)C_FEATURES.Mech]; healthEnumSum = healthEnumSum + (int)featureSettings[(int)C_FEATURES.Health]; ammoEnumSum = ammoEnumSum + (int)featureSettings[(int)C_FEATURES.Ammo]; weaponEnumSum = weaponEnumSum + (int)featureSettings[(int)C_FEATURES.Weapon]; // Room Type float numE = (int)(featureSettings[(int)C_FEATURES.Spider]) + (int)(featureSettings[(int)C_FEATURES.Buzz]) + (int)(featureSettings[(int)C_FEATURES.Mech]); float numP = (int)(featureSettings[(int)C_FEATURES.Health]) + (int)(featureSettings[(int)C_FEATURES.Ammo]) + (int)(featureSettings[(int)C_FEATURES.Weapon]); float avgSetting = ((float)(C_SETTINGS.High)*3) / 2.0f; C_HL_ROOMTYPE roomType = C_HL_ROOMTYPE.LowELowP; if ((numE < avgSetting) && (numP < avgSetting)) { roomType = C_HL_ROOMTYPE.LowELowP; LowELowPCount++; if (previousRoomType == C_HL_ROOMTYPE.LowELowP) { LowEToLowECount++; LowPToLowPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.LowEHighP) { LowEToLowECount++; HighPToLowPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.HighELowP) { HighEToLowECount++; LowPToLowPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.HighEHighP) { HighEToLowECount++; HighPToLowPCount++; } } else if ((numE < avgSetting) && (numP >= avgSetting)) { roomType = C_HL_ROOMTYPE.LowEHighP; LowEHighPCount++; if (previousRoomType == C_HL_ROOMTYPE.LowELowP) { LowEToLowECount++; LowPToHighPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.LowEHighP) { LowEToLowECount++; HighPToHighPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.HighELowP) { HighEToLowECount++; LowPToHighPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.HighEHighP) { HighEToLowECount++; HighPToHighPCount++; } } else if ((numE >= avgSetting) && (numP < avgSetting)) { roomType = C_HL_ROOMTYPE.HighELowP; HighELowPCount++; if (previousRoomType == C_HL_ROOMTYPE.LowELowP) { LowEToHighECount++; LowPToLowPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.LowEHighP) { LowEToHighECount++; HighPToLowPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.HighELowP) { HighEToHighECount++; LowPToLowPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.HighEHighP) { HighEToHighECount++; HighPToLowPCount++; } } else if ((numE >= avgSetting) && (numP >= avgSetting)) { roomType = C_HL_ROOMTYPE.HighEHighP; HighEHighPCount++; if (previousRoomType == C_HL_ROOMTYPE.LowELowP) { LowEToHighECount++; LowPToHighPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.LowEHighP) { LowEToHighECount++; HighPToHighPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.HighELowP) { HighEToHighECount++; LowPToHighPCount++; } else if (previousRoomType == C_HL_ROOMTYPE.HighEHighP) { HighEToHighECount++; HighPToHighPCount++; } } return roomType; }