public static T Random <T>(this List <T> l) { if (l.Count == 0) { return(default(T)); } return(l[Global.Roll(l.Count) - 1]); }
public static T RemoveRandom <T>(this List <T> l) { if (l.Count == 0) { return(default(T)); } T result = l[Global.Roll(l.Count) - 1]; l.Remove(result); return(result); }
public static Color ResolveColor(Color c) { switch (c) { case Color.RandomFire: switch (Global.Roll(1, 3)) { case 1: return(Color.Red); case 2: return(Color.DarkRed); case 3: return(Color.Yellow); default: return(Color.Black); } case Color.RandomIce: switch (Global.Roll(1, 4)) { case 1: return(Color.White); case 2: return(Color.Cyan); case 3: return(Color.Blue); case 4: return(Color.DarkBlue); default: return(Color.Black); } case Color.RandomLightning: switch (Global.Roll(1, 4)) { case 1: return(Color.White); case 2: return(Color.Yellow); case 3: return(Color.Yellow); case 4: return(Color.DarkYellow); default: return(Color.Black); } case Color.RandomPrismatic: switch (Global.Roll(3)) { case 1: return(Color.Red); case 2: return(Color.Blue); case 3: return(Color.Yellow); default: return(Color.Black); } case Color.RandomDark: switch (Global.Roll(7)) { case 1: return(Color.DarkBlue); case 2: return(Color.DarkCyan); case 3: return(Color.DarkGray); case 4: return(Color.DarkGreen); case 5: return(Color.DarkMagenta); case 6: return(Color.DarkRed); case 7: return(Color.DarkYellow); default: return(Color.Black); } case Color.RandomBright: switch (Global.Roll(8)) { case 1: return(Color.Blue); case 2: return(Color.Cyan); case 3: return(Color.Gray); case 4: return(Color.Green); case 5: return(Color.Magenta); case 6: return(Color.Red); case 7: return(Color.Yellow); case 8: return(Color.White); default: return(Color.Black); } default: return(c); } }