Ejemplo n.º 1
0
        public Person(string fName, string lName, bool male, bool isHacker = false, string handle = null)
        {
            this.firstName = fName;
            this.lastName  = lName;
            this.isMale    = male;
            if (handle == null)
            {
                handle = UsernameGenerator.getName();
            }
            if (handle == null)
            {
                throw new InvalidOperationException();
            }
            this.handle     = handle;
            this.isHacker   = isHacker;
            this.birthplace = WorldLocationLoader.getRandomLocation();
            this.vehicles   = new List <VehicleRegistration>();
            this.degrees    = new List <Degree>();
            this.addRandomDegrees();
            this.addRandomVehicles();
            int num1 = 18;
            int num2 = 72;

            if (isHacker)
            {
                num2 = 45;
            }
            this.DateOfBirth   = DateTime.Now - TimeSpan.FromDays((double)(num1 * 365 + (int)(Utils.random.NextDouble() * (double)(num2 - num1) * 365.0)));
            this.medicalRecord = new MedicalRecord(this.birthplace, this.DateOfBirth);
            if (!Settings.EnableDLC || !DLC1SessionUpgrader.HasDLC1Installed || !isHacker && (double)Utils.randm(1f) >= 0.800000011920929)
            {
                return;
            }
            this.NeopalsAccount = NeopalsAccount.GenerateAccount(handle, Utils.flipCoin() && Utils.flipCoin() && isHacker && handle.ToLower() != "bit");
        }
Ejemplo n.º 2
0
        public static Person loadPersonFromFile(string path)
        {
            try
            {
                using (FileStream fileStream = new FileStream(path, FileMode.Open))
                {
                    XmlReader rdr = XmlReader.Create((Stream)fileStream, new XmlReaderSettings());
                    while (rdr.Name != "Person")
                    {
                        rdr.Read();
                    }
                    string str1;
                    string lName    = str1 = "unknown";
                    string fName    = str1;
                    string handle   = str1;
                    string str2     = str1;
                    bool   male     = true;
                    bool   isHacker = false;
                    bool   flag     = false;
                    if (rdr.MoveToAttribute("id"))
                    {
                        str2 = rdr.ReadContentAsString();
                    }
                    if (rdr.MoveToAttribute("handle"))
                    {
                        handle = rdr.ReadContentAsString();
                    }
                    if (rdr.MoveToAttribute("firstName"))
                    {
                        fName = rdr.ReadContentAsString();
                    }
                    if (rdr.MoveToAttribute("lastName"))
                    {
                        lName = rdr.ReadContentAsString();
                    }
                    if (rdr.MoveToAttribute("isMale"))
                    {
                        male = rdr.ReadContentAsBoolean();
                    }
                    if (rdr.MoveToAttribute("isHacker"))
                    {
                        isHacker = rdr.ReadContentAsBoolean();
                    }
                    if (rdr.MoveToAttribute("forceHasNeopals"))
                    {
                        flag = rdr.ReadContentAsBoolean();
                    }
                    Person person = new Person(fName, lName, male, isHacker, handle);
                    if (person.NeopalsAccount == null && flag && DLC1SessionUpgrader.HasDLC1Installed)
                    {
                        person.NeopalsAccount = NeopalsAccount.GenerateAccount(person.handle, Utils.flipCoin());
                    }
                    rdr.Read();
                    while (!(rdr.Name == "Person") || rdr.IsStartElement())
                    {
                        switch (rdr.Name)
                        {
                        case "Degrees":
                            List <Degree> degreeList = new List <Degree>();
                            rdr.Read();
                            while (!(rdr.Name == "Degrees") || rdr.IsStartElement())
                            {
                                if (rdr.Name == "Degree")
                                {
                                    string str3;
                                    string uniName = str3 = "UNKNOWN";
                                    double num     = 3.0;
                                    if (rdr.MoveToAttribute("uni"))
                                    {
                                        uniName = rdr.ReadContentAsString();
                                    }
                                    if (rdr.MoveToAttribute("gpa"))
                                    {
                                        num = rdr.ReadContentAsDouble();
                                    }
                                    int    content = (int)rdr.MoveToContent();
                                    Degree degree  = new Degree(rdr.ReadElementContentAsString(), uniName, (float)num);
                                    degreeList.Add(degree);
                                }
                                rdr.Read();
                            }
                            if (degreeList.Count > 0)
                            {
                                person.degrees = degreeList;
                                break;
                            }
                            break;

                        case "Birthplace":
                            string name = (string)null;
                            if (rdr.MoveToAttribute("name"))
                            {
                                name = rdr.ReadContentAsString();
                            }
                            if (name == null)
                            {
                                name = WorldLocationLoader.getRandomLocation().name;
                            }
                            person.birthplace = WorldLocationLoader.getClosestOrCreate(name);
                            break;

                        case "DOB":
                            CultureInfo cultureInfo = new CultureInfo("en-au");
                            int         content1    = (int)rdr.MoveToContent();
                            DateTime    dateTime    = Utils.SafeParseDateTime(rdr.ReadElementContentAsString());
                            if (dateTime.Hour == 0 && dateTime.Second == 0)
                            {
                                TimeSpan timeSpan = TimeSpan.FromHours(Utils.random.NextDouble() * 23.99);
                                dateTime += timeSpan;
                            }
                            person.DateOfBirth = dateTime;
                            break;

                        case "Medical":
                            person.medicalRecord = MedicalRecord.Load(rdr, person.birthplace, person.DateOfBirth);
                            break;
                        }
                        rdr.Read();
                    }
                    if (DLC1SessionUpgrader.HasDLC1Installed)
                    {
                        if (person.handle == "Minx" && person.NeopalsAccount == null)
                        {
                            person.NeopalsAccount = NeopalsAccount.GenerateAccount("Minx", false);
                        }
                        if (person.handle == "Orann" && person.NeopalsAccount == null && DLC1SessionUpgrader.HasDLC1Installed && People.PeopleWereGeneratedWithDLCAdditions)
                        {
                            person.NeopalsAccount = NeopalsAccount.GenerateAccount("Orann", false);
                        }
                    }
                    return(person);
                }
            }
            catch (FileNotFoundException ex)
            {
                return((Person)null);
            }
        }