コード例 #1
0
        /// <summary>
        /// Creates an instance of <see cref="EncounterCharacterDialogViewModel"/>
        /// </summary>
        public EncounterCharacterDialogViewModel(EncounterCharacterModel encounterCharacter)
        {
            _encounterCreatureModel = encounterCharacter;

            _characterOptions.Clear();
            _characterOptions.Add(new KeyValuePair <CharacterModel, string>(null, "None"));
            foreach (CharacterModel characterModel in _compendium.Characters)
            {
                _characterOptions.Add(new KeyValuePair <CharacterModel, string>(characterModel, characterModel.Name));
            }
            _selectedCharacterOption = _characterOptions[0];

            _acceptCommand = new RelayCommand(obj => true, obj => OnAccept());
            _rejectCommand = new RelayCommand(obj => true, obj => OnReject());
        }
コード例 #2
0
        private void CopyCharacter(EncounterCharacterViewModel encounterCharacterModel)
        {
            EncounterCharacterModel copy = new EncounterCharacterModel(encounterCharacterModel.EncounterCharacterModel);

            copy.Name += " (copy)";
            copy.ID    = Guid.NewGuid();
            _encounterModel.Creatures.Add(copy);

            CreateCreatureViewModels();
            EstimateEncounterChallenge();

            OnPropertyChanged(nameof(Characters));
            OnPropertyChanged(nameof(AverageCharacterLevel));
            OnPropertyChanged(nameof(AverageCharacterMaxHP));
            OnPropertyChanged(nameof(AverageCharacterAC));
            OnPropertyChanged(nameof(AverageCharacterSaveDC));
            OnPropertyChanged(nameof(AverageCharacterPassivePerception));
            OnPropertyChanged(nameof(AverageCharacterPassiveInvestigation));
        }
コード例 #3
0
        private void ShowAddCharacterWindow()
        {
            EncounterCharacterModel encounterCharacterModel = _dialogService.ShowEncounterCharacterDialog("Add Character", new EncounterCharacterModel());

            if (encounterCharacterModel != null)
            {
                _encounterModel.Creatures.Add(encounterCharacterModel);

                CreateCreatureViewModels();
                EstimateEncounterChallenge();

                OnPropertyChanged(nameof(Characters));
                OnPropertyChanged(nameof(AverageCharacterLevel));
                OnPropertyChanged(nameof(AverageCharacterMaxHP));
                OnPropertyChanged(nameof(AverageCharacterAC));
                OnPropertyChanged(nameof(AverageCharacterSaveDC));
                OnPropertyChanged(nameof(AverageCharacterPassivePerception));
                OnPropertyChanged(nameof(AverageCharacterPassiveInvestigation));
            }
        }
コード例 #4
0
        /// <summary>
        /// Sets the creatures to roll initiative for
        /// </summary>
        /// <param name="creatures"></param>
        public void SetCreatures(List <EncounterCreatureViewModel> creatures)
        {
            _creatures = creatures;

            _characters.Clear();
            _monsters.Clear();

            foreach (EncounterCreatureViewModel encounterCreatureViewModel in _creatures)
            {
                if (encounterCreatureViewModel is EncounterCharacterViewModel encounterCharacterViewModel)
                {
                    EncounterCharacterModel characterModelCopy = new EncounterCharacterModel(encounterCharacterViewModel.EncounterCharacterModel);
                    characterModelCopy.Initiative = 0;
                    _characters.Add(new EncounterCharacterViewModel(characterModelCopy));
                }
                else if (encounterCreatureViewModel is EncounterMonsterViewModel encounterMonsterViewModel)
                {
                    EncounterMonsterModel monsterModelCopy = new EncounterMonsterModel(encounterMonsterViewModel.EncounterMonsterModel);
                    monsterModelCopy.Initiative = 0;
                    _monsters.Add(new EncounterMonsterViewModel(monsterModelCopy));
                }
            }
        }
コード例 #5
0
        /// <summary>
        /// Shows encounter character dialog
        /// </summary>
        public EncounterCharacterModel ShowEncounterCharacterDialog(string title, EncounterCharacterModel encounterCharacterModel)
        {
            ModalDialog modalDialog = new ModalDialog();

            if (_parentWindow != null)
            {
                modalDialog.Owner = _parentWindow;
            }

            CreateEncounterCharacterView      createEncounterCharacterView = new CreateEncounterCharacterView();
            EncounterCharacterModel           modelCopy = new EncounterCharacterModel(encounterCharacterModel);
            EncounterCharacterDialogViewModel viewModel = new EncounterCharacterDialogViewModel(modelCopy);

            createEncounterCharacterView.DataContext = viewModel;

            modalDialog.WindowTitle  = title;
            modalDialog.Body         = createEncounterCharacterView;
            modalDialog.Confirmation = viewModel;

            ShowDialog(modalDialog);

            return(modalDialog.Result == true ? viewModel.EncounterCharacterModel : null);
        }
コード例 #6
0
        private void ShowEditCharacterWindow(EncounterCharacterViewModel encounterCharacterModel)
        {
            EncounterCharacterModel editedCharacterModel = _dialogService.ShowEncounterCharacterDialog("Edit Character", encounterCharacterModel.EncounterCharacterModel);

            if (editedCharacterModel != null)
            {
                EncounterCreatureModel originalCharacter = _encounterModel.Creatures.FirstOrDefault(x => x.ID == encounterCharacterModel.EncounterCharacterModel.ID);
                if (originalCharacter != null)
                {
                    _encounterModel.Creatures[_encounterModel.Creatures.IndexOf(originalCharacter)] = editedCharacterModel;

                    CreateCreatureViewModels();
                    EstimateEncounterChallenge();

                    OnPropertyChanged(nameof(Characters));
                    OnPropertyChanged(nameof(AverageCharacterLevel));
                    OnPropertyChanged(nameof(AverageCharacterMaxHP));
                    OnPropertyChanged(nameof(AverageCharacterAC));
                    OnPropertyChanged(nameof(AverageCharacterSaveDC));
                    OnPropertyChanged(nameof(AverageCharacterPassivePerception));
                    OnPropertyChanged(nameof(AverageCharacterPassiveInvestigation));
                }
            }
        }
コード例 #7
0
 /// <summary>
 /// Creates an instance of <see cref="EncounterCharacterViewModel"/>
 /// </summary>
 public EncounterCharacterViewModel(EncounterCharacterModel encounterCharacterModel)
     : base(encounterCharacterModel)
 {
     _encounterCharacterModel = encounterCharacterModel;
 }