using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SessionCompanion.ViewModels.CharacterViewModels
{
    public class CharacterEveryStatViewModel
    {
        /// <summary>
        /// Id postaci
        /// </summary>
        public int Id { get; set; }


        public int CharismaValue { get; set; }
        /// <summary>
        /// Modyfikator rzutów na charyzme
        /// </summary>
        public int CharismaModification { get; set; }
        /// <summary>
        /// Modyfikator rzutów obronnych na charyzme
        /// </summary>
        public int CharismaSavingThrows { get; set; }
        /// <summary>
        /// Czy postać posiada biegłość w charyźmie 
        /// </summary>
        public bool CharismaCanSaveThrows { get; set; }

        /// <summary>
        /// Wartość oszustwa
        /// </summary>
        public int Deception { get; set; }
        /// <summary>
        /// Czy postać posiada biegłość w oszustwie
        /// </summary>
        public bool CanDeception { get; set; }

        /// <summary>
        /// Wartość umiejętności zastraszania
        /// </summary>
        public int Intimidation { get; set; }

        /// <summary>
        /// Czy postać posiada biegłość w zastraszaniu
        /// </summary>
        public bool CanIntimidation { get; set; }

        /// <summary>
        /// Wartość umiejętności występowania
        /// </summary>
        public int Performance { get; set; }

        /// <summary>
        /// Czy postać posiada biegłość w występowaniu
        /// </summary>
        public bool CanPerformance { get; set; }

        /// <summary>
        /// Wartość umiejętności perswazji
        /// </summary>
        public int Persuasion { get; set; }

        /// <summary>
        /// Czy postać posiada biegłość w perswazji
        /// </summary>
        public bool CanPersuasion { get; set; }




        // Constitution
        /// <summary>
        /// Wartośc Constitution
        /// </summary>
        public int ConstitutionValue { get; set; }
        /// <summary>
        /// Modyfikator Constitution
        /// </summary>
        public int ConstitutionModification { get; set; }
        /// <summary>
        /// Wartość rzutów obronnych na constitiution
        /// </summary>
        public int ConstitutionSavingThrows { get; set; }
        /// <summary>
        /// Czy postać posiada biegłość w Constitution
        /// </summary>
        public bool ConstitutionCanSaveThrows { get; set; }



        // Dexterity
        /// <summary>
        /// Wartość Dexterity
        /// </summary>
        public int DexterityValue { get; set; }
        /// <summary>
        /// Modyfiukator Dexterity
        /// </summary>
        public int DexterityModification { get; set; }
        /// <summary>
        /// Biegłośc w Dexterity
        /// </summary>
        public int DexteritySavingThrows { get; set; }
        /// <summary>
        /// Czy postać posiada biegłość w Dexterity
        /// </summary>
        public bool DexterityCanSaveThrows { get; set; }

        /// <summary>
        /// Wartość umiejętności akrobatyki
        /// </summary>
        public int Acrobatics { get; set; }

        /// <summary>
        /// Czy postać posiada biegłość w akrobatyce
        /// </summary>
        public bool CanAcrobatics { get; set; }

        /// <summary>
        /// Wartość umiejętności zwinnych dłoni
        /// </summary>
        public int SleightOfHand { get; set; }

        /// <summary>
        /// Czy postać posiada biegłość w zwinnych dłoniach
        /// </summary>
        public bool CanSleightOfHand { get; set; }

        /// <summary>
        /// Wartość umiejętności skradania się
        /// </summary>
        public int Stealth { get; set; }

        /// <summary>
        /// Czy postać posiada biegłość w skradaniu się
        /// </summary>
        public bool CanStealth { get; set; }




        // Intelligence
        /// <summary>
        /// Wartośc Intelligence
        /// </summary>
        public int IntelligenceValue { get; set; }
        /// <summary>
        /// Modyfikator Intelligence
        /// </summary>
        public int IntelligenceModification { get; set; }
        /// <summary>
        /// Biegłość w Intelligence
        /// </summary>
        public int IntelligenceSavingThrows { get; set; }
        /// <summary>
        /// Czy posiada biegłośc w Intellgence
        /// </summary>
        public bool IntelligenceCanSaveThrows { get; set; }

        /// <summary>
        /// Wartość umiejętności wiedzy tejemnej
        /// </summary>
        public int Arcana { get; set; }

        /// <summary>
        /// Czy postać posiada biegłość w wiedzy tejemnej
        /// </summary>
        public bool CanArcana { get; set; }

        /// <summary>
        /// Wartość umiejętności historii
        /// </summary>
        public int History { get; set; }

        /// <summary>
        /// Czy postać posiada biegłość w historii
        /// </summary>
        public bool CanHistory { get; set; }

        /// <summary>
        /// Wartość umiejętności śledztwa
        /// </summary>
        public int Investigation { get; set; }

        /// <summary>
        /// Czy postać posiada biegłość w śledztwie
        /// </summary>
        public bool CanInvestigation { get; set; }

        /// <summary>
        /// Wartość umiejętności przyrody
        /// </summary>
        public int Nature { get; set; }

        /// <summary>
        /// Czy postać posiada biegłość w przyrodzie
        /// </summary>
        public bool CanNature { get; set; }

        /// <summary>
        /// Wartość umiejętności religii
        /// </summary>
        public int Religion { get; set; }

        /// <summary>
        /// Czy postać posiada biegłość w religii
        /// </summary>
        public bool CanReligion { get; set; }




        // Strength
        /// <summary>
        /// Wartośc siły
        /// </summary>
        public int StrengthValue { get; set; }
        /// <summary>
        /// Modyfikator siły
        /// </summary>
        public int StrengthModification { get; set; }
        /// <summary>
        /// Biegłość w Sile
        /// </summary>
        public int StrengthSavingThrows { get; set; }
        /// <summary>
        /// Czy posiada biegłość w sile
        /// </summary>
        public bool StrengthCanSaveThrows { get; set; }
        /// <summary>
        /// Wartość umiejętności atletyki
        /// </summary>
        public int Athletics { get; set; }

        /// <summary>
        /// Czy postać posiada biegłość w atletyce
        /// </summary>
        public bool CanAthletics { get; set; }




        // Wisdom
        /// <summary>
        /// Wartośc wisdom
        /// </summary>
        public int WisdomValue { get; set; }
        /// <summary>
        /// Modyfikator wisdom
        /// </summary>
        public int WisdomModification { get; set; }
        /// <summary>
        /// Biegłość w Wisdom
        /// </summary>
        public int WisdomSavingThrows { get; set; }
        /// <summary>
        /// Czy postać posiada biegłość w wisdom
        /// </summary>
        public bool WisdomCanSaveThrows { get; set; }

        /// <summary>
        /// Wartość umiejętności opieki nad zwierzętami
        /// </summary>
        public int AnimalHandling { get; set; }

        /// <summary>
        /// Czy postać posiada biegłość w opiece nad zwierzętami
        /// </summary>
        public bool CanAnimalHandling { get; set; }

        /// <summary>
        /// Wartość umiejętności intuicji
        /// </summary>
        public int Insight { get; set; }

        /// <summary>
        /// Czy postać posiada biegłość w intuicji
        /// </summary>
        public bool CanInsight { get; set; }

        /// <summary>
        /// Wartość umiejętności medycyny
        /// </summary>
        public int Medicine { get; set; }

        /// <summary>
        /// Czy postać posiada biegłość w medycynie 
        /// </summary>
        public bool CanMedicine { get; set; }

        /// <summary>
        /// Wartość umiejętności percepcji
        /// </summary>
        public int Perception { get; set; }

        /// <summary>
        /// Czy postać posiada biegłość w  percepcji
        /// </summary>
        public bool CanPerception { get; set; }

        /// <summary>
        /// Wartość umiejętności sztuki przetrwania
        /// </summary>
        public int Survival { get; set; }

        /// <summary>
        /// Czy postać posiada biegłość w sztuce przetrwania
        /// </summary>
        public bool CanSurvival { get; set; }
    }
}