コード例 #1
0
        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;
        }
コード例 #2
0
 public override void IBuff_OnStartBuff(CBuffManager <ETestBuffType, TestBuffBase> pBuffManager, float fDebuffDuration, int iDebuffPower, Dictionary <ETestBuffType, TestBuffBase> mapCurrentWorkingBuff)
 {
     if (mapCurrentWorkingBuff.ContainsKey(ETestBuffType.Buff_AddHP))
     {
         pBuffManager.DoFinishBuff(ETestBuffType.Buff_AddHP);
     }
 }
コード例 #3
0
        // ========================================================================== //

        public CBuff(CObjectBase pObjectOwner, CLASS_BUFF pBuffData, CBuffManager <T_BUFF_NAME, CLASS_BUFF> pBuffManager)
        {
            _pObjectOwner         = pObjectOwner;
            _eDebuffOverlapOption = EBuffOverlapOption_Flag.Nothing;
            _fTickUnit            = 1f;
            _pBuffManager         = pBuffManager;

            p_pBuff             = pBuffData;
            p_pBuff.p_pBuffData = this;
            p_pBuff.IBuff_OnInit(pObjectOwner, ref _eDebuffOverlapOption, ref _fTickUnit);
        }
コード例 #4
0
 public override void IBuff_OnBuff(CBuffManager <ETestBuffType, TestBuffBase> pBuffManager, int iBuffPower, Dictionary <ETestBuffType, TestBuffBase> mapCurrentWorkingBuff, ref bool bIsFinish_ThisBuff_Default_IsFalse)
 {
     if (_pHPContainer != null && _pHPContainer.p_bIsAlive)
     {
         _pHPContainer.DoDamageHP(iBuffPower);
         if (_pHPContainer.p_bIsAlive == false)
         {
             bIsFinish_ThisBuff_Default_IsFalse = true;
         }
     }
     else
     {
         bIsFinish_ThisBuff_Default_IsFalse = true;
     }
 }
コード例 #5
0
        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;
        }
コード例 #6
0
 public override void IBuff_OnBuff(CBuffManager <ETestBuffType, TestBuffBase> pBuffManager, int iBuffPower, Dictionary <ETestBuffType, TestBuffBase> mapCurrentWorkingBuff, ref bool bIsFinish_ThisBuff_Default_IsFalse)
 {
     ExecuteCount += iBuffPower;
 }
コード例 #7
0
 virtual public void IBuff_OnStartBuff(CBuffManager <ETestBuffType, TestBuffBase> pBuffManager, float fDebuffDuration, int iDebuffPower, Dictionary <ETestBuffType, TestBuffBase> mapCurrentWorkingBuff)
 {
 }
コード例 #8
0
 abstract public void IBuff_OnBuff(CBuffManager <ETestBuffType, TestBuffBase> pBuffManager, int iBuffPower, Dictionary <ETestBuffType, TestBuffBase> mapCurrentWorkingBuff, ref bool bIsFinish_ThisBuff_Default_IsFalse);