public void BuildAsset() { var g = new TestGame(); Assert.True(g.AssetRepository.HasAsset(g.WorldStateFactory.Player1, Id.AssetDef("asset1"))); Assert.False(g.AssetRepository.HasAsset(g.WorldStateFactory.Player1, Id.AssetDef("asset2"))); Assert.Equal(1000, g.ResourceRepository.GetAmount(g.WorldStateFactory.Player1, Id.ResDef("res1"))); Assert.Equal(2000, g.ResourceRepository.GetAmount(g.WorldStateFactory.Player1, Id.ResDef("res2"))); g.AssetRepositoryWrite.BuildAsset(new Commands.BuildAssetCommand(g.WorldStateFactory.Player1, Id.AssetDef("asset2"))); Assert.Equal(1000 - 150, g.ResourceRepository.GetAmount(g.WorldStateFactory.Player1, Id.ResDef("res1"))); Assert.Equal(2000 - 300, g.ResourceRepository.GetAmount(g.WorldStateFactory.Player1, Id.ResDef("res2"))); Assert.False(g.AssetRepository.HasAsset(g.WorldStateFactory.Player1, Id.AssetDef("asset2"))); g.TickEngine.IncrementWorldTick(9); g.TickEngine.CheckAllTicks(); Assert.False(g.AssetRepository.HasAsset(g.WorldStateFactory.Player1, Id.AssetDef("asset2"))); g.TickEngine.IncrementWorldTick(1); g.TickEngine.CheckAllTicks(); Assert.True(g.AssetRepository.HasAsset(g.WorldStateFactory.Player1, Id.AssetDef("asset2"))); }