Sounds cool, but also slow. The unit awareness of other units on the plot is... well not ideal and it requires a lot of looping. Bonuses like that would likely require a proper cache in CvPlot. It should likely be a 2D JIT cache array and have a structure we need to design before actually applying such bonuses.I was thinking about the "Shield Wall" here recently, and perhaps if two or more Shield Barring units are grouped they could form a "Shield Wall" thus, gaining Fortified Bonuses faster and or other bonuses.
I would rather have one "Siege Wagon" for each type of engine. This unit can then move to a site where it deploys. Deploying a siege engine can be somewhat like travel state where the unit is jammed for a number of turns, except deployment will not hide the unit from the map. In deployed state, the unit can't move, but it can bombard (or whatever command we assign to it). Once you conquered the nearby city, you no longer need the siege engine. Depending on unitInfo and possibly tech, it could revert to a Siege Wagon again or it could be destroyed, giving a fraction of the build costs to the nearby city.So, perhaps instead of building a "Siege Engine", you build a "Siege Wagon". You then have Engineers that can assemble these Engines on site, and depending on your Techs, you get a menu of what you want to assemble.
Civ4 relies on classes to do that, like a civ specific building replaces another building of the same class. Professions doesn't have a system like that and it will likely be way too much work to implement.Right now we don't have any Civ Specific Buildings, Units, or Professions but this would certainly be a nice addition.
Not true. They were in northern Germany and Bergen in Norway. The scandinavians generally viewed them as enemies and a serious threat.The northern region around scandinavia was the domain of the hanseatic league, who were quite good at making money, so there must be something we can buy and sell up there!
Sounds cool, but also slow. The unit awareness of other units on the plot is... well not ideal and it requires a lot of looping. Bonuses like that would likely require a proper cache in CvPlot. It should likely be a 2D JIT cache array and have a structure we need to design before actually applying such bonuses.
I would rather have one "Siege Wagon" for each type of engine. This unit can then move to a site where it deploys. Deploying a siege engine can be somewhat like travel state where the unit is jammed for a number of turns, except deployment will not hide the unit from the map. In deployed state, the unit can't move, but it can bombard (or whatever command we assign to it). Once you conquered the nearby city, you no longer need the siege engine. Depending on unitInfo and possibly tech, it could revert to a Siege Wagon again or it could be destroyed, giving a fraction of the build costs to the nearby city.
Siege Engines and Siege Wagons should have some civilian features, such as they can be captured by enemy troops and will not defend if attacked (use other units on the same plot for that!).
Alternative idea
Maybe we can make a "Siege Engine Improvement", which can only be build by a Siege Wagon (which is more or less just a wagon with the yields needed for the construction). Construction of this type of improvement can only be done by sacrificing the Siege Wagon and then the turn timer can count by units with "siege engine building profession" continues the improvement.
I know, but I don't like those for this purpose. This mean if we say have a bonus if we have two units with a specific feature, the bonus will apply if they are in the same group. However if they are both on the same plot, but not in the same group, they will not gain the bonus. I want the bonus to be plot based rather than group based to avoid issues with losing bonuses because the group breaks up without you noticing because they are still on the same plot.This can be handled easily actually, Units are setup in CvSelectionGroups and Each unit has one.
Those are in the DLL, not the exe. If we move to BTS, the only realistic approach is to get the BTS exe to accept our DLL code. At one point I tried getting BTS to load M:C in a debugger just to see what happened (learning about exe behaviour). It failed to detect the file and at that time I didn't look further into that. Now that I think about it, if the culprit for that problem is found, it would be likely that the solution to run M:C in BTS is possible as well.Anyway, the Professions, Trade Screens and the Trade economy would need to be ported if you even want to come close to the same feel, and those three things would be a huge merge.
Based on what I have discovered so far (not counting DLL only differences):It would be fascinating just to know what really is 'different' between Bts and Col. and how 'seperate' they really are.
We all know that they share the civ4 engine, we just don't know exactly what they did to that engine to make Col.
Is it irreparably 'broken' or not?
That's a DLL feature, which mean yes we can do that. Hiding it from the GUI is... well if BTS can't do that, we can just mark the unit graphics dirty and when the exe asks for the graphics, we return an empty graphic placeholder. For all we know, this could be what already happens in the DLL right now (I didn't check)One big question, does Civ4 have a way to make units Disappear, aka Live Among Villages, Travel to Europe, etc? We would really need a way to do this and Col has this built in.
Profession art might actually be an issue and it might not. It depends on the implementation. If I remember correctly, the exe is told, which is the unit on the plot and then it asks for the graphics for that unit. Even if the exe has no knowledge of professions, we can just return different graphics based on profession. In fact I think that is how colo did it. The only knowledge the exe has of professions is the cache XML I disabled.Professions-> this may require to port all the Profession.cpp files (I think Night added those), add the commands for changing professions, the XML values, Art, and the AI, etc. This would be a big task but not difficult perhaps. Not sure how easy it is to change Art in Civ4 though.
canSleep and canFortify exist in both, which makes sense. The real question is what kind of code is there in the Colo exe, which requires this knowledgeWhy do things like this exist in Col and not Civ...