Ejemplo 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);
    }
Ejemplo n.º 2
0
    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;
    }
Ejemplo n.º 3
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);
        }
    }