diff --git a/pkg/data/npc.go b/pkg/data/npc.go index 8a6f70f..56fab42 100644 --- a/pkg/data/npc.go +++ b/pkg/data/npc.go @@ -99,8 +99,9 @@ func (m Monsters) FindByID(id UnitID) (Monster, bool) { func (m Monster) IsImmune(resist stat.Resist) bool { for st, value := range m.Stats { - // Only consider immunity threshold (>= 100). - if value < 100 { + // We only want max resistance + // Need to cast to int32 because type is uint32 and negative values are possible (e.g. -50 for Andariel) + if int32(value) < 100 { continue } if resist == stat.ColdImmune && st == stat.ColdResist { @@ -151,7 +152,7 @@ func (m Monster) IsPet() bool { func (m Monster) IsGoodNPC() bool { switch m.Name { - case 146, 154, 147, 150, 155, 148, 244, 210, 175, 199, 198, 177, 178, 201, 202, 200, 331, 245, 264, 255, 176, + case 146, 154, 147, 150, 155, 148, 244, 210, 175, 199, 198, 177, 178, 201, 202, 200, 331, 245, 264, 255, 176, 252, 254, 253, 297, 246, 251, 367, 521, 257, 405, 265, 520, 512, 518, 527, 515, 513, 511, 514, 266, 408, 406, 543: // Baal Throne return true