diff --git a/sim/core/character.go b/sim/core/character.go index 8c5e848bcc..86896b2f75 100644 --- a/sim/core/character.go +++ b/sim/core/character.go @@ -705,7 +705,11 @@ func FillTalentsProto(data protoreflect.Message, talentsStr string, treeSizes [3 for treeIdx, treeStr := range treeStrs { for talentIdx, talentValStr := range treeStr { talentVal, _ := strconv.Atoi(string(talentValStr)) - fd := fieldDescriptors.ByNumber(protowire.Number(offset + talentIdx + 1)) + talentOffset := offset + talentIdx + 1 + fd := fieldDescriptors.ByNumber(protowire.Number(talentOffset)) + if fd == nil { + panic(fmt.Sprintf("Couldn't find proto field for talent #%d, full string: %s", talentOffset, talentsStr)) + } if fd.Kind() == protoreflect.BoolKind { data.Set(fd, protoreflect.ValueOfBool(talentVal == 1)) } else { // Int32Kind diff --git a/sim/warrior/protection/protection_warrior.go b/sim/warrior/protection/protection_warrior.go index 760dd16f2b..9b1be13d9a 100644 --- a/sim/warrior/protection/protection_warrior.go +++ b/sim/warrior/protection/protection_warrior.go @@ -88,6 +88,7 @@ func (war *ProtectionWarrior) Initialize() { war.Warrior.Initialize() war.RegisterHSOrCleave(false, war.Rotation.HsRageThreshold) + war.RegisterRendSpell(0, 0) war.RegisterShieldWallCD() war.RegisterShieldBlockCD() war.DefensiveStanceAura.BuildPhase = core.CharacterBuildPhaseTalents