示例#1
0
 public StateFollowing(AmeisenBotStateMachine stateMachine, AmeisenBotConfig config, ObjectManager objectManager, CharacterManager characterManager, IPathfindingHandler pathfindingHandler, IMovementEngine movementEngine) : base(stateMachine)
 {
     Config             = config;
     ObjectManager      = objectManager;
     CharacterManager   = characterManager;
     PathfindingHandler = pathfindingHandler;
     MovementEngine     = movementEngine;
 }
示例#2
0
 public StateGhost(AmeisenBotStateMachine stateMachine, AmeisenBotConfig config, IOffsetList offsetList, ObjectManager objectManager, CharacterManager characterManager, HookManager hookManager, IPathfindingHandler pathfindingHandler, IMovementEngine movementEngine) : base(stateMachine)
 {
     Config             = config;
     ObjectManager      = objectManager;
     CharacterManager   = characterManager;
     HookManager        = hookManager;
     OffsetList         = offsetList;
     PathfindingHandler = pathfindingHandler;
     MovementEngine     = movementEngine;
 }
        public void RegisterMovementEngine(MovementPhase phase, IMovementEngine engine)
        {
            if (engines.ContainsKey(phase))
            {
                throw new InvalidOperationException("please add a new MovementPhase in the enum and use it.");
            }

            engines[phase]      = engine;
            enginesFasterAccess = engines.OrderBy(x => x.Key).Select(x => x.Value).ToArray();
        }
示例#4
0
        public AmeisenBotStateMachine(
            string botDataPath,
            Process wowProcess,
            AmeisenBotConfig config,
            XMemory xMemory,
            IOffsetList offsetList,
            ObjectManager objectManager,
            CharacterManager characterManager,
            HookManager hookManager,
            EventHookManager eventHookManager,
            IAmeisenBotCache botCache,
            IPathfindingHandler pathfindingHandler,
            IMovementEngine movementEngine,
            ICombatClass combatClass)
        {
            AmeisenLogger.Instance.Log("Starting AmeisenBotStateMachine...", LogLevel.Verbose);

            BotDataPath      = botDataPath;
            Config           = config;
            XMemory          = xMemory;
            OffsetList       = offsetList;
            ObjectManager    = objectManager;
            CharacterManager = characterManager;
            HookManager      = hookManager;
            EventHookManager = eventHookManager;
            BotCache         = botCache;

            LastObjectUpdate = DateTime.Now;
            LastGhostCheck   = DateTime.Now;
            LastEventPull    = DateTime.Now;

            LastState    = AmeisenBotState.None;
            UnitLootList = new Queue <ulong>();

            States = new Dictionary <AmeisenBotState, State>()
            {
                { AmeisenBotState.None, new StateNone(this, config) },
                { AmeisenBotState.StartWow, new StateStartWow(this, config, wowProcess, xMemory) },
                { AmeisenBotState.Login, new StateLogin(this, config, offsetList, characterManager) },
                { AmeisenBotState.LoadingScreen, new StateLoadingScreen(this, xMemory, config, objectManager) },
                { AmeisenBotState.Idle, new StateIdle(this, config, offsetList, objectManager, characterManager, hookManager, eventHookManager, combatClass, UnitLootList) },
                { AmeisenBotState.Dead, new StateDead(this, config, objectManager, hookManager) },
                { AmeisenBotState.Ghost, new StateGhost(this, config, offsetList, objectManager, characterManager, hookManager, pathfindingHandler, movementEngine) },
                { AmeisenBotState.Following, new StateFollowing(this, config, objectManager, characterManager, pathfindingHandler, movementEngine) },
                { AmeisenBotState.Attacking, new StateAttacking(this, config, objectManager, characterManager, hookManager, pathfindingHandler, movementEngine, combatClass) },
                { AmeisenBotState.Repairing, new StateRepairing(this, config, objectManager, hookManager, characterManager, pathfindingHandler, movementEngine) },
                { AmeisenBotState.Selling, new StateSelling(this, config, objectManager, hookManager, characterManager, pathfindingHandler, movementEngine) },
                { AmeisenBotState.Healing, new StateEating(this, config, objectManager, characterManager) },
                { AmeisenBotState.InsideAoeDamage, new StateInsideAoeDamage(this, config, objectManager, characterManager, pathfindingHandler, movementEngine) },
                { AmeisenBotState.Looting, new StateLooting(this, config, offsetList, objectManager, characterManager, hookManager, pathfindingHandler, movementEngine, UnitLootList) }
            };

            CurrentState = States.First();
            CurrentState.Value.Enter();
        }
示例#5
0
 public StateLooting(AmeisenBotStateMachine stateMachine, AmeisenBotConfig config, IOffsetList offsetList, ObjectManager objectManager, CharacterManager characterManager, HookManager hookManager, IPathfindingHandler pathfindingHandler, IMovementEngine movementEngine, Queue <ulong> unitLootList) : base(stateMachine)
 {
     Config                 = config;
     ObjectManager          = objectManager;
     CharacterManager       = characterManager;
     HookManager            = hookManager;
     OffsetList             = offsetList;
     PathfindingHandler     = pathfindingHandler;
     MovementEngine         = movementEngine;
     UnitLootList           = unitLootList;
     UnitsAlreadyLootedList = new List <ulong>();
 }
示例#6
0
        public WhackSpace(double width, double height, WhackSettings settings)
        {
            Width  = width;
            Height = height;

            _movementEngine = new BaseMovementEngine(Width, Height, MOLE_SIZE);

            MoleService.Create(settings.MoleEndpoint);
            AdminService.Create(settings.AdminEndpoint);

            _moleService  = MoleService.Instance;
            _adminService = AdminService.Instance;
        }
示例#7
0
        public StateAttacking(AmeisenBotStateMachine stateMachine, AmeisenBotConfig config, ObjectManager objectManager, CharacterManager characterManager, HookManager hookManager, IPathfindingHandler pathfindingHandler, IMovementEngine movementEngine, ICombatClass combatClass) : base(stateMachine)
        {
            Config             = config;
            ObjectManager      = objectManager;
            CharacterManager   = characterManager;
            HookManager        = hookManager;
            PathfindingHandler = pathfindingHandler;
            MovementEngine     = movementEngine;
            CombatClass        = combatClass;

            // default distance values
            DistanceToTarget = combatClass == null || combatClass.IsMelee ? 3.0 : 25.0;
        }
示例#8
0
        public WhackSpace(double width, double height)
        {
            Width  = width;
            Height = height;

            _movementEngine = new BaseMovementEngine(Width, Height, MOLE_SIZE);
            var moleEndpoint  = ApplicationData.Current.LocalSettings.Values["moleServiceEndpoint"] as string;
            var adminEndpoint = ApplicationData.Current.LocalSettings.Values["adminServiceEndpoint"] as string;

            MoleService.Create(moleEndpoint);

            AdminService.Create(adminEndpoint);
            _moleService  = MoleService.Instance;
            _adminService = AdminService.Instance;
        }
 public void RegisterMovementEngine(MovementPhase phase, IMovementEngine engine)
 {
 }