Vollständige Ehrenhalle bis Rang 1 durchsuchen + Simulation für noch nicht angreifbare Gilden #5

Closed
opened 2026-08-27 21:11:09 +02:00 by DasAoD · 0 comments
Owner

Hintergrund

Aktuell landen nur Gilden, die nach der Rang/Ehre-Regel (rank_diff ≤ 20 ODER honor_diff ≤ 3000) angreifbar sind, überhaupt in den Scan-Ergebnissen (detailed_guilds). Alles andere wird in Phase 1 zwar kurz aus der Ehrenhalle gelesen, aber sofort wieder verworfen.

Ausgangsdiskussion: Beim Testen von „Max Extra-Seiten (oben)" mit einem hohen Wert (z.B. 1000) kamen trotzdem nicht mehr Ergebnisse als erwartet. Grund: ein verfrühter Abbruch (if !found_any { break; } in run_scan), der stoppt, sobald eine einzelne Ehrenhalle-Seite keine ehre-passende Gilde enthält – unabhängig vom eingestellten Limit. Das ist potenziell auch ein eigenständiger Bug (kann angreifbare Gilden hinter einer "Lücke" in der Ehre-Kette verpassen).

Der eigentliche Wunsch geht aber weiter: Es gibt Gilden, die aktuell außerhalb der Rang/Ehre-Regel liegen, aber von der Mitgliederanzahl her ein gutes Ziel wären, sobald man selbst näher heranrückt. Diese sollen vorab schon browsebar sein und sich testweise simulieren lassen, um zu sehen, wie der Kampf ausgehen würde – auch wenn man sie aktuell noch gar nicht angreifen kann.

Geplante Änderung

  1. Bugfix: verfrühten if !found_any { break; }-Abbruch im Honor-Up-Scan entfernen, damit max_extra_up_pages tatsächlich die alleinige, ehrliche Grenze ist.
  2. Neuer Scan-Modus „Komplette Ehrenhalle bis Rang 1": scannt alle Seiten bis Rang 1, ohne Ehre-Filter, unabhängig von max_extra_up_pages. Nur günstige Ehrenhalle-Seitenaufrufe (kein ViewGuild pro Gilde), damit das auch bei sehr hohem eigenen Rang (z.B. #25000) nicht ausartet.
  3. Explizites attackable-Flag an jeder Gilde in detailed_guilds, damit die bestehende Ergebnistabelle weiterhin nur echte Angriffs-Kandidaten zeigt, auch wenn detailed_guilds künftig auch nicht-angreifbare (aber simulierte) Gilden enthalten kann.
  4. Neue Ansicht „Vollständige Ehrenhalle": zeigt alle gescannten Gilden (Rang, Name, Ehre, Mitgliederzahl, angreifbar ja/nein), filter-/sortierbar nach Mitgliederzahl.
  5. Simulation für nicht-angreifbare Gilden: /api/simulate lädt die Mitgliederliste bei Bedarf live per ViewGuild nach (wie es das bestehende 👁-Detail-Icon für Einzelansichten schon tut), statt nur aus bereits gescannten detailed_guilds zu lesen. Ergebnis wird genauso persistiert/angezeigt wie bei regulären Kandidaten.
  6. Checkbox-Auswahl + „🎲 Simulieren" funktionieren aus der neuen Tabelle genauso wie aus der bestehenden Ergebnistabelle (gleicher Mechanismus, gleicher selectedGuilds-Zustand aus PR #4).

Nicht Teil dieses Issues

Die Ehre/Rang-Regel selbst (is_attackable()) bleibt unverändert – das ist Spielregel, keine Scan-Beschränkung. Es geht nur darum, Gilden außerhalb dieser Regel vorab sichtbar/simulierbar zu machen.

## Hintergrund Aktuell landen nur Gilden, die nach der Rang/Ehre-Regel (`rank_diff ≤ 20 ODER honor_diff ≤ 3000`) angreifbar sind, überhaupt in den Scan-Ergebnissen (`detailed_guilds`). Alles andere wird in Phase 1 zwar kurz aus der Ehrenhalle gelesen, aber sofort wieder verworfen. Ausgangsdiskussion: Beim Testen von „Max Extra-Seiten (oben)" mit einem hohen Wert (z.B. 1000) kamen trotzdem nicht mehr Ergebnisse als erwartet. Grund: ein verfrühter Abbruch (`if !found_any { break; }` in `run_scan`), der stoppt, sobald eine einzelne Ehrenhalle-Seite keine ehre-passende Gilde enthält – unabhängig vom eingestellten Limit. Das ist potenziell auch ein eigenständiger Bug (kann angreifbare Gilden hinter einer "Lücke" in der Ehre-Kette verpassen). Der eigentliche Wunsch geht aber weiter: Es gibt Gilden, die aktuell außerhalb der Rang/Ehre-Regel liegen, aber von der Mitgliederanzahl her ein gutes Ziel wären, sobald man selbst näher heranrückt. Diese sollen vorab schon browsebar sein und sich testweise simulieren lassen, um zu sehen, wie der Kampf ausgehen würde – auch wenn man sie aktuell noch gar nicht angreifen kann. ## Geplante Änderung 1. **Bugfix**: verfrühten `if !found_any { break; }`-Abbruch im Honor-Up-Scan entfernen, damit `max_extra_up_pages` tatsächlich die alleinige, ehrliche Grenze ist. 2. **Neuer Scan-Modus** „Komplette Ehrenhalle bis Rang 1": scannt alle Seiten bis Rang 1, ohne Ehre-Filter, unabhängig von `max_extra_up_pages`. Nur günstige Ehrenhalle-Seitenaufrufe (kein `ViewGuild` pro Gilde), damit das auch bei sehr hohem eigenen Rang (z.B. #25000) nicht ausartet. 3. **Explizites `attackable`-Flag** an jeder Gilde in `detailed_guilds`, damit die bestehende Ergebnistabelle weiterhin nur echte Angriffs-Kandidaten zeigt, auch wenn `detailed_guilds` künftig auch nicht-angreifbare (aber simulierte) Gilden enthalten kann. 4. **Neue Ansicht „Vollständige Ehrenhalle"**: zeigt alle gescannten Gilden (Rang, Name, Ehre, Mitgliederzahl, angreifbar ja/nein), filter-/sortierbar nach Mitgliederzahl. 5. **Simulation für nicht-angreifbare Gilden**: `/api/simulate` lädt die Mitgliederliste bei Bedarf live per `ViewGuild` nach (wie es das bestehende 👁-Detail-Icon für Einzelansichten schon tut), statt nur aus bereits gescannten `detailed_guilds` zu lesen. Ergebnis wird genauso persistiert/angezeigt wie bei regulären Kandidaten. 6. Checkbox-Auswahl + „🎲 Simulieren" funktionieren aus der neuen Tabelle genauso wie aus der bestehenden Ergebnistabelle (gleicher Mechanismus, gleicher `selectedGuilds`-Zustand aus PR #4). ## Nicht Teil dieses Issues Die Ehre/Rang-Regel selbst (`is_attackable()`) bleibt unverändert – das ist Spielregel, keine Scan-Beschränkung. Es geht nur darum, Gilden außerhalb dieser Regel vorab sichtbar/simulierbar zu machen.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
DasAoD/sf-guildscanner#5
No description provided.