Actually, I just remembered a prior cause for this sort of behavior, relating to loading/saving… it deals with the order in which components are attached to the characters…
It’s possible that the character that is still standing around being a zombie when it should be dead is having it’s animator reset when the Fighter loads the weapon…
If the character was built in the order we created the course in, then usually Fighter comes first, and Health afterwords, in which case, the Fighter equips the weapon, resets the animator (when the animatoroverride is change) and then Health kills the character, but sometimes (rarely) this can happen the other way round… if Health kills the character, and then the animator is reset, it will stand around like a zombie instead of dropping dead, and we are not teaching a zombie game in this course.
Try adding this line to the beginning of EquipWeapon() in Fighter.cs:
if(GetComponent<Health>().IsDead()) return;