private CAeronef ChoisirAeronef(CVoyageur client) { List <CAeronef> aPassager = Aeronefs.FindAll(vehicule => (vehicule.etat.Status == EtatAeronef.Inactif && vehicule.Type == typeAvion.Passager)); if (aPassager.Count <= 0) { return(null); } aPassager.Sort((x, y) => x.capacite.CompareTo(y.capacite)); CAeronef aeronef = aPassager.ElementAt(aPassager.Count - 1); for (int i = aPassager.Count() - 2; i >= 0 && aeronef.capacite > client.clients; i--) { aeronef = (aPassager.ElementAt(i).capacite >= client.clients) ? aPassager.ElementAt(i) : aeronef; } return(aeronef); }
private CAeronef ChoisirAeronef(CCargaison client) { List <CAeronef> aCargo = Aeronefs.FindAll(vehicule => (vehicule.etat.Status == EtatAeronef.Inactif && vehicule.Type == typeAvion.Cargo)); if (aCargo.Count <= 0) { return(null); } aCargo.Sort((x, y) => x.capacite.CompareTo(y.capacite)); CAeronef aeronef = aCargo.ElementAt(aCargo.Count - 1); for (int i = aCargo.Count() - 2; i >= 0 && aeronef.capacite > client.poid; i--) { aeronef = (aCargo.ElementAt(i).capacite >= client.poid) ? aCargo.ElementAt(i) : aeronef; } return(aeronef); }
public Etat ChangerEtat(CAeronef aeronef, int TimerSecs) { if (!Fini) { double TimeDiff = (TimerSecs - aeronef.DebutEtat) / 3600.0; if (TimeDiff >= 1) { double a = (double)(m_posArriver.y - m_posActuelle.y) / (double)(m_posArriver.x - m_posActuelle.x); double x = (m_posActuelle.x + aeronef.vitesse * TimeDiff); double b = (a * (double)m_posActuelle.x - m_posActuelle.y) * -1; double y = a * x + b; m_posActuelle.x = (int)x; m_posActuelle.y = (int)y; } } if (m_prevEtat == EtatAeronef.Embarquement) { return(Fini ? new CDebarquement(aeronef.DebutEtat, (aeronef as CTransport).debarquement, aeronef.capacite) : base.ChangerEtat()); } return(Fini ? new CMaintenance(aeronef.DebutEtat, aeronef.entretient): base.ChangerEtat()); }
public override Etat ChangerEtat(CAeronef aeronef) { return(Fini ? new CVol(EtatAeronef.Sauvetage, m_posArriver, m_posDepart) : base.ChangerEtat()); }
public override Etat ChangerEtat(CAeronef aeronef) { return(base.ChangerEtat()); }
public int AjouterAeronef(CAeronef Aeronef) { Aeronefs.Add(Aeronef); return(Aeronefs.Count()); }
public void RetierAeronef(CAeronef Aeronef) { Aeronefs.RemoveAt(Aeronefs.FindIndex(e => e == Aeronef)); }
public override Etat ChangerEtat(CAeronef aeronef) { MaintenanceFini = FinMaintenance <= aeronef.DebutEtat; return(Fini ? new CInactif():base.ChangerEtat()); }
public override Etat ChangerEtat(CAeronef aeronef) { return(Fini ? new CVol(EtatAeronef.Embarquement, depart, arriver): base.ChangerEtat()); }
public override Etat ChangerEtat(CAeronef aeronef) { return(Fini ? new CVol(EtatAeronef.Observation, m_posArriver, m_posDepart) : base.ChangerEtat()); }
public void AjouterAeronef(CAeroport Aeroport, CAeronef Aeronef) { Aeroport.AjouterAeronef(Aeronef); }
public virtual Etat ChangerEtat(CAeronef aeronef, Position depart, Position arriver) { return(this); }
public abstract Etat ChangerEtat(CAeronef aeronef);
public override Etat ChangerEtat(CAeronef aeronef) { return(Fini ? new CMaintenance(aeronef.DebutEtat, aeronef.entretient):base.ChangerEtat()); }