[Discussion] New feature / unit: Construction Engineer

Schmiddie

Emperor
Joined
Feb 27, 2012
Messages
1,711
Location
Germany
I had an idea for a new little feature.

Due to the new building chains, ships, etc., the construction in many areas takes much longer than before. Some like that, for some the construction may take too long.

Anyway, would it be possible to introduce a unit (not a profession I think) "Construction Engineer" (German: Bauingenieur), who can only come from Europe and who has a boost / modifier on certain professions in the respective colony - not just a craftsman with boost on hammers, but who works similar to the slave overseer - only without the negative bonus for satisfaction. As long as he's in the colony, there's a decent bonus on certain construction feats (production of hammers, some satisfaction). Like overseers, slave hunters, or military units like rangers or mercenaries, he cannot be added as a settler, so he remains a special feature.

Once a colony is reasonably developed, he can move on.

I would create the graphics and I can also do the Colopedia entries and creation of the unit itself. Programming etc. would have to be done by someone else.

Would that be an idea? What do you think about it?

Regards

Schmiddie
 
So you want to allow the Player to buy that Unit unlimited times from Europe?
Honestly it would feel like an exploit to me ... or at least heavily OP.

Also I am not truly sure how the Unit should be explained in an immersive way.
The idea somehow fits more in an "industrial age" for me, than to colonial times.

----

Also there are already construction supplies you could buy in Europe.
You can also use those to boost the construction of buildings.

Additionally you can already create Saw Mills Buildings on Plots.
Thos also give additional construction Bonus to the City.

----

What would be ok for me however:

A single story driven Python Event that allows to acquire a unique Unit for a very high price similar to the Governor.
Something like a "Famous Architect" or whatever you want to call it ... depending on the story you may want to tell.

That Unit could then simply have a modifier for Yield "Hammers" of e.g. 200%.
It is easy to implement and also easy to understand for AI.

----

This solution would:

1) Not conflict / compete with existing stuff like e.g. "Construction Supplies" / "Saw Mills".
2) Not be OP - as you can acquire it only once ... and not endlessly.
3) Be much easier to implement and more performant - as it uses standard XML and not some new mechanic.
4) Much less difficult to explain and more immersive to me than an "overseer for construction workers".
5) AI would be able to use it out of the box ... which it would not with the "Construction Engineer".
6) Maybe even add some more atmosphere and another nice story event to the game.
 
Last edited:
So you want to allow the Player to buy that Unit unlimited times from Europe?

No, this is not mandatory. I have not thought about how or how often such a unit could be implemented so far! Or course, it shall not be OP or a cheat and needs to be implemented carefully.

Also I am not truly sure how the Unit should be explained considering immersion.
The idea somehow fits more in an "industrial age" for me, than to colonial times.

Hm, how did the ancient Romans or Greeks build their buildings? The profession of civil engineer is probably much older than many other professions. No matter how we call him, but the art about the erection of buildings is simply not a thing of modern times! This is no feature that would break immersion.

Ok, I understand that it would be an issue fot the AI. Another unit just giving a special modifier would be a compromise. Combined with a special event it could be nice.
 
Or course, it shall not be OP or a cheat and needs to be implemented carefully.
There is no such thing as limitting how often a Unit can be bought in Europe.
And even then, it would be massive overhead to implement additional functionality to allow buying Units only once from Europe.
Introducing a unique Unit is better done by a Python Event, as it also requires no additional coding in the DLL.

Hm, how did the ancient Romans or Greeks build their buildings?
Those were quite different societies ... huge hierarchical empires that worked almost industrially already.
Considering immersion this simply does not truly fit the image I have of the colonies ... but sure immersion is personal taste.
So no it may not be extremely unrealistic ... but it would break my own immersion to have such an overseer for construction workers.
 
Last edited:
Ok, great. Seems that I need to learn how a Python event works asap and needs to be set up. :think:
It would not be much different than the Python Event you had created for the Governor. :)
So it really should not be much of an issue to copy and adjust the pattern for it once the Unit is configured.
 
Well, it is only 3 files to adjust:

CIV4EventTriggerInfos.xml --> Trigger Conditions that will pop up the event dialogue
CIV4EventInfos.xml --> Options to chose in the event dialogue that will do something
CIV4GameText_Colonization_Events_utf8.xml --> the texts
 
The graphic is ready to be implemented, i.e. a big task ist already done. :) I will do the other things shortly.

1696789400572.png
 
I like this idea, but obviously it shouldn't be overpowered, like +100% hammers for each of those units present. Capture one from another player and have two in a colony and.. Well you get the idea on how this can go wrong.

As for implementation the way I would assume it could work would be to add an array of yields with production bonuses, like you can say +25% hammers or +10% bells or whatever we would want. It's an xml setting, hence flexible. During doTurn where all citizens are looped anyway, make an array, which stores the highest value for each yield. This is then added as a production bonus together with the production bonus from buildings. Based on memory of that part of code alone, I do think that can be done in a way, which is reasonable for both performance and coding efforts. No promises through as I haven't actually looked at the code after reading this thread.
 
@Nightinggale
There is no need for more code. :)
It will be possible to do it all by standard XML.

It can be done similar to the Governor.
Just a one time unique Unit from a Python Story Event.

Also it could be possible to trigger the Python Event later in mid-game.
But I will leave it up to @Schmiddie to configure it the way he wants.
 
You could combine the idea of a construction engineer to the proposed promotions of pioneers. Like veteran units can get Law Keeper I-III to provide a bonus to the Law stat, you could choose an 'Engineer' promotion that adds +10% hammers when stationed in a city. The Construction Engineer Schmiddie made could be a unit like Brave Lieutenants, spawned by events or chance, that add XP to Pioneers.
 
Top Bottom