Re: Change Logs
Posted: Sat Apr 19, 2014 7:20 pm
It seems Summon Demon is bugged, Nefer mentioned that he can't summon top demons with max ability level and 340 mana.
Like an idiot I decided to check the code, after a few hours of fighting the urge to hit the desk with my head (No offense to Ant, checking code without knowing its "roots" is a pain) I have found some conspicuous things:
1. That certainly looks like error:
Ability info for Reaping Energy says it increases all summoning costs 10% per level as in getCost. In check, the artifact counts with 25%.
2.
Erm... SelectedMonsterIndex is what getCost uses (basically it's an index of monster to spawn, I believe), maybe it should be MonsterIndex or SoulIndex ?
3. From the other side, I have no idea what's going on here:
EDIT: 4. Forgot about it yesterday:
Lets see the last possible 'i' that will pass into the loop- that would be 13(13 +1 < max AbilityLevel (15)), meaning monster number 13 (out of 14). If it passes the if in the loop we will have i++ and monster number 14 (last), that won't enter the loop. the problem is- What will check if we have a soul juicy enough for Mr 14 to nom ?
[/color]
Like an idiot I decided to check the code, after a few hours of fighting the urge to hit the desk with my head (No offense to Ant, checking code without knowing its "roots" is a pain) I have found some conspicuous things:
1. That certainly looks like error:
Code: Select all
function int getCost()
{
//Initial cost
if (SelectedMonsterIndex < 0)
return ManaCosts[0] * (1 + (0.02 * SummonMastery)) * (1 + (0.25 * ReapingEnergy));
return (ManaCosts[SelectedMonsterIndex] * (1 + (0.02 * SummonMastery))) * (1 + (0.1 * ReapingEnergy)); //This part should run after we selected a monster, and it'll deduct the appropriate adren cost
}
// // (...)
//Now check for mana cost
while(ManaCosts[i] * (1 + (0.02 * SummonMastery)) * (1 + (0.25 * ReapingEnergy)) > Instigator.Controller.Adrenaline)
{
i--;
if (i <= 0)
break;
}
2.
Code: Select all
//Allow the monster to inherit the soul's strength
SoulClass = InvSoul.SoulClasses[SelectedMonsterIndex];
3. From the other side, I have no idea what's going on here:
Code: Select all
for (i = 0; i < Inv.SummonedMonsters.length; i++)
if (Inv.SummonedMonsters[i] == None || Inv.SummonedMonsters[i].Health <= 0)
Inv.SummonedMonsters.Remove(i--, 1);
Code: Select all
for (i = 0; i < RequiredScoringValues.length && i+1 < AbilityLevel; i++)
{
if (InvSoul.SoulClasses[MonsterIndex].default.ScoringValue < RequiredScoringValues[i])
{
i--;
break;
}
}
[/color]