public override void Initialize() { //length is number of characters uiButtons = new CharSelectButton[CharacterLinker.GetCharacterCount()]; infoBoxes = new SideDisplayBox[2]; //will have to read from the amount of selectable characters. }
private void LoadContent_Buttons(ContentManager Content) { //generating button for each available character. Vector2 prevDrawCoordinate = buttonGridOrigin; Vector2 translation; for (int i = 0; i < uiButtons.Length; i++) { //get the directory of respective button textures for characters from the ID; Type characterReference = CharacterLinker.GetCharacterReference(i); string directory = (string)characterReference.GetField("SpriteReference").GetRawConstantValue(); //load the button texture(s) Texture2D tex = Content.Load <Texture2D>(directory); Texture2D outline = Content.Load <Texture2D>("CharacterSelect/Buttons/Outline"); //create mask bool[,] mask = UiTools.CreateBoolMask(tex); //generate draw position if ((i & 1) == 1) //if odd number { translation = buttonTesselateVector; } else { translation = new Vector2(buttonTesselateVector.X, -buttonTesselateVector.Y); } //instantiate button uiButtons[i] = new CharSelectButton(i, prevDrawCoordinate + (buttonScale * translation), tex, outline, mask, buttonScale); //update the draw coordinate for tesselation. prevDrawCoordinate = prevDrawCoordinate + (buttonScale * translation); //attach event handler to button uiButtons[i].buttonPressed += HandleButtonPress; } //generate help button helpButton = new TutorialButton(graphicsDevice, this, WindowTools.PaddingToPixelCoordinate(0, 0, 10, 10), (int)(20 * buttonScale), (int)(10 * buttonScale)); //generating confirm button Texture2D confirmButtonTexture = Content.Load <Texture2D>("PreparationTurn/EndTurnButton"); Texture2D confirmButtonOutline = Content.Load <Texture2D>("PreparationTurn/EndTurnButtonHovered"); confirmButton = new CharSelectConfirmButton(WindowTools.PaddingToPixelCoordinate(0.45f, 0.6f, 0, 0) - buttonScale / 2 * new Vector2(confirmButtonTexture.Width, 0), confirmButtonTexture, confirmButtonOutline, UiTools.CreateBoolMask(confirmButtonTexture), buttonScale * 2); confirmButton.buttonPressed += HandleButtonPress; }
private void LoadContent_Players(ContentManager Content) { //get the sprites textures for both players characters (to display in top left) Type[] characterReferences = new Type[] { CharacterLinker.GetCharacterReference(gameArgs.p1LinkId), CharacterLinker.GetCharacterReference(gameArgs.p2LinkId) }; string[] spriteDirectories = new string[] { (string)characterReferences[0].GetField("SpriteReference").GetRawConstantValue(), (string)characterReferences[1].GetField("SpriteReference").GetRawConstantValue() }; Texture2D[] characterSprites = new Texture2D[] { Content.Load <Texture2D>(spriteDirectories[0]), Content.Load <Texture2D>(spriteDirectories[1]) }; players[0] = new Player(0, characterReferences[0], graphicsDevice, characterSprites[0], gameArgs.p1Color, gameArgs.winThreshold); players[1] = new Player(1, characterReferences[1], graphicsDevice, characterSprites[1], gameArgs.p2Color, gameArgs.winThreshold); }
private void HandleButtonPress(object sender, CharSelectButtonEventArgs eventArgs) { if (eventArgs.type == CharSelectButton.buttonTypes.ConfirmButton) { if (p1SelectedButton != null && p2SelectedButton != null) { BoardGame.GameArgs args = new BoardGame.GameArgs( p1SelectedButton.LinkId, p2SelectedButton.LinkId, pColors[0], pColors[1], winThreshold ); GameStateManager.Instance.ChangeState(new BoardGame(graphicsDevice, args)); } } else if (eventArgs.type == CharSelectButton.buttonTypes.CharacterSelection) { if (eventArgs.leftClicked) { if (p1SelectedButton == uiButtons[eventArgs.linkId]) { p1SelectedButton = null; infoBoxes[0].SetCharacterInformation(null, null); } else { p1SelectedButton = uiButtons[eventArgs.linkId]; infoBoxes[0].SetCharacterInformation(p1SelectedButton.ButtonTexture, CharacterLinker.GetCharacterReference(p1SelectedButton.LinkId)); } } else if (eventArgs.rightClicked) { if (p2SelectedButton == uiButtons[eventArgs.linkId]) { p2SelectedButton = null; infoBoxes[1].SetCharacterInformation(null, null); } else { p2SelectedButton = uiButtons[eventArgs.linkId]; infoBoxes[1].SetCharacterInformation(p2SelectedButton.ButtonTexture, CharacterLinker.GetCharacterReference(p2SelectedButton.LinkId)); } } } }