Some problem in code
if (this.m.Events.getScore() <= 0 || this.World.Statistics.isNewsReady() && this.m.Events.getScore() < 2000 || this.Time.getVirtualTimeF() – this.m.LastBattleTime < 5.0 && this.m.Events.getScore() < 500)
This line of code using twice in method event_manager.selectEvent.
this.World.Statistics.isNewsReady() return true. After that event not fires at all.
I think some news added to statistics_manager.News in other thread when function-generator selectEvent executing. After that this.World.Statistics.isNewsReady() always return true. Perhaps no other code pop new from statistics_manager.News. Helps only restart game.