public IEnumerator Working_TickUnit([Random(0.05f, 0.2f, 2)] float fTickUnit, [Random(1f, 3f, 2)] float fTotalDuration) { CBuffManager_Test pObjectTester = new GameObject(nameof(Working_TickUnit)).AddComponent <CBuffManager_Test>(); CBuffManager <ETestBuffType, TestBuffBase> pBuffManager = new CBuffManager <ETestBuffType, TestBuffBase>(); AddTickUnitCount pAddUnitCount = new AddTickUnitCount(fTickUnit); pBuffManager.DoAwake(pObjectTester, pAddUnitCount); Time.timeScale = 3f; pBuffManager.DoAddBuff(ETestBuffType.AddTickUnitCount, fTotalDuration, 1); AddTickUnitCount.ExecuteCount = 0; Assert.AreEqual(AddTickUnitCount.ExecuteCount, 0); float fElapseTime = 0f; while (fElapseTime < fTotalDuration) { pBuffManager.OnUpdate(1f); fElapseTime += Time.deltaTime; yield return(null); } int iCalculatedExecuteCount = Mathf.FloorToInt(fTotalDuration / fTickUnit); Debug.Log("ExecuteCount : " + AddTickUnitCount.ExecuteCount + " iCalculatedExecuteCount : " + iCalculatedExecuteCount); Assert.IsTrue(AddTickUnitCount.ExecuteCount == iCalculatedExecuteCount || AddTickUnitCount.ExecuteCount == iCalculatedExecuteCount + 1); Time.timeScale = 1f; yield break; }
public IEnumerator HP_Buff_And_Debuff() { CBuffManager_Test pObjectTester = new GameObject(nameof(HP_Buff_And_Debuff)).AddComponent <CBuffManager_Test>(); CBuffManager <ETestBuffType, TestBuffBase> pBuffManager = new CBuffManager <ETestBuffType, TestBuffBase>(); HPContainer pHPContainer = new HPContainer(const_iInitHP); pBuffManager.DoAwake(pObjectTester, new Buff_AddHP(pHPContainer), new Debuff_DecreaseHP(pHPContainer)); Time.timeScale = 3f; int iDecreasePower = Random.Range(1, 5); pBuffManager.DoAddBuff(ETestBuffType.Debuff_DecreaseHP, const_iInitHP, iDecreasePower); Assert.AreEqual(pHPContainer.iHP, const_iInitHP); float fElapseTime = 0f; while (pHPContainer.p_bIsAlive) { pBuffManager.OnUpdate(1f); fElapseTime += Time.deltaTime; yield return(null); } Assert.AreEqual(pHPContainer.iHP, 0); Assert.IsFalse(pBuffManager.p_mapBuffWorking.ContainsKey(ETestBuffType.Debuff_DecreaseHP)); fElapseTime = 0f; int iRecoveryPower = Random.Range(1, 5); pBuffManager.DoAddBuff(ETestBuffType.Buff_AddHP, const_iInitHP, iRecoveryPower); while (pHPContainer.iHP != pHPContainer.iHP_MAX) { pBuffManager.OnUpdate(1f); fElapseTime += Time.deltaTime; yield return(null); } Assert.AreEqual(pHPContainer.iHP, pHPContainer.iHP_MAX); Assert.IsFalse(pBuffManager.p_mapBuffWorking.ContainsKey(ETestBuffType.Buff_AddHP)); Time.timeScale = 1f; yield break; }