Modification for Eyeball map script?


Jun 21, 2010
Hi all, I'm posting this as someone with no experience in editing map scripts. I recently saw LPlate2's "Eyeball" map script and loved the idea of a realistically-wrapped world map, but I don't really like the continent layout. Can anyone tell me how to modify a script like PerfectMongoose_v321_RI_Edition (specifically) to keep the same continent system, but with a square map, ice mountains ringing the edge (sea ice can be broken through in the late game, so I'd change that feature), and the climate system radiating from hot at the center to cold at the edges? Thanks.
For the climate, a good starting point might be the GenerateTemperatureMap function, including the functions called from there, in particular GetLatitudeForY. That's the PW3 climate system. The PW2 climate system, at a glance, looks like it would be (even) more difficult to adapt.

Once the game has started, the DLL will assign latitude values to plots based on the script's getTopLatitude and getBottomLatitude functions. Those, by the way, appear to be slightly erroneous in PerfectMongoose; should arguably return mc.topLatitude and mc.bottomLatitude respectively, rather than directly returning +/- 90. In any case, the DLL calculates latitude values only based on the y-coordinate, which can't work regardless of how the upper and lower limit are chosen. Specifically, the CyPlot::getLatitude calls in PlotCanHaveBonus are not going to work as intended. The Eyeball script, which doesn't have its own functions for placing bonus resources, simply tells the DLL to ignore latitude when placing resources (isBonusIgnoreLatitude). You could do that too (and also tell the DLL to handle the resource placement), but you'll need a function for computing a latitude value from a pair of coordinates in any case. Can base that on getInvertedDistanceToCenter in the Eyeball script. Not sure how much else can be ported from Eyeball – as PerfectMongoose works quite differently. Still, I think you have the right instinct to modify PerfectMongoose rather than trying to port its land generator to Eyeball.

Might be best to place the hot core and cold rim before running the climate generator, and letting the climate generator ignore those extreme regions. Latitude values could then start at 0 at the edge of the desert core (or wherever jungles are supposed to appear).

Setting square dimensions should be easy through the getGridSize function, and I think there's already a map option for disabling world wrap. But the other parts are sizable tasks in my estimation.
Well, I didn't want to just claim that's it's more trouble than it's worth and wave my hands. ;)
Top Bottom