Esempio n. 1
0
 public void SetUp()
 {
     _currency         = new Currency("NCG", 2, minters: null);
     _goldBalanceState = new GoldBalanceState(
         new PrivateKey().ToAddress(),
         new FungibleAssetValue(_currency));
 }
Esempio n. 2
0
 public void TearDown()
 {
     _avatarState      = null;
     _goldBalanceState = null;
     _agentState       = null;
     _tableSheets      = null;
 }
Esempio n. 3
0
        public void AgentGoldModifier()
        {
            var gold     = _goldBalanceState.Gold;
            var modifier = JsonTest(new AgentGoldModifier(gold.Currency, 100));

            _goldBalanceState = modifier.Modify(_goldBalanceState);
            Assert.AreEqual(gold + new FungibleAssetValue(gold.Currency, 100, 0),
                            _goldBalanceState.Gold);
        }
Esempio n. 4
0
        /// <summary>
        /// 인자로 받은 잔고 상태에 로컬 세팅을 반영한다.
        /// </summary>
        public GoldBalanceState Modify(GoldBalanceState state)
        {
            if (state is null ||
                !state.address.Equals(_agentGoldModifierInfo.Address))
            {
                return(state);
            }

            return(PostModify(state, _agentGoldModifierInfo));
        }
Esempio n. 5
0
        public void SetGoldBalanceState(GoldBalanceState goldBalanceState)
        {
            if (goldBalanceState is null)
            {
                Debug.LogWarning($"[{nameof(States)}.{nameof(SetGoldBalanceState)}] {nameof(goldBalanceState)} is null.");
                return;
            }

            GoldBalanceState = LocalLayer.Instance.Modify(goldBalanceState);
            AgentStateSubject.Gold.OnNext(GoldBalanceState.Gold);
        }
Esempio n. 6
0
        public void SetUp()
        {
            _tableSheets = TableSheetsHelper.MakeTableSheets();
            _agentState  = new AgentState(new Address());
            var currency = new Currency("NCG", 2, minter: null);
            var gold     = new FungibleAssetValue(currency, 0, 0);

            _goldBalanceState = new GoldBalanceState(_agentState.address, gold);
            _avatarState      = new AvatarState(
                new Address(),
                _agentState.address,
                0,
                _tableSheets.GetAvatarSheets(),
                new GameConfigState(),
                new Address());
        }
Esempio n. 7
0
        /// <summary>
        /// Modify the agent's gold.
        /// </summary>
        /// <param name="agentAddress"></param>
        /// <param name="gold"></param>
        public static void ModifyAgentGold(Address agentAddress, FungibleAssetValue gold)
        {
            if (gold.Sign == 0)
            {
                return;
            }

            var modifier = new AgentGoldModifier(gold);

            LocalLayer.Instance.Add(agentAddress, modifier);

            //FIXME Avoid LocalLayer duplicate modify gold.
            var state = new GoldBalanceState(agentAddress, Game.Game.instance.Agent.GetBalance(agentAddress, gold.Currency));

            if (!state.address.Equals(agentAddress))
            {
                return;
            }

            States.Instance.SetGoldBalanceState(state);
        }
Esempio n. 8
0
        public void ModifyTest()
        {
            Assert.True(_goldBalanceState.Gold.Equals(new FungibleAssetValue(_currency)));
            var fav       = new FungibleAssetValue(_currency, 100, 0);
            var modifier  = new AgentGoldModifier(fav);
            var beforeFav = _goldBalanceState.Gold;

            _goldBalanceState = modifier.Modify(_goldBalanceState);
            Assert.True(_goldBalanceState.Gold.Equals(beforeFav + fav));

            fav               = new FungibleAssetValue(_currency, -100, 0);
            modifier          = new AgentGoldModifier(fav);
            beforeFav         = _goldBalanceState.Gold;
            _goldBalanceState = modifier.Modify(_goldBalanceState);
            Assert.True(_goldBalanceState.Gold.Equals(beforeFav + fav));

            fav               = new FungibleAssetValue(_currency, -100, 0);
            modifier          = new AgentGoldModifier(fav);
            beforeFav         = _goldBalanceState.Gold;
            _goldBalanceState = modifier.Modify(_goldBalanceState);
            Assert.True(_goldBalanceState.Gold.Equals(beforeFav + fav));
        }
Esempio n. 9
0
 public void TearDown()
 {
     _goldBalanceState = null;
     _currency         = default;
 }