//计算爆率.. 0.不爆 1.小爆 2 ~ 5
//2.中爆 6 ~ 9
//3.大爆 10 ~ 15
public static byte AdjustDrop(BaseObject attack, BaseObject Def)
{
byte attklv = attack.GetLevel();
byte deflv = Def.GetLevel();
int dislv = attklv - deflv;
if (dislv >= 0) //攻击者高于被攻击者
{
if (dislv <= 5 && dislv > 3) //差距小于5级
{
return(IRandom.Random(0, 100) < 50 ? EXPLODE_ITEM_CHANCE3 : EXPLODE_ITEM_CHANCE1);
}
else if (dislv <= 9 && dislv > 6)//差距小于10级
{
return(IRandom.Random(0, 100) < 50 ? EXPLODE_ITEM_CHANCE2 : EXPLODE_ITEM_CHANCE1);
}
else //大爆 就算大爆不了,也小爆
{
return(IRandom.Random(0, 100) < 50 ? EXPLODE_ITEM_CHANCE4 : EXPLODE_ITEM_CHANCE2);
}
}
else //攻击者低于被攻击者
{
if (dislv <= -5 && dislv > -3)//差距小于5级
{
return(IRandom.Random(0, 100) < 50 ? EXPLODE_ITEM_CHANCE3 : EXPLODE_ITEM_CHANCE2);
}
else if (dislv <= -9 && dislv > -6)//差距小于10级
{
return(IRandom.Random(0, 100) < 50 ? EXPLODE_ITEM_CHANCE2 : EXPLODE_ITEM_CHANCE1);
}
else //大爆 就算大爆不了,也小爆
{
return(IRandom.Random(0, 100) < 50 ? EXPLODE_ITEM_CHANCE4 : EXPLODE_ITEM_CHANCE2);
}
}
}