public override void OnExecute()
        {
            switch (this.BuffData.BuffWorkType)
            {
            case BuffWorkTypes.ChangeAttackValue:
                ConstantModifier constantModifier_AttackValue = ReferencePool.Acquire <ConstantModifier>();
                constantModifier_AttackValue.ChangeValue = BuffDataCalculateHelper.CalculateCurrentData(this, this.BuffData);
                dataModifier = constantModifier_AttackValue;

                this.GetBuffTarget().GetComponent <DataModifierComponent>()
                .AddDataModifier(NumericType.AttackAdd.ToString(), dataModifier, NumericType.AttackAdd);
                break;

            case BuffWorkTypes.ChangeMagic:
                PercentageModifier constantModifier_Magic = ReferencePool.Acquire <PercentageModifier>();
                constantModifier_Magic.Percentage = BuffDataCalculateHelper.CalculateCurrentData(this, this.BuffData);
                this.dataModifier = constantModifier_Magic;

                this.GetBuffTarget().GetComponent <DataModifierComponent>()
                .AddDataModifier(NumericType.Mp.ToString(), this.dataModifier, NumericType.Mp);
                break;

            case BuffWorkTypes.ChangeSpeed:
                PercentageModifier percentageModifier_Speed = ReferencePool.Acquire <PercentageModifier>();
                percentageModifier_Speed.Percentage = BuffDataCalculateHelper.CalculateCurrentData(this, this.BuffData);
                this.dataModifier = percentageModifier_Speed;

                this.GetBuffTarget().GetComponent <DataModifierComponent>()
                .AddDataModifier(NumericType.SpeedAdd.ToString(), this.dataModifier, NumericType.SpeedAdd);
                break;
            }

            this.BuffState = BuffState.Running;
        }
Beispiel #2
0
        protected override void OnExecute()
        {
            int prevHealth = Target.Health.CurrentValue;

            mModifier = new PercentageModifier(mHealPercantage.CurrentValue, roundedUp: false);
            Target.Health.AddModifier(this, mModifier);

            mHealingAmount = Target.Health.CurrentValue - prevHealth;
        }
Beispiel #3
0
        public void CanAddPercentageModifier()
        {
            float        added    = 0.1f;
            int          expected = _testableStat.Value + (int)(added * _testableStat.Base);
            StatModifier mod      = new PercentageModifier(added);

            _testableStat.AddModifier(mod);

            Assert.AreEqual(expected, _testableStat.Value);
        }
Beispiel #4
0
        public void CanAddMixedModifiers()
        {
            float        added     = 0.1f;
            int          flatAdded = 20;
            int          expected  = _testableStat.Value + (int)(added * _testableStat.Base) + flatAdded;
            StatModifier mod       = new PercentageModifier(added);
            StatModifier mod2      = new FlatModifier(flatAdded);

            _testableStat.AddModifier(mod);
            _testableStat.AddModifier(mod2);

            Assert.AreEqual(expected, _testableStat.Value);
        }
Beispiel #5
0
 public void Add(PercentageModifier pm, MonoBehaviour origin)
 {
     pm.origin = origin;
     influencingPercentages.Add(pm);
 }