export const System = {};

System.label = "Barbarians of Lemuria";
System.name = "bol";
System.rootPath = "/systems/" + System.name;
System.dataPath = System.rootPath + "/data";
System.templatesPath = System.rootPath + "/templates";
System.debugMode = true;

export const BOL = {};

BOL.damageValues = {
  "0": "0",
  "1": "1",
  "2": "2",
  "3": "3",
  "d3": "d3",
  "d6M": "d6M (Malus)",
  "d6": "d6",
  "d6B": "d6B (Bonus)",
  "d6BB": "d6B + dé bonus",
}

BOL.damageMultiplier = {
  "1": "x1",
  "2": "x2",
  "3": "x3",
  "4": "x4",
  "5": "x5",
  "6": "x6",
  "7": "7",
  "8": "x8"
}

BOL.listTypes = {
  "attribute": "BOL.ui.attribute",
  "aptitude": "BOL.ui.aptitude",
  "career": "BOL.ui.career",
  "boon": "BOL.ui.boon",
  "flaw": "BOL.ui.flaw",
  "other": "BOL.ui.other"
}

BOL.spellType = {
  "0": "BOL.spellItem.charm",
  "1": "BOL.spellItem.circle1",
  "2": "BOL.spellItem.circle2",
  "3": "BOL.spellItem.circle3"
}

BOL.alchemyType = {
  "common": "BOL.alchemyItem.common",
  "scarce": "BOL.alchemyItem.scarce",
  "legend": "BOL.alchemyItem.legend",
  "mythic": "BOL.alchemyItem.mythic",
}

BOL.equipmentSlots = {
  "none": "BOL.equipmentSlots.none",
  "head": "BOL.equipmentSlots.head",
  "neck": "BOL.equipmentSlots.neck",
  "shoulders": "BOL.equipmentSlots.shoulders",
  "body": "BOL.equipmentSlots.body",
  "rhand": "BOL.equipmentSlots.rhand",
  "lhand": "BOL.equipmentSlots.lhand",
  "2hands": "BOL.equipmentSlots.2hands",
  "rarm": "BOL.equipmentSlots.rarm",
  "larm": "BOL.equipmentSlots.larm",
  "chest": "BOL.equipmentSlots.chest",
  "belt": "BOL.equipmentSlots.belt",
  "legs": "BOL.equipmentSlots.legs",
  "feet": "BOL.equipmentSlots.feet",
  "finder": "BOL.equipmentSlots.finder",
  "ear": "BOL.equipmentSlots.ear"
}

BOL.armorQualities = {
  "none": "BOL.armorQuality.none",
  "light": "BOL.armorQuality.light",
  "lightQ": "BOL.armorQuality.lightQ",
  "lightSup": "BOL.armorQuality.lightSup",
  "lightLeg": "BOL.armorQuality.lightLeg",
  "medium": "BOL.armorQuality.medium",
  "mediumQ": "BOL.armorQuality.mediumQ",
  "mediumSup": "BOL.armorQuality.mediumSup",
  "mediumLeg": "BOL.armorQuality.mediumLeg",
  "heavy": "BOL.armorQuality.heavy",
  "heavyQ": "BOL.armorQuality.heavyQ",
  "heavySup": "BOL.armorQuality.heavySup",
  "heavyLeg": "BOL.armorQuality.heavyLeg"
}

BOL.soakFormulas = {
  "none": "0",
  "light": "1d6-3",
  "lightQ": "1d6r1-3",
  "lightSup": "1d6-2",
  "lightLeg": "2d6kh1-2",
  "medium": "1d6-2",
  "mediumQ": "1d6r1-2",
  "mediumSup": "1d6-1",
  "mediumLeg": "2d6kh1-1",
  "heavy": "1d6-1",
  "heavyQ": "1d6r1-1",
  "heavySup": "1d6",
  "heavyLeg": "2d6kh1"
}

BOL.attackAttributes = {
  "vigor": "BOL.attributes.vigor",
  "agility": "BOL.attributes.agility",
  "mind": "BOL.attributes.mind",
  "appeal": "BOL.attributes.appeal"
}

BOL.attackAptitudes = {
  "melee": "BOL.aptitudes.melee",
  "ranged": "BOL.aptitudes.ranged"
}

BOL.aptitudes = {
  "melee": "BOL.aptitudes.melee",
  "ranged": "BOL.aptitudes.ranged",
  "init": "BOL.aptitudes.init",
  "def": "BOL.aptitudes.def"
}

BOL.resources = {
  "hp": "BOL.resources.hp",
  "hero": "BOL.resources.hero",
  "faith": "BOL.resources.faith",
  "power": "BOL.resources.power",
  "alchemypoints": "BOL.resources.alchemypoints"
}

BOL.weaponSizes = {
  "unarmed": "BOL.weaponSize.unarmed",
  "improvised": "BOL.weaponSize.improvised",
  "light": "BOL.weaponSize.light",
  "medium": "BOL.weaponSize.medium",
  "heavy": "BOL.weaponSize.heavy"
}

BOL.damageAttributes = {
  "zero": "0",
  "vigor": "BOL.attributes.vigor",
  "half-vigor": "BOL.attributes.halfvigor"
}

BOL.itemCategories = {
  "equipment": "BOL.itemCategory.equipment",
  "capacity": "BOL.itemCategory.capacity",
  "spell": "BOL.itemCategory.spell",
  "alchemy": "BOL.itemCategory.alchemy",
  "vehicle": "BOL.itemCategory.vehicle",
  "vehicleweapon": "BOL.itemCategory.vehicleweapon",
  "other": "BOL.itemCategory.other"
}

BOL.itemSubtypes = {
  "armor": "BOL.equipmentCategory.armor",
  "weapon": "BOL.equipmentCategory.weapon",
  "shield": "BOL.equipmentCategory.shield",
  "helm": "BOL.equipmentCategory.helm",
  "jewel": "BOL.equipmentCategory.jewel",
  "scroll": "BOL.equipmentCategory.scroll",
  "container": "BOL.equipmentCategory.container",
  "ammunition": "BOL.equipmentCategory.ammunition",
  "currency": "BOL.equipmentCategory.currency",
  "other": "BOL.equipmentCategory.other"
}

BOL.vehicleSubtypes = {
  "mount": "BOL.vehicleCategory.mount",
  "flying": "BOL.vehicleCategory.flying",
  "boat": "BOL.vehicleCategory.boat",
  "other": "BOL.vehicleCategory.other"
}

// BOL.equipmentCategories = {
//     "armor" : "BOL.equipmentCategory.armor",
//     "weapon" : "BOL.equipmentCategory.weapon",
//     "shield" : "BOL.equipmentCategory.shield",
//     "helm" : "BOL.equipmentCategory.helm",
//     "jewel" : "BOL.equipmentCategory.jewel",
//     "scroll" : "BOL.equipmentCategory.scroll",
//     "container" : "BOL.equipmentCategory.container",
//     "ammunition" : "BOL.equipmentCategory.ammunition",
//     "currency" : "BOL.equipmentCategory.currency",
//     "other" : "BOL.equipmentCategory.other"
// }

BOL.rangeModifiers = {
  "1": "BOL.dialog.pointblank",
  "0": "BOL.dialog.close",
  "-1": "BOL.dialog.medium",
  "-2": "BOL.dialog.long",
  "-4": "BOL.dialog.distant",
  "-6": "BOL.dialog.extreme",
  "-8": "BOL.dialog.utmost"
}

BOL.difficultyModifiers = {
  "4": "BOL.dialog.soeasy",
  "2": "BOL.dialog.veryeasy",
  "1": "BOL.dialog.easy",
  "0": "BOL.dialog.moderate",
  "-1": "BOL.dialog.hard",
  "-2": "BOL.dialog.tough",
  "-4": "BOL.dialog.demanding",
  "-6": "BOL.dialog.formidable",
  "-8": "BOL.dialog.heroic",
  "-10": "BOL.dialog.mythic",
  "-12": "BOL.dialog.divine"
}

BOL.alchemyModifiers = {
  "2": "BOL.dialog.veryeasy",
  "1": "BOL.dialog.easy",
  "0": "BOL.dialog.moderate",
  "-1": "BOL.dialog.hard",
  "-2": "BOL.dialog.tough",
  "-4": "BOL.dialog.demanding",
  "-6": "BOL.dialog.formidable",
  "-8": "BOL.dialog.heroic",
}
BOL.spellModifiers = BOL.alchemyModifiers

BOL.spellMandatoryConditions = {
  "1": "1",
  "2": "2",
  "3": "3",
  "4": "4"
}
BOL.spellOptionnalConditions = {
  "1": "1",
  "2": "2",
  "3": "3",
  "4": "4",
  "5": "5",
  "6": "6",
  "7": "7",
  "8": "8"
}
BOL.effectIdentifiers = {
  "always": "BOL.ui.always",
}
BOL.protectionCategories = {
  "armor": "BOL.protectionCategory.armor",
  "shield": "BOL.protectionCategory.shield",
  "helm": "BOL.protectionCategory.helm",
  "other": "BOL.protectionCategory.other"
}

BOL.weaponCategories = {
  "melee": "BOL.weaponCategory.melee",
  "ranged": "BOL.weaponCategory.ranged",
  "other": "BOL.weaponCategory.other"
}

BOL.itemProperties1 = {
  "equipable": "BOL.itemProperty.equipable",
  "protection": "BOL.itemProperty.protection",
  "magical": "BOL.itemProperty.magical",
  "worn": "BOL.itemProperty.worn",
}

BOL.itemProperties2 = {
  "equipable": "BOL.itemProperty.equipable",
  "protection": "BOL.itemProperty.protection",
  "blocking": "BOL.itemProperty.blocking",
  "magical": "BOL.itemProperty.magical",
  "concealable": "BOL.itemProperty.concealable",
  "2H": "BOL.itemProperty.2H",
  "helm": "BOL.itemProperty.helm",
  "improvised": "BOL.itemProperty.improvised",
  "shield": "BOL.itemProperty.shield",
  "melee": "BOL.itemProperty.melee",
  "throwable": "BOL.itemProperty.throwable",
  "ignoreshield": "BOL.itemProperty.ignoreshield",
  "bashing": "BOL.itemProperty.bashing",
  "stackable": "BOL.itemProperty.stackable",
  "ranged": "BOL.itemProperty.ranged",
  "weapon": "BOL.itemProperty.weapon",
  "reloadable": "BOL.itemProperty.reloadable",
  "worn": "BOL.itemProperty.worn",
  "spell": "BOL.itemProperty.spell",
  "armor": "BOL.itemProperty.armor",
  "consumable": "BOL.itemProperty.consumable",
  "bow": "BOL.itemProperty.bow",
  "crossbow": "BOL.itemProperty.crossbow",
  "throwing": "BOL.itemProperty.throwing",
  "activable": "BOL.itemProperty.activable",
  "powder": "BOL.itemProperty.powder",
  "damage": "BOL.itemProperty.damage",
  "difficulty": "BOL.itemProperty.difficulty"
}

BOL.itemStats = {
  "quantity": "BOL.itemStat.quantity",
  "weight": "BOL.itemStat.weight",
  "price": "BOL.itemStat.price",
  "range": "BOL.itemStat.range",
  "damage": "BOL.itemStat.damage",
  "reload": "BOL.itemStat.reload",
  "soak": "BOL.itemStat.soak",
  "blocking": "BOL.itemStat.blocking",
  "modifiers": "BOL.itemStat.modifiers"
}

BOL.itemModifiers = {
  "init": "BOL.itemModifiers.init",
  "social": "BOL.itemModifiers.social",
  "agility": "BOL.itemModifiers.agility",
  "powercost": "BOL.itemModifiers.powercost"
}

BOL.itemBlocking = {
  "malus": "BOL.itemBlocking.malus",
  "nbAttacksPerRound": "BOL.itemBlocking.nbAttacksPerRound"
}

BOL.itemSoak = {
  "formula": "BOL.itemSoak.formula",
  "value": "BOL.itemSoak.value"
}

BOL.featureSubtypes = {
  "origin": "BOL.featureSubtypes.origin",
  "race": "BOL.featureSubtypes.race",
  "career": "BOL.featureSubtypes.career",
  "boon": "BOL.featureSubtypes.boon",
  "flaw": "BOL.featureSubtypes.flaw",
  "language": "BOL.featureSubtypes.language",
  "godsfaith": "BOL.featureSubtypes.gods",
  "fightoption": "BOL.featureSubtypes.fightOption",
  "boleffect": "BOL.featureSubtypes.effect",
  "horoscope": "BOL.featureSubtypes.horoscope",
  "xplog": "BOL.featureSubtypes.xplog",
}

BOL.fightOptionTypes = {
  "armordefault": "BOL.fightOptionTypes.armor",
  "intrepid": "BOL.fightOptionTypes.intrepid",
  "twoweaponsdef": "BOL.fightOptionTypes.twoweaponsdef",
  "twoweaponsatt": "BOL.fightOptionTypes.twoweaponsatt",
  "fulldefense": "BOL.fightOptionTypes.fulldefense",
  "defense": "BOL.fightOptionTypes.defense",
  "attack": "BOL.fightOptionTypes.attack",
  "other": "BOL.fightOptionTypes.other"
}

BOL.itemIcons = {
  "item": "icons/containers/chest/chest-worn-oak-tan.webp",
  "feature": "icons/sundries/scrolls/scroll-plain-tan-red.webp",
  "species": "icons/environment/people/group.webp",
  "profile": "icons/sundries/documents/blueprint-axe.webp",
  "path": "icons/sundries/books/book-embossed-gold-red.webp"
}

BOL.actorIcons = {
  "npc": "icons/environment/people/commoner.webp",
  "encounter": "icons/svg/mystery-man-black.svg",
  "loot": "icons/containers/bags/sack-simple-leather-brown.webp"
}

BOL.bougetteState = {
  "0": "BOL.bougette.nomoney",
  "1": "BOL.bougette.tolive",
  "2": "BOL.bougette.easylife",
  "3": "BOL.bougette.luxury",
  "4": "BOL.bougette.rich"
}
BOL.bougetteDice = {
  "0": "0",
  "1": "2d6-1",
  "2": "2d6",
  "3": "2d6+1",
  "4": "2d6+2"
}

BOL.creatureSize = {
  "tiny": { order: 1, label: "BOL.size.tiny" },
  "verysmall": { order: 2, label: "BOL.size.verysmall" },
  "small": { order: 3, label: "BOL.size.small" },
  "medium": { order: 4, label: "BOL.size.medium" },
  "large": { order: 5, label: "BOL.size.large" },
  "verylarge": { order: 6, label: "BOL.size.verylarge" },
  "huge": { order: 7, label: "BOL.size.huge" },
  "massive": { order: 8, label: "BOL.size.massive" },
  "enormous": { order: 9, label: "BOL.size.enormous" },
  "gigantic": { order: 10, label: "BOL.size.gigantic" },
  "immense": { order: 11, label: "BOL.size.immense" },
  "colossal": { order: 12, label: "BOL.size.colossal" }
}

BOL.horoscopeAnswer = {
  "favorable": "BOL.ui.horoscopefavorable",
  "unfavorable": "BOL.ui.horoscopeunfavorable",
}

BOL.bolEffectModifier = {
  "-8": "-8",
  "-6": "-6",
  "-4": "-4",
  "-2": "-2",
  "-1": "-1",
  "1B": "1B",
  "2B": "2B",
  "1M": "1M",
  "2M": "2M",
  "+1": "+1",
  "+2": "+2",
  "+4": "+4",
  "+6": "+6",
  "+8": "+8",
}

BOL.statusEffects = [
  {
    "id": "dead",
    "label": "EFFECT.StatusDead",
    "icon": "icons/svg/skull.svg"
  },
  {
    "id": "unconscious",
    "label": "EFFECT.StatusUnconscious",
    "icon": "icons/svg/unconscious.svg"
  },
  {
    "id": "sleep",
    "label": "EFFECT.StatusAsleep",
    "icon": "icons/svg/sleep.svg"
  },
  {
    "id": "stun",
    "label": "EFFECT.StatusStunned",
    "icon": "icons/svg/daze.svg"
  },
  {
    "id": "prone",
    "label": "EFFECT.StatusProne",
    "icon": "icons/svg/falling.svg"
  },
  {
    "id": "restrain",
    "label": "EFFECT.StatusRestrained",
    "icon": "icons/svg/net.svg"
  },
  {
    "id": "paralysis",
    "label": "EFFECT.StatusParalysis",
    "icon": "icons/svg/paralysis.svg"
  },
  {
    "id": "fly",
    "label": "EFFECT.StatusFlying",
    "icon": "icons/svg/wing.svg"
  },
  {
    "id": "blind",
    "label": "EFFECT.StatusBlind",
    "icon": "icons/svg/blind.svg"
  },
  {
    "id": "deaf",
    "label": "EFFECT.StatusDeaf",
    "icon": "icons/svg/deaf.svg"
  },
  {
    "id": "silence",
    "label": "EFFECT.StatusSilenced",
    "icon": "icons/svg/silenced.svg"
  },
  {
    "id": "fear",
    "label": "EFFECT.StatusFear",
    "icon": "icons/svg/terror.svg"
  },
  {
    "id": "burning",
    "label": "EFFECT.StatusBurning",
    "icon": "icons/svg/fire.svg"
  },
  {
    "id": "frozen",
    "label": "EFFECT.StatusFrozen",
    "icon": "icons/svg/frozen.svg"
  },
  {
    "id": "shock",
    "label": "EFFECT.StatusShocked",
    "icon": "icons/svg/lightning.svg"
  },
  {
    "id": "disease",
    "label": "EFFECT.StatusDisease",
    "icon": "icons/svg/biohazard.svg"
  },
  {
    "id": "poison",
    "label": "EFFECT.StatusPoison",
    "icon": "icons/svg/poison.svg"
  },
  {
    "id": "curse",
    "label": "EFFECT.StatusCursed",
    "icon": "icons/svg/sun.svg"
  },
  {
    "id": "invisible",
    "label": "EFFECT.StatusInvisible",
    "icon": "icons/svg/invisible.svg"
  },
  {
    "id": "target",
    "label": "EFFECT.StatusTarget",
    "icon": "icons/svg/target.svg"
  },
  {
    "id": "eye",
    "label": "EFFECT.StatusMarked",
    "icon": "icons/svg/eye.svg"
  }
]

BOL.defaultNaturalWeapon = {
  "category": "equipment",
  "subtype": "weapon",
  "description": "",
  "properties": {
    "ranged": false,
    "melee": false,
    "spell": false,
    "protection": false,
    "weapon": true,
    "armor": false,
    "helm": false,
    "shield": false,
    "equipable": false,
    "consumable": false,
    "magical": false,
    "2H": false,
    "reloadable": false,
    "bow": false,
    "crossbow": false,
    "throwing": false,
    "stackable": false,
    "natural": true,
    "concealable": false,
    "ignoreshield": false,
    "attackBonusDice": false,
    "onlymodifier": true,
    "attackAttribute": "vigor",
    "attackAptitude": "melee",
    "attackModifiers": 1,
    "weaponSize": "unarmed",
    "damage": "d6B",
    "damageAttribute": "",
    "damageModifiers": null,
    "damageMultiplier": "1",
    "damageReroll1": false
  },
  "quantity": 1,
  "weight": 0,
  "price": 0,
  "worn": false
}

BOL.defaultHordeAttack = {
  "category": "equipment",
  "subtype": "weapon",
  "description": "",
  "properties": {
    "ranged": false,
    "melee": true,
    "spell": false,
    "protection": false,
    "weapon": true,
    "armor": false,
    "helm": false,
    "shield": false,
    "equipable": false,
    "consumable": false,
    "magical": false,
    "2H": false,
    "reloadable": false,
    "bow": false,
    "crossbow": false,
    "throwing": false,
    "stackable": false,
    "natural": true,
    "concealable": false,
    "ignoreshield": false,
    "attackBonusDice": false,
    "onlymodifier": true,
    "attackAttribute": "vigor",
    "attackAptitude": "melee",
    "attackModifiers": 1,
    "weaponSize": "unarmed",
    "damage": "d6M",
    "damageAttribute": "",
    "damageModifiers": null,
    "damageMultiplier": "1",
    "damageReroll1": false
  },
  "quantity": 1,
  "weight": 0,
  "price": 0,
  "worn": false
}

BOL.defaultNaturalProtection = {
  "category": "equipment",
  "subtype": "armor",
  "description": "",
  "properties": {
    "ranged": false,
    "melee": false,
    "spell": false,
    "protection": true,
    "weapon": false,
    "armor": true,
    "helm": false,
    "shield": false,
    "equipable": true,
    "consumable": false,
    "magical": false,
    "2H": false,
    "reloadable": false,
    "bow": false,
    "crossbow": false,
    "throwing": false,
    "stackable": false,
    "natural": true,
    "concealable": false,
    "ignoreshield": false,
    "attackBonusDice": false,
    "onlymodifier": true,
    "attackAttribute": "vigor",
    "attackAptitude": "melee",
    "attackModifiers": 1,
    "weaponSize": "unarmed",
    "damage": "d6B",
    "damageAttribute": "vigor",
    "damageModifiers": null,
    "damageMultiplier": "1",
    "damageReroll1": false,
    "modifiers": {
      "init": null,
      "agility": null,
      "powercost": null,
      "social": false
    },
    "armorQuality": "none",
    "soak": {
      "formula": "",
      "value": 1
    },
    "slot": "none"
  },
  "quantity": 1,
  "weight": 0,
  "price": 0,
  "worn": true
}

BOL.debug = false;