[MEGA MODCOMP] Conqueror's Delight

I guess I didn't word it very well. What I meant was, can a (barb) tribe be forced to stay in cities, instead of roaming and attacking, while others will continue to roam and attack.

I'm thinking that there is a bit of a miscommunication on how the tribes work. What happens is this: Every tile has a tribe tag that stores a Tribe ID. At the beginning of the game, the program selects random plots equal to the max number of tribes allowed based on map size (moddable in the XML). Then the best tribe is selected for these randomly chosen plots based on the terrain and the ethnicity of the closest player.

So, if for example, the game selects a random plot that is Desert far from the coast, and the closest player is the Koreans, the best tribe will be the Hsung Nu (if they haven't already been placed elsewhere). The game then gives all the plots within a certain number of plots to that tribe. Since this will probably not cause all plots to be associated with a tribe, the game then updates these unassigned plots every turn based on the value of the plot to the tribes bordering it. So by the time the barbs actually start spawning, every tile should be associated with a tribe.

Now, the game spawns Barb units in the following way: It uses a formula of the number of Barbs there should be per X unowned tiles. You can find this in the Handicap infos. The smaller the number of unowned tiles, the more Barbs you're going to get. The game then randomly picks plots to spawn the Barbs on. What's happening now is that when the unit is initiated, it assigns the Unit a Tribe based on the Tribe ID of the plot it's spawned on.

So the Tribes really aren't roaming at all. The units are, but the units are only considered part of the tribe because that's the tile they happened to have been spawned on.

But currently, the way I have it coded, once the a plot has an owner, the plot is considered to have no tribe.

Well, IMO, tribes should be, basically, diverse Barbarian mini-civs. Maybe that's not what you're going for. So, I would go with the "if it's Olmec land, it's an Olmec city" option.
Well, that is essentially what I'm going for. I wanted Barbs to be more flavorful and diverse. I figured this would make them a bit tougher and also more interesting for the player. It also adds extra incentive to explore because instead of encountering the exact same things, you'll find new things including new savages to kill.

I don't really see it being realistic though if you build a city in their lands that the city becomes a city of their tribe. I mean, when the American settlers built new settlements, they didn't become settlements populated by the people who originally lived there. Those people were displaced and replaced... as has been the case virtually everywhere else.

The function where a city that's been captured gets the unique units of the captured civ (but only in that city) and cannot build its own units there. I think this would work with your tribes idea, but I'm not sure how.
Where a captured city builds the UUs of the CAPTURING player? Or the city's original owner? Because if it's the latter, I wasn't aware there was a mod that did this already because that was on my list of things to add.. so that a conquering player would be able to build the UUs of his vanquished opponents in the cities that he's taken from them and none of his own original cities.
 
I'm thinking that there is a bit of a miscommunication on how the tribes work. What happens is this: Every tile has a tribe tag that stores a Tribe ID. At the beginning of the game, the program selects random plots equal to the max number of tribes allowed based on map size (moddable in the XML). Then the best tribe is selected for these randomly chosen plots based on the terrain and the ethnicity of the closest player.

So, if for example, the game selects a random plot that is Desert far from the coast, and the closest player is the Koreans, the best tribe will be the Hsung Nu (if they haven't already been placed elsewhere). The game then gives all the plots within a certain number of plots to that tribe. Since this will probably not cause all plots to be associated with a tribe, the game then updates these unassigned plots every turn based on the value of the plot to the tribes bordering it. So by the time the barbs actually start spawning, every tile should be associated with a tribe.

Now, the game spawns Barb units in the following way: It uses a formula of the number of Barbs there should be per X unowned tiles. You can find this in the Handicap infos. The smaller the number of unowned tiles, the more Barbs you're going to get. The game then randomly picks plots to spawn the Barbs on. What's happening now is that when the unit is initiated, it assigns the Unit a Tribe based on the Tribe ID of the plot it's spawned on.

So the Tribes really aren't roaming at all. The units are, but the units are only considered part of the tribe because that's the tile they happened to have been spawned on.

But currently, the way I have it coded, once the a plot has an owner, the plot is considered to have no tribe.
Ah, now we've got crossed wires again. I did actually mean the tribes' units movement, not the tribes themselves. Although that might be cool for a Mongol scenario. :)

Also, I should have mentioned that we'll be using pre-made maps, so the tribes would/should be assigned without a map generation. Is that possible?
Well, that is essentially what I'm going for. I wanted Barbs to be more flavorful and diverse. I figured this would make them a bit tougher and also more interesting for the player. It also adds extra incentive to explore because instead of encountering the exact same things, you'll find new things including new savages to kill.

I don't really see it being realistic though if you build a city in their lands that the city becomes a city of their tribe. I mean, when the American settlers built new settlements, they didn't become settlements populated by the people who originally lived there. Those people were displaced and replaced... as has been the case virtually everywhere else.
That's a fair point, actually. I hadn't thought of it like that. Scrap what I said before about that. :lol:
Where a captured city builds the UUs of the CAPTURING player? Or the city's original owner? Because if it's the latter, I wasn't aware there was a mod that did this already because that was on my list of things to add.. so that a conquering player would be able to build the UUs of his vanquished opponents in the cities that he's taken from them and none of his own original cities.
Yes, that's it. One thing that it might be worth changing is the fact that you can't build your own UUs/UBs in captured cities, which seems a little odd to me.
 
Ah, now we've got crossed wires again. I did actually mean the tribes' units movement, not the tribes themselves. Although that might be cool for a Mongol scenario. :)

Well, it would certainly be possible to force units to be still or restricted to their tribal lands.

Also, I should have mentioned that we'll be using pre-made maps, so the tribes would/should be assigned without a map generation. Is that possible?

Sure. I'm going to expose the code controlling the tribes to python, so you just need somebody savvy enough with python to just set all the plots you want to have the tribes you want on them.

Yes, that's it. One thing that it might be worth changing is the fact that you can't build your own UUs/UBs in captured cities, which seems a little odd to me.

Alright, I'm still a bit confused. So there is already a mod out there that allows you to build the original owner's unique units but not your own units??
 
Well, it would certainly be possible to force units to be still or restricted to their tribal lands.
Great!
Sure. I'm going to expose the code controlling the tribes to python, so you just need somebody savvy enough with python to just set all the plots you want to have the tribes you want on them.
Hm, savvy with Python might be a problem :lol: Well, it can be done: that's the important thing.
Alright, I'm still a bit confused. So there is already a mod out there that allows you to build the original owner's unique units but not your own units??
Yep, I think you've got it. It's made by Kael. Here's a link.
 
Yep, I think you've got it. It's made by Kael. Here's a link.

That's interesting because I was intending to add this in a later version of Conqueror's Delight as a new and improved Dynamic Unique Units (since this Assimilation is basically a city-based version of DUU as opposed to my player-based version).
 
Well then, he's saved you the trouble :D

I've taken a look at his mod, and the one problem I see is that all it does is set a CivilizationType for a city, which is great and accomplishes this... but there's one thing that I consider to be a flaw.

I think a city should only be able to build the UUs and UBs of their former civ if that civ was capable of building the UU/UB at the time of the city's capture. It doesn't really make sense if you capture Frankfurt in the Middle Ages and then it can build Panzers in the Industrial Ages... so I may make my own version if only to satisfy that nagging point I have. It will also permit you to build your own UUs if it's not the same unit class as the city's UU. So you could have War Chariots and Bowmen built in the same city but not Cataphracts and Camel Archers. You could also have the dynamic unique units apply to specific cities rather than being bound to whatever the city's original owner's UUs are.

The downside is that (in addition to the extra work ;) ) it'll mean two big arrays as opposed to one small variable. Again, it's a question of performance...
 
I am of the opinion that Assimilation should base the build orders on the Culture of the city, not who built it. Who founded a city is not really relevant to who is currently living there. It could be cool if you could have build orders available to you so long as the city has, say, 25% of that civ's culture. Over time the city would assimilate into your culture and the extra types of units you could build would be lost.

This should probably be tied into your nationality unit attribute somehow.

I'd also much prefer it if all units were still bale to be built, even those of the same unitclass.





Any chance you could go ahead and change your anti-promotion tag to allow you to set bonuses vs multiple promotion types? (And maybe then convince Kael to include this and other changes you make in FfH, or Xienwolf in his FfH modcomp?)
 
I am of the opinion that Assimilation should base the build orders on the Culture of the city, not who built it. Who founded a city is not really relevant to who is currently living there. It could be cool if you could have build orders available to you so long as the city has, say, 25% of that civ's culture. Over time the city would assimilate into your culture and the extra types of units you could build would be lost.

Yes, this is essentially what I plan to do.

I'd also much prefer it if all units were still bale to be built, even those of the same unitclass.

Well, on some level, I feel like the loss of the ability to build your own UUs seems like a decent cost/benefit balance even if it might seem illogical. Of course, it's not really fair if it only blocks those civs that happen to have UUs of the same unit class and not the one's that have UUs of different classes.

Any chance you could go ahead and change your anti-promotion tag to allow you to set bonuses vs multiple promotion types? (And maybe then convince Kael to include this and other changes you make in FfH, or Xienwolf in his FfH modcomp?)

That was actually how I originally had it, but I decided to just go with what Kael had because it was already done and I couldn't really think of any promotions I wanted that would require multiple anti-promotions. At the time I started this (which was a long time ago) I really didn't know how to do this properly. I do now, so I might decide to revisit it at some point.
 
cityartscreenie_r2f.jpg


The first pic is just after the occupation has ended, the second is right after the first Archer was built in the city.

Just a quick pic of some other stuff I've crammed into this one.. this was actually a fairly easy modification that only took about half an hour.

What I've changed is that cities now retain the city art of the highest culture player... so those beautiful Greco-Roman cities won't intantaneously transform into Asian cities when your troops enter the city. Might not be a big deal with the rather unimpressive variety in vanilla BtS, but for a mod like Ethnic Citystyles, this is pretty significant :)

The other change is that new units built in the city will now maintain the Unit Artstyle of the highest culture player.
 
How does the work with a civilization being destroyed? Does their culture stay in the city?

Well, it takes the highest culture player at the time when the city is captured.
 
I was just wondering, could you change the schema so that units can carry multiple kinds of cargo (for domain cargo and special cargo), maybe setting different capacities for each? And so that a unit can be carried as cargo while carrying cargo? (But obviously not carry the unit that is carrying it. It might be best for a unit's cargo's cargo to count against its cargo limit too.)


I'd like to have Carriers than can carry Planes, Missiles, and land units. I'd also like the larger ships to be able to carry small canoe-like boats for unloading their land units, and maybe also to carry small submersibles or to drop carry mines out to sea and drop them in the water for rival ships to hit. (I would also be really good in FfH, where recon units can carry birds but are currently unable to carry birds while on board a ship, and even better in my FfH modmod where water elementals can carry ships as cargo to move them across land and melee units might also be able to carry siege units as cargo.)



May we assume the culture based city art is a step towards culture based build orders?



You know, I've been bothering Kael about allowing multiple anti-promotions for a while and he said that it was a good idea and that he'd come across times when he wished he had it. He said he'll probably change is in FfH eventually but that it is a lot of work and he doesn't want to do so until he really needs it. It might be easier for me to convince him to go ahead and add it if all he has to do is copy you (and maybe I could get him to borow a few more things from this modcomp too?)





Completely unrelated, but can you make it so that when the AI requests/demands that you do something (change civics, cancel trades, give them a resource, declare war, etc.) you always have the option to negotiate the terms under which you will do so, instead of being stuck with the diplomatic penalty for refusing the demand but then negotiating to give it to them anyway. This should still have the penalty if you can't reach an agreement, and not the same bonus if you do.
 
I was just wondering, could you change the schema so that units can carry multiple kinds of cargo (for domain cargo and special cargo), maybe setting different capacities for each? And so that a unit can be carried as cargo while carrying cargo? (But obviously not carry the unit that is carrying it. It might be best for a unit's cargo's cargo to count against its cargo limit too.)

I'd like to have Carriers than can carry Planes, Missiles, and land units. I'd also like the larger ships to be able to carry small canoe-like boats for unloading their land units, and maybe also to carry small submersibles or to drop carry mines out to sea and drop them in the water for rival ships to hit. (I would also be really good in FfH, where recon units can carry birds but are currently unable to carry birds while on board a ship, and even better in my FfH modmod where water elementals can carry ships as cargo to move them across land and melee units might also be able to carry siege units as cargo.)

I had not planned on changing this, but one thing I'd thought about was changing it so that the cargo space would be higher but that different units would have different volumes. So, for example, a transport would be able to carry six Infantry or three Tanks, or four Infantry and one Tank (or any other variation).

May we assume the culture based city art is a step towards culture based build orders?

I wouldn't because I don't know what culture based build orders would be... ;)

You know, I've been bothering Kael about allowing multiple anti-promotions for a while and he said that it was a good idea and that he'd come across times when he wished he had it. He said he'll probably change is in FfH eventually but that it is a lot of work and he doesn't want to do so until he really needs it. It might be easier for me to convince him to go ahead and add it if all he has to do is copy you (and maybe I could get him to borow a few more things from this modcomp too?)

He or anyone else can take whatever they want as long as they give proper credit to me.

Completely unrelated, but can you make it so that when the AI requests/demands that you do something (change civics, cancel trades, give them a resource, declare war, etc.) you always have the option to negotiate the terms under which you will do so, instead of being stuck with the diplomatic penalty for refusing the demand but then negotiating to give it to them anyway. This should still have the penalty if you can't reach an agreement, and not the same bonus if you do.

A lot of this is still controlled in the exe. I don't think I can change it, but I'll check.
 
I've also discovered a problem that prevents saving and loading saved games... Foolishly, I hadn't tried to do this before... I've stopped work on anything new until I find the source of this problem, but when I get it fixed, I'll release the next version.

I've also commented out all the non-functioning code. So the unused buttons and yield stuff next to the gold has been removed for the time being.
 
Alright, I corrected the problem with saving/loading games.

I've uploaded a new version of the mod with the new Barbarian changes included!

Changes listed below:

Barbarian Tribes!

Tribes are now spawned at the start of the game and will spread to fill the entire map. Tribes provide Barbarians spawned on their tiles cultural unit art, favorite units, and varying unit behavior. Of course, this is all customizable in the XML for modders to add or remove tribes as they please.

Barbarians Ransom Cities

Barbarians will now demand ransom for cities they capture if the player can possibly meet their demands. The popup will also display different information depending on the Tribe if the capturing Barbarian unit has a tribal association.

Capturing Cities

Captured cities now retain the city art of their highest cultural player, and new units trained in the city keep the unit art of the highest cultural player.
 
Just a thought, but after seeing Ekmek's newly released Attila LH, could it be modded that when the Barbarians Ransom your cities, an optional LH comes up? Might be kind of a neat touch, to make the Barbarians feel a little more important or something, of course I don't know how difficult it is, or if its even possible...

Cheers,
ripple01
 
I've just downloaded and tried to play the most recent version and i'm getting a CtD when the AI is doing it's first turn.
The cause of this was the Tectonics map which i tried to use.
Mercenary units don't have the correct Civ of origin on them. They have the TEXT_KEY_ line. They also don't cost anything to purchase from another Civ.
 
I want to use the ability to use promotions to make a unit have an invisible type, see an invisible type, and cost gold. I don't want anything else (even the new invisible type abilities). I attempted to merge in the changes but now I get an error when compiling the SDK:

CvUnit.cpp (line 8516) error C2451: conditional expression of type 'CvInfoBase' is illegal

I don't even know what that means! I've attached the source code for my mod. I don't know if there are other errors as CodeBlocks will stop checking after it encounters errors in one file and won't check files after that.
 
From Microsoft's Help database on your Error code:

conditional expression of type 'type' is illegal

The conditional expression evaluates to an integer type.

So that means you attempted to do an IF statement with a non Boolean condition (a CvInfoBase type object in this case) So you need to change an if (fluff) to an if (fluff == otherfluff) or something like that.
 
Back
Top Bottom