/* * Copyright (C) 2016+ AzerothCore , 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_ACTIONCONTEXT_H #define _PLAYERBOT_ACTIONCONTEXT_H #include "AddLootAction.h" #include "AttackAction.h" #include "ShareQuestAction.h" #include "BattleGroundTactics.h" #include "AutoMaintenanceOnLevelupAction.h" #include "BattleGroundJoinAction.h" #include "BattleGroundTactics.h" #include "BuyAction.h" #include "CastCustomSpellAction.h" #include "ChangeStrategyAction.h" #include "ChangeTalentsAction.h" #include "CheckMailAction.h" #include "CheckValuesAction.h" #include "ChooseRpgTargetAction.h" #include "ChooseTargetActions.h" #include "ChooseTravelTargetAction.h" #include "CombatActions.h" #include "DelayAction.h" #include "DestroyItemAction.h" #include "EmoteAction.h" #include "FollowActions.h" #include "GenericActions.h" #include "GenericSpellActions.h" #include "GiveItemAction.h" #include "GreetAction.h" #include "GuildAcceptAction.h" #include "GuildCreateActions.h" #include "GuildManagementActions.h" #include "ImbueAction.h" #include "InviteToGroupAction.h" #include "LeaveGroupAction.h" #include "LootAction.h" #include "LootRollAction.h" #include "MoveToRpgTargetAction.h" #include "MoveToTravelTargetAction.h" #include "MovementActions.h" #include "NonCombatActions.h" #include "OutfitAction.h" #include "PositionAction.h" #include "DropQuestAction.h" #include "RaidNaxxActions.h" #include "RandomBotUpdateAction.h" #include "ReachTargetActions.h" #include "ReleaseSpiritAction.h" #include "RemoveAuraAction.h" #include "ResetInstancesAction.h" #include "RevealGatheringItemAction.h" #include "RpgAction.h" #include "RpgSubActions.h" #include "RtiAction.h" #include "SayAction.h" #include "StayActions.h" #include "SuggestWhatToDoAction.h" #include "TravelAction.h" #include "VehicleActions.h" #include "WorldBuffAction.h" #include "XpGainAction.h" #include "NewRpgAction.h" #include "CancelChannelAction.h" class PlayerbotAI; class ActionContext : public NamedObjectContext { public: ActionContext() { creators["mark rti"] = &ActionContext::mark_rti; creators["set return position"] = &ActionContext::set_return_position; creators["rpg"] = &ActionContext::rpg; creators["crpg"] = &ActionContext::crpg; creators["choose rpg target"] = &ActionContext::choose_rpg_target; creators["move to rpg target"] = &ActionContext::move_to_rpg_target; creators["travel"] = &ActionContext::travel; creators["choose travel target"] = &ActionContext::choose_travel_target; creators["move to travel target"] = &ActionContext::move_to_travel_target; creators["move out of collision"] = &ActionContext::move_out_of_collision; creators["move random"] = &ActionContext::move_random; creators["attack"] = &ActionContext::melee; creators["melee"] = &ActionContext::melee; creators["switch to melee"] = &ActionContext::switch_to_melee; creators["switch to ranged"] = &ActionContext::switch_to_ranged; creators["reach spell"] = &ActionContext::ReachSpell; creators["reach melee"] = &ActionContext::ReachMelee; creators["reach party member to heal"] = &ActionContext::reach_party_member_to_heal; creators["reach party member to resurrect"] = &ActionContext::reach_party_member_to_resurrect; creators["flee"] = &ActionContext::flee; creators["flee with pet"] = &ActionContext::flee_with_pet; creators["avoid aoe"] = &ActionContext::avoid_aoe; creators["combat formation move"] = &ActionContext::combat_formation_move; creators["tank face"] = &ActionContext::tank_face; creators["rear flank"] = &ActionContext::rear_flank; creators["disperse set"] = &ActionContext::disperse_set; creators["gift of the naaru"] = &ActionContext::gift_of_the_naaru; creators["shoot"] = &ActionContext::shoot; creators["lifeblood"] = &ActionContext::lifeblood; creators["arcane torrent"] = &ActionContext::arcane_torrent; creators["end pull"] = &ActionContext::end_pull; creators["healthstone"] = &ActionContext::healthstone; creators["healing potion"] = &ActionContext::healing_potion; creators["mana potion"] = &ActionContext::mana_potion; creators["food"] = &ActionContext::food; creators["drink"] = &ActionContext::drink; creators["tank assist"] = &ActionContext::tank_assist; creators["dps assist"] = &ActionContext::dps_assist; creators["dps aoe"] = &ActionContext::dps_aoe; creators["attack rti target"] = &ActionContext::attack_rti_target; creators["loot"] = &ActionContext::loot; creators["add loot"] = &ActionContext::add_loot; creators["add gathering loot"] = &ActionContext::add_gathering_loot; creators["add all loot"] = &ActionContext::add_all_loot; creators["release loot"] = &ActionContext::release_loot; creators["shoot"] = &ActionContext::shoot; creators["follow"] = &ActionContext::follow; creators["move from group"] = &ActionContext::move_from_group; creators["flee to master"] = &ActionContext::flee_to_master; creators["runaway"] = &ActionContext::runaway; creators["stay"] = &ActionContext::stay; creators["sit"] = &ActionContext::sit; creators["attack anything"] = &ActionContext::attack_anything; creators["attack least hp target"] = &ActionContext::attack_least_hp_target; creators["attack enemy player"] = &ActionContext::attack_enemy_player; creators["emote"] = &ActionContext::emote; creators["talk"] = &ActionContext::talk; creators["suggest what to do"] = &ActionContext::suggest_what_to_do; creators["suggest trade"] = &ActionContext::suggest_trade; creators["suggest dungeon"] = &ActionContext::suggest_dungeon; creators["return"] = &ActionContext::_return; creators["move to loot"] = &ActionContext::move_to_loot; creators["open loot"] = &ActionContext::open_loot; creators["guard"] = &ActionContext::guard; creators["return to stay position"] = &ActionContext::return_to_stay_position; creators["move out of enemy contact"] = &ActionContext::move_out_of_enemy_contact; creators["set facing"] = &ActionContext::set_facing; creators["set behind"] = &ActionContext::set_behind; creators["attack duel opponent"] = &ActionContext::attack_duel_opponent; creators["drop target"] = &ActionContext::drop_target; creators["check mail"] = &ActionContext::check_mail; creators["say"] = &ActionContext::say; creators["reveal gathering item"] = &ActionContext::reveal_gathering_item; creators["outfit"] = &ActionContext::outfit; creators["random bot update"] = &ActionContext::random_bot_update; creators["delay"] = &ActionContext::delay; creators["greet"] = &ActionContext::greet; creators["check values"] = &ActionContext::check_values; creators["ra"] = &ActionContext::ra; creators["apply poison"] = &ActionContext::apply_poison; creators["apply stone"] = &ActionContext::apply_stone; creators["apply oil"] = &ActionContext::apply_oil; creators["try emergency"] = &ActionContext::try_emergency; creators["give food"] = &ActionContext::give_food; creators["give water"] = &ActionContext::give_water; creators["mount"] = &ActionContext::mount; creators["war stomp"] = &ActionContext::war_stomp; creators["blood fury"] = &ActionContext::blood_fury; creators["berserking"] = &ActionContext::berserking; creators["use trinket"] = &ActionContext::use_trinket; creators["auto talents"] = &ActionContext::auto_talents; creators["auto share quest"] = &ActionContext::auto_share_quest; creators["auto maintenance on levelup"] = &ActionContext::auto_maintenance_on_levelup; creators["xp gain"] = &ActionContext::xp_gain; creators["invite nearby"] = &ActionContext::invite_nearby; creators["invite guild"] = &ActionContext::invite_guild; creators["leave far away"] = &ActionContext::leave_far_away; creators["move to dark portal"] = &ActionContext::move_to_dark_portal; creators["move from dark portal"] = &ActionContext::move_from_dark_portal; creators["use dark portal azeroth"] = &ActionContext::use_dark_portal_azeroth; creators["world buff"] = &ActionContext::world_buff; creators["hearthstone"] = &ActionContext::hearthstone; creators["cast random spell"] = &ActionContext::cast_random_spell; creators["free bg join"] = &ActionContext::free_bg_join; creators["use random recipe"] = &ActionContext::use_random_recipe; creators["use random quest item"] = &ActionContext::use_random_quest_item; creators["craft random item"] = &ActionContext::craft_random_item; creators["smart destroy item"] = &ActionContext::smart_destroy_item; creators["disenchant random item"] = &ActionContext::disenchant_random_item; creators["enchant random item"] = &ActionContext::enchant_random_item; creators["reset instances"] = &ActionContext::reset_instances; creators["buy petition"] = &ActionContext::buy_petition; creators["offer petition"] = &ActionContext::offer_petition; creators["offer petition nearby"] = &ActionContext::offer_petition_nearby; creators["turn in petition"] = &ActionContext::turn_in_petition; creators["buy tabard"] = &ActionContext::buy_tabard; creators["guild manage nearby"] = &ActionContext::guild_manage_nearby; creators["clean quest log"] = &ActionContext::clean_quest_log; creators["roll"] = &ActionContext::roll_action; creators["cancel channel"] = &ActionContext::cancel_channel; // BG Tactics creators["bg tactics"] = &ActionContext::bg_tactics; creators["bg move to start"] = &ActionContext::bg_move_to_start; creators["bg reset objective force"] = &ActionContext::bg_reset_objective_force; creators["bg move to objective"] = &ActionContext::bg_move_to_objective; creators["bg select objective"] = &ActionContext::bg_select_objective; creators["bg check objective"] = &ActionContext::bg_check_objective; creators["bg attack fc"] = &ActionContext::bg_attack_fc; creators["bg protect fc"] = &ActionContext::bg_protect_fc; creators["bg use buff"] = &ActionContext::bg_use_buff; creators["attack enemy flag carrier"] = &ActionContext::attack_enemy_fc; creators["bg check flag"] = &ActionContext::bg_check_flag; // Vehicles creators["enter vehicle"] = &ActionContext::enter_vehicle; creators["leave vehicle"] = &ActionContext::leave_vehicle; creators["hurl boulder"] = &ActionContext::hurl_boulder; creators["ram"] = &ActionContext::ram; creators["steam rush"] = &ActionContext::steam_rush; creators["steam blast"] = &ActionContext::steam_blast; creators["napalm"] = &ActionContext::napalm; creators["fire cannon"] = &ActionContext::fire_cannon; creators["incendiary rocket"] = &ActionContext::incendiary_rocket; creators["rocket blast"] = &ActionContext::rocket_blast; creators["blade salvo"] = &ActionContext::blade_salvo; creators["glaive throw"] = &ActionContext::glaive_throw; //Rpg creators["rpg stay"] = &ActionContext::rpg_stay; creators["rpg work"] = &ActionContext::rpg_work; creators["rpg emote"] = &ActionContext::rpg_emote; creators["rpg cancel"] = &ActionContext::rpg_cancel; creators["rpg taxi"] = &ActionContext::rpg_taxi; creators["rpg discover"] = &ActionContext::rpg_discover; creators["rpg start quest"] = &ActionContext::rpg_start_quest; creators["rpg end quest"] = &ActionContext::rpg_end_quest; creators["rpg buy"] = &ActionContext::rpg_buy; creators["rpg sell"] = &ActionContext::rpg_sell; creators["rpg repair"] = &ActionContext::rpg_repair; creators["rpg train"] = &ActionContext::rpg_train; creators["rpg heal"] = &ActionContext::rpg_heal; creators["rpg home bind"] = &ActionContext::rpg_home_bind; creators["rpg queue bg"] = &ActionContext::rpg_queue_bg; creators["rpg buy petition"] = &ActionContext::rpg_buy_petition; creators["rpg use"] = &ActionContext::rpg_use; creators["rpg spell"] = &ActionContext::rpg_spell; creators["rpg craft"] = &ActionContext::rpg_craft; creators["rpg trade useful"] = &ActionContext::rpg_trade_useful; creators["rpg duel"] = &ActionContext::rpg_duel; creators["rpg mount anim"] = &ActionContext::rpg_mount_anim; creators["toggle pet spell"] = &ActionContext::toggle_pet_spell; creators["pet attack"] = &ActionContext::pet_attack; creators["set pet stance"] = &ActionContext::set_pet_stance; creators["new rpg status update"] = &ActionContext::new_rpg_status_update; creators["new rpg go grind"] = &ActionContext::new_rpg_go_grind; creators["new rpg go camp"] = &ActionContext::new_rpg_go_camp; creators["new rpg wander random"] = &ActionContext::new_rpg_wander_random; creators["new rpg wander npc"] = &ActionContext::new_rpg_wander_npc; creators["new rpg do quest"] = &ActionContext::new_rpg_do_quest; creators["new rpg travel flight"] = &ActionContext::new_rpg_travel_flight; } private: static Action* give_water(PlayerbotAI* botAI) { return new GiveWaterAction(botAI); } static Action* give_food(PlayerbotAI* botAI) { return new GiveFoodAction(botAI); } static Action* ra(PlayerbotAI* botAI) { return new RemoveAuraAction(botAI); } static Action* mark_rti(PlayerbotAI* botAI) { return new MarkRtiAction(botAI); } static Action* set_return_position(PlayerbotAI* botAI) { return new SetReturnPositionAction(botAI); } static Action* rpg(PlayerbotAI* botAI) { return new RpgAction(botAI); } static Action* crpg(PlayerbotAI* botAI) { return new CRpgAction(botAI); } static Action* choose_rpg_target(PlayerbotAI* botAI) { return new ChooseRpgTargetAction(botAI); } static Action* move_to_rpg_target(PlayerbotAI* botAI) { return new MoveToRpgTargetAction(botAI); } static Action* travel(PlayerbotAI* botAI) { return new TravelAction(botAI); } static Action* choose_travel_target(PlayerbotAI* botAI) { return new ChooseTravelTargetAction(botAI); } static Action* move_to_travel_target(PlayerbotAI* botAI) { return new MoveToTravelTargetAction(botAI); } static Action* move_out_of_collision(PlayerbotAI* botAI) { return new MoveOutOfCollisionAction(botAI); } static Action* move_random(PlayerbotAI* botAI) { return new MoveRandomAction(botAI); } static Action* check_values(PlayerbotAI* botAI) { return new CheckValuesAction(botAI); } static Action* greet(PlayerbotAI* botAI) { return new GreetAction(botAI); } static Action* check_mail(PlayerbotAI* botAI) { return new CheckMailAction(botAI); } static Action* drop_target(PlayerbotAI* botAI) { return new DropTargetAction(botAI); } static Action* attack_duel_opponent(PlayerbotAI* botAI) { return new AttackDuelOpponentAction(botAI); } static Action* guard(PlayerbotAI* botAI) { return new GuardAction(botAI); } static Action* return_to_stay_position(PlayerbotAI* botAI) { return new ReturnToStayPositionAction(botAI); } static Action* open_loot(PlayerbotAI* botAI) { return new OpenLootAction(botAI); } static Action* move_to_loot(PlayerbotAI* botAI) { return new MoveToLootAction(botAI); } static Action* _return(PlayerbotAI* botAI) { return new ReturnAction(botAI); } static Action* shoot(PlayerbotAI* botAI) { return new CastShootAction(botAI); } static Action* melee(PlayerbotAI* botAI) { return new MeleeAction(botAI); } static Action* switch_to_melee(PlayerbotAI* botAI) { return new SwitchToMeleeAction(botAI); } static Action* switch_to_ranged(PlayerbotAI* botAI) { return new SwitchToRangedAction(botAI); } static Action* ReachSpell(PlayerbotAI* botAI) { return new ReachSpellAction(botAI); } static Action* ReachMelee(PlayerbotAI* botAI) { return new ReachMeleeAction(botAI); } static Action* reach_party_member_to_heal(PlayerbotAI* botAI) { return new ReachPartyMemberToHealAction(botAI); } static Action* reach_party_member_to_resurrect(PlayerbotAI* botAI) { return new ReachPartyMemberToResurrectAction(botAI); } static Action* flee(PlayerbotAI* botAI) { return new FleeAction(botAI); } static Action* flee_with_pet(PlayerbotAI* botAI) { return new FleeWithPetAction(botAI); } static Action* avoid_aoe(PlayerbotAI* botAI) { return new AvoidAoeAction(botAI); } static Action* combat_formation_move(PlayerbotAI* botAI) { return new CombatFormationMoveAction(botAI); } static Action* tank_face(PlayerbotAI* botAI) { return new TankFaceAction(botAI); } static Action* rear_flank(PlayerbotAI* botAI) { return new RearFlankAction(botAI); } static Action* disperse_set(PlayerbotAI* botAI) { return new DisperseSetAction(botAI); } static Action* gift_of_the_naaru(PlayerbotAI* botAI) { return new CastGiftOfTheNaaruAction(botAI); } static Action* lifeblood(PlayerbotAI* botAI) { return new CastLifeBloodAction(botAI); } static Action* arcane_torrent(PlayerbotAI* botAI) { return new CastArcaneTorrentAction(botAI); } static Action* mana_tap(PlayerbotAI* botAI) { return new CastManaTapAction(botAI); } static Action* end_pull(PlayerbotAI* botAI) { return new ChangeCombatStrategyAction(botAI, "-pull"); } static Action* cancel_channel(PlayerbotAI* botAI) { return new CancelChannelAction(botAI); } static Action* emote(PlayerbotAI* botAI) { return new EmoteAction(botAI); } static Action* talk(PlayerbotAI* botAI) { return new TalkAction(botAI); } static Action* suggest_what_to_do(PlayerbotAI* botAI) { return new SuggestWhatToDoAction(botAI); } static Action* suggest_trade(PlayerbotAI* botAI) { return new SuggestTradeAction(botAI); } static Action* suggest_dungeon(PlayerbotAI* botAI) { return new SuggestDungeonAction(botAI); } static Action* attack_anything(PlayerbotAI* botAI) { return new AttackAnythingAction(botAI); } static Action* attack_least_hp_target(PlayerbotAI* botAI) { return new AttackLeastHpTargetAction(botAI); } static Action* attack_enemy_player(PlayerbotAI* botAI) { return new AttackEnemyPlayerAction(botAI); } static Action* stay(PlayerbotAI* botAI) { return new StayAction(botAI); } static Action* sit(PlayerbotAI* botAI) { return new SitAction(botAI); } static Action* runaway(PlayerbotAI* botAI) { return new RunAwayAction(botAI); } static Action* follow(PlayerbotAI* botAI) { return new FollowAction(botAI); } static Action* move_from_group(PlayerbotAI* botAI) { return new MoveFromGroupAction(botAI); } static Action* flee_to_master(PlayerbotAI* botAI) { return new FleeToMasterAction(botAI); } static Action* add_gathering_loot(PlayerbotAI* botAI) { return new AddGatheringLootAction(botAI); } static Action* add_loot(PlayerbotAI* botAI) { return new AddLootAction(botAI); } static Action* add_all_loot(PlayerbotAI* botAI) { return new AddAllLootAction(botAI); } static Action* loot(PlayerbotAI* botAI) { return new LootAction(botAI); } static Action* release_loot(PlayerbotAI* botAI) { return new ReleaseLootAction(botAI); } static Action* dps_assist(PlayerbotAI* botAI) { return new DpsAssistAction(botAI); } static Action* dps_aoe(PlayerbotAI* botAI) { return new DpsAoeAction(botAI); } static Action* attack_rti_target(PlayerbotAI* botAI) { return new AttackRtiTargetAction(botAI); } static Action* tank_assist(PlayerbotAI* botAI) { return new TankAssistAction(botAI); } static Action* drink(PlayerbotAI* botAI) { return new DrinkAction(botAI); } static Action* food(PlayerbotAI* botAI) { return new EatAction(botAI); } static Action* mana_potion(PlayerbotAI* botAI) { return new UseManaPotion(botAI); } static Action* healing_potion(PlayerbotAI* botAI) { return new UseHealingPotion(botAI); } static Action* healthstone(PlayerbotAI* botAI) { return new UseItemAction(botAI, "healthstone"); } static Action* move_out_of_enemy_contact(PlayerbotAI* botAI) { return new MoveOutOfEnemyContactAction(botAI); } static Action* set_facing(PlayerbotAI* botAI) { return new SetFacingTargetAction(botAI); } static Action* set_behind(PlayerbotAI* botAI) { return new SetBehindTargetAction(botAI); } static Action* say(PlayerbotAI* botAI) { return new SayAction(botAI); } static Action* reveal_gathering_item(PlayerbotAI* botAI) { return new RevealGatheringItemAction(botAI); } static Action* outfit(PlayerbotAI* botAI) { return new OutfitAction(botAI); } static Action* random_bot_update(PlayerbotAI* botAI) { return new RandomBotUpdateAction(botAI); } static Action* delay(PlayerbotAI* botAI) { return new DelayAction(botAI); } static Action* apply_poison(PlayerbotAI* botAI) { return new ImbueWithPoisonAction(botAI); } static Action* apply_oil(PlayerbotAI* botAI) { return new ImbueWithOilAction(botAI); } static Action* apply_stone(PlayerbotAI* botAI) { return new ImbueWithStoneAction(botAI); } static Action* try_emergency(PlayerbotAI* botAI) { return new TryEmergencyAction(botAI); } static Action* mount(PlayerbotAI* botAI) { return new CastSpellAction(botAI, "mount"); } static Action* war_stomp(PlayerbotAI* botAI) { return new CastWarStompAction(botAI); } static Action* blood_fury(PlayerbotAI* botAI) { return new CastBloodFuryAction(botAI); } static Action* berserking(PlayerbotAI* botAI) { return new CastBerserkingAction(botAI); } static Action* use_trinket(PlayerbotAI* botAI) { return new UseTrinketAction(botAI); } static Action* auto_talents(PlayerbotAI* botAI) { return new AutoSetTalentsAction(botAI); } static Action* auto_share_quest(PlayerbotAI* ai) { return new AutoShareQuestAction(ai); } static Action* auto_maintenance_on_levelup(PlayerbotAI* botAI) { return new AutoMaintenanceOnLevelupAction(botAI); } static Action* xp_gain(PlayerbotAI* botAI) { return new XpGainAction(botAI); } static Action* invite_nearby(PlayerbotAI* botAI) { return new InviteNearbyToGroupAction(botAI); } static Action* invite_guild(PlayerbotAI* botAI) { return new InviteGuildToGroupAction(botAI); } static Action* leave_far_away(PlayerbotAI* botAI) { return new LeaveFarAwayAction(botAI); } static Action* move_to_dark_portal(PlayerbotAI* botAI) { return new MoveToDarkPortalAction(botAI); } static Action* use_dark_portal_azeroth(PlayerbotAI* botAI) { return new DarkPortalAzerothAction(botAI); } static Action* move_from_dark_portal(PlayerbotAI* botAI) { return new MoveFromDarkPortalAction(botAI); } static Action* world_buff(PlayerbotAI* botAI) { return new WorldBuffAction(botAI); } static Action* hearthstone(PlayerbotAI* botAI) { return new UseHearthStone(botAI); } static Action* cast_random_spell(PlayerbotAI* botAI) { return new CastRandomSpellAction(botAI); } static Action* free_bg_join(PlayerbotAI* botAI) { return new FreeBGJoinAction(botAI); } static Action* use_random_recipe(PlayerbotAI* botAI) { return new UseRandomRecipe(botAI); } static Action* use_random_quest_item(PlayerbotAI* botAI) { return new UseRandomQuestItem(botAI); } static Action* craft_random_item(PlayerbotAI* botAI) { return new CraftRandomItemAction(botAI); } static Action* smart_destroy_item(PlayerbotAI* botAI) { return new SmartDestroyItemAction(botAI); } static Action* disenchant_random_item(PlayerbotAI* botAI) { return new DisEnchantRandomItemAction(botAI); } static Action* enchant_random_item(PlayerbotAI* botAI) { return new EnchantRandomItemAction(botAI); } static Action* reset_instances(PlayerbotAI* botAI) { return new ResetInstancesAction(botAI); } static Action* buy_petition(PlayerbotAI* botAI) { return new BuyPetitionAction(botAI); } static Action* offer_petition(PlayerbotAI* botAI) { return new PetitionOfferAction(botAI); } static Action* offer_petition_nearby(PlayerbotAI* botAI) { return new PetitionOfferNearbyAction(botAI); } static Action* turn_in_petition(PlayerbotAI* botAI) { return new PetitionTurnInAction(botAI); } static Action* buy_tabard(PlayerbotAI* botAI) { return new BuyTabardAction(botAI); } static Action* guild_manage_nearby(PlayerbotAI* botAI) { return new GuildManageNearbyAction(botAI); } static Action* clean_quest_log(PlayerbotAI* botAI) { return new CleanQuestLogAction(botAI); } static Action* roll_action(PlayerbotAI* botAI) { return new RollAction(botAI); } // BG Tactics static Action* bg_tactics(PlayerbotAI* botAI) { return new BGTactics(botAI); } static Action* bg_move_to_start(PlayerbotAI* botAI) { return new BGTactics(botAI, "move to start"); } static Action* bg_reset_objective_force(PlayerbotAI* botAI) { return new BGTactics(botAI, "reset objective force"); } static Action* bg_move_to_objective(PlayerbotAI* botAI) { return new BGTactics(botAI, "move to objective"); } static Action* bg_select_objective(PlayerbotAI* botAI) { return new BGTactics(botAI, "select objective"); } static Action* bg_check_objective(PlayerbotAI* botAI) { return new BGTactics(botAI, "check objective"); } static Action* bg_attack_fc(PlayerbotAI* botAI) { return new BGTactics(botAI, "attack fc"); } static Action* bg_protect_fc(PlayerbotAI* botAI) { return new BGTactics(botAI, "protect fc"); } static Action* attack_enemy_fc(PlayerbotAI* botAI) { return new AttackEnemyFlagCarrierAction(botAI); } static Action* bg_use_buff(PlayerbotAI* botAI) { return new BGTactics(botAI, "use buff"); } static Action* bg_check_flag(PlayerbotAI* botAI) { return new BGTactics(botAI, "check flag"); } // Vehicles static Action* enter_vehicle(PlayerbotAI* botAI) { return new EnterVehicleAction(botAI); } static Action* leave_vehicle(PlayerbotAI* botAI) { return new LeaveVehicleAction(botAI); } static Action* hurl_boulder(PlayerbotAI* botAI) { return new CastHurlBoulderAction(botAI); } static Action* ram(PlayerbotAI* botAI) { return new CastRamAction(botAI); } static Action* steam_blast(PlayerbotAI* botAI) { return new CastSteamBlastAction(botAI); } static Action* steam_rush(PlayerbotAI* botAI) { return new CastSteamRushAction(botAI); } static Action* napalm(PlayerbotAI* botAI) { return new CastNapalmAction(botAI); } static Action* fire_cannon(PlayerbotAI* botAI) { return new CastFireCannonAction(botAI); } static Action* incendiary_rocket(PlayerbotAI* botAI) { return new CastIncendiaryRocketAction(botAI); } static Action* rocket_blast(PlayerbotAI* botAI) { return new CastRocketBlastAction(botAI); } static Action* glaive_throw(PlayerbotAI* botAI) { return new CastGlaiveThrowAction(botAI); } static Action* blade_salvo(PlayerbotAI* botAI) { return new CastBladeSalvoAction(botAI); } // Rpg static Action* rpg_stay(PlayerbotAI* botAI) { return new RpgStayAction(botAI); } static Action* rpg_work(PlayerbotAI* botAI) { return new RpgWorkAction(botAI); } static Action* rpg_emote(PlayerbotAI* botAI) { return new RpgEmoteAction(botAI); } static Action* rpg_cancel(PlayerbotAI* botAI) { return new RpgCancelAction(botAI); } static Action* rpg_taxi(PlayerbotAI* botAI) { return new RpgTaxiAction(botAI); } static Action* rpg_discover(PlayerbotAI* botAI) { return new RpgDiscoverAction(botAI); } static Action* rpg_start_quest(PlayerbotAI* botAI) { return new RpgStartQuestAction(botAI); } static Action* rpg_end_quest(PlayerbotAI* botAI) { return new RpgEndQuestAction(botAI); } static Action* rpg_buy(PlayerbotAI* botAI) { return new RpgBuyAction(botAI); } static Action* rpg_sell(PlayerbotAI* botAI) { return new RpgSellAction(botAI); } static Action* rpg_repair(PlayerbotAI* botAI) { return new RpgRepairAction(botAI); } static Action* rpg_train(PlayerbotAI* botAI) { return new RpgTrainAction(botAI); } static Action* rpg_heal(PlayerbotAI* botAI) { return new RpgHealAction(botAI); } static Action* rpg_home_bind(PlayerbotAI* botAI) { return new RpgHomeBindAction(botAI); } static Action* rpg_queue_bg(PlayerbotAI* botAI) { return new RpgQueueBgAction(botAI); } static Action* rpg_buy_petition(PlayerbotAI* botAI) { return new RpgBuyPetitionAction(botAI); } static Action* rpg_use(PlayerbotAI* botAI) { return new RpgUseAction(botAI); } static Action* rpg_spell(PlayerbotAI* botAI) { return new RpgSpellAction(botAI); } static Action* rpg_craft(PlayerbotAI* botAI) { return new RpgCraftAction(botAI); } static Action* rpg_trade_useful(PlayerbotAI* botAI) { return new RpgTradeUsefulAction(botAI); } static Action* rpg_duel(PlayerbotAI* botAI) { return new RpgDuelAction(botAI); } static Action* rpg_mount_anim(PlayerbotAI* botAI) { return new RpgMountAnimAction(botAI); } static Action* toggle_pet_spell(PlayerbotAI* ai) { return new TogglePetSpellAutoCastAction(ai); } static Action* pet_attack(PlayerbotAI* ai) { return new PetAttackAction(ai); } static Action* set_pet_stance(PlayerbotAI* ai) { return new SetPetStanceAction(ai); } static Action* new_rpg_status_update(PlayerbotAI* ai) { return new NewRpgStatusUpdateAction(ai); } static Action* new_rpg_go_grind(PlayerbotAI* ai) { return new NewRpgGoGrindAction(ai); } static Action* new_rpg_go_camp(PlayerbotAI* ai) { return new NewRpgGoCampAction(ai); } static Action* new_rpg_wander_random(PlayerbotAI* ai) { return new NewRpgWanderRandomAction(ai); } static Action* new_rpg_wander_npc(PlayerbotAI* ai) { return new NewRpgWanderNpcAction(ai); } static Action* new_rpg_do_quest(PlayerbotAI* ai) { return new NewRpgDoQuestAction(ai); } static Action* new_rpg_travel_flight(PlayerbotAI* ai) { return new NewRpgTravelFlightAction(ai); } }; #endif