[Raid] Resolve conflicts based on role FC instead of total HP
This commit is contained in:
@@ -23,13 +23,13 @@ public class RosterAssigner
|
|||||||
{
|
{
|
||||||
if (group.Players.AnyHealer())
|
if (group.Players.AnyHealer())
|
||||||
{
|
{
|
||||||
var nextHealerRoster = rosters.NonFull(group.Players.Count()).MinBy(r => r.RealHealerCount(), (x, y) => x.TotalRealFc > y.TotalRealFc ? y : x);
|
var nextHealerRoster = rosters.NonFull(group.Players.Count()).MinBy(r => r.RealHealerCount(), (x, y) => x.RealHealerFc() > y.RealHealerFc() ? y : x);
|
||||||
|
|
||||||
nextHealerRoster.AddGroup(group);
|
nextHealerRoster.AddGroup(group);
|
||||||
}
|
}
|
||||||
else if (group.Players.AnyTank())
|
else if (group.Players.AnyTank())
|
||||||
{
|
{
|
||||||
var nextTankRoster = rosters.NonFull(group.Players.Count()).MinBy(r => r.RealTankCount(), (x, y) => x.TotalRealFc < y.TotalRealFc ? x : y);
|
var nextTankRoster = rosters.NonFull(group.Players.Count()).MinBy(r => r.RealTankCount(), (x, y) => x.RealTankFc() < y.RealTankFc() ? x : y);
|
||||||
|
|
||||||
nextTankRoster.AddGroup(group);
|
nextTankRoster.AddGroup(group);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,6 +27,26 @@ public static class RosterExtensions
|
|||||||
return players.Sum(p => p.Fc);
|
return players.Sum(p => p.Fc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static long HealerFc(this IEnumerable<RosterPlayer> players)
|
||||||
|
{
|
||||||
|
return players.Where(p => p.Role == PlayerRole.Healer).Sum(p => p.Fc);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long TankFc(this IEnumerable<RosterPlayer> players)
|
||||||
|
{
|
||||||
|
return players.Where(p => p.Role == PlayerRole.Tank).Sum(p => p.Fc);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long RealHealerFc(this RosterInfo roster)
|
||||||
|
{
|
||||||
|
return roster.PlayerGroups.Sum(group => group.Players.HealerFc());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long RealTankFc(this RosterInfo roster)
|
||||||
|
{
|
||||||
|
return roster.PlayerGroups.Sum(group => group.Players.TankFc());
|
||||||
|
}
|
||||||
|
|
||||||
public static int RealHealerCount(this RosterInfo rosterInfo)
|
public static int RealHealerCount(this RosterInfo rosterInfo)
|
||||||
{
|
{
|
||||||
return rosterInfo.PlayerGroups.Sum(g => g.Players.HealerCount());
|
return rosterInfo.PlayerGroups.Sum(g => g.Players.HealerCount());
|
||||||
|
|||||||
Reference in New Issue
Block a user