Alrighty, came up against this yesterday since i'm currently testing an elementalist build with 'liege of the primordial' that actually benefits really well from having 2 golems deployed to boost 2 different damage types.
After stuffing around making it far more complicated than it actually is, i cheated and just copy pasted shit.
Here's a quick and dirty way of editing oldroutine so that it deploys 2 golems of different types instead of just summoning 2 of the same type as it does now.
anyway since quite frankly i can't be bothered making all the combinations here's a run through of what to do.
For starters we find the second golem type that we want summoned in oldroutine, in my case the ice golem for yours whatever.
and we edit the sgslot to 'sg2Slot' like so. easy. so that's setting it as a separate golem for us to summon.
next up. find the summon golem routine in there. copy and paste it below it. this is what summons the golem. the second copy underneath summons the second.
here's the first
edit 'max' in there to '1'. that's it. don't touch that first one again.
next up we have the second one. edit each instance of 'sgSlot' to 'sg2Slot'. there are 3.
edit 'max' to '2'.
edit '_summonGolemStopwatch.Restart();' to '_summon2GolemStopwatch.Restart();' there are 2.
it will look like this
now we're done with those.
next up search for the int for sgslot ie 'private int _sgSlot;'
copy and paste the copy below it.
edit the copy to '_sg2Slot;'
next we find the stopwatch for summoning the golem 'Stopwatch _summonGolemStopwatch = Stopwatch.StartNew();'
copy and paste it below. edit the copy 'summonGolemStopwatch' to 'summon2GolemStopwatch' like we did above.
like this
copy the edited version into the oldroutine folder in 3rdparty and replace the original. then delete the oldroutine folder in _CONFIGS_.
please don't delete the oldroutine folder in 3rdparty.
no guarantees it doesn't screw anything up it probably works fine even though there's almost certainly a better way to do it that actually checks to see if there's already a golem of the first type so it doesn't cast a second but eh.
no guarantees if you screw it up
done.
After stuffing around making it far more complicated than it actually is, i cheated and just copy pasted shit.
Here's a quick and dirty way of editing oldroutine so that it deploys 2 golems of different types instead of just summoning 2 of the same type as it does now.
anyway since quite frankly i can't be bothered making all the combinations here's a run through of what to do.
For starters we find the second golem type that we want summoned in oldroutine, in my case the ice golem for yours whatever.
var sig = LokiPoe.InGameState.SkillBarHud.Skills.FirstOrDefault(s => s.Name == "Summon Ice Golem");
if (IsCastableHelper(sig))
{
_summonIceGolemSlot = sig.Slot;
_sgSlot = _summonIceGolemSlot;
}
and we edit the sgslot to 'sg2Slot' like so. easy. so that's setting it as a separate golem for us to summon.
var sig = LokiPoe.InGameState.SkillBarHud.Skills.FirstOrDefault(s => s.Name == "Summon Ice Golem");
if (IsCastableHelper(sig))
{
_summonIceGolemSlot = sig.Slot;
_sg2Slot = _summonIceGolemSlot;
}
next up. find the summon golem routine in there. copy and paste it below it. this is what summons the golem. the second copy underneath summons the second.
here's the first
// If we have a Summon Golem skill, we can cast it if we havn't cast it recently.
if (_sgSlot != -1 &&
_summonGolemStopwatch.ElapsedMilliseconds >
10000)
{
// See if we can use the skill.
var skill = LokiPoe.InGameState.SkillBarHud.Slot(_sgSlot);
if (skill.CanUse())
{
var max = skill.GetStat(StatTypeGGG.NumberOfGolemsAllowed);
if (skill.NumberDeployed < max)
{
await DisableAlwaysHiglight();
await Coroutines.FinishCurrentAction();
var err1 = LokiPoe.InGameState.SkillBarHud.UseAt(_sgSlot, true, myPos);
if (err1 == LokiPoe.InGameState.UseResult.None)
{
_summonGolemStopwatch.Restart();
await Coroutines.FinishCurrentAction(false);
return true;
}
Log.ErrorFormat("[Logic] UseAt returned {0} for {1}.", err1, skill.Name);
}
}
}
edit 'max' in there to '1'. that's it. don't touch that first one again.
next up we have the second one. edit each instance of 'sgSlot' to 'sg2Slot'. there are 3.
edit 'max' to '2'.
edit '_summonGolemStopwatch.Restart();' to '_summon2GolemStopwatch.Restart();' there are 2.
it will look like this
// If we have a Summon Golem skill, we can cast it if we havn't cast it recently.
if (_sg2Slot != -1 &&
_summon2GolemStopwatch.ElapsedMilliseconds >
10000)
{
// See if we can use the skill.
var skill = LokiPoe.InGameState.SkillBarHud.Slot(_sg2Slot);
if (skill.CanUse())
{
var max = skill.GetStat(StatTypeGGG.NumberOfGolemsAllowed);
if (skill.NumberDeployed < 2)
{
await DisableAlwaysHiglight();
await Coroutines.FinishCurrentAction();
var err1 = LokiPoe.InGameState.SkillBarHud.UseAt(_sg2Slot, true, myPos);
if (err1 == LokiPoe.InGameState.UseResult.None)
{
_summon2GolemStopwatch.Restart();
await Coroutines.FinishCurrentAction(false);
return true;
}
Log.ErrorFormat("[Logic] UseAt returned {0} for {1}.", err1, skill.Name);
}
}
}
now we're done with those.
next up search for the int for sgslot ie 'private int _sgSlot;'
copy and paste the copy below it.
edit the copy to '_sg2Slot;'
that bits done.private int _sgSlot;
private int _sg2Slot;
next we find the stopwatch for summoning the golem 'Stopwatch _summonGolemStopwatch = Stopwatch.StartNew();'
copy and paste it below. edit the copy 'summonGolemStopwatch' to 'summon2GolemStopwatch' like we did above.
like this
done. save. hopefully you've made a copy of the installed oldroutine. bit late now if you've screwed it but eh.private readonly Stopwatch _summonGolemStopwatch = Stopwatch.StartNew();
private readonly Stopwatch _summon2GolemStopwatch = Stopwatch.StartNew();
copy the edited version into the oldroutine folder in 3rdparty and replace the original. then delete the oldroutine folder in _CONFIGS_.
please don't delete the oldroutine folder in 3rdparty.
no guarantees it doesn't screw anything up it probably works fine even though there's almost certainly a better way to do it that actually checks to see if there's already a golem of the first type so it doesn't cast a second but eh.
no guarantees if you screw it up

done.