Glory and Greatness, Development Thread

You probably prefer that these values will be read from the XML so you don't need to add Python code to handle them.
So my question is: Should these values be part of a civilization description or a leader's? If a leader's - they can be made traits' properties.
What is your preferred way?

BTW, Baldyr - I'm thinking of adding XML values (as long as I'm at it) for some of the previous features (extra plot type yield, extra terrain yield). If I do - I'll try to maintain backwards compatibility so 'set' calls from Python will still have effect. Do you think it's needed?
 
BTW, Baldyr - I'm thinking of adding XML values (as long as I'm at it) for some of the previous features (extra plot type yield, extra terrain yield). If I do - I'll try to maintain backwards compatibility so 'set' calls from Python will still have effect. Do you think it's needed?
No mod I've been involved with (and that is using your DLL) is finished by any means, so there is no real need for backwards compatibility. XML tags is actually a good idea, as far as I'm concerned.
 
You probably prefer that these values will be read from the XML so you don't need to add Python code to handle them.
So my question is: Should these values be part of a civilization description or a leader's? If a leader's - they can be made traits' properties.
What is your preferred way?

BTW, Baldyr - I'm thinking of adding XML values (as long as I'm at it) for some of the previous features (extra plot type yield, extra terrain yield). If I do - I'll try to maintain backwards compatibility so 'set' calls from Python will still have effect. Do you think it's needed?

Yes indeed, as trait properties is excellent. It will make it easy to use it for future mods as well. Each leader in this mod has a unique trait "TRAIT_AZTEC" for Monty, etc., this will be elegant, plus the bonus will show up in Leader screens in the Civpedia.
 
I'm almost done with the DLL. I hope to release it tomorrow.
The reason I'm posting this is that I want to verify something before that:
The extra combat strength modifier which is caused by territory (either domestic or enemy), works the following way:

When it's the defender's modifier - it works as you'd expect it: +X% to defender strength.

However, when it's the attacker's modifier, it actually affects the defender's strength: -X% defender strength. The reason is the way the combat calculations are implemented inside the code - the plot is only 'known' when the defender strength is calculated, not the attacker.

I looked at the way similar features of the game works - specifically +50% attack in forest/jungle of Woodsman III promotion - and apparently it works the same way.

The help text when you see the combat stats says +X% to the attacker, but the actual calculation is -X% for the defender.

You can try, for example, this scenario: A warrior with Woodsman III attacks a warrior in a jungle.
Instead of a 3.00 vs. 3.00 combat (+50% for promotion, +50% defense bonus), you'll see a 2.00 vs. 2.00 combat (defender: +50% defense bonus, -50% from attack promotion).

I'm not even sure if it makes much of a difference for combat odds...

I didn't want to change the way the combat is done or to change the parameters sent to the function - it would risk adding too many bugs to the combat system, and require testing of more than just the new features I've added.

But I can do that, if you want to do this testing.
Otherwise, I'll leave it as it is and hopefully release it tomorrow.

Oh, and just for the mean while - the spoiler contains, well, a spoiler ;)
Spoiler :

You can of course change the actual texts in the XML files.
 
You know what they say - why postpone till tomorrow something that you can finish today?

(although technically here it's already tomorrow...)

Let me know if it has everything you need (you too Baldyr), or if there's anything you need changed, or if there are any bugs or questions.
 
Looking good, but I might be awhile before I get around to testing these additions.
 
Wow, looking real good there. Things are definitely coming together.

Question, how is the units not needing Open Borders being handled (Polynesia)? Is that something you're doing in Python Baldyr or is that something that requires DLL/SDK?

Oh, and here's the first half the UU list for those interested:

America
UU: B17, Bomber Replacement, Greater Range and Strength, higher percent of collateral damage
UB: Town Hall, Courthouse replacement, additional 3 beakers of science.

Arabia:
UU: Camel Gunner, replaces Cavalry, no resources required, ignores terrain cost, 33% chance of withdrawal
UB: Bazaar, replaces Market, +1 Trade Route, can assign 3 merchants

Aztec:
UU: Eagle Warrior, replaces Maceman, moves 2, 1-2 first strikes
UB: Floating Garden, replaces Aqueduct, +2 culture, +2 Espionage

Babylon:
UU: Scythed Chariot, replaces Chariot, bonus against mounted units, targets mounted units in a stack.
UB: Stone Tablet, replaces Monument, +1 Science.

Byzantium:
UU: Dromon, replaces Trireme, bonus against all Naval Units.
UU: Varangian Guard, replaces maceman, cheaper to recruit with larger city attack bonus.

Carthage:
UU: Armored Elephant, replaces Elephant, +2 Strength
UU: Sacred Band, replaces Spearman, +100% against melee units.

Celts:
UU: Highlander, replaces Maceman, +50 against Mounted Units
UU: Ulster Swordsman, replaces Longswordsman, starts with combat 1, combat 2

China:
UU: J-10, replaces jet fighter, 33 percent chance of evasion, starts with Ace and Range promotions
UB: Paper Maker, replaces Library, +4 Espionage points.

Egypt:
UU: Berber Cavalry, replaces Knight, ignores terrain cost, has Blitz promotion.
UB: Burial Tomb, replaces Forge, can assign up to 2 engineers, bonus happiness from incense and dye.

England:
UU: Welsh Longbowman: Replaces Longbowman, +25% against archer and melee units
UU: Man O’ War, replaces Ship of the Line, greater bombard of city defenses, bonus against naval, can carry 3 troops.
Ethiopia:
UU: Kuhorsehockye Chariot, replaces Chariot Archer, 3 movement
UU: Kagnew Battalion, replaces SAM INFANTRY, better intercept, bonus against Tanks.

France:
UU: Foreign Legion, replaces Infantry, bonus defending cities/forts, fighting in jungles and deserts.
UB: Culverin, replaces Trebuchet, moves 2 and bonus against melee units.

Gran Colombia:
UU: Grenadero, replaces Grenadier, bonus against ALL gunpowder units and small city attack bonus
UB: Plaza, replaces Industrial Park, no unhealthiness, no factory requirement

Germany:
UU: U-Boat – Replaces Submarine, bonus against naval units
UU: Howitzer – Repalces Artillery, Greater bombard strength, higher strength.

Greece:
UU: Companion Cavalry, replaces Horseman, +2 Strength.
UB: Agora, replaces market, +15% research

HRE:
UU: Teutonic Knight, Replaces Knight, cannot pillage, receives defensive bonuses, starts with Leadership Promotion
UB: Opera House, replaces Theatre, +6 culture instead of +3

Inca:
UU: Andean Slinger, replaces crossbowman, bonus against archer units and fighting in hills.
UB: Stone Walls, replaces Walls, +70 Defense, +30 espionage defense.

India:
UU: Sepoy, replaces Infantry, moves 2 and has 1-3 first strikes
UU: Siege Elephant, replaces Cannon, available with Gunpowder, can be built with Bronze or Iron, bonus vs. mounted units

Iroquois:
UU: Aenna, replaces Archer, doesn’t need Open Borders, start with Woodsman 1
UB: Fur Trader, replaces Granary, +2 merchant GPP and bonus happiness/healthiness with fur.

Israel:
UU: Merkava, replaces Modern Armor, cheaper to produce with high withdraw, damates enemy stacks with collateral damage
UU: Macabbee, replaces Swordsman, available with Monotheism, can be built with copper, gains as much experience from defending as attacking.

Japan:
UU: Zero, replaces Fighter, stronger with higher damage limit against enemies.
UB: Pagoda, replace Observatory, +2 health, slot for an Artist Specialist, happiness with Dye or Silk

Khmer:
UB: Rice Paddy, replaces Grocer, +1 food on river tiles
UU: Vietcong, replaces Machine Gun, can attack, 2-4 first strikes.
 
Question, how is the units not needing Open Borders being handled (Polynesia)? Is that something you're doing in Python Baldyr or is that something that requires DLL/SDK?
Oops! I never included that one in my run down of the non-XML powers, right? So it never got included in the wish-list I wrote down for Asaf...

I looked at the RFC mod and there a similar unique power is achieved with CvUnit::canEnterTerritory() - in the SDK. So I guess there should be some XML tags created for this. Asaf? :p
 
Oops! I never included that one in my run down of the non-XML powers, right? So it never got included in the wish-list I wrote down for Asaf...

I looked at the RFC mod and there a similar unique power is achieved with CvUnit::canEnterTerritory() - in the SDK. So I guess there should be some XML tags created for this. Asaf? :p

A unit which is either invisible, or has hidden nationality or which has 'can explore rival territory' (bRivalTerritory is set to 1, such as a spy or a caravel) - can explore rival territory without OB.
But it's only in the unit type (UnitInfo) level, not in the player's.
 
So this basically need to be added to the PlayerInfo also, or CivilizationInfo or some trait or what have you.
 
So this basically need to be added to the PlayerInfo also, or CivilizationInfo or some trait or what have you.

TraitInfo, yes.
Is that an official wish?

 
Not until seasnake makes the actual request. :D

I only work here. :lol:
 
Asaf, I want you to make <bexplorerivalterritory> a Trait!

And after that I may wish you free even, but probably not.

Oh, Asaf, I'm going to credit you and Baldyr as Co-authors of this mod if there is no objection on your part.
 
Just wanted to say: Happy Holidays! And status report, everything on my end is done through Persia, I just have a few more civs to finish.

Hope you have a good Holiday,

SS
 
I'm actually trying to finish the Python work on Jamie's Rome mod and should be able to more or less do the powers code in one sitting. Once I get the time, that is... :p
 
I've been busy myself but as I'm now done with Jamie's mod I can start on G&G. I think I'll revisit the work I did for the previous version first and see if something needs updating.
 
Top Bottom