private CalculateAppeal ( AppealType targetAppeal, IIdol idol, bool isSupportMember, bool encore = false ) : int | ||
targetAppeal | AppealType | |
idol | IIdol | |
isSupportMember | bool | |
encore | bool | |
return | int |
private int CalculateAppeal(AppealType targetAppeal, IIdol idol, bool isSupportMember, bool encore = false)
{
if (idol == null)
{
return 0;
}
var rate = 1.0;
if (!isSupportMember)
{
if (EnableRoomEffect)
{
rate += 0.1;
}
rate += GetAppealUpRate(idol, Unit?.Center, targetAppeal);
rate += GetAppealUpRate(idol, Guest, targetAppeal);
}
if (GrooveBurst != null)
{
if (encore)
{
if (Song != null && Song.Type.HasFlag(idol.Category))
{
rate += 0.3;
}
}
else if (GrooveType.HasFlag(idol.Category))
{
rate += 0.3;
}
if (GrooveBurst.Value.HasFlag(targetAppeal))
{
rate += 1.5;
}
}
else if (Song != null && Song.Type.HasFlag(idol.Category))
{
rate += 0.3;
}
return (int)Math.Ceiling(Math.Round((int)idol.GetType().GetProperty(targetAppeal.ToString()).GetValue(idol) * rate * (isSupportMember ? 0.5 : 1), 3));
}
Simulator::CalculateAppeal ( IIdol idol, bool isSupportMember = false, bool encore = false ) : int |