}//end costruttore /* * Override del metodo effetto. * Il metodo sposta la pedina in una data posizione (destinazione) passata * all'atto della creazione */ public override void effetto(TavoloDaGioco t, Pedina p, EventHandler <ArgEvento <Pedina> > evento) { int tiro = p.muovi(_destinazione - p.posizione); t.sposta(p, tiro); evento.Invoke(this, new ArgEvento <Pedina>(p)); }
public override void effetto(TavoloDaGioco t, Pedina p, EventHandler <ArgEvento <Pedina> > evento) { //se la casella è il pozzo if (_idCasella == POZZO) { //controllo se in pozzo c'è nessuno if (t.inPozzo != null && t.inPozzo != p) { //se c'è un'altra pedina la libero t.inPozzo.inPozzo = false; } //poi prendo il posto in pozo p.inPozzo = true; t.inPozzo = p; } //altrimenti se la casella è la prigione else if (_idCasella == PRIGIONE) { //controllo se in prigione c'è nessuno if (t.inPrigione != null && t.inPrigione != p) { //se c'era un'altra pedina la libero t.inPrigione.inPrigione = false; } //poi prendo il posto in prigione p.inPrigione = true; t.inPrigione = p; } evento.Invoke(this, new ArgEvento <Pedina>(p)); }
/* * Override del metodo effetto. * Il metodo sposta la pedina di n posizioni pari al tiro * effettuato precedentemente. */ public override void effetto(TavoloDaGioco t, Pedina p, EventHandler <ArgEvento <Pedina> > evento) { if (!p.vincitore) { int tiro = p.muovi(p.tiroPrecedente); t.sposta(p, tiro); } evento.Invoke(this, new ArgEvento <Pedina>(p)); }
public override void effetto(TavoloDaGioco t, Pedina p, EventHandler <ArgEvento <Pedina> > evento) { //la casella normale non fa nulla in particolare evento.Invoke(this, new ArgEvento <Pedina>(p)); }
public override void effetto(TavoloDaGioco t, Pedina p, EventHandler <ArgEvento <Pedina> > evento) { //metto la pedina in attesa per tre turni p.attendi(NUM_TURNI_ATTESA); evento.Invoke(this, new ArgEvento <Pedina>(p)); }
/* * Metodo estratto effetto della pedina. * Al metodo è passata l'istanza del tavolo, la pedina che invoca l'effetto * e l'evento effetto applicato che informa il controllore dell'applicazione dell'effetto */ public abstract void effetto(TavoloDaGioco t, Pedina p, EventHandler <ArgEvento <Pedina> > evento);