1. We have added a Gift Upgrades feature that allows you to gift an account upgrade to another member, just in time for the holiday season. You can see the gift option when going to the Account Upgrades screen, or on any user profile screen.
    Dismiss Notice

RFC Epic/Marathon

Discussion in 'Rhye's and Fall Modmods' started by embryodead, Feb 19, 2010.

  1. kravixon

    kravixon Warlord

    Joined:
    Aug 9, 2008
    Messages:
    214
    How is the game speed with this on marathon mode? In normal RFC things tend to start to slow down in the late 1600s and get progressively slower into the late game. Playing RFC in Marathon, does start getting slower around the same date or would it happen around those turn numbers (which if playing marathon would be much sooner)?
     
  2. Leoreth

    Leoreth 心の怪盗団 Moderator

    Joined:
    Aug 23, 2009
    Messages:
    33,362
    Gender:
    Male
    Location:
    Leblanc
    There's something to it. I remember in one of my Persia games (not sure about the patch version, though) my Great Wall didn't extend to my Egyptian borders.
     
  3. embryodead

    embryodead Caliph

    Joined:
    Jan 1, 2003
    Messages:
    5,179
    Location:
    basement
    Not sure what are you referring to, but the calendars on Epic and Marathon were done in such a way as to mirror RFC calendar on Normal speed, with prolonged Ancient times etc. If you mean turn times - they should be getting slower at the same time, or earlier, due to larger number of units. There are speed improvements in this modmod, however, that make mid- to late-game turn times roughly 20% faster compared to RFC.

    Nothing happens on explicit turns, however. On Epic and Marathon, all things are scaled to match years from Normal game, not turn numbers (e.g. the research slow down you may know from RFC).
     
  4. dcode147

    dcode147 Warlord

    Joined:
    Jan 19, 2006
    Messages:
    178
    Regarding continents, for someone (like me) with no programming knowledge at all, it's really interesting to find out a bit about things behind the scenes such as continent border changes. What continent would Siberia fall under? Fact that AIs can't wage war period aside, it seems like wars between AI controlled Russia and Mongolia have always been particularly lackluster. Would this be more of a result of continent borders or settler&stability maps?
     
  5. Baldyr

    Baldyr "Hit It"

    Joined:
    Dec 5, 2009
    Messages:
    5,530
    Location:
    Sweden
    I believe that Siberia is supposed part of Europe once Russia steps into the arena, but I haven't seen the actual code myself... Also, map areas is a subject I'm not very familiar with myself.
     
  6. Magnificent One

    Magnificent One Stetsons are cool.

    Joined:
    Oct 17, 2009
    Messages:
    359
    Location:
    Scotland
    Im sure i seen a map which listed Northern Siberia as Europe.But IMO Europe should end at the Urals.
     
  7. Baldyr

    Baldyr "Hit It"

    Joined:
    Dec 5, 2009
    Messages:
    5,530
    Location:
    Sweden
    I think its because the Russians hardly ever colonize Siberia. If its part of another continent they would be eve less inclined to do so.

    Personally I'm just gonna script Russian colonization of Siberia. :rolleyes:
     
  8. embryodead

    embryodead Caliph

    Joined:
    Jan 1, 2003
    Messages:
    5,179
    Location:
    basement
    Checked the code and:
    - Siberia and part of Central Asia counts as Europe
    - North Africa counts as Europe
    - Constantinople becomes Asian on Viking's birth
    - North Africa changes from Europe to Africa on England's birth

    North Africa is never Asian, but Arabs flip a city there so they consider it their secondary continent, though it still cripples them, same as Turkey. From my tests with SoI (where I abandoned fake continents in the end) the main problem is that the AI does not move units between continents by land, it won't even build roads between them, though in RFC cities are close enough for the city-roads to form a network.
     
  9. Baldyr

    Baldyr "Hit It"

    Joined:
    Dec 5, 2009
    Messages:
    5,530
    Location:
    Sweden
    I've been having a similar issue with my own project and I think I finally cracked it. This is what you wanna add to CvRFCEventHandler.py:
    Code:
    gc = CyGlobalContext() 
    [B]if gc.getMap().getMapScriptName():
            sd.load()[/B]
    What it does is that it identifies whether or not the module is being initialized before or after the game has started. In the latter case there would already be stored scriptData available in the CyGame instance, so that should be then loaded. You have to save the game (ctrl + s) before altering any .py files though, but its not necessary to reload the actual game.

    (The conditional statement can of course be anything that returns a empty string or a None type before the game starts.)
     
  10. embryodead

    embryodead Caliph

    Joined:
    Jan 1, 2003
    Messages:
    5,179
    Location:
    basement
    Shouldn't getMapScriptName always return empty string, if I don't store anything there?
     
  11. Baldyr

    Baldyr "Hit It"

    Joined:
    Dec 5, 2009
    Messages:
    5,530
    Location:
    Sweden
    It actually returns the full path to the current map script/WBS - the actual file. You could as well check for game speed, difficulty level, calendar, starting year or anything really that would return None before there is a game instance.
     
  12. embryodead

    embryodead Caliph

    Joined:
    Jan 1, 2003
    Messages:
    5,179
    Location:
    basement
    Then it should be "if not", shouldn't it?

    or are you reloading every turn?
     
  13. Baldyr

    Baldyr "Hit It"

    Joined:
    Dec 5, 2009
    Messages:
    5,530
    Location:
    Sweden
    No, but you could just test it yourself.
    Hmm... I don't know what you mean by "reload".

    What this does is that it doesn't fire the sd.load() invocation then the game (initially) initialized - pre-game. Then the scriptDict is setup via the regular call from onBeginGame() as intended.

    But when Python is reloaded during game play (whenever any previously loaded .py file is changed/saved) then there will be a map name path (or whatever you wanna call it) returned making the conditional statement pass - and sd.load() is executed without having to be called via any of the game event calls (like onLoadGame() or whatever).

    I really don't know how to explain this... :crazyeye:
     
  14. embryodead

    embryodead Caliph

    Joined:
    Jan 1, 2003
    Messages:
    5,179
    Location:
    basement
    oh OK I didn't get that it has to be put at the top, on the module level. Thanks!
     
  15. Baldyr

    Baldyr "Hit It"

    Joined:
    Dec 5, 2009
    Messages:
    5,530
    Location:
    Sweden
    What about player/team color? (I can't seem to find anything in the API for this.) I have the dynamic Byzantium thing working sans the color - Byzantium in the 3000 BC has the Celtic green color... :p
     
  16. embryodead

    embryodead Caliph

    Joined:
    Jan 1, 2003
    Messages:
    5,179
    Location:
    basement
    Color is in the CivilizationType (XML). Never changed it but if it doesn't work, then well, I don't know!

    EDIT: If the above doesn't work, there's a way to force another color but not without another DLL update.
     
  17. Baldyr

    Baldyr "Hit It"

    Joined:
    Dec 5, 2009
    Messages:
    5,530
    Location:
    Sweden
    I think the problem with Celtia becoming Byzantium dynamically is that Byzantium's XML is never loaded on initialization. This is also why I couldn't get the civilization type with CivilizationTypes.CIVILIZATION_BYZANTIUM - I had to essentially get it with getInfoTypeForString().

    The same thing should be true about Celtia in the AD 600 scenario.

    So my conclusion is that the team retains the color that was specified when the CivilizationTypes were set by loading the specified XML from the entries in the WBS. And the team color doesn't change dynamically.
     
  18. embryodead

    embryodead Caliph

    Joined:
    Jan 1, 2003
    Messages:
    5,179
    Location:
    basement
    The XML is loaded, it's just the color that seems to be the problem. I transform Ghorids into Delhi Sultanate, and the latter is never loaded in the WBS either. I just used XML index to refer to it. It all works, icons, UUs, UBs etc. come from XML after all, but my civs have the same color so I never looked at it. Color can be set with GC.getInitCore().setColor(PlayerTypes eID, PlayerColorTypes eColor), seperately from CivilizationType, but that's not exposed yet.
     
  19. Baldyr

    Baldyr "Hit It"

    Joined:
    Dec 5, 2009
    Messages:
    5,530
    Location:
    Sweden
    Oh, any updates coming up? :D
     
  20. Baldyr

    Baldyr "Hit It"

    Joined:
    Dec 5, 2009
    Messages:
    5,530
    Location:
    Sweden
    I finally got around to testing setCivName() but nothing happens. :confused: I've tried both a script and in the console. There are no exceptions either, for that matter. All names just stay the same whatever I do...

    edit: I have also confirmed with getCivilizationDescription() and the other methods that none of the forms have changed.
     

Share This Page