RFC Greek World UHV Project

Rome 3/3 UHVs completed - not merged yet.
Macedonia 3/3 UHVs completed - not merged yet.
The 2.1 version I am playing now has these two defined. Not sure how my motivation's going but I can maybe test them. I finally posted my latest try with Etruria today, as an instructive failure. (I think the variation I used today is winnable, by a better player; if anything the Etruscan Spearman I designed to stop Rome in its tracks is too OP; it is way too useful against e.g. Athenian Phalanxes as well.)

Couple of observations:

Rome UHV 1: Delenda est Carthago - Cato's proclamation that "Carthage must destroyed!": Be the first civilization to capture or sack Carthage
Triggered in onCityAcquired; Carthage defined as a city at x=15, y=20. This is going to be problematic, as Carthage may not get built on that spot, or may be destroyed prematurely. The human player usually has agency where other such point locations are used, but there is no way to absolutely definitely force the AI to build Carthage on that spot.​
Possible mitigations: Define a 3x3 square centred on 15,20 and check that. Set a flag in onCityBuilt such that if Carthage was never built in that square then Rome gets a freebie. This covers most edge cases, and for the rest, it "fails safe".​
Possible Alternative: Still potentially buggy, but destroy the Carthaginian civ, similar to the Scythian destroy-any-three UHV.​

Rome UHV 2: The Triumph of Rome: Control 5 salt and 2 silver in 180 AD
Caveat: Current code only looks for >= 1 of each resource.​
Code:
if pPlayer.countOwnedBonuses(bonus('Salt')) + pPlayer.getBonusImport(bonus('Salt')) >= 1 and pPlayer.countOwnedBonuses(bonus('Silver')) + pPlayer.getBonusImport(bonus('Silver')) >= 1:
Possible mitigation: check for 5 and 2 (i.e. >= 5 and >= 2).​

The rest look straightforward, although I'm giving side-eye to treating the spread of Hellenism as a touchstone for cultural hegemony. But I don't have a better suggestion ready to drop in.
 
Last edited:
Rome UHV #3 is bugged. Not sure what the ... Oh. :lol:

Code:
    i500AD = getTurnForYear(500)

    elif civType == iNubia:

        if iGameTurn == i500AD:
            if gc.getGame().getTeamRank(pPlayer.getTeam()) == 0:
                self.setGoal(iRome, 2, 1)
                     else:
                self.setGoal(iRome, 2, 0)

After I moved the code from the Nubia block to the Rome block, voila, ROMA VICTOR!
 

Attachments

  • 500 AD.JPG
    500 AD.JPG
    28.8 KB · Views: 11
  • 508 AD.JPG
    508 AD.JPG
    34.6 KB · Views: 12
  • Roma Victa.JPG
    Roma Victa.JPG
    19.4 KB · Views: 12
Last edited:
Top Bottom