ModModding Guide to Wildmana

1) tower of eyes needs:
tower of eyes.dds
tower of eyes base copy.dds
tower of eyes shadow.dds

in its folder

2)mount kalshekk needs:
Ancient_24.dds
lava.dds
sopka.dds
volcano_spodek.dds
fx_smokeball02.dds
fx_smokeball03.dds


if there is a texture missing then you get a purple replacement instead. if you miss a texture and don't have a replacement you might want to upload both files again, but with all textures and i will try to fix it.
 
What's the trick for getting graveyards to upgrade even though the tiles are not worked? I used the WB to put a graveyard next to one of my new "explored" UFs (with an ImprovementUpgrade and iUpgradeTime = 100). When I place these features they both say "Must be worked by city to upgrade". However, I hit turn end and then the graveyard says "upgrade to Necrototem in 59 turns", while my improvement still says "must be worked by city...". I found the XML changes for the graveyard (under modular barbarians), which I posted below, followed by an example of one of my explored UFs. It seems to me that the difference is somewhere other than XML.
Code:
        <ImprovementInfo>
            <Type>IMPROVEMENT_GRAVEYARD</Type>
            <iUpgradeTime>60</iUpgradeTime>			
            <ImprovementUpgrade>IMPROVEMENT_NECROPOLIS</ImprovementUpgrade>
        </ImprovementInfo>
Code:
        <ImprovementInfo>
            <Type>IMPROVEMENT_BRADELINES_WELL_EXPLORED</Type>
            <Description>TXT_KEY_IMPROVEMENT_BRADELINES_WELL_EXPLORED</Description>
            <Civilopedia>TXT_KEY_IMPROVEMENT_BRADELINES_WELL_PEDIA</Civilopedia>
            <Help></Help>
            <ArtDefineTag>ART_DEF_IMPROVEMENT_BRADELINES_WELL</ArtDefineTag>
            <bActsAsCity>0</bActsAsCity>
            <bHillsMakesValid>0</bHillsMakesValid>
            <bFreshWaterMakesValid>0</bFreshWaterMakesValid>
            <bRiverSideMakesValid>0</bRiverSideMakesValid>
            <bNoFreshWater>0</bNoFreshWater>
            <bRequiresFlatlands>1</bRequiresFlatlands>
            <bRequiresRiverSide>0</bRequiresRiverSide>
            <bRequiresIrrigation>0</bRequiresIrrigation>
            <bCarriesIrrigation>0</bCarriesIrrigation>
            <bRequiresFeature>0</bRequiresFeature>
            <bWater>0</bWater>
            <bGoody>0</bGoody>
            <bPermanent>1</bPermanent>
            <iAdvancedStartCost>-1</iAdvancedStartCost>
            <iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
            <iTilesPerGoody>0</iTilesPerGoody>
            <iGoodyRange>0</iGoodyRange>
            <iFeatureGrowth>0</iFeatureGrowth>
            <iUpgradeTime>100</iUpgradeTime>
            <iAirBombDefense>0</iAirBombDefense>
            <iDefenseModifier>0</iDefenseModifier>
            <iHappiness>0</iHappiness>
            <iPillageGold>0</iPillageGold>
            <bOutsideBorders>0</bOutsideBorders>
            <TerrainMakesValids>
            </TerrainMakesValids>
            <FeatureMakesValids>
            </FeatureMakesValids>
            <BonusTypeStructs>
                <BonusTypeStruct>
                    <BonusType>BONUS_MANA_ENTROPY</BonusType>
                    <bBonusMakesValid>1</bBonusMakesValid>
                    <bBonusTrade>1</bBonusTrade>
                    <iDiscoverRand>0</iDiscoverRand>
                    <YieldChanges>
                        <iYieldChange>0</iYieldChange>
                        <iYieldChange>0</iYieldChange>
                        <iYieldChange>0</iYieldChange>
                    </YieldChanges>
                </BonusTypeStruct>
            </BonusTypeStructs>
            <ImprovementPillage></ImprovementPillage>
            <ImprovementUpgrade>IMPROVEMENT_BRADELINES_WELL</ImprovementUpgrade>
            <TechYieldChanges>
            </TechYieldChanges>
            <RouteYieldChanges>
            </RouteYieldChanges>
            <bGraphicalOnly>0</bGraphicalOnly>
            <bRequiresPeak>0</bRequiresPeak>
            <bUnique>1</bUnique>
            <iAppearanceProbability>0</iAppearanceProbability>
            <iHealRateChange>0</iHealRateChange>
            <iRange>0</iRange>
            <iRangeDefenseModifier>0</iRangeDefenseModifier>
            <iVisibilityChange>0</iVisibilityChange>
            <BonusConvert>BONUS_MANA_ENTROPY</BonusConvert>
            <FeatureUpgrade>NONE</FeatureUpgrade>
            <PrereqCivilization>NONE</PrereqCivilization>
            <PythonAtRange></PythonAtRange>
            <PythonOnMove></PythonOnMove>
            <SpawnUnitType>NONE</SpawnUnitType>
        </ImprovementInfo>

One other question. I was trying to get Bradeline's Well to be a hell terrain at game start (or soon after would be fine). I tried using various numbers for iPlotCounterUp, but this doesn't seem to do anything. Any ideas for doing this modular?
 
For your first question, it should be this tag: bOutsideBorders. Same thing used by forts; Allows the improvement to be built outside borders (unimportant here) and to upgrade without being worked.

For your second question... Did Wild Mana import that tag? It was added by FF and ported to Orbis; It's not a native part of FfH, so it may not exist in WM.
 
That didn't work (XML below; it still wants to be "worked to upgrade"). Anyway, the graveyard XML has bOutsideBorders set to 0, and the barbs module doesn't modify this (in my post above). Unless there is another modular file changing bOutsideBorders, then this is not how graveyards are working in WM.
Code:
        <ImprovementInfo>
            <Type>IMPROVEMENT_AIFON_ISLE_EXPLORED</Type>
            <Description>TXT_KEY_IMPROVEMENT_AIFON_ISLE_EXPLORED</Description>
            <Civilopedia>TXT_KEY_IMPROVEMENT_AIFON_ISLE_PEDIA</Civilopedia>
            <Help></Help>
            <ArtDefineTag>ART_DEF_IMPROVEMENT_AIFON_ISLE</ArtDefineTag>
            <bActsAsCity>0</bActsAsCity>
            <bHillsMakesValid>0</bHillsMakesValid>
            <bFreshWaterMakesValid>0</bFreshWaterMakesValid>
            <bRiverSideMakesValid>0</bRiverSideMakesValid>
            <bNoFreshWater>0</bNoFreshWater>
            <bRequiresFlatlands>0</bRequiresFlatlands>
            <bRequiresRiverSide>0</bRequiresRiverSide>
            <bRequiresIrrigation>0</bRequiresIrrigation>
            <bCarriesIrrigation>0</bCarriesIrrigation>
            <bRequiresFeature>0</bRequiresFeature>
            <bWater>1</bWater>
            <bGoody>0</bGoody>
            <bPermanent>1</bPermanent>
            <iAdvancedStartCost>-1</iAdvancedStartCost>
            <iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
            <iTilesPerGoody>0</iTilesPerGoody>
            <iGoodyRange>0</iGoodyRange>
            <iFeatureGrowth>0</iFeatureGrowth>
            <iUpgradeTime>100</iUpgradeTime>
            <iAirBombDefense>0</iAirBombDefense>
            <iDefenseModifier>0</iDefenseModifier>
            <iHappiness>0</iHappiness>
            <iPillageGold>0</iPillageGold>
            <bOutsideBorders>1</bOutsideBorders>
            <TerrainMakesValids>
            </TerrainMakesValids>
            <FeatureMakesValids>
            </FeatureMakesValids>
            <BonusTypeStructs>
                <BonusTypeStruct>
                    <BonusType>BONUS_MANA_WATER</BonusType>
                    <bBonusMakesValid>1</bBonusMakesValid>
                    <bBonusTrade>1</bBonusTrade>
                    <iDiscoverRand>0</iDiscoverRand>
                    <YieldChanges>
                        <iYieldChange>0</iYieldChange>
                        <iYieldChange>0</iYieldChange>
                        <iYieldChange>0</iYieldChange>
                    </YieldChanges>
                </BonusTypeStruct>
            </BonusTypeStructs>
            <ImprovementPillage></ImprovementPillage>
            <ImprovementUpgrade>IMPROVEMENT_AIFON_ISLE</ImprovementUpgrade>
            <TechYieldChanges>
            </TechYieldChanges>
            <RouteYieldChanges>
            </RouteYieldChanges>
            <bGraphicalOnly>0</bGraphicalOnly>
            <bRequiresPeak>0</bRequiresPeak>
            <bUnique>1</bUnique>
            <iAppearanceProbability>0</iAppearanceProbability>
            <iHealRateChange>0</iHealRateChange>
            <iRange>0</iRange>
            <iRangeDefenseModifier>0</iRangeDefenseModifier>
            <iVisibilityChange>0</iVisibilityChange>
            <BonusConvert>BONUS_MANA_WATER</BonusConvert>
            <FeatureUpgrade>NONE</FeatureUpgrade>
            <PrereqCivilization>NONE</PrereqCivilization>
            <PythonAtRange></PythonAtRange>
            <PythonOnMove></PythonOnMove>
            <SpawnUnitType>NONE</SpawnUnitType>
        </ImprovementInfo>
Those stupid promo pink squares are still kicking my @$$ too. I tried resaving them in paint.net using all the following settings. Still get pink squares for mouse-over, while unit window looks fine.
DXT3 (Explicit Alpha)
Compressor Type: Iterative fit
Error Metric: Perceptual
Weight Color By Alpha (unchecked)
Generate Mip Maps (checked)

At least I got my feature textures all working on the map. I should be happy for any progress.
 
@Pazyryk: does this button work for you? if yes send me a list of the buttons you need i will fix them.
 
I've been altogether unsuccessful in using any button art for promotions, unless it's already used for that. Always works in the unit window, never in the mouse-over. I'm giving up for now.

I figured out the UF upgrading at least. I was setting bOutsideBorders = 1 for the improvement I wanted to upgrade. I finally figured out (by pure accident) that you need to set bOutsideBorders = 1 for the improvement that you want your improvement to upgrade to, not for the improvement itself. That took a lot of hours.
 
these button should work. I tested the yggdrasil one.
 

Attachments

  • Promotiontemp.zip
    33.3 KB · Views: 78
Thanks, I put these in a quickfix for my mod (although I won't be able to try them until tonight).

One question for you: Can <PythonAtRange> and <PythonOnMove> in the Improvements XML import python functions modularly? (I could try, but easier to ask.)
 
Can someone explain feats to me? I see that they can be set using Python functions. But can I create a new one using Python/xml only? If so, can it be done modularly?
 
Thanks, I put these in a quickfix for my mod (although I won't be able to try them until tonight).

One question for you: Can <PythonAtRange> and <PythonOnMove> in the Improvements XML import python functions modularly? (I could try, but easier to ask.)

It should work modularly. Feats need DLL modifications. I could add a couple feats in 9.0 if you need them.
 
Why not 20 or so generic ones: "GENERIC_FEAT_1", and so on. That way I (or others) don't have to already know what we want.

If you think that's a bad idea, then one named for each unique feature, except for the couple that already have one. Edit: including the 2 new ones: mt. kalshekk and tower of eyes.
 
What Information do you want to store in them? I can create an array for all Improvements.

Generic Feats means that if two modders use the same it would create a conflict.
 
I thought they were just Boolean. I'll take an integer though if that's possible -- much more possibility. (One for each of the 19 UFs, including the ones that already have one.)

Edit: I don't necessarily need a "feat". I'm looking for a memory system that I can access and change from python.
 
I thought they were just Boolean. I'll take an integer though if that's possible -- much more possibility. (One for each of the 19 UFs, including the ones that already have one.)

Edit: I don't necessarily need a "feat". I'm looking for a memory system that I can access and change from python.

yes, I can make it an int. You don't know yet what you use it for? Cause I need to give it a name when I create it.
 
Top Bottom