Is there a listing somewhere of the number of tiles (X by Y) per Map Size? I've looked and haven't found it yet.
I particularly like the land unit spawning in the coast tile. Apart from anything else, it gives me hope that there will one day be:
- combat between sea and land units
- gunships (and amphibious future tech?) that can traverse coast and reach nearby islands
In my vers it gets transported to the nearest mainland if you don't pick it up. A canoe on the other side of the world is worse than useless (when even most of my exploratory galleys are holed up hiding from pirates), whereas an obsolete land unit occasionally comes in handy.
Goody Islands use the same mechanic as goody huts the code associated with it just turns barbarian land units int sea units if you get hostile natives. You have just been having bad luck. I a doing some work on changing some of the other results too so that if you get a land unit it will be replaced by a navy unit instead but that is going slowly.
Thread from the last time this was asked...
Well, I guess nobody posted the actual "standard" sizes used by C2C, so I'll do the math for you:
Duel: 40 x 24
Tiny: 52 x 32
Small: 64 x 40
Standard: 84 x 52
Large: 104 x 64
Huge: 128 x 80
Giant: 160 x 100
Gigantic: 200 x 120
Sooo, this information is now in the FAQ?
Also, when I was going around adding those new map sizes, the only script I found that was overriding the WorldSizeInfos was PW3, so I made it do the same thing for the two new sizes.
Thread from the last time this was asked...
Well, I guess nobody posted the actual "standard" sizes used by C2C, so I'll do the math for you:
Duel: 40 x 24
Tiny: 52 x 32
Small: 64 x 40
Standard: 84 x 52
Large: 104 x 64
Huge: 128 x 80
Giant: 160 x 100
Gigantic: 200 x 120
Note that all of these up through Huge are the same size as those in regular BtS.
Also note that any map script can override these values. You can find these sizes out only by inspecting each map script's .py file to see if it defines a "getGridSize" function to override the standard sizes. For example, the C2C_Terra map script (the Terra script is the only map script that came with BtS that overrides the sizes) has all the map up though Large actually be 1 size larger, then with its Huge being slight smaller than the regular Giant, its Giant is 28 narrower than the regular Gigantic but just as tall, and its Gigantic is 16 wider and 32 taller than the regular Gigantic (216 x 154).
I also know that the C2C Perfect Mongoose map script overrides the sizes, but I think they are not quite as large as the Terra maps - they are a bit larger but most of them are not quite as large as the next standard size and Gigantic is slightly narrower but slightly taller at 192 x 128.
Sometime somebody might go through all the C2C map scripts to find out which ones override the sizes. (But not me now.)
Wasn't there something about those numbers being then multiplied by 4 to get the actual dimensions in tiles?
Just use adaptValueToGame(int iID, int iValue) in CvGameObject and add scaling percents for the same ID to CIV4WorldInfo.xml:I just wanted to be sure because I'd like to create some CvGame functions that enable us to scale a number of things to map size and it's necessary to be clear about that before moving forward on such a project.
<Percents>
<Percent>
<ID>ADAPT_WHATEVER</ID>
<iValue>250</iValue>
</Percent>
</Percents>
Is this then simply to say that the one step that still remains in setting up the use of this function properly would be to add the <Percents> lines as shown above to all the WorldInfo.xml file entries?Code:int CvGameObjectUnit::adaptValueToGame(int iID, int iValue) const { iValue = (iValue * GC.getGameSpeedInfo(GC.getGameINLINE().getGameSpeedType()).getPercent(iID)) / 100; [COLOR="Red"]iValue = (iValue * GC.getWorldInfo(GC.getMapINLINE().getWorldSize()).getPercent(iID)) / 100;[/COLOR] return (iValue * GC.getHandicapInfo(GET_PLAYER(m_pUnit->getOwnerINLINE()).getHandicapType()).getPercent(iID)) / 100; }
Sooo, this information is now in the FAQ?
I'll add it, but I didn't know that how large the map was was a frequently asked question.
Well, I did not explain that enough yet.Sorry AIAndy... I'm getting better at following you but I got lost on this one.
No, that parameter takes the resolved scaling ID, for instance GC.getInfoTypeForString("ADAPT_CULTURE_OUTCOME").First, looking at adaptValueToGame, yes it looks like its very cool. What exactly is the iID parameter for? The game object's self ID? When calling to this, can you use 'self' to refer to that (if we're calling from say, CvUnit about a unit value)?
int iMyValue;
CvPlayer* m_pPlayer;
// calculate the value for this player
static int iAdaptID = -2;
if (iAdaptID == -2) // resolve the id
{
iAdaptID = GC.getInfoTypeForString("ADAPT_MY_GLORIOUS_VALUE");
}
// Now scale my value for this player
iMyValue = m_pPlayer->getGameObject()->adaptValueToGame(iAdaptID, iMyValue);
Yes, except that you can have many Percent entries and you refer to the one you want by the ID.And just to clarify, in reference to CiV4WorldInfo.xml. You're saying to put the <Percents> XML code as you showed under each WorldInfo entry? Then, what, the iValue becomes the % modifier (with 100% being the middle point right?) and whenever any value calls for adaptValueToGame it will adapt that value based on the Percents iValue you've put under the current game's appropriate WorldInfo entry?
Yes, and calling adaptValueToGame of course. Btw, using adaptValueToGame does not even require that Percents for the ID are in the files. If they are not, then it simply defaults to 100%, which means unchanged value and you could add Percents later.What confuses me about this all is when I look at adaptValueToGame it shows that you've already included consideration for all that:
Is this then simply to say that the one step that still remains in setting up the use of this function properly would be to add the <Percents> lines as shown above to all the WorldInfo.xml file entries?
Yes, it can scale to game speed, map size and difficulty with a single call to adaptValueToGame (you just use the same ID in all three XML files).I'm quite certain this is brilliant and a lot of what I had in mind to an extent (though we'd naturally do things a lot differently in implementation I almost always feel your methods are a lot better than anything I'd come up with!) but it'd be helpful to clear up any confusion I may have on this matter.
Another thing: It'd been brought up earlier to possibly scale more things for game difficulty as well. It appears it'd be fairly easily done through this mechanism too. What do you think about that?