export const DS4 = {
    // ASCII Artwork
    ASCII: String.raw`_____________________________________________________________________________________________
 ____  _   _ _   _  ____ _____ ___  _   _ ____  _        _ __   _______ ____  ____    _  _
|  _ \| | | | \ | |/ ___| ____/ _ \| \ | / ___|| |      / \\ \ / / ____|  _ \/ ___|  | || |
| | | | | | |  \| | |  _|  _|| | | |  \| \___ \| |     / _ \\ V /|  _| | |_) \___ \  | || |_
| |_| | |_| | |\  | |_| | |__| |_| | |\  |___) | |___ / ___ \| | | |___|  _ < ___) | |__   _|
|____/ \___/|_| \_|\____|_____\___/|_| \_|____/|_____/_/   \_\_| |_____|_| \_\____/     |_|
=============================================================================================`,

    /**
     * Define the set of acttack types that can be performed with weapon items
     */
    attackTypes: {
        melee: "DS4.AttackTypeMelee",
        ranged: "DS4.AttackTypeRanged",
        meleeRanged: "DS4.AttackTypeMeleeRanged",
    },

    /**
     * Define the file paths to icon images
     */
    attackTypesIcons: {
        melee: "systems/ds4/assets/official/DS4-MAT.png",
        meleeRanged: "systems/ds4/assets/official/DS4-MRA.png",
        ranged: "systems/ds4/assets/official/DS4-RAT.png",
    },

    /**
     * Define the set of item availabilties
     */
    itemAvailabilities: {
        unset: "DS4.ItemAvailabilityUnset",
        hamlet: "DS4.ItemAvailabilityHamlet",
        village: "DS4.ItemAvailabilityVilage",
        city: "DS4.ItemAvailabilityCity",
        elves: "DS4.ItemAvailabilityElves",
        dwarves: "DS4.ItemAvailabilityDwarves",
        nowhere: "DS4.ItemAvailabilityNowhere",
    },

    /**
     * Define the set of item types
     */
    itemTypes: {
        weapon: "DS4.ItemTypeWeapon",
        armor: "DS4.ItemTypeArmor",
        shield: "DS4.ItemTypeShield",
        trinket: "DS4.ItemTypeTrinket",
        equipment: "DS4.ItemTypeEquipment",
        talent: "DS4.ItemTypeTalent",
        racialAbility: "DS4.ItemTypeRacialAbility",
        language: "DS4.ItemTypeLanguage",
        alphabet: "DS4.ItemTypeAlphabet",
    },

    /**
     * Define the set of armor types, a character may only wear one item of each at any given time
     */
    armorTypes: {
        body: "DS4.ArmorTypeBody",
        helmet: "DS4.ArmorTypeHelmet",
        vambrace: "DS4.ArmorTypeVambrace",
        greaves: "DS4.ArmorTypeGreaves",
        vambraceGreaves: "DS4.ArmorTypeVambraceGreaves",
    },

    /**
     * Define abbreviations for the armor types
     */
    armorTypesAbbr: {
        body: "DS4.ArmorTypeBodyAbbr",
        helmet: "DS4.ArmorTypeHelmetAbbr",
        vambrace: "DS4.ArmorTypeVambraceAbbr",
        greaves: "DS4.ArmorTypeGreavesAbbr",
        vambraceGreaves: "DS4.ArmorTypeVambraceGreavesAbbr",
    },

    /**
     * Define the set of armor materials, used to determine if a characer may wear the armor without additional penalties
     */
    armorMaterialTypes: {
        cloth: "DS4.ArmorMaterialTypeCloth",
        leather: "DS4.ArmorMaterialTypeLeather",
        chain: "DS4.ArmorMaterialTypeChain",
        plate: "DS4.ArmorMaterialTypePlate",
    },

    /**
     * Define the abbreviations of armor materials
     */
    armorMaterialTypesAbbr: {
        cloth: "DS4.ArmorMaterialTypeClothAbbr",
        leather: "DS4.ArmorMaterialTypeLeatherAbbr",
        chain: "DS4.ArmorMaterialTypeChainAbbr",
        plate: "DS4.ArmorMaterialTypePlateAbbr",
    },

    /**
     * Define the set of attributes a character has
     */
    attributes: {
        body: "DS4.AttributeBody",
        mobility: "DS4.AttributeMobility",
        mind: "DS4.AttributeMind",
    },

    /**
     * Define the set of traits a character has
     */
    traits: {
        strength: "DS4.TraitStrength",
        agility: "DS4.TraitAgility",
        intellect: "DS4.TraitIntellect",
        constitution: "DS4.TraitConstitution",
        dexterity: "DS4.TraitDexterity",
        aura: "DS4.TraitAura",
    },

    /**
     * Define the set of combat values a character has
     */
    combatValues: {
        hitPoints: "DS4.CombatValuesHitPoints",
        defense: "DS4.CombatValuesDefense",
        initiative: "DS4.CombatValuesInitiative",
        movement: "DS4.CombatValuesMovement",
        meleeAttack: "DS4.CombatValuesMeleeAttack",
        rangedAttack: "DS4.CombatValuesRangedAttack",
        spellcasting: "DS4.CombatValuesSpellcasting",
        targetedSpellcasting: "DS4.CombatValuesTargetedSpellcasting",
    },

    /**
     * Define the base info of a character
     */
    baseInfo: {
        race: "DS4.BaseInfoRace",
        class: "DS4.BaseInfoClass",
        heroClass: "DS4.BaseInfoHeroClass",
        culture: "DS4.BaseInfoCulture",
    },

    /**
     * Define the progression info of a character
     */
    progression: {
        level: "DS4.ProgressionLevel",
        experiencePoints: "DS4.ProgressionExperiencePoints",
        talentPoints: "DS4.ProgressionTalentPoints",
        progressPoints: "DS4.ProgressionProgressPoints",
    },

    /**
     * Define the language info of a character
     */
    language: {
        languages: "DS4.LanguageLanguages",
        alphabets: "DS4.LanguageAlphabets",
    },

    /**
     * Define the profile info of a character
     */
    profile: {
        gender: "DS4.ProfileGender",
        birthday: "DS4.ProfileBirthday",
        birthplace: "DS4.ProfileBirthplace",
        age: "DS4.ProfileAge",
        height: "DS4.ProfileHeight",
        hairColor: "DS4.ProfilHairColor",
        weight: "DS4.ProfileWeight",
        eyeColor: "DS4.ProfileEyeColor",
        specialCharacteristics: "DS4.ProfileSpecialCharacteristics",
    },

    /**
     * Define the profile info types for hanndlebars of a character
     */
    profileDTypes: {
        gender: "String",
        birthday: "String",
        birthplace: "String",
        age: "Number",
        height: "Number",
        hairColor: "String",
        weight: "Number",
        eyeColor: "String",
        specialCharacteristics: "String",
    },
};