Esempio n. 1
0
    /// <summary>
    /// 技能触发成功
    /// </summary>
    /// <param name="data"></param>
    void OnAttackSucc(CEventBaseArgs data)
    {
        uint skill_id = (uint)data.arg;

        if (skill_id != mSkillIdx)
        {
            return;
        }

        if (mClickEffect != null)
        {
            SetObjectActive(mClickEffect, false);
            SetObjectActive(mClickEffect, true);

            if (mClickEffectDelayer == null)
            {
                mClickEffectDelayer = mClickEffect.AddComponent <DelayEnableComponent>();
            }

            if (mClickEffectDelayer != null)
            {
                mClickEffectDelayer.DelayTime = 2.0f;
                mClickEffectDelayer.SetEnable = false;
                mClickEffectDelayer.Start();
            }
        }
    }
Esempio n. 2
0
    /// <summary>
    /// 技能触发成功
    /// </summary>
    /// <param name="data"></param>
    void OnAttackSucc(CEventBaseArgs data)
    {
        //uint skill_id = System.Convert.ToUInt32(data.arg);
        //if (skill_id != mSkillIdx)
        //    return;

        if (mClickEffect != null)
        {
            mClickEffect.SetActive(false);
            mClickEffect.SetActive(true);

            if (mClickEffect_DelayEnableComponent == null)
            {
                mClickEffect_DelayEnableComponent = mClickEffect.AddComponent <DelayEnableComponent>();
            }
            if (mClickEffect_DelayEnableComponent != null)
            {
                mClickEffect_DelayEnableComponent.DelayTime = 2.0f;
                mClickEffect_DelayEnableComponent.SetEnable = false;
                mClickEffect_DelayEnableComponent.Start();
            }
        }

        Game.GetInstance().GetLocalPlayer().CDCtrl.StartCD(mSkillIdx);
    }
Esempio n. 3
0
        /// <summary>
        /// 初始化子弹和对应特效的位置和方向
        /// </summary>
        /// <param name="effectObject">特效跟节点物体</param>
        /// <param name="effectObject">特效物体</param>
        /// <param name="kPos">特效位置</param>
        /// <param name="kRotation">特效初始方向</param>
        /// <param name="sDir">子弹飞行的方向</param>
        void InitEffectObject(GameObject bullet_object, GameObject effect_object)
        {
            if (bullet_object == null)
            {
                if (effect_object != null)
                {
                    CommonTool.DestroyObjectImmediate(effect_object);
                }
                return;
            }

            if (effect_object == null)
            {
                return;
            }

            Transform bullet_trans = bullet_object.transform;

            // 设置特效位置和方向
            effect_object.SetActive(false);
            Transform effect_trans = effect_object.transform;

            effect_trans.parent        = bullet_trans;
            effect_trans.localPosition = Vector3.zero;
            effect_trans.localRotation = Quaternion.identity;
            effect_trans.localScale    = Vector3.one;

            DelayEnableComponent delayEnable = bullet_object.GetComponent <DelayEnableComponent>();

            if (delayEnable == null)
            {
                delayEnable = bullet_object.AddComponent <DelayEnableComponent>();
            }
            delayEnable.DelayTime = m_DelayTime;
            delayEnable.SetEnable = true;
            delayEnable.SetEnableTarget(effect_object);
        }
Esempio n. 4
0
    /// <summary>
    /// 更新时检测技能的cd
    /// </summary>
    void Update()
    {
        if (NetReconnect.Instance.IsReconnect)
        {
            return;
        }

        // 普通攻击按键,定时自动触发点击消息
        if (mIsPressed)
        {
            if (GameInput.Instance.GetEnableInput() == false || mHoleOpen == false)
            {
                mIsPressed = false;
                return;
            }

            if (UIInputEvent.TouchedUI() == false)// 应用被切出,失去焦点
            {
                mIsPressed = false;
                StopPressWait();
                return;
            }

            float t = Time.time;
            if (t > mNextTime)
            {
                OnClick(null);

                mNextTime = t + DetalTime;
            }
        }

        var localPlayer = Game.Instance.GetLocalPlayer();

        if (localPlayer == null)// 角色为空
        {
            return;
        }

        // 技能槽未开启
        if (SkillHoleManager.Instance.IsHoleOpen(mFitPos) == false || SkillHoleManager.Instance.IsHoleWillOpen(mFitPos))
        {
            OnHoldHide();
            return;
        }

        // 技能未装配
        if (mSkillIdx == 0)
        {
            OnSkillNotFit();
            return;
        }

        // 技能为空
        Skill skill = localPlayer.GetSelfSkill(mSkillIdx);

        if (skill == null)
        {
            OnHoldClose();
            return;
        }

        // 技能正常
        OnHoldOpen();

        // 设置CD相关的显示
        if (!skill.IsInCD())// 技能不在cd中
        {
            SetObjectActive(mCDMask, false);

            if (mInCD)// 显示cd结束时候的特效
            {
                mInCD = false;
                if (mCDLevel != null)
                {
                    SetTextContent(mCDLevel, string.Empty);
                }

                if (mCDBlink != null)
                {
                    SetObjectActive(mCDBlink, false);
                    SetObjectActive(mCDBlink, true);

                    if (mCDBlinkDelayer == null)
                    {
                        mCDBlinkDelayer = mCDBlink.AddComponent <DelayEnableComponent>();
                    }

                    if (mCDBlinkDelayer != null)
                    {
                        mCDBlinkDelayer.DelayTime = 0.5f;
                        mCDBlinkDelayer.SetEnable = false;
                        mCDBlinkDelayer.Start();
                    }
                }
            }
        }
        else// 在cd中
        {
            mInCD = true;

            SetObjectActive(mCDMask, true);

            if (mCDMaskImage != null)
            {
                CooldownCtrl.CDInstance cd_inst = skill.GetCurrentCD();
                if (cd_inst != null)
                {
                    if (mCDLevel != null)
                    {
                        float level_seconds = cd_inst.GetRemainSeconds();
                        SetTextContent(mCDLevel, string.Format("{0:N1}", level_seconds));
                    }
                    mCDMaskImage.fillAmount = cd_inst.GetCDPercent();
                }
            }
        }
    }
Esempio n. 5
0
    /// <summary>
    /// 更新时检测技能的cd
    /// </summary>
    public void Update()
    {
        if (NetReconnect.Instance.IsReconnect)
        {
            return;
        }

        // 普通攻击按键,定时自动触发点击消息
        if (mIsPressed)
        {
            if (GameInput.Instance.GetEnableInput() == false || mHoleOpen == false)
            {
                mIsPressed = false;
                return;
            }

            if (UIInputEvent.TouchedUI() == false)// 应用被切出,失去焦点
            {
                mIsPressed = false;
                StopPressWait();
                return;
            }

            float t = Time.time;
            if (t > mNextTime)
            {
                OnClick(null);

                mNextTime = t + DetalTime;
            }
        }

        Actor local_player = Game.GetInstance().GetLocalPlayer();

        if (local_player == null)// 角色为空
        {
            return;
        }

        //DBInstance.InstanceInfo instanceInfo = InstanceManager.Instance.InstanceInfo;
        //if (instanceInfo != null && instanceInfo.mWarSubType == GameConst.WAR_SUBTYPE_ARENA)
        //{
        //    OnHoldHide();
        //    return;
        //}
        if (CanShowMateButton() == false)
        {
            OnHoldHide();
            return;
        }


        if (SkillHoleManager.Instance.IsHoleOpen(m_FitPos) == false || SkillHoleManager.Instance.IsHoleWillOpen(m_FitPos))// 技能槽还没开启
        {
            OnHoldHide();
            return;
        }

        if (mSkillIdx == 0)
        {
            OnSkillNotFit();
            return;
        }

        Skill skill = local_player.GetSelfSkill(mSkillIdx);

        if (skill == null)// 技能为空
        {
            OnHoldClose();
            return;
        }

        OnHoldOpen();

        // 设置CD相关的显示
        if (!skill.IsInCD())// 技能不在cd中
        {
            if (mCDMask.activeSelf)
            {
                mCDMask.SetActive(false);
            }

            if (mInCD)// 显示cd结束时候的特效
            {
                mInCD = false;
                if (mCDLevel != null)
                {
                    mCDLevel.text = string.Empty;
                }

                if (mCDBlink != null)
                {
                    mCDBlink.SetActive(false);
                    mCDBlink.SetActive(true);

                    if (mCDBlink_DelayEnableComponent == null)
                    {
                        mCDBlink_DelayEnableComponent = mCDBlink.AddComponent <DelayEnableComponent>();
                    }
                    if (mCDBlink_DelayEnableComponent != null)
                    {
                        mCDBlink_DelayEnableComponent.DelayTime = 0.5f;
                        mCDBlink_DelayEnableComponent.SetEnable = false;
                        mCDBlink_DelayEnableComponent.Start();
                    }
                }
            }
        }
        else// 在cd中
        {
            mInCD = true;

            if (!mCDMask.activeSelf)
            {
                mCDMask.SetActive(true);
            }

            if (mCDMaskImage != null)
            {
                CooldownCtrl.CDInstance cd_inst = skill.GetCurrentCD();
                if (cd_inst != null)
                {
                    if (mCDLevel != null)
                    {
                        float level_seconds = cd_inst.GetRemainSeconds();
                        mCDLevel.text = string.Format("{0:N1}", level_seconds);
                    }
                    mCDMaskImage.fillAmount = cd_inst.GetCDPercent();
                }
            }
        }
    }