Exemplo n.º 1
0
    public void Setup(RecipeModel model)
    {
        _model = model;
        MolecularWeightLabel.text = _model.MolecularMass.ToString();
        ExchangeRateLabel.text    = _model.ExchangeRate.ToString();
        HardCurrencyLabel.text    = "0";

        AmountSlider.OnValueChangedAsObservable().Subscribe(UpdateSliderLabel).AddTo(this);
        ConvertButton.OnClickAsObservable().Subscribe(_ => handleConvertButtonClick()).AddTo(this);

        for (int i = 0; i < _model.FormulaAtomsList.Count; i++)
        {
            GameObject           go               = Instantiate(FormulaAtomPrefab, RecipeFormula);
            FormulaAtomComponent formulaAtom      = go.GetComponent <FormulaAtomComponent>();
            FormulaAtomModel     formulaAtomModel = _model.FormulaAtomsList[i];

            if (formulaAtomModel.AtomicNumber < gameModel.User.Atoms.Count)
            {
                listenForAtomStockChange(formulaAtomModel.AtomicNumber);
            }

            formulaAtom.Setup(formulaAtomModel);
        }

        _isSetup = true;

        gameModel.User.Atoms.ObserveAdd().Subscribe(addEvent => listenForAtomStockChange(addEvent.Value.AtomicNumber));

        UpdateSliderLabel(0);
    }
Exemplo n.º 2
0
    public void Setup(FormulaAtomModel model)
    {
        _model      = model;
        Symbol.text = _model.Symbol;
        Amount.text = _model.Amount.ToString();

        gameModel.User.Atoms.ObserveAdd().Subscribe(addEvent => listenForAtomStockChange(addEvent.Value.AtomicNumber));

        if (_model.AtomicNumber < gameModel.User.Atoms.Count)
        {
            listenForAtomStockChange(_model.AtomicNumber);
        }

        _model.HaveEnough
        .Select(x => x ? _color = gameModel.Config.GreenColor : _color = Color.red)
        .Subscribe(_ => { Symbol.color = _color; Amount.color = _color; })
        .AddTo(this);
    }