public InstructionSet(KMBombInfo bomb, QuirkInfo qi) { if (rnd.Range(0, 2) == 0) { int prob = rnd.Range(0, 10); if (prob < 6) { letter = new LetterAlt(bomb, qi); runtimeLetter = true; text = letter.GetText() + " Then, press NEXT."; } else if (prob < 9) { trueRules.Add((char)(rnd.Range(0, 26) + 65)); trueRules.Add((char)(rnd.Range(0, 26) + 65)); text = "Apply rules " + trueRules.ElementAt(0) + " and " + trueRules.ElementAt(1) + ", in that order. Then, press NEXT."; } else { trueRules.Add((char)(rnd.Range(0, 26) + 65)); trueRules.Add((char)(rnd.Range(0, 26) + 65)); trueRules.Add((char)(rnd.Range(0, 26) + 65)); text = "Apply rules " + trueRules.ElementAt(0) + ", " + trueRules.ElementAt(1) + " and " + trueRules.ElementAt(2) + ", in that order. Then, press NEXT."; } } else { cond = new Condition(bomb, qi); if (rnd.Range(0, 2) == 0) { if (rnd.Range(0, 4) == 0) { trueRules.Add((char)(rnd.Range(0, 26) + 65)); trueRules.Add((char)(rnd.Range(0, 26) + 65)); text = cond.GetText() + "apply rules " + trueRules.ElementAt(0) + " and " + trueRules.ElementAt(1) + ", in that order. Then, press NEXT."; } else { trueRules.Add((char)(rnd.Range(0, 26) + 65)); text = cond.GetText() + "apply rule " + trueRules.ElementAt(0) + ". Then, press NEXT."; } } else { int prob = rnd.Range(0, 4); if (prob == 0) { trueRules.Add((char)(rnd.Range(0, 26) + 65)); falseRules.Add((char)(rnd.Range(0, 26) + 65)); text = cond.GetText() + "apply rule " + trueRules.ElementAt(0) + ". Otherwise, apply rule " + falseRules.ElementAt(0) + ". Then, press NEXT."; } else if (prob == 1) { trueRules.Add((char)(rnd.Range(0, 26) + 65)); trueRules.Add((char)(rnd.Range(0, 26) + 65)); falseRules.Add((char)(rnd.Range(0, 26) + 65)); text = cond.GetText() + "apply rules " + trueRules.ElementAt(0) + " and " + trueRules.ElementAt(1) + ", in that order. Otherwise, apply rule " + falseRules.ElementAt(0) + ". Then, press NEXT."; } else if (prob == 2) { trueRules.Add((char)(rnd.Range(0, 26) + 65)); falseRules.Add((char)(rnd.Range(0, 26) + 65)); falseRules.Add((char)(rnd.Range(0, 26) + 65)); text = cond.GetText() + "apply rule " + trueRules.ElementAt(0) + ". Otherwise, apply rules " + falseRules.ElementAt(0) + " and " + falseRules.ElementAt(1) + ", in that order. Then, press NEXT."; } else { trueRules.Add((char)(rnd.Range(0, 26) + 65)); trueRules.Add((char)(rnd.Range(0, 26) + 65)); falseRules.Add((char)(rnd.Range(0, 26) + 65)); falseRules.Add((char)(rnd.Range(0, 26) + 65)); text = cond.GetText() + "apply rules " + trueRules.ElementAt(0) + " and " + trueRules.ElementAt(1) + ", in that order. Otherwise, apply rules " + falseRules.ElementAt(0) + " and " + falseRules.ElementAt(1) + ", in that order. Then, press NEXT."; } } } }
public InstructionSet(KMBombInfo bomb, QuirkInfo qi) { if (rnd.Range(0, 2) == 0) { int prob = rnd.Range(0, 15); if (prob < 6 && bomb.GetSerialNumberLetters().Any()) // Check if the prob is under the value AND there are letters in the serial no. { letter = new LetterAlt(bomb, qi); runtimeLetter = true; text = letter.GetText() + " Then, press NEXT."; } else if (prob < 9) { trueRules.Add((char)(rnd.Range(0, 26) + 65)); text = "Apply rule " + trueRules.ElementAt(0) + ". Then, press NEXT."; } else if (prob < 12) { trueRules.Add((char)(rnd.Range(0, 26) + 65)); trueRules.Add((char)(rnd.Range(0, 26) + 65)); text = "Apply rules " + trueRules.ElementAt(0) + " and " + trueRules.ElementAt(1) + ", in that order. Then, press NEXT."; } else { trueRules.Add((char)(rnd.Range(0, 26) + 65)); trueRules.Add((char)(rnd.Range(0, 26) + 65)); trueRules.Add((char)(rnd.Range(0, 26) + 65)); text = "Apply rules " + trueRules.ElementAt(0) + ", " + trueRules.ElementAt(1) + " and " + trueRules.ElementAt(2) + ", in that order. Then, press NEXT."; } } else { cond = new Condition(bomb, qi); if (rnd.Range(0, 2) == 0) { if (rnd.Range(0, 4) == 0) { trueRules.Add((char)(rnd.Range(0, 26) + 65)); trueRules.Add((char)(rnd.Range(0, 26) + 65)); text = cond.GetText() + "apply rules " + trueRules.ElementAt(0) + " and " + trueRules.ElementAt(1) + ", in that order. Then, press NEXT."; } else { trueRules.Add((char)(rnd.Range(0, 26) + 65)); text = cond.GetText() + "apply rule " + trueRules.ElementAt(0) + ". Then, press NEXT."; } } else { int prob = rnd.Range(0, 4); switch (prob) { case 0: { // if prob == 0 trueRules.Add((char)(rnd.Range(0, 26) + 65)); falseRules.Add((char)(rnd.Range(0, 26) + 65)); text = cond.GetText() + "apply rule " + trueRules.ElementAt(0) + ". Otherwise, apply rule " + falseRules.ElementAt(0) + ". Then, press NEXT."; break; } case 1: { // if prob == 1 trueRules.Add((char)(rnd.Range(0, 26) + 65)); trueRules.Add((char)(rnd.Range(0, 26) + 65)); falseRules.Add((char)(rnd.Range(0, 26) + 65)); text = cond.GetText() + "apply rules " + trueRules.ElementAt(0) + " and " + trueRules.ElementAt(1) + ", in that order. Otherwise, apply rule " + falseRules.ElementAt(0) + ". Then, press NEXT."; break; } case 2: { // if prob == 2 trueRules.Add((char)(rnd.Range(0, 26) + 65)); falseRules.Add((char)(rnd.Range(0, 26) + 65)); falseRules.Add((char)(rnd.Range(0, 26) + 65)); text = cond.GetText() + "apply rule " + trueRules.ElementAt(0) + ". Otherwise, apply rules " + falseRules.ElementAt(0) + " and " + falseRules.ElementAt(1) + ", in that order. Then, press NEXT."; break; } default: { trueRules.Add((char)(rnd.Range(0, 26) + 65)); trueRules.Add((char)(rnd.Range(0, 26) + 65)); falseRules.Add((char)(rnd.Range(0, 26) + 65)); falseRules.Add((char)(rnd.Range(0, 26) + 65)); text = cond.GetText() + "apply rules " + trueRules.ElementAt(0) + " and " + trueRules.ElementAt(1) + ", in that order. Otherwise, apply rules " + falseRules.ElementAt(0) + " and " + falseRules.ElementAt(1) + ", in that order. Then, press NEXT."; break; } } } } }