Esempio n. 1
0
 // Start is called before the first frame update
 void Start()
 {
     PV = GetComponent <PhotonView>();
     if (!PV.IsMine)
     {
         return;
     }
     if (PR == null)
     {
         PR = this;
     }
     avatar       = GetComponent <AvatarSetup>();
     avatarCombat = GetComponent <AvatarCombat>();
 }
Esempio n. 2
0
    protected override void OnOpen()
    {
        #region Initialize

        m_behaviour.globalLock = false;

        m_isPvP   = Level.current && Level.current.isPvP;
        m_isTrain = !m_isPvP && Level.currentLevel == GeneralConfigInfo.sTrainLevel;
        m_isPvE   = !m_isPvP && !m_isTrain && Level.current && Level.current.isPvE;

        moduleGlobal.ShowGlobalLayer(false);

        Level.current.AddEventListener(LevelEvents.BATTLE_TIMER, OnBattleTimer);
        Level.current.AddEventListener(LevelEvents.PREPARE, OnBattlePrepare);
        Level.current.AddEventListener(LevelEvents.BATTLE_ENTER_WATCH_STATE, OnBattleEnterWatchState);

        EventManager.AddEventListener(CreatureEvents.PLAYER_ADD_TO_SCENE, OnPlayerAddToScene);

        if (m_isPvE)
        {
            EventManager.AddEventListener(Level_PVE.EventInitPVERightAvatar, InitPVERightAvatar);
        }

        #endregion

        #region Avatar

        m_avatarLeft  = GetComponent <AvatarCombat>("left");
        m_avatarRight = GetComponent <AvatarCombat>("right");

        #endregion

        #region Buttons & Infos

        m_btnShoot     = GetComponent <Button>("qiangji");
        m_btnBurst     = GetComponent <Button>("baoqi");
        m_btnBurstInfo = GetComponent <Text>("baoqi/Text");
        m_awakeRoot    = GetComponent <Transform>("awakeRoot")?.gameObject;
        m_btnAwake     = GetComponent <Button>("awakeRoot/awake");
        m_awakeBar     = GetComponent <Image>("awakeRoot/awake/progressbar");
        m_awakeCR      = GetComponent <CanvasRenderer>("awakeRoot/awake");
        m_awakeBarCR   = GetComponent <CanvasRenderer>("awakeRoot/awake/progressbar");

        m_awakeRoot?.SetActive(showAwakeButton);

        moduleBattle.SetKeyState("E", m_btnAwake.gameObject.activeSelf);

        m_effectNode = GetComponent <RectTransform>("effectNode");

        m_battleTimer     = GetComponent <Text>("jishi_pai/number");
        m_btnPause        = GetComponent <Button>("jishi_pai/pause");
        m_timeInfinityObj = transform.Find("jishi_pai/endless").gameObject;

        m_btnShoot.onClick.AddListener(OnBtnShoot);
        m_btnBurst.onClick.AddListener(OnBtnBurst);
        m_btnAwake.onClick.AddListener(OnBtnAwake);

        m_info          = GetComponent <Text>("info");
        m_infoTween     = GetComponent <TweenColor>("info");
        m_state499Info  = GetComponent <Text>("state499/Text");
        m_state499Bar   = GetComponent <Image>("state499/progressbar");
        m_state499Tween = GetComponent <TweenAlpha>("state499");

        m_state499CD = 0;
        m_state10CD  = 0;

        m_btnBurstInfo.enabled = false;

        m_state499Tween.gameObject.SetActive(false);

        m_btnPause.interactable = true;
        m_btnPause.onClick.AddListener(OnBtnPause);

        var now = Level.current is Level_Battle ? (Level.current as Level_Battle).battleTimeSec : CombatConfig.sdefaultTimeLimit / 1000;
        OnBattleTimer(Event_.Pop(now));

        #endregion

        #region Movement & Touch

        m_movementPad = GetComponent <UIMovementPad>("movementPad");
        m_touchGuard  = GetComponent <RectTransform>("touchGuard");
        m_moveCR      = m_movementPad.GetComponent <CanvasRenderer>();
        m_touchPad    = GetComponent <UITouchPad>("touchPad");
        m_btnLeft     = GetComponent <CanvasRenderer>("movementPad/left");
        m_btnRight    = GetComponent <CanvasRenderer>("movementPad/right");

        m_movementPad.onTouchBegin.AddListener(OnMovementPadBegin);
        m_movementPad.onTouchMove.AddListener(OnMovementPadMove);
        m_movementPad.onTouchEnd.AddListener(OnMovementPadEnd);
        m_touchPad.onTouchBegin.AddListener(OnTouchPadBegin);
        m_touchPad.onTouchEnd.AddListener(OnTouchPadEnd);
        m_touchPad.onTouchMove.AddListener(OnTouchPadMove);
        m_touchPad.onTouchStay.AddListener(OnTouchPadStay);

        m_movementPos = m_movementPad.rectTransform().anchoredPosition;
        m_guardSize   = m_touchGuard.sizeDelta;

        InitTouchAndMoveAlpha();
        UpdateInputSettings();

        EventManager.AddEventListener(Events.INPUT_SETTINGS_CHANGED, UpdateInputSettings);

        #endregion

        #region Combo

        m_comboObj = transform.Find("lianji").gameObject;
        m_comboNum = GetComponent <ComboNumber>("lianji/number");
        m_comboObj.SetActive(false);

        #endregion

        #region Camera Shot

        m_shotShowHide = 0;
        EventManager.AddEventListener(Events.CAMERA_SHOT_STATE, OnCameraShotState);
        EventManager.AddEventListener(Events.CAMERA_SHOT_UI_STATE, OnCameraShotUIState);

        #endregion

        #region Creatures

        ObjectManager.Foreach <Creature>(c =>
        {
            if (m_isPvP && c.teamIndex == 0 || !m_isPvP && c.isPlayer)
            {
                m_hero1 = c;
                return(!m_hero2);
            }

            if (!c.visible)
            {
                return(true);
            }

            if ((moduleMatch.isMatchRobot || moduleLabyrinth.lastSneakPlayer != null) && c.isRobot ||
                m_isPvP && c.teamIndex > 0 || !m_isPvP && c.creatureCamp == CreatureCamp.MonsterCamp && (!(c is MonsterCreature) || !(c as MonsterCreature).isDestructible))
            {
                m_hero2 = c;
                return(!m_hero1);
            }

            return(true);
        });

        InitCreature(0, m_hero1);
        InitCreature(1, m_hero2);

        UpdateBurstButtonState();
        UpdateShootButtonState();
        UpdateAwakeButtonState();

        #endregion

        #region Debug

        #if DEVELOPMENT_BUILD || UNITY_EDITOR
        var btnKillMe = Object.Instantiate(Resources.Load <GameObject>("ui_button")).rectTransform();
        btnKillMe.name = "btnKillMe";
        btnKillMe.GetComponent <Text>("label").text = "Kill Self";
        Util.AddChild(transform, btnKillMe.transform);

        btnKillMe.pivot            = btnKillMe.anchorMax = btnKillMe.anchorMin = new Vector2(1, 0.5f);
        btnKillMe.sizeDelta        = new Vector2(90, 50);
        btnKillMe.anchoredPosition = new Vector2(0, 55);

        if (Level.current is Level_Test || Level.current is Level_PVP)
        {
            btnKillMe.GetComponent <Button>().onClick.AddListener(() => { ObjectManager.enableUpdate = true; Game.GoHome(); });
        }
        else
        {
            btnKillMe.GetComponent <Button>().onClick.AddListener(() => { if (m_player)
                                                                          {
                                                                              m_player.Kill();
                                                                          }
                                                                  });
        }

        RectTransform btnVictory = null, randomInput = null;

        if (!(Level.current is Level_Test || Level.current is Level_PVP))
        {
            btnVictory      = Object.Instantiate(Resources.Load <GameObject>("ui_button")).rectTransform();
            btnVictory.name = "btnVictory";
            btnVictory.GetComponent <Text>("label").text = "Victory!";
            Util.AddChild(transform, btnVictory.transform);

            btnVictory.pivot            = btnVictory.anchorMax = btnVictory.anchorMin = new Vector2(1, 0.5f);
            btnVictory.sizeDelta        = new Vector2(90, 50);
            btnVictory.anchoredPosition = new Vector2(0, 0);

            btnVictory.GetComponent <Button>().onClick.AddListener(() =>
            {
                modulePVE.DebugPveGameData();
                modulePVE.SendPVEState(PVEOverState.Success, m_player);
                modulePVEEvent.ClearAll();
            });

            randomInput      = Object.Instantiate(Resources.Load <GameObject>("ui_button")).rectTransform();
            randomInput.name = "randomInput";
            randomInput.GetComponent <Text>("label").text = InputManager.instance.randomKey ? "cancel random" : "random Input";
            Util.AddChild(transform, randomInput.transform);

            randomInput.pivot            = randomInput.anchorMax = randomInput.anchorMin = new Vector2(1, 0.5f);
            randomInput.sizeDelta        = new Vector2(90, 50);
            randomInput.anchoredPosition = new Vector2(0, 165);

            randomInput.GetComponent <Button>().onClick.AddListener(() =>
            {
                InputManager.instance.randomKey = !InputManager.instance.randomKey;
                randomInput.GetComponent <Text>("label").text = InputManager.instance.randomKey ? "cancel random" : "random Input";
            });
        }

        btnKillMe.SafeSetActive(!Root.simulateReleaseMode);
        randomInput.SafeSetActive(!Root.simulateReleaseMode);
        btnVictory.SafeSetActive(!Root.simulateReleaseMode);

        EventManager.AddEventListener("EditorSimulateReleaseMode", () =>
        {
            btnKillMe.SafeSetActive(!Root.simulateReleaseMode);
            randomInput.SafeSetActive(!Root.simulateReleaseMode);
            btnVictory.SafeSetActive(!Root.simulateReleaseMode);
        });

        #if UNITY_EDITOR
        EventManager.AddEventListener("EditorReloadConfig", OnEditorReloadConfig);
        #endif
        #endif

        #endregion
    }