void SkeletonAI::act(MonsterPtr monster) { HeroPtr hero = find_hero(monster); TilePtr tile = monster->get_pos(); Coord coord = tile->get_coord(); if (hero) { TilePtr hero_tile = hero->get_pos(); Coord hero_coord = hero_tile->get_coord(); if (can_atack(coord, hero_coord)) { atack(monster, hero); } else { Coord coord_to = small_path_search(coord, hero_coord); TilePtr tile_to = main_core->get_tile(coord_to); MovePtr move = Move::make_Ptr(monster, tile_to); main_core->do_action(move); } } else { make_move(monster); } }