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); }
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>(); }
public void Start() { characterSelectController = GetComponentInParent <CharacterSelectController>(); eclipseRunScreenController = GetComponentInParent <EclipseRunScreenController>(); StartCoroutine(StartDelayedCoroutine()); }
// Use this for initialization void Awake () { Controller = new CharacterSelectController(this); _controller.SendGetList(); }
// 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); }
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++; }
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); } }
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"); } } }
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); }
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); }
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); } }
private void Start() { characterSelectController = characterSelect.GetComponent <CharacterSelectController>(); }
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; }
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); } }
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); } }
// Use this for initialization void Awake() { Controller = new CharacterSelectController(this); _controller.SendGetList(); }
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; }
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 (); } }