use OnSpringTerminated & OnSpringStarted global events
proper initialize IBattle()
fix compile warning
create timer only once