/// 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; }
/// 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(); } }
public virtual bool PresenzaAlleata(Nave nave) { return false; }
/// <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); } }
/// <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); }
/// <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); }
public override bool PresenzaAlleata(Nave nave) { return (_occupante != null && _occupante.Colore == nave.Colore); }
//costruttore public Casella(QuantumTile tipo) { _tipo = tipo; _occupante = null; }