代码里写的清清楚楚,不过我看不懂
private bool IsHeroAgeSuitableForPregnancy(Hero hero)
{
return hero.Age >= 18f && hero.Age <= 45f;
}
public override float GetDailyChanceOfPregnancyForHero(Hero hero)
{
int num = hero.Children.Count + 1;
float num2 = (float)(4 + 4 * hero.Clan.Tier);
float num3 = (hero != Hero.MainHero && hero.Spouse != Hero.MainHero) ? Math.Min(1f, (2f * num2 - (float)hero.Clan.Lords.Count) / num2) : 1f;
float num4 = (1.2f - (hero.Age - 18f) * 0.04f) / (float)(num * num) * 0.12f * num3;
float baseNumber = (hero.Spouse != null && this.IsHeroAgeSuitableForPregnancy(hero)) ? num4 : 0f;
ExplainedNumber explainedNumber = new ExplainedNumber(baseNumber, false, null);
if (hero.GetPerkValue(DefaultPerks.Charm.Virile) || hero.Spouse.GetPerkValue(DefaultPerks.Charm.Virile))
{
explainedNumber.AddFactor(DefaultPerks.Charm.Virile.PrimaryBonus, DefaultPerks.Charm.Virile.Name);
}
return explainedNumber.ResultNumber;
}
1.1.3原版怀孕年龄是18~45,孩子越多怀孕概率越低
private bool IsHeroAgeSuitableForPregnancy(Hero hero)
{
return hero.Age >= 18f && hero.Age <= 45f;
}
public override float GetDailyChanceOfPregnancyForHero(Hero hero)
{
int num = hero.Children.Count + 1;
float num2 = (float)(4 + 4 * hero.Clan.Tier);
float num3 = (hero != Hero.MainHero && hero.Spouse != Hero.MainHero) ? Math.Min(1f, (2f * num2 - (float)hero.Clan.Lords.Count) / num2) : 1f;
float num4 = (1.2f - (hero.Age - 18f) * 0.04f) / (float)(num * num) * 0.12f * num3;
float baseNumber = (hero.Spouse != null && this.IsHeroAgeSuitableForPregnancy(hero)) ? num4 : 0f;
ExplainedNumber explainedNumber = new ExplainedNumber(baseNumber, false, null);
if (hero.GetPerkValue(DefaultPerks.Charm.Virile) || hero.Spouse.GetPerkValue(DefaultPerks.Charm.Virile))
{
explainedNumber.AddFactor(DefaultPerks.Charm.Virile.PrimaryBonus, DefaultPerks.Charm.Virile.Name);
}
return explainedNumber.ResultNumber;
}
1.1.3原版怀孕年龄是18~45,孩子越多怀孕概率越低