RFC Epic/Marathon

So if I used this mod to play on normal it would be exactly the same as regular RFC except faster loading times?
 
So if I used this mod to play on normal it would be exactly the same as regular RFC except faster loading times?
Yeah, thats right! :king:
 
I don't mean to crash the party - but the faster loading times thing seems to peter out by around 1500 AD or so for my computer. Of course, my computer is a low-end machine so that may have something to do with it :D
 
Hey there!

It's been time when I was searching for this scenario with lower speeds and there were none exist. At least I couldn't find it anywhere (Today's RE:research finally brought me the results!). And at those times I played this scenario (on original speed), I had strange experience by playing Egypt. As one part of the goals for historic win is to gain culture till marked year. I had to build many buildings and wonders to get closer to that goal. I had only 2 cities in capital were defending 2 archers and in the other 1 archer. Didn't spent hammers for army much. :) That was also because I've built a great wall and wasn't expecting any barbs on my territory. But when first plague strikes my lands, from the west came 2 impi units (african barbs). Well, first of all, plague have killed my whole tiny defense and did not touched impi units. And what surprised me was, that great wall does not affect on african barbs. And well.. they came, the saw (empty cities), they conquer. My game ends. :) I wonder, if such lil bug can be fixed, or is it already fixed on that mod??
 
Hey there!

It's been time when I was searching for this scenario with lower speeds and there were none exist. At least I couldn't find it anywhere (Today's RE:research finally brought me the results!). And at those times I played this scenario (on original speed), I had strange experience by playing Egypt. As one part of the goals for historic win is to gain culture till marked year. I had to build many buildings and wonders to get closer to that goal. I had only 2 cities in capital were defending 2 archers and in the other 1 archer. Didn't spent hammers for army much. :) That was also because I've built a great wall and wasn't expecting any barbs on my territory. But when first plague strikes my lands, from the west came 2 impi units (african barbs). Well, first of all, plague have killed my whole tiny defense and did not touched impi units. And what surprised me was, that great wall does not affect on african barbs. And well.. they came, the saw (empty cities), they conquer. My game ends. :) I wonder, if such lil bug can be fixed, or is it already fixed on that mod??

It's not a bug, because Impis are not Barbarians (they're Natives).
 
New version is up. It will not break save games or PyScenario compatibility.

Download me

Changes in 1.2:

- Fixed the scaling of Congresses and Communications for Epic/Marathon speed
- Enabled modular loading so that installing RFC VD for this mod is one step easier
- Disabled the unit cost mod python callback (faster) and moved the worker/settler penalty code to CvPlayer::getProductionNeeded
- Added suppression of autosaving during AI Autoplay (faster); if for some odd reason you want to disable it, you can do so in GlobalDefinesAlt.XML
- Exposed a number of SDK functions to Python, may be useful to modders:
Spoiler :

CyGameCoreUtils (global)
- getTurnMonthForGame(int iGameTurn, int iStartYear, int eCalendar, int eSpeed) - equivalent of getTurnYearForGame but returns months
CyPlayer (gc.getPlayer(iPlayer)...):
- changeGoldenAgeModifier(int iChange) - changes the Golden Age modifier of a given player
- setConversionTimer(int iNewValue) - sets the conversion timer (useful if you manually convert a civ through Python)
- changeConversionTimer(int iChange) - changes the conversion timer
- setStrike(bool bNewValue) - sets the player's units on and off strike
- changeFreeCityCommerce(CommerceTypes eIndex, int iChange) - lets you dynamically change player's bonus commerce (applies to all cities, like leader traits)
- setCivilizationType(int iNewValue) - sets the player's civilization type to another (this was used for Dynamic Civs in The Sword of Islam)
- setFlag(str s) - sets the player's flag to the DDS located in s path
CyCity
- getReligionCount() - a quick way of getting the total number of religions in a city
 
Oh, goodie! :goodjob:

What exactly is "conversion"?

So you could have the iCeltia Civ change to Byzantium in the 3000 BC scenario with setCivilizationType()?
 
What exactly is "conversion"?

Conversion from one religion to another. You can use to set the conversion timer and make sure a civ won't convert for X turns.

So you could have the iCeltia Civ change to Byzantium in the 3000 BC scenario with setCivilizationType()?

Yes, if you use all the appriopriate tools: setCivName, setFlag and setCivilizationType, and setLeader if needed. This way you can have full dynamic civs, not just dynamic civ names. Icons, UUs, UBs etc. will change, but since civ index stays the same, anything that relies on it e.g. UPs and UHVs, won't change without extra work.

One note though, it may cause issues with displaying cities if the "new" civ is human controlled (I use it only for resurrected civs myself). Basically they'll display as ruins until the game is reloaded. It can be overcome with some tricks though, I had a similar issue with conditional spawns and a workaround was to revive the player with a unit before giving him any cities.
 
This is awesome in so many ways! The congress/embassies fix is great, speed upgrades are always welcome, and I can't wait to play around with the setCivilizationType function because I've got a feeling that it might come in handy somewhere ...

Tomorrow I'll be busy to incorporate all that into my own humble modmod ;)

Thanks embryodead, you are truly a blessing for the RFC community! :)
 
I noticed in the new version that workers can now only move 1 territory away from your borders. I was wondering if there was away to mod the game so all units had a maximum distance that would raise as the game moved on. (For example at the beginning, a unit could only move 30 or so tiles away from your border) This would make it more realistic as it would prevent the Chinese from contacting Babylon and Egypt Early on.
 
I noticed in the new version that workers can now only move 1 territory away from your borders. I was wondering if there was away to mod the game so all units had a maximum distance that would raise as the game moved on. (For example at the beginning, a unit could only move 30 or so tiles away from your border) This would make it more realistic as it would prevent the Chinese from contacting Babylon and Egypt Early on.

Interesting concept - I think it should be play-tested.
I would suggest making the limit increased with certain techs.
Some obvious techs would be:
Hunting, Compass, Astronomy... the more advanced technologically you are, the farther your civ can support a military or recon unit from your border.
 
Interesting concept - I think it should be play-tested.
I would suggest making the limit increased with certain techs.
Some obvious techs would be:
Hunting, Compass, Astronomy... the more advanced technologically you are, the farther your civ can support a military or recon unit from your border.
Exactly, this is one of the 4 main 'impossible' things I want to add to the game for realism:
1. Max distance from home (To be raised by certain techs)
2. Military units require 1 food each (to be dispersed among cities according to population). For balance reasons each citizen would also require 1 food.
3. Units would decrease the city by 1 population.
4. Cities produce gold from tax. This would totally change how the game is played and would need alot of play testing to get it to work.
 
Uh oh. New version. It fixes the python exceptions that appeared if you played with one of the early civs. Sorry for that!

Download the full RFC Epic/Marathon 1.21.

For those that already downloaded version 1.2, you can use this very small patch to update your version to 1.21.
 
Some more questions:
- changeGoldenAgeModifier(int iChange) - changes the Golden Age modifier of a given player
What is a Golden Age modifier? How does it affect the player?
- setConversionTimer(int iNewValue) - sets the conversion timer (useful if you manually convert a civ through Python)
- changeConversionTimer(int iChange) - changes the conversion timer
What is the distinction between the two? There is no conversion time by default?
- setStrike(bool bNewValue) - sets the player's units on and off strike
Straight forward enough. But does the strike ever stop unless you manually set bNewValue = False?
 
What is a Golden Age modifier? How does it affect the player?

It changes the length of the player's Golden Age. It's basically the method used by one of the wonders... don't remember the name, but it doubles your GA length. Change it by 100 and the player's GA will last 16 turns, instead of 8.

What is the distinction between the two? There is no conversion time by default?

Unlike GA modifier, this is a dynamic value handled by the DLL. Normally it's 0, but once you convert to a religion it changes to 8 or whatever the default was, and goes down by 1 every turn.

As with any set/change pairs, set sets the value to x, overriding whatever the DLL set it to, while change changes the current value by x.

Straight forward enough. But does the strike ever stop unless you manually set bNewValue = False?

IIRC it stops automatically if you have the funds. Basically the DLL handles it on its own as well, and will turn it on and off depending on whether you can pay the maintenance for your units or not. So if you want to force it in Python, you have to set it to True every turn you want the strike to last.
 
It changes the length of the player's Golden Age. It's basically the method used by one of the wonders... don't remember the name, but it doubles your GA length. Change it by 100 and the player's GA will last 16 turns, instead of 8.
I gather that Golden Age time scales with game speed also?

Unlike GA modifier, this is a dynamic value handled by the DLL. Normally it's 0, but once you convert to a religion it changes to 8 or whatever the default was, and goes down by 1 every turn.
Is there scaling already built-in or does one have to use RFCUtils.getTurns() to do this?

IIRC it stops automatically if you have the funds. Basically the DLL handles it on its own as well, and will turn it on and off depending on whether you can pay the maintenance for your units or not. So if you want to force it in Python, you have to set it to True every turn you want the strike to last.
Aha, so its basically a one turn deal in practice? Because if you're bankrupt and have a negative money flow your units are already on strike? And if you have money or have a income the strike will end in any case? Ok, got it.

Practically all the new Python extensions will be utilized in PyScenario, so I can't thank you enough! :king:
 
GA and conversion are scaled in the DLL, so you shouldn't do any extra scaling in Python.
I already did. :p Hmm... Are you sure about the scaling on conversion time? Because I'm not seeing it. :confused:
 
I already did. :p Hmm... Are you sure about the scaling on conversion time? Because I'm not seeing it. :confused:

Yeah, you're right, in case of conversion you're setting it manually, so it won't be scaled. GA itself is a modifier so this doesn't apply.
 
Ok, its taken care of then. :goodjob:

Regarding units on strike - what does it actually do? Because I get the warning message and the sound effect - but much of nothing happens to the actual units. Aren't they supposed to defect or something? :confused:
 
Back
Top Bottom