private void SelecionaUnidade(object sender, EventArgs e) { if (menuUnidade == null) { menuUnidade = new MenuUnidade((Unidade)sender); menuUnidade.OnSellUnidade += new System.EventHandler(VenderUnidade); menuUnidade.OnUpUnidade += new System.EventHandler(UpUnidade); } }
public void Update(GameTime gameTime) { mouseState = Mouse.GetState(); if (!Pause) { // busca a posicao do Mouse dentro dos quadros int cellX = (int)(mouseState.X / 32); int cellY = (int)(mouseState.Y / 32); // busca qual quadro o mouse se encontra int tileX = cellX * 32; int tileY = cellY * 32; if (!nivelCompleto) { if (rodadaInimigo != null) { rodadaInimigo.Update(gameTime); if (rodadaInimigo.RodadaFinalizada) { rodadaFinalizada = true; } } else rodadaFinalizada = true; if (rodadaFinalizada) { tempoUltimaRodada += (float)gameTime.ElapsedGameTime.TotalSeconds; } if (tempoUltimaRodada > 2.5f) { ProximaRodada(); } } foreach (Unidade unidade in unidades) { if (unidade.Alvo == null && rodadaInimigo != null) unidade.BuscaInimigoProximo(this.rodadaInimigo.Inimigos.Where(x=> x.Ativo && !(x.Morto)).ToList()); List<Inimigo> inimigos; if (rodadaInimigo != null) inimigos = this.rodadaInimigo.Inimigos.Where( x=> x.Ativo && !x.Morto).ToList(); else inimigos = new List<Inimigo>(); unidade.Update(gameTime, mouseState, oldMouseState, inimigos); } List<AnimacaoOuro> animacoes = new List<AnimacaoOuro>(animacoesOuro); foreach (AnimacaoOuro animacao in animacoes) animacao.Update(gameTime); AtualizaBarraInfo(); UpdateCompraUnidade(mouseState, cellY, cellX); if (menuUnidade != null) menuUnidade = menuUnidade.Update(gameTime); } barraUnidades.Update(gameTime); transacaoFinal.Update(gameTime); oldMouseState = Mouse.GetState(); }