I see what the problem is: `BattleUnit` is violating the Rule-of-Three with the copy constructor's initializer `_currentAIState(b._currentAIState)`.