public CharacterWindow(CampaignManager campaignManager, CharacterManager characterManager) { InitializeComponent(); Campaign = campaignManager; CharacterManager = characterManager; var character = characterManager.Character; SyncSkills(character, campaignManager.Campaign.SkillListings); DataContext = new CharacterWindowViewModel { CharacterManager = characterManager, PowerSources = campaignManager.Campaign.PowerSources, SkillScores = character.SkillScores.Select( s => new SkillScoreViewModel { SkillScore = s }) .ToList() }; }
public void Reload() { if (ManifestFileName == null) { _campaign = new Campaign(_gameSystemManager.GameSystem); return; } var contents = File.ReadAllText(ManifestFileName); var manifest = JsonConvert.DeserializeObject<Campaign>(contents, _converter); _campaign = new Campaign(_gameSystemManager.GameSystem) { Name = manifest.Name }; _characterConverter = new CharacterConverter(_campaign); var campaignDirectory = Path.GetDirectoryName(ManifestFileName); CharacterFolder = Path.Combine(campaignDirectory, "Characters"); if (Directory.Exists(CharacterFolder)) { foreach (var filename in Directory.EnumerateFiles(CharacterFolder)) { var characterManager = new CharacterManager(this, filename, _characterConverter, CharacterFolder); Characters.Add(characterManager); _campaign.Characters.Add(characterManager.Character); } } }