示例#1
0
        public PlayerTurnState(Game game, int playerNum) : base(game)
        {
            this.playerNum = playerNum;

            state = LocalState.WaitForButton;

            playerSprite = new PlayerSprite(game);

            playerSprite.Sound     = true;
            playerSprite.Direction = SpriteDirection.S;
            PlayerSprite.Small     = true;
            playerSprite.X         =
                game.MapWidth / 2 -
                Graphics.SMALLPLAYERWIDTH / 2;
            playerSprite.Y =
                game.MapHeight / 2 -
                Graphics.SMALLPLAYERHEIGHT / 2 -
                Graphics.MAPSTOREOFFSET;

            muleSprite  = new MuleSprite(game);
            lastMuleDir = SpriteDirection.S;

            game.Players[playerNum].Highlight = false;

            smallScale      = 100 / Graphics.STOREWIDTH * game.Graphics.MapScale;
            storeScale      = smallScale;
            deptBottomActed = false;
            deptTopActed    = false;

            storeTransLoc = StoreTransLoc.Middle;

            ticker         = new Ticker(game, 100d);
            ticker.TimeUp += new TimeUpHandler(ticker_TimeUp);

            stateTimer.Change(750, 750);
        }
示例#2
0
        private void drawStore(int playerNum, PlayerSprite sprite, MuleSprite muleSprite, bool hasMule)
        {
            storeBuffer.Blit(storebg);

            for (int i = 0; i < 4; i++)
            {
                storeBuffer.Blit(
                    departments,
                    new Point(
                        STOREBUFFER + i * (DEPTWIDTH + DEPTSPACING),
                        STOREBUFFER
                        ),
                    new Rectangle(
                        i * DEPTWIDTH * 2 + DEPTWIDTH,
                        0,
                        DEPTWIDTH,
                        DEPTTOPHEIGHT
                        ));

                if (i < 3)
                {
                    storeBuffer.Blit(
                        departments,
                        new Point(
                            STOREBUFFER + i * (DEPTWIDTH + DEPTTIGHTSPACING),
                            STOREHEIGHT - STOREBUFFER - DEPTBOTTOMHEIGHT
                            ),
                        new Rectangle(
                            i * DEPTWIDTH * 2 + DEPTWIDTH,
                            DEPTTOPHEIGHT + DEPTBUFFER,
                            DEPTWIDTH,
                            DEPTBOTTOMHEIGHT
                            ));
                }
                else
                {
                    storeBuffer.Blit(
                        departments,
                        new Point(
                            STOREWIDTH - STOREBUFFER - DEPTMULEWIDTH,
                            STOREHEIGHT - STOREBUFFER - DEPTMULEHEIGHT
                            ),
                        new Rectangle(
                            i * DEPTWIDTH * 2,
                            DEPTTOPHEIGHT + DEPTBUFFER,
                            DEPTMULEWIDTH,
                            DEPTMULEHEIGHT
                            ));
                }
            }

            for (int i = 0; i < game.Store.Mules; i++)
            {
                if (i == 14)
                {
                    break;
                }

                storeBuffer.Blit(
                    departments,
                    new Point(
                        STOREWIDTH -
                        STOREBUFFER -
                        MULEICONHBUFFER -
                        (2 - (i % 2)) * MULEICONWIDTH,
                        STOREHEIGHT -
                        STOREBUFFER -
                        MULEICONVBUFFER -
                        ((i + 2) / 2) * MULEICONHEIGHT
                        ),
                    new Rectangle(
                        6 * DEPTWIDTH + DEPTMULEWIDTH,
                        DEPTTOPHEIGHT + DEPTBUFFER,
                        MULEICONWIDTH,
                        MULEICONHEIGHT
                        ));
            }

            TextSprite txt =
                getTextSprite(
                    "$" + game.Store.MulePrice.ToString(),
                    18,
                    Color.Black
                    );

            storeBuffer.Blit(
                txt,
                new Point(
                    STOREWIDTH -
                    STOREBUFFER -
                    DEPTMULEWIDTH / 2 -
                    txt.Width / 2,
                    STOREHEIGHT -
                    STOREBUFFER -
                    MULEICONVBUFFER / 2 -
                    txt.Height / 2
                    ));

            txt =
                getTextSprite(
                    "MULES",
                    18,
                    Color.White
                    );

            storeBuffer.Blit(
                txt,
                new Point(
                    STOREWIDTH -
                    STOREBUFFER -
                    DEPTMULEWIDTH / 2 -
                    txt.Width / 2,
                    STOREHEIGHT -
                    STOREBUFFER / 2 -
                    txt.Height / 2
                    ));

            if (hasMule)
            {
                drawMule(
                    storeBuffer,
                    playerNum,
                    muleSprite.Outfitted,
                    muleSprite.Frame,
                    muleSprite.X,
                    muleSprite.Y,
                    false
                    );
            }

            drawPlayer(
                storeBuffer,
                playerNum,
                sprite.Frame,
                sprite.X,
                sprite.Y,
                false
                );

            for (int i = 0; i < 4; i++)
            {
                storeBuffer.Blit(
                    departments,
                    new Point(
                        STOREBUFFER + i * (DEPTWIDTH + DEPTSPACING),
                        STOREBUFFER
                        ),
                    new Rectangle(
                        i * DEPTWIDTH * 2,
                        0,
                        DEPTWIDTH,
                        DEPTTOPHEIGHT
                        ));

                if (i < 3)
                {
                    storeBuffer.Blit(
                        departments,
                        new Point(
                            STOREBUFFER + i * (DEPTWIDTH + DEPTTIGHTSPACING),
                            STOREHEIGHT - STOREBUFFER - DEPTBOTTOMHEIGHT
                            ),
                        new Rectangle(
                            i * DEPTWIDTH * 2,
                            DEPTTOPHEIGHT + DEPTBUFFER,
                            DEPTWIDTH,
                            DEPTBOTTOMHEIGHT
                            ));
                }
            }

            buffer.Blit(
                storeBuffer,
                new Point(
                    buffer.Width / 2 - storeBuffer.Width / 2,
                    buffer.Height / 2 - storeBuffer.Height / 2
                    ));
        }