public AirlineAirportFacility(Airline airline, Airport airport, AirportFacility facility, DateTime date)
 {
     this.Airline = airline;
     this.Facility = facility;
     this.FinishedDate = date;
     this.Airport = airport;
 }
Ejemplo n.º 2
0
        //returns the facilities being build for an airline
        public AirportFacility getAirlineBuildingFacility(Airline airline, AirportFacility.FacilityType type)
        {
            var facility =  this.Facilities.FirstOrDefault(f => f.Airline == airline && f.Facility.Type == type && GameObject.GetInstance().GameTime < f.FinishedDate);

            if (facility == null)
                return null;
            else
                return facility.Facility;
        }
Ejemplo n.º 3
0
        //returns the airport facility for a specific type for an airline
        public AirlineAirportFacility getAirlineAirportFacility(Airline airline, AirportFacility.FacilityType type)
        {
            List<AirlineAirportFacility> facilities = new List<AirlineAirportFacility>();
            lock (this.Facilities)
            {
                facilities = (from f in this.Facilities where f.Airline == airline && f.Facility.Type == type && GameObject.GetInstance().GameTime >= f.FinishedDate orderby f.FinishedDate descending select f).ToList();

                if (facilities.Count() == 0)
                {
                    AirportFacility noneFacility = AirportFacilities.GetFacilities(type).Find(f => f.TypeLevel == 0);
                    this.addAirportFacility(airline, noneFacility, GameObject.GetInstance().GameTime);

                    facilities.Add(getAirlineAirportFacility(airline,type));
                  }

            }
            return facilities.FirstOrDefault();
        }
Ejemplo n.º 4
0
 /*
 //adds a facility to an airline
 public void addAirportFacility(Airline airline, AirportFacility facility, DateTime finishedDate)
 {
     lock (this.Facilities)
     {
         this.Facilities.Add(new AirlineAirportFacility(airline, this, facility, finishedDate));
     }
 }*/
 //sets the facility for an airline
 public void addAirportFacility(Airline airline, AirportFacility facility, DateTime finishedDate)
 {
     //this.Facilities.RemoveAll(f => f.Airline == airline && f.Facility.Type == facility.Type);
     this.Facilities.Add(new AirlineAirportFacility(airline, this, facility, finishedDate));
 }
Ejemplo n.º 5
0
 /*
  * //adds a facility to an airline
  * public void addAirportFacility(Airline airline, AirportFacility facility, DateTime finishedDate)
  * {
  *  lock (this.Facilities)
  *  {
  *      this.Facilities.Add(new AirlineAirportFacility(airline, this, facility, finishedDate));
  *  }
  * }*/
 //sets the facility for an airline
 public void addAirportFacility(Airline airline, AirportFacility facility, DateTime finishedDate)
 {
     //this.Facilities.RemoveAll(f => f.Airline == airline && f.Facility.Type == facility.Type);
     this.Facilities.Add(new AirlineAirportFacility(airline, this, facility, finishedDate));
 }
Ejemplo n.º 6
0
 //adds a facility to an airline
 public void addAirportFacility(Airline airline, AirportFacility facility, DateTime finishedDate)
 {
     this.Facilities.Add(new AirlineAirportFacility(airline, this, facility, finishedDate));
 }
Ejemplo n.º 7
0
 //returns all facilities of a specific type
 public static List<AirportFacility> GetFacilities(AirportFacility.FacilityType type)
 {
     return GetFacilities().FindAll((delegate(AirportFacility facility) { return facility.Type ==type; }));
 }
Ejemplo n.º 8
0
 //returns if an airline has any facilities besides a specific type
 public Boolean hasFacilities(Airline airline, AirportFacility.FacilityType ftype)
 {
     Boolean hasFacilities = false;
     foreach (AirportFacility.FacilityType type in Enum.GetValues(typeof(AirportFacility.FacilityType)))
     {
         if (type != ftype)
             if (getAirportFacility(airline, type).TypeLevel > 0)
                 hasFacilities = true;
     }
     return hasFacilities;
 }
 public HumanFacilityType(Airport airport, AirportFacility current, AirportFacility next)
 {
     this.Airport = airport;
     this.CurrentFacility = current;
     this.NextFacility = next;
 }
Ejemplo n.º 10
0
 //adds a new facility to the collection
 public static void AddFacility(AirportFacility facility)
 {
     facilities.Add(facility.Shortname, facility);
 }
        //returns the next facility item for the specific type for the human airline
        private AirportFacility getHumanNextAirportFacility(AirportFacility.FacilityType type)
        {
            List<AirportFacility> facilities = AirportFacilities.GetFacilities(type);

            facilities.Sort((delegate(AirportFacility f1, AirportFacility f2) { return f1.TypeLevel.CompareTo(f2.TypeLevel); }));

            int index = facilities.FindIndex(f=>f.Uid == this.Airport.getAirportFacility(GameObject.GetInstance().HumanAirline, type).Uid);

            if (index < facilities.Count - 1)
                return facilities[index + 1];
            else
                return facilities[0];
        }
Ejemplo n.º 12
0
        //downgrades the facility for a specific type for an airline
        public void downgradeFacility(Airline airline, AirportFacility.FacilityType type)
        {
            AirportFacility currentFacility = getAirportFacility(airline, type);
            AirlineAirportFacility aaf = getAirlineAirportFacility(airline, type);

            List<AirportFacility> facilities = AirportFacilities.GetFacilities(type);

            facilities.Sort((delegate(AirportFacility f1, AirportFacility f2) { return f1.TypeLevel.CompareTo(f2.TypeLevel); }));

            int index = facilities.IndexOf(getAirportFacility(airline, type));

            addAirportFacility(airline, facilities[index - 1], GameObject.GetInstance().GameTime);

            this.Facilities.Remove(aaf);
        }
Ejemplo n.º 13
0
 //adds a facility to an airline
 public void addAirportFacility(Airline airline, AirportFacility facility, DateTime finishedDate)
 {
     this.Facilities.Add(new AirlineAirportFacility(airline, this, facility, finishedDate));
 }
Ejemplo n.º 14
0
        //returns the facility of a specific type for an airline - useAirport == true if it should also check for the airports facility
        public AirportFacility getAirportFacility(Airline airline, AirportFacility.FacilityType type, Boolean useAirport = false)
        {
            if (!useAirport)
                return getAirlineAirportFacility(airline, type).Facility;
            else
            {
                AirportFacility airlineFacility = getCurrentAirportFacility(airline, type);
                AirportFacility airportFacility = getCurrentAirportFacility(null, type);

                return airportFacility == null || airlineFacility.TypeLevel > airportFacility.TypeLevel ? airlineFacility : airportFacility;
            }
        }
Ejemplo n.º 15
0
        //adds an airline facility to the airport
        public void addAirlineFacility(AirportFacility facility)
        {
            AirlineAirportFacility nextFacility = new AirlineAirportFacility(GameObject.GetInstance().HumanAirline,this.Airport, facility, GameObject.GetInstance().GameTime.AddDays(facility.BuildingDays));
            this.Airport.setAirportFacility(nextFacility);

            AirlineAirportFacilityMVVM currentFacility = this.AirlineFacilities.Where(f=>f.Facility.Facility.Type == facility.Type).FirstOrDefault();

            if (currentFacility != null)
                this.AirlineFacilities.Remove(currentFacility);

            Alliance alliance = nextFacility.Airline.Alliances.Count == 0 ? null : nextFacility.Airline.Alliances[0];

            this.AirlineFacilities.Add(new AirlineAirportFacilityMVVM(nextFacility,alliance));
        }
Ejemplo n.º 16
0
        //returns the current airport facility of a specific type for an airlines
        public AirportFacility getCurrentAirportFacility(Airline airline, AirportFacility.FacilityType type)
        {
            List<AirportFacility> facilities = new List<AirportFacility>();

            var tFacilities = new List<AirlineAirportFacility>(this.Facilities);
            lock (this.Facilities)
            {

                facilities = (from f in tFacilities where f.Airline == airline && f.Facility.Type == type && f.FinishedDate <= GameObject.GetInstance().GameTime orderby f.FinishedDate descending select f.Facility).ToList();
                int numberOfFacilities = facilities.Count();

                if (numberOfFacilities == 0 && airline != null)
                {
                    var noneFacility = AirportFacilities.GetFacilities(type).Find(f => f.TypeLevel == 0);
                    this.addAirportFacility(airline, noneFacility, GameObject.GetInstance().GameTime);

                    facilities.Add(noneFacility);

                }
            }
            return facilities.FirstOrDefault();
        }
Ejemplo n.º 17
0
        /*!loads the airport facilities.
         */
        private static void LoadAirportFacilities()
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(AppSettings.getDataPath() + "\\airportfacilities.xml");
            XmlElement root = doc.DocumentElement;

            XmlNodeList facilitiesList = root.SelectNodes("//airportfacility");

            foreach (XmlElement element in facilitiesList)
            {
                string section = root.Name;
                string uid = element.Attributes["uid"].Value;
                string shortname = element.Attributes["shortname"].Value;
                AirportFacility.FacilityType type =
              (AirportFacility.FacilityType)Enum.Parse(typeof(AirportFacility.FacilityType), element.Attributes["type"].Value);
                int typeLevel = Convert.ToInt16(element.Attributes["typelevel"].Value);

                double price = XmlConvert.ToDouble(element.Attributes["price"].Value);
                int buildingDays = XmlConvert.ToInt32(element.Attributes["buildingdays"].Value);

                XmlElement levelElement = (XmlElement)element.SelectSingleNode("level");
                int service = Convert.ToInt32(levelElement.Attributes["service"].Value);
                int luxury = Convert.ToInt32(levelElement.Attributes["luxury"].Value);

                AirportFacility facility = new AirportFacility(section, uid, shortname, type, buildingDays, typeLevel, price, service, luxury);

                AirportFacilities.AddFacility(facility);

                XmlElement employeesElement = (XmlElement)element.SelectSingleNode("employees");

                AirportFacility.EmployeeTypes employeestype = (AirportFacility.EmployeeTypes)Enum.Parse(typeof(AirportFacility.EmployeeTypes), employeesElement.Attributes["type"].Value);
                int numberofemployees = Convert.ToInt16(employeesElement.Attributes["numberofemployees"].Value);

                facility.EmployeeType = employeestype;
                facility.NumberOfEmployees = numberofemployees;

                if (element.SelectSingleNode("translations") != null)
                    Translator.GetInstance().addTranslation(root.Name, element.Attributes["uid"].Value, element.SelectSingleNode("translations"));
            }
        }
Ejemplo n.º 18
0
 //removes the facility for an airline
 public void removeFacility(Airline airline, AirportFacility facility)
 {
     this.Facilities.RemoveAll(f=>f.Airline == airline && f.Facility.Type == facility.Type);
 }
Ejemplo n.º 19
0
 //adds a new facility to the collection
 public static void AddFacility(AirportFacility facility)
 {
     facilities.Add(facility.Shortname, facility);
 }
Ejemplo n.º 20
0
 //removes the facility for an airline
 public void removeFacility(Airline airline, AirportFacility facility)
 {
     this.Facilities.RemoveAll(f => f.Airline == airline && f.Facility.Type == facility.Type);
 }
Ejemplo n.º 21
0
        //adds an airline facility to the airport
        public void addAirlineFacility(AirportFacility facility)
        {
            AirlineAirportFacility nextFacility = new AirlineAirportFacility(GameObject.GetInstance().HumanAirline,this.Airport, facility, GameObject.GetInstance().GameTime.AddDays(facility.BuildingDays));
            this.Airport.addAirportFacility(nextFacility);

            /*
            AirlineAirportFacilityMVVM currentFacility = this.AirlineFacilities.Where(f => f.Facility.Facility.Type == facility.Type).FirstOrDefault();

            if (currentFacility != null)
                removeAirlineFacility(currentFacility);

            Alliance alliance = nextFacility.Airline.Alliances.Count == 0 ? null : nextFacility.Airline.Alliances[0];

            this.AirlineFacilities.Add(new AirlineAirportFacilityMVVM(nextFacility,alliance));
             * */
            this.AirlineFacilities.Clear();
            this.BuildingAirlineFacilities.Clear();

            foreach (var tFacility in this.Airport.getAirportFacilities().FindAll(f => f.Airline != null))
                if (tFacility.Facility.TypeLevel != 0)
                {
                    Alliance alliance = tFacility.Airline.Alliances.Count == 0 ? null : tFacility.Airline.Alliances[0];

                    AirlineAirportFacilityMVVM airlineFacility = new AirlineAirportFacilityMVVM(tFacility, alliance);

                    if (airlineFacility.IsDelivered)
                        this.AirlineFacilities.Add(airlineFacility);
                    else
                        this.BuildingAirlineFacilities.Add(airlineFacility);
                }
        }