456 lines
16 KiB
TypeScript
456 lines
16 KiB
TypeScript
// SPDX-FileCopyrightText: 2021 Johannes Loher
|
|
// SPDX-FileCopyrightText: 2021 Oliver Rümpelein
|
|
// SPDX-FileCopyrightText: 2021 Gesina Schwalbe
|
|
// SPDX-FileCopyrightText: 2021 Siegfried Krug
|
|
//
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
const i18nKeys = {
|
|
/**
|
|
* 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 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",
|
|
spell: "DS4.ItemTypeSpell",
|
|
equipment: "DS4.ItemTypeEquipment",
|
|
loot: "DS4.ItemTypeLoot",
|
|
talent: "DS4.ItemTypeTalent",
|
|
racialAbility: "DS4.ItemTypeRacialAbility",
|
|
language: "DS4.ItemTypeLanguage",
|
|
alphabet: "DS4.ItemTypeAlphabet",
|
|
specialCreatureAbility: "DS4.ItemTypeSpecialCreatureAbility",
|
|
},
|
|
|
|
/**
|
|
* 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 character may wear the armor without additional penalties
|
|
*/
|
|
armorMaterialTypes: {
|
|
cloth: "DS4.ArmorMaterialTypeCloth",
|
|
leather: "DS4.ArmorMaterialTypeLeather",
|
|
chain: "DS4.ArmorMaterialTypeChain",
|
|
plate: "DS4.ArmorMaterialTypePlate",
|
|
natural: "DS4.ArmorMaterialTypeNatural",
|
|
},
|
|
|
|
/**
|
|
* Define the abbreviations of armor materials
|
|
*/
|
|
armorMaterialTypesAbbr: {
|
|
cloth: "DS4.ArmorMaterialTypeClothAbbr",
|
|
leather: "DS4.ArmorMaterialTypeLeatherAbbr",
|
|
chain: "DS4.ArmorMaterialTypeChainAbbr",
|
|
plate: "DS4.ArmorMaterialTypePlateAbbr",
|
|
natural: "DS4.ArmorMaterialTypeNaturalAbbr",
|
|
},
|
|
|
|
spellTypes: {
|
|
spellcasting: "DS4.SpellTypeSpellcasting",
|
|
targetedSpellcasting: "DS4.SpellTypeTargetedSpellcasting",
|
|
},
|
|
|
|
spellCategories: {
|
|
healing: "DS4.SpellCategoryHealing",
|
|
fire: "DS4.SpellCategoryFire",
|
|
ice: "DS4.SpellCategoryIce",
|
|
light: "DS4.SpellCategoryLight",
|
|
darkness: "DS4.SpellCategoryDarkness",
|
|
mindAffecting: "DS4.SpellCategoryMindAffecting",
|
|
electricity: "DS4.SpellCategoryElectricity",
|
|
none: "DS4.SpellCategoryNone",
|
|
unset: "DS4.SpellCategoryUnset",
|
|
},
|
|
|
|
cooldownDurations: {
|
|
"0r": "DS4.CooldownDuration0R",
|
|
"1r": "DS4.CooldownDuration1R",
|
|
"2r": "DS4.CooldownDuration2R",
|
|
"5r": "DS4.CooldownDuration5R",
|
|
"10r": "DS4.CooldownDuration10R",
|
|
"100r": "DS4.CooldownDuration100R",
|
|
"1d": "DS4.CooldownDuration1D",
|
|
d20d: "DS4.CooldownDurationD20D",
|
|
},
|
|
|
|
/**
|
|
* Define the set of actor types
|
|
*/
|
|
actorTypes: {
|
|
character: "DS4.ActorTypeCharacter",
|
|
creature: "DS4.ActorTypeCreature",
|
|
},
|
|
|
|
/**
|
|
* Define the set of attributes an actor has
|
|
*/
|
|
attributes: {
|
|
body: "DS4.AttributeBody",
|
|
mobility: "DS4.AttributeMobility",
|
|
mind: "DS4.AttributeMind",
|
|
},
|
|
|
|
/**
|
|
* Define the set of traits an actor 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 an actor 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",
|
|
},
|
|
|
|
/**
|
|
* The what do display in the actor sheets for the combat value text (in some languages, abbreviations are necessary)
|
|
*/
|
|
combatValuesSheet: {
|
|
hitPoints: "DS4.CombatValuesHitPointsSheet",
|
|
defense: "DS4.CombatValuesDefenseSheet",
|
|
initiative: "DS4.CombatValuesInitiativeSheet",
|
|
movement: "DS4.CombatValuesMovementSheet",
|
|
meleeAttack: "DS4.CombatValuesMeleeAttackSheet",
|
|
rangedAttack: "DS4.CombatValuesRangedAttackSheet",
|
|
spellcasting: "DS4.CombatValuesSpellcastingSheet",
|
|
targetedSpellcasting: "DS4.CombatValuesTargetedSpellcastingSheet",
|
|
},
|
|
|
|
/**
|
|
* Define the base info of a character
|
|
*/
|
|
characterBaseInfo: {
|
|
race: "DS4.CharacterBaseInfoRace",
|
|
class: "DS4.CharacterBaseInfoClass",
|
|
heroClass: "DS4.CharacterBaseInfoHeroClass",
|
|
culture: "DS4.CharacterBaseInfoCulture",
|
|
},
|
|
|
|
/**
|
|
* Define the progression info of a character
|
|
*/
|
|
characterProgression: {
|
|
level: "DS4.CharacterProgressionLevel",
|
|
experiencePoints: "DS4.CharacterProgressionExperiencePoints",
|
|
talentPoints: "DS4.CharacterProgressionTalentPoints",
|
|
progressPoints: "DS4.CharacterProgressionProgressPoints",
|
|
},
|
|
|
|
/**
|
|
* Define the language info of a character
|
|
*/
|
|
characterLanguage: {
|
|
languages: "DS4.CharacterLanguageLanguages",
|
|
alphabets: "DS4.CharacterLanguageAlphabets",
|
|
},
|
|
|
|
/**
|
|
* Define the profile info of a character
|
|
*/
|
|
characterProfile: {
|
|
biography: "DS4.CharacterProfileBiography",
|
|
gender: "DS4.CharacterProfileGender",
|
|
birthday: "DS4.CharacterProfileBirthday",
|
|
birthplace: "DS4.CharacterProfileBirthplace",
|
|
age: "DS4.CharacterProfileAge",
|
|
height: "DS4.CharacterProfileHeight",
|
|
hairColor: "DS4.CharacterProfileHairColor",
|
|
weight: "DS4.CharacterProfileWeight",
|
|
eyeColor: "DS4.CharacterProfileEyeColor",
|
|
specialCharacteristics: "DS4.CharacterProfileSpecialCharacteristics",
|
|
},
|
|
/**
|
|
* Define currency elements of a character
|
|
*/
|
|
characterCurrency: {
|
|
gold: "DS4.CharacterCurrencyGold",
|
|
silver: "DS4.CharacterCurrencySilver",
|
|
copper: "DS4.CharacterCurrencyCopper",
|
|
},
|
|
|
|
/**
|
|
* Define the different creature types a creature can be
|
|
*/
|
|
creatureTypes: {
|
|
animal: "DS4.CreatureTypeAnimal",
|
|
construct: "DS4.CreatureTypeConstruct",
|
|
humanoid: "DS4.CreatureTypeHumanoid",
|
|
magicalEntity: "DS4.CreatureTypeMagicalEntity",
|
|
plantBeing: "DS4.CreatureTypePlantBeing",
|
|
undead: "DS4.CreatureTypeUndead",
|
|
},
|
|
|
|
/**
|
|
* Define the different size categories creatures fall into
|
|
*/
|
|
creatureSizeCategories: {
|
|
tiny: "DS4.CreatureSizeCategoryTiny",
|
|
small: "DS4.CreatureSizeCategorySmall",
|
|
normal: "DS4.CreatureSizeCategoryNormal",
|
|
large: "DS4.CreatureSizeCategoryLarge",
|
|
huge: "DS4.CreatureSizeCategoryHuge",
|
|
colossal: "DS4.CreatureSizeCategoryColossal",
|
|
},
|
|
|
|
/**
|
|
* Define the base info of a creature
|
|
*/
|
|
creatureBaseInfo: {
|
|
loot: "DS4.CreatureBaseInfoLoot",
|
|
foeFactor: "DS4.CreatureBaseInfoFoeFactor",
|
|
creatureType: "DS4.CreatureBaseInfoCreatureType",
|
|
sizeCategory: "DS4.CreatureBaseInfoSizeCategory",
|
|
experiencePoints: "DS4.CreatureBaseInfoExperiencePoints",
|
|
description: "DS4.CreatureBaseInfoDescription",
|
|
},
|
|
|
|
/**
|
|
* Define translations for available distance units
|
|
*/
|
|
distanceUnits: {
|
|
meter: "DS4.UnitMeters",
|
|
kilometer: "DS4.UnitKilometers",
|
|
custom: "DS4.UnitCustom",
|
|
},
|
|
/**
|
|
* Define abbreviations for available distance units
|
|
*/
|
|
distanceUnitsAbbr: {
|
|
meter: "DS4.UnitMetersAbbr",
|
|
kilometer: "DS4.UnitKilometersAbbr",
|
|
custom: "DS4.UnitCustomAbbr",
|
|
},
|
|
|
|
/**
|
|
* Define translations for available duration units
|
|
*/
|
|
temporalUnits: {
|
|
rounds: "DS4.UnitRounds",
|
|
minutes: "DS4.UnitMinutes",
|
|
hours: "DS4.UnitHours",
|
|
days: "DS4.UnitDays",
|
|
custom: "DS4.UnitCustom",
|
|
},
|
|
|
|
/**
|
|
* Define abbreviations for available duration units
|
|
*/
|
|
temporalUnitsAbbr: {
|
|
rounds: "DS4.UnitRoundsAbbr",
|
|
minutes: "DS4.UnitMinutesAbbr",
|
|
hours: "DS4.UnitHoursAbbr",
|
|
days: "DS4.UnitDaysAbbr",
|
|
custom: "DS4.UnitCustomAbbr",
|
|
},
|
|
|
|
checks: {
|
|
appraise: "DS4.ChecksAppraise",
|
|
changeSpell: "DS4.ChecksChangeSpell",
|
|
climb: "DS4.ChecksClimb",
|
|
communicate: "DS4.ChecksCommunicate",
|
|
decipherScript: "DS4.ChecksDecipherScript",
|
|
defend: "DS4.ChecksDefend",
|
|
defyPoison: "DS4.ChecksDefyPoison",
|
|
disableTraps: "DS4.ChecksDisableTraps",
|
|
featOfStrength: "DS4.ChecksFeatOfStrength",
|
|
flirt: "DS4.ChecksFlirt",
|
|
haggle: "DS4.ChecksHaggle",
|
|
hide: "DS4.ChecksHide",
|
|
identifyMagic: "DS4.ChecksIdentifyMagic",
|
|
jump: "DS4.ChecksJump",
|
|
knowledge: "DS4.ChecksKnowledge",
|
|
openLock: "DS4.ChecksOpenLock",
|
|
perception: "DS4.ChecksPerception",
|
|
pickPocket: "DS4.ChecksPickPocket",
|
|
readTracks: "DS4.ChecksReadTracks",
|
|
resistDisease: "DS4.ChecksResistDisease",
|
|
ride: "DS4.ChecksRide",
|
|
search: "DS4.ChecksSearch",
|
|
senseMagic: "DS4.ChecksSenseMagic",
|
|
sneak: "DS4.ChecksSneak",
|
|
startFire: "DS4.ChecksStartFire",
|
|
swim: "DS4.ChecksSwim",
|
|
wakeUp: "DS4.ChecksWakeUp",
|
|
workMechanism: "DS4.ChecksWorkMechanism",
|
|
},
|
|
|
|
/**
|
|
* Translations for the standard check modifiers
|
|
*/
|
|
checkModifiers: {
|
|
routine: "DS4.CheckModifierRoutine",
|
|
veryEasy: "DS4.CheckModifierVeryEasy",
|
|
easy: "DS4.CheckModifierEasy",
|
|
normal: "DS4.CheckModifierMormal",
|
|
difficult: "DS4.CheckModifierDifficult",
|
|
veryDifficult: "DS4.CheckModifierVeryDifficult",
|
|
extremelyDifficult: "DS4.CheckModifierExtremelyDifficult",
|
|
custom: "DS4.CheckModifierCustom",
|
|
},
|
|
};
|
|
|
|
export const DS4 = {
|
|
// ASCII Artwork
|
|
ASCII: String.raw`_____________________________________________________________________________________________
|
|
____ _ _ _ _ ____ _____ ___ _ _ ____ _ _ __ _______ ____ ____ _ _
|
|
| _ \| | | | \ | |/ ___| ____/ _ \| \ | / ___|| | / \\ \ / / ____| _ \/ ___| | || |
|
|
| | | | | | | \| | | _| _|| | | | \| \___ \| | / _ \\ V /| _| | |_) \___ \ | || |_
|
|
| |_| | |_| | |\ | |_| | |__| |_| | |\ |___) | |___ / ___ \| | | |___| _ < ___) | |__ _|
|
|
|____/ \___/|_| \_|\____|_____\___/|_| \_|____/|_____/_/ \_\_| |_____|_| \_\____/ |_|
|
|
=============================================================================================`,
|
|
|
|
/**
|
|
* A dictionary of dictionaries each mapping keys to localized strings
|
|
* resp. their localization keys.
|
|
* The localization is assumed to take place on each reload.
|
|
*/
|
|
i18n: i18nKeys,
|
|
|
|
/**
|
|
* A dictionary of dictionaries each mapping keys to localizion keys.
|
|
*/
|
|
i18nKeys,
|
|
|
|
/**
|
|
* A dictionary of dictionaries mapping keys to icon file paths.
|
|
*/
|
|
icons: {
|
|
/**
|
|
* Define the file paths to icon images
|
|
*/
|
|
attackTypes: {
|
|
melee: "systems/ds4/assets/icons/official/combat-values/melee-attack.png",
|
|
meleeRanged: "systems/ds4/assets/icons/official/combat-values/melee-ranged-attack.png",
|
|
ranged: "systems/ds4/assets/icons/official/combat-values/ranged-attack.png",
|
|
},
|
|
|
|
/**
|
|
* Define the file paths to icon images
|
|
*/
|
|
spellTypes: {
|
|
spellcasting: "systems/ds4/assets/icons/official/combat-values/spellcasting.png",
|
|
targetedSpellcasting: "systems/ds4/assets/icons/official/combat-values/targeted-spellcasting.png",
|
|
},
|
|
|
|
/**
|
|
* Define the file paths to check images
|
|
*/
|
|
checks: {
|
|
appraise: "systems/ds4/assets/icons/game-icons/delapouite/two-coins.svg",
|
|
changeSpell: "systems/ds4/assets/icons/game-icons/delapouite/card-exchange.svg",
|
|
climb: "systems/ds4/assets/icons/game-icons/caro-asercion/mountain-climbing.svg",
|
|
communicate: "systems/ds4/assets/icons/game-icons/delapouite/discussion.svg",
|
|
decipherScript: "systems/ds4/assets/icons/game-icons/lorc/rune-stone.svg",
|
|
defend: "systems/ds4/assets/icons/game-icons/sbed/shield.svg",
|
|
defyPoison: "systems/ds4/assets/icons/game-icons/lorc/poison-bottle.svg",
|
|
disableTraps: "systems/ds4/assets/icons/game-icons/lorc/wolf-trap.svg",
|
|
featOfStrength: "systems/ds4/assets/icons/game-icons/delapouite/biceps.svg",
|
|
flirt: "systems/ds4/assets/icons/game-icons/lorc/charm.svg",
|
|
haggle: "systems/ds4/assets/icons/game-icons/lorc/cash.svg",
|
|
hide: "systems/ds4/assets/icons/game-icons/lorc/hidden.svg",
|
|
identifyMagic: "systems/ds4/assets/icons/game-icons/lorc/uncertainty.svg",
|
|
jump: "systems/ds4/assets/icons/game-icons/delapouite/jump-across.svg",
|
|
knowledge: "systems/ds4/assets/icons/game-icons/delapouite/bookshelf.svg",
|
|
openLock: "systems/ds4/assets/icons/game-icons/delapouite/padlock-open.svg",
|
|
perception: "systems/ds4/assets/icons/game-icons/lorc/awareness.svg",
|
|
pickPocket: "systems/ds4/assets/icons/game-icons/darkzaitev/robber-hand.svg",
|
|
readTracks: "systems/ds4/assets/icons/game-icons/delapouite/deer-track.svg",
|
|
resistDisease: "systems/ds4/assets/icons/game-icons/lorc/virus.svg",
|
|
ride: "systems/ds4/assets/icons/game-icons/delapouite/cavalry.svg",
|
|
search: "systems/ds4/assets/icons/game-icons/lorc/magnifying-glass.svg",
|
|
senseMagic: "systems/ds4/assets/icons/game-icons/delapouite/sparkles.svg",
|
|
sneak: "systems/ds4/assets/icons/game-icons/delapouite/mute.svg",
|
|
startFire: "systems/ds4/assets/icons/game-icons/lorc/campfire.svg",
|
|
swim: "systems/ds4/assets/icons/game-icons/delapouite/pool-dive.svg",
|
|
wakeUp: "systems/ds4/assets/icons/game-icons/delapouite/alarm-clock.svg",
|
|
workMechanism: "systems/ds4/assets/icons/game-icons/lorc/lever.svg",
|
|
},
|
|
},
|
|
|
|
/**
|
|
* Profile info types for handlebars of a character
|
|
*/
|
|
characterProfileDTypes: {
|
|
biography: "String",
|
|
gender: "String",
|
|
birthday: "String",
|
|
birthplace: "String",
|
|
age: "Number",
|
|
height: "Number",
|
|
hairColor: "String",
|
|
weight: "Number",
|
|
eyeColor: "String",
|
|
specialCharacteristics: "String",
|
|
},
|
|
|
|
/**
|
|
* Standard check modifiers
|
|
*/
|
|
checkModifiers: {
|
|
routine: 8,
|
|
veryEasy: 4,
|
|
easy: 2,
|
|
normal: 0,
|
|
difficult: -2,
|
|
veryDifficult: -4,
|
|
extremelyDifficult: -8,
|
|
},
|
|
};
|