Merge branch 'master' into 066-switch-to-foundry-vtt-types
This commit is contained in:
commit
0a911cf196
25 changed files with 460 additions and 441 deletions
|
@ -2,6 +2,9 @@
|
||||||
"DS4.UserInteractionAddItem": "Neu",
|
"DS4.UserInteractionAddItem": "Neu",
|
||||||
"DS4.UserInteractionEditItem": "Bearbeiten",
|
"DS4.UserInteractionEditItem": "Bearbeiten",
|
||||||
"DS4.UserInteractionDeleteItem": "Löschen",
|
"DS4.UserInteractionDeleteItem": "Löschen",
|
||||||
|
"DS4.UserInteractionAddEffect": "Neuer Effekt",
|
||||||
|
"DS4.UserInteractionEditEffect": "Effekt bearbeiten",
|
||||||
|
"DS4.UserInteractionDeleteEffect": "Effekt löschen",
|
||||||
"DS4.NotOwned": "Nicht besessen",
|
"DS4.NotOwned": "Nicht besessen",
|
||||||
"DS4.HeadingBiography": "Biografie",
|
"DS4.HeadingBiography": "Biografie",
|
||||||
"DS4.HeadingDetails": "Details",
|
"DS4.HeadingDetails": "Details",
|
||||||
|
@ -12,11 +15,11 @@
|
||||||
"DS4.HeadingSpells": "Zaubersprüche",
|
"DS4.HeadingSpells": "Zaubersprüche",
|
||||||
"DS4.HeadingDescription": "Beschreibung",
|
"DS4.HeadingDescription": "Beschreibung",
|
||||||
"DS4.HeadingSpecialCreatureAbilites": "Besondere Fähigkeiten",
|
"DS4.HeadingSpecialCreatureAbilites": "Besondere Fähigkeiten",
|
||||||
"DS4.AttackType": "Angriffs Typ",
|
"DS4.AttackType": "Angriffstyp",
|
||||||
"DS4.AttackTypeAbbr": "AT",
|
"DS4.AttackTypeAbbr": "AT",
|
||||||
"DS4.WeaponBonus": "Waffen Bonus",
|
"DS4.WeaponBonus": "Waffenbonus",
|
||||||
"DS4.WeaponBonusAbbr": "WB",
|
"DS4.WeaponBonusAbbr": "WB",
|
||||||
"DS4.OpponentDefense": "Gegner Abwehr",
|
"DS4.OpponentDefense": "Gegnerabwehr",
|
||||||
"DS4.OpponentDefenseAbbr": "GA",
|
"DS4.OpponentDefenseAbbr": "GA",
|
||||||
"DS4.AttackTypeMelee": "Schlagen",
|
"DS4.AttackTypeMelee": "Schlagen",
|
||||||
"DS4.AttackTypeRanged": "Schießen",
|
"DS4.AttackTypeRanged": "Schießen",
|
||||||
|
@ -61,9 +64,9 @@
|
||||||
"DS4.ItemTypeSpecialCreatureAbilityPlural": "Besondere Kreaturenfähigkeiten",
|
"DS4.ItemTypeSpecialCreatureAbilityPlural": "Besondere Kreaturenfähigkeiten",
|
||||||
"DS4.ArmorType": "Panzerungstyp",
|
"DS4.ArmorType": "Panzerungstyp",
|
||||||
"DS4.ArmorTypeAbbr": "PAT",
|
"DS4.ArmorTypeAbbr": "PAT",
|
||||||
"DS4.ArmorMaterialType": "Material Typ",
|
"DS4.ArmorMaterialType": "Materialtyp",
|
||||||
"DS4.ArmorMaterialTypeAbbr": "Mat.",
|
"DS4.ArmorMaterialTypeAbbr": "Mat.",
|
||||||
"DS4.ArmorValue": "Panzerungs Wert",
|
"DS4.ArmorValue": "Panzerungswert",
|
||||||
"DS4.ArmorValueAbbr": "PA",
|
"DS4.ArmorValueAbbr": "PA",
|
||||||
"DS4.ArmorTypeBody": "Körper",
|
"DS4.ArmorTypeBody": "Körper",
|
||||||
"DS4.ArmorTypeBodyAbbr": "Körper",
|
"DS4.ArmorTypeBodyAbbr": "Körper",
|
||||||
|
@ -125,7 +128,7 @@
|
||||||
"DS4.CombatValuesTargetedSpellcasting": "Zielzaubern",
|
"DS4.CombatValuesTargetedSpellcasting": "Zielzaubern",
|
||||||
"DS4.CharacterBaseInfoRace": "Volk",
|
"DS4.CharacterBaseInfoRace": "Volk",
|
||||||
"DS4.CharacterBaseInfoClass": "Klasse",
|
"DS4.CharacterBaseInfoClass": "Klasse",
|
||||||
"DS4.CharacterBaseInfoHeroClass": "Helden Klasse",
|
"DS4.CharacterBaseInfoHeroClass": "Heldenklasse",
|
||||||
"DS4.CharacterBaseInfoCulture": "Kultur",
|
"DS4.CharacterBaseInfoCulture": "Kultur",
|
||||||
"DS4.CharacterProgressionLevel": "Stufe",
|
"DS4.CharacterProgressionLevel": "Stufe",
|
||||||
"DS4.CharacterProgressionExperiencePoints": "Erfahrungspunkte",
|
"DS4.CharacterProgressionExperiencePoints": "Erfahrungspunkte",
|
||||||
|
@ -144,9 +147,9 @@
|
||||||
"DS4.CharacterProfileBirthday": "Geburtstag",
|
"DS4.CharacterProfileBirthday": "Geburtstag",
|
||||||
"DS4.CharacterProfileBirthplace": "Geburtsort",
|
"DS4.CharacterProfileBirthplace": "Geburtsort",
|
||||||
"DS4.CharacterProfileAge": "Alter",
|
"DS4.CharacterProfileAge": "Alter",
|
||||||
"DS4.CharacterProfileHeight": "Größe",
|
"DS4.CharacterProfileHeight": "Größe [cm]",
|
||||||
"DS4.CharacterProfileHairColor": "Haarfarbe",
|
"DS4.CharacterProfileHairColor": "Haarfarbe",
|
||||||
"DS4.CharacterProfileWeight": "Gewicht",
|
"DS4.CharacterProfileWeight": "Gewicht [kg]",
|
||||||
"DS4.CharacterProfileEyeColor": "Augenfarbe",
|
"DS4.CharacterProfileEyeColor": "Augenfarbe",
|
||||||
"DS4.CharacterProfileSpecialCharacteristics": "Besondere Eigenschaften",
|
"DS4.CharacterProfileSpecialCharacteristics": "Besondere Eigenschaften",
|
||||||
"DS4.CharacterCurrencyGold": "Gold",
|
"DS4.CharacterCurrencyGold": "Gold",
|
||||||
|
@ -193,7 +196,7 @@
|
||||||
"DS4.UnitCustom": "individuell",
|
"DS4.UnitCustom": "individuell",
|
||||||
"DS4.UnitCustomAbbr": " ",
|
"DS4.UnitCustomAbbr": " ",
|
||||||
"DS4.RollDialogDefaultTitle": "Proben-Optionen",
|
"DS4.RollDialogDefaultTitle": "Proben-Optionen",
|
||||||
"DS4.RollDialogOkButton": "Ok",
|
"DS4.RollDialogOkButton": "OK",
|
||||||
"DS4.RollDialogCancelButton": "Abbrechen",
|
"DS4.RollDialogCancelButton": "Abbrechen",
|
||||||
"DS4.ErrorUnexpectedHtmlType": "Typfehler: Erwartet wurde {exType}, tatsächlich erhalten wurde {realType}",
|
"DS4.ErrorUnexpectedHtmlType": "Typfehler: Erwartet wurde {exType}, tatsächlich erhalten wurde {realType}",
|
||||||
"DS4.RollDialogTargetLabel": "Probenwert",
|
"DS4.RollDialogTargetLabel": "Probenwert",
|
||||||
|
|
|
@ -2,6 +2,9 @@
|
||||||
"DS4.UserInteractionAddItem": "Add item",
|
"DS4.UserInteractionAddItem": "Add item",
|
||||||
"DS4.UserInteractionEditItem": "Edit item",
|
"DS4.UserInteractionEditItem": "Edit item",
|
||||||
"DS4.UserInteractionDeleteItem": "Delete item",
|
"DS4.UserInteractionDeleteItem": "Delete item",
|
||||||
|
"DS4.UserInteractionAddEffect": "Add Effect",
|
||||||
|
"DS4.UserInteractionEditEffect": "Edit Effect",
|
||||||
|
"DS4.UserInteractionDeleteEffect": "Delete Effect",
|
||||||
"DS4.NotOwned": "No owner",
|
"DS4.NotOwned": "No owner",
|
||||||
"DS4.HeadingBiography": "Biography",
|
"DS4.HeadingBiography": "Biography",
|
||||||
"DS4.HeadingDetails": "Details",
|
"DS4.HeadingDetails": "Details",
|
||||||
|
@ -144,9 +147,9 @@
|
||||||
"DS4.CharacterProfileBirthday": "Birthday",
|
"DS4.CharacterProfileBirthday": "Birthday",
|
||||||
"DS4.CharacterProfileBirthplace": "Birthplace",
|
"DS4.CharacterProfileBirthplace": "Birthplace",
|
||||||
"DS4.CharacterProfileAge": "Age",
|
"DS4.CharacterProfileAge": "Age",
|
||||||
"DS4.CharacterProfileHeight": "Height",
|
"DS4.CharacterProfileHeight": "Height [m]",
|
||||||
"DS4.CharacterProfileHairColor": "Hair Color",
|
"DS4.CharacterProfileHairColor": "Hair Color",
|
||||||
"DS4.CharacterProfileWeight": "Weight",
|
"DS4.CharacterProfileWeight": "Weight [kg]",
|
||||||
"DS4.CharacterProfileEyeColor": "Eye Color",
|
"DS4.CharacterProfileEyeColor": "Eye Color",
|
||||||
"DS4.CharacterProfileSpecialCharacteristics": "Special Characteristics",
|
"DS4.CharacterProfileSpecialCharacteristics": "Special Characteristics",
|
||||||
"DS4.CharacterCurrencyGold": "Gold",
|
"DS4.CharacterCurrencyGold": "Gold",
|
||||||
|
|
|
@ -9,205 +9,310 @@ export const DS4 = {
|
||||||
=============================================================================================`,
|
=============================================================================================`,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Define the set of acttack types that can be performed with weapon items
|
* A dictionary of dictionaries each mapping keys to localized strings
|
||||||
|
* resp. their localization keys.
|
||||||
|
* The localization is assumed to take place on each reload.
|
||||||
*/
|
*/
|
||||||
attackTypes: {
|
i18n: {
|
||||||
melee: "DS4.AttackTypeMelee",
|
/**
|
||||||
ranged: "DS4.AttackTypeRanged",
|
* Define the set of acttack types that can be performed with weapon items
|
||||||
meleeRanged: "DS4.AttackTypeMeleeRanged",
|
*/
|
||||||
|
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",
|
||||||
|
trinket: "DS4.ItemTypeTrinket",
|
||||||
|
equipment: "DS4.ItemTypeEquipment",
|
||||||
|
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 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",
|
||||||
|
},
|
||||||
|
|
||||||
|
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",
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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",
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 distance units
|
||||||
|
*/
|
||||||
|
temporalUnits: {
|
||||||
|
rounds: "DS4.UnitRounds",
|
||||||
|
minutes: "DS4.UnitMinutes",
|
||||||
|
hours: "DS4.UnitHours",
|
||||||
|
days: "DS4.UnitDays",
|
||||||
|
custom: "DS4.UnitCustom",
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Define abbreviations for available units
|
||||||
|
*/
|
||||||
|
temporalUnitsAbbr: {
|
||||||
|
rounds: "DS4.UnitRoundsAbbr",
|
||||||
|
minutes: "DS4.UnitMinutesAbbr",
|
||||||
|
hours: "DS4.UnitHoursAbbr",
|
||||||
|
days: "DS4.UnitDaysAbbr",
|
||||||
|
custom: "DS4.UnitCustomAbbr",
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Define localization strings for Chat Visibility
|
||||||
|
*/
|
||||||
|
chatVisibilities: {
|
||||||
|
roll: "DS4.ChatVisibilityRoll",
|
||||||
|
gmroll: "DS4.ChatVisibilityGmRoll",
|
||||||
|
blindroll: "DS4.ChatVisibilityBlindRoll",
|
||||||
|
selfroll: "DS4.ChatVisibilitySelfRoll",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Define the file paths to icon images
|
* A dictionary of dictionaries mapping keys to icon file paths.
|
||||||
*/
|
*/
|
||||||
attackTypesIcons: {
|
icons: {
|
||||||
melee: "systems/ds4/assets/icons/official/combat-values/melee-attack.png",
|
/**
|
||||||
meleeRanged: "systems/ds4/assets/icons/official/combat-values/melee-ranged-attack.png",
|
* Define the file paths to icon images
|
||||||
ranged: "systems/ds4/assets/icons/official/combat-values/ranged-attack.png",
|
*/
|
||||||
},
|
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
|
* Define the file paths to icon images
|
||||||
*/
|
*/
|
||||||
spellTypesIcons: {
|
spellTypes: {
|
||||||
spellcasting: "systems/ds4/assets/icons/official/combat-values/spellcasting.png",
|
spellcasting: "systems/ds4/assets/icons/official/combat-values/spellcasting.png",
|
||||||
targetedSpellcasting: "systems/ds4/assets/icons/official/combat-values/targeted-spellcasting.png",
|
targetedSpellcasting: "systems/ds4/assets/icons/official/combat-values/targeted-spellcasting.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",
|
|
||||||
spell: "DS4.ItemTypeSpell",
|
|
||||||
trinket: "DS4.ItemTypeTrinket",
|
|
||||||
equipment: "DS4.ItemTypeEquipment",
|
|
||||||
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 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",
|
|
||||||
},
|
|
||||||
|
|
||||||
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",
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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",
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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",
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -225,98 +330,4 @@ export const DS4 = {
|
||||||
eyeColor: "String",
|
eyeColor: "String",
|
||||||
specialCharacteristics: "String",
|
specialCharacteristics: "String",
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
|
||||||
* 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 distance units
|
|
||||||
*/
|
|
||||||
temporalUnits: {
|
|
||||||
rounds: "DS4.UnitRounds",
|
|
||||||
minutes: "DS4.UnitMinutes",
|
|
||||||
hours: "DS4.UnitHours",
|
|
||||||
days: "DS4.UnitDays",
|
|
||||||
custom: "DS4.UnitCustom",
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Define abbreviations for available units
|
|
||||||
*/
|
|
||||||
temporalUnitsAbbr: {
|
|
||||||
rounds: "DS4.UnitRoundsAbbr",
|
|
||||||
minutes: "DS4.UnitMinutesAbbr",
|
|
||||||
hours: "DS4.UnitHoursAbbr",
|
|
||||||
days: "DS4.UnitDaysAbbr",
|
|
||||||
custom: "DS4.UnitCustomAbbr",
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Define localization strings for Chat Visibility
|
|
||||||
*/
|
|
||||||
chatVisibilities: {
|
|
||||||
roll: "DS4.ChatVisibilityRoll",
|
|
||||||
gmroll: "DS4.ChatVisibilityGmRoll",
|
|
||||||
blindroll: "DS4.ChatVisibilityBlindRoll",
|
|
||||||
selfroll: "DS4.ChatVisibilitySelfRoll",
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -29,8 +29,8 @@ Hooks.once("init", async function () {
|
||||||
CONFIG.Item.entityClass = DS4Item as typeof Item;
|
CONFIG.Item.entityClass = DS4Item as typeof Item;
|
||||||
|
|
||||||
// Define localized type labels
|
// Define localized type labels
|
||||||
CONFIG.Actor.typeLabels = DS4.actorTypes;
|
CONFIG.Actor.typeLabels = DS4.i18n.actorTypes;
|
||||||
CONFIG.Item.typeLabels = DS4.itemTypes;
|
CONFIG.Item.typeLabels = DS4.i18n.itemTypes;
|
||||||
|
|
||||||
// Configure Dice
|
// Configure Dice
|
||||||
CONFIG.Dice.types = [Die, DS4Check];
|
CONFIG.Dice.types = [Die, DS4Check];
|
||||||
|
@ -84,46 +84,16 @@ async function registerHandlebarsPartials() {
|
||||||
* This function runs after game data has been requested and loaded from the servers, so entities exist
|
* This function runs after game data has been requested and loaded from the servers, so entities exist
|
||||||
*/
|
*/
|
||||||
Hooks.once("setup", function () {
|
Hooks.once("setup", function () {
|
||||||
// Localize CONFIG objects once up-front
|
|
||||||
const toLocalize = [
|
|
||||||
"attackTypes",
|
|
||||||
"itemAvailabilities",
|
|
||||||
"itemTypes",
|
|
||||||
"armorTypes",
|
|
||||||
"armorTypesAbbr",
|
|
||||||
"armorMaterialTypes",
|
|
||||||
"armorMaterialTypesAbbr",
|
|
||||||
"armorMaterialTypes",
|
|
||||||
"spellTypes",
|
|
||||||
"spellCategories",
|
|
||||||
"attributes",
|
|
||||||
"traits",
|
|
||||||
"combatValues",
|
|
||||||
"characterBaseInfo",
|
|
||||||
"characterProgression",
|
|
||||||
"characterLanguage",
|
|
||||||
"characterProfile",
|
|
||||||
"characterCurrency",
|
|
||||||
"creatureTypes",
|
|
||||||
"creatureSizeCategories",
|
|
||||||
"creatureBaseInfo",
|
|
||||||
"temporalUnits",
|
|
||||||
"temporalUnitsAbbr",
|
|
||||||
"distanceUnits",
|
|
||||||
"distanceUnitsAbbr",
|
|
||||||
"chatVisibilities",
|
|
||||||
];
|
|
||||||
|
|
||||||
// Exclude some from sorting where the default order matters
|
// Exclude some from sorting where the default order matters
|
||||||
const noSort = ["attributes", "traits", "combatValues", "creatureSizeCategories"];
|
const noSort = ["attributes", "traits", "combatValues", "creatureSizeCategories"];
|
||||||
|
|
||||||
// Localize and sort CONFIG objects
|
// Localize and sort CONFIG objects
|
||||||
for (const o of toLocalize) {
|
for (const o of Object.keys(CONFIG.DS4.i18n)) {
|
||||||
const localized = Object.entries(CONFIG.DS4[o]).map((e) => {
|
const localized = Object.entries(CONFIG.DS4.i18n[o]).map((e) => {
|
||||||
return [e[0], game.i18n.localize(e[1] as string)];
|
return [e[0], game.i18n.localize(e[1] as string)];
|
||||||
});
|
});
|
||||||
if (!noSort.includes(o)) localized.sort((a, b) => a[1].localeCompare(b[1]));
|
if (!noSort.includes(o)) localized.sort((a, b) => a[1].localeCompare(b[1]));
|
||||||
CONFIG.DS4[o] = localized.reduce((obj, e) => {
|
CONFIG.DS4.i18n[o] = localized.reduce((obj, e) => {
|
||||||
obj[e[0]] = e[1];
|
obj[e[0]] = e[1];
|
||||||
return obj;
|
return obj;
|
||||||
}, {});
|
}, {});
|
||||||
|
@ -133,3 +103,21 @@ Hooks.once("setup", function () {
|
||||||
Hooks.once("ready", function () {
|
Hooks.once("ready", function () {
|
||||||
migration.migrate();
|
migration.migrate();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Select the text of input elements in given sheets via onfocus listener.
|
||||||
|
* The hook names are of the form "render"+sheet_superclassname and are called within
|
||||||
|
* the render() method of the foundry Application class.
|
||||||
|
* Note: The render hooks of all classes in the class hierarchy are called,
|
||||||
|
* so e.g. for a Dialog, both "renderDialog" and "renderApplication" are called
|
||||||
|
* (in this order).
|
||||||
|
*/
|
||||||
|
["renderApplication", "renderActorSheet", "renderItemSheet"].forEach((hookName: string) => {
|
||||||
|
Hooks.on(hookName, (app: Dialog, html: JQueryStatic, data: any) => {
|
||||||
|
$(html)
|
||||||
|
.find("input")
|
||||||
|
.on("focus", (ev: JQuery.FocusEvent<HTMLInputElement>) => {
|
||||||
|
ev.currentTarget.select();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { ModifiableData } from "../common/common-data";
|
import { ModifiableData } from "../common/common-data";
|
||||||
import { DS4 } from "../config";
|
import { DS4 } from "../config";
|
||||||
|
|
||||||
export type ItemType = keyof typeof DS4.itemTypes;
|
export type ItemType = keyof typeof DS4.i18n.itemTypes;
|
||||||
|
|
||||||
export type DS4ItemData = Item.Data<DS4ItemDataType>;
|
export type DS4ItemData = Item.Data<DS4ItemDataType>;
|
||||||
|
|
||||||
|
|
|
@ -4,10 +4,10 @@ import { DS4 } from "../config";
|
||||||
* Provides default values for all arguments the `CheckFactory` expects.
|
* Provides default values for all arguments the `CheckFactory` expects.
|
||||||
*/
|
*/
|
||||||
class DefaultCheckOptions implements DS4CheckFactoryOptions {
|
class DefaultCheckOptions implements DS4CheckFactoryOptions {
|
||||||
maxCritSuccess = 1;
|
readonly maxCritSuccess = 1;
|
||||||
minCritFailure = 20;
|
readonly minCritFailure = 20;
|
||||||
useSlayingDice = false;
|
readonly useSlayingDice = false;
|
||||||
rollMode: DS4RollMode = "roll";
|
readonly rollMode: DS4RollMode = "roll";
|
||||||
|
|
||||||
mergeWith(other: Partial<DS4CheckFactoryOptions>): DS4CheckFactoryOptions {
|
mergeWith(other: Partial<DS4CheckFactoryOptions>): DS4CheckFactoryOptions {
|
||||||
return { ...this, ...other } as DS4CheckFactoryOptions;
|
return { ...this, ...other } as DS4CheckFactoryOptions;
|
||||||
|
@ -28,7 +28,7 @@ class CheckFactory {
|
||||||
private gmModifier: number,
|
private gmModifier: number,
|
||||||
passedOptions: Partial<DS4CheckFactoryOptions> = {},
|
passedOptions: Partial<DS4CheckFactoryOptions> = {},
|
||||||
) {
|
) {
|
||||||
this.checkOptions = new DefaultCheckOptions().mergeWith(passedOptions);
|
this.checkOptions = defaultCheckOptions.mergeWith(passedOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
private checkOptions: DS4CheckFactoryOptions;
|
private checkOptions: DS4CheckFactoryOptions;
|
||||||
|
@ -45,7 +45,6 @@ class CheckFactory {
|
||||||
const roll = new rollCls(formula);
|
const roll = new rollCls(formula);
|
||||||
|
|
||||||
const rollModeTemplate = this.checkOptions.rollMode;
|
const rollModeTemplate = this.checkOptions.rollMode;
|
||||||
console.log(rollModeTemplate);
|
|
||||||
return roll.toMessage({}, { rollMode: rollModeTemplate, create: true });
|
return roll.toMessage({}, { rollMode: rollModeTemplate, create: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,8 +75,8 @@ class CheckFactory {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Asks the user for all unknown/necessary information and passes them on to perform a roll.
|
* Asks the user for all unknown/necessary information and passes them on to perform a roll.
|
||||||
* @param targetValue {number} The Check Target Number ("CTN")
|
* @param targetValue The Check Target Number ("CTN")
|
||||||
* @param options {Partial<DS4CheckFactoryOptions>} Options changing the behaviour of the roll and message.
|
* @param options Options changing the behaviour of the roll and message.
|
||||||
*/
|
*/
|
||||||
export async function createCheckRoll(
|
export async function createCheckRoll(
|
||||||
targetValue: number,
|
targetValue: number,
|
||||||
|
@ -86,6 +85,8 @@ export async function createCheckRoll(
|
||||||
// Ask for additional required data;
|
// Ask for additional required data;
|
||||||
const gmModifierData = await askGmModifier(targetValue, options);
|
const gmModifierData = await askGmModifier(targetValue, options);
|
||||||
|
|
||||||
|
const newTargetValue = gmModifierData.checkTargetValue ?? targetValue;
|
||||||
|
const gmModifier = gmModifierData.gmModifier ?? 0;
|
||||||
const newOptions: Partial<DS4CheckFactoryOptions> = {
|
const newOptions: Partial<DS4CheckFactoryOptions> = {
|
||||||
maxCritSuccess: gmModifierData.maxCritSuccess ?? options.maxCritSuccess ?? undefined,
|
maxCritSuccess: gmModifierData.maxCritSuccess ?? options.maxCritSuccess ?? undefined,
|
||||||
minCritFailure: gmModifierData.minCritFailure ?? options.minCritFailure ?? undefined,
|
minCritFailure: gmModifierData.minCritFailure ?? options.minCritFailure ?? undefined,
|
||||||
|
@ -94,7 +95,7 @@ export async function createCheckRoll(
|
||||||
};
|
};
|
||||||
|
|
||||||
// Create Factory
|
// Create Factory
|
||||||
const cf = new CheckFactory(gmModifierData.checkTargetValue, gmModifierData.gmModifier, newOptions);
|
const cf = new CheckFactory(newTargetValue, gmModifier, newOptions);
|
||||||
|
|
||||||
// Possibly additional processing
|
// Possibly additional processing
|
||||||
|
|
||||||
|
@ -108,13 +109,13 @@ export async function createCheckRoll(
|
||||||
* @notes
|
* @notes
|
||||||
* At the moment, this asks for more data than it will do after some iterations.
|
* At the moment, this asks for more data than it will do after some iterations.
|
||||||
*
|
*
|
||||||
* @returns {Promise<IntermediateGmModifierData>} The data given by the user.
|
* @returns The data given by the user.
|
||||||
*/
|
*/
|
||||||
async function askGmModifier(
|
async function askGmModifier(
|
||||||
targetValue: number,
|
targetValue: number,
|
||||||
options: Partial<DS4CheckFactoryOptions> = {},
|
options: Partial<DS4CheckFactoryOptions> = {},
|
||||||
{ template, title }: { template?: string; title?: string } = {},
|
{ template, title }: { template?: string; title?: string } = {},
|
||||||
): Promise<IntermediateGmModifierData> {
|
): Promise<Partial<IntermediateGmModifierData>> {
|
||||||
// Render model interface and return value
|
// Render model interface and return value
|
||||||
const usedTemplate = template ?? "systems/ds4/templates/roll/roll-options.hbs";
|
const usedTemplate = template ?? "systems/ds4/templates/roll/roll-options.hbs";
|
||||||
const usedTitle = title ?? game.i18n.localize("DS4.RollDialogDefaultTitle");
|
const usedTitle = title ?? game.i18n.localize("DS4.RollDialogDefaultTitle");
|
||||||
|
@ -124,7 +125,7 @@ async function askGmModifier(
|
||||||
checkTargetValue: targetValue,
|
checkTargetValue: targetValue,
|
||||||
maxCritSuccess: options.maxCritSuccess ?? defaultCheckOptions.maxCritSuccess,
|
maxCritSuccess: options.maxCritSuccess ?? defaultCheckOptions.maxCritSuccess,
|
||||||
minCritFailure: options.minCritFailure ?? defaultCheckOptions.minCritFailure,
|
minCritFailure: options.minCritFailure ?? defaultCheckOptions.minCritFailure,
|
||||||
rollModes: rollModes,
|
rollMode: options.rollMode,
|
||||||
config: DS4,
|
config: DS4,
|
||||||
};
|
};
|
||||||
const renderedHtml = await renderTemplate(usedTemplate, templateData);
|
const renderedHtml = await renderTemplate(usedTemplate, templateData);
|
||||||
|
@ -164,22 +165,20 @@ async function askGmModifier(
|
||||||
}).render(true);
|
}).render(true);
|
||||||
});
|
});
|
||||||
const dialogForm = await dialogPromise;
|
const dialogForm = await dialogPromise;
|
||||||
return parseDialogFormData(dialogForm, targetValue);
|
return parseDialogFormData(dialogForm);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extracts Dialog data from the returned DOM element.
|
* Extracts Dialog data from the returned DOM element.
|
||||||
* @param formData {HTMLFormElement} The filed dialog
|
* @param formData The filed dialog
|
||||||
* @param targetValue {number} The previously known target value (slated for removal once data automation is available)
|
|
||||||
*/
|
*/
|
||||||
function parseDialogFormData(formData: HTMLFormElement, targetValue: number): IntermediateGmModifierData {
|
function parseDialogFormData(formData: HTMLFormElement): Partial<IntermediateGmModifierData> {
|
||||||
return {
|
return {
|
||||||
checkTargetValue: parseInt(formData["ctv"]?.value) ?? targetValue,
|
checkTargetValue: parseInt(formData["ctv"]?.value),
|
||||||
gmModifier: parseInt(formData["gmmod"]?.value) ?? 0,
|
gmModifier: parseInt(formData["gmmod"]?.value),
|
||||||
maxCritSuccess: parseInt(formData["maxcoup"]?.value) ?? defaultCheckOptions.maxCritSuccess,
|
maxCritSuccess: parseInt(formData["maxcoup"]?.value),
|
||||||
minCritFailure: parseInt(formData["minfumble"]?.value) ?? defaultCheckOptions.minCritFailure,
|
minCritFailure: parseInt(formData["minfumble"]?.value),
|
||||||
useSlayingDice: false,
|
rollMode: formData["visibility"]?.value,
|
||||||
rollMode: formData["visibility"]?.value ?? defaultCheckOptions.rollMode,
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,20 +13,20 @@
|
||||||
<div class="flexrow basic-properties">
|
<div class="flexrow basic-properties">
|
||||||
<div class="basic-property">
|
<div class="basic-property">
|
||||||
<label class="basic-property-label"
|
<label class="basic-property-label"
|
||||||
for="data.baseInfo.race">{{config.characterBaseInfo.race}}</label>
|
for="data.baseInfo.race">{{config.i18n.characterBaseInfo.race}}</label>
|
||||||
<input type="text" name="data.baseInfo.race" id="data.baseInfo.race" value="{{data.baseInfo.race}}"
|
<input type="text" name="data.baseInfo.race" id="data.baseInfo.race" value="{{data.baseInfo.race}}"
|
||||||
data-dtype="String" />
|
data-dtype="String" />
|
||||||
</div>
|
</div>
|
||||||
<div class="basic-property">
|
<div class="basic-property">
|
||||||
<label class="basic-property-label"
|
<label class="basic-property-label"
|
||||||
for="data.baseInfo.culture">{{config.characterBaseInfo.culture}}</label>
|
for="data.baseInfo.culture">{{config.i18n.characterBaseInfo.culture}}</label>
|
||||||
<input id="data.baseInfo.culture" type="text" name="data.baseInfo.culture"
|
<input id="data.baseInfo.culture" type="text" name="data.baseInfo.culture"
|
||||||
value="{{data.baseInfo.culture}}"
|
value="{{data.baseInfo.culture}}"
|
||||||
data-dtype="String" />
|
data-dtype="String" />
|
||||||
</div>
|
</div>
|
||||||
<div class="basic-property flex125">
|
<div class="basic-property flex125">
|
||||||
<label class="basic-property-label"
|
<label class="basic-property-label"
|
||||||
for="data.progression.progressPoints.used">{{config.characterProgression.progressPoints}}</label>
|
for="data.progression.progressPoints.used">{{config.i18n.characterProgression.progressPoints}}</label>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<input id="data.progression.progressPoints.used" type="number"
|
<input id="data.progression.progressPoints.used" type="number"
|
||||||
name="data.progression.progressPoints.used"
|
name="data.progression.progressPoints.used"
|
||||||
|
@ -43,7 +43,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="basic-property flex125">
|
<div class="basic-property flex125">
|
||||||
<label class="basic-property-label"
|
<label class="basic-property-label"
|
||||||
for="data.progression.talentPoints.used">{{config.characterProgression.talentPoints}}</label>
|
for="data.progression.talentPoints.used">{{config.i18n.characterProgression.talentPoints}}</label>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<input type="number" name="data.progression.talentPoints.used"
|
<input type="number" name="data.progression.talentPoints.used"
|
||||||
id="data.progression.talentPoints.used"
|
id="data.progression.talentPoints.used"
|
||||||
|
@ -56,13 +56,13 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="basic-property">
|
<div class="basic-property">
|
||||||
<label class="basic-property-label"
|
<label class="basic-property-label"
|
||||||
for="data.baseInfo.class">{{config.characterBaseInfo.class}}</label>
|
for="data.baseInfo.class">{{config.i18n.characterBaseInfo.class}}</label>
|
||||||
<input type="text" id="data.baseInfo.class" name="data.baseInfo.class"
|
<input type="text" id="data.baseInfo.class" name="data.baseInfo.class"
|
||||||
value="{{data.baseInfo.class}}" data-dtype="String" />
|
value="{{data.baseInfo.class}}" data-dtype="String" />
|
||||||
</div>
|
</div>
|
||||||
<div class="basic-property">
|
<div class="basic-property">
|
||||||
<label class="basic-property-label"
|
<label class="basic-property-label"
|
||||||
for="data.baseInfo.heroClass">{{config.characterBaseInfo.heroClass}}</label>
|
for="data.baseInfo.heroClass">{{config.i18n.characterBaseInfo.heroClass}}</label>
|
||||||
<input type="text" id="data.baseInfo.heroClass" name="data.baseInfo.heroClass"
|
<input type="text" id="data.baseInfo.heroClass" name="data.baseInfo.heroClass"
|
||||||
value="{{data.baseInfo.heroClass}}"
|
value="{{data.baseInfo.heroClass}}"
|
||||||
data-dtype="String" />
|
data-dtype="String" />
|
||||||
|
@ -84,24 +84,28 @@
|
||||||
<a class="item" data-tab="biography">{{localize 'DS4.HeadingBiography'}}</a>
|
<a class="item" data-tab="biography">{{localize 'DS4.HeadingBiography'}}</a>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
{{!-- Sheet Body --}}
|
<!-- beautify ignore:start -->
|
||||||
<section class="sheet-body">
|
<!-- prettier-ignore-start -->
|
||||||
{{!-- Items Tab --}}
|
{{!-- Sheet Body (remove indentation to avoid annoying Handlebars auto-indent) --}}
|
||||||
{{> systems/ds4/templates/actor/partials/character-inventory.hbs}}
|
<section class="sheet-body">
|
||||||
|
{{!-- Items Tab --}}
|
||||||
|
{{> systems/ds4/templates/actor/partials/character-inventory.hbs}}
|
||||||
|
|
||||||
{{!-- Spells Tab --}}
|
{{!-- Spells Tab --}}
|
||||||
{{> systems/ds4/templates/actor/partials/spells-overview.hbs}}
|
{{> systems/ds4/templates/actor/partials/spells-overview.hbs}}
|
||||||
|
|
||||||
{{!-- Talents Tab --}}
|
{{!-- Talents Tab --}}
|
||||||
{{> systems/ds4/templates/actor/partials/talents-abilities-overview.hbs}}
|
{{> systems/ds4/templates/actor/partials/talents-abilities-overview.hbs}}
|
||||||
|
|
||||||
{{! Profile Tab --}}
|
{{! Profile Tab --}}
|
||||||
{{> systems/ds4/templates/actor/partials/profile.hbs}}
|
{{> systems/ds4/templates/actor/partials/profile.hbs}}
|
||||||
|
|
||||||
{{!-- Biography Tab --}}
|
{{!-- Biography Tab --}}
|
||||||
<div class="tab biography" data-group="primary" data-tab="biography">
|
<div class="tab biography" data-group="primary" data-tab="biography">
|
||||||
{{editor content=data.profile.biography target="data.profile.biography" button=true owner=owner
|
{{editor content=data.profile.biography target="data.profile.biography" button=true owner=owner
|
||||||
editable=editable}}
|
editable=editable}}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
<!-- prettier-ignore-end -->
|
||||||
|
<!-- beautify ignore:end -->
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -6,10 +6,10 @@
|
||||||
<h1 class="charname"><input name="name" type="text" value="{{actor.name}}" placeholder="Name" /></h1>
|
<h1 class="charname"><input name="name" type="text" value="{{actor.name}}" placeholder="Name" /></h1>
|
||||||
<div class="flexrow basic-properties">
|
<div class="flexrow basic-properties">
|
||||||
<div class="basic-property">
|
<div class="basic-property">
|
||||||
<label>{{config.creatureBaseInfo.creatureType}}</label>
|
<label>{{config.i18n.creatureBaseInfo.creatureType}}</label>
|
||||||
<select name="data.baseInfo.creatureType" data-type="String">
|
<select name="data.baseInfo.creatureType" data-type="String">
|
||||||
{{#select data.baseInfo.creatureType}}
|
{{#select data.baseInfo.creatureType}}
|
||||||
{{#each config.creatureTypes as |value key|}}
|
{{#each config.i18n.creatureTypes as |value key|}}
|
||||||
<option value="{{key}}">{{value}}</option>
|
<option value="{{key}}">{{value}}</option>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
|
@ -17,20 +17,20 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="basic-property">
|
<div class="basic-property">
|
||||||
<label class="basic-property-label"
|
<label class="basic-property-label"
|
||||||
for="data.baseInfo.loot">{{config.creatureBaseInfo.loot}}</label>
|
for="data.baseInfo.loot">{{config.i18n.creatureBaseInfo.loot}}</label>
|
||||||
<input type="text" name="data.baseInfo.loot" value="{{data.baseInfo.loot}}" data-dtype="String" />
|
<input type="text" name="data.baseInfo.loot" value="{{data.baseInfo.loot}}" data-dtype="String" />
|
||||||
</div>
|
</div>
|
||||||
<div class="basic-property">
|
<div class="basic-property">
|
||||||
<label class="basic-property-label"
|
<label class="basic-property-label"
|
||||||
for="data.baseInfo.foeFactor">{{config.creatureBaseInfo.foeFactor}}</label>
|
for="data.baseInfo.foeFactor">{{config.i18n.creatureBaseInfo.foeFactor}}</label>
|
||||||
<input type="text" name="data.baseInfo.foeFactor" value="{{data.baseInfo.foeFactor}}"
|
<input type="text" name="data.baseInfo.foeFactor" value="{{data.baseInfo.foeFactor}}"
|
||||||
data-dtype="Number" />
|
data-dtype="Number" />
|
||||||
</div>
|
</div>
|
||||||
<div class="basic-property">
|
<div class="basic-property">
|
||||||
<label>{{config.creatureBaseInfo.sizeCategory}}</label>
|
<label>{{config.i18n.creatureBaseInfo.sizeCategory}}</label>
|
||||||
<select name="data.baseInfo.sizeCategory" data-type="String">
|
<select name="data.baseInfo.sizeCategory" data-type="String">
|
||||||
{{#select data.baseInfo.sizeCategory}}
|
{{#select data.baseInfo.sizeCategory}}
|
||||||
{{#each config.creatureSizeCategories as |value key|}}
|
{{#each config.i18n.creatureSizeCategories as |value key|}}
|
||||||
<option value="{{key}}">{{value}}</option>
|
<option value="{{key}}">{{value}}</option>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="basic-property">
|
<div class="basic-property">
|
||||||
<label class="basic-property-label"
|
<label class="basic-property-label"
|
||||||
for="data.baseInfo.experiencePoints">{{config.creatureBaseInfo.experiencePoints}}</label>
|
for="data.baseInfo.experiencePoints">{{config.i18n.creatureBaseInfo.experiencePoints}}</label>
|
||||||
<input type="text" name="data.baseInfo.experiencePoints" value="{{data.baseInfo.experiencePoints}}"
|
<input type="text" name="data.baseInfo.experiencePoints" value="{{data.baseInfo.experiencePoints}}"
|
||||||
data-dtype="Number" />
|
data-dtype="Number" />
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -42,11 +42,11 @@
|
||||||
{{!-- ======================================================================== --}}
|
{{!-- ======================================================================== --}}
|
||||||
|
|
||||||
<div class="attributes-traits grid grid-3col">
|
<div class="attributes-traits grid grid-3col">
|
||||||
{{#each config.attributes as |attribute-label attribute-key|}}
|
{{#each config.i18n.attributes as |attribute-label attribute-key|}}
|
||||||
{{> attribute attribute-label=attribute-label attribute-key=attribute-key attribute-data=(lookup ../data.attributes
|
{{> attribute attribute-label=attribute-label attribute-key=attribute-key attribute-data=(lookup ../data.attributes
|
||||||
attribute-key)}}
|
attribute-key)}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
{{#each config.traits as |trait-label trait-key|}}
|
{{#each config.i18n.traits as |trait-label trait-key|}}
|
||||||
{{> trait trait-label=trait-label trait-key=trait-key trait-data=(lookup ../data.traits trait-key)}}
|
{{> trait trait-label=trait-label trait-key=trait-key trait-data=(lookup ../data.traits trait-key)}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -4,13 +4,13 @@
|
||||||
<h4 class="items-list-title">{{localize 'DS4.CharacterCurrency'}}</h4>
|
<h4 class="items-list-title">{{localize 'DS4.CharacterCurrency'}}</h4>
|
||||||
<ol class="items-list">
|
<ol class="items-list">
|
||||||
<li class="item flexrow item-header">
|
<li class="item flexrow item-header">
|
||||||
<label for="data.currency.gold" class="flex05">{{config.characterCurrency.gold}}</label>
|
<label for="data.currency.gold" class="flex05">{{config.i18n.characterCurrency.gold}}</label>
|
||||||
<input class="flex3 item-num-val item-change" type="number" min="0" step="1" name="data.currency.gold"
|
<input class="flex3 item-num-val item-change" type="number" min="0" step="1" name="data.currency.gold"
|
||||||
id="data.currency.gold" value="{{data.currency.gold}}" data-dtype="Number" />
|
id="data.currency.gold" value="{{data.currency.gold}}" data-dtype="Number" />
|
||||||
<label for="data.currency.silver" class="flex05">{{config.characterCurrency.silver}}</label>
|
<label for="data.currency.silver" class="flex05">{{config.i18n.characterCurrency.silver}}</label>
|
||||||
<input class="flex3 item-num-val item-change" type="number" min="0" step="1" name="data.currency.silver"
|
<input class="flex3 item-num-val item-change" type="number" min="0" step="1" name="data.currency.silver"
|
||||||
id="data.currency.silver" value="{{data.currency.silver}}" data-dtype="Number" />
|
id="data.currency.silver" value="{{data.currency.silver}}" data-dtype="Number" />
|
||||||
<label for="data.currency.copper" class="flex05">{{config.characterCurrency.copper}}</label>
|
<label for="data.currency.copper" class="flex05">{{config.i18n.characterCurrency.copper}}</label>
|
||||||
<input class="flex3 item-num-val item-change" type="number" min="0" step="1" name="data.currency.copper"
|
<input class="flex3 item-num-val item-change" type="number" min="0" step="1" name="data.currency.copper"
|
||||||
id="data.currency.copper" value="{{data.currency.copper}}" data-dtype="Number" />
|
id="data.currency.copper" value="{{data.currency.copper}}" data-dtype="Number" />
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<div class="progression flexrow">
|
<div class="progression flexrow">
|
||||||
<div class="progression-entry">
|
<div class="progression-entry">
|
||||||
<h2 class="progression-label"><label for="data.progression.level">{{config.characterProgression.level}}</label>
|
<h2 class="progression-label"><label for="data.progression.level">{{config.i18n.characterProgression.level}}</label>
|
||||||
</h2>
|
</h2>
|
||||||
<label for="data.progression.level" class="hidden">Progression Level</label>
|
<label for="data.progression.level" class="hidden">Progression Level</label>
|
||||||
<input class="progression-value" type="number" name="data.progression.level" id="data.progression.level" value="{{data.progression.level}}"
|
<input class="progression-value" type="number" name="data.progression.level" id="data.progression.level" value="{{data.progression.level}}"
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="progression-entry">
|
<div class="progression-entry">
|
||||||
<h2 class="progression-label"><label
|
<h2 class="progression-label"><label
|
||||||
for="data.progression.experiencePoints">{{config.characterProgression.experiencePoints}}</label>
|
for="data.progression.experiencePoints">{{config.i18n.characterProgression.experiencePoints}}</label>
|
||||||
</h2>
|
</h2>
|
||||||
<label for="data.progression.experiencePoints" class="hidden">Experience Points</label>
|
<label for="data.progression.experiencePoints" class="hidden">Experience Points</label>
|
||||||
<input class="progression-value" type="number" name="data.progression.experiencePoints" id="data.progression.experiencePoints"
|
<input class="progression-value" type="number" name="data.progression.experiencePoints" id="data.progression.experiencePoints"
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
{{!-- ======================================================================== --}}
|
{{!-- ======================================================================== --}}
|
||||||
|
|
||||||
<div class="combat-values flexrow flex-between">
|
<div class="combat-values flexrow flex-between">
|
||||||
{{#each config.combatValues as |combat-value-label combat-value-key|}}
|
{{#each config.i18n.combatValues as |combat-value-label combat-value-key|}}
|
||||||
{{> combat-value combat-value-key=combat-value-key combat-value-data=(lookup ../data.combatValues
|
{{> combat-value combat-value-key=combat-value-key combat-value-data=(lookup ../data.combatValues
|
||||||
combat-value-key)}}
|
combat-value-key)}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
|
|
@ -15,9 +15,8 @@
|
||||||
{{#*inline "ifHasItemOfType"}}
|
{{#*inline "ifHasItemOfType"}}
|
||||||
{{#if (and (ne itemsArray undefined) (gt itemsArray.length 0))}}
|
{{#if (and (ne itemsArray undefined) (gt itemsArray.length 0))}}
|
||||||
{{> @partial-block}}
|
{{> @partial-block}}
|
||||||
{{else}}
|
|
||||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType=dataType }}
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType=dataType }}
|
||||||
{{/inline}}
|
{{/inline}}
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,8 +47,8 @@
|
||||||
{{> @partial-block }}
|
{{> @partial-block }}
|
||||||
{{!-- description --}}
|
{{!-- description --}}
|
||||||
<div class="flex4">{{localize 'DS4.Description'}}</div>
|
<div class="flex4">{{localize 'DS4.Description'}}</div>
|
||||||
{{!-- add button --}}
|
{{!-- control buttons placeholder --}}
|
||||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType=dataType }}
|
<div></div>
|
||||||
</li>
|
</li>
|
||||||
{{/inline}}
|
{{/inline}}
|
||||||
|
|
||||||
|
@ -110,8 +109,8 @@
|
||||||
{{#each itemsByType.weapon as |item id|}}
|
{{#each itemsByType.weapon as |item id|}}
|
||||||
{{#> itemListEntry item=item}}
|
{{#> itemListEntry item=item}}
|
||||||
<div class="flex05 item-image">
|
<div class="flex05 item-image">
|
||||||
<img src="{{lookup ../../config.attackTypesIcons item.data.data.attackType}}"
|
<img src="{{lookup ../../config.icons.attackTypes item.data.data.attackType}}"
|
||||||
title="{{lookup ../../config.attackTypes item.data.data.attackType}}" width="24" height="24" />
|
title="{{lookup ../../config.i18n.attackTypes item.data.data.attackType}}" width="24" height="24" />
|
||||||
</div>
|
</div>
|
||||||
<div class="flex05 item-num-val">{{ item.data.data.weaponBonus}}</div>
|
<div class="flex05 item-num-val">{{ item.data.data.weaponBonus}}</div>
|
||||||
<div class="flex05 item-num-val">{{ item.data.data.opponentDefense}}</div>
|
<div class="flex05 item-num-val">{{ item.data.data.opponentDefense}}</div>
|
||||||
|
@ -135,11 +134,11 @@
|
||||||
{{/itemListHeader}}
|
{{/itemListHeader}}
|
||||||
{{#each itemsByType.armor as |item id|}}
|
{{#each itemsByType.armor as |item id|}}
|
||||||
{{#> itemListEntry item=item }}
|
{{#> itemListEntry item=item }}
|
||||||
<div title="{{lookup ../../config.armorMaterialTypes item.data.data.armorMaterialType}}">
|
<div title="{{lookup ../../config.i18n.armorMaterialTypes item.data.data.armorMaterialType}}">
|
||||||
{{lookup ../../config.armorMaterialTypesAbbr item.data.data.armorMaterialType}}
|
{{lookup ../../config.i18n.armorMaterialTypesAbbr item.data.data.armorMaterialType}}
|
||||||
</div>
|
</div>
|
||||||
<div title="{{lookup ../../config.armorTypes item.data.data.armorType}}">
|
<div title="{{lookup ../../config.i18n.armorTypes item.data.data.armorType}}">
|
||||||
{{lookup ../../config.armorTypesAbbr item.data.data.armorType}}
|
{{lookup ../../config.i18n.armorTypesAbbr item.data.data.armorType}}
|
||||||
</div>
|
</div>
|
||||||
<div class="flex05 item-num-val">{{ item.data.data.armorValue}}</div>
|
<div class="flex05 item-num-val">{{ item.data.data.armorValue}}</div>
|
||||||
{{/itemListEntry}}
|
{{/itemListEntry}}
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
!-- The current item is defined by the data-item-id HTML property of the parent li element.
|
!-- The current item is defined by the data-item-id HTML property of the parent li element.
|
||||||
--}}
|
--}}
|
||||||
<div class="item-controls">
|
<div class="item-controls">
|
||||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
<a class="item-control item-edit" title="{{localize 'DS4.UserInteractionEditItem'}}"><i class="fas fa-edit"></i></a>
|
||||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
<a class="item-control item-delete" title="{{localize 'DS4.UserInteractionDeleteItem'}}"><i class="fas fa-trash"></i></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,15 +1,21 @@
|
||||||
<div class="tab profile" data-group="primary" data-tab="profile">
|
<div class="tab profile" data-group="primary" data-tab="profile">
|
||||||
<div class="grid grid-2col">
|
<div class="grid grid-2col">
|
||||||
{{#each data.profile as |profile-data-value profile-data-key|}}
|
{{#each data.profile as |profile-data-value profile-data-key|}}
|
||||||
{{#if (ne profile-data-key 'biography')}}
|
{{#if (and (ne profile-data-key 'biography') (ne profile-data-key 'specialCharacteristics'))}}
|
||||||
<div class="profile-entry">
|
<div class="profile-entry">
|
||||||
<label for="data.profile.{{profile-data-key}}">
|
<label for="data.profile.{{profile-data-key}}">
|
||||||
{{lookup ../config.characterProfile profile-data-key}}
|
{{lookup ../config.i18n.characterProfile profile-data-key}}
|
||||||
</label>
|
</label>
|
||||||
<input type="text" name="data.profile.{{profile-data-key}}" value="{{profile-data-value}}"
|
<input type="text" name="data.profile.{{profile-data-key}}" value="{{profile-data-value}}"
|
||||||
data-dtype="{{lookup ../config/characterProfileDTypes profile-data-key}}" />
|
data-dtype="{{lookup ../config.i18n.characterProfileDTypes profile-data-key}}" />
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
<div>
|
||||||
|
<label for="data.profile.specialCharacteristics">
|
||||||
|
{{lookup config.i18n.characterProfile 'specialCharacteristics'}}
|
||||||
|
</label>
|
||||||
|
<textarea name="data.profile.specialCharacteristics" data-dtype="String" rows="4">{{data.profile.specialCharacteristics}}</textarea>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -42,8 +42,8 @@
|
||||||
<div class="flex1 item-name">{{localize 'DS4.ItemName'}}</div>
|
<div class="flex1 item-name">{{localize 'DS4.ItemName'}}</div>
|
||||||
{{!-- description --}}
|
{{!-- description --}}
|
||||||
<div class="flex3">{{localize 'DS4.Description'}}</div>
|
<div class="flex3">{{localize 'DS4.Description'}}</div>
|
||||||
{{!-- add button --}}
|
{{!-- control buttons placeholder --}}
|
||||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType=dataType }}
|
<div></div>
|
||||||
</li>
|
</li>
|
||||||
{{/inline}}
|
{{/inline}}
|
||||||
|
|
||||||
|
@ -58,4 +58,5 @@
|
||||||
{{> baseItemListEntry item=item}}
|
{{> baseItemListEntry item=item}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ol>
|
</ol>
|
||||||
|
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType='specialCreatureAbility' }}
|
||||||
</div>
|
</div>
|
|
@ -13,7 +13,7 @@
|
||||||
<div class="unit-data-pair item-num-val"
|
<div class="unit-data-pair item-num-val"
|
||||||
title="{{localize localizationString}} [{{lookup unitNames unitDatum.unit}}]" >
|
title="{{localize localizationString}} [{{lookup unitNames unitDatum.unit}}]" >
|
||||||
{{#if unitDatum.value }}
|
{{#if unitDatum.value }}
|
||||||
{{unitDatum.value}}{{lookup unitAbbrs unitDatum.unit}}
|
{{unitDatum.value}} {{lookup unitAbbrs unitDatum.unit}}
|
||||||
{{else}}-{{/if}}
|
{{else}}-{{/if}}
|
||||||
</div>
|
</div>
|
||||||
{{/inline}}
|
{{/inline}}
|
||||||
|
@ -23,11 +23,11 @@
|
||||||
!-- directly handing over the latter two.
|
!-- directly handing over the latter two.
|
||||||
--}}
|
--}}
|
||||||
{{#*inline "temporalUnit"}}
|
{{#*inline "temporalUnit"}}
|
||||||
{{> unit unitNames=config.temporalUnits unitAbbrs=config.temporalUnitsAbbr unitDatum=unitDatum localizationString=localizationString}}
|
{{> unit unitNames=config.i18n.temporalUnits unitAbbrs=config.i18n.temporalUnitsAbbr unitDatum=unitDatum localizationString=localizationString}}
|
||||||
{{/inline}}
|
{{/inline}}
|
||||||
|
|
||||||
{{#*inline "distanceUnit"}}
|
{{#*inline "distanceUnit"}}
|
||||||
{{> unit unitNames=config.distanceUnits unitAbbrs=config.distanceUnitsAbbr unitDatum=unitDatum localizationString=localizationString}}
|
{{> unit unitNames=config.i18n.distanceUnits unitAbbrs=config.i18n.distanceUnitsAbbr unitDatum=unitDatum localizationString=localizationString}}
|
||||||
{{/inline}}
|
{{/inline}}
|
||||||
|
|
||||||
|
|
||||||
|
@ -55,8 +55,8 @@
|
||||||
<div class="item-num-val" title="{{localize 'DS4.SpellCooldownDuration'}}"><i class="fas fa-hourglass-half"></i></div>
|
<div class="item-num-val" title="{{localize 'DS4.SpellCooldownDuration'}}"><i class="fas fa-hourglass-half"></i></div>
|
||||||
{{!-- description --}}
|
{{!-- description --}}
|
||||||
{{!-- <div class="flex3">{{localize 'DS4.Description'}}</div> --}}
|
{{!-- <div class="flex3">{{localize 'DS4.Description'}}</div> --}}
|
||||||
{{!-- add button --}}
|
{{!-- control buttons placeholder --}}
|
||||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType='spell' }}
|
<div></div>
|
||||||
</li>
|
</li>
|
||||||
{{#each itemsByType.spell as |item id|}}
|
{{#each itemsByType.spell as |item id|}}
|
||||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||||
|
@ -71,8 +71,8 @@
|
||||||
data-property="name" title="{{localize 'DS4.ItemName'}}" />
|
data-property="name" title="{{localize 'DS4.ItemName'}}" />
|
||||||
{{!-- spell type --}}
|
{{!-- spell type --}}
|
||||||
<div class="flex05 item-image">
|
<div class="flex05 item-image">
|
||||||
<img src="{{lookup ../config.spellTypesIcons item.data.data.spellType}}"
|
<img src="{{lookup ../config.icons.spellTypes item.data.data.spellType}}"
|
||||||
title="{{lookup ../config.spellTypes item.data.data.spellType}}" width="24" height="24" />
|
title="{{lookup ../config.i18n.spellTypes item.data.data.spellType}}" width="24" height="24" />
|
||||||
</div>
|
</div>
|
||||||
{{!-- spell bonus --}}
|
{{!-- spell bonus --}}
|
||||||
<input class="item-num-val item-change" type="text" data-dtype="String"
|
<input class="item-num-val item-change" type="text" data-dtype="String"
|
||||||
|
@ -90,4 +90,6 @@
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ol>
|
</ol>
|
||||||
|
{{!-- add button --}}
|
||||||
|
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType='spell' }}
|
||||||
</div>
|
</div>
|
|
@ -15,9 +15,8 @@
|
||||||
{{#*inline "ifHasItemOfType"}}
|
{{#*inline "ifHasItemOfType"}}
|
||||||
{{#if (and (ne itemsArray undefined) (gt itemsArray.length 0))}}
|
{{#if (and (ne itemsArray undefined) (gt itemsArray.length 0))}}
|
||||||
{{> @partial-block}}
|
{{> @partial-block}}
|
||||||
{{else}}
|
|
||||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType=dataType }}
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType=dataType }}
|
||||||
{{/inline}}
|
{{/inline}}
|
||||||
|
|
||||||
|
|
||||||
|
@ -98,7 +97,7 @@
|
||||||
{{/inline}}
|
{{/inline}}
|
||||||
|
|
||||||
{{!--
|
{{!--
|
||||||
!-- Render a list header for a base item list entries from a given item.
|
!-- Render a list header for a base item list entry from a given item.
|
||||||
!-- The partial assumes a variable dataType to be given in the context.
|
!-- The partial assumes a variable dataType to be given in the context.
|
||||||
!--
|
!--
|
||||||
!-- @param dataType: the string item type for the list
|
!-- @param dataType: the string item type for the list
|
||||||
|
@ -111,8 +110,8 @@
|
||||||
<div class="flex1 item-name">{{localize 'DS4.ItemName'}}</div>
|
<div class="flex1 item-name">{{localize 'DS4.ItemName'}}</div>
|
||||||
{{!-- description --}}
|
{{!-- description --}}
|
||||||
<div class="flex3">{{localize 'DS4.Description'}}</div>
|
<div class="flex3">{{localize 'DS4.Description'}}</div>
|
||||||
{{!-- add button --}}
|
{{!-- control buttons placeholder --}}
|
||||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType=dataType }}
|
<div></div>
|
||||||
</li>
|
</li>
|
||||||
{{/inline}}
|
{{/inline}}
|
||||||
|
|
||||||
|
@ -133,8 +132,8 @@
|
||||||
<div class="flex3">{{localize 'DS4.TalentRank'}}</div>
|
<div class="flex3">{{localize 'DS4.TalentRank'}}</div>
|
||||||
{{!-- description --}}
|
{{!-- description --}}
|
||||||
<div class="flex4">{{localize 'DS4.Description'}}</div>
|
<div class="flex4">{{localize 'DS4.Description'}}</div>
|
||||||
{{!-- add button --}}
|
{{!-- control buttons placeholder --}}
|
||||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType='talent' }}
|
<div></div>
|
||||||
</li>
|
</li>
|
||||||
{{#each itemsByType.talent as |item id|}}
|
{{#each itemsByType.talent as |item id|}}
|
||||||
{{> talentListEntry item=item}}
|
{{> talentListEntry item=item}}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<label>{{localize "DS4.ArmorType"}}</label>
|
<label>{{localize "DS4.ArmorType"}}</label>
|
||||||
<select name="data.armorType" data-type="String">
|
<select name="data.armorType" data-type="String">
|
||||||
{{#select data.armorType}}
|
{{#select data.armorType}}
|
||||||
{{#each config.armorTypes as |value key|}}
|
{{#each config.i18n.armorTypes as |value key|}}
|
||||||
<option value="{{key}}">{{value}}</option>
|
<option value="{{key}}">{{value}}</option>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
<label for="data.armorMaterialType">{{localize "DS4.ArmorMaterialType"}}</label>
|
<label for="data.armorMaterialType">{{localize "DS4.ArmorMaterialType"}}</label>
|
||||||
<select name="data.armorMaterialType" data-type="String">
|
<select name="data.armorMaterialType" data-type="String">
|
||||||
{{#select data.armorMaterialType}}
|
{{#select data.armorMaterialType}}
|
||||||
{{#each config.armorMaterialTypes as |value key|}}
|
{{#each config.i18n.armorMaterialTypes as |value key|}}
|
||||||
<option value="{{key}}">{{value}}</option>
|
<option value="{{key}}">{{value}}</option>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
<label for="data.availability">{{localize "DS4.ItemAvailability"}}</label>
|
<label for="data.availability">{{localize "DS4.ItemAvailability"}}</label>
|
||||||
<select name="data.availability" data-type="String">
|
<select name="data.availability" data-type="String">
|
||||||
{{#select data.availability}}
|
{{#select data.availability}}
|
||||||
{{#each config.itemAvailabilities as |value key|}}
|
{{#each config.i18n.itemAvailabilities as |value key|}}
|
||||||
<option value="{{key}}">{{value}}</option>
|
<option value="{{key}}">{{value}}</option>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
|
|
|
@ -5,16 +5,18 @@
|
||||||
<div class="effect-image"></div>
|
<div class="effect-image"></div>
|
||||||
<div class="effect-name">Name</div>
|
<div class="effect-name">Name</div>
|
||||||
<div class="effect-controls">
|
<div class="effect-controls">
|
||||||
<a class="effect-control" data-action="create" title="Create Effect"><i class="fas fa-plus"></i> Add
|
<a class="effect-control" data-action="create" title="{{localize 'DS4.UserInteractionAddEffect'}}">
|
||||||
effect</a>
|
<i class="fas fa-plus"></i> {{localize 'DS4.UserInteractionAddEffect'}}</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{#each item.effects as |effect id|}}
|
{{#each item.effects as |effect id|}}
|
||||||
<li class="effect flexrow" data-effect-id="{{effect._id}}">
|
<li class="effect flexrow" data-effect-id="{{effect._id}}">
|
||||||
<h4 class="effect-name">{{effect.label}}</h4>
|
<h4 class="effect-name">{{effect.label}}</h4>
|
||||||
<div class="effect-controls">
|
<div class="effect-controls">
|
||||||
<a class="effect-control" data-action="edit" title="Edit Effect"><i class="fas fa-edit"></i></a>
|
<a class="effect-control" data-action="edit" title="{{localize 'DS4.UserInteractionEditEffect'}}">
|
||||||
<a class="effect-control" data-action="delete" title="Delete Effect"><i class="fas fa-trash"></i></a>
|
<i class="fas fa-edit"></i></a>
|
||||||
|
<a class="effect-control" data-action="delete" title="{{localize 'DS4.UserInteractionDeleteEffect'}}">
|
||||||
|
<i class="fas fa-trash"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<img class="profile-img" src="{{item.img}}" data-edit="img" title="{{item.name}}" />
|
<img class="profile-img" src="{{item.img}}" data-edit="img" title="{{item.name}}" />
|
||||||
<div class="header-fields flexrow">
|
<div class="header-fields flexrow">
|
||||||
<h1 class="charname"><input name="name" type="text" value="{{item.name}}" placeholder="Name" /></h1>
|
<h1 class="charname"><input name="name" type="text" value="{{item.name}}" placeholder="Name" /></h1>
|
||||||
<h2 class="item-type">{{localize (lookup config.itemTypes item.type)}}</h2>
|
<h2 class="item-type">{{lookup config.i18n.itemTypes item.type}}</h2>
|
||||||
{{> @partial-block}}
|
{{> @partial-block}}
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
|
@ -12,9 +12,9 @@
|
||||||
<select name="data.{{property}}.unit" data-type="String">
|
<select name="data.{{property}}.unit" data-type="String">
|
||||||
{{#select (lookup (lookup data property) 'unit')}}
|
{{#select (lookup (lookup data property) 'unit')}}
|
||||||
{{#if (eq unitType 'temporal')}}
|
{{#if (eq unitType 'temporal')}}
|
||||||
{{#each (lookup config 'temporalUnitsAbbr') as |value key|}}<option value="{{key}}">{{value}}</option>{{/each}}
|
{{#each (lookup config.i18n 'temporalUnitsAbbr') as |value key|}}<option value="{{key}}">{{value}}</option>{{/each}}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{#each (lookup config 'distanceUnitsAbbr') as |value key|}}<option value="{{key}}">{{value}}</option>{{/each}}
|
{{#each (lookup config.i18n 'distanceUnitsAbbr') as |value key|}}<option value="{{key}}">{{value}}</option>{{/each}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
</select>
|
</select>
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
<label for="data.spellType">{{localize "DS4.SpellType"}}</label>
|
<label for="data.spellType">{{localize "DS4.SpellType"}}</label>
|
||||||
<select id="data.spellType" name="data.spellType" data-type="String">
|
<select id="data.spellType" name="data.spellType" data-type="String">
|
||||||
{{#select data.spellType}}
|
{{#select data.spellType}}
|
||||||
{{#each config.spellTypes as |value key|}}
|
{{#each config.i18n.spellTypes as |value key|}}
|
||||||
<option value="{{key}}">{{value}}</option>
|
<option value="{{key}}">{{value}}</option>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
<label for="data.spellCategory">{{localize "DS4.SpellCategory"}}</label>
|
<label for="data.spellCategory">{{localize "DS4.SpellCategory"}}</label>
|
||||||
<select id="data.spellCategory" name="data.spellCategory" data-type="String">
|
<select id="data.spellCategory" name="data.spellCategory" data-type="String">
|
||||||
{{#select data.spellCategory}}
|
{{#select data.spellCategory}}
|
||||||
{{#each config.spellCategories as |value key|}}
|
{{#each config.i18n.spellCategories as |value key|}}
|
||||||
<option value="{{key}}">{{value}}</option>
|
<option value="{{key}}">{{value}}</option>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<label>{{localize "DS4.AttackType"}}</label>
|
<label>{{localize "DS4.AttackType"}}</label>
|
||||||
<select name="data.attackType" data-type="String">
|
<select name="data.attackType" data-type="String">
|
||||||
{{#select data.attackType}}
|
{{#select data.attackType}}
|
||||||
{{#each config.attackTypes as |value key|}}
|
{{#each config.i18n.attackTypes as |value key|}}
|
||||||
<option value="{{key}}">{{value}}</option>
|
<option value="{{key}}">{{value}}</option>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
|
|
|
@ -2,15 +2,17 @@
|
||||||
<label for="ctv">{{localize "DS4.RollDialogTargetLabel"}}</label>
|
<label for="ctv">{{localize "DS4.RollDialogTargetLabel"}}</label>
|
||||||
<input id="ctv" data-type="Number" type="number" name="ctv" value="{{checkTargetValue}}" />
|
<input id="ctv" data-type="Number" type="number" name="ctv" value="{{checkTargetValue}}" />
|
||||||
<label for="gmmod">{{localize "DS4.RollDialogModifierLabel"}}</label>
|
<label for="gmmod">{{localize "DS4.RollDialogModifierLabel"}}</label>
|
||||||
<input id="gmmod" data-type="Number" type="number" name="gmmod" value="0" />
|
<input id="gmmod" data-type="Number" type="number" name="gmmod" value="0" autofocus />
|
||||||
<label for="maxcoup">{{localize "DS4.RollDialogCoupLabel"}}</label>
|
<label for="maxcoup">{{localize "DS4.RollDialogCoupLabel"}}</label>
|
||||||
<input id="maxcoup" data-type="Number" type="number" name="maxcoup" value="{{maxCritSuccess}}" />
|
<input id="maxcoup" data-type="Number" type="number" name="maxcoup" value="{{maxCritSuccess}}" />
|
||||||
<label for="minfumble">{{localize "DS4.RollDialogFumbleLabel"}}</label>
|
<label for="minfumble">{{localize "DS4.RollDialogFumbleLabel"}}</label>
|
||||||
<input id="minfumble" data-type="Number" type="number" name="minfumble" value="{{minCritFailure}}" />
|
<input id="minfumble" data-type="Number" type="number" name="minfumble" value="{{minCritFailure}}" />
|
||||||
<label for="visibility">{{localize "DS4.RollDialogVisibilityLabel"}}</label>
|
<label for="visibility">{{localize "DS4.RollDialogVisibilityLabel"}}</label>
|
||||||
<select id="visibility" data-type="String">
|
<select id="visibility" data-type="String">
|
||||||
{{#each rollModes as |rollMode|}}
|
{{#select rollMode}}
|
||||||
<option value="{{rollMode}}">{{lookup ../config.chatVisibilities rollMode}}</option>
|
{{#each config.i18n.chatVisibilities as |rollModeValue rollModeKey|}}
|
||||||
|
<option value="{{rollModeKey}}">{{rollModeValue}}</option>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
{{/select}}
|
||||||
</select>
|
</select>
|
||||||
</form>
|
</form>
|
Loading…
Reference in a new issue