/// <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; } }
/// <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); }