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 HitAction(BaseActorObj baseActorObj, SkillInfo skillInfo) : base(baseActorObj, skillInfo) { SetFaceLock(true); BaseBuff baseBuff = baseActorObj.GetBuffByType(BuffType.Hit); m_HitBuff = baseBuff == null? new HitBuff(): baseBuff as HitBuff; float hardTime = m_HitBuff.hardTime; SetHardTime(hardTime); m_ActorObj.Physic.SetSpeed(Vector2.right * m_HitBuff.addSpeed); m_ActorObj.ActionCtrl.AnimSpeed = 0; }
public virtual void startPrepare() { m_ActorObj.BeHitEffect.MoveVector.y = 0; _Effect = m_ActorObj.BeHitEffect; Vector2 moveSpeed = _Effect.MoveVector; //_ActorObj.PhysicCtrl.SetSpeed(moveSpeed); float numSpeed = moveSpeed.magnitude; SetSpeed(-1 * numSpeed); HitBuff buff = m_ActorObj.GetBuffByType(BuffType.Hit) as HitBuff; if (buff != null) { Vector3 lookVector = buff.Attackter.transform.position - m_ActorObj.transform.position; lookVector.y = 0; m_ActorObj.FaceToDir(lookVector); float hardTime = buff.hardTime;// _Effect.HardValue * m_ActorObj.ActorPropty.HeavyRate; SetHardTime(hardTime); } }