View Full Version : RFC w Ireland v1 ...new civ, new flag, new everything...well, almost everything
antaine Mar 30, 2010, 07:16 PM ***UPDATED FILE v2.4
http://www.filefactory.com/file/b1275ah/n/v24_RFC_Irish_marathon.zip
This is not exactly a final release, but it has some alterations to spawns and the like made in reponse to suggestions from players. I have also retooled the problematic first UHV. I'm thinking that the next or final version should include stronger garrisons in the indy cities. I recognize the necessity of razing the british cities before the english spawn, but I'm not sure I like the idea that they all can be razed with the irish starting units. I also think that Eabhrac needs to be made barb instead of indy since the vikings no longer attempt to capture it, whereas they used to do so every time. thoughts?
***UPDATED FILE v2.3
http://www.filefactory.com/file/b0fc1ha/n/RFC_Irish_marathon.zip
I have corrected the art for the pub and the embassy in this version. Other than translations and hitherto unseen major bugs and imbalances, I believe this will eventually be labeled the final release.
***UPDATED FILE v2.2
http://www.filefactory.com/file/b0fb6b6/n/RFC_Irish_marathon.zip
this version fixes the first UHV, which was broken by the marathon mod.
***UPDATED FILE v2.1
http://www.filefactory.com/file/b0fb05f/n/RFC_Irish_marathon.zip
this version fixes the typo in the Ireland civilopedia entry and adds a short one for Brian Boru. It also changes the starting units for the Celtic cities and the starting location for the Irish by one tile (Dublin's location instead of Tara). Still to be done are proper translations of everything translatable and the button graphics for the pub and the embassy.
***UPDATED FILE v2.0
http://www.filefactory.com/file/b14h870/n/RFC_Irish_marathon.zip
this version enables epic and marathon playing, includes a 600AD start, and makes the UHVs more challenging for the Irish. Please post any bugs that pop up, as they may be related to the enabling of marathon and epic. I still have to design new buttons for the Pub and the Irish Embassy (previous attempts to use different art for them caused crashes), correct text omissions (like Brian Boru's pedia entry), and get translations done...but since these things are cosmetic and don't critically affect gameplay, I thought it best to make what I have available so bug issues can be exposed and remedied most expeditiously. Eagerly awaiting your feedback...
***UPDATED FILE v1.31
http://www.filefactory.com/file/b0f0843/n/RFC_Irish.zip
***UPDATED FILE v1.3
http://www.filefactory.com/file/b0f0156/n/RFC_Irish.zip
***UPDATED FILE v1.2
http://www.filefactory.com/file/b0efd8d/n/RFC_Irish.zip ***there is a crash issue with two of the art files in this version, until I can fix it, be sure to replace the files with the two from post #9 in this thread
In modding Rhye's for RFC with Celts, I learned many things.
One of the things I learned was that it was so hard to incorporate the Celts as they didn't really fit the paradigm of a united empire, despite having an ancient and widespread culture. I realized that the mod was fast becoming an attempt to add Ireland to the RFC world while incorporating features of Celtic population and achievement that predated a recognizable sense of "Ireland."
I've also come to suspect (with things noticed by people on the forum) that moving the Celts as I did may have also caused issues with civs thinking they were one slot off from where they really were in the spawn rotation, and so Spain thought it was France and France thought it was England (etc) for purposes of New World colonization.
So I've decided to redo the project from scratch, incorporating other mods and features I liked. I'm going to leave the Celts and Carthaginians alone, as the Celts had a long history of disunited tribes. I will, however, tinker with the minor-civ Celts to add more settlements that will more closely reflect Celtic settlement.
I will take a page from my old book and replace Khmer with "Ireland." 660 AD marks the point at which a newly Christianized Ireland began to coalesce and offer a face with a sense of national identity to the world; however, in order to do this I won't simply replace iKhmer with iIreland, but rather redefine all of iKhmer with new values. This should help fool the game more effectively and avert the problems I encountered with the Celts, but when you look into the game code you will see that the game still things the civ is Khmer.
Enjoy, and I'm open to suggestions and notification of problems.
The File:
http://www.filefactory.com/file/b0ef2b0/n/RFC_Irish.zip
THINGS TRANSFERRED FROM RFC WITH CELTS LARGELY INTACT:
Holy City re-allocation
Minor city spawn dates and locations
Map enlargement
Reality Checks to maintain historical pacing with key civs when AI controlled
NEW THINGS:
Khmer now redefined as Ireland
New flag designed for Ireland (harp on green)
New UB for Ireland (Irish Pub)
New UU for Ireland (Raparee)
New UHVs for Ireland
New UP for Ireland (productivity from the sea...this should help alleviate the overcrowding on the tiny Emerald Isle)
Irish resources changed to ones historically associated with Ireland (Coal in the south to represent rich peat deposits, Sheep, Marble in the west for the world-famous Connemara marble, and stone in the central region near the Burren).
Dynamic names for Ireland and other altered to be appropriate
DLL recompiled accordingly
STILL TO BE DONE:
The button for the Irish embassy still shows up as Khmer
I'd like to design a new button for the Pub...the jail was a nice shape for it in terms of the city view, but I can't figure out how to use that 3D building with a custom designed button.
Anything else that pops up
Panopticon Mar 30, 2010, 07:42 PM Try change XML\ArtDefines "button" entry on line 1795 to read
<Button>Art/Interface/Buttons/Civilizations/Harp.dds</Button>
antaine Mar 30, 2010, 08:44 PM that did it! Much thanks.
Replacing these two files with the attached will give the harp icon as the button for them both (so you don't have a police badge for the pub or the Khmer flag for the embassy).
I'm eager to hear other comments as people play the game as well =)
Thanks again.
AnotherPacifist Mar 30, 2010, 09:10 PM Can't wait to play it, although I'll be unhappy if the Christian holy city is razed by barbs.:(
Maybe you can include a 600 AD scenario too?
antaine Mar 30, 2010, 09:12 PM Hm...well, I've just now noticed that there's a problem with the first UHV showing succeeded when it is not. I'm open to ideas on how to fix it.
AnotherPacifist Mar 30, 2010, 09:26 PM The first criteria is a piece of cake. You just need to conquer Dunedin and since it's a "by" criteria, it kicks in even before the English show up. More pertinent would be a "in 1500" rather than "by 1500."
Oh, and thanks for the numerous Christian missionaries. I think starting with 3 is probably enough?
And of course, if you raze all the Celtic cities on Britain and save your initial settlers until after 820 to found a city in Scotland and Wales, the English won't have any iron.
antaine Mar 30, 2010, 09:38 PM yes, that was all I meant to start them with...I'll be fixing that and for the Americans as well
I've altered that line in victory to read
if (iGameTurn >= i860AD and iGameTurn <= i1500AD):
and defining i860AD
I'll post a new riseandfall and victory in a few minutes. I'd also like to play with ocean squares so that the vikings would make landfall nearer york instead of edinburgh...such is a bit more historically accurate.
antaine Mar 30, 2010, 10:03 PM here you go, this should fix the UHV, the missionaries make the vikings more likely to take York/Jorvik instead of Edinburgh. I'll be giving a link to the complete package, updated, as well
antaine Mar 30, 2010, 10:51 PM hm, the game keeps crashing when I try to build a pub, but I can't see clearly what's causing the error...
It has to do with the button changes I just made, so here are the original art files...these don't seem to replicate the crash
AnotherPacifist Mar 31, 2010, 05:47 AM I wonder if you should adjust the starting techs for Ireland? Right now they are rather unhistorical (no sailing, theology, feudalism)? To be creative you can eliminate machinery but give Aesthetics and Literature (i.e. the knowledge to make a Book of Kells and potentially the Great Library if it hasn't been built yet).
antaine Mar 31, 2010, 07:07 AM I'm thinking so...I'd originally thought that using another 660AD civ would have done the trick for the techs, but I'm thinking I may just copy the list that England starts with, or France.
AnotherPacifist Mar 31, 2010, 07:53 AM I would eliminate machinery since the English should have better tech for a fighting chance. Giving them aesthetics and literature would be a good experiment (usually these won't result in Greek wonders being built in Ireland and historically Irish monasteries were a major repository of knowledge in the Dark Ages--in my game all of Europe had succumbed to the barbs because China built the Great Wall)
antaine Mar 31, 2010, 08:16 AM Done and done. I'll be putting a link to the new complete package up at the top in a few minutes
antaine Mar 31, 2010, 09:09 AM sigh...the "control england" uhv still doesn't work...now it shows "NO" too early.
thoughts?
AnotherPacifist Mar 31, 2010, 09:59 AM You should copy the "in" criteria for Germany. (I think it's "if year is 1500 then check the areas" and don't need to check before 1500).
Also, the 3rd criteria is fairly simple as long as the Christian shrine is still around. I would make it at least 50%.
antaine Mar 31, 2010, 10:18 AM but if the Irish vassalize the English in 1300, I want the UHV to reflect a success, even if England is again independent in 1450. I think what's happened is that I've only defined 0,0 failre and 0,1 success, without also defining a "not yet" to be returned in the meantime.
I think i need to say "between 860 and 1500 check, if England is owned by Ireland return 'yes,' if not, return 'not yet'" If after 1500 check, if England is not owned by Ireland return 'no.'"
The complication was modeling it on the Mongols, who spawn after China...therefore, there's not need to require the checks to start "after" a given year as it is with the english spawn.
I'm going to work on figuring out how to do that in python, but if anybody has it figured out in the meantime and would care to post the lines I'd be grateful for the help.
antaine Mar 31, 2010, 10:22 AM I'm going to try this now:
if (iGameTurn >= i860AD and iGameTurn <= i1500AD):
bEngland = False
if (self.getGoal(iKhmer, 0) == -1):
bEngland = self.checkOwnedCiv(iKhmer, iEngland)
if (bEngland):
self.setGoal(iKhmer, 0, 1)
if (iGameTurn == i1500AD+1):
if (self.getGoal(iKhmer, 0) == -1):
self.setGoal(iKhmer, 0, 0)
antaine Mar 31, 2010, 10:37 AM I think that did it. New package going up at the top shortly
nody Mar 31, 2010, 02:02 PM Did you place independent cities on 'what used to be Khmer'?
antaine Mar 31, 2010, 04:33 PM I enabled the Angkor spawn in barbs.py, but that was it. I'm open to suggestions for which cities people think should spawn and on what years.
I'd also like to know if people think the UHVs are realistic given the time required. The "spread Christianity" one is virtually assured to happen even if you don't do anything to advance it, but such is the same for the Arabs the way Rhye has them coded. The one where you have to build the buildings is doable, but I just made it under the wire (the 1470s) despite starting on the requisite building production my very first turn. If England spawns at war with Ireland, as it often does, it makes the UHV problematic, but still possible.
My concern is that it is not realistic to vassalize or conquer England before 1500, or, if it is, it is not possible AND spending all your time building libraries and monasteries.
Should I move the deadline for that uhv later? And if so, when? I thought it might be apropos to pick a date in which the real England cemented greater control over the real Ireland. The 1500s was my first thought, but 1690 for the Battle of the Boyne, 1800 for the Act of Union or 1920 for Irish independence (this last choice would basically mean that Ireland would have to vassalize or conquer England any time during the period where England had dominated Ireland in real history).
Thoughts on this? Has anyone managed to achieve all three at the same time?
AnotherPacifist Mar 31, 2010, 04:37 PM I thought 5 libraries and monasteries was a breeze (as long as you have 5 cities you can always WHIP them).
It takes a little thinking ahead of time, but Scotland and Wales (which are usually just defended by indy WARRIORS) can be easily conquered as long as you time your conquering on the 3rd turn of the English spawn (it's actually GOOD that they declare on you on spawn because then you won't have problems with free English troops). Then make peace and build tons of troops with your iron to overwhelm London and Penzance.
The Christianity UHV is just plainly too simple as long as Europe is Christian and not Islamic.
antaine Mar 31, 2010, 05:16 PM hm, I hadn't thought of doing the libraries that way. I waited for the English spawn while making another settler, let them spawn, lucked out with peace, founded two more cities, one in western Scotland (which you have to do before they get their settler up there and found inverness) and built them that way.
Perhaps I should raise the christianity requirement to something more ambitious? 80%? Either that or remove all starting missionaries from european civs...After all, Europe is largely Christian today because of Irish missionaries in the dark ages. My concern with that would be if the human player was not playing Ireland, Europe would wind up largely islamic.
Perhaps I need to pick a higher rate and an end point (say, 60% by the end of the Renaissance). The rate should be something that the game will not accomplish left to its own devices (and still allow for spawns-with-missionaries and a natural spread of Christianity throughout Europe), but something that is achievable by the Irish human player by making, say, 15 missionaries before that period.
Actually, what if the uhv isn't the actual % of Christianity at all, but rather the number of missionaries built before X date? I don't know if the game can even count like that, or if it can only count the number of units of a type in existence at any given moment...
...I'm thinking I should probably go with a higher rate and an end date (probably the end of the renaissance) for that uhv...thoughts on what that rate should be before the end of the renaissance?
AnotherPacifist Mar 31, 2010, 05:25 PM A better (and more ambitious) goal would be to have all of Europe (including Vikings and Russians) adopt Christianity AND 40% Christianity before 1400 AD. Since you're starting out with 3000 BC, it's really not out of the question for Islam and even Buddhism to be around and even be dominant. The Dutch often get some weird religion like Islam or Judaism from nowhere. Spain is terrible at opening borders if they don't share the same religion as you, so spreading it by the sword might be necessary.
antaine Mar 31, 2010, 08:17 PM I'd also like to go through and add the "marathon and epic" mod to this, so that you could use any time frame...would such a massive effort be worth it?
antaine Mar 31, 2010, 11:10 PM Alright, I've decided to go ahead and use winmerge to merge the RFC Marathon files with my own. I'm recompiling now, but for some reason when I compile a DLL for scratch it takes 6 or 8 hours...so I'm doing it overnight.
In any event, if it works, I'll post the results as v2, and all future versions of this mod will have different speeds enabled...and yes, that one will include a 600AD start.
Baldyr Apr 01, 2010, 10:49 AM As soon as I don't have the time to actively follow this forum it seems like you pull of something like this. :eek: Very nicely done! :goodjob:
I haven't got the time to do any actual play testing, but I did notice that you haven't done any custom icons for the Irish UU or UB. Also, there seem not to be any Civilipedia text for Brian Boru. And there is a decoding issue of some sort (or a typo) in the civilization description (second paragraph, third sentence). Other than that - looking good! :king:
Perhaps I should raise the christianity requirement to something more ambitious? 80%? Either that or remove all starting missionaries from european civs...After all, Europe is largely Christian today because of Irish missionaries in the dark ages. My concern with that would be if the human player was not playing Ireland, Europe would wind up largely islamic.
You could just condition the Missionary spawns to whether or not the human player is controlling the Irish. I believe the function you need is CyPlayer.isHuman().
Actually, what if the uhv isn't the actual % of Christianity at all, but rather the number of missionaries built before X date? I don't know if the game can even count like that, or if it can only count the number of units of a type in existence at any given moment...
If you can't find the function you need in the API, you could code the feature yourself. Rhye counts stuff in his code (like UHVs), so you could look at this code. (You need to pickle a variable, and you need to add it to StoredData.py in order to give it a default value. Then you need a function each for setting and getting the value.)
Of course, it would help if you learned some actual Python. :D The fact that you really haven't only makes the feat of this modmod even more impressive!
antaine Apr 01, 2010, 10:58 AM Hm, I wrote a description for Brian...maybe I forgot to cut-and-paste it. I'll look into the typo as well.
Good idea with the missionaries. I may do that, or I may raise the rate. Theoretically, the Irish have been exporting clergy to English speaking countries (and non-English speaking ones as well) not only in the middle ages but throughout the age of imperialism right into 20th century New York and Boston.
Thanks for the pat on the back, btw...I'm sorry that I really haven't had the opportunity to do too much python learning (mea culpa, mea culpa)...when I'm not writing my thesis or grading students' papers the only new coded system I seem to have time to learn is the Irish language itself.
I'm going ahead with the incorporation of Marathon and Epic speeds atm, but having problems compiling the new DLL. I've posted a question in the appropriate forum for it, and have an idea I'm going to try to make work in the meantime. With any luck, there'll be a functioning v2 by Easter with enabled speeds, an adjusted UHV and minor fixes before Easter (and a 600 AD start ;-) ).
Baldyr Apr 01, 2010, 11:38 AM About the Epic/Marathon modmod. I don't know if it can be considered finished by any stretch of the word, so you might wanna wait until all features are incorporated proper and all issues have been addressed. Otherwise you might easily end up fixing thing that are already fixed. Indefinitely.
Very good Civilopedia entries, by the way. :goodjob: I'm so gonna read up on Brian once you include the passage.
antaine Apr 01, 2010, 11:43 AM hm...well, my third try is compiling as I type, so we'll see what comes of it all. For some reason I couldn't merge the marathon mod into my successfully, so I merged the marathon mod with the original RFC (and then made sure it worked), then merged in my Khmer changes and changed get turn code where necessary...we'll see if the compile works now and then we'll see what the shortcomings are.
antaine Apr 01, 2010, 11:50 AM I put the error log to the recompile here:
http://forums.civfanatics.com/showthread.php?p=9058821#post9058821
I've just redone it all from scratch after merging the marathon mod into the original RFC and am trying to recompile it...which SHOULD work...but I'd still like to know what went wrong the first two times...
AnotherPacifist Apr 01, 2010, 09:56 PM Just an example of how to destroy all the Gallic cities outside of Ireland before the English spawn:
http://forums.civfanatics.com/showthread.php?t=359841
I think you've got to make the 3rd criteria more like 60% for it to be a more worthwhile game, or make it 40% before 1400 AD.
antaine Apr 01, 2010, 10:18 PM Actually, I was thinking of raising it to 80%, especially if I can get the marathon mod working correctly
AnotherPacifist Apr 01, 2010, 10:27 PM Um, that's not quite feasible. 80 percent practically means that you have to spread it to every single city in the world, unless you merge the inquisitor mod with your mod.
antaine Apr 01, 2010, 10:33 PM Indeed, 60% it will be.
The only snag at the moment seems to be a python error after merging in the marathon mod. I'm getting this, but I'm not sure how to remedy the problem:
File "RiseAndFall", line 330, in getExileData
EOFError
the line in question reads:
scriptDict = pickle.loads( gc.getGame().getScriptData() )
the lines around it read (it's the second line, below):
def getExileData( self, i ):
scriptDict = pickle.loads( gc.getGame().getScriptData() )
return scriptDict['lExileData'][i]
def setExileData( self, i, iNewValue ):
scriptDict = pickle.loads( gc.getGame().getScriptData() )
scriptDict['lExileData'][i] = iNewValue
gc.getGame().setScriptData( pickle.dumps(scriptDict) )
antaine Apr 01, 2010, 11:04 PM if this helps, this is the turn by turn python log
sys.modules =
{'zipimport': <module 'zipimport' (built-in)>, 'signal': <module 'signal' (built-in)>, '__builtin__': <module '__builtin__' (built-in)>, 'sys': <module 'sys' (built-in)>, '__main__': <module '__main__' (built-in)>, 'exceptions': <module 'exceptions' (built-in)>, 'CvPythonExtensions': <module 'CvPythonExtensions' (built-in)>}
sys.builtin_module_names =
('CvPythonExtensions', '__builtin__', '__main__', '_bisect', '_codecs', '_codecs_cn', '_codecs_hk', '_codecs_iso2022', '_codecs_jp', '_codecs_kr', '_codecs_tw', '_csv', '_heapq', '_hotshot', '_locale', '_multibytecodec', '_random', '_sre', '_subprocess', '_symtable', '_weakref', '_winreg', 'array', 'audioop', 'binascii', 'cPickle', 'cStringIO', 'cmath', 'collections', 'datetime', 'errno', 'exceptions', 'gc', 'imageop', 'imp', 'itertools', 'marshal', 'math', 'md5', 'mmap', 'msvcrt', 'nt', 'operator', 'parser', 'regex', 'rgbimg', 'sha', 'signal', 'strop', 'struct', 'sys', 'thread', 'time', 'xxsubtype', 'zipimport')
1. Using moduleSearchDirs: python\screens\
2. Using moduleSearchDirs: python\entrypoints\
3. Using moduleSearchDirs: python\
4. Using moduleSearchDirs: python\mercenaryutils\
5. Using moduleSearchDirs: python\pywb\
6. Using moduleSearchDirs: python\pitboss\
7. Using moduleSearchDirs: python\pyhelper\
8. Using moduleSearchDirs: python\pyunit\
9. Using moduleSearchDirs: python\_debugtools\
10. Using moduleSearchDirs:
EntryPoint module:cvrandomeventinterface
EntryPoint module:cvscreensinterface
EntryPoint module:cveventinterface
EntryPoint module:cvtranslator
EntryPoint module:cvgameinterface
EntryPoint module:cvoptionsscreencallbackinterface
EntryPoint module:cvwbinterface
EntryPoint module:pbmain
EntryPoint module:cvappinterface
EntryPoint module:hemispheres
EntryPoint module:arboria
EntryPoint module:highlands
EntryPoint module:rainforest
EntryPoint module:terra
EntryPoint module:donut
EntryPoint module:tectonics
EntryPoint module:randomscriptmap
EntryPoint module:big_and_small
EntryPoint module:boreal
EntryPoint module:earth2
EntryPoint module:medium_and_small
EntryPoint module:team_battleground
EntryPoint module:global_highlands
EntryPoint module:cvgameinterfacefile
EntryPoint module:cvmapscriptinterface
EntryPoint module:islands
EntryPoint module:great_plains
EntryPoint module:continents
EntryPoint module:fantasy_realm
EntryPoint module:archipelago
EntryPoint module:wheel
EntryPoint module:lakes
EntryPoint module:tilted_axis
EntryPoint module:inland_sea
EntryPoint module:mirror
EntryPoint module:fractal
EntryPoint module:oasis
EntryPoint module:pangaea
EntryPoint module:hub
EntryPoint module:balanced
EntryPoint module:maze
EntryPoint module:custom_continents
EntryPoint module:shuffle
EntryPoint module:ring
EntryPoint module:cvunitcontrolinterface
EntryPoint module:cvdiplomacyinterface
EntryPoint module:cvdebuginterface
EntryPoint module:cvpopupinterface
EntryPoint module:cvscreenutilsinterface
EntryPoint module:ice_age
load_module CvEventInterface
load_module CvUtil
load_module traceback
load_module CvRFCEventManager
load_module CvEventManager
load_module CvScreensInterface
load_module CvMainInterface
load_module ScreenInput
load_module CvScreenEnums
load_module time
load_module Consts
load_module RFCUtils
load_module PyHelpers
load_module cPickle
load_module CvMercenaryManager
load_module Popup
load_module MercenaryUtils
load_module MercenaryNameUtils
load_module math
load_module CvTranslator
load_module re
load_module SdToolKit
load_module CvMercenaryScreensEnums
load_module CvGameInterface
load_module CvGameUtils
load_module CvGameInterfaceFile
load_module CvDomesticAdvisor
load_module CvTechChooser
load_module CvForeignAdvisor
load_module CvExoticForeignAdvisor
load_module IconGrid
load_module DomPyHelpers
load_module TechTree
load_module CvMilitaryAdvisor
load_module CvFinanceAdvisor
load_module CvReligionScreen
load_module CvCorporationScreen
load_module CvCivicsScreen
load_module string
load_module CvVictoryScreen
load_module CvEspionageAdvisor
load_module CvOptionsScreen
load_module CvReplayScreen
load_module CvHallOfFameScreen
load_module CvDanQuayle
load_module CvUnVictoryScreen
load_module CvDawnOfMan
load_module CvTechSplashScreen
load_module CvTopCivs
load_module random
load_module CvInfoScreen
load_module CvIntroMovieScreen
load_module CvVictoryMovieScreen
load_module CvWonderMovieScreen
load_module CvEraMovieScreen
load_module CvSpaceShipScreen
load_module CvPediaMain
load_module CvPediaScreen
load_module CvScreen
load_module CvPediaTech
load_module CvPediaUnit
load_module CvPediaBuilding
load_module CvPediaPromotion
load_module CvPediaUnitChart
load_module CvPediaBonus
load_module CvPediaTerrain
load_module CvPediaFeature
load_module CvPediaImprovement
load_module CvPediaCivic
load_module CvPediaCivilization
load_module CvPediaLeader
load_module CvPediaSpecialist
load_module CvPediaHistory
load_module CvPediaProject
load_module CvPediaReligion
load_module CvPediaCorporation
load_module CvWorldBuilderScreen
load_module CvWorldBuilderDiplomacyScreen
load_module CvDebugTools
load_module CvDebugInfoScreen
load_module CvMapGeneratorUtil
load_module CvGFCScreen
load_module CvPopupInterface
load_module CvScreenUtilsInterface
load_module CvScreenUtils
init-ing world builder screen
load_module CvWBPopups
load_module CvCameraControls
load_module CvAdvisorUtils
load_module CvRFCEventHandler
load_module StoredData
load_module RiseAndFall
load_module CityNameManager
load_module Barbs
load_module Custom
load_module Religions
load_module Resources
load_module UniquePowers
load_module AIWars
load_module Congresses
load_module Victory
load_module Stability
load_module Plague
load_module Communications
PY:OnInit
load_module CvAppInterface
load_module Archipelago
load_module Balanced
load_module Continents
load_module Custom_Continents
load_module Fantasy_Realm
load_module Fractal
load_module Great_Plains
load_module Highlands
load_module Hub
load_module Ice_Age
load_module Inland_Sea
load_module Islands
load_module Lakes
load_module Maze
load_module Mirror
load_module Oasis
load_module Pangaea
load_module Ring
load_module Shuffle
load_module Team_Battleground
load_module Terra
load_module Tilted_Axis
load_module Wheel
load_module Arboria
load_module Big_and_Small
load_module Boreal
load_module Donut
load_module Earth2
load_module Global_Highlands
load_module Hemispheres
load_module Medium_and_Small
load_module Rainforest
load_module RandomScriptMap
load_module Tectonics
load_module CvWBInterface
load_module CvWBDesc
load_module array
PY:loadDesc:mods\rfc irish marathon\publicmaps\rfc irish marathon 600ad start, curDir:C:\Program Files\2K Games\Firaxis Games\Sid Meier's Civilization 4 Complete\Beyond the Sword
Reading game desc
Reading teams desc
reading team 0
reading team 1
reading team 2
reading team 3
reading team 4
reading team 5
reading team 6
reading team 7
reading team 8
reading team 9
reading team 10
reading team 11
reading team 12
reading team 13
reading team 14
reading team 15
reading team 16
reading team 17
reading team 18
reading team 19
reading team 20
reading team 21
reading team 22
reading team 23
reading team 24
reading team 25
reading team 26
reading team 27
reading team 28
reading team 29
reading team 30
Reading players desc
load_module encodings
load_module encodings.latin_1
Reading map desc
Reading/creating 8432 plot descs
Reading/creating 0 sign descs
WB read done
PY:Player 0's alive status set to: 1
PY:Player 1's alive status set to: 1
PY:Player 2's alive status set to: 1
PY:Player 3's alive status set to: 1
PY:Player 4's alive status set to: 1
PY:Player 5's alive status set to: 1
PY:Player 6's alive status set to: 1
PY:Player 7's alive status set to: 1
PY:Player 8's alive status set to: 1
PY:Player 9's alive status set to: 1
PY:Player 10's alive status set to: 1
PY:Player 11's alive status set to: 1
PY:Player 12's alive status set to: 1
PY:Player 13's alive status set to: 1
PY:Player 14's alive status set to: 1
PY:Player 15's alive status set to: 1
PY:Player 16's alive status set to: 1
PY:Player 17's alive status set to: 1
PY:Player 18's alive status set to: 1
PY:Player 19's alive status set to: 1
PY:Player 20's alive status set to: 1
PY:Player 21's alive status set to: 1
PY:Player 22's alive status set to: 1
PY:Player 23's alive status set to: 1
PY:Player 24's alive status set to: 1
PY:Player 25's alive status set to: 1
PY:Player 26's alive status set to: 1
PY:Player 27's alive status set to: 1
PY:Player 28's alive status set to: 1
PY:Player 29's alive status set to: 1
PY:Player 30's alive status set to: 1
PY:Player 31's alive status set to: 1
map rebuild. gridw=124, gridh=68
preapply plots
map apply - recalc areas/regions
apply plots
apply signs
Randomize Resources
WB apply done
PY:City Acquired Event: Palermo
PY:City Acquired and Kept Event: Palermo
PY:City Acquired Event: Brindisi
PY:City Acquired and Kept Event: Brindisi
8500 - gold
8501 - research
8502 - culture
8503 - espionage
8483 - food
8484 - production
8485 - commerce
8550 - judaism
8551 - judaism
8552 - christianity
8553 - christianity
8554 - islam
8555 - islam
8556 - hinduism
8557 - hinduism
8558 - buddhism
8559 - buddhism
8560 - confucianism
8561 - confucianism
8562 - taoism
8563 - taoism
3 SCREEN TURNED ON
99 SCREEN TURNED ON
('leader starting switch:', 17, 'in civ', 3)
('leader starting switch:', 24, 'in civ', 7)
('leader starting switch:', 13, 'in civ', 16)
('leader starting switch:', 8, 'in civ', 17)
('leader starting switch:', 36, 'in civ', 18)
('leader starting switch:', 50, 'in civ', 26)
PY:saveDesc:C:\users\crossover\My Documents\My Games\Beyond the Sword\Saves\WorldBuilder\WBQuickSave, curDir:C:\Program Files\2K Games\Firaxis Games\Sid Meier's Civilization 4 Complete\Beyond the Sword
WBSave done
PY:OnPreSave
load_module pickle
PY:Player 0's alive status set to: 0
PY:Player 1's alive status set to: 0
PY:Player 3's alive status set to: 0
PY:Player 4's alive status set to: 0
PY:Player 5's alive status set to: 0
PY:Player 6's alive status set to: 0
PY:Player 7's alive status set to: 0
PY:Player 9's alive status set to: 0
PY:Player 10's alive status set to: 0
PY:Player 14's alive status set to: 0
PY:Player 15's alive status set to: 0
PY:Player 16's alive status set to: 0
PY:Player 17's alive status set to: 0
PY:Player 18's alive status set to: 0
PY:Player 19's alive status set to: 0
PY:Player 20's alive status set to: 0
PY:Player 21's alive status set to: 0
PY:Player 22's alive status set to: 0
PY:Player 23's alive status set to: 0
PY:Player 24's alive status set to: 0
PY:Player 25's alive status set to: 0
PY:Player 26's alive status set to: 0
PY:Player 13's alive status set to: 0
PY:City Tianjin's culture has expanded
PY:City Built Event: Tianjin
PY:City Satsuma's culture has expanded
PY:City Built Event: Satsuma
PY:City Birka's culture has expanded
PY:City Built Event: Birka
('iGameTurn', 549)
late start
('Birth', 2)
('cityList', u"Xi'an", (100, 44))
PY:City Tianjin's culture has expanded
PY:City Acquired Event: Xi'an
('tCityPlot After', (100, 44))
('iConvertedCitiesCount', 1)
('cityList', u'Qufu', (104, 45))
PY:City Tianjin's culture has expanded
PY:City Acquired Event: Qufu
('tCityPlot After', (104, 45))
('iConvertedCitiesCount', 2)
('Birth', 12)
('cityList', u'Memphis', (69, 35))
PY:City Kufah's culture has expanded
PY:City Acquired Event: Memphis
('tCityPlot After', (69, 35))
('iConvertedCitiesCount', 1)
('cityList', u"Sana'a", (76, 30))
PY:City Kufah's culture has expanded
PY:City Acquired Event: Sana'a
('tCityPlot After', (76, 30))
('iConvertedCitiesCount', 2)
PY:OnPreSave
PY:Player 13's alive status set to: 1
PY:Player 13's alive status set to: 0
('iGameTurn', 550)
('TOTAL UNITS', 144)
('TOTAL CITIES', 47)
Stability
('dead', 0)
('dead', 1)
('Base:', 14, 'Modifier:', 14, 'Total:', 28, 'civic', 25, u'Middle Country of China')
('dead', 3)
('dead', 4)
('dead', 5)
('dead', 6)
('dead', 7)
('Base:', 15, 'Modifier:', 6, 'Total:', 21, 'civic', 25, u'Japanese Shogunate')
('dead', 9)
('dead', 10)
('Base:', 13, 'Modifier:', 6, 'Total:', 19, 'civic', 25, u'Viking Union')
('Base:', 0, 'Modifier:', 10, 'Total:', 10, 'civic', 25, u'Caliphate of Arabia')
('dead', 13)
('dead', 14)
('dead', 15)
('dead', 16)
('dead', 17)
('dead', 18)
('dead', 19)
('dead', 20)
('dead', 21)
('dead', 22)
('dead', 23)
('dead', 24)
('dead', 25)
('dead', 26)
('Parameter', 0, 0)
('Parameter', 1, 0)
('Parameter', 2, 0)
('Parameter', 3, 0)
('Parameter', 4, 0)
('Parameter', 5, 0)
('Parameter', 6, 0)
('Parameter', 7, 0)
('Parameter', 8, 0)
('Parameter', 9, 0)
('Parameter', 10, 0)
('Parameter', 11, 0)
('Parameter', 12, 0)
(u'Egypt', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'India', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'China', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Babylonia', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Greece', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Persia', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Carthage', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Rome', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Japan', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Ethiopia', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Maya', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Vikings', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Arabia', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Ireland', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Spain', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'France', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'England', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Germany', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Russia', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Netherlands', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Mali', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Portugal', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Inca', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Mongolia', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Aztec', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Turkey', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'America', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
PY:OnPreSave
PY:Player 13's alive status set to: 1
PY:Player 13's alive status set to: 0
PY:City Palermo's culture has expanded
PY:City Brindisi's culture has expanded
('iGameTurn', 551)
(u'China', True, False)
(u'Japan', True, False)
(u'Vikings', False, False)
(u'Arabia', False, False)
PY:OnPreSave
PY:City Satsuma's culture has expanded
PY:City Built Event: Satsuma
PY:City Kufah's culture has expanded
PY:City Built Event: Kufah
PY:Player 13's alive status set to: 1
PY:Player 13's alive status set to: 0
PY:City Alexandria's culture has expanded
('iGameTurn', 552)
('Minor war', u'Hanseong', u'Japanese')
PY:OnPreSave
PY:Player 13's alive status set to: 1
PY:City Kufah's culture has expanded
PY:City Built Event: Kufah
PY:Player 13's alive status set to: 0
PY:City Hesperides's culture has expanded
PY:City Hierusalem's culture has expanded
('iGameTurn', 553)
PY:City Kufah's culture has expanded
PY:City Acquired Event: Alexandria
PY:City Acquired and Kept Event: Al-Iskandariya
PY:OnPreSave
PY:Player 13's alive status set to: 1
PY:City Birka's culture has expanded
PY:City Built Event: Birka
PY:Player 13's alive status set to: 0
PY:City Hanseong's culture has expanded
('iGameTurn', 554)
PY:City Kufah's culture has expanded
PY:City Acquired Event: Hesperides
PY:City Acquired and Kept Event: Bangazi
PY:OnPreSave
PY:City Tianjin's culture has expanded
PY:City Built Event: Tianjin
PY:City Satsuma's culture has expanded
PY:City Built Event: Satsuma
PY:City Palermo's culture has expanded
PY:Player 13's alive status set to: 1
PY:Player 13's alive status set to: 0
('iGameTurn', 555)
('TOTAL UNITS', 141)
('TOTAL CITIES', 53)
Stability
('dead', 0)
('dead', 1)
('Base:', 14, 'Modifier:', 12, 'Total:', 26, 'civic', 25, u'Middle Country of China')
('dead', 3)
('dead', 4)
('dead', 5)
('dead', 6)
('dead', 7)
('Base:', 15, 'Modifier:', 2, 'Total:', 17, 'civic', 25, u'Japanese Shogunate')
('dead', 9)
('dead', 10)
('Base:', 13, 'Modifier:', 0, 'Total:', 13, 'civic', 25, u'Viking Union')
('Base:', 0, 'Modifier:', 11, 'Total:', 11, 'civic', 25, u'Caliphate of Arabia')
('dead', 13)
('dead', 14)
('dead', 15)
('dead', 16)
('dead', 17)
('dead', 18)
('dead', 19)
('dead', 20)
('dead', 21)
('dead', 22)
('dead', 23)
('dead', 24)
('dead', 25)
('dead', 26)
('Parameter', 0, 0)
('Parameter', 1, 0)
('Parameter', 2, 0)
('Parameter', 3, 0)
('Parameter', 4, 0)
('Parameter', 5, 0)
('Parameter', 6, 0)
('Parameter', 7, 0)
('Parameter', 8, 0)
('Parameter', 9, 0)
('Parameter', 10, 0)
('Parameter', 11, 0)
('Parameter', 12, 0)
(u'Egypt', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'India', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'China', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Babylonia', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Greece', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Persia', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Carthage', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Rome', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Japan', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Ethiopia', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Maya', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Vikings', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Arabia', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Ireland', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Spain', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'France', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'England', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Germany', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Russia', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Netherlands', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Mali', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Portugal', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Inca', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Mongolia', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Aztec', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'Turkey', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
(u'America', 'PLOT OWNERSHIP ABROAD:', 0, 'CITY OWNERSHIP LOST:', 0)
('spreading Islam', 19)
PY:OnPreSave
PY:Player 13's alive status set to: 1
PY:Player 13's alive status set to: 0
('iGameTurn', 556)
('Cutting contacts between', u'Japan', 'and', u'China')
PY:City Kufah's culture has expanded
PY:City Acquired Event: Hierusalem
PY:City Acquired and Kept Event: Al-Quds
PY:OnPreSave
PY:City Tianjin's culture has expanded
PY:City Built Event: Tianjin
PY:City Al-Iskandariya's culture has expanded
PY:City Aksum's culture has expanded
PY:City Tripolis's culture has expanded
PY:Player 13's alive status set to: 1
2 SCREEN TURNED ON
PY:Player 13's alive status set to: 0
('iGameTurn', 557)
PY:OnPreSave
PY:City Kufah's culture has expanded
PY:City Built Event: Kufah
PY:Player 13's alive status set to: 1
PY:Player 13's alive status set to: 0
('iGameTurn', 558)
PY:OnPreSave
PY:City Birka's culture has expanded
PY:City Built Event: Birka
PY:City Hangzhou's culture has expanded
PY:Player 13's alive status set to: 1
PY:Player 13's alive status set to: 0
('iGameTurn', 559)
PY:City Kufah's culture has expanded
PY:City Acquired Event: Tripolis
PY:City Acquired and Kept Event: Tarabulus
PY:City Tianjin's culture has expanded
PY:City Acquired Event: Hangzhou
PY:City Acquired and Kept Event: Hangzhou
Game is ending
PY:Victory! Team 2 achieves a Cultural victory
PY:OnPreSave
PY:Al-Qahirah has grown
PY:Player 13's alive status set to: 1
SCREEN OFF
13 SCREEN TURNED ON
PY:OnUnInit
UnInit Python
antaine Apr 01, 2010, 11:05 PM the python error is causing a sort-of-"you have been defeated" loss in that one of the first four civs achieves a cultural victory before the autoplay is finished with the first handful of turns.
Baldyr Apr 02, 2010, 08:08 AM About the EOFError - I had some of those myself but can't for the life of me remember what it was, what was causing it or how I get rid of it. :p
It does seem like it has something to do with pickling. (Storing some value regarding the Exile event, to be more specific) Take a look at StoredData.py and see if there is an entry for "lExileData" in the script dictionary ("scriptdict"). Because if there isn't such a value, then the code unpickling it wouldn't be able to do so.
antaine Apr 02, 2010, 08:13 AM I found it (eventually)...I had forgotten to merge in the lines enabling epic and marathon calculations in culturelevelinfos.xml
Got it working and made the UHVs more challenging. I haven't fixed the text things (like Brian's entry) yet, but that's the next step. I'm putting up the new file now, you can find it at the top of the first message in this thread.
Panopticon Apr 02, 2010, 11:29 AM Thanks for the pat on the back, btw...I'm sorry that I really haven't had the opportunity to do too much python learning (mea culpa, mea culpa)...when I'm not writing my thesis or grading students' papers the only new coded system I seem to have time to learn is the Irish language itself.
Really? It's quite difficult.
antaine Apr 02, 2010, 11:32 AM which is difficult? Irish or Python? Baldyr was trying to give me a crash course all through RFC with Celts development, but I simply didn't have time to absorb or build on alot of what he imparted to me. I feel kinda bad, although I've saved all the messages and at some point when I'm done with this thesis I'll revisit it and try to fill in my python-knowledge gaps, and some C++ to boot.
Baldyr Apr 02, 2010, 12:25 PM which is difficult? Irish or Python? Baldyr was trying to give me a crash course all through RFC with Celts development, but I simply didn't have time to absorb or build on alot of what he imparted to me. I feel kinda bad, although I've saved all the messages and at some point when I'm done with this thesis I'll revisit it and try to fill in my python-knowledge gaps, and some C++ to boot.
Well, I'm looking forward to both sharing with you all the Python stuff I've learned since (and its a lot), and also for a opportunity to learn C++ from you. (I wouldn't even dare to compile the dll on my own...) Because I'm only fluent in Python - and once you learn some of both languages, you would be able to tell me what the difference between the two would be. :king:
It could also be noted what while you're somewhat of a renaissance man of modding, I'm more of a one-trick-pony. (I'm pretty confined to Python only, I'm afraid. Is there anything you haven't meddled with yet? :eek:)
antaine Apr 02, 2010, 02:51 PM Well, I haven't tried to make new functions...in either C++ or python...everything I've done has been to redefine existing functions by playing with their variable values (teams, coords, quanties, units, etc). The only new mechanical functions were written by you as part of custom.py and used by me for "reality checks."
I don't find C++ markedly harder than python for my purposes, only slightly so as python is closer to plain english whereas C++, while still comprehensible MOST of the time, is one step removed from that.
Now if anybody can edit a binary file manually I'd really be impressed =P
antaine Apr 02, 2010, 05:36 PM alright, finally got the art fixed, v2.3 is up, I think that's going to be the final one except for translations
Robdude66 Apr 06, 2010, 03:07 PM This modmod looks very nice, just as the Celt one was. Where is v2.3? I'll probably find it...
EDIT:
Oh yes, it was on front page, my bad.
antaine Apr 07, 2010, 09:36 PM Playing just now it appears that the English Domination UHV is still broken. I didn't notice when it happened, but playing now it reported as succeeded when it wasn't. If anyone who knows can take a look at the code in victory.py, maybe they can spot what I've done wrong.
I just happened to see that it read YES when England was neither vassalized nor conquered. I had some cities in Britain, but my culture at the time I noticed the error was only ten tiles.
elif (iPlayer == iKhmer):
if (pKhmer.isAlive()):
if (iGameTurn >= getTurnForYear(860) and iGameTurn <= getTurnForYear(1500)):
bEngland = False
if (self.getGoal(iKhmer, 0) == -1):
bEngland = self.checkOwnedCiv(iKhmer, iEngland)
if (bEngland):
self.setGoal(iKhmer, 0, 1)
if (iGameTurn == getTurnForYear(1500)+1):
if (self.getGoal(iKhmer, 0) == -1):
self.setGoal(iKhmer, 0, 0)
Baldyr Apr 08, 2010, 08:34 AM You use this function to determine whether or not the UHV is met:
self.checkOwnedCiv(iKhmer, iEngland)
Looking at the function definition itself, I can report that what it does is the following:
It counts the number of cities within the English Normal Area for both the Irish and the English respectively. The function returns True (and thus enables the UHV to be set to Achieved) if one of two conditions are met:
1. The Irish control 2 or more cities in England and they control more cities in the area than England does.
2. The English are dead and the Irish control any number of cities in the area.
Is this what you were aiming for?
antaine Apr 08, 2010, 12:39 PM Hm, no, I was going for "English civilization killed or vassalized by Ireland"...I patterned mine after another UHV that I thought would achieve that result.
Robdude66 Apr 08, 2010, 01:37 PM I am having a problem with this mod and it's the same one from the Celt mod, I can't vassalize. In the Civilopedia there is no 'Game Concepts' there is a 'RFC Concepts' and everything else but it doesn't have Vassals in the game period. Help please?
fireclaw722 Apr 08, 2010, 01:42 PM Do you have Monarchy?
Baldyr Apr 08, 2010, 02:20 PM Hm, no, I was going for "English civilization killed or vassalized by Ireland"...I patterned mine after another UHV that I thought would achieve that result.
In that case - are you gonna keep the current one - and do you still need to have it debugged?
As it stands now you should probably rename it "Dominate Britain by AD 1500", or something. I don't necessarily thing that its a bad UHV, but it might be too easy to achieve?
antaine Apr 08, 2010, 04:16 PM Yes, I feel it is. I was thinking perhaps "no foreign culture on the british isles," but I would prefer it if you could win by vassalizing england as well.
robdude, I'm not sure where you're encountering this problem. I'm playing the version available for download right now and i just vassalized the inca.
What civics do you have right now, and do you have Monarchy completed already?
antaine Apr 08, 2010, 04:26 PM Baldyr, what are the values for the domination...is there a way to raise it so that it's harder? I don't see where you see "two cities and more than X"...
Baldyr Apr 08, 2010, 09:47 PM Baldyr, what are the values for the domination...is there a way to raise it so that it's harder? I don't see where you see "two cities and more than X"...
No, the function only takes the two Civs as arguments, so you'd have to change the date in order to make the UHV harder.
This is the breakdown:
1. def checkOwnedCiv(self, iActiveCiv, iOwnedCiv):
2. dummy1, plotList1 = utils.squareSearch( tNormalAreasTL[iOwnedCiv], tNormalAreasBR[iOwnedCiv], utils.ownedCityPlots, iActiveCiv )
3. dummy2, plotList2 = utils.squareSearch( tNormalAreasTL[iOwnedCiv], tNormalAreasBR[iOwnedCiv], utils.ownedCityPlots, iOwnedCiv )
4. if ((len(plotList1) >= 2 and len(plotList1) > len(plotList2)) or (len(plotList1) >= 1 and not gc.getPlayer(iOwnedCiv).isAlive())):
5. return True
6. else:
7. return False
1. function definition, the parameters are "iActiveCiv" and "iOwnedCiv"
2. stores the number of cities for iActiveCiv in "plotList1"
3. the same for iOwnedCiv and "plotList2"
4. the condition(s)
5. enable if the conditions are met
6. else...
7. ...disable
The command "len" is short for "length", so in this case it is used to determine how many city instances are present on each list. The function could also be written like this:
def checkOwnedCiv(self, iActiveCiv, iOwnedCiv):
dummy1, plotList1 = utils.squareSearch( tNormalAreasTL[iOwnedCiv], tNormalAreasBR[iOwnedCiv], utils.ownedCityPlots, iActiveCiv )
dummy2, plotList2 = utils.squareSearch( tNormalAreasTL[iOwnedCiv], tNormalAreasBR[iOwnedCiv], utils.ownedCityPlots, iOwnedCiv )
activeCities = len(plotList1)
ownedCities = len(plotList2)
return (activeCities >= 2 and activeCities > ownedCities) or \
(activeCities >= 1 and not gc.getPlayer(iOwnedCiv).isAlive())
antaine Apr 08, 2010, 09:58 PM hm, another valid "history's wishlist" UHV for the Irish would be "never lose a city to the English or Vikings before 1500"...or simply "never lose a city to the English or Vikings." In order to complicate matters, however, cities allowed to flip in the English spawn should count against the Irish UHV...
Robdude66 Apr 09, 2010, 03:17 AM I think I was a little sleep deprived. No problems after I double checked. Thanks for the suggestions though.
Baldyr Apr 09, 2010, 08:26 AM hm, another valid "history's wishlist" UHV for the Irish would be "never lose a city to the English or Vikings before 1500"...or simply "never lose a city to the English or Vikings." In order to complicate matters, however, cities allowed to flip in the English spawn should count against the Irish UHV...
Well, you know that anything is possible. Its just a matter of defining what you need and then get some code to execute that very thing. If you can't code it yourself, you could always ask for help. Or you could learn the little bit of Python required to do it yourself. :p
The hot tip of the day would be to take a look at RFCUtils.py and see what handy functions Rhye has collected there. Chances are that he has already done what you need, so its simply a question of figuring out how to use it. So there would be no need to define functions of you own, or anything on that complexity level.
All (or most) functions take arguments - and they return something (even if its nothing or "None"). Figure out what the arguments are and what the output is. You don't even have to understand what the code in between the def(inition) line and return statement does.
You do however have to know Python syntax and some basic commands and statements, like those you've already used in your UHV code, and of course what the different operators look like and work. The most basic stuff.
Sorry for the rant... :rolleyes:
Baldyr Apr 09, 2010, 08:48 AM dummy1, plotList1 = utils.squareSearch( tNormalAreasTL[iOwnedCiv], tNormalAreasBR[iOwnedCiv], utils.ownedCityPlots, iActiveCiv )
I might add this:
The value passed as an argument to the function squareSearch, highlighted in the assignment statement above, is in fact a reference to another function, used by the squareSearch function. So you could probably imagine how squareSearch is a highly flexible function, as it can utilize other functions for doing its dirtywork. If you look around Rhye's code he makes repeated calls to squareSearch and feeds it different functions for different purposes.
So, the ownedCityPlots... eh subfunction :confused:, would be good for looking up the number of cities owned. Like it says in the function name. :rolleyes: There are other functions that could be used in the RFCUtils module (aka "utils"). The function "ownedPlots" might be useful to you, not?
But you can't change the checkOwnedCiv function in Victory.py because that would effect all UHVs using the same function! :eek: You could, however, copy-paste and rename another function. Then substitute the argument passed to squareSearch and change you UHV code to call on the new function instead. Or you could just click below and use the code attached. :rolleyes:
def checkOwnedPlots(self, iActiveCiv, iOwnedCiv):
dummy1, plotList1 = utils.squareSearch( tNormalAreasTL[iOwnedCiv], tNormalAreasBR[iOwnedCiv], utils.ownedPlots, iActiveCiv )
dummy2, plotList2 = utils.squareSearch( tNormalAreasTL[iOwnedCiv], tNormalAreasBR[iOwnedCiv], utils.ownedPlots, iOwnedCiv )
activeCities = len(plotList1)
ownedCities = len(plotList2)
return (activeCities >= 2 and activeCities > ownedCities) or \
(activeCities >= 1 and not gc.getPlayer(iOwnedCiv).isAlive())
Otherwise there is also this in Victory.py:
def checkOwnedArea(self, iActiveCiv, tTopLeft, tBottomRight, iThreshold):
dummy1, plotList = utils.squareSearch( tTopLeft, tBottomRight, utils.ownedCityPlots, iActiveCiv )
if (len(plotList) >= iThreshold):
return True
else:
return False
Can you figure out what it does and how to use it? :D
ilduce349 Apr 09, 2010, 05:44 PM OK, so i noticed that this game supports marathon?
Is their a mod that has marathon in it but keeps Khmer?
Omega124 Apr 09, 2010, 06:14 PM For Khmer cities, if both plots are empty, Saigon and Hanoi should be founded in the 1960s. Napalm, anyone?
fireclaw722 Apr 09, 2010, 07:23 PM Saigon, Hanoi, and Bangkok should all be founded around the late 1500's(more like 16 or 1700's)
ilduce349 Apr 09, 2010, 08:30 PM thats not wat i meant
what I was asking for was how to turn Ireland back into khmer but keeping all the other changes
ilduce349 Apr 09, 2010, 08:31 PM as in changing the uu, ub and up back to khmer, the starting spot khmer, but leave the other changes to the mod the same
antaine Apr 09, 2010, 09:09 PM well, first, I'll make note of the khmer cities and add them to barbs.py so they spawn at the right times. When the final release comes out (I believe as soon as I get this UHV thing sorted out) they will be included.
As for the marathon mod, I used the existing RFC Marathon mod v3. It has its own thread in this forum http://forums.civfanatics.com/showthread.php?t=354241
antaine Apr 09, 2010, 09:48 PM Baldyr, should this work?
setting:
tBritishIslesTL = (47, 53)
tBritishIslesBR = (55, 61)
if (iGameTurn == getTurnForYear(1700)):
bForeignPresence = False
#British Isles
for x in range(tBritishIslesTL[0], tBritishIslesBR[0]+1):
for y in range(tBritishIslesTL[1], tBritishIslesBR[1]+1):
pCurrent = gc.getMap().plot(x,y)
if (not pCurrent.isWater()):
for iLoop in range(iNumMajorPlayers): #no minor civs
if (iLoop != iKhmer):
if (pCurrent.getCulture(iLoop) > 0):
bForeignPresence = True
print (iPlayer, "presence in British Isles")
print ("bForeignPresence ", bForeignPresence)
if (bForeignPresence == False):
self.setGoal(iKhmer, 0, 1)
else:
self.setGoal(iKhmer, 0, 0)
It represents a change in approach...England sealed its domination of Ireland by 1690...it didn't vassalize it, but ruled it with the one crown (although Ireland still had a parliament until 1800, so maybe that should be the date I use)...this UHV basically means having Ireland do to England what England did to Ireland. The UHV is trickier than it seems, once London is no longer a capital, Paris and Amsterdam tend to claim three or four tiles in southeast britain between them. Very hard to push that back...
Baldyr Apr 10, 2010, 01:01 AM Tell me you didn't just make that code yourself. :eek:
Because it seems about right to me. :goodjob: Except for this line, which is really redundant anyway:
print (iPlayer, "presence in British Isles")
Change iPlayer to iLoop and you'll be ok. :king:
One other thing, though. Please use the [ code ] tags whenever you're posting Python! Otherwise the indentation doens't show, and it will be impossible to both follow and proofread your code. Its not more work than to select the code and press the # symbol in the toolbar when composing your message.
antaine Apr 10, 2010, 07:29 AM ah, code tag...got it.
I can't take the credit, I didn't write it, I cannabalized from Japan.
Now, I have two questions. 1) from Rhye's wording of the Japanese UHV here: http://rhye.civfanatics.net/wiki/index.php?title=Rhye%27s_and_Fall_of_Civilization_ Unique_Historical_Victories#Japan
("There may never be foreign culture in the Japanese main island.")
any presence of foreign culture before the trigger date will trigger failure? reading the code, it looks to me like only the state of things at the trigger date matters (which is what I want). for the Irish to never have any culture on the island would be a virtual impossibility, but it would be possible (though difficult) to ensure no foreign presence by 1700 or 1800.
2) I'm not sure what this [0], [1], and +1 business is in the code. is that somehow creating a loop that causes the game to walk through all the coords? Why aren't the coords simply taken as the TL/BR box that defines them up top?
also, why should I change iPlayer to iLoop? What is the effect of that (Rhye had iPlayer)?
Baldyr Apr 10, 2010, 08:58 AM 1) from Rhye's wording of the Japanese UHV ...
("There may never be foreign culture in the Japanese main island.")
any presence of foreign culture before the trigger date will trigger failure? reading the code, it looks to me like only the state of things at the trigger date matters (which is what I want).
You are reading the code correctly, so the source would be wrong (or outdated) then. But the best way to check would be to test the code, I guess...
2) I'm not sure what this [0], [1], and +1 business is in the code. is that somehow creating a loop that causes the game to walk through all the coords? Why aren't the coords simply taken as the TL/BR box that defines them up top?
This was weird to me also in the beginning. :crazyeye: There is actually an explanation, but I'm afraid it's not a short one. :rolleyes:
Ok, the range command creates a list variable which contents are defined by the input. So if you, for example, go range(5) the Python interpreter will view it like this:
[0, 1, 2, 3, 4]
That is, a list (hence the brackets) with five values ranging from 0 to 4. We can add another value and then we get the first and the last value in range. So range(0, 5) would really be the exact same thing as above, as the first value will be 0 and the last will be the fifth value in order, counting from zero.
There are other ways of using the range command also, but this would be the most common one and the one you need to know about for modding purposes.
So, you have a list then, but how to make it into a loop? Well, you use the for and in commands for this. So if you go for iLoop in range(0, 5): then you will get five loops (the same as the length of the list, of course) where the iLoop variable changes from the first list value through to the last one.
Note that you're not limited to using range with for and if. This is another use:
list = [1, 3, 6]
for iVariable in list:
...
It should be obvious what it does, not?
Ok, moving on. The TL and BR values in RFC are "tuples", which is another sort of list really. You defined two tuples yourself:
tBritishIslesTL = (47, 53)
tBritishIslesBR = (55, 61)
You even used the common practice of including the "t" prefix to the variables. :goodjob:
Ok, so you got a pair of tuples containing a pair of values (coordinates in this case) each. How to get access to those values? Well, you use the brackets you were wondering about. tBritishIslesTL[0] is "47" as it is the first value (and the computer always indexes from zero and up) and tBritishIslesTL[1] is "53". Its the way to extract the values from the tuple.
You could have defined the coordinates with only one variable also:
tBritishIsles = (47, 53, 55, 61) #TL[0], TL[1], BR[0], BR[1]
or:
tBritishIsles = (47, 55, 53, 61) #TL[0], BR[0], TL[1], TL[1]
or even:
tBritishIsles = ((47, 53), (55, 61)) #TL, BR
Then it would just be a matter of figuring out how to extract those values and put them in the right place.
The way Rhye uses these tuples for looping coordinates is that he extracts the first values (the x coordinate) from each tuple and uses them with the range command. In a for-in statement this creates a loop, from the first value, through all the values in the list, all the way to the second value. Then he does the same thing with the second value in each tuple (the y coordinate) and creates another loop inside the first one. :eek: So all the y values would be looped for each x value, and when the first loop is completed all x and y coordinates would have been looped through. Makes sense? :p (In your case x gets looped from 47 to 55, and y gets looped from 53 to 61.)
So, have you figured out what the +1 does yet? If you can't, click on the spoiler. :rolleyes:
You remember how the computer always counts from zero and up? So if you wanna create a list that holds say some x coordinates on the map, you have to add one to the second value. Otherwise the list will be missing the last value you requested.
Lets say you wanna create a list with values ranging from 1 to 10, ten values in all. Then you can't go range(1, 10), because the tenth value in order would be 9. So you'd end up with a list with 9 values instead:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
It all makes sense if you only use one value inside the command, like range(10). Then you get a list with ten entries:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
also, why should I change iPlayer to iLoop? What is the effect of that (Rhye had iPlayer)?
Ah, I wasn't looking at Rhye's code. I'm not sure if its intentional or not, but Rhye's code will always write "Japan presence in japan" which really isn't all that helpful for debugging... :rolleyes: I'd change it to iLoop myself - if I didn't delete (or comment out) the line entirely. Because the print command does nothing in CivIV - its only useful for debugging.
Anything else unclear at this point? Because you'll be reading Python in no time at all if you just make a point of understanding what is happening. Then you will be able to figure out how to code your own stuff. :king:
Baldyr Apr 10, 2010, 09:23 AM Just as trivia, I might add that there is another way of creating these loops for the coordinates:
iBritainTLx = 47
iBritainTLy = 53
iBritainBRx = 55+1
iBritainBRy = 61+1
...
for x in range(iBritainTLx, iBritainBRx):
for y in range(iBritainTLy, iBritainBRy):
pCurrent = gc.getMap().plot(x, y)
It might be a clearer way of doing it, even if it means more lines of code (variable definitions). But because its your code you can do it anyway you want to. :p
Further trivia:
lBritishTiles = [] #creates an empty list
for x in range(47, 56): #loops though the x coordinates, with +1 on the second value
for y in range(53, 62): #same for the y coordinates
lBritishIsles.append((x, y)) #appends a tuple containing both values to the list
for tCoords in lBritishTiles: #loops the tuples in the list
pCurrent = CyMap().plot(tCoords) #assigns pCurrent to each tuple in order
...
In case you wanted more. :lol:
antaine Apr 10, 2010, 06:33 PM wow...thanks!
antaine Apr 13, 2010, 09:53 AM I'm hoping that the final release will contain three maps, 3000BC, 600AD and an American start (because it takes so long to get there on marathon. Right now, I'm testing something that starts in 1450, so that the American player always comes to a slightly varied world.
I'm getting lots of EOFErrors relating to the stability of existing civs, however, so I don't know if it will be possible (starting with active major civs on the map, that is).
Baldyr Apr 13, 2010, 10:58 AM I'm getting lots of EOFErrors relating to the stability of existing civs, however, so I don't know if it will be possible (starting with active major civs on the map, that is).
Yeah, I have no idea what that is all about. Someone posted an American start before and when I tested it there were these errors all over the place. I narrowed it down to the values Rhye pickles and unpickles. The default values are found in StoredData.py and they are accessed with the functions that start with "get" and "set" (to fetch and to store respectively).
It could be that the whole thing isn't initialized properly, so any pickling (like with the stability settings) wouldn't work. It could be as easy to modify one single line of code or to add a line of code somewhere - or it could be a much bigger project. Pickling itself is something I'm yet to really get into myself, so I wouldn't be much help I'm afraid.
With this said, I believe that the initialization is configured in CvRFCEventHandler.py - with the line:
self.data.setupScriptData()
That refers to the StoredData module (by self.data = StoredData.StoredData()) and the function setupScriptData() works just the same with both default scenarios. (It would, however, be possible to add another set of values specific to, say, a AD 1450 scenario. Rhye tweaks the default values for the AD 600 scenario in RiseAndFall.py with the setup() function, by the way. So this is the other option.)
I'm thinking that it would be more to it than to just make a save into a WBS. Right now the code is facilitating two different scenarios (3000 BC and AD 600) and I believe that the whole thing would have to be overhauled with a third scenario in mind. There could also be stuff in the DLL that I wouldn't be aware of.
As people have pointed out elsewhere on this forum, something like a AD 1500 scenario would pretty much be its own beast. A modmod, really. Why not save that one for later?
antaine Apr 13, 2010, 04:52 PM yeah, I think it has to do with all kinds of crazy stuff I haven't the patience to get into right now.
Still, I wonder if it wouldn't be possible to put in a blank map with all the improvements (but no civs) and simply use barbs.py to spawn every city with appropriate owners during the second turn of the autoplay (or something similiar). Maybe all indy cities and then your custom.fliparea function to spawn every civ at once?
There would need to be a more sensible way to flag that the 1450 scenario is what's being played, however, than the one Rhye used in seeing if an ancient civ was dead. He used the Egyptians, did he not? (actually, I think I just read that Rhye was a "she" not a "he"...but I have been unable to confirm this). In any event, perhaps I could start the whole world with just indy cities and script one massive, worldwide set of spawns if "China" is "dead" at the start (and player is "America")...that way, the game would know not to do the flips for the 3000BC or 600AD starts... I may have to have some civ alive on the map at the start though, I'd imagine...perhaps the Mongols...then the China flip will cause them to collapse and go byebye.
Well, I suppose I should try it without any civs alive at the start first (save the natives, indies and barbs).
Does that sound plausable, or am I totally barking up the wrong tree?
Baldyr Apr 14, 2010, 09:01 AM Well, it does sound... interesting, at least. Please keep us posted on how this experiment or yours develops.
I'm working on some new tools for scenario making, by the way. But you can find the latest version of the old functions here (http://forums.civfanatics.com/attachment.php?attachmentid=247741&d=1269694140). The documentation can be found in this thread (http://forums.civfanatics.com/showthread.php?t=353098&), scattered around as development has progressed.
Also, I may eventually device a text based setup that looks something like the "code" that makes up the World Builder Save file. So there would be no need to learn any Python or XML or anything. :king:
antaine Apr 14, 2010, 04:52 PM "Also, I may eventually device a text based setup that looks something like the "code" that makes up the World Builder Save file. So there would be no need to learn any Python or XML or anything."
now THAT would be a service to humanity. Hey, considering the low standards for the Nobel Peace Prize nowadays, you never know ;)
Baldyr Apr 14, 2010, 09:54 PM :lol:Heh, this would be the default way to define a scenario trigger (in Python):
Trigger(2).turn(65).valid().city(104, 45, "Qufu")
Its just an example and it will spawn a Chinese size 2 city called "Qufu" on tile 104, 45 at turn 65. (There are a lot more that could be done, and many more settings that are available to the scenario designer, by the way.) The point is however that there is no need to do any other code, worry about any indentation or anything.
Ok, so this would be the same trigger in an XML version:
<Trigger>
<ePlayer>2</ePlayer>
<elements>
<turn>
<iTurn1>65</iTurn1>
<iTurn2>None</iTurn2>
<iInterval>1</iInterval>
<iModulo>0</iModulo>
</turn>
<valid>
<tCoords>None</tCoords>
<bDomestic>False</bDomestic>
<bForeign>False</bForeign>
<bLand>True</bLand>
<bWilderness>False</bWilderness>
<bAdjacent>False</bAdjacent>
</valid>
<city>
<iX>104</iX>
<iY>45</iY>
<name>"Qufu"</name>
<iSize>2</iSize>
<city>
</elements>
</Trigger>
A lot more to type, but no Python involved. This example also shows all the settings involved.
And finally the "text-based" setup:
BeginTrigger
PlayerIndex=2
BeginElement
Type=Condition_GameTurn
GameTurn=65
EndElement
BeginElement
Type=Condition_ValidMapTile
EndElement
BeginElement
Type=Action_FoundCity
Xcoord=104
Ycoord=45
CityName="Qufu"
EndElement
EndTrigger
Just as with the WBS you could omit a lot of settings if you can live with the default values. But its a lot of text to type, so you'd probably be copy-pasting triggers with all the default settings and then enter your own values on the appropriate lines.
I'm not done with it yet, but this is what the API looks like as of now:
target
find
check
turn
year
waypoints
lost
valid
tech
era
city
culture
religions
buildings
name
units
garrison
XP
promotions
AI
terrain
erase
flip
discover
kill
degrade
Also, there would be no fiddling with Rhye's files because you'd put all your triggers in a clean module of your own. This is what a valid scenario module could look like:
from PyScenario import Trigger
import Consts as con
Trigger(con.iChina).turn(65).valid().city(104, 45, "Qufu")
...and so on. You just add all the triggers you need below the import statements. What it does, is it loads all the triggers defined in such a module on setup (when the game itself loads) and only cycles through the triggers with valid conditions any time an "event" takes place in the game. (Like new game turn, city lost or tech acquired.) Very efficient. :king:
As an added bonus, the order of the triggers is arbitrary as is the order in which you type the elements (basically "conditions" and "actions") of a trigger. So this would also be valid:
Trigger(con.iChina).valid().city(104, 45, "Qufu").turn(65)
User friendly, eh? :p
antaine Apr 15, 2010, 04:27 AM seriously, this is remarkably awesome
Baldyr Apr 15, 2010, 08:45 AM So as long as you only wanna make scenarios there would be no need to learn any programming. :D
Even if I plan on including support for custom Python scripts also, all in one package. As I envision this thing, it would be possible to define "triggers" for your scenario by any method available, and they would still work together. This because it would, for example, be useful to make events that contain text messages (or pop-ups) in XML - because there would be more space available for the actual string without cluttering down the entire document.
If I were ever to make a graphical interface for this scenario maker tool, the saved output would be of the text-based variety that looks sorta like the WBS file. So you could make a rough draft of your triggers within such an application (preferably within the actual game, like the World Builder) and edit the save file in Notepad for tweaks and corrections - optionally.
But now were getting ahead of yourselves! :p
Next thing is to make sure all triggers that have expired stay that way on save/load game. Otherwise they would all be initialized anew once the game is loaded, making events that should no longer apply trigger once again... So I'm not quite there yet even for a beta release. :p
Baldyr Apr 16, 2010, 02:03 PM If I were ever to make a graphical interface for this scenario maker tool, the saved output would be of the text-based variety that looks sorta like the WBS file. So you could make a rough draft of your triggers within such an application (preferably within the actual game, like the World Builder) and edit the save file in Notepad for tweaks and corrections - optionally.
Sorry for hijacking the thread, but I was looking at the code for the Mercenaries manager and realized I probably could just hijack the Mercenaries screen to fashion it into a Scenario Maker instead. You'd have to close it any time you wanna check up tile coordinates and the like, but any saved triggers would of course reappear once you reenter it.
So one pane would contain the available conditions and another would contain the actions. The main frame would list the already defined triggers, and by clicking on one you'd be able to access the conditions and actions again - and make edits. At the bottom would be buttons like "close", "save to file", "load from file", "clear" and "initiate".
The big issue right now would probably be how to record input from the user (like typed in values or names) but it shouldn't be impossible, at least. But this is still another project all to itself - I'm still working on getting the basic thing running. (I did solve the save/load issue, however. Luckily it turned out to be just as simple to fix as I imagined. So I'm nearing beta. :king:)
Omega124 Apr 16, 2010, 02:05 PM You know, after you make this, you should do a "RFC w Scotland". I would so DL that.
Robdude66 Apr 16, 2010, 06:02 PM No offense to your heritage or nothin' Omega, but, Scotland isn't even a modern nation. Going to the ancient times it was first colonized by Ireland and was even named after the Irish tribe of Scots while the native Picts got their asses handed to them. Going forward to aprox. 1000 AD the kingdom of Scotland was already intermarried with the English line since before Edward I whom conquered Wales. Around the time of Brian Boru, Scotland was being regularly Raided by the Vikings. The Scots had to my knowledge three rebellions against the English, all of them put down with little enough effort, and it was with the end of the 2nd(?) that made Great Britain a United Kingdom.
'Sides Scotland is ON Great Britain, the English Civ just would not have the proper /being/ if you know what I mean? Like whoever played as Scotland would immediately move to take say Ireland.
Of course it is all up to Antaine on what he makes though, maybe you can make a convincing arguement as to why he should.
antaine Apr 16, 2010, 06:10 PM Well, I've no further plans to mod RFC after I'm done with this.
I have made several scenarios based on medieval maps. The european one is based on the Hereford Mappa Mundi and includes Scotland.
I'm also developing scenarios on the map I use for RFC, the medieval one includes all the civs I used on the Mappa Mundi, so the scots are there, and the classical map includes the picts.
I'm just finishing the renaissance era map now, and then making an enlightenment era one before I release the whole package.
You can download the medieval maps now in the downloads section of the forum, but please look in my comments at the end as I put a link to an updated download for the european map (had to pare back scandinavia by two tiles to give scotland room, but didn't want to repost the whole zip).
antaine Apr 16, 2010, 06:10 PM http://forums.civfanatics.com/downloads.php?do=file&id=14605
The medieval maps, each from a different cultural perspective (see screenshots and readme).
Omega124 Apr 16, 2010, 07:48 PM No offense to your heritage or nothin' Omega, but, Scotland isn't even a modern nation. Going to the ancient times it was first colonized by Ireland and was even named after the Irish tribe of Scots while the native Picts got their asses handed to them. Going forward to aprox. 1000 AD the kingdom of Scotland was already intermarried with the English line since before Edward I whom conquered Wales. Around the time of Brian Boru, Scotland was being regularly Raided by the Vikings. The Scots had to my knowledge three rebellions against the English, all of them put down with little enough effort, and it was with the end of the 2nd(?) that made Great Britain a United Kingdom.
'Sides Scotland is ON Great Britain, the English Civ just would not have the proper /being/ if you know what I mean? Like whoever played as Scotland would immediately move to take say Ireland.
Of course it is all up to Antaine on what he makes though, maybe you can make a convincing arguement as to why he should.
Scotland successfully repelled many English invasions, and really pulled off a show doing so, with William Wallace and Robert the Bruce. In order for England to finally "defeat" them, they had to do a diplomatic union. That's why the title is "The King of England AND Scotland" (Along with Northern Ireland), and not just "England". Notice that Wales isn't mentioned on the list, as they were annexed by England, not willingly joining the UK.
Plus, RFC is to explore historical alternative realities. There is a good chance Scotland would had survived today, had they not unionized with England. Past wars shown that they can repel the southern invaders, there was a stable government, etc, etc.
antaine Apr 16, 2010, 08:11 PM Well, RFC aside, you might want to check out the scenarios. I didn't mod them because I wanted them to be easily multiplayer. I just played a game as Ireland where I conquered england, which HAS to be easier for the scottish player (having cities on the island and all).
As for modding RFC, by all means go for it. I could see altering the swordsman for a Highlander UU, a UP smilar to the inca involving mountians perhaps. You'd only need to change the color of the Independent flag to get the cross of St. Andrew. When I started out, I knew nothing (I still basically know nothing, but I know a lot more of it ;) ), but I eventually managed to flog the code into compliance.
If you attempt it, however, I recommend using my RFC map as I enlarged the british isles to accomodate more than just the english.
Omega124 Apr 16, 2010, 08:46 PM I'd love to create a mod that adds Scotland, you know I would dearly. However, I can't mod. At all. I would really flop, and I just wouldn't be able to work with Stability and such.
antaine Apr 16, 2010, 08:48 PM I'd never modded a thing before this. I simply didn't touch Rhye's stability code.
antaine Apr 17, 2010, 07:41 AM new version is up at the top of the first post
incognet Aug 12, 2010, 04:44 PM Hello everyone; I'm not certain if this thread is still active... but I do have some bugs/issues to report:
1) Irish UHV condition (no foreign culture is British isles) is a pain to achieve... I conquered all cities on the CELTIC isles (besides London, which I razed) in advance of English spawn. When they did spawn, I refused a flip...and fought 2 wars which left me in possession of London. Later, I conquered the Netherlands, and France... mostly to prevent their culture from intruding on my territory. However, by 1700... 2 of my cities (in Cornwall, and Wales) still reads "99% Irish"... 100% seems impossible to reach. All other squares are 100% Irish... there is just some *fraction* of independent culture left in the cities. Is there any way to adjust this?? I've satisfied the other 2 UHV conditions, and am the undisputed master of Europe... and Papal controller ;)
2) Several Ottoman cities have Scottish/British names... "Iverness" and "Edinburgh", I believe...
2) The Malinese are bugged. In 1670, I was able to view their treasury (via "passive" espionage); they have over 250,000,000 (2 hundred fifty million) gold!!! As they were about to achieve a UHV in 1700, I declared war on them... and have been trying to collapse their empire... but to no avail. They're still alive & kickin'... even after I sack 4 of their cities. The Malinese achieve UHV in 1700, something that I fail to do... as per issue #1.
antaine Aug 12, 2010, 07:52 PM hm...I'll have to play around with it in the coming week and see what's coded wrong. I thought I'd solved the british names in the middle east issue. afaik, the culture thing refers to tiles and doesn't calculate until the year called for, so let that year pass and if they're all green you should get the uhv. Also, this is the first I've heard about that error with the maya...I've vassalized them in the past and they didn't have that problem...could it be a bug in the spy reporting?
incognet Aug 14, 2010, 10:36 PM hm...I'll have to play around with it in the coming week and see what's coded wrong. I thought I'd solved the british names in the middle east issue. afaik, the culture thing refers to tiles and doesn't calculate until the year called for, so let that year pass and if they're all green you should get the uhv. Also, this is the first I've heard about that error with the maya...I've vassalized them in the past and they didn't have that problem...could it be a bug in the spy reporting?
It's impossible for me to determine whether I win the UHV in 1700... since the Malinese have an identical "end point" for their 3/3 UHV conditions. I let the turn cycle, and the Malinese (not Maya) win. It *could* be an error in the spy report, but they do have a RIDICULOUS amount of gold, even if the 250,000,000 figure is inaccurate...
However, I believe that it IS accurate... the cost of "steal gold" missions (for my spies) is astronomical (since the EP cost scales with the amount of gold an opponent has).
Curiously... I've been frantically sacking Malinese cities, but this has done nothing to prevent them from attaining their UHV...
Would you like for me to send you a save file?
(Edit) No offense, but I think that 100% Irish culture on the British Isles is an unrealistic goal. After several centuries, and the construction of numerous (culture generating) buildings, I can NEVER get above 99%...
antaine Aug 15, 2010, 06:30 AM please do! =)
incognet Aug 17, 2010, 10:20 PM Hi antaine... here is my .sav file, dated 1699 AD. I'm currently engaged in a war of annihilation (w. Mali), trying to knock them out of contention for a UHV. If necessary, I can post an earlier .sav file... before I declared war on them.
antaine Aug 18, 2010, 06:10 PM I have a hard time believing that they could accumulate that much gold, but they have a lot even at an early stage in the Slow Game I've been running (I peeked). Their powers entail extra gold in every tile and a UB that capitalizes on that. If they were left to live in complete peace, could they really develop that much money?
The thing is, I didn't touch the Malinese...their coding is what Rhye had. I may need to nerf them, but honestly I'm puzzled as to why this should happen if it doesn't in the ordinary RFC when the marathon mod is applied.
Anyone who has experience with that and could look at the code I'd appreciate it.
antaine Aug 18, 2010, 08:16 PM I'm wondering if in the short term I can arrange a dirty, python fix for the malinese...something like "check every tenth turn and if they have more than $10k reset their money to $1k."
Baldyr Aug 18, 2010, 09:29 PM Learned any Python yet? :D
incognet Aug 18, 2010, 11:36 PM I have a hard time believing that they could accumulate that much gold, but they have a lot even at an early stage in the Slow Game I've been running (I peeked). Their powers entail extra gold in every tile and a UB that capitalizes on that. If they were left to live in complete peace, could they really develop that much money?
The thing is, I didn't touch the Malinese...their coding is what Rhye had. I may need to nerf them, but honestly I'm puzzled as to why this should happen if it doesn't in the ordinary RFC when the marathon mod is applied.
Anyone who has experience with that and could look at the code I'd appreciate it.
I know! Even with their Unique power, and several golden ages... it's not mathematically possible. I've never seen Mali (or ANY civ) accumulate so much gold in RFC. There's something odd in this game... and I haven't touched any of the code...
Oh, and BTW... did you notice my problem with Irish culture on the Isles? No matter what I do, the 2 cities mentioned never exceed 99% Irish in the core tile.
antaine Aug 19, 2010, 02:26 PM Baldyr - no, by the time I'd finished my thesis my brain was no longer working...I haven't touched coding (or even civ, that much) since then.
incoget - I believe I copied the coding for domination of the island from the Japanese uhv. My understanding is that it goes by colored tiles and not acutal %, but I could be wrong on that. I think as long as all tiles are green or blank (no blue, orange, red, etc) you should be fine. As I also seem to recall it only looks for whether or not that uhv is satisfied once...on the date specified (perhaps one turn off), so satisfying the uhv before that (or having foreign culture present before that) will not trigger the uhv to register "no" or "yes." Anyone who can confirm excatly what the game is looking for with foreign culture (% or tile colors) one way or the other I'd really appreciate it.
I'm playing a game now, checking in on mali every few turns. They have a lot of money (just over 1000 in 1200AD), but nothing like what you have in your save file. As I said, I didn't touch Rhye's coding for the Malinese, their UP or anything to do with them. By the looks of it they will be a rich civ as long as they can stay out of war and prevent themselves from being conquered. I'll let you know what I find.
If there is some sort of bug in the DLL, I think I'll need to do that dirty fix with python (I don't really have the means to recompile a dll anymore...and I didn't change it in the first place so honestly I wouldn't know what to fix). I'm interested in more feedback from others as well (running marathon test games takes a long time and the more people that do it the more feedback there will be in the shortest period of time).
antaine Aug 20, 2010, 09:46 AM Alright...I ran two autoplays to check on Malinese funds. The first one I ran to the Turkish spawn on the eve of the 1300s. At that point, left to their own devices, the Malinese had just over two thousand gold. I ran another one to the American spawn in 1775, at which point they had just over 8000gold and no achieved uhvs. It seems your observation was just a fluke, perhaps it was a bug caused by your spying (take that Heisenberg! lol).
As for the names, I started a game as China just to observe, figuring the problem had to do with the Byzantines and the Celts being the same civ from different starts. I found this strange as the Byzantines can't make settlers and found cities, but entertained the idea nonetheless.
However, natives and barbarians can found cities, and it seems that those particular cities must routinely be razed, but be favorable locations for barbarian refoundings at about the point Edinburgh and Inverness come up on their city names list. I can't define a naming map for them, and proper civs won't rename "Edinburgh" if their dynamic naming lists are limited to middle eastern cities, so it's a minor inconvenience we'll just have to live with (or use the cheat mode to rename them manually if they bother you that much...honestly, I'm a stickler for city naming and will probably be doing just that).
antaine Aug 25, 2010, 09:34 PM Alright, it apparently does go by the % culture in each tile (I still can't seem to recreate the Malinese money problem). I'm not entirely sure what to do about it because I'm not sure what causes it to read "99% Irish 0% Independent" in the first place.
I'm open to suggestions by those who might know more.
nody Aug 26, 2010, 02:46 AM You should have Ankgor spawn around 800-900 AD with Buddhism and the Wat Preah Pisnulok build in it.
Baldyr Aug 26, 2010, 08:40 AM I don't think a culture take-over can ever become 100%. Because the domestic culture points will still be present. Like if the English have 100 culture on a tile, and the Irish manage to pump in 1 million culture. Irish culture will be something like 99,99% - but it still won't be 100%. It never will be, because the culture percent isn't rounded up.
So 100% culture condition on a foreign tile is flawed.
Magnificent One Aug 26, 2010, 09:04 AM Why not change the uhv from no foreign culture to no foreign cities if you cant win with the current one?
Baldyr Aug 26, 2010, 09:19 AM Or change the condition to 90-99% culture. Anything but 100%
|
|