Could not figure this one out but I get a NullReferenceException when I call the onLevelup event when I UpdateLevel().
If I comment out line 33 I get no errors. all this does is restore the players health and if I comment out the RestoreState() method onLevelup() still gives me a null reference exception. On further tests I found that when the next attack hits after the killing blow the code resolves and the health and level updates.