Verified:

Xinhuan Game profile

Member
3728

Apr 22nd 2012, 3:22:10

Depends on how it will be coded.

Suppose the game ignores DR if the player attacked you in the last 24 hours. So if A attacks B, when B attacks A, the game would check if A had made any PS or SS attack on B in the last 24 hours. If it was 0 attacks, use normal DR, else set DR to 0.

Now that's the naive version. While it would solve retals ignoring DR, the naive implementation reinforces land trading:

1) A hits B
2) B hits A (0 DR - retal)
3) A hits B (0 DR - retal on retal)
4) B hits A (0 DR - RoRoR)
etc and each RoR would be considered a Retal and ignore DR.

Now if the code is then further tweaked so that it has to check if a pair of attacks was already completed as a attack-retal pair and ignore that pair of news, then it would look like this:

1) A hits B
2) B hits A (0 DR - retal)
3) A hits B (1 DR)
4) B hits A (0 DR - retal)
5) A hits B (2 DR)
6) B hits A (0 DR - retal)
7) A hits B (3 DR)
8) B hits A (0 DR - retal)
Better, but abusable by B to get free land if he has a friend A that wants to hit him like that. This new code now also has a new problem:

1) A hits B
2) A hits B (1 DR)
3) B hits A (0 DR, retal for (2))
4) B hits A

In this above situation, if the game recognized (2 and 3) as an attack-retal pair, then would attack (4 and 1) be recognized as a second retal pair? That is, would (4) ignore DR and use 0 DR for the hit as well? Or what if (3) used (1) as its retal pair, would (4) and (2) be paired up since the DR rules check is ignoring news that are already paired?

This seems unintended, only the first retal is meant to get 0 DR (or should it?). This will depend on the view of a topfeeder vs bottomfeeder. A large country might hit a bottom country 3x, and get retalled 3x, losing 3x acres majorly in 0 DR. But it works the other way too, a small country can topfeed a large one twice and the large one can try to get back as much of his land in his 2 retals that are 0-DR, even though it would likely take 10 attacks to grab it back if it were L:L.

Coding in 2-hits-ignore-GDI is easy, you simply added a check to see if you hit more than twice before, there's no news-pairing involved or anything complicated.

Implementation-wise for ignoring DR, there are a number of pitfalls.

Edited By: Xinhuan on Apr 22nd 2012, 3:24:18
Back To Thread
See Subsequent Edit