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); }
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 )); }