Exemple #1
0
 public static Degree getRandomHackerDegree(WorldLocation origin)
 {
     var degree = new Degree();
     degree.name = randOf(degreeTitles) + randOf(hackerDegreeNames);
     degree.GPA = (float) (3.0 + 5.0*(Utils.random.NextDouble() - 0.5)*0.5);
     degree.uni = "University of " + origin.name;
     if (Utils.flipCoin())
         degree.uni = origin.name + " University";
     return degree;
 }
Exemple #2
0
 public static Person loadPersonFromFile(string path)
 {
     try
     {
         using (var fileStream = new FileStream(path, FileMode.Open))
         {
             var rdr = XmlReader.Create(fileStream, new XmlReaderSettings());
             while (rdr.Name != "Person")
                 rdr.Read();
             string str1;
             var lName = str1 = "unknown";
             var fName = str1;
             var handle = str1;
             var male = true;
             var isHacker = false;
             if (rdr.MoveToAttribute("id"))
                 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();
             var person = new Person(fName, lName, male, isHacker, handle);
             rdr.Read();
             while (!(rdr.Name == "Person") || rdr.IsStartElement())
             {
                 switch (rdr.Name)
                 {
                     case "Degrees":
                         var list = new List<Degree>();
                         rdr.Read();
                         while (!(rdr.Name == "Degrees") || rdr.IsStartElement())
                         {
                             if (rdr.Name == "Degree")
                             {
                                 string str2;
                                 var uniName = str2 = "UNKNOWN";
                                 var num1 = 3.0;
                                 if (rdr.MoveToAttribute("uni"))
                                     uniName = rdr.ReadContentAsString();
                                 if (rdr.MoveToAttribute("gpa"))
                                     num1 = rdr.ReadContentAsDouble();
                                 var num2 = (int) rdr.MoveToContent();
                                 var degree = new Degree(rdr.ReadElementContentAsString(), uniName, (float) num1);
                                 list.Add(degree);
                             }
                             rdr.Read();
                         }
                         if (list.Count > 0)
                         {
                             person.degrees = list;
                         }
                         break;
                     case "Birthplace":
                         string name = null;
                         if (rdr.MoveToAttribute("name"))
                             name = rdr.ReadContentAsString();
                         if (name == null)
                             name = WorldLocationLoader.getRandomLocation().name;
                         person.birthplace = WorldLocationLoader.getClosestOrCreate(name);
                         break;
                     case "DOB":
                         var cultureInfo = new CultureInfo("en-au");
                         var num = (int) rdr.MoveToContent();
                         var dateTime = DateTime.Parse(rdr.ReadElementContentAsString(), cultureInfo);
                         if (dateTime.Hour == 0 && dateTime.Second == 0)
                         {
                             var 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();
             }
             return person;
         }
     }
     catch (FileNotFoundException ex)
     {
         return null;
     }
 }
 private void drawEntryState(Rectangle bounds, SpriteBatch sb)
 {
     if (state == ADDState.Entry && os.hasConnectionPermission(true))
         state = ADDState.EditPerson;
     if (Button.doButton(456010, bounds.X + 2, bounds.Y + 2, 160, 30, "Back", darkThemeColor))
         state = ADDState.Welcome;
     var x = bounds.X + 20f;
     var y1 = bounds.Y + 50f;
     TextItem.doFontLabel(new Vector2(x, y1), searchedName, GuiData.font, new Color?(),
         bounds.Width - (x - bounds.X), 60f);
     var y2 = y1 + 30f;
     if (searchedDegrees.Count == 0)
         TextItem.doFontLabel(new Vector2(x, y2), " -No Degrees Found", GuiData.smallfont, new Color?(),
             float.MaxValue, float.MaxValue);
     for (var index = 0; index < searchedDegrees.Count; ++index)
     {
         var text = "Degree :" + searchedDegrees[index].name + "\nUni      :" + searchedDegrees[index].uni +
                    "\nGPA      :" + searchedDegrees[index].GPA;
         TextItem.doFontLabel(new Vector2(x, y2), text, GuiData.smallfont, new Color?(),
             bounds.Width - (bounds.X - x), 50f);
         y2 += 60f;
         if (state == ADDState.EditPerson)
         {
             var num = y2 - 10f;
             if (Button.doButton(457900 + index, (int) x, (int) num, 100, 20, "Edit", new Color?()))
             {
                 state = ADDState.EditEntry;
                 editedField = ADDEditField.None;
                 editedIndex = index;
             }
             if (Button.doButton(456900 + index, (int) x + 105, (int) num, 100, 20,
                 needsDeletionConfirmation ? "Delete" : "Confirm?",
                 needsDeletionConfirmation ? Color.Gray : Color.Red))
             {
                 if (needsDeletionConfirmation)
                 {
                     needsDeletionConfirmation = false;
                 }
                 else
                 {
                     comp.log(string.Concat("ACADEMIC_DATABASE::RecordDeletion_:_#", index, "_: ",
                         searchedName.Replace(" ", "_")));
                     searchedDegrees.RemoveAt(index);
                     saveChangesToEntry();
                     --index;
                     needsDeletionConfirmation = true;
                 }
             }
             y2 = num + 35f;
         }
     }
     var num1 = y2 + 10f;
     if (state != ADDState.EditPerson ||
         !Button.doButton(458009, (int) x, (int) num1, 170, 30, "Add Degree", themeColor))
         return;
     var degree = new Degree("UNKNOWN", "UNKNOWN", 0.0f);
     searchedDegrees.Add(degree);
     editedIndex = searchedDegrees.IndexOf(degree);
     state = ADDState.EditEntry;
     comp.log(string.Concat("ACADEMIC_DATABASE::RecordAdd_:_#", editedIndex, "_: ",
         searchedName.Replace(" ", "_")));
 }
 private void setEditedFieldValue(string value)
 {
     switch (editedField)
     {
         case ADDEditField.Uni:
             searchedDegrees[editedIndex] = new Degree(searchedDegrees[editedIndex].name, value,
                 searchedDegrees[editedIndex].GPA);
             break;
         case ADDEditField.Degree:
             searchedDegrees[editedIndex] = new Degree(value, searchedDegrees[editedIndex].uni,
                 searchedDegrees[editedIndex].GPA);
             break;
         case ADDEditField.GPA:
             var degreeGPA = 2f;
             try
             {
                 if (value.Length > 0)
                     degreeGPA = (float) Convert.ToDouble(value);
             }
             catch
             {
             }
             searchedDegrees[editedIndex] = new Degree(searchedDegrees[editedIndex].name,
                 searchedDegrees[editedIndex].uni, degreeGPA);
             break;
     }
 }
        private void drawEntryState(Rectangle bounds, SpriteBatch sb)
        {
            if (state == ADDState.Entry && os.hasConnectionPermission(true))
            {
                state = ADDState.EditPerson;
            }
            if (Button.doButton(456010, bounds.X + 2, bounds.Y + 2, 160, 30, "Back", darkThemeColor))
            {
                state = ADDState.Welcome;
            }
            var x  = bounds.X + 20f;
            var y1 = bounds.Y + 50f;

            TextItem.doFontLabel(new Vector2(x, y1), searchedName, GuiData.font, new Color?(),
                                 bounds.Width - (x - bounds.X), 60f);
            var y2 = y1 + 30f;

            if (searchedDegrees.Count == 0)
            {
                TextItem.doFontLabel(new Vector2(x, y2), " -No Degrees Found", GuiData.smallfont, new Color?(),
                                     float.MaxValue, float.MaxValue);
            }
            for (var index = 0; index < searchedDegrees.Count; ++index)
            {
                var text = "Degree :" + searchedDegrees[index].name + "\nUni      :" + searchedDegrees[index].uni +
                           "\nGPA      :" + searchedDegrees[index].GPA;
                TextItem.doFontLabel(new Vector2(x, y2), text, GuiData.smallfont, new Color?(),
                                     bounds.Width - (bounds.X - x), 50f);
                y2 += 60f;
                if (state == ADDState.EditPerson)
                {
                    var num = y2 - 10f;
                    if (Button.doButton(457900 + index, (int)x, (int)num, 100, 20, "Edit", new Color?()))
                    {
                        state       = ADDState.EditEntry;
                        editedField = ADDEditField.None;
                        editedIndex = index;
                    }
                    if (Button.doButton(456900 + index, (int)x + 105, (int)num, 100, 20,
                                        needsDeletionConfirmation ? "Delete" : "Confirm?",
                                        needsDeletionConfirmation ? Color.Gray : Color.Red))
                    {
                        if (needsDeletionConfirmation)
                        {
                            needsDeletionConfirmation = false;
                        }
                        else
                        {
                            comp.log(string.Concat("ACADEMIC_DATABASE::RecordDeletion_:_#", index, "_: ",
                                                   searchedName.Replace(" ", "_")));
                            searchedDegrees.RemoveAt(index);
                            saveChangesToEntry();
                            --index;
                            needsDeletionConfirmation = true;
                        }
                    }
                    y2 = num + 35f;
                }
            }
            var num1 = y2 + 10f;

            if (state != ADDState.EditPerson ||
                !Button.doButton(458009, (int)x, (int)num1, 170, 30, "Add Degree", themeColor))
            {
                return;
            }
            var degree = new Degree("UNKNOWN", "UNKNOWN", 0.0f);

            searchedDegrees.Add(degree);
            editedIndex = searchedDegrees.IndexOf(degree);
            state       = ADDState.EditEntry;
            comp.log(string.Concat("ACADEMIC_DATABASE::RecordAdd_:_#", editedIndex, "_: ",
                                   searchedName.Replace(" ", "_")));
        }