public void Init(EntityType type)
        {
            _entitySelection = new EntitySelection
            {
                Type        = type,
                Battlefield = Battlefield
            };

            _userDecisionSelection = new UserDecisionSelection
            {
                EntitySelection = _entitySelection,
                InputSelection  = InputSelection
            };
            _userDecisionSelection.Init();

            _entityMovement = new EntityMovement
            {
                Type               = type,
                EntitySelection    = _entitySelection,
                BreadcrumbsHandler = BreadcrumbsHandler,
                MovementResolver   = MovementResolver,
                InputSelection     = InputSelection,
                LevelDataProvider  = LevelDataProvider
            };
            _entityMovement.Init();

            _attackResolver = new AttackResolver
            {
                EntitySelection = _entitySelection,
                Battlefield     = Battlefield
            };
            _attackResolver.Init();

            _turnResolver = new TurnResolver
            {
                Type        = type,
                Battlefield = Battlefield
            };
            _turnResolver.Init();
            _turnResolver.TurnEnded += TurnResolverdEnded;
        }
Example #2
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>();
        }