forkserf / forkserf

a continuation of "FreeSerf"

Home Page:https://forkserf.github.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

attack popup target changing when clicked

zdechlak opened this issue · comments

Forkserf.2023-02-10.22-42-00.mp4

when I sent my army - the building icon changed - but the attack was going to the right building

this is odd, I will try to reproduce this

also look at how these numerical values behave

I never knew those knight-distance buttons were clickable, I thought they were static. Looks like they are indeed supposed to only send the knights up to a certain distance

  case ACTION_ATTACKING_SELECT_ALL_1:
    player->knights_attacking = player->attacking_knights[0];
    break;
  case ACTION_ATTACKING_SELECT_ALL_2:
    player->knights_attacking = player->attacking_knights[0]
                                + player->attacking_knights[1];
    break;
  case ACTION_ATTACKING_SELECT_ALL_3:
    player->knights_attacking = player->attacking_knights[0]
                                + player->attacking_knights[1]
                                + player->attacking_knights[2];
    break;
  case ACTION_ATTACKING_SELECT_ALL_4:
    player->knights_attacking = player->attacking_knights[0]
                                + player->attacking_knights[1]
                                + player->attacking_knights[2]
                                + player->attacking_knights[3];

I haven't been able to reproduce this. Is it happening reliably in a savegame you have? Or is it happening often? rarely? only this once?

very rarely, i will try to recreate it
I was playing on a map with 4 AIs and jumping between them with a key on the keyboard

However, it seems to me that the problem also appeared in the game human vs computer

I never knew those knight-distance buttons were clickable, I thought they were static. Looks like they are indeed supposed to only send the knights up to a certain distance

it seems to me that it's about the strength of the attack - who to send to the front, depending on the option in the army panel

so, 1 icon is the strongest knight - and the last one is the weakest

this is how it works in https://www.simpleguide.net/sg/serflings.jsf

but I'm not sure how it was in the original game - and I'll play it on the Amiga in my spare time to understand it

see this is what i'm reading: https://www.oldgames.sk/downloads/oldgames/strategy/Settlers/Docs/manual-settlers-1993.pdf

oh, it is possible that the AI is itself "opening the attack popup" in a hidden way when declaring its attacks which might cycle the target. Let me know if you see this happen while playing as a human player. Manipulating AI players is sometimes unpredictable though it mostly works, but I don't want to spend much time debugging issues caused by this.

I never knew those knight-distance buttons were clickable, I thought they were static. Looks like they are indeed supposed to only send the knights up to a certain distance

it seems to me that it's about the strength of the attack - who to send to the front, depending on the option in the army panel

so, 1 icon is the strongest knight - and the last one is the weakest

this is how it works in https://www.simpleguide.net/sg/serflings.jsf

but I'm not sure how it was in the original game - and I'll play it on the Amiga in my spare time to understand it

see this is what i'm reading: https://www.oldgames.sk/downloads/oldgames/strategy/Settlers/Docs/manual-settlers-1993.pdf

No, this is about the distance the knights are from the building being targeted for attack. Notice that the pictures are of knights in various states of readiness, from very active to asleep. Clicking those boxes says "send only knights who are this distance or closer as part of the attack". I believe this is to prevent sending knights long distances to attack when sufficient nearby knights could be sent.

The strength of the attack is purely based on knight rank, gold-morale of attacking player, and the number of knights sent. And the "send strong" vs "send weak" toggle button determines if the strongest available (at that distance) or weakest available sent