Beispiel #1
0
        private static void RegisterActionResolver(ContainerBuilder builder)
        {
            builder.Register <ActionResolver>(c =>
            {
                var movementResolver = new MovementResolver(c.Resolve <ILogger>(), c.Resolve <ICreatureRegistry>(), c.Resolve <IPlayArea>(), c.Resolve <ICombatRegistry>(), c.Resolve <IMessageDispatcher>());
                var lootAllResolver  = new LootAllResolver(c.Resolve <ILogger>(), c.Resolve <ICreatureRegistry>(), c.Resolve <IPlayArea>());
                var lootResolver     = new LootResolver(c.Resolve <ILogger>(), c.Resolve <ICreatureRegistry>(), c.Resolve <IPlayArea>());
                var attackResolver   = new AttackResolver(c.Resolve <ILogger>(), c.Resolve <ICreatureRegistry>(), c.Resolve <IPlayArea>(), c.Resolve <ICombatSimulator>());
                var consumeResolver  = new ConsumeResolver(c.Resolve <ICreatureRegistry>());
                var resolverMap      = new Dictionary <string, IResolver>
                {
                    { movementResolver.ActionName, movementResolver },
                    { lootAllResolver.ActionName, lootAllResolver },
                    { lootResolver.ActionName, lootResolver },
                    { attackResolver.ActionName, attackResolver },
                    { consumeResolver.ActionName, consumeResolver }
                };

                return(new ActionResolver(c.Resolve <IActionRepository>(), resolverMap));
            }).As <IActionResolver>();
        }