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; }
public Debuff_DecreaseHP(HPContainer pHPContainer) { _pHPContainer = pHPContainer; }
public Buff_AddHP(HPContainer pHPContainer) { _pHPContainer = pHPContainer; }