Esempio n. 1
0
    /// <summary>
    /// 执行攻击
    /// </summary>
    private void DoAttack()
    {
        if (m_effect != null)
        {
            /*m_effect.DestroyEffect();
             * m_effect = null;*/
            GameObject.Destroy(m_effect);
        }
        GameObject.Destroy(m_effectGo);
        GameObject posgo = m_Owner.m_Skin.ProPerty.HelpPoint.GetVauleByKey(HelpPointName.FirePos);

        if (posgo != null && m_Owner.m_target != null)
        {
            GameObjectActionExcute gae = EffectM.LoadEffect("effect/prefab/", "1003031", posgo.transform.position, m_Owner.m_target.m_thisT);
            if (gae != null)
            {
                GameObjectActionDelayDestory ndEffect = new GameObjectActionDelayDestory(1.3f);
                gae.AddAction(ndEffect);
            }
        }
        m_Owner.m_Skin.tRoot.position = m_Owner.m_Parent.GetSkin().tRoot.position;
        m_DoAttackFun(m_skillInfo, m_times);
        m_petState       = Pet1002State.stand;
        m_CurrentAction  = null;
        m_bGotoFirePos   = false;
        m_bGotoAttackPos = false;
    }
Esempio n. 2
0
    public override void ColliderProc(Collision collision)
    {
        if (m_bBeKicked)
        {
            return;
        }
        LifeProperty lp = collision.gameObject.GetComponent <LifeProperty>();

        if (lp == null)
        {
            return;
        }
        IggFloor floor = collision.gameObject.GetComponent <LifeProperty>().GetLife() as IggFloor;

        if (floor != null)
        {
            m_fLiveCounter = 0;
            if (floor.isDead)
            {
                return;
            }

            if (m_Owner.m_Skill != null)
            {
                Life             lifeM = m_Owner.GetCollisionGo(collision);
                FlyCollisionInfo Info  = new FlyCollisionInfo();
                (m_Owner.m_Skill as FireSkill).FlyInfo = Info;
                Info = (m_Owner.m_Skill as FireSkill).FireTrigger(collision, lifeM, m_Owner, true, true, m_Owner.m_listCollisionGoID.Count, FlyDir.Bottom);
                if (!floor.isDead && lifeM != null)
                {
                    m_fFallSpeed = 0;
                    m_Owner.m_Skin.tRoot.parent        = BattleEnvironmentM.GetLifeMBornNode(true);
                    m_Owner.m_Skin.tRoot.localPosition = U3DUtil.SetZ(m_Owner.m_Skin.tRoot.localPosition, 0.2f);
                    //设置蹦蹦的Y位置
                    m_Owner.m_Skin.tRoot.position = U3DUtil.SetY(m_Owner.m_Skin.tRoot.position, floor.GetMapGrid().WorldPos.y);
                    m_bHitFloor = true;
                    m_petState  = Pet1002State.waitKick;
                    m_flyState  = AnimatorState.FlyAttack01100;
                }
            }
        }
    }
Esempio n. 3
0
    /// <summary>
    /// 攻击技能释放
    /// </summary>
    public void DoSkill(DoAttackFun DoAttackFun, SoldierSkill info, int times)
    {
        if (info.m_type == 1029 || info.m_type == 1031)
        {
            string name = "1003101";
            if (info.m_type == 1031)
            {
                name = "1003111";
            }
            GameObject posgo = m_Owner.m_Skin.ProPerty.HelpPoint.GetVauleByKey(HelpPointName.LeftHandPos);
            if (posgo != null)
            {
                GameObjectActionExcute gae = EffectM.LoadEffect(EffectM.sPath, name, posgo.transform.position, posgo.transform);
                m_effectGo = gae.gameObject;
                if (gae != null)
                {
                    GameObjectActionDelayDestory ndEffect = new GameObjectActionDelayDestory(2f);
                    gae.AddAction(ndEffect);
                }
            }
        }
        m_petState       = Pet1002State.toAttackPos;
        m_DoAttackFun    = DoAttackFun;
        m_skillInfo      = info;
        m_times          = times;
        m_Owner.m_target = m_Owner.m_Parent.m_Skill.m_AttackTarget;
        Int2 mappos = m_Owner.m_Parent.GetMapPos();

        if ((m_Owner.m_Parent as Role).WalkDir == WalkDir.WALKLEFT)
        {
            mappos.Unit -= 3;
        }
        else
        {
            mappos.Unit += 3;
        }
        m_run.SetBorn(mappos, 0);
        m_run.UpdataPath();
    }
Esempio n. 4
0
    // Update is called once per frame
    public override void FixUpdate()
    {
        if (m_bBeginFall)
        {
            m_fLiveCounter += Time.deltaTime;
            m_Owner.m_Skin.Move(m_flyState, Vector3.down * m_fFallSpeed * Time.deltaTime, ActionMode.Delta);
            if (m_fLiveCounter > 5.0f)
            {
                m_Owner.Dead();
            }
        }
        else
        {
            m_Owner.m_Skin.Move(m_flyState, Vector3.zero, ActionMode.Delta);
        }

        if (m_fCounter00300 > 0)
        {
            m_fCounter00300 -= Time.deltaTime;
        }
        else
        {
            SetFallDown();
            m_fCounter00300 = float.MaxValue;
        }
        if (m_bBeginKick)
        {
            if (m_fKickCounter > 0)
            {
                m_fKickCounter -= Time.deltaTime;
                m_flyState      = AnimatorState.FlyFallStand01200;//蹦蹦被踢飞动作

                GameObject posgo = m_Owner.m_Parent.GetSkin().ProPerty.HelpPoint.GetVauleByKey(HelpPointName.petFollowPos);
                Vector3    pos   = posgo.transform.position;
                Vector3    pos1;
                if (m_fKickCounter < 1.25f)   //分支 蹦蹦开始被踢的时间
                {
                    m_fKickSlerpCounter += Time.deltaTime;
                    pos1 = Vector3.Slerp(m_Owner.m_Skin.tRoot.position, pos, m_fKickSlerpCounter / 1.25f);//分支
                }
                else
                {
                    pos1 = m_Owner.m_Skin.tRoot.position;
                }
                m_Owner.m_Skin.SetMirror(m_bKickDir == Vector3.left ? WalkDir.WALKLEFT : WalkDir.WALKRIGHT);
                m_Owner.m_Skin.Move(m_flyState, pos1, ActionMode.Set, false);
                m_bBeKicked = true;
            }
            else
            {
                //Debug.Log("KickFlyEnd");
                m_petState   = Pet1002State.Follow;
                m_bBeginFall = false;
                m_bBeginKick = false;

                m_flyState = AnimatorState.Walk;
                m_Owner.SetMoveState(MoveState.Walk);
                //m_Owner.m_Core.m_MoveState = MoveState.Walk;
                Vector3 pos = Vector3.zero;
                //Vector3 pos = new Vector3(MapGrid.m_width *1* (m_bKickDir == Vector3.left ? -1 : 1), 0, 0);
                m_Owner.m_Skin.Move(m_flyState, pos, ActionMode.Delta);
                m_Owner.m_Skin.tRoot.localPosition = U3DUtil.SetZ(m_Owner.m_Skin.tRoot.localPosition, 0);
            }
        }
    }