ExtraModMod continued

Heh, I almost never go smelting because I always go for GoH if I can. Not sure from a balance POV, though FFH2 tends to prefer deep research (which tech trading and proliferation hit, unfortunately, but that's a discussion for another day).
Same. But it doesn't seem to unbalance the owner of GoH, in relation to the civs that don't have it, IMHO.
 
It's hard to tell. If you get late game with a decent sized empire in FFH2, it tends to be hard to lose, so it's hard to tell how much GoH is part of that vs. just being a indicator of a won game.
 
Feature request: I like the 'Quick Domination' option, because the standard domination has such a high land area requirement. However, I feel the population requirement is too low - imo it should always be at least 50%.

Currently I'm competing with a runaway AI who looks likely to win domination under these settings, but I expect I will be able to match them on population. This leads to a scenario where theoretically we could both be at the winning threshold simultaneously.
 
it's not possible to do terrain conditional workrate improvals in any efficient way, right? Was just thinking about how much of a hit to eco temples of hand can be for the illians with the +50% work rate for ice tiles.
 
it's not possible to do terrain conditional workrate improvals in any efficient way, right? Was just thinking about how much of a hit to eco temples of hand can be for the illians with the +50% work rate for ice tiles.
I like this idea, and I think tying it to the winterborn promotion is probably best. But it will be a bit of a hassle implementing it cleanly. I added it to the list.

Feature request: I like the 'Quick Domination' option, because the standard domination has such a high land area requirement. However, I feel the population requirement is too low - imo it should always be at least 50%.
Also a good idea, I noticed this before, too.
 
I believe that it would be easy to make a promotion like Winterborn increase a worker's work rate regardless of terrain, but impossible (without some significant C++ changes) to make it only increase the unit's work rate when on specific terrains. It doesn't seem right to me that the Illians should be the best as building in deserts, plain, grasslands, jungles, etc.

You could also grant terrain specific workrate improvements by using python to switch out dummy promotions. That is how I ended up implementing the Arda system to make priests' spells stronger in areas dominated by faith in its god and weaker in areas dominated by faith in an opposing god. Just checking the terrain type to swap out promotions would be simpler and faster code that MagisterModmod uses for that.

You could easily give Winterborn a PyPerTurn effect and/or make it the prerequisite for a spell that can never actually be cast but whose PyPrereq checks the terrain type and then either adds or removes a dummy promotion which increase the unit's work rate.

I think the code you'd need for this could be as simple as this:
In CvSpellInterface.py
Code:
    def reqWinterbornWorkrate(pCaster, eSpell=-1):
        pCaster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_WINTER_WORKER'), pCaster.plot().getTerrainType() == gc.getInfoTypeForString('TERRAIN_SNOW'))
in CIV4SpellInfos.xml
Code:
        <SpellInfo>
            <Type>SPELL_WINTER_WORKER</Type>
            <Description>TXT_KEY_SPELL_WINTER_WORKER</Description>
            <Civilopedia>TXT_KEY_SPELL_PLACEHOLDER_PEDIA</Civilopedia>
            <PromotionPrereq1>PROMOTION_WINTERBORN</PromotionPrereq1>
            <bAllowAI>1</bAllowAI>
            <bDisplayWhenDisabled>0</bDisplayWhenDisabled>
            <bIgnoreHasCasted>1</bIgnoreHasCasted>
            <AddPromotionType1>PROMOTION_WINTER_WORKER</AddPromotionType1>
            <bBuffCasterOnly>1</bBuffCasterOnly>
            <bNoInterruptUnitCycling>1</bNoInterruptUnitCycling>
            <PyRequirement>reqWinterbornWorkrate(pCaster, eSpell)</PyRequirement>
            <Effect>EFFECT_SPELL1</Effect>
            <Sound>AS3D_SPELL_HOPE</Sound>
            <Button>Art/Interface/Buttons/Spells/Whiteout.dds</Button>
        </SpellInfo>
in CIV4PromotionInfos.xml
Code:
        <PromotionInfo>
            <Type>PROMOTION_WINTERBORN</Type>
            <Description>TXT_KEY_PROMOTION_WINTERBORN</Description>
            <Sound>AS2D_IF_LEVELUP</Sound>
            <TerrainAttacks>
                <TerrainAttack>
                    <TerrainType>TERRAIN_SNOW</TerrainType>
                    <iTerrainAttack>10</iTerrainAttack>
                </TerrainAttack>
                <TerrainAttack>
                    <TerrainType>TERRAIN_TUNDRA</TerrainType>
                    <iTerrainAttack>10</iTerrainAttack>
                </TerrainAttack>
            </TerrainAttacks>
            <TerrainDefenses>
                <TerrainDefense>
                    <TerrainType>TERRAIN_SNOW</TerrainType>
                    <iTerrainDefense>10</iTerrainDefense>
                </TerrainDefense>
                <TerrainDefense>
                    <TerrainType>TERRAIN_TUNDRA</TerrainType>
                    <iTerrainDefense>10</iTerrainDefense>
                </TerrainDefense>
            </TerrainDefenses>
            <UnitCombats>
                <UnitCombat>
                    <UnitCombatType>UNITCOMBAT_ADEPT</UnitCombatType>
                    <bUnitCombat>1</bUnitCombat>
                </UnitCombat>
                <UnitCombat>
                    <UnitCombatType>UNITCOMBAT_ANIMAL</UnitCombatType>
                    <bUnitCombat>1</bUnitCombat>
                </UnitCombat>
                <UnitCombat>
                    <UnitCombatType>UNITCOMBAT_ARCHER</UnitCombatType>
                    <bUnitCombat>1</bUnitCombat>
                </UnitCombat>
                <UnitCombat>
                    <UnitCombatType>UNITCOMBAT_BEAST</UnitCombatType>
                    <bUnitCombat>1</bUnitCombat>
                </UnitCombat>
                <UnitCombat>
                    <UnitCombatType>UNITCOMBAT_DISCIPLE</UnitCombatType>
                    <bUnitCombat>1</bUnitCombat>
                </UnitCombat>
                <UnitCombat>
                    <UnitCombatType>UNITCOMBAT_MELEE</UnitCombatType>
                    <bUnitCombat>1</bUnitCombat>
                </UnitCombat>
                <UnitCombat>
                    <UnitCombatType>UNITCOMBAT_MOUNTED</UnitCombatType>
                    <bUnitCombat>1</bUnitCombat>
                </UnitCombat>
                <UnitCombat>
                    <UnitCombatType>UNITCOMBAT_RECON</UnitCombatType>
                    <bUnitCombat>1</bUnitCombat>
                </UnitCombat>
            </UnitCombats>
            <Button>Art/Interface/Buttons/Promotions/Winterborn.dds</Button>
            <iMinLevel>-1</iMinLevel>
            <PyPerTurn>>reqWinterbornWorkrate(pCaster, -1)</PyPerTurn>
            <DamageTypeResists>
                <DamageTypeResist>
                    <DamageType>DAMAGE_COLD</DamageType>
                    <iResist>20</iResist>
                </DamageTypeResist>
                <DamageTypeResist>
                    <DamageType>DAMAGE_FIRE</DamageType>
                    <iResist>-10</iResist>
                </DamageTypeResist>
            </DamageTypeResists>
        </PromotionInfo>
        <PromotionInfo>
            <Type>PROMOTION_WINTER_WORKER</Type>
            <Description>TXT_KEY_PROMOTION_WINTER_WORKER</Description>
            <Sound>AS2D_IF_LEVELUP</Sound>
            <Button>Art/Interface/Buttons/Promotions/Winterborn.dds</Button>
            <iMinLevel>-1</iMinLevel>
            <bGraphicalOnly>1</bGraphicalOnly>
            <PyPerTurn>>reqWinterbornWorkrate(pCaster, -1)</PyPerTurn>
            <iWorkRateModify>100</iWorkRateModify>
            <PromotionNextLevel>PROMOTION_WINTERBORN</PromotionNextLevel>
        </PromotionInfo>

Of course, you could also make it more complicated to give different bonuses and penalties based on different terrains or features, maybe giving a minor bonus in Tundra or in Blizzards and a penalty in deserts.
 
Last edited:
Another workaround would seem to be to give the Illians unique improvements that require snow tiles and are identical to standard improvements except that they require less work. This would deny the benefit to tolerant civs holding Illian cities, but that's probably ok.
 
Another workaround would seem to be to give the Illians unique improvements that require snow tiles and are identical to standard improvements except that they require less work. This would deny the benefit to tolerant civs holding Illian cities, but that's probably ok.
This seems like it would have less impact on turn processing also.
 
I can upload the save file if it helps, but... I'm playing Elohim (unrestricted leaders), and for some reason, I have a hunter that is casting Sanctuary at the start of the turn (207), before I have a chance to control any of my units. Is there something in EMM that gives a unit independent control of a world spell? That doesn't seem right.
 

Attachments

  • Jayce TURN-0206.CivBeyondSwordSave
    636.1 KB · Views: 0
Top Bottom