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; }
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>(); }