FfH2 0.13 Bugs:

Playing Charadon/Doviello on a huge Lakes map with raging barbs.

I have the BAR trait.

The scores in year 443 for the top three civs are:

Charadon: 280
Tasunke: 201
Sabathiel: 185

The barbs started attacking me. It doesn't seem to hit the 50% threshold on points.

Please explain. I have attached a save at yr. 441. Hit enter a couple of times.

ThanksView attachment 130976
 
Sarisin said:
Playing Charadon/Doviello on a huge Lakes map with raging barbs.

I have the BAR trait.

The scores in year 443 for the top three civs are:

Charadon: 280
Tasunke: 201
Sabathiel: 185

The barbs started attacking me. It doesn't seem to hit the 50% threshold on points.

Please explain. I have attached a save at yr. 441. Hit enter a couple of times.

ThanksView attachment 130976

It seems like the barbarians aren't exceptionally good at math. ;)

Seriously I don't know why this occurs. I suspect some sort of rounding error, here is the code which determines when to have the barbarians declare war on you:

Code:
		if pPlayer.hasTrait(gc.getInfoTypeForString('TRAIT_BARBARIAN')):
			eTeam = gc.getTeam(gc.getPlayer(gc.getBARBARIAN_PLAYER()).getTeam())
			iTeam = pPlayer.getTeam()
			if eTeam.isAtWar(iTeam) == False:
				if CyGame().getPlayerScore(iPlayer) >= 1.5 * CyGame().getPlayerScore(CyGame().getRankPlayer(2)):
					if gc.getGame().getGameTurnYear() >= 20:
						eTeam.declareWar(iTeam, False)

As you can see he isn't supposed to declare war at 280 over 201, but it is awfully close (he should declare war at 300 over 201) so I probably wont change anything based on this except to say that your peace lasts with the barbarians until you have about 50% more score than the 2nd ranked player.
 
Kael said:
Seriously I don't know why this occurs. I suspect some sort of rounding error, here is the code which determines when to have the barbarians declare war on you:

Code:
		if pPlayer.hasTrait(gc.getInfoTypeForString('TRAIT_BARBARIAN')):
			eTeam = gc.getTeam(gc.getPlayer(gc.getBARBARIAN_PLAYER()).getTeam())
			iTeam = pPlayer.getTeam()
			if eTeam.isAtWar(iTeam) == False:
				if CyGame().getPlayerScore(iPlayer) >= 1.5 * CyGame().getPlayerScore(CyGame().getRankPlayer(2)):
					if gc.getGame().getGameTurnYear() >= 20:
						eTeam.declareWar(iTeam, False)

As you can see he isn't supposed to declare war at 280 over 201, but it is awfully close (he should declare war at 300 over 201) so I probably wont change anything based on this except to say that your peace lasts with the barbarians until you have about 50% more score than the 2nd ranked player.

From looking at CvGame.cpp it seems to me that you get the first player by calling getRankPlayer(0), so you are comparing the current player with the third-ranked one when you use getRankPlayer(2).
 
the question is did he probably have one tech or people less when at the end of his turn. 14 points of tech are easily gained in one turn.

btw Kael, as those scores are integers it would probably calulate better if you did:
Code:
2 * CyGame().getPlayerScore(iPlayer) > 3 * CyGame().getPlayerScore(CyGame().getRankPlayer(1)):

Edit: Oh yes that is most probably true, c.fe. 185 points would be the borderline to declare war.
 
Yes, when you are playing a civ with the BAR trait, you really have to watch the score closely to manage your points. I thought I was doing a good job until I saw the barbs pouring into my now 'sprawling' civ.

I mentioned a similar issue in the 'Balance' thread:

I was playing a game as Calabrim and the two teams above me (Jonas and Charadon) both had the BAR trait and scores much higher than mine (I was in third in points). However, because their scores were only a few points apart, no barbs attacked them.

I suggested, if possible, the program look at the next civ WITHOUT the BAR trait to determine if the score hits the 50% threshold.

Thanks again.
 
c.fe said:
From looking at CvGame.cpp it seems to me that you get the first player by calling getRankPlayer(0), so you are comparing the current player with the third-ranked one when you use getRankPlayer(2).

Makes sense, in general Python usually starts counting things from 0 and not 1.
 
c.fe said:
From looking at CvGame.cpp it seems to me that you get the first player by calling getRankPlayer(0), so you are comparing the current player with the third-ranked one when you use getRankPlayer(2).

You're absolutly right, it was comparing the the player with the 3rd ranked player. I will fix it as you suggested. I also changed the algorithym as Chalid recommended to avoid and decimal issues.
 
Sarisin's point is a good one (and could be easily implemented with another check in the code) - imagine trying to play a raging barbs game with 2 barb-friendly civs in play as it stands. Erk!
 
I can't get Inquistors, which is annoying when I have the cult of the dragon popping up all over.

Im playing the Lojsfar (elves, can neve remember the full name) w/ Fellowship of the Leaves.
 
Kavok said:
I can't get Inquistors, which is annoying when I have the cult of the dragon popping up all over.

Im playing the Lojsfar (elves, can neve remember the full name) w/ Fellowship of the Leaves.

Inquisitors cant be built, a level 6 or higher priest must be upgraded to an inquisitor.
 
Xuenay said:

thank you Xuenay. this eventually sent me to where i found the information i needed,after some wandering around.

It is in cvmapgeneratorutil.py desert was set as 32 which i reduced to 18.forest,jungle,and ice can also be adjusted in this. It only seems to be used in pangea,fractal,and perhaps random maps though.
 
haste doesnt work with seacraft?

(i was going to say this might be a vanilla thing before realizing vanilla doesnt have spells, yes its been that long since ive NOT played FfH)

also this game sent me into the infinite spin cycle
 
didolover said:
haste doesnt work with seacraft?

(i was going to say this might be a vanilla thing before realizing vanilla doesnt have spells, yes its been that long since ive NOT played FfH)

also this game sent me into the infinite spin cycle

Nope, body spells only effect living units.
 
My flesh golems lose their combat 1-5 promotions after one turn. Even turning the golem into a lich didn't help. I think it is likely an interation between Barnaxus' ability and the golem promotion. None of the other promotions I tried seemed to be affected.

Put a serious damper on my plan to pump out a Flesh golem with combat 5 each turn. :sad: On a balance note, it might be a good idea to keep summoned tigers from being flesh grafted.
 
Patch "D" is up and linked in the first thread.
 
Chalid said:
What would you propose as solution? Grading the unit down one level when it is gifted? eg. Immortal->Macemen
Or prohibiting gifting National Units and Heros?

Prohibiting to gift limited unit classes is very easy.

Prohibiting gifting national units makes sense to me. You shouldn't need to prohibit the gifting of heroes since they are already limited to 1 per world, right? In fact, I would say that the gifting of heroes is fine as it is.
 
Kael said:
Inquisitors cant be built, a level 6 or higher priest must be upgraded to an inquisitor.

Kael, I cannot remember the building name off the top of my head, but one of the Order buildings give Paladins the Command Promotion and supposedly gives Inquisitors 4x experience when built there. I know I may be remembering it poorly right now, but I do recall reading the description when playing that game and wondering why I couldn't build inquisitors there.

Also, does the "Wall of Stone" promotion actually work? When cast, it creates the graphic of a wall, and you can see it on the city screen along the sidebar, but my %defense does not increase with it.

Thanks for the mod, gents!

Jonathan
 
The %defense shown on the city is only the cultural defense. The defense from walls is added to this (shown in the combat odds popup).

The Inquisistor building should give something else ( i think the pedia is outdated)
 
I can still destroy infinite number of units in a tile on one turn with targeted spell (one by one) with multiple units selected. Still no fix for this bug.
 
aku said:
I can still destroy infinite number of units in a tile on one turn with targeted spell (one by one) with multiple units selected. Still no fix for this bug.

Ive tried to recreate this and Ive never been able to. Could you give me a save game or a little more detail about it (ie: what spell you are casting?).
 
Back
Top Bottom