public FreeBuildingsPolicyResponder(
            IFreeBuildingsCanon freeBuildingsCanon, CivilizationSignals civSignals
            )
        {
            FreeBuildingsCanon = freeBuildingsCanon;

            civSignals.CivUnlockedPolicy.Subscribe(OnCivUnlockedPolicy);
            civSignals.CivLockedPolicy.Subscribe(OnCivLockedPolicy);

            civSignals.CivUnlockedPolicyTree.Subscribe(OnCivUnlockedPolicyTree);
            civSignals.CivLockedPolicyTree.Subscribe(OnCivLockedPolicyTree);

            civSignals.CivFinishedPolicyTree.Subscribe(OnCivFinishedPolicyTree);
            civSignals.CivUnfinishedPolicyTree.Subscribe(OnCivUnfinishedPolicyTree);
        }
 public CivilizationComposer(
     ICivilizationFactory civilizationFactory, ITechCanon techCanon,
     ISocialPolicyComposer policyComposer, IExplorationCanon explorationCanon, IHexGrid grid,
     IFreeBuildingsCanon freeBuildingsCanon, List <IBuildingTemplate> availableBuildings,
     [Inject(Id = "Available Techs")] List <ITechDefinition> availableTechs,
     ReadOnlyCollection <ICivilizationTemplate> availableCivTemplates,
     IGoldenAgeCanon goldenAgeCanon, ICivDiscoveryCanon civDiscoveryCanon
     )
 {
     CivilizationFactory = civilizationFactory;
     TechCanon           = techCanon;
     PolicyComposer      = policyComposer;
     ExplorationCanon    = explorationCanon;
     Grid = grid;
     FreeBuildingsCanon    = freeBuildingsCanon;
     BuildingTemplates     = availableBuildings;
     AvailableTechs        = availableTechs;
     AvailableCivTemplates = availableCivTemplates;
     GoldenAgeCanon        = goldenAgeCanon;
     CivDiscoveryCanon     = civDiscoveryCanon;
 }