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:
@@ -4,43 +4,6 @@ import "strconv"
|
||||
|
||||
// fight.c — all the fighting gets done here.
|
||||
|
||||
// hNames are the strings for hitting; the first four are used when the
|
||||
// player strikes, the second four for monsters (fight.c h_names).
|
||||
var hNames = [8]string{
|
||||
" scored an excellent hit on ",
|
||||
" hit ",
|
||||
" have injured ",
|
||||
" swing and hit ",
|
||||
" scored an excellent hit on ",
|
||||
" hit ",
|
||||
" has injured ",
|
||||
" swings and hits ",
|
||||
}
|
||||
|
||||
// mNames are the strings for missing (fight.c m_names).
|
||||
var mNames = [8]string{
|
||||
" miss",
|
||||
" swing and miss",
|
||||
" barely miss",
|
||||
" don't hit",
|
||||
" misses",
|
||||
" swings and misses",
|
||||
" barely misses",
|
||||
" doesn't hit",
|
||||
}
|
||||
|
||||
// strPlus adjusts hit probabilities due to strength (fight.c str_plus).
|
||||
var strPlus = [32]int{
|
||||
-7, -6, -5, -4, -3, -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
|
||||
1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,
|
||||
}
|
||||
|
||||
// addDam adjusts damage done due to strength (fight.c add_dam).
|
||||
var addDam = [32]int{
|
||||
-7, -6, -5, -4, -3, -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3,
|
||||
3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6,
|
||||
}
|
||||
|
||||
// setMname returns the monster name for the given monster (fight.c
|
||||
// set_mname).
|
||||
func (g *RogueGame) setMname(tp *Monster) string {
|
||||
@@ -254,7 +217,7 @@ func (g *RogueGame) attack(mp *Monster) int {
|
||||
p.Stats.Exp = 0
|
||||
p.Stats.Lvl = 1
|
||||
} else {
|
||||
p.Stats.Exp = eLevels[p.Stats.Lvl-1] + 1
|
||||
p.Stats.Exp = g.data.eLevels[p.Stats.Lvl-1] + 1
|
||||
}
|
||||
|
||||
fewer = g.roll(1, 10)
|
||||
@@ -314,7 +277,7 @@ func (g *RogueGame) attack(mp *Monster) int {
|
||||
for _, obj := range p.Pack {
|
||||
if obj != p.CurArmor && obj != p.CurWeapon &&
|
||||
obj != p.CurRing[Left] && obj != p.CurRing[Right] &&
|
||||
obj.isMagic() {
|
||||
g.isMagic(obj) {
|
||||
if nobj++; g.rnd(nobj) == 0 {
|
||||
steal = obj
|
||||
}
|
||||
@@ -436,10 +399,10 @@ func (g *RogueGame) rollEm(thatt, thdef *Creature, weap *Object, hurl bool) bool
|
||||
didHit := false
|
||||
|
||||
for _, atk := range attacks {
|
||||
if g.swing(att.Lvl, defArm, hplus+strPlus[att.Str]) {
|
||||
if g.swing(att.Lvl, defArm, hplus+g.data.strPlus[att.Str]) {
|
||||
proll := g.roll(atk.Count, atk.Sides)
|
||||
|
||||
damage := dplus + proll + addDam[att.Str]
|
||||
damage := dplus + proll + g.data.addDam[att.Str]
|
||||
if damage > 0 {
|
||||
def.HP -= damage
|
||||
}
|
||||
@@ -515,7 +478,7 @@ func (g *RogueGame) hit(er, ee string, noend bool) {
|
||||
i += 4
|
||||
}
|
||||
|
||||
s = hNames[i]
|
||||
s = g.data.hNames[i]
|
||||
}
|
||||
|
||||
g.addmsgf("%s", s)
|
||||
@@ -546,7 +509,7 @@ func (g *RogueGame) miss(er, ee string, noend bool) {
|
||||
i += 4
|
||||
}
|
||||
|
||||
g.addmsgf("%s", mNames[i])
|
||||
g.addmsgf("%s", g.data.mNames[i])
|
||||
|
||||
if !g.Options.Terse {
|
||||
g.addmsgf(" %s", prname(ee, false))
|
||||
|
||||
Reference in New Issue
Block a user