Code refactoring, game AI abstract class, fog effect