static void SetupTriggerGimmicks(IEnumerable <GameObject> rootGameObjects, ItemCreator itemCreator, ItemDestroyer itemDestroyer)
        {
            RoomStateRepository = new RoomStateRepository();
            GimmickManager      = new GimmickManager(RoomStateRepository, itemCreator, itemDestroyer);
            SignalGenerator     = new SignalGenerator();
            var triggerManager = new TriggerManager(RoomStateRepository, itemCreator, GimmickManager, SignalGenerator);
            var items          = GetComponentsInGameObjectsChildren <IItem>(rootGameObjects).ToArray();

            triggerManager.Add(items.SelectMany(x => x.gameObject.GetComponents <IItemTrigger>()));
            triggerManager.Add(GetComponentsInGameObjectsChildren <IPlayerTrigger>(rootGameObjects));
            triggerManager.Add(GetComponentsInGameObjectsChildren <IGlobalTrigger>(rootGameObjects));
            GimmickManager.AddGimmicksInScene(GetComponentsInGameObjectsChildren <IGimmick>(rootGameObjects));
            foreach (var item in items)
            {
                GimmickManager.AddGimmicksInItem(item.gameObject.GetComponentsInChildren <IGimmick>(true), item.Id.Value);
            }

            new LogicManager(itemCreator, RoomStateRepository, GimmickManager,
                             GetComponentsInGameObjectsChildren <IItemLogic>(rootGameObjects),
                             GetComponentsInGameObjectsChildren <IPlayerLogic>(rootGameObjects),
                             GetComponentsInGameObjectsChildren <IGlobalLogic>(rootGameObjects),
                             SignalGenerator);
            new PlayerEffectManager(PlayerPresenter, itemCreator, GetComponentsInGameObjectsChildren <IPlayerEffectGimmick>(rootGameObjects));
            new CreateItemGimmickManager(itemCreator, GetComponentsInGameObjectsChildren <ICreateItemGimmick>(rootGameObjects));
            new DestroyItemGimmickManager(itemCreator, itemDestroyer, GetComponentsInGameObjectsChildren <IDestroyItemGimmick>(rootGameObjects));

            var onReceiveOwnershipItemTriggerManager = new OnReceiveOwnershipItemTriggerManager(itemCreator);
            var onCreateItemTriggerManager           = new OnCreateItemTriggerManager(itemCreator);
            var onJoinPlayerTriggerManager           = new OnJoinPlayerTriggerManager();

            onCreateItemTriggerManager.Invoke(items.SelectMany(x => x.gameObject.GetComponents <IOnCreateItemTrigger>()));
            onJoinPlayerTriggerManager.Invoke(GetComponentsInGameObjectsChildren <IOnJoinPlayerTrigger>(rootGameObjects));
            onReceiveOwnershipItemTriggerManager.InvokeOnStart(items.SelectMany(x => x.gameObject.GetComponents <IOnReceiveOwnershipItemTrigger>()));
        }
        public TriggerManager(RoomStateRepository roomStateRepository, ItemCreator itemCreator, GimmickManager gimmickManager)
        {
            this.roomStateRepository = roomStateRepository;
            this.gimmickManager      = gimmickManager;

            itemCreator.OnCreate += OnCreateItem;
        }
Example #3
0
 public UnitOfWork(EasyHotelDbContext context)
 {
     this.context = context;
     Beds         = new BedRepository(context);
     Rooms        = new RoomRepository(context);
     RoomStates   = new RoomStateRepository(context);
     RoomTypes    = new RoomTypeRepository(context);
     Guests       = new GuestRepository(context);
     Books        = new BookRepository(context);
 }
        public TriggerManager(
            RoomStateRepository roomStateRepository,
            ItemCreator itemCreator,
            GimmickManager gimmickManager,
            SignalGenerator signalGenerator)
        {
            this.roomStateRepository = roomStateRepository;
            this.gimmickManager      = gimmickManager;
            this.signalGenerator     = signalGenerator;

            itemCreator.OnCreate += OnCreateItem;
        }
 public LogicManager(ItemCreator itemCreator,
                     RoomStateRepository roomStateRepository,
                     GimmickManager gimmickManager,
                     IEnumerable <IItemLogic> itemLogics,
                     IEnumerable <IPlayerLogic> playerLogics,
                     IEnumerable <IGlobalLogic> globalLogics,
                     SignalGenerator signalGenerator)
 {
     this.roomStateRepository = roomStateRepository;
     this.gimmickManager      = gimmickManager;
     this.signalGenerator     = signalGenerator;
     itemCreator.OnCreate    += OnCreateItem;
     Register(itemLogics);
     Register(playerLogics);
     Register(globalLogics);
 }
Example #6
0
        static void SetupTriggerGimmicks(IEnumerable <GameObject> rootGameObjects, ItemCreator itemCreator, ItemDestroyer itemDestroyer)
        {
            var roomStateRepository = new RoomStateRepository();
            var gimmickManager      = new GimmickManager(roomStateRepository, itemCreator, itemDestroyer);
            var triggerManager      = new TriggerManager(roomStateRepository, itemCreator, gimmickManager);
            var items = GetComponentsInGameObjectsChildren <IItem>(rootGameObjects).ToArray();

            triggerManager.Add(items.SelectMany(x => x.gameObject.GetComponents <IItemTrigger>()));
            gimmickManager.AddGimmicksInScene(GetComponentsInGameObjectsChildren <IGimmick>(rootGameObjects));
            foreach (var item in items)
            {
                gimmickManager.AddGimmicksInItem(item.gameObject.GetComponentsInChildren <IGimmick>(true), item.Id.Value);
            }

            new PlayerGimmickManager(PlayerPresenter, itemCreator, GetComponentsInGameObjectsChildren <IPlayerGimmick>(rootGameObjects));
            new CreateItemGimmickManager(itemCreator, GetComponentsInGameObjectsChildren <ICreateItemGimmick>(rootGameObjects));
            new DestroyItemGimmickManager(itemCreator, itemDestroyer, GetComponentsInGameObjectsChildren <IDestroyItemGimmick>(rootGameObjects));
            var onCreateItemTriggerManager = new OnCreateItemTriggerManager(itemCreator);

            onCreateItemTriggerManager.Invoke(items.SelectMany(x => x.gameObject.GetComponents <IOnCreateItemTrigger>()));
        }