public override int SubirAttaque(Combattant agresseur) { int degats= (float)Rand.NextDouble() > Position1.chanceEsquiver(agresseur.Position1) ? agresseur.Attaquer(Position1)/_baseDefense : 0; Console.WriteLine("Le joueur {0} est attaquƩ par {3} {1} et perd {2} pv", Nom, agresseur.Nom, degats, agresseur.GetType().Name); Blesser(degats); return degats; }
public void Tuer(Combattant c) { liste.Remove(c); if (c.Position1 is PositionTank) TuerTank(c); if (c.Position1 is PositionCorpsACorps) { placerCombattantsListe(listeCac, LargeurEcran / 2 + (Inverse ? 10 + LargeurPerso : -10 - 2 * LargeurPerso), new PositionCorpsACorps()); listeCac.Remove(c); } if (c.Position1 is PositionDistance) { listeDistance.Remove(c); placerCombattantsListe(listeDistance, LargeurEcran / 2 + (Inverse ? 10 + 3 * LargeurPerso : -10 - 4 * LargeurPerso), new PositionDistance()); } }
private void TuerTank(Combattant c) { listeTank.Remove(c); if (listeTank.Count <1) { if (listeCac.Count > 0) { listeTank.Add(listeCac[0]); listeCac.RemoveAt(0); placerCombattantsListe(listeCac, LargeurEcran / 2 + (Inverse ? 10 + LargeurPerso : -10 - 2 * LargeurPerso), new PositionCorpsACorps()); } else if (listeDistance.Count>0) { listeTank.Add(listeDistance[0]); listeDistance.RemoveAt(0); placerCombattantsListe(listeDistance, LargeurEcran / 2 + (Inverse ? 10 + 3 * LargeurPerso : -10 - 4 * LargeurPerso), new PositionDistance()); } } placerCombattantsListe(listeTank, LargeurEcran / 2 + (Inverse ? 10 : -10 - LargeurPerso), new PositionTank()); }
public void Mercurochroume(Combattant soigne) { if (Mana <= 20) return; soigne.Soigner(10); Mana -= 20; }
public abstract int SubirAttaque(Combattant agresseur);
async Task Clignote(Combattant combattant, TimeSpan intervalle, CancellationToken token) { var timer = new Timer(intervalle.Milliseconds); var img = affichesCombattants[combattant]; timer.Elapsed += (s, e) => { Application.Current.Dispatcher.Invoke(() => { if (img.Visibility == Visibility.Hidden) { img.Visibility = Visibility.Visible; } else { img.Visibility = Visibility.Hidden; } }); if (token.IsCancellationRequested) { timer.Stop(); Application.Current.Dispatcher.Invoke(() => { img.Visibility = Visibility.Visible; }); } }; timer.Start(); }
private void OnHasMoved(Combattant c) { if (onHasMoved != null) onHasMoved(listeCombattants.IndexOf(c), this); }
private void OnIsDead(Combattant c) { if (onIsDead != null) onIsDead(listeCombattants.IndexOf(c), this); }