public Ob_ResearchDefinition GetObjectBuilder() { Ob_Trigger trigger = Trigger.GetObjectBuilder(); if (!(trigger is Ob_Trigger_All)) { trigger = new Ob_Trigger_All() { Elements = new List <Ob_Trigger> { trigger } } } ; return(new Ob_ResearchDefinition() { Id = Id, Unlocks = UnlocksOriginal.Select(x => new NullableDefinitionId() { Id = x }).ToList(), AutoStart = AutoStart, Description = Description, DisplayName = DisplayName, CompletionMessage = CompletionMessage, UpdatesAsNotifications = UpdatesAsNotifications, ShowCompletionWindow = ShowCompletionWindow, Trigger = (Ob_Trigger_All)trigger }); } }
public Ob_Trigger GetObjectBuilder() { var any = new Ob_Trigger_Any() { Elements = new List <Ob_Trigger>(Branches.Count) }; foreach (var branch in Branches) { var all = new Ob_Trigger_All() { Elements = new List <Ob_Trigger>(branch.ResearchStates.Count + branch.Unlocked.Count + branch.StatefulTriggers.Count) }; foreach (var state in branch.ResearchStates) { all.Elements.Add(new Ob_Trigger_ResearchState() { Id = state.Key, RequiredState = state.Value }); } foreach (var unlock in branch.Unlocked) { all.Elements.Add(new Ob_Trigger_Unlocked() { DefinitionId = unlock }); } all.Elements.AddRange(branch.StatefulTriggers.Select(StateStorageProvider)); any.Elements.Add(all); } return(any.Simplify()); }