private static string RandomSign() { string strSignText = "*~*~*~*"; int intRand; do { intRand = RNG.Next(intAmountOfSignTypes); } while (intRand >= 5 && _booSignUsed[intRand]); _booSignUsed[intRand] = true; do { switch (intRand) { case 0: case 1: strSignText = String.Format("{0} {1} {2} for {3}~-{4} {5}.{6}.", RNG.RandomItem("I will", "I can", "Will", "Can", "Can you"), RNG.RandomItem("trade", "swap", "sell"), RNG.RandomItem("gold", "iron", "dirt", "tools", "glass", "flowers", "cake", "mushrooms"), RNG.RandomItem("obsidian", "wood", "sand", "bricks", "coal", "stone", "cookies", "diamonds"), RNG.RandomItem("See", "Talk to"), RNG.RandomLetter().ToString().ToUpper(), RNG.RandomLetter().ToString().ToUpper()); break; case 2: strSignText = String.Format("{0} of the holy {1} are meeting this {2}", RNG.RandomItem("Church", "Order"), RNG.RandomFileLine(Path.Combine("Resources", "ChurchNoun.txt")), RNG.RandomDay()); break; case 3: strSignText = String.Format("{0} {1} has lost her {2}. {3}", RNG.RandomItem("Mrs", "Miss"), RNG.RandomFileLine(Path.Combine("Resources", "Adjectives.txt")), RNG.RandomItem("cat", "dog", "glasses", "marbles", "knitting"), RNG.RandomItem("Reward offered", "Please help")); break; case 4: strSignText = String.Format("{0} for sale~-{1} {2}.{3}.", RNG.RandomItem("Armour", "Property", "House", "Weapons", "Gold", "Bodyguard", "Pet wolf", "Books", "Tools"), RNG.RandomItem("See", "Talk to"), RNG.RandomLetter().ToString().ToUpper(), RNG.RandomLetter().ToString().ToUpper()); break; case 5: strSignText = "Lost pet creeper. Last seen near the mini crater"; break; case 6: strSignText = "Israphel~~Wanted dead~or alive"; break; case 7: strSignText = "Lost Jaffa Cakes. Please return to Honeydew"; break; case 8: strSignText = "Read note " + RNG.Next(500, 999); break; case 9: strSignText = "Buy one get one free on gravestones!"; break; case 10: strSignText = "Archery practice this " + RNG.RandomDay() + " afternoon"; break; case 11: strSignText = "Seen a crime? Tell the nearest city guard"; break; case 12: strSignText = "New city law: No minors can be miners"; break; case 13: strSignText = "Council meeting this " + RNG.RandomDay(); break; case 14: strSignText = "Numbers for lovers:~" + RNG.RandomItem("220 284", "1184 1210", "2620 2924", "5020 5564", "6232 6368"); break; default: Debug.Fail("Invalid switch result"); break; } } while (!strSignText.IsValidSign()); return(strSignText); }