Example #1
0
        /// <summary>
        /// 动态添加
        /// </summary>
        public void AddResultValue(eBuffEffectType type, float value)
        {
            if (null == Owner)
            {
                return;
            }

            float tempValue = value;

            switch (type)
            {
            case eBuffEffectType.影响生命:
                Owner.ChangeHP((int)tempValue, Caster);
                if (tempValue < 0)
                {
                    Owner.UpdateEnmityList(Caster.Id, (int)tempValue);
                    Owner.SendFlutterInfo((int)eFlutterInfoType.BuffReduceHp, BuffId, Level, -1 * (int)tempValue, Caster);
                }
                else if (tempValue > 0)
                {
                    Owner.SendFlutterInfo((int)eFlutterInfoType.BuffAddHp, BuffId, Level, -1 * (int)tempValue, Caster);
                }
                break;

            case eBuffEffectType.影响技能加成:
                float attackTotal = Caster.FinalRoleValue.Atk * tempValue;
                float defendTotal = Owner.FinalRoleValue.GetDef(Caster.ElemType);
                tempValue = AttackImpact.ComputeAttackImpact(attackTotal, defendTotal, eHitType.Hit, Caster, Owner);
                Owner.ChangeHP(-1 * (int)tempValue, Caster);
                Owner.SendFlutterInfo((int)eFlutterInfoType.BuffReduceHp, BuffId, Level, (int)tempValue, Caster);
                break;
            }
        }