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;
            }
        }
Example #2
0
        /// <summary>
        /// 释放动作
        /// </summary>
        public override bool Cast(RoleActor target, SkillActive skill)
        {
            if (!base.Cast(target, skill))
            {
                return(false);
            }

            RoleActor owner = skill.Owner;

            if (null == owner || null == target || owner == target)
            {
                return(false);
            }

            AttackImpact impact = new AttackImpact();

            impact.Init(skill, target);
            impact.Run();
            if (impact.HitType == eHitType.Miss)
            {
                return(false);
            }
            switch (owner.GameType)
            {
            case eActorGameType.Player:
            {
            }
            break;

            case  eActorGameType.Npc:
            {
            }
            break;
            }

            return(true);
        }