public virtual void EffectOnActor(BaseActorObj targetActor, Collider2D TargetCollider) { m_AttackDict.Add(targetActor, 1); Vector3 effectPs = CountHurtPs(m_ActorObj.SkillHurtBox, TargetCollider); GenEffect(effectPs); SetCutMeet(targetActor); //产生伤害 float moveDir = 1; if ((targetActor.transform.position.x - m_ActorObj.transform.position.x) < 0) { moveDir *= -1; } BaseBuff buff = null; switch (m_SkillInfo.HitType) { case HitEffectType.ClickFly: buff = new HitFlyBuff(this.m_SkillInfo, moveDir, this.m_ActorObj); break; default: buff = new HitBuff(this.m_SkillInfo, moveDir, this.m_ActorObj); break; } buff.AddToActor(targetActor); this.SetHardTime(this.m_SkillInfo.AttackHardTime); }
public override void startPrepare() { base.startPrepare(); HitFlyBuff baseBuff = m_ActorObj.GetBuffByType(BuffType.HitFly) as HitFlyBuff; m_ActorObj.FaceToDir(baseBuff.attackter.transform.position - m_ActorObj.transform.position); m_HitFlyBuff = baseBuff == null ? new HitFlyBuff() : baseBuff as HitFlyBuff; float hardTime = m_HitFlyBuff.hardTime; SetHardTime(hardTime); Vector2 flySpeed = m_HitFlyBuff.Speed; flySpeed.x *= flySpeed.x * m_ActorObj.FaceDir.x < 0 ? -1 : 1; m_ActorObj.Physic.SetSpeed(flySpeed); m_ActorObj.ActionCtrl.AnimSpeed = 0; SetFaceLock(true); }