What's new
  • Visit Rebornbuddy
  • Visit Resources
  • Visit API Documentation
  • Visit Downloads
  • Visit Portal
  • Visit Panda Profiles
  • Visit LLamamMagic

Bounty Fix

Balsagna

New Member
Joined
Jul 10, 2015
Messages
14
Reaction score
0
Hey hey, I noticed that the settings under bounties to balance mats was a little odd. Rather than picking only the lowest bounty mat and spamming that act if it had to, it would do any act below the average of all your mats. This means if you had one mat significantly higher than the others, one mat significantly lower, and the others somewhere in the middle, you would always do every bounty except the highest one.

I decided to pick my friend's brain and he came up with a delicious change that will only do the act whose bounty you hold the lowest number of. It will not choose a different act until you have a new lowest mat.

So, go to demonbuddy->plugins->adventurer->tags->bountiestag.cs

Replace lines 169-175 with:
var averageMatsCount = matCounts.Values.Average(m => m);

var eligibleActs =
matCounts.Where(
kv =>
!_completedActs.Contains(kv.Key) && BountyHelpers.AreAllActBountiesSupported(kv.Key) &&
kv.Value <= averageMatsCount + 1).ToDictionary(kv => kv.Key, kv => kv.Value);

This will not prioritize bonus acts in anyway, if it does one it will be a coincidence. Rather, this is intended to keep a true balance of bounty mats.

Here is a direct copy of my new BountiesTag.CS:
View attachment BountiesTag.cs

Lemme know what you guys think!
 
if this holds true would be nice if tara changes it for the next adventurer build, as this is what balancing mats is supposed to be, right? thx for your input, I will check it today in the evening
 
Thanks :)

This is another way to go with mat balancing, but I like mine more since it give 4 times more chance to hit the bonus act.
 
I did a balance between the two methods.
If the act with less mats has a difference of more than 8 with the average, it runs the act with lower mats.
If not, then uses Taras default method.
Also added another option that if the differencte between act with max mats and the mat with min mats is less than 8, then runs all acts.

Here is the code (replace line 169 with all these lines):

var minMatsCount = matCounts.Values.Min(m => m);
var maxMatsCount = matCounts.Values.Max(m => m);
var averageMatsCount = matCounts.Values.Average(m => m);
Logger.Info("[Bounties] Min Mats Count: {0}", minMatsCount);
Logger.Info("[Bounties] Max Mats Count: {0}", maxMatsCount);
Logger.Info("[Bounties] Average Mats Count: {0}", averageMatsCount);
var diff = 8;
if (averageMatsCount - minMatsCount > diff)
{
averageMatsCount = minMatsCount;
Logger.Info("[Bounties] Average Mats Count - Min Mats Count > {0}", diff);
}
else if (maxMatsCount - minMatsCount <= diff)
{
Logger.Info("[Bounties] Max Mats Count - Min Mats Count <= {0}", diff);
averageMatsCount = maxMatsCount;
}
Logger.Info("[Bounties] Will try to run acts with less than or equal to {0} mats.", averageMatsCount + 1);
 
I did a balance between the two methods.
If the act with less mats has a difference of more than 8 with the average, it runs the act with lower mats.
If not, then uses Taras default method.
Also added another option that if the differencte between act with max mats and the mat with min mats is less than 8, then runs all acts.

Here is the code (replace line 169 with all these lines):

var minMatsCount = matCounts.Values.Min(m => m);
var maxMatsCount = matCounts.Values.Max(m => m);
var averageMatsCount = matCounts.Values.Average(m => m);
Logger.Info("[Bounties] Min Mats Count: {0}", minMatsCount);
Logger.Info("[Bounties] Max Mats Count: {0}", maxMatsCount);
Logger.Info("[Bounties] Average Mats Count: {0}", averageMatsCount);
var diff = 8;
if (averageMatsCount - minMatsCount > diff)
{
averageMatsCount = minMatsCount;
Logger.Info("[Bounties] Average Mats Count - Min Mats Count > {0}", diff);
}
else if (maxMatsCount - minMatsCount <= diff)
{
Logger.Info("[Bounties] Max Mats Count - Min Mats Count <= {0}", diff);
averageMatsCount = maxMatsCount;
}
Logger.Info("[Bounties] Will try to run acts with less than or equal to {0} mats.", averageMatsCount + 1);

Consider this one better :)
 
Update for 1.3.0.127
Add this code below line 175 (var averageMatsCount = matCounts.Values.Average(m => m);):

var minMatsCount = matCounts.Values.Min(m => m);
var maxMatsCount = matCounts.Values.Max(m => m);
Logger.Info("[Bounties] Average Mats Count: {0}", averageMatsCount);
var diff = 8;
if (averageMatsCount - minMatsCount > diff)
{
averageMatsCount = minMatsCount;
Logger.Info("[Bounties] Average Mats Count - Min Mats Count > {0}", diff);
}
else if (maxMatsCount - minMatsCount <= diff)
{
Logger.Info("[Bounties] Max Mats Count - Min Mats Count <= {0}", diff);
averageMatsCount = maxMatsCount;
}
Logger.Info("[Bounties] Will try to run acts with less than or equal to {0} mats.", averageMatsCount + 1);
 
Testing this change, will integrate in Adventurer if it's good to go, thanks a lot.
 
Back
Top