The latest SVN seems to have broken the game for me. The game just hangs when I end turn.
In addition there are XML errors, all related to the new workers and the armed worker appears to have been removed altogether.
The latest SVN seems to have broken the game for me. The game just hangs when I end turn.
In addition there are XML errors, all related to the new workers and the armed worker appears to have been removed altogether.
Hydro said that he wanted the Combat Workers removed. I don't have the time right now to go and find all of those errors, so I think I'll just put them back for now.
I too am not very happy with them. I agree that "just doesn't seem right". If you want to protect your workers then send a combat unit to escort them around.
I have been known to be wrong.
IIRC if you want units to get XP then they need combat strength. So if you want workers to get promotions then they need combat str. I have been known to be wrong.
i dont thing this is true. in fall of heaven mod workers get exp from working
Updates
- Feature types in a save game that are not present in the XML any more are ignored (fixes the savegame incompatibility due to the missing barrel cactus)
It needs the same treatment then. I will change it tonight.Removed improvement types breaks save games.
It needs the same treatment then. I will change it tonight.
<PromotionInfo>
<Type>PROMOTION_TROUBLEMAKER2</Type>
<Description>TXT_KEY_PROMOTION_TROUBLEMAKER2</Description>
<Sound>AS2D_IF_LEVELUP</Sound>
<LayerAnimationPath>NONE</LayerAnimationPath>
<PromotionPrereq>PROMOTION_TROUBLEMAKER1</PromotionPrereq>
[B]<PromotionPrereqOr1>COMBAT2</PromotionPrereqOr1>[/B]
<PromotionPrereqOr2>NONE</PromotionPrereqOr2>
<TechPrereq>NONE</TechPrereq>
Latest SVN has broken XML for promotions PROMOTION_TROUBLEMAKER2 and PROMOTION_TROUBLEMAKER3:
Code:<PromotionInfo> <Type>PROMOTION_TROUBLEMAKER2</Type> <Description>TXT_KEY_PROMOTION_TROUBLEMAKER2</Description> <Sound>AS2D_IF_LEVELUP</Sound> <LayerAnimationPath>NONE</LayerAnimationPath> <PromotionPrereq>PROMOTION_TROUBLEMAKER1</PromotionPrereq> [B]<PromotionPrereqOr1>COMBAT2</PromotionPrereqOr1>[/B] <PromotionPrereqOr2>NONE</PromotionPrereqOr2> <TechPrereq>NONE</TechPrereq>
The bolded pre-req should be PROMOTION_COMBAT2 not just COMBAT2. The other troublemaker promotion has a similar issue
iBarbarHunter =gc.getInfoTypeForString('PROMOTION_BARBAR_HUNTER')
iGreatWall = gc.getInfoTypeForString("BUILDINGCLASS_GREAT_WALL")
if not gc.getGame().isOption(GameOptionTypes.GAMEOPTION_NO_BARBARIANS):
if (iPromotion<>iBarbarHunter):
if not pWinner.isHasPromotion(iBarbarHunter):
if pWinner.canAcquirePromotion(iBarbarHunter):
Has PROMOTION_BARBAR_HUNTER been removed recently? If so the Python needs tidying up to remove references to it also - currently it's calling the DLL from this code:
Code:iBarbarHunter =gc.getInfoTypeForString('PROMOTION_BARBAR_HUNTER') iGreatWall = gc.getInfoTypeForString("BUILDINGCLASS_GREAT_WALL") if not gc.getGame().isOption(GameOptionTypes.GAMEOPTION_NO_BARBARIANS): if (iPromotion<>iBarbarHunter): if not pWinner.isHasPromotion(iBarbarHunter): if pWinner.canAcquirePromotion(iBarbarHunter):
The effect is to get back -1 from the call to gc.getInfoTypeForString(), which it does NOT test for (it really should), and just uses as arguments to isHasPromotion() and canAcquirePromotion(). That causes access off the end of an array in the DLL, which it usually gets away with (the result will be undefined), but which can cause crashes.
I'll harden those calls in the DLL to cope with this usage, but the Python really needs tidyign up too.