コード例 #1
0
ファイル: Nave.cs プロジェクト: Seiseisei666/Quantum
 /// Metodo per attaccare una nave target
 /// <param name="target">riferimento all'istanza di Nave da attaccare</param>
 /// <returns>Restituisce True se l'attacco è andato a buon fine</returns>
 bool Attacco(Nave target)
 {
     if (Pwr + util.Dadi(1) <= target.Pwr + util.Dadi(1))
     {
         target.Distruggi();
         this._proprietario.Dominio++;
         target._proprietario.Dominio--;
         return true;
     }
     return false;
 }
コード例 #2
0
ファイル: Giocatore.cs プロジェクト: Seiseisei666/Quantum
 /// metodo generale per mettere in gioco e riconfigurare nuove navi
 public void NuoveNavi(int numeroNuoveNavi = 1)
 {
     for (int i = 0; i < numeroNuoveNavi; i++)
     {
         Nave n = new Nave(this);
         _flotta.Add(n);
         n.Riconfigura();
     }
 }
コード例 #3
0
ファイル: Tile.cs プロジェクト: Seiseisei666/Quantum
 public virtual bool PresenzaAlleata(Nave nave)
 {
     return false;
 }
コード例 #4
0
ファイル: PathFinder.cs プロジェクト: Seiseisei666/Quantum
        /// <summary> Avvia il pathfinder per calcolare tutte le caselle raggiungibili. </summary>
        /// <param name="Partenza">Casella di partenza</param>
        /// <param name="muoveInDiagonale">determina se il movimento diagonale è abilitato</param>
        public void Start(Casella Partenza, bool muoveInDiagonale)
        {
            if (_partito) return;   // ignora chiamate successive multiple del metodo Start
            _muoveInDiagonale = muoveInDiagonale;

            if (Partenza != null)
            {
                _partito = true;
                _nave = Partenza.Occupante;
                if (_nave == null)
                    throw new ArgumentNullException("Pathfinder chiamato con una casella di partenza su cui non c'è nessuna nave!!!");
                crawl(Partenza.ID, 0, new int[0], Direzioni.nessuna);
            }
        }
コード例 #5
0
ファイル: Tabellone.cs プロジェクト: Seiseisei666/Quantum
 /// <summary>
 /// Aggiunge la nave alla lista delle navi da disegnare
 /// </summary>
 public void AggiungiNave(Nave nave)
 {
     navi = new Nave[] { nave }.Concat(navi).ToArray();
     // Controllo se la nave viene piazzata; in quel caso calcolo dove deve essere visualizzata e aggiorno la sua posizione
     nave.Piazzata += (s, e) => nave.Anima(Tile2Pixel(nave.CasellaOccupata), 0f);
 }
コード例 #6
0
ファイル: Pianeta.cs プロジェクト: Seiseisei666/Quantum
 /// <summary> Restituisce True se sul pianeta c'è una mentina del colore della nave</summary>
 public override bool PresenzaAlleata(Nave nave)
 {
     return _colonizzazioni.Any(c => c == nave.Colore);
 }
コード例 #7
0
ファイル: Casella.cs プロジェクト: Seiseisei666/Quantum
 public override bool PresenzaAlleata(Nave nave)
 {
     return (_occupante != null && _occupante.Colore == nave.Colore);
 }
コード例 #8
0
ファイル: Casella.cs プロジェクト: Seiseisei666/Quantum
 //costruttore
 public Casella(QuantumTile tipo)
 {
     _tipo = tipo;
     _occupante = null;
 }