How to get the achievement "Great Destroyer" if the AI does not build Great Wonders?
- 1
This is the only achievement I didn't get for Imperator thanks to its bugged(?) status. It's theoretically possible, since the AI does in fact build great wonders. I even saw a random tribe in Gaul with one near the end of a game once. But it's quite rare and I definitely haven't seen them build 10 in one game. Supposedly the best way to do it right now is to completely envelop the seleukids and maurya, making sure they don't border each other, and then just wait for them to build 10 between them. Since they can't really do anything else if enveloped by you and they both make a bunch of money they should build enough.
The problem with this is that you have to do it as one of the celtic tribes, meaning you almost have to do a world conquest as Audenia or whoever, in the vain hope that the AI decides to build enough wonders. The "easiest" path would probably be to exploit migratory tribe mechanics and hoof it over to the Anatolia thunderdome where you can rapidly build a powerbase and play as a very bad version of Pontus that has to civilize so it doesn't get stomped, but for some unknown reason you can't get the achievement as a Pannonian culture tag, meaning Boihaemia and its decent number of starting pops (and potential Galatia formation) are out.
Obviously if this achievement allowed ancient wonders it would be absolute cake, but c'est la vie.
This proposed solution is used in Invictus achievements code. With the latest patch that enables achievements with mods (you still have to run ironman mind you) the achievement might be possible. You have to choose 2.0.4 in Betas on Steam to apply the patch.Bump as this is the only Paradox achievement I don't have, and it seems like it could be an easy fix, as it did pass testing, so in-game code theoretically handles it. On the wiki nothing jumps out as checking a count, though.
The achievement's code seems to be broken due to an apparent misunderstanding of how the paradox scripting language works by the developer.
The requirement's relevant in-game code (ImperatorRome/game/common/achievements/great_works.txt) is
Code:calc_true_if = { amount >= 10 has_variable = ach_gw_destroyed_var }
The wiki says that "calc_true_if" first takes an amount (10 in this case), and then a list of ALL the possible sub-checks (just one in this case: has_variable = ach_gw_destroyed_var). To be true, the number of sub-checks needs to match the amount given in amount - in other words, you need 10 sub-checks to test true to get the achievement. For example, "wonder builder" has the amount >=1 and has_variable "gw_built_var". So when that variable is set true, we have one TRUE sub-check, which matches the amount, so the achievement fires.
Unfortunately, in great_destroyer, there's only one sub-check given - gw_destroyed_var - so destroying 10 great works will set THAT one true/10, but amount >= 10 requires 9 more sub-checks to test true. There aren't anymore, so it will never fire.
Would changing the happened section to
Code:happened = { ach_gw_destroyed_var >= 10 }
fix it?