예제 #1
0
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);
    }
}