Added spell charges and optimized update functions for different types