private void numericUpDownApparelHealth_ValueChanged(object sender, EventArgs e) { SaveThing pawnApparel = (SaveThing)listBoxApparel.SelectedItem; if (pawnApparel != null) { pawnApparel.Health = (int)numericUpDownApparelHealth.Value; } }
private void comboBoxApparelQuality_SelectedIndexChanged(object sender, EventArgs e) { SaveThing pawnApparel = (SaveThing)listBoxApparel.SelectedItem; if (pawnApparel != null) { pawnApparel.Quality = (string)comboBoxApparelQuality.SelectedItem; } }
private void setApparel() { SaveThing pawnApparel = (SaveThing)listBoxApparel.SelectedItem; if (pawnApparel != null) { comboBoxApparelQuality.SelectedItem = pawnApparel.Quality; comboBoxApparelQuality.Update(); decimal health = (decimal)pawnApparel.Health; if (DataLoader.MaxHitPointsMultiplikator != 1 && pawnApparel.MaxHealth != null && pawnApparel.MaxHealth >= pawnApparel.Health) { numericUpDownApparelHealth.Maximum = (decimal)pawnApparel.MaxHealth; } else { numericUpDownApparelHealth.Maximum = int.MaxValue; } List <ThingDef> availableMaterials = new List <ThingDef>(); if (pawnApparel.BaseThing != null) { foreach (var thingCategories in pawnApparel.BaseThing.ReciepStuffCategories) { if (DataLoader.ThingDefsByStuffCategory.TryGetValue(thingCategories, out var thingDefList)) { availableMaterials.AddRange(thingDefList); } } } comboBoxMaterial.Items.Clear(); comboBoxMaterial.Items.AddRange(availableMaterials.ToArray()); if (availableMaterials.Count == 0) { comboBoxMaterial.SelectedItem = null; comboBoxMaterial.Enabled = false; } else { comboBoxMaterial.Enabled = true; comboBoxMaterial.SelectedItem = pawnApparel.StuffBaseThing; } numericUpDownApparelHealth.Value = health; checkBoxWornByCorpse.Checked = pawnApparel.WornByCorpse; } }
private void comboBoxMaterial_SelectedIndexChanged(object sender, EventArgs e) { ThingDef stuffDef = (ThingDef)comboBoxMaterial.SelectedItem; SaveThing pawnApparel = (SaveThing)listBoxApparel.SelectedItem; if (pawnApparel != null && stuffDef != null) { pawnApparel.StuffBaseThing = stuffDef; pawnApparel.Stuff = stuffDef.DefName; if (DataLoader.MaxHitPointsMultiplikator != 1 && pawnApparel.MaxHealth != null && pawnApparel.MaxHealth >= pawnApparel.Health) { numericUpDownApparelHealth.Maximum = (decimal)pawnApparel.MaxHealth; } else { numericUpDownApparelHealth.Maximum = int.MaxValue; } } }
private void updatePage(SaveThing thing) { currentSaveThing = thing; labelDefinition.Text = thing.Def; labelID.Text = thing.Id; labelMap.Text = thing.Map; labelMaxHealth.Text = "" + thing.MaxHealth; labelPosition.Text = thing.Pos; if (thing.Quality != null) { comboBoxQuality.Enabled = true; comboBoxQuality.SelectedItem = thing.Quality; } else { comboBoxQuality.Enabled = false; } if (thing.Health != null) { decimal currentHealth = (decimal)thing.Health; int? maxHealth = thing.MaxHealth; if (maxHealth == null || currentHealth > maxHealth) { maxHealth = int.MaxValue; } numericUpDownHealth.Enabled = true; numericUpDownHealth.Maximum = (int)maxHealth; numericUpDownHealth.Value = currentHealth; } else { numericUpDownHealth.Enabled = false; } List <ThingDef> availableMaterials = new List <ThingDef>(); if (thing.BaseThing != null) { foreach (var thingCategories in thing.BaseThing.ReciepStuffCategories) { if (DataLoader.ThingDefsByStuffCategory.TryGetValue(thingCategories, out var thingDefList)) { availableMaterials.AddRange(thingDefList); } } } comboBoxMaterial.Items.Clear(); comboBoxMaterial.Items.AddRange(availableMaterials.ToArray()); if (availableMaterials.Count == 0) { comboBoxMaterial.SelectedItem = null; comboBoxMaterial.Enabled = false; } else { comboBoxMaterial.Enabled = true; comboBoxMaterial.SelectedItem = thing.StuffBaseThing; } }
public bool LoadData(string path, TabControl tabControl) { tabControl.TabPages.Clear(); Animals.Clear(); //try { SaveDocument = XDocument.Load(path); GameData = new GameData(SaveDocument.Root.XPathSelectElement("game/tickManager")); uniqueIdsManager = new UniqueIDsManager(SaveDocument.Root.XPathSelectElement("game/uniqueIDsManager")); var playerFactionDef = EvaluateSingle <XElement>("scenario/playerFaction/factionDef").Value; foreach (var element in SaveDocument.Root.XPathSelectElements("game/world/factionManager/allFactions/li")) { Faction faction = new Faction(element); if (faction.Def.Equals(playerFactionDef)) { PlayerFaction = faction; } Factions[faction.FactionIDString] = faction; PawnsByFactions[faction] = new List <Pawn>(); } //Console.WriteLine($"playerFaction:{playerFaction}, colonyFaction:{colonyFaction}"); Dictionary <String, List <PawnData> > pawnDataDir = new Dictionary <string, List <PawnData> >(); foreach (var pawnData in SaveDocument.Descendants("pawn")) { String key = pawnData.GetValue(); List <PawnData> pawnDataList; if (!pawnDataDir.TryGetValue(key, out pawnDataList)) { pawnDataList = new List <PawnData>(); pawnDataDir[key] = pawnDataList; } pawnDataList.Add(new PawnData(pawnData.Parent)); } foreach (var pawn in SaveDocument.Root.XPathSelectElements("game/world/worldPawns/pawnsAlive/li")) { Pawn p = new Pawn(pawn); if (p.Faction != null) { List <PawnData> pawnDataList; if (!pawnDataDir.TryGetValue(p.PawnId, out pawnDataList)) { pawnDataList = new List <PawnData>(); } p.addPawnData(pawnDataList); PawnsById[p.PawnId] = p; Faction faction = Factions[p.Faction]; PawnsByFactions[faction].Add(p); } } SaveThingsByClass = new Dictionary <string, List <SaveThing> >(); foreach (var thing in SaveDocument.Descendants("thing")) { if ((string)thing.Attribute("Class") == "Pawn") { Pawn p = new Pawn(thing); if (p.Faction != null) { List <PawnData> pawnDataList; if (!pawnDataDir.TryGetValue(p.PawnId, out pawnDataList)) { pawnDataList = new List <PawnData>(); } p.addPawnData(pawnDataList); PawnsById[p.PawnId] = p; Faction faction = Factions[p.Faction]; PawnsByFactions[faction].Add(p); } } else { SaveThing SaveThing = new SaveThing(thing); String key = SaveThing.Class; if (SaveThing.BaseThing != null && SaveThing.BaseThing.BaseName == "BuildingBase") { key = SaveThing.BaseThing.BaseName; } if (SaveThingsByClass.TryGetValue(key, out List <SaveThing> list)) { list.Add(SaveThing); } else { List <SaveThing> newList = new List <SaveThing>(); newList.Add(SaveThing); SaveThingsByClass.Add(key, newList); } } } if (PawnsByFactions[PlayerFaction].Count == 0) { throw new Exception("No characters found!\nTry playing the game a little more."); } colonistPage = new ColonistPage(); colonistPage.Dock = DockStyle.Fill; animalPage = new AnimalPage(); animalPage.Dock = DockStyle.Fill; itemsPage = new ItemsPage(); itemsPage.Dock = DockStyle.Fill; buidingsPage = new BuildingsPage(); buidingsPage.Dock = DockStyle.Fill; relationsPage = new RelationPage(); generalPage = new GeneralPage(); TabPage colonisTabPage = new TabPage("Colonists"); TabPage animalsTabPage = new TabPage("Animals"); TabPage relationsTabPage = new TabPage("Relations"); TabPage gameDataTabPage = new TabPage("General"); TabPage itemsTabPage = new TabPage("Items"); TabPage buildingsTabPage = new TabPage("Buildings"); colonisTabPage.Controls.Add(colonistPage); animalsTabPage.Controls.Add(animalPage); itemsTabPage.Controls.Add(itemsPage); relationsTabPage.Controls.Add(relationsPage); gameDataTabPage.Controls.Add(generalPage); buildingsTabPage.Controls.Add(buidingsPage); tabControl.TabPages.Add(gameDataTabPage); tabControl.TabPages.Add(colonisTabPage); tabControl.TabPages.Add(animalsTabPage); tabControl.TabPages.Add(relationsTabPage); tabControl.TabPages.Add(itemsTabPage); tabControl.TabPages.Add(buildingsTabPage); return(true); }