7
7
8
8
namespace ai
9
9
{
10
- class ChooseTravelTargetAction : public MovementAction {
10
+ class ChooseTravelTargetAction : public Action {
11
11
public:
12
- ChooseTravelTargetAction (PlayerbotAI* ai, std::string name = " choose travel target" ) : MovementAction(ai, name) {}
13
-
14
- virtual bool Execute (Event& event);
15
- virtual bool isUseful ();
16
-
17
- void getNewTarget (Player* requester, TravelTarget* newTarget, TravelTarget* oldTarget);
12
+ ChooseTravelTargetAction (PlayerbotAI* ai, std::string name = " choose travel target" ) : Action(ai, name) {}
18
13
14
+ virtual bool Execute (Event& event) override ;
15
+ virtual bool isUseful () override ;
19
16
protected:
20
17
void setNewTarget (Player* requester, TravelTarget* newTarget, TravelTarget* oldTarget);
21
18
void ReportTravelTarget (Player* requester, TravelTarget* newTarget, TravelTarget* oldTarget);
22
19
23
20
bool SetBestTarget (Player* requester, TravelTarget* target, PartitionedTravelList& travelPartitions, bool onlyActive = true );
24
21
25
- bool SetNpcFlagTarget (Player* requester, TravelTarget* target, std::vector<NPCFlags> flags, std::string name = " " , std::vector<uint32> items = {}, bool force = false );
22
+ // bool SetNpcFlagTarget(Player* requester, TravelTarget* target, std::vector<NPCFlags> flags, std::string name = "", std::vector<uint32> items = {}, bool force = false);
26
23
27
24
bool SetNullTarget (TravelTarget* target);
28
25
public:
29
26
static DestinationList FindDestination (PlayerTravelInfo info, std::string name, bool zones = true , bool npcs = true , bool quests = true , bool mobs = true , bool bosses = true );
30
- protected:
31
- const std::vector<uint32> travelPartitions = { 100 , 250 , 500 , 1000 , 2000 , 3000 , 4000 , 5000 , 6000 , 10000 , 50000 , 100000 , 500000 };
32
27
private:
33
28
#ifdef GenerateBotHelp
34
29
virtual std::string GetHelpName () { return " choose travel target" ; } // Must equal iternal name
@@ -48,57 +43,51 @@ namespace ai
48
43
public:
49
44
ChooseGroupTravelTargetAction (PlayerbotAI* ai, std::string name = " choose group travel target" ) : ChooseTravelTargetAction(ai, name) {}
50
45
51
- virtual bool Execute (Event& event);
52
- virtual bool isUseful () { return ChooseTravelTargetAction::isUseful () && bot-> GetGroup (); }
46
+ virtual bool Execute (Event& event) override ;
47
+ virtual bool isUseful () override ;
53
48
};
54
49
55
50
class RefreshTravelTargetAction : public ChooseTravelTargetAction {
56
51
public:
57
52
RefreshTravelTargetAction (PlayerbotAI* ai, std::string name = " refresh travel target" ) : ChooseTravelTargetAction(ai, name) {}
58
53
59
- virtual bool Execute (Event& event);
60
- virtual bool isUseful () { return ChooseTravelTargetAction::isUseful () && AI_VALUE (TravelTarget*, " travel target " )-> GetDestination ()-> IsActive (bot, PlayerTravelInfo (bot)) && (! WorldPosition (bot). isOverworld () || urand ( 1 , 100 ) > 10 ); }
54
+ virtual bool Execute (Event& event) override ;
55
+ virtual bool isUseful () override ;
61
56
};
62
57
63
- using FutureDestinations = std::future<PartitionedTravelList>;
64
-
65
- class ChooseAsyncTravelTargetAction : public ChooseTravelTargetAction , public Qualified {
58
+ class ResetTargetAction : public ChooseTravelTargetAction {
66
59
public:
67
- ChooseAsyncTravelTargetAction (PlayerbotAI* ai, std::string name = " choose async travel target" ) : ChooseTravelTargetAction(ai, name), Qualified() {}
68
- protected:
69
- TravelDestinationPurpose actionPurpose = TravelDestinationPurpose::None;
60
+ ResetTargetAction (PlayerbotAI* ai, std::string name = " reset travel target" ) : ChooseTravelTargetAction(ai, name) {}
70
61
71
- virtual bool RequestNewDestinations (Event& event);
72
- virtual bool isAllowed () const ; // We need this skip on the request instead of isUsefull to only skip the request sometimes but not the Wait and Set that could follow a nonskip.
62
+ virtual bool Execute (Event& event) override ;
63
+ virtual bool isUseful () override ;
64
+ };
73
65
74
- bool hasDestinations = false ;
75
- PartitionedTravelList destinationList = {};
76
- FutureDestinations futureDestinations;
66
+ class RequestTravelTargetAction : public Action , public Qualified {
67
+ public:
68
+ RequestTravelTargetAction (PlayerbotAI* ai, std::string name = " request travel target" ) : Action(ai, name), Qualified() {}
69
+ protected:
70
+ const std::vector<uint32> travelPartitions = { 100 , 250 , 500 , 1000 , 2000 , 3000 , 4000 , 5000 , 6000 , 10000 , 50000 , 100000 , 500000 };
77
71
private:
78
72
virtual bool Execute (Event& event) override ;
79
-
80
73
virtual bool isUseful () override ;
81
- bool WaitForDestinations ();
82
- bool SetBestDestination (Event& event);
74
+ virtual bool isAllowed () const ;
83
75
};
84
76
85
- class ChooseAsyncNamedTravelTargetAction : public ChooseAsyncTravelTargetAction {
77
+ class RequestNamedTravelTargetAction : public RequestTravelTargetAction {
86
78
public:
87
- ChooseAsyncNamedTravelTargetAction (PlayerbotAI* ai, std::string name = " choose async named travel target" ) : ChooseAsyncTravelTargetAction(ai, name) {}
88
- protected:
79
+ RequestNamedTravelTargetAction (PlayerbotAI* ai, std::string name = " request named travel target" ) : RequestTravelTargetAction(ai, name) {}
80
+ private:
81
+ virtual bool Execute (Event& event) override ;
89
82
virtual bool isAllowed () const override ;
90
- virtual bool RequestNewDestinations (Event& event) override ;
91
- virtual bool isUseful () override { return !AI_VALUE (TravelTarget*, " travel target" )->IsPreparing () &&
92
- ChooseTravelTargetAction::isUseful (); };
93
83
};
94
84
95
- class ChooseAsyncQuestTravelTargetAction : public ChooseAsyncTravelTargetAction {
85
+ class RequestQuestTravelTargetAction : public RequestTravelTargetAction {
96
86
public:
97
- ChooseAsyncQuestTravelTargetAction (PlayerbotAI* ai, std::string name = " choose async quest travel target" ) : ChooseAsyncTravelTargetAction(ai, name) {}
98
- protected:
87
+ RequestQuestTravelTargetAction (PlayerbotAI* ai, std::string name = " choose async quest travel target" ) : RequestTravelTargetAction(ai, name) {}
88
+ private:
89
+ virtual bool Execute (Event& event) override ;
99
90
virtual bool isAllowed () const override ;
100
- virtual bool RequestNewDestinations (Event& event) override ;
101
- virtual bool isUseful () override { return !AI_VALUE (TravelTarget*, " travel target" )->IsPreparing () && ChooseTravelTargetAction::isUseful (); };
102
91
};
103
92
104
93
class FocusTravelTargetAction : public ChatCommandAction {
0 commit comments