public void SetUp() { _currency = new Currency("NCG", 2, minters: null); _goldBalanceState = new GoldBalanceState( new PrivateKey().ToAddress(), new FungibleAssetValue(_currency)); }
public void TearDown() { _avatarState = null; _goldBalanceState = null; _agentState = null; _tableSheets = null; }
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); }
/// <summary> /// 인자로 받은 잔고 상태에 로컬 세팅을 반영한다. /// </summary> public GoldBalanceState Modify(GoldBalanceState state) { if (state is null || !state.address.Equals(_agentGoldModifierInfo.Address)) { return(state); } return(PostModify(state, _agentGoldModifierInfo)); }
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); }
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()); }
/// <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); }
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)); }
public void TearDown() { _goldBalanceState = null; _currency = default; }