.

Lord Olleus said:
We could always drasticaly reduce the number of free military units to make this more encouraging.
I think this is very much needed. Historically it has always been incredibly expensive for a government to field and operate an army. For example, in the 16th and 17th centuries it would not be uncommon for a country at war to be devoting 90-95% of its governmental spending towards the military. This is not represented at all in civ.
 
Well some nations only have conscripted troops (except the officers etc), and have reserves of them.
 
The idea that reserves cost even 5 gold to "wake up" is a great idea, and ceases to reward players for flipping things on and off every single turn. Forces slightly longer term strategic thinking. I would endorse this plan -- if Lord Olleus isn't into the idea of taking more than one turn to wake up. (Just my two cents, of course.)
 
And customize it with the .ini file, so people can play with their prefered option.
 
Sounds good to me! :)
 
Yes, I have started doing some design work on paper and yes there will be an INI file. DO YOU HAVE A PROBLEM WITH THAT? :p
 
I think you need to ask, what is the purpose.

It sounds like what is wanted is:

1) Free Units that
2) Keep citizens happy (Temple Bonus)
3) The convience of being able to summon said unit during war time (ala Drafting)

jsut my 2 cents. I dont think the unit should be free (which is the whole purpose of the mod). Reserves still need to be trained, and have their "2 weekends a month/2weeks a year) where they go to stay "fresh" Any training (including food costs) would require money.

With that, If your going to have to pay for the unit, why would you pay for one that wont be in the city to defend it?

Doesnt sound like a very good idea to me.
 
Edgecrusher said:
I think you need to ask, what is the purpose.

It sounds like what is wanted is:

1) Free Units that
2) Keep citizens happy (Temple Bonus)
3) The convience of being able to summon said unit during war time (ala Drafting)

jsut my 2 cents. I dont think the unit should be free (which is the whole purpose of the mod). Reserves still need to be trained, and have their "2 weekends a month/2weeks a year) where they go to stay "fresh" Any training (including food costs) would require money.

With that, If your going to have to pay for the unit, why would you pay for one that wont be in the city to defend it?

Doesnt sound like a very good idea to me.


You are missing the whole point of the mod Edgecrusher. The reserve units are not free units. You still have to train the units and the units have to be put into reserves, both which take time and money... Once the unit is fully in reserve mod then the unit won't cost the player any money but it will take time to bring the reserve units back into full fighting capabilities, which isn't like drafting a unit as you suggest.
 
Some thoughts for Lopez at the code level,

I'm thinking the delayed effect could best be created by the combination of an int and boolean at the CvUnit level. The int would be the countdown to reactivation and the boolean would be in/out of reserve. An active unit has 0 (no countdown), false (active) status. When placed in reserve the unit goes 0 (no countdown), true. When reactivated the int is set to the configurable "wait time" (so far the plan is for 1 turn per Olleus but ofcorse it could be incressed or decressed by some configurability option such as .ini or a GlobalDefine). Each turn all units get processed as such...

if (! intcountdown)
boolreserve = false
else
intcoutdown--

The option to reactivate is displayed on a unit only
if (boolreserve && ! intcountdown)

At the time of reactivation the countdown should be checked incase the user has selected a zero wait time and the activation needs to occur imediatly

reactivate()
{
intcountdown = max(configured_wait_time, 0)
if (! intcountdown)
boolreserve = false
}

The rest seems rather straitforward, any unit in reserve reports its power to be zero (or maybe its HP, what ever will make it losse 100% of the time) and is in a Deep sleep mode unable to move or do anything (all the attack and Move buttons could be suppressed) their would need to be some rules involving group selection and ofcorse the maintinace cost counting functions simply skip the unit for tallying purposes. You alredy have some ideas concerning AI and I hope that pans out, if I remember correctly the AI has such huge free unit maintance its not even going to need reserves.
 
Alright, here is what I have for the configuration file:
Spoiler :

[Reserve Forces]

; Change the value to false if allowing units to be converted to reserve units
; shouldn't require a technology.
; Default value is True
Require Technology = True

; Change the value to the technology that should be required for converting
; units to reserve units.
; Default value is "TECH_GUNPOWDER"
Enabling Technology = "TECH_GUNPOWDER"

; Change the value to false if a building shouldn't be required to convert
; units to reserve units.
; Default value is True
Require Building = True

; Change the value to the building that should be required for convering units
; to reserve units.
; Default value is "BUILDING_MUSTERING_CENTER"
Required Building = "BUILDING_MUSTERING_CENTER"

; Increase or decrease the value to change the percent amount of units to city
; population allowed to be converted to reserve units. For instance if a city
; has a population of 8 and the value is set to 25 then the max number of units
; that can be converted to reserve units would be 2.
; Default value is 25
Max Reserve Units Percent Amount = 25

; Change the value to false if reserve units should require a maintenance cost.
; The maintenance cost is applied to the city the reserve unit is located at.
; Default value is True
Reserve Units Require Maintence Costs = True

; Change the value to change the type of maintenance cost reserve units should
; incur on their owner. The types are:
; "Flat Per Unit"
; "Percent Unit Cost Per Unit"
;
; "Flat Per Unit" means that for each unit their owner has to pay a flat cost
; per turn. "Percent Unit Cost Per Unit" means that the units owner has to pay
; part of the units cost per turn.
; Default value is "Percent Unit Cost Per Unit"
Reserve Units Cost Type = "Percent Unit Cost Per Unit"

; Increase or decrease the maintence amount reserve units should incur on
; their owner. If the "Reserve Units Cost Type" is set to "Percent Unit Cost
; Per Unit" then the value is treated as a percent.
; Default value is 5
Reserve Unit Maintence Cost = 5

; Change the value to false if reactivating reserve units should incur a cost
; on the owner of the reserve units.
Require Reactivation Cost = False

; Change the value to change the type of reactivation cost reserve units should
; incur on their owner the types are:
; "Flat Per Unit"
; "Percent Unit Cost Per Unit"
;
; "Flat Per Unit" means that for each unit their owner has to pay a flat cost
; to reactivate each unit. "Percent Unit Cost Per Unit" means that the units
; owner has to pay part of the units cost to reactivate it.
; Default value is "Percent Unit Cost Per Unit"
Reactivation Cost Type = Percent "Unit Cost Per Unit"

; Increase or decrease the reactivation amount reserve units should incur on
; their owner. If the "Reserve Units Cost Type" is set to "Percent Unit Cost
; Per Unit" then the value is treated as a percent.
; Default value is 5
Reactivation Cost = 5

; Change the value to false if reserve units should not lose any experience.
; Default value is False
Reserve Units Lose Experience = False

; Increase or decrease the value to change the amount of experience points
; reserve units should lose per turn.
; Default value is 1
Per Turn Experience Loss = 1

; Increase or decrease the value to change the amount of turns it takes to
; reactivate reserve units.
; Default value is 1
Reserve Unit Retrain Time = 1
 
I dont mean to nit-pick but half the options are unessary if the other half would just be made to accept zero and NONE values.

For example...

Allow Required Technology to have a NONE -> No need for the Boolean option
Allow Required Building to have NONE -> No need for the Boolean option
Allow Unit Exp Loss to have a zero value -> No need to have a Boolean option

Rather then a switch for Flant/Percentail cost have a value for each, one, both or neither could be set to zero, this also alows combinations such as 5 gold + 10% which the current format dose not allow.

Personly I dont see why .ini parsing is so popular, before the SDK when all we had was Python it was nessary, but not that your going to be doing SDK work to make this mod in the first place theirs no need to involve the Python layer, everything could be done with Global Defines which go strait into the Code without mucking around in Python and their loaded from XML which people are already far more familiar with.
 
Impaler[WrG] said:
I dont mean to nit-pick but half the options are unessary if the other half would just be made to accept zero and NONE values.

For example...

Allow Required Technology to have a NONE -> No need for the Boolean option
Allow Required Building to have NONE -> No need for the Boolean option
Allow Unit Exp Loss to have a zero value -> No need to have a Boolean option
Ok, fair enough

Impaler[WrG] said:
Rather then a switch for Flant/Percentail cost have a value for each, one, both or neither could be set to zero, this also alows combinations such as 5 gold + 10% which the current format dose not allow.
Hmmm.... intresting idea, should this be done for both the maintenance cost and reactivation costs?

Impaler[WrG] said:
Personly I dont see why .ini parsing is so popular, before the SDK when all we had was Python it was nessary, but not that your going to be doing SDK work to make this mod in the first place theirs no need to involve the Python layer, everything could be done with Global Defines which go strait into the Code without mucking around in Python and their loaded from XML which people are already far more familiar with.
1) We are going to need to add code to the python layer to display the button in the city window so you can see your reserve units.
2) The reason why I always use INI files vs the AltGlobalDefines.xml file is because a lot of people do not know how to deal with XML. For some people it is really daunting to see all of those tags... Also by using INI files you can compartmentalize the configuration settings for each mod comp, you cannot do this in the global defines file...
 
TheLopez said:
1) We are going to need to add code to the python layer to display the button in the city window so you can see your reserve units.
2) The reason why I always use INI files vs the AltGlobalDefines.xml file is because a lot of people do not know how to deal with XML. For some people it is really daunting to see all of those tags... Also by using INI files you can compartmentalize the configuration settings for each mod comp, you cannot do this in the global defines file...

I agree, using ini files can be easier for those people that can get lost with the XML files. Although I would find it hard pressed to see how that's possible, I'm sure for some people it's just easier (as long as the code to remove whitespace from between the commas is put in when parsing a string list, otherwise they're going to cause more problems than they'll help).

As for not needing python, I think many things can still be put into python. I used to go straight for the SDK and put the code there, but now whenever I can I try to aim for python simply because of the ability to quickly change code and continue the debugging with the new code.
 
Hey Lord Olleus. Great to see that you are still putting some fantastic ideas out there for consideration :goodjob:. I am not sure if you are familiar with Call to Power I and II? In that game, you could switch the 'Readiness' of your forces-between Low, Normal and High. Low Readiness troops cost very little to maintain, but had a poor combat strength-they could still fight, but were at a greater risk of defeat. High Readiness troops cost more than normal to maintain, but got a bonus to their combat strength when attacked. Anyone think that they could do something like this? I would, but I am having enough trouble just adding new XML tags ;)!

Aussie_Lurker.
 
Impaler[WrG said:
Personly I dont see why .ini parsing is so popular, before the SDK when all we had was Python it was nessary, but not that your going to be doing SDK work to make this mod in the first place theirs no need to involve the Python layer, everything could be done with Global Defines which go strait into the Code without mucking around in Python and their loaded from XML which people are already far more familiar with.

I like the ini thing because it allows option to be put in their own file. Especially if you have several mods all with a half dozen or so options, this will fill up a globaldefines file pretty quick, and anyone who has just spent the better part of an hour just reading over globaldefines options knows that that file doesn't need to be any longer.

As for python verse sdk, I'm of the opinion that any and all code that can be done in python should be. For one, when it is written in python, anybody with a text editor can open it up and do what they want with it. For second, python is way more intercompatable then the c++ changes as it requires no compileing or special editors. Just a litle cutting and pasting, amybe a new if/then or two, and boom, save and play.

The question is your goal, do you want to make it more streamlined for users of the mod or more compatable for other modders to incorp into their own creations. If the former sdk is the way to go, but if the latter then python should be used if possible and sdk resorted it when all else fails. :)

EDIT: Sorry for the off topic post, but I have to defend my beloved Python. :band:

And just to hit on the topic, this mod looks like another winner, if you are in need of testers for it, just pm me TheLopez. :cool:
 
Yes I would use it for upkeep and reactivation, but flat upkeep costs should be able to accept a floating point number. Units normaly cost 1 gold upkeep so inorder to have any meaningfull reduction in maintance you need decimals. The total reserves maintinace would be totaled up and round yes?

Why should a button be nessary to see the Units? Are the reserve units going to be "disapeared" by transfering them to somekind of Limbo state inside the city ? I'd rather they stay visible as portraits on the bottom of the screen with some kind of special Dot color (Black?) to indicate their reserved (Grey for in progress reactivation?). That might require some work in the MainScreen but thats about it, I think the reactivation button can be done from within the SDK but I'm not shure. My point is that the .ini method attaches a lot of Python dependencies not only are their all the files for the parsing their are Custom Eventmanagers, Entry points and a number of other files that need to be present. The SDK/GlobalDefine method is cleaner in that all you end up with is a DLL and an XML file. With proper defaulting the DLL will run without the XML file and give you un-altered game play. This particular mod might infact need some Python but most of your work so far hasn't been so complex as to necesitate it.

Its hard for me to see how the Global defines XML can be much harder then an .ini, assuming the tags are given logical names it should be no harder then modify the normal game. If the user cant modify simple XML defines in the vanilla game what are they doing playing with Mods?

I see your point on the use of the .ini to compartmentalize data into logical groupings specific to each mod, perhaps the XML loader can be configured to load a folder full of new Define values much the way it loads any thing in the text folder, Its already loading one extra DefinesAlt so it should be able to do more without too much hastle. This would privide flexibility exceeding that of .ini files because any particular Define value could be placed on any one of the files without causing a problem.
 
I never understood why they didn't do the units, buildings, ect like the text folder, so you could just add a unitinfos.xml to the units directory and it compiles them all together, if nothing else it would get rid of all the redundent xml data that is currently required. :)
 
Impaler, there is another reason to use INI files over XML for configuration data... if I remember correctly by using XML files you have to reload the mod each time you make a change to the configuration data. By using an INI file you do not.
 
Back
Top Bottom