private float GetScoreMod() { float scoreMod = 1f; int wDelayIdx = Choices.Find(c => c.Name == "waveDelay").SelectedValueIdx; switch (wDelayIdx) { case 0: scoreMod += 0.4f; break; case 1: scoreMod += 0.2f; break; case 2: // Do nothing break; case 3: scoreMod -= 0.2f; break; case 4: scoreMod -= 0.4f; break; default: throw new CaseStatementMissingException(); } ePlaneType planeType = (ePlaneType)GetChoiceByName("playerShip").SelectedValueIdx; switch (planeType) { case ePlaneType.Normal: // Do nothing scoreMod += 0.05f; break; case ePlaneType.Dmg: scoreMod -= 0.1f; break; case ePlaneType.Regen: scoreMod -= 0.1f; break; case ePlaneType.Speed: scoreMod -= 0.05f; break; case ePlaneType.Tough: scoreMod -= 0.1f; break; default: throw new CaseStatementMissingException(); } eDropRateMod dropRateMod = (eDropRateMod)Enum.Parse(typeof(eDropRateMod), GetChoiceValue("dropRate")); switch (dropRateMod) { case eDropRateMod.None: scoreMod += 0.4f; break; case eDropRateMod.Low: scoreMod += 0.2f; break; case eDropRateMod.Normal: // Do nothing break; case eDropRateMod.High: scoreMod -= 0.2f; break; default: throw new CaseStatementMissingException(); } if (scoreMod < 0.1f) { scoreMod = 0.1f; } return(scoreMod); }
void GameOptions_SelectChoice(ScrollChoice choice) { switch (choice.Name) { case "play": // Music string levelMusic; if (GetChoiceValue("music") == "Random") { levelMusic = "level0" + Maths.RandomNr(1, 3).ToString(); } else { switch (GetChoiceValue("music")) { case "Techno1": levelMusic = "level01"; break; case "Airship": levelMusic = "level02"; break; case "Poss": levelMusic = "level03"; break; default: throw new CaseStatementMissingException(); } } eDropRateMod dropRateMod = (eDropRateMod)Enum.Parse(typeof(eDropRateMod), GetChoiceValue("dropRate")); // Create level new Level(int.Parse(GetChoiceValue("startWave")), (int)dropRateMod, int.Parse(GetChoiceValue("waveDelay")) * 1000, GetChoiceByName("area").SelectedValueIdx + 1, ScoreModifier, levelMusic, (ePlaneType)GetChoiceByName("playerShip").SelectedValueIdx, GetChoiceByName("playerShip").SelectedValue); // set state Engine.Instance.ActiveState = Level.Instance; break; case "playerShip": // Do nothing break; case "startWave": // Do nothing break; case "area": // Do nothing break; case "waveDelay": // Do nothing break; case "music": // Do nothing break; case "back": Engine.Instance.ActiveState = new MainMenu(false); break; default: throw new CaseStatementMissingException(); } }