Exemple #1
0
    public void ToggleGrab(bool undo = false)
    {
        Tile facingTile = GetFacingTile();

        if (facingTile == null)
        {
            return;
        }
        if (m_Bin != null)
        {
            if (facingTile.IsEmpty())
            {
                SetBinCoordinates();
                facingTile.SetTileObject(m_Bin);
                m_Bin.transform.SetParent(null, true);
                GoalManagerProxy.Get().OnBinPlaced((Bin)m_Bin);
                m_Bin = null;
                m_Animator.SetBool("IsGrabbing", false);
            }
        }
        else
        {
            TileObject bin = facingTile.GetTileObject();
            if (bin != null && bin.GetObjectType() == ETileObjectType.Bin)
            {
                facingTile.SetTileObject(null);
                bin.transform.SetParent(transform, true);
                m_Bin = bin;
                GoalManagerProxy.Get().OnBinRemoved((Bin)m_Bin, undo);
                m_Animator.SetBool("IsGrabbing", true);
            }
        }
    }
Exemple #2
0
    public override void Init(ETileObjectType type, int x, int y, string[] args)
    {
        base.Init(type, x, y, args);
        m_Number = Int32.Parse((String)args.GetValue(0));
        GameObject numberObject = GameObject.Instantiate(RessourceManager.LoadPrefab("number"));

        numberObject.transform.SetParent(transform, false);
        numberObject.GetComponent <SpriteRenderer> ().sprite = RessourceManager.LoadSprite("number-" + (m_Number + 1), 0);
        GoalManagerProxy.Get().RegisterBin(this);
    }
Exemple #3
0
 public void OnSceneLoaded(Scene scene, LoadSceneMode mode)
 {
     if (GetActiveSceneName() == "Level")
     {
         TileManagerProxy.Get().Reset();
         GoalManagerProxy.Get().Reset();
         CommandStackProxy.Get().Reset();
         m_NumberOfMove = 0;
         string levelName = GetCurrentLevelName();
         m_LevelDimension = LevelParser.GenLevel("/" + levelName + ".txt");
         new LevelEvent(m_CurrentLevel, true).Push();
         new BinSpawnEvent(true, 0).Push();
         new DialogueEvent(levelName + "-start").Push();
     }
 }
Exemple #4
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;
        }
    }
Exemple #5
0
 private void OnDestroy()
 {
     GoalManagerProxy.Get().UnegisterBin(this);
 }