Rename constants to descriptive names (refactor step 1)
Pure rename, no behavior change; the full suite (RNG goldens,
generation invariants, scripted sessions, save round trip) is
unchanged and green.
- Creature flags: IsHuh→Confused, IsHalu→Hallucinating,
CanHuh→CanConfuse, CanSee→CanSeeInvisible, IsRun→Awake,
SeeMonst→SenseMonsters, IsCanc→Cancelled, IsLevit→Levitating,
IsBlind/IsGreed/IsHaste/IsTarget/IsHeld/IsInvis/IsMean/IsRegen/
IsFly/IsSlow → Blind/Greedy/Hasted/Targeted/Held/Invisible/Mean/
Regenerates/Flying/Slowed, IsFound→Found
- Object flags: IsCursed→Cursed, IsKnow→Known, IsMissl→Missile,
IsMany→Stackable, ObjIsFound→WasFound, IsProt→Protected
- Room flags: IsDark/IsGone/IsMaze → Dark/Gone/Maze; place flags:
FPass→FPassage, FPNum→FPassNum, FTMask→FTrapMask
- Trap types: TDoor→TrapDoor ... TMyst→TrapMystery
- Item subtypes: P*→Potion* (PLSD→PotionLSD, PMFind→
PotionDetectMonsters, ...), S*→Scroll* (SIDRorS→
ScrollIdentifyRingOrStick, ...), R*→Ring* (RAddHit→RingDexterity,
RNop→RingAdornment, ...), Ws*→Wand* (WsElect→WandLightning, ...),
weapons (TwoSword→WeaponTwoHandedSword, Shiraken→WeaponShuriken,
...), armor (RingMail→ArmorRingMail, ...)
- Counts: Max{Potions,Scrolls,Rings,Sticks,Weapons,Armors} →
Num{Potion,Scroll,Ring,Wand,Weapon,Armor}Types; NTraps→NumTrapTypes
- Level.NTraps field → TrapCount (also in the save snapshot)
- Original C constant names preserved as comment breadcrumbs in
types.go so the lineage stays greppable
TODO.md: step 1 moved to Completed, step 2 (typed kinds) promoted to
Next Step.
This commit is contained in:
@@ -9,7 +9,7 @@ package game
|
||||
var initStats = Stats{Str: 16, Exp: 0, Lvl: 1, Arm: 10, HP: 12, Dmg: "1x4", MaxHP: 12}
|
||||
|
||||
// aClass is extern.c a_class[]: armor class for each armor type.
|
||||
var aClass = [MaxArmors]int{
|
||||
var aClass = [NumArmorTypes]int{
|
||||
8, // LEATHER
|
||||
7, // RING_MAIL
|
||||
7, // STUDDED_LEATHER
|
||||
@@ -28,7 +28,7 @@ var eLevels = []int{
|
||||
}
|
||||
|
||||
// trName is extern.c tr_name[]: names of the traps.
|
||||
var trName = [NTraps]string{
|
||||
var trName = [NumTrapTypes]string{
|
||||
"a trapdoor",
|
||||
"an arrow trap",
|
||||
"a sleeping gas trap",
|
||||
@@ -47,32 +47,32 @@ var invTName = []string{"Overwrite", "Slow", "Clear"}
|
||||
// rolled from the level at creation time.
|
||||
var monsterTable = [26]MonsterKind{
|
||||
/* Name CARRY FLAGS str exp lvl arm hp dmg */
|
||||
{"aquator", 0, IsMean, Stats{10, 20, 5, 2, 1, "0x0/0x0", 0}},
|
||||
{"bat", 0, IsFly, Stats{10, 1, 1, 3, 1, "1x2", 0}},
|
||||
{"aquator", 0, Mean, Stats{10, 20, 5, 2, 1, "0x0/0x0", 0}},
|
||||
{"bat", 0, Flying, Stats{10, 1, 1, 3, 1, "1x2", 0}},
|
||||
{"centaur", 15, 0, Stats{10, 17, 4, 4, 1, "1x2/1x5/1x5", 0}},
|
||||
{"dragon", 100, IsMean, Stats{10, 5000, 10, -1, 1, "1x8/1x8/3x10", 0}},
|
||||
{"emu", 0, IsMean, Stats{10, 2, 1, 7, 1, "1x2", 0}},
|
||||
{"venus flytrap", 0, IsMean, Stats{10, 80, 8, 3, 1, "%%%x0", 0}},
|
||||
{"griffin", 20, IsMean | IsFly | IsRegen, Stats{10, 2000, 13, 2, 1, "4x3/3x5", 0}},
|
||||
{"hobgoblin", 0, IsMean, Stats{10, 3, 1, 5, 1, "1x8", 0}},
|
||||
{"dragon", 100, Mean, Stats{10, 5000, 10, -1, 1, "1x8/1x8/3x10", 0}},
|
||||
{"emu", 0, Mean, Stats{10, 2, 1, 7, 1, "1x2", 0}},
|
||||
{"venus flytrap", 0, Mean, Stats{10, 80, 8, 3, 1, "%%%x0", 0}},
|
||||
{"griffin", 20, Mean | Flying | Regenerates, Stats{10, 2000, 13, 2, 1, "4x3/3x5", 0}},
|
||||
{"hobgoblin", 0, Mean, Stats{10, 3, 1, 5, 1, "1x8", 0}},
|
||||
{"ice monster", 0, 0, Stats{10, 5, 1, 9, 1, "0x0", 0}},
|
||||
{"jabberwock", 70, 0, Stats{10, 3000, 15, 6, 1, "2x12/2x4", 0}},
|
||||
{"kestrel", 0, IsMean | IsFly, Stats{10, 1, 1, 7, 1, "1x4", 0}},
|
||||
{"kestrel", 0, Mean | Flying, Stats{10, 1, 1, 7, 1, "1x4", 0}},
|
||||
{"leprechaun", 0, 0, Stats{10, 10, 3, 8, 1, "1x1", 0}},
|
||||
{"medusa", 40, IsMean, Stats{10, 200, 8, 2, 1, "3x4/3x4/2x5", 0}},
|
||||
{"medusa", 40, Mean, Stats{10, 200, 8, 2, 1, "3x4/3x4/2x5", 0}},
|
||||
{"nymph", 100, 0, Stats{10, 37, 3, 9, 1, "0x0", 0}},
|
||||
{"orc", 15, IsGreed, Stats{10, 5, 1, 6, 1, "1x8", 0}},
|
||||
{"phantom", 0, IsInvis, Stats{10, 120, 8, 3, 1, "4x4", 0}},
|
||||
{"quagga", 0, IsMean, Stats{10, 15, 3, 3, 1, "1x5/1x5", 0}},
|
||||
{"rattlesnake", 0, IsMean, Stats{10, 9, 2, 3, 1, "1x6", 0}},
|
||||
{"snake", 0, IsMean, Stats{10, 2, 1, 5, 1, "1x3", 0}},
|
||||
{"troll", 50, IsRegen | IsMean, Stats{10, 120, 6, 4, 1, "1x8/1x8/2x6", 0}},
|
||||
{"black unicorn", 0, IsMean, Stats{10, 190, 7, -2, 1, "1x9/1x9/2x9", 0}},
|
||||
{"vampire", 20, IsRegen | IsMean, Stats{10, 350, 8, 1, 1, "1x10", 0}},
|
||||
{"orc", 15, Greedy, Stats{10, 5, 1, 6, 1, "1x8", 0}},
|
||||
{"phantom", 0, Invisible, Stats{10, 120, 8, 3, 1, "4x4", 0}},
|
||||
{"quagga", 0, Mean, Stats{10, 15, 3, 3, 1, "1x5/1x5", 0}},
|
||||
{"rattlesnake", 0, Mean, Stats{10, 9, 2, 3, 1, "1x6", 0}},
|
||||
{"snake", 0, Mean, Stats{10, 2, 1, 5, 1, "1x3", 0}},
|
||||
{"troll", 50, Regenerates | Mean, Stats{10, 120, 6, 4, 1, "1x8/1x8/2x6", 0}},
|
||||
{"black unicorn", 0, Mean, Stats{10, 190, 7, -2, 1, "1x9/1x9/2x9", 0}},
|
||||
{"vampire", 20, Regenerates | Mean, Stats{10, 350, 8, 1, 1, "1x10", 0}},
|
||||
{"wraith", 0, 0, Stats{10, 55, 5, 4, 1, "1x6", 0}},
|
||||
{"xeroc", 30, 0, Stats{10, 100, 7, 7, 1, "4x4", 0}},
|
||||
{"yeti", 30, 0, Stats{10, 50, 4, 6, 1, "1x6/1x6", 0}},
|
||||
{"zombie", 0, IsMean, Stats{10, 6, 2, 8, 1, "1x8", 0}},
|
||||
{"zombie", 0, Mean, Stats{10, 6, 2, 8, 1, "1x8", 0}},
|
||||
}
|
||||
|
||||
// Base ObjInfo tables (extern.c). These are templates: NewGame copies them
|
||||
@@ -88,7 +88,7 @@ var baseThings = [NumThings]ObjInfo{
|
||||
{Prob: 4}, // stick
|
||||
}
|
||||
|
||||
var baseArmInfo = [MaxArmors]ObjInfo{
|
||||
var baseArmInfo = [NumArmorTypes]ObjInfo{
|
||||
{Name: "leather armor", Prob: 20, Worth: 20},
|
||||
{Name: "ring mail", Prob: 15, Worth: 25},
|
||||
{Name: "studded leather armor", Prob: 15, Worth: 20},
|
||||
@@ -99,7 +99,7 @@ var baseArmInfo = [MaxArmors]ObjInfo{
|
||||
{Name: "plate mail", Prob: 5, Worth: 150},
|
||||
}
|
||||
|
||||
var basePotInfo = [MaxPotions]ObjInfo{
|
||||
var basePotInfo = [NumPotionTypes]ObjInfo{
|
||||
{Name: "confusion", Prob: 7, Worth: 5},
|
||||
{Name: "hallucination", Prob: 8, Worth: 5},
|
||||
{Name: "poison", Prob: 8, Worth: 5},
|
||||
@@ -116,7 +116,7 @@ var basePotInfo = [MaxPotions]ObjInfo{
|
||||
{Name: "levitation", Prob: 6, Worth: 75},
|
||||
}
|
||||
|
||||
var baseRingInfo = [MaxRings]ObjInfo{
|
||||
var baseRingInfo = [NumRingTypes]ObjInfo{
|
||||
{Name: "protection", Prob: 9, Worth: 400},
|
||||
{Name: "add strength", Prob: 9, Worth: 400},
|
||||
{Name: "sustain strength", Prob: 5, Worth: 280},
|
||||
@@ -133,7 +133,7 @@ var baseRingInfo = [MaxRings]ObjInfo{
|
||||
{Name: "maintain armor", Prob: 5, Worth: 380},
|
||||
}
|
||||
|
||||
var baseScrInfo = [MaxScrolls]ObjInfo{
|
||||
var baseScrInfo = [NumScrollTypes]ObjInfo{
|
||||
{Name: "monster confusion", Prob: 7, Worth: 140},
|
||||
{Name: "magic mapping", Prob: 4, Worth: 150},
|
||||
{Name: "hold monster", Prob: 2, Worth: 180},
|
||||
@@ -154,7 +154,7 @@ var baseScrInfo = [MaxScrolls]ObjInfo{
|
||||
{Name: "protect armor", Prob: 2, Worth: 250},
|
||||
}
|
||||
|
||||
var baseWeapInfo = [MaxWeapons + 1]ObjInfo{
|
||||
var baseWeapInfo = [NumWeaponTypes + 1]ObjInfo{
|
||||
{Name: "mace", Prob: 11, Worth: 8},
|
||||
{Name: "long sword", Prob: 11, Worth: 15},
|
||||
{Name: "short bow", Prob: 12, Worth: 15},
|
||||
@@ -167,7 +167,7 @@ var baseWeapInfo = [MaxWeapons + 1]ObjInfo{
|
||||
{}, // DO NOT REMOVE: fake entry for dragon's breath
|
||||
}
|
||||
|
||||
var baseWsInfo = [MaxSticks]ObjInfo{
|
||||
var baseWsInfo = [NumWandTypes]ObjInfo{
|
||||
{Name: "light", Prob: 12, Worth: 250},
|
||||
{Name: "invisibility", Prob: 6, Worth: 5},
|
||||
{Name: "lightning", Prob: 3, Worth: 330},
|
||||
|
||||
Reference in New Issue
Block a user