Move all package-level vars into gameData; finish lint adoption
gochecknoglobals: all 37 package-level tables consolidated into the gameData struct (game/tables.go), built by newGameData() and carried on RogueGame as g.data (set in NewGame and Restore). ObjectKind Glyph()/objectKindForGlyph are now switches; the table-reading subtype Stringer methods are gone; isMagic is a RogueGame method. goconst: repeated words named (potionName/scrollName/ringName/goldName in object.go, wandName/staffName in sticks.go, ripWall in tables.go). exhaustive, testpackage: disabled in .golangci.yml with sneak's approval (2026-07-07). Also reverts misspell's silent corruption of the "ther" scroll-name syllable (it had become "there", changing generated scroll names vs C). Remaining red: cyclop/gocognit/nestif until refactor step 7; mnd awaits a ruling. TODO.md rotated; MEMORY.md lint notes updated.
This commit is contained in:
@@ -13,14 +13,16 @@ func TestProbabilitiesSumTo100(t *testing.T) {
|
||||
return s
|
||||
}
|
||||
|
||||
data := newGameData()
|
||||
|
||||
tables := map[string][]ObjInfo{
|
||||
"things": baseThings[:],
|
||||
"potions": basePotInfo[:],
|
||||
"scrolls": baseScrInfo[:],
|
||||
"rings": baseRingInfo[:],
|
||||
"sticks": baseWsInfo[:],
|
||||
"weapons": baseWeapInfo[:NumWeaponTypes], // excludes the flame entry
|
||||
"armor": baseArmInfo[:],
|
||||
"things": data.baseThings[:],
|
||||
"potions": data.basePotInfo[:],
|
||||
"scrolls": data.baseScrInfo[:],
|
||||
"rings": data.baseRingInfo[:],
|
||||
"sticks": data.baseWsInfo[:],
|
||||
"weapons": data.baseWeapInfo[:NumWeaponTypes], // excludes the flame entry
|
||||
"armor": data.baseArmInfo[:],
|
||||
}
|
||||
for name, tab := range tables {
|
||||
if s := sum(tab); s != 100 {
|
||||
@@ -88,11 +90,12 @@ func TestNewGameRandomizesAppearances(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestMonsterTable(t *testing.T) {
|
||||
if monsterTable[0].Name != "aquator" || monsterTable[25].Name != "zombie" {
|
||||
data := newGameData()
|
||||
if data.monsterTable[0].Name != "aquator" || data.monsterTable[25].Name != "zombie" {
|
||||
t.Error("monster table order broken")
|
||||
}
|
||||
|
||||
if monsterTable['D'-'A'].Name != "dragon" {
|
||||
if data.monsterTable['D'-'A'].Name != "dragon" {
|
||||
t.Error("letter indexing broken")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user