Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    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);
    }