public void Load(SaveCampaignData saveData) { EventModifiers = saveData.EventModifers; foreach (var townEvent in DarkestDungeonManager.Data.EventDatabase.Events) { townEvent.SetDefaultState(); } SaveSlotId = saveData.SaveId; CurrentWeek = saveData.CurrentWeek; QuestsComleted = saveData.QuestsCompleted; Estate = new Estate(saveData); RealmInventory = new RealmInventory(saveData); CompletedPlot = saveData.CompletedPlot; Heroes = new List <Hero>(); saveData.RosterHeroes.ForEach(hero => Heroes.Add(new Hero(Estate, hero))); saveData.StageCoachHeroes.ForEach(hero => Estate.StageCoach.Heroes.Add(new Hero(Estate, hero))); saveData.StageEventHeroes.ForEach(hero => Estate.StageCoach.EventHeroes.Add(new Hero(Estate, hero))); saveData.WagonTrinkets.ForEach(trinketName => Estate.NomadWagon.Trinkets.Add(DarkestDungeonManager.Data.Items["trinket"][trinketName] as Trinket)); Estate.StageCoach.GraveIndexes = saveData.DeathEventData; Estate.Abbey.UpdateActivitySlots(saveData); Estate.Tavern.UpdateActivitySlots(saveData); Estate.Sanitarium.QuirkActivity.UpdateActivitySlots(saveData); Estate.Sanitarium.DiseaseActivity.UpdateActivitySlots(saveData); Dungeons = saveData.DungeonProgress; Quests = saveData.GeneratedQuests; if (Quests.Count == 0 && saveData.InRaid == false) { GenerateQuests(); } Logs = new List <WeekActivityLog>(saveData.ActivityLog); if (Logs.Count == 0) { Logs.Add(new WeekActivityLog(CurrentWeek)); } EventsOption = DarkestDungeonManager.Data.EventDatabase.Settings[2]; if (saveData.CurrentEvent != "") { TriggeredEvent = DarkestDungeonManager.Data.EventDatabase.Events.Find(townEvent => townEvent.Id == saveData.CurrentEvent); if (TriggeredEvent != null) { EventModifiers.EventData.AddRange(TriggeredEvent.Data); } } if (saveData.GuaranteedEvent != "") { GuaranteedEvent = DarkestDungeonManager.Data.EventDatabase.Events.Find(townEvent => townEvent.Id == saveData.GuaranteedEvent); if (GuaranteedEvent != null) { EventModifiers.EventData.AddRange(GuaranteedEvent.Data); } } foreach (var saveEventEntry in saveData.EventData) { var targetEvent = DarkestDungeonManager.Data.EventDatabase.Events.Find(townEvent => townEvent.Id == saveEventEntry.EventId); if (targetEvent != null) { targetEvent.UpdateFromSave(saveEventEntry); } } NarrationCampaignInfo = saveData.CampaignNarrations; NarrationRaidInfo = saveData.RaidNarrations; NarrationTownInfo = saveData.TownNarrations; }
public void Load(SaveCampaignData saveData) { EventModifiers = saveData.eventModifers; foreach (var townEvent in DarkestDungeonManager.Data.EventDatabase.Events) townEvent.SetDefaultState(); SaveSlotId = saveData.saveId; CurrentWeek = saveData.currentWeek; QuestsComleted = saveData.questsCompleted; Estate = new Estate(saveData); RealmInventory = new RealmInventory(saveData); CompletedPlot = saveData.completedPlot; Heroes = new List<Hero>(); for (int i = 0; i < saveData.saveHeroData.Length; i++) Heroes.Add(new Hero(Estate, saveData.saveHeroData[i])); for (int i = 0; i < saveData.stageCoachData.Length; i++) Estate.StageCoach.Heroes.Add(new Hero(Estate, saveData.stageCoachData[i])); for (int i = 0; i < saveData.stageEventData.Length; i++) Estate.StageCoach.EventHeroes.Add(new Hero(Estate, saveData.stageEventData[i])); for (int i = 0; i < saveData.wagonData.Count; i++) Estate.NomadWagon.Trinkets.Add(DarkestDungeonManager.Data.Items["trinket"][saveData.wagonData[i]] as Trinket); Estate.StageCoach.GraveIndexes = saveData.deathEventData; Estate.Abbey.UpdateActivitySlots(saveData); Estate.Tavern.UpdateActivitySlots(saveData); Estate.Sanitarium.QuirkActivity.UpdateActivitySlots(saveData); Estate.Sanitarium.DiseaseActivity.UpdateActivitySlots(saveData); Dungeons = saveData.saveDungeonData; Quests = saveData.generatedQuests; if (Quests.Count == 0 && saveData.InRaid == false) GenerateQuests(); Logs = new List<WeekActivityLog>(saveData.activityLog); if (Logs.Count == 0) Logs.Add(new WeekActivityLog(CurrentWeek)); EventsOption = DarkestDungeonManager.Data.EventDatabase.Settings[2]; if(saveData.currentEvent != "") { TriggeredEvent = DarkestDungeonManager.Data.EventDatabase.Events.Find(townEvent => townEvent.Id == saveData.currentEvent); if (TriggeredEvent != null) EventModifiers.EventData.AddRange(TriggeredEvent.Data); } if(saveData.guaranteedEvent != "") { GuaranteedEvent = DarkestDungeonManager.Data.EventDatabase.Events.Find(townEvent => townEvent.Id == saveData.guaranteedEvent); if (GuaranteedEvent != null) EventModifiers.EventData.AddRange(GuaranteedEvent.Data); } foreach(var saveEventEntry in saveData.eventData) { var targetEvent = DarkestDungeonManager.Data.EventDatabase.Events.Find(townEvent => townEvent.Id == saveEventEntry.EventId); if(targetEvent != null) targetEvent.UpdateFromSave(saveEventEntry); } NarrationCampaignInfo = saveData.campaignNarrations; NarrationRaidInfo = saveData.raidNarrations; NarrationTownInfo = saveData.townNarrations; }