Thunderbrd
C2C War Dog
I get what you mean but I do have an objection that is not entirely based on not being sure how to establish all that.AIAndy said:As far as I can see what you are doing there is adding a new XML file that is nearly entirely a copy of the old. I think it would be better if you add inheritance capability to info classes. That means you have your archetypes as normal leaderheads defined but with some new tag that makes them inactive or declares them abstract or something. Then you add a new tag (best on a similar level as the Replacement code stuff) that allows you to inherit information from one or more base classes. That is a quite generic piece of code and should also work on other info classes as it can use the copyNonDefault methods to copy in the information from the base classes.
One thing that would be needed is for every info class that should support that the copyNonDefault needs to be truely copying, not moving information as it sometimes does now.
A tag that makes info classes inactive is useful for the replacement stuff as well.
I'd really rather make the references much easier to catalog for the modder. If we did it the way you're suggesting then we must recall the leaders that represent particular archetypes. The way I've suggested enables us to label the archetypes very clearly and meaninfully whereas there would be some vagueness in referring to a leader to be the representative of a given archetype structure, wouldn't there? Additionally, I'd like to be able to express the archetypes the leader has in a hoverhelp pop somewhere (down the road this will be more important than it is now.) And I don't want it to basically state: this leader is much the same in this regard as Alexander is. Instead I'd like Alexander and that leader to both be saying, I'm like this common feature.
Does that make any sense?
Now, considering things a bit more, this would mean that if we went about things in the way you're suggesting, I would need to give tags for the leaders that enable them to provide a label of what archetype type they represent if they are being referenced as an archetype model, right?
The plan currently involves having a number of established archetype files by categories of archetypes, basically each being a 'leader info building block' that can be more quickly and generically mixed and matched on new leaders (and will make things much easier for the random leader generation mechanism I'll need in the future.) So a given leader would only represent a portion of his tags as implemented under one particular archetype category, which means each category would have to have a new tag for the leader to define a generic label for that category and so on.
Another concern I have in that idea is that I foresee a VERY huge list of leaders. This would mean that every time a leader value is referenced that then basically states override with an archetype would enforce a huge amount of cycling. Keeping the archetype files to a more simplified list would reduce this. However, it sounds like this would only be a bit of a slowdown in the loading process the way you suggest it as the replacement would happen once on load. But with the list of leaders we could generate, plus an intended random leader mechanism to play off this, the impact of cycling through such a LONG list would still have the occasional unpleasant impact wouldn't it?