Ejemplo n.º 1
0
 private bool CanSwitchWeapon()
 {
     if (ChangeHeroMgr.instance.IsChanging() == true ||         //切换英雄时不切换
         CoreEntry.uiMgr.isPlayingStageAnimate == true ||       //播放过场动画时不切换
         DialogueMgr.instance.isTalking == true ||              //正在对话时不切换
         CoreEntry.GetGameStage() == GameStage.SkillLevel ||    //超能关卡时不切换
         CoreEntry.GetGameStage() == GameStage.SummonerHouse || //召唤师小屋时不切换
         isChangingWeapon == true ||                            //正在切换武器时不切换
         SceneLoadMgr.instance.IsLoadingScene() == true ||      //加载场景时不切换
         CoreEntry.isStageEnter == false
         )
     {
         return(false);
     }
     return(true);
 }
Ejemplo n.º 2
0
    void ShowHeroAnim()
    {
        //初始化切换英雄
        CloseEmpty();
        ClearEffect();
        InitParams(true);
        usingHeroCID = showingCID == null?CoreEntry.portalMgr.GetLastHeroCID() : showingCID;

        var data = PlayerDataMgr.instance.GetHeroDataByInstanceId(usingHeroCID);

        if (data != null)
        {
            CoreEntry.eventMgr.TriggerEvent <bool>("showHeroSwitch", false);
            //设置切换类型
            this.changeType = ChangeType.NEW_HERO;
            //回调函数
            System.Action cb = () =>
            {
                FinishEffect("switchIdle", () =>
                {
                    ResetUsingCID();
                    InitParams(false);
                    ClearEffect();
                    EndSwitch();
                });
            };
            if (CoreEntry.IsStageUsingHero(CoreEntry.GetGameStage()))
            {
                CoreEntry.globalObject.GetComponent <CoreEntry>().StartCoroutine(SceneMgr.DelayToInvoke(() =>
                {
                    //播放切换英雄特效
                    CreateEffect(data.resId, "idle", cb);
                }));
                needDelay = false;
            }
            else
            {
                //播放切换英雄特效
                CreateEffect(data.resId, "idle", cb);
            }
        }
    }
Ejemplo n.º 3
0
    void ShowVirtualHeroAnim()
    {
        virtualAction = () =>
        {
            CoreEntry.virtualHeroMgr.IsVirtualSwitchHero = true;
            //Clear Effect Before
            ClearEffect();
            //Close Main Camera
            CoreEntry.cameraMgr.CloseMainCamera();

            //Get VirtualSwitchPanel
            virtualPanel = CoreEntry.uiMgr.GetPanelSimply(AIToyMgr.VIRTUAL_PANEL);

            //Mount Sound
            if (virtualPanel != null)
            {
                soundId = CoreEntry.soundMgr.PlaySound("MainUIsfx", "Play_Hero_Change_Before", virtualPanel.gameObject);
            }
        };

        if (virtualAction == null)
        {
            return;
        }
        if (CoreEntry.IsStageUsingHero(CoreEntry.GetGameStage()))
        {
            //Wait for two frames to init new object ignoreTimeScale
            CoreEntry.globalObject.GetComponent <CoreEntry>().StartCoroutine(SceneMgr.DelayToInvoke(() =>
            {
                virtualAction();
            }));
        }
        else
        {
            virtualAction();
        }
    }