#pragma once
#include "InfrastProductionTask.h"

namespace asst
{
class InfrastReceptionTask final : public InfrastProductionTask
{
public:
    using InfrastProductionTask::InfrastProductionTask;
    virtual ~InfrastReceptionTask() override = default;

    virtual size_t max_num_of_opers() const noexcept override { return 2ULL; }

    void set_receive_message_board(bool value) noexcept { m_receive_message_board = value; }

    void set_enable_clue_exchange(bool value) noexcept { m_enable_clue_exchange = value; }

    void set_send_clue(bool value) noexcept { m_send_clue = value; }

protected:
    virtual bool _run() override;
    virtual bool on_run_fails() override;

private:
    virtual int operlist_swipe_times() const noexcept override { return 4; }

    // 收取信息板的周限300信用
    bool receive_message_board();
    bool close_end_of_clue_exchange();
    bool get_friend_clue();
    bool get_self_clue();
    bool use_clue();
    bool remove_clue();
    bool proc_clue_vacancy();
    bool unlock_clue_exchange();
    bool back_to_reception_main();
    bool send_clue();
    bool shift();

    bool swipe_to_the_bottom_of_clue_list_on_the_right();

    bool m_receive_message_board = true;
    bool m_enable_clue_exchange = true;
    bool m_send_clue = true;
};
}
