public PanneauRuine(Jeu _jeu, Creature heros, Ruines.RuineDescription _ruine) : base(_jeu, Overlay.Position.CENTRE, 400, 440, 0, 0, heros.vraiNom + " fouille la Ruine de " + _ruine.nom + "...") { _modalOverlay = ModalOverlay.FOUILLE_RUINE; // Bouton Fermer Bouton fermer = new Bouton(_jeu, _xoverlay + 16, _yoverlay + _height - 48, "Fermer", null, _jeu.isoFont); fermer.click = delegate(Controle clicked, int x, int y, bool leftClick, bool rightClick, bool released) { if (released) { _jeu.popOverlay(); } }; _controles.Add(fermer); string nomEnnemi = null; string nomRecompense = null; bool herosGagne = _jeu.ruines.fouilleRuine(heros, _ruine, ref nomEnnemi, ref nomRecompense); // Affichage drawCallBack = delegate(SpriteBatch spriteBatch, GraphicsDevice GraphicsDevice, GameTime gameTime) { spriteBatch.Draw(_jeu.texRuine, new Rectangle(_xoverlay + (_width - 256) / 2, _yoverlay + 32, 256, 256), null, Color.White, 0, Vector2.Zero, SpriteEffects.None, 0.7f); spriteBatch.DrawString(_jeu.font, heros.vraiNom + " rencontre " + nomEnnemi + "...", new Vector2(_xoverlay + 16, _yoverlay + 256 + 48), Color.White); spriteBatch.DrawString(_jeu.font, "... et " + (herosGagne?" en sort vainqueur !" : " a été massacré(e) !"), new Vector2(_xoverlay + 16, _yoverlay + 256 + 48 + 20), Color.White); if (herosGagne) { spriteBatch.DrawString(_jeu.font, heros.vraiNom + " trouve " + nomRecompense, new Vector2(_xoverlay + 16, _yoverlay + 256 + 48 + 20 * 2), Color.White); } }; }
/// <summary> /// Fouille une ruine /// </summary> private void boutonFouillerRuineClick() { // Il faut que l'armée sélectionnée comprenne un héros et soit sur une ruine... if (_jeu.selectedArmee != null) { Creature crea = null; for (int i = 0; i < _jeu.selectedArmee.getTaille(); i++) { crea = _jeu.selectedArmee.getCreature(i); if (crea.description.heros) { break; } else { crea = null; } } if (crea != null) { // un héros, mais il y a-t-il une ruine ? if (_jeu.ruines.ruines.ContainsKey(crea.positionCarte)) { Ruines.RuineDescription rd = _jeu.ruines.ruines[crea.positionCarte]; if (!rd.visite) { // Ouvre le panneau de visite de la ruine _jeu.addOverlay(new PanneauRuine(_jeu, crea, rd)); } else { _jeu.messageInfo = "Cette ruine a déjà été fouillée"; } } else { _jeu.messageInfo = "Vous ne pouvez fouiller que les ruines"; } } else { _jeu.messageInfo = "Seul un héros peut visiter une ruine"; } } }