public bool Allow(IScoringGenerator stats, SimDescription actor, SimDescription target, AllowCheck check) { if (Personalities.IsOpposing(stats, actor, target, true)) { stats.IncStat("Opposing Clan"); return(false); } else if (!Flirts.CanHaveAutonomousRomance(stats, actor, target, ((check & AllowCheck.Active) == AllowCheck.Active))) { return(false); } return(AllowPartner(stats, actor, target, check)); }
public bool Allow(IScoringGenerator stats, SimDescription actor, SimDescription target, AllowCheck check) { if (!Allow(stats, actor, check)) { return(false); } if (!Allow(stats, target, check)) { return(false); } if (!Flirts.CanHaveAutonomousRomance(stats, actor, target, ((check & AllowCheck.Active) == AllowCheck.Active))) { return(false); } SimData actorData = GetData(actor); SimData targetData = GetData(target); if (!actorData.Allowed <AllowCasteCanBePregnantOption>(targetData, false)) { stats.IncStat("Can Be Caste Denied"); return(false); } else if (actorData.Disallowed <DisallowCasteCanBePregnantOption>(targetData, false)) { stats.IncStat("Can Be Caste Denied"); return(false); } else if (!actorData.Allowed <AllowCastePregnancyOption>(targetData, true)) { stats.IncStat("Participation Caste Denied"); return(false); } else if (actorData.Disallowed <DisallowCastePregnancyOption>(targetData, true)) { stats.IncStat("Participation Caste Denied"); return(false); } else if (!DualAllow(stats, actorData, targetData, check)) { return(false); } return(true); }