mirror of
https://github.com/mod-playerbots/mod-playerbots.git
synced 2026-01-13 09:07:19 +00:00
509 lines
34 KiB
C++
509 lines
34 KiB
C++
/*
|
|
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU GPL v2 license, you may redistribute it and/or modify it under version 2 of the License, or (at your option), any later version.
|
|
*/
|
|
|
|
#ifndef _PLAYERBOT_VALUECONTEXT_H
|
|
#define _PLAYERBOT_VALUECONTEXT_H
|
|
|
|
#include "ActiveSpellValue.h"
|
|
#include "AlwaysLootListValue.h"
|
|
#include "AoeHealValues.h"
|
|
#include "AoeValues.h"
|
|
#include "AttackerCountValues.h"
|
|
#include "AttackersValue.h"
|
|
#include "AttackerWithoutAuraTargetValue.h"
|
|
#include "AvailableLootValue.h"
|
|
#include "BudgetValues.h"
|
|
#include "CcTargetValue.h"
|
|
#include "ChatValue.h"
|
|
#include "CollisionValue.h"
|
|
#include "CraftValue.h"
|
|
#include "CurrentCcTargetValue.h"
|
|
#include "CurrentTargetValue.h"
|
|
#include "DpsTargetValue.h"
|
|
#include "DuelTargetValue.h"
|
|
#include "DistanceValue.h"
|
|
#include "EnemyHealerTargetValue.h"
|
|
#include "EnemyPlayerValue.h"
|
|
#include "ExpectedLifetimeValue.h"
|
|
#include "Formations.h"
|
|
#include "GroupValues.h"
|
|
#include "GrindTargetValue.h"
|
|
#include "GuildValues.h"
|
|
#include "HasAvailableLootValue.h"
|
|
#include "HasTotemValue.h"
|
|
#include "InvalidTargetValue.h"
|
|
#include "ItemUsageValue.h"
|
|
#include "IsBehindValue.h"
|
|
#include "IsFacingValue.h"
|
|
#include "IsMovingValue.h"
|
|
#include "ItemCountValue.h"
|
|
#include "ItemForSpellValue.h"
|
|
#include "LastMovementValue.h"
|
|
#include "LastSaidValue.h"
|
|
#include "LastSpellCastValue.h"
|
|
#include "LastSpellCastTimeValue.h"
|
|
#include "LeastHpTargetValue.h"
|
|
#include "LfgValues.h"
|
|
#include "LineTargetValue.h"
|
|
#include "LogLevelValue.h"
|
|
#include "LootStrategyValue.h"
|
|
#include "MaintenanceValues.h"
|
|
#include "ManaSaveLevelValue.h"
|
|
#include "MasterTargetValue.h"
|
|
#include "NearestAdsValue.h"
|
|
#include "NearestCorpsesValue.h"
|
|
#include "NearestFriendlyPlayersValue.h"
|
|
#include "NearestGameObjects.h"
|
|
#include "NearestNonBotPlayersValue.h"
|
|
#include "NearestNpcsValue.h"
|
|
#include "NewPlayerNearbyValue.h"
|
|
#include "OutfitListValue.h"
|
|
#include "QuestValues.h"
|
|
#include "PartyMemberWithoutAuraValue.h"
|
|
#include "PartyMemberWithoutItemValue.h"
|
|
#include "PartyMemberToDispel.h"
|
|
#include "PartyMemberToHeal.h"
|
|
#include "PartyMemberToResurrect.h"
|
|
#include "PetTargetValue.h"
|
|
#include "PositionValue.h"
|
|
#include "PossibleRpgTargetsValue.h"
|
|
#include "PossibleTargetsValue.h"
|
|
#include "PvpValues.h"
|
|
#include "RandomBotUpdateValue.h"
|
|
#include "RangeValues.h"
|
|
#include "RtiTargetValue.h"
|
|
#include "RtiValue.h"
|
|
#include "RTSCValues.h"
|
|
#include "RpgValues.h"
|
|
#include "SelfTargetValue.h"
|
|
#include "SkipSpellsListValue.h"
|
|
#include "SnareTargetValue.h"
|
|
#include "SpellCastUsefulValue.h"
|
|
#include "SpellIdValue.h"
|
|
#include "Stances.h"
|
|
#include "StatsValues.h"
|
|
#include "TankTargetValue.h"
|
|
#include "ThreatValues.h"
|
|
#include "TradeValues.h"
|
|
#include "Value.h"
|
|
|
|
class PlayerbotAI;
|
|
|
|
class ValueContext : public NamedObjectContext<UntypedValue>
|
|
{
|
|
public:
|
|
ValueContext()
|
|
{
|
|
creators["active spell"] = &ValueContext::active_spell;
|
|
creators["craft"] = &ValueContext::craft;
|
|
creators["collision"] = &ValueContext::collision;
|
|
creators["skip spells list"] = &ValueContext::skip_spells_list_value;
|
|
creators["nearest game objects"] = &ValueContext::nearest_game_objects;
|
|
creators["nearest game objects no los"] = &ValueContext::nearest_game_objects_no_los;
|
|
creators["closest game objects"] = &ValueContext::closest_game_objects;
|
|
creators["nearest npcs"] = &ValueContext::nearest_npcs;
|
|
creators["nearest totems"] = &ValueContext::nearest_totems;
|
|
creators["nearest vehicles"] = &ValueContext::nearest_vehicles;
|
|
creators["nearest friendly players"] = &ValueContext::nearest_friendly_players;
|
|
creators["closest friendly players"] = &ValueContext::closest_friendly_players;
|
|
creators["nearest enemy players"] = &ValueContext::nearest_enemy_players;
|
|
creators["possible targets"] = &ValueContext::possible_targets;
|
|
creators["possible targets no los"] = &ValueContext::possible_targets_no_los;
|
|
creators["possible triggers"] = &ValueContext::possible_triggers;
|
|
creators["possible adds"] = &ValueContext::possible_adds;
|
|
creators["all targets"] = &ValueContext::all_targets;
|
|
creators["possible rpg targets"] = &ValueContext::possible_rpg_targets;
|
|
creators["nearest adds"] = &ValueContext::nearest_adds;
|
|
creators["nearest corpses"] = &ValueContext::nearest_corpses;
|
|
creators["log level"] = &ValueContext::log_level;
|
|
creators["party member without aura"] = &ValueContext::party_member_without_aura;
|
|
creators["attacker without aura"] = &ValueContext::attacker_without_aura;
|
|
creators["melee attacker without aura"] = &ValueContext::melee_attacker_without_aura;
|
|
creators["party member to heal"] = &ValueContext::party_member_to_heal;
|
|
creators["party member to resurrect"] = &ValueContext::party_member_to_resurrect;
|
|
creators["current target"] = &ValueContext::current_target;
|
|
creators["self target"] = &ValueContext::self_target;
|
|
creators["master target"] = &ValueContext::master;
|
|
creators["line target"] = &ValueContext::line_target;
|
|
creators["tank target"] = &ValueContext::tank_target;
|
|
creators["dps target"] = &ValueContext::dps_target;
|
|
creators["dps aoe target"] = &ValueContext::dps_aoe_target;
|
|
creators["least hp target"] = &ValueContext::least_hp_target;
|
|
creators["enemy player target"] = &ValueContext::enemy_player_target;
|
|
creators["cc target"] = &ValueContext::cc_target;
|
|
creators["current cc target"] = &ValueContext::current_cc_target;
|
|
creators["pet target"] = &ValueContext::pet_target;
|
|
creators["old target"] = &ValueContext::old_target;
|
|
creators["grind target"] = &ValueContext::grind_target;
|
|
creators["rti target"] = &ValueContext::rti_target;
|
|
creators["rti cc target"] = &ValueContext::rti_cc_target;
|
|
creators["duel target"] = &ValueContext::duel_target;
|
|
creators["party member to dispel"] = &ValueContext::party_member_to_dispel;
|
|
creators["party member to protect"] = &ValueContext::party_member_to_protect;
|
|
creators["health"] = &ValueContext::health;
|
|
creators["rage"] = &ValueContext::rage;
|
|
creators["energy"] = &ValueContext::energy;
|
|
creators["mana"] = &ValueContext::mana;
|
|
creators["combo"] = &ValueContext::combo;
|
|
creators["dead"] = &ValueContext::dead;
|
|
creators["pet dead"] = &ValueContext::pet_dead;
|
|
creators["pet happy"] = &ValueContext::pet_happy;
|
|
creators["has mana"] = &ValueContext::has_mana;
|
|
creators["attacker count"] = &ValueContext::attacker_count;
|
|
creators["my attacker count"] = &ValueContext::my_attacker_count;
|
|
creators["has aggro"] = &ValueContext::has_aggro;
|
|
creators["mounted"] = &ValueContext::mounted;
|
|
|
|
creators["can loot"] = &ValueContext::can_loot;
|
|
creators["loot target"] = &ValueContext::loot_target;
|
|
creators["available loot"] = &ValueContext::available_loot;
|
|
creators["has available loot"] = &ValueContext::has_available_loot;
|
|
creators["always loot list"] = &ValueContext::always_loot_list;
|
|
creators["loot strategy"] = &ValueContext::loot_strategy;
|
|
creators["last movement"] = &ValueContext::last_movement;
|
|
creators["stay time"] = &ValueContext::stay_time;
|
|
creators["last taxi"] = &ValueContext::last_movement;
|
|
creators["last area trigger"] = &ValueContext::last_movement;
|
|
creators["distance"] = &ValueContext::distance;
|
|
creators["moving"] = &ValueContext::moving;
|
|
creators["swimming"] = &ValueContext::swimming;
|
|
creators["behind"] = &ValueContext::behind;
|
|
creators["facing"] = &ValueContext::facing;
|
|
|
|
creators["item count"] = &ValueContext::item_count;
|
|
creators["inventory items"] = &ValueContext::inventory_item;
|
|
|
|
creators["spell id"] = &ValueContext::spell_id;
|
|
creators["vehicle spell id"] = &ValueContext::vehicle_spell_id;
|
|
creators["item for spell"] = &ValueContext::item_for_spell;
|
|
creators["spell cast useful"] = &ValueContext::spell_cast_useful;
|
|
creators["last spell cast"] = &ValueContext::last_spell_cast;
|
|
creators["last spell cast time"] = &ValueContext::last_spell_cast_time;
|
|
creators["chat"] = &ValueContext::chat;
|
|
creators["has totem"] = &ValueContext::has_totem;
|
|
|
|
creators["aoe heal"] = &ValueContext::aoe_heal;
|
|
|
|
creators["rti cc"] = &ValueContext::rti_cc;
|
|
creators["rti"] = &ValueContext::rti;
|
|
creators["position"] = &ValueContext::position;
|
|
creators["current position"] = &ValueContext::current_position;
|
|
creators["threat"] = &ValueContext::threat;
|
|
|
|
creators["balance"] = &ValueContext::balance;
|
|
creators["attackers"] = &ValueContext::attackers;
|
|
creators["invalid target"] = &ValueContext::invalid_target;
|
|
creators["mana save level"] = &ValueContext::mana_save_level;
|
|
creators["combat"] = &ValueContext::combat;
|
|
creators["lfg proposal"] = &ValueContext::lfg_proposal;
|
|
creators["bag space"] = &ValueContext::bag_space;
|
|
creators["durability"] = &ValueContext::durability;
|
|
creators["max repair cost"] = &ValueContext::max_repair_cost;
|
|
creators["repair cost"] = &ValueContext::repair_cost;
|
|
creators["train cost"] = &ValueContext::train_cost;
|
|
creators["enemy healer target"] = &ValueContext::enemy_healer_target;
|
|
creators["snare target"] = &ValueContext::snare_target;
|
|
creators["formation"] = &ValueContext::formation;
|
|
creators["stance"] = &ValueContext::stance;
|
|
creators["item usage"] = &ValueContext::item_usage;
|
|
creators["speed"] = &ValueContext::speed;
|
|
creators["last said"] = &ValueContext::last_said;
|
|
creators["last emote"] = &ValueContext::last_emote;
|
|
|
|
creators["aoe count"] = &ValueContext::aoe_count;
|
|
creators["aoe position"] = &ValueContext::aoe_position;
|
|
creators["outfit list"] = &ValueContext::outfit_list_value;
|
|
|
|
creators["random bot update"] = &ValueContext::random_bot_update_value;
|
|
creators["nearest non bot players"] = &ValueContext::nearest_non_bot_players;
|
|
creators["new player nearby"] = &ValueContext::new_player_nearby;
|
|
creators["already seen players"] = &ValueContext::already_seen_players;
|
|
creators["rpg target"] = &ValueContext::rpg_target;
|
|
creators["ignore rpg target"] = &ValueContext::ignore_rpg_target;
|
|
creators["next rpg action"] = &ValueContext::next_rpg_action;
|
|
creators["travel target"] = &ValueContext::travel_target;
|
|
creators["talk target"] = &ValueContext::talk_target;
|
|
creators["pull target"] = &ValueContext::pull_target;
|
|
creators["group"] = &ValueContext::group;
|
|
creators["range"] = &ValueContext::range;
|
|
creators["inside target"] = &ValueContext::inside_target;
|
|
creators["party member without item"] = &ValueContext::party_member_without_item;
|
|
creators["party member without food"] = &ValueContext::party_member_without_food;
|
|
creators["party member without water"] = &ValueContext::party_member_without_water;
|
|
creators["death count"] = &ValueContext::death_count;
|
|
|
|
creators["bg type"] = &ValueContext::bg_type;
|
|
creators["rpg bg type"] = &ValueContext::rpg_bg_type;
|
|
creators["arena type"] = &ValueContext::arena_type;
|
|
creators["bg role"] = &ValueContext::bg_role;
|
|
creators["bg master"] = &ValueContext::bg_master;
|
|
creators["enemy flag carrier"] = &ValueContext::enemy_fc;
|
|
creators["team flag carrier"] = &ValueContext::team_fc;
|
|
|
|
creators["home bind"] = &ValueContext::home_bind;
|
|
creators["last long move"] = &ValueContext::last_long_move;
|
|
|
|
creators["free quest log slots"] = &ValueContext::free_quest_log_slots;
|
|
creators["dialog status"] = &ValueContext::dialog_status;
|
|
creators["dialog status quest"] = &ValueContext::dialog_status_quest;
|
|
creators["can accept quest npc"] = &ValueContext::can_accept_quest_npc;
|
|
creators["can accept quest low level npc"] = &ValueContext::can_accept_quest_low_level_npc;
|
|
creators["can turn in quest npc"] = &ValueContext::can_turn_in_quest_npc;
|
|
|
|
creators["money needed for"] = &ValueContext::money_needed_for;
|
|
creators["total money needed for"] = &ValueContext::total_money_needed_for;
|
|
creators["free money for"] = &ValueContext::free_money_for;
|
|
creators["should get money"] = &ValueContext::should_get_money;
|
|
|
|
creators["can move around"] = &ValueContext::can_move_around;
|
|
creators["should home bind"] = &ValueContext::should_home_bind;
|
|
creators["should repair"] = &ValueContext::should_repair;
|
|
creators["can repair"] = &ValueContext::can_repair;
|
|
creators["should sell"] = &ValueContext::should_sell;
|
|
creators["can sell"] = &ValueContext::can_sell;
|
|
creators["can fight equal"] = &ValueContext::can_fight_equal;
|
|
creators["can fight elite"] = &ValueContext::can_fight_elite;
|
|
creators["can fight boss"] = &ValueContext::can_fight_boss;
|
|
|
|
creators["group members"] = &ValueContext::group_members;
|
|
creators["following party"] = &ValueContext::following_party;
|
|
creators["near leader"] = &ValueContext::near_leader;
|
|
|
|
creators["and"] = &ValueContext::and_value;
|
|
creators["group count"] = &ValueContext::group_count;
|
|
creators["group and"] = &ValueContext::group_and;
|
|
creators["group or"] = &ValueContext::group_or;
|
|
creators["group ready"] = &ValueContext::group_ready;
|
|
|
|
creators["petition signs"] = &ValueContext::petition_signs;
|
|
|
|
creators["experience"] = &ValueContext::experience;
|
|
|
|
creators["entry loot usage"] = &ValueContext::entry_loot_usage;
|
|
creators["has upgrade"] = &ValueContext::has_upgrade;
|
|
creators["items useful to give"] = &ValueContext::items_useful_to_give;
|
|
|
|
creators["see spell location"] = &ValueContext::see_spell_location;
|
|
creators["RTSC selected"] = &ValueContext::RTSC_selected;
|
|
creators["RTSC next spell action"] = &ValueContext::RTSC_next_spell_action;
|
|
creators["RTSC saved location"] = &ValueContext::RTSC_saved_location;
|
|
|
|
creators["has area debuff"] = &ValueContext::has_area_debuff;
|
|
|
|
creators["main tank"] = &ValueContext::main_tank;
|
|
creators["find target"] = &ValueContext::find_target;
|
|
creators["boss target"] = &ValueContext::boss_target;
|
|
creators["nearest triggers"] = &ValueContext::nearest_triggers;
|
|
creators["neglect threat"] = &ValueContext::neglect_threat;
|
|
creators["expected lifetime"] = &ValueContext::expected_lifetime;
|
|
creators["expected group dps"] = &ValueContext::expected_group_dps;
|
|
creators["area debuff"] = &ValueContext::area_debuff;
|
|
creators["nearest trap with damage"] = &ValueContext::nearest_trap_with_damange;
|
|
}
|
|
|
|
private:
|
|
static UntypedValue* party_member_without_water(PlayerbotAI* botAI) { return new PartyMemberWithoutWaterValue(botAI); }
|
|
static UntypedValue* party_member_without_food(PlayerbotAI* botAI) { return new PartyMemberWithoutFoodValue(botAI); }
|
|
static UntypedValue* party_member_without_item(PlayerbotAI* botAI) { return new PartyMemberWithoutItemValue(botAI); }
|
|
static UntypedValue* inside_target(PlayerbotAI* botAI) { return new InsideTargetValue(botAI); }
|
|
static UntypedValue* range(PlayerbotAI* botAI) { return new RangeValue(botAI); }
|
|
static UntypedValue* active_spell(PlayerbotAI* botAI) { return new ActiveSpellValue(botAI); }
|
|
static UntypedValue* group(PlayerbotAI* botAI) { return new IsInGroupValue(botAI); }
|
|
static UntypedValue* craft(PlayerbotAI* botAI) { return new CraftValue(botAI); }
|
|
static UntypedValue* collision(PlayerbotAI* botAI) { return new CollisionValue(botAI); }
|
|
static UntypedValue* already_seen_players(PlayerbotAI* botAI) { return new AlreadySeenPlayersValue(botAI); }
|
|
static UntypedValue* new_player_nearby(PlayerbotAI* botAI) { return new NewPlayerNearbyValue(botAI); }
|
|
static UntypedValue* item_usage(PlayerbotAI* botAI) { return new ItemUsageValue(botAI); }
|
|
static UntypedValue* formation(PlayerbotAI* botAI) { return new FormationValue(botAI); }
|
|
static UntypedValue* stance(PlayerbotAI* botAI) { return new StanceValue(botAI); }
|
|
static UntypedValue* mana_save_level(PlayerbotAI* botAI) { return new ManaSaveLevelValue(botAI); }
|
|
static UntypedValue* invalid_target(PlayerbotAI* botAI) { return new InvalidTargetValue(botAI); }
|
|
static UntypedValue* balance(PlayerbotAI* botAI) { return new BalancePercentValue(botAI); }
|
|
static UntypedValue* attackers(PlayerbotAI* botAI) { return new AttackersValue(botAI); }
|
|
|
|
static UntypedValue* position(PlayerbotAI* botAI) { return new PositionValue(botAI); }
|
|
static UntypedValue* current_position(PlayerbotAI* botAI) { return new CurrentPositionValue(botAI); }
|
|
static UntypedValue* rti(PlayerbotAI* botAI) { return new RtiValue(botAI); }
|
|
static UntypedValue* rti_cc(PlayerbotAI* botAI) { return new RtiCcValue(botAI); }
|
|
|
|
static UntypedValue* aoe_heal(PlayerbotAI* botAI) { return new AoeHealValue(botAI); }
|
|
|
|
static UntypedValue* chat(PlayerbotAI* botAI) { return new ChatValue(botAI); }
|
|
static UntypedValue* last_spell_cast(PlayerbotAI* botAI) { return new LastSpellCastValue(botAI); }
|
|
static UntypedValue* last_spell_cast_time(PlayerbotAI* botAI) { return new LastSpellCastTimeValue(botAI); }
|
|
static UntypedValue* spell_cast_useful(PlayerbotAI* botAI) { return new SpellCastUsefulValue(botAI); }
|
|
static UntypedValue* item_for_spell(PlayerbotAI* botAI) { return new ItemForSpellValue(botAI); }
|
|
static UntypedValue* spell_id(PlayerbotAI* botAI) { return new SpellIdValue(botAI); }
|
|
static UntypedValue* vehicle_spell_id(PlayerbotAI* botAI) { return new VehicleSpellIdValue(botAI); }
|
|
static UntypedValue* inventory_item(PlayerbotAI* botAI) { return new InventoryItemValue(botAI); }
|
|
static UntypedValue* item_count(PlayerbotAI* botAI) { return new ItemCountValue(botAI); }
|
|
static UntypedValue* behind(PlayerbotAI* botAI) { return new IsBehindValue(botAI); }
|
|
static UntypedValue* facing(PlayerbotAI* botAI) { return new IsFacingValue(botAI); }
|
|
static UntypedValue* moving(PlayerbotAI* botAI) { return new IsMovingValue(botAI); }
|
|
static UntypedValue* swimming(PlayerbotAI* botAI) { return new IsSwimmingValue(botAI); }
|
|
static UntypedValue* distance(PlayerbotAI* botAI) { return new DistanceValue(botAI); }
|
|
static UntypedValue* last_movement(PlayerbotAI* botAI) { return new LastMovementValue(botAI); }
|
|
static UntypedValue* stay_time(PlayerbotAI* botAI) { return new StayTimeValue(botAI); }
|
|
|
|
static UntypedValue* can_loot(PlayerbotAI* botAI) { return new CanLootValue(botAI); }
|
|
static UntypedValue* available_loot(PlayerbotAI* botAI) { return new AvailableLootValue(botAI); }
|
|
static UntypedValue* loot_target(PlayerbotAI* botAI) { return new LootTargetValue(botAI); }
|
|
static UntypedValue* has_available_loot(PlayerbotAI* botAI) { return new HasAvailableLootValue(botAI); }
|
|
static UntypedValue* always_loot_list(PlayerbotAI* botAI) { return new AlwaysLootListValue(botAI); }
|
|
static UntypedValue* loot_strategy(PlayerbotAI* botAI) { return new LootStrategyValue(botAI); }
|
|
|
|
static UntypedValue* attacker_count(PlayerbotAI* botAI) { return new AttackerCountValue(botAI); }
|
|
static UntypedValue* my_attacker_count(PlayerbotAI* botAI) { return new MyAttackerCountValue(botAI); }
|
|
static UntypedValue* has_aggro(PlayerbotAI* botAI) { return new HasAggroValue(botAI); }
|
|
static UntypedValue* mounted(PlayerbotAI* botAI) { return new IsMountedValue(botAI); }
|
|
static UntypedValue* health(PlayerbotAI* botAI) { return new HealthValue(botAI); }
|
|
static UntypedValue* rage(PlayerbotAI* botAI) { return new RageValue(botAI); }
|
|
static UntypedValue* energy(PlayerbotAI* botAI) { return new EnergyValue(botAI); }
|
|
static UntypedValue* mana(PlayerbotAI* botAI) { return new ManaValue(botAI); }
|
|
static UntypedValue* combo(PlayerbotAI* botAI) { return new ComboPointsValue(botAI); }
|
|
static UntypedValue* dead(PlayerbotAI* botAI) { return new IsDeadValue(botAI); }
|
|
static UntypedValue* pet_happy(PlayerbotAI* botAI) { return new PetIsHappyValue(botAI); }
|
|
static UntypedValue* pet_dead(PlayerbotAI* botAI) { return new PetIsDeadValue(botAI); }
|
|
static UntypedValue* has_mana(PlayerbotAI* botAI) { return new HasManaValue(botAI); }
|
|
static UntypedValue* nearest_game_objects(PlayerbotAI* botAI) { return new NearestGameObjects(botAI); }
|
|
static UntypedValue* nearest_game_objects_no_los(PlayerbotAI* botAI) { return new NearestGameObjects(botAI, sPlayerbotAIConfig->sightDistance, true); }
|
|
static UntypedValue* closest_game_objects(PlayerbotAI* botAI) { return new NearestGameObjects(botAI, INTERACTION_DISTANCE); }
|
|
static UntypedValue* log_level(PlayerbotAI* botAI) { return new LogLevelValue(botAI); }
|
|
static UntypedValue* nearest_npcs(PlayerbotAI* botAI) { return new NearestNpcsValue(botAI); }
|
|
static UntypedValue* nearest_totems(PlayerbotAI* botAI) { return new NearestTotemsValue(botAI); }
|
|
static UntypedValue* nearest_vehicles(PlayerbotAI* botAI) { return new NearestVehiclesValue(botAI); }
|
|
static UntypedValue* nearest_friendly_players(PlayerbotAI* botAI) { return new NearestFriendlyPlayersValue(botAI); }
|
|
static UntypedValue* closest_friendly_players(PlayerbotAI* botAI) { return new NearestFriendlyPlayersValue(botAI, INTERACTION_DISTANCE); }
|
|
static UntypedValue* nearest_enemy_players(PlayerbotAI* botAI) { return new NearestEnemyPlayersValue(botAI); }
|
|
static UntypedValue* nearest_corpses(PlayerbotAI* botAI) { return new NearestCorpsesValue(botAI); }
|
|
static UntypedValue* possible_rpg_targets(PlayerbotAI* botAI) { return new PossibleRpgTargetsValue(botAI); }
|
|
static UntypedValue* possible_targets(PlayerbotAI* botAI) { return new PossibleTargetsValue(botAI); }
|
|
static UntypedValue* possible_triggers(PlayerbotAI* botAI) { return new PossibleTriggersValue(botAI); }
|
|
static UntypedValue* possible_targets_no_los(PlayerbotAI* botAI) { return new PossibleTargetsValue(botAI, "possible targets", sPlayerbotAIConfig->sightDistance, true); }
|
|
static UntypedValue* possible_adds(PlayerbotAI* botAI) { return new PossibleAddsValue(botAI); }
|
|
static UntypedValue* all_targets(PlayerbotAI* botAI) { return new AllTargetsValue(botAI); }
|
|
static UntypedValue* nearest_adds(PlayerbotAI* botAI) { return new NearestAddsValue(botAI); }
|
|
static UntypedValue* party_member_without_aura(PlayerbotAI* botAI) { return new PartyMemberWithoutAuraValue(botAI); }
|
|
static UntypedValue* attacker_without_aura(PlayerbotAI* botAI) { return new AttackerWithoutAuraTargetValue(botAI); }
|
|
static UntypedValue* melee_attacker_without_aura(PlayerbotAI* botAI) { return new MeleeAttackerWithoutAuraTargetValue(botAI); }
|
|
static UntypedValue* party_member_to_heal(PlayerbotAI* botAI) { return new PartyMemberToHeal(botAI); }
|
|
static UntypedValue* party_member_to_resurrect(PlayerbotAI* botAI) { return new PartyMemberToResurrect(botAI); }
|
|
static UntypedValue* party_member_to_dispel(PlayerbotAI* botAI) { return new PartyMemberToDispel(botAI); }
|
|
static UntypedValue* party_member_to_protect(PlayerbotAI* botAI) { return new PartyMemberToProtect(botAI); }
|
|
static UntypedValue* current_target(PlayerbotAI* botAI) { return new CurrentTargetValue(botAI); }
|
|
static UntypedValue* old_target(PlayerbotAI* botAI) { return new CurrentTargetValue(botAI); }
|
|
static UntypedValue* self_target(PlayerbotAI* botAI) { return new SelfTargetValue(botAI); }
|
|
static UntypedValue* master(PlayerbotAI* botAI) { return new MasterTargetValue(botAI); }
|
|
static UntypedValue* line_target(PlayerbotAI* botAI) { return new LineTargetValue(botAI); }
|
|
static UntypedValue* tank_target(PlayerbotAI* botAI) { return new TankTargetValue(botAI); }
|
|
static UntypedValue* dps_target(PlayerbotAI* botAI) { return new DpsTargetValue(botAI); }
|
|
static UntypedValue* dps_aoe_target(PlayerbotAI* botAI) { return new DpsAoeTargetValue(botAI); }
|
|
static UntypedValue* least_hp_target(PlayerbotAI* botAI) { return new LeastHpTargetValue(botAI); }
|
|
static UntypedValue* enemy_player_target(PlayerbotAI* botAI) { return new EnemyPlayerValue(botAI); }
|
|
static UntypedValue* cc_target(PlayerbotAI* botAI) { return new CcTargetValue(botAI); }
|
|
static UntypedValue* current_cc_target(PlayerbotAI* botAI) { return new CurrentCcTargetValue(botAI); }
|
|
static UntypedValue* pet_target(PlayerbotAI* botAI) { return new PetTargetValue(botAI); }
|
|
static UntypedValue* grind_target(PlayerbotAI* botAI) { return new GrindTargetValue(botAI); }
|
|
static UntypedValue* rti_target(PlayerbotAI* botAI) { return new RtiTargetValue(botAI); }
|
|
static UntypedValue* rti_cc_target(PlayerbotAI* botAI) { return new RtiCcTargetValue(botAI); }
|
|
static UntypedValue* duel_target(PlayerbotAI* botAI) { return new DuelTargetValue(botAI); }
|
|
static UntypedValue* has_totem(PlayerbotAI* botAI) { return new HasTotemValue(botAI); }
|
|
static UntypedValue* threat(PlayerbotAI* botAI) { return new ThreatValue(botAI); }
|
|
static UntypedValue* combat(PlayerbotAI* botAI) { return new IsInCombatValue(botAI); }
|
|
static UntypedValue* lfg_proposal(PlayerbotAI* botAI) { return new LfgProposalValue(botAI); }
|
|
static UntypedValue* bag_space(PlayerbotAI* botAI) { return new BagSpaceValue(botAI); }
|
|
static UntypedValue* durability(PlayerbotAI* botAI) { return new DurabilityValue(botAI); }
|
|
static UntypedValue* max_repair_cost(PlayerbotAI* botAI) { return new MaxGearRepairCostValue(botAI); }
|
|
static UntypedValue* repair_cost(PlayerbotAI* botAI) { return new RepairCostValue(botAI); }
|
|
static UntypedValue* train_cost(PlayerbotAI* botAI) { return new TrainCostValue(botAI); }
|
|
static UntypedValue* enemy_healer_target(PlayerbotAI* botAI) { return new EnemyHealerTargetValue(botAI); }
|
|
static UntypedValue* snare_target(PlayerbotAI* botAI) { return new SnareTargetValue(botAI); }
|
|
static UntypedValue* speed(PlayerbotAI* botAI) { return new SpeedValue(botAI); }
|
|
static UntypedValue* last_said(PlayerbotAI* botAI) { return new LastSaidValue(botAI); }
|
|
static UntypedValue* last_emote(PlayerbotAI* botAI) { return new LastEmoteValue(botAI); }
|
|
static UntypedValue* aoe_count(PlayerbotAI* botAI) { return new AoeCountValue(botAI); }
|
|
static UntypedValue* aoe_position(PlayerbotAI* botAI) { return new AoePositionValue(botAI); }
|
|
static UntypedValue* outfit_list_value(PlayerbotAI* botAI) { return new OutfitListValue(botAI); }
|
|
static UntypedValue* random_bot_update_value(PlayerbotAI* botAI) { return new RandomBotUpdateValue(botAI); }
|
|
static UntypedValue* nearest_non_bot_players(PlayerbotAI* botAI) { return new NearestNonBotPlayersValue(botAI); }
|
|
static UntypedValue* skip_spells_list_value(PlayerbotAI* botAI) { return new SkipSpellsListValue(botAI); }
|
|
static UntypedValue* rpg_target(PlayerbotAI* botAI) { return new RpgTargetValue(botAI); }
|
|
static UntypedValue* ignore_rpg_target(PlayerbotAI* botAI) { return new IgnoreRpgTargetValue(botAI); }
|
|
static UntypedValue* talk_target(PlayerbotAI* botAI) { return new TalkTargetValue(botAI); }
|
|
static UntypedValue* next_rpg_action(PlayerbotAI* botAI) { return new NextRpgActionValue(botAI); }
|
|
static UntypedValue* travel_target(PlayerbotAI* botAI) { return new TravelTargetValue(botAI); }
|
|
static UntypedValue* pull_target(PlayerbotAI* botAI) { return new PullTargetValue(botAI); }
|
|
|
|
static UntypedValue* bg_master(PlayerbotAI* botAI) { return new BgMasterValue(botAI); }
|
|
static UntypedValue* bg_role(PlayerbotAI* botAI) { return new BgRoleValue(botAI); }
|
|
static UntypedValue* arena_type(PlayerbotAI* botAI) { return new ArenaTypeValue(botAI); }
|
|
static UntypedValue* bg_type(PlayerbotAI* botAI) { return new BgTypeValue(botAI); }
|
|
static UntypedValue* rpg_bg_type(PlayerbotAI* botAI) { return new RpgBgTypeValue(botAI); }
|
|
static UntypedValue* team_fc(PlayerbotAI* botAI) { return new FlagCarrierValue(botAI, true, true); }
|
|
static UntypedValue* enemy_fc(PlayerbotAI* botAI) { return new FlagCarrierValue(botAI, false, true); }
|
|
|
|
static UntypedValue* last_long_move(PlayerbotAI* botAI) { return new LastLongMoveValue(botAI); }
|
|
static UntypedValue* home_bind(PlayerbotAI* botAI) { return new HomeBindValue(botAI); }
|
|
|
|
static UntypedValue* free_quest_log_slots(PlayerbotAI* botAI) { return new FreeQuestLogSlotValue(botAI); }
|
|
static UntypedValue* dialog_status(PlayerbotAI* botAI) { return new DialogStatusValue(botAI); }
|
|
static UntypedValue* dialog_status_quest(PlayerbotAI* botAI) { return new DialogStatusQuestValue(botAI); }
|
|
static UntypedValue* can_accept_quest_npc(PlayerbotAI* botAI) { return new CanAcceptQuestValue(botAI); }
|
|
static UntypedValue* can_accept_quest_low_level_npc(PlayerbotAI* botAI) { return new CanAcceptQuestLowLevelValue(botAI); }
|
|
static UntypedValue* can_turn_in_quest_npc(PlayerbotAI* botAI) { return new CanTurnInQuestValue(botAI); }
|
|
|
|
static UntypedValue* money_needed_for(PlayerbotAI* botAI) { return new MoneyNeededForValue(botAI); }
|
|
static UntypedValue* total_money_needed_for(PlayerbotAI* botAI) { return new TotalMoneyNeededForValue(botAI); }
|
|
static UntypedValue* free_money_for(PlayerbotAI* botAI) { return new FreeMoneyForValue(botAI); }
|
|
static UntypedValue* should_get_money(PlayerbotAI* botAI) { return new ShouldGetMoneyValue(botAI); }
|
|
|
|
static UntypedValue* can_move_around(PlayerbotAI* botAI) { return new CanMoveAroundValue(botAI); }
|
|
static UntypedValue* should_home_bind(PlayerbotAI* botAI) { return new ShouldHomeBindValue(botAI); }
|
|
static UntypedValue* should_repair(PlayerbotAI* botAI) { return new ShouldRepairValue(botAI); }
|
|
static UntypedValue* can_repair(PlayerbotAI* botAI) { return new CanRepairValue(botAI); }
|
|
static UntypedValue* should_sell(PlayerbotAI* botAI) { return new ShouldSellValue(botAI); }
|
|
static UntypedValue* can_sell(PlayerbotAI* botAI) { return new CanSellValue(botAI); }
|
|
static UntypedValue* can_fight_equal(PlayerbotAI* botAI) { return new CanFightEqualValue(botAI); }
|
|
static UntypedValue* can_fight_elite(PlayerbotAI* botAI) { return new CanFightEliteValue(botAI); }
|
|
static UntypedValue* can_fight_boss(PlayerbotAI* botAI) { return new CanFightBossValue(botAI); }
|
|
|
|
static UntypedValue* death_count(PlayerbotAI* botAI) { return new DeathCountValue(botAI); }
|
|
|
|
static UntypedValue* group_members(PlayerbotAI* botAI) { return new GroupMembersValue(botAI); }
|
|
static UntypedValue* following_party(PlayerbotAI* botAI) { return new IsFollowingPartyValue(botAI); }
|
|
static UntypedValue* near_leader(PlayerbotAI* botAI) { return new IsNearLeaderValue(botAI); }
|
|
static UntypedValue* and_value(PlayerbotAI* botAI) { return new BoolANDValue(botAI); }
|
|
static UntypedValue* group_count(PlayerbotAI* botAI) { return new GroupBoolCountValue(botAI); }
|
|
static UntypedValue* group_and(PlayerbotAI* botAI) { return new GroupBoolANDValue(botAI); }
|
|
static UntypedValue* group_or(PlayerbotAI* botAI) { return new GroupBoolORValue(botAI); }
|
|
static UntypedValue* group_ready(PlayerbotAI* botAI) { return new GroupReadyValue(botAI); }
|
|
|
|
static UntypedValue* petition_signs(PlayerbotAI* botAI) { return new PetitionSignsValue(botAI); }
|
|
|
|
static UntypedValue* experience(PlayerbotAI* botAI) { return new ExperienceValue(botAI); }
|
|
|
|
static UntypedValue* entry_loot_usage(PlayerbotAI* botAI) { return new EntryLootUsageValue(botAI); }
|
|
static UntypedValue* has_upgrade(PlayerbotAI* botAI) { return new HasUpgradeValue(botAI); }
|
|
static UntypedValue* items_useful_to_give(PlayerbotAI* botAI) { return new ItemsUsefulToGiveValue(botAI); }
|
|
|
|
static UntypedValue* see_spell_location(PlayerbotAI* botAI) { return new SeeSpellLocationValue(botAI); }
|
|
static UntypedValue* RTSC_selected(PlayerbotAI* botAI) { return new RTSCSelectedValue(botAI); }
|
|
static UntypedValue* RTSC_next_spell_action(PlayerbotAI* botAI) { return new RTSCNextSpellActionValue(botAI); }
|
|
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); }
|
|
static UntypedValue* find_target(PlayerbotAI* ai) { return new FindTargetValue(ai); }
|
|
static UntypedValue* boss_target(PlayerbotAI* ai) { return new BossTargetValue(ai); }
|
|
static UntypedValue* nearest_triggers(PlayerbotAI* ai) { return new NearestTriggersValue(ai); }
|
|
static UntypedValue* neglect_threat(PlayerbotAI* ai) { return new NeglectThreatResetValue(ai); }
|
|
static UntypedValue* expected_lifetime(PlayerbotAI* ai) { return new ExpectedLifetimeValue(ai); }
|
|
static UntypedValue* expected_group_dps(PlayerbotAI* ai) { return new ExpectedGroupDpsValue(ai); }
|
|
static UntypedValue* area_debuff(PlayerbotAI* ai) { return new AreaDebuffValue(ai); }
|
|
static UntypedValue* nearest_trap_with_damange(PlayerbotAI* ai) { return new NearestTrapWithDamageValue(ai); }
|
|
};
|
|
|
|
#endif
|