mirror of
https://github.com/mod-playerbots/mod-playerbots.git
synced 2026-01-15 18:00:27 +00:00
mage and paladin strategy port
This commit is contained in:
@@ -139,3 +139,27 @@ bool PartyMemberValue::IsTargetOfSpellCast(Player* target, SpellEntryPredicate &
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
class FindMainTankPlayer : public FindPlayerPredicate
|
||||
{
|
||||
public:
|
||||
FindMainTankPlayer(PlayerbotAI* botAI) : botAI(botAI) {}
|
||||
|
||||
virtual bool Check(Unit* unit)
|
||||
{
|
||||
Player* player = unit->ToPlayer();
|
||||
if (!player) {
|
||||
return false;
|
||||
}
|
||||
return botAI->IsMainTank(player);
|
||||
}
|
||||
|
||||
private:
|
||||
PlayerbotAI* botAI;
|
||||
};
|
||||
|
||||
Unit* PartyMemberMainTankValue::Calculate()
|
||||
{
|
||||
FindMainTankPlayer findMainTankPlayer(botAI);
|
||||
return FindPartyMember(findMainTankPlayer);
|
||||
}
|
||||
@@ -35,4 +35,11 @@ class PartyMemberValue : public UnitCalculatedValue
|
||||
virtual bool Check(Unit* player);
|
||||
};
|
||||
|
||||
class PartyMemberMainTankValue : public PartyMemberValue
|
||||
{
|
||||
public:
|
||||
PartyMemberMainTankValue(PlayerbotAI* botAI) : PartyMemberValue(botAI) {}
|
||||
virtual Unit* Calculate();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -285,6 +285,8 @@ class ValueContext : public NamedObjectContext<UntypedValue>
|
||||
creators["RTSC saved location"] = &ValueContext::RTSC_saved_location;
|
||||
|
||||
creators["has area debuff"] = &ValueContext::has_area_debuff;
|
||||
|
||||
creators["main tank"] = &ValueContext::main_tank;
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -475,6 +477,8 @@ class ValueContext : public NamedObjectContext<UntypedValue>
|
||||
static UntypedValue* RTSC_saved_location(PlayerbotAI* botAI) { return new RTSCSavedLocationValue(botAI); }
|
||||
|
||||
static UntypedValue* has_area_debuff(PlayerbotAI* botAI) { return new HasAreaDebuffValue(botAI); }
|
||||
|
||||
static UntypedValue* main_tank(PlayerbotAI* ai) { return new PartyMemberMainTankValue(ai); }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user