Esempio n. 1
0
        public void UpdateView()
        {
            panelAgenda.Children.Clear();

            foreach (Day day in DataManager.Schedule.Days)
            {
                List <Class> classes = day.GetClasses();
                if (classes.Count == 0)
                {
                    continue;
                }

                DayCard dayCard = new DayCard(day);
                if (!(dayCard.FindName("ClassesView") is StackPanel dayCardPanel))
                {
                    continue;
                }

                panelAgenda.Children.Add(dayCard);

                foreach (Class _class in classes)
                {
                    ClassCard card = new ClassCard(_class, day);

                    dayCardPanel.Children.Add(card);
                }
            }
        }
Esempio n. 2
0
        public void UpdateView()
        {
            panelClassList.Children.Clear();

            foreach (Class _class in DataManager.Schedule.Classes)
            {
                ClassCard classCard = new ClassCard(_class);
                panelClassList.Children.Add(classCard);
            }
        }
Esempio n. 3
0
        public void UpdateView()
        {
            panelToday.Children.Clear();

            DayOfWeek today = DateTime.Now.DayOfWeek;

            foreach (Class _class in DataManager.Schedule.Days[(int)today].GetClasses())
            {
                ClassCard classCard = new ClassCard(_class, DataManager.Schedule.Days[(int)today]);
                panelToday.Children.Add(classCard);
            }
        }
Esempio n. 4
0
        public Character(int level, string characterClass, string characterRace)
        {
            this.actionAttack   = new List <ActionModel> {
            };
            this.actionBonus    = new List <ActionModel> {
            };
            this.actionOption   = new List <ActionModel> {
            };
            this.actionReaction = new List <ActionModel> {
            };

            // Get required character data
            this.charBackgroundCard  = Decks.BackgroundDeck.Cards.PullRandomCardFromDeck();
            this.charClassCard       = Decks.ClassDeck.Cards.Find(x => x.Name == characterClass);
            this.charFactionCard     = Decks.FactionDeck.Cards.PullRandomCardFromDeck();
            this.charRaceCard        = Decks.RaceDeck.Cards.Find(x => x.Name == characterRace);
            this.charRaceVariantCard = this.charRaceCard.Variants.PullRandomCardFromDeck(true);

            // Define classes and totalLevel
            this.charClass = new Dictionary <string, CharacterClassModel> {
                {
                    this.charClassCard.Name,
                    new CharacterClassModel()
                    {
                        Level = level,
                        Name  = this.charClassCard.Name,
                    }
                }
            };

            //Test Multiclass
            //if (!this.charClass.ContainsKey(ClassEnum.Wizard.ToString()))
            //{
            //    this.charClass.Add(
            //        ClassEnum.Wizard.ToString(),
            //        new CharacterClassModel()
            //        {
            //            Level = 1,
            //            Name = ClassEnum.Wizard.ToString()
            //        }
            //    );
            //}

            this.totalLevel = GetTotalLevel();

            // Calculate modifiers
            this.abilityScores    = GetAbilityScores(this.charClassCard.AbilityScores, this.charRaceCard.AbilityScores, this.charRaceVariantCard.AbilityScores);
            this.age              = rng.Next(this.charRaceCard.AgeRange.Min, this.charRaceCard.AgeRange.Max);
            this.charBackground   = GetBackground();
            this.charClassPrimary = GetPrimaryClass();
            this.id               = CreateGuid();
            this.immunity         = GetImmunities();
            this.proficiencyBonus = GetProficiencyBonus();
            this.raceTraits       = GetRaceTraits();
            this.resistance       = GetResistances();
            this.speed            = this.charRaceVariantCard.Speed != 30 ? this.charRaceVariantCard.Speed : this.charRaceCard.Speed;

            GetEquipment();
            GetClassFeatures();
            CalculateHitPoints();
            GetProficiencies();
            GetActions();
        }
Esempio n. 5
0
        private void UpdateAbilityScores(string charClass)
        {
            ClassCard selectedClass          = Decks.ClassDeck.Cards.Find(x => x.Name == charClass);
            int       abilityScore           = 0;
            int       availableScoreIncrease = 2;

            foreach (var ability in selectedClass.ASI)
            {
                switch (ability)
                {
                case AbilitiesEnum.Cha:
                    if (this.abilityScores.Cha < 20)
                    {
                        abilityScore           = GetAbilityScoreIncrease(this.abilityScores.Cha, availableScoreIncrease);
                        availableScoreIncrease = this.abilityScores.Cha - abilityScore - availableScoreIncrease;

                        this.abilityScores.Cha    = abilityScore;
                        this.abilityScores.ChaMod = GetAbilityScoreModifier(abilityScore);
                    }
                    break;

                case AbilitiesEnum.Con:
                    if (this.abilityScores.Con < 20)
                    {
                        abilityScore           = GetAbilityScoreIncrease(this.abilityScores.Con, availableScoreIncrease);
                        availableScoreIncrease = abilityScore - this.abilityScores.Con - availableScoreIncrease;

                        this.abilityScores.Con    = abilityScore;
                        this.abilityScores.ConMod = GetAbilityScoreModifier(abilityScore);
                    }
                    break;

                case AbilitiesEnum.Dex:
                    if (this.abilityScores.Dex < 20)
                    {
                        abilityScore           = GetAbilityScoreIncrease(this.abilityScores.Dex, availableScoreIncrease);
                        availableScoreIncrease = this.abilityScores.Dex - abilityScore - availableScoreIncrease;

                        this.abilityScores.Dex    = abilityScore;
                        this.abilityScores.DexMod = GetAbilityScoreModifier(abilityScore);
                    }
                    break;

                case AbilitiesEnum.Int:
                    if (this.abilityScores.Int < 20)
                    {
                        abilityScore           = GetAbilityScoreIncrease(this.abilityScores.Int, availableScoreIncrease);
                        availableScoreIncrease = this.abilityScores.Int - abilityScore - availableScoreIncrease;

                        this.abilityScores.Int    = abilityScore;
                        this.abilityScores.IntMod = GetAbilityScoreModifier(abilityScore);
                    }
                    break;

                case AbilitiesEnum.Str:
                    if (this.abilityScores.Str < 20)
                    {
                        abilityScore           = GetAbilityScoreIncrease(this.abilityScores.Str, availableScoreIncrease);
                        availableScoreIncrease = this.abilityScores.Str - abilityScore - availableScoreIncrease;

                        this.abilityScores.Str    = abilityScore;
                        this.abilityScores.StrMod = GetAbilityScoreModifier(abilityScore);
                    }
                    break;

                case AbilitiesEnum.Wis:
                    if (this.abilityScores.Wis < 20)
                    {
                        abilityScore           = GetAbilityScoreIncrease(this.abilityScores.Wis, availableScoreIncrease);
                        availableScoreIncrease = this.abilityScores.Wis - abilityScore - availableScoreIncrease;

                        this.abilityScores.Wis    = abilityScore;
                        this.abilityScores.WisMod = GetAbilityScoreModifier(abilityScore);
                    }
                    break;

                default:
                    break;
                }

                availableScoreIncrease = availableScoreIncrease <= 0 ? 0 : availableScoreIncrease;
            }
        }