Esempio n. 1
0
    public void OnGUI()
    {
        if (GUI.Button(new Rect(0, 0, 150, 40), "FightTest"))
        {
            int      cnt   = Msgs.Count;
            AttackVO atkVo = null;
            for (int i = 0; i < cnt; i++)
            {
                EffectVO vo = Msgs[i];
                vo.Target.Pid = PlayerProxy.Instance.Info.pid;

                if (vo.HeroProp == HeroPropType.Damage || vo.HeroProp == HeroPropType.Hp || vo.HeroProp == HeroPropType.Shield)
                {
                    atkVo = PVPManager.Instance.On_AddMainOverEffect(vo);
                }
                else if (null != PVPManager.Instance)
                {
                    PVPManager.Instance.On_AddEffect(vo);
                }
            }

            if (null != PVPManager.Instance && !PVPManager.Instance.InPlayMainAnimation() && null != atkVo)
            {
                PVPManager.Instance.PlayMainAnimation(atkVo);
            }
        }

        GUI.Label(new Rect(100, 100, 400, 40), FightProxy.xxxxxx);
    }
Esempio n. 2
0
    /// <summary>添加主动画过后执行效果</summary>
    /// <param name="vo"></param>
    public AttackVO On_AddMainOverEffect(EffectVO vo)
    {
        AttackVO atkvo = new AttackVO();

        atkvo.Pid       = vo.Source.Pid;
        atkvo.TargetPid = vo.Target.Pid;
        atkvo.From      = vo.Source.Target;
        atkvo.To        = vo.Target.Target;

        AttackVO dicvo;

        if (!AttackDIc.TryGetValue(atkvo.ID, out dicvo))
        {
            AttackDIc[atkvo.ID] = atkvo;
        }

        AttackDIc[atkvo.ID].Effects.Add(vo);

        return(AttackDIc[atkvo.ID]);
    }
Esempio n. 3
0
    /// <summary>卡牌产生的效果</summary>
    /// <param name="data"></param>
    public void OnRec_EffectMsg(object data)
    {
        EffectsMsg msg = data as EffectsMsg;

        List <EffectVO> vos   = new List <EffectVO>();
        int             cnt   = msg.effect.Count;
        AttackVO        atkVo = null;

        bool doeffect = false;

        for (int i = 0; i < cnt; i++)
        {
            EffectVO vo = new EffectVO();
            vo.Prase(msg.effect[i]);

            vos.Add(vo);

            if (vo.HeroProp == HeroPropType.Damage || vo.HeroProp == HeroPropType.Hp || vo.HeroProp == HeroPropType.Shield)
            {
                atkVo = PVPManager.Instance.On_AddMainOverEffect(vo);
            }
            else if (null != PVPManager.Instance)
            {
                doeffect = true;
                PVPManager.Instance.On_AddEffect(vo);
            }

            Debug.LogError("EffectMsg:" + msg.effect[i].target.type + " | Prop:" + msg.effect[i].prop + " | Value:" + msg.effect[i].value + " TargetIndex:" + msg.effect[i].target.index);
        }

        if (doeffect)
        {
            PVPManager.Instance.On_DoMoveNextEffect();
        }


        if (null != PVPManager.Instance && null != atkVo)
        {
            PVPManager.Instance.PlayMainAnimation(atkVo);
        }
    }
Esempio n. 4
0
    /// <summary>播放攻击主动画</summary>
    /// <param name="atkVo"></param>
    public void PlayMainAnimation(AttackVO atkVo)
    {
        if (CurrentAttack != null)
        {
            if (mAttkQueue == null)
            {
                mAttkQueue = new List <string>();
            }

            mAttkQueue.Add(atkVo.ID);
            return;
        }

        CurrentAttack = atkVo;
        AttackDIc.Remove(atkVo.ID);

        string warnstr = CurrentAttack == null ? "CurrentAttack is Null" : "CurrentAttack not Null";

        Debug.Log(warnstr);

        bool isFst = atkVo.TargetPid == FightProxy.Instance.RoomInfo.frole.pid;

        CardRole cd0 = PVPManager.Instance.GetCardRoleByPos(isFst, atkVo.From);
        CardRole cd1 = PVPManager.Instance.GetCardRoleByPos(!isFst, atkVo.To);


        PVPManager.Instance.TweenOutOrgObjectAtk   = cd0.transform;
        PVPManager.Instance.TweenOutOrgObjectAtked = cd1.transform;

        Vector3 atkScreenPos   = AvatarCamera.WorldToScreenPoint(PVPManager.Instance.TweenOutOrgObjectAtk.position);
        Vector3 atkedScreenPos = AvatarCamera.WorldToScreenPoint(PVPManager.Instance.TweenOutOrgObjectAtked.position);

        PVPManager.Instance.IsMirror = atkScreenPos.x > atkedScreenPos.x;

        PVPManager.Instance.PlayMainAnimation();
    }
Esempio n. 5
0
    // Update is called once per frame
    void Update()
    {
        if (null != SkillSystem.Instance.TriggerStay)
        {
            SkillSystem.Instance.TriggerStay();
        }

        bool isTwoOver = mTweenOutAtkOver && mTweenOutAtkedOver;
        bool isSngOver = TweenOut_IsSng && mTweenOutAtkOver;

        if ((isTwoOver || isSngOver) && null != mFightObject)
        {
            mTweenOutAtkOver   = false;
            mTweenOutAtkedOver = false;

            //TweenOutAtk.Target.gameObject.SetActive(false);
            //TweenOutAtked.Target.gameObject.SetActive(false);

            mFightObject.SetActive(true);
        }

        if (null != TweenOutAtk)
        {
            TweenOutAtk.Update();
        }

        if (null != TweenOutAtked)
        {
            TweenOutAtked.Update();
        }

        if (null != TweenOutAtk && null != TweenOutAtked && TweenOutAtk.TweenBackIsComplete && TweenOutAtked.TweenBackIsComplete)
        {
            TweenOutOrgObjectAtk.gameObject.SetActive(true);
            TweenOutOrgObjectAtked.gameObject.SetActive(true);

            TweenOutAtk.ResetBool();
            TweenOutAtked.ResetBool();

            GameObject.DestroyObject(TweenOutAtk.Target.gameObject);
            GameObject.DestroyObject(TweenOutAtked.Target.gameObject);

            CurrentAttack = null;
            PlayNextMainAnimation();
        }
        else if (null != TweenOutAtk && TweenOutAtk.TweenBackIsComplete && TweenOut_IsSng)
        {
            TweenOutOrgObjectAtk.gameObject.SetActive(true);

            TweenOutAtk.ResetBool();

            GameObject.DestroyObject(TweenOutAtk.Target.gameObject);

            CurrentAttack = null;
            PlayNextMainAnimation();
        }


        if (null != mAtkOutTransform &&
            null != mAtkedOutTransform &&
            TweenOutAtk.TweenOutIsComplete &&
            TweenOutAtked.TweenOutIsComplete)
        {
            GameObject.DestroyObject(TweenOutAtk.Target.gameObject);

            TweenOutAtk.Target = null;
            mAtkOutTransform   = null;
            mAtkedOutTransform = null;
        }
        else if (null != mAtkOutTransform &&
                 TweenOutAtk.TweenOutIsComplete &&
                 TweenOut_IsSng)
        {
            GameObject.DestroyObject(TweenOutAtk.Target.gameObject);

            TweenOutAtk.Target = null;
            mAtkOutTransform   = null;
            mAtkedOutTransform = null;
        }

        bool isSng = TweenOutAtk_ResLoaded && TweenOut_IsSng;
        bool isTwo = TweenOutAtk_ResLoaded && TweenOutAtked_ResLoaded;

        if (isSng || isTwo)
        {
            TweenOutAtk_ResLoaded   = false;
            TweenOutAtked_ResLoaded = false;

            TweenOutAtk.TweenToFightLayer();
            if (!TweenOut_IsSng)
            {
                TweenOutAtked.TweenToFightLayer(true);
            }

            TweenOutOrgObjectAtk.gameObject.SetActive(false);
            if (!TweenOut_IsSng)
            {
                TweenOutOrgObjectAtked.gameObject.SetActive(false);
            }
        }
    }