Exemplo n.º 1
0
        public FloorSelectDialog(int tower, int screenWidth, int screenHeight, Happiness game)
        {
            m_Game = game;
            m_iTower = tower;

            int iCenterX = screenWidth >> 1;
            int iCenterY = screenHeight >> 1;
            m_FloorScrollPosition = 0;
            m_iSelectedFloor = -1;

            // Frame rect
            int width = (int)(Constants.FloorSelectDialog_Width * screenWidth);
            int height = (int)(Constants.FloorSelectDialog_Height * screenHeight);
            m_Rect = new Rectangle(iCenterX - (width >> 1), iCenterY - (height >> 1), width, height);

            // Title
            int iTopMargin = (int)(Constants.FloorSelectDialog_MarginTopBottom * screenHeight);
            string title = string.Format("{0} x {0}", tower + 3);
            m_Title = new UILabel(title, iCenterX, m_Rect.Top + iTopMargin, Color.Goldenrod, Assets.MenuFont, UILabel.XMode.Center);

            // Buttons
            m_iLeftRightMargin = (int)(Constants.FloorSelectDialog_MarginLeftRight * screenWidth);
            int navButtonTop = m_Rect.Top + iTopMargin;
            int navButtonWidth = (int)(Constants.FloorSelectDialog_NavButtonWidth * screenWidth);
            int navButtonHeight = (int)(Constants.FloorSelectDialog_NavButtonHeight * screenHeight);
            int lbButtonWidth = (int)(Constants.FloorSelectDialog_LBButtonWidth * screenWidth);
            int lbButtonHeight = (int)(Constants.FloorSelectDialog_LBButtonHeight * screenHeight);
            m_Buttons = new UIButton[3];
            m_Buttons[0] = new UIButton(0, "<", Assets.MenuFont, new Rectangle(m_Rect.Left + m_iLeftRightMargin, navButtonTop, navButtonWidth, navButtonHeight), Assets.ScrollBar);
            m_Buttons[1] = new UIButton(1, ">", Assets.MenuFont, new Rectangle(m_Rect.Right - (m_iLeftRightMargin + navButtonWidth), navButtonTop, navButtonWidth, navButtonHeight), Assets.ScrollBar);
            m_Buttons[2] = new UIButton(2, "Leaderboard", Assets.DialogFont, new Rectangle(m_Rect.Right - (m_iLeftRightMargin + lbButtonWidth), m_Rect.Bottom - (iTopMargin + lbButtonHeight), lbButtonWidth, lbButtonHeight), Assets.ScrollBar);
            m_Buttons[1].Enabled = false;
            m_Buttons[2].Enabled = false;

            // Floors
            int floorScrollWidth = (int)(Constants.FloorSelectDialog_FloorScrollWidth * screenWidth);
            int floorScrollTop = m_Title.PositionY + m_Title.Height + (iTopMargin >> 1);
            int floorScrollBottom = m_Rect.Bottom - iTopMargin;
            int floorScrollHeight = floorScrollBottom - floorScrollTop;
            int waitIconSize = (int)(Constants.FloorSelectDialog_WaitIconSize * screenHeight);
            int halfWaitIconSize = waitIconSize >> 1;
            m_FloorScrollRect = new Rectangle(iCenterX - (floorScrollWidth >> 1), floorScrollTop, floorScrollWidth, floorScrollHeight);
            m_FloorWaitRectangle = new Rectangle(iCenterX - halfWaitIconSize, iCenterY - halfWaitIconSize, waitIconSize, waitIconSize);

            m_FloorDataFetchText = new UILabel("Fetching Data...", iCenterX, m_FloorWaitRectangle.Bottom, Color.White, Assets.DialogFont, UILabel.XMode.Center);

            m_ScrollFrame = new UIFrame(5, m_FloorScrollRect);

            // Request the data from the server
            NetworkManager.Net.RequestTowerData(tower, true);

            m_iFloorSelectTutorialWidth = (int)(Constants.FloorSelectDialog_FloorSelectTutorialWidth * screenWidth);
            int floorPlayTutorialWidth = (int)(Constants.FloorSelectDialog_PlayTutorialWidth * screenWidth);
            m_Game.Tutorial.SetPieceData(TutorialSystem.TutorialPiece.FloorPlay, new Vector2(m_Buttons[1].Rect.Left, m_Buttons[1].Rect.Bottom), (float)-Math.PI / 4,
                                                                                 new Rectangle(m_FloorScrollRect.Right + m_iLeftRightMargin, m_Buttons[1].Rect.Bottom + m_Game.Tutorial.ArrowWidth, floorPlayTutorialWidth, 0), "Press this button to play the selected floor.", TutorialSystem.TutorialPiece.None, m_Buttons[1].Rect);
        }
Exemplo n.º 2
0
        public HubScene(Happiness game)
            : base(game)
        {
            InputController.IC.OnClick += IC_OnClick;
            InputController.IC.OnDragBegin += IC_OnDragBegin;
            InputController.IC.OnDrag += IC_OnDrag;

            NetworkManager nm = NetworkManager.Net;

            // Setup Towers
            int centerX = Game.ScreenWidth >> 1;
            int centerY = Game.ScreenHeight >> 1;
            int towerSize = (int)(Constants.HubScene_TowerSize * Game.ScreenHeight);
            int towerTop = (int)(Constants.HubScene_TowerAreaTop * Game.ScreenHeight);
            int leftX = centerX - towerSize - towerSize;
            int midX = centerX - (towerSize >> 1);
            int rightX = centerX + towerSize;
            m_Towers = new Tower[6];
            m_Towers[0] = new Tower(3, nm.GameData.TowerFloors[0], new Rectangle(leftX, towerTop, towerSize, towerSize), Assets.Towers[0]);
            m_Towers[1] = new Tower(4, nm.GameData.TowerFloors[1], new Rectangle(midX, towerTop, towerSize, towerSize), Assets.Towers[1]);
            m_Towers[2] = new Tower(5, nm.GameData.TowerFloors[2], new Rectangle(rightX, towerTop, towerSize, towerSize), Assets.Towers[2]);
            m_Towers[3] = new Tower(6, nm.GameData.TowerFloors[3], new Rectangle(leftX, centerY, towerSize, towerSize), Assets.Towers[3]);
            m_Towers[4] = new Tower(7, nm.GameData.TowerFloors[4], new Rectangle(midX, centerY, towerSize, towerSize), Assets.Towers[0]);
            m_Towers[5] = new Tower(8, nm.GameData.TowerFloors[5], new Rectangle(rightX, centerY, towerSize, towerSize), Assets.Towers[0]);

            // Level/Exp display
            int expBarWidth = (int)(Constants.HubScene_ExpBarWidth * Game.ScreenWidth);
            int expBarHeight = (int)(Constants.HubScene_ExpBarHeight * Game.ScreenHeight);
            int expBarLeft = (int)(Constants.HubScene_MarginLeftRight * Game.ScreenWidth);
            int levelY = (int)(Constants.HubScene_MarginTopBottom * Game.ScreenHeight);
            GameDataArgs gd = NetworkManager.Net.GameData;
            game.Tutorial.Load(gd.Tutorial);
            m_LevelLabel = new UILabel("Level: ", expBarLeft, levelY, Color.Goldenrod, Assets.HelpFont, UILabel.XMode.Left);
            m_Level = new UILabel(gd.Level.ToString(), expBarLeft + m_LevelLabel.Width, levelY, Color.White, Assets.HelpFont, UILabel.XMode.Left);
            m_ExpBar = new UIProgressBar(new Rectangle(expBarLeft, levelY + m_Level.Height, expBarWidth, expBarHeight));
            m_ExpBar.ProgressColor = Color.Yellow;
            m_ExpBar.Progress = (float)gd.Exp / Balance.ExpForNextLevel(gd.Level);

            int tutorialWidth = (int)(Constants.HubScene_TutorialWidth * Game.ScreenWidth);
            Game.Tutorial.SetPieceData(TutorialSystem.TutorialPiece.ClickTower, new Vector2(leftX, towerTop + (towerSize >> 1)), 0, new Rectangle(leftX - (tutorialWidth + 5), towerTop + (towerSize >> 1) + (Game.Tutorial.ArrowHeight >> 1), tutorialWidth, 0), "Tap the 3x3 tower to get started.", TutorialSystem.TutorialPiece.None, m_Towers[0].Rect);
            Game.Tutorial.TriggerPiece(TutorialSystem.TutorialPiece.ClickTower);
        }