public CodexEntryVM(GameVM game, XmlCodexEntry data) { _name = data.Name; Game = game; GameVMProperties = new HashSet <string>(); }
public GameVM(AmfFile file, GameVM previousVM) : base(file) { SetCharacterOptions(); CharacterSelection = "PC"; var shittyShips = GetObj("shittyShips") ?? new AmfObject(AmfTypes.Array); Ships = new ShipArrayVM(this, shittyShips); var flagsObject = FlagsObject; _flags = new GeneralObjectVM(flagsObject); // Flags var flagNames = AllFlags.Keys.ToList(); foreach (var flagName in flagNames) { XmlEnum data = new XmlEnum(); data.Name = flagName; AllFlags[flagName] = new FlagVM(this, ref flagsObject, data); } foreach (var xmlFlag in XmlData.Current.Flags) { if (!AllFlags.ContainsKey(xmlFlag.Name)) { AllFlags[xmlFlag.Name] = new FlagVM(this, ref flagsObject, xmlFlag); } } foreach (var flag in flagsObject) { string flagName = flag.ToString(); if (!AllFlags.ContainsKey(flagName)) { XmlEnum data = new XmlEnum(); data.Name = flagName; AllFlags[flagName] = new FlagVM(this, ref flagsObject, data); } } if (null != previousVM) { foreach (var flag in previousVM.AllFlags) { string flagName = flag.Key.ToString(); if (!AllFlags.ContainsKey(flagName)) { XmlEnum data = new XmlEnum(); data.Name = flagName; AllFlags[flagName] = new FlagVM(this, ref flagsObject, data); } } } Flags = new UpdatableCollection <FlagVM>(AllFlags.Values.ToList().Where(x => x.Match(SearchText))); OnPropertyChanged("Flags"); // Codex var codexEntries = AllCodexEntries.Keys.ToList(); foreach (var codexName in codexEntries) { XmlCodexEntry data = new XmlCodexEntry(); data.Name = codexName; AllCodexEntries[codexName] = new CodexEntryVM(this, data); } foreach (var xmlCodex in XmlData.Current.CodexEntries) { if (!AllCodexEntries.ContainsKey(xmlCodex.Name)) { AllCodexEntries[xmlCodex.Name] = new CodexEntryVM(this, xmlCodex); } } foreach (var codexEntry in CodexUnlockedEntriesObj) { string codexName = codexEntry.Value.ToString(); if (!AllCodexEntries.ContainsKey(codexName)) { XmlCodexEntry data = new XmlCodexEntry(codexName); AllCodexEntries[codexName] = new CodexEntryVM(this, data); } } foreach (var codexEntry in CodexViewedEntriesObj) { string codexName = codexEntry.Value.ToString(); if (!AllCodexEntries.ContainsKey(codexName)) { XmlCodexEntry data = new XmlCodexEntry(codexName); AllCodexEntries[codexName] = new CodexEntryVM(this, data); } } if (null != previousVM) { foreach (var codexEntry in previousVM.AllCodexEntries) { string codexName = codexEntry.Value.ToString(); if (!AllCodexEntries.ContainsKey(codexName)) { XmlCodexEntry data = new XmlCodexEntry(codexName); AllCodexEntries[codexName] = new CodexEntryVM(this, data); } } } CodexEntries = new UpdatableCollection <CodexEntryVM>(AllCodexEntries.Values.ToList().Where(x => x.Match(SearchText))); OnPropertyChanged("CodexEntries"); }