private void Start()
 {
     Enum.GetValues(typeof(CooldownType)).Cast <CooldownType>().ToList().ForEach(x => _coolDownTimers.Add(x, null));
     _flashCoroutine       = null;
     characterSelect       = GetComponent <CharacterSelectController>();
     _flashingMaterialCopy = new Material(FlashingMaterial);
 }
Ejemplo n.º 2
0
 public void NewSetup(SurvivorIndex survivorIndex = SurvivorIndex.None)
 {
     characterSelectController = gameObject.GetComponent <CharacterSelectController>();
     RepositionHUD();
     RepositionCharacterPads();
     UpdateTeamName(survivorIndex);
 }
    private void Awake()
    {
        _instance = this;
        //需要修改
        warriorFemaleObj = Resources.Load <GameObject>(ConstDates.ResourcePlayerPrefabDirSwl + ConstDates.WarriorFemale);
        warriorMaleObj   = Resources.Load <GameObject>(ConstDates.ResourcePlayerPrefabDirSwl + ConstDates.WarriorMale);
        mageFemaleObj    = Resources.Load <GameObject>(ConstDates.ResourcePlayerPrefabDirSwl + ConstDates.MageFemale);
        mageMaleObj      = Resources.Load <GameObject>(ConstDates.ResourcePlayerPrefabDirSwl + ConstDates.MageMale);
        archerFemaleObj  = Resources.Load <GameObject>(ConstDates.ResourcePlayerPrefabDirSwl + ConstDates.ArcherFemale);
        archerMaleObj    = Resources.Load <GameObject>(ConstDates.ResourcePlayerPrefabDirSwl + ConstDates.ArcherMale);

        //生成,展示点
        bornPointFemale = GameObject.Find("BornPointFemale");
        bornPointMale   = GameObject.Find("BornPointMale");
        showPoint       = GameObject.Find("ShowPoint");

        returnBtn       = transform.Find("ReturnBTN").GetComponent <Button>();
        createPersonBtn = transform.Find("CreatePersonBTN").GetComponent <Button>();
        maleBtn         = transform.Find("MaleBTN").GetComponent <Button>();
        femaleBtn       = transform.Find("FemaleBTN").GetComponent <Button>();
        warriorBtn      = transform.Find("WarriorBTN").GetComponent <Button>();
        mageBtn         = transform.Find("MageBTN").GetComponent <Button>();
        archerBtn       = transform.Find("ArcherBTN").GetComponent <Button>();
        createNameField = transform.Find("CreateNameInputField").GetComponent <InputField>();
        warriorTXT      = transform.Find("Introduction/WarriorIntroductionTXT").gameObject;
        mageTXT         = transform.Find("Introduction/MageIntroductionTXT").gameObject;
        archerTXT       = transform.Find("Introduction/ArcherIntroductionTXT").gameObject;
        warriorTXT.SetActive(false);
        mageTXT.SetActive(false);
        archerTXT.SetActive(false);
        nametxt = createNameField.transform.Find("Text").GetComponent <Text>();
    }
Ejemplo n.º 4
0
        public void Start()
        {
            characterSelectController  = GetComponentInParent <CharacterSelectController>();
            eclipseRunScreenController = GetComponentInParent <EclipseRunScreenController>();

            StartCoroutine(StartDelayedCoroutine());
        }
Ejemplo n.º 5
0
	// Use this for initialization
	void Awake ()
	{
	    Controller = new CharacterSelectController(this);
	    _controller.SendGetList();


	}
Ejemplo n.º 6
0
        // Initialize Character Stat
        // Initialize model and view for a character stats
        public CharacterInitializer(ISelectedCharacterData selectedCharacterData,
                                    IControllableCharacterData controllableCharacterData, CharacterConfig config, Vector3 position,
                                    Vector3 rotation)
        {
            // Instantiate character game object
            GameObject characterGameObject =
                UnityEngine.Object.FindObjectOfType <CharacterSelectView>()?.gameObject;

            if (characterGameObject == null)
            {
                characterGameObject =
                    UnityEngine.Object.Instantiate(config.CharacterPrefab, position, Quaternion.identity);
            }

            // Initialize character stat
            // Get stat initial values from config object
            var characterStatModel = new ModelFactory.CharacterStatModelFactory(
                // Get health initial values from config object
                new[]
            {
                config.HealthInitialValue, config.MaxHealthInitialValue
            },
                // Get mana initial values from config object
                new[]
            {
                config.ManaInitialValue, config.MaxManaInitialValue
            })
                                     .Model;
            var characterStatViews       = new ViewFactory.CharacterStatViewFactory(characterGameObject).Views;
            var characterStatControllers =
                new ControllerFactory.CharacterStatControllerFactory(characterStatModel, characterStatViews)
                .Controllers;

            // Initialize character movement
            // Get movement initial values from config object
            var characterMovementModel =
                new ModelFactory.CharacterMovementModelFactory(position, rotation, config.MovementSpeed)
                .Model;     // get base move speed from config
            var characterMovementView       = new ViewFactory.CharacterMovementViewFactory(characterGameObject).View;
            var characterMovementController =
                new ControllerFactory.CharacterMovementControllerFactory(characterMovementModel, characterMovementView)
                .Controller;

            // TODO add new mechanics here


            // Initialize new character with above mechanics
            var characterModel = new CharacterModel(characterGameObject, config.HudImage, characterStatModel,
                                                    characterMovementModel);

            var characterSelectView       = characterGameObject.GetComponent <CharacterSelectView>();
            var characterSelectController = new CharacterSelectController(characterSelectView, characterModel, selectedCharacterData, controllableCharacterData);
        }
Ejemplo n.º 7
0
 void Start()
 {
     StartCoroutine(waitForColor());
     cs      = GetComponent <CharacterSelectController>();
     index   = cs.currentMaterialIndex;
     LObject = Instantiate(prefabLight[index]);
     ps      = LObject.GetComponentsInChildren <ParticleSystem>();
     kp      = GetComponent <KeyboardPlayerController>();
     LObject.transform.position = this.transform.position;
     ad.Play();
     ad.Pause();
     //index++;
 }
Ejemplo n.º 8
0
 void HandleAddPlayer()
 {
     text.text = startText;
     if (Input.GetButtonDown("Start_P" + playerNumber) || Input.GetButtonDown("Throw_P" + playerNumber))
     {
         currentCharacter = CharacterCollection.GetFirstOpenCharacter(playerNumber);
         GameObject newPlayer = Instantiate(playerObject, new Vector3(transform.position.x, transform.position.y - 40, 0), Quaternion.identity) as GameObject;
         newPlayerController = newPlayer.GetComponent <CharacterSelectController>();
         newPlayerController.SetCharacter(currentCharacter);
         newPlayerController.playerNumber = playerNumber;
         _state = State.SELECTING;
         gameObject.GetComponent <Blink>().StopBlink();
         PlaySound(joinSound);
     }
 }
Ejemplo n.º 9
0
        private static void RemoveMenuEdits(CharacterSelectController controller)
        {
            if (!menuEditsInEffect)
            {
                return;
            }
            menuEditsInEffect = false;

            var headerPanelObj      = controller.loadoutHeaderButton.transform.parent;
            var headerNavController = headerPanelObj.GetComponent <HGHeaderNavigationController>();

            if (headerNavController.headers.Length != 3)
            {
                Array.Resize <HGHeaderNavigationController.Header>(ref headerNavController.headers, 3);
                wispySkinHeader.headerButton.gameObject.SetActive(false);
                wispySkinHeader.headerRoot.gameObject.SetActive(false);

                Array.Resize <Image>(ref controller.primaryColorImages, defaultImagesLength);
                if (headerNavController.currentHeaderIndex == 3)
                {
                    headerNavController.ChooseHeader("Skills");
                }
            }
        }
Ejemplo n.º 10
0
        private static void CharacterSelectControllerAwake(On.RoR2.UI.CharacterSelectController.orig_Awake orig, CharacterSelectController self)
        {
            try
            {
                #region LoadButton
                var quitButton = self.transform.GetChild(2).GetChild(4).GetChild(0).gameObject;
                lobbyButton = GameObject.Instantiate(quitButton, quitButton.transform.parent);

                foreach (var filter in self.GetComponents <InputSourceFilter>())
                {
                    if (filter.requiredInputSource == MPEventSystem.InputSource.MouseAndKeyboard)
                    {
                        Array.Resize(ref filter.objectsToFilter, filter.objectsToFilter.Length + 1);
                        filter.objectsToFilter[filter.objectsToFilter.Length - 1] = lobbyButton;
                        break;
                    }
                }

                lobbyButton.name = "[ProperSave] Load";

                var rectTransform = lobbyButton.GetComponent <RectTransform>();
                rectTransform.anchorMin = new Vector2(1F, 1.5F);
                rectTransform.anchorMax = new Vector2(1F, 1.5F);

                var buttonComponent = lobbyButton.GetComponent <HGButton>();
                buttonComponent.hoverToken = LanguageConsts.PS_TITLE_CONTINUE_DESC;

                var languageComponent = lobbyButton.GetComponent <LanguageTextMeshController>();
                languageComponent.token = LanguageConsts.PS_TITLE_LOAD;

                buttonComponent.onClick = new Button.ButtonClickedEvent();
                buttonComponent.onClick.AddListener(LoadOnInputEvent);
                #endregion

                #region Load GlypAndDescription
                var submenuLegend = self.transform.GetChild(2).GetChild(4).GetChild(1).gameObject;
                lobbySubmenuLegend = GameObject.Instantiate(submenuLegend, submenuLegend.transform.parent);

                foreach (var filter in self.GetComponents <InputSourceFilter>())
                {
                    if (filter.requiredInputSource == MPEventSystem.InputSource.Gamepad)
                    {
                        Array.Resize(ref filter.objectsToFilter, filter.objectsToFilter.Length + 1);
                        filter.objectsToFilter[filter.objectsToFilter.Length - 1] = lobbySubmenuLegend;
                        break;
                    }
                }

                lobbySubmenuLegend.name = "[ProperSave] SubmenuLegend";

                var uiJuiceComponent     = lobbySubmenuLegend.GetComponent <UIJuice>();
                var enableEventComponent = lobbySubmenuLegend.GetComponent <OnEnableEvent>();

                enableEventComponent.action.RemoveAllListeners();
                enableEventComponent.action.AddListener(uiJuiceComponent.TransitionPanFromTop);
                enableEventComponent.action.AddListener(uiJuiceComponent.TransitionAlphaFadeIn);

                var rectTransformComponent = lobbySubmenuLegend.GetComponent <RectTransform>();
                rectTransformComponent.anchorMin = new Vector2(1, 1);
                rectTransformComponent.anchorMax = new Vector2(1, 2);

                lobbyGlyphAndDescription = lobbySubmenuLegend.transform.GetChild(0).gameObject;

                var glyph = lobbyGlyphAndDescription.transform.GetChild(0).GetComponent <InputBindingDisplayController>();
                glyph.actionName = "UISubmenuUp";

                var description = lobbyGlyphAndDescription.transform.GetChild(1).GetComponent <LanguageTextMeshController>();
                description.token = LanguageConsts.PS_TITLE_LOAD;

                for (var i = 1; i < lobbySubmenuLegend.transform.childCount; i++)
                {
                    GameObject.Destroy(lobbySubmenuLegend.transform.GetChild(i).gameObject);
                }
                #endregion

                UpdateLobbyControls();

                var gamepadInputEvent = self.gameObject.AddComponent <HGGamepadInputEvent>();
                gamepadInputEvent.actionName             = "UISubmenuUp";
                gamepadInputEvent.enabledObjectsIfActive = Array.Empty <GameObject>();

                gamepadInputEvent.actionEvent = new UnityEngine.Events.UnityEvent();
                gamepadInputEvent.actionEvent.AddListener(LoadOnInputEvent);
            }
            catch (Exception e)
            {
                ProperSavePlugin.InstanceLogger.LogWarning("Failed while adding lobby buttons");
                ProperSavePlugin.InstanceLogger.LogError(e);
            }
            orig(self);
        }
Ejemplo n.º 11
0
 private void Awake_On1(HooksCore.RoR2.UI.CharacterSelectController.Awake.Orig orig, CharacterSelectController self)
 {
     menuEditsInEffect   = false;
     wispySkinHeader     = default;
     defaultImagesLength = self.primaryColorImages.Length;
     defaultTextLength   = self.primaryColorTexts.Length;
     orig(self);
 }
Ejemplo n.º 12
0
        private static void ApplyMenuEdits(Int32 bodyIndex, CharacterSelectController controller)
        {
            if (menuEditsInEffect)
            {
                return;
            }
            menuEditsInEffect = true;



            var headerPanelObj = controller.loadoutHeaderButton.transform.parent;

            var headerNavController = headerPanelObj.GetComponent <HGHeaderNavigationController>();



            if (headerNavController.headers.Length != 4)
            {
                if (String.IsNullOrEmpty(wispySkinHeader.headerName))
                {
                    HGHeaderNavigationController.Header refHeader = default;
                    Int32 counter = 0;

                    while (counter < 3 && String.IsNullOrEmpty(refHeader.headerName))
                    {
                        var temp = headerNavController.headers[counter++];
                        if (temp.headerName == "Overview")
                        {
                            refHeader = temp;
                        }
                    }


                    if (!String.IsNullOrEmpty(refHeader.headerName))
                    {
                        var newButtonObj = UnityEngine.Object.Instantiate <GameObject>(refHeader.headerButton.gameObject, refHeader.headerButton.transform.parent);
                        var newButton    = newButtonObj.GetComponent <HGButton>();


                        var buttonTrans = newButtonObj.transform.Find("ButtonText");

                        var newButtonText = buttonTrans.GetComponent <HGTextMeshProUGUI>();

                        var newButtonLang = newButtonObj.GetComponent <LanguageTextMeshController>();

                        newButtonLang.token = "LOADOUT_SKIN";


                        var newPanel = UnityEngine.Object.Instantiate <GameObject>(refHeader.headerRoot, refHeader.headerRoot.transform.parent);

                        var skinUI = newPanel.AddComponent <WispSkinSelectionUI>();

                        skinUI.SetData(bodyIndex, getLocalUser(controller).userProfile);

                        var panelTextObj = newPanel.transform.Find("TextMeshPro Text");

                        panelTextObj.GetComponent <HGTextMeshProUGUI>().text = "";


                        wispySkinHeader = new HGHeaderNavigationController.Header
                        {
                            headerName    = "Skins",
                            headerButton  = newButton,
                            tmpHeaderText = newButtonText,
                            headerRoot    = newPanel,
                        };

                        Array.Resize <Image>(ref controller.primaryColorImages, defaultImagesLength + 1);

                        controller.primaryColorImages[defaultImagesLength] = newButtonObj.GetComponent <Image>();
                    }
                }
                Array.Resize <HGHeaderNavigationController.Header>(ref headerNavController.headers, 4);
                headerNavController.headers[3] = wispySkinHeader;
                wispySkinHeader.headerButton.gameObject.SetActive(true);
            }
        }
Ejemplo n.º 13
0
 private void Start()
 {
     characterSelectController = characterSelect.GetComponent <CharacterSelectController>();
 }
Ejemplo n.º 14
0
        internal static void CharacterSelectControllerAwake(Action <CharacterSelectController> orig, CharacterSelectController self)
        {
            orig(self);

            var leftHandPanel  = self.transform.Find("SafeArea/LeftHandPanel (Layer: Main)");
            var rightHandPanel = self.transform.Find("SafeArea/RightHandPanel");

            if (!CachedPrefab)
            {
                CachePrefabFromSurvivorGrid(leftHandPanel, "SurvivorChoiceGrid, Panel");
            }

            var configPanel          = GameObject.Instantiate(CachedPrefab, self.transform.Find("SafeArea"), false);
            var popoutPanelContainer = rightHandPanel.Find("PopoutPanelContainer");

            var popoutPanel = GameObject.Instantiate(popoutPanelContainer.Find("PopoutPanelPrefab").gameObject, popoutPanelContainer);

            configPanel.GetComponent <ConfigPanelController>().popoutPanel = popoutPanel;

            var cscInputEvents = self.GetComponents <HGGamepadInputEvent>();

            var cscRightInputEventOne = cscInputEvents.First(el => el.actionName == "UISubmenuRight");

            cscRightInputEventOne.requiredTopLayer = leftHandPanel.GetComponent <UILayerKey>();

            var cscRightInputEventTwo = self.gameObject.AddComponent <HGGamepadInputEvent>();

            cscRightInputEventTwo.actionName             = cscRightInputEventOne.actionName;
            cscRightInputEventTwo.actionEvent            = cscRightInputEventOne.actionEvent;
            cscRightInputEventTwo.requiredTopLayer       = leftHandPanel.Find("SurvivorInfoPanel, Active (Layer: Secondary)").GetComponent <UILayerKey>();
            cscRightInputEventTwo.enabledObjectsIfActive = Array.Empty <GameObject>();

            var ruleLayout = rightHandPanel.Find("RuleLayoutActive (Layer: Tertiary)");

            var rlLeftInputEvent = ruleLayout.GetComponents <HGGamepadInputEvent>().First(input => input.actionName == "UISubmenuLeft");

            var rlRightInputEventOne = ruleLayout.gameObject.AddComponent <HGGamepadInputEvent>();

            rlRightInputEventOne.actionName             = "UISubmenuRight";
            rlRightInputEventOne.actionEvent            = configPanel.GetComponent <EventHolder>().unityEvent;
            rlRightInputEventOne.requiredTopLayer       = ruleLayout.GetComponent <UILayerKey>();
            rlRightInputEventOne.enabledObjectsIfActive = Array.Empty <GameObject>();

            var rlRightInputEventTwo = ruleLayout.gameObject.AddComponent <HGGamepadInputEvent>();

            rlRightInputEventTwo.actionName             = rlRightInputEventOne.actionName;
            rlRightInputEventTwo.actionEvent            = rlLeftInputEvent.actionEvent;
            rlRightInputEventTwo.requiredTopLayer       = rlRightInputEventOne.requiredTopLayer;
            rlRightInputEventTwo.enabledObjectsIfActive = Array.Empty <GameObject>();

            var configLeftInputEvent = configPanel.GetComponent <HGGamepadInputEvent>();

            configLeftInputEvent.actionEvent.AddListener(() => ruleLayout.gameObject.SetActive(true));

            var configCancelInputEvent = configPanel.AddComponent <HGGamepadInputEvent>();

            configCancelInputEvent.actionName             = "UICancel";
            configCancelInputEvent.actionEvent            = configLeftInputEvent.actionEvent;
            configCancelInputEvent.requiredTopLayer       = configLeftInputEvent.requiredTopLayer;
            configCancelInputEvent.enabledObjectsIfActive = configLeftInputEvent.enabledObjectsIfActive;
        }
Ejemplo n.º 15
0
        private void CharacterSelectController_OnDisable(On.RoR2.UI.CharacterSelectController.orig_OnDisable orig, CharacterSelectController self)
        {
            orig(self);
            var netUsers = InstanceTracker.GetInstancesList <FakeNetworkUserMarker>();

            foreach (var user in netUsers.ToList())
            {
                Destroy(user.gameObject);
            }
        }
Ejemplo n.º 16
0
 private void CharacterSelectController_SelectSurvivor(On.RoR2.UI.CharacterSelectController.orig_SelectSurvivor orig, CharacterSelectController self, SurvivorIndex survivor)
 {
     orig(self, survivor);
     if (DD2LobbySetupComponent.instance)
     {
         DD2LobbySetupComponent.instance.UpdateTeamName(survivor);
     }
 }
Ejemplo n.º 17
0
 // Use this for initialization
 void Awake()
 {
     Controller = new CharacterSelectController(this);
     _controller.SendGetList();
 }
Ejemplo n.º 18
0
        internal static void CharacterSelectControllerAwake(On.RoR2.UI.CharacterSelectController.orig_Awake orig, CharacterSelectController self)
        {
            orig(self);

            var leftHandPanel = self.transform.Find("SafeArea/LeftHandPanel (Layer: Main)");

            if (!CachedPrefab)
            {
                CachePrefabFromSurvivorGrid(leftHandPanel, "SurvivorChoiceGrid, Panel");
            }

            var randomizePanel = GameObject.Instantiate(CachedPrefab, self.transform.Find("SafeArea"), false);

            HGGamepadInputEvent cscRightInputEventOne;
            HGGamepadInputEvent cscRightInputEventTwo;

            var cscInputEvents = self.GetComponents <HGGamepadInputEvent>();

            if (RandomCharacterSelectionPlugin.InLobbyConfigLoaded)
            {
                var rightInputs = cscInputEvents.Where(el => el.actionName == "UISubmenuRight");
                cscRightInputEventOne = rightInputs.ElementAt(0);
                cscRightInputEventTwo = rightInputs.ElementAt(1);
            }
            else
            {
                cscRightInputEventOne = cscInputEvents.First(el => el.actionName == "UISubmenuRight");
                cscRightInputEventOne.requiredTopLayer = leftHandPanel.GetComponent <UILayerKey>();

                cscRightInputEventTwo                        = self.gameObject.AddComponent <HGGamepadInputEvent>();
                cscRightInputEventTwo.actionName             = cscRightInputEventOne.actionName;
                cscRightInputEventTwo.actionEvent            = cscRightInputEventOne.actionEvent;
                cscRightInputEventTwo.requiredTopLayer       = leftHandPanel.Find("SurvivorInfoPanel, Active (Layer: Secondary)").GetComponent <UILayerKey>();
                cscRightInputEventTwo.enabledObjectsIfActive = Array.Empty <GameObject>();
            }

            var randomizePanelRightInputEvent = randomizePanel.GetComponents <HGGamepadInputEvent>().First(input => input.actionName == "UISubmenuRight");

            var cscLeftInputEventOne = self.gameObject.AddComponent <HGGamepadInputEvent>();

            cscLeftInputEventOne.actionName             = "UISubmenuLeft";
            cscLeftInputEventOne.actionEvent            = randomizePanel.GetComponent <EventHolder>().unityEvent;
            cscLeftInputEventOne.requiredTopLayer       = cscRightInputEventOne.requiredTopLayer;
            cscLeftInputEventOne.enabledObjectsIfActive = Array.Empty <GameObject>();

            var cscLeftInputEventTwo = self.gameObject.AddComponent <HGGamepadInputEvent>();

            cscLeftInputEventTwo.actionName             = cscLeftInputEventOne.actionName;
            cscLeftInputEventTwo.actionEvent            = cscLeftInputEventOne.actionEvent;
            cscLeftInputEventTwo.requiredTopLayer       = cscRightInputEventTwo.requiredTopLayer;
            cscLeftInputEventTwo.enabledObjectsIfActive = Array.Empty <GameObject>();

            var randomizePanelCancelInputEvent = randomizePanel.AddComponent <HGGamepadInputEvent>();

            randomizePanelCancelInputEvent.actionName             = "UICancel";
            randomizePanelCancelInputEvent.actionEvent            = randomizePanelRightInputEvent.actionEvent;
            randomizePanelCancelInputEvent.requiredTopLayer       = randomizePanelRightInputEvent.requiredTopLayer;
            randomizePanelCancelInputEvent.enabledObjectsIfActive = randomizePanelRightInputEvent.enabledObjectsIfActive;
        }
Ejemplo n.º 19
0
    void Awake()
    {
        HUD = new HeadUpDisplay();
        HUD.Init();
        countDownSprites = Resources.LoadAll<Sprite>("2D/HUD/CountDown");

        trailMat = Resources.LoadAll<Material>("Materials/Characters/Trails");

        switchedZones = false;
        matchIsOver = false;
        matchHasStarted = false;
        loadingWinScene = false;
        scoringDirection = 1;

        playerPositions.Add (new Vector3 (-20.0f, 1.0f, 12.0f));
        playerPositions.Add (new Vector3 (20.0f, 1.0f, 12.0f));
        playerPositions.Add (new Vector3 (-20.0f, 1.0f, -12.0f));
        playerPositions.Add (new Vector3 (20.0f, 1.0f, -12.0f));

        playerRotations.Add (new Vector3 (0f, 125.0f, 0f));
        playerRotations.Add (new Vector3 (0f, 235.0f, 0f));
        playerRotations.Add (new Vector3 (0f, 45.0f, 0f));
        playerRotations.Add (new Vector3 (0f, 315.0f, 0f));

        GameObject ballGo = GameObject.FindGameObjectWithTag("Ball");
        _ballController = ballGo.GetComponent<BallController> ();

        if(!debugging){
            _characterSelectController = GameObject.Find("Character Select Controller").GetComponent<CharacterSelectController>();
            players = new GameObject[4];
            InstantiatePlayers ();
        }
    }