public bool CanOpenChest(ITimedChestData i_data) { int keysRequired = i_data.GetKeysRequired(); int keysOwned = GetCurrentKeysForChest(i_data.GetKeyId()); return(keysOwned >= keysRequired); }
public void CommonInstall() { MockStringTable = Substitute.For <IStringTableManager>(); MockSaveData = Substitute.For <ITimedChestSaveData>(); MockData = Substitute.For <ITimedChestData>(); MockRewardSpawner = Substitute.For <ISingleRewardPM_Spawner>(); MockCountdownSpawner = Substitute.For <IMyCountdown_Spawner>(); MockBusyIndicator = Substitute.For <IAppBusyPM>(); }
private void SendOpenRequestToServer(ITimedChestData i_data, ITimedChestPM i_chestPM) { Dictionary <string, string> cloudParams = new Dictionary <string, string>() { { "Id", i_data.GetId() } }; mBackend.MakeCloudCall(BackendMethods.OPEN_TIMED_CHEST, cloudParams, (result) => { OnOpenResponseFromServer(JsonConvert.DeserializeObject <OpenTimedChestResponse>(result["data"]), i_chestPM, i_data); }); }
public void CanOpenChest_ReturnsAsExpected(int i_ownedKeys, int i_requiredKeys, bool i_expected) { MockInventory.GetItemCount(Arg.Any <string>()).Returns(i_ownedKeys); ITimedChestData mockData = Substitute.For <ITimedChestData>(); mockData.GetKeysRequired().Returns(i_requiredKeys); bool canOpen = systemUnderTest.CanOpenChest(mockData); Assert.AreEqual(i_expected, canOpen); }
public TimedChestPM(IStringTableManager i_stringTable, ISingleRewardPM_Spawner i_rewardSpawner, ITimedChestSaveData i_saveData, IMyCountdown_Spawner i_countdownSpawner, IAppBusyPM i_busyIndicator, ITimedChestData i_data) { mStringTable = i_stringTable; mCountdownSpawner = i_countdownSpawner; mRewardSpawner = i_rewardSpawner; mSaveData = i_saveData; mBusyIndicator = i_busyIndicator; mData = i_data; RewardPM = mRewardSpawner.CreateEmpty(); UpdateProperties(); }
public void WhenChestIsOpened_KeysAreRemovedFromInventory() { IBasicBackend mockBackend = Substitute.For <IBasicBackend>(); systemUnderTest.Init(mockBackend); ITimedChestData mockData = Substitute.For <ITimedChestData>(); mockData.GetKeysRequired().Returns(5); mockData.GetKeyId().Returns("KeyId"); systemUnderTest.OpenChest(mockData, Substitute.For <ITimedChestPM>()); MockInventory.Received().RemoveUsesFromItem("KeyId", 5); }
public void WhenChestOpenResponseIsReceived_ChestsNextAvailableTime_IsUpdatedInSaveData() { IOpenTimedChestResponse mockResponse = Substitute.For <IOpenTimedChestResponse>(); mockResponse.IsOpeningVerified().Returns(true); mockResponse.GetNextAvailableTime().Returns(1000); ITimedChestData mockData = Substitute.For <ITimedChestData>(); mockData.GetId().Returns("TestId"); systemUnderTest.SaveData = new Dictionary <string, ITimedChestSaveDataEntry>() { { "TestId", new TimedChestSaveDataEntry() { NextAvailableTime = 0 } } }; systemUnderTest.OnOpenResponseFromServer(mockResponse, Substitute.For <ITimedChestPM>(), mockData); Assert.AreEqual(1000, systemUnderTest.SaveData["TestId"].GetNextAvailableTime()); }
public ITimedChestPM Create(ITimedChestData i_data) { return(factory.Create(i_data)); }
public void OnOpenResponseFromServer(IOpenTimedChestResponse i_response, ITimedChestPM i_chestPM, ITimedChestData i_data) { if (i_response.IsOpeningVerified()) { IDungeonReward reward = RewardSpawner.Create(i_response.GetReward()); reward.Award(); UpdateNextAvailableTime(i_data.GetId(), i_response.GetNextAvailableTime()); i_chestPM.ShowOpenReward(reward); i_chestPM.UpdateProperties(); } }
public void OpenChest(ITimedChestData i_data, ITimedChestPM i_chestPM) { RemoveKeysFromInventory(i_data); SendOpenRequestToServer(i_data, i_chestPM); }
private void RemoveKeysFromInventory(ITimedChestData i_data) { Inventory.RemoveUsesFromItem(i_data.GetKeyId(), i_data.GetKeysRequired()); }