public BasicCombatEngine(IWowDataAdapter wowDataAdapter, IWowActionExecutor wowActionExecutor, IMovementProvider movementProvider, ISpellStrategy spellStrategy) { WowDataAdapter = wowDataAdapter; WowActionExecutor = wowActionExecutor; MovementProvider = movementProvider; SpellStrategy = spellStrategy; }
public DefaultMovementScrapingServices(IMovementProvider movementProvider, IWebServices webServices) { Guard.VerifyObjectNotNull(movementProvider, nameof(movementProvider)); _movementProvider = movementProvider; _webServices = webServices; }
private void Awake() { _characterController = GetComponent <CharacterController>(); _gravityProvider = GetComponent <IGravityProvider>(); _movementProvider = GetComponent <IMovementProvider>(); _jumpProvider = GetComponent <IJumpProvider>(); _inputProvider = GetComponent <InputProvider>(); }
void ClearMovementProvider() { if (m_movement_provider != null) { RecyclableObject.Recycle(m_movement_provider); m_movement_provider = null; } }
public Petrrollus() { enemyInfo = new EnemyInfo(); radarProvider = new NarrowLockRadar(); radarProvider.Init(this, enemyInfo); gun = new PrecisionGun(); gun.Init(this, enemyInfo); wheels = new Chassis(); wheels.Init(this, enemyInfo); }
public bool Get(out Vector3 position, out MovementAction type) { if (Providers.TryGetValue(Bot.Objects.MapId, out Func <IMovementProvider> getProvider)) { IMovementProvider provider = getProvider(); if (provider != null) { return(provider.Get(out position, out type)); } } type = MovementAction.None; position = Vector3.Zero; return(false); }
public bool MoveByDirection(Vector3FP direction) { if (!IsEnable()) { return(false); } if (m_movement_provider as MovementByDirection == null) { ClearMovementProvider(); m_movement_provider = RecyclableObject.Create <MovementByDirection>(); m_movement_provider.SetCallback(this); m_movement_provider.SetMaxSpeed(m_current_max_speed); } m_movement_provider.MoveByDirection(direction); StartMoving(); return(true); }
public bool MoveAlongPath(List <Vector3FP> path, bool from_command) { //不可以保存path if (!IsEnable()) { return(false); } if (m_movement_provider as MovementAlongPath == null) { ClearMovementProvider(); m_movement_provider = RecyclableObject.Create <MovementAlongPath>(); m_movement_provider.SetCallback(this); m_movement_provider.SetMaxSpeed(m_current_max_speed); } m_movement_provider.MoveAlongPath(path); StartMoving(from_command); return(true); }
public void SetUp() { var instanceIdGenerator = new InstanceIdGenerator(); _htmlParserProvider = new DefaultHtmlParserProvider(); _movementProvider = new DefaultMovementProvider(instanceIdGenerator); _moveProvider = new DefaultMoveProvider(instanceIdGenerator); _pageDownloader = new DefaultPageDownloader(); _webClientProvider = new DefaultWebClientProvider(); _attributeProvider = new DefaultAttributeProvider(instanceIdGenerator); _imageScrapingProvider = new DefaultImageScrapingProvider(); _imageScrapingService = new DefaultImageScrapingService(_imageScrapingProvider); _uniqueDataProvider = new DefaultUniqueDataProvider(instanceIdGenerator); _webServices = new DefaultWebServices(_htmlParserProvider, _webClientProvider, _pageDownloader); _attributeScrapingServices = new DefaultAttributeScrapingServices(_attributeProvider, _webServices); _moveScrapingServices = new DefaultMoveScrapingServices(_moveProvider, _webServices); _movementScrapingServices = new DefaultMovementScrapingServices(_movementProvider, _webServices); _uniqueDataScrapingServices = new DefaultUniqueDataScrapingServices(_uniqueDataProvider, _webServices); _groundMoveScraper = new GroundMoveScraper(_moveScrapingServices); _aerialMoveScraper = new AerialMoveScraper(_moveScrapingServices); _specialMoveScraper = new SpecialMoveScraper(_moveScrapingServices); _throwMovesScraper = new ThrowMoveScraper(_moveScrapingServices); _characterMoveScraper = new DefaultCharacterMoveScraper(new List <IMoveScraper> { _groundMoveScraper, _aerialMoveScraper, _specialMoveScraper, _throwMovesScraper }); var attributeScrapers = new List <IAttributeScraper> { new AirSpeedScraper(_attributeScrapingServices), new AirDodgeScraper(_attributeScrapingServices) }; _movementScraper = new DefaultMovementScraper(_movementScrapingServices); _characterDataScrapingServices = new DefaultCharacterDataScrapingServices(_imageScrapingService, _movementScraper, attributeScrapers, _characterMoveScraper, _uniqueDataScrapingServices, _webServices, instanceIdGenerator); _characterDataScraper = new DefaultCharacterDataScraper(_characterDataScrapingServices); }
public AmeisenBotStateMachine(IWowDataAdapter dataAdapter, IWowActionExecutor wowActionExecutor, IPathfindingClient pathfindingClient, IMovementProvider movementProvider, ISpellStrategy spellStrategy, int stateUpdateInterval = 100) { MovementProvider = movementProvider; SpellStrategy = spellStrategy; BotStates = new Dictionary <Type, BotState> { { typeof(BotStateIdle), new BotStateIdle(this) }, { typeof(BotStateFollow), new BotStateFollow(this) }, { typeof(BotStateCombat), new BotStateCombat(this) }, { typeof(BotStateDead), new BotStateDead(this) }, { typeof(BotStateGhost), new BotStateGhost(this) } }; PathfindingClient = pathfindingClient; WowActionExecutor = wowActionExecutor; WowDataAdapter = dataAdapter; CurrentState = BotStates[typeof(BotStateIdle)]; CurrentState.Start(); StateMachineTimer = new Timer(stateUpdateInterval); StateMachineTimer.Elapsed += CStateMachineUpdate; }
public DefaultCharacterDataScraper MakeCharacterDataScraper() { var instanceIdGenerator = new InstanceIdGenerator(); _htmlParserProvider = new DefaultHtmlParserProvider(); _movementProvider = new DefaultMovementProvider(instanceIdGenerator); _moveProvider = new DefaultMoveProvider(instanceIdGenerator); _pageDownloader = new DefaultPageDownloader(); _webClientProvider = new DefaultWebClientProvider(); _attributeProvider = new DefaultAttributeProvider(instanceIdGenerator); _imageScrapingProvider = new DefaultImageScrapingProvider(); _imageScrapingService = new DefaultColorScrapingService(_characterCss); //_imageScrapingProvider); _uniqueDataProvider = new DefaultUniqueDataProvider(instanceIdGenerator); _webServices = new DefaultWebServices(_htmlParserProvider, _webClientProvider, _pageDownloader); _attributeScrapingServices = new DefaultAttributeScrapingServices(_attributeProvider, _webServices); _moveScrapingServices = new DefaultMoveScrapingServices(_moveProvider, _webServices); _movementScrapingServices = new DefaultMovementScrapingServices(_movementProvider, _webServices); _uniqueDataScrapingServices = new DefaultUniqueDataScrapingServices(_uniqueDataProvider, _webServices); _groundMoveScraper = new GroundMoveScraper(_moveScrapingServices); _aerialMoveScraper = new AerialMoveScraper(_moveScrapingServices); _specialMoveScraper = new SpecialMoveScraper(_moveScrapingServices); _throwMoveScraper = new ThrowMoveScraper(_moveScrapingServices); _characterMoveScraper = new DefaultCharacterMoveScraper(new List <IMoveScraper> { _groundMoveScraper, _aerialMoveScraper, _specialMoveScraper, _throwMoveScraper }); var attributeScrapers = AttributeScrapers.AllWithScrapingServices(_attributeScrapingServices, _urlUnderTest); _movementScraper = new DefaultMovementScraper(_movementScrapingServices); _characterDataScrapingServices = new DefaultCharacterDataScrapingServices(_imageScrapingService, _movementScraper, attributeScrapers, _characterMoveScraper, _uniqueDataScrapingServices, _webServices, instanceIdGenerator); return(new DefaultCharacterDataScraper(_characterDataScrapingServices)); }
public void Load(ISceneProvider draw, IEventProvider events, INetworkProvider network, ISoundProvider sound, IModuleProvider modules, IMovementProvider movement, ICollisionProvider collision, IVoiceChatProvider voicechat, IWorldManager world, ITextureManager texture, ISoundManager soundmanager) { this.drawprovider = draw; this.eventprovider = events; this.networkprovider = network; this.soundprovider = sound; this.moduleprovider = modules; this.movementprovider = movement; this.collisionprovider = collision; this.voicechatprovider = voicechat; this.texturemanager = texture; this.worldmanager = world; this.soundmanager = soundmanager; this.LoadContexts (drawprovider, eventprovider, networkprovider, soundprovider, moduleprovider, movementprovider, collisionprovider, voicechatprovider, texturemanager, worldmanager, soundmanager); }
public void Attach(IWowActionExecutor wowActionExecutor, IPathfindingClient wowPathfindingClient, IWowEventAdapter wowEventAdapter, IMovementProvider movementProvider, ISpellStrategy spellStrategy, IItemComparator itemComparator = null) { Attached = true; WowPathfindingClient = wowPathfindingClient; if (itemComparator == null) { itemComparator = new BasicItemLevelComparator(WowDataAdapter); } WowDataAdapter?.StartObjectUpdates(); AmeisenBotLogger.Instance.Log($"[{Process?.Id.ToString("X" , CultureInfo.InvariantCulture.NumberFormat)}]\tStarted ObjectUpdates..."); WowActionExecutor = wowActionExecutor; WowActionExecutor.IsWorldLoaded = true; AmeisenBotLogger.Instance.Log($"[{Process?.Id.ToString("X" , CultureInfo.InvariantCulture.NumberFormat)}]\tStarted ActionExecutor..."); WowEventAdapter = wowEventAdapter; //WowEventAdapter?.Start(); AmeisenBotLogger.Instance.Log($"[{Process?.Id.ToString("X" , CultureInfo.InvariantCulture.NumberFormat)}]\tStarted EventAdapter..."); WowEventAdapter?.Subscribe(WowEvents.PARTY_INVITE_REQUEST, OnPartyInvitation); WowEventAdapter?.Subscribe(WowEvents.LOOT_OPENED, OnLootWindowOpened); WowEventAdapter?.Subscribe(WowEvents.RESURRECT_REQUEST, OnResurrectRequest); WowEventAdapter?.Subscribe(WowEvents.CONFIRM_SUMMON, OnSummonRequest); WowEventAdapter?.Subscribe(WowEvents.LOOT_BIND_CONFIRM, OnConfirmBindOnPickup); WowEventAdapter?.Subscribe(WowEvents.CONFIRM_LOOT_ROLL, OnConfirmBindOnPickup); WowEventAdapter?.Subscribe(WowEvents.READY_CHECK, OnReadyCheck); WowEventAdapter?.Subscribe(WowEvents.DELETE_ITEM_CONFIRM, OnConfirmDeleteItem); WowEventAdapter?.Subscribe(WowEvents.ITEM_PUSH, OnNewItemReceived); WowEventAdapter?.Subscribe(WowEvents.COMBAT_LOG_EVENT_UNFILTERED, OnCombatLogEvent); StateMachine = new AmeisenBotStateMachine(WowDataAdapter, WowActionExecutor, WowPathfindingClient, movementProvider, spellStrategy); StateMachine?.Start(); AmeisenBotLogger.Instance.Log($"[{Process?.Id.ToString("X" , CultureInfo.InvariantCulture.NumberFormat)}]\tStarted StateMachine..."); CharacterManager = new WowCharacterManager(WowDataAdapter, WowActionExecutor, itemComparator); AmeisenBotLogger.Instance.Log($"[{Process?.Id.ToString("X" , CultureInfo.InvariantCulture.NumberFormat)}]\tStarted CharacterManager..."); CharacterManager?.UpdateFullCharacter(); AmeisenBotLogger.Instance.Log($"[{Process?.Id.ToString("X" , CultureInfo.InvariantCulture.NumberFormat)}]\tUpdated Character..."); AmeisenBotLogger.Instance.Log($"[{Process?.Id.ToString("X" , CultureInfo.InvariantCulture.NumberFormat)}]\tAmeisenBot attached..."); }
private void Awake() { m_Rigidbody = GetComponent <Rigidbody2D>(); m_MovementProvider = GetComponent <IMovementProvider>(); }
void Start() { this.animator = this.GetComponentInChildren <MaterialAnimator>(); this.movenetProvider = this.GetComponent <IMovementProvider>(); }