Ejemplo n.º 1
0
        private void RemoveMonster(EncounterMonsterViewModel encounterMonsterModel)
        {
            bool?result = _dialogService.ShowConfirmationDialog("Remove Monster", "Are you sure you want to remove " + encounterMonsterModel.Name + "?", "Yes", "No", null);

            if (result == true)
            {
                _encounterModel.Creatures.RemoveAll(x => x.ID == encounterMonsterModel.EncounterMonsterModel.ID);

                CreateCreatureViewModels();
                EstimateEncounterChallenge();

                OnPropertyChanged(nameof(Monsters));
                OnPropertyChanged(nameof(TotalMonsterXP));
                OnPropertyChanged(nameof(AverageMonsterCR));
                OnPropertyChanged(nameof(AverageMonsterMaxHP));
                OnPropertyChanged(nameof(AverageMonsterAC));
                OnPropertyChanged(nameof(AverageMonsterSaveDC));
                OnPropertyChanged(nameof(AverageMonsterPassivePerception));
                OnPropertyChanged(nameof(AverageMonsterDamageTurn));
                OnPropertyChanged(nameof(OverallMonsterDamageVulnerabilities));
                OnPropertyChanged(nameof(OverallMonsterDamageResistances));
                OnPropertyChanged(nameof(OverallMonsterDamageImmunities));
                OnPropertyChanged(nameof(OverallMonsterConditionImmunities));
            }
        }
Ejemplo n.º 2
0
        private void ShowEditMonsterWindow(EncounterMonsterViewModel encounterMonsterViewModel)
        {
            EncounterMonsterModel editedMonsterModel = _dialogService.ShowEncounterMonsterDialog("Edit Monster", encounterMonsterViewModel.EncounterMonsterModel);

            if (editedMonsterModel != null)
            {
                EncounterCreatureModel originalMonster = _encounterModel.Creatures.FirstOrDefault(x => x.ID == encounterMonsterViewModel.EncounterMonsterModel.ID);
                if (originalMonster != null)
                {
                    _encounterModel.Creatures[_encounterModel.Creatures.IndexOf(originalMonster)] = editedMonsterModel;

                    CreateCreatureViewModels();
                    EstimateEncounterChallenge();

                    OnPropertyChanged(nameof(Monsters));
                    OnPropertyChanged(nameof(TotalMonsterXP));
                    OnPropertyChanged(nameof(AverageMonsterCR));
                    OnPropertyChanged(nameof(AverageMonsterMaxHP));
                    OnPropertyChanged(nameof(AverageMonsterAC));
                    OnPropertyChanged(nameof(AverageMonsterSaveDC));
                    OnPropertyChanged(nameof(AverageMonsterPassivePerception));
                    OnPropertyChanged(nameof(AverageMonsterDamageTurn));
                    OnPropertyChanged(nameof(OverallMonsterDamageVulnerabilities));
                    OnPropertyChanged(nameof(OverallMonsterDamageResistances));
                    OnPropertyChanged(nameof(OverallMonsterDamageImmunities));
                    OnPropertyChanged(nameof(OverallMonsterConditionImmunities));
                }
            }
        }
Ejemplo n.º 3
0
        private void CreateCreatureViewModels()
        {
            _creatures.Clear();
            _creaturesExpanded.Clear();
            foreach (EncounterCreatureModel encounterCreatureModel in _encounterModel.Creatures)
            {
                if (encounterCreatureModel is EncounterCharacterModel)
                {
                    EncounterCharacterViewModel encounterCharacterViewModel = new EncounterCharacterViewModel(encounterCreatureModel as EncounterCharacterModel);
                    _creatures.Add(encounterCharacterViewModel);
                    _creaturesExpanded.Add(encounterCharacterViewModel);
                }
                else if (encounterCreatureModel is EncounterMonsterModel)
                {
                    EncounterMonsterViewModel encounterMonsterViewModel = new EncounterMonsterViewModel(encounterCreatureModel as EncounterMonsterModel);
                    _creatures.Add(encounterMonsterViewModel);

                    if (encounterMonsterViewModel.Quantity > 1)
                    {
                        for (int i = 0; i < encounterMonsterViewModel.Quantity; ++i)
                        {
                            EncounterMonsterModel     encounterMonsterModelCopy     = new EncounterMonsterModel(encounterCreatureModel as EncounterMonsterModel);
                            EncounterMonsterViewModel encounterMonsterViewModelCopy = new EncounterMonsterViewModel(encounterMonsterModelCopy);
                            encounterMonsterViewModelCopy.Name += $" ({i + 1})";
                            _creaturesExpanded.Add(encounterMonsterViewModelCopy);
                        }
                    }
                    else
                    {
                        _creaturesExpanded.Add(encounterMonsterViewModel);
                    }
                }
            }

            _creatures         = _creatures.OrderByDescending(x => x.Initiative).ToList();
            _creaturesExpanded = _creaturesExpanded.OrderByDescending(x => x.Initiative).ToList();
        }
Ejemplo n.º 4
0
        private void CopyMonster(EncounterMonsterViewModel encounterMonsterModel)
        {
            EncounterMonsterModel copy = new EncounterMonsterModel(encounterMonsterModel.EncounterMonsterModel);

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

            CreateCreatureViewModels();
            EstimateEncounterChallenge();

            OnPropertyChanged(nameof(Monsters));
            OnPropertyChanged(nameof(TotalMonsterXP));
            OnPropertyChanged(nameof(AverageMonsterCR));
            OnPropertyChanged(nameof(AverageMonsterMaxHP));
            OnPropertyChanged(nameof(AverageMonsterAC));
            OnPropertyChanged(nameof(AverageMonsterSaveDC));
            OnPropertyChanged(nameof(AverageMonsterPassivePerception));
            OnPropertyChanged(nameof(AverageMonsterDamageTurn));
            OnPropertyChanged(nameof(OverallMonsterDamageVulnerabilities));
            OnPropertyChanged(nameof(OverallMonsterDamageResistances));
            OnPropertyChanged(nameof(OverallMonsterDamageImmunities));
            OnPropertyChanged(nameof(OverallMonsterConditionImmunities));
        }