I am torn. On the one hand I want to commend you for all the work that you have done there.
On the other hand, I am unhappy about the way this has been done. Lots of hard coded small/small solutions without consulting us first and then pushed in one huge commit which is bad for testing.
When I began working on this I was working on just the added traits tags. I get your point that basically you made in the other thread on effects on how many of these kinds of tags overlap and yet the architecture doesn't actually have much of a connection between the two from the beginning of their implementation and all but that's pretty much 1) the way its always been done in civ modding and 2) all I would understand how to do. I'm far more concerned about making progress in the game design than I am about making sure the program is made in the most efficient manner. I can understand that's frustrating from a professional grade programmer's point of view but consider that ALL who modded this dll before c2c had this mentality as well and I can really only learn from examples as I see them as speaking of coding usually is still greek to me.
Anyhow, when I went about listing the tags themselves for development it wasn't really much of a project... just some added traits tags. Doesn't take much to do those. Then I go through and do all of them at once in the xml, then all at once in the infos h & cpp then all at once in the coding wherever they need to be included in the game process, then all at once in the text display segment. (At the moment there's no AI needed for those but it will have a method installed eventually there too.)
The rest is absolutely reactive to discussions taking place online during the design of those. It's also more time-effective that if I get further trait tag ideas during an assembly line process like that to back up to the start to add the beginning of the next tag to the rest of the group being developed and step through those steps until I reach where I"m at with the rest of them. Keeping notes on which has been done at which step I then just go down the list and knock out each tag at each stage of development. None are ready for being committed until all are completed. Developing one tag at a time is just... exhausting.
So as I'm working on those, in a couple places I find that the process of the tag requires some new tags in other areas, like civics for example. This took place when implementing the bAllReligionsActive tag - Note: this process was completely discussed on the forum before implementing. So it wasn't like I was hiding the fact that this was going into production... even when stated outright in numerous places most of the team would ignore what was said anyhow.
It also took place with the capture project which was an afternoon's reaction to some discussion on that matter.
When I start getting into civics, buildings, specialists, I have no idea how to implement the AI stage but I figure... I'll have to learn it anyhow so I'll take these up to the point where that's all that's left and within a few weeks thereafter should be able to have that sewn up and walk away from this project as a whole considering from front to back ALL of this, with the exception of some of the traits tags, were done for the benefit of the rest of the team and not for personal project goals.
The clammoring for particular effects grew loud enough and had been so repeatedly asked for that came up during this process that I added some things I would not normally have interrupted myself to add - the happiness/health/specialist/yield stuff mostly.
So at this point the unready for committing project I started with has now grown to become lumped in with a number of projects that interrupted completion of that one. Why never a commit in there? Because the initial project wasn't completed to the point that we didn't have dead tags implemented. And I simply don't see the point of opening up a branch and taking the modding time I have to make progress towards getting what I'm working on complete to commit to a confusing side registry. I wouldn't have a clue how to make this a useful function in the first place.
Like why did you go through the effort to introduce partial disabling of a building and then make it for one specific case only (religious disabling).
Because that's the only case I could foresee as it's the only one that's been discussed and thus was all I was considering. After it started to come together it did occur to me that there was perhaps other ways this might be useful but since each method would have to selectively eliminate its own tags and I did NOT want to have to have a class setup in the xml to have to define the tags there that do and do not have effect then go through and bracket out each individual tag and its application... maybe that's the better way to go but I was 3/4 of the way through the project before I considered it. By then, I did know you'd probably feel this way once you took a look but figured if you had a better idea on how to more generically implement this concept you'd make sure to enforce that I rewrite everything on it again and by then it was pretty much done as implemented anyhow... So yeah, I'm prepared to discuss how it could be restructured.
However, although I've been accused of 'hiding this project until it was complete' where were you when DH and I were discussing this mechanism?
I would prefer if you made a thread first about larger stuff you want to implement so we can talk about how to do it and the final result will be better for it. Then use separate working copies and probably also feature branches when you work on multiple projects at the same time so you can commit them in small steps.
What I don't understand about the use of such feature branches is how it would be able to merge with the care required to make sure it doesn't inadvertently create bugs in poorly merging. There's a number of places in the dll where the order of the things listed is important right? So we develop this and invest tons of time committing half-completed code to a side project (which is really confusing how to do in the first place) then when it's time to say - ok its ready - which I'm not sure how to compile for a test run from such a side project - then decide to merge all that work back into the core - which then conflicts with the things that have been done since the branch began... It just sounds like a mess of hours spent on even more frustrating experiences than the debugging I just did on the project.
Separate working copies could work if I get interrupted in projects in the future though... I just hate merging and having to merge my own project into my own project seems so inefficient. But it admittedly is only inefficient if there are no problems with a given project and the last few weekends could've been made much easier if I had taken this approach.
I get the overall gist of what you're saying and am considering that perhaps the most important thing I need to do in the future is to not be so tangential and not allow myself to pick up side projects while involved in programming something as it is. I did resist a lot more coming into the picture here but with what I did allow to intrude on what I was doing I did so because I did not want to shelve those projects but rather get them done ASAP. If I do allow such an intrusion into the project I am working on in the future I'll just copy myself another repository and do it there and commit it there then allow it to be another part of what I must merge with before my first project is complete.
I certainly wouldn't like to allow players the ability to change out of bBansNonStateReligions simply through traits or vice versa. I mean maybe.. just maybe with lvl 4 spiritual, but even then it'd be ridiculous powerful and I generally just don't like the idea. I think i'd prefer to just leave it in DH & civplayer8's hands.
The banning side is not the default.
For the core non-DL traits, I'd actually nerf spiritual a bit to counter the effect some and give it one cause for all religions to be active. And there's a negative trait or two that scream for bBansNonStateReligions.
@Thunderbrd:
How many times have we complained about all of this new stuff being added without AI support (and with all sorts of minor bugs)? These huge updates slow down development of the mod with all of the problems they create and divert all of our attentions from more important stuff.
So... wait... you say commit in small chunks but make sure everything committed is flawless before it becomes committed? I did address a lot of ai issues in this but I also admit there's a couple months more programming to finish that side - months for me because I don't know much of what I'm doing there. Months because its going to take careful discussion with more knowledgeable programmers in the AI dept before I do anything there effectively and upset the mod. Bad AI work can be as bad as NO AI work. So that's one last thing to do here (aside from a minor bug or two... which is a hell of a lot better than some of what I've seen you commit recently that I have not had the rude audacity to try to call you out on like I'm somehow so self righteous that I believe myself so perfect that such bugs could never be committed by myself.)
So there's a little work left to be done. Is it not better to register the project, allow players to test it and give feedback, allow the other modders to look it over and find what they feel are flaws in approach or gaps overlooked and point them out, rather than just talking a bunch of words on a forum that nobody cares to read or comment on?
That XML naming isn't even the same as what the other XML naming is! The naming convention for terrain and feature based promotion modifiers is <Terrain*something*> or <Feature*something*>, not something crazy like <TerrainWorkRateModifierChangeTypes>.

I can't even tweak something small around here without you going and taking it over, changing something that worked fine just so that it looked good to you in the Code Editor.
I knew you wouldn't like there being what you would feel were added words that you'd find unnecessary in the renaming there. Apparently to you it is not necessary to try to keep things clear for those who come behind you.
Terrain - ok we're good so far right? We're talking about terrains.
WorkRate - ok, we're talking about the workrate of the worker when working that terrain.
Modifier - ok, we're talking about a percentage rather than a flat rate adjustment.
Change - this means its a promotion tag that will be merged with a similar tag from the unit side that simply does not utilize this term. If the term change is not on a promotion tag, then we can assume it's not intended to combine with a platform base value from the unit side.
Types - Ah... we're specifying which types of terrains are modified by the integer in the tag structure.
Not all tags are denoted this way, no. There is a host of tags that utilize less considered naming conventions that should've been named differently from the beginning and the tags you were basing yours on were among them. This is not to be accusing but an attempt to share what I do know. But since you feel your job here is to criticize other modders because none can live up to your level of perfection, I suppose I should not have attempted to share what I've worked out on tag naming with you.
This gigantic update is another example of what I see as going wrong with C2C. As AIAndy said, the work here being done is roughshod and unilateral.
I'm struggling to understand what you mean by unilateral. Are you saying it was simply too many projects at once? I'd agree there and have discussed how I will try to approach that. Roughshod? Sure there's some work around the edges still to do but I felt it was necessary to commit so that others might be able to point out how to do that work correctly before proceeding into territory I was unsure of.
From what I can tell you simply decide you are going to do something big and don't tell any of us about it (because we may disagree or have better ways of doing it, and you don't seem to want to hear that), then commit it all in a huge update every couple of months which takes many hours of our time after that to get bugfixed, or doesn't even get bugfixed at all until your next massive commit.
Aside from the traits tags, all of this was a reaction to a request. So how can I be accused of not telling anyone about it when someone had to tell me about it to get me to do it in the first place? Perhaps if you weren't ignoring my posts you'd know what was taking place?
This leads to you basically having de facto control of the entire mod's development by virtue of the scale of your changes, and the fact you don't allow any input from the rest of us. I am really steamed about this,
Sounds to me like YOU feel as if YOU have to share control of the mod and that's what's disturbing to you here.
The Traits tags was the original project, was MY project I was working on for my own eventual use. Even most of
those tags stemmed from being asked to see what I could bring in from playtyping's traits. The rest is ALL a reaction to the requests of other modders on the team. Most of those projects I'd preferred not to do in the first place but I'm trying to be useful to not only myself. So being accused of not allowing input from the rest of you is just absurd since the majority of this is directly the result of input from the rest of you.
I did put a bit more thought into the Religious Disabling project than had been discussed however, but the only extensions beyond that which was stated in the forums were added in during further consideration during these last few weeks of debugging. The outright banning element came from realizing I had overlooked a detail and when I realized the implications of having overlooked that detail I also immediately realized that it could be a good thing to offer a counter tag to the bAllReligionsActive tags. In an effort to get the rest of the projects in place here I threw that last bit in and so far I'm not hearing anyone complain about that ONE portion of the project that went undiscussed on the site.
You know... now that I think about it... I've not only discussed the religious disabling mechanism with you 2 or 3 times on the site, but I've also quoted for you the previous discussions and compiled where those discussions had taken place so that it was all posted in one place for you to review as you were trying to make a quick fix solution that DH and I did not find sufficient to fulfill his vision. When I get done with this post I'll go find that and quote it over here for you again k?
@JosEPh: I think that the Religious disabling is intended for the Wonders and not for the base buildings.
No... the main complaint on religious hoarding and how it enables such an easily achieved steamroll for the player that does so is mostly about monasteries actually. In short, all religious buildings are considered in this. But if DH wants some of those buildings to have tags that remain active or are adjusted in their effectiveness, that stage of the project is still yet to be developed.
I had considered making this project as a game option. Wasn't sure if that's how y'all wanted it or not. I did not do so initially so as to gauge the reaction to it not being one. There's a growing resistance to more game options as well so I figured we the team would benefit from seeing how the players and ourselves react to the change before making it untestable in our current games without taking unusual and bug-prone actions to change the game options.
I suppose it should be an option. And perhaps it should be extracted into a branch then be restructured to be something more generic before being re-implemented. But it can just as easily be argued that even if its overreaching, its a strong patch to a huge pre-existing game imbalance. I'm not sure how I feel about that but a LOT of comments in the forums would suggest a number of players would feel that way.
Honestly? I don't even like that project. It's a reaction to tons of complaints that were going to lead to outright disabling of non-state religious buildings for the sake of game balance unless something was done to enable a solution in between. I had the vision to enable civics and traits to interact with that and brought it up with DH who asked for a means for establishing an in-between disabled and enabled setting rather than having the system be black and white disabled or not. This discussion was NOT in pms and was re-iterated over the course of two or three threads. Apparently it takes DOING something rather than just talking about it to make the project a reality enough for discussion to really open up on the subject.