mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-03-19 12:08:34 +01:00
Fix wild mons in double battles not having item
This commit is contained in:
parent
d21449e19c
commit
fcf5870062
@ -6180,51 +6180,60 @@ static s32 GetWildMonTableIdInAlteringCave(u16 species)
|
|||||||
|
|
||||||
void SetWildMonHeldItem(void)
|
void SetWildMonHeldItem(void)
|
||||||
{
|
{
|
||||||
if (!(gBattleTypeFlags & (BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_TRAINER | BATTLE_TYPE_PYRAMID | BATTLE_TYPE_PIKE)))
|
u16 rnd, species, var1, var2, i, count;
|
||||||
|
if (gBattleTypeFlags & (BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_TRAINER | BATTLE_TYPE_PYRAMID | BATTLE_TYPE_PIKE))
|
||||||
|
return;
|
||||||
|
|
||||||
|
count = (WILD_DOUBLE_BATTLE) ? 2 : 1;
|
||||||
|
if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG, 0)
|
||||||
|
&& GetMonAbility(&gPlayerParty[0]) == ABILITY_COMPOUND_EYES)
|
||||||
{
|
{
|
||||||
u16 rnd = Random() % 100;
|
var1 = 20;
|
||||||
u16 species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, 0);
|
var2 = 80;
|
||||||
u16 var1 = 45;
|
}
|
||||||
u16 var2 = 95;
|
else
|
||||||
if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG, 0)
|
{
|
||||||
&& GetMonAbility(&gPlayerParty[0]) == ABILITY_COMPOUND_EYES)
|
var1 = 45;
|
||||||
{
|
var2 = 95;
|
||||||
var1 = 20;
|
}
|
||||||
var2 = 80;
|
|
||||||
}
|
for (i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
rnd = Random() % 100;
|
||||||
|
species = GetMonData(&gEnemyParty[i], MON_DATA_SPECIES, 0);
|
||||||
if (gMapHeader.mapLayoutId == LAYOUT_ALTERING_CAVE)
|
if (gMapHeader.mapLayoutId == LAYOUT_ALTERING_CAVE)
|
||||||
{
|
{
|
||||||
s32 alteringCaveId = GetWildMonTableIdInAlteringCave(species);
|
s32 alteringCaveId = GetWildMonTableIdInAlteringCave(species);
|
||||||
if (alteringCaveId != 0)
|
if (alteringCaveId != 0)
|
||||||
{
|
{
|
||||||
if (rnd < var2)
|
if (rnd < var2)
|
||||||
return;
|
continue;
|
||||||
SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &sAlteringCaveWildMonHeldItems[alteringCaveId].item);
|
SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &sAlteringCaveWildMonHeldItems[alteringCaveId].item);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (rnd < var1)
|
if (rnd < var1)
|
||||||
return;
|
continue;
|
||||||
if (rnd < var2)
|
if (rnd < var2)
|
||||||
SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &gBaseStats[species].item1);
|
SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBaseStats[species].item1);
|
||||||
else
|
else
|
||||||
SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &gBaseStats[species].item2);
|
SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBaseStats[species].item2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (gBaseStats[species].item1 == gBaseStats[species].item2 && gBaseStats[species].item1 != 0)
|
if (gBaseStats[species].item1 == gBaseStats[species].item2 && gBaseStats[species].item1 != 0)
|
||||||
{
|
{
|
||||||
SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &gBaseStats[species].item1);
|
SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBaseStats[species].item1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (rnd < var1)
|
if (rnd < var1)
|
||||||
return;
|
continue;
|
||||||
if (rnd < var2)
|
if (rnd < var2)
|
||||||
SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &gBaseStats[species].item1);
|
SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBaseStats[species].item1);
|
||||||
else
|
else
|
||||||
SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &gBaseStats[species].item2);
|
SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBaseStats[species].item2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user