//seek and roam becomes more important for enemy classes public Enemy(GameObject gameObject, Vector2 initialPosition) : base(gameObject, initialPosition) { boxCollider2D = gameObject.GetComponent <BoxCollider2D>(); boxCollider2D.size = new Vector2(4, 4); TriggerDispatcher dispatcher = gameObject.GetComponent <TriggerDispatcher>(); Component.Destroy(dispatcher); gameObject.layer = LayerMask.NameToLayer("enemy"); enemyType = gameObject.name; spriteRenderer.sortingLayerName = "enemy"; }
public Bullet3(GameObject gameObject, Vector2 initialPosition) : base(gameObject, initialPosition) { life = 1.5f; TriggerDispatcher dispatcher = gameObject.GetComponent <TriggerDispatcher>(); Component.Destroy(dispatcher); string textureName = GameManager.BULLET3.ToLower(); Sprite sprite = Sprite.Create(GameManager.Instance.textureManager.PackedTexture, GameManager.Instance.textureManager.GetTextureRectByName(textureName), new Vector2(0.5f, 0.5f), 1); spriteRenderer.sprite = sprite; speed = 650; }
private static async Task MainAsync(string[] args) { var sc = CommonInitialize.Main(); // Initialize the ASP.NET service provider and freeze this Task indefinitely. await using var services = ConfigureServices(sc); await CommonInitialize.ConfigureServicesAsync(services); var client = services.GetRequiredService <DiscordSocketClient>(); var db = services.GetRequiredService <IDbService>(); var censusEvents = services.GetRequiredService <CensusEventService>(); var mute = services.GetRequiredService <MuteService>(); var roleRemover = services.GetRequiredService <TimedRoleManager>(); var ffLogs = services.GetRequiredService <FFLogsClient>(); var web = services.GetRequiredService <WebClient>(); var lodestone = services.GetRequiredService <CharacterLookup>(); var keepClean = services.GetRequiredService <KeepClean>(); var ephemeralPinner = services.GetRequiredService <EphemeralPinManager>(); var templates = services.GetRequiredService <ITemplateProvider>(); keepClean.Initialize(); roleRemover.Initialize(); ephemeralPinner.Initialize(); await ffLogs.Initialize(); client.ReactionAdded += (message, channel, reaction) => ReactionReceived.HandlerAdd(client, db, lodestone, message, channel, reaction); client.ReactionRemoved += (message, channel, reaction) => ReactionReceived.HandlerRemove(db, message, channel, reaction); client.ReactionAdded += (message, _, reaction) => VoteReactions.HandlerAdd(client, db, message, reaction); client.MessageDeleted += (message, channel) => AuditDeletion.Handler(db, client, message, channel); client.MessageReceived += message => ChatCleanup.Handler(db, web, templates, message); client.MessageReceived += message => MessageCache.Handler(db, message); client.MessageReceived += message => TriggerDispatcher.Handler(client, message); client.UserJoined += user => WelcomeCard.Handler(client, templates, user); client.GuildMemberUpdated += censusEvents.GuildMemberUpdated; client.UserVoiceStateUpdated += mute.OnVoiceJoin; client.ButtonExecuted += component => Modmail.Handler(db, component); Log.Information("Prima.Stable logged in!"); await Task.Delay(-1); }
public async Task TriggerDispatcher_Dispatch_NothingToExecute() { var recipeManager = new Mock <IRecipeManager>(); recipeManager.Setup(manager => manager.GetRecipes(It.IsAny <RecipesQuery>())) .ReturnsAsync(new List <Recipe>() { new Recipe() { RecipeTrigger = new RecipeTrigger() { TriggerId = new TestTrigger().Id, DataJson = "{}" } } }); var logger = new Mock <ILogger <TriggerDispatcher> >(); var actionDispatcher = new Mock <IActionDispatcher>(); //no handlers available var triggerDispatcher = new TriggerDispatcher(new List <ITriggerHandler>(), recipeManager.Object, actionDispatcher.Object, logger.Object); await triggerDispatcher.DispatchTrigger(new TestTrigger() { DataJson = "{}" }); actionDispatcher.Verify( dispatcher => dispatcher.Dispatch((Dictionary <string, (object data, string json)>)It.IsAny <object>(), It.IsAny <RecipeAction>()), Times.Never); }
public async Task TriggerDispatcher_Dispatch_ExecuteActionDispatcher() { var recipeManager = new Mock <IRecipeManager>(); recipeManager.Setup(manager => manager.GetRecipes(It.IsAny <RecipesQuery>())) .ReturnsAsync(new List <Recipe>() { new Recipe() { RecipeTrigger = new RecipeTrigger() { TriggerId = new TestTrigger().Id, DataJson = "{}" }, RecipeActions = new List <RecipeAction>() { new RecipeAction() } } }); var logger = new Mock <ILogger <TriggerDispatcher> >(); var actionDispatcher = new Mock <IActionDispatcher>(); var triggerHandler = new Mock <ITriggerHandler>(); triggerHandler.Setup(handler => handler.GetData(It.IsAny <ITrigger>())).ReturnsAsync("hohoho"); triggerHandler.Setup(handler => handler.IsTriggered(It.IsAny <ITrigger>(), It.IsAny <RecipeTrigger>())) .ReturnsAsync(true); var triggerHandler2 = new Mock <ITriggerHandler>(); triggerHandler2.Setup(handler => handler.GetData(It.IsAny <ITrigger>())).ThrowsAsync(new Exception()); triggerHandler2.Setup(handler => handler.IsTriggered(It.IsAny <ITrigger>(), It.IsAny <RecipeTrigger>())) .ReturnsAsync(true); var triggerHandler3 = new Mock <ITriggerHandler>(); triggerHandler3.Setup(handler => handler.GetData(It.IsAny <ITrigger>())).ReturnsAsync("hohoho"); triggerHandler3.Setup(handler => handler.IsTriggered(It.IsAny <ITrigger>(), It.IsAny <RecipeTrigger>())) .ThrowsAsync(new Exception()); var triggerDispatcher = new TriggerDispatcher( new List <ITriggerHandler>() { triggerHandler.Object, triggerHandler2.Object, triggerHandler3.Object }, recipeManager.Object, actionDispatcher.Object, logger.Object); await triggerDispatcher.DispatchTrigger(new TestTrigger() { DataJson = "{}" }); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); while (!cts.IsCancellationRequested) { try { actionDispatcher.Verify( dispatcher => dispatcher.Dispatch(new Dictionary <string, (object data, string json)>(), It.IsAny <RecipeAction>()), Times.Once); break; } catch (Exception e) { Console.WriteLine(e); } } }
public async Task TriggerDispatcher_Dispatch_ExecuteActionDispatcher() { var recipeManager = new Mock <IRecipeManager>(); recipeManager.Setup(manager => manager.GetRecipes(It.IsAny <RecipesQuery>())) .ReturnsAsync(new List <Recipe>() { new Recipe() { RecipeTrigger = new RecipeTrigger() { TriggerId = new TestTrigger().Id, DataJson = "{}" }, RecipeActions = new List <RecipeAction>() { new RecipeAction() } } }); var logger = new Mock <ILogger <TriggerDispatcher> >(); var actionDispatcher = new Mock <IActionDispatcher>(); var triggerHandler = new Mock <ITriggerHandler>(); triggerHandler.Setup(handler => handler.GetData(It.IsAny <ITrigger>())).ReturnsAsync("hohoho"); triggerHandler.Setup(handler => handler.IsTriggered(It.IsAny <ITrigger>(), It.IsAny <RecipeTrigger>())) .ReturnsAsync(true); var triggerHandler2 = new Mock <ITriggerHandler>(); triggerHandler2.Setup(handler => handler.GetData(It.IsAny <ITrigger>())).ThrowsAsync(new Exception()); triggerHandler2.Setup(handler => handler.IsTriggered(It.IsAny <ITrigger>(), It.IsAny <RecipeTrigger>())) .ReturnsAsync(true); var triggerHandler3 = new Mock <ITriggerHandler>(); triggerHandler3.Setup(handler => handler.GetData(It.IsAny <ITrigger>())).ReturnsAsync("hohoho"); triggerHandler3.Setup(handler => handler.IsTriggered(It.IsAny <ITrigger>(), It.IsAny <RecipeTrigger>())) .ThrowsAsync(new Exception()); var triggerDispatcher = new TriggerDispatcher( new List <ITriggerHandler>() { triggerHandler.Object, triggerHandler2.Object, triggerHandler3.Object }, recipeManager.Object, actionDispatcher.Object, logger.Object); await triggerDispatcher.DispatchTrigger(new TestTrigger() { DataJson = "{}" }); actionDispatcher.Verify( dispatcher => dispatcher.Dispatch(new Dictionary <string, (object data, string json)>(), It.IsAny <RecipeAction>()), Times.Once); logger.Verify( logger1 => logger1.Log(LogLevel.Error, It.IsAny <EventId>(), It.IsAny <FormattedLogValues>(), It.IsAny <Exception>(), It.IsAny <Func <object, Exception, string> >()), Times.Exactly(2)); }