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); } } }
public void UpdateView() { panelClassList.Children.Clear(); foreach (Class _class in DataManager.Schedule.Classes) { ClassCard classCard = new ClassCard(_class); panelClassList.Children.Add(classCard); } }
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); } }
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(); }
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; } }