Пример #1
0
 public override void OnExit()
 {
     new PauseEvent(false).Push();
     this.UnregisterAsListener("Player");
     this.UnregisterAsListener("Game");
     UpdaterProxy.Get().SetPause(false);
 }
Пример #2
0
 private void OnMouseEnter()
 {
     if (!UpdaterProxy.Get().IsPaused())
     {
         m_Sprite.color = Color.green;
     }
 }
Пример #3
0
 public void TestInitialize()
 {
     UpdaterProxy.Open(new Updater());
     LoggerProxy.Open(new NullLogger());
     m_HSM    = new DummyHSM();
     m_States = m_HSM.GetStates();
 }
Пример #4
0
 private void OnMouseUp()
 {
     if (m_IsVisible && !UpdaterProxy.Get().IsPaused())
     {
         new OnEdgeClick("Game", this).Push();
     }
 }
Пример #5
0
    public void ChoosePath()
    {
        m_CurrentEdge.GetEdgeResource().SetNormal();

        new CameraFollowEvent().Push();

        switch (m_MoveType)
        {
        case EEdgeType.Normal:
            m_Player.OnNormalEdge(m_CurrentEdge);
            break;

        case EEdgeType.Combat:
            new OnEdgeBattleGameEvent(true, m_CurrentEdge).Push();
            m_Player.OnEdge(m_CurrentEdge, true);
            break;

        case EEdgeType.Obstacle:
            break;

        case EEdgeType.Diversion:
            new OnDiversionEvent().Push();
            m_Player.OnEdge(m_CurrentEdge, true);
            break;
        }

        gameObject.SetActive(false);
        UpdaterProxy.Get().SetPause(false);
    }
Пример #6
0
 public override void OnEnter()
 {
     UpdaterProxy.Get().SetPause(true);
     Time.timeScale = 0;
     PlayerManagerProxy.Get().ResetStat();
     this.RegisterAsListener("Game", typeof(GameFlowEvent));
 }
Пример #7
0
 public override void OnEnter()
 {
     // TODO: Edge enter logic
     UpdaterProxy.Get().SetPause(true);
     m_Player = GameObject.FindGameObjectWithTag("Player").GetComponent <OverworldPlayerController> ();
     this.RegisterAsListener("Game", typeof(GameFlowEvent));
 }
Пример #8
0
 public void Stop()
 {
     DumpStack();
     UpdaterProxy.Get().Unregister(this, EUpdatePass.Last);
     ClearStack();
     m_TransitionQueue.Clear();
 }
Пример #9
0
 public override void OnEnter()
 {
     UpdaterProxy.Get().SetPause(true);
     this.RegisterAsListener("Game", typeof(GameFlowEvent));
     this.RegisterAsListener("Player", typeof(PlayerInputGameEvent));
     new PauseEvent(true).Push();
 }
Пример #10
0
        public void TestInitialize()
        {
            m_Updater = new Updater();
            UpdaterProxy.Open(m_Updater);
            m_EventManager = new GameEventManager();

            GameEventManagerProxy.Open(m_EventManager);
        }
Пример #11
0
 void CloseProxies()
 {
     SoundManagerProxy.Close(m_SoundManager);
     LevelManagerProxy.Close(m_LevelManager);
     InputManagerProxy.Close(m_InputManager);
     GameEventManagerProxy.Close(m_GameEventManager);
     UpdaterProxy.Close(m_Updater);
     LoggerProxy.Close(m_Logger);
 }
Пример #12
0
 void OpenProxies()
 {
     LoggerProxy.Open(m_Logger);
     UpdaterProxy.Open(m_Updater);
     GameEventManagerProxy.Open(m_GameEventManager);
     InputManagerProxy.Open(m_InputManager);
     LevelManagerProxy.Open(m_LevelManager);
     SoundManagerProxy.Open(m_SoundManager);
 }
Пример #13
0
    public void OnGameEvent(OnEdgeClick edgeEvent)
    {
        gameObject.SetActive(true);
        UpdaterProxy.Get().SetPause(true);
        m_CurrentEdge = edgeEvent.GetEdge();
        m_ChoosePathButton.interactable = m_Player.CanMoveToEdge(m_CurrentEdge);

        EdgeResource tempEdgeResource = m_CurrentEdge.GetEdgeResource();

        switch (tempEdgeResource.GetEdgeType())
        {
        case EEdgeType.Normal:
            m_MoveType = EEdgeType.Normal;
            break;

        case EEdgeType.Combat:
            if (TeamManagerProxy.Get().IsNotTooMuchCharacters(tempEdgeResource.GetEdgeCharacterNumber()))
            {
                m_MoveType = EEdgeType.Normal;
            }
            else
            {
                m_MoveType = EEdgeType.Combat;
            }
            break;

        case EEdgeType.Obstacle:
            if (TeamManagerProxy.Get().IsCharacterClass(tempEdgeResource.GetEdgeCharacterClass()))
            {
                m_MoveType = EEdgeType.Normal;
            }
            else
            {
                m_MoveType = EEdgeType.Obstacle;
                m_ChoosePathButton.interactable = false;
            }
            break;

        case EEdgeType.Diversion:
            if (TeamManagerProxy.Get().IsNotTooMuchCharacters(tempEdgeResource.GetEdgeCharacterNumber()))
            {
                m_MoveType = EEdgeType.Normal;
            }
            else
            {
                m_MoveType = EEdgeType.Diversion;
            }
            break;
        }

        m_Description.text = tempEdgeResource.GetDescription();
    }
Пример #14
0
    void Update()
    {
        if (UpdaterProxy.Get().IsPaused())
        {
            return;
        }

        if (m_FollowPlayer)
        {
            GameObject player = GameObject.FindGameObjectWithTag("Player");
            transform.position = new Vector3(player.transform.position.x, player.transform.position.y, transform.position.z);
        }
    }
Пример #15
0
    public void OnGameEvent(PlayerInputGameEvent inputEvent)
    {
        if (UpdaterProxy.Get().IsPaused() || !m_ProcessInput)
        {
            return;
        }
        string      input = inputEvent.GetInput();
        EInputState state = inputEvent.GetInputState();

        switch (input)
        {
        case "Jump":
            if (state == EInputState.Down)
            {
                Jump();
            }
            break;

        case "Right":
            Move(state == EInputState.Held ? 1 : 0);
            ChangeFacingDirection(m_Right);
            break;

        case "Left":
            Move(state == EInputState.Held ? -1 : 0);
            ChangeFacingDirection(m_Left);
            break;

        case "Blast":
            if (state == EInputState.Down)
            {
                Fire();
            }
            break;

        case "Slash":
            if (state == EInputState.Down)
            {
                Slash();
            }
            break;

        default:
            break;
        }
    }
Пример #16
0
    public void OnGameEvent(GameFlowEvent flowEvent)
    {
        switch (flowEvent.GetAction())
        {
        case EGameFlowAction.StartDialogue:
            UpdaterProxy.Get().SetPause(true);
            ChangeNextTransition(HSMTransition.EType.Child, typeof(GameFlowDialogueState));
            break;

        case EGameFlowAction.EndDialogue:
            UpdaterProxy.Get().SetPause(false);
            break;

        case EGameFlowAction.EndLevel:
            ChangeNextTransition(HSMTransition.EType.Clear, typeof(GameFlowEndLevelState));
            break;
        }
    }
Пример #17
0
    IEnumerator SpawnRountine(int binNumber)
    {
        m_Animator.SetBool("IsSpawning", true);
        SoundManagerProxy.Get().PlayMultiple(m_FallingSound);
        UpdaterProxy.Get().SetPause(true);
        yield return(new WaitForSeconds(1f));

        GameObject      binGameObject = GameObject.Instantiate(m_BinPrefab);
        TileCoordinates coordinates   = GetCoordinates();

        binGameObject.transform.position = new Vector3(coordinates.x.ToWorldUnit(), coordinates.y.ToWorldUnit(), 0);
        Bin bin = binGameObject.GetComponent <Bin> ();

        bin.Init(ETileObjectType.Bin, coordinates.x, coordinates.y, new string[] { binNumber.ToString() });
        bin.SetSpawnedCommandNumber();
        TileManagerProxy.Get().SetTileObject(coordinates, bin);
        ms_BinNumber++;

        UpdaterProxy.Get().SetPause(false);
        m_Animator.SetBool("IsSpawning", false);
    }
Пример #18
0
    // This should be called before any other gameobject awakes
    private void Awake ()
    {
        // Singleton pattern : this is the only case where it should be used
        if(ms_Instance == null)
        {
            ms_Instance = this;
            DontDestroyOnLoad (gameObject);
            
            // Keep the Updater first, as the other members might want to register to it
            m_Logger = new UnityLogger ();
            LoggerProxy.Open (m_Logger);
            m_Updater = new Updater ();
            UpdaterProxy.Open (m_Updater);
            m_GameEventManager = new GameEventManager ();
            GameEventManagerProxy.Open (m_GameEventManager);
            m_InputManager = new InputManager ();
            InputManagerProxy.Open (m_InputManager);
            m_LevelManager = new LevelManager ();
            LevelManagerProxy.Open (m_LevelManager);
            m_TileManager = new TileManager ();
            TileManagerProxy.Open (m_TileManager);
            m_CommandStack = new CommandStack ();
            CommandStackProxy.Open (m_CommandStack);
            m_GoalManager = new GoalManager ();
            GoalManagerProxy.Open (m_GoalManager);
            m_SoundManager = new SoundManager ();
            SoundManagerProxy.Open (m_SoundManager);
            m_SoundManager.SetMusicSource (m_MusicSource);
            m_SoundManager.SetFXSource (m_EfxSource);

            m_GameFlowHSM = new GameFlowHSM ();
            m_GameFlowHSM.Start (typeof (GameFlowMenuState));
        }
        else if (ms_Instance != this)
        {
            Destroy (gameObject);
            return;
        }
    }
Пример #19
0
 public void TestInitialize()
 {
     UpdaterProxy.Open(m_Updater);
     GameEventManagerProxy.Open(m_EventManager);
 }
 public override void OnEnter()
 {
     UpdaterProxy.Get().SetPause(true);
     this.RegisterAsListener("Game", typeof(GameFlowEvent));
 }
 public override void OnExit()
 {
     this.UnregisterAsListener("Game");
     UpdaterProxy.Get().SetPause(false);
 }
Пример #22
0
 public static void UnregisterToUpdate(this System.Object objectToNotify, params EUpdatePass[] updatePassList)
 {
     UpdaterProxy.Get().Unregister(objectToNotify, updatePassList);
 }
Пример #23
0
 public static void RegisterToUpdate(this System.Object objectToNotify, bool isPausable, params EUpdatePass[] updatePassList)
 {
     UpdaterProxy.Get().Register(objectToNotify, isPausable, updatePassList);
 }
Пример #24
0
 public void TestCleanup()
 {
     UpdaterProxy.Close(m_Updater);
 }
Пример #25
0
 public GameEventManager()
 {
     m_Notifiers      = new Dictionary <string, ListenerNotifier> ();
     m_GameEventQueue = new Queue <GameEvent> ();
     UpdaterProxy.Get().Register(this, EUpdatePass.First);
 }
Пример #26
0
 public void TestCleanup()
 {
     LoggerProxy.Close();
     UpdaterProxy.Close();
 }
Пример #27
0
 public void OnGameEvent(PlayerInputGameEvent inputEvent)
 {
     if (inputEvent.GetInput() == "Pause" && inputEvent.GetInputState() == EInputState.Down && !UpdaterProxy.Get().IsPaused())
     {
         ChangeNextTransition(HSMTransition.EType.Child, typeof(GameFlowPauseState));
     }
 }
Пример #28
0
 public void Start(StateID firstStateID)
 {
     PushState(firstStateID);
     UpdaterProxy.Get().Register(this, EUpdatePass.Last);
     DumpStack();
 }
Пример #29
0
 public void TestCleanup()
 {
     GameEventManagerProxy.Close();
     UpdaterProxy.Close();
 }
Пример #30
0
 public void TestInitialize()
 {
     m_Updater = new Updater();
     UpdaterProxy.Open(m_Updater);
 }