Requesting following features

1) how do I make a new calendar?
By calendar you mean the turn/year increments? Those are found in the game speed XML - your mod should only have one game speed. You set the starting/end date in the WBS.

2) how will this effect the code (I think all my code is turn based, but for example I say for the byzantium effect to fire on year 0 and then in my new calendar 0 is actually 340 ad would I have to put 0 or 340 into the code?)
I don't remember, actually. Figure it out. :p

also was the slave rebels code meant to be fired from the event triggers or the events? and how?
IIRC we added a method invocation in the random events Python module. I can look into this over the weekend, right now I can't access anything.
 
I will look into it also make sure you didn't miss this

I am not sure about multiple rosters because of needing to find the names (which will prove hard enough anyway ) one for now I guess... I could always find translations for cities later...

How should the nile code be changed? and what needs to be changed with the killing of the rebel units (as their position in the world has changed... only by a few tiles though but I don't want to mess everything up completly )

edit: is there some kind of python call that can tell you what year is what turn (reading from the custom calander?)

right from actually finding this file for the first time (I rarely see the vanilla xml :p) I know what you mean with the calendar and I will work on it! I can make some code that will calculate the correct date on a turn based on the increment calculations (I will make a formula) :D just need to know whether your date function will be affected or ignore the change
 
I will look into it also make sure you didn't miss this
The Nile? Right now its defined by one single tile coordinate, it being a rectangular area right at the bottom of the map. If you map the Nile tiles on the new map we can augment the current code.

edit: is there some kind of python call that can tell you what year is what turn (reading from the custom calander?)
You mean like CyGame.getGameTurnYear()? What exactly are you looking to do?

...just need to know whether your date function will be affected or ignore the change
We can get things in order. Just focus on the new calendar and I'll get all related Python in order. (I'm not actually sure what you mean, by the way. But the main thing is that you don't need to worry about it.)

In short: Just get the new time-line working and then we can take it from there.
 
well I am guessing that due to the conditional statements checking the game year it will have to be updated but I have that sorted :p I am using the correct historical dates of the events and just fitting them to the right turn I want... very difficult to do though :p
 
No, you don't need to bother with converting turns to dates. I'll make you some helper functions for this, so don't bother with it. There is no issue.
 
actually I have to. my events now happen on the correct dates and I must match these to the right turns...

so far:

341 bc = 0
074 bc = 111
395 ad = 320
575 ad = 500

575 ad, 500

1 year, 180 turns

395 ad, 320

1 year, 69 turns

2 year, 50 turns

3 year, 100 turns

74 bc, 111

3 year, 60 turns

4 year, 18 turns

7 year, 1 turn

8 year, 1 turn

341 bc, 0

just making sure it lines up :p
 
it does! So first there are 7 turns where the year goes up by 8 then 1 turn going up 7 years and so on

341 bc is the start date
74 bc is the spartacus rebellion
395 is ERE split
575 is the end...

so the ere appears in the 320th turn a little later than normal but the futher I put it forward the later the end date becomes and it is already to late :p and a re calculation is needed...
 
No, no... You're making an ass out of yourself. There is no need for this nonsense, I tell you. Focus on the bleeding time-line and I will fix this for you. All you need to supply is the historical dates - you will even be able to play around with the turn/years during testing. Or revise the whole thing without making one single alteration to the code.

You know about Rhye's and Fall of Civilization, right? So there is a mod-mod that adds 2 more game speeds to the mod's 2 scenarios. Now, I made a scenario scripting tool for it that dynamically recognizes all possible dates, no matter what game speed. (You could add any number of additional game speeds and this would still be true. It even works with months/weeks, for crying out loud.)

If I managed that, surely I will manage your mod/scenario that has only one game speed, not? Piece of cake, I tell you.

What you need to do is get the historical dates down. Can you manage that? Because I will make you a helper function that returns True if the current game date matches (no matter what turn/year increments you use, even fractional years). So you'd call it like:
if isDate(575):
Then the isDate() function will only return True once, on the date that is closest to the argument. Simple enough?

edit: I actually already did exactly this, for another user's mod/scenario. Here.
 
well I am going to add this to the game speed, with the right starting date and historical dates exactly... Why waste my work now :p

All the dates are how I need them... the dates slowly go up by less every turn and hit all the right dates for the events. it isn't nessicary for python to round these dates to nearest turn as I have them exact.

edit: what difference would it make using the python solution, surely the dates themselves wouldn't appear in the game in what you are saying... or am I misunderstanding?
 
actually did make a mistake counting the turns :p but I just added 21 more years :p

This is my solution then. the historical dates appear EXACTLY and it all works out... however I am now intriugued to hear yours, explain fully please!

dates:

341 bc = 0 Starting date
074 bc = around 111, Spartacus
395 ad = around turn 320 - 250, ere
n < 575 ad = end

these dates are the only ones you need to worry about... btw I have started hunting around the maps of europe and translating cities to latin for city names!
 
Well, its you mod, you can have it your way.
 
still, maybe your way is better than mine, so can you explain what you mean because I don't think I entirly understand :p
 
The difference is between scripting out the need to do something that is rather cumbersome and time-consuming to do manually. I guess you wanna add new historical events going forward? Well, then you have to pinpoint what turn corresponds to the date. And would you change the entire time-line after testing you'd have to recalculate every date. Every time you change it.

There is no reason, what-so-ever, to bother with figuring out what turn is what date. But you're welcome to do so if you like.
 
well seeing as it's done now theres not much I can do about it.... if I do add more events your program may come in handy as I refuse to spend another hour working out exactly how to do it... :p The important thing now is that I have the spartacus and ERE events on the right date... if I do decide I need to move the ERE foward in turns then I will definately adopt your code :p s o don't stop working just yet :p

there is always the chance I messed up and it won't work anyway :rolleyes:


Also last night I was thinking about my next mod and that in the beginning rome would be huge and would certainly go on strike and I though that disbanding units makes no difference! What tdo you think of this:

when you are in strike (that's where you are losing money and with no gold :p) the furthest cities from your capital revolt and join the rebels! I guess it would be an extension to the rebels module... Do you think it is feasable? Also I have quite a few names for the historical cities...

Spoiler :
Augusta Taurinorum - turin
Mediolanum - milan
Patavium - padua
Roma - Rome
neapolis - naples
Massilia - marseilles
Burdigala - bordeaux
Tolosa - toulouse
Lutetia - Paris
Lugdunum - Lyons
Cadomum - Caen
Pictavium - Poitiers
Aureliae - orleans
Metis - metz
Bruxellae - brussels
Berolinum - berlin
odio - munich
Bremensis - Bremen
francofurtum - frankfurt
dresda - dresden
Lipsiae - leipzip
Hafnia - copenhagen
londinium - London
york
Oxonia - oxford
Glasguae - glasgow
dublinii - dublin
Aberdonia - aberdeen
Innernessa - inverness
Bristollie - bristol
Norwico - norwich
Cantabrigia - cambridge
Valentia - valencia
Matritum - madrid
Caralitanus - cagliari
Genua - Genoa
Syracusae - Syracuse
Brundusini - brindisi
Tergeste - trieste
Veronae - verona
Bononia - bologna
Turicum - zurich
holmia - stockholm
bancor - bangor
Amstelodamum - amsterdam
Cairus - Cairo
 
when you are in strike (that's where you are losing money and with no gold :p) the furthest cities from your capital revolt and join the rebels! I guess it would be an extension to the rebels module... Do you think it is feasable?
Also I have quite a few names for the historical cities...
I think it is. I'll have to look into it, however. Chances are that I've already dealt with this, so I'll have a look. Sadly I'm not gonna have access to my computer this weekend, after all. So I'll have to get back to you next week. (Actually, I'm planning on doing some programming in the coming month, if I have the time. If you need anything done, this would be the time.)

Also I have quite a few names for the historical cities...
Thinking about this further, I think you could have one data structure for all the names. But there would be 2 entries to each city site; one Latin and one indigenous. So whenever non-Romans are founding cities, the data will be checked for tile coordinate matches and the name will then be the native variety. But whenever Rome is building - or acquiring - cities, then the Latin name will be used.

This is how you could set up the date (as an example):
Code:
cityNameDict = {
(34, 56); ("Londinium", "London"),
(23, 34); ("York"),
(34, 55); ("Oxonia", "Oxford"),
(46, 56); ("Glasguae", "Glasgow"), 
(90, 34); ("Dublinii", "Dublin")
}
Now, the coordinates are used as the dictionary keys. These are of course just dummy ones. Note how York only has one name - then it would be used for both Latin and English city names. I do however think that you could use the Celtic names in these specific cases instead of the English ones, but thats a design/time consideration for your discretion.
 
I am meant to have eburacum under york but I needed to check spelling first... I will try and do the celtic names for them but thats is going to take a long time so for the moment the celts are going to have to live with roman names :p

Also seeing as I probably won't find a name for every tile how will the game deal with tiles with no name? take the nearest city name?
 
above and also, is it ossible to sielence the messages for when someone makes peace with the rebels because everytime there is a rebellion you get like 7 messages of peace. And since you were able to stop the destroyed messages can you stop the peace mesages?
 
On the city naming; you make up the rules, I'll code it. I do suggest however that the code should check adjacent tiles if no entry is found.

On the messages; how did we solve that previous issue? I don't remember.
 
neither do I... maybee asaf will wonder by... I think he knows or has something to do with it :think:

I have been putting the names on the map for the moment and getting new ones.. proving quite difficult because I need more than I have :p
 
What I suggest for the city name data is that we crieate a "sparse matrix". That is, we only bother with the tiles that you have names for. No need to find a historical site for every tile imaginable.

In fact, we might be able to restrict city founding to historical sites only, that is tiles that you've been able to find a name for. I'd have to look into this next week, when I have my stationary PC online.

The nice thing about this setup is that we can start small and build on it later by simply adding data. The data doesn't even have to be in any particular order, so you will always be able to add more. Any number of data would be sufficient for testing purposes; the main thing is to get the overall design down, and get the logic that achieves it coded. So I wouldn't bother with anything "complete" at this stage, but rather focus on how you wanna implement it.
 
Back
Top Bottom