public float GetGroupWeight(CellGroup group) { if (group == _clan.CoreGroup) { return(0); } PolityProminence pi = group.GetPolityProminence(_clan.Polity); if (group.HighestPolityProminence != pi) { return(0); } if (!Clan.CanBeClanCore(group)) { return(0); } if (group.Population < Clan.MinCorePopulation) { return(0); } float coreDistance = pi.FactionCoreDistance - MinCoreDistance; if (coreDistance <= 0) { return(0); } float coreDistanceFactor = MinCoreDistance / (MinCoreDistance + coreDistance); float minCoreProminenceValue = Mathf.Max(coreDistanceFactor, Clan.MinCorePolityProminence); return(pi.Value - minCoreProminenceValue); }