Exemplo n.º 1
0
        public TriggerManager(RoomStateRepository roomStateRepository, ItemCreator itemCreator, GimmickManager gimmickManager)
        {
            this.roomStateRepository = roomStateRepository;
            this.gimmickManager      = gimmickManager;

            itemCreator.OnCreate += OnCreateItem;
        }
        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>()));
        }
Exemplo n.º 3
0
 void Awake()
 {
     if (Instance != null)
     {
         enabled = false;
         DestroyImmediate(this);
         return;
     }
     Instance = this;
 }
Exemplo n.º 4
0
    public void InitStage(Player player, Bezier2D path, GimmickManager manager)
    {
        _player         = player;
        _gimmickManager = manager;
        _pathLength     = path.Length;

        player.Init(path);
        _gimmickManager.Init(path, player);
        MouseCamera.Init(player);
    }
        public TriggerManager(
            RoomStateRepository roomStateRepository,
            ItemCreator itemCreator,
            GimmickManager gimmickManager,
            SignalGenerator signalGenerator)
        {
            this.roomStateRepository = roomStateRepository;
            this.gimmickManager      = gimmickManager;
            this.signalGenerator     = signalGenerator;

            itemCreator.OnCreate += OnCreateItem;
        }
Exemplo n.º 6
0
    private void OnEnable()
    {
        _gimmickBase = (GimmickBase)target;
        _manager     = _gimmickBase.GetComponentInParent <GimmickManager>();

        if (_manager)
        {
            _gimmicks = _manager.GetComponentsInChildren <GimmickBase>();
            _path     = _gimmickBase.GetComponentInParent <Bezier2D>();
        }

        _lineColor  = serializedObject.FindProperty("GimmickColor");
        _startPoint = serializedObject.FindProperty("StartPoint");
        _endPoint   = serializedObject.FindProperty("EndPoint");
    }
Exemplo n.º 7
0
 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);
 }
Exemplo n.º 8
0
    private void Start()
    {
        gimmickManager = GetComponent <GimmickManager>();
        audioManager   = GetComponent <AudioManagerComponent>();

        CurrentSceneState.Subscribe(state =>
        {
            OnStateChanged(state);
        });

        playerLife
        .SkipLatestValueOnSubscribe()
        .Subscribe(x =>
        {
            ChangeScene(SceneState.Life);
        });
    }
Exemplo n.º 9
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>()));
        }
Exemplo n.º 10
0
 public virtual void Init()
 {
     Manager = GetComponentInParent <GimmickManager>();
     Path    = Manager.Path;
 }
 private void OnEnable()
 {
     _gimmickManager = (GimmickManager)target;
 }