public void OnMessage(GoldBarsRemoved message)
 {
     while (_goldBars.Count > 0)
     {
         GoldBarModel goldBarModel = _goldBars.First().Key;
         MoveViewBackToPool(goldBarModel);
     }
 }
        private void MoveViewBackToPool(GoldBarModel goldBarModel)
        {
            var goldBarView = _goldBars[goldBarModel];

            goldBarView.gameObject.SetActive(false);
            _goldBars.Remove(goldBarModel);

            _goldBarsPool.Add(goldBarView);

            _controller.RemoveGoldBar(goldBarModel);
        }
 public void Load()
 {
     if (PlayerPrefs.HasKey(StoreKey))
     {
         var goldBarsCount = PlayerPrefs.GetInt(StoreKey);
         for (int i = 0; i < goldBarsCount; ++i)
         {
             var positionIndex = PlayerPrefs.GetInt($"{GoldBarStoreKeyPrefix}{i.ToString()}");
             var goldBarModel  = new GoldBarModel(positionIndex);
             _model.AddGoldBar(goldBarModel);
         }
     }
 }
        private void CreateGoldBarView(GoldBarModel goldBarModel)
        {
            var goldBarController = new GoldBarController(goldBarModel);

            GoldBarView goldBarView;

            if (_goldBarsPool.Count > 0)
            {
                goldBarView = _goldBarsPool.First();
                _goldBarsPool.Remove(goldBarView);
            }
            else
            {
                goldBarView = Instantiate(Resources.Load <GoldBarView>(PrefabPath.GoldBarView), transform);
            }

            var initialPosition = _fieldGrid.Grid[goldBarModel.PositionIndex];

            goldBarView.gameObject.SetActive(true);
            goldBarView.transform.localPosition = initialPosition;
            goldBarView.Initialize(new GoldBarView.Data(_performer, goldBarController, initialPosition));
            _goldBars.Add(goldBarModel, goldBarView);
            goldBarController.Listenable.AddListener <GoldBarCollected>(this);
        }
 public void RemoveGoldBar(GoldBarModel goldBar) => _model.RemoveGoldBar(goldBar);
 public void AddGoldBar(GoldBarModel goldBar) => _model.AddGoldBar(goldBar);
示例#7
0
 public GoldBarFound(GoldBarModel goldBarModel)
 {
     GoldBarModel = goldBarModel;
 }
示例#8
0
 public GoldBarCollected(GoldBarModel goldBarModel)
 {
     GoldBarModel = goldBarModel;
 }
 public GoldBarController(GoldBarModel model)
 {
     _model = model;
 }