feat: Ehrenhalle bis Rang 1 + Simulation für nicht-angreifbare Gilden #6

Merged
DasAoD merged 1 commit from feature/full-hof-scan-and-preview-simulation into main 2026-08-27 21:28:20 +02:00
Owner

Closes #5

Bugfix

Der Honor-Up-Scan brach verfrüht ab (if !found_any { break }), sobald eine einzelne Ehrenhalle-Seite keine ehre-passende Gilde enthielt — unabhängig vom eingestellten max_extra_up_pages. Das konnte angreifbare Gilden hinter einer Lücke in der Ehre-Kette verstecken und machte hohe Werte für „Max Extra-Seiten (oben)" wirkungslos. Entfernt — max_extra_up_pages ist jetzt die alleinige, ehrliche Grenze.

Neues Feature

  • Neuer Scan-Modus „Komplette Ehrenhalle bis Rang 1": scannt ohne Ehre-Filter und ohne max_extra_up_pages-Grenze bis Rang 1. Nur günstige Ehrenhalle-Seitenaufrufe (kein ViewGuild pro Gilde), deshalb auch bei hohem eigenen Rang (z. B. #25000) vertretbar.
  • Explizites attackable-Feld an DetailedGuild, damit die normale Ergebnistabelle weiterhin nur echte Angriffs-Kandidaten zeigt.
  • Simulation funktioniert jetzt auch für (noch) nicht angreifbare Gilden — ensure_detailed_guild() lädt sie bei Bedarf live per ViewGuild nach (wie das bestehende 👁-Icon), bevor die Kampfwerte per ViewPlayer geholt werden.
  • Neue Karte „Vollständige Ehrenhalle": zeigt alle gescannten Gilden (Rang, Name, Mitgliederzahl, Ehre, angreifbar ja/nein, Sim-Ergebnis), nach Mitgliederzahl filterbar, eigene Checkbox-Auswahl + „🎲 Simulieren"-Button — teilt sich den Auswahl-Zustand mit der Haupttabelle, sodass man Gilden aus beiden Ansichten gemeinsam simulieren kann.

Anwendungsfall

Gilden, die aktuell außerhalb der Rang/Ehre-Regel liegen, aber von der Mitgliederzahl her ein gutes Ziel wären, lassen sich jetzt vormerken und probeweise simulieren — bevor man rangmäßig überhaupt in Reichweite kommt.

Test

  • cargo build --all-targets kompiliert ohne Warnungen.
  • JS-Syntax geprüft (node --check), alle $('id')-Referenzen gegen vorhandene HTML-IDs abgeglichen.
  • Funktionales Testen im Browser (v. a. full_up_scan bei einem echten hohen Rang, sowie Simulation einer nicht-angreifbaren Gilde) steht noch aus.

🤖 Generated with Claude Code

Closes #5 ## Bugfix Der Honor-Up-Scan brach verfrüht ab (`if !found_any { break }`), sobald eine einzelne Ehrenhalle-Seite keine ehre-passende Gilde enthielt — unabhängig vom eingestellten `max_extra_up_pages`. Das konnte angreifbare Gilden hinter einer Lücke in der Ehre-Kette verstecken und machte hohe Werte für „Max Extra-Seiten (oben)" wirkungslos. Entfernt — `max_extra_up_pages` ist jetzt die alleinige, ehrliche Grenze. ## Neues Feature - **Neuer Scan-Modus „Komplette Ehrenhalle bis Rang 1"**: scannt ohne Ehre-Filter und ohne `max_extra_up_pages`-Grenze bis Rang 1. Nur günstige Ehrenhalle-Seitenaufrufe (kein `ViewGuild` pro Gilde), deshalb auch bei hohem eigenen Rang (z. B. #25000) vertretbar. - **Explizites `attackable`-Feld** an `DetailedGuild`, damit die normale Ergebnistabelle weiterhin nur echte Angriffs-Kandidaten zeigt. - **Simulation funktioniert jetzt auch für (noch) nicht angreifbare Gilden** — `ensure_detailed_guild()` lädt sie bei Bedarf live per `ViewGuild` nach (wie das bestehende 👁-Icon), bevor die Kampfwerte per `ViewPlayer` geholt werden. - **Neue Karte „Vollständige Ehrenhalle"**: zeigt alle gescannten Gilden (Rang, Name, Mitgliederzahl, Ehre, angreifbar ja/nein, Sim-Ergebnis), nach Mitgliederzahl filterbar, eigene Checkbox-Auswahl + „🎲 Simulieren"-Button — teilt sich den Auswahl-Zustand mit der Haupttabelle, sodass man Gilden aus beiden Ansichten gemeinsam simulieren kann. ## Anwendungsfall Gilden, die aktuell außerhalb der Rang/Ehre-Regel liegen, aber von der Mitgliederzahl her ein gutes Ziel wären, lassen sich jetzt vormerken und probeweise simulieren — bevor man rangmäßig überhaupt in Reichweite kommt. ## Test - `cargo build --all-targets` kompiliert ohne Warnungen. - JS-Syntax geprüft (`node --check`), alle `$('id')`-Referenzen gegen vorhandene HTML-IDs abgeglichen. - Funktionales Testen im Browser (v. a. `full_up_scan` bei einem echten hohen Rang, sowie Simulation einer nicht-angreifbaren Gilde) steht noch aus. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Closes #5

Bisher landeten nur nach der Rang/Ehre-Regel angreifbare Gilden
überhaupt in den Scan-Ergebnissen. Ausserdem brach der Honor-Up-Scan
verfrüht ab (if !found_any { break }), sobald eine einzelne HoF-Seite
keine ehre-passende Gilde enthielt - unabhängig von
max_extra_up_pages. Das konnte angreifbare Gilden hinter einer Lücke
in der Ehre-Kette verstecken, und machte "Max Extra-Seiten" auf hohe
Werte setzen wirkungslos.

Aenderungen:

- Bugfix: verfrühten Abbruch im Honor-Up-Scan entfernt. Sowohl im
  normalen Honor-Up-Scan als auch im neuen full_up_scan-Modus ist
  max_extra_up_pages (bzw. Rang 1) jetzt die alleinige, ehrliche
  Grenze.
- Neuer Scan-Modus full_up_scan ("Komplette Ehrenhalle bis Rang 1"):
  scannt alle Seiten bis Rang 1, ohne Ehre-Filter, unabhängig von
  max_extra_up_pages. Nur guenstige HoF-Seitenaufrufe (kein ViewGuild
  pro Gilde), deshalb auch bei hohem eigenen Rang vertretbar.
- DetailedGuild hat jetzt ein explizites attackable-Feld (statt
  implizit "ist in der Liste = angreifbar"), damit die normale
  Ergebnistabelle weiterhin nur echte Kandidaten zeigt, auch wenn
  detailed_guilds inzwischen auch nicht-angreifbare (aber
  probesimulierte) Gilden enthalten kann. Serde-Default true fuer
  Abwaertskompatibilitaet mit alten scan_*.json.
- Neue ensure_detailed_guild()-Hilfsfunktion: laedt eine Gilde bei
  Bedarf live per ViewGuild nach, falls sie (noch) nicht angreifbar
  war und deshalb nie ueber Phase 2 des Scans geladen wurde. Wird von
  get_enemy_fighters() vor der Simulation aufgerufen - Simulation
  funktioniert damit jetzt auch fuer Gilden aus der vollstaendigen
  Ehrenhalle-Ansicht, nicht nur fuer bereits angreifbare Kandidaten.
- /api/results liefert jetzt zusaetzlich hof_guilds (komplette
  Ehrenhalle-Rohliste aus Phase 1, angereichert mit evtl. schon
  vorhandenen Simulationsergebnissen).
- Frontend: neue Karte "Vollständige Ehrenhalle" mit eigener
  Tabelle (Rang, Name, Mitgl., Ehre, Angreifbar-Badge, Sim-Spalte),
  nach Mitgliederzahl filterbar, eigene Checkbox-Auswahl (teilt sich
  denselben selectedGuilds-Zustand mit der Hauptergebnistabelle,
  aber "Alle auswählen"/"Auswahl aufheben" sind pro Tabelle
  skopiert), eigener "🎲 Simulieren"-Button.

Getestet: cargo build --all-targets kompiliert ohne Warnungen.
JS-Syntax geprüft (node --check), alle $('id')-Referenzen gegen
vorhandene HTML-IDs abgeglichen.
DasAoD merged commit 59f7dff969 into main 2026-08-27 21:28:20 +02:00
Sign in to join this conversation.
No description provided.