Almost right, except the Random.Next(int maxVale) function's upper bound is
exclusive, meaning "Main.rand.Next(15) == 0" has a 1 in 15 chance of being true, not a 1 in 16 chance. (15 is never returned, just 0 through 14)
As for expert mode, the code that would help you was right above the code you quoted to me:
Code:
int num25 = 1;
if (Main.expertMode && Main.rand.Next(2) == 0)
{
num25 = 2;
}
for (int m = 0; m < num25; m++)
{
if (this.type == 290)
{
if (Main.rand.Next(15) == 0)
{
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1513, 1, false, -1, false, false);
}
else if (Main.rand.Next(10) == 0)
{
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 938, 1, false, -1, false, false);
}
}
This code just makes the drop rates of everything in this block 50% more likely, since there is a 50% chance the for loop will run 2 times instead of 1.
So, 6.66% to 10% and 10% to 15%, ignoring the compound probability thing, which matches up with the wiki:
http://terraria.wiki.gg/Paladin
Other useful code:
int maxValue = Main.expertMode ? 150 : 200; // setting a value based on whether or not it is expert mode
if (Main.rand.Next(100) == 0 || (Main.expertMode && Main.rand.Next(100) == 0)) // 1% normal mode, or 2% Expert mode