mirror of
https://github.com/tiennm99/miti99bot.git
synced 2026-06-08 18:16:54 +00:00
dd4e86a5de
Phase 6c of the go-port-cloud-run plan. Adds the third loldle variant — guess the champion from a single ability icon (passive or Q/W/E/R). - internal/modules/loldleability: champions.go (embed abilities.json, 5334-line DDragon-sourced pool with AbilityChampion + Ability types), state.go (gameState gains a `slot` field so the same icon shows across guesses in a round), render-free handlers.go (sendPhoto path uses models.InputFileString with the DDragon CDN URL directly — no binary upload), loldleability.go (Module Factory). - Reuses internal/modules/util/chathelper and internal/champname (same shared layer the other variants use). - 4 commands wired: loldle_ability (public), loldle_ability_giveup (public), loldle_ability_stats (public), loldle_ability_setmax (private). - 14 tests: lookup (embed shape + DDragon URL prefix + slot coverage), state (slot round-trip + JS-wire-format decode + streak), handlers (sendPhoto with correct URL, win, unknown champion, duplicate, giveup with slot label, stats, setmax owner + non-owner). - gocyclo cap nudged 20 -> 22 to accommodate handleAbility's pre-flight validation branch. go test -race -count=1 ./... clean (17 packages); golangci-lint clean.