public override ACT.ECombatResult Combat(ACT.IActUnit target, ACT.ISkillItem skillItem) { int tmpDamage = 0; int tmpDpDamage = 0; Unit tmpTarget = target as Unit; ACT.ECombatResult tmpResult = ACT.ECombatResult.ECR_Normal; if (tmpTarget.ActStatus.ActionState == ActData.EActionState.Defense) { tmpResult = ACT.ECombatResult.ECR_Block; } else { tmpResult = MathUtility.Combat(this, tmpTarget, out tmpDamage); } if (ACT.ECombatResult.ECR_Block != tmpResult) { if (null != skillItem) { int tmpDamageCoff = (skillItem as SkillItem).SkillAttrBase.DamageCoff; int tmpDamageBase = (skillItem as SkillItem).SkillAttrBase.DamageBase; // 技能的影响。 tmpDamage = (int)(tmpDamage * tmpDamageCoff * 0.01f + tmpDamageBase); int tmpDpDamageCoff = (skillItem as SkillItem).SkillAttrBase.DpDamageCoff; tmpDpDamage = (int)(tmpTarget.GetAttr(EPA.DpAttack) * tmpDpDamageCoff * 0.01f); } // damage should not be 0. tmpDamage = Mathf.Max(tmpDamage, 1); tmpTarget.Hurt(this, tmpDamage, tmpDpDamage, tmpResult); } else { target.Combat(this, target.ActStatus.SkillItem); Game.CameraActionMgr.StartAction(101); } return(tmpResult); }
public void OnHurt(ACT.IActUnit target) { }
public void OnHitTarget(ACT.IActUnit target) { }