since this isnt nearly close to how live works, it doesnt have any chance of being submitted for server code(I imagine) however for custom servers its a very easy change...
original code... pets.cpp... line 251
Code:
if (this->IsClient() && CastToClient()->GetFocusEffect(focusPetPower, spell_id) > 0)
{
npc_type->max_hp *= 1.20;
npc_type->cur_hp = npc_type->max_hp;
npc_type->AC *= 1.20;
npc_type->level += 1;
npc_type->min_dmg = (npc_type->min_dmg * 110 / 100);
npc_type->max_dmg = (npc_type->max_dmg * 110 / 100);
npc_type->size *= 1.15;
}
change to...
Code:
if (this->IsClient() && CastToClient()->GetFocusEffect(focusPetPower, spell_id) == 5)
{
npc_type->max_hp *= 1.20;
npc_type->cur_hp = npc_type->max_hp;
npc_type->AC *= 1.20;
npc_type->level += 1;
npc_type->min_dmg = (npc_type->min_dmg * 110 / 100);
npc_type->max_dmg = (npc_type->max_dmg * 110 / 100);
npc_type->size *= 1.15;
}
for subsequent focuses add a new copy of that and change the attributes as you see fit... for example..
Code:
if (this->IsClient() && CastToClient()->GetFocusEffect(focusPetPower, spell_id) == 10)
{
npc_type->max_hp *= 1.30;
npc_type->cur_hp = npc_type->max_hp;
npc_type->AC *= 1.30;
npc_type->level += 2;
npc_type->min_dmg = (npc_type->min_dmg * 120 / 100);
npc_type->max_dmg = (npc_type->max_dmg * 120 / 100);
npc_type->size *= 1.2;
}
then keep adding those in increments of 5 until you get to the max pet focus, which seems to be like 120 for
Enhanced Minion XIV. Could also define some variables and have them increment values automatically based on the pet power base so would only need 1 section of code instead of 20 ish.
Playing with the source is alot easier than it seems, easier than waiting 16 months for somebody to do it for you lol.