From 8a653fba1c70c1dbb61814f99a6f7f020211302e Mon Sep 17 00:00:00 2001 From: Victor Nascimento Date: Mon, 17 Jun 2024 19:39:37 -0300 Subject: [PATCH 01/35] changing system.json grid values format --- system.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/system.json b/system.json index 5a3564d3..47c30903 100644 --- a/system.json +++ b/system.json @@ -145,8 +145,10 @@ } ], "socket": true, - "gridDistance": 5, - "gridUnits": "ft", + "grid": { + "distance": 5, + "units": "ft" + }, "primaryTokenAttribute": "attribs.hp", "secondaryTokenAttribute": "attribs.san", "url": "https://github.com/Miskatonic-Investigative-Society/CoC7-FoundryVTT", From 22bd8eefe61a7b583d287f5e19be8a399f7644fb Mon Sep 17 00:00:00 2001 From: Victor Nascimento Date: Tue, 25 Jun 2024 22:03:47 -0300 Subject: [PATCH 02/35] applying compatibility fix to the system.json --- system.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/system.json b/system.json index 47c30903..034d1b6c 100644 --- a/system.json +++ b/system.json @@ -145,6 +145,8 @@ } ], "socket": true, + "gridDistance": 5, + "gridUnits": "ft", "grid": { "distance": 5, "units": "ft" From 39a0e10faa6bde9a7e208469fd4bf4a4952629ae Mon Sep 17 00:00:00 2001 From: vonv <44206935+vonv@users.noreply.github.com> Date: Mon, 15 Jul 2024 22:00:10 +0200 Subject: [PATCH 03/35] Update fr.json --- lang/fr.json | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/lang/fr.json b/lang/fr.json index 3873fea8..48b7dab5 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -135,6 +135,7 @@ "CoC7.Initiative": "Initiative", "CoC7.Cast": "Jet", + "CoC7.CastHidden": "Jet Caché", "CoC7.SanityCost": "Coût en SAN", "CoC7.PowerCost": "Coût en Pouvoir", "CoC7.HitPointsCost": "Coût en Points de Vie", @@ -412,8 +413,8 @@ "CoC7.WeaponBlst": "À Souffle", "CoC7.WeaponStun": "Étourdissante", "CoC7.Weapon.Property.Melee": "Mêlée", - "CoC7.Weapon.Property.Thrown": "Jeter", - "CoC7.Weapon.Property.Burn": "Brûlante", + "CoC7.Weapon.Property.Thrown": "Lancé", + "CoC7.Weapon.Property.Burn": "Brûle", "CoC7.Weapon.Property.Shotgun": "Fusil à pompe", "CoC7.ErrorItem": "Objet introuvable", @@ -1031,7 +1032,7 @@ "CoC7.Migrate.ErrorActor": "Échec de la migration du système CoC7 pour le Personnage {name}: {message}", "CoC7.System.Documentation": "Consulter le manuel du système", - + "CoC7.Settings.CoreRules.Title": "Règles Optionnelles du Livre de Base", "CoC7.Settings.Rules.Name": "Variantes/Règles optionnelles", "CoC7.Settings.Rules.Label": "Configurer les variantes/règles optionnelles", @@ -1128,6 +1129,8 @@ "SETTINGS.PulpRulesHint": "Permettre l'utilisation des règles Pulp (archétype, talent, PV)", "SETTINGS.developmentRollForLuck": "Points de Chance récupérables", "SETTINGS.developmentRollForLuckHint": "Chaque joueur peut faire un jet de développement pour sa Chance durant la phase de développement", + "SETTINGS.allowMythosHardenedTitle": "Résistant au Mythe", + "SETTINGS.allowMythosHardenedHint": "Permet de réduire les pertes de SAN pour des Résistants au Mythe", "SETTINGS.displayPlayerNameOnSheet": "Afficher le nom du joueur sur la fiche", "SETTINGS.DisregardAmmo": "Ne pas tenir compte du nombre de munitions.", "SETTINGS.DisregardAmmoHint": "Si activé le système ne tiendra pas compte du nombre de balles chargées dans le pistolet", @@ -1221,13 +1224,13 @@ "SETTINGS.UseContextMenusHint": "[EXPERIMENTAL] Utiliser les menus contextuels pour les jets à la place des combinaisons de touches.", "SETTINGS.SceneDistanceNotCalcualtedNoError": "Ne pas afficher les erreurs pour les distances", "SETTINGS.SceneDistanceNotCalcualtedNoErrorHint": "Au début d'un combat à distance, en mode immersion, ne pas afficher les messages de calcul.", - + "CoC7.getTheExample": "Copier l'Exemple", "CoC7.Copied": "Texte de l'Exemple copié dans le presse-papier", "CoC7.EffectNew": "Nouvel effet", "CoC7.EffectAppliedCantOverride": "Un effet actif est applicable. Vous de pouvez modifier [{name}]. Désactivez cet effet pour pouvoir modifier cette valeur.", - + "CoC7.InvestigatorWizard.Title": "Création de Personnage guidée", "CoC7.InvestigatorWizard.TitleKeeperConfiguration": "Configuration du Gardien", "CoC7.InvestigatorWizard.TitleSelectSetup": "Configuration de l'Investigateur", @@ -1325,7 +1328,7 @@ "CoC7.CoCIDBatch.title": "Automate du System ID (CoC ID)", "CoC7.CoCIDBatch.summary": "Le système CoC7 a ajouté le System ID (CoC ID). Cela permet d'identifier les items FoundryVTT, les compétences par exemple. Cette page vous permettra de positionner l'identifiant pour des '{type}' existant(e)s. Le System ID doit utiliser les traductions anglaises pour pouvoir supporter le portage dans d'autres langues.", - + "CoC7.TokenCreationRoll.Title": "Aléatoire détecté", "CoC7.TokenCreationRoll.Prompt": "Ce token a des caractéristiques ou compétences aléatoires.
Que souhaitez-vous faire ?", "CoC7.TokenCreationRoll.ButtonRoll": "Jeter les dés pour toutes", From c1f18bd3ce94a75c9ac21c130fc187ed114e71ed Mon Sep 17 00:00:00 2001 From: vonv <44206935+vonv@users.noreply.github.com> Date: Tue, 16 Jul 2024 21:50:46 +0200 Subject: [PATCH 04/35] Update fr.json --- lang/fr.json | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/lang/fr.json b/lang/fr.json index 3873fea8..4bbc1762 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -135,6 +135,7 @@ "CoC7.Initiative": "Initiative", "CoC7.Cast": "Jet", + "CoC7.CastHidden": "Jet Caché", "CoC7.SanityCost": "Coût en SAN", "CoC7.PowerCost": "Coût en Pouvoir", "CoC7.HitPointsCost": "Coût en Points de Vie", @@ -387,9 +388,9 @@ "CoC7.SkillRarityShort": "[RA]", "CoC7.SkillPush": "Redoublement", "CoC7.SkillCombat": "Combat", - "CoC7.SkillFighting": "Au contact", - "CoC7.SkillFirearm": "Arme à feu", - "CoC7.SkillRanged": "À distance", + "CoC7.SkillFighting": "Combat. Au Contact", + "CoC7.SkillFirearm": "Combat. Arme à feu", + "CoC7.SkillRanged": "Combat. À distance", "CoC7.SkillRequiresName": "Nécessite un Nom", "CoC7.SkillKeepBaseValue": "Conserver la valeur de base", "CoC7.SkillPickNameOnly": "Choisissez la Spécialisation", @@ -412,8 +413,8 @@ "CoC7.WeaponBlst": "À Souffle", "CoC7.WeaponStun": "Étourdissante", "CoC7.Weapon.Property.Melee": "Mêlée", - "CoC7.Weapon.Property.Thrown": "Jeter", - "CoC7.Weapon.Property.Burn": "Brûlante", + "CoC7.Weapon.Property.Thrown": "Lancé", + "CoC7.Weapon.Property.Burn": "Brûle", "CoC7.Weapon.Property.Shotgun": "Fusil à pompe", "CoC7.ErrorItem": "Objet introuvable", @@ -426,11 +427,10 @@ "CoC7.Apply": "Appliquer", "CoC7.NewBioSectionName": "Nouvelle Section", - - "CoC7.FightingSpecializationName": "Combat rapproché", + "CoC7.FightingSpecializationName": "Combat. Au Contact", "CoC7.UnarmedWeaponName": "Sans arme", - "CoC7.FirearmSpecializationName": "Armes à feu", - "CoC7.RangedSpecializationName": "A distance", + "CoC7.FirearmSpecializationName": "Combat. Arme à feu", + "CoC7.RangedSpecializationName": "Combat. À distance", "CoC7.DriveSpecializationName": "Conduite", "CoC7.PilotSpecializationName": "Pilotage", "CoC7.LanguageSpecializationName": "Language", @@ -1031,7 +1031,7 @@ "CoC7.Migrate.ErrorActor": "Échec de la migration du système CoC7 pour le Personnage {name}: {message}", "CoC7.System.Documentation": "Consulter le manuel du système", - + "CoC7.Settings.CoreRules.Title": "Règles Optionnelles du Livre de Base", "CoC7.Settings.Rules.Name": "Variantes/Règles optionnelles", "CoC7.Settings.Rules.Label": "Configurer les variantes/règles optionnelles", @@ -1128,6 +1128,8 @@ "SETTINGS.PulpRulesHint": "Permettre l'utilisation des règles Pulp (archétype, talent, PV)", "SETTINGS.developmentRollForLuck": "Points de Chance récupérables", "SETTINGS.developmentRollForLuckHint": "Chaque joueur peut faire un jet de développement pour sa Chance durant la phase de développement", + "SETTINGS.allowMythosHardenedTitle": "Résistant au Mythe", + "SETTINGS.allowMythosHardenedHint": "Permet de réduire les pertes de SAN pour des Résistants au Mythe", "SETTINGS.displayPlayerNameOnSheet": "Afficher le nom du joueur sur la fiche", "SETTINGS.DisregardAmmo": "Ne pas tenir compte du nombre de munitions.", "SETTINGS.DisregardAmmoHint": "Si activé le système ne tiendra pas compte du nombre de balles chargées dans le pistolet", @@ -1221,13 +1223,13 @@ "SETTINGS.UseContextMenusHint": "[EXPERIMENTAL] Utiliser les menus contextuels pour les jets à la place des combinaisons de touches.", "SETTINGS.SceneDistanceNotCalcualtedNoError": "Ne pas afficher les erreurs pour les distances", "SETTINGS.SceneDistanceNotCalcualtedNoErrorHint": "Au début d'un combat à distance, en mode immersion, ne pas afficher les messages de calcul.", - + "CoC7.getTheExample": "Copier l'Exemple", "CoC7.Copied": "Texte de l'Exemple copié dans le presse-papier", "CoC7.EffectNew": "Nouvel effet", "CoC7.EffectAppliedCantOverride": "Un effet actif est applicable. Vous de pouvez modifier [{name}]. Désactivez cet effet pour pouvoir modifier cette valeur.", - + "CoC7.InvestigatorWizard.Title": "Création de Personnage guidée", "CoC7.InvestigatorWizard.TitleKeeperConfiguration": "Configuration du Gardien", "CoC7.InvestigatorWizard.TitleSelectSetup": "Configuration de l'Investigateur", @@ -1325,7 +1327,7 @@ "CoC7.CoCIDBatch.title": "Automate du System ID (CoC ID)", "CoC7.CoCIDBatch.summary": "Le système CoC7 a ajouté le System ID (CoC ID). Cela permet d'identifier les items FoundryVTT, les compétences par exemple. Cette page vous permettra de positionner l'identifiant pour des '{type}' existant(e)s. Le System ID doit utiliser les traductions anglaises pour pouvoir supporter le portage dans d'autres langues.", - + "CoC7.TokenCreationRoll.Title": "Aléatoire détecté", "CoC7.TokenCreationRoll.Prompt": "Ce token a des caractéristiques ou compétences aléatoires.
Que souhaitez-vous faire ?", "CoC7.TokenCreationRoll.ButtonRoll": "Jeter les dés pour toutes", From aca9b37066c3eb2e41a099823e4ae8a7f192500b Mon Sep 17 00:00:00 2001 From: snap01 <43982555+snap01@users.noreply.github.com> Date: Sun, 21 Jul 2024 10:12:52 +0000 Subject: [PATCH 05/35] Updated translations list --- .github/TRANSLATIONS.md | 106 ++++++++++++++++++++-------------------- 1 file changed, 54 insertions(+), 52 deletions(-) diff --git a/.github/TRANSLATIONS.md b/.github/TRANSLATIONS.md index 614d935a..9dc76f1b 100644 --- a/.github/TRANSLATIONS.md +++ b/.github/TRANSLATIONS.md @@ -2,6 +2,8 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry VTT better! Below is a list of translations keys on existing files that still need translated, based on `en.json`. Feel free to create a new `*.json` file for a language that is not shown here! +The **fr** translation is currently up to date + The following translations have more than 50 untranslated strings [are you able to help?](./ABANDONED.md) [cn.json (431 untranslated strings)](./ABANDONED.md#cnjson) @@ -20,58 +22,58 @@ The following translations have more than 50 untranslated strings [are you able -|Key|de|es|fr|it|ja|pl|uk| -|:---|:---:|:---:|:---:|:---:|:---:|:---:|:---:| -|**Remaining**:|**12**|**49**|**3**|**3**|**4**|**11**|**48**| -|[CoC7.CastHidden](#coc7casthidden)|❌|❌|❌|❌|❌|✅|❌| -|[CoC7.EraReignOfTerror](#coc7erareignofterror)|✅|❌|✅|✅|✅|✅|❌| -|[CoC7.ErrorCombinedRollsRequireSingleActor](#coc7errorcombinedrollsrequiresingleactor)|✅|❌|✅|✅|✅|✅|❌| -|[CoC7.ErrorNoActorPermission](#coc7errornoactorpermission)|✅|❌|✅|✅|✅|✅|❌| -|[CoC7.ErrorOpposedRollsLimitedToTwoActors](#coc7erroropposedrollslimitedtotwoactors)|✅|❌|✅|✅|✅|✅|❌| -|[CoC7.ErrorRollAlreadyCompleted](#coc7errorrollalreadycompleted)|✅|❌|✅|✅|✅|✅|❌| -|[CoC7.Inactive](#coc7inactive)|✅|❌|✅|✅|✅|✅|❌| -|[CoC7.InfoSkillAddedAtBase](#coc7infoskilladdedatbase)|✅|❌|✅|✅|✅|✅|❌| -|[CoC7.Japanese](#coc7japanese)|❌|❌|✅|✅|✅|✅|❌| -|[CoC7.LanguageSpecializationName](#coc7languagespecializationname)|❌|❌|✅|✅|✅|✅|❌| -|[CoC7.LinkCheckDiffModifPushing](#coc7linkcheckdiffmodifpushing)|✅|❌|✅|✅|✅|✅|❌| -|[CoC7.LinkCheckDiffPushing](#coc7linkcheckdiffpushing)|✅|❌|✅|✅|✅|✅|❌| -|[CoC7.LinkCheckModifPushing](#coc7linkcheckmodifpushing)|✅|❌|✅|✅|✅|✅|❌| -|[CoC7.LinkCheckPushing](#coc7linkcheckpushing)|✅|❌|✅|✅|✅|✅|❌| -|[CoC7.MonetaryDefaultAristocracy](#coc7monetarydefaultaristocracy)|✅|❌|✅|✅|✅|❌|❌| -|[CoC7.MonetaryDefaultDestitute](#coc7monetarydefaultdestitute)|✅|❌|✅|✅|✅|❌|❌| -|[CoC7.MonetaryDefaultEstablished](#coc7monetarydefaultestablished)|✅|❌|✅|✅|✅|❌|❌| -|[CoC7.MonetaryDefaultGentry](#coc7monetarydefaultgentry)|✅|❌|✅|✅|✅|❌|❌| -|[CoC7.MonetaryDefaultLower](#coc7monetarydefaultlower)|✅|❌|✅|✅|✅|❌|❌| -|[CoC7.MonetaryDefaultMiddle](#coc7monetarydefaultmiddle)|✅|❌|✅|✅|✅|❌|❌| -|[CoC7.MonetaryDefaultProfessional](#coc7monetarydefaultprofessional)|✅|❌|✅|✅|✅|❌|❌| -|[CoC7.Passive](#coc7passive)|✅|❌|✅|✅|✅|✅|❌| -|[CoC7.PersonalSpecialityPlaceholder](#coc7personalspecialityplaceholder)|✅|❌|✅|✅|❌|✅|✅| -|[CoC7.PickWhichActorDesc](#coc7pickwhichactordesc)|✅|❌|✅|✅|✅|✅|❌| -|[CoC7.PickWhichActorTitle](#coc7pickwhichactortitle)|✅|❌|✅|✅|✅|✅|❌| -|[CoC7.RangedSpecializationName](#coc7rangedspecializationname)|✅|❌|✅|✅|✅|❌|❌| -|[CoC7.RealRollDecaderPlaceholderName](#coc7realrolldecaderplaceholdername)|✅|❌|✅|✅|✅|❌|❌| -|[CoC7.SkillNameHandgun](#coc7skillnamehandgun)|❌|❌|✅|✅|✅|✅|❌| -|[CoC7.SkillNameLaunch](#coc7skillnamelaunch)|❌|❌|✅|✅|✅|✅|❌| -|[CoC7.SkillNameMachinGun](#coc7skillnamemachingun)|❌|❌|✅|✅|✅|✅|❌| -|[CoC7.SkillNameRifle](#coc7skillnamerifle)|❌|❌|✅|✅|✅|✅|❌| -|[CoC7.SkillNameRifleShotgun](#coc7skillnamerifleshotgun)|❌|❌|✅|✅|✅|✅|❌| -|[CoC7.SkillNameShotgun](#coc7skillnameshotgun)|❌|❌|✅|✅|✅|✅|❌| -|[CoC7.SkillNameSmb](#coc7skillnamesmb)|❌|❌|✅|✅|✅|✅|❌| -|[CoC7.SkillRanged](#coc7skillranged)|✅|❌|✅|✅|✅|❌|❌| -|[CoC7.Suppressed](#coc7suppressed)|✅|❌|✅|✅|✅|❌|❌| -|[CoC7.Temporary](#coc7temporary)|✅|❌|✅|✅|✅|✅|❌| -|[CoC7.TokenCreationRoll.Averaged](#coc7tokencreationrollaveraged)|✅|❌|✅|✅|✅|✅|❌| -|[CoC7.TokenCreationRoll.Rolled](#coc7tokencreationrollrolled)|✅|❌|✅|✅|✅|✅|❌| -|[CoC7.Unavailable](#coc7unavailable)|✅|❌|✅|✅|✅|✅|❌| -|[CoC7.WaitingOnUser](#coc7waitingonuser)|✅|❌|✅|✅|✅|✅|❌| -|[SETTINGS.TokenDropMode](#settingstokendropmode)|✅|❌|✅|✅|✅|✅|❌| -|[SETTINGS.TokenDropModeAsk](#settingstokendropmodeask)|✅|❌|✅|✅|✅|✅|❌| -|[SETTINGS.TokenDropModeAverage](#settingstokendropmodeaverage)|✅|❌|✅|✅|✅|✅|❌| -|[SETTINGS.TokenDropModeHint](#settingstokendropmodehint)|✅|❌|✅|✅|✅|✅|❌| -|[SETTINGS.TokenDropModeIgnore](#settingstokendropmodeignore)|✅|❌|✅|✅|✅|✅|❌| -|[SETTINGS.TokenDropModeRoll](#settingstokendropmoderoll)|✅|❌|✅|✅|✅|✅|❌| -|[SETTINGS.allowMythosHardenedHint](#settingsallowmythoshardenedhint)|❌|❌|❌|❌|❌|✅|❌| -|[SETTINGS.allowMythosHardenedTitle](#settingsallowmythoshardenedtitle)|❌|❌|❌|❌|❌|✅|❌| +|Key|de|es|it|ja|pl|uk| +|:---|:---:|:---:|:---:|:---:|:---:|:---:| +|**Remaining**:|**12**|**49**|**3**|**4**|**11**|**48**| +|[CoC7.CastHidden](#coc7casthidden)|❌|❌|❌|❌|✅|❌| +|[CoC7.EraReignOfTerror](#coc7erareignofterror)|✅|❌|✅|✅|✅|❌| +|[CoC7.ErrorCombinedRollsRequireSingleActor](#coc7errorcombinedrollsrequiresingleactor)|✅|❌|✅|✅|✅|❌| +|[CoC7.ErrorNoActorPermission](#coc7errornoactorpermission)|✅|❌|✅|✅|✅|❌| +|[CoC7.ErrorOpposedRollsLimitedToTwoActors](#coc7erroropposedrollslimitedtotwoactors)|✅|❌|✅|✅|✅|❌| +|[CoC7.ErrorRollAlreadyCompleted](#coc7errorrollalreadycompleted)|✅|❌|✅|✅|✅|❌| +|[CoC7.Inactive](#coc7inactive)|✅|❌|✅|✅|✅|❌| +|[CoC7.InfoSkillAddedAtBase](#coc7infoskilladdedatbase)|✅|❌|✅|✅|✅|❌| +|[CoC7.Japanese](#coc7japanese)|❌|❌|✅|✅|✅|❌| +|[CoC7.LanguageSpecializationName](#coc7languagespecializationname)|❌|❌|✅|✅|✅|❌| +|[CoC7.LinkCheckDiffModifPushing](#coc7linkcheckdiffmodifpushing)|✅|❌|✅|✅|✅|❌| +|[CoC7.LinkCheckDiffPushing](#coc7linkcheckdiffpushing)|✅|❌|✅|✅|✅|❌| +|[CoC7.LinkCheckModifPushing](#coc7linkcheckmodifpushing)|✅|❌|✅|✅|✅|❌| +|[CoC7.LinkCheckPushing](#coc7linkcheckpushing)|✅|❌|✅|✅|✅|❌| +|[CoC7.MonetaryDefaultAristocracy](#coc7monetarydefaultaristocracy)|✅|❌|✅|✅|❌|❌| +|[CoC7.MonetaryDefaultDestitute](#coc7monetarydefaultdestitute)|✅|❌|✅|✅|❌|❌| +|[CoC7.MonetaryDefaultEstablished](#coc7monetarydefaultestablished)|✅|❌|✅|✅|❌|❌| +|[CoC7.MonetaryDefaultGentry](#coc7monetarydefaultgentry)|✅|❌|✅|✅|❌|❌| +|[CoC7.MonetaryDefaultLower](#coc7monetarydefaultlower)|✅|❌|✅|✅|❌|❌| +|[CoC7.MonetaryDefaultMiddle](#coc7monetarydefaultmiddle)|✅|❌|✅|✅|❌|❌| +|[CoC7.MonetaryDefaultProfessional](#coc7monetarydefaultprofessional)|✅|❌|✅|✅|❌|❌| +|[CoC7.Passive](#coc7passive)|✅|❌|✅|✅|✅|❌| +|[CoC7.PersonalSpecialityPlaceholder](#coc7personalspecialityplaceholder)|✅|❌|✅|❌|✅|✅| +|[CoC7.PickWhichActorDesc](#coc7pickwhichactordesc)|✅|❌|✅|✅|✅|❌| +|[CoC7.PickWhichActorTitle](#coc7pickwhichactortitle)|✅|❌|✅|✅|✅|❌| +|[CoC7.RangedSpecializationName](#coc7rangedspecializationname)|✅|❌|✅|✅|❌|❌| +|[CoC7.RealRollDecaderPlaceholderName](#coc7realrolldecaderplaceholdername)|✅|❌|✅|✅|❌|❌| +|[CoC7.SkillNameHandgun](#coc7skillnamehandgun)|❌|❌|✅|✅|✅|❌| +|[CoC7.SkillNameLaunch](#coc7skillnamelaunch)|❌|❌|✅|✅|✅|❌| +|[CoC7.SkillNameMachinGun](#coc7skillnamemachingun)|❌|❌|✅|✅|✅|❌| +|[CoC7.SkillNameRifle](#coc7skillnamerifle)|❌|❌|✅|✅|✅|❌| +|[CoC7.SkillNameRifleShotgun](#coc7skillnamerifleshotgun)|❌|❌|✅|✅|✅|❌| +|[CoC7.SkillNameShotgun](#coc7skillnameshotgun)|❌|❌|✅|✅|✅|❌| +|[CoC7.SkillNameSmb](#coc7skillnamesmb)|❌|❌|✅|✅|✅|❌| +|[CoC7.SkillRanged](#coc7skillranged)|✅|❌|✅|✅|❌|❌| +|[CoC7.Suppressed](#coc7suppressed)|✅|❌|✅|✅|❌|❌| +|[CoC7.Temporary](#coc7temporary)|✅|❌|✅|✅|✅|❌| +|[CoC7.TokenCreationRoll.Averaged](#coc7tokencreationrollaveraged)|✅|❌|✅|✅|✅|❌| +|[CoC7.TokenCreationRoll.Rolled](#coc7tokencreationrollrolled)|✅|❌|✅|✅|✅|❌| +|[CoC7.Unavailable](#coc7unavailable)|✅|❌|✅|✅|✅|❌| +|[CoC7.WaitingOnUser](#coc7waitingonuser)|✅|❌|✅|✅|✅|❌| +|[SETTINGS.TokenDropMode](#settingstokendropmode)|✅|❌|✅|✅|✅|❌| +|[SETTINGS.TokenDropModeAsk](#settingstokendropmodeask)|✅|❌|✅|✅|✅|❌| +|[SETTINGS.TokenDropModeAverage](#settingstokendropmodeaverage)|✅|❌|✅|✅|✅|❌| +|[SETTINGS.TokenDropModeHint](#settingstokendropmodehint)|✅|❌|✅|✅|✅|❌| +|[SETTINGS.TokenDropModeIgnore](#settingstokendropmodeignore)|✅|❌|✅|✅|✅|❌| +|[SETTINGS.TokenDropModeRoll](#settingstokendropmoderoll)|✅|❌|✅|✅|✅|❌| +|[SETTINGS.allowMythosHardenedHint](#settingsallowmythoshardenedhint)|❌|❌|❌|❌|✅|❌| +|[SETTINGS.allowMythosHardenedTitle](#settingsallowmythoshardenedtitle)|❌|❌|❌|❌|✅|❌| ##### CoC7.CastHidden ``` "CoC7.CastHidden": "Cast Hidden",``` ##### CoC7.EraReignOfTerror From f3d35b7a0adb90a4ae413a7c0f6dabfc49199835 Mon Sep 17 00:00:00 2001 From: snap01 <43982555+snap01@users.noreply.github.com> Date: Sun, 21 Jul 2024 11:13:08 +0100 Subject: [PATCH 06/35] Update CHANGELOG.md --- .github/CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index 930c7bae..bd5028a9 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -9,6 +9,8 @@ Happy gaming ! When not specified, all changes were made by @castanhocorreia, @HavlockV, and @snap01. +- Update to French localization, thanks to @vonv #1580 and #1581 + ## Version 0.10.19 When not specified, all changes were made by @castanhocorreia, @HavlockV, and @snap01. From 359a2259e5eaad7d4a36cc8bc00bcdda7accae2b Mon Sep 17 00:00:00 2001 From: snap01 <43982555+snap01@users.noreply.github.com> Date: Tue, 23 Jul 2024 18:08:39 +0100 Subject: [PATCH 07/35] Update CHANGELOG.md --- .github/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index bd5028a9..29b18173 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -9,6 +9,7 @@ Happy gaming ! When not specified, all changes were made by @castanhocorreia, @HavlockV, and @snap01. +- Explicitly set FoundryVTT v12 version of grid values, thanks to @Vicnasc #1564 - Update to French localization, thanks to @vonv #1580 and #1581 ## Version 0.10.19 From 15441f563c91660a619468cc19a8bd898f53a2ef Mon Sep 17 00:00:00 2001 From: doumoku <126391338+doumoku@users.noreply.github.com> Date: Wed, 7 Aug 2024 16:46:40 +0900 Subject: [PATCH 08/35] Update ja.json --- lang/ja.json | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/lang/ja.json b/lang/ja.json index c70f2bb1..125663eb 100644 --- a/lang/ja.json +++ b/lang/ja.json @@ -135,13 +135,14 @@ "CoC7.Initiative": "イニシアチブ", "CoC7.Cast": "詠唱", + "CoC7.CastHidden": "秘匿詠唱", "CoC7.SanityCost": "正気度コスト", "CoC7.PowerCost": "POWコスト", "CoC7.HitPointsCost": "耐久力コスト", "CoC7.MagicPointsCost": "MPコスト", "CoC7.OtherCosts": "その他のコスト", "CoC7.CastingSpell": "{spell} 呪文を詠唱。", - "CoC7.NotEnoughMagicPoints": "{spell} 呪文のコストとして {originalMagicPoints} MPを消費する必要がある。君には {actorMagicPoints} MPしかないため、不足分である {convertedHitPoints} 点のコストを、君の耐久力から支払うことが可能だ。そうした場合、{convertedHitPoints} ダメージを受ける。", + "CoC7.NotEnoughMagicPoints": "{spell} 呪文のコストとして {originalMagicPoints} 点のMPを消費する必要がある。しかし、君は {actorMagicPoints} 点のMPしかないため、不足分である {convertedHitPoints} ポイントのコストを、君の耐久力から支払うことが可能だ。そうした場合、{convertedHitPoints} ダメージを受ける。", "CoC7.CopyToClipboard": "クリップボードにコピー", "CoC7.WhisperToSelection": "選択したトークンにウィスパー", @@ -171,7 +172,7 @@ "CoC7.PushingSkill": ": 技能をプッシュ!", "CoC7.PushSkill": "プッシュ", "CoC7.PushedRoll": "(プッシュ・ロール)", - "CoC7.SpendLuck": "成功のために {luckNeededValue} ポイント幸運を消費した", + "CoC7.SpendLuck": "成功のために {luckNeededValue} ポイント幸運を消費", "CoC7.LuckSpent": "成功のために {luckAmount} 幸運を消費した", "CoC7.LuckSpentAlt": "幸運を消費した", "CoC7.LuckError": "{actorName} には、成功に必要な幸運が残っていない", @@ -1074,7 +1075,7 @@ "CoC7.UnableToUploadDholeImage": "You do not have permission to upload images, if you import the default avatar will be used.", "CoC7.MessageTitleSelectUserToGiveTo": "他のキャラクターにアイテムを渡す", - "CoC7.MessageSelectUserToGiveTo": "このアイテムをどのキャラクターに渡したいですか?", + "CoC7.MessageSelectUserToGiveTo": "このアイテムをどのキャラクターに渡しますか?", "CoC7.MessageDistanceCalculationFailure": "トークン間の距離を計算することができないため、トークン側のキャラクターシートを利用してください。", "CoC7.ToolTipSkill": "
  1. 左クリック ロール判定 (選択)
  2. Shift + 左クリック 即座にレギュラー難易度ロールを行なう
  1. 右クリック 対抗ロール (選択)
  2. Shift + 右クリック 即時の対抗ロール
  1. Alt/Option + 右クリック 組み合わせロール (選択)
", @@ -1124,10 +1125,12 @@ "SETTINGS.displayInitDicesHint": "イニシアチブ決定のためのロールのダイスを表示する (選択ルール使用時のみ)", "SETTINGS.displayInitAsText": "イニシアチブのテキスト表示", "SETTINGS.displayInitAsTextHint": "イニシアチブを数字ではなくテキストで表示する (選択ルール使用時のみ)", - "SETTINGS.PulpRules": "パルプ・クトゥルフのHPを使用", + "SETTINGS.PulpRules": "パルプルール", "SETTINGS.PulpRulesHint": "パルプ・クトゥルフのルールの使用を許可する (アーキタイプ、タレント、HP) !実験的実装!", "SETTINGS.developmentRollForLuck": "幸運の回復", "SETTINGS.developmentRollForLuckHint": "各プレイヤーは、成長フェイズに幸運の上達チェックを行なうことができる。", + "SETTINGS.allowMythosHardenedTitle": "クトゥルフ神話不感症", + "SETTINGS.allowMythosHardenedHint": "クトゥルフ神話不感症による正気度喪失の減少を許可", "SETTINGS.displayPlayerNameOnSheet": "シートにプレイヤー名を表示", "SETTINGS.DisregardAmmo": "残弾数を無視", "SETTINGS.DisregardAmmoHint": "有効にすると、銃に装填されている弾丸の数を無視する", @@ -1219,13 +1222,13 @@ "SETTINGS.ChaseShowTokenMovementHint": "グリッドマップ上でトークンが次の地点に移動する様子を表示する", "SETTINGS.UseContextMenus": "コンテクストメニューを使用", "SETTINGS.UseContextMenusHint": "[試験中] 同時押しの代わりにロールにコンテクストメニューを使用。", - "SETTINGS.SceneDistanceNotCalcualtedNoError": "Don't show error for ranged distance", - "SETTINGS.SceneDistanceNotCalcualtedNoErrorHint": "When starting a ranged combat if playing theatre of the mind do not show the unable to calculate distance message.", + "SETTINGS.SceneDistanceNotCalcualtedNoError": "射程距離のエラーを表示しない", + "SETTINGS.SceneDistanceNotCalcualtedNoErrorHint": "遠隔攻撃を開始する時、戦闘マップを使用しない場合に距離計算メッセージを表示しない。", "CoC7.getTheExample": "例をコピー", "CoC7.Copied": "例をクリップボードにコピー", - "CoC7.EffectNew": "New effect", + "CoC7.EffectNew": "新規エフェクト", "CoC7.EffectAppliedCantOverride": "An active effect is applies. You can't modify [{name}]. Deactivate the corresponding effect to modify this value.", "CoC7.InvestigatorWizard.Title": "探索者作成ウィザード", @@ -1246,7 +1249,7 @@ "CoC7.InvestigatorWizard.NextStep": "次へ", "CoC7.InvestigatorWizard.CreateStep": "作成", "CoC7.InvestigatorWizard.Introduction": "「探索者作成ウィザード」でステップを踏んで新たな探索者を作成できます。", - "CoC7.InvestigatorWizard.IntroductionKeeper": "あなたのワールドは \"{era}\" 時代に設定されており、設定や次のページで変更できます。", + "CoC7.InvestigatorWizard.IntroductionKeeper": "あなたのワールドは \"{era}\" 時代に設定されています。設定や次のページで変更できます。", "CoC7.InvestigatorWizard.ChangingEraDelay": "時代を変更中、お待ちください", "CoC7.InvestigatorWizard.PlayerEnabled": "「新規キャラクター作成」の権限が無いプレイヤーにも探索者作成を許可する", "CoC7.InvestigatorWizard.PlayerQuantity": "一人のプレイヤーが所有できる探索者の数は?", From 5da23c5a96ba40c9df1ebface145d54516ac9bad Mon Sep 17 00:00:00 2001 From: doumoku <126391338+doumoku@users.noreply.github.com> Date: Thu, 15 Aug 2024 14:24:47 +0900 Subject: [PATCH 09/35] Update ja.json --- lang/ja.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/lang/ja.json b/lang/ja.json index 125663eb..bde8fab7 100644 --- a/lang/ja.json +++ b/lang/ja.json @@ -142,11 +142,11 @@ "CoC7.MagicPointsCost": "MPコスト", "CoC7.OtherCosts": "その他のコスト", "CoC7.CastingSpell": "{spell} 呪文を詠唱。", - "CoC7.NotEnoughMagicPoints": "{spell} 呪文のコストとして {originalMagicPoints} 点のMPを消費する必要がある。しかし、君は {actorMagicPoints} 点のMPしかないため、不足分である {convertedHitPoints} ポイントのコストを、君の耐久力から支払うことが可能だ。そうした場合、{convertedHitPoints} ダメージを受ける。", + "CoC7.NotEnoughMagicPoints": "{spell} 呪文のコストとしてMPを{originalMagicPoints}ポイント消費する必要がある。しかし君は{actorMagicPoints}ポイントのMPしかないため、不足分である{convertedHitPoints}ポイントのコストを、君の耐久力から支払うことが可能だ。そうした場合、{convertedHitPoints} ダメージを受ける。", "CoC7.CopyToClipboard": "クリップボードにコピー", - "CoC7.WhisperToSelection": "選択したトークンにウィスパー", - "CoC7.WhisperTo": "ウィスパー:", + "CoC7.WhisperToSelection": "選択したコマに秘匿送信", + "CoC7.WhisperTo": "秘匿:", "CoC7.SendToChat": "チャットに送信", "CoC7.RegularSuccess": "レギュラー成功", @@ -168,23 +168,23 @@ "CoC7.TensDice": "つの10の位ダイス", "CoC7.SuccessRequired": "{successRequired} 成功が必要だ", "CoC7.Roll": "ロール", - "CoC7.Pushing": "プッシュする:", + "CoC7.Pushing": "プッシュ:", "CoC7.PushingSkill": ": 技能をプッシュ!", "CoC7.PushSkill": "プッシュ", "CoC7.PushedRoll": "(プッシュ・ロール)", - "CoC7.SpendLuck": "成功のために {luckNeededValue} ポイント幸運を消費", - "CoC7.LuckSpent": "成功のために {luckAmount} 幸運を消費した", + "CoC7.SpendLuck": "成功するために幸運を {luckNeededValue} ポイント消費", + "CoC7.LuckSpent": "成功のために幸運を {luckAmount} ポイント消費した", "CoC7.LuckSpentAlt": "幸運を消費した", "CoC7.LuckError": "{actorName} には、成功に必要な幸運が残っていない", "CoC7.LuckNotEnough": "{name} には、成功に必要な幸運が残っていない", - "CoC7.UpgradeSuccessWithLuck": "{luckToSpend} 幸運を消費し {difficultyName} 成功にアップグレードした", + "CoC7.UpgradeSuccessWithLuck": "{luckToSpend} ポイント幸運を消費し {difficultyName} 成功に向上した", "CoC7.check.AutoSuccess": "自動成功", "CoC7.check.AutoFailure": "自動失敗", - "CoC7.RevealCheck": "判定を明らかにする", - "CoC7.RevealSanLoss": "正気度喪失を明らかにする", + "CoC7.RevealCheck": "判定を公開", + "CoC7.RevealSanLoss": "正気度喪失を公開", "CoC7.check.ForcePass": "強制成功", "CoC7.check.ForceFail": "強制失敗", - "CoC7.check.FlagForDevelopment": "経験チェックを与える", + "CoC7.check.FlagForDevelopment": "経験チェック付与", "CoC7.IncreaseSuccessLevel": "成功レベルを増加する", "CoC7.check.DecreaseSuccessLevel": "成功レベルが減少する", "CoC7.RollSecretDice": "ゲームマスターは個人的にいくつかのダイスをロールした", @@ -483,9 +483,9 @@ "CoC7.UncommonSkillsShow": "まれな技能を表示", "CoC7.UncommonSkillsHide": "まれな技能を非表示", - "CoC7.NewBookName": "新しい本", + "CoC7.NewBookName": "新たな本", "CoC7.AddBook": "本追加", - "CoC7.NewSpellName": "新しい呪文", + "CoC7.NewSpellName": "新たな呪文", "CoC7.AddSpell": "呪文追加", "CoC7.AddWeapon": "武器追加", @@ -508,7 +508,7 @@ "CoC7.SanRollHint": "対象に正気度ロールをさせる", "CoC7.SANCheckTitle": "正気度喪失:{name} ({sanMin}/{sanMax})", "CoC7.NoSkill": "技能なし", - "CoC7.AddWeapontHint": "

{actor} は {weapon} を持っていない。
武器を作成するか?

", + "CoC7.AddWeapontHint": "

{actor} は {weapon} を持っていません。
武器を作成しますか?

", "CoC7.LinkCheck": " {name} の確認", "CoC7.LinkCheckDiff": "[{difficulty}] {name} の確認", From 118ce6e1fb10bdba4fa1aaadf13eab8fc297eb5b Mon Sep 17 00:00:00 2001 From: doumoku <126391338+doumoku@users.noreply.github.com> Date: Thu, 15 Aug 2024 16:59:20 +0900 Subject: [PATCH 10/35] Update ja.json --- lang/ja.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lang/ja.json b/lang/ja.json index bde8fab7..6c0ed33a 100644 --- a/lang/ja.json +++ b/lang/ja.json @@ -142,7 +142,7 @@ "CoC7.MagicPointsCost": "MPコスト", "CoC7.OtherCosts": "その他のコスト", "CoC7.CastingSpell": "{spell} 呪文を詠唱。", - "CoC7.NotEnoughMagicPoints": "{spell} 呪文のコストとしてMPを{originalMagicPoints}ポイント消費する必要がある。しかし君は{actorMagicPoints}ポイントのMPしかないため、不足分である{convertedHitPoints}ポイントのコストを、君の耐久力から支払うことが可能だ。そうした場合、{convertedHitPoints} ダメージを受ける。", + "CoC7.NotEnoughMagicPoints": "{spell} 呪文のコストとしてMPが{originalMagicPoints}ポイント必要だ。だが今君のMPは{actorMagicPoints}ポイントしかなく、不足分である{convertedHitPoints}ポイントのコストを、君の耐久力から支払うことが可能だ。そうしたなら、{convertedHitPoints} ダメージを受ける。", "CoC7.CopyToClipboard": "クリップボードにコピー", "CoC7.WhisperToSelection": "選択したコマに秘匿送信", @@ -1229,7 +1229,7 @@ "CoC7.Copied": "例をクリップボードにコピー", "CoC7.EffectNew": "新規エフェクト", - "CoC7.EffectAppliedCantOverride": "An active effect is applies. You can't modify [{name}]. Deactivate the corresponding effect to modify this value.", + "CoC7.EffectAppliedCantOverride": "エフェクトが適用されています。[{name}]を変更できません。この値を変更するには対応するエフェクトを無効化してください。", "CoC7.InvestigatorWizard.Title": "探索者作成ウィザード", "CoC7.InvestigatorWizard.TitleKeeperConfiguration": "キーパー設定", @@ -1310,12 +1310,12 @@ "CoC7.CoCIDFlag.keys.i.skill.dodge": "回避", "CoC7.CoCIDFlag.keys.i.skill.cthulhu-mythos": "クトゥルフ神話", "CoC7.CoCIDFlag.keys.i.skill.credit-rating": "信用", - "CoC7.CoCIDFlag.new": "- Custom System ID -", + "CoC7.CoCIDFlag.new": "- CustomシステムID -", "CoC7.CoCIDFlag.guess": "Create System ID (CoC ID) based on current document.", - "CoC7.CoCIDFlag.priority": "System ID Priority", + "CoC7.CoCIDFlag.priority": "システムID優先度(Priority)", "CoC7.CoCIDFlag.others": "Other documents with this CoC ID and language (excluding documents in other actors and items)", - "CoC7.CoCIDFlag.documents-in-world": "{count} documents in the world", - "CoC7.CoCIDFlag.documents-in-compendiums": "{count} documents in compendiums", + "CoC7.CoCIDFlag.documents-in-world": "ドキュメント{count}件がワールド内に存在", + "CoC7.CoCIDFlag.documents-in-compendiums": "ドキュメント{count}件が辞典に存在", "CoC7.CoCIDFlag.foundry-id": "Foundry ID", "CoC7.CoCIDFlag.foundry-uuid": "Foundry UUID", "CoC7.CoCIDFlag.get-this-document": "このドキュメントを取得", @@ -1326,7 +1326,7 @@ "CoC7.CoCIDFlag.error.document-not-found": "Document not found in world or Compendia matching the CoC ID \"{cocid}\", language \"{lang}\", and era \"{era}\". Please check your Era for the world setting.", "CoC7.CoCIDFlag.error.documents-not-found": "Documents were not found in world or Compendia matching the CoC IDs ({cocids}), language \"{lang}\", and era \"{era}\". Please check your Era for the world setting.", - "CoC7.CoCIDBatch.title": "Batch set System ID (CoC ID)", + "CoC7.CoCIDBatch.title": "Batch set システムID (CoC ID)をバッチ適用", "CoC7.CoCIDBatch.summary": "The CoC7 System has introduced a System ID (CoC ID). This allows the system to identify FoundryVTT documents for example skills. This page will allow you to set the id for existing {type} documents. The System ID should use the English translation of the name to support localization across all languages.", "CoC7.TokenCreationRoll.Title": "ロール可能を検知", From 771bf7b0b6ebe3248233873250bc94118f8646a1 Mon Sep 17 00:00:00 2001 From: doumoku <126391338+doumoku@users.noreply.github.com> Date: Sat, 17 Aug 2024 19:51:55 +0900 Subject: [PATCH 11/35] Update ja.json --- lang/ja.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lang/ja.json b/lang/ja.json index 6c0ed33a..89c075b7 100644 --- a/lang/ja.json +++ b/lang/ja.json @@ -863,7 +863,7 @@ "CoC7.SkillSelectionWindow": "オプションの技能を選択", "CoC7.SelectPersonalSkills": "個人的、あるいはその時代での特徴的な技能として、{number} 個の技能を選択", "CoC7.ResetOccupation": "職業をリセット", - "CoC7.ResetOccupationHint": "アクター {name} には既に職業がある。リセットするか?", + "CoC7.ResetOccupationHint": "アクター {name} はもう職業に就いている。リセットするか?", "CoC7.ResetArchetype": "アーキタイプをリセット", "CoC7.ResetArchetypeHint": "アクター {name} には既にアーキタイプがある。リセットするか?", "CoC7.CreditOutOfRange": "信用技能は {min} から {max}の範囲内にあるべきだ", @@ -1310,10 +1310,10 @@ "CoC7.CoCIDFlag.keys.i.skill.dodge": "回避", "CoC7.CoCIDFlag.keys.i.skill.cthulhu-mythos": "クトゥルフ神話", "CoC7.CoCIDFlag.keys.i.skill.credit-rating": "信用", - "CoC7.CoCIDFlag.new": "- CustomシステムID -", - "CoC7.CoCIDFlag.guess": "Create System ID (CoC ID) based on current document.", + "CoC7.CoCIDFlag.new": "- カスタム・システムID -", + "CoC7.CoCIDFlag.guess": "現在のドキュメントに基づいてシステムID(CoC ID)を作成。", "CoC7.CoCIDFlag.priority": "システムID優先度(Priority)", - "CoC7.CoCIDFlag.others": "Other documents with this CoC ID and language (excluding documents in other actors and items)", + "CoC7.CoCIDFlag.others": "このCoC IDと言語をもつ他のドキュメント(アクターとアイテムにあるドキュメントを除く)", "CoC7.CoCIDFlag.documents-in-world": "ドキュメント{count}件がワールド内に存在", "CoC7.CoCIDFlag.documents-in-compendiums": "ドキュメント{count}件が辞典に存在", "CoC7.CoCIDFlag.foundry-id": "Foundry ID", @@ -1323,11 +1323,11 @@ "CoC7.CoCIDFlag.error.duplicate": "注: 同じ優先度(priority)に複数のシステムIDがあります!", "CoC7.CoCIDFlag.error.unknown-era": "不明な時代 \"{era}\"", "CoC7.CoCIDFlag.error.incorrect.type": "CoC IDを、存在しないドキュメント種別でコンバートを試みた。コンソールログ参照。", - "CoC7.CoCIDFlag.error.document-not-found": "Document not found in world or Compendia matching the CoC ID \"{cocid}\", language \"{lang}\", and era \"{era}\". Please check your Era for the world setting.", - "CoC7.CoCIDFlag.error.documents-not-found": "Documents were not found in world or Compendia matching the CoC IDs ({cocids}), language \"{lang}\", and era \"{era}\". Please check your Era for the world setting.", + "CoC7.CoCIDFlag.error.document-not-found": "CoC ID「{cocid}」、言語「{lang}」、と時代「{era}」に一致するドキュメントがワールドや辞典内に見つかりませんでした。ワールド設定の時代を確認してください。", + "CoC7.CoCIDFlag.error.documents-not-found": "CoC ID「{cocid}」、言語「{lang}」、と時代「{era}」に一致するドキュメントがワールドや辞典内に見つかりませんでした。ワールド設定の時代を確認してください。", - "CoC7.CoCIDBatch.title": "Batch set システムID (CoC ID)をバッチ適用", - "CoC7.CoCIDBatch.summary": "The CoC7 System has introduced a System ID (CoC ID). This allows the system to identify FoundryVTT documents for example skills. This page will allow you to set the id for existing {type} documents. The System ID should use the English translation of the name to support localization across all languages.", + "CoC7.CoCIDBatch.title": "システムID (CoC ID)をバッチ適用", + "CoC7.CoCIDBatch.summary": "CoC7システムはシステムID (CoC ID)を導入しました。これによりシステムがFvttドキュメントから技能の例を認識できます。このページであなたは存在する{type}ドキュメントにidを設定できます。システムIDはすべての言語翻訳をサポートするために、英語版の名称を使用されるべきです。", "CoC7.TokenCreationRoll.Title": "ロール可能を検知", "CoC7.TokenCreationRoll.Prompt": "このコマはロール可能な能力値か技能があります。
どうしますか?", From 6583b124dc220711eb1cd93ac34805e5070288ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Lozano?= <97222117+lozanoje@users.noreply.github.com> Date: Mon, 19 Aug 2024 11:03:00 +0200 Subject: [PATCH 12/35] Update npc-sheet.html Placeholders for pass/fail --- templates/actors/npc-sheet.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/actors/npc-sheet.html b/templates/actors/npc-sheet.html index 376480dc..e81a753a 100644 --- a/templates/actors/npc-sheet.html +++ b/templates/actors/npc-sheet.html @@ -230,9 +230,9 @@
{{#if data.system.flags.locked}} - {{data.system.special.sanLoss.checkPassed}} + {{data.system.special.sanLoss.checkPassed}} / - {{data.system.special.sanLoss.checkFailled}} + {{data.system.special.sanLoss.checkFailled}} {{else}} / From 8f25214b78e5fa4e7c9a3344bb279c2b455e39b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Lozano?= <97222117+lozanoje@users.noreply.github.com> Date: Mon, 19 Aug 2024 11:04:03 +0200 Subject: [PATCH 13/35] Update en.json Placeholders por pass/fail --- lang/en.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lang/en.json b/lang/en.json index 7bd61f75..e55c995b 100644 --- a/lang/en.json +++ b/lang/en.json @@ -608,6 +608,8 @@ "CoC7.IntCheck": "Intelligence check", "CoC7.NoSanLoss": "No SAN loss", "CoC7.SANLoss": "Sanity Loss", + "CoC7.SANLossPass": "pass", + "CoC7.SANLossFail": "fail", "CoC7.SanityCheckPerformed": "You were exposed to a traumatic event.", "CoC7.InvoluntaryActionPerformed": "You lost self-control for a moment.", "CoC7.SanityLost": "Sanity points lost", From ffeff681dbb5377939318562c11f086300f3bac2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20E=2E=20Lozano?= Date: Tue, 20 Aug 2024 10:55:32 +0200 Subject: [PATCH 14/35] Fixed placeholders and added es.json --- lang/es.json | 153 ++++++++++++++++++++++---------- templates/actors/npc-sheet.html | 4 +- 2 files changed, 106 insertions(+), 51 deletions(-) diff --git a/lang/es.json b/lang/es.json index 08336a26..e5e799b5 100644 --- a/lang/es.json +++ b/lang/es.json @@ -7,9 +7,9 @@ "CoC7.Entities.Npc": "PNJ", "CoC7.Entities.Vehicle": "Vehículo", "CoC7.ActorIsTokenHint": "El actor es una ficha", - "CoC7.ActorDataLinked": "Los datos del actor están vinculados", - "CoC7.ActorDataNotLinked": "Los datos del actor NO están vinculados", - "CoC7.ActorIsSyntheticActor": "El actor es un actor sintético (instancia de actor)", + "CoC7.ActorDataLinked": "Datos del actor vinculados", + "CoC7.ActorDataNotLinked": "Datos del actor NO vinculados", + "CoC7.ActorIsSyntheticActor": "El actor es un actor sintético (en lugar de un actor)", "CoC7.Entities.Archetype": "Arquetipo", "CoC7.Entities.Book": "Tomo", @@ -135,6 +135,7 @@ "CoC7.Initiative": "Iniciativa", "CoC7.Cast": "Lanzamiento", + "CoC7.CastHidden": "Lanzar oculto", "CoC7.SanityCost": "Coste COR", "CoC7.PowerCost": "Coste POD", "CoC7.HitPointsCost": "Coste PVs", @@ -171,12 +172,12 @@ "CoC7.PushingSkill": ": ¡forzando tirada!", "CoC7.PushSkill": "Forzar tirada", "CoC7.PushedRoll": "(tirada forzada)", - "CoC7.SpendLuck": "Gastar {luckNeededValue} puntos de Suerte para superar la tirada", + "CoC7.SpendLuck": "Gastar {luckNeededValue} puntos de suerte para superar la tirada", "CoC7.LuckSpent": "{luckAmount} puntos de Suerte gastados para superar la tirada", "CoC7.LuckSpentAlt": "Suerte gastada", - "CoC7.LuckError": "{actorName} no tiene suficiente Suerte para superar la tirada", - "CoC7.LuckNotEnough": "{name} no tiene suficiente Suerte para superar la tirada", - "CoC7.UpgradeSuccessWithLuck": "Mejora a éxito {difficultyName} usando {luckToSpend} puntos de suerte.", + "CoC7.LuckError": "{actorName} no tiene suficiente suerte para superar la tirada", + "CoC7.LuckNotEnough": "{name} no tiene suficiente suerte para superar la tirada", + "CoC7.UpgradeSuccessWithLuck": "Mejora a éxito {difficultyName} usando {luckToSpend} puntos de suerte", "CoC7.check.AutoSuccess": "Éxito Autom.", "CoC7.check.AutoFailure": "Fallo Autom.", "CoC7.RevealCheck": "Mostrar tirada", @@ -257,7 +258,7 @@ "CoC7.NoResponse": "No reaccionar", "CoC7.OutNumbered": "Superado", "CoC7.combatCard.surprised": "Sorprendido", - "CoC7.combatCard.autoSuccess": "Éxito Autom.", + "CoC7.combatCard.autoSuccess": "Éxito Auto.", "CoC7.combatCard.automaticSuccess": "Éxito Automático", "CoC7.Advantage": "Ventaja", "CoC7.Disadvantage": "Desventaja", @@ -267,11 +268,11 @@ "CoC7.TitleSurprised": "Añadir 1 dado de bonificación por objetivo sorprendido", "CoC7.TitleAutoSuccess": "El ataque impacta automáticamente", "CoC7.WinnerRollDamage": "{name} ha ganado. Tirar daño", - "CoC7.InitiatorMissed": "{name} ha fallado.", + "CoC7.InitiatorMissed": "{name} falló.", "CoC7.NoWinner": "Ambas partes han fallado", "CoC7.DodgeSuccess": "{name} ha esquivado!", "CoC7.ManeuverSuccess": "La maniobra {name} ha tenido éxito", - "CoC7.AttackSuccess": "{name} ha asestado un golpe.", + "CoC7.AttackSuccess": "{name} impactó con éxito.", "CoC7.InflictPain": "Aplicar daño", "CoC7.AdvantageAttacker": "Ventaja: Atacante", "CoC7.AdvantageDefender": "Ventaja: Defensor", @@ -280,7 +281,7 @@ "CoC7.Damage": "Daño", "CoC7.TotalDamage": "Daño total", "CoC7.CheckFailed": "Prueba fallida", - "CoC7.CheckPassed": "Prueba exitosa", + "CoC7.CheckPassed": "Prueba con éxito", "CoC7.CheckMemoryRepressed": "Recuerdo reprimido", "CoC7.combatCard.dive4cover": "Ponerse a Cubierto", @@ -307,17 +308,17 @@ "CoC7.RollDamage": "Tirada de daño", "CoC7.BulletsFired": "Balas disparadas", "CoC7.Shots": "Disparos", - "CoC7.Shoot": "Disparo", + "CoC7.Shoot": "Disparar", "CoC7.ShotBullets": "Disparar {bullets} tiros al objetivo {actor}", "CoC7.ShotVoley": "Disparando una ráfaga de {bullets} tiros al objetivo {actor}", "CoC7.rangeCombatCard.AimingTitle": "Añade 1 dado de bonificación al primer disparo", "CoC7.rangeCombatCard.CoverTitle": "1 dado de penalización. El objetivo tiene cobertura o se ha puesto a cubierto", "CoC7.rangeCombatCard.PointBlankRangeTitle": "1 dado de bonificación. Objetivo a distancia de bocajarro", - "CoC7.rangeCombatCard.BigTargetTitle": "1 dado de bonificación por objetivo grande (Corpulencia > 4)", + "CoC7.rangeCombatCard.BigTargetTitle": "1 dado de bonificación por objetivo grande (corpulencia > 4)", "CoC7.rangeCombatCard.SmallTargetTitle": "1 dado de penalización por objetivo pequeño", "CoC7.rangeCombatCard.NormalTargetTitle": "Objetivo de tamaño normal, sin bonificación/penalización", "CoC7.rangeCombatCard.InMeleeTitle": "1 dado de penalización. Objetivo trabado en combate cuerpo a cuerpo", - "CoC7.rangeCombatCard.FastMovingTargetTitle": "1 dado de penalización. Objetivo veloz (MOV 8+) y se mueve rápidamente", + "CoC7.rangeCombatCard.FastMovingTargetTitle": "1 dado de penalización. Objetivo veloz (MOV 8+) moviéndose rápido", "CoC7.rangeCombatCard.SurprisedTargetTitle": "1 dado de bonificación por objetivo sorprendido", "CoC7.meleeCombatDamageTakes": "recibe", @@ -373,14 +374,15 @@ "CoC7.EraPulp": "Pulp Cthulhu", "CoC7.EraModern": "Época Actual", "CoC7.EraModernPulp": "Época Actual - Pulp", - "CoC7.EraRegency": "Regencia Cthulhu", - "CoC7.EraRegencyPulp": "Regencia Cthulhu - Pulp", - "CoC7.Eras": "Épocas de Cthulhu", + "CoC7.EraRegency": "Cthulhu Regencia", + "CoC7.EraRegencyPulp": "Cthulhu Regencia - Pulp", + "CoC7.EraReignOfTerror": "Reinado del Terror", + "CoC7.Eras": "Épocas Cthulhu", "CoC7.EraAvailability": "Disponibilidad", "CoC7.SkillNoAdjustments": "Sin ajustes", "CoC7.SkillNoXpGain": "Sin ganancia de EXP", - "CoC7.SkillXpGainDisabled": "Ganancia de EXP deshabilitada.", + "CoC7.SkillXpGainDisabled": "Ganancia de EXP deshabilitada", "CoC7.SkillSpecial": "Especialización", "CoC7.SkillRarity": "Infrecuente", "CoC7.SkillRarityShort": "[IN]", @@ -388,6 +390,7 @@ "CoC7.SkillCombat": "Combate", "CoC7.SkillFighting": "Combatir", "CoC7.SkillFirearm": "Armas de fuego", + "CoC7.SkillRanged": "A distancia", "CoC7.SkillRequiresName": "Nombre requerido", "CoC7.SkillKeepBaseValue": "Mantener valor base", "CoC7.SkillPickNameOnly": "Seleccionar espelización", @@ -428,11 +431,21 @@ "CoC7.FightingSpecializationName": "Combatir", "CoC7.UnarmedWeaponName": "Desarmado", "CoC7.FirearmSpecializationName": "Armas de fuego", + "CoC7.RangedSpecializationName": "A distancia", "CoC7.DriveSpecializationName": "Conducir", "CoC7.PilotSpecializationName": "Pilotar", + "CoC7.LanguageSpecializationName": "Lengua", "CoC7.AnySpecName": "Genérica", "CoC7.BoutOfMadnessName": "Episodio de Locura", "CoC7.InsanityName": "Locura", + + "CoC7.SkillNameHandgun": "Arma corta", + "CoC7.SkillNameRifle": "Fusil", + "CoC7.SkillNameShotgun": "Escopeta", + "CoC7.SkillNameRifleShotgun": "Fusil/escopeta", + "CoC7.SkillNameSmb": "Subfusil", + "CoC7.SkillNameMachinGun": "Ametralladora", + "CoC7.SkillNameLaunch": "Lanzar", "CoC7.NewSkillName": "nueva habilidad", "CoC7.AddSkill": "Añadir habilidad", @@ -501,6 +514,10 @@ "CoC7.LinkCheckDiff": "Tirada [{difficulty}] de {name}", "CoC7.LinkCheckModif": "Tirada de {name} ({modifier}): ", "CoC7.LinkCheckDiffModif": "Tirada [{difficulty}] de {name} ({modifier})", + "CoC7.LinkCheckPushing": " prueba de {name} - forzando", + "CoC7.LinkCheckDiffPushing": " prueba[{difficulty}] de {name} - forzando", + "CoC7.LinkCheckModifPushing": " prueba de {name} - forzando({modifier})", + "CoC7.LinkCheckDiffModifPushing": "prueba [{difficulty}] de {name} - forzando({modifier})", "CoC7.LinkSanLoss": "Tirada de COR, ({sanMin}/{sanMax})", "CoC7.LinkSanLossDiff": "Tirada [{difficulty}] de COR, ({sanMin}/{sanMax})", "CoC7.LinkSanLossModif": "Tirada de COR ({modifier}), ({sanMin}/{sanMax})", @@ -534,19 +551,26 @@ "CoC7.MonetaryValueCash": "Efectivo", "CoC7.MonetaryValueAssets": "Bienes", "CoC7.MonetaryValueSpendingLevel": "Gastos", - "CoC7.MonetaryFormatTitle": "Formato de moneda :", + "CoC7.MonetaryFormatTitle": "Formato moneda :", "CoC7.MonetaryFormatDecimalLeft": "Decimal (?0.00)", "CoC7.MonetaryFormatDecimalRight": "Decimal (0.00 ?)", "CoC7.MonetaryFormatIntegerLeft": "Entero (?0)", "CoC7.MonetaryFormatIntegerRight": "Entero (0 ?)", "CoC7.MonetaryFormatLsd": "£sd", "CoC7.MonetaryFormatRoman": "Romano", - "CoC7.MonetaryDefaultPenniless": "Indigente", + "CoC7.MonetaryDefaultPenniless": "Sin blanca", + "CoC7.MonetaryDefaultDestitute": "Indigente", "CoC7.MonetaryDefaultPoor": "Pobre", "CoC7.MonetaryDefaultAverage": "Clase media", + "CoC7.MonetaryDefaultLower": "Clase baja", + "CoC7.MonetaryDefaultMiddle": "Clase media emergente / Profesional iniciado", "CoC7.MonetaryDefaultWealthy": "Acomodado", + "CoC7.MonetaryDefaultEstablished": "Baja nobleza / Profesional establecido", + "CoC7.MonetaryDefaultProfessional": "Media nobleza / Profesional rico", + "CoC7.MonetaryDefaultGentry": "Alta nobleza", "CoC7.MonetaryDefaultRich": "Rico", - "CoC7.MonetaryDefaultSuperRich": "Súperrico", + "CoC7.MonetaryDefaultSuperRich": "Superrico", + "CoC7.MonetaryDefaultAristocracy": "Aristócrata", "CoC7.PossessionsNotes": "Notas :", "CoC7.PossessionsNotesHolder": "Notas", @@ -558,7 +582,7 @@ "CoC7.BackgroundSectionMoveDown": "Bajar", "CoC7.BackgroundEncounters": "Pérdida debido a Entidades Desconocidas", "CoC7.BackgroundFlags": "Etiquetas", - "CoC7.BackgroundFlagsMythosExperienced": "recompenmsado con 5% de locura por Mitos", + "CoC7.BackgroundFlagsMythosExperienced": "recompensado con 5% de locura por Mitos", "CoC7.BackgroundFlagsMythosHardened": "Curtido en los Mitos", "CoC7.SanityLossEncounters": "Encuentros de pérdida de COR", @@ -584,12 +608,14 @@ "CoC7.IntCheck": "Tirada de INT", "CoC7.NoSanLoss": "Sin pérdida de COR", "CoC7.SANLoss": "Pérdida de COR", + "CoC7.SANLossPass": "éxito", + "CoC7.SANLossFail": "fracaso", "CoC7.SanityCheckPerformed": "Has experimentado un evento traumático", "CoC7.InvoluntaryActionPerformed": "Pierdes el autocontrol durante unos instantes", "CoC7.SanityLost": "Puntos de COR perdidos", "CoC7.MemoryRepressed": "Tu mente ha logrado reprimir tus recuerdos y los ha enterrado en el subconsciente", "CoC7.RememberEverything": "Eres plenamente consciente de lo sucedido", - "CoC7.BoutOfMadnesslasted": "Tu episodio de locula dura", + "CoC7.BoutOfMadnesslasted": "Tu episodio de locura dura", "CoC7.EnteringBoutOfMadness": "Sufres un episodio de locura", "CoC7.GrowingAccustomedToAwfulness": "Comienzas a acostumbrarte al horror (se ha limitado la pérdida de COR)", "CoC7.ImmuneToAwfulness": "Tu mente es inmune a esta atrocidad (no hay perdida de COR)", @@ -605,7 +631,7 @@ "CoC7.BoutRealTime": "Episodio de locura: en tiempo real", "CoC7.BoutSummary": "Episodio de locura: resumidos", "CoC7.EndBoutOfMadness": "Fin del episodio de locura", - "CoC7.InsanityType": "Tipe de locura", + "CoC7.InsanityType": "Tipo de locura", "CoC7.Phobia": "Fobia", "CoC7.Mania": "Manía", "CoC7.MaxSanloss": "Pérdida máx.", @@ -613,9 +639,9 @@ "CoC7.AlreadyLost": "Perdidos actualmente", "CoC7.AlreadyEncountered": "Encontrado previamente", "CoC7.AlreadyEncounteredInformation": "Encontrado previamente: {reason} perdidos {lost}/{max}", - "CoC7.CreatureMaxLoss": "Pérdida máx. por criatura", - "CoC7.MaxLossToCreature": "Pérdida máx. por esta criatura", - "CoC7.MaxPossibleSanLoss": "Pérdida máx. posible", + "CoC7.CreatureMaxLoss": "Pérdida máx. por esta criatura", + "CoC7.MaxLossToCreature": "Pérdida restante por esta criatura", + "CoC7.MaxPossibleSanLoss": "Máx. pérdida posible", "CoC7.ResetCreatureSan": "Restablecer historial con esta criatura", "CoC7.ResetSpecieSan": "Restablecer historial con esta especie", "CoC7.KeepData": "Mantener historial con esta criatura", @@ -829,12 +855,12 @@ "CoC7.CommonSkills": "Habilidades comunes", "CoC7.OptionSkills": "Grupos de habilidades a elegir", "CoC7.ChoiceNumber": "Opciones", - "CoC7.Choose": "Cantidad a elegir", + "CoC7.Choose": "Número a escoger entre", "CoC7.Chosen": "Escogido", - "CoC7.EmptySkillList": "Añada una habilidad arrastrándola aquí", - "CoC7.EmptyItemList": "Añada un objeto arrastrándolo aquí", - "CoC7.EmptyCharacterSkillList": "Añada una configuración, ocupación o habilidad arrastrándolas aquí", - "CoC7.PersonalSpeciality": "Número de especialidades personales o de la época", + "CoC7.EmptySkillList": "Añada una habilidad soltándola aquí", + "CoC7.EmptyItemList": "Añada un objeto soltándolo aquí", + "CoC7.EmptyCharacterSkillList": "Añada una configuración, ocupación o habilidad soltándolas aquí", + "CoC7.PersonalSpecialityPlaceholder": "otra(s) habilidad(es) como especialidades personales o de época", "CoC7.AdditionalSkills": "Habilidades adicionales", "CoC7.SkillSelectionWindow": "Seleccione habilidades opcionales", "CoC7.SelectPersonalSkills": "Seleccione {number} habilidades(s) como intereses personales", @@ -843,8 +869,8 @@ "CoC7.ResetArchetype": "Reiniciar Arquetipo", "CoC7.ResetArchetypeHint": "El Actor {name} ya tiene un arquetipo. ¿Desea reiniciarlo?", "CoC7.CreditOutOfRange": "El Crédito debe están comprendido entre {min} y {max}", - "CoC7.BioSections": "Secciones de trasfondo", - "CoC7.BioSectionName": "Nombre de la sección de trasfondo", + "CoC7.BioSections": "Secciones del trasfondo", + "CoC7.BioSectionName": "Nombre de la sección del trasfondo", "CoC7.SpendPoints": "Asignar puntos de características", "CoC7.RollCharac": "Tirar características", "CoC7.SelectCoreCharac": "Seleccione características básicas", @@ -859,7 +885,7 @@ "CoC7.UsePoints": "Usar puntos", "CoC7.UseRolls": "Usar tiradas", "CoC7.CoreCharacteristics": "Características Básicas", - "CoC7.BonusPoints": "Puntos adicionales", + "CoC7.BonusPoints": "Puntos Adicionales", "CoC7.SuggestedOccupations": "Sugerencias de ocupaciones", "CoC7.SuggestedTraits": "Rasgos Sugeridos", @@ -912,13 +938,14 @@ "CoC7.ErrorNoTokensSelected": "No se ha seleccionado una ficha", "CoC7.ErrorEvaluatingDamage": "Error al evaluar daño", + "CoC7.InfoSkillAddedAtBase": "Se ha añadido la habilidad {name} con porcentaje {percent}%", "CoC7.InfoLessSkillThanOptions": "Solo existen {skillCount} y {optionsCount} opciones, anadiéndose todas", "CoC7.InfoAllSkillsAlreadySelected": "Ya se han seleccionado todas las habilidades", "CoC7.MessageCheckRequestedWait": "El guardián ha pedido una tirada de {check}.
¡Espere a que se lo confirme antes de tirar!
", "CoC7.MessageTargetCheckRequested": "El guardián ha pedido a {name} una tirada de {check}", "CoC7.MessageTitleSelectSingleUserForTarget": "Qué usuario podrá responder al ataque", - "CoC7.MessageSelectSingleUserForTarget": "Esta ficha está controlada por varios usuarios, por favor, seleccione que usuario podrá responder al ataque", + "CoC7.MessageSelectSingleUserForTarget": "Esta ficha está controlado por varios usuarios, por favor, seleccione qué usuario podrá responder al ataque", "CoC7.MessageBoutOfMadnessTableNotFound": "No se ha encontrado el resultado de la tabla de locura, por favor, compruebe que se han creado las tablas", "CoC7.MessageBoutOfMadnessItemNotFound": "No se ha encontrado el resultado de la tabla de locura, por favor, compruebe que se han creado los estatus", "CoC7.MessageRollingCharacteristic": "Tirando atributo {label}: {formula}", @@ -936,7 +963,7 @@ "CoC7.Disable": "Deshabilitar", "CoC7.Duration": "Duración", - "CoC7.ActorImporter": "Importador de actores", + "CoC7.ActorImporter": "Importar actor", "CoC7.ActorImporterSummary": "Importa un PNJ o criatura a partir de sus estadísticas y descripción. Solo deberá copiar sus estadísticas en formato texto plano", "CoC7.PasteTheDataBelow": "Pegue más abajo el texto sin formato", "CoC7.TextFieldInvalidCharacters": "Caracteres inválidos en el texto, por favor, revíselo o será eliminado", @@ -956,6 +983,7 @@ "CoC7.German": "Alemán", "CoC7.Polish": "Polaco", "CoC7.TraditionalChinese": "Chino tradicional", + "CoC7.Japanese": "Japonés", "CoC7.SelectSourceLanguage": "Seleccione el idioma del texto original", "CoC7.ImportedUnnamedCharacter": "Se ha importado personaje 'unnamed'", "CoC7.CreatedImportedCharactersFolder": "Creada carpeta 'Personajes importados'", @@ -1005,8 +1033,8 @@ "CoC7.Migrate.ErrorItem": "Migración de sistema CoC7 para el objeto {name} fallida: {message}", "CoC7.Migrate.ErrorActor": "Migración de sistema CoC7 para el actor {name} fallida: {message}", - "CoC7.System.Documentation": "Consulte el manual del sistema CoC7", - + "CoC7.System.Documentation": "Manual del sistema CoC7", + "CoC7.Settings.CoreRules.Title": "Reglas opcionales del Manual del Guardián", "CoC7.Settings.Rules.Name": "Variantes/reglas opcionales", "CoC7.Settings.Rules.Label": "Configurar variantes/reglas opcionales", @@ -1050,9 +1078,9 @@ "CoC7.MessageTitleSelectUserToGiveTo": "Dar objeto a otro personaje", "CoC7.MessageSelectUserToGiveTo": "¿A qué personaje quiere darle el objeto?", - "CoC7.MessageDistanceCalculationFailure": "No es posible calcular la distancia entre las fichas, por favor, use la hoja de personaje del icono", + "CoC7.MessageDistanceCalculationFailure": "No es posible calcular la distancia entre las fichas, por favor, use la hoja de personaje de la ficha", - "CoC7.ToolTipSkill": "
  1. Clic izquierdo Tirada con opciones
  2. Mayús + clic izquierdo Tirada inmediata a dificultad normal
  1. Clic derecho Tirada enfrentada con opciones
  2. Mayús + clic derecho Tirada enfrentada inmediata
  1. Alt/Opción + clic derecho Tirada combinada con opciones
  2. Mayús + Alt/Opción + clic derecho Tirada combinada inmediata
", + "CoC7.ToolTipSkill": "
  1. Clic izquierdo tirada con opciones
  2. Mayús + clic izquierdo Tirada inmediata a dificultad normal
  1. Clic derecho Tirada enfrentada con opciones
  2. Mayús + clic derecho Tirada enfrentada inmediata
  1. Alt/Opción + clic derecho Tirada combinada con opciones
  2. Mayús + Alt/Opción + clic derecho Tirada combinada inmediata
", "CoC7.ToolTipKeeperSkill": "
  1. CTRL + clic izquierdo Crear enlace a tirada
  2. Mayús + Ctrl + clic izquierdo Crear enlace a tirada con modificadores
  3. {other}
", "CoC7.ToolTipKeeperStandbySkill": "
  • Clic izquierdo Petición de tirada a {name}
  • ", "CoC7.ToolTipDB": "
    1. Clic izquierdo Tirada inmediata
    ", @@ -1082,15 +1110,15 @@ "SETTINGS.DefaultDifficultyHint": "Puedes indicar la dificultad por defecto de las tiradas. Desconocida lanzará tiradas sin que el jugador conozca la dificultad", "SETTINGS.CheckDifficultyRegular": "Dificultad por defecto", "SETTINGS.CheckDifficultyUnknown": "Dificultad desconocida", - "SETTINGS.showIconsOnly": "En la hoja resumen, mostrar solo los iconos en la lista de habilidades.", - "SETTINGS.UseToken": "Usar imagen de ficha", - "SETTINGS.UseTokenHint": "Usar la imagen de ficha en lugar de los retratos en las cartas del chat", + "SETTINGS.showIconsOnly": "En la hoja resumen, mostrar solo los iconos en la lista de habilidades", + "SETTINGS.UseToken": "Usar imagen de la ficha", + "SETTINGS.UseTokenHint": "Usar en las tarjetas del chat la imagen de la ficha en lugar del retrato", "SETTINGS.TrustedCanModfyChatCard": "Permitir que los usuarios de confianza modifiquen las tarjetas del chat", "SETTINGS.TrustedCanModfyChatCardHint": "Al habilitar esta opción se dará permisos a los usuarios de confianza modificar las opciones de las tarjetas del chat. Aunque no podrán ver las secciones del GM", "SETTINGS.TrustedCanSeeChatCard": "Permitir que los usuarios de confianza vean las secciones del GM", "SETTINGS.TrustedCanSeeChatCardHint": "Al habilitar esta opción se dará permisos a los usuarios de confianza ver las secciones del GM en las tarjetas del chat. ¡Use esta opción con precaución!", "SETTINGS.DisplayActorOnCard": "Mostrar actor en carta", - "SETTINGS.DisplayActorOnCardHint": "Mostrar la imagen/ficha del actor en las cartas de chat de combate", + "SETTINGS.DisplayActorOnCardHint": "Mostrar la imagen/ficha del actor en las tarjetas del chat de combate", "SETTINGS.InitiativeRule": "Mecánica de cálculo de iniciativa", "SETTINGS.InitiativeRuleHint": "Puedes elegir entre la iniciativa básica (valores de DES) o la regla opcional (tirada de DES)", "SETTINGS.InitiativeRuleBasic": "Básica", @@ -1103,6 +1131,8 @@ "SETTINGS.PulpRulesHint": "Permite usar las reglas de Pulp Cthulhu (Arquetipos, Talentos, PV), ¡en fase de desarrollo!", "SETTINGS.developmentRollForLuck": "Recuperación de puntos de suerte", "SETTINGS.developmentRollForLuckHint": "Cada jugador puede hacer una tirada para recuperar suerte en la fase de desarrollo", + "SETTINGS.allowMythosHardenedTitle": "Curtido por los Mitos", + "SETTINGS.allowMythosHardenedHint": "Permitir reducción de pérdida de Cordura por estar curtido por los Mitos", "SETTINGS.displayPlayerNameOnSheet": "Mostrar nombre del jugador en la hoja de personaje", "SETTINGS.DisregardAmmo": "Ignorar la munición", "SETTINGS.DisregardAmmoHint": "Al activar esta opción no se tendrán en cuenta la munición cargada en el arma a la hora de disparar", @@ -1176,8 +1206,14 @@ "SETTINGS.AdviseAllPlayer": "A todos los jugadores", "SETTINGS.OneBlockBackStory": "Trasfondo en un solo bloque", "SETTINGS.OneBlockBackStoryHint": "Convertir el transfondo en un solo bloque de edición, se pueden añadir formateo y pegar enlaces", + "SETTINGS.TokenDropMode": "Cuando se crea un PNJ :", + "SETTINGS.TokenDropModeHint": "Defina el comportamiento por defecto cunado se suelta un PNJ a la escena que tiene definidas fórmulas en las características o habilidades.", + "SETTINGS.TokenDropModeAsk": "Preguntar qué hacer", + "SETTINGS.TokenDropModeRoll": "Tirar lo que sea posible", + "SETTINGS.TokenDropModeAverage": "Promediar tiradas", + "SETTINGS.TokenDropModeIgnore": "No hacer nada", "SETTINGS.EnableStatusIcons": "Activar iconos de estado", - "SETTINGS.EnableStatusIconsHint": "Determina si se deben mostrar de los efectos de combate y cordura en las fichas", + "SETTINGS.EnableStatusIconsHint": "Determina si se deben mostrar en las fichas los iconos tanto de efectos de combate como de cordura", "SETTINGS.ShowExperimentalFeatures": "Mostrar características experimentales", "SETTINGS.ShowExperimentalFeaturesHint": "Su mundo puede corromperse en próximas versiones si usa estas características. Solo para pruebas, no las use en sus mundos de juego", "CoC7.ExperimentalFeaturesWarning": "Esta característica está en desarrollo y no se recomienda su uso en sus mundos de juego", @@ -1196,8 +1232,8 @@ "CoC7.EffectNew": "Nuevo efecto", "CoC7.EffectAppliedCantOverride": "Efecto activo aplicado. No puede modificar [{name}]. Desactive el correspondiente efecto para cambiar este valor", - - "CoC7.InvestigatorWizard.Title": "Asistente de creación de investigadores", + + "CoC7.InvestigatorWizard.Title": "Crear investigador", "CoC7.InvestigatorWizard.TitleKeeperConfiguration": "Configuración para el Guardián", "CoC7.InvestigatorWizard.TitleSelectSetup": "Ajustes del investigador", "CoC7.InvestigatorWizard.TitleSelectArchetype": "Selección de arquetipo", @@ -1298,5 +1334,24 @@ "CoC7.TokenCreationRoll.Title": "Fórmulas detectadas", "CoC7.TokenCreationRoll.Prompt": "Esta ficha tiene fórmulas para las características o habilidades.
    ¿Qué quiere hacer?", "CoC7.TokenCreationRoll.ButtonRoll": "Tirar todo", - "CoC7.TokenCreationRoll.ButtonAverage": "Todo a promedio" + "CoC7.TokenCreationRoll.ButtonAverage": "Todo a promedio", + "CoC7.TokenCreationRoll.Rolled": "Se han tirado las características y habilidades de {name}", + "CoC7.TokenCreationRoll.Averaged": "Se han definido a valores promedio las características y habilidades de {name}", + + + "CoC7.RealRollDecaderPlaceholderName": "10's", + + "CoC7.Temporary": "Temporal", + "CoC7.Passive": "Pasiva", + "CoC7.Inactive": "Inactiva", + "CoC7.Suppressed": "Suprimida", + "CoC7.Unavailable": "No disponible", + + "CoC7.PickWhichActorTitle": "Elegir como quién tirar", + "CoC7.PickWhichActorDesc": "Tiene permiso de propietarios de varios Actores, seleccione uno para hacer las tiradas en su nombre", + "CoC7.WaitingOnUser": "Esperando Usuario", + "CoC7.ErrorRollAlreadyCompleted": "Tirada completada", + "CoC7.ErrorNoActorPermission": "No es el propietario de este Actor", + "CoC7.ErrorCombinedRollsRequireSingleActor": "No puede usar más de un Actor en una tirada combinada", + "CoC7.ErrorOpposedRollsLimitedToTwoActors": "Una tirada opuesta necesita dos Actores" } diff --git a/templates/actors/npc-sheet.html b/templates/actors/npc-sheet.html index e81a753a..7c851dcf 100644 --- a/templates/actors/npc-sheet.html +++ b/templates/actors/npc-sheet.html @@ -234,9 +234,9 @@ / {{data.system.special.sanLoss.checkFailled}} {{else}} - + / - + {{/if}}
    From 34ac718490c56c8074d08f977422fe1ca18f4d40 Mon Sep 17 00:00:00 2001 From: snap01 <43982555+snap01@users.noreply.github.com> Date: Fri, 23 Aug 2024 11:35:32 +0000 Subject: [PATCH 15/35] Updated translations list --- .github/TRANSLATIONS.md | 124 +++++++++++++++++++++------------------- 1 file changed, 65 insertions(+), 59 deletions(-) diff --git a/.github/TRANSLATIONS.md b/.github/TRANSLATIONS.md index 9dc76f1b..02d00ff9 100644 --- a/.github/TRANSLATIONS.md +++ b/.github/TRANSLATIONS.md @@ -2,78 +2,80 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry VTT better! Below is a list of translations keys on existing files that still need translated, based on `en.json`. Feel free to create a new `*.json` file for a language that is not shown here! -The **fr** translation is currently up to date +The **es** translation is currently up to date The following translations have more than 50 untranslated strings [are you able to help?](./ABANDONED.md) -[cn.json (431 untranslated strings)](./ABANDONED.md#cnjson) +[cn.json (433 untranslated strings)](./ABANDONED.md#cnjson) -[cs.json (616 untranslated strings)](./ABANDONED.md#csjson) +[cs.json (618 untranslated strings)](./ABANDONED.md#csjson) -[ko.json (213 untranslated strings)](./ABANDONED.md#kojson) +[ko.json (215 untranslated strings)](./ABANDONED.md#kojson) -[pt-BR.json (161 untranslated strings)](./ABANDONED.md#ptbrjson) +[pt-BR.json (163 untranslated strings)](./ABANDONED.md#ptbrjson) -[ru.json (83 untranslated strings)](./ABANDONED.md#rujson) +[ru.json (85 untranslated strings)](./ABANDONED.md#rujson) -[sv.json (399 untranslated strings)](./ABANDONED.md#svjson) +[sv.json (401 untranslated strings)](./ABANDONED.md#svjson) -[zh-TW.json (60 untranslated strings)](./ABANDONED.md#zhtwjson) +[zh-TW.json (62 untranslated strings)](./ABANDONED.md#zhtwjson) -|Key|de|es|it|ja|pl|uk| +|Key|de|fr|it|ja|pl|uk| |:---|:---:|:---:|:---:|:---:|:---:|:---:| -|**Remaining**:|**12**|**49**|**3**|**4**|**11**|**48**| -|[CoC7.CastHidden](#coc7casthidden)|❌|❌|❌|❌|✅|❌| -|[CoC7.EraReignOfTerror](#coc7erareignofterror)|✅|❌|✅|✅|✅|❌| -|[CoC7.ErrorCombinedRollsRequireSingleActor](#coc7errorcombinedrollsrequiresingleactor)|✅|❌|✅|✅|✅|❌| -|[CoC7.ErrorNoActorPermission](#coc7errornoactorpermission)|✅|❌|✅|✅|✅|❌| -|[CoC7.ErrorOpposedRollsLimitedToTwoActors](#coc7erroropposedrollslimitedtotwoactors)|✅|❌|✅|✅|✅|❌| -|[CoC7.ErrorRollAlreadyCompleted](#coc7errorrollalreadycompleted)|✅|❌|✅|✅|✅|❌| -|[CoC7.Inactive](#coc7inactive)|✅|❌|✅|✅|✅|❌| -|[CoC7.InfoSkillAddedAtBase](#coc7infoskilladdedatbase)|✅|❌|✅|✅|✅|❌| -|[CoC7.Japanese](#coc7japanese)|❌|❌|✅|✅|✅|❌| -|[CoC7.LanguageSpecializationName](#coc7languagespecializationname)|❌|❌|✅|✅|✅|❌| -|[CoC7.LinkCheckDiffModifPushing](#coc7linkcheckdiffmodifpushing)|✅|❌|✅|✅|✅|❌| -|[CoC7.LinkCheckDiffPushing](#coc7linkcheckdiffpushing)|✅|❌|✅|✅|✅|❌| -|[CoC7.LinkCheckModifPushing](#coc7linkcheckmodifpushing)|✅|❌|✅|✅|✅|❌| -|[CoC7.LinkCheckPushing](#coc7linkcheckpushing)|✅|❌|✅|✅|✅|❌| -|[CoC7.MonetaryDefaultAristocracy](#coc7monetarydefaultaristocracy)|✅|❌|✅|✅|❌|❌| -|[CoC7.MonetaryDefaultDestitute](#coc7monetarydefaultdestitute)|✅|❌|✅|✅|❌|❌| -|[CoC7.MonetaryDefaultEstablished](#coc7monetarydefaultestablished)|✅|❌|✅|✅|❌|❌| -|[CoC7.MonetaryDefaultGentry](#coc7monetarydefaultgentry)|✅|❌|✅|✅|❌|❌| -|[CoC7.MonetaryDefaultLower](#coc7monetarydefaultlower)|✅|❌|✅|✅|❌|❌| -|[CoC7.MonetaryDefaultMiddle](#coc7monetarydefaultmiddle)|✅|❌|✅|✅|❌|❌| -|[CoC7.MonetaryDefaultProfessional](#coc7monetarydefaultprofessional)|✅|❌|✅|✅|❌|❌| -|[CoC7.Passive](#coc7passive)|✅|❌|✅|✅|✅|❌| -|[CoC7.PersonalSpecialityPlaceholder](#coc7personalspecialityplaceholder)|✅|❌|✅|❌|✅|✅| -|[CoC7.PickWhichActorDesc](#coc7pickwhichactordesc)|✅|❌|✅|✅|✅|❌| -|[CoC7.PickWhichActorTitle](#coc7pickwhichactortitle)|✅|❌|✅|✅|✅|❌| -|[CoC7.RangedSpecializationName](#coc7rangedspecializationname)|✅|❌|✅|✅|❌|❌| -|[CoC7.RealRollDecaderPlaceholderName](#coc7realrolldecaderplaceholdername)|✅|❌|✅|✅|❌|❌| -|[CoC7.SkillNameHandgun](#coc7skillnamehandgun)|❌|❌|✅|✅|✅|❌| -|[CoC7.SkillNameLaunch](#coc7skillnamelaunch)|❌|❌|✅|✅|✅|❌| -|[CoC7.SkillNameMachinGun](#coc7skillnamemachingun)|❌|❌|✅|✅|✅|❌| -|[CoC7.SkillNameRifle](#coc7skillnamerifle)|❌|❌|✅|✅|✅|❌| -|[CoC7.SkillNameRifleShotgun](#coc7skillnamerifleshotgun)|❌|❌|✅|✅|✅|❌| -|[CoC7.SkillNameShotgun](#coc7skillnameshotgun)|❌|❌|✅|✅|✅|❌| -|[CoC7.SkillNameSmb](#coc7skillnamesmb)|❌|❌|✅|✅|✅|❌| -|[CoC7.SkillRanged](#coc7skillranged)|✅|❌|✅|✅|❌|❌| -|[CoC7.Suppressed](#coc7suppressed)|✅|❌|✅|✅|❌|❌| -|[CoC7.Temporary](#coc7temporary)|✅|❌|✅|✅|✅|❌| -|[CoC7.TokenCreationRoll.Averaged](#coc7tokencreationrollaveraged)|✅|❌|✅|✅|✅|❌| -|[CoC7.TokenCreationRoll.Rolled](#coc7tokencreationrollrolled)|✅|❌|✅|✅|✅|❌| -|[CoC7.Unavailable](#coc7unavailable)|✅|❌|✅|✅|✅|❌| -|[CoC7.WaitingOnUser](#coc7waitingonuser)|✅|❌|✅|✅|✅|❌| -|[SETTINGS.TokenDropMode](#settingstokendropmode)|✅|❌|✅|✅|✅|❌| -|[SETTINGS.TokenDropModeAsk](#settingstokendropmodeask)|✅|❌|✅|✅|✅|❌| -|[SETTINGS.TokenDropModeAverage](#settingstokendropmodeaverage)|✅|❌|✅|✅|✅|❌| -|[SETTINGS.TokenDropModeHint](#settingstokendropmodehint)|✅|❌|✅|✅|✅|❌| -|[SETTINGS.TokenDropModeIgnore](#settingstokendropmodeignore)|✅|❌|✅|✅|✅|❌| -|[SETTINGS.TokenDropModeRoll](#settingstokendropmoderoll)|✅|❌|✅|✅|✅|❌| -|[SETTINGS.allowMythosHardenedHint](#settingsallowmythoshardenedhint)|❌|❌|❌|❌|✅|❌| -|[SETTINGS.allowMythosHardenedTitle](#settingsallowmythoshardenedtitle)|❌|❌|❌|❌|✅|❌| +|**Remaining**:|**14**|**2**|**5**|**3**|**13**|**50**| +|[CoC7.CastHidden](#coc7casthidden)|❌|✅|❌|✅|✅|❌| +|[CoC7.EraReignOfTerror](#coc7erareignofterror)|✅|✅|✅|✅|✅|❌| +|[CoC7.ErrorCombinedRollsRequireSingleActor](#coc7errorcombinedrollsrequiresingleactor)|✅|✅|✅|✅|✅|❌| +|[CoC7.ErrorNoActorPermission](#coc7errornoactorpermission)|✅|✅|✅|✅|✅|❌| +|[CoC7.ErrorOpposedRollsLimitedToTwoActors](#coc7erroropposedrollslimitedtotwoactors)|✅|✅|✅|✅|✅|❌| +|[CoC7.ErrorRollAlreadyCompleted](#coc7errorrollalreadycompleted)|✅|✅|✅|✅|✅|❌| +|[CoC7.Inactive](#coc7inactive)|✅|✅|✅|✅|✅|❌| +|[CoC7.InfoSkillAddedAtBase](#coc7infoskilladdedatbase)|✅|✅|✅|✅|✅|❌| +|[CoC7.Japanese](#coc7japanese)|❌|✅|✅|✅|✅|❌| +|[CoC7.LanguageSpecializationName](#coc7languagespecializationname)|❌|✅|✅|✅|✅|❌| +|[CoC7.LinkCheckDiffModifPushing](#coc7linkcheckdiffmodifpushing)|✅|✅|✅|✅|✅|❌| +|[CoC7.LinkCheckDiffPushing](#coc7linkcheckdiffpushing)|✅|✅|✅|✅|✅|❌| +|[CoC7.LinkCheckModifPushing](#coc7linkcheckmodifpushing)|✅|✅|✅|✅|✅|❌| +|[CoC7.LinkCheckPushing](#coc7linkcheckpushing)|✅|✅|✅|✅|✅|❌| +|[CoC7.MonetaryDefaultAristocracy](#coc7monetarydefaultaristocracy)|✅|✅|✅|✅|❌|❌| +|[CoC7.MonetaryDefaultDestitute](#coc7monetarydefaultdestitute)|✅|✅|✅|✅|❌|❌| +|[CoC7.MonetaryDefaultEstablished](#coc7monetarydefaultestablished)|✅|✅|✅|✅|❌|❌| +|[CoC7.MonetaryDefaultGentry](#coc7monetarydefaultgentry)|✅|✅|✅|✅|❌|❌| +|[CoC7.MonetaryDefaultLower](#coc7monetarydefaultlower)|✅|✅|✅|✅|❌|❌| +|[CoC7.MonetaryDefaultMiddle](#coc7monetarydefaultmiddle)|✅|✅|✅|✅|❌|❌| +|[CoC7.MonetaryDefaultProfessional](#coc7monetarydefaultprofessional)|✅|✅|✅|✅|❌|❌| +|[CoC7.Passive](#coc7passive)|✅|✅|✅|✅|✅|❌| +|[CoC7.PersonalSpecialityPlaceholder](#coc7personalspecialityplaceholder)|✅|✅|✅|❌|✅|✅| +|[CoC7.PickWhichActorDesc](#coc7pickwhichactordesc)|✅|✅|✅|✅|✅|❌| +|[CoC7.PickWhichActorTitle](#coc7pickwhichactortitle)|✅|✅|✅|✅|✅|❌| +|[CoC7.RangedSpecializationName](#coc7rangedspecializationname)|✅|✅|✅|✅|❌|❌| +|[CoC7.RealRollDecaderPlaceholderName](#coc7realrolldecaderplaceholdername)|✅|✅|✅|✅|❌|❌| +|[CoC7.SANLossFail](#coc7sanlossfail)|❌|❌|❌|❌|❌|❌| +|[CoC7.SANLossPass](#coc7sanlosspass)|❌|❌|❌|❌|❌|❌| +|[CoC7.SkillNameHandgun](#coc7skillnamehandgun)|❌|✅|✅|✅|✅|❌| +|[CoC7.SkillNameLaunch](#coc7skillnamelaunch)|❌|✅|✅|✅|✅|❌| +|[CoC7.SkillNameMachinGun](#coc7skillnamemachingun)|❌|✅|✅|✅|✅|❌| +|[CoC7.SkillNameRifle](#coc7skillnamerifle)|❌|✅|✅|✅|✅|❌| +|[CoC7.SkillNameRifleShotgun](#coc7skillnamerifleshotgun)|❌|✅|✅|✅|✅|❌| +|[CoC7.SkillNameShotgun](#coc7skillnameshotgun)|❌|✅|✅|✅|✅|❌| +|[CoC7.SkillNameSmb](#coc7skillnamesmb)|❌|✅|✅|✅|✅|❌| +|[CoC7.SkillRanged](#coc7skillranged)|✅|✅|✅|✅|❌|❌| +|[CoC7.Suppressed](#coc7suppressed)|✅|✅|✅|✅|❌|❌| +|[CoC7.Temporary](#coc7temporary)|✅|✅|✅|✅|✅|❌| +|[CoC7.TokenCreationRoll.Averaged](#coc7tokencreationrollaveraged)|✅|✅|✅|✅|✅|❌| +|[CoC7.TokenCreationRoll.Rolled](#coc7tokencreationrollrolled)|✅|✅|✅|✅|✅|❌| +|[CoC7.Unavailable](#coc7unavailable)|✅|✅|✅|✅|✅|❌| +|[CoC7.WaitingOnUser](#coc7waitingonuser)|✅|✅|✅|✅|✅|❌| +|[SETTINGS.TokenDropMode](#settingstokendropmode)|✅|✅|✅|✅|✅|❌| +|[SETTINGS.TokenDropModeAsk](#settingstokendropmodeask)|✅|✅|✅|✅|✅|❌| +|[SETTINGS.TokenDropModeAverage](#settingstokendropmodeaverage)|✅|✅|✅|✅|✅|❌| +|[SETTINGS.TokenDropModeHint](#settingstokendropmodehint)|✅|✅|✅|✅|✅|❌| +|[SETTINGS.TokenDropModeIgnore](#settingstokendropmodeignore)|✅|✅|✅|✅|✅|❌| +|[SETTINGS.TokenDropModeRoll](#settingstokendropmoderoll)|✅|✅|✅|✅|✅|❌| +|[SETTINGS.allowMythosHardenedHint](#settingsallowmythoshardenedhint)|❌|✅|❌|✅|✅|❌| +|[SETTINGS.allowMythosHardenedTitle](#settingsallowmythoshardenedtitle)|❌|✅|❌|✅|✅|❌| ##### CoC7.CastHidden ``` "CoC7.CastHidden": "Cast Hidden",``` ##### CoC7.EraReignOfTerror @@ -128,6 +130,10 @@ The following translations have more than 50 untranslated strings [are you able ``` "CoC7.RangedSpecializationName": "Ranged",``` ##### CoC7.RealRollDecaderPlaceholderName ``` "CoC7.RealRollDecaderPlaceholderName": "10's",``` +##### CoC7.SANLossFail +``` "CoC7.SANLossFail": "fail",``` +##### CoC7.SANLossPass +``` "CoC7.SANLossPass": "pass",``` ##### CoC7.SkillNameHandgun ``` "CoC7.SkillNameHandgun": "Handgun",``` ##### CoC7.SkillNameLaunch From 65e09d218c41654ef2467cb9cc06c20c92f1ca0f Mon Sep 17 00:00:00 2001 From: snap01 Date: Fri, 23 Aug 2024 11:35:33 +0000 Subject: [PATCH 16/35] [create-pull-request] automated change --- .github/ABANDONED.md | 42 ++++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/.github/ABANDONED.md b/.github/ABANDONED.md index 1755a255..b0607392 100644 --- a/.github/ABANDONED.md +++ b/.github/ABANDONED.md @@ -2,23 +2,23 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry VTT better! Below is a list of translations keys on existing files that still need translated, based on `en.json`. -[cn.json (431 untranslated strings)](#cnjson) +[cn.json (433 untranslated strings)](#cnjson) -[cs.json (616 untranslated strings)](#csjson) +[cs.json (618 untranslated strings)](#csjson) -[ko.json (213 untranslated strings)](#kojson) +[ko.json (215 untranslated strings)](#kojson) -[pt-BR.json (161 untranslated strings)](#ptbrjson) +[pt-BR.json (163 untranslated strings)](#ptbrjson) -[ru.json (83 untranslated strings)](#rujson) +[ru.json (85 untranslated strings)](#rujson) -[sv.json (399 untranslated strings)](#svjson) +[sv.json (401 untranslated strings)](#svjson) -[zh-TW.json (60 untranslated strings)](#zhtwjson) +[zh-TW.json (62 untranslated strings)](#zhtwjson) ## cn.json -431 untranslated strings +433 untranslated strings ``` "CoC7.ActorIsTokenHint": "Actor is a token", "CoC7.ActorDataLinked": "Actor data are linked", @@ -141,6 +141,8 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.SanityLossTypeValue": "Sanity points lost", "CoC7.SanityLossEncounter": "Sanity loss encounter", "CoC7.SanityLossImmunity": "Sanity loss immunity", +"CoC7.SANLossPass": "pass", +"CoC7.SANLossFail": "fail", "CoC7.AlreadyEncountered": "Already encountered", "CoC7.AlreadyEncounteredInformation": "Already encountered: {reason} lost {lost}/{max}", "CoC7.MaxPossibleSanLoss": "Max Possible loss", @@ -453,7 +455,7 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors" ``` ## cs.json -616 untranslated strings +618 untranslated strings ``` "CoC7.Entities.Character": "Character", "CoC7.Entities.Container": "Container", @@ -626,6 +628,8 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.SanityLossTypeValue": "Sanity points lost", "CoC7.SanityLossEncounter": "Sanity loss encounter", "CoC7.SanityLossImmunity": "Sanity loss immunity", +"CoC7.SANLossPass": "pass", +"CoC7.SANLossFail": "fail", "CoC7.AlreadyEncountered": "Already encountered", "CoC7.AlreadyEncounteredInformation": "Already encountered: {reason} lost {lost}/{max}", "CoC7.MaxPossibleSanLoss": "Max Possible loss", @@ -1073,7 +1077,7 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors" ``` ## ko.json -213 untranslated strings +215 untranslated strings ``` "CoC7.CustomSpecialisationLabel": "Custom label - {specialisation}", "CoC7.CastHidden": "Cast Hidden", @@ -1146,6 +1150,8 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.MonetaryDefaultSuperRich": "Super Rich", "CoC7.MonetaryDefaultAristocracy": "Aristocracy", "CoC7.SanityLossType": "Type", +"CoC7.SANLossPass": "pass", +"CoC7.SANLossFail": "fail", "CoC7.ErrorTokenIncorrect": "Unable to find selected token", "CoC7.RemoveParticipant": "Remove participant", "CoC7.RemoveParticipantHint": "Participant will be completely removed from the chase", @@ -1290,7 +1296,7 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors" ``` ## pt-BR.json -161 untranslated strings +163 untranslated strings ``` "CoC7.CastHidden": "Cast Hidden", "CoC7.EraRegency": "Regency Cthulhu - Standard", @@ -1347,6 +1353,8 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.MonetaryDefaultSuperRich": "Super Rich", "CoC7.MonetaryDefaultAristocracy": "Aristocracy", "CoC7.SanityLossType": "Type", +"CoC7.SANLossPass": "pass", +"CoC7.SANLossFail": "fail", "CoC7.ErrorTokenIncorrect": "Unable to find selected token", "CoC7.PersonalSpecialityPlaceholder": "other skill(s) as personal or era specialties", "CoC7.InfoSkillAddedAtBase": "This skill {name} has been added at {percent}%", @@ -1455,7 +1463,7 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors" ``` ## ru.json -83 untranslated strings +85 untranslated strings ``` "CoC7.CastHidden": "Cast Hidden", "CoC7.EraReignOfTerror": "Reign Of Terror", @@ -1480,6 +1488,8 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.MonetaryDefaultProfessional": "Average Gentry / Wealthy Professional", "CoC7.MonetaryDefaultGentry": "Wealthy Gentry", "CoC7.MonetaryDefaultAristocracy": "Aristocracy", +"CoC7.SANLossPass": "pass", +"CoC7.SANLossFail": "fail", "CoC7.MythosAlreadyEncountered": "Award Mythos Experience (+1%)", "CoC7.DisregardMythosGain": "No Mythos gain", "CoC7.MythosGain": "Mythos gain", @@ -1542,7 +1552,7 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors" ``` ## sv.json -399 untranslated strings +401 untranslated strings ``` "CoC7.ActorIsTokenHint": "Actor is a token", "CoC7.ActorDataLinked": "Actor data are linked", @@ -1639,6 +1649,8 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.MonetaryDefaultSuperRich": "Super Rich", "CoC7.MonetaryDefaultAristocracy": "Aristocracy", "CoC7.SanityLossType": "Type", +"CoC7.SANLossPass": "pass", +"CoC7.SANLossFail": "fail", "CoC7.AlreadyEncounteredInformation": "Already encountered: {reason} lost {lost}/{max}", "CoC7.InsertLocation": "Insert location", "CoC7.RemoveLocation": "Remove location", @@ -1945,7 +1957,7 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors" ``` ## zh-TW.json -60 untranslated strings +62 untranslated strings ``` "CoC7.CastHidden": "Cast Hidden", "CoC7.EraRegency": "Regency Cthulhu - Standard", @@ -1973,6 +1985,8 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.MonetaryDefaultGentry": "Wealthy Gentry", "CoC7.MonetaryDefaultAristocracy": "Aristocracy", "CoC7.SanityLossType": "Type", +"CoC7.SANLossPass": "pass", +"CoC7.SANLossFail": "fail", "CoC7.ErrorTokenIncorrect": "Unable to find selected token", "CoC7.PersonalSpecialityPlaceholder": "other skill(s) as personal or era specialties", "CoC7.InfoSkillAddedAtBase": "This skill {name} has been added at {percent}%", From 16f99f0cb3834eeec2bb4e54ac0118d1ee91a5a9 Mon Sep 17 00:00:00 2001 From: snap01 <43982555+snap01@users.noreply.github.com> Date: Fri, 23 Aug 2024 12:41:32 +0100 Subject: [PATCH 17/35] Update CHANGELOG.md --- .github/CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index 29b18173..c1a50437 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -7,10 +7,15 @@ Happy gaming ! ## Upcoming Release +**_!! FoundryVTT v10 is no longer supported !!_** + When not specified, all changes were made by @castanhocorreia, @HavlockV, and @snap01. +- Add placeholders for SAN loss to localization, thanks to @lozanoje #1587 - Explicitly set FoundryVTT v12 version of grid values, thanks to @Vicnasc #1564 - Update to French localization, thanks to @vonv #1580 and #1581 +- Update to Japanese localization, thanks to @doumoku #1586 +- Update to Spanish localization, thanks to @lozanoje #1587 ## Version 0.10.19 From 8106cd27851862d082978c43f7b1e9881053bb4e Mon Sep 17 00:00:00 2001 From: doumoku <126391338+doumoku@users.noreply.github.com> Date: Fri, 30 Aug 2024 02:26:05 +0900 Subject: [PATCH 18/35] Update ja.json --- lang/ja.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/ja.json b/lang/ja.json index 89c075b7..d72c7282 100644 --- a/lang/ja.json +++ b/lang/ja.json @@ -388,7 +388,7 @@ "CoC7.SkillRarityShort": "[UC]", "CoC7.SkillPush": "プッシュ可能", "CoC7.SkillCombat": "戦闘", - "CoC7.SkillFighting": "近接格闘", + "CoC7.SkillFighting": "近接戦闘", "CoC7.SkillFirearm": "射撃", "CoC7.SkillRanged": "遠隔", "CoC7.SkillRequiresName": "名前が必要", From ce046e2c7cf271d6990f40c9524cc7f142b52d27 Mon Sep 17 00:00:00 2001 From: doumoku <126391338+doumoku@users.noreply.github.com> Date: Sun, 1 Sep 2024 22:12:44 +0900 Subject: [PATCH 19/35] Update ja.json --- lang/ja.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lang/ja.json b/lang/ja.json index d72c7282..098261da 100644 --- a/lang/ja.json +++ b/lang/ja.json @@ -1024,12 +1024,12 @@ "CoC7.Migrate.UpdateCurrentScene": "現在シーンの移行", "CoC7.Migrate.Complete": "データ移行完了", - "CoC7.Migrate.ErrorDocumentPack": "Failed CoC7 system migration for document {name} in pack {collection}: {message}", + "CoC7.Migrate.ErrorDocumentPack": "{collection} packの資料 {name} に対するCoCシステムマイグレーションに失敗しました: {message}", "CoC7.Migrate.ErrorScene": "Failed CoC7 system migration for Scene {name}: {message}", "CoC7.Migrate.ErrorMacro": "Failed CoC7 system migration for Macro {name}: {message}", "CoC7.Migrate.ErrorTable": "Failed CoC7 system migration for Table {name}: {message}", - "CoC7.Migrate.ErrorItem": "Failed CoC7 system migration for Item {name}: {message}", - "CoC7.Migrate.ErrorActor": "Failed CoC7 system migration for Actor {name}: {message}", + "CoC7.Migrate.ErrorItem": "Failed CoC7 system migration for アイテム{name}: {message}", + "CoC7.Migrate.ErrorActor": "Failed CoC7 system migration for アクター{name}: {message}", "CoC7.System.Documentation": "CoC7 システムマニュアルを閲覧", From dedce8b80b3efe7e8138c7b0a160004ae3843ced Mon Sep 17 00:00:00 2001 From: doumoku <126391338+doumoku@users.noreply.github.com> Date: Wed, 4 Sep 2024 10:21:06 +0900 Subject: [PATCH 20/35] Update ja.json --- lang/ja.json | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lang/ja.json b/lang/ja.json index 098261da..b3cc9514 100644 --- a/lang/ja.json +++ b/lang/ja.json @@ -428,7 +428,7 @@ "CoC7.NewBioSectionName": "新規セクション", - "CoC7.FightingSpecializationName": "近接格闘", + "CoC7.FightingSpecializationName": "近接戦闘", "CoC7.UnarmedWeaponName": "素手", "CoC7.FirearmSpecializationName": "射撃", "CoC7.RangedSpecializationName": "遠隔", @@ -608,6 +608,8 @@ "CoC7.IntCheck": "INTロール", "CoC7.NoSanLoss": "正気度ポイントは喪失しない", "CoC7.SANLoss": "正気度喪失", + "CoC7.SANLossPass": "成功", + "CoC7.SANLossFail": "失敗", "CoC7.SanityCheckPerformed": "君は衝撃的な経験をした。", "CoC7.InvoluntaryActionPerformed": "君はしばらく自制心を失った。", "CoC7.SanityLost": "正気度ポイントを喪失", @@ -1024,12 +1026,12 @@ "CoC7.Migrate.UpdateCurrentScene": "現在シーンの移行", "CoC7.Migrate.Complete": "データ移行完了", - "CoC7.Migrate.ErrorDocumentPack": "{collection} packの資料 {name} に対するCoCシステムマイグレーションに失敗しました: {message}", - "CoC7.Migrate.ErrorScene": "Failed CoC7 system migration for Scene {name}: {message}", - "CoC7.Migrate.ErrorMacro": "Failed CoC7 system migration for Macro {name}: {message}", - "CoC7.Migrate.ErrorTable": "Failed CoC7 system migration for Table {name}: {message}", - "CoC7.Migrate.ErrorItem": "Failed CoC7 system migration for アイテム{name}: {message}", - "CoC7.Migrate.ErrorActor": "Failed CoC7 system migration for アクター{name}: {message}", + "CoC7.Migrate.ErrorDocumentPack": "{collection} packの資料 {name} に対するCoC7システムマイグレーションに失敗しました:{message}", + "CoC7.Migrate.ErrorScene": "シーン「{name}」のCoC7システムマイグレーションに失敗しました:{message}", + "CoC7.Migrate.ErrorMacro": "マクロ「{name}」のCoC7システムマイグレーションに失敗しました:{message}", + "CoC7.Migrate.ErrorTable": "ロール表「{name}」のCoC7システムマイグレーションに失敗しました:{message}", + "CoC7.Migrate.ErrorItem": "アイテム「{name}」のCoC7システムマイグレーションに失敗しました:{message}", + "CoC7.Migrate.ErrorActor": "アクター「{name}」のCoC7システムマイグレーションに失敗しました:{message}", "CoC7.System.Documentation": "CoC7 システムマニュアルを閲覧", From b89acb88e3c95aade3f3fafdcc1f29a40300c033 Mon Sep 17 00:00:00 2001 From: snap01 <43982555+snap01@users.noreply.github.com> Date: Thu, 5 Sep 2024 19:43:16 +0000 Subject: [PATCH 21/35] Updated translations list --- .github/TRANSLATIONS.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/TRANSLATIONS.md b/.github/TRANSLATIONS.md index 02d00ff9..37c44776 100644 --- a/.github/TRANSLATIONS.md +++ b/.github/TRANSLATIONS.md @@ -24,7 +24,7 @@ The following translations have more than 50 untranslated strings [are you able |Key|de|fr|it|ja|pl|uk| |:---|:---:|:---:|:---:|:---:|:---:|:---:| -|**Remaining**:|**14**|**2**|**5**|**3**|**13**|**50**| +|**Remaining**:|**14**|**2**|**5**|**1**|**13**|**50**| |[CoC7.CastHidden](#coc7casthidden)|❌|✅|❌|✅|✅|❌| |[CoC7.EraReignOfTerror](#coc7erareignofterror)|✅|✅|✅|✅|✅|❌| |[CoC7.ErrorCombinedRollsRequireSingleActor](#coc7errorcombinedrollsrequiresingleactor)|✅|✅|✅|✅|✅|❌| @@ -52,8 +52,8 @@ The following translations have more than 50 untranslated strings [are you able |[CoC7.PickWhichActorTitle](#coc7pickwhichactortitle)|✅|✅|✅|✅|✅|❌| |[CoC7.RangedSpecializationName](#coc7rangedspecializationname)|✅|✅|✅|✅|❌|❌| |[CoC7.RealRollDecaderPlaceholderName](#coc7realrolldecaderplaceholdername)|✅|✅|✅|✅|❌|❌| -|[CoC7.SANLossFail](#coc7sanlossfail)|❌|❌|❌|❌|❌|❌| -|[CoC7.SANLossPass](#coc7sanlosspass)|❌|❌|❌|❌|❌|❌| +|[CoC7.SANLossFail](#coc7sanlossfail)|❌|❌|❌|✅|❌|❌| +|[CoC7.SANLossPass](#coc7sanlosspass)|❌|❌|❌|✅|❌|❌| |[CoC7.SkillNameHandgun](#coc7skillnamehandgun)|❌|✅|✅|✅|✅|❌| |[CoC7.SkillNameLaunch](#coc7skillnamelaunch)|❌|✅|✅|✅|✅|❌| |[CoC7.SkillNameMachinGun](#coc7skillnamemachingun)|❌|✅|✅|✅|✅|❌| From fd406ab8911f2e921b30a657cdcb028263f5cf4b Mon Sep 17 00:00:00 2001 From: snap01 <43982555+snap01@users.noreply.github.com> Date: Thu, 5 Sep 2024 20:44:13 +0100 Subject: [PATCH 22/35] Update CHANGELOG.md --- .github/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index c1a50437..57c85a96 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -14,7 +14,7 @@ When not specified, all changes were made by @castanhocorreia, @HavlockV, and @s - Add placeholders for SAN loss to localization, thanks to @lozanoje #1587 - Explicitly set FoundryVTT v12 version of grid values, thanks to @Vicnasc #1564 - Update to French localization, thanks to @vonv #1580 and #1581 -- Update to Japanese localization, thanks to @doumoku #1586 +- Update to Japanese localization, thanks to @doumoku #1586 and #1591 - Update to Spanish localization, thanks to @lozanoje #1587 ## Version 0.10.19 From 596bc8ae7adf6a5dce4d253e5c86849e63d3eafd Mon Sep 17 00:00:00 2001 From: snap01 <43982555+snap01@users.noreply.github.com> Date: Mon, 9 Sep 2024 22:34:59 +0100 Subject: [PATCH 23/35] Update CoC ID Add update Actor Items based on CoC ID function Fix Compendium filter --- .github/ABANDONED.md | 194 ++++++++++-- .github/TRANSLATIONS.md | 185 +++++------- docs/en/coc-id-system.md | 10 +- lang/en.json | 17 +- module/actors/actor.js | 19 +- module/actors/sheets/base.js | 14 + module/apps/coc-id-actor-update-items.js | 149 ++++++++++ module/apps/coc-id-editor.js | 22 +- module/dice.js | 11 +- module/items/item.js | 27 +- module/manual/en/coc-id-system.md | 10 +- module/menu.js | 8 + module/scripts/coc-id.js | 296 ++++++++++--------- module/scripts/compendium-filter.js | 189 +++++++----- packs/system-doc.db | 2 +- templates/apps/coc-id-actor-update-items.hbs | 47 +++ templates/apps/coc-id-editor.hbs | 22 +- 17 files changed, 848 insertions(+), 374 deletions(-) create mode 100644 module/apps/coc-id-actor-update-items.js create mode 100644 templates/apps/coc-id-actor-update-items.hbs diff --git a/.github/ABANDONED.md b/.github/ABANDONED.md index b0607392..a5c17353 100644 --- a/.github/ABANDONED.md +++ b/.github/ABANDONED.md @@ -2,23 +2,25 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry VTT better! Below is a list of translations keys on existing files that still need translated, based on `en.json`. -[cn.json (433 untranslated strings)](#cnjson) +[cn.json (445 untranslated strings)](#cnjson) -[cs.json (618 untranslated strings)](#csjson) +[cs.json (630 untranslated strings)](#csjson) -[ko.json (215 untranslated strings)](#kojson) +[ko.json (227 untranslated strings)](#kojson) -[pt-BR.json (163 untranslated strings)](#ptbrjson) +[pt-BR.json (175 untranslated strings)](#ptbrjson) -[ru.json (85 untranslated strings)](#rujson) +[ru.json (97 untranslated strings)](#rujson) -[sv.json (401 untranslated strings)](#svjson) +[sv.json (413 untranslated strings)](#svjson) -[zh-TW.json (62 untranslated strings)](#zhtwjson) +[uk.json (62 untranslated strings)](#ukjson) + +[zh-TW.json (74 untranslated strings)](#zhtwjson) ## cn.json -433 untranslated strings +445 untranslated strings ``` "CoC7.ActorIsTokenHint": "Actor is a token", "CoC7.ActorDataLinked": "Actor data are linked", @@ -434,6 +436,17 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.CoCIDFlag.error.documents-not-found": "Documents were not found in world or Compendia matching the CoC IDs ({cocids}), language "{lang}", and era "{era}". Please check your Era for the world setting.", "CoC7.CoCIDBatch.title": "Batch set System ID (CoC ID)", "CoC7.CoCIDBatch.summary": "The CoC7 System has introduced a System ID (CoC ID). This allows the system to identify FoundryVTT documents for example skills. This page will allow you to set the id for existing {type} documents. The System ID should use the English translation of the name to support localization across all languages.", +"CoC7.ActorCoCIDItemsBest": "CoC ID: Actor Item replacement", +"CoC7.ActorCoCIDItemsWarning": "This action can not be undone, please backup your world before updating your Actors", +"CoC7.ActorCoCIDItemsWhich": "Check Item's CoC ID in active compendiums, world compendiums, and Items directory replacing the Actor's Items with the best choice based on these rules", +"CoC7.ActorCoCIDItemsRules1": "The Item must match the the current era "{era}" or have no eras selected", +"CoC7.ActorCoCIDItemsRules2": "Check Item's that match the language "{lang}" or "English" if no translated Items exist", +"CoC7.ActorCoCIDItemsRules3": "Select the Item with the highest priority", +"CoC7.ActorCoCIDItemsSceneTokens": "Update all tokens on this scene", +"CoC7.ActorCoCIDItemsUnlinkedToken": "Update unlinked Actor in directory for each Token first", +"CoC7.ActorCoCIDItemsActorSheets": "Update open Actor sheets", +"CoC7.ActorCoCIDItemsActorDirectory": "Update all Actors in directory", +"CoC7.ActorCoCIDItemsUpdate": "Update", "CoC7.TokenCreationRoll.Title": "Rollable detected", "CoC7.TokenCreationRoll.Prompt": "This token has rollables characteristics or skills.
    What do you want to do ?", "CoC7.TokenCreationRoll.ButtonRoll": "Roll all", @@ -452,10 +465,11 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorRollAlreadyCompleted": "This roll has already been completed", "CoC7.ErrorNoActorPermission": "You are not the Owner of this Actor", "CoC7.ErrorCombinedRollsRequireSingleActor": "You can not have more than one actor in a combined roll", -"CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors" +"CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors", +"CoC7.PauseName": "Time Stop" ``` ## cs.json -618 untranslated strings +630 untranslated strings ``` "CoC7.Entities.Character": "Character", "CoC7.Entities.Container": "Container", @@ -1056,6 +1070,17 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.CoCIDFlag.error.documents-not-found": "Documents were not found in world or Compendia matching the CoC IDs ({cocids}), language "{lang}", and era "{era}". Please check your Era for the world setting.", "CoC7.CoCIDBatch.title": "Batch set System ID (CoC ID)", "CoC7.CoCIDBatch.summary": "The CoC7 System has introduced a System ID (CoC ID). This allows the system to identify FoundryVTT documents for example skills. This page will allow you to set the id for existing {type} documents. The System ID should use the English translation of the name to support localization across all languages.", +"CoC7.ActorCoCIDItemsBest": "CoC ID: Actor Item replacement", +"CoC7.ActorCoCIDItemsWarning": "This action can not be undone, please backup your world before updating your Actors", +"CoC7.ActorCoCIDItemsWhich": "Check Item's CoC ID in active compendiums, world compendiums, and Items directory replacing the Actor's Items with the best choice based on these rules", +"CoC7.ActorCoCIDItemsRules1": "The Item must match the the current era "{era}" or have no eras selected", +"CoC7.ActorCoCIDItemsRules2": "Check Item's that match the language "{lang}" or "English" if no translated Items exist", +"CoC7.ActorCoCIDItemsRules3": "Select the Item with the highest priority", +"CoC7.ActorCoCIDItemsSceneTokens": "Update all tokens on this scene", +"CoC7.ActorCoCIDItemsUnlinkedToken": "Update unlinked Actor in directory for each Token first", +"CoC7.ActorCoCIDItemsActorSheets": "Update open Actor sheets", +"CoC7.ActorCoCIDItemsActorDirectory": "Update all Actors in directory", +"CoC7.ActorCoCIDItemsUpdate": "Update", "CoC7.TokenCreationRoll.Title": "Rollable detected", "CoC7.TokenCreationRoll.Prompt": "This token has rollables characteristics or skills.
    What do you want to do ?", "CoC7.TokenCreationRoll.ButtonRoll": "Roll all", @@ -1074,10 +1099,11 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorRollAlreadyCompleted": "This roll has already been completed", "CoC7.ErrorNoActorPermission": "You are not the Owner of this Actor", "CoC7.ErrorCombinedRollsRequireSingleActor": "You can not have more than one actor in a combined roll", -"CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors" +"CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors", +"CoC7.PauseName": "Time Stop" ``` ## ko.json -215 untranslated strings +227 untranslated strings ``` "CoC7.CustomSpecialisationLabel": "Custom label - {specialisation}", "CoC7.CastHidden": "Cast Hidden", @@ -1275,6 +1301,17 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.CoCIDFlag.error.documents-not-found": "Documents were not found in world or Compendia matching the CoC IDs ({cocids}), language "{lang}", and era "{era}". Please check your Era for the world setting.", "CoC7.CoCIDBatch.title": "Batch set System ID (CoC ID)", "CoC7.CoCIDBatch.summary": "The CoC7 System has introduced a System ID (CoC ID). This allows the system to identify FoundryVTT documents for example skills. This page will allow you to set the id for existing {type} documents. The System ID should use the English translation of the name to support localization across all languages.", +"CoC7.ActorCoCIDItemsBest": "CoC ID: Actor Item replacement", +"CoC7.ActorCoCIDItemsWarning": "This action can not be undone, please backup your world before updating your Actors", +"CoC7.ActorCoCIDItemsWhich": "Check Item's CoC ID in active compendiums, world compendiums, and Items directory replacing the Actor's Items with the best choice based on these rules", +"CoC7.ActorCoCIDItemsRules1": "The Item must match the the current era "{era}" or have no eras selected", +"CoC7.ActorCoCIDItemsRules2": "Check Item's that match the language "{lang}" or "English" if no translated Items exist", +"CoC7.ActorCoCIDItemsRules3": "Select the Item with the highest priority", +"CoC7.ActorCoCIDItemsSceneTokens": "Update all tokens on this scene", +"CoC7.ActorCoCIDItemsUnlinkedToken": "Update unlinked Actor in directory for each Token first", +"CoC7.ActorCoCIDItemsActorSheets": "Update open Actor sheets", +"CoC7.ActorCoCIDItemsActorDirectory": "Update all Actors in directory", +"CoC7.ActorCoCIDItemsUpdate": "Update", "CoC7.TokenCreationRoll.Title": "Rollable detected", "CoC7.TokenCreationRoll.Prompt": "This token has rollables characteristics or skills.
    What do you want to do ?", "CoC7.TokenCreationRoll.ButtonRoll": "Roll all", @@ -1293,10 +1330,11 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorRollAlreadyCompleted": "This roll has already been completed", "CoC7.ErrorNoActorPermission": "You are not the Owner of this Actor", "CoC7.ErrorCombinedRollsRequireSingleActor": "You can not have more than one actor in a combined roll", -"CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors" +"CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors", +"CoC7.PauseName": "Time Stop" ``` ## pt-BR.json -163 untranslated strings +175 untranslated strings ``` "CoC7.CastHidden": "Cast Hidden", "CoC7.EraRegency": "Regency Cthulhu - Standard", @@ -1442,6 +1480,17 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.InvestigatorWizard.CreatingInvestigator": "Please wait while the keeper creates your investigator.", "CoC7.CoCIDBatch.title": "Batch set System ID (CoC ID)", "CoC7.CoCIDBatch.summary": "The CoC7 System has introduced a System ID (CoC ID). This allows the system to identify FoundryVTT documents for example skills. This page will allow you to set the id for existing {type} documents. The System ID should use the English translation of the name to support localization across all languages.", +"CoC7.ActorCoCIDItemsBest": "CoC ID: Actor Item replacement", +"CoC7.ActorCoCIDItemsWarning": "This action can not be undone, please backup your world before updating your Actors", +"CoC7.ActorCoCIDItemsWhich": "Check Item's CoC ID in active compendiums, world compendiums, and Items directory replacing the Actor's Items with the best choice based on these rules", +"CoC7.ActorCoCIDItemsRules1": "The Item must match the the current era "{era}" or have no eras selected", +"CoC7.ActorCoCIDItemsRules2": "Check Item's that match the language "{lang}" or "English" if no translated Items exist", +"CoC7.ActorCoCIDItemsRules3": "Select the Item with the highest priority", +"CoC7.ActorCoCIDItemsSceneTokens": "Update all tokens on this scene", +"CoC7.ActorCoCIDItemsUnlinkedToken": "Update unlinked Actor in directory for each Token first", +"CoC7.ActorCoCIDItemsActorSheets": "Update open Actor sheets", +"CoC7.ActorCoCIDItemsActorDirectory": "Update all Actors in directory", +"CoC7.ActorCoCIDItemsUpdate": "Update", "CoC7.TokenCreationRoll.Title": "Rollable detected", "CoC7.TokenCreationRoll.Prompt": "This token has rollables characteristics or skills.
    What do you want to do ?", "CoC7.TokenCreationRoll.ButtonRoll": "Roll all", @@ -1460,10 +1509,11 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorRollAlreadyCompleted": "This roll has already been completed", "CoC7.ErrorNoActorPermission": "You are not the Owner of this Actor", "CoC7.ErrorCombinedRollsRequireSingleActor": "You can not have more than one actor in a combined roll", -"CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors" +"CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors", +"CoC7.PauseName": "Time Stop" ``` ## ru.json -85 untranslated strings +97 untranslated strings ``` "CoC7.CastHidden": "Cast Hidden", "CoC7.EraReignOfTerror": "Reign Of Terror", @@ -1536,6 +1586,17 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "SETTINGS.TokenDropModeRoll": "Roll what you can", "SETTINGS.TokenDropModeAverage": "Average rolls", "SETTINGS.TokenDropModeIgnore": "Do nothing", +"CoC7.ActorCoCIDItemsBest": "CoC ID: Actor Item replacement", +"CoC7.ActorCoCIDItemsWarning": "This action can not be undone, please backup your world before updating your Actors", +"CoC7.ActorCoCIDItemsWhich": "Check Item's CoC ID in active compendiums, world compendiums, and Items directory replacing the Actor's Items with the best choice based on these rules", +"CoC7.ActorCoCIDItemsRules1": "The Item must match the the current era "{era}" or have no eras selected", +"CoC7.ActorCoCIDItemsRules2": "Check Item's that match the language "{lang}" or "English" if no translated Items exist", +"CoC7.ActorCoCIDItemsRules3": "Select the Item with the highest priority", +"CoC7.ActorCoCIDItemsSceneTokens": "Update all tokens on this scene", +"CoC7.ActorCoCIDItemsUnlinkedToken": "Update unlinked Actor in directory for each Token first", +"CoC7.ActorCoCIDItemsActorSheets": "Update open Actor sheets", +"CoC7.ActorCoCIDItemsActorDirectory": "Update all Actors in directory", +"CoC7.ActorCoCIDItemsUpdate": "Update", "CoC7.TokenCreationRoll.Rolled": "{name} characteristics and skills rolled", "CoC7.TokenCreationRoll.Averaged": "{name} characteristics and skills averaged", "CoC7.Temporary": "Temporary", @@ -1549,10 +1610,11 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorRollAlreadyCompleted": "This roll has already been completed", "CoC7.ErrorNoActorPermission": "You are not the Owner of this Actor", "CoC7.ErrorCombinedRollsRequireSingleActor": "You can not have more than one actor in a combined roll", -"CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors" +"CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors", +"CoC7.PauseName": "Time Stop" ``` ## sv.json -401 untranslated strings +413 untranslated strings ``` "CoC7.ActorIsTokenHint": "Actor is a token", "CoC7.ActorDataLinked": "Actor data are linked", @@ -1936,6 +1998,17 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.CoCIDFlag.error.documents-not-found": "Documents were not found in world or Compendia matching the CoC IDs ({cocids}), language "{lang}", and era "{era}". Please check your Era for the world setting.", "CoC7.CoCIDBatch.title": "Batch set System ID (CoC ID)", "CoC7.CoCIDBatch.summary": "The CoC7 System has introduced a System ID (CoC ID). This allows the system to identify FoundryVTT documents for example skills. This page will allow you to set the id for existing {type} documents. The System ID should use the English translation of the name to support localization across all languages.", +"CoC7.ActorCoCIDItemsBest": "CoC ID: Actor Item replacement", +"CoC7.ActorCoCIDItemsWarning": "This action can not be undone, please backup your world before updating your Actors", +"CoC7.ActorCoCIDItemsWhich": "Check Item's CoC ID in active compendiums, world compendiums, and Items directory replacing the Actor's Items with the best choice based on these rules", +"CoC7.ActorCoCIDItemsRules1": "The Item must match the the current era "{era}" or have no eras selected", +"CoC7.ActorCoCIDItemsRules2": "Check Item's that match the language "{lang}" or "English" if no translated Items exist", +"CoC7.ActorCoCIDItemsRules3": "Select the Item with the highest priority", +"CoC7.ActorCoCIDItemsSceneTokens": "Update all tokens on this scene", +"CoC7.ActorCoCIDItemsUnlinkedToken": "Update unlinked Actor in directory for each Token first", +"CoC7.ActorCoCIDItemsActorSheets": "Update open Actor sheets", +"CoC7.ActorCoCIDItemsActorDirectory": "Update all Actors in directory", +"CoC7.ActorCoCIDItemsUpdate": "Update", "CoC7.TokenCreationRoll.Title": "Rollable detected", "CoC7.TokenCreationRoll.Prompt": "This token has rollables characteristics or skills.
    What do you want to do ?", "CoC7.TokenCreationRoll.ButtonRoll": "Roll all", @@ -1954,12 +2027,79 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorRollAlreadyCompleted": "This roll has already been completed", "CoC7.ErrorNoActorPermission": "You are not the Owner of this Actor", "CoC7.ErrorCombinedRollsRequireSingleActor": "You can not have more than one actor in a combined roll", -"CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors" +"CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors", +"CoC7.PauseName": "Time Stop" ``` -## zh-TW.json +## uk.json 62 untranslated strings ``` "CoC7.CastHidden": "Cast Hidden", +"CoC7.EraReignOfTerror": "Reign Of Terror", +"CoC7.SkillRanged": "Ranged", +"CoC7.RangedSpecializationName": "Ranged", +"CoC7.LanguageSpecializationName": "Language", +"CoC7.SkillNameHandgun": "Handgun", +"CoC7.SkillNameRifle": "Rifle", +"CoC7.SkillNameShotgun": "Shotgun", +"CoC7.SkillNameRifleShotgun": "Rifle/Shotgun", +"CoC7.SkillNameSmb": "Submachine Gun", +"CoC7.SkillNameMachinGun": "Machine Gun", +"CoC7.SkillNameLaunch": "Launch", +"CoC7.LinkCheckPushing": " {name} check - pushing", +"CoC7.LinkCheckDiffPushing": "[{difficulty}] {name} check - pushing", +"CoC7.LinkCheckModifPushing": " {name} check - pushing({modifier})", +"CoC7.LinkCheckDiffModifPushing": "[{difficulty}] {name} check - pushing({modifier})", +"CoC7.MonetaryDefaultDestitute": "Destitute", +"CoC7.MonetaryDefaultLower": "Lower-Class", +"CoC7.MonetaryDefaultMiddle": "Emerging Middle-Class / Starting Professional", +"CoC7.MonetaryDefaultEstablished": "Poor Gentry / Established Professional", +"CoC7.MonetaryDefaultProfessional": "Average Gentry / Wealthy Professional", +"CoC7.MonetaryDefaultGentry": "Wealthy Gentry", +"CoC7.MonetaryDefaultAristocracy": "Aristocracy", +"CoC7.SANLossPass": "pass", +"CoC7.SANLossFail": "fail", +"CoC7.InfoSkillAddedAtBase": "This skill {name} has been added at {percent}%", +"CoC7.Japanese": "Japanese", +"SETTINGS.allowMythosHardenedTitle": "Mythos Hardened", +"SETTINGS.allowMythosHardenedHint": "Allow Mythos Hardened sanity loss reductions", +"SETTINGS.TokenDropMode": "When creating NPC :", +"SETTINGS.TokenDropModeHint": "Define the default behavior when an NPC with rollable characteristics or skills is dropped on a scene.", +"SETTINGS.TokenDropModeAsk": "Ask what to do", +"SETTINGS.TokenDropModeRoll": "Roll what you can", +"SETTINGS.TokenDropModeAverage": "Average rolls", +"SETTINGS.TokenDropModeIgnore": "Do nothing", +"CoC7.ActorCoCIDItemsBest": "CoC ID: Actor Item replacement", +"CoC7.ActorCoCIDItemsWarning": "This action can not be undone, please backup your world before updating your Actors", +"CoC7.ActorCoCIDItemsWhich": "Check Item's CoC ID in active compendiums, world compendiums, and Items directory replacing the Actor's Items with the best choice based on these rules", +"CoC7.ActorCoCIDItemsRules1": "The Item must match the the current era "{era}" or have no eras selected", +"CoC7.ActorCoCIDItemsRules2": "Check Item's that match the language "{lang}" or "English" if no translated Items exist", +"CoC7.ActorCoCIDItemsRules3": "Select the Item with the highest priority", +"CoC7.ActorCoCIDItemsSceneTokens": "Update all tokens on this scene", +"CoC7.ActorCoCIDItemsUnlinkedToken": "Update unlinked Actor in directory for each Token first", +"CoC7.ActorCoCIDItemsActorSheets": "Update open Actor sheets", +"CoC7.ActorCoCIDItemsActorDirectory": "Update all Actors in directory", +"CoC7.ActorCoCIDItemsUpdate": "Update", +"CoC7.TokenCreationRoll.Rolled": "{name} characteristics and skills rolled", +"CoC7.TokenCreationRoll.Averaged": "{name} characteristics and skills averaged", +"CoC7.RealRollDecaderPlaceholderName": "10's", +"CoC7.Temporary": "Temporary", +"CoC7.Passive": "Passive", +"CoC7.Inactive": "Inactive", +"CoC7.Suppressed": "Suppressed", +"CoC7.Unavailable": "Unavailable", +"CoC7.PickWhichActorTitle": "Pick who to roll as", +"CoC7.PickWhichActorDesc": "You have Owner permissions for multiple Actors please pick which to roll as", +"CoC7.WaitingOnUser": "Waiting On User", +"CoC7.ErrorRollAlreadyCompleted": "This roll has already been completed", +"CoC7.ErrorNoActorPermission": "You are not the Owner of this Actor", +"CoC7.ErrorCombinedRollsRequireSingleActor": "You can not have more than one actor in a combined roll", +"CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors", +"CoC7.PauseName": "Time Stop" +``` +## zh-TW.json +74 untranslated strings +``` +"CoC7.CastHidden": "Cast Hidden", "CoC7.EraRegency": "Regency Cthulhu - Standard", "CoC7.EraRegencyPulp": "Regency Cthulhu - Pulp", "CoC7.EraReignOfTerror": "Reign Of Terror", @@ -2002,6 +2142,17 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "SETTINGS.TokenDropModeIgnore": "Do nothing", "SETTINGS.SceneDistanceNotCalcualtedNoError": "Don't show error for ranged distance", "SETTINGS.SceneDistanceNotCalcualtedNoErrorHint": "When starting a ranged combat if playing theatre of the mind do not show the unable to calculate distance message.", +"CoC7.ActorCoCIDItemsBest": "CoC ID: Actor Item replacement", +"CoC7.ActorCoCIDItemsWarning": "This action can not be undone, please backup your world before updating your Actors", +"CoC7.ActorCoCIDItemsWhich": "Check Item's CoC ID in active compendiums, world compendiums, and Items directory replacing the Actor's Items with the best choice based on these rules", +"CoC7.ActorCoCIDItemsRules1": "The Item must match the the current era "{era}" or have no eras selected", +"CoC7.ActorCoCIDItemsRules2": "Check Item's that match the language "{lang}" or "English" if no translated Items exist", +"CoC7.ActorCoCIDItemsRules3": "Select the Item with the highest priority", +"CoC7.ActorCoCIDItemsSceneTokens": "Update all tokens on this scene", +"CoC7.ActorCoCIDItemsUnlinkedToken": "Update unlinked Actor in directory for each Token first", +"CoC7.ActorCoCIDItemsActorSheets": "Update open Actor sheets", +"CoC7.ActorCoCIDItemsActorDirectory": "Update all Actors in directory", +"CoC7.ActorCoCIDItemsUpdate": "Update", "CoC7.TokenCreationRoll.Title": "Rollable detected", "CoC7.TokenCreationRoll.Prompt": "This token has rollables characteristics or skills.
    What do you want to do ?", "CoC7.TokenCreationRoll.ButtonRoll": "Roll all", @@ -2020,5 +2171,6 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorRollAlreadyCompleted": "This roll has already been completed", "CoC7.ErrorNoActorPermission": "You are not the Owner of this Actor", "CoC7.ErrorCombinedRollsRequireSingleActor": "You can not have more than one actor in a combined roll", -"CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors" +"CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors", +"CoC7.PauseName": "Time Stop" ``` diff --git a/.github/TRANSLATIONS.md b/.github/TRANSLATIONS.md index 37c44776..06e4047a 100644 --- a/.github/TRANSLATIONS.md +++ b/.github/TRANSLATIONS.md @@ -2,108 +2,95 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry VTT better! Below is a list of translations keys on existing files that still need translated, based on `en.json`. Feel free to create a new `*.json` file for a language that is not shown here! -The **es** translation is currently up to date - The following translations have more than 50 untranslated strings [are you able to help?](./ABANDONED.md) -[cn.json (433 untranslated strings)](./ABANDONED.md#cnjson) +[cn.json (445 untranslated strings)](./ABANDONED.md#cnjson) + +[cs.json (630 untranslated strings)](./ABANDONED.md#csjson) -[cs.json (618 untranslated strings)](./ABANDONED.md#csjson) +[ko.json (227 untranslated strings)](./ABANDONED.md#kojson) -[ko.json (215 untranslated strings)](./ABANDONED.md#kojson) +[pt-BR.json (175 untranslated strings)](./ABANDONED.md#ptbrjson) -[pt-BR.json (163 untranslated strings)](./ABANDONED.md#ptbrjson) +[ru.json (97 untranslated strings)](./ABANDONED.md#rujson) -[ru.json (85 untranslated strings)](./ABANDONED.md#rujson) +[sv.json (413 untranslated strings)](./ABANDONED.md#svjson) -[sv.json (401 untranslated strings)](./ABANDONED.md#svjson) +[uk.json (62 untranslated strings)](./ABANDONED.md#ukjson) -[zh-TW.json (62 untranslated strings)](./ABANDONED.md#zhtwjson) +[zh-TW.json (74 untranslated strings)](./ABANDONED.md#zhtwjson) -|Key|de|fr|it|ja|pl|uk| +|Key|de|es|fr|it|ja|pl| |:---|:---:|:---:|:---:|:---:|:---:|:---:| -|**Remaining**:|**14**|**2**|**5**|**1**|**13**|**50**| -|[CoC7.CastHidden](#coc7casthidden)|❌|✅|❌|✅|✅|❌| -|[CoC7.EraReignOfTerror](#coc7erareignofterror)|✅|✅|✅|✅|✅|❌| -|[CoC7.ErrorCombinedRollsRequireSingleActor](#coc7errorcombinedrollsrequiresingleactor)|✅|✅|✅|✅|✅|❌| -|[CoC7.ErrorNoActorPermission](#coc7errornoactorpermission)|✅|✅|✅|✅|✅|❌| -|[CoC7.ErrorOpposedRollsLimitedToTwoActors](#coc7erroropposedrollslimitedtotwoactors)|✅|✅|✅|✅|✅|❌| -|[CoC7.ErrorRollAlreadyCompleted](#coc7errorrollalreadycompleted)|✅|✅|✅|✅|✅|❌| -|[CoC7.Inactive](#coc7inactive)|✅|✅|✅|✅|✅|❌| -|[CoC7.InfoSkillAddedAtBase](#coc7infoskilladdedatbase)|✅|✅|✅|✅|✅|❌| -|[CoC7.Japanese](#coc7japanese)|❌|✅|✅|✅|✅|❌| -|[CoC7.LanguageSpecializationName](#coc7languagespecializationname)|❌|✅|✅|✅|✅|❌| -|[CoC7.LinkCheckDiffModifPushing](#coc7linkcheckdiffmodifpushing)|✅|✅|✅|✅|✅|❌| -|[CoC7.LinkCheckDiffPushing](#coc7linkcheckdiffpushing)|✅|✅|✅|✅|✅|❌| -|[CoC7.LinkCheckModifPushing](#coc7linkcheckmodifpushing)|✅|✅|✅|✅|✅|❌| -|[CoC7.LinkCheckPushing](#coc7linkcheckpushing)|✅|✅|✅|✅|✅|❌| -|[CoC7.MonetaryDefaultAristocracy](#coc7monetarydefaultaristocracy)|✅|✅|✅|✅|❌|❌| -|[CoC7.MonetaryDefaultDestitute](#coc7monetarydefaultdestitute)|✅|✅|✅|✅|❌|❌| -|[CoC7.MonetaryDefaultEstablished](#coc7monetarydefaultestablished)|✅|✅|✅|✅|❌|❌| -|[CoC7.MonetaryDefaultGentry](#coc7monetarydefaultgentry)|✅|✅|✅|✅|❌|❌| -|[CoC7.MonetaryDefaultLower](#coc7monetarydefaultlower)|✅|✅|✅|✅|❌|❌| -|[CoC7.MonetaryDefaultMiddle](#coc7monetarydefaultmiddle)|✅|✅|✅|✅|❌|❌| -|[CoC7.MonetaryDefaultProfessional](#coc7monetarydefaultprofessional)|✅|✅|✅|✅|❌|❌| -|[CoC7.Passive](#coc7passive)|✅|✅|✅|✅|✅|❌| -|[CoC7.PersonalSpecialityPlaceholder](#coc7personalspecialityplaceholder)|✅|✅|✅|❌|✅|✅| -|[CoC7.PickWhichActorDesc](#coc7pickwhichactordesc)|✅|✅|✅|✅|✅|❌| -|[CoC7.PickWhichActorTitle](#coc7pickwhichactortitle)|✅|✅|✅|✅|✅|❌| -|[CoC7.RangedSpecializationName](#coc7rangedspecializationname)|✅|✅|✅|✅|❌|❌| -|[CoC7.RealRollDecaderPlaceholderName](#coc7realrolldecaderplaceholdername)|✅|✅|✅|✅|❌|❌| -|[CoC7.SANLossFail](#coc7sanlossfail)|❌|❌|❌|✅|❌|❌| -|[CoC7.SANLossPass](#coc7sanlosspass)|❌|❌|❌|✅|❌|❌| -|[CoC7.SkillNameHandgun](#coc7skillnamehandgun)|❌|✅|✅|✅|✅|❌| -|[CoC7.SkillNameLaunch](#coc7skillnamelaunch)|❌|✅|✅|✅|✅|❌| -|[CoC7.SkillNameMachinGun](#coc7skillnamemachingun)|❌|✅|✅|✅|✅|❌| -|[CoC7.SkillNameRifle](#coc7skillnamerifle)|❌|✅|✅|✅|✅|❌| -|[CoC7.SkillNameRifleShotgun](#coc7skillnamerifleshotgun)|❌|✅|✅|✅|✅|❌| -|[CoC7.SkillNameShotgun](#coc7skillnameshotgun)|❌|✅|✅|✅|✅|❌| -|[CoC7.SkillNameSmb](#coc7skillnamesmb)|❌|✅|✅|✅|✅|❌| -|[CoC7.SkillRanged](#coc7skillranged)|✅|✅|✅|✅|❌|❌| -|[CoC7.Suppressed](#coc7suppressed)|✅|✅|✅|✅|❌|❌| -|[CoC7.Temporary](#coc7temporary)|✅|✅|✅|✅|✅|❌| -|[CoC7.TokenCreationRoll.Averaged](#coc7tokencreationrollaveraged)|✅|✅|✅|✅|✅|❌| -|[CoC7.TokenCreationRoll.Rolled](#coc7tokencreationrollrolled)|✅|✅|✅|✅|✅|❌| -|[CoC7.Unavailable](#coc7unavailable)|✅|✅|✅|✅|✅|❌| -|[CoC7.WaitingOnUser](#coc7waitingonuser)|✅|✅|✅|✅|✅|❌| -|[SETTINGS.TokenDropMode](#settingstokendropmode)|✅|✅|✅|✅|✅|❌| -|[SETTINGS.TokenDropModeAsk](#settingstokendropmodeask)|✅|✅|✅|✅|✅|❌| -|[SETTINGS.TokenDropModeAverage](#settingstokendropmodeaverage)|✅|✅|✅|✅|✅|❌| -|[SETTINGS.TokenDropModeHint](#settingstokendropmodehint)|✅|✅|✅|✅|✅|❌| -|[SETTINGS.TokenDropModeIgnore](#settingstokendropmodeignore)|✅|✅|✅|✅|✅|❌| -|[SETTINGS.TokenDropModeRoll](#settingstokendropmoderoll)|✅|✅|✅|✅|✅|❌| -|[SETTINGS.allowMythosHardenedHint](#settingsallowmythoshardenedhint)|❌|✅|❌|✅|✅|❌| -|[SETTINGS.allowMythosHardenedTitle](#settingsallowmythoshardenedtitle)|❌|✅|❌|✅|✅|❌| +|**Remaining**:|**26**|**12**|**14**|**17**|**13**|**25**| +|[CoC7.ActorCoCIDItemsActorDirectory](#coc7actorcociditemsactordirectory)|❌|❌|❌|❌|❌|❌| +|[CoC7.ActorCoCIDItemsActorSheets](#coc7actorcociditemsactorsheets)|❌|❌|❌|❌|❌|❌| +|[CoC7.ActorCoCIDItemsBest](#coc7actorcociditemsbest)|❌|❌|❌|❌|❌|❌| +|[CoC7.ActorCoCIDItemsRules1](#coc7actorcociditemsrules1)|❌|❌|❌|❌|❌|❌| +|[CoC7.ActorCoCIDItemsRules2](#coc7actorcociditemsrules2)|❌|❌|❌|❌|❌|❌| +|[CoC7.ActorCoCIDItemsRules3](#coc7actorcociditemsrules3)|❌|❌|❌|❌|❌|❌| +|[CoC7.ActorCoCIDItemsSceneTokens](#coc7actorcociditemsscenetokens)|❌|❌|❌|❌|❌|❌| +|[CoC7.ActorCoCIDItemsUnlinkedToken](#coc7actorcociditemsunlinkedtoken)|❌|❌|❌|❌|❌|❌| +|[CoC7.ActorCoCIDItemsUpdate](#coc7actorcociditemsupdate)|❌|❌|❌|❌|❌|❌| +|[CoC7.ActorCoCIDItemsWarning](#coc7actorcociditemswarning)|❌|❌|❌|❌|❌|❌| +|[CoC7.ActorCoCIDItemsWhich](#coc7actorcociditemswhich)|❌|❌|❌|❌|❌|❌| +|[CoC7.CastHidden](#coc7casthidden)|❌|✅|✅|❌|✅|✅| +|[CoC7.Japanese](#coc7japanese)|❌|✅|✅|✅|✅|✅| +|[CoC7.LanguageSpecializationName](#coc7languagespecializationname)|❌|✅|✅|✅|✅|✅| +|[CoC7.MonetaryDefaultAristocracy](#coc7monetarydefaultaristocracy)|✅|✅|✅|✅|✅|❌| +|[CoC7.MonetaryDefaultDestitute](#coc7monetarydefaultdestitute)|✅|✅|✅|✅|✅|❌| +|[CoC7.MonetaryDefaultEstablished](#coc7monetarydefaultestablished)|✅|✅|✅|✅|✅|❌| +|[CoC7.MonetaryDefaultGentry](#coc7monetarydefaultgentry)|✅|✅|✅|✅|✅|❌| +|[CoC7.MonetaryDefaultLower](#coc7monetarydefaultlower)|✅|✅|✅|✅|✅|❌| +|[CoC7.MonetaryDefaultMiddle](#coc7monetarydefaultmiddle)|✅|✅|✅|✅|✅|❌| +|[CoC7.MonetaryDefaultProfessional](#coc7monetarydefaultprofessional)|✅|✅|✅|✅|✅|❌| +|[CoC7.PauseName](#coc7pausename)|❌|❌|❌|❌|❌|❌| +|[CoC7.PersonalSpecialityPlaceholder](#coc7personalspecialityplaceholder)|✅|✅|✅|✅|❌|✅| +|[CoC7.RangedSpecializationName](#coc7rangedspecializationname)|✅|✅|✅|✅|✅|❌| +|[CoC7.RealRollDecaderPlaceholderName](#coc7realrolldecaderplaceholdername)|✅|✅|✅|✅|✅|❌| +|[CoC7.SANLossFail](#coc7sanlossfail)|❌|✅|❌|❌|✅|❌| +|[CoC7.SANLossPass](#coc7sanlosspass)|❌|✅|❌|❌|✅|❌| +|[CoC7.SkillNameHandgun](#coc7skillnamehandgun)|❌|✅|✅|✅|✅|✅| +|[CoC7.SkillNameLaunch](#coc7skillnamelaunch)|❌|✅|✅|✅|✅|✅| +|[CoC7.SkillNameMachinGun](#coc7skillnamemachingun)|❌|✅|✅|✅|✅|✅| +|[CoC7.SkillNameRifle](#coc7skillnamerifle)|❌|✅|✅|✅|✅|✅| +|[CoC7.SkillNameRifleShotgun](#coc7skillnamerifleshotgun)|❌|✅|✅|✅|✅|✅| +|[CoC7.SkillNameShotgun](#coc7skillnameshotgun)|❌|✅|✅|✅|✅|✅| +|[CoC7.SkillNameSmb](#coc7skillnamesmb)|❌|✅|✅|✅|✅|✅| +|[CoC7.SkillRanged](#coc7skillranged)|✅|✅|✅|✅|✅|❌| +|[CoC7.Suppressed](#coc7suppressed)|✅|✅|✅|✅|✅|❌| +|[SETTINGS.allowMythosHardenedHint](#settingsallowmythoshardenedhint)|❌|✅|✅|❌|✅|✅| +|[SETTINGS.allowMythosHardenedTitle](#settingsallowmythoshardenedtitle)|❌|✅|✅|❌|✅|✅| +##### CoC7.ActorCoCIDItemsActorDirectory +``` "CoC7.ActorCoCIDItemsActorDirectory": "Update all Actors in directory",``` +##### CoC7.ActorCoCIDItemsActorSheets +``` "CoC7.ActorCoCIDItemsActorSheets": "Update open Actor sheets",``` +##### CoC7.ActorCoCIDItemsBest +``` "CoC7.ActorCoCIDItemsBest": "CoC ID: Actor Item replacement",``` +##### CoC7.ActorCoCIDItemsRules1 +``` "CoC7.ActorCoCIDItemsRules1": "The Item must match the the current era "{era}" or have no eras selected",``` +##### CoC7.ActorCoCIDItemsRules2 +``` "CoC7.ActorCoCIDItemsRules2": "Check Item's that match the language "{lang}" or "English" if no translated Items exist",``` +##### CoC7.ActorCoCIDItemsRules3 +``` "CoC7.ActorCoCIDItemsRules3": "Select the Item with the highest priority",``` +##### CoC7.ActorCoCIDItemsSceneTokens +``` "CoC7.ActorCoCIDItemsSceneTokens": "Update all tokens on this scene",``` +##### CoC7.ActorCoCIDItemsUnlinkedToken +``` "CoC7.ActorCoCIDItemsUnlinkedToken": "Update unlinked Actor in directory for each Token first",``` +##### CoC7.ActorCoCIDItemsUpdate +``` "CoC7.ActorCoCIDItemsUpdate": "Update",``` +##### CoC7.ActorCoCIDItemsWarning +``` "CoC7.ActorCoCIDItemsWarning": "This action can not be undone, please backup your world before updating your Actors",``` +##### CoC7.ActorCoCIDItemsWhich +``` "CoC7.ActorCoCIDItemsWhich": "Check Item's CoC ID in active compendiums, world compendiums, and Items directory replacing the Actor's Items with the best choice based on these rules",``` ##### CoC7.CastHidden ``` "CoC7.CastHidden": "Cast Hidden",``` -##### CoC7.EraReignOfTerror -``` "CoC7.EraReignOfTerror": "Reign Of Terror",``` -##### CoC7.ErrorCombinedRollsRequireSingleActor -``` "CoC7.ErrorCombinedRollsRequireSingleActor": "You can not have more than one actor in a combined roll",``` -##### CoC7.ErrorNoActorPermission -``` "CoC7.ErrorNoActorPermission": "You are not the Owner of this Actor",``` -##### CoC7.ErrorOpposedRollsLimitedToTwoActors -``` "CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors",``` -##### CoC7.ErrorRollAlreadyCompleted -``` "CoC7.ErrorRollAlreadyCompleted": "This roll has already been completed",``` -##### CoC7.Inactive -``` "CoC7.Inactive": "Inactive",``` -##### CoC7.InfoSkillAddedAtBase -``` "CoC7.InfoSkillAddedAtBase": "This skill {name} has been added at {percent}%",``` ##### CoC7.Japanese ``` "CoC7.Japanese": "Japanese",``` ##### CoC7.LanguageSpecializationName ``` "CoC7.LanguageSpecializationName": "Language",``` -##### CoC7.LinkCheckDiffModifPushing -``` "CoC7.LinkCheckDiffModifPushing": "[{difficulty}] {name} check - pushing({modifier})",``` -##### CoC7.LinkCheckDiffPushing -``` "CoC7.LinkCheckDiffPushing": "[{difficulty}] {name} check - pushing",``` -##### CoC7.LinkCheckModifPushing -``` "CoC7.LinkCheckModifPushing": " {name} check - pushing({modifier})",``` -##### CoC7.LinkCheckPushing -``` "CoC7.LinkCheckPushing": " {name} check - pushing",``` ##### CoC7.MonetaryDefaultAristocracy ``` "CoC7.MonetaryDefaultAristocracy": "Aristocracy",``` ##### CoC7.MonetaryDefaultDestitute @@ -118,14 +105,10 @@ The following translations have more than 50 untranslated strings [are you able ``` "CoC7.MonetaryDefaultMiddle": "Emerging Middle-Class / Starting Professional",``` ##### CoC7.MonetaryDefaultProfessional ``` "CoC7.MonetaryDefaultProfessional": "Average Gentry / Wealthy Professional",``` -##### CoC7.Passive -``` "CoC7.Passive": "Passive",``` +##### CoC7.PauseName +``` "CoC7.PauseName": "Time Stop",``` ##### CoC7.PersonalSpecialityPlaceholder ``` "CoC7.PersonalSpecialityPlaceholder": "other skill(s) as personal or era specialties",``` -##### CoC7.PickWhichActorDesc -``` "CoC7.PickWhichActorDesc": "You have Owner permissions for multiple Actors please pick which to roll as",``` -##### CoC7.PickWhichActorTitle -``` "CoC7.PickWhichActorTitle": "Pick who to roll as",``` ##### CoC7.RangedSpecializationName ``` "CoC7.RangedSpecializationName": "Ranged",``` ##### CoC7.RealRollDecaderPlaceholderName @@ -152,28 +135,6 @@ The following translations have more than 50 untranslated strings [are you able ``` "CoC7.SkillRanged": "Ranged",``` ##### CoC7.Suppressed ``` "CoC7.Suppressed": "Suppressed",``` -##### CoC7.Temporary -``` "CoC7.Temporary": "Temporary",``` -##### CoC7.TokenCreationRoll.Averaged -``` "CoC7.TokenCreationRoll.Averaged": "{name} characteristics and skills averaged",``` -##### CoC7.TokenCreationRoll.Rolled -``` "CoC7.TokenCreationRoll.Rolled": "{name} characteristics and skills rolled",``` -##### CoC7.Unavailable -``` "CoC7.Unavailable": "Unavailable",``` -##### CoC7.WaitingOnUser -``` "CoC7.WaitingOnUser": "Waiting On User",``` -##### SETTINGS.TokenDropMode -``` "SETTINGS.TokenDropMode": "When creating NPC :",``` -##### SETTINGS.TokenDropModeAsk -``` "SETTINGS.TokenDropModeAsk": "Ask what to do",``` -##### SETTINGS.TokenDropModeAverage -``` "SETTINGS.TokenDropModeAverage": "Average rolls",``` -##### SETTINGS.TokenDropModeHint -``` "SETTINGS.TokenDropModeHint": "Define the default behavior when an NPC with rollable characteristics or skills is dropped on a scene.",``` -##### SETTINGS.TokenDropModeIgnore -``` "SETTINGS.TokenDropModeIgnore": "Do nothing",``` -##### SETTINGS.TokenDropModeRoll -``` "SETTINGS.TokenDropModeRoll": "Roll what you can",``` ##### SETTINGS.allowMythosHardenedHint ``` "SETTINGS.allowMythosHardenedHint": "Allow Mythos Hardened sanity loss reductions",``` ##### SETTINGS.allowMythosHardenedTitle diff --git a/docs/en/coc-id-system.md b/docs/en/coc-id-system.md index 31ee4054..dfcdebfe 100644 --- a/docs/en/coc-id-system.md +++ b/docs/en/coc-id-system.md @@ -4,9 +4,11 @@ Several FoundryVTT documents have an ID button accessable to "Game Master" and " **System ID (CoC ID)**: Setting a skill's ID to i.skill.dodge will let the system know to treat that skill as Dodge on the combat card. +**Language**: Which languge is this version of the Item in. + **Cthulhu Flavors**: You can also control the era a skill is for, Animal Handling has different base values based on the era -**System ID Priority**: The system will check your world documents then compendiums and return the document with the highest priority +**System ID Priority**: The highest number will be considered best ## Item i.setup.example - The Investigator Wizard will use these you need to pick a single era to assign it to @@ -19,3 +21,9 @@ i.skill.example - Setups, Investigator Wizard, and creating Actors will use thes ## RollTable rt..backstory-example - If the example part matches the backstory title in kebab case it will give a roll option in the backstory section of the Investigator Wizard + +## Translations +You can use the Keeper's tools on the left hand menu to update Actors based on CoC ID Items you have in your world, you need a scene to be able to access this menu + +## RQID +This system is based on RQID from the "[Runequest Glorantha](https://foundryvtt.com/packages/rqg)" system, documentation for it can be found here [https://sun-dragon-cult.github.io/rqg-system/api/rqid](https://sun-dragon-cult.github.io/rqg-system/api/rqid) diff --git a/lang/en.json b/lang/en.json index e55c995b..46618da6 100644 --- a/lang/en.json +++ b/lang/en.json @@ -45,7 +45,7 @@ "CoC7.Archetype": "Archetype", "CoC7.Occupation": "Occupation", "CoC7.Age": "Age", - "CoC7.Sex": "Sex", + "CoC7.Sex": "Pronoun", "CoC7.Residence": "Residence", "CoC7.Birthplace": "Birthplace", "CoC7.Organization": "Organization", @@ -1330,6 +1330,17 @@ "CoC7.CoCIDBatch.title": "Batch set System ID (CoC ID)", "CoC7.CoCIDBatch.summary": "The CoC7 System has introduced a System ID (CoC ID). This allows the system to identify FoundryVTT documents for example skills. This page will allow you to set the id for existing {type} documents. The System ID should use the English translation of the name to support localization across all languages.", + "CoC7.ActorCoCIDItemsBest": "CoC ID: Actor Item replacement", + "CoC7.ActorCoCIDItemsWarning": "This action can not be undone, please backup your world before updating your Actors", + "CoC7.ActorCoCIDItemsWhich": "Check Item's CoC ID in active compendiums, world compendiums, and Items directory replacing the Actor's Items with the best choice based on these rules", + "CoC7.ActorCoCIDItemsRules1": "The Item must match the the current era \"{era}\" or have no eras selected", + "CoC7.ActorCoCIDItemsRules2": "Check Item's that match the language \"{lang}\" or \"English\" if no translated Items exist", + "CoC7.ActorCoCIDItemsRules3": "Select the Item with the highest priority", + "CoC7.ActorCoCIDItemsSceneTokens": "Update all tokens on this scene", + "CoC7.ActorCoCIDItemsUnlinkedToken": "Update unlinked Actor in directory for each Token first", + "CoC7.ActorCoCIDItemsActorSheets": "Update open Actor sheets", + "CoC7.ActorCoCIDItemsActorDirectory": "Update all Actors in directory", + "CoC7.ActorCoCIDItemsUpdate": "Update", "CoC7.TokenCreationRoll.Title": "Rollable detected", "CoC7.TokenCreationRoll.Prompt": "This token has rollables characteristics or skills.
    What do you want to do ?", @@ -1338,7 +1349,6 @@ "CoC7.TokenCreationRoll.Rolled": "{name} characteristics and skills rolled", "CoC7.TokenCreationRoll.Averaged": "{name} characteristics and skills averaged", - "CoC7.RealRollDecaderPlaceholderName": "10's", "CoC7.Temporary": "Temporary", @@ -1353,5 +1363,6 @@ "CoC7.ErrorRollAlreadyCompleted": "This roll has already been completed", "CoC7.ErrorNoActorPermission": "You are not the Owner of this Actor", "CoC7.ErrorCombinedRollsRequireSingleActor": "You can not have more than one actor in a combined roll", - "CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors" + "CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors", + "CoC7.PauseName": "Time Stop" } diff --git a/module/actors/actor.js b/module/actors/actor.js index a4e881dd..90957e34 100644 --- a/module/actors/actor.js +++ b/module/actors/actor.js @@ -225,6 +225,17 @@ export class CoCActor extends Actor { } } + static defaultImg (type) { + switch (type) { + case 'container': + return 'icons/svg/chest.svg' + case 'creature': + return 'systems/CoC7/assets/icons/floating-tentacles.svg' + case 'npc': + return 'systems/CoC7/assets/icons/cultist.svg' + } + } + /** @override */ static async create (data, options = {}) { if (data.type === 'character') { @@ -237,15 +248,15 @@ export class CoCActor extends Actor { }) } else if (data.type === 'npc') { if (typeof data.img === 'undefined' || data.img === 'icons/svg/mystery-man.svg') { - data.img = 'systems/CoC7/assets/icons/cultist.svg' + data.img = CoCActor.defaultImg(data.type) } } else if (data.type === 'creature') { if (typeof data.img === 'undefined' || data.img === 'icons/svg/mystery-man.svg') { - data.img = 'systems/CoC7/assets/icons/floating-tentacles.svg' + data.img = CoCActor.defaultImg(data.type) } } else if (data.type === 'container') { if (typeof data.img === 'undefined' || data.img === 'icons/svg/mystery-man.svg') { - data.img = 'icons/svg/chest.svg' + data.img = CoCActor.defaultImg(data.type) } data.prototypeToken = foundry.utils.mergeObject(data.prototypeToken || {}, { actorLink: true @@ -3501,7 +3512,7 @@ export class CoCActor extends Actor { get firearmSkills () { const skillList = [] for (const value of this.items) { - if (value.type === 'skill' && (value.system.properties.firearm || value.system.properties.ranged)) { + if (value.type === 'skill' && (value.system.properties.firearm || value.system.properties.ranged || value.flags.CoC7?.cocidFlag?.id === 'i.skill.fighting-throw')) { skillList.push(value) } } diff --git a/module/actors/sheets/base.js b/module/actors/sheets/base.js index 9a8f705e..b12e5801 100644 --- a/module/actors/sheets/base.js +++ b/module/actors/sheets/base.js @@ -5,6 +5,7 @@ import { CoC7ChatMessage } from '../../apps/coc7-chat-message.js' import { CoC7Check } from '../../check.js' import { CoC7ContentLinkDialog } from '../../apps/coc7-content-link-dialog.js' import { COC7 } from '../../config.js' +import { CoCActor } from '../../actors/actor.js' import { CoC7Item } from '../../items/item.js' import { CoC7MeleeInitiator } from '../../chat/combat/melee-initiator.js' import { CoC7RangeInitiator } from '../../chat/rangecombat.js' @@ -1834,6 +1835,19 @@ export class CoC7ActorSheet extends ActorSheet { ) } + if (this.object.img !== formData.img && (this.object.token ?? this.object.prototypeToken).texture.src === CoCActor.defaultImg(this.object.type)) { + // Image was changed and it was the default, so also update the token image + if (this.object.token) { + this.object.token.update({ + 'texture.src': formData.img + }) + } else { + this.object.prototypeToken.update({ + 'texture.src': formData.img + }) + } + } + if (event.currentTarget) { if (event.currentTarget.classList) { if (event.currentTarget.classList.contains('skill-adjustment')) { diff --git a/module/apps/coc-id-actor-update-items.js b/module/apps/coc-id-actor-update-items.js new file mode 100644 index 00000000..27a7df85 --- /dev/null +++ b/module/apps/coc-id-actor-update-items.js @@ -0,0 +1,149 @@ +/* global Actor, ActorSheet, canvas, CONFIG, FormApplication, foundry, fromUuid, game, ui */ +import { COC7 } from '../config.js' + +export default class CoCIDActorUpdateItems extends FormApplication { + static get defaultOptions () { + return foundry.utils.mergeObject(super.defaultOptions, { + id: 'coc-id-actor-update-items', + classes: ['coc7', 'dialog', 'investigator-wizard'], + title: game.i18n.localize('CoC7.ActorCoCIDItemsBest'), + template: 'systems/CoC7/templates/apps/coc-id-actor-update-items.hbs', + width: 520, + height: 410, + closeOnSubmit: false + }) + } + + async getData () { + const sheetData = await super.getData() + + sheetData.lang = CONFIG.supportedLanguages[game.i18n.lang] ?? '?' + const defaultEra = game.settings.get('CoC7', 'worldEra') + sheetData.isEn = game.i18n.lang === 'en' + sheetData.era = game.i18n.format(COC7.eras[defaultEra] ?? 'CoC7.CoCIDFlag.error.unknown-era', { era: defaultEra }) + + return sheetData + } + + getUpdateData (item) { + const output = { + flags: { + CoC7: { + cocidFlag: item.flags.CoC7.cocidFlag + } + }, + name: item.name, + system: {} + } + for (const key of ['chat', 'keeper', 'notes', 'opposingDifficulty', 'pushedFaillureConsequences', 'special', 'value']) { + if (typeof item.system.description?.[key] === 'string' && item.system.description[key].length) { + if (!Object.prototype.hasOwnProperty.call(output.system, 'description')) { + output.system.description = {} + } + output.system.description[key] = item.system.description[key] + } + } + switch (item.type) { + case 'archetype': + output.system.suggestedOccupations = item.system.suggestedOccupations + output.system.suggestedTraits = item.system.suggestedTraits + break + case 'book': + break + case 'occupation': + output.system.suggestedContacts = item.system.suggestedContacts + break + case 'skill': + output.system.skillName = item.system.skillName + output.system.specialization = item.system.specialization + break + case 'spell': + break + case 'status': + break + case 'weapon': + break + } + return output + } + + async updateActors (actorList, parent) { + if (parent) { + const unlinkedActors = await actorList.filter(a => a.token?.actorLink === false).map(a => a.id).filter((a, o, v) => v.indexOf(a) === o).reduce(async (c, i) => { + c.push(await fromUuid('Actor.' + i)) + return c + }, []) + actorList = unlinkedActors.concat(actorList) + } + const ids = {} + const anys = {} + for (const actor of actorList) { + for (const item of actor.items.contents) { + if (typeof item.flags?.CoC7?.cocidFlag?.id === 'string') { + if (item.flags.CoC7.cocidFlag.id.match(/-any$/)) { + if (!Object.prototype.hasOwnProperty.call(anys, item.flags.CoC7.cocidFlag.id)) { + anys[item.flags.CoC7.cocidFlag.id] = [] + } + anys[item.flags.CoC7.cocidFlag.id].push(actor.name) + } else { + ids[item.flags.CoC7.cocidFlag.id] = {} + } + } + } + } + const found = await game.system.api.cocid.fromCoCIDRegexBest({ cocidRegExp: game.system.api.cocid.makeGroupRegEx(Object.keys(ids)), type: 'i', showLoading: true }) + for (const item of found) { + ids[item.flags.CoC7.cocidFlag.id] = this.getUpdateData(item.toObject()) + } + if (Object.keys(anys).length) { + console.log('Invalid any keys on Actors', anys) + } + const allUpdates = [] + for (const actor of actorList) { + const updates = [] + for (const item of actor.items.contents) { + if (Object.prototype.hasOwnProperty.call(ids, item.flags?.CoC7?.cocidFlag?.id)) { + updates.push(foundry.utils.mergeObject({ + _id: item.id + }, ids[item.flags.CoC7.cocidFlag.id])) + } + } + if (updates.length) { + allUpdates.push({ + _id: actor.id, + items: updates + }) + } + } + if (allUpdates.length) { + Actor.updateDocuments(allUpdates) + } + } + + async _updateObject (event, formData) { + if (event.submitter?.dataset.button === 'update') { + if (event.submitter.className.indexOf('currently-submitting') > -1) { + return + } + event.submitter.className = event.submitter.className + ' currently-submitting' + const parent = typeof formData['coc-id-actor-update-items-parent'] === 'string' + const which = (formData['coc-id-actor-update-items-which'] ?? '').toString() + switch (which) { + case '1': + await this.updateActors(canvas.scene.tokens.contents.map(d => d.object.actor), parent) + break + case '2': + await this.updateActors(Object.values(ui.windows).filter(s => s instanceof ActorSheet).map(s => s.object), parent) + break + case '3': + await this.updateActors(game.actors.contents, false) + break + } + } + this.close() + } + + static async create (options = {}) { + new CoCIDActorUpdateItems(options).render(true) + } +} diff --git a/module/apps/coc-id-editor.js b/module/apps/coc-id-editor.js index ff23ee45..9026d1d3 100644 --- a/module/apps/coc-id-editor.js +++ b/module/apps/coc-id-editor.js @@ -80,6 +80,12 @@ export class CoCIDEditor extends FormApplication { for (const era of eras) { usedEras[era] = COC7.eras[era] ?? '?' } + const folders = [] + let e = d?.folder + while (e?.name) { + folders.unshift(e?.name) + e = e.folder + } return { eras: eras.reduce(function (all, current) { all[current] = true @@ -88,7 +94,7 @@ export class CoCIDEditor extends FormApplication { priority: d.flags.CoC7.cocidFlag.priority, lang: d.flags.CoC7.cocidFlag.lang ?? 'en', link: await TextEditor.enrichHTML(d.link, { async: true }), - folder: d?.folder?.name + folder: folders.map(n => n.indexOf(' ') > -1 ? '"' + n + '"' : n).join(' > ') } })) if (Object.entries(uniqueWorldPriority).filter(c => c[1] > 1).length > 0) { @@ -118,6 +124,18 @@ export class CoCIDEditor extends FormApplication { for (const era of eras) { usedEras[era] = COC7.eras[era] ?? '?' } + const folders = [] + let e = d?.folder + while (e?.name) { + folders.unshift(e?.name) + e = e.folder + } + folders.unshift(d.compendium.metadata.label) + e = d?.compendium.folder + while (e?.name) { + folders.unshift(e?.name) + e = e.folder + } return { eras: eras.reduce(function (all, current) { all[current] = true @@ -126,7 +144,7 @@ export class CoCIDEditor extends FormApplication { priority: d.flags.CoC7.cocidFlag.priority, lang: d.flags.CoC7.cocidFlag.lang ?? 'en', link: await TextEditor.enrichHTML(d.link, { async: true }), - folder: d?.folder?.name ?? '' + folder: folders.map(n => n.indexOf(' ') > -1 ? '"' + n + '"' : n).join(' > ') } })) if (Object.entries(uniqueCompendiumPriority).filter(c => c[1] > 1).length > 0) { diff --git a/module/dice.js b/module/dice.js index 99c66324..4d6636a5 100644 --- a/module/dice.js +++ b/module/dice.js @@ -1,4 +1,4 @@ -/* global ChatMessage, CONFIG, game, Roll */ +/* global ChatMessage, CONFIG, foundry, game, Roll */ export class CoC7Dice { static async roll (modif = 0, rollMode = null, hideDice = false) { @@ -8,6 +8,11 @@ export class CoC7Dice { alternativeDice = game.settings.get('CoC7', 'tenDiePenalty') } else if (modif > 0) { alternativeDice = game.settings.get('CoC7', 'tenDieBonus') + // Temporary fix for bronze texture in DsN + // FoundryVTT v12 + if (alternativeDice === 'bronze' && foundry.utils.isNewerVersion(game.modules.get('dice-so-nice').version, '5.0.0') && !foundry.utils.isNewerVersion(game.modules.get('dice-so-nice').version, '5.0.5')) { + alternativeDice = 'bronze01' + } } } let roll @@ -111,8 +116,10 @@ export class CoC7Dice { } if (bonusDice > 0) { pool.push( + // Temporary fix for bronze texture in DsN + // FoundryVTT v12 (hasDSN - ? '+1do[' + game.settings.get('CoC7', 'tenDieBonus') + ']' + ? '+1do[' + (game.settings.get('CoC7', 'tenDieBonus') === 'bronze' && foundry.utils.isNewerVersion(game.modules.get('dice-so-nice').version, '5.0.0') && !foundry.utils.isNewerVersion(game.modules.get('dice-so-nice').version, '5.0.5') ? 'bronze01' : game.settings.get('CoC7', 'tenDieBonus')) + ']' : '+1dt' ).repeat(Math.abs(bonusDice)) ) diff --git a/module/items/item.js b/module/items/item.js index 3dc4ab93..dd2ed8f4 100644 --- a/module/items/item.js +++ b/module/items/item.js @@ -542,15 +542,36 @@ export class CoC7Item extends Item { } get baseRange () { - return parseInt(this.system.range.normal.value) + const result = parseInt(this.system.range.normal.value) + if (!isNaN(result)) { + return result + } + return new Roll( + this.system.range.normal.value, + this.parent?.parseCharacteristics() ?? {} + ).evaluateSync().total } get longRange () { - return parseInt(this.system.range.long.value) + const result = parseInt(this.system.range.long.value) + if (!isNaN(result)) { + return result + } + return new Roll( + this.system.range.long.value, + this.parent?.parseCharacteristics() ?? {} + ).evaluateSync().total } get extremeRange () { - return parseInt(this.system.range.extreme.value) + const result = parseInt(this.system.range.extreme.value) + if (!isNaN(result)) { + return result + } + return new Roll( + this.system.range.extreme.value, + this.parent?.parseCharacteristics() ?? {} + ).evaluateSync().total } get skillProperties () { diff --git a/module/manual/en/coc-id-system.md b/module/manual/en/coc-id-system.md index 31ee4054..dfcdebfe 100644 --- a/module/manual/en/coc-id-system.md +++ b/module/manual/en/coc-id-system.md @@ -4,9 +4,11 @@ Several FoundryVTT documents have an ID button accessable to "Game Master" and " **System ID (CoC ID)**: Setting a skill's ID to i.skill.dodge will let the system know to treat that skill as Dodge on the combat card. +**Language**: Which languge is this version of the Item in. + **Cthulhu Flavors**: You can also control the era a skill is for, Animal Handling has different base values based on the era -**System ID Priority**: The system will check your world documents then compendiums and return the document with the highest priority +**System ID Priority**: The highest number will be considered best ## Item i.setup.example - The Investigator Wizard will use these you need to pick a single era to assign it to @@ -19,3 +21,9 @@ i.skill.example - Setups, Investigator Wizard, and creating Actors will use thes ## RollTable rt..backstory-example - If the example part matches the backstory title in kebab case it will give a roll option in the backstory section of the Investigator Wizard + +## Translations +You can use the Keeper's tools on the left hand menu to update Actors based on CoC ID Items you have in your world, you need a scene to be able to access this menu + +## RQID +This system is based on RQID from the "[Runequest Glorantha](https://foundryvtt.com/packages/rqg)" system, documentation for it can be found here [https://sun-dragon-cult.github.io/rqg-system/api/rqid](https://sun-dragon-cult.github.io/rqg-system/api/rqid) diff --git a/module/menu.js b/module/menu.js index 1edb92de..0d1c65d4 100644 --- a/module/menu.js +++ b/module/menu.js @@ -4,6 +4,7 @@ import { CoC7Utilities } from './utilities.js' import { CoC7ActorImporterDialog } from './apps/actor-importer-dialog.js' import { CoC7ContentLinkDialog } from './apps/coc7-content-link-dialog.js' import { CoC7InvestigatorWizard } from './apps/investigator-wizard.js' +import CoCIDActorUpdateItems from './apps/coc-id-actor-update-items.js' class CoC7MenuLayer extends PlaceablesLayer { constructor () { @@ -56,6 +57,13 @@ export class CoC7Menu { onClick: async toggle => await CoC7Utilities.toggleCharCreation(toggle) }, + { + button: true, + icon: 'fas fa-fingerprint', + name: 'actor-coc-id-best', + title: 'CoC7.ActorCoCIDItemsBest', + onClick: async () => await CoCIDActorUpdateItems.create() + }, { button: true, icon: 'fas fa-user-plus', diff --git a/module/scripts/coc-id.js b/module/scripts/coc-id.js index 7ecc0dbb..8ec0beba 100644 --- a/module/scripts/coc-id.js +++ b/module/scripts/coc-id.js @@ -1,4 +1,4 @@ -/* global Actor, Card, CONFIG, foundry, game, Item, JournalEntry, Macro, Playlist, RollTable, Scene, SceneNavigation, ui */ +/* global Actor, Card, CONFIG, foundry, fromUuid, game, Item, JournalEntry, Macro, Playlist, RollTable, Scene, SceneNavigation, ui */ import { COC7 } from '../config.js' import { CoC7Utilities } from '../utilities.js' @@ -203,7 +203,6 @@ export class CoCID { * @param era the eras to match against ('standard', 'modernPulp', ...), true = world default, false = no filter * @param lang the language to match against ('en', 'es', ...) * @param scope defines where it will look: - * **match** same logic as fromCoCID function, * **all**: find in both world & compendia, * **world**: only search in world, * **compendiums**: only search in compendiums @@ -211,44 +210,13 @@ export class CoCID { * @param showLoading Show loading bar * @returns array */ - static async fromCoCIDRegexAll ({ cocidRegExp, type, lang = game.i18n.lang, era = false, scope = 'match', langFallback = true, showLoading = false } = {}) { - if (!cocidRegExp) { - return [] + static async fromCoCIDRegexAll ({ cocidRegExp, type, lang = game.i18n.lang, era = false, scope = 'all', langFallback = true, showLoading = false } = {}) { + let candidates = await CoCID.fromCoCIDRegexAllMixed({ cocidRegExp, type, lang, era, scope, langFallback, showLoading }) + if (langFallback && lang !== 'en') { + candidates = CoCID.filterByLanguage(candidates, lang) } - const result = [] - - let count = 0 - if (showLoading) { - if (['match', 'all', 'world'].includes(scope)) { - count++ - } - if (['match', 'all', 'compendiums'].includes(scope)) { - count = count + game.packs.size - } - } - - if (['match', 'all', 'world'].includes(scope)) { - const worldDocuments = await CoCID.documentsFromWorld({ cocidRegExp, type, lang, era, langFallback, progressBar: count }) - if (scope === 'match' && worldDocuments.length) { - if (showLoading) { - SceneNavigation.displayProgressBar({ label: game.i18n.localize('SETUP.PackagesLoading'), pct: 100 }) - } - return this.filterAllCoCID(worldDocuments, langFallback && lang !== 'en') - } - result.splice(0, 0, ...worldDocuments) - } - - if (['match', 'all', 'compendiums'].includes(scope)) { - const compendiaDocuments = await CoCID.documentsFromCompendia({ cocidRegExp, type, lang, era, langFallback, progressBar: count }) - - result.splice(result.length, 0, ...compendiaDocuments) - } - - if (showLoading) { - SceneNavigation.displayProgressBar({ label: game.i18n.localize('SETUP.PackagesLoading'), pct: 100 }) - } - - return this.filterAllCoCID(result, langFallback && lang !== 'en') + candidates.sort(CoCID.compareCoCIDPrio) + return await CoCID.onlyDocuments(candidates, showLoading) } /** @@ -258,7 +226,6 @@ export class CoCID { * @param lang the language to match against ('en', 'es', ...) * @param era the eras to match against ('standard', 'modernPulp', ...), true = world default, false = no filter * @param scope defines where it will look: - * **match** same logic as fromCoCID function, * **all**: find in both world & compendia, * **world**: only search in world, * **compendiums**: only search in compendiums @@ -266,7 +233,7 @@ export class CoCID { * @param showLoading Show loading bar * @returns array */ - static async fromCoCIDAll ({ cocid, lang = game.i18n.lang, era = false, scope = 'match', langFallback = true, showLoading = false } = {}) { + static async fromCoCIDAll ({ cocid, lang = game.i18n.lang, era = false, scope = 'all', langFallback = true, showLoading = false } = {}) { if (!cocid || typeof cocid !== 'string') { return [] } @@ -297,9 +264,18 @@ export class CoCID { ui.notifications.error(game.i18n.format('CoC7.CoCIDFlag.error.unknown-era', { era: game.i18n.localize('CoC7.Any') })) return [] } - const allDocuments = await this.fromCoCIDRegexAll({ cocidRegExp, type, lang, era, scope: 'all', langFallback, showLoading }) - const bestDocuments = this.filterBestCoCID(allDocuments) - return bestDocuments + let candidates = await this.fromCoCIDRegexAllMixed({ cocidRegExp, type, lang, era, scope: 'all', langFallback, showLoading }) + if (langFallback && lang !== 'en') { + candidates = CoCID.filterByLanguage(candidates, lang) + } + candidates.sort(CoCID.compareCoCIDPrio) + const ids = {} + for (const candidate of candidates) { + if (!Object.prototype.hasOwnProperty.call(ids, candidate.flags.CoC7.cocidFlag.id)) { + ids[candidate.flags.CoC7.cocidFlag.id] = candidate + } + } + return await CoCID.onlyDocuments(Object.values(ids), showLoading) } /** @@ -345,78 +321,50 @@ export class CoCID { } /** - * For an array of documents already processed by filterAllCoCID, returns only those that are the "best" version of their CoCID - * @param documents - * @returns + * Returns all documents or indexes with an CoCID matching the regex and matching the document type + * and language, from the specified scope. + * Empty array return for no matches + * @param cocidRegExp regex used on the CoCID + * @param type the first part of the wanted CoCID, for example 'i', 'a', 'je' + * @param era the eras to match against ('standard', 'modernPulp', ...), true = world default, false = no filter + * @param lang the language to match against ('en', 'es', ...) + * @param scope defines where it will look: + * **all**: find in both world & compendia, + * **world**: only search in world, + * **compendiums**: only search in compendiums + * @param langFallback should the system fall back to en incase there is no translation + * @param showLoading Show loading bar + * @returns array */ - static filterBestCoCID (documents) { - const bestMatchDocuments = new Map() - for (const doc of documents) { - const docCoCID = doc.getFlag('CoC7', 'cocidFlag')?.id - if (docCoCID) { - const currentDoc = bestMatchDocuments.get(docCoCID) - if (typeof currentDoc === 'undefined') { - bestMatchDocuments.set(docCoCID, doc) - continue - } + static async fromCoCIDRegexAllMixed ({ cocidRegExp, type, lang = game.i18n.lang, era = false, scope = 'all', langFallback = true, showLoading = false } = {}) { + if (!cocidRegExp) { + return [] + } - // Prefer pack === '' if possible - const docPack = (doc.pack ?? '') - const existingPack = (currentDoc?.pack ?? '') - const preferWorld = docPack === '' || existingPack !== '' - if (!preferWorld) { - continue - } + let results = [] - // Prefer highest priority - let docPriority = parseInt(doc.getFlag('CoC7', 'cocidFlag')?.priority ?? Number.MIN_SAFE_INTEGER, 10) - docPriority = isNaN(docPriority) ? Number.MIN_SAFE_INTEGER : docPriority - let existingPriority = parseInt(currentDoc.getFlag('CoC7', 'cocidFlag')?.priority ?? Number.MIN_SAFE_INTEGER, 10) - existingPriority = isNaN(existingPriority) ? Number.MIN_SAFE_INTEGER : existingPriority - const preferPriority = docPriority >= existingPriority - if (!preferPriority) { - continue - } - - bestMatchDocuments.set(docCoCID, doc) + let count = 0 + if (showLoading) { + if (['all', 'world'].includes(scope)) { + count++ + } + if (['all', 'compendiums'].includes(scope)) { + count = count + game.packs.size } } - return [...bestMatchDocuments.values()] - } - /** - * For an array of documents, returns filter out en documents if a translated one exists matching the same eras - * @param documents - * @param langFallback should the system fall back to en in case there is no translation - * @returns - */ - static filterAllCoCID (documents, langFallback) { - if (!langFallback) { - return documents - } - const bestMatchDocuments = new Map() - for (const doc of documents) { - const docCoCID = doc.getFlag('CoC7', 'cocidFlag')?.id - if (docCoCID) { - const docEras = Object.entries(doc.getFlag('CoC7', 'cocidFlag')?.eras ?? {}).filter(e => e[1]).map(e => e[0]).sort().join('/') - let docPriority = parseInt(doc.getFlag('CoC7', 'cocidFlag')?.priority ?? Number.MIN_SAFE_INTEGER, 10) - docPriority = isNaN(docPriority) ? Number.MIN_SAFE_INTEGER : docPriority - const key = docCoCID + '/' + docEras + '/' + (isNaN(docPriority) ? Number.MIN_SAFE_INTEGER : docPriority) - - const currentDoc = bestMatchDocuments.get(key) - if (typeof currentDoc === 'undefined') { - bestMatchDocuments.set(key, doc) - continue - } + if (['all', 'world'].includes(scope)) { + results = results.concat(await CoCID.docsFromWorld({ cocidRegExp, type, lang, era, langFallback, progressBar: count })) + } - const docLang = doc.getFlag('CoC7', 'cocidFlag')?.lang ?? 'en' - const existingLang = currentDoc?.getFlag('CoC7', 'cocidFlag')?.lang ?? 'en' - if (existingLang === 'en' && existingLang !== docLang) { - bestMatchDocuments.set(key, doc) - } - } + if (['all', 'compendiums'].includes(scope)) { + results = results.concat(await CoCID.indexesFromCompendia({ cocidRegExp, type, lang, era, langFallback, progressBar: count })) } - return [...bestMatchDocuments.values()] + + if (showLoading) { + SceneNavigation.displayProgressBar({ label: game.i18n.localize('SETUP.PackagesLoading'), pct: 100 }) + } + return results } /** @@ -430,7 +378,7 @@ export class CoCID { * @param progressBar If greater than zero show percentage * @returns array */ - static async documentsFromWorld ({ cocidRegExp, type, lang = game.i18n.lang, era = false, langFallback = true, progressBar = 0 } = {}) { + static async docsFromWorld ({ cocidRegExp, type, lang = game.i18n.lang, era = false, langFallback = true, progressBar = 0 } = {}) { if (!cocidRegExp) { return [] } @@ -461,12 +409,11 @@ export class CoCID { return [] } - return candidateDocuments.sort(CoCID.compareCoCIDPrio) + return candidateDocuments } /** - * Get a list of all documents matching the CoCID regex, language, and era from the compendiums. - * The document list is sorted with the highest priority first. + * Get a list of all indexes matching the CoCID regex, language, and era from the compendiums. * @param cocidRegExp regex used on the CoCID * @param type the first part of the wanted CoCID, for example 'i', 'a', 'je' * @param era the eras to match against ('standard', 'modernPulp', ...), true = world default, false = no filter @@ -475,7 +422,7 @@ export class CoCID { * @param progressBar If greater than zero show percentage * @returns array */ - static async documentsFromCompendia ({ cocidRegExp, type, lang = game.i18n.lang, era = false, langFallback = true, progressBar = 0 }) { + static async indexesFromCompendia ({ cocidRegExp, type, lang = game.i18n.lang, era = false, langFallback = true, progressBar = 0 }) { if (!cocidRegExp) { return [] } @@ -485,10 +432,9 @@ export class CoCID { if (era === true) { era = game.settings.get('CoC7', 'worldEra') } - const eraText = CoCID.eraText(era) const documentType = CoCID.getDocumentType(type).name - const candidateDocuments = [] + let indexDocuments = [] let count = 1 for (const pack of game.packs) { @@ -500,45 +446,38 @@ export class CoCID { if (!pack.indexed) { await pack.getIndex() } - const indexInstances = pack.index.filter((i) => { - const cocidFlag = i.flags?.CoC7?.cocidFlag - if (typeof cocidFlag === 'undefined') { + indexDocuments = indexDocuments.concat(pack.index.filter((i) => { + if (typeof i.flags?.CoC7?.cocidFlag?.id !== 'string') { return false } - const eras = (cocidFlag.eras ?? []) + const eras = (i.flags.CoC7.cocidFlag.eras ?? {}) const matchingEras = (era === false || Object.entries(eras).length === 0 || (Object.prototype.hasOwnProperty.call(eras, era) && eras[era])) - return cocidRegExp.test(cocidFlag.id) && [lang, (langFallback ? 'en' : '-')].includes(cocidFlag.lang) && matchingEras - }) - for (const index of indexInstances) { - const document = await pack.getDocument(index._id) - if (!document) { - const msg = game.i18n.format('CoC7.CoCIDFlag.error.document-not-found', { - cocid: cocidRegExp, - lang, - era: eraText - }) - ui.notifications.error(msg) - console.log('CoC7 |', msg, index) - throw new Error() - } else { - candidateDocuments.push(document) - } - } + return cocidRegExp.test(i.flags.CoC7.cocidFlag.id) && [lang, (langFallback ? 'en' : '-')].includes(i.flags.CoC7.cocidFlag.lang) && matchingEras + })) } } - return candidateDocuments.sort(CoCID.compareCoCIDPrio) + return indexDocuments } /** * Sort a list of document on CoCID priority - the highest first. + * If priority is the same use world over compendiums * @example * aListOfDocuments.sort(CoCID.compareCoCIDPrio) */ static compareCoCIDPrio (a, b) { - return ( - b.getFlag('CoC7', 'cocidFlag')?.priority - - a.getFlag('CoC7', 'cocidFlag')?.priority - ) + const ap = parseInt(a.flags.CoC7.cocidFlag.priority, 10) + const bp = parseInt(b.flags.CoC7.cocidFlag.priority, 10) + if (ap === bp) { + const ao = a instanceof foundry.abstract.DataModel + const bo = b instanceof foundry.abstract.DataModel + if (ao === bo) { + return 0 + } else { + return (ao ? -1 : 1) + } + } + return bp - ap } /** @@ -596,4 +535,79 @@ export class CoCID { s: Scene } } + + /** + * Replace indexes with their documents + */ + static async onlyDocuments (candidates, showLoading) { + const len = candidates.length + let count = 0 + for (const offset in candidates) { + if (showLoading) { + SceneNavigation.displayProgressBar({ label: game.i18n.localize('SETUP.PackagesLoading'), pct: Math.floor(count / len) }) + count = count + 100 + } + if (!(candidates[offset] instanceof foundry.abstract.DataModel)) { + candidates[offset] = await fromUuid(candidates[offset].uuid) + } + } + if (showLoading) { + SceneNavigation.displayProgressBar({ label: game.i18n.localize('SETUP.PackagesLoading'), pct: 100 }) + } + return candidates + } + + /** + * Filter an array of index or documents. + * If a CoCID has a version lang then remove the en versions + */ + static filterByLanguage (indexes, lang) { + const ids = indexes.reduce((c, i) => { + c[i.flags.CoC7.cocidFlag.id] = c[i.flags.CoC7.cocidFlag.id] || i.flags.CoC7.cocidFlag.lang === lang + return c + }, {}) + return indexes.filter(i => i.flags.CoC7.cocidFlag.lang !== 'en' || !ids[i.flags.CoC7.cocidFlag.id]) + } + + /** + * Get a list of all documents matching the CoCID regex, language, and era from the world. + * The document list is sorted with the highest priority first. + * @param cocidRegExp regex used on the CoCID + * @param type the first part of the wanted CoCID, for example 'i', 'a', 'je' + * @param era the eras to match against ('standard', 'modernPulp', ...), true = world default, false = no filter + * @param lang the language to match against ('en', 'es', ...) + * @param langFallback should the system fall back to en incase there is no translation + * @param progressBar If greater than zero show percentage + * @returns array + */ + static async documentsFromWorld ({ cocidRegExp, type, lang = game.i18n.lang, era = false, langFallback = true, progressBar = 0 } = {}) { + console.warn('Calling documentsFromWorld directly is depreciated') + let documents = await CoCID.docsFromWorld({ cocidRegExp, type, lang, era, langFallback, progressBar }) + if (langFallback && lang !== 'en') { + documents = CoCID.filterByLanguage(documents, lang) + } + documents.sort(CoCID.compareCoCIDPrio) + return documents + } + + /** + * Get a list of all documents matching the CoCID regex, language, and era from the compendiums. + * The document list is sorted with the highest priority first. + * @param cocidRegExp regex used on the CoCID + * @param type the first part of the wanted CoCID, for example 'i', 'a', 'je' + * @param era the eras to match against ('standard', 'modernPulp', ...), true = world default, false = no filter + * @param lang the language to match against ('en', 'es', ...) + * @param langFallback should the system fall back to en incase there is no translation + * @param progressBar If greater than zero show percentage + * @returns array + */ + static async documentsFromCompendia ({ cocidRegExp, type, lang = game.i18n.lang, era = false, langFallback = true, progressBar = 0 }) { + console.warn('Calling documentsFromCompendia directly is depreciated') + let indexes = await CoCID.indexesFromCompendia({ cocidRegExp, type, lang, era, langFallback, progressBar }) + if (langFallback && lang !== 'en') { + indexes = CoCID.filterByLanguage(indexes, lang) + } + indexes.sort(CoCID.compareCoCIDPrio) + return await CoCID.onlyDocuments(indexes, progressBar > 0) + } } diff --git a/module/scripts/compendium-filter.js b/module/scripts/compendium-filter.js index 013e700d..df06e323 100644 --- a/module/scripts/compendium-filter.js +++ b/module/scripts/compendium-filter.js @@ -1,81 +1,131 @@ -/* global $, game, Hooks, ui */ +/* global $, Compendium, game, Hooks, SearchFilter */ import { COC7 } from '../config.js' import { CoC7Utilities } from '../utilities.js' -async function performFilter (app) { - const appHtml = $('div.app[data-appid=' + app.appId + ']') - const type = appHtml.find('select[name=coc7type' + app.appId + ']').val() - const name = appHtml.find('input[name=search]').val() - const eraElement = appHtml.find('select[name=coc7era' + app.appId + ']') - let setEra = false - let setType = false - let era = '' - switch (type) { - case 'occupation': - case 'setup': - case 'skill': - case 'weapon': - eraElement.closest('div.era_select').show() - era = eraElement.val() - setType = true - setEra = true - break - default: - eraElement.closest('div.era_select').hide() - setType = true - } - app.options.filterCoC7 = { - type: (setType ? type : null), - era: (setEra ? era : null) - } - const items = await game.packs.get(appHtml.data('packId'))?.getDocuments() - if (typeof items === 'undefined') { - return - } - const show = [] - const nameFilter = new RegExp(RegExp.escape(name), 'i') - for (const [, item] of Object.entries(items)) { - let filter = true - if (filter && name !== '') { - filter = item.name.match(nameFilter) - } - if (filter && type !== '') { - filter = item.type === type - } - if (filter && era !== '') { - const eras = item.flags?.CoC7?.cocidFlag?.eras - if (eras && Object.keys(eras).length > 0 && !(eras[era] ?? false)) { - filter = false +function matchSearchEntriesItem (app, isNameSearch, query, type, era, entryIds, folderIds, includeFolder) { + const entries = app.collection.index ?? app.collection.contents + + // Copy the folderIds to a new set so we can add to the original set without incorrectly adding child entries + const matchedFolderIds = new Set(folderIds) + + for (const entry of entries) { + const entryId = app._getEntryId(entry) + // If we matched a folder, add its children entries + if (matchedFolderIds.has(entry.folder?._id ?? entry.folder)) { + entryIds.add(entryId) + } else { + const matchName = (!isNameSearch || query.test(SearchFilter.cleanQuery(app._getEntryName(entry)))) + const matchType = (type === '' || type === entry.type) + const eras = Object.keys(entry.flags?.CoC7?.cocidFlag?.eras ?? {}) + const matchEras = (era === '' || eras.length === 0 || eras.includes(era)) + if (matchName && matchType && matchEras) { + // Otherwise, if we are searching by name, match the entry name + entryIds.add(entryId) + includeFolder(entry.folder) } } - if (filter) { - show.push(item.id) - } } - appHtml.find('ol.directory-list li').each(function () { - this.style.display = show.includes(this.dataset.documentId) - ? 'flex' - : 'none' - }) } -async function triggerFilterEvent (e) { - let appId = e.currentTarget.name.replace(/^coc7[^0-9]+(\d+)$/, '$1') - if (appId === 'search') { - appId = $(e.currentTarget).closest('div.app').data('appid') - } - if (ui.windows[appId] ?? false) { - performFilter(ui.windows[appId]) +export function compendiumFilter () { + const oldSearchFilter = Compendium.prototype._onSearchFilter + Compendium.prototype._onSearchFilter = function (event, query, rgx, html) { + if (this.collection.documentName === 'Item') { + if (typeof html === 'undefined') { + query = this.element[0].querySelector(this.options.filters[0].inputSelector).value + rgx = new RegExp(RegExp.escape(query), 'i') + html = this.element[0].querySelector(this.options.filters[0].contentSelector) + } + const typeSelect = this.element[0].querySelector('select[name=coc7type' + this.appId + ']') + const eraSelect = this.element[0].querySelector('select[name=coc7era' + this.appId + ']') + const type = typeSelect.value + let era = '' + switch (type) { + case 'occupation': + case 'setup': + case 'skill': + case 'weapon': + eraSelect.parentElement.style.display = '' + era = eraSelect.value + break + default: + eraSelect.parentElement.style.display = 'hide' + } + + const isNameSearch = !!query + const isSearch = isNameSearch || type !== '' || era !== '' + const entryIds = new Set() + const folderIds = new Set() + const autoExpandFolderIds = new Set() + + // Match entries and folders + if (isSearch) { + // Include folders and their parents, auto-expanding parent folders + const includeFolder = (folder, autoExpand = true) => { + if (!folder) { + return + } + if (typeof folder === 'string') { + folder = this.collection.folders.get(folder) + } + if (!folder) { + return + } + const folderId = folder._id + if (folderIds.has(folderId)) { + // If this folder is not already auto-expanding, but it should be, add it to the set + if (autoExpand && !autoExpandFolderIds.has(folderId)) { + autoExpandFolderIds.add(folderId) + } + return + } + folderIds.add(folderId) + if (autoExpand) { + autoExpandFolderIds.add(folderId) + } + if (folder.folder) { + includeFolder(folder.folder) + } + } + + if (isNameSearch) { + // First match folders + this._matchSearchFolders(rgx, includeFolder) + } + + // Next match entries + matchSearchEntriesItem(this, isNameSearch, rgx, type, era, entryIds, folderIds, includeFolder) + } + + // Toggle each directory item + for (const el of html.querySelectorAll('.directory-item')) { + if (el.classList.contains('hidden')) { + continue + } + if (el.classList.contains('folder')) { + const match = isSearch && folderIds.has(el.dataset.folderId) + el.style.display = (!isSearch || match) ? 'flex' : 'none' + if (autoExpandFolderIds.has(el.dataset.folderId)) { + if (isSearch && match) { + el.classList.remove('collapsed') + } + } else { + el.classList.toggle('collapsed', !game.folders._expanded[el.dataset.uuid]) + } + } else { + el.style.display = (!isSearch || entryIds.has(el.dataset.entryId)) ? 'flex' : 'none' + } + } + } else { + oldSearchFilter.call(this, event, query, rgx, html) + } } -} -export function compendiumFilter () { Hooks.on('renderCompendium', async (app, html, data) => { if (app.collection.documentName === 'Item') { - const input = $('input[name=search]', html) - input.after(input.clone()) - input.remove() - await app.collection.getIndex() + if (!app.collection.indexed) { + await app.collection.getIndex() + } const types = [...new Set(data.index.filter(i => i.name !== '#[CF_tempEntity]').map(item => item.type))] const select = [] const selectedType = (app.options.filterCoC7?.type ?? '') @@ -147,7 +197,6 @@ export function compendiumFilter () { '' ) } - html.data('packId', app.metadata.id) let uncommon = game.i18n.localize('CoC7.SkillRarityShort') if (uncommon === 'CoC7.SkillRarityShort') { uncommon = '??' @@ -173,11 +222,7 @@ export function compendiumFilter () { '' + '' ) - html.find('select').change(triggerFilterEvent.bind(this)) - html.find('input').keyup(triggerFilterEvent.bind(this)) - if (selectedType !== '') { - performFilter(app) - } + html.find('select').change(app.options.filters[0].callback.bind(app)) } }) } diff --git a/packs/system-doc.db b/packs/system-doc.db index 543bfc80..c9301bc4 100644 --- a/packs/system-doc.db +++ b/packs/system-doc.db @@ -1,3 +1,3 @@ -{"name":"Call of Cthulhu 7th Edition [en]","pages":[{"name":"System documentation","type":"text","_id":"pjqHiADSapcdS4fU","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    System documentation for version 0.10.0

    \n

    This document is a work in progress overview of the CoC7 system it is not a tutorial for how to use FoundryVTT.

    \n

    You will need one of the following to play the game

    \n
      \n
    • Chaosium's Call of Cthulhu 7th Edition - Keeper's Rulebook
    • \n
    • Chaosium's Call of Cthulhu 7th Edition - Call of Cthulhu Starter Set
    • \n
    • Chaosium's Call of Cthulhu 7th Edition - Quick-Start Rules
    • \n
    \n

    The system automates most of the regular tasks and rules involved with running a game.

    \n

    Several parts of the actor sheets have pop up tooltips that trigger after two seconds, this delay can be changed in the settings

    \n

    This documentation can be reopened under  Game Settings -> Help and Documentation -> View CoC7 System Manual

    \n

    Recent changes

    \n

    For a full list of changes checkout the changelog on GitHub

    \n
      \n
    • @UUID[.xIXeEy4A8thetqLp]{CoC ID system} - Set tags on documents for example i.skill.dodge to find dodge skills on actors
    • \n
    • Investigator Wizard - Use CoC ID Items to create investigators
    • \n
    • @UUID[.pjqHiADSapcdS4fU#settings-overview]{Pulp Rules} - Implement optional pulp rule to ignore age when calculating movement speed
    • \n
    • @UUID[.ag5ghFZ6hYIm2JyJ]{Active effects} - Add support for bonus/penalty dice when rolling from the Actor sheets
    • \n
    \n

    Overview sections below

    \n

    If this is your first time it is recommends you also read the following sections on this page.

    \n

    Foundry VTT is based in actors and items. This module includes a number of system specific actors and items, and some examples of them can be found in the included system compendiums.

    \n
      \n
    • @UUID[.pjqHiADSapcdS4fU#actor-overview]{Actor overview}
    • \n
    • @UUID[.pjqHiADSapcdS4fU#items-overview]{Items overview}
    • \n
    • @UUID[.pjqHiADSapcdS4fU#settings-overview]{Settings overview}
    • \n
    • @UUID[.pjqHiADSapcdS4fU#call-of-cthulhu-scene-menu]{Scene menu overview}
    • \n
    • @UUID[.pjqHiADSapcdS4fU#keyboard-and-mouse-shortcuts]{Keyboard and mouse shortcuts}
    • \n
    • @UUID[.9a8SLXDQHfCxrZzR]{Creating your first investigator}
    • \n
    • @UUID[.EQS1L753HOsOD4vR]{Character creation}
    • \n
    \n

    How to use the system

    \n
      \n
    • @UUID[.ag5ghFZ6hYIm2JyJ]{Active effects} - An active effect will modify an actor characteristic(s), attribute(s), skill(s).
    • \n
    • @UUID[.EXFpS3WZu9pwEr6H]{Actor importer}
    • \n
    • Actor Type: Character (TODO)
    • \n
    • Actor Type: Container (TODO)
    • \n
    • Actor Type: Creature (TODO)
    • \n
    • Actor Type: NPC (TODO)
    • \n
    • Chat link creator (TODO)
    • \n
    • Character creation mode (TODO)
    • \n
    • @UUID[.SgRmyJJ7tb4o5Zb9]{Combat} (TODO)
    • \n
    • Development phase (TODO)
    • \n
    • @UUID[.oFE5T3zT5PMhWbui]{Item Types} (TODO)
    • \n
    • @UUID[.sJiiuIJZTToArDnD]{Item Type: Archetype} (TODO)
    • \n
    • @UUID[.OaIgfX2Ij0vQoVtz]{Item Type: Book} (TODO)
    • \n
    • @UUID[.w645thphP1Sd2Whe]{Item Type: Chases}
    • \n
    • Item Type: Item (TODO)
    • \n
    • @UUID[.PtxMa4YG5ZEkvJj9]{Item Type: Occupation}
    • \n
    • @UUID[.gv3xcdEM8ugzJJdz]{Item Type: Setup}
    • \n
    • @UUID[.7Ql88MphdUS0FvBv]{Item Type: Skill} (TODO)
    • \n
    • Item Type: Spell (TODO)
    • \n
    • Item Type: Status (TODO)
    • \n
    • Item Type: Talent (TODO)
    • \n
    • Item Type: Weapon (TODO)
    • \n
    • @UUID[.9YesdNtaElDQaaaZ]{Link Creation Tool}
    • \n
    • @UUID[.7sSX5w3psDau2CDn]{Links} (TODO)
    • \n
    • Macros (TODO)
    • \n
    • Rolls (TODO)
    • \n
    • @UUID[.9xaysNap3U5XbkTn]{Sanity} (TODO)
    • \n
    • Start Rest (TODO)
    • \n
    • XP Gain (TODO)
    • \n
    \n

    Actor overview

    \n
      \n
    • Character - A complete character, usually an investigator. @Compendium[CoC7.examples.JuI2aWDSEuQNKeUI]{Example Character}
    • \n
    • Container - An inventory container. @Compendium[CoC7.examples.r7bDSY4OYKxQYEas]{Example Container}
    • \n
    • Creature - A more simple character, suitable for creatures. @Compendium[CoC7.examples.XE2vjLG03wGfnYLw]{Example Creature}
    • \n
    • NPC - A more simple character, suitable for NPCs. @Compendium[CoC7.examples.4kSvDc4n13oFx8RG]{Example NPC}
    • \n
    \n

    Items overview

    \n
      \n
    • Archetype - A set of skills and other stats that implement a Pulp Cthulhu archetype. These do not trigger automation in the system. @Compendium[CoC7.items.lu04TIRrg9P3vRqY]{Example Archetype}
    • \n
    • Book - An arcane tome that can hold spells and character improvements.
    • \n
    • Item - A piece of equipment.
    • \n
    • Occupation - A set of skills and other stats that implement a CoC occupation. @Compendium[CoC7.items.NOsh6EdNSjpjahDF]{Example Occupation}
    • \n
    • Setup - A set of default configurations for character, creature, or NPC creation. @Compendium[CoC7.items.CcH7CdXGtGTjMSCg]{Example Setup}
    • \n
    • Skill - A skill with a base percentage and some tags. @Compendium[CoC7.skills.UOuN0gESXPp2HXwH]{Example Skill}
    • \n
    • Spell - A magic spell.
    • \n
    • Status - An phobia or mania condition. @Compendium[CoC7.items.DVdvEDizPZPux1pK]{Example Mania}
    • \n
    • Talent -A special power for Pulp Cthulhu. These do not trigger automation in the system. @Compendium[CoC7.items.yqvwz769ZeJplOW7]{Example Talent}
    • \n
    • Weapon - An item with weapon statistics (this includes unarmed attacks). @Compendium[CoC7.items.3elxAwnv7WCUNwng]{Example Weapon}
    • \n
    \n

    Settings overview

    \n

    Click on the  Game Settings tab then under the Game Settings heading click on  Configure Settings.

    \n

    Click on  System Settings

    \n
      \n
    • Variant/Optional Rules - Here you can turn on individual Pulp Cthulhu rules and other optional rules
    • \n
    • Initiative Settings - Additional settings for optional initiative rule
    • \n
    • Roll Settings - Default options for rolls
    • \n
    • Chat Cards Settings - Configure chat messages
    • \n
    • Scene Settings - Scene Settings
    • \n
    • Game Artwork Settings - This allows you to set a custom pause icon and message
    • \n
    • Sheet Settings - This allows you to change character sheet settings and optional CSS
    • \n
    • Weapon Settings - Weapon Settings
    • \n
    • Developer And Debug Settings - These settings can break your world when new updates are released so only use them on test worlds
    • \n
    • Roll Table Settings - When sanity rolls are made the system can automatically roll for a bout of madness. You can see example roll tables in the Sanity Roll Table compendiums
    • \n
    \n

    Call of Cthulhu Scene Menu

    \n

    To access this menu you will need to have an active scene which can be created in the  Scenes Directory. These options are only available to the Keeper.

    \n
      \n
    • Keeper's tools\n
        \n
      • Development phase: When enabled, players can make improvement rolls for their marked skills.
      • \n
      • Character creation mode: When enabled, players can distribute points among their skills.
      • \n
      • XP gain: When enabled, a skill will be marked for improvement after a successful check.
      • \n
      • Send a decoy roll to players: When clicked, players will see a fake GM private roll.
      • \n
      • Start Rest: When click, pick characters to perform a rest and roll for XP gains.
      • \n
    • \n
    • Roll !: Used to roll 1d100 with a threshold, difficulty and bonus or penalty dice.
    • \n
    • Create link: Create a roll link for players to click
    • \n
    \n

    Keyboard and mouse shortcuts

    \n

    There are many elements in the sheets that trigger a dice roll when clicked. Usually a dialog is shown to prompt the user for a difficulty and a possible bonus or penalty. This behavior is modified with the following controls:

    \n
      \n
    • Right click on any rollable element to include it in an opposed roll. As long as the card is open, all rolls made\nwith a right click will be added to the opposed roll.
    • \n
    • Alt + Right click on any rollable element to include it in a combined roll.
    • \n
    • Shift + Left click on a rollable element will make a roll without asking for difficulty or bonus/penalty.
    • \n
    • Ctrl + Left click on a rollable element will create a roll request. Only available for the GM.
    • \n
    • Alt + Left click on sanity will prompt the player for minimum and maximum sanity loss.
    • \n
    \n\n
    ","markdown":""},"sort":0},{"name":"Active effects","type":"text","_id":"ag5ghFZ6hYIm2JyJ","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Effects

    \n

    The system allows for the creation of Active Effects.\nAn active effect will modify an actor characteristic(s), attribute(s), skill(s).\nEffects can be created as a @UUID[.7sSX5w3psDau2CDn]{link} using the @UUID[.9YesdNtaElDQaaaZ]{Link creation tool} or directly in the character sheet by clicking the   button.

    \n

    Effects tab

    \n

    Effects will be display in the effect tabs on the character sheet.

    \n

    \"effects

    \n

    Effect are broken down in 4 categories for PC :

    \n
      \n
    • Status: those are effects used and created by the system (Wounds status, prone, insane ...). Those effects do not include any changes.
    • \n
    • Temporary: those are effects with duration.
    • \n
    • Passive: those are permanent effects.
    • \n
    • Inactive: those are disabled effects.
    • \n
    \n

    For NPC/Creatures you will only see 2 sections: active and inactive effects.\nWhen an effect is not inactive, the corresponding changes will be applied to the actor.

    \n

    Creating effects

    \n

    You can create effect by clicking the Add button.\nThis will bring the effect creation window.\nThis windows has 3 tabs

    \n

    Details tab

    \n

    \"Details

    \n

    Duration tab

    \n

    \"Duration

    \n

    Changes tab

    \n

    \"Changes

    \n

    This last tab will includes all changes made to the character sheet.

    \n

    Changes

    \n

    An effect includes a list of changes. Each change needs to be addressed with the corresponding system path.\nThe available changes are :

    \n
      \n
    • Characteristics:\n
        \n
      • Strength:\n
          \n
        • system.characteristics.str.value
        • \n
        • system.characteristics.str.bonusDice
        • \n
      • \n
      • Constitution:\n
          \n
        • system.characteristics.con.value
        • \n
        • system.characteristics.con.bonusDice
        • \n
      • \n
      • Size:\n
          \n
        • system.characteristics.siz.value
        • \n
        • system.characteristics.siz.bonusDice
        • \n
      • \n
      • Dexterity:\n
          \n
        • system.characteristics.dex.value
        • \n
        • system.characteristics.dex.bonusDice
        • \n
      • \n
      • Appearance:\n
          \n
        • system.characteristics.app.value
        • \n
        • system.characteristics.app.bonusDice
        • \n
      • \n
      • Intelligence:\n
          \n
        • system.characteristics.int.value
        • \n
        • system.characteristics.int.bonusDice
        • \n
      • \n
      • Power:\n
          \n
        • system.characteristics.pow.value
        • \n
        • system.characteristics.pow.bonusDice
        • \n
      • \n
      • Education:\n
          \n
        • system.characteristics.edu.value
        • \n
        • system.characteristics.edu.bonusDice
        • \n
      • \n
    • \n
    • Attributes:\n
        \n
      • Luck:\n
          \n
        • system.attribs.lck.value
        • \n
        • system.attribs.lck.bonusDice
        • \n
      • \n
      • Sanity:\n
          \n
        • system.attribs.san.value
        • \n
        • system.attribs.san.bonusDice
        • \n
      • \n
      • Movement Rate:\n
          \n
        • system.attribs.mov.value
        • \n
      • \n
      • Build:\n
          \n
        • system.attribs.build.value
        • \n
      • \n
      • Damage Bonus:\n
          \n
        • system.attribs.db.value
        • \n
      • \n
      • Armor:\n
          \n
        • system.attribs.armor.value
        • \n
      • \n
    • \n
    • Derived attributes. Only the maximum value of those attributes should be modified. Those changes are applied after all other changes have been made. If that attibute is in auto mode, it will be recalculated with the previous characteristics changes before having it's value affected.\n
        \n
      • Hit Points:\n
          \n
        • system.attribs.hp.max
        • \n
      • \n
      • Sanity:\n
          \n
        • system.attribs.san.max
        • \n
      • \n
    • \n
    • Skills. Skills are identified by their full names and are case sensitive!\n
        \n
      • Charm\n
          \n
        • system.skills.Charm.value
        • \n
        • system.skills.Charm.bonusDice
        • \n
      • \n
      • Fighting (Brawl)\n
          \n
        • system.skills.Fighting (Brawl).value
        • \n
        • system.skills.Fighting (Brawl).bonusDice
        • \n
      • \n
    • \n
    \n\n
    ","markdown":""},"sort":1},{"name":"Actor Importer","type":"text","_id":"EXFpS3WZu9pwEr6H","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Actor Importer

    \n

    You can use the actor importer to import several NPC/Creatures blocks from adventures and using the JSON exporter from The Dholes House

    \n

    To open the actor importer either open the  Actor Directory and click Actor Importer at the bottom of the side bar or on an active scene   then click  Actor Importer

    \n

    Overview

    \n

    If this is your first time it is recommends you also read the following sections.

    \n
      \n
    • Non Playing Character (NPC) / Creature
    • \n
    • The Dhole's House Actor Importer JSON
    • \n
    \n

    Non Playing Character (NPC) / Creature

    \n

    \"\"

    \n
      \n
    1. Select NPC or Creature

    2. \n
    3. Should the system convert the character block from an earlier edition to 7th

    4. \n
    5. Select the languages of the character block

    6. \n
    7. When adding skills, items, spells, and weapons the system can attempt to find items in your world with the same name, you can select the order the seconds are searched

      \n

      Items: From your item directory

      \n

      World: From your world compendiums

      \n

      Modules: From your module compendiums

      \n

      System: From the system compendiums provided with this system

    8. \n
    9. An example layout is given here you can copy this to your clipboard if you want to edit it or paste in the text from an adventure

    10. \n
    \n

    Click import will create an actor under the  Actor directory will be created in the Imported characters folder any text that was not understood will be stored in Keeper notes

    \n

    The Dhole's House Actor Importer JSON

    \n

    \"\"

    \n
      \n
    1. The Dhole's House Actor Importer JSON

    2. \n
    3. When adding skills, items, spells, and weapons the system can attempt to find items in your world with the same name, you can select the order the seconds are searched

      \n

      Items: From your item directory

      \n

      World: From your world compendiums

      \n

      Modules: From your module compendiums

      \n

      System: From the system compendiums provided with this system

    4. \n
    \n

    Browse for your JSON file, once selected the name and image will be be shown, click import to create the actor under the  Actor directory will be created in the Imported characters folder

    \n

    By default the image will be stored in a folder called dhole-image in your world, this can be changed by clicking on the  Game Settings tab then under the Game Settings heading clicking on  Configure Settings, click on  System Settings.

    \n\n
    ","markdown":""},"sort":2},{"name":"Character Creation","type":"text","_id":"EQS1L753HOsOD4vR","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Character Creation

    \n

    The system comes with some compendiums ready for you to customise. These are reset every time you update or install the system so it is recommended you copy them into your own compendium and edit them as required.

    \n

    Skills

    \n

    In this section you will create or edit @UUID[.7Ql88MphdUS0FvBv]{skills}

    \n
      \n
    1. Go to  compendium packs

    2. \n
    3. Click on  Create Compendium

      \n
        \n
      • Give your compendium a name (e.g. My Skills)
      • \n
      • Select Item as Document Type
      • \n
    4. \n
    \n

    Use existing skills

    \n
      \n
    1. Open up the compendium Skills
    2. \n
    3. Drag any skills you want to customise into your new compendium
    4. \n
    \n

    Create new skills

    \n
      \n
    1. Go to  Items Directory

    2. \n
    3. Cick on  Create Item

      \n
        \n
      • Give the skill a name
      • \n
      • Set Type to Skill
      • \n
    4. \n
    \n

    Setup

    \n

    @UUID[.gv3xcdEM8ugzJJdz]{Setups} are predefined sets of skills and a way to generate the characteristics (this can be by rolling dices or assigning certain amount of points for example). Once a setup has been created it can be used in the creation of multiple characters.

    \n
      \n
    1. Go to  Items Directory

    2. \n
    3. Click on  Create Item

      \n
        \n
      • Give the skill a name
      • \n
      • Set Type to Setup
      • \n
    4. \n
    5. Define the setup to set the basic configuration for a type of characters.

      \n
        \n
      • You can add a textual description on the Description tab
      • \n
      • If you click on the icon you can select a new one
      • \n
      • On the Details tab you can:\n
          \n
        • Select the Cthulhu Flavors where this setup is valid
        • \n
        • Define the biography sections and their names (click on the + to add extra Biography sections)
        • \n
        • Drag default items like @Compendium[CoC7.items.3elxAwnv7WCUNwng]{Punch}
        • \n
        • Show / Hide the Characteristics tab with the Enable characteristics checkbox
        • \n
      • \n
      • The Characteristics tab allows you to define the formula to roll the dices for each characteristic
      • \n
      • The Skills tab allows you to define the default set of skills by dragging items of type skill to the common skills area.
      • \n
    6. \n
    \n

    Occupations

    \n

    An @UUID[.PtxMa4YG5ZEkvJj9]{occupation} helps to define the character background, think about it as the definition of the set of occupational skills (the ones where the character can spend their occupation points) plus the definition of how to calculate the amount of available occupation points. Finally the occupation also allows to define the minimum and the maximum credit for a character with this occupation.

    \n

    Keep in mind that the set of occupational skills doesn't need to be fixed, the system allows to configure the occupation so when it's dragged to a Character sheet will give the option of selecting one or more skills from a closed list, or even add a pre defined number of skills to select from all the available ones.

    \n

    The occupation creation process is the following one:

    \n
      \n
    1. Go to  Items Directory

    2. \n
    3. Cick on  Create Item

      \n
        \n
      • Give the skill a name
      • \n
      • Set Type to Occupation
      • \n
    4. \n
    5. Define the occupation to select the relevant characteristics and the occupation skills

      \n
        \n
      • You can add a textual description on the Description tab and define the Source
      • \n
      • If you click on the icon you can select a new one
      • \n
      • On the Details tab you can:\n
          \n
        • Select the Occupation Type

        • \n
        • Define the characteristics used to calculate the occupation points, you can check the characteristics you want and define the multiplier, for the ones with Optional marked, the player will have to choose one at creation time.

          \n

          For instance if an occupation uses EDU * 2 + (STR or DEX) * 2 you have to select Education and put 2 on the Multiplier without marking Optional and then for Strength and Dexterity you have to check both, check Optional on both, and put 2 on the Multiplier on both.

        • \n
        • Finally you will have to define the Minimum and Maximum value for the Credit Rating skill for this occupation.

        • \n
      • \n
      • The Skills tab allows you to select the occupation skills by dragging items of the Type skill to the different sections. A typical occupation has 8 skills plus the Credit Rating skill.\n
          \n
        • The Common Skills includes the default occupation skills that can't be changed
        • \n
        • The Optional skills groups section allows to add groups (you can create several of them) of skills for the player to choose from. Once you click on the + sign a group is created and you can define the Number to chose from (number of skills to select) and create a pool of skills available for the selection by dragging them on the group.
        • \n
        • Finally the Additional Skills allows you to enter a number of skills the player can choose from the rest of the available skills.
        • \n
      • \n
    6. \n
    \n

    Player Character creation

    \n

    You can create a Player Character by creating the actor and filling the corresponding blank Character Sheet, but it's much easier if you have previously created a setup and an occupation (see above), if you have created both the process to create the Player Character is as follows:

    \n
      \n
    1. Go to  Actors Directory

    2. \n
    3. Cick on  Create Actor

      \n
        \n
      • Give the actor a name
      • \n
      • Set Type to Character
      • \n
    4. \n
    5. Drag and drop a item of Type setup (for instance 1920s, 1890s, Pulp, Modern,...) on the sheet to do the basic setup using the configuration defined on the item, this usually includes rolling the characteristics or setting their values with the points system, and set a default set of skills corresponding to the given setup.

    6. \n
    7. Drag and drop an occupation Type item on the sheet, this will probably involve selecting some skills from a given reduced set or from the remaining ones. This will calculate the available Personal points and Occupation points and assign the part of the Occupation points to reach the minimum value for Credit Rating of the selected occupation.

    8. \n
    9. On the keeper's menu on the left click  Keeper's tools, if this menu is not available need to have an active scene which can be created in the  Scenes Directory

    10. \n
    11. On the new submenu click  Character creation mode. A new tab called Development should appear on the character sheets.

    12. \n
    13. Click on the characters Development tab

    14. \n
    15. The first dot column is for your occupational skills these can be toggled by clicking them

      \n
        \n
      • If you have enabled the Pulp rule Archetypes you will have a second dot to toggle that
      • \n
    16. \n
    17. Distribute occupation/personal points in development tab taking on account that each skill has 5 columns:

      \n
        \n
      1. First one is the basic percentage of the skill
      2. \n
      3. The second one is the one to put the Personal interest points during the creation of the character
      4. \n
      5. The third one is only available on for the occupation skills (marked with a dark circle before the skill name) and it's used to assign the Occupation points.\n
          \n
        • If you have enabled the Pulp rule Archetypes you will have a forth column you enter your archetype points here
        • \n
      6. \n
      7. The forth/fifth column should be initially blank and its where the experience points will show up (you can also assign points here if you are playing an experienced character)
      8. \n
      9. The final column is a read only one with the final calculated value for the skill (the sum of the other 4)
      10. \n
    18. \n
    \n\n\n
    ","markdown":""},"sort":3},{"name":"Chases","type":"text","_id":"w645thphP1Sd2Whe","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Creating a new chase

    \n

    To create a chase create a new item of type chase.

    \n

    Only the keeper should have access to that item.

    \n

    A chase is composed of a succession of locations. Each location can be separated by an obstacle (barrier or hazard).

    \n

    A hazard will always be crossed but failing the check will slow you down.

    \n

    A barrier will stop you until you successfully pass or destroy it.

    \n

    \"\"

    \n

    The chase sheet is divided in 3 parts.

    \n
      \n
    • A header where you will see information about current location once a chase is started.
    • \n
    • A chase setup tab. This will allows you to create and follow the chase.
    • \n
    • A participant list where you can setup your participant. This tab will not work after the chase started.
    • \n
    \n

    Adding a participant.

    \n

    To add a participant click on the plus sign on the participant list or drag an actor or a token.

    \n

    Note that it is not mandatory to have a actor associated with a participant. This will allows for fast setup or to add someone on the fly to the chase.

    \n

    To be able to add a token to the chase a few control have been added to character and NPC sheets:

    \n

    \"\"

    \n

    Those icons will give additional information.

    \n
      \n
    1. Indicate that this actor is a synthetic actor (instance of an actor)
    2. \n
    3. Indicate that actor's data are not linked. Each instance of that actor has his own properties.
    4. \n
    5. Indicate that this actor has an associated token. You can drag and drop this onto a chase location or on the participant list.
    6. \n
    7. Indicate that actor's data are linked to an actor in the actors directory.
    8. \n
    \n

    Here you can set up your participant. Dragging an actor from the Actors sidebar will set the details. Note that you can select a different initiative and speed check. This is non standard in the CoC, but allows to setup unusual chases (futuristic matrix chase, dreamlands chase...)

    \n

    \"\"

    \n
      \n
    1. Dragging the questionmark onto a token will set the details to that token.
    2. \n
    \n

    Once you drag an actor or select a token you can set up the participant

    \n

    \"\"

    \n
      \n
    1. Clicking this will change the participant side from prey to chaser.
    2. \n
    3. Clicking this will trigger a speed check. Note that there will be no player entries necessary nor any roll card displayed.
    4. \n
    \n

    Participant list

    \n

    \"\"

    \n

    Here you can have the list of participant to the chase.

    \n
      \n
    1. Will trigger a chase roll. This will create a roll card if the participant has an associated actor (it's not a dummy). Holding shift will fast forward and solve the card.
    2. \n
    3. This will clear the speed roll if any, or delete the participant.
    4. \n
    \n

    \"\"

    \n
      \n
    1. Roll card waiting to get resolved in the chat.
    2. \n
    3. Speed check rolled. You can click this to get the details.
    4. \n
    5. To reset the speed check.
    6. \n
    \n

    \"\"

    \n

    Chase setup

    \n

    \"\"

    \n

    To setup a chase enter the initial numbers of locations and click initialize.

    \n

    \"\"

    \n

    The chase is initialized, you can adjust some options. Locations in white are initial locations and can not be modified.

    \n
      \n
    1. This is the chase track, the location in white are initials locations. The location in grey are actual chase locations.
    2. \n
    3. Selecting this will include in the chase participants who would have otherwise been able to escape.
    4. \n
    5. Selecting this will include in the chase participants who would have been excluded for being too slow.
    6. \n
    7. This is the number of locations between the slowest prey and the fastest chaser.
    8. \n
    9. This is the starting location of the fastest prey. Setting this to 0 will place him just before the start. 1 will place him at the start. -1 will place him 1 location before the start.
    10. \n
    11. This will animate token when they move to a new location.
    12. \n
    \n

    Setting up locations

    \n

    During setup or during chase you can select a location to modify it.

    \n

    Starting (white) locations can not be modified during setup.

    \n

    To modify a location select it by clicking on it. This will display the location details on the header part of the sheet.

    \n

    \"\"

    \n
      \n
    1. This will add a participant. If the chase is started the participant will be on that location. If the chase isn't started the participant will be added on the init track.
    2. \n
    3. This will remove the location. A location has to be empty to be removed.
    4. \n
    5. You can drag this and drop it on a scene. This will set the coordinates for that location. A red pin indicate that coordinates has been set. Right clicking a red pin will reset it's coordinate. If coordinates are set, and a participant with an associated token enter that location his token will be moved to that location.
    6. \n
    7. Add a new location.
    8. \n
    9. Active location.
    10. \n
    \n

    Setting up obstacles.

    \n

    You can add obstacle after and before a location. You can pre-fill an obstacle with a name, an associated check and some penalties.

    \n

    \"\"

    \n
      \n
    1. Toggle this to add damage to a barrier.
    2. \n
    3. Barrier's hit points.
    4. \n
    5. Movement action cost in case of failure.
    6. \n
    7. Check used to pass the location. When it's red the active actor does not have the associated check.
    8. \n
    \n

    Cut to the chase.

    \n

    When you are ready you can cut to the chase. If not all participant have a speed check this will trigger a warning and will not let you start.

    \n

    \"\"

    \n
      \n
    1. Initiative track. The active participant is circled in orange.
    2. \n
    3. Chase track. Active location and participant. You can drag drop participant from the chase track to move them freely. You can drag a new actor or token directly on the chase track. This will pop the import window and add that participant to the chase. In some cases (eg. new prey slower than the slowest participant) all movement action will be recalculated.
    4. \n
    5. A barrier.
    6. \n
    7. A hazard.
    8. \n
    \n

    Obstacle resolution flow

    \n

    \"\"

    \n
      \n
    1. When the active participant is facing an obstacle you can trigger the obstacle resolution flow by clicking this. This will open a chat card where keeper and player can interact to pass that obstacle. All changes made to the card can be reflected to the obstacle in the chase at the end of the flow.
    2. \n
    \n

    Here is a shorten flow example:

    \n

    \"\"\n\"\"\n\"\"\n\"\"

    \n

    Once the flow is complete all changes are send to the chase.

    \n

    \"\"

    \n

    This round is finished. All actor have spent their movement action. You can click Next round to proceed.

    \n

    Participant controls.

    \n

    \"\"

    \n

    You can modify or move a participant by using the controls button on his card.

    \n
      \n
    1. Those 3 icons will allow to delete, modify and activate a participant.
    2. \n
    3. Movement action. A yellow is available, grey is consumed, red is a deficit.
    4. \n
    5. This will control your participant bonus. He can draw a gun or be awarded bonus dices.
    6. \n
    7. Movement action controls. Here you can increase or decrease movement actions.
    8. \n
    9. Movement controls. You can move backward or forward. You can assist an ally (consume an action and give a bonus die) or take a cautious approach.
    10. \n
    \n\n
    ","markdown":""},"sort":4},{"name":"CoC ID System","type":"text","_id":"xIXeEy4A8thetqLp","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    CoC ID System

    \n

    Several FoundryVTT documents have an ID button accessable to "Game Master" and "Assistant GM" User Roles.

    \n

    System ID (CoC ID): Setting a skill's ID to i.skill.dodge will let the system know to treat that skill as Dodge on the combat card.

    \n

    Cthulhu Flavors: You can also control the era a skill is for, Animal Handling has different base values based on the era

    \n

    System ID Priority: The system will check your world documents then compendiums and return the document with the highest priority

    \n

    Item

    \n

    i.setup.example - The Investigator Wizard will use these you need to pick a single era to assign it to

    \n

    i.archetype.example - The Investigator Wizard will use these if the archetype optional rule is enabled

    \n

    i.occupation.example - The Investigator Wizard will list these

    \n

    i.skill.example - Setups, Investigator Wizard, and creating Actors will use these if the era matches

    \n

    RollTable

    \n

    rt..backstory-example - If the example part matches the backstory title in kebab case it will give a roll option in the backstory section of the Investigator Wizard

    \n\n
    ","markdown":""},"sort":5},{"name":"Combat","type":"text","_id":"SgRmyJJ7tb4o5Zb9","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Combat

    \n

    Starting the combat

    \n

    On the scene select the tokens involved on the combat right click on one of them and on the bottom right click on the Toggle combat state icon. This will add the actors corresponding to the selected tokens to the combat tab.\nThen on the combat tab you can start the combat.

    \n

    The combat tracker will help you to track both the initiatives of the different actors and the combat rounds.

    \n

    Initiative

    \n

    On foundry combat turns are ordered by initiative, in the system this is usually the DEX of the actor. So to set the initiatives click on the dice icon of each actor or just the icon with 3 persons on the top left of the combat tab to set all at once.

    \n

    Next to each actor on the combat tab there are 3 icons:

    \n
      \n
    • A target: to draw the gun (this will add 50 to that character initiative)
    • \n
    • A crossed eye: to show/hide the corresponding actor on the list.
    • \n
    • A skull: to mark a character as defeated and skip it for the following turns.
    • \n
    \n

    Select target / targets

    \n

    During an actor's turn, to attack the first thing to do is to select the target or targets, this can be done by doing a right click on the target's token and then clicking on the target icon (bottom left). Or set the target mode on from the left tool bar and click on the targets.

    \n

    Then open the actor's sheet and click on the name of the item that will be used for the attack. This can be from a single shot of a long range weapon, or some melee attack or a maneuver.\nThis click will start the attack workflow on the chat, the chat card will allow selecting further options of the attack depending on the type of attack.

    \n
    \n

    Tip: if you right click on the combat tracker sheet icon, this will pop put this as a little window and you then you can see both the combat tracker window and results of the combat on the chat.

    \n
    \n

    Melee

    \n

    Maneuvers

    \n

    Not implemented yet.

    \n

    Single Shot

    \n

    Automate fire

    \n

    Multiple Targets

    \n

    Reload

    \n\n
    ","markdown":""},"sort":6},{"name":"Commands Cheat Sheet","type":"text","_id":"lNIBCWjFNXWoujzQ","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Commands Cheat Sheet

    \n

    General rules

    \n

    Most sheet component can be clicked on the trigger a check/roll.\nAs a general rule you can modify those requests:

    \n
      \n
    • Shift will fast forward the request.
    • \n
    • Ctrl [GM only] will create a link in the chat with that request a roll to the players.
    • \n
    \n

    Sanity

    \n\n\n\n\n\n\n\n\n
    CommandAction
    Ctrl+Shift + left click SANRequest a Sanity Check for the character
    Ctr+Shift+Alt + left click SANRequest a Sanity Check and define the sanity loss
    \n

    Combined / Opposed rolls

    \n\n\n\n\n\n\n\n\n
    CommandAction
    Right Click on an elementStart/ Include the roll on an opposed roll
    Alt + Right Click on an elementStart/ Include the roll on an combined roll
    \n

    Other

    \n\n\n\n\n\n\n\n
    CommandAction
    cShow my own character sheet
    \n\n
    ","markdown":""},"sort":7},{"name":"Creating your first investigator","type":"text","_id":"9a8SLXDQHfCxrZzR","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Initial item setup

    \n

    The system comes with some compendiums ready for you to customise. These are reset every time you update or install the system so it is recommended you copy them into your own compendium and edit them as required.

    \n

    This page creates an investigator using the provided compendiums, if you are ready to full customise your character people read @UUID[.EQS1L753HOsOD4vR]{Character creation} instead.

    \n

    Skill

    \n

    Click on the  Compendium Packs tab then under the Item heading open up the Skills Item (CoC7). Here you will find the skills shown on the characters sheets available from Chaosium's website.

    \n
      \n
    • No adjustment - Can not be assigned personal skill points.
    • \n
    • No XP gain - You do not mark this skill for improvement on a success.
    • \n
    • Specialization - This skill is part of a group like Pilot or Flighting.
    • \n
    • Uncommon - This skill is uncommon and can be automatically hidden on the character sheet.
    • \n
    • Pushed - This skill can be pushed.
    • \n
    • Fighting - Automatically set Specialization, Combat, and the specialization name to Fighting.
    • \n
    • Firearms - Automatically set Specialization, Combat, and the specialization name to Firearms.
    • \n
    \n

    You can create a new Item Compendium and copy the skills you require into it allowing you to edit them. You can also create new skills by creating new Skill Items (Click on the  Items Directory tab then Create Item give this a name e.g. Gardening and set the Type to Skill).

    \n

    Setup

    \n

    Once you have set up your skills next create up a Setup, here is an example from the Items Examples compendium @Compendium[CoC7.items.CcH7CdXGtGTjMSCg]{1920's Setup Example}

    \n

    Setups allow to you standardise what skills, items, biography sections, and characteristics the investigators start with.

    \n

    Click on the  Items Directory tab then Create Item give this a name e.g. New Investigator Setup and set the Type to Setup

    \n

    On the Description tab to set the description click the  button to get an editor.

    \n

    On the Details tab click the  on the Biography Sections to add any sections you require from the Create a Backstory step of investigator creation. Click on the  Compendium Packs tab then under the Item heading open up the Items Examples Item (CoC7) and drag the @Compendium[CoC7.items.3elxAwnv7WCUNwng]{Punch} onto the setup.

    \n

    On the Characteristics tab you can customise how investigator characteristics are rolled / bought

    \n

    On the Skills tab you can drag the skills the investigator will have.

    \n

    All actor and item sheets have a  tab which can be used by the Keepers to store notes, only users that are set to GM can see this tab

    \n

    Occupation

    \n

    Occupations allow you set how many the occupation points, credit rating range, and skills the investigator starts with. Here is an example from the Items Examples compendium @Compendium[CoC7.items.NOsh6EdNSjpjahDF]{Occupation Example}

    \n

    Click on the  Items Directory tab then Create Item give this a name e.g. Driver and set the Type to Occupation

    \n

    On the Description tab to set the description click the  button to get an editor.

    \n

    On the Details tab you can set the Occupation Points calculation and Minimum/Maximum Credit Rating

    \n

    On the Skills tab you can drag skills from the Compendiums or Item Directory to Common skills, you can also set up multiple Optional skill groups deciding how many the investigator must select.

    \n

    Creating your first investigator

    \n

    Character

    \n

    To complete your character you need to have an active scene which can be created in the  Scenes Directory.

    \n

    Click on the  Actors Directory tab then Create Item give this a name e.g. New Investigator and set the Type to Character.

    \n

    You can drag your setup created above on to the character for the initial setup or drag this example instead @Compendium[CoC7.items.CcH7CdXGtGTjMSCg]{1920's Setup Example}

    \n

    Next drag your occupation created above on to the character or drag this example instead @Compendium[CoC7.items.NOsh6EdNSjpjahDF]{Occupation Example}

    \n

    On the left hand menu bar select  Keeper's tools then select  Character creation mode.

    \n

    On the character sheet select the Development tab. The first dot indicates this is an occupation skill, the first column of numbers is the base value, next if where you assign personal points, third is for occupation points, the fourth is for experience gained during the investigator improvement phase, the final column is the total skill percent.

    \n

    You can see how many personal and occupation points you have spent so far, once you have spent all your points you need to toggle off  Character creation mode to allow characters to see their HP, MP, Sanity, and luck

    \n\n
    ","markdown":""},"sort":8},{"name":"Items","type":"text","_id":"oFE5T3zT5PMhWbui","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Items

    \n

    The system support many different types of items, from basic items or weapons to skills or the complete setup of a type of character. You can see examples on the compendium that comes with the system.

    \n

    To create any of the types of items you always start the same way

    \n
      \n
    1. Go to the items directory
    2. \n
    3. Click on Create Item\n
        \n
      • Give it a name
      • \n
      • Select the item Type (see below for details on each one)
      • \n
      • Select the destination folder.
      • \n
    4. \n
    \n

    And have some common structure so on all of them:

    \n
      \n
    • You can add a textual description on the Description tab or just on the main window if it doesn't have tabs.
    • \n
    • If you click on the icon you can pick or upload a new one
    • \n
    \n

    Available types

    \n
      \n
    • @UUID[.sJiiuIJZTToArDnD]{Item Type: Archetype}
    • \n
    • @UUID[.OaIgfX2Ij0vQoVtz]{Item Type: Book}
    • \n
    • @UUID[.w645thphP1Sd2Whe]{Item Type: Chases}
    • \n
    • Item Type: Item
    • \n
    • @UUID[.PtxMa4YG5ZEkvJj9]{Item Type: Occupation}
    • \n
    • @UUID[.gv3xcdEM8ugzJJdz]{Item Type: Setup}
    • \n
    • @UUID[.7Ql88MphdUS0FvBv]{Item Type: Skill}
    • \n
    • Item Type: Spell
    • \n
    • Item Type: Status
    • \n
    • Item Type: Talent
    • \n
    • Item Type: Weapon
    • \n
    \n\n
    ","markdown":""},"sort":9},{"name":"Item Type: Archetype","type":"text","_id":"sJiiuIJZTToArDnD","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Item Type: Pulp Archetype

    \n

    Archetypes are used on Pulp games. They provide skill and characteristic bonuses.

    \n

    Once the Archetype item has been created, the Archetype Sheet is shown.\nThere you can define the details of the Archetype:

    \n
      \n
    • On the Details tab you can:\n
        \n
      • Assign the number of Additional points
      • \n
      • Assign the number of Pulp Talents
      • \n
      • Define the Basic Characteristics and if you want to Use a dice roll to generate them.
      • \n
      • Define the Suggested Occupations
      • \n
      • Define the Suggested Traits
      • \n
    • \n
    • On the Skills tab you can:\n
        \n
      • Drag the skills corresponding to this Archetype
      • \n
    • \n
    \n\n
    ","markdown":""},"sort":10},{"name":"Item Type: Book","type":"text","_id":"OaIgfX2Ij0vQoVtz","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Item Type: Book

    \n

    The system has a special type of item for the books to be able to define the Sanity Loss, if it's a Mythos Tome or an Occult book, what Spells or Skills it provides and of curse a description and the book image.

    \n\n
    ","markdown":""},"sort":11},{"name":"Item Type: Occupation","type":"text","_id":"PtxMa4YG5ZEkvJj9","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Item Type: Occupation

    \n

    An occupation helps to define the character background, think about it as the definition of the set of occupational skills (the ones where the character can spend their occupation points) plus the definition of how to calculate the amount of available occupation points. Finally the occupation also allows to define the minimum and the maximum credit for a character with this occupation.

    \n

    Keep in mind that the set of occupational skills doesn't need to be fixed, the system allows to configure the occupation so when it's dragged to a Character sheet will give the option of selecting one or more skills from a closed list, or even add a pre defined number of skills to select from all the available ones.

    \n
      \n
    1. Go to the  Items Directory tab

    2. \n
    3. Click on  Create Item

      \n
        \n
      1. Give the set up a name e.g. Librarian
      2. \n
      3. Set Type to Occupation
      4. \n
    4. \n
    5. On the Description tab you can change the name, icon, name of the source book, and description

    6. \n
    7. On the Details tab you can control

      \n
        \n
      1. Select the Occupation Type

      2. \n
      3. Define the characteristics used to calculate the occupation points, you can check the characteristics you want and define the multiplier, for the ones with Optional marked, the player will have to choose one at creation time.

        \n
          \n
        1. For instance if an occupation uses EDU * 2 + (STR or DEX) * 2 You have to select Education and put 2 on the Multiplier without marking Optional and then for Strength and Dexterity you have to check both, check Optional on both, and put 2 on the Multiplier on both.
        2. \n
        3. Finally you will have to define the Minimum and Maximum value for the Credit Rating skill for this occupation.
        4. \n
      4. \n
      5. Names of biography sections (click on the + to add extra Biography sections), this can be replaced with a single block biography in settings

      6. \n
      7. Under items you can drag and drop default items and weapons

      8. \n
    8. \n
    9. On the Skills you can drag and drop skills in to multiple sections, A typical occupation has 8 skills plus the Credit Rating skill.

      \n
        \n
      1. The Common Skills includes the default occupation skills that can't be changed
      2. \n
      3. The Optional skills groups section allows to add groups (you can create several of them) of skills for the player to choose from. Once you click on the + sign a group is created and you can define the Number to chose from (number of skills to select) and create a pool of skills available for the selection by dragging them on the group.
      4. \n
      5. Finally the Additional Skills allows you to enter a number of skills the player can choose from the rest of the available skills.
      6. \n
    10. \n
    \n\n
    ","markdown":""},"sort":12},{"name":"Item Type: Setup","type":"text","_id":"gv3xcdEM8ugzJJdz","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Item Type: Setup

    \n

    Setups are predefined sets of skills and a way to generate the characteristics (this can be by rolling dices or assigning certain amount of points for example).

    \n
      \n
    1. Go to the  Items Directory tab

    2. \n
    3. Click on  Create Item

      \n
        \n
      1. Give the set up a name e.g. 1920's Setup
      2. \n
      3. Set Type to Setup
      4. \n
    4. \n
    5. On the Description tab you can change the name, icon, name of the source book, and description

    6. \n
    7. On the Details tab you can control

      \n
        \n
      1. Show / Hide the Characteristics tab with the Enable characteristics checkbox
      2. \n
      3. Which version of Call of Cthulhu this is for, this can be filtered in compendiums
      4. \n
      5. Names of biography sections (click on the + to add extra Biography sections), this can be replaced with a single block biography in settings
      6. \n
      7. Under items you can drag and drop default items and weapons
      8. \n
    8. \n
    9. On the Characteristics tab you can set a points buy or roll characteristics and the formula

    10. \n
    11. On the Skills tab under common skill you can drag and drop default skills

    12. \n
    \n\n
    ","markdown":""},"sort":13},{"name":"Item Type: Skill","type":"text","_id":"7Ql88MphdUS0FvBv","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Item Type: Skill

    \n

    A skill will be rolled during tests.

    \n
      \n
    1. Go to the  Items Directory tab

    2. \n
    3. Click on  Create Item

      \n
        \n
      1. Give the skill a name e.g. Art/Craft (Dancing)
      2. \n
      3. Set Type to Skill
      4. \n
    4. \n
    5. On the Description tab you can change the name, icon, Cthulhu Flavors (which editions this appears in), and description

      \n
        \n
      1. No adjustment - Can not be assigned personal skill points.
      2. \n
      3. No XP gain - You do not mark this skill for improvement on a success.
      4. \n
      5. Specialization - This skill is part of a group like Pilot or Flighting.
      6. \n
      7. Uncommon - This skill is uncommon and can be automatically hidden on the character sheet.
      8. \n
      9. Pushed - This skill can be pushed.
      10. \n
      11. Fighting - Automatically set Specialization, Combat, and the specialization name to Fighting.
      12. \n
      13. Firearms - Automatically set Specialization, Combat, and the specialization name to Firearms.
      14. \n
    6. \n
    \n\n
    ","markdown":""},"sort":14},{"name":"Links","type":"text","_id":"7sSX5w3psDau2CDn","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Links

    \n
      \n
    • Links are a way for a GM to request for a roll (Characteristic, Attribute, Skill, SAN loss, Weapon).
    • \n
    • Links can contain an active effect.
    • \n
    • Links are created in the chat log. When you click a link it will trigger a check for your(s) controlled/impersonated character(s).
    • \n
    • Links can be included in any editor, mainly journal entries.
    • \n
    • Link can be created in 5 ways:\n
        \n
      • By manually typing it (read details below).
      • \n
      • By CTRL+click on any sheet element (Characteristic, Attribute, skill, SAN loss).
      • \n
      • By dragging a sheet element (Characteristic, Attribute, skill (+CTRL)) on an editor (Journal entry)
      • \n
      • By CTRL + dragging an item (skill or weapon) from a compendium or an item directory on an editor. When a link is created that way and the used as a GM, if your controlled character doesn't hold the weapon/skill you'll be prompted to create the corresponding item.
      • \n
      • By using the included compendium written by Lozalojo.
      • \n
    • \n
    • Links can be dragged from chat log on an editor.
    • \n
    • When a link is created the difficulty/penalty selection windows will open. Hold SHIFT to bypass that comportment.
    • \n
    • When a link is created, the roll mode will be check. If the roll mode is set to 'blind GM roll' the link will be created as blind.
    • \n
    • When a link is created with a difficulty and a penalty, the difficulty/penalty windows will not pop.
    • \n
    • When a link is created without a difficulty or a penalty, the difficulty/penalty windows will pop. Holding SHIFT will fastforward the roll (regular/no penalty).
    • \n
    \n

    Writing links

    \n
      \n
    • Links should be written using the @UUID[.9YesdNtaElDQaaaZ]{Link creation tool}. The link creation window is a tool for GM. It's located in the left side bar.
    • \n
    \n

    Links for chat messages and sheet editors (NPC, Journal entries...).\nFormat of link is @coc7.TYPE_OF_REQUEST[OPTIONS]{TEXT_TO_DISPLAY}

    \n
      \n
    • TYPE_OF_REQUEST :\n
        \n
      • sanloss: trigger a san check, upon failure will propose to deduct the corresponding SAN.
      • \n
      • check: trigger a check depending on the options.
      • \n
      • item: trigger use of a weapon. Only items of type weapon can be triggered.
      • \n
    • \n
    • OPTIONS: [] = optional, default\n
        \n
      • sanloss:\n
          \n
        • sanMax: max SAN loss
        • \n
        • sanMin: min SAN loss
        • \n
      • \n
      • check:\n
          \n
        • type: type of check ( characteristic, skill, attrib).
        • \n
        • name: name of the skill/characteristic/attrib.
        • \n
        • [blind]: will force a blind check, if not present the check will depend on your selected roll mode.
        • \n
      • \n
      • all:\n
          \n
        • [difficulty]: ? (blind), 0 (regular), + (hard), ++ (extreme), +++ (critical).
        • \n
        • [modifier]: -x (x penalty dice), +x (x bonus dice), 0 (no modifier).
        • \n
        • [icon]: icon tu use (font awesome, fas fa-dice).
        • \n
      • \n
    • \n
    • TEXT_TO_DISPLAY: Name to display, this is optional.
    • \n
    \n

    Examples

    \n\n\n\n\n\n\n\n\n\n\n\n\n
    LinkResult
    @coc7.sanloss[sanMax:1D6,sanMin:1,difficulty:++,modifier:-1]{Hard San Loss (-1) 1/1D6}
    @coc7.check[type:charac,name:STR,difficulty:+,modifier:-1]{Hard STR check(-1)}
    @coc7.check[type:attrib,name:lck,difficulty:+,modifier:-1]{Hard luck check(-1)}
    @coc7.check[type:skill,icon:fas fa-arrow-alt-circle-right,name:anthropology,difficulty:+,modifier:-1]{Hard Anthropology check(-1)} (with icon)
    @coc7.sanloss[sanMax:1D6,sanMin:1]{San Loss (-1) 1/1D6} (without name, difficulty nor modifier)
    @coc7.check[type:skill,icon:fas fa-arrow-alt-circle-right,name:anthropology,modifier:+1]{Anthropology check (+1)} (with icon, without name nor difficulty)
    \n

    Using links

    \n
      \n
    • You can drag/drop links from chat to sheets and between sheets.
    • \n
    • You can drag/drop a link directly on a token.
    • \n
    • You can drag/drop items and skills on a journal entry while holding CTRL, this will create the corresponding check with regular difficulty and 0 modifier.
    • \n
    • You can create link in the chat by clicking and holding CTRL from any sheet (PC/NPC/Creature) corresponding characteristic/luck/SAN/Competence/weapon/San loss.\n
        \n
      • This will open the select penalty/difficulty dialogue. Clicking on the generated link will then trigger the check with all parameters.
      • \n
      • Holding Shift on top will not open the penalty/difficulty dialogue. Clicking on the generated link will open the penalty/difficulty dialogue then trigger the check.
      • \n
    • \n
    \n\n
    ","markdown":""},"sort":15},{"name":"Link creation tool","type":"text","_id":"9YesdNtaElDQaaaZ","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Link creation tool

    \n

    The system includes a tool to help you create links easily.\nIt's located on the left side bar. Click on the  icon.\nThis tools is available to GM only.

    \n

    \"Creation

    \n

    using this you can create @UUID[.7sSX5w3psDau2CDn]{link} for skill check, san check, effects ...\nalternatively you can open the tool by holding CTRL while clicking no an item or a skill.

    \n

    Main window

    \n

    Clicking on the tool icon will open a window :

    \n

    \"Main

    \n

    You can there select options for you link.

    \n
      \n
    • "Compendium packs" and "Items directory" allows you to reference an object from corresponding folder.
    • \n
    • "Modifiers" will allows you to add modifiers to your check.
    • \n
    • "blind" will force the roll mode to be blind.
    • \n
    • "Label" will allows you to change the display label.
    • \n
    • "Icon" will allows you to choose an icon for your link. Icons can be :\n
        \n
      • A font awesome or a game-icons reference : "fas fa-ankh" or "game-icon game-icon-tentacle-strike".
      • \n
      • A link to an image in the system data or system core: "icons/magic/symbols/arrowhead-green.webp".
      • \n
    • \n
    \n

    If you do not supply a label and/or an icon, a default label and icon will be added.

    \n

    \"default

    \n

    Effects window

    \n

    Selecting effects will open an advance window where you can create links for @UUID[.ag5ghFZ6hYIm2JyJ]{active effects}.\nSelect the options the same way you will be doing for a regular effect.

    \n

    Using links

    \n
      \n
    • Once your link is created and valid it will appear in a white box in the middle of the window.
    • \n
    \n

    \"link

    \n
      \n
    • You are now ready to whisper it to your players, copy it in your clipboard so you can add it to your items or journal entries or send it to the chat.
    • \n
    \n

    \"link

    \n
      \n
    • When a player clicks a link the corresponding action will be performed by his character.
    • \n
    • When a GM clicks a link the corresponding action will be performed by his selected tokens.
    • \n
    • A link drag/dropped in journal entries, on a token etc...
    • \n
    \n

    \"link

    \n\n
    ","markdown":""},"sort":16},{"name":"Sanity","type":"text","_id":"9xaysNap3U5XbkTn","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Sanity Checks

    \n

    The system has integrated the sanity check workflow and can handle sanity rolls, tracking Sanity loss and rolling for temporal insanity.

    \n

    Requesting Sanity rolls

    \n
      \n
    • The Keeper can click with Ctrl+Shift on the Sanity of character to request a Sanity Check for the character

      \n
        \n
      • If the Keeper also press Alt (so holding at the same time Ctrl+Shift+Alt) while clicking on the Sanity of a character, a dialog will pop-up to introduce the sanity loss if the sanity check is passed and the value for when the sanity check is failed.
      • \n
    • \n
    • Video showing the Sanity check workflow

    • \n
    \n\n
    ","markdown":""},"sort":17}],"_id":"sxB2OXbfwV6M0nyQ","flags":{"CoC7":{"cocidFlag":{"eras":{},"id":"je..call-of-cthulhu-7-th-edition-system-documentation","lang":"en","priority":0}}}} +{"name":"Call of Cthulhu 7th Edition [en]","pages":[{"name":"System documentation","type":"text","_id":"pjqHiADSapcdS4fU","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    System documentation for version 0.10.0

    \n

    This document is a work in progress overview of the CoC7 system it is not a tutorial for how to use FoundryVTT.

    \n

    You will need one of the following to play the game

    \n
      \n
    • Chaosium's Call of Cthulhu 7th Edition - Keeper's Rulebook
    • \n
    • Chaosium's Call of Cthulhu 7th Edition - Call of Cthulhu Starter Set
    • \n
    • Chaosium's Call of Cthulhu 7th Edition - Quick-Start Rules
    • \n
    \n

    The system automates most of the regular tasks and rules involved with running a game.

    \n

    Several parts of the actor sheets have pop up tooltips that trigger after two seconds, this delay can be changed in the settings

    \n

    This documentation can be reopened under  Game Settings -> Help and Documentation -> View CoC7 System Manual

    \n

    Recent changes

    \n

    For a full list of changes checkout the changelog on GitHub

    \n
      \n
    • @UUID[.xIXeEy4A8thetqLp]{CoC ID system} - Set tags on documents for example i.skill.dodge to find dodge skills on actors
    • \n
    • Investigator Wizard - Use CoC ID Items to create investigators
    • \n
    • @UUID[.pjqHiADSapcdS4fU#settings-overview]{Pulp Rules} - Implement optional pulp rule to ignore age when calculating movement speed
    • \n
    • @UUID[.ag5ghFZ6hYIm2JyJ]{Active effects} - Add support for bonus/penalty dice when rolling from the Actor sheets
    • \n
    \n

    Overview sections below

    \n

    If this is your first time it is recommends you also read the following sections on this page.

    \n

    Foundry VTT is based in actors and items. This module includes a number of system specific actors and items, and some examples of them can be found in the included system compendiums.

    \n
      \n
    • @UUID[.pjqHiADSapcdS4fU#actor-overview]{Actor overview}
    • \n
    • @UUID[.pjqHiADSapcdS4fU#items-overview]{Items overview}
    • \n
    • @UUID[.pjqHiADSapcdS4fU#settings-overview]{Settings overview}
    • \n
    • @UUID[.pjqHiADSapcdS4fU#call-of-cthulhu-scene-menu]{Scene menu overview}
    • \n
    • @UUID[.pjqHiADSapcdS4fU#keyboard-and-mouse-shortcuts]{Keyboard and mouse shortcuts}
    • \n
    • @UUID[.9a8SLXDQHfCxrZzR]{Creating your first investigator}
    • \n
    • @UUID[.EQS1L753HOsOD4vR]{Character creation}
    • \n
    \n

    How to use the system

    \n
      \n
    • @UUID[.ag5ghFZ6hYIm2JyJ]{Active effects} - An active effect will modify an actor characteristic(s), attribute(s), skill(s).
    • \n
    • @UUID[.EXFpS3WZu9pwEr6H]{Actor importer}
    • \n
    • Actor Type: Character (TODO)
    • \n
    • Actor Type: Container (TODO)
    • \n
    • Actor Type: Creature (TODO)
    • \n
    • Actor Type: NPC (TODO)
    • \n
    • Chat link creator (TODO)
    • \n
    • Character creation mode (TODO)
    • \n
    • @UUID[.SgRmyJJ7tb4o5Zb9]{Combat} (TODO)
    • \n
    • Development phase (TODO)
    • \n
    • @UUID[.oFE5T3zT5PMhWbui]{Item Types} (TODO)
    • \n
    • @UUID[.sJiiuIJZTToArDnD]{Item Type: Archetype} (TODO)
    • \n
    • @UUID[.OaIgfX2Ij0vQoVtz]{Item Type: Book} (TODO)
    • \n
    • @UUID[.w645thphP1Sd2Whe]{Item Type: Chases}
    • \n
    • Item Type: Item (TODO)
    • \n
    • @UUID[.PtxMa4YG5ZEkvJj9]{Item Type: Occupation}
    • \n
    • @UUID[.gv3xcdEM8ugzJJdz]{Item Type: Setup}
    • \n
    • @UUID[.7Ql88MphdUS0FvBv]{Item Type: Skill} (TODO)
    • \n
    • Item Type: Spell (TODO)
    • \n
    • Item Type: Status (TODO)
    • \n
    • Item Type: Talent (TODO)
    • \n
    • Item Type: Weapon (TODO)
    • \n
    • @UUID[.9YesdNtaElDQaaaZ]{Link Creation Tool}
    • \n
    • @UUID[.7sSX5w3psDau2CDn]{Links} (TODO)
    • \n
    • Macros (TODO)
    • \n
    • Rolls (TODO)
    • \n
    • @UUID[.9xaysNap3U5XbkTn]{Sanity} (TODO)
    • \n
    • Start Rest (TODO)
    • \n
    • XP Gain (TODO)
    • \n
    \n

    Actor overview

    \n
      \n
    • Character - A complete character, usually an investigator. @Compendium[CoC7.examples.JuI2aWDSEuQNKeUI]{Example Character}
    • \n
    • Container - An inventory container. @Compendium[CoC7.examples.r7bDSY4OYKxQYEas]{Example Container}
    • \n
    • Creature - A more simple character, suitable for creatures. @Compendium[CoC7.examples.XE2vjLG03wGfnYLw]{Example Creature}
    • \n
    • NPC - A more simple character, suitable for NPCs. @Compendium[CoC7.examples.4kSvDc4n13oFx8RG]{Example NPC}
    • \n
    \n

    Items overview

    \n
      \n
    • Archetype - A set of skills and other stats that implement a Pulp Cthulhu archetype. These do not trigger automation in the system. @Compendium[CoC7.items.lu04TIRrg9P3vRqY]{Example Archetype}
    • \n
    • Book - An arcane tome that can hold spells and character improvements.
    • \n
    • Item - A piece of equipment.
    • \n
    • Occupation - A set of skills and other stats that implement a CoC occupation. @Compendium[CoC7.items.NOsh6EdNSjpjahDF]{Example Occupation}
    • \n
    • Setup - A set of default configurations for character, creature, or NPC creation. @Compendium[CoC7.items.CcH7CdXGtGTjMSCg]{Example Setup}
    • \n
    • Skill - A skill with a base percentage and some tags. @Compendium[CoC7.skills.UOuN0gESXPp2HXwH]{Example Skill}
    • \n
    • Spell - A magic spell.
    • \n
    • Status - An phobia or mania condition. @Compendium[CoC7.items.DVdvEDizPZPux1pK]{Example Mania}
    • \n
    • Talent -A special power for Pulp Cthulhu. These do not trigger automation in the system. @Compendium[CoC7.items.yqvwz769ZeJplOW7]{Example Talent}
    • \n
    • Weapon - An item with weapon statistics (this includes unarmed attacks). @Compendium[CoC7.items.3elxAwnv7WCUNwng]{Example Weapon}
    • \n
    \n

    Settings overview

    \n

    Click on the  Game Settings tab then under the Game Settings heading click on  Configure Settings.

    \n

    Click on  System Settings

    \n
      \n
    • Variant/Optional Rules - Here you can turn on individual Pulp Cthulhu rules and other optional rules
    • \n
    • Initiative Settings - Additional settings for optional initiative rule
    • \n
    • Roll Settings - Default options for rolls
    • \n
    • Chat Cards Settings - Configure chat messages
    • \n
    • Scene Settings - Scene Settings
    • \n
    • Game Artwork Settings - This allows you to set a custom pause icon and message
    • \n
    • Sheet Settings - This allows you to change character sheet settings and optional CSS
    • \n
    • Weapon Settings - Weapon Settings
    • \n
    • Developer And Debug Settings - These settings can break your world when new updates are released so only use them on test worlds
    • \n
    • Roll Table Settings - When sanity rolls are made the system can automatically roll for a bout of madness. You can see example roll tables in the Sanity Roll Table compendiums
    • \n
    \n

    Call of Cthulhu Scene Menu

    \n

    To access this menu you will need to have an active scene which can be created in the  Scenes Directory. These options are only available to the Keeper.

    \n
      \n
    • Keeper's tools\n
        \n
      • Development phase: When enabled, players can make improvement rolls for their marked skills.
      • \n
      • Character creation mode: When enabled, players can distribute points among their skills.
      • \n
      • XP gain: When enabled, a skill will be marked for improvement after a successful check.
      • \n
      • Send a decoy roll to players: When clicked, players will see a fake GM private roll.
      • \n
      • Start Rest: When click, pick characters to perform a rest and roll for XP gains.
      • \n
    • \n
    • Roll !: Used to roll 1d100 with a threshold, difficulty and bonus or penalty dice.
    • \n
    • Create link: Create a roll link for players to click
    • \n
    \n

    Keyboard and mouse shortcuts

    \n

    There are many elements in the sheets that trigger a dice roll when clicked. Usually a dialog is shown to prompt the user for a difficulty and a possible bonus or penalty. This behavior is modified with the following controls:

    \n
      \n
    • Right click on any rollable element to include it in an opposed roll. As long as the card is open, all rolls made\nwith a right click will be added to the opposed roll.
    • \n
    • Alt + Right click on any rollable element to include it in a combined roll.
    • \n
    • Shift + Left click on a rollable element will make a roll without asking for difficulty or bonus/penalty.
    • \n
    • Ctrl + Left click on a rollable element will create a roll request. Only available for the GM.
    • \n
    • Alt + Left click on sanity will prompt the player for minimum and maximum sanity loss.
    • \n
    \n\n
    ","markdown":""},"sort":0},{"name":"Active effects","type":"text","_id":"ag5ghFZ6hYIm2JyJ","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Effects

    \n

    The system allows for the creation of Active Effects.\nAn active effect will modify an actor characteristic(s), attribute(s), skill(s).\nEffects can be created as a @UUID[.7sSX5w3psDau2CDn]{link} using the @UUID[.9YesdNtaElDQaaaZ]{Link creation tool} or directly in the character sheet by clicking the   button.

    \n

    Effects tab

    \n

    Effects will be display in the effect tabs on the character sheet.

    \n

    \"effects

    \n

    Effect are broken down in 4 categories for PC :

    \n
      \n
    • Status: those are effects used and created by the system (Wounds status, prone, insane ...). Those effects do not include any changes.
    • \n
    • Temporary: those are effects with duration.
    • \n
    • Passive: those are permanent effects.
    • \n
    • Inactive: those are disabled effects.
    • \n
    \n

    For NPC/Creatures you will only see 2 sections: active and inactive effects.\nWhen an effect is not inactive, the corresponding changes will be applied to the actor.

    \n

    Creating effects

    \n

    You can create effect by clicking the Add button.\nThis will bring the effect creation window.\nThis windows has 3 tabs

    \n

    Details tab

    \n

    \"Details

    \n

    Duration tab

    \n

    \"Duration

    \n

    Changes tab

    \n

    \"Changes

    \n

    This last tab will includes all changes made to the character sheet.

    \n

    Changes

    \n

    An effect includes a list of changes. Each change needs to be addressed with the corresponding system path.\nThe available changes are :

    \n
      \n
    • Characteristics:\n
        \n
      • Strength:\n
          \n
        • system.characteristics.str.value
        • \n
        • system.characteristics.str.bonusDice
        • \n
      • \n
      • Constitution:\n
          \n
        • system.characteristics.con.value
        • \n
        • system.characteristics.con.bonusDice
        • \n
      • \n
      • Size:\n
          \n
        • system.characteristics.siz.value
        • \n
        • system.characteristics.siz.bonusDice
        • \n
      • \n
      • Dexterity:\n
          \n
        • system.characteristics.dex.value
        • \n
        • system.characteristics.dex.bonusDice
        • \n
      • \n
      • Appearance:\n
          \n
        • system.characteristics.app.value
        • \n
        • system.characteristics.app.bonusDice
        • \n
      • \n
      • Intelligence:\n
          \n
        • system.characteristics.int.value
        • \n
        • system.characteristics.int.bonusDice
        • \n
      • \n
      • Power:\n
          \n
        • system.characteristics.pow.value
        • \n
        • system.characteristics.pow.bonusDice
        • \n
      • \n
      • Education:\n
          \n
        • system.characteristics.edu.value
        • \n
        • system.characteristics.edu.bonusDice
        • \n
      • \n
    • \n
    • Attributes:\n
        \n
      • Luck:\n
          \n
        • system.attribs.lck.value
        • \n
        • system.attribs.lck.bonusDice
        • \n
      • \n
      • Sanity:\n
          \n
        • system.attribs.san.value
        • \n
        • system.attribs.san.bonusDice
        • \n
      • \n
      • Movement Rate:\n
          \n
        • system.attribs.mov.value
        • \n
      • \n
      • Build:\n
          \n
        • system.attribs.build.value
        • \n
      • \n
      • Damage Bonus:\n
          \n
        • system.attribs.db.value
        • \n
      • \n
      • Armor:\n
          \n
        • system.attribs.armor.value
        • \n
      • \n
    • \n
    • Derived attributes. Only the maximum value of those attributes should be modified. Those changes are applied after all other changes have been made. If that attibute is in auto mode, it will be recalculated with the previous characteristics changes before having it's value affected.\n
        \n
      • Hit Points:\n
          \n
        • system.attribs.hp.max
        • \n
      • \n
      • Sanity:\n
          \n
        • system.attribs.san.max
        • \n
      • \n
    • \n
    • Skills. Skills are identified by their full names and are case sensitive!\n
        \n
      • Charm\n
          \n
        • system.skills.Charm.value
        • \n
        • system.skills.Charm.bonusDice
        • \n
      • \n
      • Fighting (Brawl)\n
          \n
        • system.skills.Fighting (Brawl).value
        • \n
        • system.skills.Fighting (Brawl).bonusDice
        • \n
      • \n
    • \n
    \n\n
    ","markdown":""},"sort":1},{"name":"Actor Importer","type":"text","_id":"EXFpS3WZu9pwEr6H","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Actor Importer

    \n

    You can use the actor importer to import several NPC/Creatures blocks from adventures and using the JSON exporter from The Dholes House

    \n

    To open the actor importer either open the  Actor Directory and click Actor Importer at the bottom of the side bar or on an active scene   then click  Actor Importer

    \n

    Overview

    \n

    If this is your first time it is recommends you also read the following sections.

    \n
      \n
    • Non Playing Character (NPC) / Creature
    • \n
    • The Dhole's House Actor Importer JSON
    • \n
    \n

    Non Playing Character (NPC) / Creature

    \n

    \"\"

    \n
      \n
    1. Select NPC or Creature

    2. \n
    3. Should the system convert the character block from an earlier edition to 7th

    4. \n
    5. Select the languages of the character block

    6. \n
    7. When adding skills, items, spells, and weapons the system can attempt to find items in your world with the same name, you can select the order the seconds are searched

      \n

      Items: From your item directory

      \n

      World: From your world compendiums

      \n

      Modules: From your module compendiums

      \n

      System: From the system compendiums provided with this system

    8. \n
    9. An example layout is given here you can copy this to your clipboard if you want to edit it or paste in the text from an adventure

    10. \n
    \n

    Click import will create an actor under the  Actor directory will be created in the Imported characters folder any text that was not understood will be stored in Keeper notes

    \n

    The Dhole's House Actor Importer JSON

    \n

    \"\"

    \n
      \n
    1. The Dhole's House Actor Importer JSON

    2. \n
    3. When adding skills, items, spells, and weapons the system can attempt to find items in your world with the same name, you can select the order the seconds are searched

      \n

      Items: From your item directory

      \n

      World: From your world compendiums

      \n

      Modules: From your module compendiums

      \n

      System: From the system compendiums provided with this system

    4. \n
    \n

    Browse for your JSON file, once selected the name and image will be be shown, click import to create the actor under the  Actor directory will be created in the Imported characters folder

    \n

    By default the image will be stored in a folder called dhole-image in your world, this can be changed by clicking on the  Game Settings tab then under the Game Settings heading clicking on  Configure Settings, click on  System Settings.

    \n\n
    ","markdown":""},"sort":2},{"name":"Character Creation","type":"text","_id":"EQS1L753HOsOD4vR","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Character Creation

    \n

    The system comes with some compendiums ready for you to customise. These are reset every time you update or install the system so it is recommended you copy them into your own compendium and edit them as required.

    \n

    Skills

    \n

    In this section you will create or edit @UUID[.7Ql88MphdUS0FvBv]{skills}

    \n
      \n
    1. Go to  compendium packs

    2. \n
    3. Click on  Create Compendium

      \n
        \n
      • Give your compendium a name (e.g. My Skills)
      • \n
      • Select Item as Document Type
      • \n
    4. \n
    \n

    Use existing skills

    \n
      \n
    1. Open up the compendium Skills
    2. \n
    3. Drag any skills you want to customise into your new compendium
    4. \n
    \n

    Create new skills

    \n
      \n
    1. Go to  Items Directory

    2. \n
    3. Cick on  Create Item

      \n
        \n
      • Give the skill a name
      • \n
      • Set Type to Skill
      • \n
    4. \n
    \n

    Setup

    \n

    @UUID[.gv3xcdEM8ugzJJdz]{Setups} are predefined sets of skills and a way to generate the characteristics (this can be by rolling dices or assigning certain amount of points for example). Once a setup has been created it can be used in the creation of multiple characters.

    \n
      \n
    1. Go to  Items Directory

    2. \n
    3. Click on  Create Item

      \n
        \n
      • Give the skill a name
      • \n
      • Set Type to Setup
      • \n
    4. \n
    5. Define the setup to set the basic configuration for a type of characters.

      \n
        \n
      • You can add a textual description on the Description tab
      • \n
      • If you click on the icon you can select a new one
      • \n
      • On the Details tab you can:\n
          \n
        • Select the Cthulhu Flavors where this setup is valid
        • \n
        • Define the biography sections and their names (click on the + to add extra Biography sections)
        • \n
        • Drag default items like @Compendium[CoC7.items.3elxAwnv7WCUNwng]{Punch}
        • \n
        • Show / Hide the Characteristics tab with the Enable characteristics checkbox
        • \n
      • \n
      • The Characteristics tab allows you to define the formula to roll the dices for each characteristic
      • \n
      • The Skills tab allows you to define the default set of skills by dragging items of type skill to the common skills area.
      • \n
    6. \n
    \n

    Occupations

    \n

    An @UUID[.PtxMa4YG5ZEkvJj9]{occupation} helps to define the character background, think about it as the definition of the set of occupational skills (the ones where the character can spend their occupation points) plus the definition of how to calculate the amount of available occupation points. Finally the occupation also allows to define the minimum and the maximum credit for a character with this occupation.

    \n

    Keep in mind that the set of occupational skills doesn't need to be fixed, the system allows to configure the occupation so when it's dragged to a Character sheet will give the option of selecting one or more skills from a closed list, or even add a pre defined number of skills to select from all the available ones.

    \n

    The occupation creation process is the following one:

    \n
      \n
    1. Go to  Items Directory

    2. \n
    3. Cick on  Create Item

      \n
        \n
      • Give the skill a name
      • \n
      • Set Type to Occupation
      • \n
    4. \n
    5. Define the occupation to select the relevant characteristics and the occupation skills

      \n
        \n
      • You can add a textual description on the Description tab and define the Source
      • \n
      • If you click on the icon you can select a new one
      • \n
      • On the Details tab you can:\n
          \n
        • Select the Occupation Type

        • \n
        • Define the characteristics used to calculate the occupation points, you can check the characteristics you want and define the multiplier, for the ones with Optional marked, the player will have to choose one at creation time.

          \n

          For instance if an occupation uses EDU * 2 + (STR or DEX) * 2 you have to select Education and put 2 on the Multiplier without marking Optional and then for Strength and Dexterity you have to check both, check Optional on both, and put 2 on the Multiplier on both.

        • \n
        • Finally you will have to define the Minimum and Maximum value for the Credit Rating skill for this occupation.

        • \n
      • \n
      • The Skills tab allows you to select the occupation skills by dragging items of the Type skill to the different sections. A typical occupation has 8 skills plus the Credit Rating skill.\n
          \n
        • The Common Skills includes the default occupation skills that can't be changed
        • \n
        • The Optional skills groups section allows to add groups (you can create several of them) of skills for the player to choose from. Once you click on the + sign a group is created and you can define the Number to chose from (number of skills to select) and create a pool of skills available for the selection by dragging them on the group.
        • \n
        • Finally the Additional Skills allows you to enter a number of skills the player can choose from the rest of the available skills.
        • \n
      • \n
    6. \n
    \n

    Player Character creation

    \n

    You can create a Player Character by creating the actor and filling the corresponding blank Character Sheet, but it's much easier if you have previously created a setup and an occupation (see above), if you have created both the process to create the Player Character is as follows:

    \n
      \n
    1. Go to  Actors Directory

    2. \n
    3. Cick on  Create Actor

      \n
        \n
      • Give the actor a name
      • \n
      • Set Type to Character
      • \n
    4. \n
    5. Drag and drop a item of Type setup (for instance 1920s, 1890s, Pulp, Modern,...) on the sheet to do the basic setup using the configuration defined on the item, this usually includes rolling the characteristics or setting their values with the points system, and set a default set of skills corresponding to the given setup.

    6. \n
    7. Drag and drop an occupation Type item on the sheet, this will probably involve selecting some skills from a given reduced set or from the remaining ones. This will calculate the available Personal points and Occupation points and assign the part of the Occupation points to reach the minimum value for Credit Rating of the selected occupation.

    8. \n
    9. On the keeper's menu on the left click  Keeper's tools, if this menu is not available need to have an active scene which can be created in the  Scenes Directory

    10. \n
    11. On the new submenu click  Character creation mode. A new tab called Development should appear on the character sheets.

    12. \n
    13. Click on the characters Development tab

    14. \n
    15. The first dot column is for your occupational skills these can be toggled by clicking them

      \n
        \n
      • If you have enabled the Pulp rule Archetypes you will have a second dot to toggle that
      • \n
    16. \n
    17. Distribute occupation/personal points in development tab taking on account that each skill has 5 columns:

      \n
        \n
      1. First one is the basic percentage of the skill
      2. \n
      3. The second one is the one to put the Personal interest points during the creation of the character
      4. \n
      5. The third one is only available on for the occupation skills (marked with a dark circle before the skill name) and it's used to assign the Occupation points.\n
          \n
        • If you have enabled the Pulp rule Archetypes you will have a forth column you enter your archetype points here
        • \n
      6. \n
      7. The forth/fifth column should be initially blank and its where the experience points will show up (you can also assign points here if you are playing an experienced character)
      8. \n
      9. The final column is a read only one with the final calculated value for the skill (the sum of the other 4)
      10. \n
    18. \n
    \n\n\n
    ","markdown":""},"sort":3},{"name":"Chases","type":"text","_id":"w645thphP1Sd2Whe","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Creating a new chase

    \n

    To create a chase create a new item of type chase.

    \n

    Only the keeper should have access to that item.

    \n

    A chase is composed of a succession of locations. Each location can be separated by an obstacle (barrier or hazard).

    \n

    A hazard will always be crossed but failing the check will slow you down.

    \n

    A barrier will stop you until you successfully pass or destroy it.

    \n

    \"\"

    \n

    The chase sheet is divided in 3 parts.

    \n
      \n
    • A header where you will see information about current location once a chase is started.
    • \n
    • A chase setup tab. This will allows you to create and follow the chase.
    • \n
    • A participant list where you can setup your participant. This tab will not work after the chase started.
    • \n
    \n

    Adding a participant.

    \n

    To add a participant click on the plus sign on the participant list or drag an actor or a token.

    \n

    Note that it is not mandatory to have a actor associated with a participant. This will allows for fast setup or to add someone on the fly to the chase.

    \n

    To be able to add a token to the chase a few control have been added to character and NPC sheets:

    \n

    \"\"

    \n

    Those icons will give additional information.

    \n
      \n
    1. Indicate that this actor is a synthetic actor (instance of an actor)
    2. \n
    3. Indicate that actor's data are not linked. Each instance of that actor has his own properties.
    4. \n
    5. Indicate that this actor has an associated token. You can drag and drop this onto a chase location or on the participant list.
    6. \n
    7. Indicate that actor's data are linked to an actor in the actors directory.
    8. \n
    \n

    Here you can set up your participant. Dragging an actor from the Actors sidebar will set the details. Note that you can select a different initiative and speed check. This is non standard in the CoC, but allows to setup unusual chases (futuristic matrix chase, dreamlands chase...)

    \n

    \"\"

    \n
      \n
    1. Dragging the questionmark onto a token will set the details to that token.
    2. \n
    \n

    Once you drag an actor or select a token you can set up the participant

    \n

    \"\"

    \n
      \n
    1. Clicking this will change the participant side from prey to chaser.
    2. \n
    3. Clicking this will trigger a speed check. Note that there will be no player entries necessary nor any roll card displayed.
    4. \n
    \n

    Participant list

    \n

    \"\"

    \n

    Here you can have the list of participant to the chase.

    \n
      \n
    1. Will trigger a chase roll. This will create a roll card if the participant has an associated actor (it's not a dummy). Holding shift will fast forward and solve the card.
    2. \n
    3. This will clear the speed roll if any, or delete the participant.
    4. \n
    \n

    \"\"

    \n
      \n
    1. Roll card waiting to get resolved in the chat.
    2. \n
    3. Speed check rolled. You can click this to get the details.
    4. \n
    5. To reset the speed check.
    6. \n
    \n

    \"\"

    \n

    Chase setup

    \n

    \"\"

    \n

    To setup a chase enter the initial numbers of locations and click initialize.

    \n

    \"\"

    \n

    The chase is initialized, you can adjust some options. Locations in white are initial locations and can not be modified.

    \n
      \n
    1. This is the chase track, the location in white are initials locations. The location in grey are actual chase locations.
    2. \n
    3. Selecting this will include in the chase participants who would have otherwise been able to escape.
    4. \n
    5. Selecting this will include in the chase participants who would have been excluded for being too slow.
    6. \n
    7. This is the number of locations between the slowest prey and the fastest chaser.
    8. \n
    9. This is the starting location of the fastest prey. Setting this to 0 will place him just before the start. 1 will place him at the start. -1 will place him 1 location before the start.
    10. \n
    11. This will animate token when they move to a new location.
    12. \n
    \n

    Setting up locations

    \n

    During setup or during chase you can select a location to modify it.

    \n

    Starting (white) locations can not be modified during setup.

    \n

    To modify a location select it by clicking on it. This will display the location details on the header part of the sheet.

    \n

    \"\"

    \n
      \n
    1. This will add a participant. If the chase is started the participant will be on that location. If the chase isn't started the participant will be added on the init track.
    2. \n
    3. This will remove the location. A location has to be empty to be removed.
    4. \n
    5. You can drag this and drop it on a scene. This will set the coordinates for that location. A red pin indicate that coordinates has been set. Right clicking a red pin will reset it's coordinate. If coordinates are set, and a participant with an associated token enter that location his token will be moved to that location.
    6. \n
    7. Add a new location.
    8. \n
    9. Active location.
    10. \n
    \n

    Setting up obstacles.

    \n

    You can add obstacle after and before a location. You can pre-fill an obstacle with a name, an associated check and some penalties.

    \n

    \"\"

    \n
      \n
    1. Toggle this to add damage to a barrier.
    2. \n
    3. Barrier's hit points.
    4. \n
    5. Movement action cost in case of failure.
    6. \n
    7. Check used to pass the location. When it's red the active actor does not have the associated check.
    8. \n
    \n

    Cut to the chase.

    \n

    When you are ready you can cut to the chase. If not all participant have a speed check this will trigger a warning and will not let you start.

    \n

    \"\"

    \n
      \n
    1. Initiative track. The active participant is circled in orange.
    2. \n
    3. Chase track. Active location and participant. You can drag drop participant from the chase track to move them freely. You can drag a new actor or token directly on the chase track. This will pop the import window and add that participant to the chase. In some cases (eg. new prey slower than the slowest participant) all movement action will be recalculated.
    4. \n
    5. A barrier.
    6. \n
    7. A hazard.
    8. \n
    \n

    Obstacle resolution flow

    \n

    \"\"

    \n
      \n
    1. When the active participant is facing an obstacle you can trigger the obstacle resolution flow by clicking this. This will open a chat card where keeper and player can interact to pass that obstacle. All changes made to the card can be reflected to the obstacle in the chase at the end of the flow.
    2. \n
    \n

    Here is a shorten flow example:

    \n

    \"\"\n\"\"\n\"\"\n\"\"

    \n

    Once the flow is complete all changes are send to the chase.

    \n

    \"\"

    \n

    This round is finished. All actor have spent their movement action. You can click Next round to proceed.

    \n

    Participant controls.

    \n

    \"\"

    \n

    You can modify or move a participant by using the controls button on his card.

    \n
      \n
    1. Those 3 icons will allow to delete, modify and activate a participant.
    2. \n
    3. Movement action. A yellow is available, grey is consumed, red is a deficit.
    4. \n
    5. This will control your participant bonus. He can draw a gun or be awarded bonus dices.
    6. \n
    7. Movement action controls. Here you can increase or decrease movement actions.
    8. \n
    9. Movement controls. You can move backward or forward. You can assist an ally (consume an action and give a bonus die) or take a cautious approach.
    10. \n
    \n\n
    ","markdown":""},"sort":4},{"name":"CoC ID System","type":"text","_id":"xIXeEy4A8thetqLp","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    CoC ID System

    \n

    Several FoundryVTT documents have an ID button accessable to "Game Master" and "Assistant GM" User Roles.

    \n

    System ID (CoC ID): Setting a skill's ID to i.skill.dodge will let the system know to treat that skill as Dodge on the combat card.

    \n

    Language: Which languge is this version of the Item in.

    \n

    Cthulhu Flavors: You can also control the era a skill is for, Animal Handling has different base values based on the era

    \n

    System ID Priority: The highest number will be considered best

    \n

    Item

    \n

    i.setup.example - The Investigator Wizard will use these you need to pick a single era to assign it to

    \n

    i.archetype.example - The Investigator Wizard will use these if the archetype optional rule is enabled

    \n

    i.occupation.example - The Investigator Wizard will list these

    \n

    i.skill.example - Setups, Investigator Wizard, and creating Actors will use these if the era matches

    \n

    RollTable

    \n

    rt..backstory-example - If the example part matches the backstory title in kebab case it will give a roll option in the backstory section of the Investigator Wizard

    \n

    Translations

    \n

    You can use the Keeper's tools on the left hand menu to update Actors based on CoC ID Items you have in your world, you need a scene to be able to access this menu

    \n

    RQID

    \n

    This system is based on RQID from the "Runequest Glorantha" system, documentation for it can be found here https://sun-dragon-cult.github.io/rqg-system/api/rqid

    \n\n
    ","markdown":""},"sort":5},{"name":"Combat","type":"text","_id":"SgRmyJJ7tb4o5Zb9","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Combat

    \n

    Starting the combat

    \n

    On the scene select the tokens involved on the combat right click on one of them and on the bottom right click on the Toggle combat state icon. This will add the actors corresponding to the selected tokens to the combat tab.\nThen on the combat tab you can start the combat.

    \n

    The combat tracker will help you to track both the initiatives of the different actors and the combat rounds.

    \n

    Initiative

    \n

    On foundry combat turns are ordered by initiative, in the system this is usually the DEX of the actor. So to set the initiatives click on the dice icon of each actor or just the icon with 3 persons on the top left of the combat tab to set all at once.

    \n

    Next to each actor on the combat tab there are 3 icons:

    \n
      \n
    • A target: to draw the gun (this will add 50 to that character initiative)
    • \n
    • A crossed eye: to show/hide the corresponding actor on the list.
    • \n
    • A skull: to mark a character as defeated and skip it for the following turns.
    • \n
    \n

    Select target / targets

    \n

    During an actor's turn, to attack the first thing to do is to select the target or targets, this can be done by doing a right click on the target's token and then clicking on the target icon (bottom left). Or set the target mode on from the left tool bar and click on the targets.

    \n

    Then open the actor's sheet and click on the name of the item that will be used for the attack. This can be from a single shot of a long range weapon, or some melee attack or a maneuver.\nThis click will start the attack workflow on the chat, the chat card will allow selecting further options of the attack depending on the type of attack.

    \n
    \n

    Tip: if you right click on the combat tracker sheet icon, this will pop put this as a little window and you then you can see both the combat tracker window and results of the combat on the chat.

    \n
    \n

    Melee

    \n

    Maneuvers

    \n

    Not implemented yet.

    \n

    Single Shot

    \n

    Automate fire

    \n

    Multiple Targets

    \n

    Reload

    \n\n
    ","markdown":""},"sort":6},{"name":"Commands Cheat Sheet","type":"text","_id":"lNIBCWjFNXWoujzQ","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Commands Cheat Sheet

    \n

    General rules

    \n

    Most sheet component can be clicked on the trigger a check/roll.\nAs a general rule you can modify those requests:

    \n
      \n
    • Shift will fast forward the request.
    • \n
    • Ctrl [GM only] will create a link in the chat with that request a roll to the players.
    • \n
    \n

    Sanity

    \n\n\n\n\n\n\n\n\n
    CommandAction
    Ctrl+Shift + left click SANRequest a Sanity Check for the character
    Ctr+Shift+Alt + left click SANRequest a Sanity Check and define the sanity loss
    \n

    Combined / Opposed rolls

    \n\n\n\n\n\n\n\n\n
    CommandAction
    Right Click on an elementStart/ Include the roll on an opposed roll
    Alt + Right Click on an elementStart/ Include the roll on an combined roll
    \n

    Other

    \n\n\n\n\n\n\n\n
    CommandAction
    cShow my own character sheet
    \n\n
    ","markdown":""},"sort":7},{"name":"Creating your first investigator","type":"text","_id":"9a8SLXDQHfCxrZzR","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Initial item setup

    \n

    The system comes with some compendiums ready for you to customise. These are reset every time you update or install the system so it is recommended you copy them into your own compendium and edit them as required.

    \n

    This page creates an investigator using the provided compendiums, if you are ready to full customise your character people read @UUID[.EQS1L753HOsOD4vR]{Character creation} instead.

    \n

    Skill

    \n

    Click on the  Compendium Packs tab then under the Item heading open up the Skills Item (CoC7). Here you will find the skills shown on the characters sheets available from Chaosium's website.

    \n
      \n
    • No adjustment - Can not be assigned personal skill points.
    • \n
    • No XP gain - You do not mark this skill for improvement on a success.
    • \n
    • Specialization - This skill is part of a group like Pilot or Flighting.
    • \n
    • Uncommon - This skill is uncommon and can be automatically hidden on the character sheet.
    • \n
    • Pushed - This skill can be pushed.
    • \n
    • Fighting - Automatically set Specialization, Combat, and the specialization name to Fighting.
    • \n
    • Firearms - Automatically set Specialization, Combat, and the specialization name to Firearms.
    • \n
    \n

    You can create a new Item Compendium and copy the skills you require into it allowing you to edit them. You can also create new skills by creating new Skill Items (Click on the  Items Directory tab then Create Item give this a name e.g. Gardening and set the Type to Skill).

    \n

    Setup

    \n

    Once you have set up your skills next create up a Setup, here is an example from the Items Examples compendium @Compendium[CoC7.items.CcH7CdXGtGTjMSCg]{1920's Setup Example}

    \n

    Setups allow to you standardise what skills, items, biography sections, and characteristics the investigators start with.

    \n

    Click on the  Items Directory tab then Create Item give this a name e.g. New Investigator Setup and set the Type to Setup

    \n

    On the Description tab to set the description click the  button to get an editor.

    \n

    On the Details tab click the  on the Biography Sections to add any sections you require from the Create a Backstory step of investigator creation. Click on the  Compendium Packs tab then under the Item heading open up the Items Examples Item (CoC7) and drag the @Compendium[CoC7.items.3elxAwnv7WCUNwng]{Punch} onto the setup.

    \n

    On the Characteristics tab you can customise how investigator characteristics are rolled / bought

    \n

    On the Skills tab you can drag the skills the investigator will have.

    \n

    All actor and item sheets have a  tab which can be used by the Keepers to store notes, only users that are set to GM can see this tab

    \n

    Occupation

    \n

    Occupations allow you set how many the occupation points, credit rating range, and skills the investigator starts with. Here is an example from the Items Examples compendium @Compendium[CoC7.items.NOsh6EdNSjpjahDF]{Occupation Example}

    \n

    Click on the  Items Directory tab then Create Item give this a name e.g. Driver and set the Type to Occupation

    \n

    On the Description tab to set the description click the  button to get an editor.

    \n

    On the Details tab you can set the Occupation Points calculation and Minimum/Maximum Credit Rating

    \n

    On the Skills tab you can drag skills from the Compendiums or Item Directory to Common skills, you can also set up multiple Optional skill groups deciding how many the investigator must select.

    \n

    Creating your first investigator

    \n

    Character

    \n

    To complete your character you need to have an active scene which can be created in the  Scenes Directory.

    \n

    Click on the  Actors Directory tab then Create Item give this a name e.g. New Investigator and set the Type to Character.

    \n

    You can drag your setup created above on to the character for the initial setup or drag this example instead @Compendium[CoC7.items.CcH7CdXGtGTjMSCg]{1920's Setup Example}

    \n

    Next drag your occupation created above on to the character or drag this example instead @Compendium[CoC7.items.NOsh6EdNSjpjahDF]{Occupation Example}

    \n

    On the left hand menu bar select  Keeper's tools then select  Character creation mode.

    \n

    On the character sheet select the Development tab. The first dot indicates this is an occupation skill, the first column of numbers is the base value, next if where you assign personal points, third is for occupation points, the fourth is for experience gained during the investigator improvement phase, the final column is the total skill percent.

    \n

    You can see how many personal and occupation points you have spent so far, once you have spent all your points you need to toggle off  Character creation mode to allow characters to see their HP, MP, Sanity, and luck

    \n\n
    ","markdown":""},"sort":8},{"name":"Items","type":"text","_id":"oFE5T3zT5PMhWbui","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Items

    \n

    The system support many different types of items, from basic items or weapons to skills or the complete setup of a type of character. You can see examples on the compendium that comes with the system.

    \n

    To create any of the types of items you always start the same way

    \n
      \n
    1. Go to the items directory
    2. \n
    3. Click on Create Item\n
        \n
      • Give it a name
      • \n
      • Select the item Type (see below for details on each one)
      • \n
      • Select the destination folder.
      • \n
    4. \n
    \n

    And have some common structure so on all of them:

    \n
      \n
    • You can add a textual description on the Description tab or just on the main window if it doesn't have tabs.
    • \n
    • If you click on the icon you can pick or upload a new one
    • \n
    \n

    Available types

    \n
      \n
    • @UUID[.sJiiuIJZTToArDnD]{Item Type: Archetype}
    • \n
    • @UUID[.OaIgfX2Ij0vQoVtz]{Item Type: Book}
    • \n
    • @UUID[.w645thphP1Sd2Whe]{Item Type: Chases}
    • \n
    • Item Type: Item
    • \n
    • @UUID[.PtxMa4YG5ZEkvJj9]{Item Type: Occupation}
    • \n
    • @UUID[.gv3xcdEM8ugzJJdz]{Item Type: Setup}
    • \n
    • @UUID[.7Ql88MphdUS0FvBv]{Item Type: Skill}
    • \n
    • Item Type: Spell
    • \n
    • Item Type: Status
    • \n
    • Item Type: Talent
    • \n
    • Item Type: Weapon
    • \n
    \n\n
    ","markdown":""},"sort":9},{"name":"Item Type: Archetype","type":"text","_id":"sJiiuIJZTToArDnD","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Item Type: Pulp Archetype

    \n

    Archetypes are used on Pulp games. They provide skill and characteristic bonuses.

    \n

    Once the Archetype item has been created, the Archetype Sheet is shown.\nThere you can define the details of the Archetype:

    \n
      \n
    • On the Details tab you can:\n
        \n
      • Assign the number of Additional points
      • \n
      • Assign the number of Pulp Talents
      • \n
      • Define the Basic Characteristics and if you want to Use a dice roll to generate them.
      • \n
      • Define the Suggested Occupations
      • \n
      • Define the Suggested Traits
      • \n
    • \n
    • On the Skills tab you can:\n
        \n
      • Drag the skills corresponding to this Archetype
      • \n
    • \n
    \n\n
    ","markdown":""},"sort":10},{"name":"Item Type: Book","type":"text","_id":"OaIgfX2Ij0vQoVtz","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Item Type: Book

    \n

    The system has a special type of item for the books to be able to define the Sanity Loss, if it's a Mythos Tome or an Occult book, what Spells or Skills it provides and of curse a description and the book image.

    \n\n
    ","markdown":""},"sort":11},{"name":"Item Type: Occupation","type":"text","_id":"PtxMa4YG5ZEkvJj9","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Item Type: Occupation

    \n

    An occupation helps to define the character background, think about it as the definition of the set of occupational skills (the ones where the character can spend their occupation points) plus the definition of how to calculate the amount of available occupation points. Finally the occupation also allows to define the minimum and the maximum credit for a character with this occupation.

    \n

    Keep in mind that the set of occupational skills doesn't need to be fixed, the system allows to configure the occupation so when it's dragged to a Character sheet will give the option of selecting one or more skills from a closed list, or even add a pre defined number of skills to select from all the available ones.

    \n
      \n
    1. Go to the  Items Directory tab

    2. \n
    3. Click on  Create Item

      \n
        \n
      1. Give the set up a name e.g. Librarian
      2. \n
      3. Set Type to Occupation
      4. \n
    4. \n
    5. On the Description tab you can change the name, icon, name of the source book, and description

    6. \n
    7. On the Details tab you can control

      \n
        \n
      1. Select the Occupation Type

      2. \n
      3. Define the characteristics used to calculate the occupation points, you can check the characteristics you want and define the multiplier, for the ones with Optional marked, the player will have to choose one at creation time.

        \n
          \n
        1. For instance if an occupation uses EDU * 2 + (STR or DEX) * 2 You have to select Education and put 2 on the Multiplier without marking Optional and then for Strength and Dexterity you have to check both, check Optional on both, and put 2 on the Multiplier on both.
        2. \n
        3. Finally you will have to define the Minimum and Maximum value for the Credit Rating skill for this occupation.
        4. \n
      4. \n
      5. Names of biography sections (click on the + to add extra Biography sections), this can be replaced with a single block biography in settings

      6. \n
      7. Under items you can drag and drop default items and weapons

      8. \n
    8. \n
    9. On the Skills you can drag and drop skills in to multiple sections, A typical occupation has 8 skills plus the Credit Rating skill.

      \n
        \n
      1. The Common Skills includes the default occupation skills that can't be changed
      2. \n
      3. The Optional skills groups section allows to add groups (you can create several of them) of skills for the player to choose from. Once you click on the + sign a group is created and you can define the Number to chose from (number of skills to select) and create a pool of skills available for the selection by dragging them on the group.
      4. \n
      5. Finally the Additional Skills allows you to enter a number of skills the player can choose from the rest of the available skills.
      6. \n
    10. \n
    \n\n
    ","markdown":""},"sort":12},{"name":"Item Type: Setup","type":"text","_id":"gv3xcdEM8ugzJJdz","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Item Type: Setup

    \n

    Setups are predefined sets of skills and a way to generate the characteristics (this can be by rolling dices or assigning certain amount of points for example).

    \n
      \n
    1. Go to the  Items Directory tab

    2. \n
    3. Click on  Create Item

      \n
        \n
      1. Give the set up a name e.g. 1920's Setup
      2. \n
      3. Set Type to Setup
      4. \n
    4. \n
    5. On the Description tab you can change the name, icon, name of the source book, and description

    6. \n
    7. On the Details tab you can control

      \n
        \n
      1. Show / Hide the Characteristics tab with the Enable characteristics checkbox
      2. \n
      3. Which version of Call of Cthulhu this is for, this can be filtered in compendiums
      4. \n
      5. Names of biography sections (click on the + to add extra Biography sections), this can be replaced with a single block biography in settings
      6. \n
      7. Under items you can drag and drop default items and weapons
      8. \n
    8. \n
    9. On the Characteristics tab you can set a points buy or roll characteristics and the formula

    10. \n
    11. On the Skills tab under common skill you can drag and drop default skills

    12. \n
    \n\n
    ","markdown":""},"sort":13},{"name":"Item Type: Skill","type":"text","_id":"7Ql88MphdUS0FvBv","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Item Type: Skill

    \n

    A skill will be rolled during tests.

    \n
      \n
    1. Go to the  Items Directory tab

    2. \n
    3. Click on  Create Item

      \n
        \n
      1. Give the skill a name e.g. Art/Craft (Dancing)
      2. \n
      3. Set Type to Skill
      4. \n
    4. \n
    5. On the Description tab you can change the name, icon, Cthulhu Flavors (which editions this appears in), and description

      \n
        \n
      1. No adjustment - Can not be assigned personal skill points.
      2. \n
      3. No XP gain - You do not mark this skill for improvement on a success.
      4. \n
      5. Specialization - This skill is part of a group like Pilot or Flighting.
      6. \n
      7. Uncommon - This skill is uncommon and can be automatically hidden on the character sheet.
      8. \n
      9. Pushed - This skill can be pushed.
      10. \n
      11. Fighting - Automatically set Specialization, Combat, and the specialization name to Fighting.
      12. \n
      13. Firearms - Automatically set Specialization, Combat, and the specialization name to Firearms.
      14. \n
    6. \n
    \n\n
    ","markdown":""},"sort":14},{"name":"Links","type":"text","_id":"7sSX5w3psDau2CDn","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Links

    \n
      \n
    • Links are a way for a GM to request for a roll (Characteristic, Attribute, Skill, SAN loss, Weapon).
    • \n
    • Links can contain an active effect.
    • \n
    • Links are created in the chat log. When you click a link it will trigger a check for your(s) controlled/impersonated character(s).
    • \n
    • Links can be included in any editor, mainly journal entries.
    • \n
    • Link can be created in 5 ways:\n
        \n
      • By manually typing it (read details below).
      • \n
      • By CTRL+click on any sheet element (Characteristic, Attribute, skill, SAN loss).
      • \n
      • By dragging a sheet element (Characteristic, Attribute, skill (+CTRL)) on an editor (Journal entry)
      • \n
      • By CTRL + dragging an item (skill or weapon) from a compendium or an item directory on an editor. When a link is created that way and the used as a GM, if your controlled character doesn't hold the weapon/skill you'll be prompted to create the corresponding item.
      • \n
      • By using the included compendium written by Lozalojo.
      • \n
    • \n
    • Links can be dragged from chat log on an editor.
    • \n
    • When a link is created the difficulty/penalty selection windows will open. Hold SHIFT to bypass that comportment.
    • \n
    • When a link is created, the roll mode will be check. If the roll mode is set to 'blind GM roll' the link will be created as blind.
    • \n
    • When a link is created with a difficulty and a penalty, the difficulty/penalty windows will not pop.
    • \n
    • When a link is created without a difficulty or a penalty, the difficulty/penalty windows will pop. Holding SHIFT will fastforward the roll (regular/no penalty).
    • \n
    \n

    Writing links

    \n
      \n
    • Links should be written using the @UUID[.9YesdNtaElDQaaaZ]{Link creation tool}. The link creation window is a tool for GM. It's located in the left side bar.
    • \n
    \n

    Links for chat messages and sheet editors (NPC, Journal entries...).\nFormat of link is @coc7.TYPE_OF_REQUEST[OPTIONS]{TEXT_TO_DISPLAY}

    \n
      \n
    • TYPE_OF_REQUEST :\n
        \n
      • sanloss: trigger a san check, upon failure will propose to deduct the corresponding SAN.
      • \n
      • check: trigger a check depending on the options.
      • \n
      • item: trigger use of a weapon. Only items of type weapon can be triggered.
      • \n
    • \n
    • OPTIONS: [] = optional, default\n
        \n
      • sanloss:\n
          \n
        • sanMax: max SAN loss
        • \n
        • sanMin: min SAN loss
        • \n
      • \n
      • check:\n
          \n
        • type: type of check ( characteristic, skill, attrib).
        • \n
        • name: name of the skill/characteristic/attrib.
        • \n
        • [blind]: will force a blind check, if not present the check will depend on your selected roll mode.
        • \n
      • \n
      • all:\n
          \n
        • [difficulty]: ? (blind), 0 (regular), + (hard), ++ (extreme), +++ (critical).
        • \n
        • [modifier]: -x (x penalty dice), +x (x bonus dice), 0 (no modifier).
        • \n
        • [icon]: icon tu use (font awesome, fas fa-dice).
        • \n
      • \n
    • \n
    • TEXT_TO_DISPLAY: Name to display, this is optional.
    • \n
    \n

    Examples

    \n\n\n\n\n\n\n\n\n\n\n\n\n
    LinkResult
    @coc7.sanloss[sanMax:1D6,sanMin:1,difficulty:++,modifier:-1]{Hard San Loss (-1) 1/1D6}
    @coc7.check[type:charac,name:STR,difficulty:+,modifier:-1]{Hard STR check(-1)}
    @coc7.check[type:attrib,name:lck,difficulty:+,modifier:-1]{Hard luck check(-1)}
    @coc7.check[type:skill,icon:fas fa-arrow-alt-circle-right,name:anthropology,difficulty:+,modifier:-1]{Hard Anthropology check(-1)} (with icon)
    @coc7.sanloss[sanMax:1D6,sanMin:1]{San Loss (-1) 1/1D6} (without name, difficulty nor modifier)
    @coc7.check[type:skill,icon:fas fa-arrow-alt-circle-right,name:anthropology,modifier:+1]{Anthropology check (+1)} (with icon, without name nor difficulty)
    \n

    Using links

    \n
      \n
    • You can drag/drop links from chat to sheets and between sheets.
    • \n
    • You can drag/drop a link directly on a token.
    • \n
    • You can drag/drop items and skills on a journal entry while holding CTRL, this will create the corresponding check with regular difficulty and 0 modifier.
    • \n
    • You can create link in the chat by clicking and holding CTRL from any sheet (PC/NPC/Creature) corresponding characteristic/luck/SAN/Competence/weapon/San loss.\n
        \n
      • This will open the select penalty/difficulty dialogue. Clicking on the generated link will then trigger the check with all parameters.
      • \n
      • Holding Shift on top will not open the penalty/difficulty dialogue. Clicking on the generated link will open the penalty/difficulty dialogue then trigger the check.
      • \n
    • \n
    \n\n
    ","markdown":""},"sort":15},{"name":"Link creation tool","type":"text","_id":"9YesdNtaElDQaaaZ","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Link creation tool

    \n

    The system includes a tool to help you create links easily.\nIt's located on the left side bar. Click on the  icon.\nThis tools is available to GM only.

    \n

    \"Creation

    \n

    using this you can create @UUID[.7sSX5w3psDau2CDn]{link} for skill check, san check, effects ...\nalternatively you can open the tool by holding CTRL while clicking no an item or a skill.

    \n

    Main window

    \n

    Clicking on the tool icon will open a window :

    \n

    \"Main

    \n

    You can there select options for you link.

    \n
      \n
    • "Compendium packs" and "Items directory" allows you to reference an object from corresponding folder.
    • \n
    • "Modifiers" will allows you to add modifiers to your check.
    • \n
    • "blind" will force the roll mode to be blind.
    • \n
    • "Label" will allows you to change the display label.
    • \n
    • "Icon" will allows you to choose an icon for your link. Icons can be :\n
        \n
      • A font awesome or a game-icons reference : "fas fa-ankh" or "game-icon game-icon-tentacle-strike".
      • \n
      • A link to an image in the system data or system core: "icons/magic/symbols/arrowhead-green.webp".
      • \n
    • \n
    \n

    If you do not supply a label and/or an icon, a default label and icon will be added.

    \n

    \"default

    \n

    Effects window

    \n

    Selecting effects will open an advance window where you can create links for @UUID[.ag5ghFZ6hYIm2JyJ]{active effects}.\nSelect the options the same way you will be doing for a regular effect.

    \n

    Using links

    \n
      \n
    • Once your link is created and valid it will appear in a white box in the middle of the window.
    • \n
    \n

    \"link

    \n
      \n
    • You are now ready to whisper it to your players, copy it in your clipboard so you can add it to your items or journal entries or send it to the chat.
    • \n
    \n

    \"link

    \n
      \n
    • When a player clicks a link the corresponding action will be performed by his character.
    • \n
    • When a GM clicks a link the corresponding action will be performed by his selected tokens.
    • \n
    • A link drag/dropped in journal entries, on a token etc...
    • \n
    \n

    \"link

    \n\n
    ","markdown":""},"sort":16},{"name":"Sanity","type":"text","_id":"9xaysNap3U5XbkTn","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Sanity Checks

    \n

    The system has integrated the sanity check workflow and can handle sanity rolls, tracking Sanity loss and rolling for temporal insanity.

    \n

    Requesting Sanity rolls

    \n
      \n
    • The Keeper can click with Ctrl+Shift on the Sanity of character to request a Sanity Check for the character

      \n
        \n
      • If the Keeper also press Alt (so holding at the same time Ctrl+Shift+Alt) while clicking on the Sanity of a character, a dialog will pop-up to introduce the sanity loss if the sanity check is passed and the value for when the sanity check is failed.
      • \n
    • \n
    • Video showing the Sanity check workflow

    • \n
    \n\n
    ","markdown":""},"sort":17}],"_id":"sxB2OXbfwV6M0nyQ","flags":{"CoC7":{"cocidFlag":{"eras":{},"id":"je..call-of-cthulhu-7-th-edition-system-documentation","lang":"en","priority":0}}}} {"name":"La Llamada de Cthulhu 7ª Edición [es]","pages":[{"name":"Documentación del sistema","type":"text","_id":"wCgaTtRQ8e9ov3Of","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Documentación del sistema para la versión 0.10.X

    \n

    Este documento es una descripción en progreso del sistema CoC7. No es un tutorial sobre cómo usar FoundryVTT.

    \n

    Necesitarás uno de los siguientes elementos para jugar el juego:

    \n
      \n
    • Manual del Guardián de la 7ª edición de La Llamada de Cthulhu de EDGE/Chaosium
    • \n
    • Caja de Inicio de la 7ª edición de La Llamada de Cthulhu de EDGE/Chaosium
    • \n
    • Reglas de Inicio Rápido de la 7ª edición de La Llamada de Cthulhu de EDGE/Chaosium
    • \n
    \n

    El sistema automatiza la mayoría de las tareas y reglas regulares asociadas con la ejecución de un juego.

    \n

    Varias secciones de las hojas de personaje tienen información emergente que aparece después de dos segundos; este retardo se puede cambiar en las opciones.

    \n

    Esta documentación se puede abrir en Opciones del Juego -> Ayuda y Documentación -> Consulte el manual del sistema CoC7.

    \n

    Cambios recientes

    \n

    Para ver la lista completa de cambios, consulta el registro de cambios en GitHub.

    \n
      \n
    • @UUID[.7EIwdnPaf88lnA3J]{Sistema de identificación CoC} - Se establece etiquetas en documentos, por ejemplo, i.skill.dodge para encontrar habilidades de Esquivar en los actores.
    • \n
    • Asistente de Investigador - Se utiliza elementos de identificación CoC para crear investigadores.
    • \n
    • @UUID[.wCgaTtRQ8e9ov3Of#resumen-de-opciones]{Reglas Pulp} - Se implementa una regla opcional de Pulp Cthulhu para ignorar la edad al calcular la velocidad de movimiento.
    • \n
    • @UUID[.nwLzdFw9VfuloSPN]{Efectos activos} - Se agrega soporte para dados de bonificación/penalización al lanzar desde las hojas de personaje del actor.
    • \n
    \n

    Secciones de descripción a continuación

    \n

    Si es la primera vez, se recomienda leer también las siguientes secciones en esta página.

    \n

    Foundry VTT se basa en actores y objetos. Este módulo incluye varios actores y objetos específicos del sistema, y algunos ejemplos se pueden encontrar en los compendios del sistema incluidos.

    \n
      \n
    • @UUID[.wCgaTtRQ8e9ov3Of#resumen-de-actor]{Resumen de actor}
    • \n
    • @UUID[.wCgaTtRQ8e9ov3Of#resumen-de-objetos]{Resumen de objetos}
    • \n
    • @UUID[.wCgaTtRQ8e9ov3Of#resumen-de-opciones]{Resumen de opciones}
    • \n
    • @UUID[.wCgaTtRQ8e9ov3Of#menú-de-escenas-de-la-llamada-de-cthulhu]{Resumen de menú de escenas}
    • \n
    • @UUID[.wCgaTtRQ8e9ov3Of#atajos-de-teclado-y-ratón]{Atajos de teclado y ratón}
    • \n
    • @UUID[.YEMXMawcEfdtxWmF]{Creación de tu primer investigador}
    • \n
    • @UUID[.DoUY8DHlkmnVTlJ5]{Creación de personaje}
    • \n
    \n

    Cómo utilizar el sistema

    \n
      \n
    • @UUID[.nwLzdFw9VfuloSPN]{Efectos activos} - Un efecto activo modificará una característica(s), atributo(s), habilidad(es) del actor.
    • \n
    • @UUID[.2qE8SqTgHQPtDd9k]{Importador de actores}
    • \n
    • Tipo de Actor: Personaje (POR HACER)
    • \n
    • Tipo de Actor: Contenedor (POR HACER)
    • \n
    • Tipo de Actor: Criatura (POR HACER)
    • \n
    • Tipo de Actor: PNJ (POR HACER)
    • \n
    • Creador de enlaces de chat (POR HACER)
    • \n
    • Modo de creación de personajes (POR HACER)
    • \n
    • @UUID[.uxecQMrkmmzDbz3G]{Combate} (POR HACER)
    • \n
    • Fase de desarrollo (POR HACER)
    • \n
    • @UUID[.72wfKKZQNKCPcMqd]{Tipos de Objetos} (POR HACER)
    • \n
    • @UUID[.91QlqUCNziC6rNW0]{Tipo de Item: Arquetipo} (POR HACER)
    • \n
    • @UUID[.zXDVUmUPwz9Jd0E3]{Tipo de Item: Libro} (POR HACER)
    • \n
    • @UUID[.pp7jp7iMNdTKwK8E]{Tipo de Item: Persecuciones}
    • \n
    • Tipo de Item: Item (POR HACER)
    • \n
    • @UUID[.EenUE4RD07LSkQsd]{Tipo de Item: Ocupación}
    • \n
    • @UUID[.qgPBzkndBqCvMO7P]{Tipo de Item: Configuración}
    • \n
    • @UUID[.HMsnfFt14ZdIshp6]{Tipo de Item: Habilidad} (POR HACER)
    • \n
    • Tipo de Item: Hechizo (POR HACER)
    • \n
    • Tipo de Item: Estado (POR HACER)
    • \n
    • Tipo de Item: Talento (POR HACER)
    • \n
    • Tipo de Item: Arma (POR HACER)
    • \n
    • @UUID[.zi5N2FLi4pkFJA3o]{Herramienta de Creación de Enlaces}
    • \n
    • @UUID[.B7ZphTmxIrLP1kCl]{Enlaces} (POR HACER)
    • \n
    • Macros (POR HACER)
    • \n
    • Tiradas (POR HACER)
    • \n
    • @UUID[.Uyh0MRcLVeszfVcP]{Cordura} (POR HACER)
    • \n
    • Iniciar Descanso (POR HACER)
    • \n
    • Ganancia de EXP (POR HACER)
    • \n
    \n

    Resumen de actor

    \n
      \n
    • Personaje - Un personaje completo, generalmente un investigador. [Ejemplo de Personaje]
    • \n
    • Contenedor - Un contenedor de inventario. [Ejemplo de Contenedor]
    • \n
    • Criatura - Un personaje más simple, adecuado para criaturas. [Ejemplo de Criatura]
    • \n
    • PNJ - Un personaje más simple, adecuado para PNJ. [Ejemplo de PNJ]
    • \n
    \n

    Resumen de objetos

    \n
      \n
    • Arquetipo - Un conjunto de habilidades y otras estadísticas que implementan un arquetipo de Pulp Cthulhu. Estos no activan la automatización en el sistema. [Ejemplo de Arquetipo]
    • \n
    • Libro - Un tomo arcano que puede contener hechizos y mejoras para el personaje.
    • \n
    • Item - Un equipo o herramienta.
    • \n
    • Ocupación - Un conjunto de habilidades y otras estadísticas que implementan una ocupación de Call of Cthulhu. [Ejemplo de Ocupación]
    • \n
    • Configuración - Un conjunto de configuraciones predeterminadas para la creación de personajes, criaturas o PNJ. [Ejemplo de Configuración]
    • \n
    • Habilidad - Una habilidad con un porcentaje base y algunas etiquetas. [Ejemplo de Habilidad]
    • \n
    • Hechizo - Un hechizo mágico.
    • \n
    • Estado - Una condición de fobia o manía. [Ejemplo de Manía]
    • \n
    • Talento - Un poder especial para Pulp Cthulhu. Estos no activan la automatización en el sistema. [Ejemplo de Talento]
    • \n
    • Arma - Un objeto con estadísticas de arma (esto incluye ataques desarmados). [Ejemplo de Arma]
    • \n
    \n

    Resumen de opciones

    \n

    Haz clic en la pestaña Opciones y luego, bajo el encabezado Opciones del juego, haz clic en Configurar ajustes.

    \n

    Haz clic en Configuraciones del Sistema

    \n
      \n
    • Reglas Variantes/Opcionales - Aquí puedes activar reglas individuales de Pulp Cthulhu y otras reglas opcionales.
    • \n
    • Configuraciones de Iniciativa - Configuraciones adicionales para la regla opcional de iniciativa.
    • \n
    • Configuraciones de Tiradas - Opciones predeterminadas para las tiradas.
    • \n
    • Configuraciones de Tarjetas de Chat - Configura los mensajes de chat.
    • \n
    • Configuraciones de Escena - Configuraciones de Escena.
    • \n
    • Configuraciones de Arte del Juego - Esto te permite establecer un ícono y mensaje de pausa personalizados.
    • \n
    • Configuraciones de Hoja - Esto te permite cambiar las configuraciones de la hoja de personaje y el CSS opcional.
    • \n
    • Configuraciones de Armas - Configuraciones de Armas.
    • \n
    • Configuraciones de Desarrollador y Depuración - Estas configuraciones pueden afectar tu mundo cuando se lanzan nuevas actualizaciones, así que úsalas solo en mundos de prueba.
    • \n
    • Configuraciones de Tabla de Tiradas - Cuando se realizan tiradas de cordura, el sistema puede realizar automáticamente una tirada por un episodio de locura. Puedes ver ejemplos en los compendios de Tablas de Tiradas de Cordura.
    • \n
    \n

    Menú de escenas de La Llamada de Cthulhu

    \n

    Para acceder a este menú, necesitarás tener una escena activa que se puede crear en el Directorio de Escenas. Estas opciones solo están disponibles para el Guardián.

    \n
      \n
    • Herramientas del Guardián\n
        \n
      • Fase de Desarrollo: Cuando está activado, los jugadores pueden realizar tiradas de mejora para sus habilidades marcadas.
      • \n
      • Modo de Creación de Personajes: Cuando está activado, los jugadores pueden distribuir puntos entre sus habilidades.
      • \n
      • Ganancia de EXP: Cuando está activado, una habilidad se marcará para mejorar después de una tirada exitosa.
      • \n
      • Enviar una tirada ficticia a los jugadores: Al hacer clic, los jugadores verán una tirada privada ficticia del Guardián.
      • \n
      • Iniciar Descanso: Al hacer clic, elige personajes para realizar un descanso y tirar por ganancias de EXP.
      • \n
    • \n
    • ¡Tirar!: Se utiliza para tirar 1d100 con un umbral, dificultad y dados de bonificación o penalización.
    • \n
    • Crear enlace: Crea un enlace de tirada para que los jugadores hagan clic.
    • \n
    \n

    Atajos de teclado y ratón

    \n

    Hay muchos elementos en las hojas que activan una tirada de dados al hacer clic. Por lo general, se muestra un diálogo para solicitar al usuario una dificultad y un posible bono o penalización. Este comportamiento se modifica con los siguientes controles:

    \n
      \n
    • Haz clic derecho en cualquier elemento tirable para incluirlo en una tirada opuesta. Mientras la tarjeta esté abierta, todas las tiradas hechas\ncon clic derecho se añadirán a la tirada opuesta.
    • \n
    • Alt + Clic derecho en cualquier elemento tirable para incluirlo en una tirada combinada.
    • \n
    • Shift + Clic izquierdo en un elemento tirable hará una tirada sin solicitar dificultad o bono/penalización.
    • \n
    • Ctrl + Clic izquierdo en un elemento tirable creará una solicitud de tirada. Solo disponible para el Guardián.
    • \n
    • Alt + Clic izquierdo en la cordura solicitará al jugador la pérdida mínima y máxima de cordura.
    • \n
    \n\n
    ","markdown":""},"sort":0},{"name":"Efectos","type":"text","_id":"nwLzdFw9VfuloSPN","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Efectos

    \n

    El sistema permite la creación de Efectos Activos.\nUn efecto activo modificará las características, atributos o habilidades de un actor.\nLos efectos pueden crearse como un @UUID[.B7ZphTmxIrLP1kCl]{enlace} utilizando la @UUID[.zi5N2FLi4pkFJA3o]{herramienta de creación de enlaces} o directamente en la hoja de personaje haciendo clic en el botón.

    \n

    Pestaña de Efectos

    \n

    Los efectos se mostrarán en las pestañas de efectos (icono entre Transfondo y botón de Notas del GM) en la hoja de personaje.

    \n

    \"pestaña

    \n

    Los efectos se dividen en 4 categorías para PC:

    \n
      \n
    • Temporales: estos son efectos con duración.
    • \n
    • Pasivos: estos son efectos permanentes.
    • \n
    • Inactivos: estos son efectos desactivados.
    • \n
    • Estado: estos son efectos utilizados y creados por el sistema (estado de heridas, propenso, loco...). Estos efectos no incluyen cambios.
    • \n
    \n

    Para NPC/Criaturas, solo verás 2 secciones: efectos activos e inactivos.\nCuando un efecto no está inactivo, los cambios correspondientes se aplicarán al actor.

    \n

    Creación de efectos

    \n

    Puedes crear efectos haciendo clic en el botón "+ Añadir".\nEsto abrirá la ventana de creación de efectos.\nEsta ventana tiene 3 pestañas.

    \n

    Pestaña de Detalles

    \n

    \"Pestaña

    \n

    Pestaña de Duración

    \n

    \"Pestaña

    \n

    Pestaña de Cambios

    \n

    \"Pestaña

    \n

    Esta última pestaña incluirá todos los cambios realizados en la hoja de personaje.

    \n

    Cambios

    \n

    Un efecto incluye una lista de cambios. Cada cambio debe abordarse con la ruta del sistema correspondiente.\nLos cambios disponibles son:

    \n
      \n
    • Características:\n
        \n
      • Fuerza:\n
          \n
        • system.characteristics.str.value
        • \n
        • system.characteristics.str.bonusDice
        • \n
      • \n
      • Constitución:\n
          \n
        • system.characteristics.con.value
        • \n
        • system.characteristics.con.bonusDice
        • \n
      • \n
      • Tamaño:\n
          \n
        • system.characteristics.siz.value
        • \n
        • system.characteristics.siz.bonusDice
        • \n
      • \n
      • Destreza:\n
          \n
        • system.characteristics.dex.value
        • \n
        • system.characteristics.dex.bonusDice
        • \n
      • \n
      • Apariencia:\n
          \n
        • system.characteristics.app.value
        • \n
        • system.characteristics.app.bonusDice
        • \n
      • \n
      • Inteligencia:\n
          \n
        • system.characteristics.int.value
        • \n
        • system.characteristics.int.bonusDice
        • \n
      • \n
      • Poder:\n
          \n
        • system.characteristics.pow.value
        • \n
        • system.characteristics.pow.bonusDice
        • \n
      • \n
      • Educación:\n
          \n
        • system.characteristics.edu.value
        • \n
        • system.characteristics.edu.bonusDice
        • \n
      • \n
    • \n
    • Atributos:\n
        \n
      • Suerte:\n
          \n
        • system.attribs.lck.value
        • \n
        • system.attribs.lck.bonusDice
        • \n
      • \n
      • Cordura:\n
          \n
        • system.attribs.san.value
        • \n
        • system.attribs.san.bonusDice
        • \n
      • \n
      • Movimiento:\n
          \n
        • system.attribs.mov.value
        • \n
      • \n
      • Corpulencia:\n
          \n
        • system.attribs.build.value
        • \n
      • \n
      • Bono de Daño:\n
          \n
        • system.attribs.db.value
        • \n
      • \n
      • Armadura:\n
          \n
        • system.attribs.armor.value
        • \n
      • \n
    • \n
    • Atributos derivados. Solo el valor máximo de esos atributos debe modificarse. Esos cambios se aplican después de que se hayan realizado todos los demás cambios. Si ese atributo está en modo automático, se volverá a calcular con los cambios de características anteriores antes de que se vea afectado su valor.\n
        \n
      • Puntos de vida:\n
          \n
        • system.attribs.hp.max
        • \n
      • \n
      • Cordura:\n
          \n
        • system.attribs.san.max
        • \n
      • \n
    • \n
    • Habilidades. ¡Las habilidades se identifican por sus nombres completos y distinguen mayúsculas!\n
        \n
      • Encanto\n
          \n
        • system.skills.Encanto.value
        • \n
        • system.skills.Encanto.bonusDice
        • \n
      • \n
      • Combatir (Pelea)\n
          \n
        • system.skills.Combatir (Pelea).value
        • \n
        • system.skills.Combatir (Pelea).bonusDice
        • \n
      • \n
    • \n
    \n\n
    ","markdown":""},"sort":1},{"name":"Importador de actores","type":"text","_id":"2qE8SqTgHQPtDd9k","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Importador de actores

    \n

    Puedes utilizar el importador de actores para importar varios bloques de PNJ/Criaturas desde aventuras y utilizando el exportador JSON de The Dholes House

    \n

    Para abrir el importador de actores, abre el directorio de Actores y haz clic en Importador de actores en la parte inferior de la barra lateral, o en una escena activa, haz clic en Importador de Actores.

    \n

    Resumen

    \n

    Si es la primera vez, se recomienda que también leas las siguientes secciones.

    \n
      \n
    • Personaje No Jugador (PNJ) / Criatura
    • \n
    • JSON del Importador de actores de The Dhole's House
    • \n
    \n

    Personaje No Jugador (PNJ) / Criatura

    \n

    \"\"

    \n
      \n
    1. Selecciona PNJ o Criatura

    2. \n
    3. El sistema debería convertir el bloque de personaje de una edición anterior a la 7ª

    4. \n
    5. Selecciona los idiomas del bloque de personaje

    6. \n
    7. Al agregar habilidades, objetos, hechizos y armas, el sistema puede intentar encontrar elementos en tu mundo con el mismo nombre. Puedes seleccionar el orden en que se buscan los segundos.

      \n

      Objetos: Desde tu directorio de objetos

      \n

      Mundo: Desde tus compendios de mundo

      \n

      Módulos: Desde tus compendios de módulos

      \n

      Sistema: Desde los compendios del sistema proporcionados con este sistema

    8. \n
    9. Se proporciona un diseño de ejemplo aquí. Puedes copiar esto en tu portapapeles si deseas editarlo o pegar el texto de una aventura.

    10. \n
    \n

    Haz clic en Importar y se creará un actor en el directorio de Actores en la carpeta de Personajes Importados. Cualquier texto que no se haya entendido se almacenará en las notas del Guardián.

    \n

    JSON del Importador de actores de The Dhole's House

    \n

    \"\"

    \n
      \n
    1. JSON del Importador de actores de The Dhole's House

    2. \n
    3. Al agregar habilidades, objetos, hechizos y armas, el sistema puede intentar encontrar elementos en tu mundo con el mismo nombre. Puedes seleccionar el orden en que se buscan los segundos.

      \n

      Objetos: Desde tu directorio de objetos

      \n

      Mundo: Desde tus compendios de mundo

      \n

      Módulos: Desde tus compendios de módulos

      \n

      Sistema: Desde los compendios del sistema proporcionados con este sistema

    4. \n
    \n

    Busca tu archivo JSON. Una vez seleccionado, se mostrará el nombre y la imagen. Haz clic en Importar para crear el actor en el directorio de Actores en la carpeta de Personajes Importados.

    \n

    Por defecto, la imagen se almacenará en una carpeta llamada "dhole-image" en tu mundo. Esto se puede cambiar haciendo clic en la pestaña Configuración del Juego, luego, bajo el encabezado Configuración del Juego, haciendo clic en Configurar Configuraciones y haciendo clic en Configuración del Sistema.

    \n\n
    ","markdown":""},"sort":2},{"name":"Creación de personajes","type":"text","_id":"DoUY8DHlkmnVTlJ5","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Creación de personajes

    \n

    El sistema incluye algunos compendios listos para que los personalices. Estos se restablecen cada vez que actualizas o instalas el sistema, por lo que se recomienda que los copies en tu propio compendio y los edites según sea necesario.

    \n

    Habilidades

    \n

    En esta sección, crearás o editarás @UUID[.HMsnfFt14ZdIshp6]{habilidades}.

    \n
      \n
    1. Ve a los paquetes de compendios.

    2. \n
    3. Haz clic en Crear Compendio.

      \n
        \n
      • Dale un nombre a tu compendio (por ejemplo, Mis Habilidades).
      • \n
      • Selecciona Objeto como Tipo de Entidad.
      • \n
    4. \n
    \n

    Usar habilidades existentes

    \n
      \n
    1. Abre el compendio Habilidades.
    2. \n
    3. Arrastra cualquier habilidad que desees personalizar a tu nuevo compendio.
    4. \n
    \n

    Crear nuevas habilidades

    \n
      \n
    1. Ve al directorio de Objetos.

    2. \n
    3. Haz clic en Crear objeto.

      \n
        \n
      • Dale un nombre a la habilidad.
      • \n
      • Establece Tipo como Habilidad.
      • \n
    4. \n
    \n

    Configuración

    \n

    @UUID[.qgPBzkndBqCvMO7P]{Configuraciones} son conjuntos predefinidos de habilidades y una forma de generar las características (esto puede ser mediante el lanzamiento de dados o asignando una cierta cantidad de puntos, por ejemplo). Una vez creada una configuración, se puede utilizar en la creación de varios personajes.

    \n
      \n
    1. Ve al directorio de Objetos.

    2. \n
    3. Haz clic en Crear objeto.

      \n
        \n
      • Dale un nombre a la configuración.
      • \n
      • Establece Tipo como Configuración.
      • \n
    4. \n
    5. Define la configuración para establecer los parámetros básicos para un tipo de personaje.

      \n
        \n
      • Puedes añadir una descripción textual en la pestaña Descripción.
      • \n
      • Si haces clic en el icono, puedes seleccionar uno nuevo.
      • \n
      • En la pestaña Detalles, puedes:\n
          \n
        • Seleccionar las Épocas de Cthulhu donde esta configuración es válida.
        • \n
        • Definir las secciones de biografía y sus nombres (haz clic en el + para añadir secciones de biografía adicionales).
        • \n
        • Arrastrar elementos predeterminados como [Golpe].
        • \n
        • Mostrar/Ocultar la pestaña Características con la casilla de verificación Habilitar características.
        • \n
      • \n
      • La pestaña Características te permite definir la fórmula para lanzar los dados de cada característica.
      • \n
      • La pestaña Habilidades te permite definir el conjunto predeterminado de habilidades arrastrando elementos de tipo habilidad al área de Habilidades comunes.
      • \n
    6. \n
    \n

    Ocupaciones

    \n

    Una @UUID[.EenUE4RD07LSkQsd]{ocupación} ayuda a definir el trasfondo del personaje, piensa en ello como la definición del conjunto de habilidades ocupacionales (aquellas donde el personaje puede gastar sus puntos de ocupación) más la definición de cómo calcular la cantidad de puntos de ocupación disponibles. Finalmente, la ocupación también permite definir el mínimo y el máximo de Crédito para un personaje con esta ocupación.

    \n

    Ten en cuenta que el conjunto de habilidades ocupacionales no necesita ser fijo, el sistema permite configurar la ocupación para que, cuando se arrastre a una hoja de personaje, dé la opción de seleccionar una o más habilidades de una lista cerrada, o incluso añadir un número predefinido de habilidades para seleccionar de todas las disponibles.

    \n

    El proceso de creación de la ocupación es el siguiente:

    \n
      \n
    1. Ve al directorio de Objetos.

    2. \n
    3. Haz clic en Crear objeto.

      \n
        \n
      • Dale un nombre a la ocupación.
      • \n
      • Establece Tipo como Ocupación.
      • \n
    4. \n
    5. Define la ocupación para seleccionar las características relevantes y las habilidades de ocupación.

      \n
        \n
      • Puedes añadir una descripción textual en la pestaña Descripción y definir la Fuente.
      • \n
      • Si haces clic en el icono, puedes seleccionar uno nuevo.
      • \n
      • En la pestaña Detalles, puedes:\n
          \n
        • Seleccionar el Tipo de Ocupación.

        • \n
        • Definir las características utilizadas para calcular los puntos de ocupación; puedes marcar las características que desees y definir el multiplicador. Para aquellas marcadas como Opcionales, el jugador deberá elegir una en el momento de la creación.

          \n

          Por ejemplo, si una ocupación utiliza EDU * 2 + (FUE o DEX) * 2, debes seleccionar Educación y poner 2 en el Multiplicador sin marcar Opcional, y luego para Fuerza y Destreza, debes marcar ambas, marcar Opcional en ambas, y poner 2 en el Multiplicador en ambas.

        • \n
        • Finalmente, deberás definir los valores Mínimo y Máximo para la habilidad Calificación Crediticia de esta ocupación.

        • \n
      • \n
      • La pestaña Habilidades te permite seleccionar las habilidades de ocupación arrastrando elementos del Tipo habilidad a las diferentes secciones. Una ocupación típica tiene 8 habilidades más la habilidad Calificación Crediticia.\n
          \n
        • La sección Habilidades comunes incluye las habilidades de ocupación predeterminadas que no se pueden cambiar.
        • \n
        • La sección Grupos de Habilidades Opcionales permite añadir grupos (puedes crear varios) de habilidades para que el jugador elija. Una vez que haces clic en el signo +, se crea un grupo y puedes definir el Número a Elegir (número de habilidades para seleccionar) y crear un conjunto de habilidades disponible para la selección arrastrándolas al grupo.
        • \n
        • Finalmente, la sección Habilidades adicionales te permite ingresar un número de habilidades que el jugador puede elegir de las restantes habilidades disponibles.
        • \n
      • \n
    6. \n
    \n

    Creación de un Personaje Jugador

    \n

    Puedes crear un Personaje Jugador creando el actor y completando la correspondiente Hoja de Personaje en blanco, pero es mucho más fácil si has creado previamente una configuración y una ocupación (ver arriba). Si has creado ambos, el proceso para crear el Personaje Jugador es el siguiente:

    \n
      \n
    1. Ve al directorio de Actores.

    2. \n
    3. Haz clic en Crear actor.

      \n
        \n
      • Dale un nombre al actor.
      • \n
      • Establece Tipo como Personaje.
      • \n
    4. \n
    5. Arrastra y suelta un objeto del Tipo Configuración (por ejemplo, PJ 1920s, PJ Pulp, PJ Actual,...) en la hoja para hacer la configuración básica utilizando la configuración definida en el objeto. Esto suele incluir lanzar las características o establecer sus valores con el sistema de puntos, y establecer un conjunto predeterminado de habilidades correspondientes a la configuración dada.

    6. \n
    7. Arrastra y suelta un ítem Tipo Ocupación en la hoja, esto probablemente implicará seleccionar algunas habilidades de un conjunto reducido o de las restantes. Esto calculará los puntos intereses particulares y puntos de ocupación disponibles y asignará la parte de los puntos de ocupación para alcanzar el valor mínimo de Crédito de la ocupación seleccionada.

    8. \n
    9. En el menú del Guardián a la izquierda, haz clic en Herramientas del Guardián, si este menú no está disponible, debes tener una escena activa que se puede crear en la pestaña de Escenas.

    10. \n
    11. En el nuevo submenú, haz clic en Modo de Creación de Personajes. Debería aparecer una nueva pestaña llamada Desarrollo en las hojas de personaje.

    12. \n
    13. Haz clic en la pestaña de Desarrollo de los personajes.

    14. \n
    15. La primera columna de puntos es para tus habilidades ocupacionales, estas se pueden alternar haciendo clic en ellas.

      \n
        \n
      • Si has habilitado la regla de arquetipos de Pulp, tendrás un segundo punto para alternar eso.
      • \n
    16. \n
    17. Distribuye los puntos de ocupación y de intereses particulares en la pestaña de desarrollo teniendo en cuenta que cada habilidad tiene 5 columnas:

      \n
        \n
      1. La primera es el porcentaje básico de la habilidad.
      2. \n
      3. La segunda es para colocar los puntos de interés personal durante la creación del personaje.
      4. \n
      5. La tercera solo está disponible para las habilidades de ocupación (marcadas con un círculo oscuro antes del nombre de la habilidad) y se usa para asignar los puntos de ocupación.\n
          \n
        • Si has habilitado la regla de arquetipos de Pulp, tendrás una cuarta columna para ingresar tus puntos de arquetipo aquí.
        • \n
      6. \n
      7. La cuarta o quinta columna debería estar inicialmente en blanco y es donde aparecerán los puntos de experiencia (también puedes asignar puntos aquí si estás jugando con un personaje experimentado).
      8. \n
      9. La columna final es de solo lectura y muestra el valor final calculado para la habilidad (la suma de las demás columnas).
      10. \n
    18. \n
    \n\n\n
    ","markdown":""},"sort":3},{"name":"Persecuciones","type":"text","_id":"pp7jp7iMNdTKwK8E","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Persecuciones

    \n

    Crear una nueva persecución

    \n

    Para crear una persecución, crea un nuevo objeto de tipo persecución.

    \n

    Solo el Guardián debería tener acceso a ese objeto.

    \n

    Una persecución está compuesta por una sucesión de ubicaciones. Cada ubicación puede estar separada por un obstáculo (barrera o peligro).

    \n

    Un peligro siempre se atravesará, pero fallar la tirada te ralentizará.

    \n

    Una barrera te detendrá hasta que la superes o la destruyas.

    \n

    \"\"

    \n

    La hoja de persecución está dividida en 3 partes.

    \n
      \n
    • Un encabezado donde verás información sobre la ubicación actual una vez que comienza una persecución.
    • \n
    • Una pestaña de configuración de persecución. Esto te permitirá crear y seguir la persecución.
    • \n
    • Una lista de participantes donde puedes configurar a tus participantes. Esta pestaña no funcionará después de que comience la persecución.
    • \n
    \n

    Agregar un participante.

    \n

    Para agregar un participante, haz clic en el signo más (+) en la lista de participantes o arrastra un actor o una ficha.

    \n

    Ten en cuenta que no es obligatorio tener un actor asociado con un participante. Esto permite una configuración rápida o agregar a alguien sobre la marcha a la persecución.

    \n

    Para poder agregar una ficha a la persecución, se han agregado algunos controles a las hojas de personajes y PNJ:

    \n

    \"\"

    \n

    Esos íconos proporcionarán información adicional.

    \n
      \n
    1. Indica que este actor es un actor sintético (instancia de un actor).
    2. \n
    3. Indica que los datos del actor no están vinculados. Cada instancia de ese actor tiene sus propiedades.
    4. \n
    5. Indica que este actor tiene una ficha asociada. Puedes arrastrar y soltar esto en una ubicación de persecución o en la lista de participantes.
    6. \n
    7. Indica que los datos del actor están vinculados a un actor en el directorio de actores.
    8. \n
    \n

    Aquí puedes configurar a tu participante. Arrastrar un actor desde la barra lateral de Actores establecerá los detalles. Ten en cuenta que puedes seleccionar una iniciativa y una tirada de velocidad diferentes. Esto no es estándar en CoC, pero permite configurar persecuciones inusuales (persecución futurista en la matriz, persecución en los Sueños...).

    \n

    \"\"

    \n
      \n
    1. Arrastrar el signo de interrogación sobre una ficha establecerá los detalles en esa ficha.
    2. \n
    \n

    Una vez que arrastras un actor o seleccionas una ficha, puedes configurar al participante.

    \n

    \"\"

    \n
      \n
    1. Haciendo clic en esto cambiarás el lado del participante de presa a perseguidor.
    2. \n
    3. Haciendo clic en esto desencadenarás una tirada de velocidad. Ten en cuenta que no se necesitarán entradas de jugador ni se mostrará ninguna carta de tirada.
    4. \n
    \n

    Lista de participantes

    \n

    \"\"

    \n

    Aquí puedes ver la lista de participantes en la persecución.

    \n
      \n
    1. Desencadenará una tirada de persecución. Esto creará una carta de tirada si el participante tiene un actor asociado (no es un falso). Mantener presionada la tecla Shift avanzará rápidamente y resolverá la carta.
    2. \n
    3. Esto eliminará la tirada de velocidad si la hay, o eliminará al participante.
    4. \n
    \n

    \"\"

    \n
      \n
    1. Carta de tirada esperando ser resuelta en el chat.
    2. \n
    3. Tirada de velocidad realizada. Puedes hacer clic en esto para ver los detalles.
    4. \n
    5. Para restablecer la tirada de velocidad.
    6. \n
    \n

    \"\"

    \n

    Configuración de persecución

    \n

    \"\"

    \n

    Para configurar una persecución, ingresa los números iniciales de ubicaciones y haz clic en Inicializar.

    \n

    \"\"

    \n

    La persecución está inicializada, puedes ajustar algunas opciones. Las ubicaciones en blanco son ubicaciones iniciales y no se pueden modificar.

    \n
      \n
    1. Esta es la pista de persecución, la ubicación en blanco son ubicaciones iniciales. Las ubicaciones en gris son ubicaciones reales de persecución.
    2. \n
    3. Seleccionar esto incluirá en la persecución a participantes que de otra manera habrían podido escapar.
    4. \n
    5. Seleccionar esto incluirá en la persecución a participantes que habrían sido excluidos por ser demasiado lentos.
    6. \n
    7. Este es el número de ubicaciones entre la presa más lenta y el perseguidor más rápido.
    8. \n
    9. Esta es la ubicación inicial de la presa más rápida. Establecer esto en 0 la colocará justo antes del comienzo. 1 lo colocará al principio. -1 lo colocará 1 ubicación antes del inicio.
    10. \n
    11. Esto animará la ficha cuando se mueva a una nueva ubicación.
    12. \n
    \n

    Configuración de ubicaciones

    \n

    Durante la configuración o durante la persecución, puedes seleccionar una ubicación para modificarla.

    \n

    Las ubicaciones de inicio (blancas) no se pueden modificar durante la configuración.

    \n

    Para modificar una ubicación, selecciónala haciendo clic en ella. Esto mostrará los detalles de la ubicación en la parte superior de la hoja.

    \n

    \"\"

    \n
      \n
    1. Esto agregará un participante. Si la persecución ha comenzado, el participante estará en esa ubicación. Si la persecución no ha comenzado, el participante se agregará en la pista de inicio.
    2. \n
    3. Esto eliminará la ubicación. Una ubicación debe estar vacía para ser eliminada.
    4. \n
    5. Puedes arrastrar esto y soltarlo en una escena. Esto establecerá las coordenadas para esa ubicación. Un pin rojo indica que las coordenadas se han establecido. Haciendo clic derecho en un pin rojo restablecerá sus coordenadas. Si las coordenadas están establecidas y un participante con una ficha asociada entra en esa ubicación, su ficha se moverá a esa ubicación.
    6. \n
    7. Agregar una nueva ubicación.
    8. \n
    9. Ubicación activa.
    10. \n
    \n

    Configuración de obstáculos.

    \n

    Puedes agregar obstáculos antes y después de una ubicación. Puedes prellenar un obstáculo con un nombre, una tirada asociada y algunas penalizaciones.

    \n

    \"\"

    \n
      \n
    1. Alterna esto para agregar daño a una barrera.
    2. \n
    3. Puntos de vida de la barrera.
    4. \n
    5. Costo de acción de movimiento en caso de fallo.
    6. \n
    7. Tirada utilizada para pasar la ubicación. Cuando está en rojo, el actor activo no tiene la tirada asociada.
    8. \n
    \n

    Ir directo a la persecución.

    \n

    Cuando estés listo, puedes ir directo a la persecución. Si no todos los participantes tienen una tirada de velocidad, esto desencadenará una advertencia y no te dejará comenzar.

    \n

    \"\"

    \n
      \n
    1. Pista de iniciativa. El participante activo está rodeado en naranja.
    2. \n
    3. Pista de persecución. Ubicación y participante activos. Puedes arrastrar y soltar participantes desde la pista de persecución para moverlos libremente. Puedes arrastrar un nuevo actor o ficha directamente a la pista de persecución. Esto abrirá la ventana de importación y agregará ese participante a la persecución. En algunos casos (por ejemplo, nueva presa más lenta que el participante más lento) todas las acciones de movimiento se recalcularán.
    4. \n
    5. Una barrera.
    6. \n
    7. Un peligro.
    8. \n
    \n

    Flujo de resolución de obstáculos

    \n

    \"\"

    \n
      \n
    1. Cuando el participante activo enfrenta un obstáculo, puedes desencadenar el flujo de resolución de obstáculos haciendo clic en esto. Esto abrirá una carta en el chat donde el Guardián y el jugador pueden interactuar para pasar ese obstáculo. Todos los cambios realizados en la carta pueden reflejarse en el obstáculo en la persecución al final del flujo.
    2. \n
    \n

    Aquí tienes un ejemplo de flujo resumido:

    \n

    \"\"\n\"\"\n\"\"\n\"\"

    \n

    Una vez que el flujo está completo, todos los cambios se envían a la persecución.

    \n

    \"\"

    \n

    Esta ronda está terminada. Todos los actores han gastado sus acciones de movimiento. Puedes hacer clic en Siguiente ronda para proceder.

    \n

    Controles de participantes.

    \n

    \"\"

    \n

    Puedes modificar o mover a un participante usando el botón de controles en su carta.

    \n
      \n
    1. Estos 3 íconos permitirán eliminar, modificar y activar a un participante.
    2. \n
    3. Acción de movimiento. Hay un amarillo disponible, el gris se consume, el rojo es un déficit.
    4. \n
    5. Esto controlará el bono de tu participante. Puede sacar una pistola o recibir dados de bonificación.
    6. \n
    7. Controles de acción de movimiento. Aquí puedes aumentar o disminuir las acciones de movimiento.
    8. \n
    9. Controles de movimiento. Puedes moverte hacia atrás o hacia adelante. Puedes ayudar a un aliado (consumir una acción y dar un dado de bonificación) o tomar un enfoque cauteloso.
    10. \n
    \n\n
    ","markdown":""},"sort":4},{"name":"Sistema de CoC ID","type":"text","_id":"7EIwdnPaf88lnA3J","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Sistema de CoC ID

    \n

    Varios documentos de FoundryVTT tienen un botón de identificación accesible para los roles de usuario "Game Master" y "Asistente".

    \n

    ID de Sistema (CoC ID): Configurar la ID de una habilidad a i.skill.dodge permitirá al sistema tratar esa habilidad como Esquivar en la tarjeta de combate.

    \n

    Variantes de Cthulhu: También puedes controlar la época para la que es una habilidad; el manejo de animales tiene diferentes valores base según la época.

    \n

    Prioridad de ID del Sistema: El sistema revisará los documentos de tu mundo y luego los compendios, devolviendo el documento con la prioridad más alta.

    \n

    Objeto

    \n

    i.setup.example - El Asistente de Investigador usará estos; necesitas elegir una sola época para asignarlo.

    \n

    i.archetype.example - El Asistente de Investigador usará estos si la regla opcional de arquetipo está habilitada.

    \n

    i.occupation.example - El Asistente de Investigador los listarán.

    \n

    i.skill.example - Las configuraciones, el Asistente de Investigador y la creación de Actores usarán estos si coinciden con la época.

    \n

    Tablas dinámicas

    \n

    rt..backstory-example - Si la parte de ejemplo coincide con el título del trasfondo en kebab case, proporcionará una opción de tirada en la sección de trasfondo del Asistente de Investigador.

    \n\n
    ","markdown":""},"sort":5},{"name":"Combate","type":"text","_id":"uxecQMrkmmzDbz3G","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Combate

    \n

    Iniciar el combate

    \n

    En la escena, selecciona las fichas involucradas en el combate, haz clic derecho en una de ellos y en la esquina inferior derecha, haz clic en el icono Conmutar estado de combate. Esto añadirá los actores correspondientes a las fichas seleccionadas en la pestaña de Encuentros de combate.\nLuego, en la pestaña de Encuentros de combate, puedes comenzar el combate.

    \n

    El rastreador de combate te ayudará a seguir tanto las iniciativas de los diferentes actores como las rondas de combate.

    \n

    Iniciativa

    \n

    En Foundry, los turnos de combate están ordenados por iniciativa, y en el sistema, esto suele ser la DES del actor. Entonces, para establecer las iniciativas, haz clic en el ícono de dados de cada actor o simplemente en el ícono con 3 personas en la parte superior izquierda de la pestaña de combate para establecer todas a la vez.

    \n

    Junto a cada actor en la pestaña de combate, hay 3 íconos:

    \n
      \n
    • Un objetivo: para sacar el arma (esto sumará 50 a la iniciativa de ese personaje)
    • \n
    • Un ojo cruzado: para mostrar/ocultar el actor correspondiente en la lista.
    • \n
    • Una calavera: para marcar a un personaje como derrotado y omitirlo en los turnos siguientes.
    • \n
    \n

    Seleccionar objetivo / objetivos

    \n

    Durante el turno de un actor, para atacar, lo primero que debes hacer es seleccionar el objetivo u objetivos. Esto se puede hacer haciendo clic derecho en la ficha del objetivo y luego haciendo clic en el ícono objetivo (abajo a la izquierda). O activar el modo objetivo desde la barra de herramientas izquierda y hacer clic en los objetivos.

    \n

    Luego, abre la hoja del actor y haz clic en el nombre del objeto que se usará para el ataque. Esto puede ser desde un disparo único de un arma de largo alcance, hasta algún ataque cuerpo a cuerpo o una maniobra.\nEste clic iniciará el flujo de ataque en el chat, la tarjeta del chat permitirá seleccionar más opciones del ataque según el tipo de ataque.

    \n
    \n

    Consejo: si haces clic derecho en el ícono de la hoja del rastreador de combate, esto lo mostrará como una pequeña ventana y luego podrás ver tanto la ventana del rastreador de combate como los resultados del combate en el chat.

    \n
    \n

    Combate Cuerpo a Cuerpo

    \n

    Maniobras

    \n

    Aún no implementadas.

    \n

    Disparo Único

    \n

    Automatizar Disparo

    \n

    Objetivos Múltiples

    \n

    Recargar

    \n\n
    ","markdown":""},"sort":6},{"name":"Hoja de atajos","type":"text","_id":"PkM93agHPo9znEok","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Hoja de atajos

    \n

    Reglas generales

    \n

    La mayoría de los componentes de la hoja se pueden hacer clic para activar una tirada/lanzamiento.\nComo regla general, puedes modificar esas solicitudes de la siguiente manera:

    \n
      \n
    • Shift acelerará la solicitud saltando el diálogo de opciones.
    • \n
    • Ctrl creará un enlace en el chat con esa solicitud para pedir a los jugadores hacer la tirada.
    • \n
    \n

    Cordura

    \n\n\n\n\n\n\n\n\n
    ComandoAcción
    Ctrl+Shift + clic izquierdo en CORSolicita una tirada de Cordura al personaje
    Ctrl+Shift+Alt + clic izquierdo en CORSolicita una tirada de Cordura al personaje y define la pérdida de cordura
    \n

    Tiradas Combinadas/Opuestas

    \n\n\n\n\n\n\n\n\n
    ComandoAcción
    Clic derecho en un elementoInicia/Añade una tirada opuesta
    Alt + Clic derecho en un elementoInicia/Añade una tirada combinada
    \n

    Otros

    \n\n\n\n\n\n\n\n
    ComandoAcción
    cMuestra la hoja del personaje propio
    \n\n
    ","markdown":""},"sort":7},{"name":"Creando tu primer investigador","type":"text","_id":"YEMXMawcEfdtxWmF","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Configuración inicial de objetos

    \n

    El sistema viene con algunos compendios listos para que los personalices. Estos se restablecen cada vez que actualizas o instalas el sistema, por lo que se recomienda que los copies en tu propio compendio y los edites según sea necesario.

    \n

    Esta página crea un investigador utilizando los compendios proporcionados; si estás listo para personalizar por completo tu personaje, lee en su lugar @UUID[.DoUY8DHlkmnVTlJ5]{Creación de personajes}.

    \n

    Habilidad

    \n

    Haz clic en la pestaña de Compendios y luego, bajo el encabezado de Objetos, abre las Habilidades (CoC7). Aquí encontrarás las habilidades que se muestran en las hojas de personaje disponibles en el sitio web de Chaosium.

    \n
      \n
    • Sin ajuste: No se pueden asignar puntos personales de habilidad.
    • \n
    • Sin ganancia de EXP: No marcas esta habilidad para mejorar en caso de éxito.
    • \n
    • Especialización: Esta habilidad forma parte de un grupo como Pilotar o Pelear.
    • \n
    • Infrecuente: Esta habilidad es poco común y se puede ocultar automáticamente en la hoja de personaje.
    • \n
    • Forzada: Esta habilidad se puede forzar.
    • \n
    • Combate: Establece automáticamente Especialización, Combate y el nombre de la especialización a Combate.
    • \n
    • Armas de fuego: Establece automáticamente Especialización, Combate y el nombre de la especialización a Armas de fuego.
    • \n
    \n

    Puedes crear un nuevo Compendio de objetos y copiar las habilidades que necesitas, lo que te permitirá editarlas. También puedes crear nuevas habilidades creando nuevos objetos de Habilidad (Haz clic en la pestaña del directorio de Objetos y luego en Crear objeto, dale un nombre, por ejemplo, Jardinería, y establece el Tipo como Habilidad).

    \n

    Configuración

    \n

    Una vez que hayas configurado tus habilidades, crea una Configuración, tienes un ejemplo en el compendio de Ejemplos de objetos [Ejemplo de configuración de los años 20].

    \n

    Las Configuraciones te permiten estandarizar las habilidades, objetos, secciones de biografía y características con las que comienzan los investigadores.

    \n

    Haz clic en la pestaña del directorio de Objetos y luego en Crear objeto, dale un nombre, por ejemplo, Nueva Configuración del Investigador y establece el Tipo como Configuración.

    \n

    En la pestaña de Descripción, haz clic en el botón para obtener un editor y establecer la descripción.

    \n

    En la pestaña de Detalles, haz clic en Secciones de transfondo para agregar cualquier sección que necesites del paso de Crear un transfondo en la creación del investigador. Haz clic en la pestaña de Compendios y luego, abre el objeto de Ejemplos de objetos (CoC7) y arrastra [Puñetazo] a la configuración.

    \n

    En la pestaña de Características, puedes personalizar cómo se lanzan/compran las características del investigador.

    \n

    En la pestaña de Habilidades, puedes arrastrar las habilidades que tendrá el investigador.

    \n

    Todas las hojas de actores y objetos tienen una pestaña que los Guardianes pueden usar para almacenar notas; solo los usuarios que estén configurados como Guardianes pueden ver esta pestaña.

    \n

    Ocupación

    \n

    Las ocupaciones te permiten establecer cuántos puntos de ocupación, el rango de Crédito y las habilidades con las que comienza el investigador. Aquí tienes un ejemplo del compendio de Ejemplos de objetos [Ejemplo de Ocupación].

    \n

    Haz clic en la pestaña del directorio de Objetos y luego en Crear objetos, dale un nombre, por ejemplo, Conductor, y establece el Tipo como Ocupación.

    \n

    En la pestaña de Descripción, haz clic en el botón para obtener un editor y establecer la descripción.

    \n

    En la pestaña de Detalles, puedes establecer el cálculo de puntos de ocupación y el Crédito mínimo/máximo.

    \n

    En la pestaña de Habilidades, puedes arrastrar habilidades desde los Compendios o el directorio de Objetos a las habilidades comunes. También puedes configurar múltiples grupos de habilidades opcionales decidiendo cuántas el investigador debe seleccionar.

    \n

    Creando tu primer investigador

    \n

    Personaje

    \n

    Para completar tu personaje, necesitas tener una escena activa que se puede crear en el directorio de Escenas.

    \n

    Haz clic en la pestaña del directorio de Actores y luego en Crear objeto, dale un nombre, por ejemplo, Nuevo Investigador y establece el Tipo como Personaje.

    \n

    Puedes arrastrar la configuración creada anteriormente al personaje para la configuración inicial o arrastra este ejemplo [Ejemplo de Configuración de los años 20].

    \n

    A continuación, arrastra la ocupación creada anteriormente al personaje o arrastra este ejemplo [Ejemplo de Ocupación].

    \n

    En la barra lateral izquierda, selecciona Herramientas del Guardián y luego selecciona el modo de Creación de personajes.

    \n

    En la hoja de personaje, selecciona la pestaña de Desarrollo. El primer punto indica que esta es una habilidad de ocupación; la primera columna de números es el valor base, el siguiente es donde asignas puntos personales, el tercero es para puntos de ocupación, el cuarto es para la experiencia ganada durante la fase de mejora del investigador y la última columna es el porcentaje total de habilidad.

    \n

    Puedes ver cuántos puntos personales y de ocupación has gastado hasta ahora. Una vez que hayas gastado todos tus puntos, debes desactivar el modo de Creación de personajes para permitir que los personajes vean sus Puntos de vida, Puntos de magia, Cordura y Suerte.

    \n\n
    ","markdown":""},"sort":8},{"name":"Objetos","type":"text","_id":"72wfKKZQNKCPcMqd","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Objetos

    \n

    El sistema soporta muchos tipos diferentes de objetos, desde objetos simples o armas hasta habilidades o la configuración completa de un tipo de personaje. Puedes ver ejemplos en el compendio que viene con el sistema.

    \n

    Para crear cualquiera de los tipos de objetos, siempre comienzas de la misma manera:

    \n
      \n
    1. Ve al directorio de Objetos.
    2. \n
    3. Haz clic en Crear objeto\n
        \n
      • Dale un nombre al objeto.
      • \n
      • Selecciona el Tipo del objeto (ver más abajo para detalles sobre cada uno).
      • \n
      • Selecciona la carpeta de destino (opcional).
      • \n
    4. \n
    \n

    Y todos tienen una estructura común, así que en todos ellos puedes:

    \n
      \n
    • Agregar una descripción textual en la pestaña Descripción o directamente en la ventana principal si no tiene pestañas.
    • \n
    • Hacer clic en el ícono, puedes elegir o cargar uno nuevo.
    • \n
    \n

    Tipos de objetos disponibles

    \n
      \n
    • @UUID[.91QlqUCNziC6rNW0]{Tipo de objeto: Arquetipo}
    • \n
    • @UUID[.zXDVUmUPwz9Jd0E3]{Tipo de objeto: Libro}
    • \n
    • @UUID[.pp7jp7iMNdTKwK8E]{Tipo de objeto: Persecuciones}
    • \n
    • Tipo de objeto: Objeto
    • \n
    • @UUID[.EenUE4RD07LSkQsd]{Tipo de objeto: Ocupación}
    • \n
    • @UUID[.qgPBzkndBqCvMO7P]{Tipo de objeto: Configuración}
    • \n
    • @UUID[.HMsnfFt14ZdIshp6]{Tipo de objeto: Habilidad}
    • \n
    • Tipo de objeto: Hechizo
    • \n
    • Tipo de objeto: Estado
    • \n
    • Tipo de objeto: Talento
    • \n
    • Tipo de objeto: Arma
    • \n
    \n\n
    ","markdown":""},"sort":9},{"name":"Tipo de objeto: Arquetipo","type":"text","_id":"91QlqUCNziC6rNW0","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Tipo de objeto: Arquetipo Pulp

    \n

    Los arquetipos se utilizan en juegos Pulp. Proporcionan bonificaciones a habilidades y características.

    \n

    Una vez creado el objeto Arquetipo, se mostrará la Hoja de Arquetipo.\nAllí puedes definir los detalles del Arquetipo:

    \n
      \n
    • En la pestaña Detalles puedes:\n
        \n
      • Asignar la cantidad de Puntos Adicionales
      • \n
      • Asignar la cantidad de Talentos Pulp
      • \n
      • Definir las Características Básicas y si quieres Usar una tirada de dados para generarlas.
      • \n
      • Definir las Ocupaciones Sugeridas
      • \n
      • Definir los Rasgos Sugeridos
      • \n
    • \n
    • En la pestaña Habilidades puedes:\n
        \n
      • Arrastrar las habilidades correspondientes a este Arquetipo
      • \n
    • \n
    \n\n
    ","markdown":""},"sort":10},{"name":"Tipo de objeto: Libro","type":"text","_id":"zXDVUmUPwz9Jd0E3","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Tipo de objeto: Libro

    \n

    El sistema tiene un tipo especial de objeto para los libros con el fin de poder definir la Pérdida de Cordura, si es un Tomo de los Mitos o un libro de ocultismo, qué Hechizos o Habilidades proporciona, y, por supuesto, una descripción y la imagen del libro.

    \n\n
    ","markdown":""},"sort":11},{"name":"Tipo de objeto: Ocupación","type":"text","_id":"EenUE4RD07LSkQsd","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Tipo de objeto: Ocupación

    \n

    Una ocupación ayuda a definir el trasfondo del personaje, piensa en ello como la definición del conjunto de habilidades ocupacionales (aquellas en las que el personaje puede gastar sus puntos de ocupación), además de la definición de cómo calcular la cantidad de puntos de ocupación disponibles. Finalmente, la ocupación también permite definir el crédito mínimo y máximo para un personaje con esta ocupación.

    \n

    Ten en cuenta que el conjunto de habilidades ocupacionales no necesita ser fijo; el sistema permite configurar la ocupación para que, al arrastrarla a una hoja de personaje, ofrezca la opción de seleccionar una o más habilidades de una lista cerrada, o incluso agregar un número predefinido de habilidades para elegir entre todas las disponibles.

    \n
      \n
    1. Ve al directorio de objetos.

    2. \n
    3. Haz clic en Crear objeto.

      \n
        \n
      1. Dale un nombre a la configuración, por ejemplo, Bibliotecario.
      2. \n
      3. Establece el Tipo como Ocupación.
      4. \n
    4. \n
    5. En la pestaña Descripción, puedes cambiar el nombre, el icono, el nombre del libro fuente y la descripción.

    6. \n
    7. En la pestaña Detalles puedes controlar:

      \n
        \n
      1. Seleccionar el Tipo de Ocupación.

      2. \n
      3. Definir las características utilizadas para calcular los puntos de ocupación. Puedes marcar las características que desees y definir el multiplicador; para aquellas marcadas como Opcional, el jugador tendrá que elegir una en el momento de la creación.

        \n
          \n
        1. Por ejemplo, si una ocupación utiliza EDU * 2 + (FUE o DES) * 2, debes seleccionar Educación y poner 2 en el Multiplicador sin marcar Opcional, y luego para Fuerza y Destreza, debes marcar Opcional en ambas, y poner 2 en el Multiplicador en ambas.
        2. \n
        3. Finalmente, tendrás que definir el valor mínimo y máximo para la habilidad Crédito para esta ocupación.
        4. \n
      4. \n
      5. Nombres de las secciones de la biografía (haz clic en el + para agregar secciones adicionales de biografía), esto se puede reemplazar con una biografía de bloque único en la configuración.

      6. \n
      7. En Objetos, puedes arrastrar y soltar objetos y armas predeterminados.

      8. \n
    8. \n
    9. En la pestaña Habilidades, puedes arrastrar y soltar habilidades en varias secciones. Una ocupación típica tiene 8 habilidades más la habilidad Crédito.

      \n
        \n
      1. Las Habilidades comunes incluyen las habilidades ocupacionales predeterminadas que no se pueden cambiar.
      2. \n
      3. La sección de Grupos de habilidades a elegir permite agregar grupos (puedes crear varios) de habilidades para que el jugador elija. Una vez que hagas clic en el signo +, se crea un grupo y puedes definir la Cantidad a elegir (número de habilidades para seleccionar) y crear un conjunto de habilidades disponibles para la selección arrastrándolas al grupo.
      4. \n
      5. Finalmente, las Habilidades adicionales te permiten ingresar un número de habilidades que el jugador puede elegir entre el resto de las habilidades disponibles.
      6. \n
    10. \n
    \n\n
    ","markdown":""},"sort":12},{"name":"Tipo de objeto: Configuración","type":"text","_id":"qgPBzkndBqCvMO7P","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Tipo de objeto: Configuración

    \n

    Las configuraciones son conjuntos predefinidos de habilidades y una forma de generar las características (esto puede ser lanzando dados o asignando una cierta cantidad de puntos, por ejemplo).

    \n
      \n
    1. Ve al directorio de Objetos

    2. \n
    3. Haz clic en Crear objeto

      \n
        \n
      1. Asigna un nombre a la configuración, por ejemplo, Configuración de 1920
      2. \n
      3. Establece el Tipo en Configuración
      4. \n
    4. \n
    5. En la pestaña Descripción, puedes cambiar el nombre, icono, nombre del libro fuente y descripción.

    6. \n
    7. En la pestaña Detalles, puedes controlar:

      \n
        \n
      1. Mostrar / Ocultar la pestaña de Características con la casilla de Habilitar características.
      2. \n
      3. Para qué versión de La Llamada de Cthulhu es esto, esto se puede filtrar en compendios.
      4. \n
      5. Nombres de las secciones de la biografía (haz clic en el + para agregar secciones adicionales de biografía), esto se puede reemplazar con una biografía de bloque único en la configuración.
      6. \n
      7. Bajo objetos, puedes arrastrar y soltar objetos y armas predeterminados.
      8. \n
    8. \n
    9. En la pestaña Características, puedes establecer una compra de puntos o tirar características y la fórmula.

    10. \n
    11. En la pestaña Habilidades, bajo habilidades comunes, puedes arrastrar y soltar habilidades predeterminadas.

    12. \n
    \n\n
    ","markdown":""},"sort":13},{"name":"Tipo de objeto: Habilidad","type":"text","_id":"HMsnfFt14ZdIshp6","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Tipo de objeto: Habilidad

    \n

    Una habilidad se lanzará durante las pruebas.

    \n
      \n
    1. Ve al directorio de Objetos

    2. \n
    3. Haz clic en Crear objeto

      \n
        \n
      1. Asigna un nombre a la habilidad, por ejemplo, Arte/Artesanía (Danza)
      2. \n
      3. Establece el Tipo en Habilidad
      4. \n
    4. \n
    5. En la pestaña Descripción, puedes cambiar el nombre, icono, época de Cthulhu (en qué ediciones aparece) y descripción.

      \n
        \n
      1. Sin ajuste - No se pueden asignar puntos personales de habilidad.
      2. \n
      3. Sin ganancia de EXP - No marcas esta habilidad para mejorar en un éxito.
      4. \n
      5. Especialización - Esta habilidad es parte de un grupo como Piloto o Combate.
      6. \n
      7. Infrecuente - Esta habilidad es poco común y se puede ocultar automáticamente en la hoja de personaje.
      8. \n
      9. Forzado - Esta habilidad se puede forzar.
      10. \n
      11. Combate - Establece automáticamente Especialización, Combate y el nombre de la especialización en Combate.
      12. \n
      13. Armas de fuego - Establece automáticamente Especialización, Combate y el nombre de la especialización en Armas de fuego.
      14. \n
    6. \n
    \n\n
    ","markdown":""},"sort":14},{"name":"Enlaces","type":"text","_id":"B7ZphTmxIrLP1kCl","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Enlaces

    \n
      \n
    • Los enlaces son una forma para que el Director de Juego (GM) solicite un lanzamiento (Característica, Atributo, Habilidad, pérdida de COR, Arma).
    • \n
    • Los enlaces pueden contener un efecto activo.
    • \n
    • Los enlaces se crean en el registro de chat. Cuando haces clic en un enlace, se activará una tirada para tu(s) personaje(s) controlado(s)/suplantado(s).
    • \n
    • Los enlaces se pueden incluir en cualquier editor, principalmente en entradas de diario.
    • \n
    • Los enlaces se pueden crear de 5 maneras:\n
        \n
      • Al escribirlo manualmente (lee los detalles a continuación).
      • \n
      • Al hacer CTRL+click en cualquier elemento de la hoja (Característica, Atributo, habilidad, pérdida de COR).
      • \n
      • Al arrastrar un elemento de la hoja (Característica, Atributo, habilidad (+CTRL)) a un editor (entrada de diario).
      • \n
      • Al arrastrar mientras mantienes presionada la tecla CTRL un objeto (habilidad o arma) desde un compendio o un directorio de objetos a un editor. Cuando se crea un enlace de esta manera y se utiliza como GM, si tu personaje controlado no tiene el arma/habilidad, se te pedirá que crees el ítem correspondiente.
      • \n
      • Al usar el compendio incluido escrito por Lozalojo.
      • \n
    • \n
    • Los enlaces se pueden arrastrar desde el registro de chat a un editor.
    • \n
    • Cuando se crea un enlace, se abrirá la ventana de selección de dificultad/sanción. Mantén presionada la tecla SHIFT para omitir ese comportamiento.
    • \n
    • Cuando se crea un enlace, se verificará el modo de lanzamiento. Si el modo de lanzamiento está configurado como 'lanzamiento oculto del GM', el enlace se creará como oculto.
    • \n
    • Cuando se crea un enlace con una dificultad y una sanción, las ventanas de dificultad/sanción no aparecerán.
    • \n
    • Cuando se crea un enlace sin dificultad o sanción, las ventanas de dificultad/sanción aparecerán. Mantener presionada la tecla SHIFT acelerará el lanzamiento (regular/sin sanción).
    • \n
    \n

    Escritura de enlaces

    \n
      \n
    • Los enlaces deben escribirse utilizando la @UUID[.zi5N2FLi4pkFJA3o]{herramienta de creación de enlaces}. La ventana de creación de enlaces es una herramienta para el GM. Se encuentra en la barra lateral izquierda.
    • \n
    \n

    Enlaces para mensajes de chat y editores de hojas (NPC, entradas de diario...).\nEl formato del enlace es @coc7.TIPO_DE_SOLICITUD[OPCIONES]{TEXTO_A_MOSTRAR}

    \n
      \n
    • TIPO_DE_SOLICITUD:\n
        \n
      • sanloss: activa una tirada de COR; al fallar, propondrá deducir la COR correspondiente.
      • \n
      • check: activa una tirada según las opciones.
      • \n
      • item: activa el uso de un arma. Solo se pueden activar elementos del tipo arma.
      • \n
    • \n
    • OPCIONES: [] = opcional, predeterminado\n
        \n
      • sanloss:\n
          \n
        • sanMax: pérdida máxima de COR
        • \n
        • sanMin: pérdida mínima de COR
        • \n
      • \n
      • check:\n
          \n
        • type: tipo de tirada (characteristic, skill, attrib).
        • \n
        • name: nombre de la habilidad/característica/atributo.
        • \n
        • [blind]: forzará una tirada oculta; si no está presente, la tirada dependerá del modo de lanzamiento seleccionado.
        • \n
      • \n
      • todas:\n
          \n
        • [difficulty]: ? (oculta), 0 (regular), + (difícil), ++ (extrema), +++ (crítica).
        • \n
        • [modifier]: -x (x dados de penalización), +x (x dados de bonificación), 0 (sin modificador).
        • \n
        • [icon]: ícono a usar (font awesome, fas fa-dice).
        • \n
      • \n
    • \n
    • TEXT_TO_DISPLAY: Nombre a mostrar; esto es opcional.
    • \n
    \n

    Ejemplos

    \n\n\n\n\n\n\n\n\n\n\n\n\n
    EnlaceResultado
    @coc7.sanloss[sanMax:1D6,sanMin:1,difficulty:++,modifier:-1]{Pérdida de COR Difícil (-1) 1/1D6}
    @coc7.check[type:charac,name:STR,difficulty:+,modifier:-1]{Tirada de FUE Difícil (-1)}
    @coc7.check[type:attrib,name:lck,difficulty:+,modifier:-1]{Tirada de Suerte Difícil (-1)}
    @coc7.check[type:skill,icon:fas fa-arrow-alt-circle-right,name:anthropology,difficulty:+,modifier:-1]{Tirada de Antropología Difícil (-1)} (con ícono)
    @coc7.sanloss[sanMax:1D6,sanMin:1]{Pérdida de COR (-1) 1/1D6} (sin nombre, dificultad ni modificador)
    @coc7.check[type:skill,icon:fas fa-arrow-alt-circle-right,name:anthropology,modifier:+1]{Tirada de Antropología (+1)} (con ícono, sin nombre ni dificultad)
    \n

    Uso de enlaces

    \n
      \n
    • Puedes arrastrar/soltar enlaces desde el chat a las hojas y entre las hojas.
    • \n
    • Puedes arrastrar/soltar un enlace directamente en un token.
    • \n
    • Puedes arrastrar/soltar ítems y habilidades en una entrada de diario mientras mantienes presionada la tecla CTRL, esto creará la tirada correspondiente con dificultad regular y un modificador de 0.
    • \n
    • Puedes crear enlaces en el chat haciendo clic y manteniendo presionada la tecla CTRL desde cualquier hoja (Personaje/PNJ/Criatura) correspondiente a características/suerte/COR/Competencia/arma/Pérdida de COR.\n
        \n
      • Esto abrirá el diálogo de selección de sanción/dificultad. Hacer clic en el enlace generado activará la tirada con todos los parámetros.
      • \n
      • Mantener presionada la tecla Shift no abrirá el diálogo de sanción/dificultad. Hacer clic en el enlace generado abrirá el diálogo de sanción/dificultad y luego activará la tirada.
      • \n
    • \n
    \n\n
    ","markdown":""},"sort":15},{"name":"Herramienta de creación de enlaces","type":"text","_id":"zi5N2FLi4pkFJA3o","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Herramienta de creación de enlaces

    \n

    El sistema incluye una herramienta para ayudarte a crear enlaces fácilmente.\nEstá ubicada en la barra lateral izquierda. Haz clic en el ícono.\nEsta herramienta está disponible solo para el Guardián (GM).

    \n

    \"Herramienta

    \n

    Usando esto, puedes crear @UUID[.B7ZphTmxIrLP1kCl]{enlaces} para tiradas de habilidades, tiradas de cordura, efectos, etc.\nAlternativamente, puedes abrir la herramienta manteniendo presionada la tecla CTRL mientras haces clic en un objeto o una habilidad.

    \n

    Ventana principal

    \n

    Hacer clic en el ícono de la herramienta abrirá una ventana:

    \n

    \"Ventana

    \n

    Aquí puedes seleccionar opciones para tu enlace.

    \n
      \n
    • "Paquetes de compendios" y "Directorio de objetos" te permiten hacer referencia a un objeto desde la carpeta correspondiente.
    • \n
    • "Modificadores" te permite agregar modificadores a tu tirada.
    • \n
    • "Ciego" forzará que el modo de tirada sea ciego.
    • \n
    • "Etiqueta" te permite cambiar la etiqueta de visualización.
    • \n
    • "Icono" te permite elegir un ícono para tu enlace. Los íconos pueden ser:\n
        \n
      • Una referencia a Font Awesome o a game-icons: "fas fa-ankh" o "game-icon game-icon-tentacle-strike".
      • \n
      • Un enlace a una imagen en los datos del sistema o en el núcleo del sistema: "icons/magic/symbols/arrowhead-green.webp".
      • \n
    • \n
    \n

    Si no proporcionas una etiqueta y/o un ícono, se agregará una etiqueta e ícono predeterminados.

    \n

    \"Etiqueta

    \n

    Ventana de efectos

    \n

    Seleccionar efectos abrirá una ventana avanzada donde puedes crear enlaces para @UUID[.nwLzdFw9VfuloSPN]{efectos activos}.\nSelecciona las opciones de la misma manera que lo harías para un efecto regular.

    \n

    Uso de enlaces

    \n
      \n
    • Una vez que tu enlace está creado y es válido, aparecerá en un cuadro blanco en el centro de la ventana.
    • \n
    \n

    \"Enlace

    \n
      \n
    • Ahora estás listo para susurrárselo a tus jugadores, copiarlo en tu portapapeles para agregarlo a tus objetos o entradas de diario o enviarlo al chat.
    • \n
    \n

    \"Enlace

    \n
      \n
    • Cuando un jugador hace clic en un enlace, la acción correspondiente se realizará con su personaje.
    • \n
    • Cuando un Director de Juego hace clic en un enlace, la acción correspondiente se realizará con sus tokens seleccionados.
    • \n
    • Un enlace se puede arrastrar y soltar en entradas de diario, en un token, etc.
    • \n
    \n

    \"Soltar

    \n\n
    ","markdown":""},"sort":16},{"name":"Cordura","type":"text","_id":"Uyh0MRcLVeszfVcP","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Tiradas de Cordura

    \n

    El sistema ha integrado el flujo para las tiradas de cordura y puede manejar tiradas de cordura, realizar un seguimiento de la pérdida de Cordura y realizar tiradas para la locura temporal.

    \n

    Solicitar tiradas de Cordura

    \n
      \n
    • El Guardián puede hacer clic con Ctrl+Shift en la Cordura del personaje para solicitar una Tirada de Cordura para ese personaje.

      \n
        \n
      • Si el Guardián también presiona Alt (manteniendo al mismo tiempo Ctrl+Shift+Alt) mientras hace clic en la Cordura de un personaje, aparecerá un diálogo para introducir la pérdida de cordura si la tirada de cordura es exitosa y el valor cuando la tirada de cordura falla.
      • \n
    • \n
    • Video que muestra el flujo de trabajo de la tirada de cordura

    • \n
    \n\n
    ","markdown":""},"sort":17}],"_id":"35FM7ZOdzC6L2xlj","flags":{"CoC7":{"cocidFlag":{"eras":{},"id":"je..call-of-cthulhu-7-th-edition-system-documentation","lang":"es","priority":0}}}} {"name":"L'Appel de Cthulhu version 7 [fr]","pages":[{"name":"Documentation du système","type":"text","_id":"mEy5Vvny9no32sB0","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Documentation du Système :squid:

    \n

    Vous avez installé Foundry VTT (la version stable, les versions en test sont... en test :)

    \n

    Quelques modules pour commencer

    \n
      \n
    • fr-FR - Core Game: pour avoir la traduction française de Foundry
    • \n
    • Dice so nice!: pour les jets de dés
    • \n
    \n

    Vous passez la langue par défaut à Français dans l'onglet configuration du menu d'accueil.
    \nVous créez votre monde, avec le Call of Cthulhu 7th edition (Unofficial) de Vétérini.
    \nEt vous le lancez.
    \nVous activez vos modules et hop !

    \n

    Premiers paramétrages

    \n

    Une fois dans le monde, dans le menu Paramètres, vous sélectionnez Gestion des modules, puis Système de jeu.
    \nTous les paramètres sont dignes d'intérêt mais:

    \n
      \n
    • les Modificateur de jet et Modificateur de seuil de réussite le sont particulièrement.
    • \n
    • et Changer l'apparence de la fiche
    • \n
    \n

    Ce que l'on peut créer

    \n

    Icône Personnages

    \n
      \n
    • character: personnage PJ
    • \n
    • npc: PNJ
    • \n
    • creature: monstre
    • \n
    • vehicle: véhicule
    • \n
    \n

    Icône Objets

    \n

    Là ça devient ouf:

    \n
      \n
    • item: un objet
    • \n
    • weapon: une arme
    • \n
    • skill: une compétence
    • \n
    • setup: une module de création de perso à glisser/déposer sur votre fiche à la création (embarque les jets de création de caracs, les compétences,...)
    • \n
    • occupation: une occupation (avec ses compétences, son époque, ses points d'occupation, son crédit)
    • \n
    • archetype: un archétype (Pulp)
    • \n
    • book: un livre occulte
    • \n
    • spell: un sort
    • \n
    • talent: un talent (Pulp)
    • \n
    • status: un état... de folie
    • \n
    \n

    Icône Tables

    \n

    :recycle:

    \n

    Outils du gardien (menus spécifiques au système)

    \n

    Ils sont dans votre barre d'outils:

    \n

    \"01\"

    \n
      \n
    • L'icône de dé permet de lancer des dés n'importe quand (en les modifiant si besoin: difficulté, seuil, niveau de compétence).
    • \n
    • L'icône de poulpe donne accès aux outils du Gardien:
    • \n
    \n

    \"02\"

    \n

    De haut en bas:

    \n
      \n
    • Activer la phase de développement (entre séances)
    • \n
    • Activer la phase de création (à la création des persos)
    • \n
    • Importer un personnage depuis un simple texte
    • \n
    • Activer la possibilité des gains d'expérience (en partie)
    • \n
    • Balancer un jet factice aux joueurs dans le chat: un peu d'pression :)
    • \n
    \n

    Les compendiums

    \n

    Pour les utiliser au mieux, 2 choses:

    \n
      \n
    • Installer le module Compendium Folders (qui trie automatiquement les compendium)
    • \n
    • Importer les différents compendium (clic-droit Importer...)
    • \n
    \n

    @UUID[.Txh2Rq0uqiNkQwHH]{Combat}

    \n

    @UUID[.XgRqB95KxAc3lyeB]{Création}

    \n

    @UUID[.nV3LVFViQE8EmLnP]{Créer son premier investigateur}

    \n

    @UUID[.mEy5Vvny9no32sB0]{Documentation du système}

    \n

    @UUID[.gGQh5I6KyTqLYqGS]{Effets}

    \n

    @UUID[.5F222OZBJJ1ytmCs]{Imoirtation de PNJs}

    \n

    @UUID[.gx0OolN3Rzjo0t4A]{Liens}

    \n

    @UUID[.oe93qytA6DKMCLgP]{Objets}

    \n

    @UUID[.iNOVrFGpUVcVLNCM]{Outil de création de Lien}

    \n

    @UUID[.q9nBYjRZvfaZqwVP]{Poursuites}

    \n

    @UUID[.d38sw0oxaRbKDzTg]{Santé Mentale}

    \n

    @UUID[.uqUYiyO1KpLGxKWn]{Système de gestion des ID }

    \n

    @UUID[.pAqjluCfTIzRGC2p]{Tableau des commandes}

    \n

    @UUID[.6wklc7lxtcrluEZF]{Type d'Objet: Archétype}

    \n

    @UUID[.3ETyV0mwesoW0mUQ]{Type d'Objet: Compétence}

    \n

    @UUID[.3T61lGUMJOkACoQX]{Type d'Objet: Livre}

    \n

    @UUID[.vBeZ70E8xTaQyMxa]{Type d'Objet: Occupation}

    \n

    @UUID[.rb4P0sMpVxmxtvtt]{Type d'Objet: Setup}

    \n


    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\\

    \n

    Des éons qu'ils dorment mais Vétérini les a réveillés ! Avec ce système ultime, à vous l'Appel de Cthulhu v7 en version totale: création, progression, SAN, combat, poursuites, ...\nLe MUST have !

    \n\n\n\n\n\n\n\n\n\n\n
    @UUID[.mEy5Vvny9no32sB0#guide-de-lutilisateur-trice]{Guide de l'utilisateur/trice} (en cours)@UUID[.mEy5Vvny9no32sB0#santé-mentale]{Santé Mentale} (à faire)
    @UUID[.mEy5Vvny9no32sB0#tableau-des-commandes]{Tableau des Commandes} (en cours)@UUID[.mEy5Vvny9no32sB0#combat]{Combat} (à faire)
    @UUID[.mEy5Vvny9no32sB0#liens-et-jets]{Liens (pour les jets)} (en cours)@UUID[.mEy5Vvny9no32sB0#poursuites]{Poursuites} (à faire)
    @UUID[.mEy5Vvny9no32sB0#création-de-personnage]{Création de personnage} (à faire)@UUID[.mEy5Vvny9no32sB0#objets]{Objets} (à faire)
    @UUID[.mEy5Vvny9no32sB0#phase-de-progression]{Phase de progression} (à faire)@UUID[.mEy5Vvny9no32sB0#personnages]{Personnages} (à faire)
    \n

    Documentation partagée avec amour et horreur par Toc :squid: https://tentacules.net

    \n

    \"03\"

    \n


    \n
    \n\\

    \n

    Objets

    \n

    item: un objet

    \n

    weapon: une arme

    \n

    skill: une compétence

    \n

    setup: une module de création de perso

    \n

    occupation: une occupation

    \n

    archetype: un archétype (Pulp)

    \n

    book: un livre occulte

    \n

    spell: un sort

    \n

    talent: un talent (Pulp)

    \n

    status: un état... de folie

    \n


    \n
    \n\\

    \n

    Personnages

    \n

    character: personnage PJ

    \n

    C'est ici: Création de personnage.

    \n

    npc: PNJ

    \n

    creature: monstre

    \n

    vehicle: véhicule

    \n\n
    ","markdown":""},"sort":0},{"name":"Effets","type":"text","_id":"gGQh5I6KyTqLYqGS","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":1},{"name":"Importation d'acteurs","type":"text","_id":"5F222OZBJJ1ytmCs","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":2},{"name":"Création de Personnage","type":"text","_id":"XgRqB95KxAc3lyeB","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":3},{"name":"Expérience & évolution","type":"text","_id":"HKvBTFi7PdwjiNyl","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n\n
    ","markdown":""},"sort":4},{"name":"Poursuites","type":"text","_id":"q9nBYjRZvfaZqwVP","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":5},{"name":"Système de gestion des ID ","type":"text","_id":"uqUYiyO1KpLGxKWn","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":6},{"name":"Combat","type":"text","_id":"Txh2Rq0uqiNkQwHH","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":7},{"name":"Tableau des commandes","type":"text","_id":"pAqjluCfTIzRGC2p","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Tableau des Commandes

    \n

    Quasiment tout est cliquable: les caractéristiques, les compétences, les armes, les dégâts, la SAN, la Chance...\nEt en plus:

    \n
      \n
    • combiné avec la touche Shift enfoncée, ça envoie directement le jet dans le chat.
    • \n
    • combiné avec la touche Ctrl [pour le Gardien] enfoncée, ça envoie une demande dans le chat au personnage concerné pour réaliser le jet, après paramétrage du jet par le gardien.
    • \n
    • les 2 combinés, Ctrl+Shift: ça envoie une demande dans le chat au personnage concerné pour réaliser le jet directement.
    • \n
    • et le clic-droit vous emmène vers les jets opposés ou combinés.
    • \n
    \n

    Commun

    \n

    Sur XXX, XXX pouvant être carac, compétence,...

    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    CommandeAction
    Gardien
    clic XXXLance un jet de XXX après paramétrage du jet
    Shift + clic XXXLance un jet de XXX (difficulté ordinaire pas de bonus/malus)
    Ctrl + clic XXXDemande un jet de XXX après paramétrage du jet (dont seuil et difficulté)
    Ctrl+Shift + clic XXXDemande un jet de XXX
    Investigateur
    clic XXXLance un jet de XXX après paramétrage du jet
    Ctrl+Shift ou Shift + clic XXXLance un jet de XXX (difficulté ordinaire pas de bonus/malus)
    Ctrl + clic XXXLance un jet de XXX après paramétrage du jet
    \n

    Santé Mentale

    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    CommandeAction
    Gardien
    clic XXXLance un jet de XXX après paramétrage du jet
    Shift + clic XXXLance un jet de XXX (difficulté ordinaire pas de bonus/malus)
    Ctrl + clic XXXDemande un jet de XXX après paramétrage du jet (dont seuil et difficulté)
    Ctrl+Shift + clic XXXDemande un jet de XXX
    Ctr+Shift+Alt + clic SANDemande un jet de SAN en définissant les pertes de SAN
    Investigateur
    clic XXXLance un jet de XXX après paramétrage du jet
    Ctrl+Shift ou Shift + clic XXXLance un jet de XXX (difficulté ordinaire pas de bonus/malus)
    Ctrl + clic XXXLance un jet de XXX après paramétrage du jet (dont seuil et difficulté)
    \n

    Jets Combinés / Opposés

    \n\n\n\n\n\n\n\n\n\n\n\n\n
    CommandeAction
    clic-droit XXXDébute/ Ajoute le jet à un jet *opposé après paramétrage du jet
    Ctrl+Shift ou Shift + clic-droit XXXDébute/ Ajoute le jet à un jet opposé (difficulté ordinaire pas de bonus/malus)
    Ctrl + clic-droit XXXDébute/ Ajoute le jet à un jet opposé après paramétrage du jet (dont seuil et difficulté)
    Alt + clic-droit XXXDébute/ Ajoute le jet à un jet combiné après paramétrage du jet
    Ctrl+Shift+Alt ou Shift+Alt + clic-droit XXXDébute/ Ajoute le jet à un jet combiné (difficulté ordinaire pas de bonus/malus)
    Ctrl+Alt + clic-droit XXXDébute/ Ajoute le jet à un jet combiné après paramétrage du jet (dont seuil et difficulté)
    \n

    Commandes dans le Chat

    \n\n\n\n\n\n\n\n\n
    CommandeAction
    /cc xxlance un D100 contre une difficulté de xx
    /cbr xx, yylance un D100 contre une difficulté de xx et de yy
    \n\n
    ","markdown":""},"sort":8},{"name":"Créer son premier investigateur","type":"text","_id":"nV3LVFViQE8EmLnP","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":9},{"name":"Objets","type":"text","_id":"oe93qytA6DKMCLgP","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":10},{"name":"Type d'Objet: Archétype","type":"text","_id":"6wklc7lxtcrluEZF","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":11},{"name":"Type d'Objet: Livre","type":"text","_id":"3T61lGUMJOkACoQX","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":12},{"name":"Type d'Objet: Occupation","type":"text","_id":"vBeZ70E8xTaQyMxa","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":13},{"name":"Type d'Objet: Setup","type":"text","_id":"rb4P0sMpVxmxtvtt","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":14},{"name":"Type d'Objet: Compétence","type":"text","_id":"3ETyV0mwesoW0mUQ","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":15},{"name":"Liens","type":"text","_id":"gx0OolN3Rzjo0t4A","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Liens et Jets

    \n

    Toutes ces commandes peuvent être glissées/déposées dans un Article (ou toute zone éditable) en mode modification sauf les modificateurs de seuil !
    \nCe qui peut donner: @coc7.check[type:attribute,name:san,difficulty:1,modifier:-2]

    \n

    \"04\"

    \n

    Voici le fonctionnement: @coc7.TYPE_OF_REQUEST[OPTIONS]{TEXT_TO_DISPLAY}

    \n
      \n
    • TYPE_OF_REQUEST :\n
        \n
      • 'sanloss': test de SAN, si échoué, propose de réduire la SAN.
      • \n
      • 'check': test défini en fonction des options.
      • \n
      • 'item': test d'objet. Seulement pour les objets de type arme.
      • \n
    • \n
    • OPTIONS: [] = optionnel\n
        \n
      • sanloss:\n
          \n
        • sanMax: perte de SAN max
        • \n
        • sanMin: perte de SAN min
        • \n
      • \n
      • check:\n
          \n
        • type: type de jet (caractéristique, compétence, attribut).
        • \n
        • name: nom de caractéristique, compétence, attribut.
        • \n
        • [blind]: jet aveugle, sinon le jet sera du type sélectionné dans le chat.
        • \n
      • \n
      • Tous:\n
          \n
        • [difficulty]: ? (aveugle), 0 (normal), + (difficile), ++ (extrême), +++ (critique).
        • \n
        • [modifier]: -x (x dé malus), +x (x dé bonus), 0 (pas de modificateur).
        • \n
        • [icon]: icône à utiliser (font awesome, fas fa-dice).
        • \n
      • \n
    • \n
    • TEXT_TO_DISPLAY: Texte à afficher, optionnel.
    • \n
    \n

    Par exemple:

    \n
      \n
    • @coc7.sanloss[sanMax:1D6,sanMin:1,difficulty:++,modifier:-1]{Hard San Loss (-1) 1/1D6}
    • \n
    • @coc7.check[type:charac,name:STR,difficulty:+,modifier:-1]{Hard STR check(-1)}
    • \n
    • @coc7.check[type:attrib,name:lck,difficulty:+,modifier:-1]{Hard luck check(-1)}
    • \n
    • @coc7.check[type:skill,icon:fas fa-arrow-alt-circle-right,name:anthropology,difficulty:+,modifier:-1]{Hard Anthropology check(-1)}
    • \n
    • @coc7.check[type:skill,icon:fas fa-arrow-alt-circle-right,name:anthropology,modifier:+1]
    • \n
    \n

    Jet simple: [[/roll 1d10]]{Dégâts}

    \n\n
    ","markdown":""},"sort":16},{"name":"Outil de création de Lien","type":"text","_id":"iNOVrFGpUVcVLNCM","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Création de personnage

    \n

    A la main

    \n
      \n
    1. Vous créez un nouveau Personnage.
    2. \n
    3. Vous passez en mode Création.
    4. \n
    5. Vous déverrouillez la fiche de personnage (clic sur le petit cadenas).
    6. \n
    7. Vous le nommez et remplissez occupation, sexe, âge,...
    8. \n
    9. Vous ajoutez les compétences une par une, et oui, à la mimine, et positionnez les % qui vont bien.
    10. \n
    \n

    Pour plus de facilité, vous pouvez vous créer un Compendium listant toutes les compétences et ainsi vous n'aurez plus à les saisir à chaque fois mais simplement à les glisser/déposer sur votre fiche, en mode Modification.

    \n

    Via une occupation

    \n

    :recycle:

    \n

    Via un setup

    \n

    :recycle:

    \n

    Via import / copie

    \n

    Copie

    \n
      \n
    1. Vous vous créez/avez créé un personnage type, avec compétences.
    2. \n
    3. Vous le copiez (clic droit sur le personnage dans la liste des Personnages, copier).
    4. \n
    5. Et voilà !
    6. \n
    \n

    Import

    \n
      \n
    1. Vous vous créez/avez créé un personnage type, avec compétences.
    2. \n
    3. Vous l'exportez (clic droit sur le personnage dans la liste des Personnages, exporter (le fichier arrive sur votre ordinateur, format json)).
    4. \n
    5. Vous vous rendez dans votre partie, vous créez juste le nouveau personnage sans rien y mettre (juste le nom).
    6. \n
    7. Vous importez le fichier précédemment exporté (clic droit sur le personnage dans la liste des Personnages, importer).
    8. \n
    9. Et voilà !
    10. \n
    \n

    Vous pouvez ensuite le modifier à façon en passant en mode Création.

    \n\n
    ","markdown":""},"sort":17},{"name":"Santé Mentale","type":"text","_id":"d38sw0oxaRbKDzTg","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":18}],"_id":"tdakyzTVOQsAMdSm","flags":{"CoC7":{"cocidFlag":{"eras":{},"id":"je..call-of-cthulhu-7-th-edition-system-documentation","lang":"fr","priority":0}}}} \ No newline at end of file diff --git a/templates/apps/coc-id-actor-update-items.hbs b/templates/apps/coc-id-actor-update-items.hbs new file mode 100644 index 00000000..9f4f959d --- /dev/null +++ b/templates/apps/coc-id-actor-update-items.hbs @@ -0,0 +1,47 @@ +
    +
    +

    {{localize 'CoC7.ActorCoCIDItemsWarning'}}

    +

    {{localize 'CoC7.ActorCoCIDItemsWhich'}}

    +
      +
    • {{localize 'CoC7.ActorCoCIDItemsRules1' era=era}}
    • + {{#unless isEn}} +
    • {{localize 'CoC7.ActorCoCIDItemsRules2' lang=lang}}
    • + {{/unless}} +
    • {{localize 'CoC7.ActorCoCIDItemsRules3'}}
    • +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    +
    + + +
    +
    diff --git a/templates/apps/coc-id-editor.hbs b/templates/apps/coc-id-editor.hbs index 05ddb575..e9e10d3b 100644 --- a/templates/apps/coc-id-editor.hbs +++ b/templates/apps/coc-id-editor.hbs @@ -59,8 +59,8 @@
    Info +
    -
    {{localize 'CoC7.CoCIDFlag.documents-in-world' count=worldDuplicates}}{{#if warnDuplicateWorldPriority}} {{localize 'CoC7.CoCIDFlag.error.duplicate'}}{{/if}} @@ -69,10 +69,10 @@ {{#each usedEras as |era|}} {{/each}} - Priority - Lang - Link - Folder + {{localize 'CoC7.CoCIDFlag.priority'}} + {{localize 'CoC7.language'}} + {{localize 'DOCUMENT.Document'}} + {{localize 'DOCUMENT.Folder'}} {{#each worldDocumentInfo}} @@ -88,7 +88,7 @@ {{priority}} {{lang}} {{{link}}} - {{folder}} + {{{folder}}} {{/each}} @@ -100,10 +100,10 @@ {{#each usedEras as |era|}} {{/each}} - Priority - Lang - Link - Folder + {{localize 'CoC7.CoCIDFlag.priority'}} + {{localize 'CoC7.language'}} + {{localize 'DOCUMENT.Document'}} + {{localize 'COMPENDIUM.Name'}} {{#each compendiumDocumentInfo}} @@ -119,7 +119,7 @@ {{priority}} {{lang}} {{{link}}} - {{folder}} + {{{folder}}} {{/each}} From fcedd5ea94ce5033907a437a407ac6e3e9a9fee7 Mon Sep 17 00:00:00 2001 From: snap01 <43982555+snap01@users.noreply.github.com> Date: Mon, 9 Sep 2024 22:55:09 +0100 Subject: [PATCH 24/35] Update CHANGELOG.md --- .github/CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index 57c85a96..c9a4f474 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -12,7 +12,12 @@ Happy gaming ! When not specified, all changes were made by @castanhocorreia, @HavlockV, and @snap01. - Add placeholders for SAN loss to localization, thanks to @lozanoje #1587 +- Allow weapon ranges to be based on characteristics - Explicitly set FoundryVTT v12 version of grid values, thanks to @Vicnasc #1564 +- Fix compendium filtering +- Workaround for DsN 5.0.0 to 5.0.5 bonus dice, replace bronze dice withl bronze01 dice +- Update CoC ID functionality as per ticket #1584 +- Update token art if default and the actor image is changed - Update to French localization, thanks to @vonv #1580 and #1581 - Update to Japanese localization, thanks to @doumoku #1586 and #1591 - Update to Spanish localization, thanks to @lozanoje #1587 From 9bbfaa719ace5e022e7e20dccbbe820ec02c0441 Mon Sep 17 00:00:00 2001 From: vonv <44206935+vonv@users.noreply.github.com> Date: Tue, 10 Sep 2024 12:22:27 +0200 Subject: [PATCH 25/35] Update fr.json --- lang/fr.json | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/lang/fr.json b/lang/fr.json index 4bbc1762..2278493e 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -427,6 +427,7 @@ "CoC7.Apply": "Appliquer", "CoC7.NewBioSectionName": "Nouvelle Section", + "CoC7.FightingSpecializationName": "Combat. Au Contact", "CoC7.UnarmedWeaponName": "Sans arme", "CoC7.FirearmSpecializationName": "Combat. Arme à feu", @@ -607,6 +608,8 @@ "CoC7.IntCheck": "Test d'intelligence", "CoC7.NoSanLoss": "Pas de perte de SAN", "CoC7.SANLoss": "Perte de SAN", + "CoC7.SANLossPass": "réussi", + "CoC7.SANLossFail": "manqué", "CoC7.SanityCheckPerformed": "Vous êtes exposé à une situation traumatisante.", "CoC7.InvoluntaryActionPerformed": "Vous avez perdu votre sang froid quelques instants.", "CoC7.SanityLost": "Perte de santé mentale", @@ -1327,6 +1330,17 @@ "CoC7.CoCIDBatch.title": "Automate du System ID (CoC ID)", "CoC7.CoCIDBatch.summary": "Le système CoC7 a ajouté le System ID (CoC ID). Cela permet d'identifier les items FoundryVTT, les compétences par exemple. Cette page vous permettra de positionner l'identifiant pour des '{type}' existant(e)s. Le System ID doit utiliser les traductions anglaises pour pouvoir supporter le portage dans d'autres langues.", + "CoC7.ActorCoCIDItemsBest": "CoC ID: remplacement des Acteur Item", + "CoC7.ActorCoCIDItemsWarning": "Cette action ne peut être annulée, sauvegardez votre monde avant de mettre à jour vos Acteurs", + "CoC7.ActorCoCIDItemsWhich": "Vérifier l'Item CoC ID dans lescompendiums actifs, compendiums du monde, et le répertoire des Items en remplaçant celui de Acteur Items en fonction du meilleur choix basé sur ces règles", + "CoC7.ActorCoCIDItemsRules1": "L'Item doit être affecté à la période correcte \"{era}\" ou ne pas en avoir d'affectée", + "CoC7.ActorCoCIDItemsRules2": "Vérifier l'Item en fonction du language \"{lang}\" ou \"English\" si une traduction n'existe pas", + "CoC7.ActorCoCIDItemsRules3": "Sélectionner l'Item avec la plus haute priorité", + "CoC7.ActorCoCIDItemsSceneTokens": "Mettre à jour tous les tokens sur cette scène", + "CoC7.ActorCoCIDItemsUnlinkedToken": "Mettre à jour les Acteurs orphelins dans le répertoire pour chaque Token en premier", + "CoC7.ActorCoCIDItemsActorSheets": "Mettre à jour les feuilles de personnages ouvertes", + "CoC7.ActorCoCIDItemsActorDirectory": "Mettre à jour tous les Acteurs du répertoire", + "CoC7.ActorCoCIDItemsUpdate": "Mise à jour", "CoC7.TokenCreationRoll.Title": "Aléatoire détecté", "CoC7.TokenCreationRoll.Prompt": "Ce token a des caractéristiques ou compétences aléatoires.
    Que souhaitez-vous faire ?", @@ -1335,7 +1349,6 @@ "CoC7.TokenCreationRoll.Rolled": "Caractéristiques et compétences {name} jetées", "CoC7.TokenCreationRoll.Averaged": "Caractéristiques et compétences {name} moyennées", - "CoC7.RealRollDecaderPlaceholderName": "10's", "CoC7.Temporary": "Temporaire", @@ -1350,5 +1363,6 @@ "CoC7.ErrorRollAlreadyCompleted": "Ce jet a déjà été fait", "CoC7.ErrorNoActorPermission": "Vous n'êtes pes le Proriétaire de cet Acteur", "CoC7.ErrorCombinedRollsRequireSingleActor": "Vous ne pouvez pas avoir plus d'un acteur dans un jet combiné", - "CoC7.ErrorOpposedRollsLimitedToTwoActors": "Une carte de jet opposé demandes deux acteurs" + "CoC7.ErrorOpposedRollsLimitedToTwoActors": "Une carte de jet opposé demandes deux acteurs", + "CoC7.PauseName": "Time Stop" } From 8c7f0ef89410c95f3fc23003a856d2f9452e9964 Mon Sep 17 00:00:00 2001 From: Maximilian Visotschnig Date: Fri, 13 Sep 2024 00:39:59 +0200 Subject: [PATCH 26/35] Update de.json CoC7.ActorCoCIDItems* are maybe a bit clumsy translated. CoC7.PauseName is maybe not specific enough translated. --- lang/de.json | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/lang/de.json b/lang/de.json index 1eee07dc..38c32171 100644 --- a/lang/de.json +++ b/lang/de.json @@ -135,6 +135,7 @@ "CoC7.Initiative": "Initiative", "CoC7.Cast": "Ausführen", + "CoC7.CastHidden": "Versteckt ausführen", "CoC7.SanityCost": "Stabilitätskosten", "CoC7.PowerCost": "Manakosten", "CoC7.HitPointsCost": "Trefferpunktekosten", @@ -433,10 +434,19 @@ "CoC7.RangedSpecializationName": "Fernkampf", "CoC7.DriveSpecializationName": "Fahren", "CoC7.PilotSpecializationName": "Steuern", - "CoC7.AnySpecName": "Eine", + "CoC7.LanguageSpecializationName": "Sprache", + "CoC7.AnySpecName": "Beliebig", "CoC7.BoutOfMadnessName": "Anfall von Wahnsinn", "CoC7.InsanityName": "Wahnsinn", + "CoC7.SkillNameHandgun": "Handfeuerwaffe", + "CoC7.SkillNameRifle": "Gewehr", + "CoC7.SkillNameShotgun": "Schrotflinte", + "CoC7.SkillNameRifleShotgun": "Gewehr/Flinte", + "CoC7.SkillNameSmb": "Maschinenpistole", + "CoC7.SkillNameMachinGun": "Maschinengewehr", + "CoC7.SkillNameLaunch": "Abfeuern", + "CoC7.NewSkillName": "neue Fertigkeit", "CoC7.AddSkill": "Fertigkeit hinzufügen", "CoC7.CleanSkillList": "Fertigkeitenliste bereinigen", @@ -598,6 +608,8 @@ "CoC7.IntCheck": "Ideenwurf", "CoC7.NoSanLoss": "Kein Stabilitätsverlust", "CoC7.SANLoss": "Stabilitätsverlust", + "CoC7.SANLossPass": "Geschafft", + "CoC7.SANLossFail": "Misslungen", "CoC7.SanityCheckPerformed": "Du warst einem traumatischen Ereignis ausgesetzt.", "CoC7.InvoluntaryActionPerformed": "Du hast für einen Moment die Selbstbeherrschung verloren.", "CoC7.SanityLost": "verlorene Stabilitätspunkte", @@ -971,6 +983,7 @@ "CoC7.German": "Deutsch", "CoC7.Polish": "Polnisch", "CoC7.TraditionalChinese": "Traditionelles Chinesisch", + "CoC7.Japanese": "Japanisch", "CoC7.SelectSourceLanguage": "Wähle die Originalsprache aus", "CoC7.ImportedUnnamedCharacter": "Importiere unbenannten Charakter", "CoC7.CreatedImportedCharactersFolder": "Erzeuge \"Importierte Charaktere\" Ordner", @@ -1118,6 +1131,8 @@ "SETTINGS.PulpRulesHint": "BETA IMPLEMENTIERUNGSPHASE:
    Erlaube die Verwendung der Pulp-Cthulhu Regeln (Archetypen, Talente, Lebensenergie)", "SETTINGS.developmentRollForLuck": "Glückspunkte wiederherstellem", "SETTINGS.developmentRollForLuckHint": "Jeder Spieler darf in der Entwicklungsphase einen Verbesserungswurf auf seine Glückspunkte machen", + "SETTINGS.allowMythosHardenedTitle": "Mythos-gestählt", + "SETTINGS.allowMythosHardenedHint": "Erlaube die verringerung von Stabilitätsverlusten bei Mythos-Gestähltheit.", "SETTINGS.displayPlayerNameOnSheet": "Spielernamen auf Charakterblatt darstellen", "SETTINGS.DisregardAmmo": "Munitionsmenge ignorieren", "SETTINGS.DisregardAmmoHint": "Die Aktivierung wird die Menge der in der Waffe geladenen Kugeln ignorieren.", @@ -1314,15 +1329,25 @@ "CoC7.CoCIDFlag.error.documents-not-found": "Keine Dokumente mit passender CoC ID ({cocids}), Sprache \"{lang}\", und Ära \"{era}\" in der Welt oder Kompendien gefunden. Bitte überprüfe deine Ära in den Welteinstellungen.", "CoC7.CoCIDBatch.title": "Batch setzen System ID (CoC ID)", - "CoC7.CoCIDBatch.summary": "Das CoC7 System hat eine neue System ID (CoC ID) eingeführt. Dies erlaubt dem System FoundryVTT-Dokumente (z.B. Fertigkeiten) zu identifizieren. Diese Seite erlmöglicht dir die ID für existierende Dokumente {type} zu setzen. Die System ID sollte die Englische Übersetzung des Namens verwenden, um Lokalisierung für alle Sprachen zu ermöglichen.", + "CoC7.CoCIDBatch.summary": "Das CoC7 System hat eine neue System ID (CoC ID) eingeführt. Dies erlaubt dem System FoundryVTT-Dokumente (z.B. Fertigkeiten) zu identifizieren. Diese Seite ermöglicht dir die ID für existierende Dokumente {type} zu setzen. Die System ID sollte die Englische Übersetzung des Namens verwenden, um Lokalisierung für alle Sprachen zu ermöglichen.", + "CoC7.ActorCoCIDItemsBest": "CoC ID: Figur Gegenstand Austausch", + "CoC7.ActorCoCIDItemsWarning": "Diese Aktion kann nicht rückgängig gemacht werden! Bitte sichere die Spielwelt, bevor die Figuren aktualisiert werden.", + "CoC7.ActorCoCIDItemsWhich": "Prüfe die CoC ID der Gegenstände in aktiven Kompendien, Weltkompendien und Gegenstandsverzeichnissen, um die Gegenstände der Figur mit ihrer besten Entsprechung auszutauschen.", + "CoC7.ActorCoCIDItemsRules1": "Gegenstände müssen mit der gegenwärtigen Ära \"{era}\" übereinstimmen oder dürfen keiner zugeordnet sein.", + "CoC7.ActorCoCIDItemsRules2": "Gegenstände werden geprüft ob sie der Sprache \"{lang}\" oder \"English\" entsprechen, falls kein übersetzter Gegenstand existiert.", + "CoC7.ActorCoCIDItemsRules3": "Wähle den Gegenstand mit der höchsten Priorität.", + "CoC7.ActorCoCIDItemsSceneTokens": "Aktualisiere alle Tokens in der Szene.", + "CoC7.ActorCoCIDItemsUnlinkedToken": "Aktualisiere zuerst für jedes Token die nicht verknüpften Figuren im Verzeichnis.", + "CoC7.ActorCoCIDItemsActorSheets": "Aktualisiere geöffnete Charakterbögen.", + "CoC7.ActorCoCIDItemsActorDirectory": "Aktualisiere alle Figuren im Verzeichnis.", + "CoC7.ActorCoCIDItemsUpdate": "Aktualisieren", "CoC7.TokenCreationRoll.Title": "Auswürfelbare Werte erkannt", "CoC7.TokenCreationRoll.Prompt": "Dieses Token hat auswürfelbare Attribute oder Fertigkeiten.
    Was möchtest du tun?", "CoC7.TokenCreationRoll.ButtonRoll": "Alle würfeln", "CoC7.TokenCreationRoll.ButtonAverage": "Mittelwerte verwenden", - "CoC7.TokenCreationRoll.Rolled": "{name} characteristics and skills rolled", - "CoC7.TokenCreationRoll.Averaged": "{name} characteristics and skills averaged", - + "CoC7.TokenCreationRoll.Rolled": "{name} Eigenschaft und Fertigkeit gewürfelt.", + "CoC7.TokenCreationRoll.Averaged": "{name} Eigenschaft und Fertigkeit im Durchschnitt.", "CoC7.RealRollDecaderPlaceholderName": "10's", @@ -1339,4 +1364,5 @@ "CoC7.ErrorNoActorPermission": "Du besitzt diese Figur nicht", "CoC7.ErrorCombinedRollsRequireSingleActor": "Du kannst nicht mehr als eine Figur in einem gemeinsamen Wurf einsetzen", "CoC7.ErrorOpposedRollsLimitedToTwoActors": "Ein gegenüberstellender Wurf benötigt zwei Figuren" + "CoC7.PauseName": "Zeitstopp" } From 72c1e34a5d5637bf9a37c1071075a0979f93e77e Mon Sep 17 00:00:00 2001 From: Maximilian Visotschnig Date: Fri, 13 Sep 2024 00:45:10 +0200 Subject: [PATCH 27/35] Update de.json Missing comma in line 1366 --- lang/de.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/de.json b/lang/de.json index 38c32171..fbee73e1 100644 --- a/lang/de.json +++ b/lang/de.json @@ -1363,6 +1363,6 @@ "CoC7.ErrorRollAlreadyCompleted": "Der Wurf wurde bereits abgeschlossen", "CoC7.ErrorNoActorPermission": "Du besitzt diese Figur nicht", "CoC7.ErrorCombinedRollsRequireSingleActor": "Du kannst nicht mehr als eine Figur in einem gemeinsamen Wurf einsetzen", - "CoC7.ErrorOpposedRollsLimitedToTwoActors": "Ein gegenüberstellender Wurf benötigt zwei Figuren" + "CoC7.ErrorOpposedRollsLimitedToTwoActors": "Ein gegenüberstellender Wurf benötigt zwei Figuren", "CoC7.PauseName": "Zeitstopp" } From 60e4f353fb12d2b3a95221020048affe38254b8f Mon Sep 17 00:00:00 2001 From: Piotr Krygier Date: Thu, 10 Oct 2024 10:46:09 +0200 Subject: [PATCH 28/35] Updated polish translation --- lang/pl.json | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/lang/pl.json b/lang/pl.json index 6343b2aa..4b4db7f8 100644 --- a/lang/pl.json +++ b/lang/pl.json @@ -390,12 +390,13 @@ "CoC7.SkillCombat": "Walka", "CoC7.SkillFighting": "Walka Wręcz", "CoC7.SkillFirearm": "Broń Palna", + "CoC7.SkillRanged": "Zasięgowa", "CoC7.SkillRequiresName": "Wymaga nazwy", "CoC7.SkillKeepBaseValue": "Użyj podstawowej wartości", "CoC7.SkillPickNameOnly": "Wybierz specjalizację", "CoC7.SkillSpecializationIsUnique": "Unikalna specjalizacja", - "CoC7.WeaponRngd": "Zasięgowy", + "CoC7.WeaponRngd": "Zasięgowa", "CoC7.WeaponProperyManeuver": "Manewr", "CoC7.WeaponTouch": "Uderzenie", "CoC7.WeaponImpl": "Przebijający", @@ -430,6 +431,7 @@ "CoC7.FightingSpecializationName": "Walka Wręcz", "CoC7.UnarmedWeaponName": "Nieuzbrojony", "CoC7.FirearmSpecializationName": "Broń Palna", + "CoC7.RangedSpecializationName": "Zasięgowa", "CoC7.DriveSpecializationName": "Prowadzenie", "CoC7.PilotSpecializationName": "Pilotowanie", "CoC7.LanguageSpecializationName": "Język", @@ -557,11 +559,18 @@ "CoC7.MonetaryFormatLsd": "£sd", "CoC7.MonetaryFormatRoman": "Rzymskie", "CoC7.MonetaryDefaultPenniless": "Ubogi", + "CoC7.MonetaryDefaultDestitute": "Nędzarz", "CoC7.MonetaryDefaultPoor": "Biedny", "CoC7.MonetaryDefaultAverage": "Przeciętnie majętny", + "CoC7.MonetaryDefaultLower": "Klasa niższa", + "CoC7.MonetaryDefaultMiddle": "Wschodząca klasa średnia / Rozpoczynający profesjonalista", "CoC7.MonetaryDefaultWealthy": "Zamożny", + "CoC7.MonetaryDefaultEstablished": "Biedna szlachta / Ugruntowany profesjonalista", + "CoC7.MonetaryDefaultProfessional": "Przeciętna szlachta / Bogaty profesjonalista", + "CoC7.MonetaryDefaultGentry": "Bogata szlachta", "CoC7.MonetaryDefaultRich": "Bogaty", "CoC7.MonetaryDefaultSuperRich": "Krezus", + "CoC7.MonetaryDefaultAristocracy": "Arystokrata", "CoC7.PossessionsNotes": "Notatki :", "CoC7.PossessionsNotesHolder": "Notatki", @@ -591,7 +600,7 @@ "CoC7.SanityLossEncounter": "Spotkanie z dziwnymi istotami", "CoC7.SanityLossImmunity": "Odporność na Utratę Poczytalności", - "CoC7.creatureFightingSkill": "Walka Wręcz", + "CoC7.creatureFightingSkill": "Walka", "CoC7.InvoluntaryAction": "Mimowolne działanie", "CoC7.InvoluntaryActionPerfomed": "Wykonano mimowolne działanie", @@ -599,6 +608,8 @@ "CoC7.IntCheck": "Test Inteligencji", "CoC7.NoSanLoss": "Nie utracono Poczytalności", "CoC7.SANLoss": "Poczytalność Utracona", + "CoC7.SANLossPass": "sukces", + "CoC7.SANLossFail": "porażka", "CoC7.SanityCheckPerformed": "Zostałeś wystawiony na traumatyczne wydarzenie.", "CoC7.InvoluntaryActionPerformed": "Na chwilę straciłeś kontrolę nad sobą.", "CoC7.SanityLost": "Stracono punkty poczytalności", @@ -1319,7 +1330,18 @@ "CoC7.CoCIDBatch.title": "Ustawienia System ID (CoC ID)", "CoC7.CoCIDBatch.summary": "System CoC7 wprowadził CoC ID. Pozwala ono na identyfikowanie dokumentów FoundryVTT, na przykład umiejętności. Ta strona pozwala na ustawienie identyfikatorów dla istniejących dokumentów typu \"{type}\". ID powinno używać angielskiej wersji nazw, żeby umożliwić poprawną lokalizację", - + "CoC7.ActorCoCIDItemsBest": "CoC ID: Podmiana przedmiotów postaci", + "CoC7.ActorCoCIDItemsWarning": "Ta akcja nie może zostać cofnięta. Stwórz kopię zapasową świata przed aktualizacją", + "CoC7.ActorCoCIDItemsWhich": "Poszukaj CoC ID w aktywnym kompendium, kompediach świata oraz katalogu przedmiotów podmieniając przedmioty postaci korzystając z następujących reguł", + "CoC7.ActorCoCIDItemsRules1": "Predmiot musi mieć erę \"{era}\" lub mieć zaznaczone ery", + "CoC7.ActorCoCIDItemsRules2": "Sprawdź przedmioty w języku \"{lang}\" lub \"Angielskim\" jeśli nie istnieje przetłumaczony przedmiot", + "CoC7.ActorCoCIDItemsRules3": "Wybierz przedmiot z najwyższym priorytetem", + "CoC7.ActorCoCIDItemsSceneTokens": "Zaktualizuj wszystkie tokeny w aktywnej scenie", + "CoC7.ActorCoCIDItemsUnlinkedToken": "Zaktualizuj niepodłączone postacie w folderze dla każdego tokena", + "CoC7.ActorCoCIDItemsActorSheets": "Zaktualizuj otwartą kartę postaci", + "CoC7.ActorCoCIDItemsActorDirectory": "Zaktualizuj wszystkie postacie w foldere", + "CoC7.ActorCoCIDItemsUpdate": "Aktualizuj", + "CoC7.TokenCreationRoll.Title": "Wykryto formuły rzutów", "CoC7.TokenCreationRoll.Prompt": "Token ma formuły rzutów na cechy i/lub umiejętności.
    Co chcesz zrobić?", "CoC7.TokenCreationRoll.ButtonRoll": "Rzucaj koścmi", @@ -1327,9 +1349,12 @@ "CoC7.TokenCreationRoll.Rolled": "Charakterystyki i umiejętności dla {name} zostały wylosowane", "CoC7.TokenCreationRoll.Averaged": "Charakterystyki i umiejętności dla {name} zostały uśrednione", + "CoC7.RealRollDecaderPlaceholderName": "10tka", + "CoC7.Temporary": "Tymczasowy", "CoC7.Passive": "Pasywny", "CoC7.Inactive": "Nieaktywny", + "CoC7.Suppressed": "Stłumiony", "CoC7.Unavailable": "Niedostępny", "CoC7.PickWhichActorTitle": "Wybierz za kogo rzucić", @@ -1338,5 +1363,6 @@ "CoC7.ErrorRollAlreadyCompleted": "Ten rzut został już rozwiązany", "CoC7.ErrorNoActorPermission": "Nie jesteś właścicielem tego aktora", "CoC7.ErrorCombinedRollsRequireSingleActor": "Nie możesz użyć więcej niż jednego aktora w rzucie łączonym", - "CoC7.ErrorOpposedRollsLimitedToTwoActors": "Rzut przeciwstawny wymaga dwóch aktorów" + "CoC7.ErrorOpposedRollsLimitedToTwoActors": "Rzut przeciwstawny wymaga dwóch aktorów", + "CoC7.PauseName": "Pauza" } From c8d72b31c711f8713fd24f05bf29bb73d28aca0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20E=2E=20Lozano?= Date: Sun, 13 Oct 2024 19:38:07 +0200 Subject: [PATCH 29/35] Fixes db/2 not calculated right --- module/chat/cards/damage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/chat/cards/damage.js b/module/chat/cards/damage.js index 0ab2ea82..fa84245c 100644 --- a/module/chat/cards/damage.js +++ b/module/chat/cards/damage.js @@ -244,7 +244,7 @@ export class DamageCard extends InteractiveChatCard { if (!db.startsWith('-')) db = '+' + db if (this.weapon.system.properties.addb) formula = formula + db - if (this.weapon.system.properties.ahdb) formula = formula + '+ floor(' + db + '/2)' + if (this.weapon.system.properties.ahdb) formula = formula + '+ ceil(' + db + '/2)' if (formula) { const maxDamage = new Roll(formula)[(!foundry.utils.isNewerVersion(game.version, '12') ? 'evaluate' : 'evaluateSync')/* // FoundryVTT v11 */]({ maximize: true }).total From 2a84a19f134a9d5a2822640276f81b696a8017a3 Mon Sep 17 00:00:00 2001 From: snap01 <43982555+snap01@users.noreply.github.com> Date: Thu, 17 Oct 2024 20:48:59 +0000 Subject: [PATCH 30/35] Updated translations list --- .github/TRANSLATIONS.md | 104 +++++++++------------------------------- 1 file changed, 23 insertions(+), 81 deletions(-) diff --git a/.github/TRANSLATIONS.md b/.github/TRANSLATIONS.md index 06e4047a..61e0025c 100644 --- a/.github/TRANSLATIONS.md +++ b/.github/TRANSLATIONS.md @@ -2,6 +2,8 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry VTT better! Below is a list of translations keys on existing files that still need translated, based on `en.json`. Feel free to create a new `*.json` file for a language that is not shown here! +The following translations are currently up to date **de**, **fr**, **pl** + The following translations have more than 50 untranslated strings [are you able to help?](./ABANDONED.md) [cn.json (445 untranslated strings)](./ABANDONED.md#cnjson) @@ -22,47 +24,27 @@ The following translations have more than 50 untranslated strings [are you able -|Key|de|es|fr|it|ja|pl| -|:---|:---:|:---:|:---:|:---:|:---:|:---:| -|**Remaining**:|**26**|**12**|**14**|**17**|**13**|**25**| -|[CoC7.ActorCoCIDItemsActorDirectory](#coc7actorcociditemsactordirectory)|❌|❌|❌|❌|❌|❌| -|[CoC7.ActorCoCIDItemsActorSheets](#coc7actorcociditemsactorsheets)|❌|❌|❌|❌|❌|❌| -|[CoC7.ActorCoCIDItemsBest](#coc7actorcociditemsbest)|❌|❌|❌|❌|❌|❌| -|[CoC7.ActorCoCIDItemsRules1](#coc7actorcociditemsrules1)|❌|❌|❌|❌|❌|❌| -|[CoC7.ActorCoCIDItemsRules2](#coc7actorcociditemsrules2)|❌|❌|❌|❌|❌|❌| -|[CoC7.ActorCoCIDItemsRules3](#coc7actorcociditemsrules3)|❌|❌|❌|❌|❌|❌| -|[CoC7.ActorCoCIDItemsSceneTokens](#coc7actorcociditemsscenetokens)|❌|❌|❌|❌|❌|❌| -|[CoC7.ActorCoCIDItemsUnlinkedToken](#coc7actorcociditemsunlinkedtoken)|❌|❌|❌|❌|❌|❌| -|[CoC7.ActorCoCIDItemsUpdate](#coc7actorcociditemsupdate)|❌|❌|❌|❌|❌|❌| -|[CoC7.ActorCoCIDItemsWarning](#coc7actorcociditemswarning)|❌|❌|❌|❌|❌|❌| -|[CoC7.ActorCoCIDItemsWhich](#coc7actorcociditemswhich)|❌|❌|❌|❌|❌|❌| -|[CoC7.CastHidden](#coc7casthidden)|❌|✅|✅|❌|✅|✅| -|[CoC7.Japanese](#coc7japanese)|❌|✅|✅|✅|✅|✅| -|[CoC7.LanguageSpecializationName](#coc7languagespecializationname)|❌|✅|✅|✅|✅|✅| -|[CoC7.MonetaryDefaultAristocracy](#coc7monetarydefaultaristocracy)|✅|✅|✅|✅|✅|❌| -|[CoC7.MonetaryDefaultDestitute](#coc7monetarydefaultdestitute)|✅|✅|✅|✅|✅|❌| -|[CoC7.MonetaryDefaultEstablished](#coc7monetarydefaultestablished)|✅|✅|✅|✅|✅|❌| -|[CoC7.MonetaryDefaultGentry](#coc7monetarydefaultgentry)|✅|✅|✅|✅|✅|❌| -|[CoC7.MonetaryDefaultLower](#coc7monetarydefaultlower)|✅|✅|✅|✅|✅|❌| -|[CoC7.MonetaryDefaultMiddle](#coc7monetarydefaultmiddle)|✅|✅|✅|✅|✅|❌| -|[CoC7.MonetaryDefaultProfessional](#coc7monetarydefaultprofessional)|✅|✅|✅|✅|✅|❌| -|[CoC7.PauseName](#coc7pausename)|❌|❌|❌|❌|❌|❌| -|[CoC7.PersonalSpecialityPlaceholder](#coc7personalspecialityplaceholder)|✅|✅|✅|✅|❌|✅| -|[CoC7.RangedSpecializationName](#coc7rangedspecializationname)|✅|✅|✅|✅|✅|❌| -|[CoC7.RealRollDecaderPlaceholderName](#coc7realrolldecaderplaceholdername)|✅|✅|✅|✅|✅|❌| -|[CoC7.SANLossFail](#coc7sanlossfail)|❌|✅|❌|❌|✅|❌| -|[CoC7.SANLossPass](#coc7sanlosspass)|❌|✅|❌|❌|✅|❌| -|[CoC7.SkillNameHandgun](#coc7skillnamehandgun)|❌|✅|✅|✅|✅|✅| -|[CoC7.SkillNameLaunch](#coc7skillnamelaunch)|❌|✅|✅|✅|✅|✅| -|[CoC7.SkillNameMachinGun](#coc7skillnamemachingun)|❌|✅|✅|✅|✅|✅| -|[CoC7.SkillNameRifle](#coc7skillnamerifle)|❌|✅|✅|✅|✅|✅| -|[CoC7.SkillNameRifleShotgun](#coc7skillnamerifleshotgun)|❌|✅|✅|✅|✅|✅| -|[CoC7.SkillNameShotgun](#coc7skillnameshotgun)|❌|✅|✅|✅|✅|✅| -|[CoC7.SkillNameSmb](#coc7skillnamesmb)|❌|✅|✅|✅|✅|✅| -|[CoC7.SkillRanged](#coc7skillranged)|✅|✅|✅|✅|✅|❌| -|[CoC7.Suppressed](#coc7suppressed)|✅|✅|✅|✅|✅|❌| -|[SETTINGS.allowMythosHardenedHint](#settingsallowmythoshardenedhint)|❌|✅|✅|❌|✅|✅| -|[SETTINGS.allowMythosHardenedTitle](#settingsallowmythoshardenedtitle)|❌|✅|✅|❌|✅|✅| +|Key|es|it|ja| +|:---|:---:|:---:|:---:| +|**Remaining**:|**12**|**17**|**13**| +|[CoC7.ActorCoCIDItemsActorDirectory](#coc7actorcociditemsactordirectory)|❌|❌|❌| +|[CoC7.ActorCoCIDItemsActorSheets](#coc7actorcociditemsactorsheets)|❌|❌|❌| +|[CoC7.ActorCoCIDItemsBest](#coc7actorcociditemsbest)|❌|❌|❌| +|[CoC7.ActorCoCIDItemsRules1](#coc7actorcociditemsrules1)|❌|❌|❌| +|[CoC7.ActorCoCIDItemsRules2](#coc7actorcociditemsrules2)|❌|❌|❌| +|[CoC7.ActorCoCIDItemsRules3](#coc7actorcociditemsrules3)|❌|❌|❌| +|[CoC7.ActorCoCIDItemsSceneTokens](#coc7actorcociditemsscenetokens)|❌|❌|❌| +|[CoC7.ActorCoCIDItemsUnlinkedToken](#coc7actorcociditemsunlinkedtoken)|❌|❌|❌| +|[CoC7.ActorCoCIDItemsUpdate](#coc7actorcociditemsupdate)|❌|❌|❌| +|[CoC7.ActorCoCIDItemsWarning](#coc7actorcociditemswarning)|❌|❌|❌| +|[CoC7.ActorCoCIDItemsWhich](#coc7actorcociditemswhich)|❌|❌|❌| +|[CoC7.CastHidden](#coc7casthidden)|✅|❌|✅| +|[CoC7.PauseName](#coc7pausename)|❌|❌|❌| +|[CoC7.PersonalSpecialityPlaceholder](#coc7personalspecialityplaceholder)|✅|✅|❌| +|[CoC7.SANLossFail](#coc7sanlossfail)|✅|❌|✅| +|[CoC7.SANLossPass](#coc7sanlosspass)|✅|❌|✅| +|[SETTINGS.allowMythosHardenedHint](#settingsallowmythoshardenedhint)|✅|❌|✅| +|[SETTINGS.allowMythosHardenedTitle](#settingsallowmythoshardenedtitle)|✅|❌|✅| ##### CoC7.ActorCoCIDItemsActorDirectory ``` "CoC7.ActorCoCIDItemsActorDirectory": "Update all Actors in directory",``` ##### CoC7.ActorCoCIDItemsActorSheets @@ -87,54 +69,14 @@ The following translations have more than 50 untranslated strings [are you able ``` "CoC7.ActorCoCIDItemsWhich": "Check Item's CoC ID in active compendiums, world compendiums, and Items directory replacing the Actor's Items with the best choice based on these rules",``` ##### CoC7.CastHidden ``` "CoC7.CastHidden": "Cast Hidden",``` -##### CoC7.Japanese -``` "CoC7.Japanese": "Japanese",``` -##### CoC7.LanguageSpecializationName -``` "CoC7.LanguageSpecializationName": "Language",``` -##### CoC7.MonetaryDefaultAristocracy -``` "CoC7.MonetaryDefaultAristocracy": "Aristocracy",``` -##### CoC7.MonetaryDefaultDestitute -``` "CoC7.MonetaryDefaultDestitute": "Destitute",``` -##### CoC7.MonetaryDefaultEstablished -``` "CoC7.MonetaryDefaultEstablished": "Poor Gentry / Established Professional",``` -##### CoC7.MonetaryDefaultGentry -``` "CoC7.MonetaryDefaultGentry": "Wealthy Gentry",``` -##### CoC7.MonetaryDefaultLower -``` "CoC7.MonetaryDefaultLower": "Lower-Class",``` -##### CoC7.MonetaryDefaultMiddle -``` "CoC7.MonetaryDefaultMiddle": "Emerging Middle-Class / Starting Professional",``` -##### CoC7.MonetaryDefaultProfessional -``` "CoC7.MonetaryDefaultProfessional": "Average Gentry / Wealthy Professional",``` ##### CoC7.PauseName ``` "CoC7.PauseName": "Time Stop",``` ##### CoC7.PersonalSpecialityPlaceholder ``` "CoC7.PersonalSpecialityPlaceholder": "other skill(s) as personal or era specialties",``` -##### CoC7.RangedSpecializationName -``` "CoC7.RangedSpecializationName": "Ranged",``` -##### CoC7.RealRollDecaderPlaceholderName -``` "CoC7.RealRollDecaderPlaceholderName": "10's",``` ##### CoC7.SANLossFail ``` "CoC7.SANLossFail": "fail",``` ##### CoC7.SANLossPass ``` "CoC7.SANLossPass": "pass",``` -##### CoC7.SkillNameHandgun -``` "CoC7.SkillNameHandgun": "Handgun",``` -##### CoC7.SkillNameLaunch -``` "CoC7.SkillNameLaunch": "Launch",``` -##### CoC7.SkillNameMachinGun -``` "CoC7.SkillNameMachinGun": "Machine Gun",``` -##### CoC7.SkillNameRifle -``` "CoC7.SkillNameRifle": "Rifle",``` -##### CoC7.SkillNameRifleShotgun -``` "CoC7.SkillNameRifleShotgun": "Rifle/Shotgun",``` -##### CoC7.SkillNameShotgun -``` "CoC7.SkillNameShotgun": "Shotgun",``` -##### CoC7.SkillNameSmb -``` "CoC7.SkillNameSmb": "Submachine Gun",``` -##### CoC7.SkillRanged -``` "CoC7.SkillRanged": "Ranged",``` -##### CoC7.Suppressed -``` "CoC7.Suppressed": "Suppressed",``` ##### SETTINGS.allowMythosHardenedHint ``` "SETTINGS.allowMythosHardenedHint": "Allow Mythos Hardened sanity loss reductions",``` ##### SETTINGS.allowMythosHardenedTitle From c6cd7c7a1fd9e5935b3ed811f7514991d63ac417 Mon Sep 17 00:00:00 2001 From: snap01 <43982555+snap01@users.noreply.github.com> Date: Thu, 17 Oct 2024 22:05:42 +0100 Subject: [PATCH 31/35] Ranged Weapons (such as Bow & Arrow) do not add DB damage even if set bug --- module/chat/rangecombat.js | 26 ++++++++++++++++++++++ templates/chat/combat/range-initiator.html | 4 +++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/module/chat/rangecombat.js b/module/chat/rangecombat.js index 1235f2b5..7fdf9e07 100644 --- a/module/chat/rangecombat.js +++ b/module/chat/rangecombat.js @@ -716,6 +716,12 @@ export class CoC7RangeInitiator { if (volleySize > 0) { let damageFormula = String(h.shot.damage) if (!damageFormula || damageFormula === '') damageFormula = '0' + if (this.item.system.properties.addb) { + damageFormula = damageFormula + '+' + this.actor.db + } + if (this.item.system.properties.ahdb) { + damageFormula = damageFormula + '+ceil(' + this.actor.db + '/2)' + } const damageDie = CoC7Damage.getMainDie(damageFormula) const maxDamage = new Roll(damageFormula)[(!foundry.utils.isNewerVersion(game.version, '12') ? 'evaluate' : 'evaluateSync')/* // FoundryVTT v11 */]({ maximize: true }).total const criticalDamageFormula = this.weapon.impale @@ -752,10 +758,20 @@ export class CoC7RangeInitiator { await roll.evaluate({ async: true }) await CoC7Dice.showRollDice3d(roll) /*****************/ + const dice = [] + for (const die of roll.dice) { + for (const result of die.results) { + dice.push({ + faces: die.faces, + result: result.result + }) + } + } damageRolls.push({ formula: damageFormula, total: roll.total, die: damageDie, + dice, critical: false }) total += roll.total @@ -766,10 +782,20 @@ export class CoC7RangeInitiator { await roll.evaluate({ async: true }) await CoC7Dice.showRollDice3d(roll) /*****************/ + const dice = [] + for (const die of roll.dice) { + for (const result of die.results) { + dice.push({ + faces: die.faces, + result: result.result + }) + } + } damageRolls.push({ formula: criticalDamageFormula, total: roll.total, die: criticalDamageDie, + dice, critical: true }) total += roll.total diff --git a/templates/chat/combat/range-initiator.html b/templates/chat/combat/range-initiator.html index 09cc93ee..e072658c 100644 --- a/templates/chat/combat/range-initiator.html +++ b/templates/chat/combat/range-initiator.html @@ -322,7 +322,9 @@

    {{roll.malfunctionTxt}}

      {{#each d.rolls as |roll|}} -
    1. {{roll.total}}
    2. + {{#each roll.dice as |die|}} +
    3. {{die.result}}
    4. + {{/each}} {{/each}}
    From e2f290bab67b88721f18e7b7aca5484d606cd0d4 Mon Sep 17 00:00:00 2001 From: snap01 <43982555+snap01@users.noreply.github.com> Date: Thu, 17 Oct 2024 22:14:54 +0100 Subject: [PATCH 32/35] Update CHANGELOG.md --- .github/CHANGELOG.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index c9a4f474..68c1a7c4 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -15,11 +15,15 @@ When not specified, all changes were made by @castanhocorreia, @HavlockV, and @s - Allow weapon ranges to be based on characteristics - Explicitly set FoundryVTT v12 version of grid values, thanks to @Vicnasc #1564 - Fix compendium filtering +- Fix db/2 calculation, thanks to @lozanoje #1601 +- Fix ranged weapons not adding DB/2 - Workaround for DsN 5.0.0 to 5.0.5 bonus dice, replace bronze dice withl bronze01 dice - Update CoC ID functionality as per ticket #1584 -- Update token art if default and the actor image is changed -- Update to French localization, thanks to @vonv #1580 and #1581 +- Update token art if default and the actor image is changed +- Update to French localization, thanks to @vonv #1580, #1581, and #1595 +- Update to German localization, thanks to @MrViso #1596 - Update to Japanese localization, thanks to @doumoku #1586 and #1591 +- Update to Polish localization, thanks to @everyonecancode #1598 - Update to Spanish localization, thanks to @lozanoje #1587 ## Version 0.10.19 From 8e2593923d87d67184a3c15dcc217b9e0f79c361 Mon Sep 17 00:00:00 2001 From: snap01 <43982555+snap01@users.noreply.github.com> Date: Thu, 17 Oct 2024 22:54:42 +0100 Subject: [PATCH 33/35] Preparing the system for upcoming premium content. --- .gitattributes | 1 + .github/ABANDONED.md | 88 +- .github/TRANSLATIONS.md | 75 +- .gitignore | 1 + assets/art/bookmark.webp | Bin 0 -> 1912 bytes assets/art/bookmarks.webp | Bin 0 -> 1460 bytes assets/art/chat-bubble.svg | 1 + assets/art/coc7-fvtt.webp | Bin 0 -> 1238 bytes assets/art/elder-sign.webp | Bin 0 -> 1376 bytes assets/art/eye-green.svg | 1 + assets/art/eye-red.svg | 1 + assets/art/keeper-bottom.webp | Bin 0 -> 12952 bytes assets/art/keeper-top.webp | Bin 0 -> 13394 bytes assets/art/map-pin-dark.svg | 1 + assets/art/map-pin.svg | 1 + assets/art/page.webp | Bin 0 -> 54798 bytes assets/images/system-background.jpg | Bin 0 -> 503701 bytes assets/images/system-thumbnail.jpg | Bin 0 -> 13837 bytes assets/images/timetrap2.webp | Bin 0 -> 7268 bytes compendiums/en-examples.yaml | 1478 +++++++++++++ compendiums/{items.yaml => en-items.yaml} | 76 +- compendiums/en-sanity-tables-examples.yaml | 193 ++ compendiums/{skills.yaml => en-skills.yaml} | 1822 +++++++++-------- compendiums/en-wiki-phobias-and-manias.yaml | 329 +++ compendiums/en-wiki-roll-tables.yaml | 29 + compendiums/en-wiki-weapons.yaml | 1129 ++++++++++ docs/en/README.md | 7 +- generate-compendiums.js | 107 - lang/en.json | 8 +- module/apps/coc7-clickable-events.js | 295 +++ module/apps/coc7-system-socket.js | 5 +- module/chat.js | 36 + module/chat/combat/melee-initiator.js | 14 +- module/chat/combat/melee-target.js | 12 +- module/chat/rangecombat.js | 53 +- module/coc7.js | 18 +- module/hooks/draw-note.js | 5 + module/hooks/init.js | 60 +- module/hooks/render-coc7-journal-sheet.js | 19 + .../hooks/render-journal-text-page-sheet.js | 19 + module/hooks/render-pause.js | 10 + module/manual/en/README.md | 9 +- module/updater.js | 13 +- package.json | 4 + packs/examples.db | 5 - packs/items.db | 12 - packs/roll-requests.db | 1 - packs/sanity-tables-examples.db | 4 - packs/skills.db | 94 - packs/system-doc.db | 3 - shared/build-compendiums.js | 9 + shared/generate-compendiums.js | 259 +++ .../generate-manuals.js | 63 +- shared/generate-roll-requests.js | 412 ++++ styles/system/adventure-sheet.less | 358 ++++ styles/system/index.less | 1 + system.json | 86 +- templates/chat/combat/melee-initiator.html | 33 +- templates/chat/combat/melee-target.html | 33 +- templates/chat/combat/range-initiator.html | 43 +- 60 files changed, 6039 insertions(+), 1297 deletions(-) create mode 100644 .gitattributes create mode 100644 assets/art/bookmark.webp create mode 100644 assets/art/bookmarks.webp create mode 100644 assets/art/chat-bubble.svg create mode 100644 assets/art/coc7-fvtt.webp create mode 100644 assets/art/elder-sign.webp create mode 100644 assets/art/eye-green.svg create mode 100644 assets/art/eye-red.svg create mode 100644 assets/art/keeper-bottom.webp create mode 100644 assets/art/keeper-top.webp create mode 100644 assets/art/map-pin-dark.svg create mode 100644 assets/art/map-pin.svg create mode 100644 assets/art/page.webp create mode 100644 assets/images/system-background.jpg create mode 100644 assets/images/system-thumbnail.jpg create mode 100644 assets/images/timetrap2.webp create mode 100644 compendiums/en-examples.yaml rename compendiums/{items.yaml => en-items.yaml} (87%) create mode 100644 compendiums/en-sanity-tables-examples.yaml rename compendiums/{skills.yaml => en-skills.yaml} (56%) create mode 100644 compendiums/en-wiki-phobias-and-manias.yaml create mode 100644 compendiums/en-wiki-roll-tables.yaml create mode 100644 compendiums/en-wiki-weapons.yaml delete mode 100644 generate-compendiums.js create mode 100644 module/apps/coc7-clickable-events.js create mode 100644 module/hooks/draw-note.js create mode 100644 module/hooks/render-coc7-journal-sheet.js create mode 100644 module/hooks/render-journal-text-page-sheet.js delete mode 100644 packs/examples.db delete mode 100644 packs/items.db delete mode 100644 packs/roll-requests.db delete mode 100644 packs/sanity-tables-examples.db delete mode 100644 packs/skills.db delete mode 100644 packs/system-doc.db create mode 100644 shared/build-compendiums.js create mode 100644 shared/generate-compendiums.js rename generate-manuals.js => shared/generate-manuals.js (83%) create mode 100644 shared/generate-roll-requests.js create mode 100644 styles/system/adventure-sheet.less diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..4ee706a5 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +packs/** binary diff --git a/.github/ABANDONED.md b/.github/ABANDONED.md index a5c17353..f8db24bd 100644 --- a/.github/ABANDONED.md +++ b/.github/ABANDONED.md @@ -2,25 +2,25 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry VTT better! Below is a list of translations keys on existing files that still need translated, based on `en.json`. -[cn.json (445 untranslated strings)](#cnjson) +[cn.json (450 untranslated strings)](#cnjson) -[cs.json (630 untranslated strings)](#csjson) +[cs.json (635 untranslated strings)](#csjson) -[ko.json (227 untranslated strings)](#kojson) +[ko.json (232 untranslated strings)](#kojson) -[pt-BR.json (175 untranslated strings)](#ptbrjson) +[pt-BR.json (180 untranslated strings)](#ptbrjson) -[ru.json (97 untranslated strings)](#rujson) +[ru.json (102 untranslated strings)](#rujson) -[sv.json (413 untranslated strings)](#svjson) +[sv.json (418 untranslated strings)](#svjson) -[uk.json (62 untranslated strings)](#ukjson) +[uk.json (67 untranslated strings)](#ukjson) -[zh-TW.json (74 untranslated strings)](#zhtwjson) +[zh-TW.json (79 untranslated strings)](#zhtwjson) ## cn.json -445 untranslated strings +450 untranslated strings ``` "CoC7.ActorIsTokenHint": "Actor is a token", "CoC7.ActorDataLinked": "Actor data are linked", @@ -466,10 +466,15 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorNoActorPermission": "You are not the Owner of this Actor", "CoC7.ErrorCombinedRollsRequireSingleActor": "You can not have more than one actor in a combined roll", "CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors", -"CoC7.PauseName": "Time Stop" +"CoC7.PauseName": "Time Stop", +"CoC7.ClickableEvents.MouseOver.Title": "Permission to click", +"CoC7.ClickableEvents.MouseOver.Hint": "Return boolean if should allow click and show mouse cursor", +"CoC7.ClickableEvents.LeftClick.Title": "Left Click Script", +"CoC7.ClickableEvents.RightClick.Title": "Right Click Script", +"TYPES.RegionBehavior.coc7ClickableEvents": "Clickable Events" ``` ## cs.json -630 untranslated strings +635 untranslated strings ``` "CoC7.Entities.Character": "Character", "CoC7.Entities.Container": "Container", @@ -1100,10 +1105,15 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorNoActorPermission": "You are not the Owner of this Actor", "CoC7.ErrorCombinedRollsRequireSingleActor": "You can not have more than one actor in a combined roll", "CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors", -"CoC7.PauseName": "Time Stop" +"CoC7.PauseName": "Time Stop", +"CoC7.ClickableEvents.MouseOver.Title": "Permission to click", +"CoC7.ClickableEvents.MouseOver.Hint": "Return boolean if should allow click and show mouse cursor", +"CoC7.ClickableEvents.LeftClick.Title": "Left Click Script", +"CoC7.ClickableEvents.RightClick.Title": "Right Click Script", +"TYPES.RegionBehavior.coc7ClickableEvents": "Clickable Events" ``` ## ko.json -227 untranslated strings +232 untranslated strings ``` "CoC7.CustomSpecialisationLabel": "Custom label - {specialisation}", "CoC7.CastHidden": "Cast Hidden", @@ -1331,10 +1341,15 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorNoActorPermission": "You are not the Owner of this Actor", "CoC7.ErrorCombinedRollsRequireSingleActor": "You can not have more than one actor in a combined roll", "CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors", -"CoC7.PauseName": "Time Stop" +"CoC7.PauseName": "Time Stop", +"CoC7.ClickableEvents.MouseOver.Title": "Permission to click", +"CoC7.ClickableEvents.MouseOver.Hint": "Return boolean if should allow click and show mouse cursor", +"CoC7.ClickableEvents.LeftClick.Title": "Left Click Script", +"CoC7.ClickableEvents.RightClick.Title": "Right Click Script", +"TYPES.RegionBehavior.coc7ClickableEvents": "Clickable Events" ``` ## pt-BR.json -175 untranslated strings +180 untranslated strings ``` "CoC7.CastHidden": "Cast Hidden", "CoC7.EraRegency": "Regency Cthulhu - Standard", @@ -1510,10 +1525,15 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorNoActorPermission": "You are not the Owner of this Actor", "CoC7.ErrorCombinedRollsRequireSingleActor": "You can not have more than one actor in a combined roll", "CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors", -"CoC7.PauseName": "Time Stop" +"CoC7.PauseName": "Time Stop", +"CoC7.ClickableEvents.MouseOver.Title": "Permission to click", +"CoC7.ClickableEvents.MouseOver.Hint": "Return boolean if should allow click and show mouse cursor", +"CoC7.ClickableEvents.LeftClick.Title": "Left Click Script", +"CoC7.ClickableEvents.RightClick.Title": "Right Click Script", +"TYPES.RegionBehavior.coc7ClickableEvents": "Clickable Events" ``` ## ru.json -97 untranslated strings +102 untranslated strings ``` "CoC7.CastHidden": "Cast Hidden", "CoC7.EraReignOfTerror": "Reign Of Terror", @@ -1611,10 +1631,15 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorNoActorPermission": "You are not the Owner of this Actor", "CoC7.ErrorCombinedRollsRequireSingleActor": "You can not have more than one actor in a combined roll", "CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors", -"CoC7.PauseName": "Time Stop" +"CoC7.PauseName": "Time Stop", +"CoC7.ClickableEvents.MouseOver.Title": "Permission to click", +"CoC7.ClickableEvents.MouseOver.Hint": "Return boolean if should allow click and show mouse cursor", +"CoC7.ClickableEvents.LeftClick.Title": "Left Click Script", +"CoC7.ClickableEvents.RightClick.Title": "Right Click Script", +"TYPES.RegionBehavior.coc7ClickableEvents": "Clickable Events" ``` ## sv.json -413 untranslated strings +418 untranslated strings ``` "CoC7.ActorIsTokenHint": "Actor is a token", "CoC7.ActorDataLinked": "Actor data are linked", @@ -2028,10 +2053,15 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorNoActorPermission": "You are not the Owner of this Actor", "CoC7.ErrorCombinedRollsRequireSingleActor": "You can not have more than one actor in a combined roll", "CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors", -"CoC7.PauseName": "Time Stop" +"CoC7.PauseName": "Time Stop", +"CoC7.ClickableEvents.MouseOver.Title": "Permission to click", +"CoC7.ClickableEvents.MouseOver.Hint": "Return boolean if should allow click and show mouse cursor", +"CoC7.ClickableEvents.LeftClick.Title": "Left Click Script", +"CoC7.ClickableEvents.RightClick.Title": "Right Click Script", +"TYPES.RegionBehavior.coc7ClickableEvents": "Clickable Events" ``` ## uk.json -62 untranslated strings +67 untranslated strings ``` "CoC7.CastHidden": "Cast Hidden", "CoC7.EraReignOfTerror": "Reign Of Terror", @@ -2094,10 +2124,15 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorNoActorPermission": "You are not the Owner of this Actor", "CoC7.ErrorCombinedRollsRequireSingleActor": "You can not have more than one actor in a combined roll", "CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors", -"CoC7.PauseName": "Time Stop" +"CoC7.PauseName": "Time Stop", +"CoC7.ClickableEvents.MouseOver.Title": "Permission to click", +"CoC7.ClickableEvents.MouseOver.Hint": "Return boolean if should allow click and show mouse cursor", +"CoC7.ClickableEvents.LeftClick.Title": "Left Click Script", +"CoC7.ClickableEvents.RightClick.Title": "Right Click Script", +"TYPES.RegionBehavior.coc7ClickableEvents": "Clickable Events" ``` ## zh-TW.json -74 untranslated strings +79 untranslated strings ``` "CoC7.CastHidden": "Cast Hidden", "CoC7.EraRegency": "Regency Cthulhu - Standard", @@ -2172,5 +2207,10 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry "CoC7.ErrorNoActorPermission": "You are not the Owner of this Actor", "CoC7.ErrorCombinedRollsRequireSingleActor": "You can not have more than one actor in a combined roll", "CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors", -"CoC7.PauseName": "Time Stop" +"CoC7.PauseName": "Time Stop", +"CoC7.ClickableEvents.MouseOver.Title": "Permission to click", +"CoC7.ClickableEvents.MouseOver.Hint": "Return boolean if should allow click and show mouse cursor", +"CoC7.ClickableEvents.LeftClick.Title": "Left Click Script", +"CoC7.ClickableEvents.RightClick.Title": "Right Click Script", +"TYPES.RegionBehavior.coc7ClickableEvents": "Clickable Events" ``` diff --git a/.github/TRANSLATIONS.md b/.github/TRANSLATIONS.md index 61e0025c..ca583072 100644 --- a/.github/TRANSLATIONS.md +++ b/.github/TRANSLATIONS.md @@ -2,49 +2,52 @@ Thank you for being interested in making Call of Cthulhu 7th Edition for Foundry VTT better! Below is a list of translations keys on existing files that still need translated, based on `en.json`. Feel free to create a new `*.json` file for a language that is not shown here! -The following translations are currently up to date **de**, **fr**, **pl** - The following translations have more than 50 untranslated strings [are you able to help?](./ABANDONED.md) -[cn.json (445 untranslated strings)](./ABANDONED.md#cnjson) +[cn.json (450 untranslated strings)](./ABANDONED.md#cnjson) -[cs.json (630 untranslated strings)](./ABANDONED.md#csjson) +[cs.json (635 untranslated strings)](./ABANDONED.md#csjson) -[ko.json (227 untranslated strings)](./ABANDONED.md#kojson) +[ko.json (232 untranslated strings)](./ABANDONED.md#kojson) -[pt-BR.json (175 untranslated strings)](./ABANDONED.md#ptbrjson) +[pt-BR.json (180 untranslated strings)](./ABANDONED.md#ptbrjson) -[ru.json (97 untranslated strings)](./ABANDONED.md#rujson) +[ru.json (102 untranslated strings)](./ABANDONED.md#rujson) -[sv.json (413 untranslated strings)](./ABANDONED.md#svjson) +[sv.json (418 untranslated strings)](./ABANDONED.md#svjson) -[uk.json (62 untranslated strings)](./ABANDONED.md#ukjson) +[uk.json (67 untranslated strings)](./ABANDONED.md#ukjson) -[zh-TW.json (74 untranslated strings)](./ABANDONED.md#zhtwjson) +[zh-TW.json (79 untranslated strings)](./ABANDONED.md#zhtwjson) -|Key|es|it|ja| -|:---|:---:|:---:|:---:| -|**Remaining**:|**12**|**17**|**13**| -|[CoC7.ActorCoCIDItemsActorDirectory](#coc7actorcociditemsactordirectory)|❌|❌|❌| -|[CoC7.ActorCoCIDItemsActorSheets](#coc7actorcociditemsactorsheets)|❌|❌|❌| -|[CoC7.ActorCoCIDItemsBest](#coc7actorcociditemsbest)|❌|❌|❌| -|[CoC7.ActorCoCIDItemsRules1](#coc7actorcociditemsrules1)|❌|❌|❌| -|[CoC7.ActorCoCIDItemsRules2](#coc7actorcociditemsrules2)|❌|❌|❌| -|[CoC7.ActorCoCIDItemsRules3](#coc7actorcociditemsrules3)|❌|❌|❌| -|[CoC7.ActorCoCIDItemsSceneTokens](#coc7actorcociditemsscenetokens)|❌|❌|❌| -|[CoC7.ActorCoCIDItemsUnlinkedToken](#coc7actorcociditemsunlinkedtoken)|❌|❌|❌| -|[CoC7.ActorCoCIDItemsUpdate](#coc7actorcociditemsupdate)|❌|❌|❌| -|[CoC7.ActorCoCIDItemsWarning](#coc7actorcociditemswarning)|❌|❌|❌| -|[CoC7.ActorCoCIDItemsWhich](#coc7actorcociditemswhich)|❌|❌|❌| -|[CoC7.CastHidden](#coc7casthidden)|✅|❌|✅| -|[CoC7.PauseName](#coc7pausename)|❌|❌|❌| -|[CoC7.PersonalSpecialityPlaceholder](#coc7personalspecialityplaceholder)|✅|✅|❌| -|[CoC7.SANLossFail](#coc7sanlossfail)|✅|❌|✅| -|[CoC7.SANLossPass](#coc7sanlosspass)|✅|❌|✅| -|[SETTINGS.allowMythosHardenedHint](#settingsallowmythoshardenedhint)|✅|❌|✅| -|[SETTINGS.allowMythosHardenedTitle](#settingsallowmythoshardenedtitle)|✅|❌|✅| +|Key|de|es|fr|it|ja|pl| +|:---|:---:|:---:|:---:|:---:|:---:|:---:| +|**Remaining**:|**5**|**17**|**5**|**22**|**18**|**5**| +|[CoC7.ActorCoCIDItemsActorDirectory](#coc7actorcociditemsactordirectory)|✅|❌|✅|❌|❌|✅| +|[CoC7.ActorCoCIDItemsActorSheets](#coc7actorcociditemsactorsheets)|✅|❌|✅|❌|❌|✅| +|[CoC7.ActorCoCIDItemsBest](#coc7actorcociditemsbest)|✅|❌|✅|❌|❌|✅| +|[CoC7.ActorCoCIDItemsRules1](#coc7actorcociditemsrules1)|✅|❌|✅|❌|❌|✅| +|[CoC7.ActorCoCIDItemsRules2](#coc7actorcociditemsrules2)|✅|❌|✅|❌|❌|✅| +|[CoC7.ActorCoCIDItemsRules3](#coc7actorcociditemsrules3)|✅|❌|✅|❌|❌|✅| +|[CoC7.ActorCoCIDItemsSceneTokens](#coc7actorcociditemsscenetokens)|✅|❌|✅|❌|❌|✅| +|[CoC7.ActorCoCIDItemsUnlinkedToken](#coc7actorcociditemsunlinkedtoken)|✅|❌|✅|❌|❌|✅| +|[CoC7.ActorCoCIDItemsUpdate](#coc7actorcociditemsupdate)|✅|❌|✅|❌|❌|✅| +|[CoC7.ActorCoCIDItemsWarning](#coc7actorcociditemswarning)|✅|❌|✅|❌|❌|✅| +|[CoC7.ActorCoCIDItemsWhich](#coc7actorcociditemswhich)|✅|❌|✅|❌|❌|✅| +|[CoC7.CastHidden](#coc7casthidden)|✅|✅|✅|❌|✅|✅| +|[CoC7.ClickableEvents.LeftClick.Title](#coc7clickableeventsleftclicktitle)|❌|❌|❌|❌|❌|❌| +|[CoC7.ClickableEvents.MouseOver.Hint](#coc7clickableeventsmouseoverhint)|❌|❌|❌|❌|❌|❌| +|[CoC7.ClickableEvents.MouseOver.Title](#coc7clickableeventsmouseovertitle)|❌|❌|❌|❌|❌|❌| +|[CoC7.ClickableEvents.RightClick.Title](#coc7clickableeventsrightclicktitle)|❌|❌|❌|❌|❌|❌| +|[CoC7.PauseName](#coc7pausename)|✅|❌|✅|❌|❌|✅| +|[CoC7.PersonalSpecialityPlaceholder](#coc7personalspecialityplaceholder)|✅|✅|✅|✅|❌|✅| +|[CoC7.SANLossFail](#coc7sanlossfail)|✅|✅|✅|❌|✅|✅| +|[CoC7.SANLossPass](#coc7sanlosspass)|✅|✅|✅|❌|✅|✅| +|[SETTINGS.allowMythosHardenedHint](#settingsallowmythoshardenedhint)|✅|✅|✅|❌|✅|✅| +|[SETTINGS.allowMythosHardenedTitle](#settingsallowmythoshardenedtitle)|✅|✅|✅|❌|✅|✅| +|[TYPES.RegionBehavior.coc7ClickableEvents](#typesregionbehaviorcoc7clickableevents)|❌|❌|❌|❌|❌|❌| ##### CoC7.ActorCoCIDItemsActorDirectory ``` "CoC7.ActorCoCIDItemsActorDirectory": "Update all Actors in directory",``` ##### CoC7.ActorCoCIDItemsActorSheets @@ -69,6 +72,14 @@ The following translations have more than 50 untranslated strings [are you able ``` "CoC7.ActorCoCIDItemsWhich": "Check Item's CoC ID in active compendiums, world compendiums, and Items directory replacing the Actor's Items with the best choice based on these rules",``` ##### CoC7.CastHidden ``` "CoC7.CastHidden": "Cast Hidden",``` +##### CoC7.ClickableEvents.LeftClick.Title +``` "CoC7.ClickableEvents.LeftClick.Title": "Left Click Script",``` +##### CoC7.ClickableEvents.MouseOver.Hint +``` "CoC7.ClickableEvents.MouseOver.Hint": "Return boolean if should allow click and show mouse cursor",``` +##### CoC7.ClickableEvents.MouseOver.Title +``` "CoC7.ClickableEvents.MouseOver.Title": "Permission to click",``` +##### CoC7.ClickableEvents.RightClick.Title +``` "CoC7.ClickableEvents.RightClick.Title": "Right Click Script",``` ##### CoC7.PauseName ``` "CoC7.PauseName": "Time Stop",``` ##### CoC7.PersonalSpecialityPlaceholder @@ -81,3 +92,5 @@ The following translations have more than 50 untranslated strings [are you able ``` "SETTINGS.allowMythosHardenedHint": "Allow Mythos Hardened sanity loss reductions",``` ##### SETTINGS.allowMythosHardenedTitle ``` "SETTINGS.allowMythosHardenedTitle": "Mythos Hardened",``` +##### TYPES.RegionBehavior.coc7ClickableEvents +``` "TYPES.RegionBehavior.coc7ClickableEvents": "Clickable Events",``` diff --git a/.gitignore b/.gitignore index 0a998f63..e97d50ed 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ node_modules/ package-lock.json target/ yarn.lock +/packs/ diff --git a/assets/art/bookmark.webp b/assets/art/bookmark.webp new file mode 100644 index 0000000000000000000000000000000000000000..a8c4e9b48f0b6a5a5bc0bbac3eff5c421b1ef774 GIT binary patch literal 1912 zcmV-;2Z#7lNk&F+2LJ$9MM6+kP&il$0000G00016003YB06|PpNT~t<00EH2YTF@6 zZz`R!ZEJ1Ywr$(CZQHhO+ct)sPG!=mR4SFaXxF~k>xh_unmtXbO^vGhqqQ4qb{93u z>WjJtRPRhmxmD4Cs%=Th=ZXrb*wRGmK$?K^tfUyTIK^3y+O)6%L^!cg;f4X51`-$QpT=sK*kxFQ)Xi~Anh2bUzH6&+96iO z1t4V)s|*21+98oj0+6(c)Soy232R7YMgWLgK`J}MVv(6x%sggMGf4fih?q?3i$&P@ z{QtD5S!QBMt0ZDYcge)co?%w?p2F#eMcq#-r%a26xfnPFzY1$(+odg=nqLp zN*JK%V`O13SS{H9f}$5S2GDf)W27JK4q7MaL(33!@Sw2=93T5e)kAAHSBaO3!nr<` zcS)|>=I5eCDRAX*(N(`fT=8RU5L{h*U$#q(Va|Kh7`hB=c~5nolp;7sJXRX|HH^$u zouqYibA~)82s)2zyXx96)d^<;98%wn4#2-CL}avI_e^o%SA-)kYUAGys5<(P*_M)E zmuXvBP;7ibv7*@{&H&Ghd7`FiN`y7_)o>qhZTwAZ3@g8Cg0rTnFIs}N_Nl&yKnnm? zP&go<1ONcA8UUREDqH|z06uLplt-i@q9G>rTi}2ViD^Gdod%U~H+ES=>3xHD!}`wi zJ;6I+nEXEZKz-uMN#^_-e-0Z~Ku(b|yq{EZ{kpWM_P<=WWl??if)R6n*q^O5)e!t< z=js0PkkwHe{e`ktd}2OQfef0kCzxXfB0!OQ|Lk*u7q?jh#o4LF&}!?aio1)KA1?l8 z$9}jiZ=io{wF=qq`J~`5YgL@)}Yw>8b9M3Xb z68+JQN0*M%;5;)PXk@rtdPfQ&0092`p}7BX7Ug^<hC7u@DXFA+Y0QX2swI-Q6 z8v1+K^Dy5tfOy^yb$XF4#G`v1mgYN}HqOu$#o?Luoug9KUGmT_U=*GPRF?^Fxbz?} z+2-q3uVTCXgei`cDP|^Z+9=p^2xJXc4B=h9aAD@)tbGk&pj0}#6X&HFuQD!`P2>ro zS+Ps*Q+zzB0Gw9Dy*?6=l- z<~*iU^Mat+#8@;xpIYg_vIkv&US?KOi#15$jp-eWfWZv@Su$&>29iSO63z?josSL+ zpp9RaC=Za6x+((br~;9pwsxkdA-8ev=v%yMPTx$NQws5-x8QDg6w{bN-*VG%0hODV?_r~<3I3iQq6t7{Lw42#g(q78K2m@(_B%r!Z2X%~RLrKt_W7Ga{M=E|d^mqTvyY_s6G2JMN zytcBVBsvcMNt`{H8o!QRCy>m06>lW5#s<(*@h>Y=3y*8H0Td?EK4pRC5uefT=8)9W zfo&YGssMXOSf>=^p?;Kd`*q=p)s8~$v3%Quw&DU0CnvXUMO+6#HVwrlhiZFa_u%K2 z;pwpD-E^^}oKSLC2?ZLxsse}8XHhqbvcmJ9)%uGO!vEqo>+`|Ou2~o=L8yVq;E&+1 zu6}shwpBvLYO~af)hW2e2WTZ8P5oAh?iKERa91GkiBln?t(EDSRSK3Nd+*^f6^qRE yMUU<9sXwbTq*2z77=WcV(ob8!|9```xP+vBMsBrsW&BG-1YRnI{v3b+0002p0g1N& literal 0 HcmV?d00001 diff --git a/assets/art/bookmarks.webp b/assets/art/bookmarks.webp new file mode 100644 index 0000000000000000000000000000000000000000..84ffbf7e22d6e66545c9497bcbf82fdc00655029 GIT binary patch literal 1460 zcmV;l1xxx;Nk&Gj1pok7MM6+kP&il$0000G00016002S&06|PpNaXLu3jfS*{)v&=f)7o2_u_53V3We4@mSDf>MdfS-w zq}G*MM`~>?%vw@wOsgb-`qXOXvnmasDz%E#%2TUKt1N)VxvVM!=*-GeGX@w;t6>Z< ziB|I%V7Y~qt$iG@%fYI99B|pos(%9TQjl_tOaR`}nwS8*X62fe1U#iRI|+Em%Cj^D zxJ_$Q3UJ*|%DXiU$X2Y+W&jRax2e6%0xYz?W&ydhvWo)Qv@Fyd#esZUp5lN_qw{{f z{KWx}Ca%w`GJxqny&8#b= zzm+-+PcX}Ixgm^AYk$CN-kuDTwp53iGaY9AE^fxp`9)!N_anKcSV|iAxIeTkIrP3X z&Radk7{{6B&^K;&wlqkMO)$d0t|&CGICAUt-_n4ySy9RNbF)wwV@lT^z4N(<;&y49 zUk(Lp^|^Oa3@rdwP&go<0{{S!5dfV5DqH|V06uLrl}IEaq9G=7x~PB+iD@&4pPfxS z)HAz278ox6&qSsTUD6<|t3n^J05l zK-_@8sp~tR)S2N?&N40vd5z*jlaru8Qbg{*92g+BZ6p7b8Sx^| zT^%(FnVRb&zc1}*0RHvrWimSR_h(kXie&q{G{%?A$GX9Tjs+GpM&W1~sNu8{szFs8 z&pds^rpM|Y(qAXlLiYbT>rOdTJ#X@4a;?yn*WG7=&>e4vj%!Jf|4WAK+YcWA%iI0; zfG^T}aWXcIDDX13FjzZ;V5=jG~E?p$Uk4WgN;RlDXRD>Br(nxA^&9%Nx} z{*z+YG~fVx)|np+g6*&5JZdRVa@v_sto{sEye+F8FW}nKw)EpPrDk<^4kgs#DTOq< z-;a90(YwPxcObZ#a;@+`msV1EFZl7|xcnq8LO28&8LGxwCYbPfB-DSp)@Orj5HWGJ zss6!!ZTrdMn7FG5-2mthD9nC2ZV>Q_MOm*Q@j)ObhJ;K zGgm!3e*$tkZjOe^ks)^n-(EDvt-rWXz47v_uV=V1{DVb4TNfns6q>>sa)hySo+ADD zr}1kgw;09`>7Ka{&cU`G#dJcdTxBLkt^wMw8}l?Rv$%#`}`FKJPcsZo71WUHn!i z!k9$df78S>Qo}z663085c)W>=6%*J|d&o?MW^5_Pq5h+0q)_0cmYi$PK!0*>nZiRw zQG)~aK=`Y-@;cOgB22Zh+Y()qL9k9SQ>4J$!1u5W=;b)(@B!4hI5hq084_#92c z{Hhv^DEjqP+{16zUNR`c z{ux~S{G}2VG)&z-X2SA-qGLBF(1i@iTOAgYCEL%MP)25R!O>Y>`kxU_wGfrWDf>Xm zDuc~PI|H*%9I%YwT6sZnNVTqfI~x;9cWTR{LMu`q)O1W>i O4WH`Zq?iBz0000#bkQgP literal 0 HcmV?d00001 diff --git a/assets/art/chat-bubble.svg b/assets/art/chat-bubble.svg new file mode 100644 index 00000000..ba72b7bd --- /dev/null +++ b/assets/art/chat-bubble.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/art/coc7-fvtt.webp b/assets/art/coc7-fvtt.webp new file mode 100644 index 0000000000000000000000000000000000000000..70ed07321e88883090f596a936956320e480cb2d GIT binary patch literal 1238 zcmV;{1S$JcNk&G_1ONb6MM6+kP&il$0000G0000d001BW06|PpNRI&k00EF}ZJS{` ze{5rDbF_ysdlXw2;G;W;ZQHhOr()aILB+{C_-ohc+E)+}6Cm!c*LgXsyyUauoR^r+ z;vb=(SN5y=9Np3Hkb^mXi*O$ByUnTycK6b9^6Xpr<{AEoq-`6Y%lZv>kBQ!lla1uD*`%<;@0_FM&Np zik|A7D!pY!YD^O;xga}S_JWe4huAPSP26oQfo*HoDY!l6sfp+6{V{jpnCmU-Xw;wGcbVCh1o;gfRSg?7II0 z6JihATJ)X}3CE~0>R%#+bTvF4A(HkK6G=V+09H^qAQ%Gx0Pqk1odGH+03iTAZ6uLJ zq#>c0?qvW#2E?`iRvDFBN7Oi)_J_S0FMJ&PZtVfeXX*pY2ki&zH?nX0e`4N%AKL$t z`Z;?S`U`%odRhAw{>%Qt`$vEEr#UbX07`-x_lu9J_xFreUS=M>yscGOHlE12yXf3^ zuX7ce;YxxjOXRclm4NjBW*jIIIW@$APwTY1E0tM%}$bgb4 z^^FVlg6eX;(Vt}tGt+$KjekmuEBVjSY$8|hW4E8_dUmWWjqeuEAL zv$V5nD!peIVB_SM$sDTu`L$dLP3_)5{W+lm7r}pdSpU)Hm88f3w~zJT0_^8Kd|*xg zPT?9pci%Tf(zuktI=IbG#os?kKl~Cw#!VrkO}8# zf|afH6W-kuPK8ZT@FBoKI(2bjd zELO3bSWO|dRAs2@JzXHvQh^cA+%uxuOk%8|D|x_<^TWy0I?@u AJ^%m! literal 0 HcmV?d00001 diff --git a/assets/art/elder-sign.webp b/assets/art/elder-sign.webp new file mode 100644 index 0000000000000000000000000000000000000000..2e29e5a8f094bb7a60b010a4825138c5cd0650d2 GIT binary patch literal 1376 zcmV-m1)us-Nk&Fk1pok7MM6+kP&il$0000G0000f001BW06|PpNSy)z00EFTYug#g zW4gy(S?_kO&9SFzY}+$yjn=kp+qP}nw!K|rWYyJme`q8-5itQ=B*5rko~a4Bk5Cd?E6nNrL>TLQow9_wJ4=-4}J z)-%oTdxvIZ`Ff5QTkA7d*mhVl^jI;s=->ns^MLVl0C=9ew&@uusxO(IyLT_YR72f; zp4QM?yHM<_67mHAi2Pyg>0iIO^1-6Is#JTGn%eRy?l3Z1I}JJcDgc35cdq^YOWufo z)!+40M- zpuZzv?f!wk=T%Kts5T80>Mz;%caMl-!ZtA(ee6+8dZNsYP_(6)mZHd;F=a>b9 zzKb+`vSv6VtHMqykBipBg; zQwji~+nj+XKA9S2OOaX?Dy4$tBvjHz{3KMCd+d$MI!A5!-v9tsP&goz0ssII4gj42 zDk=aW06uLjl13yVp`k7~3ow8UiEIGH3;>8g2O}is!GPN*xOe@A`A47!O8Wd2pr8aZ ze--~j`vU(a{>RlD_CwfH_5dh(d9c0>YjV|KKRJJdZ$k)1iWx_5)EoHo8hQ4%MO6V^ z={U_3U5sD=I@SZ=0LuxAzU)bvhn7xHC|U4L`d3{x^Kq$G?rH)8g0XI|J)D@FnJPPM z+qD5i#4q8rlcL*Fclr=o7y_w1_yRcW-u?itA-Z8XMeiffN87Dqh5-sRZ_=ImF1@ZVeKS1y zXuB(`pEj)(R6p5NUYwcZY|iv7owtgv8?_1yIx%bPzgwBxas59aPx~oYrY*gFrm>1> zCSOYRk#i95%y*4dbL*EgqhKS45$!_yEE}&4f3WhBH}iK(ui4Iu(ZsNlVTX@&ZWT1Jx^JVp^?cGa0hlt%c_)46S zPGQ!)PA z|MG&@H^tDi$OAT|gWO#-8Gi*j-Fl!e#;F!V7df$3`KV{gQ;M@MJ zSF=H(%v6=f{30#&^&p(hL5V>2w%VTUd>A1CXr0riIwVaHp<#;*l>g@S{Nni6zia>b i@Bk>wznAC!Ox^VD`Tvphz2LGKJeF*q(q8}o0001BU9Cv~ literal 0 HcmV?d00001 diff --git a/assets/art/eye-green.svg b/assets/art/eye-green.svg new file mode 100644 index 00000000..d6f6a97e --- /dev/null +++ b/assets/art/eye-green.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/art/eye-red.svg b/assets/art/eye-red.svg new file mode 100644 index 00000000..5016d4f2 --- /dev/null +++ b/assets/art/eye-red.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/art/keeper-bottom.webp b/assets/art/keeper-bottom.webp new file mode 100644 index 0000000000000000000000000000000000000000..db9947df1dcd830392247139acdcc35c1b539259 GIT binary patch literal 12952 zcmZvDWl$YV&-TIH-QC^Yp}1@DQlz*Q_k+8;yIXNPI214L?(SYVZ|`U3`}fUclk8@8 z^XJ-`Y&Ox5|MDe)69CYakyO)B^w& zzHi}6KZsE*YU`f@tkXDw*(ov|>>;CkpS-MD#p=(^(>=;4{7FgdWO>7Q*a?B$KUOqL$!h$WS= zbmhgPectes#t-M&IhZtKt9YtGCV#zNlMb1z!fe`xgr1 zh(_Bk>b8FN31L+UAo#wC4|>dOy-n+aU7LcrJSUp8llzljURbQGL&-XK&$s(C|6Y;t zx+$Ms}(pmd5Yc9lINR-}oT>bACtt@iiV?IOk^Ac76-o5h=+ml`iGo9~y zcx-mw#@MxM38Zq6Txa<3F2#zmfnU?7f4fFAsmc`osS_nS{~Pe-nN^TV?Cs^3W~Br! z*R&<4X@1$rs9?NU+pW^Z$L*bFCf)l^{_sPOfsRKW?cdhROr8LL={(S*iRg3MSmqZH z>}gZF=-av22CM3_4_T+<>RtTisH(xCBUgT5awn)zEo@*_5pMm6w9gvsU;w!pe2{lF zFCDPNcRZN<<}1?{+uxKPrvyF`DR;cOFE0LQIX4NoDD5;qUa8!La+BKTp}qZF{cwZ` zpD|u*zgqOj5$!%^TQR`+HF&xzL>z75z z`l~+#e}|qwN9b4K0SYWPQBw6=(x{I zzRF~N+y-}G0EkIodB*2ak6Z#?J6JG(;BR{4N@ z5Up@aHMa-YK(@6+HmV$Kt5SE$HzHBkly-jd^qP$S@wQ;j;(zV)7c4 z|KmH|=R;SMT0;AIoE~oypt~?=3o86g`?S?c1)(oyLUbv`-&KWYjP7REC(zY~qVx8g zNLG0T?xC*QnNVI+>btg#Qj;*xw!fYS8txWp`)Pd#zo-|VTHr{kZGBxUDvRh}X({te z<1><#MWO0KtNGcjLx|Lz7gdx5z3;c0J?rEc<@ho{JPZFeoQ&!iAUGGkR$<7zS2+CqhOt@<)-D1{Oc z_|GWPd4b6+(ugFcoqYLmZWP7oJKw)3-5rUL(PC2OQW1k}>4!AwsnuL6>cj0DX2lHK zf4-;&2sl|ffWUuzi+3!#JO3Ktp(t1HupYPKE<{Oe+?7Y#pvu@|Npgx|VjEZOcv5RtHz{*R=w;=uqM&PM1DF z2r-LQ&8TlUwaY z1eLgPrvf7Jr3RuQxgHk+ezVI~he>DKAon!nz^aK}P8vEvgI}ri)N@GQw4N7?dODft zF?w}X>T2EHq;x&UgFBOSH;TI?Ym_(rYI6P5KJq;cD9@o;nLSiYg(NTcsw&IfvJVcIDmMp*q%=cmg5j{c)@fbmf0KPrj1?_f$DwKF4hc&E z3O-LH=dKt(j6fBLPSJ(eV{BcpKF*|S_h-lMd1AIfXyrDc@%VqfL zGT$RWAOjpwCK=d8IAi-w)`n)-QAI^pAmJ)oogk_1+O6NP#kPbAFrGJG2f*|(9k zsQNphM_gqBA8tDc-I6UsUf&lPA2)jV7k{UVIhdI%*|$7v!67QdW(lgRUz7fQz36KG zDEtbg*_3kuU-b!jUq$EiblIO)hbXF6IYinE@iG=pmbsQy84uxGLv90XCHYfQP4c-U z=5*U6?z~=9qQiB>eUxHXX?Y*YAIp;eL2f58`T6VN#CPm{4@v}QaJy&s`vPaQ2*PuO zUSmhi=^tIb{fqTyUzUx=HWp{*?wzUXhEF0NI3SYlske2zS0DVE1_w53B46sLnBVCK zzEFnI5>dXs6ZeZm)kSuIAmA->{iuLzULP@IK!g;b%3Be!=1E!6fHkFm4Cg&s$EHZr*5-2}#8MD*d0 z{88xrE2vf6bx#}iS+Yo9mYG;5GND8iHQMl?{{>+>%fhxE;x*3)&Fhd*?33 zdNlf#m3FQ`U5a~xK-m~IhN+)fR7RrX&| zR9iNC=L@>Y@xtc#7HB;G3>Gg>3ek#|ctO7|Nox!b*4U@~XJMs7yyspoqk0XCo%7-I{q-V){3K4Y&Ux3K_3nby;4BL*% zBJHAW0gFf?e4tg#m?ov}m)ELzEqe|;VM~)Og8Fn&)cmE5I4iKNbbhO`XP1@NFtlH` zdj_iSyx2Cco8+V$?lJ#@LFILGdNm&=N62_`4gOPQL-ZqC_pfHH(dS52dET_)aSO}K z`aM@1Y#q^g2X%>Vzvk{=)4|Q7BDm|Wj}hO!=Znbnne6xP@2S)+R4vLKMGS)K6#~f4W${u!(XI)7`4i=r?ahgvqsPQG@WTCmuFsN9csv#cj_cS?9Tjm14KH zf^rP3qxJN?1(Qk~drzUV@#(&G?vI`5=QaR-rSR&|D?8xt!F~JTJ`x17-%ZtXa$IG- z_A$r_?{(U9tGh z!^Q^{zE;=W>CJiXDjnRvZ#1#|Q(Zl2h6Lw4ZQaH{#>>yWM|US?pC<3zWS>}Hd`#M0 z4d%myJeC7!UoX?pkkKs6ZJu$sD3`uBMiJTemOQc9RUULmb)8$C^7$2b+@MVm;`y&> z9zxh(hii!Sy46=k0xMrnWpy?>8*S}vXGT!yNL@WP|G0ufH;+QYxVeI(%5ddn!4^H= zRr8Z8-p=>a1GcvQ_%#%5b=M!(Ez~)_>J$;up*CkWM)VZcE}kdN^N1%6L{e$uL54^s z>9z%s-pHl|e#@5KUkvVY|GX$XcTJ4DV`~+|C$*my@(|YC)LFFBfu4Vrw7lKgDH;Zt z=T#Cyr@E+ieEqbd6%1jFvW1gVhef{P8fVcyp42HUs)!j|Fc1daCk>OR zKOUlbDR!41k{NV<39v|~sdD4*-M)7?=Fe=5`+FKL%WXX_JfeEpN7C#4lA4_oeVfg< z)*2mc^UkXHaRYPTij@C0WWq~Ap8^7xD!U5$Y-9NCr>epV89?m(@La#DjQ4e#HW&+? zxdeME&&2b7wtSjw?Gc<^JVeT}8sL;chX^vtsB4Z;GRi-Tf?un}+8|x-ZC(`mtA2|x z?U{c??y-;nkm!Jo%uL`J-bML!Z^%&7(`z3zJ7<1;CE8 z0JtK(&S9;+j1~_q8DXa~L(L^04gy|~U|TnoNO}g>jU`f1T>}XCqNMyy)GCDum9ImK z9@+}qDy4~wd`#Nw`^(%$+cwfS+Yn_`aZb;Q_#vaDB^OR=g2r6h8wEz`g4UnP$7uLXtsAJA0#V;E#7Cnb1N z-+q^g`F);Rd*FHvEyj^$vG|GDl$_1>KGssT1bCS{fGCC%&Sj^JNKAr^_^2>HpAs?_CtKdYU2E(kNh4Wt;%ut>qbr zJ{YTVb-CjsK?WJVgj(AV!+{M0q)c=(w!SuUscRA+h?wymEi21A<}LjS;C7Zsff&GI zr+`3EyjBi@dF-H-kzY}lqm8aA>SWc<)PmLqppI!%(8JsdO9?8Js~3Kq!@rlUK1+bL z7t_&B&%1hc+ghsczJDU@uBzJuPlIk8p$8ZU9=~sr=L-Z#J>2vo=@8U^VD3{10A3E? zuk!es>3jV7jQA@;f(NxT4)94xKXpIPQ`egp@x^>iztEql+b{_3ASq*d7OQ6>TWyRt zGR_ozIS7w8el?Phs5Wn>EZ$neW~#A%z%eEFKJc8mUfXU``(TIqyY)FtOWq!ptNXN8_)J-^oEZ$31{~)go`_F zreUMq(`PI5j-As{a;dxtMr&dRLus+Zb=6UdZU$#_cwEb?Y<`;Aiau$q{>+XrX|G5} z(Ift=d+DebAo7)UvL8Yh(R#|t6gHqmzUy_>qnmkE5>*Y!edcoIM@f=F3-#onstpu1 zMDkLN`Ki&9AM7y>B2^uUYPH~*qi_Q{a-?+M2?7R!%CxJ_GICyBr0sHT3lW|oN9wj| zg@-s~Hqj?(-H$jSw$tczIHXg?A0J?S=k3PM=Ui~lxr(sM;;^~Tvyk4%+Ru7tgZ#zJ ziddrC({tmr$l3rJvi$j{zWui7MjkgfCL7qQC<0YS1={d5onCE@#U{QsEehb15g!!) zl`@w8$Q%-3`ucwAs~-xU$9Z>_8iSG84yN1s)8XM85!1XKZsXF-$0}1SWm|QE-g7t{ zWE<~t{NiFu{hDzifAeQw-HI~x097Hqj54mBHLO(a}IbI7D)%qK~^z>%)+9+0Q4pExd?xl}%a{IlldJ_HyDk34DvqY=RkUix#M=ASDF^(z3o`&JZNcvPh+# zSMlOeU3`bXmJ6p7KNqpxR#;?%32dCrj2lpcR|DYJNT^c1MT-?9p&5Fv_OAkV5D#0@ z`fBlXKHCMme_9PbDtderx?NOGwy_>}z2{H<=%Tb|Im`OpWFSVi<(hZGVcT;yj-sGg zL5mke4G<0m$e8di>J$#lCPscUlLyE_MnG{Ps>1+?Ns?Rsr5Q4At(8thvHh%0okTg0 zS7n8c`Nu{|^9M)rjXh_76JCc#$6fhej-*olY^S9~033uH+?t%&@YlwHPTwa$vA2?( zF=TZEAx7$5A_3s0qp06&7oTh}V7IL^4FG`nTju~E&Ng;ycS_+D)o=8ofnQX+KcKRJ zzqr`Ku#o>zE9G1FHHs=kpfEw%RE8dA%=0k+ODO&)Qdjnk`!oe4a_k++{E`>rCsTC) z{A0j^`shiU84o;1P8BtNJ{pNvPf?tG_SYFc+Qm~%m+wBq3l_7o8g%+>M^{_fKEcEwLkv0a3kOlxeL{oyD2fEa*5+ZRa=` zhtefcVRKa4L+oLQsW4RH@*|3BdYiOJNM&%uazB7_lH~m#aVS#u*IW_TXD;*8)!ZF! z4M1e?(K_8L^`ngicRR=KeUjN9OPdbb%GJLz|IkcuNy*9FmQqV&GB6}yaWDYT8SqOe zxj6TNU-idyQNrr%ITwne*^V{&HWk1qPhBZGPS%Vg z`D)^7H*Y#9aMu`QYx!8Cclac&|7Zvz{sM8v(AF0J8}dovdu#r z1sO>iCoiZD_?p%?qy>p-N=%Lkz=y;7rFJ;@$v?pTb+a2Bh3{M2Za>{@{sd_>dH zz2Kq^Rr$N$l$S9)&!w)zJaDKg#mpr5O8+~F!Th5wi}R4l0^w2pu_bOQTsZasFx0i4 z-zGHdqg8hAn8a6ht_-wLf`z@nZK$eNmp#UzG2uIpfbBCd2I~BfSkqed$04Wz=u}>WYT^O=XvzI`Q0FNji!EF)APC=iD9ug=gjwy$T8u%{#JqKO43OmU~ zB0|`(x7?q4iT+X9{m~ZB3Knsq+!A>r3a9(-Y0qVTokwA>-?zp>dO?xWUfv9n@fbTd zRYIP62Q#2XBP#ItxZ^AZnGq?7k;e=HfdQM5TAUm{F+^@=w~W^C^fZZ{wFTWQAwgP= zf?Fa`vPvFvx7v#^DFMK;ia`UE%$b&3IFygL&4Do9RVg|c6QUH~Cg+G8#UNQQhG}2 zwOk^q0zg9p9o|7L-fGi{;CSx=9a6r88a*N5A4*~ryfG2PA<2^yq@P0eN$(YbI3)AR z;Y6i>O6u0r5NE8K53(WD>3@an!3){P#4SAAqA;)LRaK<3&3d;Ple&kLGESa3*5Xif zRZbwfb$BO#E=3S9RTj?f9WrqetG6gAo;p+F)MeOgXhW}6yNuM4Wy=8n($tnCt5yN@mSuApMm^rp=ty@{MmbbbiAnXFR<(H za#lWXAtSV3c^+M>D%X_l5tOtAtr_WMD0BN=hr%(%^L+6V(TKwAD^ZnZ1nAMa_?#;o z-9qi|Qi^yCa|mo+6wcalqpq9=eT9fgm(6(vtdVe{m3JP#WbIO$WczrWr=M-&Z?$eL zb9hbPJh6pnSO5@DS3rjsrF90_*FUrc>;{>Rf-Qb*Tk?Qhxy$xSfM#a0qt?oEoY>e< z9q^x{4y>J-I4n0f4EVIyrA)U^lSWOqL~9mJw_@v>5aa=B=6Kr5mPx{nXP#Z3UE{^ z(1!V47uaW8S9dSgc8k{W;Gr^epr)LDiyuW0PG46ip;MKS3-DgZ+l-mIsx$FBJA;bM6xqR$KYCv7Alh`EB|QV?<_U#9W?g7T5AwXe+8v zL|ZZ5gtOGQ{SkOo_eRoWLTLCLUXEMiGcmK6lA1sNQNEQHZ%M3T-24ocS#_q)Dd)r8}Uar8&^q0R@gPi3mI8)0l|QAUI8)d7g%b)I91V z=j-66(Scumj3IhtngVjfoO2RjCk4JAo?JwMfjR;kh%p*o2>ADMY-c0*)>HK57U5fp zqS}}*0I`HRM3JF1ZCe-p?e#ZN3VJ*fNQz2k;Ep0yF09`LXSjLXQa`f9YeB43`eWmk*rtp*{_ ze;DN?V%$I(!r<^{8M$2}IRqd|g(bg>A40Ck6AIyEU&Vz^DXcIzOuHOMxqnwM7Mbie znPBPd9=0&XF<AFojftCuJhA%bO zNQy~@7Pp?C{dE+@cg*X?7DNrIM=FG0#tsQ?k5WbE&tsRT-6JZUg@xIt38D^6Kn`TX zC!)L0yVi2XGT3Vxk@p0hrh1C2)AdJd%|mZCo!+ymJu4`C<`jrNGoPWi^;v606VmNs zLu<@AV;Ta{B>@uh>V=YpbKwUe1L=&K06Bm(5Re2f8B(y(ir%^abV$Rm5!VVty^>$( z^b$$<{r(k>u&OA^069V;ca{|y`N@(H=ri}lQPp{gX7m~E02&_`=iTFdJl?yl)#Z7X-w!)4BULp$-=prJGirV%on(8NJ@_rRl2v_}`8NpPL6yIkt{trg*xQNlh7)%=c>SuysR!K|nT|az z^jx>#6Zmh_RoK5>y{1t6mc1HI=ft-c(EN=6fE0c|Uf%MCZcuE{^pE;V(ru zYB*XIYQN25xfhMm&oZ|7{Ui_E`r|wFH{voX4MS`XMlz7xSBph))VBv5(sN33Ja`GH zXTC?cub5LjkYlXUXlbP4pSt8Ef`-{a zP-|bQ)G_TyuTXaQLZ*%+!ioZ=><21evzbJsBCOopay=a~#tr{ptx6t{hw9~D=q4FJ zr3SZMGRI7eSDxj;+g>C^+khJ-1*Mj!p*ld~o4k=Hb^82-q>~oKt^o6%RHCTvJ+%^r zLYM}AU4*%tXIeiZJsH6~B**d}i>*p&#%U)P6?%YNBFhq%IOO2!T0=Q{fs^4E%*Kvu zuw9y*_AL9Hdab#^gD*7Jcrx;WnXpwW-pGhm`i#Rj6^e0qSYs1z6qQCLpr`C$Y!V;= z2r)Ou(C2q{M^F2JqjZ8BY`uKc8MBtizEdU;L_iZ*Z`yr$MpJFBgIsD0oP=&KM>U9L zj3W)$y>b(Yw%k}0w=aWC+WCoCxYLXXNUQo6jnD)7Begh;A#;+P0fu7$>#nRKglzNT z(nLKRDj<_}ztZTpDxM2I&r)$<$*38(Rd{CRYI0PT&vg7pxi~42f&aHdr26Hftf~~J zy6%9;5kIP1!kDN_I$yfk?XP0BY-?Y#_w=P6kNWO{jZ@heX%<;@4f@_?1)tii%IdIZ ztO(10csO`jI6p4b=^l%89v0ulk0?uY(D8J+D$9f?{SaN-Hto*JAFcB4&g|uLoceS+ z8lbwoq(~gBl(o#;{<*igZQXNntJt=^Y3FXl&;Q-VLfg{QN3a`zRh?4R3`ec z+DMOGRtz&sBjh^y7puHa6>4QiR)npGmA>wcd+0`jWwX2leZpi^aR0bc+fo(=5@}_(4h(?q>*0A4N6|5r8 zSWJms%?b0(96Kp|^V4w)?5I52|8b;}FSoK-i2aRX*5vd@3J3Tw?X8eOk|wkOsJ=eO z|T@#x7nFun-;UU!)5` z-jN;&3xFRDp$3pg>%<_2u7G&^&?7&0sbCO2(Mqcw;O=xvt1ku0m}C@8IQ`YRd?d{^q$jJ+iTkKk(d3J`5JNvk^oiCf!aWg8!2=` z+DukKhca#!?waAQLt>N@-Gs%n)EdVsWbB0D;@HCke+`sqNohDhJ-!;f(;knc6POlfe+D_vvWmqwAk*1_FkMI_&A-1}IY@C&r9^UcNNj0LIU9Az=}Ufw zhLj?&BX+Yx?41%hNUaqZo-N&qvyDDhW;=}g&M@7Q`C3g_ADgwLdBo9!zVDTxEu+t@ z6l};XI<2uf>Kq17%9V?D!y6lk-c%dRTh13C)tYmMEE9r(xUFh5GJ^}NSUVrDU#4~A zqW9%9ADelbQMx(VuUBf%VT*ix_g=xuf5U^XH)%Hu*Y@;+Em2!w<6zS@Mt@&o;ovy8 zz4XxnQ+!bO8vvUN1ZIISi=Jrg)Rm7 zHdc{^1D@laOD4j~9fjT|rbpoNA+PdVo`C^zm);`Y&l9IZ0eAG<79Z!fX6ioHiLMQ4 zPwMJ!{XbOS>blMnB6oY&G$Hh8x5Dnh!em&Yp9go3#S>0ZG;L5{h(75Q_PikE)sXkN zQSDb&oZ~h`dhE})6sJWV5~MaD?M*ZKE}4RjhS8U zCN2^#?K~b{=g-yKE188{tvridl0!c}E?P0lZ&NRjCsut!j(Rji>#T^$%6o;a3>QRg z&+fflO&VTn>*$$Eiuy~AaLX%X4bnt3R$IANmV5@cUt;-6!=t*cWa;^d=|k_!VAxR^ zn+p;tl_w7Fsi=P=cDEKj^?6OKP5iooWc#D8LxGB{>hZpaSa0_Hdjo4wlMxOs%Nvhn zJj~65xiZx{Q}3l-q>VN%G`OrjgdZp7ckv~HSIn{sle>|fxQ3vbP73ug&Bj${3MSd2 zt#FlAA;9DZq*kCLP>wP}ksFc%K^(wPF{mwpfLB%TnMVO_feyqf>Wr!;1VZF^)|Fw@ z(c@w}Xa>?R+#;vGt5p^ZxDp65*?3n*XEpDJKYYWSNWq!sB%KQ5S^gyxV!fL4RZXj& zQx|@CUTN0eU=c?f=#!VkB0D!lyP#KafUhr)j>CX4nL-2=~;wv?6dh3`SDS6aYkV0rXP;icviJ71=M!A-# z{^ri2x!>ElhoYw7i||;+Zy#yGESwTZ^pGIQBx-_IL769>b#9t-Q+#ep)?ljo^Pza#SRSHAuLwGh34ppW0*m^&*y?cAd!IH{u~ zbW|V^!fg@?2B;Rw$DtXv=g=b*D>VjOdla~{^Kg?)H}3X^_{>?wOQ6fO5<7mfkjM%r znxza=-*yam?%l^;yJ{7^oU$Q9wf7RLVK39&cuKgzv%OKGa}H`iCe&RakZ4pbOsu3{ z`e&!4s7>%S*Lg0`#Qu<0h9PePUn0eg66Z+E?*MP%q2(`7Z%yBD-P*-Wd;oPm2$#S=|+=KTuEebJtJB zJH<~PkJ~%4j{%=YEm@{Lcr%%~XZf3V-<6C0e-z_?5svf+!L9`-+DawkmAH$gB2?$);|?!S^o(EOk@7JOd=#yUS~Yp^&jyI|Wqzz<|T-mh?!^ zeRx`rsQGQ#EXRLzNNME+w8O&=uIt%W-VPxjN^?G?t=uWMoBXy}qR4+oiQ{hIdc*K%lINotd}Txt%Wy)|{BfD@N$;4>l2oOtzwq`_qV2W&S!}zc@Wh>NGdAAGZ0| zmQzQIO8trclSvtnjFGw8p=UaxeiOBZ%iyaglVIdkqZEvUb(;}u0`dDu;~H!qG|zIX zlB%Qyky$B!DG_Vt6g0FYGPXhcV!86KSs-3;c0cUvcgB3AKkRxw6&}><_%BYgg~I7S z2K8^&JO6|>?ft5t|JU-NC?~j@Cp0mQo>-oaxs)_OemjpYcJIY<)nK7jfJwzEP zW@kqxj<67aAjVS9mNZS4Kg^o6@~9lTz4I~b#7hyS26W^zU708yk%eCIP_I~l6N47V zLkb_2lRfMjynDD1vZnF>JZIZ=s6r`$Im%bdpeJo?{W31Y;oGrI82{ZAWB#pP+$z2o zJTVyO)wN0u8)wWkXY>a`~fRQ-|z<=wRa>WUVfQ zAtQY{WV=RJcnUf<_9eo!nl~LMOeh%qM+Z4cXbA7EaK&{?ENM+1pz~|W7B`J{Jv^ow z06Z-}Qck`zqBGOG6H3JsP>amoa@)s+oc1`fl`2>Eu68^m2e5*{@7YhI$FJZDrVh3j z7i8LQ%fB@IsN&1Tvvw@22h-VTvd&#XR`=>!L2aS&%k4^nH6kJ{wExnGQ}xzQk9o$q z;r7&7TK8p?p_Nhz7-4>jqJAzWK%#^OWRXBDY9n!zt{q23Dra=j?W0j5#{O^_n8VS|@aWzc| zd6j>XUs7Hf>hiz!e+?vZ|2PBy^8d;IY|!-ovmyWEkYYFg)Bm>zTIzo~s+yUFE(AIN K7GVD0{Qm%@<}ghF literal 0 HcmV?d00001 diff --git a/assets/art/keeper-top.webp b/assets/art/keeper-top.webp new file mode 100644 index 0000000000000000000000000000000000000000..140f221524fdc50da9a512df66ffd8fd71213267 GIT binary patch literal 13394 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 literal 0 HcmV?d00001 diff --git a/assets/art/map-pin-dark.svg b/assets/art/map-pin-dark.svg new file mode 100644 index 00000000..d38715e6 --- /dev/null +++ b/assets/art/map-pin-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/art/map-pin.svg b/assets/art/map-pin.svg new file mode 100644 index 00000000..322b3148 --- /dev/null +++ b/assets/art/map-pin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/art/page.webp b/assets/art/page.webp new file mode 100644 index 0000000000000000000000000000000000000000..e642e7ad585fcd96dbe724aec74d7830ea24bed9 GIT binary patch literal 54798 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 PQWg+Zy{yR817czTW?9yp literal 0 HcmV?d00001 diff --git a/assets/images/system-background.jpg b/assets/images/system-background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f12df5764db67d03e0110f166af95a3ca7144137 GIT binary patch literal 503701 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

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ' + base: '32' + value: '32' + flags: + CoC7: + cocidFlag: + id: i.skill.dodge + lang: en + priority: 0 + - name: 'Fighting (Brawl)' + type: 'skill' + img: 'systems/CoC7/assets/icons/skills/fighting_brawl.svg' + _id: 'PR4ptRvBvRso7GLJ' + system: + description: + value: '

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ' + base: 25 + value: 25 + properties: + fighting: true + combat: true + special: true + flags: + CoC7: + cocidFlag: + id: i.skill.fighting-brawl + lang: en + priority: 0 + - name: 'Firearms (Rifle/Shotgun)' + type: 'skill' + img: 'systems/CoC7/assets/icons/skills/firearms_rifle_shotgun.svg' + _id: '3fVH7wgc0f7cYPS6' + system: + description: + value: '

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ' + base: 25 + value: 25 + properties: + firearm: true + combat: true + special: true + flags: + CoC7: + cocidFlag: + id: i.skill.firearms-rifle-shotgun + lang: en + priority: 0 + - name: 'Language (English)' + type: 'skill' + img: 'systems/CoC7/assets/icons/skills/language.svg' + _id: 'aHoy9l8GnDaUZOYW' + system: + description: + value: '

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ' + base: 0 + value: 0 + properties: + push: true + special: true + requiresname: true + keepbasevalue: true + flags: + CoC7: + cocidFlag: + id: i.skill.language-own + lang: en + priority: 0 + - name: 'Receive orders' + type: 'skill' + img: 'systems/CoC7/assets/icons/skills.svg' + _id: 'uPgX46VUlJXStTpn' + system: + base: '0' + value: '95' + properties: + push: true + - name: 'Try hard' + type: 'skill' + img: 'systems/CoC7/assets/icons/skills.svg' + _id: 'UoYy6krp3cyOCqSk' + system: + base: '0' + value: '10' + properties: + push: true + - name: 'Club' + type: 'weapon' + img: 'icons/svg/sword.svg' + system: + skill: + main: + id: 'PR4ptRvBvRso7GLJ' + range: + normal: + damage: '1D4' + properties: + melee: true + ahdb: true + slnt: true + stun: true + flags: + CoC7: + cocidFlag: + id: i.weapon.club + lang: en + priority: 0 + _id: 'Jlewd3ifpDQ8VBuI' + - name: 'Punch' + type: 'weapon' + img: 'systems/CoC7/assets/icons/skills/fighting_brawl.svg' + system: + skill: + main: + id: 'PR4ptRvBvRso7GLJ' + range: + normal: + damage: '1D3' + properties: + melee: true + addb: true + flags: + CoC7: + cocidFlag: + id: i.weapon.brawl + lang: en + priority: 0 + _id: 'kbiJM1yWKYP1tVdK' + - name: 'Shotgun' + type: 'weapon' + img: 'icons/svg/sword.svg' + system: + description: + value: '

    Description of the weapon

    selecting "Area of effect" will enable 3 different damage and range

    selecting "Full-auto" will allow 2 different skills to be selected for the weapon

    selecting "Special" will activate the special input field

    In the combat tab, if the icons are with a red background, it means that no skill have been selected for that weapon

    Edit the weapon and select the correct skill.

    ' + skill: + main: + id: '3fVH7wgc0f7cYPS6' + range: + normal: + value: 15 + damage: '1D6' + properties: + rngd: true + flags: + CoC7: + cocidFlag: + id: i.weapon.shotgun + lang: en + priority: 0 + _id: 'Hhs2rs3HsTO3opFQ' +_id: 'KgyqcEJZZztYfpEr' +flags: + CoC7: + cocidFlag: + id: a.npc.goon + lang: en + priority: 0 +--- +name: 'Villain example' +type: 'npc' +img: 'systems/CoC7/assets/icons/cultist.svg' +system: + characteristics: + str: + value: 50 + con: + value: 50 + siz: + value: 50 + dex: + value: 50 + app: + value: 50 + int: + value: 50 + pow: + value: 50 + edu: + value: 50 + attribs: + hp: + value: 10 + max: 10 + mp: + value: 10 + max: 10 + lck: + value: 50 + san: + value: 99 + max: 99 + mov: + value: 8 + auto: false + armor: + value: 0 + special: + sanLoss: + checkPassed: '' + checkFailled: '' + attacksPerRound: 1 + infos: + occupation: 'Be a villain' + age: '100' + flags: + locked: true + displayFormula: false +prototypeToken: + texture: + src: 'systems/CoC7/assets/icons/cultist.svg' +items: + - name: 'Very mean sidekick' + type: 'item' + img: 'icons/svg/item-bag.svg' + flags: + CoC7: + cocidFlag: + id: i.item.very-mean-sidekick + lang: en + priority: 0 + _id: 'L8smYdMt8ikmRHx6' + - name: 'Plan to enslave humanity' + type: 'item' + img: 'icons/svg/item-bag.svg' + flags: + CoC7: + cocidFlag: + id: i.item.plan-to-enslave-humanity + lang: en + priority: 0 + _id: '8g01NwyUAwvTHb3E' + - name: 'Bark orders' + type: 'skill' + img: 'systems/CoC7/assets/icons/skills.svg' + flags: + CoC7: + cocidFlag: + id: i.skill.bark-orders + lang: en + priority: 0 + _id: 'QGfaG02IPLjpBpJL' + system: + value: 45 + properties: + push: true + - name: 'Be a pain' + type: 'skill' + img: 'systems/CoC7/assets/icons/skills.svg' + flags: + CoC7: + cocidFlag: + id: i.skill.be-a-pain + lang: en + priority: 0 + _id: 'KyVm9jlTiIu9vNVv' + system: + value: 0 + properties: + push: true + - name: 'Dodge' + type: 'skill' + img: 'systems/CoC7/assets/icons/skills/dodge.svg' + _id: 'AvGHgRlHt0R3Ed4S' + system: + description: + value: '

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ' + base: '25' + value: '25' + flags: + CoC7: + cocidFlag: + id: i.skill.dodge + lang: en + priority: 0 + - name: 'Fighting (Brawl)' + type: 'skill' + img: 'systems/CoC7/assets/icons/skills/fighting_brawl.svg' + _id: 'PR4ptRvBvRso7GLJ' + system: + description: + value: '

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ' + base: 25 + value: 25 + properties: + fighting: true + combat: true + special: true + flags: + CoC7: + cocidFlag: + id: i.skill.fighting-brawl + lang: en + priority: 0 + - name: 'Firearms (Rifle/Shotgun)' + type: 'skill' + img: 'systems/CoC7/assets/icons/skills/firearms_rifle_shotgun.svg' + _id: '3fVH7wgc0f7cYPS6' + system: + description: + value: '

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ' + base: 25 + value: 25 + properties: + firearm: true + combat: true + special: true + flags: + CoC7: + cocidFlag: + id: i.skill.firearms-rifle-shotgun + lang: en + priority: 0 + - name: 'Language (English)' + type: 'skill' + img: 'systems/CoC7/assets/icons/skills/language.svg' + _id: 'aHoy9l8GnDaUZOYW' + system: + description: + value: '

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ' + base: 50 + value: 50 + properties: + push: true + special: true + requiresname: true + keepbasevalue: true + flags: + CoC7: + cocidFlag: + id: i.skill.language-own + lang: en + priority: 0 + - name: 'Takeover the world' + type: 'skill' + img: 'systems/CoC7/assets/icons/skills.svg' + _id: 'qPH6Yf5B82vN4RHu' + system: + value: 80 + flags: + CoC7: + cocidFlag: + id: i.skill.takeover-the-world + lang: en + priority: 0 + - name: 'Torment the PC' + type: 'skill' + img: 'systems/CoC7/assets/icons/skills.svg' + _id: 'CxqOOhOKLcEi2hRQ' + system: + value: 75 + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.torment-the-pc + lang: en + priority: 0 + - name: 'Punch' + type: 'weapon' + img: 'systems/CoC7/assets/icons/skills/fighting_brawl.svg' + system: + skill: + main: + id: 'PR4ptRvBvRso7GLJ' + range: + normal: + damage: '1D3' + properties: + melee: true + addb: true + flags: + CoC7: + cocidFlag: + id: i.weapon.brawl + lang: en + priority: 0 + _id: 'DP1t8zpvBW8OQB5Q' + - name: 'My test weapon' + type: 'weapon' + img: 'icons/svg/sword.svg' + system: + description: + value: '

    Description of the weapon

    selecting "Area of effect" will enable 3 different damage and range

    selecting "Full-auto" will allow 2 different skills to be selected for the weapon

    selecting "Special" will activate the special input field

    In the combat tab, if the icons are with a red background, it means that no skill have been selected for that weapon

    Edit the weapon and select the correct skill.

    ' + skill: + main: + id: '3fVH7wgc0f7cYPS6' + alternativ: + id: '3fVH7wgc0f7cYPS6' + range: + normal: + value: '15' + damage: '1D6' + ammo: 1 + properties: + rngd: true + brst: true + auto: true + flags: + CoC7: + cocidFlag: + id: i.weapon.my-test-weapon + lang: en + priority: 0 + _id: 'ZlhAHCkDQrp9cyxt' +_id: 4kSvDc4n13oFx8RG +flags: + CoC7: + cocidFlag: + id: a.npc.villain-example + lang: en + priority: 0 +--- +name: '1920 Character' +type: 'character' +img: 'icons/svg/mystery-man.svg' +prototypeToken: + actorLink: true + disposition: 1 + sight: + enabled: true +system: + characteristics: + str: + value: 50 + con: + value: 50 + siz: + value: 65 + dex: + value: 50 + app: + value: 50 + int: + value: 65 + pow: + value: 50 + edu: + value: 65 + attribs: + hp: + value: 11 + max: 11 + mp: + value: 10 + max: 10 + lck: + value: 50 + san: + value: 50 + max: 99 + dailyLimit: 10 + infos: + age: '26' + biography: + - title: Personal Description + value: null + - title: Ideology/Beliefs + value: null + - title: Significant People + value: null + - title: Meaningful Locations + value: null + - title: Treasured Possessions + value: null + - title: Traits + value: null +items: + - _id: UOuN0gESXPp2HXwH + name: Accounting + type: skill + img: systems/CoC7/assets/icons/skills/accounting.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 5 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.accounting + lang: en + priority: 0 + - _id: ovIp66Luwfwbq28F + name: Anthropology + type: skill + img: systems/CoC7/assets/icons/skills/anthropology.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 1 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.anthropology + lang: en + priority: 0 + - _id: wOs3gryeGRPkGoWD + name: Appraise + type: skill + img: systems/CoC7/assets/icons/skills/appraise.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 5 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.appraise + lang: en + priority: 0 + - _id: GHhkcJUqjcP4lToY + name: Archaeology + type: skill + img: systems/CoC7/assets/icons/skills/archaeology.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 1 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.archaeology + lang: en + priority: 0 + - _id: m6V53lyfz7zh95FE + name: Art/Craft (Acting) + type: skill + img: systems/CoC7/assets/icons/skills/art_craft_acting.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 5 + value: null + properties: + special: true + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.art-craft-acting + lang: en + priority: 0 + - _id: JgtxiN3KzooOWIQV + name: Charm + type: skill + img: systems/CoC7/assets/icons/skills/charm.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 15 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.charm + lang: en + priority: 0 + - _id: oh5eFj00Wohnx1My + name: Climb + type: skill + img: systems/CoC7/assets/icons/skills/climb.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 20 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.climb + lang: en + priority: 0 + - _id: vYrJ5h9cIQBzvw8E + name: Credit Rating + type: skill + img: systems/CoC7/assets/icons/skills/credit_rating.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 0 + value: null + properties: + noxpgain: true + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.credit-rating + lang: en + priority: 0 + - _id: WJky66ezt2ef5ksH + name: Cthulhu Mythos + type: skill + img: systems/CoC7/assets/icons/skills/cthulhu_mythos.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 0 + value: null + properties: + noadjustments: true + noxpgain: true + flags: + CoC7: + cocidFlag: + id: i.skill.cthulhu-mythos + lang: en + priority: 0 + - _id: gzNPM9gbx0EZffBV + name: Disguise + type: skill + img: systems/CoC7/assets/icons/skills/disguise.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 5 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.disguise + lang: en + priority: 0 + - _id: wK8XxNj9QwXlGFEb + name: Dodge + type: skill + img: systems/CoC7/assets/icons/skills/dodge.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 25 + value: null + flags: + CoC7: + cocidFlag: + id: i.skill.dodge + lang: en + priority: 0 + - _id: Og2OWQH93aSDWAMZ + name: Drive Auto + type: skill + img: systems/CoC7/assets/icons/skills/drive_auto.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 20 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.drive-auto + lang: en + priority: 0 + - _id: NBkq8oCGM1FjmsyF + name: Electrical Repair + type: skill + img: systems/CoC7/assets/icons/skills/electrical_repair.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 10 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.electrical-repair + lang: en + priority: 0 + - _id: ld78TITwKNFPpanQ + name: Fast Talk + type: skill + img: systems/CoC7/assets/icons/skills/fast_talk.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 5 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.fast-talk + lang: en + priority: 0 + - _id: vS8bsPWFlwgOecoB + name: Fighting (Brawl) + type: skill + img: systems/CoC7/assets/icons/skills/fighting_brawl.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 25 + value: null + properties: + fighting: true + combat: true + special: true + flags: + CoC7: + cocidFlag: + id: i.skill.fighting-brawl + lang: en + priority: 0 + - _id: sWt5Q3ZXd6NlwhXU + name: Fighting (Throw) + type: skill + img: systems/CoC7/assets/icons/skills/fighting_throw.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 20 + value: null + properties: + fighting: true + combat: true + special: true + flags: + CoC7: + cocidFlag: + id: i.skill.fighting-throw + lang: en + priority: 0 + - _id: KmDGtn7ukUFVb265 + name: Firearms (Handgun) + type: skill + img: systems/CoC7/assets/icons/skills/firearms_handgun.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 20 + value: null + properties: + firearm: true + combat: true + special: true + flags: + CoC7: + cocidFlag: + id: i.skill.firearms-handgun + lang: en + priority: 0 + - _id: m2pYjKk4Gk3FcEBL + name: Firearms (Rifle/Shotgun) + type: skill + img: systems/CoC7/assets/icons/skills/firearms_rifle_shotgun.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 25 + value: null + properties: + firearm: true + combat: true + special: true + flags: + CoC7: + cocidFlag: + id: i.skill.firearms-rifle-shotgun + lang: en + priority: 0 + - _id: nZ8rdL4PLb7A7f5B + name: First Aid + type: skill + img: systems/CoC7/assets/icons/skills/first_aid.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 30 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.first-aid + lang: en + priority: 0 + - _id: URo2NSSJSNdvOqXU + name: History + type: skill + img: systems/CoC7/assets/icons/skills/history.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 5 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.history + lang: en + priority: 0 + - _id: hDr4eUbS398oniTa + name: Intimidate + type: skill + img: systems/CoC7/assets/icons/skills/intimidate.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 15 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.intimidate + lang: en + priority: 0 + - _id: c5utlFbDM7J8TA8b + name: Jump + type: skill + img: systems/CoC7/assets/icons/skills/jump.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 20 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.jump + lang: en + priority: 0 + - _id: Blk22r9FRJetJ0e8 + name: Language (English) + type: skill + img: systems/CoC7/assets/icons/skills/language.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 65 + value: null + properties: + push: true + special: true + requiresname: true + keepbasevalue: true + flags: + CoC7: + cocidFlag: + id: i.skill.language-own + lang: en + priority: 0 + - _id: 64hnBZNC8FM7oTkg + name: Law + type: skill + img: systems/CoC7/assets/icons/skills/law.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 5 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.law + lang: en + priority: 0 + - _id: BcWHh8EhmyKj7bNk + name: Library Use + type: skill + img: systems/CoC7/assets/icons/skills/library_use.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 20 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.library-use + lang: en + priority: 0 + - _id: MoAB0NRNlpEc2qWr + name: Listen + type: skill + img: systems/CoC7/assets/icons/skills/listen.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 20 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.listen + lang: en + priority: 0 + - _id: MRbFH52Zh9TzhLBh + name: Locksmith + type: skill + img: systems/CoC7/assets/icons/skills/locksmith.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 1 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.locksmith + lang: en + priority: 0 + - _id: 0qCTuRFUCACSEsWj + name: Mechanical Repair + type: skill + img: systems/CoC7/assets/icons/skills/mechanical_repair.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 10 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.mechanical-repair + lang: en + priority: 0 + - _id: Xmg7oAy70DKpv4kq + name: Medicine + type: skill + img: systems/CoC7/assets/icons/skills/medicine.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 1 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.medicine + lang: en + priority: 0 + - _id: jTcu6Ni2ek7Yz5q3 + name: Natural World + type: skill + img: systems/CoC7/assets/icons/skills/natural_world.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 10 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.natural-world + lang: en + priority: 0 + - _id: 1c3fdvpQtvZf5YXK + name: Navigate + type: skill + img: systems/CoC7/assets/icons/skills/navigate.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 10 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.navigate + lang: en + priority: 0 + - _id: 6pSfZVS68jSHxa5T + name: Occult + type: skill + img: systems/CoC7/assets/icons/skills/occult.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 5 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.occult + lang: en + priority: 0 + - _id: cuExWy1130KUwuWz + name: Operate Heavy Machinery + type: skill + img: systems/CoC7/assets/icons/skills/operate_heavy_machinery.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 1 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.operate-heavy-machinery + lang: en + priority: 0 + - _id: uMzSNURmZqjxr7mU + name: Persuade + type: skill + img: systems/CoC7/assets/icons/skills/persuade.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 10 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.persuade + lang: en + priority: 0 + - _id: rXBU2GofiO2qOsGv + name: Psychoanalysis + type: skill + img: systems/CoC7/assets/icons/skills/psychoanalysis.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 1 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.psychoanalysis + lang: en + priority: 0 + - _id: MFR4eR79niGaLfph + name: Psychology + type: skill + img: systems/CoC7/assets/icons/skills/psychology.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 10 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.psychology + lang: en + priority: 0 + - _id: o7TdzbuSP7ticONf + name: Ride + type: skill + img: systems/CoC7/assets/icons/skills/ride.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 5 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.ride + lang: en + priority: 0 + - _id: 8twBT7nbyh5dEp3J + name: Science (Chemistry) + type: skill + img: systems/CoC7/assets/icons/skills/science_chemistry.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 1 + value: null + properties: + special: true + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.science-chemistry + lang: en + priority: 0 + - _id: KKFNX5M4LtEtiuxs + name: Sleight of Hand + type: skill + img: systems/CoC7/assets/icons/skills/sleight_of_hand.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 10 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.sleight-of-hand + lang: en + priority: 0 + - _id: nHaWNwtW3Lg0sqYJ + name: Spot Hidden + type: skill + img: systems/CoC7/assets/icons/skills/spot_hidden.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 25 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.spot-hidden + lang: en + priority: 0 + - _id: DcV524K0jNfjDEZC + name: Stealth + type: skill + img: systems/CoC7/assets/icons/skills/stealth.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 20 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.stealth + lang: en + priority: 0 + - _id: 1zSIeY0eat2AxQok + name: Swim + type: skill + img: systems/CoC7/assets/icons/skills/swim.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 20 + value: null + properties: + push: true + flags: + CoC7: + cocidFlag: + id: i.skill.swim + lang: en + priority: 0 + - name: 'Punch' + type: 'weapon' + img: 'systems/CoC7/assets/icons/skills/fighting_brawl.svg' + system: + skill: + main: + id: 'vS8bsPWFlwgOecoB' + range: + normal: + damage: '1D3' + properties: + melee: true + addb: true + flags: + CoC7: + cocidFlag: + id: i.weapon.brawl + lang: en + priority: 0 + _id: 'kbiJM1yWKYP1tVdK' +_id: 'JuI2aWDSEuQNKeUI' +flags: + CoC7: + skillListMode: false + skillShowUncommon: true + cocidFlag: + id: a.character.1920-character + lang: en + priority: 0 +--- +name: 'Cupboard' +type: 'container' +img: icons/svg/chest.svg +prototypeToken: + actorLink: true + texture: + src: icons/svg/chest.svg +_id: 'r7bDSY4OYKxQYEas' +flags: + CoC7: + cocidFlag: + id: a.container.cupboard + lang: en + priority: 0 +items: + - _id: 'Zf5qG2ADNdIVdSTi' + name: 'Rapier' + type: 'weapon' + img: 'icons/svg/sword.svg' + system: + skill: + main: + name: 'Fighting (Sword)' + range: + normal: + damage: '1D6+1' + properties: + melee: true + addb: true +--- +name: 'Creature example' +type: 'creature' +img: systems/CoC7/assets/icons/floating-tentacles.svg +system: + characteristics: + str: + value: 1 + formula: '1D6' + con: + value: 10 + formula: '2D6' + siz: + value: 50 + formula: '(3D6)*5' + dex: + value: 10 + formula: '4D6' + app: + value: 20 + formula: '5D6' + int: + value: 20 + formula: '6D6' + pow: + formula: '0' + edu: + formula: '0' + attribs: + hp: + value: 6 + max: 6 + mp: + value: 0 + max: 0 + lck: + value: 0 + san: + value: 0 + armor: + value: 0 + special: + sanLoss: + checkPassed: '1D2' + checkFailled: '1D6' + infos: + type: 'Phorusrhacid' + flags: + locked: true + displayFormula: false + biography: + personalDescription: + value: '

    Clicking the lock will allow modification of the sheet.

    When sheet is unlock you can modify things directly from the sheet. You can also open the entities sheets and delete things.

    In that mode you can create skills/possessions by clicking the + icon. Holding shift will bypass the opening of the corresponding sheet.

    You can enter characteristics as numbers and as formulas. Click the right icon to toggle modes. Clicking the red dice will roll the formula when possible. So you can have your creature with defined values, or roll/reroll the value on demand.

    ' + pannel: + inventory: + expanded: true +prototypeToken: + texture: + src: 'systems/CoC7/assets/icons/floating-tentacles.svg' +_id: 'XE2vjLG03wGfnYLw' +items: + - _id: '0oDo0HjUAx36Grvo' + name: 'Pile of junk' + type: 'item' + img: 'icons/svg/item-bag.svg' + flags: + CoC7: + cocidFlag: + id: i.item.pile-of-junk + lang: en + priority: 0 + - _id: vS8bsPWFlwgOecoB + name: Fighting (Brawl) + type: skill + img: systems/CoC7/assets/icons/skills/fighting_brawl.svg + system: + description: + value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    + base: 25 + value: 50 + properties: + fighting: true + combat: true + special: true + flags: + CoC7: + cocidFlag: + id: i.skill.fighting-brawl + lang: en + priority: 0 + - name: Fighting (Slice PCs in small cubes) + type: skill + img: systems/CoC7/assets/icons/skills.svg + system: + base: 0 + value: 75 + properties: + special: true + fighting: true + combat: true + flags: + CoC7: + cocidFlag: + id: i.skill.fighting-slice-pcs-in-small-cubes + lang: en + priority: 0 + _id: 'y9jyY07ixD2xDkfm' + - name: 'Deadly beak' + type: 'weapon' + img: 'icons/svg/sword.svg' + system: + description: + special: '

    You can add special description or slugs there :

    Slug 1 : [[/r 2d17kh]]

    ' + skill: + main: + id: 'y9jyY07ixD2xDkfm' + range: + normal: + damage: '10D6' + properties: + melee: true + spcl: true + flags: + CoC7: + cocidFlag: + id: i.weapon.deadly-beak + lang: en + priority: 0 + _id: 'H0nWT8ljuKqVkcgc' + - name: 'Innate attack' + type: 'weapon' + img: 'icons/svg/sword.svg' + system: + description: + value: "

    Creature's natural attack

    " + skill: + main: + id: 'vS8bsPWFlwgOecoB' + range: + normal: + damage: '1D3' + properties: + melee: true + addb: true + slnt: true + flags: + CoC7: + cocidFlag: + id: i.weapon.innate-attack + lang: en + priority: 0 + _id: '0KsCeV1S9WmxNq5M' +flags: + CoC7: + cocidFlag: + id: a.container.creature-example + lang: en + priority: 0 diff --git a/compendiums/items.yaml b/compendiums/en-items.yaml similarity index 87% rename from compendiums/items.yaml rename to compendiums/en-items.yaml index 2db9d3f2..d0c7b4e1 100644 --- a/compendiums/items.yaml +++ b/compendiums/en-items.yaml @@ -61,12 +61,13 @@ system: - Treasured Possessions - Traits flags: - cocidFlag: - id: i.setup.standard - lang: en - eras: - standard: true - priority: 0 + CoC7: + cocidFlag: + id: i.setup.standard + lang: en + eras: + standard: true + priority: 0 --- _id: lu04TIRrg9P3vRqY name: Peacemaker @@ -93,10 +94,11 @@ system: - i.skill.psychology - i.skill.spot-hidden flags: - cocidFlag: - id: i.archetype.peacemaker - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.archetype.peacemaker + lang: en + priority: 0 --- _id: zyCszwqyTg21l9E2 name: Death ray (prototype) @@ -141,24 +143,6 @@ system: brst: true spcl: true --- -_id: DVdvEDizPZPux1pK -name: Mania 1 -type: status -img: icons/svg/aura.svg -system: - source: '' - type: - mania: true ---- -_id: Vm9OzZnAVOpDdwfB -name: Mania 2 -type: status -img: icons/svg/aura.svg -system: - source: '' - type: - mania: true ---- _id: NOsh6EdNSjpjahDF name: Street Vendor type: occupation @@ -197,28 +181,11 @@ system: - i.skill.sleight-of-hand personal: 0 flags: - cocidFlag: - id: i.occupation.street-vendor - lang: en - priority: 0 ---- -_id: PFpgtSKUcBDLVLY6 -name: Phobia 1 -type: status -img: icons/svg/aura.svg -system: - source: '' - type: - phobia: true ---- -_id: 2dqgtyGfwr8M60he -name: Phobia 2 -type: status -img: icons/svg/aura.svg -system: - source: '' - type: - phobia: true + CoC7: + cocidFlag: + id: i.occupation.street-vendor + lang: en + priority: 0 --- _id: 3elxAwnv7WCUNwng name: Punch @@ -239,10 +206,11 @@ system: melee: true addb: true flags: - cocidFlag: - id: i.weapon.brawl - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.weapon.brawl + lang: en + priority: 0 --- _id: yqvwz769ZeJplOW7 name: Talent 1 diff --git a/compendiums/en-sanity-tables-examples.yaml b/compendiums/en-sanity-tables-examples.yaml new file mode 100644 index 00000000..7d26d487 --- /dev/null +++ b/compendiums/en-sanity-tables-examples.yaml @@ -0,0 +1,193 @@ +_id: '6daRognwiyG5eoQd' +name: 'Table IX: Sample Phobias' +img: 'icons/svg/d20-grey.svg' +description: 'See Keeper rulebook P160 for details' +results: + - type: pack + img: icons/svg/aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Acrophobia' + documentId: 'p0t15enMtk3uTAlj' + - type: pack + img: icons/svg/aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Arachnophobia' + documentId: 'qRnd6M1Tshzw76Ny' + - type: pack + img: icons/svg/aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Bibliophobia' + documentId: '4AeOJTb8YE9wbaCe' + - type: pack + img: icons/svg/aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Eisoptrophobia' + documentId: 'DciWR1txuAq4kWCy' + - type: pack + img: icons/svg/aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Hemaphobia' + documentId: 'hSeCmtgrYGvZ32QS' + - type: pack + img: icons/svg/aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Necrophobia' + documentId: 'N8GbNhQMLUx0dINh' + - type: pack + img: icons/svg/aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Odontophobia' + documentId: 'zH0DG90l9NgTq0hr' + - type: pack + img: icons/svg/aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Pyrophobia' + documentId: '5YXHhTzaSarN72DR' + - type: pack + img: icons/svg/aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Telephonophobia' + documentId: 'z2HNXPNGHdr6IKzt' + - type: pack + img: icons/svg/aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Xenophobia' + documentId: '0ITh5OlkMYtSLi9S' +flags: + CoC7: + cocidFlag: + id: rt..system-sample-phobias + lang: en + priority: 0 +--- +_id: 'NNX6jAG2DBkw9red' +name: 'Table VII: Bouts of Madness - Real Time' +img: 'icons/svg/d20-grey.svg' +description: 'See - Keeper Rulebook V7 - P157 for details' +results: + - type: pack + documentCollection: 'CoC7.en-wiki-roll-tables' + range: + - 1 + - 10 + text: 'Bouts of Madness Table (Realtime)' + documentId: 'DGd9QwhMguct5kJr' + img: 'icons/svg/d20-grey.svg' + - type: pack + documentCollection: 'CoC7.sanity-tables-examples' + range: + - 11 + - 11 + text: 'Table IX: Sample Phobias' + documentId: '6daRognwiyG5eoQd' + img: 'icons/svg/d20-grey.svg' + - type: pack + documentCollection: 'CoC7.sanity-tables-examples' + range: + - 12 + - 12 + text: 'Table X: Sample Manias' + documentId: 'mWs2LZoSvSBqlqhW' + img: 'icons/svg/d20-grey.svg' +flags: + CoC7: + cocidFlag: + id: rt..system-bouts-of-madness-real-time + lang: en + priority: 0 +--- +_id: 'ZyCIR3PbyYaIE8W2' +name: 'Table VIII: Bouts of Madness - Summary' +img: 'icons/svg/d20-grey.svg' +description: 'See - Keeper Rulebook V7 - P159 for details' +results: + - type: text + img: icons/svg/d20-black.svg + text: 'See bout of madness table P159 [[/r 1D10]] hours' + range: + - 1 + - 8 + - type: pack + documentCollection: 'CoC7.sanity-tables-examples' + range: + - 9 + - 9 + text: 'Table IX: Sample Phobias' + documentId: '6daRognwiyG5eoQd' + img: 'icons/svg/d20-grey.svg' + - type: pack + documentCollection: 'CoC7.sanity-tables-examples' + range: + - 10 + - 10 + text: 'Table X: Sample Manias' + documentId: 'mWs2LZoSvSBqlqhW' + img: 'icons/svg/d20-grey.svg' +flags: + CoC7: + cocidFlag: + id: rt..system-bouts-of-madness-real-time + lang: en + priority: 0 +--- +_id: 'mWs2LZoSvSBqlqhW' +name: 'Table X: Sample Manias' +img: 'icons/svg/d20-grey.svg' +description: 'See Keeper rulebook P161 for details' +results: + - type: pack + img: icons/svg/ice-aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Agathomania' + documentId: 'RSBgVRZFUDDCNhXo' + - type: pack + img: icons/svg/ice-aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Algomania' + documentId: 'EaKLI16AeflyGtUy' + - type: pack + img: icons/svg/ice-aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Amenomania' + documentId: 'bewOYRIgOXcFVT48' + - type: pack + img: icons/svg/ice-aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Bibliokleptomania' + documentId: 'lVj5VQLKa3qNMO1N' + - type: pack + img: icons/svg/ice-aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Dikemania' + documentId: 'tfU5EJwc4jxU67Wp' + - type: pack + img: icons/svg/ice-aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Geliomania' + documentId: 'uXaBJzAGkgIiKbdE' + - type: pack + img: icons/svg/ice-aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Klazomania' + documentId: 'QrruiWO4YPYO4ND5' + - type: pack + img: icons/svg/ice-aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Kleptomania' + documentId: 'yVUmHYY5eCaxutZt' + - type: pack + img: icons/svg/ice-aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Nosomania' + documentId: 'y6ANMyrvi0eVH44f' + - type: pack + img: icons/svg/ice-aura.svg + documentCollection: 'CoC7.en-wiki-phobias-and-manias' + text: 'Pseudomania' + documentId: 'mq9OFQH0asOgJ9YK' +flags: + CoC7: + cocidFlag: + id: rt..system-sample-manias + lang: en + priority: 0 diff --git a/compendiums/skills.yaml b/compendiums/en-skills.yaml similarity index 56% rename from compendiums/skills.yaml rename to compendiums/en-skills.yaml index 26f95a22..3d8544cf 100644 --- a/compendiums/skills.yaml +++ b/compendiums/en-skills.yaml @@ -9,21 +9,22 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.accounting - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - regency: true - regencyPulp: true - reignOfTerror: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.accounting + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + regency: true + regencyPulp: true + reignOfTerror: true + priority: 0 --- _id: dQ4zUjSteT3sgwKx name: Animal Handling @@ -37,16 +38,17 @@ system: push: true rarity: true flags: - cocidFlag: - id: i.skill.animal-handling - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - reignOfTerror: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.animal-handling + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + reignOfTerror: true + priority: 0 --- _id: ovIp66Luwfwbq28F name: Anthropology @@ -59,19 +61,20 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.anthropology - lang: en - eras: - standard: true - modern: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - regency: true - regencyPulp: true - reignOfTerror: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.anthropology + lang: en + eras: + standard: true + modern: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + regency: true + regencyPulp: true + reignOfTerror: true + priority: 0 --- _id: wOs3gryeGRPkGoWD name: Appraise @@ -84,10 +87,11 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.appraise - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.appraise + lang: en + priority: 0 --- _id: GHhkcJUqjcP4lToY name: Archaeology @@ -100,18 +104,19 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.archaeology - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.archaeology + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + priority: 0 --- _id: m6V53lyfz7zh95FE name: Art/Craft (Acting) @@ -125,18 +130,19 @@ system: special: true push: true flags: - cocidFlag: - id: i.skill.art-craft-acting - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - gasLight: true - regencyPulp: true - regency: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.art-craft-acting + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + gasLight: true + regencyPulp: true + regency: true + priority: 0 --- _id: HAuFBG4ZT2yO9yn7 name: Art/Craft (Any) @@ -151,10 +157,11 @@ system: requiresname: true push: true flags: - cocidFlag: - id: i.skill.art-craft-any - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.art-craft-any + lang: en + priority: 0 --- _id: m8sBJxvuUdtQ2mDU name: Art/Craft (Fine Art) @@ -168,18 +175,19 @@ system: special: true push: true flags: - cocidFlag: - id: i.skill.art-craft-fine-art - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - gasLight: true - regency: true - regencyPulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.art-craft-fine-art + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + gasLight: true + regency: true + regencyPulp: true + priority: 0 --- _id: zcvnv8qY4GrVwwTL name: Art/Craft (Forgery) @@ -193,18 +201,19 @@ system: special: true push: true flags: - cocidFlag: - id: i.skill.art-craft-forgery - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - gasLight: true - regency: true - regencyPulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.art-craft-forgery + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + gasLight: true + regency: true + regencyPulp: true + priority: 0 --- _id: WLYZNASZ2YP8zN3g name: Art/Craft (Photography) @@ -218,16 +227,17 @@ system: special: true push: true flags: - cocidFlag: - id: i.skill.art-craft-photography - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - gasLight: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.art-craft-photography + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + gasLight: true + priority: 0 --- _id: JgtxiN3KzooOWIQV name: Charm @@ -240,10 +250,11 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.charm - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.charm + lang: en + priority: 0 --- _id: I80gmmo830LuOBKl name: Civics @@ -256,12 +267,13 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.civics - lang: en - eras: - invictus: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.civics + lang: en + eras: + invictus: true + priority: 0 --- _id: oh5eFj00Wohnx1My name: Climb @@ -274,23 +286,24 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.climb - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - darkAges: true - darkAgesPulp: true - regency: true - regencyPulp: true - reignOfTerror: true - gasLight: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.climb + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + darkAges: true + darkAgesPulp: true + regency: true + regencyPulp: true + reignOfTerror: true + gasLight: true + priority: 0 --- _id: VZSv9eodMQ4ZPcrO name: Computer Use @@ -303,13 +316,14 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.computer-use - lang: en - eras: - modern: true - modernPulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.computer-use + lang: en + eras: + modern: true + modernPulp: true + priority: 0 --- _id: vYrJ5h9cIQBzvw8E name: Credit Rating @@ -323,19 +337,20 @@ system: noxpgain: true push: true flags: - cocidFlag: - id: i.skill.credit-rating - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - reignOfTerror: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.credit-rating + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + reignOfTerror: true + priority: 0 --- _id: WJky66ezt2ef5ksH name: Cthulhu Mythos @@ -349,10 +364,11 @@ system: noadjustments: true noxpgain: true flags: - cocidFlag: - id: i.skill.cthulhu-mythos - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.cthulhu-mythos + lang: en + priority: 0 --- _id: bJt90h73GqdP7ti6 name: Demolitions @@ -366,17 +382,18 @@ system: rarity: true push: true flags: - cocidFlag: - id: i.skill.demolitions - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.demolitions + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + priority: 0 --- _id: gzNPM9gbx0EZffBV name: Disguise @@ -389,23 +406,24 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.disguise - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - darkAges: true - darkAgesPulp: true - gasLight: true - regency: true - regencyPulp: true - reignOfTerror: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.disguise + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + darkAges: true + darkAgesPulp: true + gasLight: true + regency: true + regencyPulp: true + reignOfTerror: true + priority: 0 --- _id: 4lN6yD6zwbjX6BFp name: Diving @@ -419,15 +437,16 @@ system: push: true rarity: true flags: - cocidFlag: - id: i.skill.diving - lang: en - eras: - standard: true - modern: true - downDarkerTrails: true - downDarkerTrailsPulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.diving + lang: en + eras: + standard: true + modern: true + downDarkerTrails: true + downDarkerTrailsPulp: true + priority: 0 --- _id: wK8XxNj9QwXlGFEb name: Dodge @@ -438,23 +457,24 @@ system: value:

    See the Call of Cthulhu - 7th Ed Core Rulebook

    base: 1/2*@DEX flags: - cocidFlag: - id: i.skill.dodge - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - darkAges: true - darkAgesPulp: true - regency: true - regencyPulp: true - reignOfTerror: true - gasLight: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.dodge + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + darkAges: true + darkAgesPulp: true + regency: true + regencyPulp: true + reignOfTerror: true + gasLight: true + priority: 0 --- _id: Og2OWQH93aSDWAMZ name: Drive Auto @@ -467,15 +487,16 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.drive-auto - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.drive-auto + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: Sxviv60td6kbS4kp name: Drive Carriage @@ -488,14 +509,15 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.drive-carriage - lang: en - eras: - gasLight: true - regency: true - regencyPulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.drive-carriage + lang: en + eras: + gasLight: true + regency: true + regencyPulp: true + priority: 0 --- _id: rAK5soSX1n3jXj2A name: Drive Horse / Oxen @@ -508,14 +530,15 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.drive-horse-oxen - lang: en - eras: - darkAges: true - darkAgesPulp: true - invictus: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.drive-horse-oxen + lang: en + eras: + darkAges: true + darkAgesPulp: true + invictus: true + priority: 0 --- _id: sqenne0VZoF54W5k name: Drive Wagon / Coach @@ -528,13 +551,14 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.drive-wagon-coach - lang: en - eras: - downDarkerTrails: true - downDarkerTrailsPulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.drive-wagon-coach + lang: en + eras: + downDarkerTrails: true + downDarkerTrailsPulp: true + priority: 0 --- _id: NBkq8oCGM1FjmsyF name: Electrical Repair @@ -547,15 +571,16 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.electrical-repair - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.electrical-repair + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: oEfvPMTx0cgyPlgV name: Electronics @@ -568,13 +593,14 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.electronics - lang: en - eras: - modern: true - modernPulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.electronics + lang: en + eras: + modern: true + modernPulp: true + priority: 0 --- _id: t7uiYybrk8dHFdjp name: Empire @@ -587,12 +613,13 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.empire - lang: en - eras: - invictus: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.empire + lang: en + eras: + invictus: true + priority: 0 --- _id: ld78TITwKNFPpanQ name: Fast Talk @@ -605,10 +632,11 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.fast-talk - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.fast-talk + lang: en + priority: 0 --- _id: 4y7D44TpkHVKxA7s name: Fighting (Any) @@ -624,10 +652,11 @@ system: special: true picknameonly: true flags: - cocidFlag: - id: i.skill.fighting-any - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.fighting-any + lang: en + priority: 0 --- _id: T8fSLCwSD8C0iK8t name: Fighting (Axe) @@ -642,10 +671,11 @@ system: combat: true special: true flags: - cocidFlag: - id: i.skill.fighting-axe - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.fighting-axe + lang: en + priority: 0 --- _id: vS8bsPWFlwgOecoB name: Fighting (Brawl) @@ -660,10 +690,11 @@ system: combat: true special: true flags: - cocidFlag: - id: i.skill.fighting-brawl - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.fighting-brawl + lang: en + priority: 0 --- _id: Ed8OShyl7D834Ihk name: Fighting (Chainsaw) @@ -678,15 +709,16 @@ system: combat: true special: true flags: - cocidFlag: - id: i.skill.fighting-chainsaw - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.fighting-chainsaw + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: OcnZzOYWaP4VsjXS name: Fighting (Flail) @@ -701,15 +733,16 @@ system: combat: true special: true flags: - cocidFlag: - id: i.skill.fighting-flail - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.fighting-flail + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: TPOu48DT4QIrqE68 name: Fighting (Garrote) @@ -724,10 +757,11 @@ system: combat: true special: true flags: - cocidFlag: - id: i.skill.fighting-garrote - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.fighting-garrote + lang: en + priority: 0 --- _id: IttOdCAGTeE6VU3F name: Fighting (Spear) @@ -742,10 +776,11 @@ system: combat: true special: true flags: - cocidFlag: - id: i.skill.fighting-spear - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.fighting-spear + lang: en + priority: 0 --- _id: hRPbMl2N0t6aBlyc name: Fighting (Sword) @@ -760,10 +795,11 @@ system: combat: true special: true flags: - cocidFlag: - id: i.skill.fighting-sword - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.fighting-sword + lang: en + priority: 0 --- _id: sWt5Q3ZXd6NlwhXU name: Fighting (Throw) @@ -778,21 +814,22 @@ system: combat: true special: true flags: - cocidFlag: - id: i.skill.fighting-throw - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - regency: true - regencyPulp: true - reignOfTerror: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.fighting-throw + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + regency: true + regencyPulp: true + reignOfTerror: true + priority: 0 --- _id: Pb3QI7x9xJVeXi8a name: Fighting (Whip) @@ -807,10 +844,11 @@ system: combat: true special: true flags: - cocidFlag: - id: i.skill.fighting-whip - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.fighting-whip + lang: en + priority: 0 --- _id: YPiD2ubZensxjKGU name: Firearms (Any) @@ -826,10 +864,11 @@ system: special: true picknameonly: true flags: - cocidFlag: - id: i.skill.firearms-any - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.firearms-any + lang: en + priority: 0 --- _id: qET2wCGGdy3z18Gc name: Firearms (Artillery) @@ -845,16 +884,17 @@ system: special: true rarity: true flags: - cocidFlag: - id: i.skill.firearms-artillery - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - reignOfTerror: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.firearms-artillery + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + reignOfTerror: true + priority: 0 --- _id: VwGWZ2LBOwtMaw08 name: Firearms (Bow) @@ -869,10 +909,11 @@ system: combat: true special: true flags: - cocidFlag: - id: i.skill.firearms-bow - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.firearms-bow + lang: en + priority: 0 --- _id: 35dvJDsrY8JipXRU name: Firearms (Flamethrower) @@ -887,15 +928,16 @@ system: combat: true special: true flags: - cocidFlag: - id: i.skill.firearms-flamethrower - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.firearms-flamethrower + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: KmDGtn7ukUFVb265 name: Firearms (Handgun) @@ -910,18 +952,19 @@ system: combat: true special: true flags: - cocidFlag: - id: i.skill.firearms-handgun - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.firearms-handgun + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + priority: 0 --- _id: 23vdyJDDfjyneH3I name: Firearms (Heavy Weapons) @@ -936,15 +979,16 @@ system: combat: true special: true flags: - cocidFlag: - id: i.skill.firearms-heavy-weapons - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.firearms-heavy-weapons + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: QcomAOgmOS5g3dsh name: Firearms (Machine Gun) @@ -959,15 +1003,16 @@ system: combat: true special: true flags: - cocidFlag: - id: i.skill.firearms-machine-gun - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.firearms-machine-gun + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: m2pYjKk4Gk3FcEBL name: Firearms (Rifle/Shotgun) @@ -982,18 +1027,19 @@ system: combat: true special: true flags: - cocidFlag: - id: i.skill.firearms-rifle-shotgun - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.firearms-rifle-shotgun + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + priority: 0 --- _id: gRUXG91zIJXOLye1 name: Firearms (Submachine Gun) @@ -1008,15 +1054,16 @@ system: combat: true special: true flags: - cocidFlag: - id: i.skill.firearms-submachine-gun - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.firearms-submachine-gun + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: nZ8rdL4PLb7A7f5B name: First Aid @@ -1029,10 +1076,11 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.first-aid - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.first-aid + lang: en + priority: 0 --- _id: SflwB1bbjaQebiPQ name: Gambling @@ -1045,13 +1093,14 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.gambling - lang: en - eras: - downDarkerTrails: true - downDarkerTrailsPulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.gambling + lang: en + eras: + downDarkerTrails: true + downDarkerTrailsPulp: true + priority: 0 --- _id: URo2NSSJSNdvOqXU name: History @@ -1064,21 +1113,22 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.history - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - regency: true - regencyPulp: true - reignOfTerror: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.history + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + regency: true + regencyPulp: true + reignOfTerror: true + priority: 0 --- _id: mEblnQjptKvKCeIg name: Hypnosis @@ -1092,17 +1142,18 @@ system: rarity: true push: true flags: - cocidFlag: - id: i.skill.hypnosis - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.hypnosis + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + priority: 0 --- _id: hDr4eUbS398oniTa name: Intimidate @@ -1115,10 +1166,11 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.intimidate - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.intimidate + lang: en + priority: 0 --- _id: c5utlFbDM7J8TA8b name: Jump @@ -1131,21 +1183,22 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.jump - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - regency: true - regencyPulp: true - reignOfTerror: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.jump + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + regency: true + regencyPulp: true + reignOfTerror: true + priority: 0 --- _id: Yu3Xk8kZBlz0G82y name: Language (Any) @@ -1160,10 +1213,11 @@ system: requiresname: true push: true flags: - cocidFlag: - id: i.skill.language-any - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.language-any + lang: en + priority: 0 --- _id: rhJ1Q9OB3uTUZmjD name: Language (Own) @@ -1180,10 +1234,11 @@ system: keepbasevalue: true onlyone: true flags: - cocidFlag: - id: i.skill.language-own - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.language-own + lang: en + priority: 0 --- _id: 64hnBZNC8FM7oTkg name: Law @@ -1196,21 +1251,22 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.law - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - regency: true - regencyPulp: true - reignOfTerror: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.law + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + regency: true + regencyPulp: true + reignOfTerror: true + priority: 0 --- _id: BcWHh8EhmyKj7bNk name: Library Use @@ -1223,21 +1279,22 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.library-use - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - regency: true - regencyPulp: true - reignOfTerror: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.library-use + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + regency: true + regencyPulp: true + reignOfTerror: true + priority: 0 --- _id: MoAB0NRNlpEc2qWr name: Listen @@ -1250,21 +1307,22 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.listen - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - regency: true - regencyPulp: true - reignOfTerror: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.listen + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + regency: true + regencyPulp: true + reignOfTerror: true + priority: 0 --- _id: MRbFH52Zh9TzhLBh name: Locksmith @@ -1277,21 +1335,22 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.locksmith - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - regency: true - regencyPulp: true - reignOfTerror: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.locksmith + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + regency: true + regencyPulp: true + reignOfTerror: true + priority: 0 --- _id: rCJKGay6D0ucqgeg name: Lore (Any) @@ -1307,13 +1366,14 @@ system: rarity: true push: true flags: - cocidFlag: - id: i.skill.lore-any - lang: en - eras: - standard: true - modern: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.lore-any + lang: en + eras: + standard: true + modern: true + priority: 0 --- _id: 0qCTuRFUCACSEsWj name: Mechanical Repair @@ -1326,20 +1386,21 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.mechanical-repair - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - regency: true - regencyPulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.mechanical-repair + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + regency: true + regencyPulp: true + priority: 0 --- _id: Xmg7oAy70DKpv4kq name: Medicine @@ -1352,10 +1413,11 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.medicine - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.medicine + lang: en + priority: 0 --- _id: jTcu6Ni2ek7Yz5q3 name: Natural World @@ -1368,18 +1430,19 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.natural-world - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - gasLight: true - regency: true - regencyPulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.natural-world + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + gasLight: true + regency: true + regencyPulp: true + priority: 0 --- _id: 1c3fdvpQtvZf5YXK name: Navigate @@ -1392,10 +1455,11 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.navigate - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.navigate + lang: en + priority: 0 --- _id: 6pSfZVS68jSHxa5T name: Occult @@ -1408,10 +1472,11 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.occult - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.occult + lang: en + priority: 0 --- _id: cuExWy1130KUwuWz name: Operate Heavy Machinery @@ -1424,18 +1489,19 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.operate-heavy-machinery - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.operate-heavy-machinery + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + priority: 0 --- _id: uMzSNURmZqjxr7mU name: Persuade @@ -1448,21 +1514,22 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.persuade - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - regency: true - regencyPulp: true - reignOfTerror: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.persuade + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + regency: true + regencyPulp: true + reignOfTerror: true + priority: 0 --- _id: uQsVn8K6XRXQmtaI name: Pilot (Any) @@ -1477,18 +1544,19 @@ system: requiresname: true push: true flags: - cocidFlag: - id: i.skill.pilot-any - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.pilot-any + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + priority: 0 --- _id: rXBU2GofiO2qOsGv name: Psychoanalysis @@ -1501,15 +1569,16 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.psychoanalysis - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.psychoanalysis + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: MFR4eR79niGaLfph name: Psychology @@ -1522,21 +1591,22 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.psychology - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - regency: true - regencyPulp: true - reignOfTerror: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.psychology + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + regency: true + regencyPulp: true + reignOfTerror: true + priority: 0 --- _id: SL2OorS0Xx6ty02A name: Read Lips @@ -1550,15 +1620,16 @@ system: rarity: true push: true flags: - cocidFlag: - id: i.skill.read-lips - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.read-lips + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: o7TdzbuSP7ticONf name: Ride @@ -1571,18 +1642,19 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.ride - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - gasLight: true - regency: true - regencyPulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.ride + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + gasLight: true + regency: true + regencyPulp: true + priority: 0 --- _id: EMA6uEtQBgJtBcPl name: Rope Use @@ -1595,13 +1667,14 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.rope-use - lang: en - eras: - downDarkerTrails: true - downDarkerTrailsPulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.rope-use + lang: en + eras: + downDarkerTrails: true + downDarkerTrailsPulp: true + priority: 0 --- _id: KvZuYcg3AmVrwKi2 name: Science (Any) @@ -1616,10 +1689,11 @@ system: requiresname: true push: true flags: - cocidFlag: - id: i.skill.science-any - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.science-any + lang: en + priority: 0 --- _id: hhvqA2BOljk1FHVg name: Science (Astronomy) @@ -1633,15 +1707,16 @@ system: push: true special: true flags: - cocidFlag: - id: i.skill.science-astronomy - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.science-astronomy + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: IBSDR6U4dE1uejVp name: Science (Biology) @@ -1655,15 +1730,16 @@ system: special: true push: true flags: - cocidFlag: - id: i.skill.science-biology - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.science-biology + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: ShPoibiLsd07AtZv name: Science (Botany) @@ -1677,15 +1753,16 @@ system: special: true push: true flags: - cocidFlag: - id: i.skill.science-botany - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.science-botany + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: 8twBT7nbyh5dEp3J name: Science (Chemistry) @@ -1699,15 +1776,16 @@ system: special: true push: true flags: - cocidFlag: - id: i.skill.science-chemistry - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.science-chemistry + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: UASTWOvgCYi8G1QQ name: Science (Cryptography) @@ -1721,15 +1799,16 @@ system: special: true push: true flags: - cocidFlag: - id: i.skill.science-cryptography - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.science-cryptography + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: 9zy7PLmTLXknFce4 name: Science (Engineering) @@ -1743,15 +1822,16 @@ system: special: true push: true flags: - cocidFlag: - id: i.skill.science-engineering - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.science-engineering + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: Nw5tSvi2Knxlqmg1 name: Science (Forensics) @@ -1765,15 +1845,16 @@ system: special: true push: true flags: - cocidFlag: - id: i.skill.science-forensics - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.science-forensics + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: QwaL3UC3Gvjd3hmF name: Science (Geology) @@ -1787,15 +1868,16 @@ system: special: true push: true flags: - cocidFlag: - id: i.skill.science-geology - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.science-geology + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: TwYYqLHe1PXnOCDF name: Science (Mathematics) @@ -1809,15 +1891,16 @@ system: special: true push: true flags: - cocidFlag: - id: i.skill.science-mathematics - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.science-mathematics + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: w7hWVU14syjweIH2 name: Science (Meteorology) @@ -1831,15 +1914,16 @@ system: special: true push: true flags: - cocidFlag: - id: i.skill.science-meteorology - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.science-meteorology + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: V9ulAwDyLVqqQ0su name: Science (Pharmacy) @@ -1853,15 +1937,16 @@ system: special: true push: true flags: - cocidFlag: - id: i.skill.science-pharmacy - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.science-pharmacy + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: Dh6sHWep0qKQmi3I name: Science (Physics) @@ -1875,15 +1960,16 @@ system: special: true push: true flags: - cocidFlag: - id: i.skill.science-physics - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.science-physics + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: 0rlp7EuZDzQGjIYf name: Science (Zoology) @@ -1897,15 +1983,16 @@ system: special: true push: true flags: - cocidFlag: - id: i.skill.science-zoology - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.science-zoology + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + priority: 0 --- _id: KKFNX5M4LtEtiuxs name: Sleight of Hand @@ -1918,21 +2005,22 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.sleight-of-hand - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - regency: true - regencyPulp: true - reignOfTerror: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.sleight-of-hand + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + regency: true + regencyPulp: true + reignOfTerror: true + priority: 0 --- _id: nHaWNwtW3Lg0sqYJ name: Spot Hidden @@ -1945,10 +2033,11 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.spot-hidden - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.spot-hidden + lang: en + priority: 0 --- _id: DcV524K0jNfjDEZC name: Stealth @@ -1961,23 +2050,24 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.stealth - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - darkAges: true - darkAgesPulp: true - gasLight: true - regency: true - regencyPulp: true - reignOfTerror: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.stealth + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + darkAges: true + darkAgesPulp: true + gasLight: true + regency: true + regencyPulp: true + reignOfTerror: true + priority: 0 --- _id: X99v5MtRlfTNjL3B name: Survival (Any) @@ -1992,21 +2082,22 @@ system: requiresname: true push: true flags: - cocidFlag: - id: i.skill.survival-any - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - regency: true - regencyPulp: true - reignOfTerror: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.survival-any + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + regency: true + regencyPulp: true + reignOfTerror: true + priority: 0 --- _id: 1zSIeY0eat2AxQok name: Swim @@ -2019,21 +2110,22 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.swim - lang: en - eras: - standard: true - modern: true - modernPulp: true - pulp: true - downDarkerTrails: true - downDarkerTrailsPulp: true - gasLight: true - regency: true - regencyPulp: true - reignOfTerror: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.swim + lang: en + eras: + standard: true + modern: true + modernPulp: true + pulp: true + downDarkerTrails: true + downDarkerTrailsPulp: true + gasLight: true + regency: true + regencyPulp: true + reignOfTerror: true + priority: 0 --- _id: AcUIbZFhfoXqQP2m name: Track @@ -2046,10 +2138,11 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.track - lang: en - priority: 0 + CoC7: + cocidFlag: + id: i.skill.track + lang: en + priority: 0 --- _id: HzOGu2yLcL9obry3 name: Trap @@ -2062,11 +2155,12 @@ system: properties: push: true flags: - cocidFlag: - id: i.skill.trap - lang: en - eras: - downDarkerTrails: true - downDarkerTrailsPulp: true - priority: 0 + CoC7: + cocidFlag: + id: i.skill.trap + lang: en + eras: + downDarkerTrails: true + downDarkerTrailsPulp: true + priority: 0 --- diff --git a/compendiums/en-wiki-phobias-and-manias.yaml b/compendiums/en-wiki-phobias-and-manias.yaml new file mode 100644 index 00000000..9f99ec06 --- /dev/null +++ b/compendiums/en-wiki-phobias-and-manias.yaml @@ -0,0 +1,329 @@ +_id: P5nXnVY3u52GwN1X +name: Phobias +type: folder +color: '#75844c' +--- +_id: S9nXnVY3u52GwN0T +name: Manias +type: folder +color: '#75844c' +--- +name: Agathomania +type: status +img: icons/svg/ice-aura.svg +folder: S9nXnVY3u52GwN0T +system: + description: + value: '

    Pathological kindness

    ' + type: + mania: true +flags: + CoC7: + cocidFlag: + id: i.status.agathomania + lang: en + priority: 0 +--- +name: Algomania +type: status +img: icons/svg/ice-aura.svg +folder: S9nXnVY3u52GwN0T +system: + description: + value: '

    Obsession with pain

    ' + type: + mania: true +flags: + CoC7: + cocidFlag: + id: i.status.algomania + lang: en + priority: 0 +--- +name: Amenomania +type: status +img: icons/svg/ice-aura.svg +folder: S9nXnVY3u52GwN0T +system: + description: + value: '

    Irrational cheerfulness

    ' + type: + mania: true +flags: + CoC7: + cocidFlag: + id: i.status.amenomania + lang: en + priority: 0 +--- +name: Bibliokleptomania +type: status +img: icons/svg/ice-aura.svg +folder: S9nXnVY3u52GwN0T +system: + description: + value: '

    Compulsion for stealing books

    ' + type: + mania: true +flags: + CoC7: + cocidFlag: + id: i.status.bibliokleptomania + lang: en + priority: 0 +--- +name: Dikemania +type: status +img: icons/svg/ice-aura.svg +folder: S9nXnVY3u52GwN0T +system: + description: + value: '

    Obsession to see justice done

    ' + type: + mania: true +flags: + CoC7: + cocidFlag: + id: i.status.dikemania + lang: en + priority: 0 +--- +name: Geliomania +type: status +img: icons/svg/ice-aura.svg +folder: S9nXnVY3u52GwN0T +system: + description: + value: '

    Uncontrollable compulsion to laugh

    ' + type: + mania: true +flags: + CoC7: + cocidFlag: + id: i.status.geliomania + lang: en + priority: 0 +--- +name: Klazomania +type: status +img: icons/svg/ice-aura.svg +folder: S9nXnVY3u52GwN0T +system: + description: + value: '

    Irrational compulsion to shout

    ' + type: + mania: true +flags: + CoC7: + cocidFlag: + id: i.status.klazomania + lang: en + priority: 0 +--- +name: Kleptomania +type: status +img: icons/svg/ice-aura.svg +folder: S9nXnVY3u52GwN0T +system: + description: + value: '

    Irrational compulsion for stealing

    ' + type: + mania: true +flags: + CoC7: + cocidFlag: + id: i.status.kleptomania + lang: en + priority: 0 +--- +name: Nosomania +type: status +img: icons/svg/ice-aura.svg +folder: S9nXnVY3u52GwN0T +system: + description: + value: '

    Delusion of suffering from an imagined disease

    ' + type: + mania: true +flags: + CoC7: + cocidFlag: + id: i.status.nosomania + lang: en + priority: 0 +--- +name: Pseudomania +type: status +img: icons/svg/ice-aura.svg +folder: S9nXnVY3u52GwN0T +system: + description: + value: '

    Irrational compulsion for lying

    ' + type: + mania: true +flags: + CoC7: + cocidFlag: + id: i.status.pseudomania + lang: en + priority: 0 +--- +name: Acrophobia +type: status +img: icons/svg/aura.svg +folder: P5nXnVY3u52GwN1X +system: + description: + value: '

    Fear of heights

    ' + type: + phobia: true +flags: + CoC7: + cocidFlag: + id: i.status.acrophobia + lang: en + priority: 0 +--- +name: Arachnophobia +type: status +img: icons/svg/aura.svg +folder: P5nXnVY3u52GwN1X +system: + description: + value: '

    Fear of spiders

    ' + type: + phobia: true +flags: + CoC7: + cocidFlag: + id: i.status.arachnophobia + lang: en + priority: 0 +--- +name: Bibliophobia +type: status +img: icons/svg/aura.svg +folder: P5nXnVY3u52GwN1X +system: + description: + value: '

    Fear of books

    ' + type: + phobia: true +flags: + CoC7: + cocidFlag: + id: i.status.bibliophobia + lang: en + priority: 0 +--- +name: Eisoptrophobia +type: status +img: icons/svg/aura.svg +folder: P5nXnVY3u52GwN1X +system: + description: + value: '

    Fear of mirrors

    ' + type: + phobia: true +flags: + CoC7: + cocidFlag: + id: i.status.eisoptrophobia + lang: en + priority: 0 +--- +name: Hemaphobia +type: status +img: icons/svg/aura.svg +folder: P5nXnVY3u52GwN1X +system: + description: + value: '

    Fear of blood

    ' + type: + phobia: true +flags: + CoC7: + cocidFlag: + id: i.status.hemaphobia + lang: en + priority: 0 +--- +name: Necrophobia +type: status +img: icons/svg/aura.svg +folder: P5nXnVY3u52GwN1X +system: + description: + value: '

    Fear of dead things

    ' + type: + phobia: true +flags: + CoC7: + cocidFlag: + id: i.status.necrophobia + lang: en + priority: 0 +--- +name: Odontophobia +type: status +img: icons/svg/aura.svg +folder: P5nXnVY3u52GwN1X +system: + description: + value: '

    Fear of teeth

    ' + type: + phobia: true +flags: + CoC7: + cocidFlag: + id: i.status.odontophobia + lang: en + priority: 0 +--- +name: Pyrophobia +type: status +img: icons/svg/aura.svg +folder: P5nXnVY3u52GwN1X +system: + description: + value: '

    Fear of fire

    ' + type: + phobia: true +flags: + CoC7: + cocidFlag: + id: i.status.pyrophobia + lang: en + priority: 0 +--- +name: Telephonophobia +type: status +img: icons/svg/aura.svg +folder: P5nXnVY3u52GwN1X +system: + description: + value: '

    Fear of telephones

    ' + type: + phobia: true +flags: + CoC7: + cocidFlag: + id: i.status.telephonophobia + lang: en + priority: 0 +--- +name: Xenophobia +type: status +img: icons/svg/aura.svg +folder: P5nXnVY3u52GwN1X +system: + description: + value: '

    Fear of strangers or foreigners

    ' + type: + phobia: true +flags: + CoC7: + cocidFlag: + id: i.status.xenophobia + lang: en + priority: 0 diff --git a/compendiums/en-wiki-roll-tables.yaml b/compendiums/en-wiki-roll-tables.yaml new file mode 100644 index 00000000..c39a346d --- /dev/null +++ b/compendiums/en-wiki-roll-tables.yaml @@ -0,0 +1,29 @@ +name: Bouts of Madness Table (Realtime) +formula: 1d10 +results: + - type: text + text: 'Amnesia: the investigator has no memory of events that have taken place since they were last in a place of safety. It seems to them that one moment they were eating breakfast and the next they are facing a monster. This lasts for [[/r 1D10]] rounds.' + - type: text + text: 'Psychosomatic Disability: the investigator suffers psychosomatic blindness, deafness, or loss of the use of a limb for [[/r 1D10]] rounds.' + - type: text + text: 'Violence: a red mist of rage descends on the afflicted investigator and they explode in a spree of uncontrolled violence and destruction directed at their surroundings, allies and foes alike, for [[/r 1D10]] rounds.' + - type: text + text: 'Paranoia: the investigator suffers severe paranoia for [[/r 1D10]] rounds. Everyone is out to get them! No one can be trusted! They are being spied on; someone has betrayed them; what they are seeing is a trick.' + - type: text + text: 'Significant Person: review the investigator’s backstory entry for Significant People. The investigator mistakes another person in the scene for their significant person. Consider the nature of the relationship; the investigator acts upon it. This lasts [[/r 1D10]] rounds.' + - type: text + text: 'Faint: the investigator faints, recovering after [[/r 1D10]] rounds.' + - type: text + text: 'Flee in Panic: the investigator is compelled to get as far away as possible by whatever method available, even if it means taking the only vehicle and leaving everyone else behind. They flee for [[/r 1D10]] rounds.' + - type: text + text: 'Physical Hysterics or Emotional Outburst: the investigator is incapacitated laughing, crying, screaming, etc. for [[/r 1D10]] rounds.' + - type: text + text: 'Phobia: the investigator gains a new phobia, such as claustrophobia (fear of confined spaces), demonophobia (fear of spirits or demons), or katsaridaphobia (fear of cockroaches). Even if the source of the phobia is not present, the investigator imagines it is there for the next [[/r 1D10]] rounds, and all actions suffer a penalty die while the bout continues.' + - type: text + text: 'Mania: the investigator gains a new mania, such as ablutomania (compulsion for washing oneself), pseudomania (irrational compulsion for lying), or helminthomania (an excessive liking for worms). The investigator seeks to indulge in this new mania for the next [[/r 1D10]] rounds, and all actions suffer a penalty die while the bout continues.' +flags: + CoC7: + cocidFlag: + id: i.status.bouts-of-madness-table-realtime + lang: en + priority: 0 diff --git a/compendiums/en-wiki-weapons.yaml b/compendiums/en-wiki-weapons.yaml new file mode 100644 index 00000000..22f5adf1 --- /dev/null +++ b/compendiums/en-wiki-weapons.yaml @@ -0,0 +1,1129 @@ +_id: 2r5xD2GY15lSTtEm +name: Hand-to-Hand Weapons +type: folder +color: '#75844c' +--- +_id: 3zZuq7B7eNxU2QMC +name: Handguns +type: folder +color: '#75844c' +--- +_id: OJkZsHH3vZYEUeQC +name: Rifles +type: folder +color: '#75844c' +--- +_id: w2vkKXFHcaQVeB7H +name: Shotguns +type: folder +color: '#75844c' +--- +_id: JAeTufherjBnBPgA +name: Submachine Guns +type: folder +color: '#75844c' +--- +_id: CMWcRDEeZED0VpyQ +name: Machine Guns +type: folder +color: '#75844c' +--- +name: Bow +type: weapon +img: icons/weapons/bows/shortbow-white.webp +folder: 2r5xD2GY15lSTtEm +system: + skill: + main: + name: 'i.skill.firearms-bow' + range: + normal: + value: 30 + damage: '1D6' + bullets: 1 + properties: + rngd: true + ahdb: true + malfunction: 97 +flags: + CoC7: + cocidFlag: + id: i.weapon.bow + lang: en + priority: 0 +--- +name: Brass Knuckles +type: weapon +img: icons/weapons/fist/fist-knuckles-spiked-stone.webp +folder: 2r5xD2GY15lSTtEm +system: + skill: + main: + name: 'i.skill.fighting-brawl' + range: + normal: + damage: '1D3+1' + properties: + melee: true + addb: true +flags: + CoC7: + cocidFlag: + id: i.weapon.brass-knuckles + lang: en + priority: 0 +--- +name: Bullwhip +type: weapon +img: icons/weapons/misc/whip-red-yellow.webp +folder: 2r5xD2GY15lSTtEm +system: + skill: + main: + name: 'i.skill.fighting-whip' + range: + normal: + value: 3 + damage: '1D3' + properties: + rngd: true + ahdb: true +flags: + CoC7: + cocidFlag: + id: i.weapon.bullwhip + lang: en + priority: 0 +--- +name: Burning Torch +type: weapon +img: icons/sundries/lights/torch-brown-lit.webp +folder: 2r5xD2GY15lSTtEm +system: + skill: + main: + name: 'i.skill.fighting-brawl' + range: + normal: + damage: '1D6' + properties: + melee: true + burn: true +flags: + CoC7: + cocidFlag: + id: i.weapon.burning-torch + lang: en + priority: 0 +--- +name: Blackjack +type: weapon +img: icons/weapons/clubs/club-baton-blue.webp +folder: 2r5xD2GY15lSTtEm +system: + skill: + main: + name: 'i.skill.fighting-brawl' + range: + normal: + damage: '1D8' + properties: + melee: true + addb: true +flags: + CoC7: + cocidFlag: + id: i.weapon.blackjack + lang: en + priority: 0 +--- +name: Club, Large +type: weapon +img: icons/weapons/clubs/club-baton-blue.webp +folder: 2r5xD2GY15lSTtEm +system: + skill: + main: + name: 'i.skill.fighting-brawl' + range: + normal: + damage: '1D8' + properties: + melee: true + addb: true +flags: + CoC7: + cocidFlag: + id: i.weapon.club-large + lang: en + priority: 0 +--- +name: Club, Small +type: weapon +img: icons/weapons/clubs/club-baton-blue.webp +folder: 2r5xD2GY15lSTtEm +system: + skill: + main: + name: 'i.skill.fighting-brawl' + range: + normal: + damage: '1D6' + properties: + melee: true + addb: true +flags: + CoC7: + cocidFlag: + id: i.weapon.club-small + lang: en + priority: 0 +--- +name: Crossbow +type: weapon +img: icons/weapons/crossbows/crossbow-white.webp +folder: 2r5xD2GY15lSTtEm +system: + skill: + main: + name: 'i.skill.firearms-bow' + range: + normal: + value: 50 + damage: '1D8+2' + usesPerRound: + normal: 0.5 + bullets: 1 + properties: + rngd: true + ahdb: true + malfunction: 96 +flags: + CoC7: + cocidFlag: + id: i.weapon.crossbow + lang: en + priority: 0 +--- +name: Garrote +type: weapon +img: icons/equipment/neck/choker-chain-thin-gold.webp +folder: 2r5xD2GY15lSTtEm +system: + skill: + main: + name: 'i.skill.fighting-garrote' + range: + normal: + damage: '1D6' + properties: + melee: true + addb: true +flags: + CoC7: + cocidFlag: + id: i.weapon.garrote + lang: en + priority: 0 +--- +name: Hatchet/Sickle +type: weapon +img: icons/tools/hand/hatchet-steel-grey.webp +folder: 2r5xD2GY15lSTtEm +system: + skill: + main: + name: 'i.skill.fighting-axe' + range: + normal: + damage: '1D6+1' + properties: + melee: true + addb: true +flags: + CoC7: + cocidFlag: + id: i.weapon.hatchet-sickle + lang: en + priority: 0 +--- +name: Knife, Large +type: weapon +img: icons/weapons/swords/sword-machete-white.webp +folder: 2r5xD2GY15lSTtEm +system: + skill: + main: + name: 'i.skill.fighting-brawl' + range: + normal: + damage: '1D8' + properties: + melee: true + addb: true +flags: + CoC7: + cocidFlag: + id: i.weapon.knife-large + lang: en + priority: 0 +--- +name: Knife, Medium +type: weapon +img: icons/tools/cooking/knife-chef-steel-brown.webp +folder: 2r5xD2GY15lSTtEm +system: + skill: + main: + name: 'i.skill.fighting-brawl' + range: + normal: + damage: '1D4+2' + properties: + melee: true + addb: true +flags: + CoC7: + cocidFlag: + id: i.weapon.knife-medium + lang: en + priority: 0 +--- +name: Knife, Small +type: weapon +img: icons/weapons/daggers/knife-green.webp +folder: 2r5xD2GY15lSTtEm +system: + skill: + main: + name: 'i.skill.fighting-brawl' + range: + normal: + damage: '1D4' + properties: + melee: true + addb: true +flags: + CoC7: + cocidFlag: + id: i.weapon.knife-small + lang: en + priority: 0 +--- +name: Nunchaku +type: weapon +img: icons/weapons/staves/staff-mended.webp +folder: 2r5xD2GY15lSTtEm +system: + skill: + main: + name: 'i.skill.fighting-flail' + range: + normal: + damage: '1D8' + properties: + melee: true + addb: true +flags: + CoC7: + cocidFlag: + id: i.weapon.nunchaku + lang: en + priority: 0 +--- +name: Rock, Thrown +type: weapon +img: icons/commodities/stone/boulder-grey.webp +folder: 2r5xD2GY15lSTtEm +system: + skill: + main: + name: 'i.skill.fighting-throw' + range: + normal: + value: '@STR/5' + damage: '1D4' + properties: + rngd: true + ahdb: true +flags: + CoC7: + cocidFlag: + id: i.weapon.rock-thrown + lang: en + priority: 0 +--- +name: Shuriken +type: weapon +img: icons/weapons/thrown/shuriken-double-red.webp +folder: 2r5xD2GY15lSTtEm +system: + skill: + main: + name: 'i.skill.fighting-throw' + range: + normal: + value: '@STR/5' + damage: '1D3' + properties: + rngd: true + ahdb: true + usesPerRound: + normal: 2 + malfunction: 97 +flags: + CoC7: + cocidFlag: + id: i.weapon.shuriken + lang: en + priority: 0 +--- +name: Spear +type: weapon +img: icons/weapons/polearms/spear-flared-blue.webp +folder: 2r5xD2GY15lSTtEm +system: + skill: + main: + name: 'i.skill.fighting-spear' + range: + normal: + damage: '1D8+1' + properties: + melee: true +flags: + CoC7: + cocidFlag: + id: i.weapon.spear + lang: en + priority: 0 +--- +name: Spear, Thrown +type: weapon +img: icons/weapons/polearms/spear-flared-blue.webp +folder: 2r5xD2GY15lSTtEm +system: + skill: + main: + name: 'i.skill.fighting-throw' + range: + normal: + value: '@STR/5' + damage: '1D8' + properties: + rngd: true + ahdb: true +flags: + CoC7: + cocidFlag: + id: i.weapon.shuriken + lang: en + priority: 0 +--- +name: .22 Short Automatic +type: weapon +img: icons/weapons/guns/gun-pistol-flintlock-metal.webp +folder: 3zZuq7B7eNxU2QMC +system: + skill: + main: + name: 'i.skill.firearms-handgun' + range: + normal: + value: 10 + damage: '1D6' + bullets: 6 + usesPerRound: + normal: 1 + max: 3 + properties: + rngd: true + malfunction: 100 +flags: + CoC7: + cocidFlag: + id: i.weapon.22-short-automatic + lang: en + priority: 0 +--- +name: .25 Derringer (1B) +type: weapon +img: icons/weapons/guns/gun-pistol-flintlock-metal.webp +folder: 3zZuq7B7eNxU2QMC +system: + skill: + main: + name: 'i.skill.firearms-handgun' + range: + normal: + value: 3 + damage: '1D6' + bullets: 1 + usesPerRound: + normal: 1 + max: 1 + properties: + rngd: true + malfunction: 100 +flags: + CoC7: + cocidFlag: + id: i.weapon.25-derringer-1b + lang: en + priority: 0 +--- +name: .32 or 7.65mm Revolver +type: weapon +img: icons/weapons/guns/gun-pistol-flintlock-metal.webp +folder: 3zZuq7B7eNxU2QMC +system: + skill: + main: + name: 'i.skill.firearms-handgun' + range: + normal: + value: 15 + damage: '1D8' + bullets: 6 + usesPerRound: + normal: 1 + max: 3 + properties: + rngd: true + malfunction: 100 +flags: + CoC7: + cocidFlag: + id: i.weapon.32-or-7-65mm-revolver + lang: en + priority: 0 +--- +name: .32 or 7.65mm Automatic +type: weapon +img: icons/weapons/guns/gun-pistol-flintlock-metal.webp +folder: 3zZuq7B7eNxU2QMC +system: + skill: + main: + name: 'i.skill.firearms-handgun' + range: + normal: + value: 15 + damage: '1D8' + bullets: 8 + usesPerRound: + normal: 1 + max: 3 + properties: + rngd: true + malfunction: 99 +flags: + CoC7: + cocidFlag: + id: i.weapon.32-or-7-65mm-automatic + lang: en + priority: 0 +--- +name: Model P08 Luger +type: weapon +img: icons/weapons/guns/gun-pistol-flintlock-metal.webp +folder: 3zZuq7B7eNxU2QMC +system: + skill: + main: + name: 'i.skill.firearms-handgun' + range: + normal: + value: 15 + damage: '1D10' + bullets: 8 + usesPerRound: + normal: 1 + max: 3 + properties: + rngd: true + malfunction: 99 +flags: + CoC7: + cocidFlag: + id: i.weapon.model-p08-luger + lang: en + priority: 0 +--- +name: .45 Revolver +type: weapon +img: icons/weapons/guns/gun-pistol-flintlock-metal.webp +folder: 3zZuq7B7eNxU2QMC +system: + skill: + main: + name: 'i.skill.firearms-handgun' + range: + normal: + value: 15 + damage: '1D10+2' + bullets: 6 + usesPerRound: + normal: 1 + max: 3 + properties: + rngd: true + malfunction: 100 +flags: + CoC7: + cocidFlag: + id: i.weapon.45-revolver + lang: en + priority: 0 +--- +name: .45 Automatic +type: weapon +img: icons/weapons/guns/gun-pistol-flintlock-metal.webp +folder: 3zZuq7B7eNxU2QMC +system: + skill: + main: + name: 'i.skill.firearms-handgun' + range: + normal: + value: 15 + damage: '1D10+2' + bullets: 7 + usesPerRound: + normal: 1 + max: 3 + properties: + rngd: true + malfunction: 100 +flags: + CoC7: + cocidFlag: + id: i.weapon.45-automatic + lang: en + priority: 0 +--- +name: .22 Bolt-Action Rifle +type: weapon +img: icons/weapons/guns/gun-wood.webp +folder: OJkZsHH3vZYEUeQC +system: + skill: + main: + name: 'i.skill.firearms-rifle-shotgun' + range: + normal: + value: 30 + damage: '1D6+1' + bullets: 6 + usesPerRound: + normal: 1 + max: 1 + properties: + rngd: true + malfunction: 99 +flags: + CoC7: + cocidFlag: + id: i.weapon.22-bolt-action-rifle + lang: en + priority: 0 +--- +name: .30 Lever-Action Carbine +type: weapon +img: icons/weapons/guns/gun-wood.webp +folder: OJkZsHH3vZYEUeQC +system: + skill: + main: + name: 'i.skill.firearms-rifle-shotgun' + range: + normal: + value: 50 + damage: '2D6' + bullets: 6 + usesPerRound: + normal: 1 + max: 1 + properties: + rngd: true + malfunction: 98 +flags: + CoC7: + cocidFlag: + id: i.weapon.30-lever-action-carbine + lang: en + priority: 0 +--- +name: .45 Martini-Henry Rifle +type: weapon +img: icons/weapons/guns/gun-wood.webp +folder: OJkZsHH3vZYEUeQC +system: + skill: + main: + name: 'i.skill.firearms-rifle-shotgun' + range: + normal: + value: 80 + damage: '1D8+1D6+3' + bullets: 1 + usesPerRound: + normal: ⅓ + max: ⅓ + properties: + rngd: true + malfunction: 100 +flags: + CoC7: + cocidFlag: + id: i.weapon.45-martini-henry-rifle + lang: en + priority: 0 +--- +name: Col. Moran's Air Rifle +type: weapon +img: icons/weapons/guns/gun-wood.webp +folder: OJkZsHH3vZYEUeQC +system: + skill: + main: + name: 'i.skill.firearms-rifle-shotgun' + range: + normal: + value: 20 + damage: '2D6+1' + bullets: 1 + usesPerRound: + normal: ⅓ + max: ⅓ + properties: + rngd: true + malfunction: 88 +flags: + CoC7: + cocidFlag: + id: i.weapon.col-moran-s-air-rifle + lang: en + priority: 0 +--- +name: .303 Lee-Enfield +type: weapon +img: icons/weapons/guns/gun-wood.webp +folder: OJkZsHH3vZYEUeQC +system: + skill: + main: + name: 'i.skill.firearms-rifle-shotgun' + range: + normal: + value: 110 + damage: '2D6+4' + bullets: 10 + usesPerRound: + normal: 1 + max: 1 + properties: + rngd: true + malfunction: 100 +flags: + CoC7: + cocidFlag: + id: i.weapon.303-lee-enfield + lang: en + priority: 0 +--- +name: .30-06 Bolt-Action Rifle +type: weapon +img: icons/weapons/guns/gun-wood.webp +folder: OJkZsHH3vZYEUeQC +system: + skill: + main: + name: 'i.skill.firearms-rifle-shotgun' + range: + normal: + value: 110 + damage: '2D6+4' + bullets: 5 + usesPerRound: + normal: 1 + max: 1 + properties: + rngd: true + malfunction: 100 +flags: + CoC7: + cocidFlag: + id: i.weapon.30-06-bolt-action-rifle + lang: en + priority: 0 +--- +name: Elephant Gun (2B) +type: weapon +img: icons/weapons/guns/gun-wood.webp +folder: OJkZsHH3vZYEUeQC +system: + skill: + main: + name: 'i.skill.firearms-rifle-shotgun' + range: + normal: + value: 100 + damage: '3D6+4' + bullets: 2 + usesPerRound: + normal: 1 + max: 2 + properties: + rngd: true + malfunction: 100 +flags: + CoC7: + cocidFlag: + id: i.weapon.elephant-gun-2b + lang: en + priority: 0 +--- +name: 20-gauge Shotgun (2B) +type: weapon +img: icons/weapons/guns/gun-wood.webp +folder: w2vkKXFHcaQVeB7H +system: + skill: + main: + name: 'i.skill.firearms-rifle-shotgun' + range: + normal: + value: 10 + damage: '2D6' + long: + value: 20 + damage: '1D6' + extreme: + value: 50 + damage: '1D3' + bullets: 2 + usesPerRound: + normal: 1 + max: 2 + properties: + rngd: true + shotgun: true + malfunction: 100 +flags: + CoC7: + cocidFlag: + id: i.weapon.20-gauge-shotgun-2b + lang: en + priority: 0 +--- +name: 16-gauge Shotgun (2B) +type: weapon +img: icons/weapons/guns/gun-wood.webp +folder: w2vkKXFHcaQVeB7H +system: + skill: + main: + name: 'i.skill.firearms-rifle-shotgun' + range: + normal: + value: 10 + damage: '2D6+2' + long: + value: 20 + damage: '1D6+1' + extreme: + value: 50 + damage: '1D4' + bullets: 2 + usesPerRound: + normal: 1 + max: 2 + properties: + rngd: true + shotgun: true + malfunction: 100 +flags: + CoC7: + cocidFlag: + id: i.weapon.16-gauge-shotgun-2b + lang: en + priority: 0 +--- +name: 12-gauge Shotgun (2B) +type: weapon +img: icons/weapons/guns/gun-wood.webp +folder: w2vkKXFHcaQVeB7H +system: + skill: + main: + name: 'i.skill.firearms-rifle-shotgun' + range: + normal: + value: 10 + damage: '4D6' + long: + value: 20 + damage: '2D6' + extreme: + value: 50 + damage: '1D6' + bullets: 2 + usesPerRound: + normal: 1 + max: 2 + properties: + rngd: true + shotgun: true + malfunction: 100 +flags: + CoC7: + cocidFlag: + id: i.weapon.12-gauge-shotgun-2b + lang: en + priority: 0 +--- +name: 12-gauge Shotgun (semi-auto) +type: weapon +img: icons/weapons/guns/gun-wood.webp +folder: w2vkKXFHcaQVeB7H +system: + skill: + main: + name: 'i.skill.firearms-rifle-shotgun' + range: + normal: + value: 10 + damage: '4D6' + long: + value: 20 + damage: '2D6' + extreme: + value: 50 + damage: '1D6' + bullets: 5 + usesPerRound: + normal: 1 + max: 2 + properties: + rngd: true + shotgun: true + malfunction: 100 +flags: + CoC7: + cocidFlag: + id: i.weapon.12-gauge-shotgun-semi-auto + lang: en + priority: 0 +--- +name: 12-gauge Shotgun (2B sawed off) +type: weapon +img: icons/weapons/guns/gun-wood.webp +folder: w2vkKXFHcaQVeB7H +system: + skill: + main: + name: 'i.skill.firearms-rifle-shotgun' + range: + normal: + value: 5 + damage: '4D6' + long: + value: 10 + damage: '1D6' + bullets: 2 + usesPerRound: + normal: 1 + max: 2 + properties: + rngd: true + shotgun: true + malfunction: 100 +flags: + CoC7: + cocidFlag: + id: i.weapon.12-gauge-shotgun-2b-sawed-off + lang: en + priority: 0 +--- +name: Bergmann MP181/MP2811 +type: weapon +img: icons/weapons/guns/gun-red.webp +folder: JAeTufherjBnBPgA +system: + skill: + main: + name: 'i.skill.firearms-submachine-gun' + range: + normal: + value: 20 + damage: '1D10' + bullets: 20 + usesPerRound: + normal: 1 + max: 2 + properties: + rngd: true + malfunction: 96 +flags: + CoC7: + cocidFlag: + id: i.weapon.bergmann-mp181-mp2811 + lang: en + priority: 0 +--- +name: Thompson +type: weapon +img: icons/weapons/guns/gun-red.webp +folder: JAeTufherjBnBPgA +system: + skill: + main: + name: 'i.skill.firearms-submachine-gun' + range: + normal: + value: 20 + damage: '1D10+2' + bullets: 20 + usesPerRound: + normal: 1 + max: 1 + properties: + rngd: true + malfunction: 96 +flags: + CoC7: + cocidFlag: + id: i.weapon.thompson + lang: en + priority: 0 +--- +name: Browning Auto Rifle M1918 +type: weapon +img: icons/weapons/guns/gun-purple.webp +folder: CMWcRDEeZED0VpyQ +system: + skill: + main: + name: 'i.skill.firearms-machine-gun' + range: + normal: + value: 90 + damage: '2D6+4' + bullets: 20 + usesPerRound: + normal: 1 + max: 2 + properties: + rngd: true + malfunction: 100 +flags: + CoC7: + cocidFlag: + id: i.weapon.browning-auto-rifle-m1918 + lang: en + priority: 0 +--- +name: .30 Browning M1917A1 +type: weapon +img: icons/weapons/guns/gun-purple.webp +folder: CMWcRDEeZED0VpyQ +system: + skill: + main: + name: 'i.skill.firearms-machine-gun' + range: + normal: + value: 150 + damage: '2D6+4' + bullets: 250 + usesPerRound: + normal: 1 + max: 1 + properties: + rngd: true + malfunction: 96 +flags: + CoC7: + cocidFlag: + id: i.weapon.30-browning-m1917a1 + lang: en + priority: 0 +--- +name: Bren Gun +type: weapon +img: icons/weapons/guns/gun-purple.webp +folder: CMWcRDEeZED0VpyQ +system: + skill: + main: + name: 'i.skill.firearms-machine-gun' + range: + normal: + value: 110 + damage: '2D6+4' + bullets: 30 + usesPerRound: + normal: 1 + max: 1 + properties: + rngd: true + malfunction: 96 +flags: + CoC7: + cocidFlag: + id: i.weapon.bren-gun + lang: en + priority: 0 +--- +name: Mark I Lewis Gun +type: weapon +img: icons/weapons/guns/gun-purple.webp +folder: CMWcRDEeZED0VpyQ +system: + skill: + main: + name: 'i.skill.firearms-machine-gun' + range: + normal: + value: 110 + damage: '2D6+4' + bullets: 47 + usesPerRound: + normal: 1 + max: 1 + properties: + rngd: true + malfunction: 96 +flags: + CoC7: + cocidFlag: + id: i.weapon.mark-i-lewis-gun + lang: en + priority: 0 +--- +name: Vickers .303 +type: weapon +img: icons/weapons/guns/gun-purple.webp +folder: CMWcRDEeZED0VpyQ +system: + skill: + main: + name: 'i.skill.firearms-machine-gun' + range: + normal: + value: 110 + damage: '2D6+4' + bullets: 250 + usesPerRound: + normal: 1 + max: 1 + properties: + rngd: true + malfunction: 99 +flags: + CoC7: + cocidFlag: + id: i.weapon.vickers-303 + lang: en + priority: 0 diff --git a/docs/en/README.md b/docs/en/README.md index eb61e443..be3c3040 100644 --- a/docs/en/README.md +++ b/docs/en/README.md @@ -1,4 +1,4 @@ -# System documentation for version 0.10.0 +# System documentation for version 7.0 This document is a work in progress overview of the CoC7 system it is not a tutorial for how to use FoundryVTT. @@ -18,10 +18,7 @@ This documentation can be reopened under Game Settings -> Help and Documentation For a full list of changes checkout the [changelog](https://github.com/Miskatonic-Investigative-Society/CoC7-FoundryVTT/blob/develop/.github/CHANGELOG.md) on GitHub - - [CoC ID system](coc-id-system.md) - Set tags on documents for example i.skill.dodge to find dodge skills on actors - - Investigator Wizard - Use CoC ID Items to create investigators - - [Pulp Rules](#settings-overview) - Implement optional pulp rule to ignore age when calculating movement speed - - [Active effects](effects.md) - Add support for bonus/penalty dice when rolling from the Actor sheets + - [CoC ID system](coc-id-system.md) - Priority now has more importance over location. # Overview sections below diff --git a/generate-compendiums.js b/generate-compendiums.js deleted file mode 100644 index 59de7f49..00000000 --- a/generate-compendiums.js +++ /dev/null @@ -1,107 +0,0 @@ -import * as crypto from 'crypto' -import * as fs from 'fs' -import glob from './node_modules/glob/glob.js' -import { loadAll } from './node_modules/js-yaml/index.js' - -const lang = 'en' - -let foundryVTTFile = '' -let check = '' -const collisions = {} -if (fs.existsSync(check = './system.json')) { - foundryVTTFile = check -} else if (fs.existsSync(check = './module.json')) { - foundryVTTFile = check -} - -if (foundryVTTFile !== '') { - const packs = {} - const json = JSON.parse(fs.readFileSync(foundryVTTFile, 'utf8')) - for (const pack of json.packs) { - const match = pack.path.match(/([^\\/]+)\.db$/) - if (match) { - packs[match[1]] = pack.type - } - } - console.log('Known packs', packs) - const dbList = glob.sync('./compendiums/*.yaml', {}) - for (const filename of dbList) { - const match = filename.match(/^\.\/compendiums\/([^/]+)\.yaml$/) - if (match) { - const fileslug = match[1] - if (typeof packs[fileslug] !== 'undefined') { - const type = packs[fileslug] - let yaml = loadAll(fs.readFileSync(filename, 'utf8')) - yaml = yaml.filter(doc => doc).map(doc => { - if (!doc._id) { - // Make sure we don't generate new ids everytime we rebuild - doc._id = generateBuildConsistentID(doc.name + lang + JSON.stringify(doc.flags.cocidFlag.eras)) - } - doc.flags = { - CoC7: doc.flags - } - switch (type) { - case 'Item': - switch (doc.type) { - case 'skill': { - const match = doc.name.match(/^(.+)\s*\((.+)\)$/) - if (match) { - doc.system.skillName = match[2].trim() - doc.system.specialization = match[1].trim() - } else { - doc.system.skillName = doc.name - doc.system.specialization = '' - } - break - } - } - break - case 'RollTable': - if (typeof doc.results !== 'undefined') { - let range = 0 - for (const offset in doc.results) { - if (!doc.results[offset]._id) { - doc.results[offset]._id = generateBuildConsistentID(doc.name + lang + JSON.stringify(doc.flags.CoC7.cocidFlag.eras) + offset) - } - if (!doc.results[offset].range) { - range++ - doc.results[offset].range = [range, range] - } else { - range = doc.results[offset].range[1] - } - } - if (!doc.formula) { - doc.formula = '1d' + range - } - } - } - return doc - }) - const packDir = './packs/' - const file = packDir + fileslug + '.db' - if (!fs.existsSync(packDir)) { - fs.mkdirSync(packDir, { recursive: true }) - } - console.log('Generating: ' + file) - fs.writeFileSync(file, yaml.map(doc => JSON.stringify(doc)).join('\n')) - } - } - } -} - -/** - * generateBuildConsistentID uses idSource to generate an id that will be consistent across builds. - * - * Note: This is called outside of foundry to build manual .db files and substitutes foundry.utils.randomID in a build consistent way. - * It creates a hash from the key so it is consistent between builds and the converts to base 64 so it uses the same range of characters as FoundryVTTs generator. - * @param {string} idSource - * @returns id, an string of 16 characters with the id consistently generated from idSource - */ -function generateBuildConsistentID (idSource) { - let id = crypto.createHash('md5').update(idSource).digest('base64').replace(/[\\+=\\/]/g, '').substring(0, 16) - while (typeof collisions[id] !== 'undefined') { - console.log('collision on ' + idSource) - id = crypto.createHash('md5').update(idSource + Math.random().toString()).digest('base64').replace(/[\\+=\\/]/g, '').substring(0, 16) - } - return id -} diff --git a/lang/en.json b/lang/en.json index 46618da6..cd3c4fe1 100644 --- a/lang/en.json +++ b/lang/en.json @@ -1364,5 +1364,11 @@ "CoC7.ErrorNoActorPermission": "You are not the Owner of this Actor", "CoC7.ErrorCombinedRollsRequireSingleActor": "You can not have more than one actor in a combined roll", "CoC7.ErrorOpposedRollsLimitedToTwoActors": "An opposed card requires two actors", - "CoC7.PauseName": "Time Stop" + "CoC7.PauseName": "Time Stop", + + "CoC7.ClickableEvents.MouseOver.Title": "Permission to click", + "CoC7.ClickableEvents.MouseOver.Hint": "Return boolean if should allow click and show mouse cursor", + "CoC7.ClickableEvents.LeftClick.Title": "Left Click Script", + "CoC7.ClickableEvents.RightClick.Title": "Right Click Script", + "TYPES.RegionBehavior.coc7ClickableEvents": "Clickable Events" } diff --git a/module/apps/coc7-clickable-events.js b/module/apps/coc7-clickable-events.js new file mode 100644 index 00000000..d4937d8b --- /dev/null +++ b/module/apps/coc7-clickable-events.js @@ -0,0 +1,295 @@ +/* global canvas, CONFIG, CONST, DocumentSheetConfig, foundry, fromUuid, game, NotesLayer, RegionBehavior, TokenLayer */ +const { RegionBehaviorType } = foundry.data.regionBehaviors + +export default class CoC7ClickableEvents extends RegionBehaviorType { + static initSelf () { + Object.assign(CONFIG.RegionBehavior.dataModels, { + coc7ClickableEvents: CoC7ClickableEvents + }) + + Object.assign(CONFIG.RegionBehavior.typeIcons, { + coc7ClickableEvents: 'fa-solid fa-computer-mouse' + }) + + DocumentSheetConfig.registerSheet( + RegionBehavior, + 'CoC7', + foundry.applications.sheets.RegionBehaviorConfig, + { + types: [ + 'coc7ClickableEvents' + ], + makeDefault: true + } + ) + + const oldOnClickLeft = TokenLayer.prototype._onClickLeft + TokenLayer.prototype._onClickLeft = function (event) { + oldOnClickLeft.call(this, event) + if (canvas.activeLayer instanceof TokenLayer) { + const destination = canvas.activeLayer.toLocal(event) + for (const region of canvas.scene.regions.contents) { + if (region.behaviors.filter(b => !b.disabled).find(b => b.system instanceof CoC7ClickableEvents) && region.object.polygonTree.testPoint(destination)) { + region.behaviors.filter(b => !b.disabled).map(async (b) => { if (await b.system._handleMouseOverEvent() === true) { await b.system._handleLeftClickEvent() } }) + } + } + } + } + + const oldOnClickRight = TokenLayer.prototype._onClickRight + TokenLayer.prototype._onClickRight = function (event) { + oldOnClickRight.call(this, event) + if (canvas.activeLayer instanceof TokenLayer) { + const destination = canvas.activeLayer.toLocal(event) + for (const region of canvas.scene.regions.contents) { + if (region.behaviors.filter(b => !b.disabled).find(b => b.system instanceof CoC7ClickableEvents) && region.object.polygonTree.testPoint(destination)) { + region.behaviors.filter(b => !b.disabled).map(async (b) => { if (await b.system._handleMouseOverEvent() === true) { await b.system._handleRightClickEvent() } }) + } + } + } + } + + document.body.addEventListener('mousemove', async function (event) { + if (canvas.activeLayer instanceof TokenLayer) { + const pointer = canvas?.app?.renderer?.events?.pointer + if (!pointer) { + return + } + const destination = canvas.activeLayer.toLocal(event) + let setPointer = false + for (const region of canvas.scene.regions.contents) { + if (region.behaviors.filter(b => !b.disabled).find(b => b.system instanceof CoC7ClickableEvents) && region.object.polygonTree.testPoint(destination)) { + setPointer = await region.behaviors.filter(b => !b.disabled).reduce(async (c, b) => { + const r = await b.system._handleMouseOverEvent() + if (r !== false && r !== true) { + console.error(b.uuid + ' did not return a boolean') + } + c = c || r + return c + }, false) + } + } + if (setPointer) { + document.getElementById('board').style.cursor = 'pointer' + } else { + document.getElementById('board').style.cursor = '' + } + } + }) + } + + static defineSchema () { + return { + mouseOver: new foundry.data.fields.JavaScriptField({ + async: true, + gmOnly: true, + initial: 'return false', + label: 'CoC7.ClickableEvents.MouseOver.Title', + hint: 'CoC7.ClickableEvents.MouseOver.Hint' + }), + leftClick: new foundry.data.fields.JavaScriptField({ + async: true, + gmOnly: true, + label: 'CoC7.ClickableEvents.LeftClick.Title' + }), + rightClick: new foundry.data.fields.JavaScriptField({ + async: true, + gmOnly: true, + label: 'CoC7.ClickableEvents.RightClick.Title' + }) + } + } + + /** @override */ + async _handleMouseOverEvent () { + try { + const fn = new foundry.utils.AsyncFunction('scene', 'region', 'behavior', `{${this.mouseOver}\n}`) + return await fn.call(globalThis, this.scene, this.region, this.behavior) + } catch (err) { + console.error(err) + } + } + + /** @override */ + async _handleLeftClickEvent () { + try { + const fn = new foundry.utils.AsyncFunction('scene', 'region', 'behavior', `{${this.leftClick}\n}`) + return await fn.call(globalThis, this.scene, this.region, this.behavior) + } catch (err) { + console.error(err) + } + } + + /** @override */ + async _handleRightClickEvent () { + try { + const fn = new foundry.utils.AsyncFunction('scene', 'region', 'behavior', `{${this.rightClick}\n}`) + return await fn.call(globalThis, this.scene, this.region, this.behavior) + } catch (err) { + console.error(err) + } + } + + static async ClickRegionLeftUuid (docUuid) { + const doc = await fromUuid(docUuid) + if (doc) { + doc.behaviors.filter(b => !b.disabled).map(async (b) => { if (await b.system._handleMouseOverEvent() === true) { await b.system._handleLeftClickEvent() } }) + } else { + console.error('journalPageUuids ' + docUuid + ' not loaded') + } + } + + static async ClickRegionRightUuid (docUuid) { + const doc = await fromUuid(docUuid) + if (doc) { + doc.behaviors.filter(b => !b.disabled).map(async (b) => { if (await b.system._handleMouseOverEvent() === true) { await b.system._handleRightClickEvent() } }) + } else { + console.error('journalPageUuids ' + docUuid + ' not loaded') + } + } + + static async hasPermissionDocument (documentUuid) { + const doc = await fromUuid(documentUuid) + return doc?.testUserPermission(game.user, CONST.DOCUMENT_OWNERSHIP_LEVELS.OBSERVER) ?? false + } + + static async InSceneRelativeTeleport (event, destinationRegion) { + if (event.name === 'tokenMoveIn') { + // region MUST be the same shape with no transformation + // Currently only PolygonShapeData and RectangleShapeData + const sourceTL = event.region.shapes.reduce((c, p) => { + if (p instanceof foundry.data.PolygonShapeData) { + for (let i = 0, im = p.points.length; i < im; i = i + 2) { + if (c[0] === false || p.points[i] < c[0]) { + c[0] = p.points[i] + } + if (c[1] === false || p.points[i + 1] < c[1]) { + c[1] = p.points[i + 1] + } + } + } else if (p instanceof foundry.data.RectangleShapeData) { + const x = Math.min(p.x + p.width, p.x) + const y = Math.min(p.y + p.height, p.y) + if (c[0] === false || x < c[0]) { + c[0] = x + } + if (c[1] === false || y < c[1]) { + c[1] = y + } + } + return c + }, [false, false]) + const destinationTL = (await fromUuid(destinationRegion)).shapes.reduce((c, p) => { + if (p instanceof foundry.data.PolygonShapeData) { + for (let i = 0, im = p.points.length; i < im; i = i + 2) { + if (c[0] === false || p.points[i] < c[0]) { + c[0] = p.points[i] + } + if (c[1] === false || p.points[i + 1] < c[1]) { + c[1] = p.points[i + 1] + } + } + } else if (p instanceof foundry.data.RectangleShapeData) { + const x = Math.min(p.x + p.width, p.x) + const y = Math.min(p.y + p.height, p.y) + if (c[0] === false || x < c[0]) { + c[0] = x + } + if (c[1] === false || y < c[1]) { + c[1] = y + } + } + return c + }, [false, false]) + const destinationX = event.data.destination.x - sourceTL[0] + destinationTL[0] + const destinationY = event.data.destination.y - sourceTL[1] + destinationTL[1] + await event.data.token.object.stopAnimation() // Panic + event.data.token.update({ x: destinationX, y: destinationY }, { animate: false }) + } + } + + static async MapPinToggle (toggle, { journalPageUuids = [], noteUuids = [], permissionFalse = CONST.DOCUMENT_OWNERSHIP_LEVELS.NONE, permissionTrue = CONST.DOCUMENT_OWNERSHIP_LEVELS.OBSERVER } = {}) { + game.socket.emit('system.CoC7', { type: 'toggleMapNotes', toggle: true }) + game.settings.set('core', NotesLayer.TOGGLE_SETTING, true) + for (const docUuid of journalPageUuids) { + const doc = await fromUuid(docUuid) + if (doc) { + let permission = permissionTrue + if (!toggle) { + permission = permissionFalse + } + await doc.update({ 'ownership.default': permission }) + } else { + console.error('journalPageUuids ' + docUuid + ' not loaded') + } + } + + for (const docUuid of noteUuids) { + const doc = await fromUuid(docUuid) + if (doc) { + let texture = 'systems/CoC7/assets/art/map-pin.svg' + if (!toggle) { + texture = 'systems/CoC7/assets/art/map-pin-dark.svg' + } + await doc.update({ 'texture.src': texture }) + } else { + console.error('noteUuids ' + docUuid + ' not loaded') + } + } + } + + static async openDocument (documentUuid, pageId = null, anchor = null) { + const doc = await fromUuid(documentUuid) + if (doc?.testUserPermission(game.user, CONST.DOCUMENT_OWNERSHIP_LEVELS.OBSERVER)) { + if (pageId) { + if (doc.pages.get(pageId)?.testUserPermission(game.user, CONST.DOCUMENT_OWNERSHIP_LEVELS.OBSERVER)) { + doc.sheet.render(true, { pageId, anchor }) + } + } else { + doc.sheet.render(true) + } + } + } + + static async toggleTileJournalPages (active, tileUuids, journalUuids, pageUuids, { pagePermission = CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER } = {}) { + for (const docUuid of tileUuids) { + const doc = await fromUuid(docUuid) + if (doc) { + await doc.update({ hidden: !active }) + } else { + console.error('Tile ' + docUuid + ' not loaded') + } + } + const permission = (!active ? CONST.DOCUMENT_OWNERSHIP_LEVELS.NONE : pagePermission) + for (const docUuid of pageUuids) { + const doc = await fromUuid(docUuid) + if (doc) { + await doc.update({ 'ownership.default': permission }) + } else { + console.error('Journal Page ' + docUuid + ' not loaded') + } + } + // Do not none / owner journals if any entries do not match + for (const docUuid of journalUuids) { + const doc = await fromUuid(docUuid) + if (doc) { + if (pageUuids.length === 0 || permission === pagePermission || doc.pages.contents.filter(d => d.ownership.default === pagePermission).length === 0) { + await doc.update({ 'ownership.default': (!active ? CONST.DOCUMENT_OWNERSHIP_LEVELS.NONE : CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER) }) + } + } else { + console.error('Journal ' + docUuid + ' not loaded') + } + } + } + + static async toScene (sceneUuid) { + const doc = await fromUuid(sceneUuid) + if (doc) { + setTimeout(() => { + doc.view() + }, 100) + } else { + console.error('Scene ' + sceneUuid + ' not loaded') + } + } +} diff --git a/module/apps/coc7-system-socket.js b/module/apps/coc7-system-socket.js index 78a7019e..fb722766 100644 --- a/module/apps/coc7-system-socket.js +++ b/module/apps/coc7-system-socket.js @@ -1,4 +1,4 @@ -/* global fromUuid, game, ui */ +/* global fromUuid, game, NotesLayer, ui */ import { CoC7GroupMessage } from './coc7-group-message.js' import { CoC7InvestigatorWizard } from './investigator-wizard.js' import { CoC7Utilities } from '../utilities.js' @@ -54,6 +54,9 @@ export class CoC7SystemSocket { case 'updateChar': CoC7Utilities.updateCharSheets() break + case 'toggleMapNotes': + game.settings.set('core', NotesLayer.TOGGLE_SETTING, data.toggle === true) + break } } } diff --git a/module/chat.js b/module/chat.js index e1ea374a..5da5ce82 100644 --- a/module/chat.js +++ b/module/chat.js @@ -94,6 +94,11 @@ export class CoC7Chat { '.card-buttons button', CoC7Chat._onChatCardAction.bind(this) ) + html.on( + 'change', + 'input[type=range].slider', + CoC7Chat._onChatCardRange.bind(this) + ) // html.on('click', '.card-buttons button', CoC7Chat._onChatCardTest.bind(this)); html.on( 'click', @@ -358,6 +363,13 @@ export class CoC7Chat { select.classList.remove('simple-flag') } } + + const gmRangeOnly = html.find('.gm-range-only') + if (!(game.user.isTrusted && game.settings.get('CoC7', 'trustedCanModfyChatCard'))) { + for (const range of gmRangeOnly) { + range.disabled = true + } + } } } @@ -688,6 +700,30 @@ export class CoC7Chat { return msg } + static async _onChatCardRange (event) { + event.preventDefault() + + const button = event.currentTarget + const card = button.closest('.chat-card') + if (!card) return + + if (!CoC7Chat._getChatCardActor(card)) return + + const messageId = card.closest('.message').dataset.messageId + + let messageCard + if (card.classList.contains('range')) { + messageCard = CoC7RangeInitiator.getFromCard(card) + } else if (card.classList.contains('target')) { + messageCard = CoC7MeleeTarget.getFromCard(card) + } else if (card.classList.contains('initiator')) { + messageCard = CoC7MeleeInitiator.getFromCard(card) + } + messageCard.diceModifier = event.currentTarget.value + await messageCard.updateChatCard() + document.querySelector('[data-message-id="' + messageId + '"]').querySelector('input[type=range][name="' + button.name + '"]').focus() + } + static async _onChatCardAction (event) { // console.log('-->CoC7Chat._onChatCardAction'); event.preventDefault() diff --git a/module/chat/combat/melee-initiator.js b/module/chat/combat/melee-initiator.js index 79b2ae7c..75dab312 100644 --- a/module/chat/combat/melee-initiator.js +++ b/module/chat/combat/melee-initiator.js @@ -14,8 +14,7 @@ export class CoC7MeleeInitiator extends ChatCardActor { this.outnumbered = false this.surprised = false this.autoSuccess = false - this.advantage = false - this.disadvantage = false + this.diceModifier = 0 this.messageId = null this.targetCard = null this.rolled = false @@ -76,6 +75,12 @@ export class CoC7MeleeInitiator extends ChatCardActor { ? chatHelper.hyphenToCamelCase(flagName) : flagName this[flag] = !this[flag] + switch (flag) { + case 'outnumbered': + case 'surprised': + this.diceModifier = Math.max(-2, Math.min(2, parseInt(this.diceModifier, 10) + (this[flag] ? 1 : -1))) + break + } } async performSkillCheck (skillId = null, publish = false) { @@ -96,10 +101,7 @@ export class CoC7MeleeInitiator extends ChatCardActor { if (game.user.isGM) this.checkRevealed = false else this.checkRevealed = true - if (this.outnumbered) check.diceModifier += 1 - if (this.surprised) check.diceModifier += 1 - if (this.disadvantage) check.diceModifier -= 1 - if (this.advantage) check.diceModifier += 1 + if (this.diceModifier) check.diceModifier = this.diceModifier await check.roll() this.check = check diff --git a/module/chat/combat/melee-target.js b/module/chat/combat/melee-target.js index e8933fb7..7a71eaa1 100644 --- a/module/chat/combat/melee-target.js +++ b/module/chat/combat/melee-target.js @@ -18,8 +18,7 @@ export class CoC7MeleeTarget extends ChatCardActor { this.outnumbered = false this.surprised = false this.autoSuccess = false - this.advantage = false - this.disadvantage = false + this.diceModifier = 0 this.messageId = null this.skillId = null @@ -137,6 +136,12 @@ export class CoC7MeleeTarget extends ChatCardActor { ? chatHelper.hyphenToCamelCase(flagName) : flagName this[flag] = !this[flag] + switch (flag) { + case 'outnumbered': + case 'surprised': + this.diceModifier = Math.max(-2, Math.min(2, parseInt(this.diceModifier, 10) + (this[flag] ? 1 : -1))) + break + } } async createChatCard () { @@ -315,8 +320,7 @@ export class CoC7MeleeTarget extends ChatCardActor { check.difficulty = CoC7Check.difficultyLevel.regular check.diceModifier = 0 - if (this.disadvantage) check.diceModifier -= 1 - if (this.advantage) check.diceModifier += 1 + if (this.diceModifier) check.diceModifier = this.diceModifier await check.roll() this.check = check diff --git a/module/chat/rangecombat.js b/module/chat/rangecombat.js index 7fdf9e07..33cf5ef7 100644 --- a/module/chat/rangecombat.js +++ b/module/chat/rangecombat.js @@ -12,8 +12,7 @@ export class CoC7RangeInitiator { this.cover = false this.surprised = false this.autoSuccess = false - this.advantage = false - this.disadvantage = false + this.diceModifier = 0 this.messageId = null this.targetCard = null this.rolled = false @@ -30,8 +29,11 @@ export class CoC7RangeInitiator { target.token = t this._targets.push(target) } - if (this._targets.length) this._targets[0].active = true - else { + if (this._targets.length) { + this._targets = [this._targets[0]] + // temporarily only allow one target + this._targets[0].active = true + } else { const target = new CoC7RangeTarget() target.active = true this._targets.push(target) @@ -43,8 +45,11 @@ export class CoC7RangeInitiator { if (itemId) { const weapon = actor.items.get(itemId) if (weapon) { - if (this.weapon.singleShot) this.singleShot = true - else if (this.weapon.system.properties.auto) this.fullAuto = true + if (this.weapon.singleShot) { + this.singleShot = true + } else if (this.weapon.system.properties.auto) { + this.fullAuto = true + } } } } @@ -297,6 +302,14 @@ export class CoC7RangeInitiator { } } + get calculatedBonusDice () { + return (this._calculatedModifier > 2 ? this._calculatedModifier : 0) + } + + get calculatedPenaltyDice () { + return (this._calculatedModifier < -2 ? -this._calculatedModifier : 0) + } + shotDifficulty (t = null) { const target = t || this.activeTarget let damage = this.weapon.system.range.normal.damage @@ -304,18 +317,17 @@ export class CoC7RangeInitiator { if (t.longRange) damage = this.weapon.system.range.long.damage if (t.extremeRange) damage = this.weapon.system.range.extreme.damage } - let modifier = target.modifier + let modifier = parseInt(this.diceModifier, 10) + parseInt(target.modifier, 10) let difficulty this.weapon.system.properties.shotgun ? (difficulty = 1) : (difficulty = target.difficulty) let difficultyName = '' if (this.aiming && this.currentShotRank === 1) modifier++ - if (this.advantage) modifier++ - if (this.disadvantage) modifier-- if (this.reload) modifier-- if (this.multipleShots && !this.fullAuto) modifier-- if (this.fullAuto) modifier -= this.currentShotRank - 1 + this._calculatedModifier = modifier if (modifier < -2) { const excess = Math.abs(modifier + 2) difficulty += excess @@ -323,6 +335,8 @@ export class CoC7RangeInitiator { difficulty = CoC7Check.difficultyLevel.impossible } modifier = -2 + } else if (modifier > 2) { + modifier = 2 } if (CoC7Check.difficultyLevel.regular === difficulty) { @@ -421,6 +435,10 @@ export class CoC7RangeInitiator { return 'systems/CoC7/templates/chat/combat/range-initiator.html' } + get diceModifierDisplay () { + return Math.max(-2, Math.min(2, parseInt(this.diceModifier, 10))) + } + async createChatCard () { this.calcTargetsDifficulty() const html = await renderTemplate(this.template, this) @@ -487,6 +505,23 @@ export class CoC7RangeInitiator { } else { this[flag] = !this[flag] } + switch (flag) { + case 'aiming': + if (this.currentShotRank === 1) { + this.diceModifier = parseInt(this.diceModifier, 10) + (this[flag] ? 1 : -1) + } + break + case 'multipleShots': + if (!this.fullAuto) { + this.diceModifier = parseInt(this.diceModifier, 10) + (this[flag] ? -1 : 1) + } + break + case 'fullAuto': + if (!this.fullAuto) { + this.diceModifier = parseInt(this.diceModifier, 10) + (this[flag] ? -(this.currentShotRank - 1) : (this.currentShotRank - 1)) + } + break + } } async resolveCard () { diff --git a/module/coc7.js b/module/coc7.js index a8e2bb27..35c09954 100644 --- a/module/coc7.js +++ b/module/coc7.js @@ -22,6 +22,10 @@ import { CoC7ChaseSheet } from './items/chase/sheet.js' import { CoC7Socket } from './hooks/socket.js' import { CoC7SystemSocket } from './apps/coc7-system-socket.js' import { DropActorSheetData } from './hooks/drop-actor-sheet-data.js' +import CoC7ClickableEvents from './apps/coc7-clickable-events.js' +import DrawNote from './hooks/draw-note.js' +import RenderCoC7JournalSheet from './hooks/render-coc7-journal-sheet.js' +import RenderJournalTextPageSheet from './hooks/render-journal-text-page-sheet.js' // Card init import { initECC } from './common/chatcardlib/src/chatcardlib.js' @@ -139,7 +143,15 @@ Hooks.once('init', async function () { }, eras: (era, name) => { COC7.eras[era] = name - } + }, + ClickRegionLeftUuid: CoC7ClickableEvents.ClickRegionLeftUuid, + ClickRegionRightUuid: CoC7ClickableEvents.ClickRegionRightUuid, + hasPermissionDocument: CoC7ClickableEvents.hasPermissionDocument, + InSceneRelativeTeleport: CoC7ClickableEvents.InSceneRelativeTeleport, + MapPinToggle: CoC7ClickableEvents.MapPinToggle, + openDocument: CoC7ClickableEvents.openDocument, + toggleTileJournalPages: CoC7ClickableEvents.toggleTileJournalPages, + toScene: CoC7ClickableEvents.toScene } Combat.prototype.rollInitiative = rollInitiative }) @@ -492,3 +504,7 @@ function _onLeftClick (event) { CONFIG.ui.settings = CoC7SettingsDirectory CONFIG.ui.compendium = CoC7CompendiumDirectory CONFIG.ui.actors = CoC7ActorDirectory + +Hooks.on('drawNote', DrawNote) +Hooks.on('renderCoC7JournalSheet', RenderCoC7JournalSheet) +Hooks.on('renderJournalTextPageSheet', RenderJournalTextPageSheet) diff --git a/module/hooks/draw-note.js b/module/hooks/draw-note.js new file mode 100644 index 00000000..cc2305de --- /dev/null +++ b/module/hooks/draw-note.js @@ -0,0 +1,5 @@ +export default function DrawNote (note) { + if (note.document.getFlag('CoC7', 'hide-background') ?? false) { + note.controlIcon.bg.clear() + } +} diff --git a/module/hooks/init.js b/module/hooks/init.js index 5be137c3..100993fa 100644 --- a/module/hooks/init.js +++ b/module/hooks/init.js @@ -1,4 +1,4 @@ -/* global Hooks */ +/* global CONFIG, fromUuid, Hooks, TextEditor */ import { configureDocuments } from '../scripts/configure-documents.js' import { preloadHandlebarsTemplates } from '../scripts/load-templates.js' import { registerSettings } from '../scripts/register-settings.js' @@ -8,6 +8,7 @@ import { compendiumFilter } from '../scripts/compendium-filter.js' import { CoCID } from '../scripts/coc-id.js' import { CoC7Link } from '../apps/coc7-link.js' import * as DiceSoNiceReadyLast from './dice-so-nice-ready-last.js' +import CoC7ClickableEvents from '../apps/coc7-clickable-events.js' export function listen () { Hooks.once('init', async () => { @@ -20,5 +21,62 @@ export function listen () { CoCID.init() CoC7Link.init() DiceSoNiceReadyLast.listen() + CoC7ClickableEvents.initSelf() + + CONFIG.TextEditor.enrichers.push({ + pattern: /@chaosiumUUID\[([^#\]]+)(?:#([^\]]+))?](?:{([^}]+)})?/gi, + enricher: async (match, { relativeTo } = {}) => { + const [selectors, hash, name] = match.slice(1, 4) + let data = { + name, + classes: ['content-link', 'broken'], + icon: 'fas fa-unlink' + } + const parts = selectors?.split(/\s*,\s*/) + if (parts) { + const keys = parts.reduce((c, i) => { + const keyval = i.match(/^(([^:]+):)(.+)?$/) + if (keyval) { + c[keyval[2]] = keyval[3] + } else { + c.uuid = i + } + return c + }, {}) + if (keys.uuid) { + const doc = await fromUuid(keys.uuid, { relative: relativeTo }) + if (doc) { + data = { + name: name || doc.name || keys.uuid, + classes: ['content-link'], + dataset: { + link: '', + uuid: doc.uuid, + id: doc.id, + type: doc.documentName + }, + icon: keys.icon ?? CONFIG[doc.documentName].sidebarIcon + } + if (hash) { + data.dataset.hash = hash + } + if (keys.img) { + const a = document.createElement('a') + a.classList.add(data.classes) + for (const [k, v] of Object.entries(data.dataset)) { + if ((v !== null) && (typeof v !== 'undefined')) { + a.dataset[k] = v + } + } + a.innerHTML = `${data.name}` + return a + } + } + } + } + + return TextEditor.createAnchor(data) + } + }) }) } diff --git a/module/hooks/render-coc7-journal-sheet.js b/module/hooks/render-coc7-journal-sheet.js new file mode 100644 index 00000000..c96444ef --- /dev/null +++ b/module/hooks/render-coc7-journal-sheet.js @@ -0,0 +1,19 @@ +/* global $ */ +export default function RenderCoC7JournalSheet (application, html, data) { + if ((application.object.getFlag('CoC7', 'css-adventure-entry') ?? false)) { + if (!html.hasClass('coc7-adventure-entry')) { + html.addClass('coc7-adventure-entry') + } + if ((application.object.getFlag('CoC7', 'fixed-adventure-heading') ?? false) && !html.hasClass('fixed-adventure-heading')) { + const obj = $(html) + obj.addClass('fixed-adventure-heading') + const subheading = data.pages?.[0]?.flags?.CoC7?.['fixed-adventure-subheading'] ?? '' + if (subheading === '') { + obj.find('article.journal-entry-page.text.level1')?.before('
    ') + } else { + const short = subheading.trim().length === 0 + obj.find('article.journal-entry-page.text.level1')?.before('
    ' + data.title + '
    ' + (short ? '' : '
    ' + subheading + '
    ') + '
    ') + } + } + } +} diff --git a/module/hooks/render-journal-text-page-sheet.js b/module/hooks/render-journal-text-page-sheet.js new file mode 100644 index 00000000..368df21f --- /dev/null +++ b/module/hooks/render-journal-text-page-sheet.js @@ -0,0 +1,19 @@ +/* global $ */ +export default function RenderJournalTextPageSheet (application, html, data) { + if ((application.object.parent.getFlag('CoC7', 'css-adventure-entry') ?? false)) { + if (!html.hasClass('coc7-adventure-entry')) { + html.addClass('coc7-adventure-entry') + html.find('section.tmi-toggleable p.toggle').click((event) => { + const obj = $(event.currentTarget) + const section = obj.closest('section.tmi-toggleable').find('div.toggle:first') + if (section.is(':visible')) { + obj.text('Reveal') + section.slideUp() + } else { + obj.text('Hide') + section.slideDown() + } + }) + } + } +} diff --git a/module/hooks/render-pause.js b/module/hooks/render-pause.js index a65333c9..b30888bf 100644 --- a/module/hooks/render-pause.js +++ b/module/hooks/render-pause.js @@ -2,17 +2,27 @@ export function listen () { Hooks.on('renderPause', async (data, html, options) => { + let imageReplaced = false + let textReplaced = false if (game.settings.get('CoC7', 'overrideGameArtwork')) { if (game.settings.get('CoC7', 'artPauseImage').toLowerCase() === 'null') { html.find('img').remove() } if (game.settings.get('CoC7', 'artPauseImage') !== '') { html.find('img').attr('src', game.settings.get('CoC7', 'artPauseImage')) + imageReplaced = true } if (game.settings.get('CoC7', 'artPauseText') !== '') { html.find('h3').html(game.settings.get('CoC7', 'artPauseText')) + textReplaced = true } } + if (!imageReplaced) { + html.find('img').attr('src', 'systems/CoC7/assets/images/timetrap2.webp') + } + if (!textReplaced) { + html.find('figcaption').html(game.i18n.localize('CoC7.PauseName')) + } }) } diff --git a/module/manual/en/README.md b/module/manual/en/README.md index 420c4ed8..8febf7a6 100644 --- a/module/manual/en/README.md +++ b/module/manual/en/README.md @@ -1,4 +1,4 @@ -# System documentation for version 0.10.0 +# System documentation for version 7.0 This document is a work in progress overview of the CoC7 system it is not a tutorial for how to use FoundryVTT. @@ -18,10 +18,7 @@ This documentation can be reopened under [fas fa-cogs]Game Settings -> Help and For a full list of changes checkout the [changelog](https://github.com/Miskatonic-Investigative-Society/CoC7-FoundryVTT/blob/develop/.github/CHANGELOG.md) on GitHub - - [CoC ID system](coc-id-system.md) - Set tags on documents for example i.skill.dodge to find dodge skills on actors - - Investigator Wizard - Use CoC ID Items to create investigators - - [Pulp Rules](#settings-overview) - Implement optional pulp rule to ignore age when calculating movement speed - - [Active effects](effects.md) - Add support for bonus/penalty dice when rolling from the Actor sheets + - [CoC ID system](coc-id-system.md) - Priority now has more importance over location. # Overview sections below @@ -85,7 +82,7 @@ Foundry VTT is based in actors and items. This module includes a number of syste - _Setup_ - A set of default configurations for character, creature, or NPC creation. @Compendium[CoC7.items.CcH7CdXGtGTjMSCg]{Example Setup} - _Skill_ - A skill with a base percentage and some tags. @Compendium[CoC7.skills.UOuN0gESXPp2HXwH]{Example Skill} - _Spell_ - A magic spell. -- _Status_ - An phobia or mania condition. @Compendium[CoC7.items.DVdvEDizPZPux1pK]{Example Mania} +- _Status_ - An phobia or mania condition. @Compendium[CoC7.en-wiki-phobias-and-manias.Item.RSBgVRZFUDDCNhXo]{Example Mania} - _Talent_ -A special power for Pulp Cthulhu. These do not trigger automation in the system. @Compendium[CoC7.items.yqvwz769ZeJplOW7]{Example Talent} - _Weapon_ - An item with weapon statistics (this includes unarmed attacks). @Compendium[CoC7.items.3elxAwnv7WCUNwng]{Example Weapon} diff --git a/module/updater.js b/module/updater.js index 1beec843..3f42dd5f 100644 --- a/module/updater.js +++ b/module/updater.js @@ -20,8 +20,17 @@ export class Updater { const module = game.modules.get(pack.metadata.packageName) if (module) { if (runMigrate || !Object.prototype.hasOwnProperty.call(this.updatedModules, module.id) || String(this.updatedModules[module.id]) !== String(module.version)) { - // A migration is required, module has not been updated before, or the version number has changed - this.currentModules[module.id] = module.version + // A migration is required, module has not been updated before, or the version number has changed, check against known good values + const knownModuleVersions = { + 'call-of-cthulhu-foundryvtt-investigator-wizard': '1.0.3' + } + if (typeof knownModuleVersions[module.id] === 'string') { + if (foundry.utils.isNewerVersion(module.version, knownModuleVersions[module.id])) { + this.currentModules[module.id] = module.version + } + } else { + this.currentModules[module.id] = module.version + } } } } diff --git a/package.json b/package.json index 7ada85af..37767cb6 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,9 @@ "description": "An implementation of Call of Cthulhu 7th Edition system for Foundry VTT.", "scripts": { "build": "webpack --mode production", + "build-compendiums": "node shared/build-compendiums.js", + "build-manuals": "node shared/generate-manuals.js", + "build-roll-requests": "node shared/generate-roll-requests.js", "format": "standard --fix", "watch": "webpack --mode development" }, @@ -20,6 +23,7 @@ "homepage": "https://github.com/Miskatonic-Investigative-Society/CoC7-FoundryVTT#readme", "type": "module", "devDependencies": { + "classic-level": "^1.4.1", "copy-webpack-plugin": "^12.0.0", "css-loader": "^7.1.1", "css-minimizer-webpack-plugin": "^7.0.0", diff --git a/packs/examples.db b/packs/examples.db deleted file mode 100644 index 91bf3cef..00000000 --- a/packs/examples.db +++ /dev/null @@ -1,5 +0,0 @@ -{"name":"Goon","type":"npc","img":"systems/CoC7/assets/icons/cultist.svg","system":{"characteristics":{"str":{"value":null,"tempValue":null,"short":"CHARAC.STR","label":"CHARAC.Strength","formula":"5*2d6+6"},"con":{"value":null,"tempValue":null,"short":"CHARAC.CON","label":"CHARAC.Constitution","formula":"5*3d6"},"siz":{"value":null,"tempValue":null,"short":"CHARAC.SIZ","label":"CHARAC.Size","formula":"5*3d6"},"dex":{"value":null,"tempValue":null,"short":"CHARAC.DEX","label":"CHARAC.Dexterity","formula":"5*3d6"},"app":{"value":null,"tempValue":null,"short":"CHARAC.APP","label":"CHARAC.Appearance","formula":"5*1d6"},"int":{"value":null,"tempValue":null,"short":"CHARAC.INT","label":"CHARAC.Intelligence","formula":"5*1d6"},"pow":{"value":null,"tempValue":null,"short":"CHARAC.POW","label":"CHARAC.Power","formula":"0"},"edu":{"value":null,"tempValue":null,"short":"CHARAC.EDU","label":"CHARAC.Education","formula":"0"}},"attribs":{"hp":{"value":null,"max":null,"short":"HP","label":"Hit points","auto":true},"mp":{"value":0,"max":null,"short":"HP","label":"Magic points","auto":true},"lck":{"value":0,"short":"LCK","label":"Luck","max":99},"san":{"value":null,"max":99,"short":"SAN","label":"Sanity","auto":true,"dailyLoss":0,"oneFifthSanity":" / 0"},"mov":{"value":null,"max":null,"short":"MOV","label":"Movement rate","auto":true},"db":{"value":null,"short":"DB","label":"Damage bonus","auto":true},"build":{"current":null,"value":null,"short":"BLD","label":"Build","auto":true},"armor":{"value":0,"localized":false,"locations":[],"auto":false}},"conditions":{"criticalWounds":{"value":false},"unconscious":{"value":false},"dying":{"value":false},"dead":{"value":false},"prone":{"value":false},"tempoInsane":{"value":false},"indefInsane":{"value":false}},"personalDescription":{"type":"string","value":""},"description":{"keeper":""},"special":{"sanLoss":{"checkPassed":"","checkFailled":""},"attacksPerRound":null},"infos":{"occupation":"Obey to the villain","age":"30","sex":""},"flags":{"locked":true,"displayFormula":false}},"prototypeToken":{"name":"Goon","displayName":0,"actorLink":false,"texture":{"src":"systems/CoC7/assets/icons/cultist.svg","scaleX":1,"scaleY":1,"offsetX":0,"offsetY":0,"rotation":0,"tint":null},"width":1,"height":1,"lockRotation":false,"rotation":0,"alpha":1,"disposition":-1,"displayBars":0,"bar1":{"attribute":"attribs.hp"},"bar2":{"attribute":"attribs.san"},"light":{"alpha":0.5,"angle":360,"bright":0,"color":null,"coloration":1,"dim":0,"attenuation":0.5,"luminosity":0.5,"saturation":0,"contrast":0,"shadows":0,"animation":{"type":null,"speed":5,"intensity":5,"reverse":false},"darkness":{"min":0,"max":1}},"sight":{"enabled":false,"range":null,"angle":360,"visionMode":"basic","color":null,"attenuation":0.1,"brightness":0,"saturation":0,"contrast":0},"detectionModes":[],"flags":{},"randomImg":false},"items":[{"name":"Orders","type":"item","img":"icons/svg/item-bag.svg","system":{"description":{"value":"","keeper":""},"quantity":1,"weight":0,"attributes":{}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"flags":{"core":{"sourceId":"Item.WVlaVdqBfy61m5Rz"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826067740,"modifiedTime":1673826070154,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"_id":"QXaAdZrzIlpR65b4"},{"name":"Secret documents","type":"item","img":"icons/svg/item-bag.svg","system":{"description":{"value":"","keeper":""},"quantity":1,"weight":0,"attributes":{}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"flags":{"core":{"sourceId":"Item.eBSUG76BJNCyafIH"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826080755,"modifiedTime":1673826084510,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"_id":"3GYcAo139cyCy9fA"},{"name":"Be a pain","type":"skill","system":{"skillName":"Be a pain","specialization":"","description":{"value":"","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":"0","adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":"50","attributes":{},"properties":{"push":true},"flags":{}},"img":"systems/CoC7/assets/icons/skills.svg","effects":[],"folder":null,"sort":0,"ownership":{"default":0},"flags":{"core":{"sourceId":"Item.1omGoNxwmDVKSY4x"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826108764,"modifiedTime":1673826117281,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"_id":"PSkJAIU89V7wn2Bb"},{"_id":"AvGHgRlHt0R3Ed4S","name":"Dodge","type":"skill","img":"systems/CoC7/assets/icons/skills/dodge.svg","system":{"skillName":"Dodge","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":32,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":32,"attributes":{},"properties":{},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.dodge","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.wK8XxNj9QwXlGFEb"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826149345,"modifiedTime":1673826149345,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"PR4ptRvBvRso7GLJ","name":"Fighting (Brawl)","type":"skill","img":"systems/CoC7/assets/icons/skills/fighting_brawl.svg","system":{"skillName":"Brawl","specialization":"Fighting","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":25,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":25,"attributes":{},"properties":{"fighting":true,"combat":true,"special":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.fighting-brawl","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.vS8bsPWFlwgOecoB"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826154980,"modifiedTime":1673826154980,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"3fVH7wgc0f7cYPS6","name":"Firearms (Rifle/Shotgun)","type":"skill","img":"systems/CoC7/assets/icons/skills/firearms_rifle_shotgun.svg","system":{"skillName":"Rifle/Shotgun","specialization":"Firearms","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":25,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":25,"attributes":{},"properties":{"firearm":true,"combat":true,"special":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.firearms-rifle-shotgun","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.m2pYjKk4Gk3FcEBL"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826161027,"modifiedTime":1673826161027,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"aHoy9l8GnDaUZOYW","name":"Language (English)","type":"skill","img":"systems/CoC7/assets/icons/skills/language.svg","system":{"skillName":"English","specialization":"Language","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":0,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":0,"attributes":{},"properties":{"push":true,"special":true,"requiresname":true,"keepbasevalue":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.language-own","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.rhJ1Q9OB3uTUZmjD"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826170394,"modifiedTime":1673826170394,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"name":"Receive orders","type":"skill","system":{"skillName":"Receive orders","specialization":"","description":{"value":"","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":"0","adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":"95","attributes":{},"properties":{"push":true},"flags":{}},"img":"systems/CoC7/assets/icons/skills.svg","effects":[],"folder":null,"sort":0,"ownership":{"default":0},"flags":{"core":{"sourceId":"Item.J6OA3KltHJocsLwR"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826179387,"modifiedTime":1673826198752,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"_id":"uPgX46VUlJXStTpn"},{"name":"Try hard","type":"skill","system":{"skillName":"Try hard","specialization":"","description":{"value":"","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":"0","adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":"10","attributes":{},"properties":{"push":true},"flags":{}},"img":"systems/CoC7/assets/icons/skills.svg","effects":[],"folder":null,"sort":0,"ownership":{"default":0},"flags":{"core":{"sourceId":"Item.jGnS0MP0CHVrnxXl"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826209565,"modifiedTime":1673826217311,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"_id":"UoYy6krp3cyOCqSk"},{"name":"Club","type":"weapon","img":"icons/svg/sword.svg","system":{"description":{"value":"","chat":"","special":"","keeper":""},"wpnType":"","skill":{"main":{"name":"Brawl","id":"PR4ptRvBvRso7GLJ"},"alternativ":{"name":"","id":""}},"range":{"normal":{"value":0,"units":"","damage":"1D4"},"long":{"value":0,"units":"","damage":""},"extreme":{"value":0,"units":"","damage":""}},"usesPerRound":{"normal":"1","max":"","burst":null},"bullets":"","ammo":0,"malfunction":"","blastRadius":null,"properties":{"melee":true,"rngd":false,"shotgun":false,"brst":false,"auto":false,"dbrl":false,"ahdb":true,"addb":false,"slnt":true,"stun":true},"price":{}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"flags":{"core":{"sourceId":"Item.kPwAwXYUPNvHoPje"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826261603,"modifiedTime":1673826285245,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"_id":"Jlewd3ifpDQ8VBuI"},{"_id":"kbiJM1yWKYP1tVdK","name":"Punch","type":"weapon","img":"systems/CoC7/assets/icons/skills/fighting_brawl.svg","system":{"description":{"value":"","chat":"","special":"","keeper":""},"wpnType":"","skill":{"main":{"name":"Brawl","id":"PR4ptRvBvRso7GLJ"},"alternativ":{"name":"","id":""}},"range":{"normal":{"value":0,"units":"","damage":"1D3"},"long":{"value":0,"units":"","damage":""},"extreme":{"value":0,"units":"","damage":""}},"usesPerRound":{"normal":1,"max":"","burst":null},"bullets":"","ammo":0,"malfunction":"","blastRadius":null,"properties":{"melee":true,"addb":true},"price":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.weapon.brawl","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.items.3elxAwnv7WCUNwng"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826293939,"modifiedTime":1673826293939,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"name":"Shotgun","type":"weapon","img":"icons/svg/sword.svg","system":{"description":{"value":"

    Description of the weapon

    selecting 'Area of effect' will enable 3 different damage and range

    selecting 'Full-auto' will allow 2 different skills to be selected for the weapon

    selecting 'Special' will activate the special input field

    In the combat tab, if the icons are with a red background, it means that no skill have been selected for that weapon

    Edit the weapon and select the correct skill.

    ","chat":"","special":"","keeper":""},"wpnType":"","skill":{"main":{"name":"Rifle/Shotgun","id":"3fVH7wgc0f7cYPS6"},"alternativ":{"name":"","id":""}},"range":{"normal":{"value":"15ft","units":"","damage":"1D6"},"long":{"value":0,"units":"","damage":""},"extreme":{"value":0,"units":"","damage":""}},"usesPerRound":{"normal":"1","max":"","burst":null},"bullets":"","ammo":0,"malfunction":"","blastRadius":null,"properties":{"melee":false,"rngd":true},"price":{}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"flags":{"core":{"sourceId":"Item.DlN5IzHhoE0K97G3"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826314139,"modifiedTime":1673826358332,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"_id":"Hhs2rs3HsTO3opFQ"}],"effects":[],"flags":{"core":{"sourceId":"Actor.TE1Ef6LWAuahPXaB"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673825973729,"modifiedTime":1673827493268,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"folder":null,"sort":0,"ownership":{"default":0},"_id":"KgyqcEJZZztYfpEr"} -{"name":"Villain example","type":"npc","img":"systems/CoC7/assets/icons/cultist.svg","system":{"characteristics":{"str":{"value":50,"tempValue":null,"short":"CHARAC.STR","label":"CHARAC.Strength","formula":null},"con":{"value":50,"tempValue":null,"short":"CHARAC.CON","label":"CHARAC.Constitution","formula":null},"siz":{"value":50,"tempValue":null,"short":"CHARAC.SIZ","label":"CHARAC.Size","formula":null},"dex":{"value":50,"tempValue":null,"short":"CHARAC.DEX","label":"CHARAC.Dexterity","formula":null},"app":{"value":50,"tempValue":null,"short":"CHARAC.APP","label":"CHARAC.Appearance","formula":null},"int":{"value":50,"tempValue":null,"short":"CHARAC.INT","label":"CHARAC.Intelligence","formula":null},"pow":{"value":50,"tempValue":null,"short":"CHARAC.POW","label":"CHARAC.Power","formula":null},"edu":{"value":50,"tempValue":null,"short":"CHARAC.EDU","label":"CHARAC.Education","formula":null}},"attribs":{"hp":{"value":10,"max":null,"short":"HP","label":"Hit points","auto":true},"mp":{"value":10,"max":null,"short":"HP","label":"Magic points","auto":true},"lck":{"value":50,"short":"LCK","label":"Luck","max":99},"san":{"value":99,"max":99,"short":"SAN","label":"Sanity","auto":true,"dailyLoss":0,"oneFifthSanity":" / 0"},"mov":{"value":8,"max":null,"short":"MOV","label":"Movement rate","auto":false},"db":{"value":null,"short":"DB","label":"Damage bonus","auto":true},"build":{"current":null,"value":null,"short":"BLD","label":"Build","auto":true},"armor":{"value":0,"localized":false,"locations":[],"auto":false}},"conditions":{"criticalWounds":{"value":false},"unconscious":{"value":false},"dying":{"value":false},"dead":{"value":false},"prone":{"value":false},"tempoInsane":{"value":false},"indefInsane":{"value":false}},"personalDescription":{"type":"string","value":""},"description":{"keeper":""},"special":{"sanLoss":{"checkPassed":"","checkFailled":""},"attacksPerRound":null},"infos":{"occupation":"Be a villain","age":"100","sex":""},"flags":{"locked":true,"displayFormula":false}},"prototypeToken":{"name":"Villain example","displayName":0,"actorLink":false,"texture":{"src":"systems/CoC7/assets/icons/cultist.svg","scaleX":1,"scaleY":1,"offsetX":0,"offsetY":0,"rotation":0,"tint":null},"width":1,"height":1,"lockRotation":false,"rotation":0,"alpha":1,"disposition":-1,"displayBars":0,"bar1":{"attribute":"attribs.hp"},"bar2":{"attribute":"attribs.san"},"light":{"alpha":0.5,"angle":360,"bright":0,"color":null,"coloration":1,"dim":0,"attenuation":0.5,"luminosity":0.5,"saturation":0,"contrast":0,"shadows":0,"animation":{"type":null,"speed":5,"intensity":5,"reverse":false},"darkness":{"min":0,"max":1}},"sight":{"enabled":false,"range":null,"angle":360,"visionMode":"basic","color":null,"attenuation":0.1,"brightness":0,"saturation":0,"contrast":0},"detectionModes":[],"flags":{},"randomImg":false},"items":[{"name":"Very mean sidekick","type":"item","img":"icons/svg/item-bag.svg","system":{"description":{"value":"","keeper":""},"quantity":1,"weight":0,"attributes":{}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"flags":{"core":{"sourceId":"Item.JjtKdZXH587B3X2I"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826479459,"modifiedTime":1673826482347,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"_id":"L8smYdMt8ikmRHx6"},{"name":"Plan to enslave humanity","type":"item","img":"icons/svg/item-bag.svg","system":{"description":{"value":"","keeper":""},"quantity":1,"weight":0,"attributes":{}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"flags":{"core":{"sourceId":"Item.urxjEnSA6PydzCIO"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826489016,"modifiedTime":1673826491624,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"_id":"8g01NwyUAwvTHb3E"},{"name":"Bark orders","type":"skill","system":{"skillName":"Bark orders","specialization":"","description":{"value":"","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":"0","adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":"45","attributes":{},"properties":{"push":true},"flags":{}},"img":"systems/CoC7/assets/icons/skills.svg","effects":[],"folder":null,"sort":0,"ownership":{"default":0},"flags":{"core":{"sourceId":"Item.jbgEwBWSE4Toj9X9"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826596873,"modifiedTime":1673826605906,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"_id":"QGfaG02IPLjpBpJL"},{"name":"Be a pain","type":"skill","system":{"skillName":"Be a pain","specialization":"","description":{"value":"","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":"0","adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":0,"attributes":{},"properties":{"push":true},"flags":{}},"img":"systems/CoC7/assets/icons/skills.svg","effects":[],"folder":null,"sort":0,"ownership":{"default":0},"flags":{"core":{"sourceId":"Item.OmsWMP3erS5OAS5s"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826615437,"modifiedTime":1673826620356,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"_id":"KyVm9jlTiIu9vNVv"},{"_id":"xxHO1lJYyljaLS0O","name":"Dodge","type":"skill","img":"systems/CoC7/assets/icons/skills/dodge.svg","system":{"skillName":"Dodge","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":25,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":25,"attributes":{},"properties":{},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.dodge","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.wK8XxNj9QwXlGFEb"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826628633,"modifiedTime":1673826628633,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"dWPhIcippT9C8LlO","name":"Fighting (Brawl)","type":"skill","img":"systems/CoC7/assets/icons/skills/fighting_brawl.svg","system":{"skillName":"Brawl","specialization":"Fighting","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":25,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":25,"attributes":{},"properties":{"fighting":true,"combat":true,"special":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.fighting-brawl","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.vS8bsPWFlwgOecoB"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826632544,"modifiedTime":1673826632544,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"f9JPK6nDSjQXHfmQ","name":"Firearms (Rifle/Shotgun)","type":"skill","img":"systems/CoC7/assets/icons/skills/firearms_rifle_shotgun.svg","system":{"skillName":"Rifle/Shotgun","specialization":"Firearms","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":25,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":25,"attributes":{},"properties":{"firearm":true,"combat":true,"special":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.firearms-rifle-shotgun","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.m2pYjKk4Gk3FcEBL"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826637710,"modifiedTime":1673826637710,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"qU4YmV9PIBsvBi2B","name":"Language (English)","type":"skill","img":"systems/CoC7/assets/icons/skills/language.svg","system":{"skillName":"English","specialization":"Language","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":50,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":50,"attributes":{},"properties":{"push":true,"special":true,"requiresname":true,"keepbasevalue":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.language-own","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.rhJ1Q9OB3uTUZmjD"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826645704,"modifiedTime":1673826645704,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"name":"Takeover the world","type":"skill","system":{"skillName":"Takeover the world","specialization":"","description":{"value":"","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":"0","adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":"80","attributes":{},"properties":{},"flags":{}},"img":"systems/CoC7/assets/icons/skills.svg","effects":[],"folder":null,"sort":0,"ownership":{"default":0},"flags":{"core":{"sourceId":"Item.dSRYNFc0OmWL2kjn"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826656879,"modifiedTime":1673826662706,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"_id":"qPH6Yf5B82vN4RHu"},{"name":"Torment the PC","type":"skill","system":{"skillName":"Torment the PC","specialization":"","description":{"value":"","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":"0","adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":"75","attributes":{},"properties":{"push":true},"flags":{}},"img":"systems/CoC7/assets/icons/skills.svg","effects":[],"folder":null,"sort":0,"ownership":{"default":0},"flags":{"core":{"sourceId":"Item.a4lHurvtiDInw1o5"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826670358,"modifiedTime":1673826678301,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"_id":"CxqOOhOKLcEi2hRQ"},{"_id":"DP1t8zpvBW8OQB5Q","name":"Punch","type":"weapon","img":"systems/CoC7/assets/icons/skills/fighting_brawl.svg","system":{"description":{"value":"","chat":"","special":"","keeper":""},"wpnType":"","skill":{"main":{"name":"Brawl","id":"dWPhIcippT9C8LlO"},"alternativ":{"name":"","id":""}},"range":{"normal":{"value":0,"units":"","damage":"1D3"},"long":{"value":0,"units":"","damage":""},"extreme":{"value":0,"units":"","damage":""}},"usesPerRound":{"normal":1,"max":"","burst":null},"bullets":"","ammo":0,"malfunction":"","blastRadius":null,"properties":{"melee":true,"addb":true},"price":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.weapon.brawl","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.items.3elxAwnv7WCUNwng"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826689566,"modifiedTime":1673826689566,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"name":"My test weapon","type":"weapon","img":"icons/svg/sword.svg","system":{"description":{"value":"

    Description of the weapon

    selecting 'Area of effect' will enable 3 different damage and range

    selecting 'Full-auto' will allow 2 different skills to be selected for the weapon

    selecting 'Special' will activate the special input field

    In the combat tab, if the icons are with a red background, it means that no skill have been selected for that weapon

    Edit the weapon and select the correct skill.

    ","chat":"","special":"","keeper":""},"wpnType":"","skill":{"main":{"name":"Rifle/Shotgun","id":"f9JPK6nDSjQXHfmQ"},"alternativ":{"name":"Rifle/Shotgun","id":"f9JPK6nDSjQXHfmQ"}},"range":{"normal":{"value":"15ft","units":"","damage":"1D6"},"long":{"value":0,"units":"","damage":""},"extreme":{"value":0,"units":"","damage":""}},"usesPerRound":{"normal":"1","max":"","burst":""},"bullets":"","ammo":1,"malfunction":"","blastRadius":null,"properties":{"melee":false,"rngd":true,"brst":true,"auto":true},"price":{}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"flags":{"core":{"sourceId":"Item.Hze7eb3aLGlPbde6"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826704970,"modifiedTime":1673826755126,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"_id":"ZlhAHCkDQrp9cyxt"}],"effects":[],"flags":{"core":{"sourceId":"Actor.ZQnVwutLxIFHMLhg"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673826457315,"modifiedTime":1673827507990,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"folder":null,"sort":0,"ownership":{"default":0},"_id":"4kSvDc4n13oFx8RG"} -{"name":"1920 Character","type":"character","prototypeToken":{"actorLink":true,"disposition":1,"sight":{"enabled":true,"range":null,"angle":360,"visionMode":"basic","color":null,"attenuation":0.1,"brightness":0,"saturation":0,"contrast":0},"detectionModes":[],"name":"1920 Character","displayName":0,"texture":{"src":"icons/svg/mystery-man.svg","scaleX":1,"scaleY":1,"offsetX":0,"offsetY":0,"rotation":0,"tint":null},"width":1,"height":1,"lockRotation":false,"rotation":0,"alpha":1,"displayBars":0,"bar1":{"attribute":"attribs.hp"},"bar2":{"attribute":"attribs.san"},"light":{"alpha":0.5,"angle":360,"bright":0,"color":null,"coloration":1,"dim":0,"attenuation":0.5,"luminosity":0.5,"saturation":0,"contrast":0,"shadows":0,"animation":{"type":null,"speed":5,"intensity":5,"reverse":false},"darkness":{"min":0,"max":1}},"flags":{},"randomImg":false},"img":"icons/svg/mystery-man.svg","system":{"characteristics":{"str":{"value":50,"tempValue":null,"short":"CHARAC.STR","label":"CHARAC.Strength","formula":null},"con":{"value":50,"tempValue":null,"short":"CHARAC.CON","label":"CHARAC.Constitution","formula":null},"siz":{"value":65,"tempValue":null,"short":"CHARAC.SIZ","label":"CHARAC.Size","formula":null},"dex":{"value":50,"tempValue":null,"short":"CHARAC.DEX","label":"CHARAC.Dexterity","formula":null},"app":{"value":50,"tempValue":null,"short":"CHARAC.APP","label":"CHARAC.Appearance","formula":null},"int":{"value":65,"tempValue":null,"short":"CHARAC.INT","label":"CHARAC.Intelligence","formula":null},"pow":{"value":50,"tempValue":null,"short":"CHARAC.POW","label":"CHARAC.Power","formula":null},"edu":{"value":65,"tempValue":null,"short":"CHARAC.EDU","label":"CHARAC.Education","formula":null}},"attribs":{"hp":{"value":11,"max":null,"short":"HP","label":"Hit points","auto":true},"mp":{"value":10,"max":null,"short":"HP","label":"Magic points","auto":true},"lck":{"value":50,"short":"LCK","label":"Luck","max":99},"san":{"value":50,"max":99,"short":"SAN","label":"Sanity","auto":true,"dailyLoss":0,"oneFifthSanity":" / 0","dailyLimit":10},"mov":{"value":null,"max":null,"short":"MOV","label":"Movement rate","auto":true},"db":{"value":null,"short":"DB","label":"Damage bonus","auto":true},"build":{"current":null,"value":null,"short":"BLD","label":"Build","auto":true},"armor":{"value":"","localized":false,"locations":[],"auto":false}},"conditions":{"criticalWounds":{"value":false},"unconscious":{"value":false},"dying":{"value":false},"dead":{"value":false},"prone":{"value":false},"tempoInsane":{"value":false},"indefInsane":{"value":false}},"infos":{"occupation":"","age":"26","sex":"","residence":"","birthplace":"","archetype":"","organization":"","playername":""},"flags":{"locked":true,"manualCredit":false},"credit":{"monetarySymbol":"","multiplier":"","spent":"","assetsDetails":""},"development":{"personal":null,"occupation":null,"archetype":null},"biography":[{"title":"Personal Description","value":null},{"title":"Ideology/Beliefs","value":null},{"title":"Significant People","value":null},{"title":"Meaningful Locations","value":null},{"title":"Treasured Possessions","value":null},{"title":"Traits","value":null}],"sanityLossEvents":[],"backstory":"","indefiniteInsanityLevel":{"value":0,"max":0},"description":{"keeper":""},"notes":""},"items":[{"_id":"VGDa3cyX0pfNnFcp","name":"Accounting","type":"skill","img":"systems/CoC7/assets/icons/skills/accounting.svg","system":{"skillName":"Accounting","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":5,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.accounting","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.UOuN0gESXPp2HXwH"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824672261,"modifiedTime":1673824672261,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"mkIOTh8lbYcZTrO0","name":"Anthropology","type":"skill","img":"systems/CoC7/assets/icons/skills/anthropology.svg","system":{"skillName":"Anthropology","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":1,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.anthropology","lang":"en","eras":{"standard":true,"modern":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.ovIp66Luwfwbq28F"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824679848,"modifiedTime":1673824679848,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"5wBgNhPotJY9VHn8","name":"Appraise","type":"skill","img":"systems/CoC7/assets/icons/skills/appraise.svg","system":{"skillName":"Appraise","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":5,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.appraise","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.wOs3gryeGRPkGoWD"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824683281,"modifiedTime":1673824683281,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"M4IRqHantc5SGnnF","name":"Archaeology","type":"skill","img":"systems/CoC7/assets/icons/skills/archaeology.svg","system":{"skillName":"Archaeology","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":1,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.archaeology","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.GHhkcJUqjcP4lToY"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824686170,"modifiedTime":1673824686170,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"Uwkwk01IKS0hZ7mG","name":"Art/Craft (Acting)","type":"skill","img":"systems/CoC7/assets/icons/skills/art_craft_acting.svg","system":{"skillName":"Acting","specialization":"Art/Craft","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":5,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"special":true,"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.art-craft-acting","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.m6V53lyfz7zh95FE"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824689057,"modifiedTime":1673824689057,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"iEXbSGeNxQghbf7u","name":"Charm","type":"skill","img":"systems/CoC7/assets/icons/skills/charm.svg","system":{"skillName":"Charm","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":15,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.charm","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.JgtxiN3KzooOWIQV"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824691490,"modifiedTime":1673824691490,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"5fypo9n5rdFi9ctr","name":"Climb","type":"skill","img":"systems/CoC7/assets/icons/skills/climb.svg","system":{"skillName":"Climb","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":20,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.climb","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.oh5eFj00Wohnx1My"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824695319,"modifiedTime":1673824695319,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"T05NZJPq8mv2HBwj","name":"Credit Rating","type":"skill","img":"systems/CoC7/assets/icons/skills/credit_rating.svg","system":{"skillName":"Credit Rating","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":0,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"noxpgain":true,"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.credit-rating","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.vYrJ5h9cIQBzvw8E"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824698880,"modifiedTime":1673824698880,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"KsDyalenyQxdzpJx","name":"Cthulhu Mythos","type":"skill","img":"systems/CoC7/assets/icons/skills/cthulhu_mythos.svg","system":{"skillName":"Cthulhu Mythos","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":0,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"noadjustments":true,"noxpgain":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.cthulhu-mythos","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.WJky66ezt2ef5ksH"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824702440,"modifiedTime":1673824702440,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"rjDIVVL0gQSAwauc","name":"Disguise","type":"skill","img":"systems/CoC7/assets/icons/skills/disguise.svg","system":{"skillName":"Disguise","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":5,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.disguise","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"darkAges":true,"darkAgesPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.gzNPM9gbx0EZffBV"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824705003,"modifiedTime":1673824705003,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"sQlfn9WGQ2qKSwyx","name":"Dodge","type":"skill","img":"systems/CoC7/assets/icons/skills/dodge.svg","system":{"skillName":"Dodge","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":25,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.dodge","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.wK8XxNj9QwXlGFEb"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824708689,"modifiedTime":1673824708689,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"W3CxJlUkySvpywzA","name":"Drive Auto","type":"skill","img":"systems/CoC7/assets/icons/skills/drive_auto.svg","system":{"skillName":"Drive Auto","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":20,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.drive-auto","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.Og2OWQH93aSDWAMZ"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824711991,"modifiedTime":1673824711991,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"OsSGhLt9V9KUl6pF","name":"Electrical Repair","type":"skill","img":"systems/CoC7/assets/icons/skills/electrical_repair.svg","system":{"skillName":"Electrical Repair","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":10,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.electrical-repair","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.NBkq8oCGM1FjmsyF"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824714899,"modifiedTime":1673824714899,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"kugcvQmERxF7H8oy","name":"Fast Talk","type":"skill","img":"systems/CoC7/assets/icons/skills/fast_talk.svg","system":{"skillName":"Fast Talk","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":5,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.fast-talk","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.ld78TITwKNFPpanQ"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824717716,"modifiedTime":1673824717716,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"MhTsp0d1S1rytTKP","name":"Fighting (Brawl)","type":"skill","img":"systems/CoC7/assets/icons/skills/fighting_brawl.svg","system":{"skillName":"Brawl","specialization":"Fighting","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":25,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"fighting":true,"combat":true,"special":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.fighting-brawl","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.vS8bsPWFlwgOecoB"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824720616,"modifiedTime":1673824720616,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"onar4AcJE183V4lL","name":"Fighting (Throw)","type":"skill","img":"systems/CoC7/assets/icons/skills/fighting_throw.svg","system":{"skillName":"Throw","specialization":"Fighting","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":20,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"fighting":true,"combat":true,"special":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.fighting-throw","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.sWt5Q3ZXd6NlwhXU"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824726776,"modifiedTime":1673824726776,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"yLtVc6IqoHcbQtP3","name":"Firearms (Handgun)","type":"skill","img":"systems/CoC7/assets/icons/skills/firearms_handgun.svg","system":{"skillName":"Handgun","specialization":"Firearms","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":20,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"firearm":true,"combat":true,"special":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.firearms-handgun","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.KmDGtn7ukUFVb265"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824729920,"modifiedTime":1673824729920,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"GdWuOvB1KpNuJR8T","name":"Firearms (Rifle/Shotgun)","type":"skill","img":"systems/CoC7/assets/icons/skills/firearms_rifle_shotgun.svg","system":{"skillName":"Rifle/Shotgun","specialization":"Firearms","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":25,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"firearm":true,"combat":true,"special":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.firearms-rifle-shotgun","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.m2pYjKk4Gk3FcEBL"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824732594,"modifiedTime":1673824732594,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"U7sfeJHKrd3AN4sm","name":"First Aid","type":"skill","img":"systems/CoC7/assets/icons/skills/first_aid.svg","system":{"skillName":"First Aid","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":30,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.first-aid","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.nZ8rdL4PLb7A7f5B"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824737146,"modifiedTime":1673824737146,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"TGjnVbAFWV7oM0tp","name":"History","type":"skill","img":"systems/CoC7/assets/icons/skills/history.svg","system":{"skillName":"History","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":5,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.history","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.URo2NSSJSNdvOqXU"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824739479,"modifiedTime":1673824739479,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"Q9BN7zcSyvkGislf","name":"Intimidate","type":"skill","img":"systems/CoC7/assets/icons/skills/intimidate.svg","system":{"skillName":"Intimidate","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":15,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.intimidate","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.hDr4eUbS398oniTa"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824742748,"modifiedTime":1673824742748,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"R1YhBqr2vYJarNcj","name":"Jump","type":"skill","img":"systems/CoC7/assets/icons/skills/jump.svg","system":{"skillName":"Jump","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":20,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.jump","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.c5utlFbDM7J8TA8b"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824747474,"modifiedTime":1673824747474,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"Blk22r9FRJetJ0e8","name":"Language (English)","type":"skill","img":"systems/CoC7/assets/icons/skills/language.svg","system":{"skillName":"English","specialization":"Language","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":65,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true,"special":true,"requiresname":true,"keepbasevalue":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.language-own","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.rhJ1Q9OB3uTUZmjD"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824756422,"modifiedTime":1673824756422,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"B5bbxHCgvFU97wax","name":"Law","type":"skill","img":"systems/CoC7/assets/icons/skills/law.svg","system":{"skillName":"Law","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":5,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.law","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.64hnBZNC8FM7oTkg"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824764658,"modifiedTime":1673824764658,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"jzWislVF9Ymc9nYf","name":"Library Use","type":"skill","img":"systems/CoC7/assets/icons/skills/library_use.svg","system":{"skillName":"Library Use","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":20,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.library-use","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.BcWHh8EhmyKj7bNk"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824768688,"modifiedTime":1673824768688,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"PGJJMd1H01zMHxVW","name":"Listen","type":"skill","img":"systems/CoC7/assets/icons/skills/listen.svg","system":{"skillName":"Listen","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":20,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.listen","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.MoAB0NRNlpEc2qWr"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824772685,"modifiedTime":1673824772685,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"gJUJPFFFciT7g3ru","name":"Locksmith","type":"skill","img":"systems/CoC7/assets/icons/skills/locksmith.svg","system":{"skillName":"Locksmith","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":1,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.locksmith","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.MRbFH52Zh9TzhLBh"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824775536,"modifiedTime":1673824775536,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"B2l1hajoSiu0220k","name":"Mechanical Repair","type":"skill","img":"systems/CoC7/assets/icons/skills/mechanical_repair.svg","system":{"skillName":"Mechanical Repair","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":10,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.mechanical-repair","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.0qCTuRFUCACSEsWj"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824778778,"modifiedTime":1673824778778,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"YAuSpd2dmbRN3H0N","name":"Medicine","type":"skill","img":"systems/CoC7/assets/icons/skills/medicine.svg","system":{"skillName":"Medicine","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":1,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.medicine","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.Xmg7oAy70DKpv4kq"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824781748,"modifiedTime":1673824781748,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"PsoY9j8Dl7xWvZva","name":"Natural World","type":"skill","img":"systems/CoC7/assets/icons/skills/natural_world.svg","system":{"skillName":"Natural World","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":10,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.natural-world","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.jTcu6Ni2ek7Yz5q3"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824787964,"modifiedTime":1673824787964,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"PQWj9ojsPiyv9x38","name":"Navigate","type":"skill","img":"systems/CoC7/assets/icons/skills/navigate.svg","system":{"skillName":"Navigate","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":10,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.navigate","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.1c3fdvpQtvZf5YXK"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824790175,"modifiedTime":1673824790175,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"j8zIi59ivXeMBIGQ","name":"Occult","type":"skill","img":"systems/CoC7/assets/icons/skills/occult.svg","system":{"skillName":"Occult","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":5,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.occult","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.6pSfZVS68jSHxa5T"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824793143,"modifiedTime":1673824793143,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"YkuhgbOXhjipGTBQ","name":"Operate Heavy Machinery","type":"skill","img":"systems/CoC7/assets/icons/skills/operate_heavy_machinery.svg","system":{"skillName":"Operate Heavy Machinery","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":1,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.operate-heavy-machinery","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.cuExWy1130KUwuWz"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824794964,"modifiedTime":1673824794964,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"sEepDbo9oLuvj3YR","name":"Persuade","type":"skill","img":"systems/CoC7/assets/icons/skills/persuade.svg","system":{"skillName":"Persuade","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":10,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.persuade","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.uMzSNURmZqjxr7mU"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824797480,"modifiedTime":1673824797480,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"XYeMvKx4OvJTdUHN","name":"Psychoanalysis","type":"skill","img":"systems/CoC7/assets/icons/skills/psychoanalysis.svg","system":{"skillName":"Psychoanalysis","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":1,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.psychoanalysis","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.rXBU2GofiO2qOsGv"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824802793,"modifiedTime":1673824802793,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"E0IfQkmTqgn78Hwh","name":"Psychology","type":"skill","img":"systems/CoC7/assets/icons/skills/psychology.svg","system":{"skillName":"Psychology","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":10,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.psychology","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.MFR4eR79niGaLfph"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824804672,"modifiedTime":1673824804672,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"GwpLgucdPiJCWfQA","name":"Ride","type":"skill","img":"systems/CoC7/assets/icons/skills/ride.svg","system":{"skillName":"Ride","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":5,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.ride","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.o7TdzbuSP7ticONf"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824808921,"modifiedTime":1673824808921,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"4PPrFyIHfqGPgOQ4","name":"Science (Chemistry)","type":"skill","img":"systems/CoC7/assets/icons/skills/science_chemistry.svg","system":{"skillName":"Chemistry","specialization":"Science","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":1,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"special":true,"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.science-chemistry","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.8twBT7nbyh5dEp3J"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824813051,"modifiedTime":1673824813051,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"21P4CJb0d9k14Aik","name":"Sleight of Hand","type":"skill","img":"systems/CoC7/assets/icons/skills/sleight_of_hand.svg","system":{"skillName":"Sleight of Hand","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":10,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.sleight-of-hand","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.KKFNX5M4LtEtiuxs"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824817840,"modifiedTime":1673824817840,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"mxt5DkfzMKQY0mqm","name":"Spot Hidden","type":"skill","img":"systems/CoC7/assets/icons/skills/spot_hidden.svg","system":{"skillName":"Spot Hidden","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":25,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.spot-hidden","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.nHaWNwtW3Lg0sqYJ"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824820554,"modifiedTime":1673824820554,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"8dipKbgFF9U5LXBE","name":"Stealth","type":"skill","img":"systems/CoC7/assets/icons/skills/stealth.svg","system":{"skillName":"Stealth","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":20,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.stealth","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"darkAges":true,"darkAgesPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.DcV524K0jNfjDEZC"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824823540,"modifiedTime":1673824823540,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"XFz0IurSpvaHPQVg","name":"Swim","type":"skill","img":"systems/CoC7/assets/icons/skills/swim.svg","system":{"skillName":"Swim","specialization":"","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":20,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":null,"attributes":{},"properties":{"push":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.swim","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.1zSIeY0eat2AxQok"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824825711,"modifiedTime":1673824825711,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"_id":"EQypGKaUOTSYUFJT","name":"Punch","type":"weapon","img":"systems/CoC7/assets/icons/skills/fighting_brawl.svg","system":{"description":{"value":"","chat":"","special":"","keeper":""},"wpnType":"","skill":{"main":{"name":"Brawl","id":"MhTsp0d1S1rytTKP"},"alternativ":{"name":"","id":""}},"range":{"normal":{"value":0,"units":"","damage":"1D3"},"long":{"value":0,"units":"","damage":""},"extreme":{"value":0,"units":"","damage":""}},"usesPerRound":{"normal":1,"max":"","burst":null},"bullets":"","ammo":0,"malfunction":"","blastRadius":null,"properties":{"melee":true,"addb":true},"price":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.weapon.brawl","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.items.3elxAwnv7WCUNwng"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824843603,"modifiedTime":1673824843603,"lastModifiedBy":"KDSEMVnv2FYscKdW"}}],"effects":[],"flags":{"CoC7":{"skillListMode":false,"skillShowUncommon":true},"core":{"sourceId":"Actor.fZvitWcuDHiRVvqQ"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824167510,"modifiedTime":1673827487772,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"folder":null,"sort":0,"ownership":{"default":0},"_id":"JuI2aWDSEuQNKeUI"} -{"name":"Cupboard","type":"container","img":"icons/svg/chest.svg","prototypeToken":{"actorLink":true,"name":"Cupboard","displayName":0,"texture":{"src":"icons/svg/chest.svg","scaleX":1,"scaleY":1,"offsetX":0,"offsetY":0,"rotation":0,"tint":null},"width":1,"height":1,"lockRotation":false,"rotation":0,"alpha":1,"disposition":-1,"displayBars":0,"bar1":{"attribute":"attribs.hp"},"bar2":{"attribute":"attribs.san"},"light":{"alpha":0.5,"angle":360,"bright":0,"color":null,"coloration":1,"dim":0,"attenuation":0.5,"luminosity":0.5,"saturation":0,"contrast":0,"shadows":0,"animation":{"type":null,"speed":5,"intensity":5,"reverse":false},"darkness":{"min":0,"max":1}},"sight":{"enabled":false,"range":null,"angle":360,"visionMode":"basic","color":null,"attenuation":0.1,"brightness":0,"saturation":0,"contrast":0},"detectionModes":[],"flags":{},"randomImg":false},"system":{"description":{"value":"","keeper":""},"flags":{"locked":false}},"items":[{"name":"Rapier","type":"weapon","img":"icons/svg/sword.svg","system":{"description":{"value":"","chat":"","special":"","keeper":""},"wpnType":"","skill":{"main":{"name":"Sword","id":""},"alternativ":{"name":"","id":""}},"range":{"normal":{"value":0,"units":"","damage":"1D6+1"},"long":{"value":0,"units":"","damage":""},"extreme":{"value":0,"units":"","damage":""}},"usesPerRound":{"normal":"1","max":"","burst":null},"bullets":"","ammo":0,"malfunction":"","blastRadius":null,"properties":{"melee":true,"rngd":false,"shotgun":false,"brst":false,"auto":false,"dbrl":false,"addb":true,"ahdb":false},"price":{}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"flags":{},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673825675613,"modifiedTime":1673825686834,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"_id":"Zf5qG2ADNdIVdSTi"}],"effects":[],"flags":{"core":{"sourceId":"Actor.dRQ62ogaUuZzp6ot"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673825647165,"modifiedTime":1673827491287,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"folder":null,"sort":0,"ownership":{"default":0},"_id":"r7bDSY4OYKxQYEas"} -{"name":"Creature example","type":"creature","img":"systems/CoC7/assets/icons/floating-tentacles.svg","system":{"characteristics":{"str":{"value":1,"tempValue":null,"short":"CHARAC.STR","label":"CHARAC.Strength","formula":"1d6"},"con":{"value":10,"tempValue":null,"short":"CHARAC.CON","label":"CHARAC.Constitution","formula":"2d6"},"siz":{"value":50,"tempValue":null,"short":"CHARAC.SIZ","label":"CHARAC.Size","formula":"5*3d6"},"dex":{"value":10,"tempValue":null,"short":"CHARAC.DEX","label":"CHARAC.Dexterity","formula":"4d6"},"app":{"value":20,"tempValue":null,"short":"CHARAC.APP","label":"CHARAC.Appearance","formula":"5d6"},"int":{"value":20,"tempValue":null,"short":"CHARAC.INT","label":"CHARAC.Intelligence","formula":"6d6"},"pow":{"value":null,"tempValue":null,"short":"CHARAC.POW","label":"CHARAC.Power","formula":"0"},"edu":{"value":null,"tempValue":null,"short":"CHARAC.EDU","label":"CHARAC.Education","formula":"0"}},"attribs":{"hp":{"value":6,"max":null,"short":"HP","label":"Hit points","auto":true},"mp":{"value":0,"max":null,"short":"HP","label":"Magic points","auto":true},"lck":{"value":0,"short":"LCK","label":"Luck","max":99},"san":{"value":0,"max":99,"short":"SAN","label":"Sanity","auto":true,"dailyLoss":0,"oneFifthSanity":" / 0"},"mov":{"value":null,"max":null,"short":"MOV","label":"Movement rate","auto":true},"db":{"value":null,"short":"DB","label":"Damage bonus","auto":true},"build":{"current":null,"value":null,"short":"BLD","label":"Build","auto":true},"armor":{"value":0,"localized":false,"locations":[],"auto":false}},"conditions":{"criticalWounds":{"value":false},"unconscious":{"value":false},"dying":{"value":false},"dead":{"value":false},"prone":{"value":false},"tempoInsane":{"value":false},"indefInsane":{"value":false}},"personalDescription":{"type":"string","value":""},"description":{"keeper":""},"special":{"attribs":{"move":{"primary":{"enabled":false,"value":null,"type":null},"secondary":{"enabled":false,"value":null,"type":null}}},"sanLoss":{"checkPassed":"1d2","checkFailled":"1d6"},"attacksPerRound":null},"infos":{"type":"Phorusrhacid"},"flags":{"locked":true,"displayFormula":false},"biography":{"personalDescription":{"value":"

    Clicking the lock will allow modification of the sheet.

    When sheet is unlock you can modify things directly from the sheet. You can also open the entities sheets and delete things.

    In that mode you can create skills/possessions by clicking the + icon. Holding shift will bypass the opening of the corresponding sheet.

    You can enter characteristics as numbers and as formulas. Click the right icon to toggle modes. Clicking the red dice will roll the formula when possible. So you can have your creature with defined values, or roll/reroll the value on demand.

    "}},"pannel":{"inventory":{"expanded":true}}},"prototypeToken":{"name":"Creature example","displayName":0,"actorLink":false,"texture":{"src":"systems/CoC7/assets/icons/floating-tentacles.svg","scaleX":1,"scaleY":1,"offsetX":0,"offsetY":0,"rotation":0,"tint":null},"width":1,"height":1,"lockRotation":false,"rotation":0,"alpha":1,"disposition":-1,"displayBars":0,"bar1":{"attribute":"attribs.hp"},"bar2":{"attribute":"attribs.san"},"light":{"alpha":0.5,"angle":360,"bright":0,"color":null,"coloration":1,"dim":0,"attenuation":0.5,"luminosity":0.5,"saturation":0,"contrast":0,"shadows":0,"animation":{"type":null,"speed":5,"intensity":5,"reverse":false},"darkness":{"min":0,"max":1}},"sight":{"enabled":false,"range":null,"angle":360,"visionMode":"basic","color":null,"attenuation":0.1,"brightness":0,"saturation":0,"contrast":0},"detectionModes":[],"flags":{},"randomImg":false},"items":[{"name":"Pile of junk","type":"item","img":"icons/svg/item-bag.svg","system":{"description":{"value":"","keeper":""},"quantity":1,"weight":0,"attributes":{}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"flags":{"core":{"sourceId":"Item.rOZl9mZIYdV4gjnx"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673825252832,"modifiedTime":1673825263343,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"_id":"0oDo0HjUAx36Grvo"},{"_id":"4rNQ59tXBG8vv1wt","name":"Fighting (Brawl)","type":"skill","img":"systems/CoC7/assets/icons/skills/fighting_brawl.svg","system":{"skillName":"Brawl","specialization":"Fighting","description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    ","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":25,"adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":"50","attributes":{},"properties":{"fighting":true,"combat":true,"special":true},"flags":{}},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.fighting-brawl","lang":"en","priority":0}},"core":{"sourceId":"Compendium.CoC7.skills.vS8bsPWFlwgOecoB"}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673825281504,"modifiedTime":1673825338205,"lastModifiedBy":"KDSEMVnv2FYscKdW"}},{"name":"Fighting (Slice PCs in small cubes)","type":"skill","system":{"skillName":"Slice PCs in small cubes","specialization":"Fighting","description":{"value":"","opposingDifficulty":"","pushedFaillureConsequences":"","chat":"","keeper":""},"base":"0","adjustments":{"personal":null,"occupation":null,"archetype":null,"experience":null},"value":"75","attributes":{},"properties":{"special":true,"fighting":true,"firearm":false,"combat":true},"flags":{}},"img":"systems/CoC7/assets/icons/skills.svg","effects":[],"folder":null,"sort":0,"ownership":{"default":0},"flags":{"core":{"sourceId":"Item.EXC0vQHsNEO8NnE7"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673825316762,"modifiedTime":1673825343268,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"_id":"nGg2vYB9ij5jUpWN"},{"name":"Deadly beak","type":"weapon","img":"icons/svg/sword.svg","system":{"description":{"value":"","chat":"","special":"

    You can add special description or slugs there :

    Slug 1 : [[/r 2d17kh]]

    ","keeper":""},"wpnType":"","skill":{"main":{"name":"Slice PCs in small cubes","id":"nGg2vYB9ij5jUpWN"},"alternativ":{"name":"","id":""}},"range":{"normal":{"value":0,"units":"","damage":"10D6"},"long":{"value":0,"units":"","damage":""},"extreme":{"value":0,"units":"","damage":""}},"usesPerRound":{"normal":"1","max":"","burst":null},"bullets":"","ammo":0,"malfunction":"","blastRadius":null,"properties":{"melee":true,"rngd":false,"shotgun":false,"brst":false,"auto":false,"dbrl":false,"spcl":true},"price":{}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"flags":{"core":{"sourceId":"Item.NpSD7RCpjfRsY2Dm"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673825400070,"modifiedTime":1673825519501,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"_id":"H0nWT8ljuKqVkcgc"},{"name":"Innate attack","type":"weapon","img":"icons/svg/sword.svg","system":{"description":{"value":"

    Creature's natural attack

    ","chat":"","special":"","keeper":""},"wpnType":"","skill":{"main":{"name":"Fighting (Brawl)","id":"4rNQ59tXBG8vv1wt"},"alternativ":{"name":"","id":""}},"range":{"normal":{"value":0,"units":"","damage":"1D3"},"long":{"value":0,"units":"","damage":""},"extreme":{"value":0,"units":"","damage":""}},"usesPerRound":{"normal":"1","max":"","burst":null},"bullets":"","ammo":0,"malfunction":"","blastRadius":null,"properties":{"melee":true,"rngd":false,"shotgun":false,"brst":false,"auto":false,"dbrl":false,"addb":true,"ahdb":false,"slnt":true},"price":{}},"effects":[],"folder":null,"sort":0,"ownership":{"default":0},"flags":{"core":{"sourceId":"Item.DloZLwbcNEsoPH74"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673825547087,"modifiedTime":1673825585642,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"_id":"0KsCeV1S9WmxNq5M"}],"effects":[],"flags":{"core":{"sourceId":"Actor.YHNSOR6jgVsSUyYW"}},"_stats":{"systemId":"CoC7","systemVersion":"0.9.2","coreVersion":"10.291","createdTime":1673824963947,"modifiedTime":1673827489483,"lastModifiedBy":"KDSEMVnv2FYscKdW"},"folder":null,"sort":0,"ownership":{"default":0},"_id":"XE2vjLG03wGfnYLw"} diff --git a/packs/items.db b/packs/items.db deleted file mode 100644 index 38eb01ca..00000000 --- a/packs/items.db +++ /dev/null @@ -1,12 +0,0 @@ -{"_id":"CcH7CdXGtGTjMSCg","name":"1920's Setup Example","type":"setup","img":"icons/svg/item-bag.svg","system":{"description":{"value":"

    Default setup for 1920's character.

    "},"source":"","items":["i.skill.accounting","i.skill.anthropology","i.skill.appraise","i.skill.archaeology","i.skill.art-craft-any","i.skill.charm","i.skill.climb","i.skill.credit-rating","i.skill.cthulhu-mythos","i.skill.disguise","i.skill.dodge","i.skill.drive-auto","i.skill.electrical-repair","i.skill.fast-talk","i.skill.fighting-brawl","i.skill.fighting-throw","i.skill.firearms-handgun","i.skill.firearms-rifle-shotgun","i.skill.first-aid","i.skill.history","i.skill.intimidate","i.skill.jump","i.skill.language-own","i.skill.law","i.skill.library-use","i.skill.listen","i.skill.locksmith","i.skill.mechanical-repair","i.skill.medicine","i.skill.natural-world","i.skill.navigate","i.skill.occult","i.skill.operate-heavy-machinery","i.skill.persuade","i.skill.pilot-any","i.skill.psychoanalysis","i.skill.psychology","i.skill.ride","i.skill.science-any","i.skill.sleight-of-hand","i.skill.spot-hidden","i.skill.stealth","i.skill.survival-any","i.skill.swim","i.skill.track","i.weapon.brawl"],"bioSections":["Personal Description","Ideology/Beliefs","Significant People","Meaningful Locations","Treasured Possessions","Traits"]},"flags":{"CoC7":{"cocidFlag":{"id":"i.setup.standard","lang":"en","eras":{"standard":true},"priority":0}}}} -{"_id":"lu04TIRrg9P3vRqY","name":"Peacemaker","type":"archetype","img":"icons/svg/invisible.svg","system":{"source":"FoundryVTT CoC7","description":{"value":"

    A problem solver who possesses a natural ability to find or see the “eye of the storm” and see an issue from all sides. Motivated by harmony, the peacemaker seeks to maintain the balance, be it between individuals or groups of people, and preserve the status quo. They aim to bring solutions and can be very adaptable, although sometimes to their own detriment as they can put everyone else ahead of their own needs. While often described as “easy going” or a “push over,” they can be steadfast, level-headed, and bold, especially when a crisis strikes.

    "},"suggestedOccupations":"

    Athlete, Bartender/Waitress, Beat Cop, Butler, Criminal, Elected Official, Laborer, Missionary, Nurse, Priest, Secretary, Yogi.

    ","suggestedTraits":"

    calm under pressure, level-headed, unassuming, selfless.

    ","coreCharacteristics":{"app":true,"int":true},"skills":["i.skill.charm","i.skill.fast-talk","i.skill.history","i.skill.first-aid","i.skill.intimidate","i.skill.language-any","i.skill.listen","i.skill.persuade","i.skill.psychology","i.skill.spot-hidden"]},"flags":{"CoC7":{"cocidFlag":{"id":"i.archetype.peacemaker","lang":"en","priority":0}}}} -{"_id":"zyCszwqyTg21l9E2","name":"Death ray (prototype)","type":"weapon","img":"icons/svg/sword.svg","system":{"range":{"normal":{"value":"50ft","damage":"5d6"}},"usesPerRound":{"max":"","burst":""},"bullets":"","malfunction":"","properties":{"rngd":true,"slnt":true}},"flags":{}} -{"_id":"uWQYNsMURpspTetM","name":"Experimental weapon","type":"weapon","img":"icons/svg/sword.svg","system":{"description":{"value":"

    Description of the weapon

    selecting 'Area of effect' will enable 3 different damage and range

    selecting 'Full-auto' will allow 2 different skills to be selected for the weapon

    selecting 'Special' will activate the special input field

    In the combat tab, if the icons are with a red background, it means that no skill have been selected for that weapon

    Edit the weapon and select the correct skill.

    ","special":"

    You can add special description or slugs there:

    Slug 1: [[/r 2d17kh]]

    "},"skill":{"main":{"name":"To be selected once the weapon is owned"}},"range":{"normal":{"value":"15ft","damage":"3d6"}},"usesPerRound":{"max":"","burst":""},"bullets":"","malfunction":85,"properties":{"rngd":true,"brst":true,"spcl":true}},"flags":{}} -{"_id":"DVdvEDizPZPux1pK","name":"Mania 1","type":"status","img":"icons/svg/aura.svg","system":{"source":"","type":{"mania":true}},"flags":{}} -{"_id":"Vm9OzZnAVOpDdwfB","name":"Mania 2","type":"status","img":"icons/svg/aura.svg","system":{"source":"","type":{"mania":true}},"flags":{}} -{"_id":"NOsh6EdNSjpjahDF","name":"Street Vendor","type":"occupation","img":"icons/svg/ice-aura.svg","system":{"source":"FoundryVTT CoC7","description":{"value":"

    Also commonly known as “hawkers” and “peddlers,” street vendors travel around, usually with a handcart or trolley, selling small things to passersby, such as hand-crafted objects, food and snacks, or other inexpensive items. They are known for shouting out or otherwise vocalizing their wares to attract customers, as well as their turn of phrase or banter to up-sell and enhance sales.

    Being on the street all day means they get to know different localities, the comings and goings of residents, and are a magnet for collecting—or starting—gossip.

    Suggested Contacts: other vendors, local law enforcement, trade suppliers, butlers and other household staff.

    "},"type":{"classic":true},"occupationSkillPoints":{"app":{"multiplier":4,"selected":true}},"creditRating":{"min":10,"max":40},"skills":["i.skill.appraise","i.skill.fighting-brawl","i.skill.listen","i.skill.navigate","i.skill.psychology"],"groups":[{"options":1,"skills":["i.skill.accounting","i.skill.art-craft-any"]},{"options":1,"skills":["i.skill.charm","i.skill.fast-talk"]},{"options":1,"skills":["i.skill.language-any","i.skill.sleight-of-hand"]}],"personal":0},"flags":{"CoC7":{"cocidFlag":{"id":"i.occupation.street-vendor","lang":"en","priority":0}}}} -{"_id":"PFpgtSKUcBDLVLY6","name":"Phobia 1","type":"status","img":"icons/svg/aura.svg","system":{"source":"","type":{"phobia":true}},"flags":{}} -{"_id":"2dqgtyGfwr8M60he","name":"Phobia 2","type":"status","img":"icons/svg/aura.svg","system":{"source":"","type":{"phobia":true}},"flags":{}} -{"_id":"3elxAwnv7WCUNwng","name":"Punch","type":"weapon","img":"systems/CoC7/assets/icons/skills/fighting_brawl.svg","system":{"skill":{"main":{"name":"Brawl"}},"range":{"normal":{"damage":"1D3"}},"usesPerRound":{"max":""},"bullets":"","malfunction":"","properties":{"melee":true,"addb":true}},"flags":{"CoC7":{"cocidFlag":{"id":"i.weapon.brawl","lang":"en","priority":0}}}} -{"_id":"yqvwz769ZeJplOW7","name":"Talent 1","type":"talent","img":"icons/svg/item-bag.svg","system":{"source":"","type":{"physical":true}},"flags":{}} -{"_id":"NVz7eCFnoH8J12qH","name":"Talent 2","type":"talent","img":"icons/svg/item-bag.svg","system":{"source":"","type":{"mental":true}},"flags":{}} \ No newline at end of file diff --git a/packs/roll-requests.db b/packs/roll-requests.db deleted file mode 100644 index 6ae4f5df..00000000 --- a/packs/roll-requests.db +++ /dev/null @@ -1 +0,0 @@ -{"_id":"qaWAuaZa42JtdBhF","name":"Roll Requests","pages":[{"name":"Roll Requests","type":"text","_id":"izVAGIeSXPWURg7U","title":{"show":false,"level":1},"text":{"format":1,"content":"

    Type

    Name

    Parameters

    Code

    Attrib

    Luck

    Regular

    @coc7.check[type:attrib,name:Luck,difficulty:0,modifier:0,icon:fas fa-dice-d20]{ Luck}

    Attrib

    Luck

    Hard

    @coc7.check[type:attrib,name:Luck,difficulty:+,modifier:0,icon:fas fa-dice-d20]{ Luck (Hard)}

    Attrib

    Luck

    Extreme

    @coc7.check[type:attrib,name:Luck,difficulty:++,modifier:0,icon:fas fa-dice-d20]{ Luck (Extreme)}

    Attrib

    Luck

    Critical

    @coc7.check[type:attrib,name:Luck,difficulty:+++,modifier:0,icon:fas fa-dice-d20]{ Luck (Critical)}

    Attrib

    Luck

    Blind

    @coc7.check[type:attrib,name:Luck,difficulty:?,modifier:0,icon:fas fa-dice-d20]{ Luck (Blind)}

    Attrib

    Luck

    1 Bonus

    @coc7.check[type:attrib,name:Luck,difficulty:0,modifier:+1,icon:fas fa-dice-d20]{ Luck (1B)}

    Attrib

    Luck

    2 Bonus

    @coc7.check[type:attrib,name:Luck,difficulty:0,modifier:+2,icon:fas fa-dice-d20]{ Luck (2B)}

    Attrib

    Luck

    1 Penalty

    @coc7.check[type:attrib,name:Luck,difficulty:0,modifier:-1,icon:fas fa-dice-d20]{ Luck (1P)}

    Attrib

    Luck

    2 Penalty

    @coc7.check[type:attrib,name:Luck,difficulty:0,modifier:-2,icon:fas fa-dice-d20]{ Luck (2P)}

    Attrib

    Sanity

    Regular

    @coc7.check[type:attrib,name:Sanity,difficulty:0,modifier:0,icon:fas fa-pastafarianism]{ Sanity}

    Attrib

    Sanity

    Hard

    @coc7.check[type:attrib,name:Sanity,difficulty:+,modifier:0,icon:fas fa-pastafarianism]{ Sanity (Hard)}

    Attrib

    Sanity

    Extreme

    @coc7.check[type:attrib,name:Sanity,difficulty:++,modifier:0,icon:fas fa-pastafarianism]{ Sanity (Extreme)}

    Attrib

    Sanity

    Critical

    @coc7.check[type:attrib,name:Sanity,difficulty:+++,modifier:0,icon:fas fa-pastafarianism]{ Sanity (Critical)}

    Attrib

    Sanity

    Blind

    @coc7.check[type:attrib,name:Sanity,difficulty:?,modifier:0,icon:fas fa-pastafarianism]{ Sanity (Blind)}

    Attrib

    Sanity

    1 Bonus

    @coc7.check[type:attrib,name:Sanity,difficulty:0,modifier:+1,icon:fas fa-pastafarianism]{ Sanity (1B)}

    Attrib

    Sanity

    2 Bonus

    @coc7.check[type:attrib,name:Sanity,difficulty:0,modifier:+2,icon:fas fa-pastafarianism]{ Sanity (2B)}

    Attrib

    Sanity

    1 Penalty

    @coc7.check[type:attrib,name:Sanity,difficulty:0,modifier:-1,icon:fas fa-pastafarianism]{ Sanity (1P)}

    Attrib

    Sanity

    2 Penalty

    @coc7.check[type:attrib,name:Sanity,difficulty:0,modifier:-2,icon:fas fa-pastafarianism]{ Sanity (2P)}

    Characteristic

    APP

    Regular

    @coc7.check[type:characteristic,name:APP,difficulty:0,modifier:0,icon:fas fa-hat-cowboy]{ APP}

    Characteristic

    APP

    Hard

    @coc7.check[type:characteristic,name:APP,difficulty:+,modifier:0,icon:fas fa-hat-cowboy]{ APP (Hard)}

    Characteristic

    APP

    Extreme

    @coc7.check[type:characteristic,name:APP,difficulty:++,modifier:0,icon:fas fa-hat-cowboy]{ APP (Extreme)}

    Characteristic

    APP

    Critical

    @coc7.check[type:characteristic,name:APP,difficulty:+++,modifier:0,icon:fas fa-hat-cowboy]{ APP (Critical)}

    Characteristic

    APP

    Blind

    @coc7.check[type:characteristic,name:APP,difficulty:?,modifier:0,icon:fas fa-hat-cowboy]{ APP (Blind)}

    Characteristic

    APP

    1 Bonus

    @coc7.check[type:characteristic,name:APP,difficulty:0,modifier:+1,icon:fas fa-hat-cowboy]{ APP (1B)}

    Characteristic

    APP

    2 Bonus

    @coc7.check[type:characteristic,name:APP,difficulty:0,modifier:+2,icon:fas fa-hat-cowboy]{ APP (2B)}

    Characteristic

    APP

    1 Penalty

    @coc7.check[type:characteristic,name:APP,difficulty:0,modifier:-1,icon:fas fa-hat-cowboy]{ APP (1P)}

    Characteristic

    APP

    2 Penalty

    @coc7.check[type:characteristic,name:APP,difficulty:0,modifier:-2,icon:fas fa-hat-cowboy]{ APP (2P)}

    Characteristic

    CON

    Regular

    @coc7.check[type:characteristic,name:CON,difficulty:0,modifier:0,icon:fas fa-heart-broken]{ CON}

    Characteristic

    CON

    Hard

    @coc7.check[type:characteristic,name:CON,difficulty:+,modifier:0,icon:fas fa-heart-broken]{ CON (Hard)}

    Characteristic

    CON

    Extreme

    @coc7.check[type:characteristic,name:CON,difficulty:++,modifier:0,icon:fas fa-heart-broken]{ CON (Extreme)}

    Characteristic

    CON

    Critical

    @coc7.check[type:characteristic,name:CON,difficulty:+++,modifier:0,icon:fas fa-heart-broken]{ CON (Critical)}

    Characteristic

    CON

    Blind

    @coc7.check[type:characteristic,name:CON,difficulty:?,modifier:0,icon:fas fa-heart-broken]{ CON (Blind)}

    Characteristic

    CON

    1 Bonus

    @coc7.check[type:characteristic,name:CON,difficulty:0,modifier:+1,icon:fas fa-heart-broken]{ CON (1B)}

    Characteristic

    CON

    2 Bonus

    @coc7.check[type:characteristic,name:CON,difficulty:0,modifier:+2,icon:fas fa-heart-broken]{ CON (2B)}

    Characteristic

    CON

    1 Penalty

    @coc7.check[type:characteristic,name:CON,difficulty:0,modifier:-1,icon:fas fa-heart-broken]{ CON (1P)}

    Characteristic

    CON

    2 Penalty

    @coc7.check[type:characteristic,name:CON,difficulty:0,modifier:-2,icon:fas fa-heart-broken]{ CON (2P)}

    Characteristic

    DEX

    Regular

    @coc7.check[type:characteristic,name:DEX,difficulty:0,modifier:0,icon:fas fa-skating]{ DEX}

    Characteristic

    DEX

    Hard

    @coc7.check[type:characteristic,name:DEX,difficulty:+,modifier:0,icon:fas fa-skating]{ DEX (Hard)}

    Characteristic

    DEX

    Extreme

    @coc7.check[type:characteristic,name:DEX,difficulty:++,modifier:0,icon:fas fa-skating]{ DEX (Extreme)}

    Characteristic

    DEX

    Critical

    @coc7.check[type:characteristic,name:DEX,difficulty:+++,modifier:0,icon:fas fa-skating]{ DEX (Critical)}

    Characteristic

    DEX

    Blind

    @coc7.check[type:characteristic,name:DEX,difficulty:?,modifier:0,icon:fas fa-skating]{ DEX (Blind)}

    Characteristic

    DEX

    1 Bonus

    @coc7.check[type:characteristic,name:DEX,difficulty:0,modifier:+1,icon:fas fa-skating]{ DEX (1B)}

    Characteristic

    DEX

    2 Bonus

    @coc7.check[type:characteristic,name:DEX,difficulty:0,modifier:+2,icon:fas fa-skating]{ DEX (2B)}

    Characteristic

    DEX

    1 Penalty

    @coc7.check[type:characteristic,name:DEX,difficulty:0,modifier:-1,icon:fas fa-skating]{ DEX (1P)}

    Characteristic

    DEX

    2 Penalty

    @coc7.check[type:characteristic,name:DEX,difficulty:0,modifier:-2,icon:fas fa-skating]{ DEX (2P)}

    Characteristic

    EDU

    Regular

    @coc7.check[type:characteristic,name:EDU,difficulty:0,modifier:0,icon:fas fa-graduation-cap]{ EDU}

    Characteristic

    EDU

    Hard

    @coc7.check[type:characteristic,name:EDU,difficulty:+,modifier:0,icon:fas fa-graduation-cap]{ EDU (Hard)}

    Characteristic

    EDU

    Extreme

    @coc7.check[type:characteristic,name:EDU,difficulty:++,modifier:0,icon:fas fa-graduation-cap]{ EDU (Extreme)}

    Characteristic

    EDU

    Critical

    @coc7.check[type:characteristic,name:EDU,difficulty:+++,modifier:0,icon:fas fa-graduation-cap]{ EDU (Critical)}

    Characteristic

    EDU

    Blind

    @coc7.check[type:characteristic,name:EDU,difficulty:?,modifier:0,icon:fas fa-graduation-cap]{ EDU (Blind)}

    Characteristic

    EDU

    1 Bonus

    @coc7.check[type:characteristic,name:EDU,difficulty:0,modifier:+1,icon:fas fa-graduation-cap]{ EDU (1B)}

    Characteristic

    EDU

    2 Bonus

    @coc7.check[type:characteristic,name:EDU,difficulty:0,modifier:+2,icon:fas fa-graduation-cap]{ EDU (2B)}

    Characteristic

    EDU

    1 Penalty

    @coc7.check[type:characteristic,name:EDU,difficulty:0,modifier:-1,icon:fas fa-graduation-cap]{ EDU (1P)}

    Characteristic

    EDU

    2 Penalty

    @coc7.check[type:characteristic,name:EDU,difficulty:0,modifier:-2,icon:fas fa-graduation-cap]{ EDU (2P)}

    Characteristic

    INT

    Regular

    @coc7.check[type:characteristic,name:INT,difficulty:0,modifier:0,icon:fas fa-brain]{ INT}

    Characteristic

    INT

    Hard

    @coc7.check[type:characteristic,name:INT,difficulty:+,modifier:0,icon:fas fa-brain]{ INT (Hard)}

    Characteristic

    INT

    Extreme

    @coc7.check[type:characteristic,name:INT,difficulty:++,modifier:0,icon:fas fa-brain]{ INT (Extreme)}

    Characteristic

    INT

    Critical

    @coc7.check[type:characteristic,name:INT,difficulty:+++,modifier:0,icon:fas fa-brain]{ INT (Critical)}

    Characteristic

    INT

    Blind

    @coc7.check[type:characteristic,name:INT,difficulty:?,modifier:0,icon:fas fa-brain]{ INT (Blind)}

    Characteristic

    INT

    1 Bonus

    @coc7.check[type:characteristic,name:INT,difficulty:0,modifier:+1,icon:fas fa-brain]{ INT (1B)}

    Characteristic

    INT

    2 Bonus

    @coc7.check[type:characteristic,name:INT,difficulty:0,modifier:+2,icon:fas fa-brain]{ INT (2B)}

    Characteristic

    INT

    1 Penalty

    @coc7.check[type:characteristic,name:INT,difficulty:0,modifier:-1,icon:fas fa-brain]{ INT (1P)}

    Characteristic

    INT

    2 Penalty

    @coc7.check[type:characteristic,name:INT,difficulty:0,modifier:-2,icon:fas fa-brain]{ INT (2P)}

    Characteristic

    POW

    Regular

    @coc7.check[type:characteristic,name:POW,difficulty:0,modifier:0,icon:fas fa-hamsa]{ POW}

    Characteristic

    POW

    Hard

    @coc7.check[type:characteristic,name:POW,difficulty:+,modifier:0,icon:fas fa-hamsa]{ POW (Hard)}

    Characteristic

    POW

    Extreme

    @coc7.check[type:characteristic,name:POW,difficulty:++,modifier:0,icon:fas fa-hamsa]{ POW (Extreme)}

    Characteristic

    POW

    Critical

    @coc7.check[type:characteristic,name:POW,difficulty:+++,modifier:0,icon:fas fa-hamsa]{ POW (Critical)}

    Characteristic

    POW

    Blind

    @coc7.check[type:characteristic,name:POW,difficulty:?,modifier:0,icon:fas fa-hamsa]{ POW (Blind)}

    Characteristic

    POW

    1 Bonus

    @coc7.check[type:characteristic,name:POW,difficulty:0,modifier:+1,icon:fas fa-hamsa]{ POW (1B)}

    Characteristic

    POW

    2 Bonus

    @coc7.check[type:characteristic,name:POW,difficulty:0,modifier:+2,icon:fas fa-hamsa]{ POW (2B)}

    Characteristic

    POW

    1 Penalty

    @coc7.check[type:characteristic,name:POW,difficulty:0,modifier:-1,icon:fas fa-hamsa]{ POW (1P)}

    Characteristic

    POW

    2 Penalty

    @coc7.check[type:characteristic,name:POW,difficulty:0,modifier:-2,icon:fas fa-hamsa]{ POW (2P)}

    Characteristic

    SIZ

    Regular

    @coc7.check[type:characteristic,name:SIZ,difficulty:0,modifier:0,icon:fas fa-child]{ SIZ}

    Characteristic

    SIZ

    Hard

    @coc7.check[type:characteristic,name:SIZ,difficulty:+,modifier:0,icon:fas fa-child]{ SIZ (Hard)}

    Characteristic

    SIZ

    Extreme

    @coc7.check[type:characteristic,name:SIZ,difficulty:++,modifier:0,icon:fas fa-child]{ SIZ (Extreme)}

    Characteristic

    SIZ

    Critical

    @coc7.check[type:characteristic,name:SIZ,difficulty:+++,modifier:0,icon:fas fa-child]{ SIZ (Critical)}

    Characteristic

    SIZ

    Blind

    @coc7.check[type:characteristic,name:SIZ,difficulty:?,modifier:0,icon:fas fa-child]{ SIZ (Blind)}

    Characteristic

    SIZ

    1 Bonus

    @coc7.check[type:characteristic,name:SIZ,difficulty:0,modifier:+1,icon:fas fa-child]{ SIZ (1B)}

    Characteristic

    SIZ

    2 Bonus

    @coc7.check[type:characteristic,name:SIZ,difficulty:0,modifier:+2,icon:fas fa-child]{ SIZ (2B)}

    Characteristic

    SIZ

    1 Penalty

    @coc7.check[type:characteristic,name:SIZ,difficulty:0,modifier:-1,icon:fas fa-child]{ SIZ (1P)}

    Characteristic

    SIZ

    2 Penalty

    @coc7.check[type:characteristic,name:SIZ,difficulty:0,modifier:-2,icon:fas fa-child]{ SIZ (2P)}

    Characteristic

    STR

    Regular

    @coc7.check[type:characteristic,name:STR,difficulty:0,modifier:0,icon:fas fa-dumbbell]{ STR}

    Characteristic

    STR

    Hard

    @coc7.check[type:characteristic,name:STR,difficulty:+,modifier:0,icon:fas fa-dumbbell]{ STR (Hard)}

    Characteristic

    STR

    Extreme

    @coc7.check[type:characteristic,name:STR,difficulty:++,modifier:0,icon:fas fa-dumbbell]{ STR (Extreme)}

    Characteristic

    STR

    Critical

    @coc7.check[type:characteristic,name:STR,difficulty:+++,modifier:0,icon:fas fa-dumbbell]{ STR (Critical)}

    Characteristic

    STR

    Blind

    @coc7.check[type:characteristic,name:STR,difficulty:?,modifier:0,icon:fas fa-dumbbell]{ STR (Blind)}

    Characteristic

    STR

    1 Bonus

    @coc7.check[type:characteristic,name:STR,difficulty:0,modifier:+1,icon:fas fa-dumbbell]{ STR (1B)}

    Characteristic

    STR

    2 Bonus

    @coc7.check[type:characteristic,name:STR,difficulty:0,modifier:+2,icon:fas fa-dumbbell]{ STR (2B)}

    Characteristic

    STR

    1 Penalty

    @coc7.check[type:characteristic,name:STR,difficulty:0,modifier:-1,icon:fas fa-dumbbell]{ STR (1P)}

    Characteristic

    STR

    2 Penalty

    @coc7.check[type:characteristic,name:STR,difficulty:0,modifier:-2,icon:fas fa-dumbbell]{ STR (2P)}

    Skill

    Accounting

    Regular

    @coc7.check[type:skill,name:Accounting,difficulty:0,modifier:0,icon:fas fa-balance-scale]{ Accounting}

    Skill

    Accounting

    Hard

    @coc7.check[type:skill,name:Accounting,difficulty:+,modifier:0,icon:fas fa-balance-scale]{ Accounting (Hard)}

    Skill

    Accounting

    Extreme

    @coc7.check[type:skill,name:Accounting,difficulty:++,modifier:0,icon:fas fa-balance-scale]{ Accounting (Extreme)}

    Skill

    Accounting

    Critical

    @coc7.check[type:skill,name:Accounting,difficulty:+++,modifier:0,icon:fas fa-balance-scale]{ Accounting (Critical)}

    Skill

    Accounting

    Blind

    @coc7.check[type:skill,name:Accounting,difficulty:?,modifier:0,icon:fas fa-balance-scale]{ Accounting (Blind)}

    Skill

    Accounting

    1 Bonus

    @coc7.check[type:skill,name:Accounting,difficulty:0,modifier:+1,icon:fas fa-balance-scale]{ Accounting (1B)}

    Skill

    Accounting

    2 Bonus

    @coc7.check[type:skill,name:Accounting,difficulty:0,modifier:+2,icon:fas fa-balance-scale]{ Accounting (2B)}

    Skill

    Accounting

    1 Penalty

    @coc7.check[type:skill,name:Accounting,difficulty:0,modifier:-1,icon:fas fa-balance-scale]{ Accounting (1P)}

    Skill

    Accounting

    2 Penalty

    @coc7.check[type:skill,name:Accounting,difficulty:0,modifier:-2,icon:fas fa-balance-scale]{ Accounting (2P)}

    Skill

    Anthropology

    Regular

    @coc7.check[type:skill,name:Anthropology,difficulty:0,modifier:0,icon:fas fa-bone]{ Anthropology}

    Skill

    Anthropology

    Hard

    @coc7.check[type:skill,name:Anthropology,difficulty:+,modifier:0,icon:fas fa-bone]{ Anthropology (Hard)}

    Skill

    Anthropology

    Extreme

    @coc7.check[type:skill,name:Anthropology,difficulty:++,modifier:0,icon:fas fa-bone]{ Anthropology (Extreme)}

    Skill

    Anthropology

    Critical

    @coc7.check[type:skill,name:Anthropology,difficulty:+++,modifier:0,icon:fas fa-bone]{ Anthropology (Critical)}

    Skill

    Anthropology

    Blind

    @coc7.check[type:skill,name:Anthropology,difficulty:?,modifier:0,icon:fas fa-bone]{ Anthropology (Blind)}

    Skill

    Anthropology

    1 Bonus

    @coc7.check[type:skill,name:Anthropology,difficulty:0,modifier:+1,icon:fas fa-bone]{ Anthropology (1B)}

    Skill

    Anthropology

    2 Bonus

    @coc7.check[type:skill,name:Anthropology,difficulty:0,modifier:+2,icon:fas fa-bone]{ Anthropology (2B)}

    Skill

    Anthropology

    1 Penalty

    @coc7.check[type:skill,name:Anthropology,difficulty:0,modifier:-1,icon:fas fa-bone]{ Anthropology (1P)}

    Skill

    Anthropology

    2 Penalty

    @coc7.check[type:skill,name:Anthropology,difficulty:0,modifier:-2,icon:fas fa-bone]{ Anthropology (2P)}

    Skill

    Appraise

    Regular

    @coc7.check[type:skill,name:Appraise,difficulty:0,modifier:0,icon:fas fa-dollar-sign]{ Appraise}

    Skill

    Appraise

    Hard

    @coc7.check[type:skill,name:Appraise,difficulty:+,modifier:0,icon:fas fa-dollar-sign]{ Appraise (Hard)}

    Skill

    Appraise

    Extreme

    @coc7.check[type:skill,name:Appraise,difficulty:++,modifier:0,icon:fas fa-dollar-sign]{ Appraise (Extreme)}

    Skill

    Appraise

    Critical

    @coc7.check[type:skill,name:Appraise,difficulty:+++,modifier:0,icon:fas fa-dollar-sign]{ Appraise (Critical)}

    Skill

    Appraise

    Blind

    @coc7.check[type:skill,name:Appraise,difficulty:?,modifier:0,icon:fas fa-dollar-sign]{ Appraise (Blind)}

    Skill

    Appraise

    1 Bonus

    @coc7.check[type:skill,name:Appraise,difficulty:0,modifier:+1,icon:fas fa-dollar-sign]{ Appraise (1B)}

    Skill

    Appraise

    2 Bonus

    @coc7.check[type:skill,name:Appraise,difficulty:0,modifier:+2,icon:fas fa-dollar-sign]{ Appraise (2B)}

    Skill

    Appraise

    1 Penalty

    @coc7.check[type:skill,name:Appraise,difficulty:0,modifier:-1,icon:fas fa-dollar-sign]{ Appraise (1P)}

    Skill

    Appraise

    2 Penalty

    @coc7.check[type:skill,name:Appraise,difficulty:0,modifier:-2,icon:fas fa-dollar-sign]{ Appraise (2P)}

    Skill

    Archaeology

    Regular

    @coc7.check[type:skill,name:Archaeology,difficulty:0,modifier:0,icon:fas fa-archway]{ Archaeology}

    Skill

    Archaeology

    Hard

    @coc7.check[type:skill,name:Archaeology,difficulty:+,modifier:0,icon:fas fa-archway]{ Archaeology (Hard)}

    Skill

    Archaeology

    Extreme

    @coc7.check[type:skill,name:Archaeology,difficulty:++,modifier:0,icon:fas fa-archway]{ Archaeology (Extreme)}

    Skill

    Archaeology

    Critical

    @coc7.check[type:skill,name:Archaeology,difficulty:+++,modifier:0,icon:fas fa-archway]{ Archaeology (Critical)}

    Skill

    Archaeology

    Blind

    @coc7.check[type:skill,name:Archaeology,difficulty:?,modifier:0,icon:fas fa-archway]{ Archaeology (Blind)}

    Skill

    Archaeology

    1 Bonus

    @coc7.check[type:skill,name:Archaeology,difficulty:0,modifier:+1,icon:fas fa-archway]{ Archaeology (1B)}

    Skill

    Archaeology

    2 Bonus

    @coc7.check[type:skill,name:Archaeology,difficulty:0,modifier:+2,icon:fas fa-archway]{ Archaeology (2B)}

    Skill

    Archaeology

    1 Penalty

    @coc7.check[type:skill,name:Archaeology,difficulty:0,modifier:-1,icon:fas fa-archway]{ Archaeology (1P)}

    Skill

    Archaeology

    2 Penalty

    @coc7.check[type:skill,name:Archaeology,difficulty:0,modifier:-2,icon:fas fa-archway]{ Archaeology (2P)}

    Skill

    Art/Craft (Fine Art)

    Regular

    @coc7.check[type:skill,name:Art/Craft (Fine Art),difficulty:0,modifier:0,icon:fas fa-broom]{ Art/Craft (Fine Art)}

    Skill

    Art/Craft (Fine Art)

    Hard

    @coc7.check[type:skill,name:Art/Craft (Fine Art),difficulty:+,modifier:0,icon:fas fa-broom]{ Art/Craft (Fine Art) (Hard)}

    Skill

    Art/Craft (Fine Art)

    Extreme

    @coc7.check[type:skill,name:Art/Craft (Fine Art),difficulty:++,modifier:0,icon:fas fa-broom]{ Art/Craft (Fine Art) (Extreme)}

    Skill

    Art/Craft (Fine Art)

    Critical

    @coc7.check[type:skill,name:Art/Craft (Fine Art),difficulty:+++,modifier:0,icon:fas fa-broom]{ Art/Craft (Fine Art) (Critical)}

    Skill

    Art/Craft (Fine Art)

    Blind

    @coc7.check[type:skill,name:Art/Craft (Fine Art),difficulty:?,modifier:0,icon:fas fa-broom]{ Art/Craft (Fine Art) (Blind)}

    Skill

    Art/Craft (Fine Art)

    1 Bonus

    @coc7.check[type:skill,name:Art/Craft (Fine Art),difficulty:0,modifier:+1,icon:fas fa-broom]{ Art/Craft (Fine Art) (1B)}

    Skill

    Art/Craft (Fine Art)

    2 Bonus

    @coc7.check[type:skill,name:Art/Craft (Fine Art),difficulty:0,modifier:+2,icon:fas fa-broom]{ Art/Craft (Fine Art) (2B)}

    Skill

    Art/Craft (Fine Art)

    1 Penalty

    @coc7.check[type:skill,name:Art/Craft (Fine Art),difficulty:0,modifier:-1,icon:fas fa-broom]{ Art/Craft (Fine Art) (1P)}

    Skill

    Art/Craft (Fine Art)

    2 Penalty

    @coc7.check[type:skill,name:Art/Craft (Fine Art),difficulty:0,modifier:-2,icon:fas fa-broom]{ Art/Craft (Fine Art) (2P)}

    Skill

    Charm

    Regular

    @coc7.check[type:skill,name:Charm,difficulty:0,modifier:0,icon:fas fa-kiss-wink-heart]{ Charm}

    Skill

    Charm

    Hard

    @coc7.check[type:skill,name:Charm,difficulty:+,modifier:0,icon:fas fa-kiss-wink-heart]{ Charm (Hard)}

    Skill

    Charm

    Extreme

    @coc7.check[type:skill,name:Charm,difficulty:++,modifier:0,icon:fas fa-kiss-wink-heart]{ Charm (Extreme)}

    Skill

    Charm

    Critical

    @coc7.check[type:skill,name:Charm,difficulty:+++,modifier:0,icon:fas fa-kiss-wink-heart]{ Charm (Critical)}

    Skill

    Charm

    Blind

    @coc7.check[type:skill,name:Charm,difficulty:?,modifier:0,icon:fas fa-kiss-wink-heart]{ Charm (Blind)}

    Skill

    Charm

    1 Bonus

    @coc7.check[type:skill,name:Charm,difficulty:0,modifier:+1,icon:fas fa-kiss-wink-heart]{ Charm (1B)}

    Skill

    Charm

    2 Bonus

    @coc7.check[type:skill,name:Charm,difficulty:0,modifier:+2,icon:fas fa-kiss-wink-heart]{ Charm (2B)}

    Skill

    Charm

    1 Penalty

    @coc7.check[type:skill,name:Charm,difficulty:0,modifier:-1,icon:fas fa-kiss-wink-heart]{ Charm (1P)}

    Skill

    Charm

    2 Penalty

    @coc7.check[type:skill,name:Charm,difficulty:0,modifier:-2,icon:fas fa-kiss-wink-heart]{ Charm (2P)}

    Skill

    Climb

    Regular

    @coc7.check[type:skill,name:Climb,difficulty:0,modifier:0,icon:fas fa-hiking]{ Climb}

    Skill

    Climb

    Hard

    @coc7.check[type:skill,name:Climb,difficulty:+,modifier:0,icon:fas fa-hiking]{ Climb (Hard)}

    Skill

    Climb

    Extreme

    @coc7.check[type:skill,name:Climb,difficulty:++,modifier:0,icon:fas fa-hiking]{ Climb (Extreme)}

    Skill

    Climb

    Critical

    @coc7.check[type:skill,name:Climb,difficulty:+++,modifier:0,icon:fas fa-hiking]{ Climb (Critical)}

    Skill

    Climb

    Blind

    @coc7.check[type:skill,name:Climb,difficulty:?,modifier:0,icon:fas fa-hiking]{ Climb (Blind)}

    Skill

    Climb

    1 Bonus

    @coc7.check[type:skill,name:Climb,difficulty:0,modifier:+1,icon:fas fa-hiking]{ Climb (1B)}

    Skill

    Climb

    2 Bonus

    @coc7.check[type:skill,name:Climb,difficulty:0,modifier:+2,icon:fas fa-hiking]{ Climb (2B)}

    Skill

    Climb

    1 Penalty

    @coc7.check[type:skill,name:Climb,difficulty:0,modifier:-1,icon:fas fa-hiking]{ Climb (1P)}

    Skill

    Climb

    2 Penalty

    @coc7.check[type:skill,name:Climb,difficulty:0,modifier:-2,icon:fas fa-hiking]{ Climb (2P)}

    Skill

    Computer Use

    Regular

    @coc7.check[type:skill,name:Computer Use,difficulty:0,modifier:0,icon:fas fa-mouse]{ Computer Use}

    Skill

    Computer Use

    Hard

    @coc7.check[type:skill,name:Computer Use,difficulty:+,modifier:0,icon:fas fa-mouse]{ Computer Use (Hard)}

    Skill

    Computer Use

    Extreme

    @coc7.check[type:skill,name:Computer Use,difficulty:++,modifier:0,icon:fas fa-mouse]{ Computer Use (Extreme)}

    Skill

    Computer Use

    Critical

    @coc7.check[type:skill,name:Computer Use,difficulty:+++,modifier:0,icon:fas fa-mouse]{ Computer Use (Critical)}

    Skill

    Computer Use

    Blind

    @coc7.check[type:skill,name:Computer Use,difficulty:?,modifier:0,icon:fas fa-mouse]{ Computer Use (Blind)}

    Skill

    Computer Use

    1 Bonus

    @coc7.check[type:skill,name:Computer Use,difficulty:0,modifier:+1,icon:fas fa-mouse]{ Computer Use (1B)}

    Skill

    Computer Use

    2 Bonus

    @coc7.check[type:skill,name:Computer Use,difficulty:0,modifier:+2,icon:fas fa-mouse]{ Computer Use (2B)}

    Skill

    Computer Use

    1 Penalty

    @coc7.check[type:skill,name:Computer Use,difficulty:0,modifier:-1,icon:fas fa-mouse]{ Computer Use (1P)}

    Skill

    Computer Use

    2 Penalty

    @coc7.check[type:skill,name:Computer Use,difficulty:0,modifier:-2,icon:fas fa-mouse]{ Computer Use (2P)}

    Skill

    Credit Rating

    Regular

    @coc7.check[type:skill,name:Credit Rating,difficulty:0,modifier:0,icon:fas fa-award]{ Credit Rating}

    Skill

    Credit Rating

    Hard

    @coc7.check[type:skill,name:Credit Rating,difficulty:+,modifier:0,icon:fas fa-award]{ Credit Rating (Hard)}

    Skill

    Credit Rating

    Extreme

    @coc7.check[type:skill,name:Credit Rating,difficulty:++,modifier:0,icon:fas fa-award]{ Credit Rating (Extreme)}

    Skill

    Credit Rating

    Critical

    @coc7.check[type:skill,name:Credit Rating,difficulty:+++,modifier:0,icon:fas fa-award]{ Credit Rating (Critical)}

    Skill

    Credit Rating

    Blind

    @coc7.check[type:skill,name:Credit Rating,difficulty:?,modifier:0,icon:fas fa-award]{ Credit Rating (Blind)}

    Skill

    Credit Rating

    1 Bonus

    @coc7.check[type:skill,name:Credit Rating,difficulty:0,modifier:+1,icon:fas fa-award]{ Credit Rating (1B)}

    Skill

    Credit Rating

    2 Bonus

    @coc7.check[type:skill,name:Credit Rating,difficulty:0,modifier:+2,icon:fas fa-award]{ Credit Rating (2B)}

    Skill

    Credit Rating

    1 Penalty

    @coc7.check[type:skill,name:Credit Rating,difficulty:0,modifier:-1,icon:fas fa-award]{ Credit Rating (1P)}

    Skill

    Credit Rating

    2 Penalty

    @coc7.check[type:skill,name:Credit Rating,difficulty:0,modifier:-2,icon:fas fa-award]{ Credit Rating (2P)}

    Skill

    Cthulhu Mythos

    Regular

    @coc7.check[type:skill,name:Cthulhu Mythos,difficulty:0,modifier:0,icon:fab fa-gitkraken]{ Cthulhu Mythos}

    Skill

    Cthulhu Mythos

    Hard

    @coc7.check[type:skill,name:Cthulhu Mythos,difficulty:+,modifier:0,icon:fab fa-gitkraken]{ Cthulhu Mythos (Hard)}

    Skill

    Cthulhu Mythos

    Extreme

    @coc7.check[type:skill,name:Cthulhu Mythos,difficulty:++,modifier:0,icon:fab fa-gitkraken]{ Cthulhu Mythos (Extreme)}

    Skill

    Cthulhu Mythos

    Critical

    @coc7.check[type:skill,name:Cthulhu Mythos,difficulty:+++,modifier:0,icon:fab fa-gitkraken]{ Cthulhu Mythos (Critical)}

    Skill

    Cthulhu Mythos

    Blind

    @coc7.check[type:skill,name:Cthulhu Mythos,difficulty:?,modifier:0,icon:fab fa-gitkraken]{ Cthulhu Mythos (Blind)}

    Skill

    Cthulhu Mythos

    1 Bonus

    @coc7.check[type:skill,name:Cthulhu Mythos,difficulty:0,modifier:+1,icon:fab fa-gitkraken]{ Cthulhu Mythos (1B)}

    Skill

    Cthulhu Mythos

    2 Bonus

    @coc7.check[type:skill,name:Cthulhu Mythos,difficulty:0,modifier:+2,icon:fab fa-gitkraken]{ Cthulhu Mythos (2B)}

    Skill

    Cthulhu Mythos

    1 Penalty

    @coc7.check[type:skill,name:Cthulhu Mythos,difficulty:0,modifier:-1,icon:fab fa-gitkraken]{ Cthulhu Mythos (1P)}

    Skill

    Cthulhu Mythos

    2 Penalty

    @coc7.check[type:skill,name:Cthulhu Mythos,difficulty:0,modifier:-2,icon:fab fa-gitkraken]{ Cthulhu Mythos (2P)}

    Skill

    Demolitions

    Regular

    @coc7.check[type:skill,name:Demolitions,difficulty:0,modifier:0,icon:fas fa-bomb]{ Demolitions}

    Skill

    Demolitions

    Hard

    @coc7.check[type:skill,name:Demolitions,difficulty:+,modifier:0,icon:fas fa-bomb]{ Demolitions (Hard)}

    Skill

    Demolitions

    Extreme

    @coc7.check[type:skill,name:Demolitions,difficulty:++,modifier:0,icon:fas fa-bomb]{ Demolitions (Extreme)}

    Skill

    Demolitions

    Critical

    @coc7.check[type:skill,name:Demolitions,difficulty:+++,modifier:0,icon:fas fa-bomb]{ Demolitions (Critical)}

    Skill

    Demolitions

    Blind

    @coc7.check[type:skill,name:Demolitions,difficulty:?,modifier:0,icon:fas fa-bomb]{ Demolitions (Blind)}

    Skill

    Demolitions

    1 Bonus

    @coc7.check[type:skill,name:Demolitions,difficulty:0,modifier:+1,icon:fas fa-bomb]{ Demolitions (1B)}

    Skill

    Demolitions

    2 Bonus

    @coc7.check[type:skill,name:Demolitions,difficulty:0,modifier:+2,icon:fas fa-bomb]{ Demolitions (2B)}

    Skill

    Demolitions

    1 Penalty

    @coc7.check[type:skill,name:Demolitions,difficulty:0,modifier:-1,icon:fas fa-bomb]{ Demolitions (1P)}

    Skill

    Demolitions

    2 Penalty

    @coc7.check[type:skill,name:Demolitions,difficulty:0,modifier:-2,icon:fas fa-bomb]{ Demolitions (2P)}

    Skill

    Disguise

    Regular

    @coc7.check[type:skill,name:Disguise,difficulty:0,modifier:0,icon:fas fa-user-secret]{ Disguise}

    Skill

    Disguise

    Hard

    @coc7.check[type:skill,name:Disguise,difficulty:+,modifier:0,icon:fas fa-user-secret]{ Disguise (Hard)}

    Skill

    Disguise

    Extreme

    @coc7.check[type:skill,name:Disguise,difficulty:++,modifier:0,icon:fas fa-user-secret]{ Disguise (Extreme)}

    Skill

    Disguise

    Critical

    @coc7.check[type:skill,name:Disguise,difficulty:+++,modifier:0,icon:fas fa-user-secret]{ Disguise (Critical)}

    Skill

    Disguise

    Blind

    @coc7.check[type:skill,name:Disguise,difficulty:?,modifier:0,icon:fas fa-user-secret]{ Disguise (Blind)}

    Skill

    Disguise

    1 Bonus

    @coc7.check[type:skill,name:Disguise,difficulty:0,modifier:+1,icon:fas fa-user-secret]{ Disguise (1B)}

    Skill

    Disguise

    2 Bonus

    @coc7.check[type:skill,name:Disguise,difficulty:0,modifier:+2,icon:fas fa-user-secret]{ Disguise (2B)}

    Skill

    Disguise

    1 Penalty

    @coc7.check[type:skill,name:Disguise,difficulty:0,modifier:-1,icon:fas fa-user-secret]{ Disguise (1P)}

    Skill

    Disguise

    2 Penalty

    @coc7.check[type:skill,name:Disguise,difficulty:0,modifier:-2,icon:fas fa-user-secret]{ Disguise (2P)}

    Skill

    Diving

    Regular

    @coc7.check[type:skill,name:Diving,difficulty:0,modifier:0,icon:fas fa-user-astronaut]{ Diving}

    Skill

    Diving

    Hard

    @coc7.check[type:skill,name:Diving,difficulty:+,modifier:0,icon:fas fa-user-astronaut]{ Diving (Hard)}

    Skill

    Diving

    Extreme

    @coc7.check[type:skill,name:Diving,difficulty:++,modifier:0,icon:fas fa-user-astronaut]{ Diving (Extreme)}

    Skill

    Diving

    Critical

    @coc7.check[type:skill,name:Diving,difficulty:+++,modifier:0,icon:fas fa-user-astronaut]{ Diving (Critical)}

    Skill

    Diving

    Blind

    @coc7.check[type:skill,name:Diving,difficulty:?,modifier:0,icon:fas fa-user-astronaut]{ Diving (Blind)}

    Skill

    Diving

    1 Bonus

    @coc7.check[type:skill,name:Diving,difficulty:0,modifier:+1,icon:fas fa-user-astronaut]{ Diving (1B)}

    Skill

    Diving

    2 Bonus

    @coc7.check[type:skill,name:Diving,difficulty:0,modifier:+2,icon:fas fa-user-astronaut]{ Diving (2B)}

    Skill

    Diving

    1 Penalty

    @coc7.check[type:skill,name:Diving,difficulty:0,modifier:-1,icon:fas fa-user-astronaut]{ Diving (1P)}

    Skill

    Diving

    2 Penalty

    @coc7.check[type:skill,name:Diving,difficulty:0,modifier:-2,icon:fas fa-user-astronaut]{ Diving (2P)}

    Skill

    Dodge

    Regular

    @coc7.check[type:skill,name:Dodge,difficulty:0,modifier:0,icon:fas fa-running]{ Dodge}

    Skill

    Dodge

    Hard

    @coc7.check[type:skill,name:Dodge,difficulty:+,modifier:0,icon:fas fa-running]{ Dodge (Hard)}

    Skill

    Dodge

    Extreme

    @coc7.check[type:skill,name:Dodge,difficulty:++,modifier:0,icon:fas fa-running]{ Dodge (Extreme)}

    Skill

    Dodge

    Critical

    @coc7.check[type:skill,name:Dodge,difficulty:+++,modifier:0,icon:fas fa-running]{ Dodge (Critical)}

    Skill

    Dodge

    Blind

    @coc7.check[type:skill,name:Dodge,difficulty:?,modifier:0,icon:fas fa-running]{ Dodge (Blind)}

    Skill

    Dodge

    1 Bonus

    @coc7.check[type:skill,name:Dodge,difficulty:0,modifier:+1,icon:fas fa-running]{ Dodge (1B)}

    Skill

    Dodge

    2 Bonus

    @coc7.check[type:skill,name:Dodge,difficulty:0,modifier:+2,icon:fas fa-running]{ Dodge (2B)}

    Skill

    Dodge

    1 Penalty

    @coc7.check[type:skill,name:Dodge,difficulty:0,modifier:-1,icon:fas fa-running]{ Dodge (1P)}

    Skill

    Dodge

    2 Penalty

    @coc7.check[type:skill,name:Dodge,difficulty:0,modifier:-2,icon:fas fa-running]{ Dodge (2P)}

    Skill

    Drive Auto

    Regular

    @coc7.check[type:skill,name:Drive Auto,difficulty:0,modifier:0,icon:fas fa-car-side]{ Drive Auto}

    Skill

    Drive Auto

    Hard

    @coc7.check[type:skill,name:Drive Auto,difficulty:+,modifier:0,icon:fas fa-car-side]{ Drive Auto (Hard)}

    Skill

    Drive Auto

    Extreme

    @coc7.check[type:skill,name:Drive Auto,difficulty:++,modifier:0,icon:fas fa-car-side]{ Drive Auto (Extreme)}

    Skill

    Drive Auto

    Critical

    @coc7.check[type:skill,name:Drive Auto,difficulty:+++,modifier:0,icon:fas fa-car-side]{ Drive Auto (Critical)}

    Skill

    Drive Auto

    Blind

    @coc7.check[type:skill,name:Drive Auto,difficulty:?,modifier:0,icon:fas fa-car-side]{ Drive Auto (Blind)}

    Skill

    Drive Auto

    1 Bonus

    @coc7.check[type:skill,name:Drive Auto,difficulty:0,modifier:+1,icon:fas fa-car-side]{ Drive Auto (1B)}

    Skill

    Drive Auto

    2 Bonus

    @coc7.check[type:skill,name:Drive Auto,difficulty:0,modifier:+2,icon:fas fa-car-side]{ Drive Auto (2B)}

    Skill

    Drive Auto

    1 Penalty

    @coc7.check[type:skill,name:Drive Auto,difficulty:0,modifier:-1,icon:fas fa-car-side]{ Drive Auto (1P)}

    Skill

    Drive Auto

    2 Penalty

    @coc7.check[type:skill,name:Drive Auto,difficulty:0,modifier:-2,icon:fas fa-car-side]{ Drive Auto (2P)}

    Skill

    Electrical Repair

    Regular

    @coc7.check[type:skill,name:Electrical Repair,difficulty:0,modifier:0,icon:fas fa-bolt]{ Electrical Repair}

    Skill

    Electrical Repair

    Hard

    @coc7.check[type:skill,name:Electrical Repair,difficulty:+,modifier:0,icon:fas fa-bolt]{ Electrical Repair (Hard)}

    Skill

    Electrical Repair

    Extreme

    @coc7.check[type:skill,name:Electrical Repair,difficulty:++,modifier:0,icon:fas fa-bolt]{ Electrical Repair (Extreme)}

    Skill

    Electrical Repair

    Critical

    @coc7.check[type:skill,name:Electrical Repair,difficulty:+++,modifier:0,icon:fas fa-bolt]{ Electrical Repair (Critical)}

    Skill

    Electrical Repair

    Blind

    @coc7.check[type:skill,name:Electrical Repair,difficulty:?,modifier:0,icon:fas fa-bolt]{ Electrical Repair (Blind)}

    Skill

    Electrical Repair

    1 Bonus

    @coc7.check[type:skill,name:Electrical Repair,difficulty:0,modifier:+1,icon:fas fa-bolt]{ Electrical Repair (1B)}

    Skill

    Electrical Repair

    2 Bonus

    @coc7.check[type:skill,name:Electrical Repair,difficulty:0,modifier:+2,icon:fas fa-bolt]{ Electrical Repair (2B)}

    Skill

    Electrical Repair

    1 Penalty

    @coc7.check[type:skill,name:Electrical Repair,difficulty:0,modifier:-1,icon:fas fa-bolt]{ Electrical Repair (1P)}

    Skill

    Electrical Repair

    2 Penalty

    @coc7.check[type:skill,name:Electrical Repair,difficulty:0,modifier:-2,icon:fas fa-bolt]{ Electrical Repair (2P)}

    Skill

    Electronics

    Regular

    @coc7.check[type:skill,name:Electronics,difficulty:0,modifier:0,icon:fas fa-microchip]{ Electronics}

    Skill

    Electronics

    Hard

    @coc7.check[type:skill,name:Electronics,difficulty:+,modifier:0,icon:fas fa-microchip]{ Electronics (Hard)}

    Skill

    Electronics

    Extreme

    @coc7.check[type:skill,name:Electronics,difficulty:++,modifier:0,icon:fas fa-microchip]{ Electronics (Extreme)}

    Skill

    Electronics

    Critical

    @coc7.check[type:skill,name:Electronics,difficulty:+++,modifier:0,icon:fas fa-microchip]{ Electronics (Critical)}

    Skill

    Electronics

    Blind

    @coc7.check[type:skill,name:Electronics,difficulty:?,modifier:0,icon:fas fa-microchip]{ Electronics (Blind)}

    Skill

    Electronics

    1 Bonus

    @coc7.check[type:skill,name:Electronics,difficulty:0,modifier:+1,icon:fas fa-microchip]{ Electronics (1B)}

    Skill

    Electronics

    2 Bonus

    @coc7.check[type:skill,name:Electronics,difficulty:0,modifier:+2,icon:fas fa-microchip]{ Electronics (2B)}

    Skill

    Electronics

    1 Penalty

    @coc7.check[type:skill,name:Electronics,difficulty:0,modifier:-1,icon:fas fa-microchip]{ Electronics (1P)}

    Skill

    Electronics

    2 Penalty

    @coc7.check[type:skill,name:Electronics,difficulty:0,modifier:-2,icon:fas fa-microchip]{ Electronics (2P)}

    Skill

    Fast Talk

    Regular

    @coc7.check[type:skill,name:Fast Talk,difficulty:0,modifier:0,icon:fas fa-dizzy]{ Fast Talk}

    Skill

    Fast Talk

    Hard

    @coc7.check[type:skill,name:Fast Talk,difficulty:+,modifier:0,icon:fas fa-dizzy]{ Fast Talk (Hard)}

    Skill

    Fast Talk

    Extreme

    @coc7.check[type:skill,name:Fast Talk,difficulty:++,modifier:0,icon:fas fa-dizzy]{ Fast Talk (Extreme)}

    Skill

    Fast Talk

    Critical

    @coc7.check[type:skill,name:Fast Talk,difficulty:+++,modifier:0,icon:fas fa-dizzy]{ Fast Talk (Critical)}

    Skill

    Fast Talk

    Blind

    @coc7.check[type:skill,name:Fast Talk,difficulty:?,modifier:0,icon:fas fa-dizzy]{ Fast Talk (Blind)}

    Skill

    Fast Talk

    1 Bonus

    @coc7.check[type:skill,name:Fast Talk,difficulty:0,modifier:+1,icon:fas fa-dizzy]{ Fast Talk (1B)}

    Skill

    Fast Talk

    2 Bonus

    @coc7.check[type:skill,name:Fast Talk,difficulty:0,modifier:+2,icon:fas fa-dizzy]{ Fast Talk (2B)}

    Skill

    Fast Talk

    1 Penalty

    @coc7.check[type:skill,name:Fast Talk,difficulty:0,modifier:-1,icon:fas fa-dizzy]{ Fast Talk (1P)}

    Skill

    Fast Talk

    2 Penalty

    @coc7.check[type:skill,name:Fast Talk,difficulty:0,modifier:-2,icon:fas fa-dizzy]{ Fast Talk (2P)}

    Skill

    Fighting (Brawl)

    Regular

    @coc7.check[type:skill,name:Fighting (Brawl),difficulty:0,modifier:0,icon:fas fa-fist-raised]{ Fighting (Brawl)}

    Skill

    Fighting (Brawl)

    Hard

    @coc7.check[type:skill,name:Fighting (Brawl),difficulty:+,modifier:0,icon:fas fa-fist-raised]{ Fighting (Brawl) (Hard)}

    Skill

    Fighting (Brawl)

    Extreme

    @coc7.check[type:skill,name:Fighting (Brawl),difficulty:++,modifier:0,icon:fas fa-fist-raised]{ Fighting (Brawl) (Extreme)}

    Skill

    Fighting (Brawl)

    Critical

    @coc7.check[type:skill,name:Fighting (Brawl),difficulty:+++,modifier:0,icon:fas fa-fist-raised]{ Fighting (Brawl) (Critical)}

    Skill

    Fighting (Brawl)

    Blind

    @coc7.check[type:skill,name:Fighting (Brawl),difficulty:?,modifier:0,icon:fas fa-fist-raised]{ Fighting (Brawl) (Blind)}

    Skill

    Fighting (Brawl)

    1 Bonus

    @coc7.check[type:skill,name:Fighting (Brawl),difficulty:0,modifier:+1,icon:fas fa-fist-raised]{ Fighting (Brawl) (1B)}

    Skill

    Fighting (Brawl)

    2 Bonus

    @coc7.check[type:skill,name:Fighting (Brawl),difficulty:0,modifier:+2,icon:fas fa-fist-raised]{ Fighting (Brawl) (2B)}

    Skill

    Fighting (Brawl)

    1 Penalty

    @coc7.check[type:skill,name:Fighting (Brawl),difficulty:0,modifier:-1,icon:fas fa-fist-raised]{ Fighting (Brawl) (1P)}

    Skill

    Fighting (Brawl)

    2 Penalty

    @coc7.check[type:skill,name:Fighting (Brawl),difficulty:0,modifier:-2,icon:fas fa-fist-raised]{ Fighting (Brawl) (2P)}

    Skill

    Firearms (Handgun)

    Regular

    @coc7.check[type:skill,name:Firearms (Handgun),difficulty:0,modifier:0,icon:fas fa-bullseye]{ Firearms (Handgun)}

    Skill

    Firearms (Handgun)

    Hard

    @coc7.check[type:skill,name:Firearms (Handgun),difficulty:+,modifier:0,icon:fas fa-bullseye]{ Firearms (Handgun) (Hard)}

    Skill

    Firearms (Handgun)

    Extreme

    @coc7.check[type:skill,name:Firearms (Handgun),difficulty:++,modifier:0,icon:fas fa-bullseye]{ Firearms (Handgun) (Extreme)}

    Skill

    Firearms (Handgun)

    Critical

    @coc7.check[type:skill,name:Firearms (Handgun),difficulty:+++,modifier:0,icon:fas fa-bullseye]{ Firearms (Handgun) (Critical)}

    Skill

    Firearms (Handgun)

    Blind

    @coc7.check[type:skill,name:Firearms (Handgun),difficulty:?,modifier:0,icon:fas fa-bullseye]{ Firearms (Handgun) (Blind)}

    Skill

    Firearms (Handgun)

    1 Bonus

    @coc7.check[type:skill,name:Firearms (Handgun),difficulty:0,modifier:+1,icon:fas fa-bullseye]{ Firearms (Handgun) (1B)}

    Skill

    Firearms (Handgun)

    2 Bonus

    @coc7.check[type:skill,name:Firearms (Handgun),difficulty:0,modifier:+2,icon:fas fa-bullseye]{ Firearms (Handgun) (2B)}

    Skill

    Firearms (Handgun)

    1 Penalty

    @coc7.check[type:skill,name:Firearms (Handgun),difficulty:0,modifier:-1,icon:fas fa-bullseye]{ Firearms (Handgun) (1P)}

    Skill

    Firearms (Handgun)

    2 Penalty

    @coc7.check[type:skill,name:Firearms (Handgun),difficulty:0,modifier:-2,icon:fas fa-bullseye]{ Firearms (Handgun) (2P)}

    Skill

    Firearms (Rifle/Shotgun)

    Regular

    @coc7.check[type:skill,name:Firearms (Rifle/Shotgun),difficulty:0,modifier:0,icon:fas fa-crosshairs]{ Firearms (Rifle/Shotgun)}

    Skill

    Firearms (Rifle/Shotgun)

    Hard

    @coc7.check[type:skill,name:Firearms (Rifle/Shotgun),difficulty:+,modifier:0,icon:fas fa-crosshairs]{ Firearms (Rifle/Shotgun) (Hard)}

    Skill

    Firearms (Rifle/Shotgun)

    Extreme

    @coc7.check[type:skill,name:Firearms (Rifle/Shotgun),difficulty:++,modifier:0,icon:fas fa-crosshairs]{ Firearms (Rifle/Shotgun) (Extreme)}

    Skill

    Firearms (Rifle/Shotgun)

    Critical

    @coc7.check[type:skill,name:Firearms (Rifle/Shotgun),difficulty:+++,modifier:0,icon:fas fa-crosshairs]{ Firearms (Rifle/Shotgun) (Critical)}

    Skill

    Firearms (Rifle/Shotgun)

    Blind

    @coc7.check[type:skill,name:Firearms (Rifle/Shotgun),difficulty:?,modifier:0,icon:fas fa-crosshairs]{ Firearms (Rifle/Shotgun) (Blind)}

    Skill

    Firearms (Rifle/Shotgun)

    1 Bonus

    @coc7.check[type:skill,name:Firearms (Rifle/Shotgun),difficulty:0,modifier:+1,icon:fas fa-crosshairs]{ Firearms (Rifle/Shotgun) (1B)}

    Skill

    Firearms (Rifle/Shotgun)

    2 Bonus

    @coc7.check[type:skill,name:Firearms (Rifle/Shotgun),difficulty:0,modifier:+2,icon:fas fa-crosshairs]{ Firearms (Rifle/Shotgun) (2B)}

    Skill

    Firearms (Rifle/Shotgun)

    1 Penalty

    @coc7.check[type:skill,name:Firearms (Rifle/Shotgun),difficulty:0,modifier:-1,icon:fas fa-crosshairs]{ Firearms (Rifle/Shotgun) (1P)}

    Skill

    Firearms (Rifle/Shotgun)

    2 Penalty

    @coc7.check[type:skill,name:Firearms (Rifle/Shotgun),difficulty:0,modifier:-2,icon:fas fa-crosshairs]{ Firearms (Rifle/Shotgun) (2P)}

    Skill

    Firearms (Submachine Gun)

    Regular

    @coc7.check[type:skill,name:Firearms (Submachine Gun),difficulty:0,modifier:0,icon:far fa-dot-circle]{ Firearms (Submachine Gun)}

    Skill

    Firearms (Submachine Gun)

    Hard

    @coc7.check[type:skill,name:Firearms (Submachine Gun),difficulty:+,modifier:0,icon:far fa-dot-circle]{ Firearms (Submachine Gun) (Hard)}

    Skill

    Firearms (Submachine Gun)

    Extreme

    @coc7.check[type:skill,name:Firearms (Submachine Gun),difficulty:++,modifier:0,icon:far fa-dot-circle]{ Firearms (Submachine Gun) (Extreme)}

    Skill

    Firearms (Submachine Gun)

    Critical

    @coc7.check[type:skill,name:Firearms (Submachine Gun),difficulty:+++,modifier:0,icon:far fa-dot-circle]{ Firearms (Submachine Gun) (Critical)}

    Skill

    Firearms (Submachine Gun)

    Blind

    @coc7.check[type:skill,name:Firearms (Submachine Gun),difficulty:?,modifier:0,icon:far fa-dot-circle]{ Firearms (Submachine Gun) (Blind)}

    Skill

    Firearms (Submachine Gun)

    1 Bonus

    @coc7.check[type:skill,name:Firearms (Submachine Gun),difficulty:0,modifier:+1,icon:far fa-dot-circle]{ Firearms (Submachine Gun) (1B)}

    Skill

    Firearms (Submachine Gun)

    2 Bonus

    @coc7.check[type:skill,name:Firearms (Submachine Gun),difficulty:0,modifier:+2,icon:far fa-dot-circle]{ Firearms (Submachine Gun) (2B)}

    Skill

    Firearms (Submachine Gun)

    1 Penalty

    @coc7.check[type:skill,name:Firearms (Submachine Gun),difficulty:0,modifier:-1,icon:far fa-dot-circle]{ Firearms (Submachine Gun) (1P)}

    Skill

    Firearms (Submachine Gun)

    2 Penalty

    @coc7.check[type:skill,name:Firearms (Submachine Gun),difficulty:0,modifier:-2,icon:far fa-dot-circle]{ Firearms (Submachine Gun) (2P)}

    Skill

    First Aid

    Regular

    @coc7.check[type:skill,name:First Aid,difficulty:0,modifier:0,icon:fas fa-medkit]{ First Aid}

    Skill

    First Aid

    Hard

    @coc7.check[type:skill,name:First Aid,difficulty:+,modifier:0,icon:fas fa-medkit]{ First Aid (Hard)}

    Skill

    First Aid

    Extreme

    @coc7.check[type:skill,name:First Aid,difficulty:++,modifier:0,icon:fas fa-medkit]{ First Aid (Extreme)}

    Skill

    First Aid

    Critical

    @coc7.check[type:skill,name:First Aid,difficulty:+++,modifier:0,icon:fas fa-medkit]{ First Aid (Critical)}

    Skill

    First Aid

    Blind

    @coc7.check[type:skill,name:First Aid,difficulty:?,modifier:0,icon:fas fa-medkit]{ First Aid (Blind)}

    Skill

    First Aid

    1 Bonus

    @coc7.check[type:skill,name:First Aid,difficulty:0,modifier:+1,icon:fas fa-medkit]{ First Aid (1B)}

    Skill

    First Aid

    2 Bonus

    @coc7.check[type:skill,name:First Aid,difficulty:0,modifier:+2,icon:fas fa-medkit]{ First Aid (2B)}

    Skill

    First Aid

    1 Penalty

    @coc7.check[type:skill,name:First Aid,difficulty:0,modifier:-1,icon:fas fa-medkit]{ First Aid (1P)}

    Skill

    First Aid

    2 Penalty

    @coc7.check[type:skill,name:First Aid,difficulty:0,modifier:-2,icon:fas fa-medkit]{ First Aid (2P)}

    Skill

    History

    Regular

    @coc7.check[type:skill,name:History,difficulty:0,modifier:0,icon:fas fa-heading]{ History}

    Skill

    History

    Hard

    @coc7.check[type:skill,name:History,difficulty:+,modifier:0,icon:fas fa-heading]{ History (Hard)}

    Skill

    History

    Extreme

    @coc7.check[type:skill,name:History,difficulty:++,modifier:0,icon:fas fa-heading]{ History (Extreme)}

    Skill

    History

    Critical

    @coc7.check[type:skill,name:History,difficulty:+++,modifier:0,icon:fas fa-heading]{ History (Critical)}

    Skill

    History

    Blind

    @coc7.check[type:skill,name:History,difficulty:?,modifier:0,icon:fas fa-heading]{ History (Blind)}

    Skill

    History

    1 Bonus

    @coc7.check[type:skill,name:History,difficulty:0,modifier:+1,icon:fas fa-heading]{ History (1B)}

    Skill

    History

    2 Bonus

    @coc7.check[type:skill,name:History,difficulty:0,modifier:+2,icon:fas fa-heading]{ History (2B)}

    Skill

    History

    1 Penalty

    @coc7.check[type:skill,name:History,difficulty:0,modifier:-1,icon:fas fa-heading]{ History (1P)}

    Skill

    History

    2 Penalty

    @coc7.check[type:skill,name:History,difficulty:0,modifier:-2,icon:fas fa-heading]{ History (2P)}

    Skill

    Intimidate

    Regular

    @coc7.check[type:skill,name:Intimidate,difficulty:0,modifier:0,icon:fas fa-tired]{ Intimidate}

    Skill

    Intimidate

    Hard

    @coc7.check[type:skill,name:Intimidate,difficulty:+,modifier:0,icon:fas fa-tired]{ Intimidate (Hard)}

    Skill

    Intimidate

    Extreme

    @coc7.check[type:skill,name:Intimidate,difficulty:++,modifier:0,icon:fas fa-tired]{ Intimidate (Extreme)}

    Skill

    Intimidate

    Critical

    @coc7.check[type:skill,name:Intimidate,difficulty:+++,modifier:0,icon:fas fa-tired]{ Intimidate (Critical)}

    Skill

    Intimidate

    Blind

    @coc7.check[type:skill,name:Intimidate,difficulty:?,modifier:0,icon:fas fa-tired]{ Intimidate (Blind)}

    Skill

    Intimidate

    1 Bonus

    @coc7.check[type:skill,name:Intimidate,difficulty:0,modifier:+1,icon:fas fa-tired]{ Intimidate (1B)}

    Skill

    Intimidate

    2 Bonus

    @coc7.check[type:skill,name:Intimidate,difficulty:0,modifier:+2,icon:fas fa-tired]{ Intimidate (2B)}

    Skill

    Intimidate

    1 Penalty

    @coc7.check[type:skill,name:Intimidate,difficulty:0,modifier:-1,icon:fas fa-tired]{ Intimidate (1P)}

    Skill

    Intimidate

    2 Penalty

    @coc7.check[type:skill,name:Intimidate,difficulty:0,modifier:-2,icon:fas fa-tired]{ Intimidate (2P)}

    Skill

    Jump

    Regular

    @coc7.check[type:skill,name:Jump,difficulty:0,modifier:0,icon:fas fa-walking]{ Jump}

    Skill

    Jump

    Hard

    @coc7.check[type:skill,name:Jump,difficulty:+,modifier:0,icon:fas fa-walking]{ Jump (Hard)}

    Skill

    Jump

    Extreme

    @coc7.check[type:skill,name:Jump,difficulty:++,modifier:0,icon:fas fa-walking]{ Jump (Extreme)}

    Skill

    Jump

    Critical

    @coc7.check[type:skill,name:Jump,difficulty:+++,modifier:0,icon:fas fa-walking]{ Jump (Critical)}

    Skill

    Jump

    Blind

    @coc7.check[type:skill,name:Jump,difficulty:?,modifier:0,icon:fas fa-walking]{ Jump (Blind)}

    Skill

    Jump

    1 Bonus

    @coc7.check[type:skill,name:Jump,difficulty:0,modifier:+1,icon:fas fa-walking]{ Jump (1B)}

    Skill

    Jump

    2 Bonus

    @coc7.check[type:skill,name:Jump,difficulty:0,modifier:+2,icon:fas fa-walking]{ Jump (2B)}

    Skill

    Jump

    1 Penalty

    @coc7.check[type:skill,name:Jump,difficulty:0,modifier:-1,icon:fas fa-walking]{ Jump (1P)}

    Skill

    Jump

    2 Penalty

    @coc7.check[type:skill,name:Jump,difficulty:0,modifier:-2,icon:fas fa-walking]{ Jump (2P)}

    Skill

    Language (Any)

    Regular

    @coc7.check[type:skill,name:Language (Any),difficulty:0,modifier:0,icon:fas fa-om]{ Language (Any)}

    Skill

    Language (Any)

    Hard

    @coc7.check[type:skill,name:Language (Any),difficulty:+,modifier:0,icon:fas fa-om]{ Language (Any) (Hard)}

    Skill

    Language (Any)

    Extreme

    @coc7.check[type:skill,name:Language (Any),difficulty:++,modifier:0,icon:fas fa-om]{ Language (Any) (Extreme)}

    Skill

    Language (Any)

    Critical

    @coc7.check[type:skill,name:Language (Any),difficulty:+++,modifier:0,icon:fas fa-om]{ Language (Any) (Critical)}

    Skill

    Language (Any)

    Blind

    @coc7.check[type:skill,name:Language (Any),difficulty:?,modifier:0,icon:fas fa-om]{ Language (Any) (Blind)}

    Skill

    Language (Any)

    1 Bonus

    @coc7.check[type:skill,name:Language (Any),difficulty:0,modifier:+1,icon:fas fa-om]{ Language (Any) (1B)}

    Skill

    Language (Any)

    2 Bonus

    @coc7.check[type:skill,name:Language (Any),difficulty:0,modifier:+2,icon:fas fa-om]{ Language (Any) (2B)}

    Skill

    Language (Any)

    1 Penalty

    @coc7.check[type:skill,name:Language (Any),difficulty:0,modifier:-1,icon:fas fa-om]{ Language (Any) (1P)}

    Skill

    Language (Any)

    2 Penalty

    @coc7.check[type:skill,name:Language (Any),difficulty:0,modifier:-2,icon:fas fa-om]{ Language (Any) (2P)}

    Skill

    Language (Own)

    Regular

    @coc7.check[type:skill,name:Language (Own),difficulty:0,modifier:0,icon:fas fa-globe]{ Language (Own)}

    Skill

    Language (Own)

    Hard

    @coc7.check[type:skill,name:Language (Own),difficulty:+,modifier:0,icon:fas fa-globe]{ Language (Own) (Hard)}

    Skill

    Language (Own)

    Extreme

    @coc7.check[type:skill,name:Language (Own),difficulty:++,modifier:0,icon:fas fa-globe]{ Language (Own) (Extreme)}

    Skill

    Language (Own)

    Critical

    @coc7.check[type:skill,name:Language (Own),difficulty:+++,modifier:0,icon:fas fa-globe]{ Language (Own) (Critical)}

    Skill

    Language (Own)

    Blind

    @coc7.check[type:skill,name:Language (Own),difficulty:?,modifier:0,icon:fas fa-globe]{ Language (Own) (Blind)}

    Skill

    Language (Own)

    1 Bonus

    @coc7.check[type:skill,name:Language (Own),difficulty:0,modifier:+1,icon:fas fa-globe]{ Language (Own) (1B)}

    Skill

    Language (Own)

    2 Bonus

    @coc7.check[type:skill,name:Language (Own),difficulty:0,modifier:+2,icon:fas fa-globe]{ Language (Own) (2B)}

    Skill

    Language (Own)

    1 Penalty

    @coc7.check[type:skill,name:Language (Own),difficulty:0,modifier:-1,icon:fas fa-globe]{ Language (Own) (1P)}

    Skill

    Language (Own)

    2 Penalty

    @coc7.check[type:skill,name:Language (Own),difficulty:0,modifier:-2,icon:fas fa-globe]{ Language (Own) (2P)}

    Skill

    Law

    Regular

    @coc7.check[type:skill,name:Law,difficulty:0,modifier:0,icon:fas fa-gavel]{ Law}

    Skill

    Law

    Hard

    @coc7.check[type:skill,name:Law,difficulty:+,modifier:0,icon:fas fa-gavel]{ Law (Hard)}

    Skill

    Law

    Extreme

    @coc7.check[type:skill,name:Law,difficulty:++,modifier:0,icon:fas fa-gavel]{ Law (Extreme)}

    Skill

    Law

    Critical

    @coc7.check[type:skill,name:Law,difficulty:+++,modifier:0,icon:fas fa-gavel]{ Law (Critical)}

    Skill

    Law

    Blind

    @coc7.check[type:skill,name:Law,difficulty:?,modifier:0,icon:fas fa-gavel]{ Law (Blind)}

    Skill

    Law

    1 Bonus

    @coc7.check[type:skill,name:Law,difficulty:0,modifier:+1,icon:fas fa-gavel]{ Law (1B)}

    Skill

    Law

    2 Bonus

    @coc7.check[type:skill,name:Law,difficulty:0,modifier:+2,icon:fas fa-gavel]{ Law (2B)}

    Skill

    Law

    1 Penalty

    @coc7.check[type:skill,name:Law,difficulty:0,modifier:-1,icon:fas fa-gavel]{ Law (1P)}

    Skill

    Law

    2 Penalty

    @coc7.check[type:skill,name:Law,difficulty:0,modifier:-2,icon:fas fa-gavel]{ Law (2P)}

    Skill

    Library Use

    Regular

    @coc7.check[type:skill,name:Library Use,difficulty:0,modifier:0,icon:fas fa-book-open]{ Library Use}

    Skill

    Library Use

    Hard

    @coc7.check[type:skill,name:Library Use,difficulty:+,modifier:0,icon:fas fa-book-open]{ Library Use (Hard)}

    Skill

    Library Use

    Extreme

    @coc7.check[type:skill,name:Library Use,difficulty:++,modifier:0,icon:fas fa-book-open]{ Library Use (Extreme)}

    Skill

    Library Use

    Critical

    @coc7.check[type:skill,name:Library Use,difficulty:+++,modifier:0,icon:fas fa-book-open]{ Library Use (Critical)}

    Skill

    Library Use

    Blind

    @coc7.check[type:skill,name:Library Use,difficulty:?,modifier:0,icon:fas fa-book-open]{ Library Use (Blind)}

    Skill

    Library Use

    1 Bonus

    @coc7.check[type:skill,name:Library Use,difficulty:0,modifier:+1,icon:fas fa-book-open]{ Library Use (1B)}

    Skill

    Library Use

    2 Bonus

    @coc7.check[type:skill,name:Library Use,difficulty:0,modifier:+2,icon:fas fa-book-open]{ Library Use (2B)}

    Skill

    Library Use

    1 Penalty

    @coc7.check[type:skill,name:Library Use,difficulty:0,modifier:-1,icon:fas fa-book-open]{ Library Use (1P)}

    Skill

    Library Use

    2 Penalty

    @coc7.check[type:skill,name:Library Use,difficulty:0,modifier:-2,icon:fas fa-book-open]{ Library Use (2P)}

    Skill

    Listen

    Regular

    @coc7.check[type:skill,name:Listen,difficulty:0,modifier:0,icon:fas fa-deaf]{ Listen}

    Skill

    Listen

    Hard

    @coc7.check[type:skill,name:Listen,difficulty:+,modifier:0,icon:fas fa-deaf]{ Listen (Hard)}

    Skill

    Listen

    Extreme

    @coc7.check[type:skill,name:Listen,difficulty:++,modifier:0,icon:fas fa-deaf]{ Listen (Extreme)}

    Skill

    Listen

    Critical

    @coc7.check[type:skill,name:Listen,difficulty:+++,modifier:0,icon:fas fa-deaf]{ Listen (Critical)}

    Skill

    Listen

    Blind

    @coc7.check[type:skill,name:Listen,difficulty:?,modifier:0,icon:fas fa-deaf]{ Listen (Blind)}

    Skill

    Listen

    1 Bonus

    @coc7.check[type:skill,name:Listen,difficulty:0,modifier:+1,icon:fas fa-deaf]{ Listen (1B)}

    Skill

    Listen

    2 Bonus

    @coc7.check[type:skill,name:Listen,difficulty:0,modifier:+2,icon:fas fa-deaf]{ Listen (2B)}

    Skill

    Listen

    1 Penalty

    @coc7.check[type:skill,name:Listen,difficulty:0,modifier:-1,icon:fas fa-deaf]{ Listen (1P)}

    Skill

    Listen

    2 Penalty

    @coc7.check[type:skill,name:Listen,difficulty:0,modifier:-2,icon:fas fa-deaf]{ Listen (2P)}

    Skill

    Locksmith

    Regular

    @coc7.check[type:skill,name:Locksmith,difficulty:0,modifier:0,icon:fab fa-expeditedssl]{ Locksmith}

    Skill

    Locksmith

    Hard

    @coc7.check[type:skill,name:Locksmith,difficulty:+,modifier:0,icon:fab fa-expeditedssl]{ Locksmith (Hard)}

    Skill

    Locksmith

    Extreme

    @coc7.check[type:skill,name:Locksmith,difficulty:++,modifier:0,icon:fab fa-expeditedssl]{ Locksmith (Extreme)}

    Skill

    Locksmith

    Critical

    @coc7.check[type:skill,name:Locksmith,difficulty:+++,modifier:0,icon:fab fa-expeditedssl]{ Locksmith (Critical)}

    Skill

    Locksmith

    Blind

    @coc7.check[type:skill,name:Locksmith,difficulty:?,modifier:0,icon:fab fa-expeditedssl]{ Locksmith (Blind)}

    Skill

    Locksmith

    1 Bonus

    @coc7.check[type:skill,name:Locksmith,difficulty:0,modifier:+1,icon:fab fa-expeditedssl]{ Locksmith (1B)}

    Skill

    Locksmith

    2 Bonus

    @coc7.check[type:skill,name:Locksmith,difficulty:0,modifier:+2,icon:fab fa-expeditedssl]{ Locksmith (2B)}

    Skill

    Locksmith

    1 Penalty

    @coc7.check[type:skill,name:Locksmith,difficulty:0,modifier:-1,icon:fab fa-expeditedssl]{ Locksmith (1P)}

    Skill

    Locksmith

    2 Penalty

    @coc7.check[type:skill,name:Locksmith,difficulty:0,modifier:-2,icon:fab fa-expeditedssl]{ Locksmith (2P)}

    Skill

    Mechanical Repair

    Regular

    @coc7.check[type:skill,name:Mechanical Repair,difficulty:0,modifier:0,icon:fas fa-tools]{ Mechanical Repair}

    Skill

    Mechanical Repair

    Hard

    @coc7.check[type:skill,name:Mechanical Repair,difficulty:+,modifier:0,icon:fas fa-tools]{ Mechanical Repair (Hard)}

    Skill

    Mechanical Repair

    Extreme

    @coc7.check[type:skill,name:Mechanical Repair,difficulty:++,modifier:0,icon:fas fa-tools]{ Mechanical Repair (Extreme)}

    Skill

    Mechanical Repair

    Critical

    @coc7.check[type:skill,name:Mechanical Repair,difficulty:+++,modifier:0,icon:fas fa-tools]{ Mechanical Repair (Critical)}

    Skill

    Mechanical Repair

    Blind

    @coc7.check[type:skill,name:Mechanical Repair,difficulty:?,modifier:0,icon:fas fa-tools]{ Mechanical Repair (Blind)}

    Skill

    Mechanical Repair

    1 Bonus

    @coc7.check[type:skill,name:Mechanical Repair,difficulty:0,modifier:+1,icon:fas fa-tools]{ Mechanical Repair (1B)}

    Skill

    Mechanical Repair

    2 Bonus

    @coc7.check[type:skill,name:Mechanical Repair,difficulty:0,modifier:+2,icon:fas fa-tools]{ Mechanical Repair (2B)}

    Skill

    Mechanical Repair

    1 Penalty

    @coc7.check[type:skill,name:Mechanical Repair,difficulty:0,modifier:-1,icon:fas fa-tools]{ Mechanical Repair (1P)}

    Skill

    Mechanical Repair

    2 Penalty

    @coc7.check[type:skill,name:Mechanical Repair,difficulty:0,modifier:-2,icon:fas fa-tools]{ Mechanical Repair (2P)}

    Skill

    Medicine

    Regular

    @coc7.check[type:skill,name:Medicine,difficulty:0,modifier:0,icon:fas fa-ambulance]{ Medicine}

    Skill

    Medicine

    Hard

    @coc7.check[type:skill,name:Medicine,difficulty:+,modifier:0,icon:fas fa-ambulance]{ Medicine (Hard)}

    Skill

    Medicine

    Extreme

    @coc7.check[type:skill,name:Medicine,difficulty:++,modifier:0,icon:fas fa-ambulance]{ Medicine (Extreme)}

    Skill

    Medicine

    Critical

    @coc7.check[type:skill,name:Medicine,difficulty:+++,modifier:0,icon:fas fa-ambulance]{ Medicine (Critical)}

    Skill

    Medicine

    Blind

    @coc7.check[type:skill,name:Medicine,difficulty:?,modifier:0,icon:fas fa-ambulance]{ Medicine (Blind)}

    Skill

    Medicine

    1 Bonus

    @coc7.check[type:skill,name:Medicine,difficulty:0,modifier:+1,icon:fas fa-ambulance]{ Medicine (1B)}

    Skill

    Medicine

    2 Bonus

    @coc7.check[type:skill,name:Medicine,difficulty:0,modifier:+2,icon:fas fa-ambulance]{ Medicine (2B)}

    Skill

    Medicine

    1 Penalty

    @coc7.check[type:skill,name:Medicine,difficulty:0,modifier:-1,icon:fas fa-ambulance]{ Medicine (1P)}

    Skill

    Medicine

    2 Penalty

    @coc7.check[type:skill,name:Medicine,difficulty:0,modifier:-2,icon:fas fa-ambulance]{ Medicine (2P)}

    Skill

    Natural World

    Regular

    @coc7.check[type:skill,name:Natural World,difficulty:0,modifier:0,icon:fas fa-hippo]{ Natural World}

    Skill

    Natural World

    Hard

    @coc7.check[type:skill,name:Natural World,difficulty:+,modifier:0,icon:fas fa-hippo]{ Natural World (Hard)}

    Skill

    Natural World

    Extreme

    @coc7.check[type:skill,name:Natural World,difficulty:++,modifier:0,icon:fas fa-hippo]{ Natural World (Extreme)}

    Skill

    Natural World

    Critical

    @coc7.check[type:skill,name:Natural World,difficulty:+++,modifier:0,icon:fas fa-hippo]{ Natural World (Critical)}

    Skill

    Natural World

    Blind

    @coc7.check[type:skill,name:Natural World,difficulty:?,modifier:0,icon:fas fa-hippo]{ Natural World (Blind)}

    Skill

    Natural World

    1 Bonus

    @coc7.check[type:skill,name:Natural World,difficulty:0,modifier:+1,icon:fas fa-hippo]{ Natural World (1B)}

    Skill

    Natural World

    2 Bonus

    @coc7.check[type:skill,name:Natural World,difficulty:0,modifier:+2,icon:fas fa-hippo]{ Natural World (2B)}

    Skill

    Natural World

    1 Penalty

    @coc7.check[type:skill,name:Natural World,difficulty:0,modifier:-1,icon:fas fa-hippo]{ Natural World (1P)}

    Skill

    Natural World

    2 Penalty

    @coc7.check[type:skill,name:Natural World,difficulty:0,modifier:-2,icon:fas fa-hippo]{ Natural World (2P)}

    Skill

    Navigate

    Regular

    @coc7.check[type:skill,name:Navigate,difficulty:0,modifier:0,icon:fas fa-route]{ Navigate}

    Skill

    Navigate

    Hard

    @coc7.check[type:skill,name:Navigate,difficulty:+,modifier:0,icon:fas fa-route]{ Navigate (Hard)}

    Skill

    Navigate

    Extreme

    @coc7.check[type:skill,name:Navigate,difficulty:++,modifier:0,icon:fas fa-route]{ Navigate (Extreme)}

    Skill

    Navigate

    Critical

    @coc7.check[type:skill,name:Navigate,difficulty:+++,modifier:0,icon:fas fa-route]{ Navigate (Critical)}

    Skill

    Navigate

    Blind

    @coc7.check[type:skill,name:Navigate,difficulty:?,modifier:0,icon:fas fa-route]{ Navigate (Blind)}

    Skill

    Navigate

    1 Bonus

    @coc7.check[type:skill,name:Navigate,difficulty:0,modifier:+1,icon:fas fa-route]{ Navigate (1B)}

    Skill

    Navigate

    2 Bonus

    @coc7.check[type:skill,name:Navigate,difficulty:0,modifier:+2,icon:fas fa-route]{ Navigate (2B)}

    Skill

    Navigate

    1 Penalty

    @coc7.check[type:skill,name:Navigate,difficulty:0,modifier:-1,icon:fas fa-route]{ Navigate (1P)}

    Skill

    Navigate

    2 Penalty

    @coc7.check[type:skill,name:Navigate,difficulty:0,modifier:-2,icon:fas fa-route]{ Navigate (2P)}

    Skill

    Occult

    Regular

    @coc7.check[type:skill,name:Occult,difficulty:0,modifier:0,icon:fas fa-hat-wizard]{ Occult}

    Skill

    Occult

    Hard

    @coc7.check[type:skill,name:Occult,difficulty:+,modifier:0,icon:fas fa-hat-wizard]{ Occult (Hard)}

    Skill

    Occult

    Extreme

    @coc7.check[type:skill,name:Occult,difficulty:++,modifier:0,icon:fas fa-hat-wizard]{ Occult (Extreme)}

    Skill

    Occult

    Critical

    @coc7.check[type:skill,name:Occult,difficulty:+++,modifier:0,icon:fas fa-hat-wizard]{ Occult (Critical)}

    Skill

    Occult

    Blind

    @coc7.check[type:skill,name:Occult,difficulty:?,modifier:0,icon:fas fa-hat-wizard]{ Occult (Blind)}

    Skill

    Occult

    1 Bonus

    @coc7.check[type:skill,name:Occult,difficulty:0,modifier:+1,icon:fas fa-hat-wizard]{ Occult (1B)}

    Skill

    Occult

    2 Bonus

    @coc7.check[type:skill,name:Occult,difficulty:0,modifier:+2,icon:fas fa-hat-wizard]{ Occult (2B)}

    Skill

    Occult

    1 Penalty

    @coc7.check[type:skill,name:Occult,difficulty:0,modifier:-1,icon:fas fa-hat-wizard]{ Occult (1P)}

    Skill

    Occult

    2 Penalty

    @coc7.check[type:skill,name:Occult,difficulty:0,modifier:-2,icon:fas fa-hat-wizard]{ Occult (2P)}

    Skill

    Operate Heavy Machinery

    Regular

    @coc7.check[type:skill,name:Operate Heavy Machinery,difficulty:0,modifier:0,icon:fas fa-snowplow]{ Operate Heavy Machinery}

    Skill

    Operate Heavy Machinery

    Hard

    @coc7.check[type:skill,name:Operate Heavy Machinery,difficulty:+,modifier:0,icon:fas fa-snowplow]{ Operate Heavy Machinery (Hard)}

    Skill

    Operate Heavy Machinery

    Extreme

    @coc7.check[type:skill,name:Operate Heavy Machinery,difficulty:++,modifier:0,icon:fas fa-snowplow]{ Operate Heavy Machinery (Extreme)}

    Skill

    Operate Heavy Machinery

    Critical

    @coc7.check[type:skill,name:Operate Heavy Machinery,difficulty:+++,modifier:0,icon:fas fa-snowplow]{ Operate Heavy Machinery (Critical)}

    Skill

    Operate Heavy Machinery

    Blind

    @coc7.check[type:skill,name:Operate Heavy Machinery,difficulty:?,modifier:0,icon:fas fa-snowplow]{ Operate Heavy Machinery (Blind)}

    Skill

    Operate Heavy Machinery

    1 Bonus

    @coc7.check[type:skill,name:Operate Heavy Machinery,difficulty:0,modifier:+1,icon:fas fa-snowplow]{ Operate Heavy Machinery (1B)}

    Skill

    Operate Heavy Machinery

    2 Bonus

    @coc7.check[type:skill,name:Operate Heavy Machinery,difficulty:0,modifier:+2,icon:fas fa-snowplow]{ Operate Heavy Machinery (2B)}

    Skill

    Operate Heavy Machinery

    1 Penalty

    @coc7.check[type:skill,name:Operate Heavy Machinery,difficulty:0,modifier:-1,icon:fas fa-snowplow]{ Operate Heavy Machinery (1P)}

    Skill

    Operate Heavy Machinery

    2 Penalty

    @coc7.check[type:skill,name:Operate Heavy Machinery,difficulty:0,modifier:-2,icon:fas fa-snowplow]{ Operate Heavy Machinery (2P)}

    Skill

    Persuade

    Regular

    @coc7.check[type:skill,name:Persuade,difficulty:0,modifier:0,icon:fas fa-comments]{ Persuade}

    Skill

    Persuade

    Hard

    @coc7.check[type:skill,name:Persuade,difficulty:+,modifier:0,icon:fas fa-comments]{ Persuade (Hard)}

    Skill

    Persuade

    Extreme

    @coc7.check[type:skill,name:Persuade,difficulty:++,modifier:0,icon:fas fa-comments]{ Persuade (Extreme)}

    Skill

    Persuade

    Critical

    @coc7.check[type:skill,name:Persuade,difficulty:+++,modifier:0,icon:fas fa-comments]{ Persuade (Critical)}

    Skill

    Persuade

    Blind

    @coc7.check[type:skill,name:Persuade,difficulty:?,modifier:0,icon:fas fa-comments]{ Persuade (Blind)}

    Skill

    Persuade

    1 Bonus

    @coc7.check[type:skill,name:Persuade,difficulty:0,modifier:+1,icon:fas fa-comments]{ Persuade (1B)}

    Skill

    Persuade

    2 Bonus

    @coc7.check[type:skill,name:Persuade,difficulty:0,modifier:+2,icon:fas fa-comments]{ Persuade (2B)}

    Skill

    Persuade

    1 Penalty

    @coc7.check[type:skill,name:Persuade,difficulty:0,modifier:-1,icon:fas fa-comments]{ Persuade (1P)}

    Skill

    Persuade

    2 Penalty

    @coc7.check[type:skill,name:Persuade,difficulty:0,modifier:-2,icon:fas fa-comments]{ Persuade (2P)}

    Skill

    Pilot (Boat)

    Regular

    @coc7.check[type:skill,name:Pilot (Boat),difficulty:0,modifier:0,icon:fas fa-ship]{ Pilot (Boat)}

    Skill

    Pilot (Boat)

    Hard

    @coc7.check[type:skill,name:Pilot (Boat),difficulty:+,modifier:0,icon:fas fa-ship]{ Pilot (Boat) (Hard)}

    Skill

    Pilot (Boat)

    Extreme

    @coc7.check[type:skill,name:Pilot (Boat),difficulty:++,modifier:0,icon:fas fa-ship]{ Pilot (Boat) (Extreme)}

    Skill

    Pilot (Boat)

    Critical

    @coc7.check[type:skill,name:Pilot (Boat),difficulty:+++,modifier:0,icon:fas fa-ship]{ Pilot (Boat) (Critical)}

    Skill

    Pilot (Boat)

    Blind

    @coc7.check[type:skill,name:Pilot (Boat),difficulty:?,modifier:0,icon:fas fa-ship]{ Pilot (Boat) (Blind)}

    Skill

    Pilot (Boat)

    1 Bonus

    @coc7.check[type:skill,name:Pilot (Boat),difficulty:0,modifier:+1,icon:fas fa-ship]{ Pilot (Boat) (1B)}

    Skill

    Pilot (Boat)

    2 Bonus

    @coc7.check[type:skill,name:Pilot (Boat),difficulty:0,modifier:+2,icon:fas fa-ship]{ Pilot (Boat) (2B)}

    Skill

    Pilot (Boat)

    1 Penalty

    @coc7.check[type:skill,name:Pilot (Boat),difficulty:0,modifier:-1,icon:fas fa-ship]{ Pilot (Boat) (1P)}

    Skill

    Pilot (Boat)

    2 Penalty

    @coc7.check[type:skill,name:Pilot (Boat),difficulty:0,modifier:-2,icon:fas fa-ship]{ Pilot (Boat) (2P)}

    Skill

    Psychoanalysis

    Regular

    @coc7.check[type:skill,name:Psychoanalysis,difficulty:0,modifier:0,icon:fas fa-head-side-cough]{ Psychoanalysis}

    Skill

    Psychoanalysis

    Hard

    @coc7.check[type:skill,name:Psychoanalysis,difficulty:+,modifier:0,icon:fas fa-head-side-cough]{ Psychoanalysis (Hard)}

    Skill

    Psychoanalysis

    Extreme

    @coc7.check[type:skill,name:Psychoanalysis,difficulty:++,modifier:0,icon:fas fa-head-side-cough]{ Psychoanalysis (Extreme)}

    Skill

    Psychoanalysis

    Critical

    @coc7.check[type:skill,name:Psychoanalysis,difficulty:+++,modifier:0,icon:fas fa-head-side-cough]{ Psychoanalysis (Critical)}

    Skill

    Psychoanalysis

    Blind

    @coc7.check[type:skill,name:Psychoanalysis,difficulty:?,modifier:0,icon:fas fa-head-side-cough]{ Psychoanalysis (Blind)}

    Skill

    Psychoanalysis

    1 Bonus

    @coc7.check[type:skill,name:Psychoanalysis,difficulty:0,modifier:+1,icon:fas fa-head-side-cough]{ Psychoanalysis (1B)}

    Skill

    Psychoanalysis

    2 Bonus

    @coc7.check[type:skill,name:Psychoanalysis,difficulty:0,modifier:+2,icon:fas fa-head-side-cough]{ Psychoanalysis (2B)}

    Skill

    Psychoanalysis

    1 Penalty

    @coc7.check[type:skill,name:Psychoanalysis,difficulty:0,modifier:-1,icon:fas fa-head-side-cough]{ Psychoanalysis (1P)}

    Skill

    Psychoanalysis

    2 Penalty

    @coc7.check[type:skill,name:Psychoanalysis,difficulty:0,modifier:-2,icon:fas fa-head-side-cough]{ Psychoanalysis (2P)}

    Skill

    Psychology

    Regular

    @coc7.check[type:skill,name:Psychology,difficulty:0,modifier:0,icon:fas fa-head-side-virus]{ Psychology}

    Skill

    Psychology

    Hard

    @coc7.check[type:skill,name:Psychology,difficulty:+,modifier:0,icon:fas fa-head-side-virus]{ Psychology (Hard)}

    Skill

    Psychology

    Extreme

    @coc7.check[type:skill,name:Psychology,difficulty:++,modifier:0,icon:fas fa-head-side-virus]{ Psychology (Extreme)}

    Skill

    Psychology

    Critical

    @coc7.check[type:skill,name:Psychology,difficulty:+++,modifier:0,icon:fas fa-head-side-virus]{ Psychology (Critical)}

    Skill

    Psychology

    Blind

    @coc7.check[type:skill,name:Psychology,difficulty:?,modifier:0,icon:fas fa-head-side-virus]{ Psychology (Blind)}

    Skill

    Psychology

    1 Bonus

    @coc7.check[type:skill,name:Psychology,difficulty:0,modifier:+1,icon:fas fa-head-side-virus]{ Psychology (1B)}

    Skill

    Psychology

    2 Bonus

    @coc7.check[type:skill,name:Psychology,difficulty:0,modifier:+2,icon:fas fa-head-side-virus]{ Psychology (2B)}

    Skill

    Psychology

    1 Penalty

    @coc7.check[type:skill,name:Psychology,difficulty:0,modifier:-1,icon:fas fa-head-side-virus]{ Psychology (1P)}

    Skill

    Psychology

    2 Penalty

    @coc7.check[type:skill,name:Psychology,difficulty:0,modifier:-2,icon:fas fa-head-side-virus]{ Psychology (2P)}

    Skill

    Read Lips

    Regular

    @coc7.check[type:skill,name:Read Lips,difficulty:0,modifier:0,icon:fas fa-blind]{ Read Lips}

    Skill

    Read Lips

    Hard

    @coc7.check[type:skill,name:Read Lips,difficulty:+,modifier:0,icon:fas fa-blind]{ Read Lips (Hard)}

    Skill

    Read Lips

    Extreme

    @coc7.check[type:skill,name:Read Lips,difficulty:++,modifier:0,icon:fas fa-blind]{ Read Lips (Extreme)}

    Skill

    Read Lips

    Critical

    @coc7.check[type:skill,name:Read Lips,difficulty:+++,modifier:0,icon:fas fa-blind]{ Read Lips (Critical)}

    Skill

    Read Lips

    Blind

    @coc7.check[type:skill,name:Read Lips,difficulty:?,modifier:0,icon:fas fa-blind]{ Read Lips (Blind)}

    Skill

    Read Lips

    1 Bonus

    @coc7.check[type:skill,name:Read Lips,difficulty:0,modifier:+1,icon:fas fa-blind]{ Read Lips (1B)}

    Skill

    Read Lips

    2 Bonus

    @coc7.check[type:skill,name:Read Lips,difficulty:0,modifier:+2,icon:fas fa-blind]{ Read Lips (2B)}

    Skill

    Read Lips

    1 Penalty

    @coc7.check[type:skill,name:Read Lips,difficulty:0,modifier:-1,icon:fas fa-blind]{ Read Lips (1P)}

    Skill

    Read Lips

    2 Penalty

    @coc7.check[type:skill,name:Read Lips,difficulty:0,modifier:-2,icon:fas fa-blind]{ Read Lips (2P)}

    Skill

    Ride

    Regular

    @coc7.check[type:skill,name:Ride,difficulty:0,modifier:0,icon:fab fa-sticker-mule]{ Ride}

    Skill

    Ride

    Hard

    @coc7.check[type:skill,name:Ride,difficulty:+,modifier:0,icon:fab fa-sticker-mule]{ Ride (Hard)}

    Skill

    Ride

    Extreme

    @coc7.check[type:skill,name:Ride,difficulty:++,modifier:0,icon:fab fa-sticker-mule]{ Ride (Extreme)}

    Skill

    Ride

    Critical

    @coc7.check[type:skill,name:Ride,difficulty:+++,modifier:0,icon:fab fa-sticker-mule]{ Ride (Critical)}

    Skill

    Ride

    Blind

    @coc7.check[type:skill,name:Ride,difficulty:?,modifier:0,icon:fab fa-sticker-mule]{ Ride (Blind)}

    Skill

    Ride

    1 Bonus

    @coc7.check[type:skill,name:Ride,difficulty:0,modifier:+1,icon:fab fa-sticker-mule]{ Ride (1B)}

    Skill

    Ride

    2 Bonus

    @coc7.check[type:skill,name:Ride,difficulty:0,modifier:+2,icon:fab fa-sticker-mule]{ Ride (2B)}

    Skill

    Ride

    1 Penalty

    @coc7.check[type:skill,name:Ride,difficulty:0,modifier:-1,icon:fab fa-sticker-mule]{ Ride (1P)}

    Skill

    Ride

    2 Penalty

    @coc7.check[type:skill,name:Ride,difficulty:0,modifier:-2,icon:fab fa-sticker-mule]{ Ride (2P)}

    Skill

    Science (Chemistry)

    Regular

    @coc7.check[type:skill,name:Science (Chemistry),difficulty:0,modifier:0,icon:fas fa-atom]{ Science (Chemistry)}

    Skill

    Science (Chemistry)

    Hard

    @coc7.check[type:skill,name:Science (Chemistry),difficulty:+,modifier:0,icon:fas fa-atom]{ Science (Chemistry) (Hard)}

    Skill

    Science (Chemistry)

    Extreme

    @coc7.check[type:skill,name:Science (Chemistry),difficulty:++,modifier:0,icon:fas fa-atom]{ Science (Chemistry) (Extreme)}

    Skill

    Science (Chemistry)

    Critical

    @coc7.check[type:skill,name:Science (Chemistry),difficulty:+++,modifier:0,icon:fas fa-atom]{ Science (Chemistry) (Critical)}

    Skill

    Science (Chemistry)

    Blind

    @coc7.check[type:skill,name:Science (Chemistry),difficulty:?,modifier:0,icon:fas fa-atom]{ Science (Chemistry) (Blind)}

    Skill

    Science (Chemistry)

    1 Bonus

    @coc7.check[type:skill,name:Science (Chemistry),difficulty:0,modifier:+1,icon:fas fa-atom]{ Science (Chemistry) (1B)}

    Skill

    Science (Chemistry)

    2 Bonus

    @coc7.check[type:skill,name:Science (Chemistry),difficulty:0,modifier:+2,icon:fas fa-atom]{ Science (Chemistry) (2B)}

    Skill

    Science (Chemistry)

    1 Penalty

    @coc7.check[type:skill,name:Science (Chemistry),difficulty:0,modifier:-1,icon:fas fa-atom]{ Science (Chemistry) (1P)}

    Skill

    Science (Chemistry)

    2 Penalty

    @coc7.check[type:skill,name:Science (Chemistry),difficulty:0,modifier:-2,icon:fas fa-atom]{ Science (Chemistry) (2P)}

    Skill

    Sleight of Hand

    Regular

    @coc7.check[type:skill,name:Sleight of Hand,difficulty:0,modifier:0,icon:fas fa-hand-sparkles]{ Sleight of Hand}

    Skill

    Sleight of Hand

    Hard

    @coc7.check[type:skill,name:Sleight of Hand,difficulty:+,modifier:0,icon:fas fa-hand-sparkles]{ Sleight of Hand (Hard)}

    Skill

    Sleight of Hand

    Extreme

    @coc7.check[type:skill,name:Sleight of Hand,difficulty:++,modifier:0,icon:fas fa-hand-sparkles]{ Sleight of Hand (Extreme)}

    Skill

    Sleight of Hand

    Critical

    @coc7.check[type:skill,name:Sleight of Hand,difficulty:+++,modifier:0,icon:fas fa-hand-sparkles]{ Sleight of Hand (Critical)}

    Skill

    Sleight of Hand

    Blind

    @coc7.check[type:skill,name:Sleight of Hand,difficulty:?,modifier:0,icon:fas fa-hand-sparkles]{ Sleight of Hand (Blind)}

    Skill

    Sleight of Hand

    1 Bonus

    @coc7.check[type:skill,name:Sleight of Hand,difficulty:0,modifier:+1,icon:fas fa-hand-sparkles]{ Sleight of Hand (1B)}

    Skill

    Sleight of Hand

    2 Bonus

    @coc7.check[type:skill,name:Sleight of Hand,difficulty:0,modifier:+2,icon:fas fa-hand-sparkles]{ Sleight of Hand (2B)}

    Skill

    Sleight of Hand

    1 Penalty

    @coc7.check[type:skill,name:Sleight of Hand,difficulty:0,modifier:-1,icon:fas fa-hand-sparkles]{ Sleight of Hand (1P)}

    Skill

    Sleight of Hand

    2 Penalty

    @coc7.check[type:skill,name:Sleight of Hand,difficulty:0,modifier:-2,icon:fas fa-hand-sparkles]{ Sleight of Hand (2P)}

    Skill

    Spot Hidden

    Regular

    @coc7.check[type:skill,name:Spot Hidden,difficulty:0,modifier:0,icon:fas fa-binoculars]{ Spot Hidden}

    Skill

    Spot Hidden

    Hard

    @coc7.check[type:skill,name:Spot Hidden,difficulty:+,modifier:0,icon:fas fa-binoculars]{ Spot Hidden (Hard)}

    Skill

    Spot Hidden

    Extreme

    @coc7.check[type:skill,name:Spot Hidden,difficulty:++,modifier:0,icon:fas fa-binoculars]{ Spot Hidden (Extreme)}

    Skill

    Spot Hidden

    Critical

    @coc7.check[type:skill,name:Spot Hidden,difficulty:+++,modifier:0,icon:fas fa-binoculars]{ Spot Hidden (Critical)}

    Skill

    Spot Hidden

    Blind

    @coc7.check[type:skill,name:Spot Hidden,difficulty:?,modifier:0,icon:fas fa-binoculars]{ Spot Hidden (Blind)}

    Skill

    Spot Hidden

    1 Bonus

    @coc7.check[type:skill,name:Spot Hidden,difficulty:0,modifier:+1,icon:fas fa-binoculars]{ Spot Hidden (1B)}

    Skill

    Spot Hidden

    2 Bonus

    @coc7.check[type:skill,name:Spot Hidden,difficulty:0,modifier:+2,icon:fas fa-binoculars]{ Spot Hidden (2B)}

    Skill

    Spot Hidden

    1 Penalty

    @coc7.check[type:skill,name:Spot Hidden,difficulty:0,modifier:-1,icon:fas fa-binoculars]{ Spot Hidden (1P)}

    Skill

    Spot Hidden

    2 Penalty

    @coc7.check[type:skill,name:Spot Hidden,difficulty:0,modifier:-2,icon:fas fa-binoculars]{ Spot Hidden (2P)}

    Skill

    Stealth

    Regular

    @coc7.check[type:skill,name:Stealth,difficulty:0,modifier:0,icon:fas fa-user-ninja]{ Stealth}

    Skill

    Stealth

    Hard

    @coc7.check[type:skill,name:Stealth,difficulty:+,modifier:0,icon:fas fa-user-ninja]{ Stealth (Hard)}

    Skill

    Stealth

    Extreme

    @coc7.check[type:skill,name:Stealth,difficulty:++,modifier:0,icon:fas fa-user-ninja]{ Stealth (Extreme)}

    Skill

    Stealth

    Critical

    @coc7.check[type:skill,name:Stealth,difficulty:+++,modifier:0,icon:fas fa-user-ninja]{ Stealth (Critical)}

    Skill

    Stealth

    Blind

    @coc7.check[type:skill,name:Stealth,difficulty:?,modifier:0,icon:fas fa-user-ninja]{ Stealth (Blind)}

    Skill

    Stealth

    1 Bonus

    @coc7.check[type:skill,name:Stealth,difficulty:0,modifier:+1,icon:fas fa-user-ninja]{ Stealth (1B)}

    Skill

    Stealth

    2 Bonus

    @coc7.check[type:skill,name:Stealth,difficulty:0,modifier:+2,icon:fas fa-user-ninja]{ Stealth (2B)}

    Skill

    Stealth

    1 Penalty

    @coc7.check[type:skill,name:Stealth,difficulty:0,modifier:-1,icon:fas fa-user-ninja]{ Stealth (1P)}

    Skill

    Stealth

    2 Penalty

    @coc7.check[type:skill,name:Stealth,difficulty:0,modifier:-2,icon:fas fa-user-ninja]{ Stealth (2P)}

    Skill

    Survival (Desert)

    Regular

    @coc7.check[type:skill,name:Survival (Desert),difficulty:0,modifier:0,icon:fas fa-wind]{ Survival (Desert)}

    Skill

    Survival (Desert)

    Hard

    @coc7.check[type:skill,name:Survival (Desert),difficulty:+,modifier:0,icon:fas fa-wind]{ Survival (Desert) (Hard)}

    Skill

    Survival (Desert)

    Extreme

    @coc7.check[type:skill,name:Survival (Desert),difficulty:++,modifier:0,icon:fas fa-wind]{ Survival (Desert) (Extreme)}

    Skill

    Survival (Desert)

    Critical

    @coc7.check[type:skill,name:Survival (Desert),difficulty:+++,modifier:0,icon:fas fa-wind]{ Survival (Desert) (Critical)}

    Skill

    Survival (Desert)

    Blind

    @coc7.check[type:skill,name:Survival (Desert),difficulty:?,modifier:0,icon:fas fa-wind]{ Survival (Desert) (Blind)}

    Skill

    Survival (Desert)

    1 Bonus

    @coc7.check[type:skill,name:Survival (Desert),difficulty:0,modifier:+1,icon:fas fa-wind]{ Survival (Desert) (1B)}

    Skill

    Survival (Desert)

    2 Bonus

    @coc7.check[type:skill,name:Survival (Desert),difficulty:0,modifier:+2,icon:fas fa-wind]{ Survival (Desert) (2B)}

    Skill

    Survival (Desert)

    1 Penalty

    @coc7.check[type:skill,name:Survival (Desert),difficulty:0,modifier:-1,icon:fas fa-wind]{ Survival (Desert) (1P)}

    Skill

    Survival (Desert)

    2 Penalty

    @coc7.check[type:skill,name:Survival (Desert),difficulty:0,modifier:-2,icon:fas fa-wind]{ Survival (Desert) (2P)}

    Skill

    Swim

    Regular

    @coc7.check[type:skill,name:Swim,difficulty:0,modifier:0,icon:fas fa-swimmer]{ Swim}

    Skill

    Swim

    Hard

    @coc7.check[type:skill,name:Swim,difficulty:+,modifier:0,icon:fas fa-swimmer]{ Swim (Hard)}

    Skill

    Swim

    Extreme

    @coc7.check[type:skill,name:Swim,difficulty:++,modifier:0,icon:fas fa-swimmer]{ Swim (Extreme)}

    Skill

    Swim

    Critical

    @coc7.check[type:skill,name:Swim,difficulty:+++,modifier:0,icon:fas fa-swimmer]{ Swim (Critical)}

    Skill

    Swim

    Blind

    @coc7.check[type:skill,name:Swim,difficulty:?,modifier:0,icon:fas fa-swimmer]{ Swim (Blind)}

    Skill

    Swim

    1 Bonus

    @coc7.check[type:skill,name:Swim,difficulty:0,modifier:+1,icon:fas fa-swimmer]{ Swim (1B)}

    Skill

    Swim

    2 Bonus

    @coc7.check[type:skill,name:Swim,difficulty:0,modifier:+2,icon:fas fa-swimmer]{ Swim (2B)}

    Skill

    Swim

    1 Penalty

    @coc7.check[type:skill,name:Swim,difficulty:0,modifier:-1,icon:fas fa-swimmer]{ Swim (1P)}

    Skill

    Swim

    2 Penalty

    @coc7.check[type:skill,name:Swim,difficulty:0,modifier:-2,icon:fas fa-swimmer]{ Swim (2P)}

    Skill

    Throw

    Regular

    @coc7.check[type:skill,name:Throw,difficulty:0,modifier:0,icon:fas fa-football-ball]{ Throw}

    Skill

    Throw

    Hard

    @coc7.check[type:skill,name:Throw,difficulty:+,modifier:0,icon:fas fa-football-ball]{ Throw (Hard)}

    Skill

    Throw

    Extreme

    @coc7.check[type:skill,name:Throw,difficulty:++,modifier:0,icon:fas fa-football-ball]{ Throw (Extreme)}

    Skill

    Throw

    Critical

    @coc7.check[type:skill,name:Throw,difficulty:+++,modifier:0,icon:fas fa-football-ball]{ Throw (Critical)}

    Skill

    Throw

    Blind

    @coc7.check[type:skill,name:Throw,difficulty:?,modifier:0,icon:fas fa-football-ball]{ Throw (Blind)}

    Skill

    Throw

    1 Bonus

    @coc7.check[type:skill,name:Throw,difficulty:0,modifier:+1,icon:fas fa-football-ball]{ Throw (1B)}

    Skill

    Throw

    2 Bonus

    @coc7.check[type:skill,name:Throw,difficulty:0,modifier:+2,icon:fas fa-football-ball]{ Throw (2B)}

    Skill

    Throw

    1 Penalty

    @coc7.check[type:skill,name:Throw,difficulty:0,modifier:-1,icon:fas fa-football-ball]{ Throw (1P)}

    Skill

    Throw

    2 Penalty

    @coc7.check[type:skill,name:Throw,difficulty:0,modifier:-2,icon:fas fa-football-ball]{ Throw (2P)}

    Skill

    Track

    Regular

    @coc7.check[type:skill,name:Track,difficulty:0,modifier:0,icon:fas fa-shoe-prints]{ Track}

    Skill

    Track

    Hard

    @coc7.check[type:skill,name:Track,difficulty:+,modifier:0,icon:fas fa-shoe-prints]{ Track (Hard)}

    Skill

    Track

    Extreme

    @coc7.check[type:skill,name:Track,difficulty:++,modifier:0,icon:fas fa-shoe-prints]{ Track (Extreme)}

    Skill

    Track

    Critical

    @coc7.check[type:skill,name:Track,difficulty:+++,modifier:0,icon:fas fa-shoe-prints]{ Track (Critical)}

    Skill

    Track

    Blind

    @coc7.check[type:skill,name:Track,difficulty:?,modifier:0,icon:fas fa-shoe-prints]{ Track (Blind)}

    Skill

    Track

    1 Bonus

    @coc7.check[type:skill,name:Track,difficulty:0,modifier:+1,icon:fas fa-shoe-prints]{ Track (1B)}

    Skill

    Track

    2 Bonus

    @coc7.check[type:skill,name:Track,difficulty:0,modifier:+2,icon:fas fa-shoe-prints]{ Track (2B)}

    Skill

    Track

    1 Penalty

    @coc7.check[type:skill,name:Track,difficulty:0,modifier:-1,icon:fas fa-shoe-prints]{ Track (1P)}

    Skill

    Track

    2 Penalty

    @coc7.check[type:skill,name:Track,difficulty:0,modifier:-2,icon:fas fa-shoe-prints]{ Track (2P)}

    "}}],"flags":{"CoC7":{"cocidFlag":{"id":"je..roll-requests","lang":"en","priority":0,"eras":{}}}}} diff --git a/packs/sanity-tables-examples.db b/packs/sanity-tables-examples.db deleted file mode 100644 index 7747e723..00000000 --- a/packs/sanity-tables-examples.db +++ /dev/null @@ -1,4 +0,0 @@ -{"name":"Table IX: Sample Phobias","img":"icons/svg/d20-grey.svg","description":"See Keeper rulebook P160 for details","results":[{"_id":"zPS16v4ejOf001Oa","flags":{},"type":0,"text":"Sample phobia (Text) See Keeper rulebook P160 for details","img":"icons/svg/d20-black.svg","weight":1,"range":[1,1],"drawn":false,"rangeL":1,"rangeH":1},{"_id":"0moeYAVLI9D4ieHc","flags":{},"type":1,"text":"Phobia 1","img":"icons/svg/aura.svg","collection":"Item","resultId":"LIabvJunZPiq0brc","weight":1,"range":[2,2],"drawn":false,"rangeL":2,"rangeH":2},{"_id":"QQGyA9Mj3KXXLE7L","flags":{},"type":1,"text":"Phobia 2","img":"icons/svg/aura.svg","collection":"Item","resultId":"b5DeLy1KETMeE8ZC","weight":1,"range":[3,3],"drawn":false,"rangeL":3,"rangeH":3}],"formula":"1d3","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"6Y6opwuMdxc52cY3":3},"flags":{"core":{"sourceId":"RollTable.ue3FzoIrV2ImVFit"}},"_id":"6daRognwiyG5eoQd"} -{"name":"Table VII: Bouts of Madness - Real Time","img":"icons/svg/d20-grey.svg","description":"See - Keeper Rulebook V7 - P157 for details","results":[{"_id":"wkAoS0CZin60yxqq","flags":{},"type":0,"text":"See bout of madness table P157 [[1D10]] rounds","img":"icons/svg/d20-black.svg","weight":8,"range":[1,8],"drawn":false,"rangeL":1,"rangeH":8},{"_id":"f7lQW70JZoV65k7t","flags":{},"type":1,"text":"Table IX: Sample Phobias","img":"icons/svg/d20-grey.svg","collection":"RollTable","resultId":"LxRFNAbfFi9UPzNs","weight":1,"range":[9,9],"drawn":false,"rangeL":9,"rangeH":9},{"_id":"NVwiNwt5AJTDsbOF","flags":{},"type":1,"text":"Table X: Sample Manias","img":"icons/svg/d20-grey.svg","collection":"RollTable","resultId":"qlbDIJB7HHNpzbOW","weight":1,"range":[10,10],"drawn":false,"rangeL":10,"rangeH":10}],"formula":"1d10","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"6Y6opwuMdxc52cY3":3},"flags":{"core":{"sourceId":"RollTable.0mHHERDsF3gfjb2J"}},"_id":"NNX6jAG2DBkw9red"} -{"name":"Table VIII: Bouts of Madness - Summary","img":"icons/svg/d20-grey.svg","description":"See - Keeper Rulebook V7 - P159 for details","results":[{"_id":"Esb0GbmbJW31Bt3y","flags":{},"type":0,"text":"See bout of madness table P159 [[1D10]] hours","img":"icons/svg/d20-black.svg","weight":8,"range":[1,8],"drawn":false,"rangeL":1,"rangeH":8},{"_id":"QtgBj3oqttScUu1O","flags":{},"type":1,"text":"Table IX: Sample Phobias","img":"icons/svg/d20-grey.svg","collection":"RollTable","resultId":"LxRFNAbfFi9UPzNs","weight":1,"range":[9,9],"drawn":false,"rangeL":9,"rangeH":9},{"_id":"mRE43rMBB1bzqpwp","flags":{},"type":1,"text":"Table X: Sample Manias","img":"icons/svg/d20-grey.svg","collection":"RollTable","resultId":"qlbDIJB7HHNpzbOW","weight":1,"range":[10,10],"drawn":false,"rangeL":10,"rangeH":10}],"formula":"1d10","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"6Y6opwuMdxc52cY3":3},"flags":{"core":{"sourceId":"RollTable.l7cMZea9U61j7mAo"}},"_id":"ZyCIR3PbyYaIE8W2"} -{"name":"Table X: Sample Manias","img":"icons/svg/d20-grey.svg","description":"See Keeper rulebook P161 for details","results":[{"_id":"p5lnrVyhzlOlTW1X","flags":{},"type":0,"text":"Sample mania (Text) See Keeper rulebook P161 for details","img":"icons/svg/d20-black.svg","weight":1,"range":[1,1],"drawn":false,"rangeL":1,"rangeH":1},{"_id":"baysUyR0Z4JlNImd","flags":{},"type":1,"text":"Mania 1","img":"icons/svg/aura.svg","collection":"Item","resultId":"956QyPlpQ1ED4VQw","weight":1,"range":[2,2],"drawn":false,"rangeL":2,"rangeH":2},{"_id":"U7snRGZkre4uzX1t","flags":{},"type":1,"text":"Mania 2","img":"icons/svg/aura.svg","collection":"Item","resultId":"4gH7MiriVDWx31YF","weight":1,"range":[3,3],"drawn":false,"rangeL":3,"rangeH":3}],"formula":"1d3","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"6Y6opwuMdxc52cY3":3},"flags":{"core":{"sourceId":"RollTable.6EIZXhKnmAyhEsBn"}},"_id":"mWs2LZoSvSBqlqhW"} diff --git a/packs/skills.db b/packs/skills.db deleted file mode 100644 index cf3b62fa..00000000 --- a/packs/skills.db +++ /dev/null @@ -1,94 +0,0 @@ -{"_id":"UOuN0gESXPp2HXwH","name":"Accounting","type":"skill","img":"systems/CoC7/assets/icons/skills/accounting.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":5,"properties":{"push":true},"skillName":"Accounting","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.accounting","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true,"regency":true,"regencyPulp":true,"reignOfTerror":true},"priority":0}}}} -{"_id":"dQ4zUjSteT3sgwKx","name":"Animal Handling","type":"skill","img":"systems/CoC7/assets/icons/skills/animal_handling.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":5,"properties":{"push":true,"rarity":true},"skillName":"Animal Handling","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.animal-handling","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"reignOfTerror":true},"priority":0}}}} -{"_id":"ovIp66Luwfwbq28F","name":"Anthropology","type":"skill","img":"systems/CoC7/assets/icons/skills/anthropology.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"push":true},"skillName":"Anthropology","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.anthropology","lang":"en","eras":{"standard":true,"modern":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true,"regency":true,"regencyPulp":true,"reignOfTerror":true},"priority":0}}}} -{"_id":"wOs3gryeGRPkGoWD","name":"Appraise","type":"skill","img":"systems/CoC7/assets/icons/skills/appraise.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":5,"properties":{"push":true},"skillName":"Appraise","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.appraise","lang":"en","priority":0}}}} -{"_id":"GHhkcJUqjcP4lToY","name":"Archaeology","type":"skill","img":"systems/CoC7/assets/icons/skills/archaeology.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"push":true},"skillName":"Archaeology","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.archaeology","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}}}} -{"_id":"m6V53lyfz7zh95FE","name":"Art/Craft (Acting)","type":"skill","img":"systems/CoC7/assets/icons/skills/art_craft_acting.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":5,"properties":{"special":true,"push":true},"skillName":"Acting","specialization":"Art/Craft"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.art-craft-acting","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"gasLight":true,"regencyPulp":true,"regency":true},"priority":0}}}} -{"_id":"HAuFBG4ZT2yO9yn7","name":"Art/Craft (Any)","type":"skill","img":"systems/CoC7/assets/icons/skills/art_craft_any.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":5,"properties":{"special":true,"requiresname":true,"push":true},"skillName":"Any","specialization":"Art/Craft"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.art-craft-any","lang":"en","priority":0}}}} -{"_id":"m8sBJxvuUdtQ2mDU","name":"Art/Craft (Fine Art)","type":"skill","img":"systems/CoC7/assets/icons/skills/art_craft_fine_art.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":5,"properties":{"special":true,"push":true},"skillName":"Fine Art","specialization":"Art/Craft"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.art-craft-fine-art","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"gasLight":true,"regency":true,"regencyPulp":true},"priority":0}}}} -{"_id":"zcvnv8qY4GrVwwTL","name":"Art/Craft (Forgery)","type":"skill","img":"systems/CoC7/assets/icons/skills/art_craft_forgery.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":5,"properties":{"special":true,"push":true},"skillName":"Forgery","specialization":"Art/Craft"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.art-craft-forgery","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"gasLight":true,"regency":true,"regencyPulp":true},"priority":0}}}} -{"_id":"WLYZNASZ2YP8zN3g","name":"Art/Craft (Photography)","type":"skill","img":"systems/CoC7/assets/icons/skills/art_craft_photography.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":5,"properties":{"special":true,"push":true},"skillName":"Photography","specialization":"Art/Craft"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.art-craft-photography","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"gasLight":true},"priority":0}}}} -{"_id":"JgtxiN3KzooOWIQV","name":"Charm","type":"skill","img":"systems/CoC7/assets/icons/skills/charm.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":15,"properties":{"push":true},"skillName":"Charm","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.charm","lang":"en","priority":0}}}} -{"_id":"I80gmmo830LuOBKl","name":"Civics","type":"skill","img":"systems/CoC7/assets/icons/skills/shaking-hands.svg","system":{"description":{"value":"

    See the Cthulhu Invictus

    "},"base":10,"properties":{"push":true},"skillName":"Civics","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.civics","lang":"en","eras":{"invictus":true},"priority":0}}}} -{"_id":"oh5eFj00Wohnx1My","name":"Climb","type":"skill","img":"systems/CoC7/assets/icons/skills/climb.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":20,"properties":{"push":true},"skillName":"Climb","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.climb","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"darkAges":true,"darkAgesPulp":true,"regency":true,"regencyPulp":true,"reignOfTerror":true,"gasLight":true},"priority":0}}}} -{"_id":"VZSv9eodMQ4ZPcrO","name":"Computer Use","type":"skill","img":"systems/CoC7/assets/icons/skills/computer_use.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":5,"properties":{"push":true},"skillName":"Computer Use","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.computer-use","lang":"en","eras":{"modern":true,"modernPulp":true},"priority":0}}}} -{"_id":"vYrJ5h9cIQBzvw8E","name":"Credit Rating","type":"skill","img":"systems/CoC7/assets/icons/skills/credit_rating.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":0,"properties":{"noxpgain":true,"push":true},"skillName":"Credit Rating","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.credit-rating","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true,"reignOfTerror":true},"priority":0}}}} -{"_id":"WJky66ezt2ef5ksH","name":"Cthulhu Mythos","type":"skill","img":"systems/CoC7/assets/icons/skills/cthulhu_mythos.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":0,"properties":{"noadjustments":true,"noxpgain":true},"skillName":"Cthulhu Mythos","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.cthulhu-mythos","lang":"en","priority":0}}}} -{"_id":"bJt90h73GqdP7ti6","name":"Demolitions","type":"skill","img":"systems/CoC7/assets/icons/skills/demolitions.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"rarity":true,"push":true},"skillName":"Demolitions","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.demolitions","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true},"priority":0}}}} -{"_id":"gzNPM9gbx0EZffBV","name":"Disguise","type":"skill","img":"systems/CoC7/assets/icons/skills/disguise.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":5,"properties":{"push":true},"skillName":"Disguise","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.disguise","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"darkAges":true,"darkAgesPulp":true,"gasLight":true,"regency":true,"regencyPulp":true,"reignOfTerror":true},"priority":0}}}} -{"_id":"4lN6yD6zwbjX6BFp","name":"Diving","type":"skill","img":"systems/CoC7/assets/icons/skills/diving_helmet.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"push":true,"rarity":true},"skillName":"Diving","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.diving","lang":"en","eras":{"standard":true,"modern":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true},"priority":0}}}} -{"_id":"wK8XxNj9QwXlGFEb","name":"Dodge","type":"skill","img":"systems/CoC7/assets/icons/skills/dodge.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":"1/2*@DEX","skillName":"Dodge","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.dodge","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"darkAges":true,"darkAgesPulp":true,"regency":true,"regencyPulp":true,"reignOfTerror":true,"gasLight":true},"priority":0}}}} -{"_id":"Og2OWQH93aSDWAMZ","name":"Drive Auto","type":"skill","img":"systems/CoC7/assets/icons/skills/drive_auto.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":20,"properties":{"push":true},"skillName":"Drive Auto","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.drive-auto","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"Sxviv60td6kbS4kp","name":"Drive Carriage","type":"skill","img":"systems/CoC7/assets/icons/skills/cartwheel.svg","system":{"description":{"value":"

    See the Cthulhu by Gaslight

    "},"base":20,"properties":{"push":true},"skillName":"Drive Carriage","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.drive-carriage","lang":"en","eras":{"gasLight":true,"regency":true,"regencyPulp":true},"priority":0}}}} -{"_id":"rAK5soSX1n3jXj2A","name":"Drive Horse / Oxen","type":"skill","img":"systems/CoC7/assets/icons/skills/cartwheel.svg","system":{"description":{"value":"

    See the Cthulhu Invictus

    "},"base":20,"properties":{"push":true},"skillName":"Drive Horse / Oxen","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.drive-horse-oxen","lang":"en","eras":{"darkAges":true,"darkAgesPulp":true,"invictus":true},"priority":0}}}} -{"_id":"sqenne0VZoF54W5k","name":"Drive Wagon / Coach","type":"skill","img":"systems/CoC7/assets/icons/skills/cartwheel.svg","system":{"description":{"value":"

    See the Down Darker Trails Rulebook

    "},"base":20,"properties":{"push":true},"skillName":"Drive Wagon / Coach","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.drive-wagon-coach","lang":"en","eras":{"downDarkerTrails":true,"downDarkerTrailsPulp":true},"priority":0}}}} -{"_id":"NBkq8oCGM1FjmsyF","name":"Electrical Repair","type":"skill","img":"systems/CoC7/assets/icons/skills/electrical_repair.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":10,"properties":{"push":true},"skillName":"Electrical Repair","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.electrical-repair","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"oEfvPMTx0cgyPlgV","name":"Electronics","type":"skill","img":"systems/CoC7/assets/icons/skills/electronics.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"push":true},"skillName":"Electronics","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.electronics","lang":"en","eras":{"modern":true,"modernPulp":true},"priority":0}}}} -{"_id":"t7uiYybrk8dHFdjp","name":"Empire","type":"skill","img":"systems/CoC7/assets/icons/skills/laurel_crown.svg","system":{"description":{"value":"

    See the Cthulhu Invictus

    "},"base":25,"properties":{"push":true},"skillName":"Empire","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.empire","lang":"en","eras":{"invictus":true},"priority":0}}}} -{"_id":"ld78TITwKNFPpanQ","name":"Fast Talk","type":"skill","img":"systems/CoC7/assets/icons/skills/fast_talk.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":5,"properties":{"push":true},"skillName":"Fast Talk","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.fast-talk","lang":"en","priority":0}}}} -{"_id":"4y7D44TpkHVKxA7s","name":"Fighting (Any)","type":"skill","img":"systems/CoC7/assets/icons/skills/fighting_brawl.svg","system":{"description":{"value":"

    Use in occupations / archetypes to prompt to select one Fighting skill

    "},"base":0,"properties":{"fighting":true,"combat":true,"special":true,"picknameonly":true},"skillName":"Any","specialization":"Fighting"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.fighting-any","lang":"en","priority":0}}}} -{"_id":"T8fSLCwSD8C0iK8t","name":"Fighting (Axe)","type":"skill","img":"systems/CoC7/assets/icons/skills/fighting_axe.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":15,"properties":{"fighting":true,"combat":true,"special":true},"skillName":"Axe","specialization":"Fighting"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.fighting-axe","lang":"en","priority":0}}}} -{"_id":"vS8bsPWFlwgOecoB","name":"Fighting (Brawl)","type":"skill","img":"systems/CoC7/assets/icons/skills/fighting_brawl.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":25,"properties":{"fighting":true,"combat":true,"special":true},"skillName":"Brawl","specialization":"Fighting"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.fighting-brawl","lang":"en","priority":0}}}} -{"_id":"Ed8OShyl7D834Ihk","name":"Fighting (Chainsaw)","type":"skill","img":"systems/CoC7/assets/icons/skills/fighting_chainsaw.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":10,"properties":{"fighting":true,"combat":true,"special":true},"skillName":"Chainsaw","specialization":"Fighting"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.fighting-chainsaw","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"OcnZzOYWaP4VsjXS","name":"Fighting (Flail)","type":"skill","img":"systems/CoC7/assets/icons/skills/fighting_flail.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":10,"properties":{"fighting":true,"combat":true,"special":true},"skillName":"Flail","specialization":"Fighting"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.fighting-flail","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"TPOu48DT4QIrqE68","name":"Fighting (Garrote)","type":"skill","img":"systems/CoC7/assets/icons/skills/fighting_garrote.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":15,"properties":{"fighting":true,"combat":true,"special":true},"skillName":"Garrote","specialization":"Fighting"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.fighting-garrote","lang":"en","priority":0}}}} -{"_id":"IttOdCAGTeE6VU3F","name":"Fighting (Spear)","type":"skill","img":"systems/CoC7/assets/icons/skills/fighting_spear.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":20,"properties":{"fighting":true,"combat":true,"special":true},"skillName":"Spear","specialization":"Fighting"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.fighting-spear","lang":"en","priority":0}}}} -{"_id":"hRPbMl2N0t6aBlyc","name":"Fighting (Sword)","type":"skill","img":"systems/CoC7/assets/icons/skills/fighting_sword.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":20,"properties":{"fighting":true,"combat":true,"special":true},"skillName":"Sword","specialization":"Fighting"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.fighting-sword","lang":"en","priority":0}}}} -{"_id":"sWt5Q3ZXd6NlwhXU","name":"Fighting (Throw)","type":"skill","img":"systems/CoC7/assets/icons/skills/fighting_throw.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":20,"properties":{"fighting":true,"combat":true,"special":true},"skillName":"Throw","specialization":"Fighting"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.fighting-throw","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true,"regency":true,"regencyPulp":true,"reignOfTerror":true},"priority":0}}}} -{"_id":"Pb3QI7x9xJVeXi8a","name":"Fighting (Whip)","type":"skill","img":"systems/CoC7/assets/icons/skills/fighting_whip.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":5,"properties":{"fighting":true,"combat":true,"special":true},"skillName":"Whip","specialization":"Fighting"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.fighting-whip","lang":"en","priority":0}}}} -{"_id":"YPiD2ubZensxjKGU","name":"Firearms (Any)","type":"skill","img":"systems/CoC7/assets/icons/skills/firearms_handgun.svg","system":{"description":{"value":"

    Use in occupations / archetypes to prompt to select one Firearms skill

    "},"base":0,"properties":{"firearm":true,"combat":true,"special":true,"picknameonly":true},"skillName":"Any","specialization":"Firearms"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.firearms-any","lang":"en","priority":0}}}} -{"_id":"qET2wCGGdy3z18Gc","name":"Firearms (Artillery)","type":"skill","img":"systems/CoC7/assets/icons/skills/firearms_artillery.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"firearm":true,"combat":true,"special":true,"rarity":true},"skillName":"Artillery","specialization":"Firearms"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.firearms-artillery","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"reignOfTerror":true},"priority":0}}}} -{"_id":"VwGWZ2LBOwtMaw08","name":"Firearms (Bow)","type":"skill","img":"systems/CoC7/assets/icons/skills/firearms_bow.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":15,"properties":{"firearm":true,"combat":true,"special":true},"skillName":"Bow","specialization":"Firearms"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.firearms-bow","lang":"en","priority":0}}}} -{"_id":"35dvJDsrY8JipXRU","name":"Firearms (Flamethrower)","type":"skill","img":"systems/CoC7/assets/icons/skills/firearms_flamethrower.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":10,"properties":{"firearm":true,"combat":true,"special":true},"skillName":"Flamethrower","specialization":"Firearms"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.firearms-flamethrower","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"KmDGtn7ukUFVb265","name":"Firearms (Handgun)","type":"skill","img":"systems/CoC7/assets/icons/skills/firearms_handgun.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":20,"properties":{"firearm":true,"combat":true,"special":true},"skillName":"Handgun","specialization":"Firearms"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.firearms-handgun","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}}}} -{"_id":"23vdyJDDfjyneH3I","name":"Firearms (Heavy Weapons)","type":"skill","img":"systems/CoC7/assets/icons/skills/firearms_heavy_weapons.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":10,"properties":{"firearm":true,"combat":true,"special":true},"skillName":"Heavy Weapons","specialization":"Firearms"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.firearms-heavy-weapons","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"QcomAOgmOS5g3dsh","name":"Firearms (Machine Gun)","type":"skill","img":"systems/CoC7/assets/icons/skills/firearms_machine_gun.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":10,"properties":{"firearm":true,"combat":true,"special":true},"skillName":"Machine Gun","specialization":"Firearms"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.firearms-machine-gun","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"m2pYjKk4Gk3FcEBL","name":"Firearms (Rifle/Shotgun)","type":"skill","img":"systems/CoC7/assets/icons/skills/firearms_rifle_shotgun.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":25,"properties":{"firearm":true,"combat":true,"special":true},"skillName":"Rifle/Shotgun","specialization":"Firearms"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.firearms-rifle-shotgun","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}}}} -{"_id":"gRUXG91zIJXOLye1","name":"Firearms (Submachine Gun)","type":"skill","img":"systems/CoC7/assets/icons/skills/firearms_submachine_gun.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":15,"properties":{"firearm":true,"combat":true,"special":true},"skillName":"Submachine Gun","specialization":"Firearms"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.firearms-submachine-gun","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"nZ8rdL4PLb7A7f5B","name":"First Aid","type":"skill","img":"systems/CoC7/assets/icons/skills/first_aid.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":30,"properties":{"push":true},"skillName":"First Aid","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.first-aid","lang":"en","priority":0}}}} -{"_id":"SflwB1bbjaQebiPQ","name":"Gambling","type":"skill","img":"systems/CoC7/assets/icons/skills/poker-hand.svg","system":{"description":{"value":"

    See the Down Darker Trails Rulebook

    "},"base":10,"properties":{"push":true},"skillName":"Gambling","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.gambling","lang":"en","eras":{"downDarkerTrails":true,"downDarkerTrailsPulp":true},"priority":0}}}} -{"_id":"URo2NSSJSNdvOqXU","name":"History","type":"skill","img":"systems/CoC7/assets/icons/skills/history.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":5,"properties":{"push":true},"skillName":"History","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.history","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true,"regency":true,"regencyPulp":true,"reignOfTerror":true},"priority":0}}}} -{"_id":"mEblnQjptKvKCeIg","name":"Hypnosis","type":"skill","img":"systems/CoC7/assets/icons/skills/hypnosis.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"rarity":true,"push":true},"skillName":"Hypnosis","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.hypnosis","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true},"priority":0}}}} -{"_id":"hDr4eUbS398oniTa","name":"Intimidate","type":"skill","img":"systems/CoC7/assets/icons/skills/intimidate.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":15,"properties":{"push":true},"skillName":"Intimidate","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.intimidate","lang":"en","priority":0}}}} -{"_id":"c5utlFbDM7J8TA8b","name":"Jump","type":"skill","img":"systems/CoC7/assets/icons/skills/jump.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":20,"properties":{"push":true},"skillName":"Jump","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.jump","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true,"regency":true,"regencyPulp":true,"reignOfTerror":true},"priority":0}}}} -{"_id":"Yu3Xk8kZBlz0G82y","name":"Language (Any)","type":"skill","img":"systems/CoC7/assets/icons/skills/language.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"special":true,"requiresname":true,"push":true},"skillName":"Any","specialization":"Language"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.language-any","lang":"en","priority":0}}}} -{"_id":"rhJ1Q9OB3uTUZmjD","name":"Language (Own)","type":"skill","img":"systems/CoC7/assets/icons/skills/language.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":"@EDU","properties":{"push":true,"special":true,"requiresname":true,"keepbasevalue":true,"onlyone":true},"skillName":"Own","specialization":"Language"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.language-own","lang":"en","priority":0}}}} -{"_id":"64hnBZNC8FM7oTkg","name":"Law","type":"skill","img":"systems/CoC7/assets/icons/skills/law.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":5,"properties":{"push":true},"skillName":"Law","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.law","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true,"regency":true,"regencyPulp":true,"reignOfTerror":true},"priority":0}}}} -{"_id":"BcWHh8EhmyKj7bNk","name":"Library Use","type":"skill","img":"systems/CoC7/assets/icons/skills/library_use.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":20,"properties":{"push":true},"skillName":"Library Use","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.library-use","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true,"regency":true,"regencyPulp":true,"reignOfTerror":true},"priority":0}}}} -{"_id":"MoAB0NRNlpEc2qWr","name":"Listen","type":"skill","img":"systems/CoC7/assets/icons/skills/listen.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":20,"properties":{"push":true},"skillName":"Listen","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.listen","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true,"regency":true,"regencyPulp":true,"reignOfTerror":true},"priority":0}}}} -{"_id":"MRbFH52Zh9TzhLBh","name":"Locksmith","type":"skill","img":"systems/CoC7/assets/icons/skills/locksmith.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"push":true},"skillName":"Locksmith","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.locksmith","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true,"regency":true,"regencyPulp":true,"reignOfTerror":true},"priority":0}}}} -{"_id":"rCJKGay6D0ucqgeg","name":"Lore (Any)","type":"skill","img":"systems/CoC7/assets/icons/skills/classical_knowledge.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"special":true,"requiresname":true,"rarity":true,"push":true},"skillName":"Any","specialization":"Lore"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.lore-any","lang":"en","eras":{"standard":true,"modern":true},"priority":0}}}} -{"_id":"0qCTuRFUCACSEsWj","name":"Mechanical Repair","type":"skill","img":"systems/CoC7/assets/icons/skills/mechanical_repair.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":10,"properties":{"push":true},"skillName":"Mechanical Repair","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.mechanical-repair","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true,"regency":true,"regencyPulp":true},"priority":0}}}} -{"_id":"Xmg7oAy70DKpv4kq","name":"Medicine","type":"skill","img":"systems/CoC7/assets/icons/skills/medicine.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"push":true},"skillName":"Medicine","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.medicine","lang":"en","priority":0}}}} -{"_id":"jTcu6Ni2ek7Yz5q3","name":"Natural World","type":"skill","img":"systems/CoC7/assets/icons/skills/natural_world.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":10,"properties":{"push":true},"skillName":"Natural World","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.natural-world","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"gasLight":true,"regency":true,"regencyPulp":true},"priority":0}}}} -{"_id":"1c3fdvpQtvZf5YXK","name":"Navigate","type":"skill","img":"systems/CoC7/assets/icons/skills/navigate.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":10,"properties":{"push":true},"skillName":"Navigate","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.navigate","lang":"en","priority":0}}}} -{"_id":"6pSfZVS68jSHxa5T","name":"Occult","type":"skill","img":"systems/CoC7/assets/icons/skills/occult.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":5,"properties":{"push":true},"skillName":"Occult","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.occult","lang":"en","priority":0}}}} -{"_id":"cuExWy1130KUwuWz","name":"Operate Heavy Machinery","type":"skill","img":"systems/CoC7/assets/icons/skills/operate_heavy_machinery.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"push":true},"skillName":"Operate Heavy Machinery","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.operate-heavy-machinery","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}}}} -{"_id":"uMzSNURmZqjxr7mU","name":"Persuade","type":"skill","img":"systems/CoC7/assets/icons/skills/persuade.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":10,"properties":{"push":true},"skillName":"Persuade","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.persuade","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true,"regency":true,"regencyPulp":true,"reignOfTerror":true},"priority":0}}}} -{"_id":"uQsVn8K6XRXQmtaI","name":"Pilot (Any)","type":"skill","img":"systems/CoC7/assets/icons/skills/pilot_any.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"special":true,"requiresname":true,"push":true},"skillName":"Any","specialization":"Pilot"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.pilot-any","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true},"priority":0}}}} -{"_id":"rXBU2GofiO2qOsGv","name":"Psychoanalysis","type":"skill","img":"systems/CoC7/assets/icons/skills/psychoanalysis.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"push":true},"skillName":"Psychoanalysis","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.psychoanalysis","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"MFR4eR79niGaLfph","name":"Psychology","type":"skill","img":"systems/CoC7/assets/icons/skills/psychology.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":10,"properties":{"push":true},"skillName":"Psychology","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.psychology","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true,"regency":true,"regencyPulp":true,"reignOfTerror":true},"priority":0}}}} -{"_id":"SL2OorS0Xx6ty02A","name":"Read Lips","type":"skill","img":"systems/CoC7/assets/icons/skills/read_lips.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"rarity":true,"push":true},"skillName":"Read Lips","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.read-lips","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"o7TdzbuSP7ticONf","name":"Ride","type":"skill","img":"systems/CoC7/assets/icons/skills/ride.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":5,"properties":{"push":true},"skillName":"Ride","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.ride","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"gasLight":true,"regency":true,"regencyPulp":true},"priority":0}}}} -{"_id":"EMA6uEtQBgJtBcPl","name":"Rope Use","type":"skill","img":"systems/CoC7/assets/icons/skills/lasso.svg","system":{"description":{"value":"

    See the Down Darker Trails Rulebook

    "},"base":5,"properties":{"push":true},"skillName":"Rope Use","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.rope-use","lang":"en","eras":{"downDarkerTrails":true,"downDarkerTrailsPulp":true},"priority":0}}}} -{"_id":"KvZuYcg3AmVrwKi2","name":"Science (Any)","type":"skill","img":"systems/CoC7/assets/icons/skills/science_any.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"special":true,"requiresname":true,"push":true},"skillName":"Any","specialization":"Science"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.science-any","lang":"en","priority":0}}}} -{"_id":"hhvqA2BOljk1FHVg","name":"Science (Astronomy)","type":"skill","img":"systems/CoC7/assets/icons/skills/science_astronomy.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"push":true,"special":true},"skillName":"Astronomy","specialization":"Science"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.science-astronomy","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"IBSDR6U4dE1uejVp","name":"Science (Biology)","type":"skill","img":"systems/CoC7/assets/icons/skills/science_biology.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"special":true,"push":true},"skillName":"Biology","specialization":"Science"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.science-biology","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"ShPoibiLsd07AtZv","name":"Science (Botany)","type":"skill","img":"systems/CoC7/assets/icons/skills/science_botany.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"special":true,"push":true},"skillName":"Botany","specialization":"Science"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.science-botany","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"8twBT7nbyh5dEp3J","name":"Science (Chemistry)","type":"skill","img":"systems/CoC7/assets/icons/skills/science_chemistry.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"special":true,"push":true},"skillName":"Chemistry","specialization":"Science"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.science-chemistry","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"UASTWOvgCYi8G1QQ","name":"Science (Cryptography)","type":"skill","img":"systems/CoC7/assets/icons/skills/science_cryptography.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"special":true,"push":true},"skillName":"Cryptography","specialization":"Science"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.science-cryptography","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"9zy7PLmTLXknFce4","name":"Science (Engineering)","type":"skill","img":"systems/CoC7/assets/icons/skills/spanner.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"special":true,"push":true},"skillName":"Engineering","specialization":"Science"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.science-engineering","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"Nw5tSvi2Knxlqmg1","name":"Science (Forensics)","type":"skill","img":"systems/CoC7/assets/icons/skills/science_forensics.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"special":true,"push":true},"skillName":"Forensics","specialization":"Science"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.science-forensics","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"QwaL3UC3Gvjd3hmF","name":"Science (Geology)","type":"skill","img":"systems/CoC7/assets/icons/skills/science_geology.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"special":true,"push":true},"skillName":"Geology","specialization":"Science"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.science-geology","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"TwYYqLHe1PXnOCDF","name":"Science (Mathematics)","type":"skill","img":"systems/CoC7/assets/icons/skills/science_mathematics.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":10,"properties":{"special":true,"push":true},"skillName":"Mathematics","specialization":"Science"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.science-mathematics","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"w7hWVU14syjweIH2","name":"Science (Meteorology)","type":"skill","img":"systems/CoC7/assets/icons/skills/science_meteorology.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"special":true,"push":true},"skillName":"Meteorology","specialization":"Science"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.science-meteorology","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"V9ulAwDyLVqqQ0su","name":"Science (Pharmacy)","type":"skill","img":"systems/CoC7/assets/icons/skills/science_pharmacy.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"special":true,"push":true},"skillName":"Pharmacy","specialization":"Science"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.science-pharmacy","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"Dh6sHWep0qKQmi3I","name":"Science (Physics)","type":"skill","img":"systems/CoC7/assets/icons/skills/science_physics.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"special":true,"push":true},"skillName":"Physics","specialization":"Science"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.science-physics","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"0rlp7EuZDzQGjIYf","name":"Science (Zoology)","type":"skill","img":"systems/CoC7/assets/icons/skills/science_zoology.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":1,"properties":{"special":true,"push":true},"skillName":"Zoology","specialization":"Science"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.science-zoology","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true},"priority":0}}}} -{"_id":"KKFNX5M4LtEtiuxs","name":"Sleight of Hand","type":"skill","img":"systems/CoC7/assets/icons/skills/sleight_of_hand.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":10,"properties":{"push":true},"skillName":"Sleight of Hand","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.sleight-of-hand","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true,"regency":true,"regencyPulp":true,"reignOfTerror":true},"priority":0}}}} -{"_id":"nHaWNwtW3Lg0sqYJ","name":"Spot Hidden","type":"skill","img":"systems/CoC7/assets/icons/skills/spot_hidden.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":25,"properties":{"push":true},"skillName":"Spot Hidden","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.spot-hidden","lang":"en","priority":0}}}} -{"_id":"DcV524K0jNfjDEZC","name":"Stealth","type":"skill","img":"systems/CoC7/assets/icons/skills/stealth.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":20,"properties":{"push":true},"skillName":"Stealth","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.stealth","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"darkAges":true,"darkAgesPulp":true,"gasLight":true,"regency":true,"regencyPulp":true,"reignOfTerror":true},"priority":0}}}} -{"_id":"X99v5MtRlfTNjL3B","name":"Survival (Any)","type":"skill","img":"systems/CoC7/assets/icons/skills/survival_any.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":10,"properties":{"special":true,"requiresname":true,"push":true},"skillName":"Any","specialization":"Survival"},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.survival-any","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true,"regency":true,"regencyPulp":true,"reignOfTerror":true},"priority":0}}}} -{"_id":"1zSIeY0eat2AxQok","name":"Swim","type":"skill","img":"systems/CoC7/assets/icons/skills/swim.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":20,"properties":{"push":true},"skillName":"Swim","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.swim","lang":"en","eras":{"standard":true,"modern":true,"modernPulp":true,"pulp":true,"downDarkerTrails":true,"downDarkerTrailsPulp":true,"gasLight":true,"regency":true,"regencyPulp":true,"reignOfTerror":true},"priority":0}}}} -{"_id":"AcUIbZFhfoXqQP2m","name":"Track","type":"skill","img":"systems/CoC7/assets/icons/skills/track.svg","system":{"description":{"value":"

    See the Call of Cthulhu - 7th Ed Core Rulebook

    "},"base":10,"properties":{"push":true},"skillName":"Track","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.track","lang":"en","priority":0}}}} -{"_id":"HzOGu2yLcL9obry3","name":"Trap","type":"skill","img":"systems/CoC7/assets/icons/skills/wolf-trap.svg","system":{"description":{"value":"

    See the Down Darker Trails Rulebook

    "},"base":10,"properties":{"push":true},"skillName":"Trap","specialization":""},"flags":{"CoC7":{"cocidFlag":{"id":"i.skill.trap","lang":"en","eras":{"downDarkerTrails":true,"downDarkerTrailsPulp":true},"priority":0}}}} \ No newline at end of file diff --git a/packs/system-doc.db b/packs/system-doc.db deleted file mode 100644 index c9301bc4..00000000 --- a/packs/system-doc.db +++ /dev/null @@ -1,3 +0,0 @@ -{"name":"Call of Cthulhu 7th Edition [en]","pages":[{"name":"System documentation","type":"text","_id":"pjqHiADSapcdS4fU","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    System documentation for version 0.10.0

    \n

    This document is a work in progress overview of the CoC7 system it is not a tutorial for how to use FoundryVTT.

    \n

    You will need one of the following to play the game

    \n
      \n
    • Chaosium's Call of Cthulhu 7th Edition - Keeper's Rulebook
    • \n
    • Chaosium's Call of Cthulhu 7th Edition - Call of Cthulhu Starter Set
    • \n
    • Chaosium's Call of Cthulhu 7th Edition - Quick-Start Rules
    • \n
    \n

    The system automates most of the regular tasks and rules involved with running a game.

    \n

    Several parts of the actor sheets have pop up tooltips that trigger after two seconds, this delay can be changed in the settings

    \n

    This documentation can be reopened under  Game Settings -> Help and Documentation -> View CoC7 System Manual

    \n

    Recent changes

    \n

    For a full list of changes checkout the changelog on GitHub

    \n
      \n
    • @UUID[.xIXeEy4A8thetqLp]{CoC ID system} - Set tags on documents for example i.skill.dodge to find dodge skills on actors
    • \n
    • Investigator Wizard - Use CoC ID Items to create investigators
    • \n
    • @UUID[.pjqHiADSapcdS4fU#settings-overview]{Pulp Rules} - Implement optional pulp rule to ignore age when calculating movement speed
    • \n
    • @UUID[.ag5ghFZ6hYIm2JyJ]{Active effects} - Add support for bonus/penalty dice when rolling from the Actor sheets
    • \n
    \n

    Overview sections below

    \n

    If this is your first time it is recommends you also read the following sections on this page.

    \n

    Foundry VTT is based in actors and items. This module includes a number of system specific actors and items, and some examples of them can be found in the included system compendiums.

    \n
      \n
    • @UUID[.pjqHiADSapcdS4fU#actor-overview]{Actor overview}
    • \n
    • @UUID[.pjqHiADSapcdS4fU#items-overview]{Items overview}
    • \n
    • @UUID[.pjqHiADSapcdS4fU#settings-overview]{Settings overview}
    • \n
    • @UUID[.pjqHiADSapcdS4fU#call-of-cthulhu-scene-menu]{Scene menu overview}
    • \n
    • @UUID[.pjqHiADSapcdS4fU#keyboard-and-mouse-shortcuts]{Keyboard and mouse shortcuts}
    • \n
    • @UUID[.9a8SLXDQHfCxrZzR]{Creating your first investigator}
    • \n
    • @UUID[.EQS1L753HOsOD4vR]{Character creation}
    • \n
    \n

    How to use the system

    \n
      \n
    • @UUID[.ag5ghFZ6hYIm2JyJ]{Active effects} - An active effect will modify an actor characteristic(s), attribute(s), skill(s).
    • \n
    • @UUID[.EXFpS3WZu9pwEr6H]{Actor importer}
    • \n
    • Actor Type: Character (TODO)
    • \n
    • Actor Type: Container (TODO)
    • \n
    • Actor Type: Creature (TODO)
    • \n
    • Actor Type: NPC (TODO)
    • \n
    • Chat link creator (TODO)
    • \n
    • Character creation mode (TODO)
    • \n
    • @UUID[.SgRmyJJ7tb4o5Zb9]{Combat} (TODO)
    • \n
    • Development phase (TODO)
    • \n
    • @UUID[.oFE5T3zT5PMhWbui]{Item Types} (TODO)
    • \n
    • @UUID[.sJiiuIJZTToArDnD]{Item Type: Archetype} (TODO)
    • \n
    • @UUID[.OaIgfX2Ij0vQoVtz]{Item Type: Book} (TODO)
    • \n
    • @UUID[.w645thphP1Sd2Whe]{Item Type: Chases}
    • \n
    • Item Type: Item (TODO)
    • \n
    • @UUID[.PtxMa4YG5ZEkvJj9]{Item Type: Occupation}
    • \n
    • @UUID[.gv3xcdEM8ugzJJdz]{Item Type: Setup}
    • \n
    • @UUID[.7Ql88MphdUS0FvBv]{Item Type: Skill} (TODO)
    • \n
    • Item Type: Spell (TODO)
    • \n
    • Item Type: Status (TODO)
    • \n
    • Item Type: Talent (TODO)
    • \n
    • Item Type: Weapon (TODO)
    • \n
    • @UUID[.9YesdNtaElDQaaaZ]{Link Creation Tool}
    • \n
    • @UUID[.7sSX5w3psDau2CDn]{Links} (TODO)
    • \n
    • Macros (TODO)
    • \n
    • Rolls (TODO)
    • \n
    • @UUID[.9xaysNap3U5XbkTn]{Sanity} (TODO)
    • \n
    • Start Rest (TODO)
    • \n
    • XP Gain (TODO)
    • \n
    \n

    Actor overview

    \n
      \n
    • Character - A complete character, usually an investigator. @Compendium[CoC7.examples.JuI2aWDSEuQNKeUI]{Example Character}
    • \n
    • Container - An inventory container. @Compendium[CoC7.examples.r7bDSY4OYKxQYEas]{Example Container}
    • \n
    • Creature - A more simple character, suitable for creatures. @Compendium[CoC7.examples.XE2vjLG03wGfnYLw]{Example Creature}
    • \n
    • NPC - A more simple character, suitable for NPCs. @Compendium[CoC7.examples.4kSvDc4n13oFx8RG]{Example NPC}
    • \n
    \n

    Items overview

    \n
      \n
    • Archetype - A set of skills and other stats that implement a Pulp Cthulhu archetype. These do not trigger automation in the system. @Compendium[CoC7.items.lu04TIRrg9P3vRqY]{Example Archetype}
    • \n
    • Book - An arcane tome that can hold spells and character improvements.
    • \n
    • Item - A piece of equipment.
    • \n
    • Occupation - A set of skills and other stats that implement a CoC occupation. @Compendium[CoC7.items.NOsh6EdNSjpjahDF]{Example Occupation}
    • \n
    • Setup - A set of default configurations for character, creature, or NPC creation. @Compendium[CoC7.items.CcH7CdXGtGTjMSCg]{Example Setup}
    • \n
    • Skill - A skill with a base percentage and some tags. @Compendium[CoC7.skills.UOuN0gESXPp2HXwH]{Example Skill}
    • \n
    • Spell - A magic spell.
    • \n
    • Status - An phobia or mania condition. @Compendium[CoC7.items.DVdvEDizPZPux1pK]{Example Mania}
    • \n
    • Talent -A special power for Pulp Cthulhu. These do not trigger automation in the system. @Compendium[CoC7.items.yqvwz769ZeJplOW7]{Example Talent}
    • \n
    • Weapon - An item with weapon statistics (this includes unarmed attacks). @Compendium[CoC7.items.3elxAwnv7WCUNwng]{Example Weapon}
    • \n
    \n

    Settings overview

    \n

    Click on the  Game Settings tab then under the Game Settings heading click on  Configure Settings.

    \n

    Click on  System Settings

    \n
      \n
    • Variant/Optional Rules - Here you can turn on individual Pulp Cthulhu rules and other optional rules
    • \n
    • Initiative Settings - Additional settings for optional initiative rule
    • \n
    • Roll Settings - Default options for rolls
    • \n
    • Chat Cards Settings - Configure chat messages
    • \n
    • Scene Settings - Scene Settings
    • \n
    • Game Artwork Settings - This allows you to set a custom pause icon and message
    • \n
    • Sheet Settings - This allows you to change character sheet settings and optional CSS
    • \n
    • Weapon Settings - Weapon Settings
    • \n
    • Developer And Debug Settings - These settings can break your world when new updates are released so only use them on test worlds
    • \n
    • Roll Table Settings - When sanity rolls are made the system can automatically roll for a bout of madness. You can see example roll tables in the Sanity Roll Table compendiums
    • \n
    \n

    Call of Cthulhu Scene Menu

    \n

    To access this menu you will need to have an active scene which can be created in the  Scenes Directory. These options are only available to the Keeper.

    \n
      \n
    • Keeper's tools\n
        \n
      • Development phase: When enabled, players can make improvement rolls for their marked skills.
      • \n
      • Character creation mode: When enabled, players can distribute points among their skills.
      • \n
      • XP gain: When enabled, a skill will be marked for improvement after a successful check.
      • \n
      • Send a decoy roll to players: When clicked, players will see a fake GM private roll.
      • \n
      • Start Rest: When click, pick characters to perform a rest and roll for XP gains.
      • \n
    • \n
    • Roll !: Used to roll 1d100 with a threshold, difficulty and bonus or penalty dice.
    • \n
    • Create link: Create a roll link for players to click
    • \n
    \n

    Keyboard and mouse shortcuts

    \n

    There are many elements in the sheets that trigger a dice roll when clicked. Usually a dialog is shown to prompt the user for a difficulty and a possible bonus or penalty. This behavior is modified with the following controls:

    \n
      \n
    • Right click on any rollable element to include it in an opposed roll. As long as the card is open, all rolls made\nwith a right click will be added to the opposed roll.
    • \n
    • Alt + Right click on any rollable element to include it in a combined roll.
    • \n
    • Shift + Left click on a rollable element will make a roll without asking for difficulty or bonus/penalty.
    • \n
    • Ctrl + Left click on a rollable element will create a roll request. Only available for the GM.
    • \n
    • Alt + Left click on sanity will prompt the player for minimum and maximum sanity loss.
    • \n
    \n\n
    ","markdown":""},"sort":0},{"name":"Active effects","type":"text","_id":"ag5ghFZ6hYIm2JyJ","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Effects

    \n

    The system allows for the creation of Active Effects.\nAn active effect will modify an actor characteristic(s), attribute(s), skill(s).\nEffects can be created as a @UUID[.7sSX5w3psDau2CDn]{link} using the @UUID[.9YesdNtaElDQaaaZ]{Link creation tool} or directly in the character sheet by clicking the   button.

    \n

    Effects tab

    \n

    Effects will be display in the effect tabs on the character sheet.

    \n

    \"effects

    \n

    Effect are broken down in 4 categories for PC :

    \n
      \n
    • Status: those are effects used and created by the system (Wounds status, prone, insane ...). Those effects do not include any changes.
    • \n
    • Temporary: those are effects with duration.
    • \n
    • Passive: those are permanent effects.
    • \n
    • Inactive: those are disabled effects.
    • \n
    \n

    For NPC/Creatures you will only see 2 sections: active and inactive effects.\nWhen an effect is not inactive, the corresponding changes will be applied to the actor.

    \n

    Creating effects

    \n

    You can create effect by clicking the Add button.\nThis will bring the effect creation window.\nThis windows has 3 tabs

    \n

    Details tab

    \n

    \"Details

    \n

    Duration tab

    \n

    \"Duration

    \n

    Changes tab

    \n

    \"Changes

    \n

    This last tab will includes all changes made to the character sheet.

    \n

    Changes

    \n

    An effect includes a list of changes. Each change needs to be addressed with the corresponding system path.\nThe available changes are :

    \n
      \n
    • Characteristics:\n
        \n
      • Strength:\n
          \n
        • system.characteristics.str.value
        • \n
        • system.characteristics.str.bonusDice
        • \n
      • \n
      • Constitution:\n
          \n
        • system.characteristics.con.value
        • \n
        • system.characteristics.con.bonusDice
        • \n
      • \n
      • Size:\n
          \n
        • system.characteristics.siz.value
        • \n
        • system.characteristics.siz.bonusDice
        • \n
      • \n
      • Dexterity:\n
          \n
        • system.characteristics.dex.value
        • \n
        • system.characteristics.dex.bonusDice
        • \n
      • \n
      • Appearance:\n
          \n
        • system.characteristics.app.value
        • \n
        • system.characteristics.app.bonusDice
        • \n
      • \n
      • Intelligence:\n
          \n
        • system.characteristics.int.value
        • \n
        • system.characteristics.int.bonusDice
        • \n
      • \n
      • Power:\n
          \n
        • system.characteristics.pow.value
        • \n
        • system.characteristics.pow.bonusDice
        • \n
      • \n
      • Education:\n
          \n
        • system.characteristics.edu.value
        • \n
        • system.characteristics.edu.bonusDice
        • \n
      • \n
    • \n
    • Attributes:\n
        \n
      • Luck:\n
          \n
        • system.attribs.lck.value
        • \n
        • system.attribs.lck.bonusDice
        • \n
      • \n
      • Sanity:\n
          \n
        • system.attribs.san.value
        • \n
        • system.attribs.san.bonusDice
        • \n
      • \n
      • Movement Rate:\n
          \n
        • system.attribs.mov.value
        • \n
      • \n
      • Build:\n
          \n
        • system.attribs.build.value
        • \n
      • \n
      • Damage Bonus:\n
          \n
        • system.attribs.db.value
        • \n
      • \n
      • Armor:\n
          \n
        • system.attribs.armor.value
        • \n
      • \n
    • \n
    • Derived attributes. Only the maximum value of those attributes should be modified. Those changes are applied after all other changes have been made. If that attibute is in auto mode, it will be recalculated with the previous characteristics changes before having it's value affected.\n
        \n
      • Hit Points:\n
          \n
        • system.attribs.hp.max
        • \n
      • \n
      • Sanity:\n
          \n
        • system.attribs.san.max
        • \n
      • \n
    • \n
    • Skills. Skills are identified by their full names and are case sensitive!\n
        \n
      • Charm\n
          \n
        • system.skills.Charm.value
        • \n
        • system.skills.Charm.bonusDice
        • \n
      • \n
      • Fighting (Brawl)\n
          \n
        • system.skills.Fighting (Brawl).value
        • \n
        • system.skills.Fighting (Brawl).bonusDice
        • \n
      • \n
    • \n
    \n\n
    ","markdown":""},"sort":1},{"name":"Actor Importer","type":"text","_id":"EXFpS3WZu9pwEr6H","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Actor Importer

    \n

    You can use the actor importer to import several NPC/Creatures blocks from adventures and using the JSON exporter from The Dholes House

    \n

    To open the actor importer either open the  Actor Directory and click Actor Importer at the bottom of the side bar or on an active scene   then click  Actor Importer

    \n

    Overview

    \n

    If this is your first time it is recommends you also read the following sections.

    \n
      \n
    • Non Playing Character (NPC) / Creature
    • \n
    • The Dhole's House Actor Importer JSON
    • \n
    \n

    Non Playing Character (NPC) / Creature

    \n

    \"\"

    \n
      \n
    1. Select NPC or Creature

    2. \n
    3. Should the system convert the character block from an earlier edition to 7th

    4. \n
    5. Select the languages of the character block

    6. \n
    7. When adding skills, items, spells, and weapons the system can attempt to find items in your world with the same name, you can select the order the seconds are searched

      \n

      Items: From your item directory

      \n

      World: From your world compendiums

      \n

      Modules: From your module compendiums

      \n

      System: From the system compendiums provided with this system

    8. \n
    9. An example layout is given here you can copy this to your clipboard if you want to edit it or paste in the text from an adventure

    10. \n
    \n

    Click import will create an actor under the  Actor directory will be created in the Imported characters folder any text that was not understood will be stored in Keeper notes

    \n

    The Dhole's House Actor Importer JSON

    \n

    \"\"

    \n
      \n
    1. The Dhole's House Actor Importer JSON

    2. \n
    3. When adding skills, items, spells, and weapons the system can attempt to find items in your world with the same name, you can select the order the seconds are searched

      \n

      Items: From your item directory

      \n

      World: From your world compendiums

      \n

      Modules: From your module compendiums

      \n

      System: From the system compendiums provided with this system

    4. \n
    \n

    Browse for your JSON file, once selected the name and image will be be shown, click import to create the actor under the  Actor directory will be created in the Imported characters folder

    \n

    By default the image will be stored in a folder called dhole-image in your world, this can be changed by clicking on the  Game Settings tab then under the Game Settings heading clicking on  Configure Settings, click on  System Settings.

    \n\n
    ","markdown":""},"sort":2},{"name":"Character Creation","type":"text","_id":"EQS1L753HOsOD4vR","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Character Creation

    \n

    The system comes with some compendiums ready for you to customise. These are reset every time you update or install the system so it is recommended you copy them into your own compendium and edit them as required.

    \n

    Skills

    \n

    In this section you will create or edit @UUID[.7Ql88MphdUS0FvBv]{skills}

    \n
      \n
    1. Go to  compendium packs

    2. \n
    3. Click on  Create Compendium

      \n
        \n
      • Give your compendium a name (e.g. My Skills)
      • \n
      • Select Item as Document Type
      • \n
    4. \n
    \n

    Use existing skills

    \n
      \n
    1. Open up the compendium Skills
    2. \n
    3. Drag any skills you want to customise into your new compendium
    4. \n
    \n

    Create new skills

    \n
      \n
    1. Go to  Items Directory

    2. \n
    3. Cick on  Create Item

      \n
        \n
      • Give the skill a name
      • \n
      • Set Type to Skill
      • \n
    4. \n
    \n

    Setup

    \n

    @UUID[.gv3xcdEM8ugzJJdz]{Setups} are predefined sets of skills and a way to generate the characteristics (this can be by rolling dices or assigning certain amount of points for example). Once a setup has been created it can be used in the creation of multiple characters.

    \n
      \n
    1. Go to  Items Directory

    2. \n
    3. Click on  Create Item

      \n
        \n
      • Give the skill a name
      • \n
      • Set Type to Setup
      • \n
    4. \n
    5. Define the setup to set the basic configuration for a type of characters.

      \n
        \n
      • You can add a textual description on the Description tab
      • \n
      • If you click on the icon you can select a new one
      • \n
      • On the Details tab you can:\n
          \n
        • Select the Cthulhu Flavors where this setup is valid
        • \n
        • Define the biography sections and their names (click on the + to add extra Biography sections)
        • \n
        • Drag default items like @Compendium[CoC7.items.3elxAwnv7WCUNwng]{Punch}
        • \n
        • Show / Hide the Characteristics tab with the Enable characteristics checkbox
        • \n
      • \n
      • The Characteristics tab allows you to define the formula to roll the dices for each characteristic
      • \n
      • The Skills tab allows you to define the default set of skills by dragging items of type skill to the common skills area.
      • \n
    6. \n
    \n

    Occupations

    \n

    An @UUID[.PtxMa4YG5ZEkvJj9]{occupation} helps to define the character background, think about it as the definition of the set of occupational skills (the ones where the character can spend their occupation points) plus the definition of how to calculate the amount of available occupation points. Finally the occupation also allows to define the minimum and the maximum credit for a character with this occupation.

    \n

    Keep in mind that the set of occupational skills doesn't need to be fixed, the system allows to configure the occupation so when it's dragged to a Character sheet will give the option of selecting one or more skills from a closed list, or even add a pre defined number of skills to select from all the available ones.

    \n

    The occupation creation process is the following one:

    \n
      \n
    1. Go to  Items Directory

    2. \n
    3. Cick on  Create Item

      \n
        \n
      • Give the skill a name
      • \n
      • Set Type to Occupation
      • \n
    4. \n
    5. Define the occupation to select the relevant characteristics and the occupation skills

      \n
        \n
      • You can add a textual description on the Description tab and define the Source
      • \n
      • If you click on the icon you can select a new one
      • \n
      • On the Details tab you can:\n
          \n
        • Select the Occupation Type

        • \n
        • Define the characteristics used to calculate the occupation points, you can check the characteristics you want and define the multiplier, for the ones with Optional marked, the player will have to choose one at creation time.

          \n

          For instance if an occupation uses EDU * 2 + (STR or DEX) * 2 you have to select Education and put 2 on the Multiplier without marking Optional and then for Strength and Dexterity you have to check both, check Optional on both, and put 2 on the Multiplier on both.

        • \n
        • Finally you will have to define the Minimum and Maximum value for the Credit Rating skill for this occupation.

        • \n
      • \n
      • The Skills tab allows you to select the occupation skills by dragging items of the Type skill to the different sections. A typical occupation has 8 skills plus the Credit Rating skill.\n
          \n
        • The Common Skills includes the default occupation skills that can't be changed
        • \n
        • The Optional skills groups section allows to add groups (you can create several of them) of skills for the player to choose from. Once you click on the + sign a group is created and you can define the Number to chose from (number of skills to select) and create a pool of skills available for the selection by dragging them on the group.
        • \n
        • Finally the Additional Skills allows you to enter a number of skills the player can choose from the rest of the available skills.
        • \n
      • \n
    6. \n
    \n

    Player Character creation

    \n

    You can create a Player Character by creating the actor and filling the corresponding blank Character Sheet, but it's much easier if you have previously created a setup and an occupation (see above), if you have created both the process to create the Player Character is as follows:

    \n
      \n
    1. Go to  Actors Directory

    2. \n
    3. Cick on  Create Actor

      \n
        \n
      • Give the actor a name
      • \n
      • Set Type to Character
      • \n
    4. \n
    5. Drag and drop a item of Type setup (for instance 1920s, 1890s, Pulp, Modern,...) on the sheet to do the basic setup using the configuration defined on the item, this usually includes rolling the characteristics or setting their values with the points system, and set a default set of skills corresponding to the given setup.

    6. \n
    7. Drag and drop an occupation Type item on the sheet, this will probably involve selecting some skills from a given reduced set or from the remaining ones. This will calculate the available Personal points and Occupation points and assign the part of the Occupation points to reach the minimum value for Credit Rating of the selected occupation.

    8. \n
    9. On the keeper's menu on the left click  Keeper's tools, if this menu is not available need to have an active scene which can be created in the  Scenes Directory

    10. \n
    11. On the new submenu click  Character creation mode. A new tab called Development should appear on the character sheets.

    12. \n
    13. Click on the characters Development tab

    14. \n
    15. The first dot column is for your occupational skills these can be toggled by clicking them

      \n
        \n
      • If you have enabled the Pulp rule Archetypes you will have a second dot to toggle that
      • \n
    16. \n
    17. Distribute occupation/personal points in development tab taking on account that each skill has 5 columns:

      \n
        \n
      1. First one is the basic percentage of the skill
      2. \n
      3. The second one is the one to put the Personal interest points during the creation of the character
      4. \n
      5. The third one is only available on for the occupation skills (marked with a dark circle before the skill name) and it's used to assign the Occupation points.\n
          \n
        • If you have enabled the Pulp rule Archetypes you will have a forth column you enter your archetype points here
        • \n
      6. \n
      7. The forth/fifth column should be initially blank and its where the experience points will show up (you can also assign points here if you are playing an experienced character)
      8. \n
      9. The final column is a read only one with the final calculated value for the skill (the sum of the other 4)
      10. \n
    18. \n
    \n\n\n
    ","markdown":""},"sort":3},{"name":"Chases","type":"text","_id":"w645thphP1Sd2Whe","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Creating a new chase

    \n

    To create a chase create a new item of type chase.

    \n

    Only the keeper should have access to that item.

    \n

    A chase is composed of a succession of locations. Each location can be separated by an obstacle (barrier or hazard).

    \n

    A hazard will always be crossed but failing the check will slow you down.

    \n

    A barrier will stop you until you successfully pass or destroy it.

    \n

    \"\"

    \n

    The chase sheet is divided in 3 parts.

    \n
      \n
    • A header where you will see information about current location once a chase is started.
    • \n
    • A chase setup tab. This will allows you to create and follow the chase.
    • \n
    • A participant list where you can setup your participant. This tab will not work after the chase started.
    • \n
    \n

    Adding a participant.

    \n

    To add a participant click on the plus sign on the participant list or drag an actor or a token.

    \n

    Note that it is not mandatory to have a actor associated with a participant. This will allows for fast setup or to add someone on the fly to the chase.

    \n

    To be able to add a token to the chase a few control have been added to character and NPC sheets:

    \n

    \"\"

    \n

    Those icons will give additional information.

    \n
      \n
    1. Indicate that this actor is a synthetic actor (instance of an actor)
    2. \n
    3. Indicate that actor's data are not linked. Each instance of that actor has his own properties.
    4. \n
    5. Indicate that this actor has an associated token. You can drag and drop this onto a chase location or on the participant list.
    6. \n
    7. Indicate that actor's data are linked to an actor in the actors directory.
    8. \n
    \n

    Here you can set up your participant. Dragging an actor from the Actors sidebar will set the details. Note that you can select a different initiative and speed check. This is non standard in the CoC, but allows to setup unusual chases (futuristic matrix chase, dreamlands chase...)

    \n

    \"\"

    \n
      \n
    1. Dragging the questionmark onto a token will set the details to that token.
    2. \n
    \n

    Once you drag an actor or select a token you can set up the participant

    \n

    \"\"

    \n
      \n
    1. Clicking this will change the participant side from prey to chaser.
    2. \n
    3. Clicking this will trigger a speed check. Note that there will be no player entries necessary nor any roll card displayed.
    4. \n
    \n

    Participant list

    \n

    \"\"

    \n

    Here you can have the list of participant to the chase.

    \n
      \n
    1. Will trigger a chase roll. This will create a roll card if the participant has an associated actor (it's not a dummy). Holding shift will fast forward and solve the card.
    2. \n
    3. This will clear the speed roll if any, or delete the participant.
    4. \n
    \n

    \"\"

    \n
      \n
    1. Roll card waiting to get resolved in the chat.
    2. \n
    3. Speed check rolled. You can click this to get the details.
    4. \n
    5. To reset the speed check.
    6. \n
    \n

    \"\"

    \n

    Chase setup

    \n

    \"\"

    \n

    To setup a chase enter the initial numbers of locations and click initialize.

    \n

    \"\"

    \n

    The chase is initialized, you can adjust some options. Locations in white are initial locations and can not be modified.

    \n
      \n
    1. This is the chase track, the location in white are initials locations. The location in grey are actual chase locations.
    2. \n
    3. Selecting this will include in the chase participants who would have otherwise been able to escape.
    4. \n
    5. Selecting this will include in the chase participants who would have been excluded for being too slow.
    6. \n
    7. This is the number of locations between the slowest prey and the fastest chaser.
    8. \n
    9. This is the starting location of the fastest prey. Setting this to 0 will place him just before the start. 1 will place him at the start. -1 will place him 1 location before the start.
    10. \n
    11. This will animate token when they move to a new location.
    12. \n
    \n

    Setting up locations

    \n

    During setup or during chase you can select a location to modify it.

    \n

    Starting (white) locations can not be modified during setup.

    \n

    To modify a location select it by clicking on it. This will display the location details on the header part of the sheet.

    \n

    \"\"

    \n
      \n
    1. This will add a participant. If the chase is started the participant will be on that location. If the chase isn't started the participant will be added on the init track.
    2. \n
    3. This will remove the location. A location has to be empty to be removed.
    4. \n
    5. You can drag this and drop it on a scene. This will set the coordinates for that location. A red pin indicate that coordinates has been set. Right clicking a red pin will reset it's coordinate. If coordinates are set, and a participant with an associated token enter that location his token will be moved to that location.
    6. \n
    7. Add a new location.
    8. \n
    9. Active location.
    10. \n
    \n

    Setting up obstacles.

    \n

    You can add obstacle after and before a location. You can pre-fill an obstacle with a name, an associated check and some penalties.

    \n

    \"\"

    \n
      \n
    1. Toggle this to add damage to a barrier.
    2. \n
    3. Barrier's hit points.
    4. \n
    5. Movement action cost in case of failure.
    6. \n
    7. Check used to pass the location. When it's red the active actor does not have the associated check.
    8. \n
    \n

    Cut to the chase.

    \n

    When you are ready you can cut to the chase. If not all participant have a speed check this will trigger a warning and will not let you start.

    \n

    \"\"

    \n
      \n
    1. Initiative track. The active participant is circled in orange.
    2. \n
    3. Chase track. Active location and participant. You can drag drop participant from the chase track to move them freely. You can drag a new actor or token directly on the chase track. This will pop the import window and add that participant to the chase. In some cases (eg. new prey slower than the slowest participant) all movement action will be recalculated.
    4. \n
    5. A barrier.
    6. \n
    7. A hazard.
    8. \n
    \n

    Obstacle resolution flow

    \n

    \"\"

    \n
      \n
    1. When the active participant is facing an obstacle you can trigger the obstacle resolution flow by clicking this. This will open a chat card where keeper and player can interact to pass that obstacle. All changes made to the card can be reflected to the obstacle in the chase at the end of the flow.
    2. \n
    \n

    Here is a shorten flow example:

    \n

    \"\"\n\"\"\n\"\"\n\"\"

    \n

    Once the flow is complete all changes are send to the chase.

    \n

    \"\"

    \n

    This round is finished. All actor have spent their movement action. You can click Next round to proceed.

    \n

    Participant controls.

    \n

    \"\"

    \n

    You can modify or move a participant by using the controls button on his card.

    \n
      \n
    1. Those 3 icons will allow to delete, modify and activate a participant.
    2. \n
    3. Movement action. A yellow is available, grey is consumed, red is a deficit.
    4. \n
    5. This will control your participant bonus. He can draw a gun or be awarded bonus dices.
    6. \n
    7. Movement action controls. Here you can increase or decrease movement actions.
    8. \n
    9. Movement controls. You can move backward or forward. You can assist an ally (consume an action and give a bonus die) or take a cautious approach.
    10. \n
    \n\n
    ","markdown":""},"sort":4},{"name":"CoC ID System","type":"text","_id":"xIXeEy4A8thetqLp","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    CoC ID System

    \n

    Several FoundryVTT documents have an ID button accessable to "Game Master" and "Assistant GM" User Roles.

    \n

    System ID (CoC ID): Setting a skill's ID to i.skill.dodge will let the system know to treat that skill as Dodge on the combat card.

    \n

    Language: Which languge is this version of the Item in.

    \n

    Cthulhu Flavors: You can also control the era a skill is for, Animal Handling has different base values based on the era

    \n

    System ID Priority: The highest number will be considered best

    \n

    Item

    \n

    i.setup.example - The Investigator Wizard will use these you need to pick a single era to assign it to

    \n

    i.archetype.example - The Investigator Wizard will use these if the archetype optional rule is enabled

    \n

    i.occupation.example - The Investigator Wizard will list these

    \n

    i.skill.example - Setups, Investigator Wizard, and creating Actors will use these if the era matches

    \n

    RollTable

    \n

    rt..backstory-example - If the example part matches the backstory title in kebab case it will give a roll option in the backstory section of the Investigator Wizard

    \n

    Translations

    \n

    You can use the Keeper's tools on the left hand menu to update Actors based on CoC ID Items you have in your world, you need a scene to be able to access this menu

    \n

    RQID

    \n

    This system is based on RQID from the "Runequest Glorantha" system, documentation for it can be found here https://sun-dragon-cult.github.io/rqg-system/api/rqid

    \n\n
    ","markdown":""},"sort":5},{"name":"Combat","type":"text","_id":"SgRmyJJ7tb4o5Zb9","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Combat

    \n

    Starting the combat

    \n

    On the scene select the tokens involved on the combat right click on one of them and on the bottom right click on the Toggle combat state icon. This will add the actors corresponding to the selected tokens to the combat tab.\nThen on the combat tab you can start the combat.

    \n

    The combat tracker will help you to track both the initiatives of the different actors and the combat rounds.

    \n

    Initiative

    \n

    On foundry combat turns are ordered by initiative, in the system this is usually the DEX of the actor. So to set the initiatives click on the dice icon of each actor or just the icon with 3 persons on the top left of the combat tab to set all at once.

    \n

    Next to each actor on the combat tab there are 3 icons:

    \n
      \n
    • A target: to draw the gun (this will add 50 to that character initiative)
    • \n
    • A crossed eye: to show/hide the corresponding actor on the list.
    • \n
    • A skull: to mark a character as defeated and skip it for the following turns.
    • \n
    \n

    Select target / targets

    \n

    During an actor's turn, to attack the first thing to do is to select the target or targets, this can be done by doing a right click on the target's token and then clicking on the target icon (bottom left). Or set the target mode on from the left tool bar and click on the targets.

    \n

    Then open the actor's sheet and click on the name of the item that will be used for the attack. This can be from a single shot of a long range weapon, or some melee attack or a maneuver.\nThis click will start the attack workflow on the chat, the chat card will allow selecting further options of the attack depending on the type of attack.

    \n
    \n

    Tip: if you right click on the combat tracker sheet icon, this will pop put this as a little window and you then you can see both the combat tracker window and results of the combat on the chat.

    \n
    \n

    Melee

    \n

    Maneuvers

    \n

    Not implemented yet.

    \n

    Single Shot

    \n

    Automate fire

    \n

    Multiple Targets

    \n

    Reload

    \n\n
    ","markdown":""},"sort":6},{"name":"Commands Cheat Sheet","type":"text","_id":"lNIBCWjFNXWoujzQ","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Commands Cheat Sheet

    \n

    General rules

    \n

    Most sheet component can be clicked on the trigger a check/roll.\nAs a general rule you can modify those requests:

    \n
      \n
    • Shift will fast forward the request.
    • \n
    • Ctrl [GM only] will create a link in the chat with that request a roll to the players.
    • \n
    \n

    Sanity

    \n\n\n\n\n\n\n\n\n
    CommandAction
    Ctrl+Shift + left click SANRequest a Sanity Check for the character
    Ctr+Shift+Alt + left click SANRequest a Sanity Check and define the sanity loss
    \n

    Combined / Opposed rolls

    \n\n\n\n\n\n\n\n\n
    CommandAction
    Right Click on an elementStart/ Include the roll on an opposed roll
    Alt + Right Click on an elementStart/ Include the roll on an combined roll
    \n

    Other

    \n\n\n\n\n\n\n\n
    CommandAction
    cShow my own character sheet
    \n\n
    ","markdown":""},"sort":7},{"name":"Creating your first investigator","type":"text","_id":"9a8SLXDQHfCxrZzR","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Initial item setup

    \n

    The system comes with some compendiums ready for you to customise. These are reset every time you update or install the system so it is recommended you copy them into your own compendium and edit them as required.

    \n

    This page creates an investigator using the provided compendiums, if you are ready to full customise your character people read @UUID[.EQS1L753HOsOD4vR]{Character creation} instead.

    \n

    Skill

    \n

    Click on the  Compendium Packs tab then under the Item heading open up the Skills Item (CoC7). Here you will find the skills shown on the characters sheets available from Chaosium's website.

    \n
      \n
    • No adjustment - Can not be assigned personal skill points.
    • \n
    • No XP gain - You do not mark this skill for improvement on a success.
    • \n
    • Specialization - This skill is part of a group like Pilot or Flighting.
    • \n
    • Uncommon - This skill is uncommon and can be automatically hidden on the character sheet.
    • \n
    • Pushed - This skill can be pushed.
    • \n
    • Fighting - Automatically set Specialization, Combat, and the specialization name to Fighting.
    • \n
    • Firearms - Automatically set Specialization, Combat, and the specialization name to Firearms.
    • \n
    \n

    You can create a new Item Compendium and copy the skills you require into it allowing you to edit them. You can also create new skills by creating new Skill Items (Click on the  Items Directory tab then Create Item give this a name e.g. Gardening and set the Type to Skill).

    \n

    Setup

    \n

    Once you have set up your skills next create up a Setup, here is an example from the Items Examples compendium @Compendium[CoC7.items.CcH7CdXGtGTjMSCg]{1920's Setup Example}

    \n

    Setups allow to you standardise what skills, items, biography sections, and characteristics the investigators start with.

    \n

    Click on the  Items Directory tab then Create Item give this a name e.g. New Investigator Setup and set the Type to Setup

    \n

    On the Description tab to set the description click the  button to get an editor.

    \n

    On the Details tab click the  on the Biography Sections to add any sections you require from the Create a Backstory step of investigator creation. Click on the  Compendium Packs tab then under the Item heading open up the Items Examples Item (CoC7) and drag the @Compendium[CoC7.items.3elxAwnv7WCUNwng]{Punch} onto the setup.

    \n

    On the Characteristics tab you can customise how investigator characteristics are rolled / bought

    \n

    On the Skills tab you can drag the skills the investigator will have.

    \n

    All actor and item sheets have a  tab which can be used by the Keepers to store notes, only users that are set to GM can see this tab

    \n

    Occupation

    \n

    Occupations allow you set how many the occupation points, credit rating range, and skills the investigator starts with. Here is an example from the Items Examples compendium @Compendium[CoC7.items.NOsh6EdNSjpjahDF]{Occupation Example}

    \n

    Click on the  Items Directory tab then Create Item give this a name e.g. Driver and set the Type to Occupation

    \n

    On the Description tab to set the description click the  button to get an editor.

    \n

    On the Details tab you can set the Occupation Points calculation and Minimum/Maximum Credit Rating

    \n

    On the Skills tab you can drag skills from the Compendiums or Item Directory to Common skills, you can also set up multiple Optional skill groups deciding how many the investigator must select.

    \n

    Creating your first investigator

    \n

    Character

    \n

    To complete your character you need to have an active scene which can be created in the  Scenes Directory.

    \n

    Click on the  Actors Directory tab then Create Item give this a name e.g. New Investigator and set the Type to Character.

    \n

    You can drag your setup created above on to the character for the initial setup or drag this example instead @Compendium[CoC7.items.CcH7CdXGtGTjMSCg]{1920's Setup Example}

    \n

    Next drag your occupation created above on to the character or drag this example instead @Compendium[CoC7.items.NOsh6EdNSjpjahDF]{Occupation Example}

    \n

    On the left hand menu bar select  Keeper's tools then select  Character creation mode.

    \n

    On the character sheet select the Development tab. The first dot indicates this is an occupation skill, the first column of numbers is the base value, next if where you assign personal points, third is for occupation points, the fourth is for experience gained during the investigator improvement phase, the final column is the total skill percent.

    \n

    You can see how many personal and occupation points you have spent so far, once you have spent all your points you need to toggle off  Character creation mode to allow characters to see their HP, MP, Sanity, and luck

    \n\n
    ","markdown":""},"sort":8},{"name":"Items","type":"text","_id":"oFE5T3zT5PMhWbui","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Items

    \n

    The system support many different types of items, from basic items or weapons to skills or the complete setup of a type of character. You can see examples on the compendium that comes with the system.

    \n

    To create any of the types of items you always start the same way

    \n
      \n
    1. Go to the items directory
    2. \n
    3. Click on Create Item\n
        \n
      • Give it a name
      • \n
      • Select the item Type (see below for details on each one)
      • \n
      • Select the destination folder.
      • \n
    4. \n
    \n

    And have some common structure so on all of them:

    \n
      \n
    • You can add a textual description on the Description tab or just on the main window if it doesn't have tabs.
    • \n
    • If you click on the icon you can pick or upload a new one
    • \n
    \n

    Available types

    \n
      \n
    • @UUID[.sJiiuIJZTToArDnD]{Item Type: Archetype}
    • \n
    • @UUID[.OaIgfX2Ij0vQoVtz]{Item Type: Book}
    • \n
    • @UUID[.w645thphP1Sd2Whe]{Item Type: Chases}
    • \n
    • Item Type: Item
    • \n
    • @UUID[.PtxMa4YG5ZEkvJj9]{Item Type: Occupation}
    • \n
    • @UUID[.gv3xcdEM8ugzJJdz]{Item Type: Setup}
    • \n
    • @UUID[.7Ql88MphdUS0FvBv]{Item Type: Skill}
    • \n
    • Item Type: Spell
    • \n
    • Item Type: Status
    • \n
    • Item Type: Talent
    • \n
    • Item Type: Weapon
    • \n
    \n\n
    ","markdown":""},"sort":9},{"name":"Item Type: Archetype","type":"text","_id":"sJiiuIJZTToArDnD","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Item Type: Pulp Archetype

    \n

    Archetypes are used on Pulp games. They provide skill and characteristic bonuses.

    \n

    Once the Archetype item has been created, the Archetype Sheet is shown.\nThere you can define the details of the Archetype:

    \n
      \n
    • On the Details tab you can:\n
        \n
      • Assign the number of Additional points
      • \n
      • Assign the number of Pulp Talents
      • \n
      • Define the Basic Characteristics and if you want to Use a dice roll to generate them.
      • \n
      • Define the Suggested Occupations
      • \n
      • Define the Suggested Traits
      • \n
    • \n
    • On the Skills tab you can:\n
        \n
      • Drag the skills corresponding to this Archetype
      • \n
    • \n
    \n\n
    ","markdown":""},"sort":10},{"name":"Item Type: Book","type":"text","_id":"OaIgfX2Ij0vQoVtz","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Item Type: Book

    \n

    The system has a special type of item for the books to be able to define the Sanity Loss, if it's a Mythos Tome or an Occult book, what Spells or Skills it provides and of curse a description and the book image.

    \n\n
    ","markdown":""},"sort":11},{"name":"Item Type: Occupation","type":"text","_id":"PtxMa4YG5ZEkvJj9","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Item Type: Occupation

    \n

    An occupation helps to define the character background, think about it as the definition of the set of occupational skills (the ones where the character can spend their occupation points) plus the definition of how to calculate the amount of available occupation points. Finally the occupation also allows to define the minimum and the maximum credit for a character with this occupation.

    \n

    Keep in mind that the set of occupational skills doesn't need to be fixed, the system allows to configure the occupation so when it's dragged to a Character sheet will give the option of selecting one or more skills from a closed list, or even add a pre defined number of skills to select from all the available ones.

    \n
      \n
    1. Go to the  Items Directory tab

    2. \n
    3. Click on  Create Item

      \n
        \n
      1. Give the set up a name e.g. Librarian
      2. \n
      3. Set Type to Occupation
      4. \n
    4. \n
    5. On the Description tab you can change the name, icon, name of the source book, and description

    6. \n
    7. On the Details tab you can control

      \n
        \n
      1. Select the Occupation Type

      2. \n
      3. Define the characteristics used to calculate the occupation points, you can check the characteristics you want and define the multiplier, for the ones with Optional marked, the player will have to choose one at creation time.

        \n
          \n
        1. For instance if an occupation uses EDU * 2 + (STR or DEX) * 2 You have to select Education and put 2 on the Multiplier without marking Optional and then for Strength and Dexterity you have to check both, check Optional on both, and put 2 on the Multiplier on both.
        2. \n
        3. Finally you will have to define the Minimum and Maximum value for the Credit Rating skill for this occupation.
        4. \n
      4. \n
      5. Names of biography sections (click on the + to add extra Biography sections), this can be replaced with a single block biography in settings

      6. \n
      7. Under items you can drag and drop default items and weapons

      8. \n
    8. \n
    9. On the Skills you can drag and drop skills in to multiple sections, A typical occupation has 8 skills plus the Credit Rating skill.

      \n
        \n
      1. The Common Skills includes the default occupation skills that can't be changed
      2. \n
      3. The Optional skills groups section allows to add groups (you can create several of them) of skills for the player to choose from. Once you click on the + sign a group is created and you can define the Number to chose from (number of skills to select) and create a pool of skills available for the selection by dragging them on the group.
      4. \n
      5. Finally the Additional Skills allows you to enter a number of skills the player can choose from the rest of the available skills.
      6. \n
    10. \n
    \n\n
    ","markdown":""},"sort":12},{"name":"Item Type: Setup","type":"text","_id":"gv3xcdEM8ugzJJdz","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Item Type: Setup

    \n

    Setups are predefined sets of skills and a way to generate the characteristics (this can be by rolling dices or assigning certain amount of points for example).

    \n
      \n
    1. Go to the  Items Directory tab

    2. \n
    3. Click on  Create Item

      \n
        \n
      1. Give the set up a name e.g. 1920's Setup
      2. \n
      3. Set Type to Setup
      4. \n
    4. \n
    5. On the Description tab you can change the name, icon, name of the source book, and description

    6. \n
    7. On the Details tab you can control

      \n
        \n
      1. Show / Hide the Characteristics tab with the Enable characteristics checkbox
      2. \n
      3. Which version of Call of Cthulhu this is for, this can be filtered in compendiums
      4. \n
      5. Names of biography sections (click on the + to add extra Biography sections), this can be replaced with a single block biography in settings
      6. \n
      7. Under items you can drag and drop default items and weapons
      8. \n
    8. \n
    9. On the Characteristics tab you can set a points buy or roll characteristics and the formula

    10. \n
    11. On the Skills tab under common skill you can drag and drop default skills

    12. \n
    \n\n
    ","markdown":""},"sort":13},{"name":"Item Type: Skill","type":"text","_id":"7Ql88MphdUS0FvBv","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Item Type: Skill

    \n

    A skill will be rolled during tests.

    \n
      \n
    1. Go to the  Items Directory tab

    2. \n
    3. Click on  Create Item

      \n
        \n
      1. Give the skill a name e.g. Art/Craft (Dancing)
      2. \n
      3. Set Type to Skill
      4. \n
    4. \n
    5. On the Description tab you can change the name, icon, Cthulhu Flavors (which editions this appears in), and description

      \n
        \n
      1. No adjustment - Can not be assigned personal skill points.
      2. \n
      3. No XP gain - You do not mark this skill for improvement on a success.
      4. \n
      5. Specialization - This skill is part of a group like Pilot or Flighting.
      6. \n
      7. Uncommon - This skill is uncommon and can be automatically hidden on the character sheet.
      8. \n
      9. Pushed - This skill can be pushed.
      10. \n
      11. Fighting - Automatically set Specialization, Combat, and the specialization name to Fighting.
      12. \n
      13. Firearms - Automatically set Specialization, Combat, and the specialization name to Firearms.
      14. \n
    6. \n
    \n\n
    ","markdown":""},"sort":14},{"name":"Links","type":"text","_id":"7sSX5w3psDau2CDn","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Links

    \n
      \n
    • Links are a way for a GM to request for a roll (Characteristic, Attribute, Skill, SAN loss, Weapon).
    • \n
    • Links can contain an active effect.
    • \n
    • Links are created in the chat log. When you click a link it will trigger a check for your(s) controlled/impersonated character(s).
    • \n
    • Links can be included in any editor, mainly journal entries.
    • \n
    • Link can be created in 5 ways:\n
        \n
      • By manually typing it (read details below).
      • \n
      • By CTRL+click on any sheet element (Characteristic, Attribute, skill, SAN loss).
      • \n
      • By dragging a sheet element (Characteristic, Attribute, skill (+CTRL)) on an editor (Journal entry)
      • \n
      • By CTRL + dragging an item (skill or weapon) from a compendium or an item directory on an editor. When a link is created that way and the used as a GM, if your controlled character doesn't hold the weapon/skill you'll be prompted to create the corresponding item.
      • \n
      • By using the included compendium written by Lozalojo.
      • \n
    • \n
    • Links can be dragged from chat log on an editor.
    • \n
    • When a link is created the difficulty/penalty selection windows will open. Hold SHIFT to bypass that comportment.
    • \n
    • When a link is created, the roll mode will be check. If the roll mode is set to 'blind GM roll' the link will be created as blind.
    • \n
    • When a link is created with a difficulty and a penalty, the difficulty/penalty windows will not pop.
    • \n
    • When a link is created without a difficulty or a penalty, the difficulty/penalty windows will pop. Holding SHIFT will fastforward the roll (regular/no penalty).
    • \n
    \n

    Writing links

    \n
      \n
    • Links should be written using the @UUID[.9YesdNtaElDQaaaZ]{Link creation tool}. The link creation window is a tool for GM. It's located in the left side bar.
    • \n
    \n

    Links for chat messages and sheet editors (NPC, Journal entries...).\nFormat of link is @coc7.TYPE_OF_REQUEST[OPTIONS]{TEXT_TO_DISPLAY}

    \n
      \n
    • TYPE_OF_REQUEST :\n
        \n
      • sanloss: trigger a san check, upon failure will propose to deduct the corresponding SAN.
      • \n
      • check: trigger a check depending on the options.
      • \n
      • item: trigger use of a weapon. Only items of type weapon can be triggered.
      • \n
    • \n
    • OPTIONS: [] = optional, default\n
        \n
      • sanloss:\n
          \n
        • sanMax: max SAN loss
        • \n
        • sanMin: min SAN loss
        • \n
      • \n
      • check:\n
          \n
        • type: type of check ( characteristic, skill, attrib).
        • \n
        • name: name of the skill/characteristic/attrib.
        • \n
        • [blind]: will force a blind check, if not present the check will depend on your selected roll mode.
        • \n
      • \n
      • all:\n
          \n
        • [difficulty]: ? (blind), 0 (regular), + (hard), ++ (extreme), +++ (critical).
        • \n
        • [modifier]: -x (x penalty dice), +x (x bonus dice), 0 (no modifier).
        • \n
        • [icon]: icon tu use (font awesome, fas fa-dice).
        • \n
      • \n
    • \n
    • TEXT_TO_DISPLAY: Name to display, this is optional.
    • \n
    \n

    Examples

    \n\n\n\n\n\n\n\n\n\n\n\n\n
    LinkResult
    @coc7.sanloss[sanMax:1D6,sanMin:1,difficulty:++,modifier:-1]{Hard San Loss (-1) 1/1D6}
    @coc7.check[type:charac,name:STR,difficulty:+,modifier:-1]{Hard STR check(-1)}
    @coc7.check[type:attrib,name:lck,difficulty:+,modifier:-1]{Hard luck check(-1)}
    @coc7.check[type:skill,icon:fas fa-arrow-alt-circle-right,name:anthropology,difficulty:+,modifier:-1]{Hard Anthropology check(-1)} (with icon)
    @coc7.sanloss[sanMax:1D6,sanMin:1]{San Loss (-1) 1/1D6} (without name, difficulty nor modifier)
    @coc7.check[type:skill,icon:fas fa-arrow-alt-circle-right,name:anthropology,modifier:+1]{Anthropology check (+1)} (with icon, without name nor difficulty)
    \n

    Using links

    \n
      \n
    • You can drag/drop links from chat to sheets and between sheets.
    • \n
    • You can drag/drop a link directly on a token.
    • \n
    • You can drag/drop items and skills on a journal entry while holding CTRL, this will create the corresponding check with regular difficulty and 0 modifier.
    • \n
    • You can create link in the chat by clicking and holding CTRL from any sheet (PC/NPC/Creature) corresponding characteristic/luck/SAN/Competence/weapon/San loss.\n
        \n
      • This will open the select penalty/difficulty dialogue. Clicking on the generated link will then trigger the check with all parameters.
      • \n
      • Holding Shift on top will not open the penalty/difficulty dialogue. Clicking on the generated link will open the penalty/difficulty dialogue then trigger the check.
      • \n
    • \n
    \n\n
    ","markdown":""},"sort":15},{"name":"Link creation tool","type":"text","_id":"9YesdNtaElDQaaaZ","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Link creation tool

    \n

    The system includes a tool to help you create links easily.\nIt's located on the left side bar. Click on the  icon.\nThis tools is available to GM only.

    \n

    \"Creation

    \n

    using this you can create @UUID[.7sSX5w3psDau2CDn]{link} for skill check, san check, effects ...\nalternatively you can open the tool by holding CTRL while clicking no an item or a skill.

    \n

    Main window

    \n

    Clicking on the tool icon will open a window :

    \n

    \"Main

    \n

    You can there select options for you link.

    \n
      \n
    • "Compendium packs" and "Items directory" allows you to reference an object from corresponding folder.
    • \n
    • "Modifiers" will allows you to add modifiers to your check.
    • \n
    • "blind" will force the roll mode to be blind.
    • \n
    • "Label" will allows you to change the display label.
    • \n
    • "Icon" will allows you to choose an icon for your link. Icons can be :\n
        \n
      • A font awesome or a game-icons reference : "fas fa-ankh" or "game-icon game-icon-tentacle-strike".
      • \n
      • A link to an image in the system data or system core: "icons/magic/symbols/arrowhead-green.webp".
      • \n
    • \n
    \n

    If you do not supply a label and/or an icon, a default label and icon will be added.

    \n

    \"default

    \n

    Effects window

    \n

    Selecting effects will open an advance window where you can create links for @UUID[.ag5ghFZ6hYIm2JyJ]{active effects}.\nSelect the options the same way you will be doing for a regular effect.

    \n

    Using links

    \n
      \n
    • Once your link is created and valid it will appear in a white box in the middle of the window.
    • \n
    \n

    \"link

    \n
      \n
    • You are now ready to whisper it to your players, copy it in your clipboard so you can add it to your items or journal entries or send it to the chat.
    • \n
    \n

    \"link

    \n
      \n
    • When a player clicks a link the corresponding action will be performed by his character.
    • \n
    • When a GM clicks a link the corresponding action will be performed by his selected tokens.
    • \n
    • A link drag/dropped in journal entries, on a token etc...
    • \n
    \n

    \"link

    \n\n
    ","markdown":""},"sort":16},{"name":"Sanity","type":"text","_id":"9xaysNap3U5XbkTn","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Sanity Checks

    \n

    The system has integrated the sanity check workflow and can handle sanity rolls, tracking Sanity loss and rolling for temporal insanity.

    \n

    Requesting Sanity rolls

    \n
      \n
    • The Keeper can click with Ctrl+Shift on the Sanity of character to request a Sanity Check for the character

      \n
        \n
      • If the Keeper also press Alt (so holding at the same time Ctrl+Shift+Alt) while clicking on the Sanity of a character, a dialog will pop-up to introduce the sanity loss if the sanity check is passed and the value for when the sanity check is failed.
      • \n
    • \n
    • Video showing the Sanity check workflow

    • \n
    \n\n
    ","markdown":""},"sort":17}],"_id":"sxB2OXbfwV6M0nyQ","flags":{"CoC7":{"cocidFlag":{"eras":{},"id":"je..call-of-cthulhu-7-th-edition-system-documentation","lang":"en","priority":0}}}} -{"name":"La Llamada de Cthulhu 7ª Edición [es]","pages":[{"name":"Documentación del sistema","type":"text","_id":"wCgaTtRQ8e9ov3Of","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Documentación del sistema para la versión 0.10.X

    \n

    Este documento es una descripción en progreso del sistema CoC7. No es un tutorial sobre cómo usar FoundryVTT.

    \n

    Necesitarás uno de los siguientes elementos para jugar el juego:

    \n
      \n
    • Manual del Guardián de la 7ª edición de La Llamada de Cthulhu de EDGE/Chaosium
    • \n
    • Caja de Inicio de la 7ª edición de La Llamada de Cthulhu de EDGE/Chaosium
    • \n
    • Reglas de Inicio Rápido de la 7ª edición de La Llamada de Cthulhu de EDGE/Chaosium
    • \n
    \n

    El sistema automatiza la mayoría de las tareas y reglas regulares asociadas con la ejecución de un juego.

    \n

    Varias secciones de las hojas de personaje tienen información emergente que aparece después de dos segundos; este retardo se puede cambiar en las opciones.

    \n

    Esta documentación se puede abrir en Opciones del Juego -> Ayuda y Documentación -> Consulte el manual del sistema CoC7.

    \n

    Cambios recientes

    \n

    Para ver la lista completa de cambios, consulta el registro de cambios en GitHub.

    \n
      \n
    • @UUID[.7EIwdnPaf88lnA3J]{Sistema de identificación CoC} - Se establece etiquetas en documentos, por ejemplo, i.skill.dodge para encontrar habilidades de Esquivar en los actores.
    • \n
    • Asistente de Investigador - Se utiliza elementos de identificación CoC para crear investigadores.
    • \n
    • @UUID[.wCgaTtRQ8e9ov3Of#resumen-de-opciones]{Reglas Pulp} - Se implementa una regla opcional de Pulp Cthulhu para ignorar la edad al calcular la velocidad de movimiento.
    • \n
    • @UUID[.nwLzdFw9VfuloSPN]{Efectos activos} - Se agrega soporte para dados de bonificación/penalización al lanzar desde las hojas de personaje del actor.
    • \n
    \n

    Secciones de descripción a continuación

    \n

    Si es la primera vez, se recomienda leer también las siguientes secciones en esta página.

    \n

    Foundry VTT se basa en actores y objetos. Este módulo incluye varios actores y objetos específicos del sistema, y algunos ejemplos se pueden encontrar en los compendios del sistema incluidos.

    \n
      \n
    • @UUID[.wCgaTtRQ8e9ov3Of#resumen-de-actor]{Resumen de actor}
    • \n
    • @UUID[.wCgaTtRQ8e9ov3Of#resumen-de-objetos]{Resumen de objetos}
    • \n
    • @UUID[.wCgaTtRQ8e9ov3Of#resumen-de-opciones]{Resumen de opciones}
    • \n
    • @UUID[.wCgaTtRQ8e9ov3Of#menú-de-escenas-de-la-llamada-de-cthulhu]{Resumen de menú de escenas}
    • \n
    • @UUID[.wCgaTtRQ8e9ov3Of#atajos-de-teclado-y-ratón]{Atajos de teclado y ratón}
    • \n
    • @UUID[.YEMXMawcEfdtxWmF]{Creación de tu primer investigador}
    • \n
    • @UUID[.DoUY8DHlkmnVTlJ5]{Creación de personaje}
    • \n
    \n

    Cómo utilizar el sistema

    \n
      \n
    • @UUID[.nwLzdFw9VfuloSPN]{Efectos activos} - Un efecto activo modificará una característica(s), atributo(s), habilidad(es) del actor.
    • \n
    • @UUID[.2qE8SqTgHQPtDd9k]{Importador de actores}
    • \n
    • Tipo de Actor: Personaje (POR HACER)
    • \n
    • Tipo de Actor: Contenedor (POR HACER)
    • \n
    • Tipo de Actor: Criatura (POR HACER)
    • \n
    • Tipo de Actor: PNJ (POR HACER)
    • \n
    • Creador de enlaces de chat (POR HACER)
    • \n
    • Modo de creación de personajes (POR HACER)
    • \n
    • @UUID[.uxecQMrkmmzDbz3G]{Combate} (POR HACER)
    • \n
    • Fase de desarrollo (POR HACER)
    • \n
    • @UUID[.72wfKKZQNKCPcMqd]{Tipos de Objetos} (POR HACER)
    • \n
    • @UUID[.91QlqUCNziC6rNW0]{Tipo de Item: Arquetipo} (POR HACER)
    • \n
    • @UUID[.zXDVUmUPwz9Jd0E3]{Tipo de Item: Libro} (POR HACER)
    • \n
    • @UUID[.pp7jp7iMNdTKwK8E]{Tipo de Item: Persecuciones}
    • \n
    • Tipo de Item: Item (POR HACER)
    • \n
    • @UUID[.EenUE4RD07LSkQsd]{Tipo de Item: Ocupación}
    • \n
    • @UUID[.qgPBzkndBqCvMO7P]{Tipo de Item: Configuración}
    • \n
    • @UUID[.HMsnfFt14ZdIshp6]{Tipo de Item: Habilidad} (POR HACER)
    • \n
    • Tipo de Item: Hechizo (POR HACER)
    • \n
    • Tipo de Item: Estado (POR HACER)
    • \n
    • Tipo de Item: Talento (POR HACER)
    • \n
    • Tipo de Item: Arma (POR HACER)
    • \n
    • @UUID[.zi5N2FLi4pkFJA3o]{Herramienta de Creación de Enlaces}
    • \n
    • @UUID[.B7ZphTmxIrLP1kCl]{Enlaces} (POR HACER)
    • \n
    • Macros (POR HACER)
    • \n
    • Tiradas (POR HACER)
    • \n
    • @UUID[.Uyh0MRcLVeszfVcP]{Cordura} (POR HACER)
    • \n
    • Iniciar Descanso (POR HACER)
    • \n
    • Ganancia de EXP (POR HACER)
    • \n
    \n

    Resumen de actor

    \n
      \n
    • Personaje - Un personaje completo, generalmente un investigador. [Ejemplo de Personaje]
    • \n
    • Contenedor - Un contenedor de inventario. [Ejemplo de Contenedor]
    • \n
    • Criatura - Un personaje más simple, adecuado para criaturas. [Ejemplo de Criatura]
    • \n
    • PNJ - Un personaje más simple, adecuado para PNJ. [Ejemplo de PNJ]
    • \n
    \n

    Resumen de objetos

    \n
      \n
    • Arquetipo - Un conjunto de habilidades y otras estadísticas que implementan un arquetipo de Pulp Cthulhu. Estos no activan la automatización en el sistema. [Ejemplo de Arquetipo]
    • \n
    • Libro - Un tomo arcano que puede contener hechizos y mejoras para el personaje.
    • \n
    • Item - Un equipo o herramienta.
    • \n
    • Ocupación - Un conjunto de habilidades y otras estadísticas que implementan una ocupación de Call of Cthulhu. [Ejemplo de Ocupación]
    • \n
    • Configuración - Un conjunto de configuraciones predeterminadas para la creación de personajes, criaturas o PNJ. [Ejemplo de Configuración]
    • \n
    • Habilidad - Una habilidad con un porcentaje base y algunas etiquetas. [Ejemplo de Habilidad]
    • \n
    • Hechizo - Un hechizo mágico.
    • \n
    • Estado - Una condición de fobia o manía. [Ejemplo de Manía]
    • \n
    • Talento - Un poder especial para Pulp Cthulhu. Estos no activan la automatización en el sistema. [Ejemplo de Talento]
    • \n
    • Arma - Un objeto con estadísticas de arma (esto incluye ataques desarmados). [Ejemplo de Arma]
    • \n
    \n

    Resumen de opciones

    \n

    Haz clic en la pestaña Opciones y luego, bajo el encabezado Opciones del juego, haz clic en Configurar ajustes.

    \n

    Haz clic en Configuraciones del Sistema

    \n
      \n
    • Reglas Variantes/Opcionales - Aquí puedes activar reglas individuales de Pulp Cthulhu y otras reglas opcionales.
    • \n
    • Configuraciones de Iniciativa - Configuraciones adicionales para la regla opcional de iniciativa.
    • \n
    • Configuraciones de Tiradas - Opciones predeterminadas para las tiradas.
    • \n
    • Configuraciones de Tarjetas de Chat - Configura los mensajes de chat.
    • \n
    • Configuraciones de Escena - Configuraciones de Escena.
    • \n
    • Configuraciones de Arte del Juego - Esto te permite establecer un ícono y mensaje de pausa personalizados.
    • \n
    • Configuraciones de Hoja - Esto te permite cambiar las configuraciones de la hoja de personaje y el CSS opcional.
    • \n
    • Configuraciones de Armas - Configuraciones de Armas.
    • \n
    • Configuraciones de Desarrollador y Depuración - Estas configuraciones pueden afectar tu mundo cuando se lanzan nuevas actualizaciones, así que úsalas solo en mundos de prueba.
    • \n
    • Configuraciones de Tabla de Tiradas - Cuando se realizan tiradas de cordura, el sistema puede realizar automáticamente una tirada por un episodio de locura. Puedes ver ejemplos en los compendios de Tablas de Tiradas de Cordura.
    • \n
    \n

    Menú de escenas de La Llamada de Cthulhu

    \n

    Para acceder a este menú, necesitarás tener una escena activa que se puede crear en el Directorio de Escenas. Estas opciones solo están disponibles para el Guardián.

    \n
      \n
    • Herramientas del Guardián\n
        \n
      • Fase de Desarrollo: Cuando está activado, los jugadores pueden realizar tiradas de mejora para sus habilidades marcadas.
      • \n
      • Modo de Creación de Personajes: Cuando está activado, los jugadores pueden distribuir puntos entre sus habilidades.
      • \n
      • Ganancia de EXP: Cuando está activado, una habilidad se marcará para mejorar después de una tirada exitosa.
      • \n
      • Enviar una tirada ficticia a los jugadores: Al hacer clic, los jugadores verán una tirada privada ficticia del Guardián.
      • \n
      • Iniciar Descanso: Al hacer clic, elige personajes para realizar un descanso y tirar por ganancias de EXP.
      • \n
    • \n
    • ¡Tirar!: Se utiliza para tirar 1d100 con un umbral, dificultad y dados de bonificación o penalización.
    • \n
    • Crear enlace: Crea un enlace de tirada para que los jugadores hagan clic.
    • \n
    \n

    Atajos de teclado y ratón

    \n

    Hay muchos elementos en las hojas que activan una tirada de dados al hacer clic. Por lo general, se muestra un diálogo para solicitar al usuario una dificultad y un posible bono o penalización. Este comportamiento se modifica con los siguientes controles:

    \n
      \n
    • Haz clic derecho en cualquier elemento tirable para incluirlo en una tirada opuesta. Mientras la tarjeta esté abierta, todas las tiradas hechas\ncon clic derecho se añadirán a la tirada opuesta.
    • \n
    • Alt + Clic derecho en cualquier elemento tirable para incluirlo en una tirada combinada.
    • \n
    • Shift + Clic izquierdo en un elemento tirable hará una tirada sin solicitar dificultad o bono/penalización.
    • \n
    • Ctrl + Clic izquierdo en un elemento tirable creará una solicitud de tirada. Solo disponible para el Guardián.
    • \n
    • Alt + Clic izquierdo en la cordura solicitará al jugador la pérdida mínima y máxima de cordura.
    • \n
    \n\n
    ","markdown":""},"sort":0},{"name":"Efectos","type":"text","_id":"nwLzdFw9VfuloSPN","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Efectos

    \n

    El sistema permite la creación de Efectos Activos.\nUn efecto activo modificará las características, atributos o habilidades de un actor.\nLos efectos pueden crearse como un @UUID[.B7ZphTmxIrLP1kCl]{enlace} utilizando la @UUID[.zi5N2FLi4pkFJA3o]{herramienta de creación de enlaces} o directamente en la hoja de personaje haciendo clic en el botón.

    \n

    Pestaña de Efectos

    \n

    Los efectos se mostrarán en las pestañas de efectos (icono entre Transfondo y botón de Notas del GM) en la hoja de personaje.

    \n

    \"pestaña

    \n

    Los efectos se dividen en 4 categorías para PC:

    \n
      \n
    • Temporales: estos son efectos con duración.
    • \n
    • Pasivos: estos son efectos permanentes.
    • \n
    • Inactivos: estos son efectos desactivados.
    • \n
    • Estado: estos son efectos utilizados y creados por el sistema (estado de heridas, propenso, loco...). Estos efectos no incluyen cambios.
    • \n
    \n

    Para NPC/Criaturas, solo verás 2 secciones: efectos activos e inactivos.\nCuando un efecto no está inactivo, los cambios correspondientes se aplicarán al actor.

    \n

    Creación de efectos

    \n

    Puedes crear efectos haciendo clic en el botón "+ Añadir".\nEsto abrirá la ventana de creación de efectos.\nEsta ventana tiene 3 pestañas.

    \n

    Pestaña de Detalles

    \n

    \"Pestaña

    \n

    Pestaña de Duración

    \n

    \"Pestaña

    \n

    Pestaña de Cambios

    \n

    \"Pestaña

    \n

    Esta última pestaña incluirá todos los cambios realizados en la hoja de personaje.

    \n

    Cambios

    \n

    Un efecto incluye una lista de cambios. Cada cambio debe abordarse con la ruta del sistema correspondiente.\nLos cambios disponibles son:

    \n
      \n
    • Características:\n
        \n
      • Fuerza:\n
          \n
        • system.characteristics.str.value
        • \n
        • system.characteristics.str.bonusDice
        • \n
      • \n
      • Constitución:\n
          \n
        • system.characteristics.con.value
        • \n
        • system.characteristics.con.bonusDice
        • \n
      • \n
      • Tamaño:\n
          \n
        • system.characteristics.siz.value
        • \n
        • system.characteristics.siz.bonusDice
        • \n
      • \n
      • Destreza:\n
          \n
        • system.characteristics.dex.value
        • \n
        • system.characteristics.dex.bonusDice
        • \n
      • \n
      • Apariencia:\n
          \n
        • system.characteristics.app.value
        • \n
        • system.characteristics.app.bonusDice
        • \n
      • \n
      • Inteligencia:\n
          \n
        • system.characteristics.int.value
        • \n
        • system.characteristics.int.bonusDice
        • \n
      • \n
      • Poder:\n
          \n
        • system.characteristics.pow.value
        • \n
        • system.characteristics.pow.bonusDice
        • \n
      • \n
      • Educación:\n
          \n
        • system.characteristics.edu.value
        • \n
        • system.characteristics.edu.bonusDice
        • \n
      • \n
    • \n
    • Atributos:\n
        \n
      • Suerte:\n
          \n
        • system.attribs.lck.value
        • \n
        • system.attribs.lck.bonusDice
        • \n
      • \n
      • Cordura:\n
          \n
        • system.attribs.san.value
        • \n
        • system.attribs.san.bonusDice
        • \n
      • \n
      • Movimiento:\n
          \n
        • system.attribs.mov.value
        • \n
      • \n
      • Corpulencia:\n
          \n
        • system.attribs.build.value
        • \n
      • \n
      • Bono de Daño:\n
          \n
        • system.attribs.db.value
        • \n
      • \n
      • Armadura:\n
          \n
        • system.attribs.armor.value
        • \n
      • \n
    • \n
    • Atributos derivados. Solo el valor máximo de esos atributos debe modificarse. Esos cambios se aplican después de que se hayan realizado todos los demás cambios. Si ese atributo está en modo automático, se volverá a calcular con los cambios de características anteriores antes de que se vea afectado su valor.\n
        \n
      • Puntos de vida:\n
          \n
        • system.attribs.hp.max
        • \n
      • \n
      • Cordura:\n
          \n
        • system.attribs.san.max
        • \n
      • \n
    • \n
    • Habilidades. ¡Las habilidades se identifican por sus nombres completos y distinguen mayúsculas!\n
        \n
      • Encanto\n
          \n
        • system.skills.Encanto.value
        • \n
        • system.skills.Encanto.bonusDice
        • \n
      • \n
      • Combatir (Pelea)\n
          \n
        • system.skills.Combatir (Pelea).value
        • \n
        • system.skills.Combatir (Pelea).bonusDice
        • \n
      • \n
    • \n
    \n\n
    ","markdown":""},"sort":1},{"name":"Importador de actores","type":"text","_id":"2qE8SqTgHQPtDd9k","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Importador de actores

    \n

    Puedes utilizar el importador de actores para importar varios bloques de PNJ/Criaturas desde aventuras y utilizando el exportador JSON de The Dholes House

    \n

    Para abrir el importador de actores, abre el directorio de Actores y haz clic en Importador de actores en la parte inferior de la barra lateral, o en una escena activa, haz clic en Importador de Actores.

    \n

    Resumen

    \n

    Si es la primera vez, se recomienda que también leas las siguientes secciones.

    \n
      \n
    • Personaje No Jugador (PNJ) / Criatura
    • \n
    • JSON del Importador de actores de The Dhole's House
    • \n
    \n

    Personaje No Jugador (PNJ) / Criatura

    \n

    \"\"

    \n
      \n
    1. Selecciona PNJ o Criatura

    2. \n
    3. El sistema debería convertir el bloque de personaje de una edición anterior a la 7ª

    4. \n
    5. Selecciona los idiomas del bloque de personaje

    6. \n
    7. Al agregar habilidades, objetos, hechizos y armas, el sistema puede intentar encontrar elementos en tu mundo con el mismo nombre. Puedes seleccionar el orden en que se buscan los segundos.

      \n

      Objetos: Desde tu directorio de objetos

      \n

      Mundo: Desde tus compendios de mundo

      \n

      Módulos: Desde tus compendios de módulos

      \n

      Sistema: Desde los compendios del sistema proporcionados con este sistema

    8. \n
    9. Se proporciona un diseño de ejemplo aquí. Puedes copiar esto en tu portapapeles si deseas editarlo o pegar el texto de una aventura.

    10. \n
    \n

    Haz clic en Importar y se creará un actor en el directorio de Actores en la carpeta de Personajes Importados. Cualquier texto que no se haya entendido se almacenará en las notas del Guardián.

    \n

    JSON del Importador de actores de The Dhole's House

    \n

    \"\"

    \n
      \n
    1. JSON del Importador de actores de The Dhole's House

    2. \n
    3. Al agregar habilidades, objetos, hechizos y armas, el sistema puede intentar encontrar elementos en tu mundo con el mismo nombre. Puedes seleccionar el orden en que se buscan los segundos.

      \n

      Objetos: Desde tu directorio de objetos

      \n

      Mundo: Desde tus compendios de mundo

      \n

      Módulos: Desde tus compendios de módulos

      \n

      Sistema: Desde los compendios del sistema proporcionados con este sistema

    4. \n
    \n

    Busca tu archivo JSON. Una vez seleccionado, se mostrará el nombre y la imagen. Haz clic en Importar para crear el actor en el directorio de Actores en la carpeta de Personajes Importados.

    \n

    Por defecto, la imagen se almacenará en una carpeta llamada "dhole-image" en tu mundo. Esto se puede cambiar haciendo clic en la pestaña Configuración del Juego, luego, bajo el encabezado Configuración del Juego, haciendo clic en Configurar Configuraciones y haciendo clic en Configuración del Sistema.

    \n\n
    ","markdown":""},"sort":2},{"name":"Creación de personajes","type":"text","_id":"DoUY8DHlkmnVTlJ5","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Creación de personajes

    \n

    El sistema incluye algunos compendios listos para que los personalices. Estos se restablecen cada vez que actualizas o instalas el sistema, por lo que se recomienda que los copies en tu propio compendio y los edites según sea necesario.

    \n

    Habilidades

    \n

    En esta sección, crearás o editarás @UUID[.HMsnfFt14ZdIshp6]{habilidades}.

    \n
      \n
    1. Ve a los paquetes de compendios.

    2. \n
    3. Haz clic en Crear Compendio.

      \n
        \n
      • Dale un nombre a tu compendio (por ejemplo, Mis Habilidades).
      • \n
      • Selecciona Objeto como Tipo de Entidad.
      • \n
    4. \n
    \n

    Usar habilidades existentes

    \n
      \n
    1. Abre el compendio Habilidades.
    2. \n
    3. Arrastra cualquier habilidad que desees personalizar a tu nuevo compendio.
    4. \n
    \n

    Crear nuevas habilidades

    \n
      \n
    1. Ve al directorio de Objetos.

    2. \n
    3. Haz clic en Crear objeto.

      \n
        \n
      • Dale un nombre a la habilidad.
      • \n
      • Establece Tipo como Habilidad.
      • \n
    4. \n
    \n

    Configuración

    \n

    @UUID[.qgPBzkndBqCvMO7P]{Configuraciones} son conjuntos predefinidos de habilidades y una forma de generar las características (esto puede ser mediante el lanzamiento de dados o asignando una cierta cantidad de puntos, por ejemplo). Una vez creada una configuración, se puede utilizar en la creación de varios personajes.

    \n
      \n
    1. Ve al directorio de Objetos.

    2. \n
    3. Haz clic en Crear objeto.

      \n
        \n
      • Dale un nombre a la configuración.
      • \n
      • Establece Tipo como Configuración.
      • \n
    4. \n
    5. Define la configuración para establecer los parámetros básicos para un tipo de personaje.

      \n
        \n
      • Puedes añadir una descripción textual en la pestaña Descripción.
      • \n
      • Si haces clic en el icono, puedes seleccionar uno nuevo.
      • \n
      • En la pestaña Detalles, puedes:\n
          \n
        • Seleccionar las Épocas de Cthulhu donde esta configuración es válida.
        • \n
        • Definir las secciones de biografía y sus nombres (haz clic en el + para añadir secciones de biografía adicionales).
        • \n
        • Arrastrar elementos predeterminados como [Golpe].
        • \n
        • Mostrar/Ocultar la pestaña Características con la casilla de verificación Habilitar características.
        • \n
      • \n
      • La pestaña Características te permite definir la fórmula para lanzar los dados de cada característica.
      • \n
      • La pestaña Habilidades te permite definir el conjunto predeterminado de habilidades arrastrando elementos de tipo habilidad al área de Habilidades comunes.
      • \n
    6. \n
    \n

    Ocupaciones

    \n

    Una @UUID[.EenUE4RD07LSkQsd]{ocupación} ayuda a definir el trasfondo del personaje, piensa en ello como la definición del conjunto de habilidades ocupacionales (aquellas donde el personaje puede gastar sus puntos de ocupación) más la definición de cómo calcular la cantidad de puntos de ocupación disponibles. Finalmente, la ocupación también permite definir el mínimo y el máximo de Crédito para un personaje con esta ocupación.

    \n

    Ten en cuenta que el conjunto de habilidades ocupacionales no necesita ser fijo, el sistema permite configurar la ocupación para que, cuando se arrastre a una hoja de personaje, dé la opción de seleccionar una o más habilidades de una lista cerrada, o incluso añadir un número predefinido de habilidades para seleccionar de todas las disponibles.

    \n

    El proceso de creación de la ocupación es el siguiente:

    \n
      \n
    1. Ve al directorio de Objetos.

    2. \n
    3. Haz clic en Crear objeto.

      \n
        \n
      • Dale un nombre a la ocupación.
      • \n
      • Establece Tipo como Ocupación.
      • \n
    4. \n
    5. Define la ocupación para seleccionar las características relevantes y las habilidades de ocupación.

      \n
        \n
      • Puedes añadir una descripción textual en la pestaña Descripción y definir la Fuente.
      • \n
      • Si haces clic en el icono, puedes seleccionar uno nuevo.
      • \n
      • En la pestaña Detalles, puedes:\n
          \n
        • Seleccionar el Tipo de Ocupación.

        • \n
        • Definir las características utilizadas para calcular los puntos de ocupación; puedes marcar las características que desees y definir el multiplicador. Para aquellas marcadas como Opcionales, el jugador deberá elegir una en el momento de la creación.

          \n

          Por ejemplo, si una ocupación utiliza EDU * 2 + (FUE o DEX) * 2, debes seleccionar Educación y poner 2 en el Multiplicador sin marcar Opcional, y luego para Fuerza y Destreza, debes marcar ambas, marcar Opcional en ambas, y poner 2 en el Multiplicador en ambas.

        • \n
        • Finalmente, deberás definir los valores Mínimo y Máximo para la habilidad Calificación Crediticia de esta ocupación.

        • \n
      • \n
      • La pestaña Habilidades te permite seleccionar las habilidades de ocupación arrastrando elementos del Tipo habilidad a las diferentes secciones. Una ocupación típica tiene 8 habilidades más la habilidad Calificación Crediticia.\n
          \n
        • La sección Habilidades comunes incluye las habilidades de ocupación predeterminadas que no se pueden cambiar.
        • \n
        • La sección Grupos de Habilidades Opcionales permite añadir grupos (puedes crear varios) de habilidades para que el jugador elija. Una vez que haces clic en el signo +, se crea un grupo y puedes definir el Número a Elegir (número de habilidades para seleccionar) y crear un conjunto de habilidades disponible para la selección arrastrándolas al grupo.
        • \n
        • Finalmente, la sección Habilidades adicionales te permite ingresar un número de habilidades que el jugador puede elegir de las restantes habilidades disponibles.
        • \n
      • \n
    6. \n
    \n

    Creación de un Personaje Jugador

    \n

    Puedes crear un Personaje Jugador creando el actor y completando la correspondiente Hoja de Personaje en blanco, pero es mucho más fácil si has creado previamente una configuración y una ocupación (ver arriba). Si has creado ambos, el proceso para crear el Personaje Jugador es el siguiente:

    \n
      \n
    1. Ve al directorio de Actores.

    2. \n
    3. Haz clic en Crear actor.

      \n
        \n
      • Dale un nombre al actor.
      • \n
      • Establece Tipo como Personaje.
      • \n
    4. \n
    5. Arrastra y suelta un objeto del Tipo Configuración (por ejemplo, PJ 1920s, PJ Pulp, PJ Actual,...) en la hoja para hacer la configuración básica utilizando la configuración definida en el objeto. Esto suele incluir lanzar las características o establecer sus valores con el sistema de puntos, y establecer un conjunto predeterminado de habilidades correspondientes a la configuración dada.

    6. \n
    7. Arrastra y suelta un ítem Tipo Ocupación en la hoja, esto probablemente implicará seleccionar algunas habilidades de un conjunto reducido o de las restantes. Esto calculará los puntos intereses particulares y puntos de ocupación disponibles y asignará la parte de los puntos de ocupación para alcanzar el valor mínimo de Crédito de la ocupación seleccionada.

    8. \n
    9. En el menú del Guardián a la izquierda, haz clic en Herramientas del Guardián, si este menú no está disponible, debes tener una escena activa que se puede crear en la pestaña de Escenas.

    10. \n
    11. En el nuevo submenú, haz clic en Modo de Creación de Personajes. Debería aparecer una nueva pestaña llamada Desarrollo en las hojas de personaje.

    12. \n
    13. Haz clic en la pestaña de Desarrollo de los personajes.

    14. \n
    15. La primera columna de puntos es para tus habilidades ocupacionales, estas se pueden alternar haciendo clic en ellas.

      \n
        \n
      • Si has habilitado la regla de arquetipos de Pulp, tendrás un segundo punto para alternar eso.
      • \n
    16. \n
    17. Distribuye los puntos de ocupación y de intereses particulares en la pestaña de desarrollo teniendo en cuenta que cada habilidad tiene 5 columnas:

      \n
        \n
      1. La primera es el porcentaje básico de la habilidad.
      2. \n
      3. La segunda es para colocar los puntos de interés personal durante la creación del personaje.
      4. \n
      5. La tercera solo está disponible para las habilidades de ocupación (marcadas con un círculo oscuro antes del nombre de la habilidad) y se usa para asignar los puntos de ocupación.\n
          \n
        • Si has habilitado la regla de arquetipos de Pulp, tendrás una cuarta columna para ingresar tus puntos de arquetipo aquí.
        • \n
      6. \n
      7. La cuarta o quinta columna debería estar inicialmente en blanco y es donde aparecerán los puntos de experiencia (también puedes asignar puntos aquí si estás jugando con un personaje experimentado).
      8. \n
      9. La columna final es de solo lectura y muestra el valor final calculado para la habilidad (la suma de las demás columnas).
      10. \n
    18. \n
    \n\n\n
    ","markdown":""},"sort":3},{"name":"Persecuciones","type":"text","_id":"pp7jp7iMNdTKwK8E","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Persecuciones

    \n

    Crear una nueva persecución

    \n

    Para crear una persecución, crea un nuevo objeto de tipo persecución.

    \n

    Solo el Guardián debería tener acceso a ese objeto.

    \n

    Una persecución está compuesta por una sucesión de ubicaciones. Cada ubicación puede estar separada por un obstáculo (barrera o peligro).

    \n

    Un peligro siempre se atravesará, pero fallar la tirada te ralentizará.

    \n

    Una barrera te detendrá hasta que la superes o la destruyas.

    \n

    \"\"

    \n

    La hoja de persecución está dividida en 3 partes.

    \n
      \n
    • Un encabezado donde verás información sobre la ubicación actual una vez que comienza una persecución.
    • \n
    • Una pestaña de configuración de persecución. Esto te permitirá crear y seguir la persecución.
    • \n
    • Una lista de participantes donde puedes configurar a tus participantes. Esta pestaña no funcionará después de que comience la persecución.
    • \n
    \n

    Agregar un participante.

    \n

    Para agregar un participante, haz clic en el signo más (+) en la lista de participantes o arrastra un actor o una ficha.

    \n

    Ten en cuenta que no es obligatorio tener un actor asociado con un participante. Esto permite una configuración rápida o agregar a alguien sobre la marcha a la persecución.

    \n

    Para poder agregar una ficha a la persecución, se han agregado algunos controles a las hojas de personajes y PNJ:

    \n

    \"\"

    \n

    Esos íconos proporcionarán información adicional.

    \n
      \n
    1. Indica que este actor es un actor sintético (instancia de un actor).
    2. \n
    3. Indica que los datos del actor no están vinculados. Cada instancia de ese actor tiene sus propiedades.
    4. \n
    5. Indica que este actor tiene una ficha asociada. Puedes arrastrar y soltar esto en una ubicación de persecución o en la lista de participantes.
    6. \n
    7. Indica que los datos del actor están vinculados a un actor en el directorio de actores.
    8. \n
    \n

    Aquí puedes configurar a tu participante. Arrastrar un actor desde la barra lateral de Actores establecerá los detalles. Ten en cuenta que puedes seleccionar una iniciativa y una tirada de velocidad diferentes. Esto no es estándar en CoC, pero permite configurar persecuciones inusuales (persecución futurista en la matriz, persecución en los Sueños...).

    \n

    \"\"

    \n
      \n
    1. Arrastrar el signo de interrogación sobre una ficha establecerá los detalles en esa ficha.
    2. \n
    \n

    Una vez que arrastras un actor o seleccionas una ficha, puedes configurar al participante.

    \n

    \"\"

    \n
      \n
    1. Haciendo clic en esto cambiarás el lado del participante de presa a perseguidor.
    2. \n
    3. Haciendo clic en esto desencadenarás una tirada de velocidad. Ten en cuenta que no se necesitarán entradas de jugador ni se mostrará ninguna carta de tirada.
    4. \n
    \n

    Lista de participantes

    \n

    \"\"

    \n

    Aquí puedes ver la lista de participantes en la persecución.

    \n
      \n
    1. Desencadenará una tirada de persecución. Esto creará una carta de tirada si el participante tiene un actor asociado (no es un falso). Mantener presionada la tecla Shift avanzará rápidamente y resolverá la carta.
    2. \n
    3. Esto eliminará la tirada de velocidad si la hay, o eliminará al participante.
    4. \n
    \n

    \"\"

    \n
      \n
    1. Carta de tirada esperando ser resuelta en el chat.
    2. \n
    3. Tirada de velocidad realizada. Puedes hacer clic en esto para ver los detalles.
    4. \n
    5. Para restablecer la tirada de velocidad.
    6. \n
    \n

    \"\"

    \n

    Configuración de persecución

    \n

    \"\"

    \n

    Para configurar una persecución, ingresa los números iniciales de ubicaciones y haz clic en Inicializar.

    \n

    \"\"

    \n

    La persecución está inicializada, puedes ajustar algunas opciones. Las ubicaciones en blanco son ubicaciones iniciales y no se pueden modificar.

    \n
      \n
    1. Esta es la pista de persecución, la ubicación en blanco son ubicaciones iniciales. Las ubicaciones en gris son ubicaciones reales de persecución.
    2. \n
    3. Seleccionar esto incluirá en la persecución a participantes que de otra manera habrían podido escapar.
    4. \n
    5. Seleccionar esto incluirá en la persecución a participantes que habrían sido excluidos por ser demasiado lentos.
    6. \n
    7. Este es el número de ubicaciones entre la presa más lenta y el perseguidor más rápido.
    8. \n
    9. Esta es la ubicación inicial de la presa más rápida. Establecer esto en 0 la colocará justo antes del comienzo. 1 lo colocará al principio. -1 lo colocará 1 ubicación antes del inicio.
    10. \n
    11. Esto animará la ficha cuando se mueva a una nueva ubicación.
    12. \n
    \n

    Configuración de ubicaciones

    \n

    Durante la configuración o durante la persecución, puedes seleccionar una ubicación para modificarla.

    \n

    Las ubicaciones de inicio (blancas) no se pueden modificar durante la configuración.

    \n

    Para modificar una ubicación, selecciónala haciendo clic en ella. Esto mostrará los detalles de la ubicación en la parte superior de la hoja.

    \n

    \"\"

    \n
      \n
    1. Esto agregará un participante. Si la persecución ha comenzado, el participante estará en esa ubicación. Si la persecución no ha comenzado, el participante se agregará en la pista de inicio.
    2. \n
    3. Esto eliminará la ubicación. Una ubicación debe estar vacía para ser eliminada.
    4. \n
    5. Puedes arrastrar esto y soltarlo en una escena. Esto establecerá las coordenadas para esa ubicación. Un pin rojo indica que las coordenadas se han establecido. Haciendo clic derecho en un pin rojo restablecerá sus coordenadas. Si las coordenadas están establecidas y un participante con una ficha asociada entra en esa ubicación, su ficha se moverá a esa ubicación.
    6. \n
    7. Agregar una nueva ubicación.
    8. \n
    9. Ubicación activa.
    10. \n
    \n

    Configuración de obstáculos.

    \n

    Puedes agregar obstáculos antes y después de una ubicación. Puedes prellenar un obstáculo con un nombre, una tirada asociada y algunas penalizaciones.

    \n

    \"\"

    \n
      \n
    1. Alterna esto para agregar daño a una barrera.
    2. \n
    3. Puntos de vida de la barrera.
    4. \n
    5. Costo de acción de movimiento en caso de fallo.
    6. \n
    7. Tirada utilizada para pasar la ubicación. Cuando está en rojo, el actor activo no tiene la tirada asociada.
    8. \n
    \n

    Ir directo a la persecución.

    \n

    Cuando estés listo, puedes ir directo a la persecución. Si no todos los participantes tienen una tirada de velocidad, esto desencadenará una advertencia y no te dejará comenzar.

    \n

    \"\"

    \n
      \n
    1. Pista de iniciativa. El participante activo está rodeado en naranja.
    2. \n
    3. Pista de persecución. Ubicación y participante activos. Puedes arrastrar y soltar participantes desde la pista de persecución para moverlos libremente. Puedes arrastrar un nuevo actor o ficha directamente a la pista de persecución. Esto abrirá la ventana de importación y agregará ese participante a la persecución. En algunos casos (por ejemplo, nueva presa más lenta que el participante más lento) todas las acciones de movimiento se recalcularán.
    4. \n
    5. Una barrera.
    6. \n
    7. Un peligro.
    8. \n
    \n

    Flujo de resolución de obstáculos

    \n

    \"\"

    \n
      \n
    1. Cuando el participante activo enfrenta un obstáculo, puedes desencadenar el flujo de resolución de obstáculos haciendo clic en esto. Esto abrirá una carta en el chat donde el Guardián y el jugador pueden interactuar para pasar ese obstáculo. Todos los cambios realizados en la carta pueden reflejarse en el obstáculo en la persecución al final del flujo.
    2. \n
    \n

    Aquí tienes un ejemplo de flujo resumido:

    \n

    \"\"\n\"\"\n\"\"\n\"\"

    \n

    Una vez que el flujo está completo, todos los cambios se envían a la persecución.

    \n

    \"\"

    \n

    Esta ronda está terminada. Todos los actores han gastado sus acciones de movimiento. Puedes hacer clic en Siguiente ronda para proceder.

    \n

    Controles de participantes.

    \n

    \"\"

    \n

    Puedes modificar o mover a un participante usando el botón de controles en su carta.

    \n
      \n
    1. Estos 3 íconos permitirán eliminar, modificar y activar a un participante.
    2. \n
    3. Acción de movimiento. Hay un amarillo disponible, el gris se consume, el rojo es un déficit.
    4. \n
    5. Esto controlará el bono de tu participante. Puede sacar una pistola o recibir dados de bonificación.
    6. \n
    7. Controles de acción de movimiento. Aquí puedes aumentar o disminuir las acciones de movimiento.
    8. \n
    9. Controles de movimiento. Puedes moverte hacia atrás o hacia adelante. Puedes ayudar a un aliado (consumir una acción y dar un dado de bonificación) o tomar un enfoque cauteloso.
    10. \n
    \n\n
    ","markdown":""},"sort":4},{"name":"Sistema de CoC ID","type":"text","_id":"7EIwdnPaf88lnA3J","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Sistema de CoC ID

    \n

    Varios documentos de FoundryVTT tienen un botón de identificación accesible para los roles de usuario "Game Master" y "Asistente".

    \n

    ID de Sistema (CoC ID): Configurar la ID de una habilidad a i.skill.dodge permitirá al sistema tratar esa habilidad como Esquivar en la tarjeta de combate.

    \n

    Variantes de Cthulhu: También puedes controlar la época para la que es una habilidad; el manejo de animales tiene diferentes valores base según la época.

    \n

    Prioridad de ID del Sistema: El sistema revisará los documentos de tu mundo y luego los compendios, devolviendo el documento con la prioridad más alta.

    \n

    Objeto

    \n

    i.setup.example - El Asistente de Investigador usará estos; necesitas elegir una sola época para asignarlo.

    \n

    i.archetype.example - El Asistente de Investigador usará estos si la regla opcional de arquetipo está habilitada.

    \n

    i.occupation.example - El Asistente de Investigador los listarán.

    \n

    i.skill.example - Las configuraciones, el Asistente de Investigador y la creación de Actores usarán estos si coinciden con la época.

    \n

    Tablas dinámicas

    \n

    rt..backstory-example - Si la parte de ejemplo coincide con el título del trasfondo en kebab case, proporcionará una opción de tirada en la sección de trasfondo del Asistente de Investigador.

    \n\n
    ","markdown":""},"sort":5},{"name":"Combate","type":"text","_id":"uxecQMrkmmzDbz3G","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Combate

    \n

    Iniciar el combate

    \n

    En la escena, selecciona las fichas involucradas en el combate, haz clic derecho en una de ellos y en la esquina inferior derecha, haz clic en el icono Conmutar estado de combate. Esto añadirá los actores correspondientes a las fichas seleccionadas en la pestaña de Encuentros de combate.\nLuego, en la pestaña de Encuentros de combate, puedes comenzar el combate.

    \n

    El rastreador de combate te ayudará a seguir tanto las iniciativas de los diferentes actores como las rondas de combate.

    \n

    Iniciativa

    \n

    En Foundry, los turnos de combate están ordenados por iniciativa, y en el sistema, esto suele ser la DES del actor. Entonces, para establecer las iniciativas, haz clic en el ícono de dados de cada actor o simplemente en el ícono con 3 personas en la parte superior izquierda de la pestaña de combate para establecer todas a la vez.

    \n

    Junto a cada actor en la pestaña de combate, hay 3 íconos:

    \n
      \n
    • Un objetivo: para sacar el arma (esto sumará 50 a la iniciativa de ese personaje)
    • \n
    • Un ojo cruzado: para mostrar/ocultar el actor correspondiente en la lista.
    • \n
    • Una calavera: para marcar a un personaje como derrotado y omitirlo en los turnos siguientes.
    • \n
    \n

    Seleccionar objetivo / objetivos

    \n

    Durante el turno de un actor, para atacar, lo primero que debes hacer es seleccionar el objetivo u objetivos. Esto se puede hacer haciendo clic derecho en la ficha del objetivo y luego haciendo clic en el ícono objetivo (abajo a la izquierda). O activar el modo objetivo desde la barra de herramientas izquierda y hacer clic en los objetivos.

    \n

    Luego, abre la hoja del actor y haz clic en el nombre del objeto que se usará para el ataque. Esto puede ser desde un disparo único de un arma de largo alcance, hasta algún ataque cuerpo a cuerpo o una maniobra.\nEste clic iniciará el flujo de ataque en el chat, la tarjeta del chat permitirá seleccionar más opciones del ataque según el tipo de ataque.

    \n
    \n

    Consejo: si haces clic derecho en el ícono de la hoja del rastreador de combate, esto lo mostrará como una pequeña ventana y luego podrás ver tanto la ventana del rastreador de combate como los resultados del combate en el chat.

    \n
    \n

    Combate Cuerpo a Cuerpo

    \n

    Maniobras

    \n

    Aún no implementadas.

    \n

    Disparo Único

    \n

    Automatizar Disparo

    \n

    Objetivos Múltiples

    \n

    Recargar

    \n\n
    ","markdown":""},"sort":6},{"name":"Hoja de atajos","type":"text","_id":"PkM93agHPo9znEok","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Hoja de atajos

    \n

    Reglas generales

    \n

    La mayoría de los componentes de la hoja se pueden hacer clic para activar una tirada/lanzamiento.\nComo regla general, puedes modificar esas solicitudes de la siguiente manera:

    \n
      \n
    • Shift acelerará la solicitud saltando el diálogo de opciones.
    • \n
    • Ctrl creará un enlace en el chat con esa solicitud para pedir a los jugadores hacer la tirada.
    • \n
    \n

    Cordura

    \n\n\n\n\n\n\n\n\n
    ComandoAcción
    Ctrl+Shift + clic izquierdo en CORSolicita una tirada de Cordura al personaje
    Ctrl+Shift+Alt + clic izquierdo en CORSolicita una tirada de Cordura al personaje y define la pérdida de cordura
    \n

    Tiradas Combinadas/Opuestas

    \n\n\n\n\n\n\n\n\n
    ComandoAcción
    Clic derecho en un elementoInicia/Añade una tirada opuesta
    Alt + Clic derecho en un elementoInicia/Añade una tirada combinada
    \n

    Otros

    \n\n\n\n\n\n\n\n
    ComandoAcción
    cMuestra la hoja del personaje propio
    \n\n
    ","markdown":""},"sort":7},{"name":"Creando tu primer investigador","type":"text","_id":"YEMXMawcEfdtxWmF","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Configuración inicial de objetos

    \n

    El sistema viene con algunos compendios listos para que los personalices. Estos se restablecen cada vez que actualizas o instalas el sistema, por lo que se recomienda que los copies en tu propio compendio y los edites según sea necesario.

    \n

    Esta página crea un investigador utilizando los compendios proporcionados; si estás listo para personalizar por completo tu personaje, lee en su lugar @UUID[.DoUY8DHlkmnVTlJ5]{Creación de personajes}.

    \n

    Habilidad

    \n

    Haz clic en la pestaña de Compendios y luego, bajo el encabezado de Objetos, abre las Habilidades (CoC7). Aquí encontrarás las habilidades que se muestran en las hojas de personaje disponibles en el sitio web de Chaosium.

    \n
      \n
    • Sin ajuste: No se pueden asignar puntos personales de habilidad.
    • \n
    • Sin ganancia de EXP: No marcas esta habilidad para mejorar en caso de éxito.
    • \n
    • Especialización: Esta habilidad forma parte de un grupo como Pilotar o Pelear.
    • \n
    • Infrecuente: Esta habilidad es poco común y se puede ocultar automáticamente en la hoja de personaje.
    • \n
    • Forzada: Esta habilidad se puede forzar.
    • \n
    • Combate: Establece automáticamente Especialización, Combate y el nombre de la especialización a Combate.
    • \n
    • Armas de fuego: Establece automáticamente Especialización, Combate y el nombre de la especialización a Armas de fuego.
    • \n
    \n

    Puedes crear un nuevo Compendio de objetos y copiar las habilidades que necesitas, lo que te permitirá editarlas. También puedes crear nuevas habilidades creando nuevos objetos de Habilidad (Haz clic en la pestaña del directorio de Objetos y luego en Crear objeto, dale un nombre, por ejemplo, Jardinería, y establece el Tipo como Habilidad).

    \n

    Configuración

    \n

    Una vez que hayas configurado tus habilidades, crea una Configuración, tienes un ejemplo en el compendio de Ejemplos de objetos [Ejemplo de configuración de los años 20].

    \n

    Las Configuraciones te permiten estandarizar las habilidades, objetos, secciones de biografía y características con las que comienzan los investigadores.

    \n

    Haz clic en la pestaña del directorio de Objetos y luego en Crear objeto, dale un nombre, por ejemplo, Nueva Configuración del Investigador y establece el Tipo como Configuración.

    \n

    En la pestaña de Descripción, haz clic en el botón para obtener un editor y establecer la descripción.

    \n

    En la pestaña de Detalles, haz clic en Secciones de transfondo para agregar cualquier sección que necesites del paso de Crear un transfondo en la creación del investigador. Haz clic en la pestaña de Compendios y luego, abre el objeto de Ejemplos de objetos (CoC7) y arrastra [Puñetazo] a la configuración.

    \n

    En la pestaña de Características, puedes personalizar cómo se lanzan/compran las características del investigador.

    \n

    En la pestaña de Habilidades, puedes arrastrar las habilidades que tendrá el investigador.

    \n

    Todas las hojas de actores y objetos tienen una pestaña que los Guardianes pueden usar para almacenar notas; solo los usuarios que estén configurados como Guardianes pueden ver esta pestaña.

    \n

    Ocupación

    \n

    Las ocupaciones te permiten establecer cuántos puntos de ocupación, el rango de Crédito y las habilidades con las que comienza el investigador. Aquí tienes un ejemplo del compendio de Ejemplos de objetos [Ejemplo de Ocupación].

    \n

    Haz clic en la pestaña del directorio de Objetos y luego en Crear objetos, dale un nombre, por ejemplo, Conductor, y establece el Tipo como Ocupación.

    \n

    En la pestaña de Descripción, haz clic en el botón para obtener un editor y establecer la descripción.

    \n

    En la pestaña de Detalles, puedes establecer el cálculo de puntos de ocupación y el Crédito mínimo/máximo.

    \n

    En la pestaña de Habilidades, puedes arrastrar habilidades desde los Compendios o el directorio de Objetos a las habilidades comunes. También puedes configurar múltiples grupos de habilidades opcionales decidiendo cuántas el investigador debe seleccionar.

    \n

    Creando tu primer investigador

    \n

    Personaje

    \n

    Para completar tu personaje, necesitas tener una escena activa que se puede crear en el directorio de Escenas.

    \n

    Haz clic en la pestaña del directorio de Actores y luego en Crear objeto, dale un nombre, por ejemplo, Nuevo Investigador y establece el Tipo como Personaje.

    \n

    Puedes arrastrar la configuración creada anteriormente al personaje para la configuración inicial o arrastra este ejemplo [Ejemplo de Configuración de los años 20].

    \n

    A continuación, arrastra la ocupación creada anteriormente al personaje o arrastra este ejemplo [Ejemplo de Ocupación].

    \n

    En la barra lateral izquierda, selecciona Herramientas del Guardián y luego selecciona el modo de Creación de personajes.

    \n

    En la hoja de personaje, selecciona la pestaña de Desarrollo. El primer punto indica que esta es una habilidad de ocupación; la primera columna de números es el valor base, el siguiente es donde asignas puntos personales, el tercero es para puntos de ocupación, el cuarto es para la experiencia ganada durante la fase de mejora del investigador y la última columna es el porcentaje total de habilidad.

    \n

    Puedes ver cuántos puntos personales y de ocupación has gastado hasta ahora. Una vez que hayas gastado todos tus puntos, debes desactivar el modo de Creación de personajes para permitir que los personajes vean sus Puntos de vida, Puntos de magia, Cordura y Suerte.

    \n\n
    ","markdown":""},"sort":8},{"name":"Objetos","type":"text","_id":"72wfKKZQNKCPcMqd","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Objetos

    \n

    El sistema soporta muchos tipos diferentes de objetos, desde objetos simples o armas hasta habilidades o la configuración completa de un tipo de personaje. Puedes ver ejemplos en el compendio que viene con el sistema.

    \n

    Para crear cualquiera de los tipos de objetos, siempre comienzas de la misma manera:

    \n
      \n
    1. Ve al directorio de Objetos.
    2. \n
    3. Haz clic en Crear objeto\n
        \n
      • Dale un nombre al objeto.
      • \n
      • Selecciona el Tipo del objeto (ver más abajo para detalles sobre cada uno).
      • \n
      • Selecciona la carpeta de destino (opcional).
      • \n
    4. \n
    \n

    Y todos tienen una estructura común, así que en todos ellos puedes:

    \n
      \n
    • Agregar una descripción textual en la pestaña Descripción o directamente en la ventana principal si no tiene pestañas.
    • \n
    • Hacer clic en el ícono, puedes elegir o cargar uno nuevo.
    • \n
    \n

    Tipos de objetos disponibles

    \n
      \n
    • @UUID[.91QlqUCNziC6rNW0]{Tipo de objeto: Arquetipo}
    • \n
    • @UUID[.zXDVUmUPwz9Jd0E3]{Tipo de objeto: Libro}
    • \n
    • @UUID[.pp7jp7iMNdTKwK8E]{Tipo de objeto: Persecuciones}
    • \n
    • Tipo de objeto: Objeto
    • \n
    • @UUID[.EenUE4RD07LSkQsd]{Tipo de objeto: Ocupación}
    • \n
    • @UUID[.qgPBzkndBqCvMO7P]{Tipo de objeto: Configuración}
    • \n
    • @UUID[.HMsnfFt14ZdIshp6]{Tipo de objeto: Habilidad}
    • \n
    • Tipo de objeto: Hechizo
    • \n
    • Tipo de objeto: Estado
    • \n
    • Tipo de objeto: Talento
    • \n
    • Tipo de objeto: Arma
    • \n
    \n\n
    ","markdown":""},"sort":9},{"name":"Tipo de objeto: Arquetipo","type":"text","_id":"91QlqUCNziC6rNW0","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Tipo de objeto: Arquetipo Pulp

    \n

    Los arquetipos se utilizan en juegos Pulp. Proporcionan bonificaciones a habilidades y características.

    \n

    Una vez creado el objeto Arquetipo, se mostrará la Hoja de Arquetipo.\nAllí puedes definir los detalles del Arquetipo:

    \n
      \n
    • En la pestaña Detalles puedes:\n
        \n
      • Asignar la cantidad de Puntos Adicionales
      • \n
      • Asignar la cantidad de Talentos Pulp
      • \n
      • Definir las Características Básicas y si quieres Usar una tirada de dados para generarlas.
      • \n
      • Definir las Ocupaciones Sugeridas
      • \n
      • Definir los Rasgos Sugeridos
      • \n
    • \n
    • En la pestaña Habilidades puedes:\n
        \n
      • Arrastrar las habilidades correspondientes a este Arquetipo
      • \n
    • \n
    \n\n
    ","markdown":""},"sort":10},{"name":"Tipo de objeto: Libro","type":"text","_id":"zXDVUmUPwz9Jd0E3","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Tipo de objeto: Libro

    \n

    El sistema tiene un tipo especial de objeto para los libros con el fin de poder definir la Pérdida de Cordura, si es un Tomo de los Mitos o un libro de ocultismo, qué Hechizos o Habilidades proporciona, y, por supuesto, una descripción y la imagen del libro.

    \n\n
    ","markdown":""},"sort":11},{"name":"Tipo de objeto: Ocupación","type":"text","_id":"EenUE4RD07LSkQsd","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Tipo de objeto: Ocupación

    \n

    Una ocupación ayuda a definir el trasfondo del personaje, piensa en ello como la definición del conjunto de habilidades ocupacionales (aquellas en las que el personaje puede gastar sus puntos de ocupación), además de la definición de cómo calcular la cantidad de puntos de ocupación disponibles. Finalmente, la ocupación también permite definir el crédito mínimo y máximo para un personaje con esta ocupación.

    \n

    Ten en cuenta que el conjunto de habilidades ocupacionales no necesita ser fijo; el sistema permite configurar la ocupación para que, al arrastrarla a una hoja de personaje, ofrezca la opción de seleccionar una o más habilidades de una lista cerrada, o incluso agregar un número predefinido de habilidades para elegir entre todas las disponibles.

    \n
      \n
    1. Ve al directorio de objetos.

    2. \n
    3. Haz clic en Crear objeto.

      \n
        \n
      1. Dale un nombre a la configuración, por ejemplo, Bibliotecario.
      2. \n
      3. Establece el Tipo como Ocupación.
      4. \n
    4. \n
    5. En la pestaña Descripción, puedes cambiar el nombre, el icono, el nombre del libro fuente y la descripción.

    6. \n
    7. En la pestaña Detalles puedes controlar:

      \n
        \n
      1. Seleccionar el Tipo de Ocupación.

      2. \n
      3. Definir las características utilizadas para calcular los puntos de ocupación. Puedes marcar las características que desees y definir el multiplicador; para aquellas marcadas como Opcional, el jugador tendrá que elegir una en el momento de la creación.

        \n
          \n
        1. Por ejemplo, si una ocupación utiliza EDU * 2 + (FUE o DES) * 2, debes seleccionar Educación y poner 2 en el Multiplicador sin marcar Opcional, y luego para Fuerza y Destreza, debes marcar Opcional en ambas, y poner 2 en el Multiplicador en ambas.
        2. \n
        3. Finalmente, tendrás que definir el valor mínimo y máximo para la habilidad Crédito para esta ocupación.
        4. \n
      4. \n
      5. Nombres de las secciones de la biografía (haz clic en el + para agregar secciones adicionales de biografía), esto se puede reemplazar con una biografía de bloque único en la configuración.

      6. \n
      7. En Objetos, puedes arrastrar y soltar objetos y armas predeterminados.

      8. \n
    8. \n
    9. En la pestaña Habilidades, puedes arrastrar y soltar habilidades en varias secciones. Una ocupación típica tiene 8 habilidades más la habilidad Crédito.

      \n
        \n
      1. Las Habilidades comunes incluyen las habilidades ocupacionales predeterminadas que no se pueden cambiar.
      2. \n
      3. La sección de Grupos de habilidades a elegir permite agregar grupos (puedes crear varios) de habilidades para que el jugador elija. Una vez que hagas clic en el signo +, se crea un grupo y puedes definir la Cantidad a elegir (número de habilidades para seleccionar) y crear un conjunto de habilidades disponibles para la selección arrastrándolas al grupo.
      4. \n
      5. Finalmente, las Habilidades adicionales te permiten ingresar un número de habilidades que el jugador puede elegir entre el resto de las habilidades disponibles.
      6. \n
    10. \n
    \n\n
    ","markdown":""},"sort":12},{"name":"Tipo de objeto: Configuración","type":"text","_id":"qgPBzkndBqCvMO7P","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Tipo de objeto: Configuración

    \n

    Las configuraciones son conjuntos predefinidos de habilidades y una forma de generar las características (esto puede ser lanzando dados o asignando una cierta cantidad de puntos, por ejemplo).

    \n
      \n
    1. Ve al directorio de Objetos

    2. \n
    3. Haz clic en Crear objeto

      \n
        \n
      1. Asigna un nombre a la configuración, por ejemplo, Configuración de 1920
      2. \n
      3. Establece el Tipo en Configuración
      4. \n
    4. \n
    5. En la pestaña Descripción, puedes cambiar el nombre, icono, nombre del libro fuente y descripción.

    6. \n
    7. En la pestaña Detalles, puedes controlar:

      \n
        \n
      1. Mostrar / Ocultar la pestaña de Características con la casilla de Habilitar características.
      2. \n
      3. Para qué versión de La Llamada de Cthulhu es esto, esto se puede filtrar en compendios.
      4. \n
      5. Nombres de las secciones de la biografía (haz clic en el + para agregar secciones adicionales de biografía), esto se puede reemplazar con una biografía de bloque único en la configuración.
      6. \n
      7. Bajo objetos, puedes arrastrar y soltar objetos y armas predeterminados.
      8. \n
    8. \n
    9. En la pestaña Características, puedes establecer una compra de puntos o tirar características y la fórmula.

    10. \n
    11. En la pestaña Habilidades, bajo habilidades comunes, puedes arrastrar y soltar habilidades predeterminadas.

    12. \n
    \n\n
    ","markdown":""},"sort":13},{"name":"Tipo de objeto: Habilidad","type":"text","_id":"HMsnfFt14ZdIshp6","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Tipo de objeto: Habilidad

    \n

    Una habilidad se lanzará durante las pruebas.

    \n
      \n
    1. Ve al directorio de Objetos

    2. \n
    3. Haz clic en Crear objeto

      \n
        \n
      1. Asigna un nombre a la habilidad, por ejemplo, Arte/Artesanía (Danza)
      2. \n
      3. Establece el Tipo en Habilidad
      4. \n
    4. \n
    5. En la pestaña Descripción, puedes cambiar el nombre, icono, época de Cthulhu (en qué ediciones aparece) y descripción.

      \n
        \n
      1. Sin ajuste - No se pueden asignar puntos personales de habilidad.
      2. \n
      3. Sin ganancia de EXP - No marcas esta habilidad para mejorar en un éxito.
      4. \n
      5. Especialización - Esta habilidad es parte de un grupo como Piloto o Combate.
      6. \n
      7. Infrecuente - Esta habilidad es poco común y se puede ocultar automáticamente en la hoja de personaje.
      8. \n
      9. Forzado - Esta habilidad se puede forzar.
      10. \n
      11. Combate - Establece automáticamente Especialización, Combate y el nombre de la especialización en Combate.
      12. \n
      13. Armas de fuego - Establece automáticamente Especialización, Combate y el nombre de la especialización en Armas de fuego.
      14. \n
    6. \n
    \n\n
    ","markdown":""},"sort":14},{"name":"Enlaces","type":"text","_id":"B7ZphTmxIrLP1kCl","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Enlaces

    \n
      \n
    • Los enlaces son una forma para que el Director de Juego (GM) solicite un lanzamiento (Característica, Atributo, Habilidad, pérdida de COR, Arma).
    • \n
    • Los enlaces pueden contener un efecto activo.
    • \n
    • Los enlaces se crean en el registro de chat. Cuando haces clic en un enlace, se activará una tirada para tu(s) personaje(s) controlado(s)/suplantado(s).
    • \n
    • Los enlaces se pueden incluir en cualquier editor, principalmente en entradas de diario.
    • \n
    • Los enlaces se pueden crear de 5 maneras:\n
        \n
      • Al escribirlo manualmente (lee los detalles a continuación).
      • \n
      • Al hacer CTRL+click en cualquier elemento de la hoja (Característica, Atributo, habilidad, pérdida de COR).
      • \n
      • Al arrastrar un elemento de la hoja (Característica, Atributo, habilidad (+CTRL)) a un editor (entrada de diario).
      • \n
      • Al arrastrar mientras mantienes presionada la tecla CTRL un objeto (habilidad o arma) desde un compendio o un directorio de objetos a un editor. Cuando se crea un enlace de esta manera y se utiliza como GM, si tu personaje controlado no tiene el arma/habilidad, se te pedirá que crees el ítem correspondiente.
      • \n
      • Al usar el compendio incluido escrito por Lozalojo.
      • \n
    • \n
    • Los enlaces se pueden arrastrar desde el registro de chat a un editor.
    • \n
    • Cuando se crea un enlace, se abrirá la ventana de selección de dificultad/sanción. Mantén presionada la tecla SHIFT para omitir ese comportamiento.
    • \n
    • Cuando se crea un enlace, se verificará el modo de lanzamiento. Si el modo de lanzamiento está configurado como 'lanzamiento oculto del GM', el enlace se creará como oculto.
    • \n
    • Cuando se crea un enlace con una dificultad y una sanción, las ventanas de dificultad/sanción no aparecerán.
    • \n
    • Cuando se crea un enlace sin dificultad o sanción, las ventanas de dificultad/sanción aparecerán. Mantener presionada la tecla SHIFT acelerará el lanzamiento (regular/sin sanción).
    • \n
    \n

    Escritura de enlaces

    \n
      \n
    • Los enlaces deben escribirse utilizando la @UUID[.zi5N2FLi4pkFJA3o]{herramienta de creación de enlaces}. La ventana de creación de enlaces es una herramienta para el GM. Se encuentra en la barra lateral izquierda.
    • \n
    \n

    Enlaces para mensajes de chat y editores de hojas (NPC, entradas de diario...).\nEl formato del enlace es @coc7.TIPO_DE_SOLICITUD[OPCIONES]{TEXTO_A_MOSTRAR}

    \n
      \n
    • TIPO_DE_SOLICITUD:\n
        \n
      • sanloss: activa una tirada de COR; al fallar, propondrá deducir la COR correspondiente.
      • \n
      • check: activa una tirada según las opciones.
      • \n
      • item: activa el uso de un arma. Solo se pueden activar elementos del tipo arma.
      • \n
    • \n
    • OPCIONES: [] = opcional, predeterminado\n
        \n
      • sanloss:\n
          \n
        • sanMax: pérdida máxima de COR
        • \n
        • sanMin: pérdida mínima de COR
        • \n
      • \n
      • check:\n
          \n
        • type: tipo de tirada (characteristic, skill, attrib).
        • \n
        • name: nombre de la habilidad/característica/atributo.
        • \n
        • [blind]: forzará una tirada oculta; si no está presente, la tirada dependerá del modo de lanzamiento seleccionado.
        • \n
      • \n
      • todas:\n
          \n
        • [difficulty]: ? (oculta), 0 (regular), + (difícil), ++ (extrema), +++ (crítica).
        • \n
        • [modifier]: -x (x dados de penalización), +x (x dados de bonificación), 0 (sin modificador).
        • \n
        • [icon]: ícono a usar (font awesome, fas fa-dice).
        • \n
      • \n
    • \n
    • TEXT_TO_DISPLAY: Nombre a mostrar; esto es opcional.
    • \n
    \n

    Ejemplos

    \n\n\n\n\n\n\n\n\n\n\n\n\n
    EnlaceResultado
    @coc7.sanloss[sanMax:1D6,sanMin:1,difficulty:++,modifier:-1]{Pérdida de COR Difícil (-1) 1/1D6}
    @coc7.check[type:charac,name:STR,difficulty:+,modifier:-1]{Tirada de FUE Difícil (-1)}
    @coc7.check[type:attrib,name:lck,difficulty:+,modifier:-1]{Tirada de Suerte Difícil (-1)}
    @coc7.check[type:skill,icon:fas fa-arrow-alt-circle-right,name:anthropology,difficulty:+,modifier:-1]{Tirada de Antropología Difícil (-1)} (con ícono)
    @coc7.sanloss[sanMax:1D6,sanMin:1]{Pérdida de COR (-1) 1/1D6} (sin nombre, dificultad ni modificador)
    @coc7.check[type:skill,icon:fas fa-arrow-alt-circle-right,name:anthropology,modifier:+1]{Tirada de Antropología (+1)} (con ícono, sin nombre ni dificultad)
    \n

    Uso de enlaces

    \n
      \n
    • Puedes arrastrar/soltar enlaces desde el chat a las hojas y entre las hojas.
    • \n
    • Puedes arrastrar/soltar un enlace directamente en un token.
    • \n
    • Puedes arrastrar/soltar ítems y habilidades en una entrada de diario mientras mantienes presionada la tecla CTRL, esto creará la tirada correspondiente con dificultad regular y un modificador de 0.
    • \n
    • Puedes crear enlaces en el chat haciendo clic y manteniendo presionada la tecla CTRL desde cualquier hoja (Personaje/PNJ/Criatura) correspondiente a características/suerte/COR/Competencia/arma/Pérdida de COR.\n
        \n
      • Esto abrirá el diálogo de selección de sanción/dificultad. Hacer clic en el enlace generado activará la tirada con todos los parámetros.
      • \n
      • Mantener presionada la tecla Shift no abrirá el diálogo de sanción/dificultad. Hacer clic en el enlace generado abrirá el diálogo de sanción/dificultad y luego activará la tirada.
      • \n
    • \n
    \n\n
    ","markdown":""},"sort":15},{"name":"Herramienta de creación de enlaces","type":"text","_id":"zi5N2FLi4pkFJA3o","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Herramienta de creación de enlaces

    \n

    El sistema incluye una herramienta para ayudarte a crear enlaces fácilmente.\nEstá ubicada en la barra lateral izquierda. Haz clic en el ícono.\nEsta herramienta está disponible solo para el Guardián (GM).

    \n

    \"Herramienta

    \n

    Usando esto, puedes crear @UUID[.B7ZphTmxIrLP1kCl]{enlaces} para tiradas de habilidades, tiradas de cordura, efectos, etc.\nAlternativamente, puedes abrir la herramienta manteniendo presionada la tecla CTRL mientras haces clic en un objeto o una habilidad.

    \n

    Ventana principal

    \n

    Hacer clic en el ícono de la herramienta abrirá una ventana:

    \n

    \"Ventana

    \n

    Aquí puedes seleccionar opciones para tu enlace.

    \n
      \n
    • "Paquetes de compendios" y "Directorio de objetos" te permiten hacer referencia a un objeto desde la carpeta correspondiente.
    • \n
    • "Modificadores" te permite agregar modificadores a tu tirada.
    • \n
    • "Ciego" forzará que el modo de tirada sea ciego.
    • \n
    • "Etiqueta" te permite cambiar la etiqueta de visualización.
    • \n
    • "Icono" te permite elegir un ícono para tu enlace. Los íconos pueden ser:\n
        \n
      • Una referencia a Font Awesome o a game-icons: "fas fa-ankh" o "game-icon game-icon-tentacle-strike".
      • \n
      • Un enlace a una imagen en los datos del sistema o en el núcleo del sistema: "icons/magic/symbols/arrowhead-green.webp".
      • \n
    • \n
    \n

    Si no proporcionas una etiqueta y/o un ícono, se agregará una etiqueta e ícono predeterminados.

    \n

    \"Etiqueta

    \n

    Ventana de efectos

    \n

    Seleccionar efectos abrirá una ventana avanzada donde puedes crear enlaces para @UUID[.nwLzdFw9VfuloSPN]{efectos activos}.\nSelecciona las opciones de la misma manera que lo harías para un efecto regular.

    \n

    Uso de enlaces

    \n
      \n
    • Una vez que tu enlace está creado y es válido, aparecerá en un cuadro blanco en el centro de la ventana.
    • \n
    \n

    \"Enlace

    \n
      \n
    • Ahora estás listo para susurrárselo a tus jugadores, copiarlo en tu portapapeles para agregarlo a tus objetos o entradas de diario o enviarlo al chat.
    • \n
    \n

    \"Enlace

    \n
      \n
    • Cuando un jugador hace clic en un enlace, la acción correspondiente se realizará con su personaje.
    • \n
    • Cuando un Director de Juego hace clic en un enlace, la acción correspondiente se realizará con sus tokens seleccionados.
    • \n
    • Un enlace se puede arrastrar y soltar en entradas de diario, en un token, etc.
    • \n
    \n

    \"Soltar

    \n\n
    ","markdown":""},"sort":16},{"name":"Cordura","type":"text","_id":"Uyh0MRcLVeszfVcP","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Tiradas de Cordura

    \n

    El sistema ha integrado el flujo para las tiradas de cordura y puede manejar tiradas de cordura, realizar un seguimiento de la pérdida de Cordura y realizar tiradas para la locura temporal.

    \n

    Solicitar tiradas de Cordura

    \n
      \n
    • El Guardián puede hacer clic con Ctrl+Shift en la Cordura del personaje para solicitar una Tirada de Cordura para ese personaje.

      \n
        \n
      • Si el Guardián también presiona Alt (manteniendo al mismo tiempo Ctrl+Shift+Alt) mientras hace clic en la Cordura de un personaje, aparecerá un diálogo para introducir la pérdida de cordura si la tirada de cordura es exitosa y el valor cuando la tirada de cordura falla.
      • \n
    • \n
    • Video que muestra el flujo de trabajo de la tirada de cordura

    • \n
    \n\n
    ","markdown":""},"sort":17}],"_id":"35FM7ZOdzC6L2xlj","flags":{"CoC7":{"cocidFlag":{"eras":{},"id":"je..call-of-cthulhu-7-th-edition-system-documentation","lang":"es","priority":0}}}} -{"name":"L'Appel de Cthulhu version 7 [fr]","pages":[{"name":"Documentation du système","type":"text","_id":"mEy5Vvny9no32sB0","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Documentation du Système :squid:

    \n

    Vous avez installé Foundry VTT (la version stable, les versions en test sont... en test :)

    \n

    Quelques modules pour commencer

    \n
      \n
    • fr-FR - Core Game: pour avoir la traduction française de Foundry
    • \n
    • Dice so nice!: pour les jets de dés
    • \n
    \n

    Vous passez la langue par défaut à Français dans l'onglet configuration du menu d'accueil.
    \nVous créez votre monde, avec le Call of Cthulhu 7th edition (Unofficial) de Vétérini.
    \nEt vous le lancez.
    \nVous activez vos modules et hop !

    \n

    Premiers paramétrages

    \n

    Une fois dans le monde, dans le menu Paramètres, vous sélectionnez Gestion des modules, puis Système de jeu.
    \nTous les paramètres sont dignes d'intérêt mais:

    \n
      \n
    • les Modificateur de jet et Modificateur de seuil de réussite le sont particulièrement.
    • \n
    • et Changer l'apparence de la fiche
    • \n
    \n

    Ce que l'on peut créer

    \n

    Icône Personnages

    \n
      \n
    • character: personnage PJ
    • \n
    • npc: PNJ
    • \n
    • creature: monstre
    • \n
    • vehicle: véhicule
    • \n
    \n

    Icône Objets

    \n

    Là ça devient ouf:

    \n
      \n
    • item: un objet
    • \n
    • weapon: une arme
    • \n
    • skill: une compétence
    • \n
    • setup: une module de création de perso à glisser/déposer sur votre fiche à la création (embarque les jets de création de caracs, les compétences,...)
    • \n
    • occupation: une occupation (avec ses compétences, son époque, ses points d'occupation, son crédit)
    • \n
    • archetype: un archétype (Pulp)
    • \n
    • book: un livre occulte
    • \n
    • spell: un sort
    • \n
    • talent: un talent (Pulp)
    • \n
    • status: un état... de folie
    • \n
    \n

    Icône Tables

    \n

    :recycle:

    \n

    Outils du gardien (menus spécifiques au système)

    \n

    Ils sont dans votre barre d'outils:

    \n

    \"01\"

    \n
      \n
    • L'icône de dé permet de lancer des dés n'importe quand (en les modifiant si besoin: difficulté, seuil, niveau de compétence).
    • \n
    • L'icône de poulpe donne accès aux outils du Gardien:
    • \n
    \n

    \"02\"

    \n

    De haut en bas:

    \n
      \n
    • Activer la phase de développement (entre séances)
    • \n
    • Activer la phase de création (à la création des persos)
    • \n
    • Importer un personnage depuis un simple texte
    • \n
    • Activer la possibilité des gains d'expérience (en partie)
    • \n
    • Balancer un jet factice aux joueurs dans le chat: un peu d'pression :)
    • \n
    \n

    Les compendiums

    \n

    Pour les utiliser au mieux, 2 choses:

    \n
      \n
    • Installer le module Compendium Folders (qui trie automatiquement les compendium)
    • \n
    • Importer les différents compendium (clic-droit Importer...)
    • \n
    \n

    @UUID[.Txh2Rq0uqiNkQwHH]{Combat}

    \n

    @UUID[.XgRqB95KxAc3lyeB]{Création}

    \n

    @UUID[.nV3LVFViQE8EmLnP]{Créer son premier investigateur}

    \n

    @UUID[.mEy5Vvny9no32sB0]{Documentation du système}

    \n

    @UUID[.gGQh5I6KyTqLYqGS]{Effets}

    \n

    @UUID[.5F222OZBJJ1ytmCs]{Imoirtation de PNJs}

    \n

    @UUID[.gx0OolN3Rzjo0t4A]{Liens}

    \n

    @UUID[.oe93qytA6DKMCLgP]{Objets}

    \n

    @UUID[.iNOVrFGpUVcVLNCM]{Outil de création de Lien}

    \n

    @UUID[.q9nBYjRZvfaZqwVP]{Poursuites}

    \n

    @UUID[.d38sw0oxaRbKDzTg]{Santé Mentale}

    \n

    @UUID[.uqUYiyO1KpLGxKWn]{Système de gestion des ID }

    \n

    @UUID[.pAqjluCfTIzRGC2p]{Tableau des commandes}

    \n

    @UUID[.6wklc7lxtcrluEZF]{Type d'Objet: Archétype}

    \n

    @UUID[.3ETyV0mwesoW0mUQ]{Type d'Objet: Compétence}

    \n

    @UUID[.3T61lGUMJOkACoQX]{Type d'Objet: Livre}

    \n

    @UUID[.vBeZ70E8xTaQyMxa]{Type d'Objet: Occupation}

    \n

    @UUID[.rb4P0sMpVxmxtvtt]{Type d'Objet: Setup}

    \n


    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\\

    \n

    Des éons qu'ils dorment mais Vétérini les a réveillés ! Avec ce système ultime, à vous l'Appel de Cthulhu v7 en version totale: création, progression, SAN, combat, poursuites, ...\nLe MUST have !

    \n\n\n\n\n\n\n\n\n\n\n
    @UUID[.mEy5Vvny9no32sB0#guide-de-lutilisateur-trice]{Guide de l'utilisateur/trice} (en cours)@UUID[.mEy5Vvny9no32sB0#santé-mentale]{Santé Mentale} (à faire)
    @UUID[.mEy5Vvny9no32sB0#tableau-des-commandes]{Tableau des Commandes} (en cours)@UUID[.mEy5Vvny9no32sB0#combat]{Combat} (à faire)
    @UUID[.mEy5Vvny9no32sB0#liens-et-jets]{Liens (pour les jets)} (en cours)@UUID[.mEy5Vvny9no32sB0#poursuites]{Poursuites} (à faire)
    @UUID[.mEy5Vvny9no32sB0#création-de-personnage]{Création de personnage} (à faire)@UUID[.mEy5Vvny9no32sB0#objets]{Objets} (à faire)
    @UUID[.mEy5Vvny9no32sB0#phase-de-progression]{Phase de progression} (à faire)@UUID[.mEy5Vvny9no32sB0#personnages]{Personnages} (à faire)
    \n

    Documentation partagée avec amour et horreur par Toc :squid: https://tentacules.net

    \n

    \"03\"

    \n


    \n
    \n\\

    \n

    Objets

    \n

    item: un objet

    \n

    weapon: une arme

    \n

    skill: une compétence

    \n

    setup: une module de création de perso

    \n

    occupation: une occupation

    \n

    archetype: un archétype (Pulp)

    \n

    book: un livre occulte

    \n

    spell: un sort

    \n

    talent: un talent (Pulp)

    \n

    status: un état... de folie

    \n


    \n
    \n\\

    \n

    Personnages

    \n

    character: personnage PJ

    \n

    C'est ici: Création de personnage.

    \n

    npc: PNJ

    \n

    creature: monstre

    \n

    vehicle: véhicule

    \n\n
    ","markdown":""},"sort":0},{"name":"Effets","type":"text","_id":"gGQh5I6KyTqLYqGS","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":1},{"name":"Importation d'acteurs","type":"text","_id":"5F222OZBJJ1ytmCs","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":2},{"name":"Création de Personnage","type":"text","_id":"XgRqB95KxAc3lyeB","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":3},{"name":"Expérience & évolution","type":"text","_id":"HKvBTFi7PdwjiNyl","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n\n
    ","markdown":""},"sort":4},{"name":"Poursuites","type":"text","_id":"q9nBYjRZvfaZqwVP","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":5},{"name":"Système de gestion des ID ","type":"text","_id":"uqUYiyO1KpLGxKWn","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":6},{"name":"Combat","type":"text","_id":"Txh2Rq0uqiNkQwHH","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":7},{"name":"Tableau des commandes","type":"text","_id":"pAqjluCfTIzRGC2p","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Tableau des Commandes

    \n

    Quasiment tout est cliquable: les caractéristiques, les compétences, les armes, les dégâts, la SAN, la Chance...\nEt en plus:

    \n
      \n
    • combiné avec la touche Shift enfoncée, ça envoie directement le jet dans le chat.
    • \n
    • combiné avec la touche Ctrl [pour le Gardien] enfoncée, ça envoie une demande dans le chat au personnage concerné pour réaliser le jet, après paramétrage du jet par le gardien.
    • \n
    • les 2 combinés, Ctrl+Shift: ça envoie une demande dans le chat au personnage concerné pour réaliser le jet directement.
    • \n
    • et le clic-droit vous emmène vers les jets opposés ou combinés.
    • \n
    \n

    Commun

    \n

    Sur XXX, XXX pouvant être carac, compétence,...

    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    CommandeAction
    Gardien
    clic XXXLance un jet de XXX après paramétrage du jet
    Shift + clic XXXLance un jet de XXX (difficulté ordinaire pas de bonus/malus)
    Ctrl + clic XXXDemande un jet de XXX après paramétrage du jet (dont seuil et difficulté)
    Ctrl+Shift + clic XXXDemande un jet de XXX
    Investigateur
    clic XXXLance un jet de XXX après paramétrage du jet
    Ctrl+Shift ou Shift + clic XXXLance un jet de XXX (difficulté ordinaire pas de bonus/malus)
    Ctrl + clic XXXLance un jet de XXX après paramétrage du jet
    \n

    Santé Mentale

    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    CommandeAction
    Gardien
    clic XXXLance un jet de XXX après paramétrage du jet
    Shift + clic XXXLance un jet de XXX (difficulté ordinaire pas de bonus/malus)
    Ctrl + clic XXXDemande un jet de XXX après paramétrage du jet (dont seuil et difficulté)
    Ctrl+Shift + clic XXXDemande un jet de XXX
    Ctr+Shift+Alt + clic SANDemande un jet de SAN en définissant les pertes de SAN
    Investigateur
    clic XXXLance un jet de XXX après paramétrage du jet
    Ctrl+Shift ou Shift + clic XXXLance un jet de XXX (difficulté ordinaire pas de bonus/malus)
    Ctrl + clic XXXLance un jet de XXX après paramétrage du jet (dont seuil et difficulté)
    \n

    Jets Combinés / Opposés

    \n\n\n\n\n\n\n\n\n\n\n\n\n
    CommandeAction
    clic-droit XXXDébute/ Ajoute le jet à un jet *opposé après paramétrage du jet
    Ctrl+Shift ou Shift + clic-droit XXXDébute/ Ajoute le jet à un jet opposé (difficulté ordinaire pas de bonus/malus)
    Ctrl + clic-droit XXXDébute/ Ajoute le jet à un jet opposé après paramétrage du jet (dont seuil et difficulté)
    Alt + clic-droit XXXDébute/ Ajoute le jet à un jet combiné après paramétrage du jet
    Ctrl+Shift+Alt ou Shift+Alt + clic-droit XXXDébute/ Ajoute le jet à un jet combiné (difficulté ordinaire pas de bonus/malus)
    Ctrl+Alt + clic-droit XXXDébute/ Ajoute le jet à un jet combiné après paramétrage du jet (dont seuil et difficulté)
    \n

    Commandes dans le Chat

    \n\n\n\n\n\n\n\n\n
    CommandeAction
    /cc xxlance un D100 contre une difficulté de xx
    /cbr xx, yylance un D100 contre une difficulté de xx et de yy
    \n\n
    ","markdown":""},"sort":8},{"name":"Créer son premier investigateur","type":"text","_id":"nV3LVFViQE8EmLnP","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":9},{"name":"Objets","type":"text","_id":"oe93qytA6DKMCLgP","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":10},{"name":"Type d'Objet: Archétype","type":"text","_id":"6wklc7lxtcrluEZF","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":11},{"name":"Type d'Objet: Livre","type":"text","_id":"3T61lGUMJOkACoQX","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":12},{"name":"Type d'Objet: Occupation","type":"text","_id":"vBeZ70E8xTaQyMxa","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":13},{"name":"Type d'Objet: Setup","type":"text","_id":"rb4P0sMpVxmxtvtt","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":14},{"name":"Type d'Objet: Compétence","type":"text","_id":"3ETyV0mwesoW0mUQ","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":15},{"name":"Liens","type":"text","_id":"gx0OolN3Rzjo0t4A","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Liens et Jets

    \n

    Toutes ces commandes peuvent être glissées/déposées dans un Article (ou toute zone éditable) en mode modification sauf les modificateurs de seuil !
    \nCe qui peut donner: @coc7.check[type:attribute,name:san,difficulty:1,modifier:-2]

    \n

    \"04\"

    \n

    Voici le fonctionnement: @coc7.TYPE_OF_REQUEST[OPTIONS]{TEXT_TO_DISPLAY}

    \n
      \n
    • TYPE_OF_REQUEST :\n
        \n
      • 'sanloss': test de SAN, si échoué, propose de réduire la SAN.
      • \n
      • 'check': test défini en fonction des options.
      • \n
      • 'item': test d'objet. Seulement pour les objets de type arme.
      • \n
    • \n
    • OPTIONS: [] = optionnel\n
        \n
      • sanloss:\n
          \n
        • sanMax: perte de SAN max
        • \n
        • sanMin: perte de SAN min
        • \n
      • \n
      • check:\n
          \n
        • type: type de jet (caractéristique, compétence, attribut).
        • \n
        • name: nom de caractéristique, compétence, attribut.
        • \n
        • [blind]: jet aveugle, sinon le jet sera du type sélectionné dans le chat.
        • \n
      • \n
      • Tous:\n
          \n
        • [difficulty]: ? (aveugle), 0 (normal), + (difficile), ++ (extrême), +++ (critique).
        • \n
        • [modifier]: -x (x dé malus), +x (x dé bonus), 0 (pas de modificateur).
        • \n
        • [icon]: icône à utiliser (font awesome, fas fa-dice).
        • \n
      • \n
    • \n
    • TEXT_TO_DISPLAY: Texte à afficher, optionnel.
    • \n
    \n

    Par exemple:

    \n
      \n
    • @coc7.sanloss[sanMax:1D6,sanMin:1,difficulty:++,modifier:-1]{Hard San Loss (-1) 1/1D6}
    • \n
    • @coc7.check[type:charac,name:STR,difficulty:+,modifier:-1]{Hard STR check(-1)}
    • \n
    • @coc7.check[type:attrib,name:lck,difficulty:+,modifier:-1]{Hard luck check(-1)}
    • \n
    • @coc7.check[type:skill,icon:fas fa-arrow-alt-circle-right,name:anthropology,difficulty:+,modifier:-1]{Hard Anthropology check(-1)}
    • \n
    • @coc7.check[type:skill,icon:fas fa-arrow-alt-circle-right,name:anthropology,modifier:+1]
    • \n
    \n

    Jet simple: [[/roll 1d10]]{Dégâts}

    \n\n
    ","markdown":""},"sort":16},{"name":"Outil de création de Lien","type":"text","_id":"iNOVrFGpUVcVLNCM","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    Création de personnage

    \n

    A la main

    \n
      \n
    1. Vous créez un nouveau Personnage.
    2. \n
    3. Vous passez en mode Création.
    4. \n
    5. Vous déverrouillez la fiche de personnage (clic sur le petit cadenas).
    6. \n
    7. Vous le nommez et remplissez occupation, sexe, âge,...
    8. \n
    9. Vous ajoutez les compétences une par une, et oui, à la mimine, et positionnez les % qui vont bien.
    10. \n
    \n

    Pour plus de facilité, vous pouvez vous créer un Compendium listant toutes les compétences et ainsi vous n'aurez plus à les saisir à chaque fois mais simplement à les glisser/déposer sur votre fiche, en mode Modification.

    \n

    Via une occupation

    \n

    :recycle:

    \n

    Via un setup

    \n

    :recycle:

    \n

    Via import / copie

    \n

    Copie

    \n
      \n
    1. Vous vous créez/avez créé un personnage type, avec compétences.
    2. \n
    3. Vous le copiez (clic droit sur le personnage dans la liste des Personnages, copier).
    4. \n
    5. Et voilà !
    6. \n
    \n

    Import

    \n
      \n
    1. Vous vous créez/avez créé un personnage type, avec compétences.
    2. \n
    3. Vous l'exportez (clic droit sur le personnage dans la liste des Personnages, exporter (le fichier arrive sur votre ordinateur, format json)).
    4. \n
    5. Vous vous rendez dans votre partie, vous créez juste le nouveau personnage sans rien y mettre (juste le nom).
    6. \n
    7. Vous importez le fichier précédemment exporté (clic droit sur le personnage dans la liste des Personnages, importer).
    8. \n
    9. Et voilà !
    10. \n
    \n

    Vous pouvez ensuite le modifier à façon en passant en mode Création.

    \n\n
    ","markdown":""},"sort":17},{"name":"Santé Mentale","type":"text","_id":"d38sw0oxaRbKDzTg","title":{"show":false,"level":1},"text":{"format":1,"content":"
    \n

    .

    \n\n
    ","markdown":""},"sort":18}],"_id":"tdakyzTVOQsAMdSm","flags":{"CoC7":{"cocidFlag":{"eras":{},"id":"je..call-of-cthulhu-7-th-edition-system-documentation","lang":"fr","priority":0}}}} \ No newline at end of file diff --git a/shared/build-compendiums.js b/shared/build-compendiums.js new file mode 100644 index 00000000..f54690e7 --- /dev/null +++ b/shared/build-compendiums.js @@ -0,0 +1,9 @@ +import { exit } from 'node:process' +import GenerateCompendiums from './generate-compendiums.js' + +try { + await GenerateCompendiums.process() +} catch (e) { + console.log('\n', '\x1b[31m', 'ERROR: ', e.message, '\x1b[0m', 'line: ', e.stack, '\n\n') + exit(1) +} diff --git a/shared/generate-compendiums.js b/shared/generate-compendiums.js new file mode 100644 index 00000000..ceefa5c0 --- /dev/null +++ b/shared/generate-compendiums.js @@ -0,0 +1,259 @@ +import * as crypto from 'crypto' +import * as fs from 'fs' +import * as path from 'path' +import * as url from 'url' +import { ClassicLevel } from 'classic-level' +import { loadAll } from 'js-yaml' + +export default class GenerateCompendiums { + static async process () { + const rootFolder = fs.realpathSync(path.dirname(url.fileURLToPath(import.meta.url)) + '/..') + + let type = '' + + if (fs.existsSync(rootFolder + '/module.json')) { + type = 'module' + } else if (fs.existsSync(rootFolder + '/system.json')) { + type = 'system' + } else { + throw new Error('No module.json or system.json') + } + + let outputMode = 'db' + for (let i = 2, im = process.argv.length; i < im; i++) { + if (['db', 'json'].includes(process.argv[i])) { + outputMode = process.argv[i] + } + } + + const foundryConfig = JSON.parse(fs.readFileSync(rootFolder + '/' + type + '.json', 'utf8')) + if (typeof foundryConfig?.id === 'undefined') { + throw new Error('No id found in ./' + type + '.json file') + } + + if (typeof foundryConfig.packs === 'undefined') { + throw new Error('No packs found in ./' + type + '.json file') + } + + if (typeof foundryConfig.languages === 'undefined') { + throw new Error('No languages found in ./' + type + '.json file') + } + + const langs = [] + for (const lang of foundryConfig.languages) { + if (lang.lang) { + langs.push(lang.lang) + } + } + + const batch = [] + for (const pack of foundryConfig.packs) { + const match = pack.path.match(/^packs\/([^-]+)-(.+)$/) + + if (!match) { + throw new Error('Incorrect folder found in ./' + type + '.json file for ' + pack.name) + } + + const single = { + type: pack.type, + lang: match[1], + pack: match[2] + } + + if (fs.existsSync(rootFolder + '/compendiums/' + single.lang + '-' + single.pack + '.yaml')) { + if (!langs.includes(single.lang)) { + throw new Error('Invalid language found in ./' + type + '.json file for ' + pack.name) + } + + batch.push(single) + } else { + console.log('\x1b[33m', 'Skipping Pack', single.lang + '-' + single.pack + ' (' + single.type + ')', '\x1b[0m') + } + } + + console.log('Known Packs', batch) + + for (const single of batch) { + this.collisions = {} + + const yaml = fs.readFileSync(rootFolder + '/compendiums/' + single.lang + '-' + single.pack + '.yaml', 'utf8') + + const yamlObject = loadAll(yaml) + + const documents = yamlObject.filter(doc => doc).map(doc => { + return GenerateCompendiums.processDocument(doc, { type: single.type, pack: single.lang, id: foundryConfig.id }) + }) + + const batch = Object.keys(documents).reduce((c, i) => { + const additionalKeys = {} + let dbKey = '' + if (documents[i].type === 'folder') { + documents[i].type = single.type + dbKey = 'folders' + } else { + switch (single.type) { + case 'Actor': + dbKey = single.type.toLowerCase() + 's' + if (typeof documents[i].items !== 'undefined') { + const items = [] + for (const doc of documents[i].items) { + const item = GenerateCompendiums.processDocument(doc, { type: 'Item', pack: single.lang, id: foundryConfig.id }) + items.push(item._id) + if (typeof additionalKeys['actors.items'] === 'undefined') { + additionalKeys['actors.items'] = [] + } + additionalKeys['actors.items'].push(item) + } + documents[i].items = items + } + break + case 'Item': + dbKey = single.type.toLowerCase() + 's' + break + case 'JournalEntry': + dbKey = 'journal' + if (typeof documents[i].pages !== 'undefined') { + const pages = [] + for (const page of documents[i].pages) { + pages.push(page._id) + if (typeof additionalKeys['journal.pages'] === 'undefined') { + additionalKeys['journal.pages'] = [] + } + additionalKeys['journal.pages'].push(page) + } + documents[i].pages = pages + } + break + case 'RollTable': + dbKey = 'tables' + if (typeof documents[i].results !== 'undefined') { + const results = [] + for (const result of documents[i].results) { + results.push(result._id) + if (typeof additionalKeys['tables.results'] === 'undefined') { + additionalKeys['tables.results'] = [] + } + additionalKeys['tables.results'].push(result) + } + documents[i].results = results + } + break + case 'Adventure': + dbKey = 'adventures' + break + default: + throw new Error('Unknown type ' + single.type) + } + if (typeof documents[i].sort === 'undefined') { + documents[i].sort = Number(i) + } + } + if (dbKey !== '') { + c.push({ type: 'put', key: '!' + dbKey + '!' + documents[i]._id, value: documents[i], valueEncoding: 'json' }) + } + for (const additionalKey in additionalKeys) { + for (const additionalDocument of additionalKeys[additionalKey]) { + c.push({ type: 'put', key: '!' + additionalKey + '!' + documents[i]._id + '.' + additionalDocument._id, value: additionalDocument, valueEncoding: 'json' }) + } + } + return c + }, []) + + if (outputMode === 'json') { + if (!fs.existsSync(rootFolder + '/temp')) { + fs.mkdirSync(rootFolder + '/temp') + } + fs.writeFileSync(rootFolder + '/temp/' + single.lang + '-' + single.pack + '_2.json', JSON.stringify(batch, null, 2), { flag: 'w+' }) + console.log('Generated: ./temp/' + single.lang + '-' + single.pack + '_2.json') + } else { + if (fs.existsSync(rootFolder + '/packs/' + single.lang + '-' + single.pack)) { + await ClassicLevel.destroy(rootFolder + '/packs/' + single.lang + '-' + single.pack) + } + const db = new ClassicLevel(rootFolder + '/packs/' + single.lang + '-' + single.pack, { keyEncoding: 'utf8', valueEncoding: 'json' }) + await db.batch(batch, { valueEncoding: 'utf8' }) + await db.close() + console.log('Generated: ./packs/' + single.lang + '-' + single.pack, batch.length) + } + } + } + + static processDocument (doc, { type = '', lang = 'en', id = '' }) { + if (doc.type === 'folder') { + if (!doc._id) { + // Make sure we don't generate new ids everytime we rebuild + doc._id = GenerateCompendiums.generateBuildConsistentID(doc.name + lang + 'folder') + } + this.collisions[doc._id] = true + return doc + } + if (!doc._id) { + // Make sure we don't generate new ids everytime we rebuild + doc._id = GenerateCompendiums.generateBuildConsistentID(doc.name + lang + JSON.stringify(doc.flags.CoC7.cocidFlag.eras)) + } + this.collisions[doc._id] = true + switch (type) { + case 'Item': + switch (doc.type) { + case 'skill': { + const match = doc.name.match(/^(.+)\s*\((.+)\)$/) + doc.system = doc.system || {} + if (match) { + doc.system.skillName = match[2].trim() + doc.system.specialization = match[1].trim() + } else { + doc.system.skillName = doc.name + doc.system.specialization = '' + } + break + } + } + break + case 'RollTable': + if (typeof doc.results !== 'undefined') { + let range = 0 + for (const offset in doc.results) { + if (!doc.results[offset]._id) { + doc.results[offset]._id = GenerateCompendiums.generateBuildConsistentID(doc.name + lang + JSON.stringify(doc.flags.CoC7.cocidFlag.eras) + offset) + } + if (!doc.results[offset].range) { + range++ + doc.results[offset].range = [range, range] + } else { + range = doc.results[offset].range[1] + } + } + if (!doc.formula) { + doc.formula = '1d' + range + } + } + break + case 'JournalEntry': + if (typeof doc.pages !== 'undefined') { + for (const offset in doc.pages) { + if (!doc.pages[offset]._id) { + doc.pages[offset]._id = GenerateCompendiums.generateBuildConsistentID(doc.name + lang + JSON.stringify(doc.flags.CoC7.cocidFlag.eras) + offset) + } + } + } + break + } + return doc + } + + /** + * generateBuildConsistentID uses idSource to generate an id that will be consistent across builds. + * + * Note: This is called outside of foundry to build manual .db files and substitutes foundry.utils.randomID in a build consistent way. + * It creates a hash from the key so it is consistent between builds and the converts to base 64 so it uses the same range of characters as FoundryVTTs generator. + * @param {string} idSource + * @returns id, an string of 16 characters with the id consistently generated from idSource + */ + static generateBuildConsistentID (idSource) { + let id = crypto.createHash('md5').update(idSource).digest('base64').replace(/[\\+=\\/]/g, '').substring(0, 16) + while (typeof this.collisions[id] !== 'undefined') { + console.log('collision on ' + idSource) + id = crypto.createHash('md5').update(idSource + Math.random().toString()).digest('base64').replace(/[\\+=\\/]/g, '').substring(0, 16) + } + return id + } +} diff --git a/generate-manuals.js b/shared/generate-manuals.js similarity index 83% rename from generate-manuals.js rename to shared/generate-manuals.js index 53a6582e..414638cc 100644 --- a/generate-manuals.js +++ b/shared/generate-manuals.js @@ -1,7 +1,13 @@ import * as crypto from 'crypto' -import { Remarkable } from 'remarkable' import * as fs from 'fs' -import write from './node_modules/write/index.js' +import * as path from 'path' +import * as url from 'url' +import { ClassicLevel } from 'classic-level' +import { Remarkable } from 'remarkable' + +const FOLDER_ID = 'CoC7' + +const rootFolder = fs.realpathSync(path.dirname(url.fileURLToPath(import.meta.url)) + '/..') const collisions = {} @@ -246,46 +252,54 @@ const sources = { } } -const dbFile = [] +const dbFile = {} try { for (const lang in sources) { const id = generateBuildConsistentID('manual' + lang) - const dbEntry = { + collisions[id] = true + const journalKey = '!journal!' + id + const journalPagePrefixKey = '!journal.pages!' + id + '.' + dbFile[journalKey] = { name: sources[lang].name + ' [' + lang + ']', pages: [], _id: id, flags: { - CoC7: { + [FOLDER_ID]: { cocidFlag: { eras: {}, id: 'je..call-of-cthulhu-7-th-edition-system-documentation', lang, priority: sources[lang].priority - } + }, + 'css-adventure-entry': true } } } const links = {} - const includedPages = [] for (const source of sources[lang].pages) { const id = generateBuildConsistentID('manual' + lang + source.file) collisions[id] = true links[source.file] = id } + + if (!fs.existsSync(rootFolder + '/docs/')) { + fs.mkdirSync(rootFolder + '/docs/') + } + for (const page in sources[lang].pages) { const md = new Remarkable() - let input = fs.readFileSync( - './module/manual/' + lang + '/' + sources[lang].pages[page].file, - 'utf8' - ) - includedPages.push(' - "' + sources[lang].pages[page].name + '" from module/manual/' + lang + '/' + sources[lang].pages[page].file) + let input = fs.readFileSync(rootFolder + '/module/manual/' + lang + '/' + sources[lang].pages[page].file, 'utf8') const mdFile = input .replace(/\[(fas fa-[^\]]+|game-icon game-icon-[^\]]+)\]/g, '') .replace(/@@coc7./g, '@coc7.') .replace(/@Compendium\[[^\]]+\.[^\\.]+\]{([^}]+)}/g, '[_$1_]') - write('./docs/' + lang + '/' + sources[lang].pages[page].file, mdFile) + if (!fs.existsSync(rootFolder + '/docs/' + lang + '/')) { + fs.mkdirSync(rootFolder + '/docs/' + lang + '/') + } + + fs.writeFileSync(rootFolder + '/docs/' + lang + '/' + sources[lang].pages[page].file, mdFile, { flag: 'w+' }) const matches = input.matchAll(/\[(.+?)\]\(((?![a-z]{1,10}:)(.+?))\)/g) for (const match of matches) { @@ -305,7 +319,8 @@ try { .replace(/\n\s*/g, '\n') .replace(/@@coc7./g, '@coc7.') - dbEntry.pages.push({ + dbFile[journalKey].pages.push(links[sources[lang].pages[page].file]) + dbFile[journalPagePrefixKey + links[sources[lang].pages[page].file]] = { name: sources[lang].pages[page].name, type: 'text', _id: links[sources[lang].pages[page].file], @@ -319,18 +334,26 @@ try { markdown: '' }, sort: Number(page) - }) + } } - dbFile.push(JSON.stringify(dbEntry)) - console.log('Created: ' + dbEntry.name) - console.log(includedPages.join('\n')) } + + const batch = Object.keys(dbFile).reduce((c, i) => { + c.push({ type: 'put', key: i, value: dbFile[i], valueEncoding: 'json' }) + return c + }, []) + + if (fs.existsSync(rootFolder + '/packs/system-doc')) { + await ClassicLevel.destroy(rootFolder + '/packs/system-doc') + } + const db = new ClassicLevel(rootFolder + '/packs/system-doc', { keyEncoding: 'utf8', valueEncoding: 'json' }) + await db.batch(batch, { valueEncoding: 'utf8' }) + await db.close() + console.log('Generated: ./packs/system-doc') } catch (e) { console.log('EXCEPTION:', e) } -write('./packs/system-doc.db', dbFile.join('\n')) - /** * generateBuildConsistentID uses idSource to generate an id that will be consistent across builds. * diff --git a/shared/generate-roll-requests.js b/shared/generate-roll-requests.js new file mode 100644 index 00000000..b88e5b1a --- /dev/null +++ b/shared/generate-roll-requests.js @@ -0,0 +1,412 @@ +import * as fs from 'fs' +import * as path from 'path' +import * as url from 'url' +import { ClassicLevel } from 'classic-level' + +const FOLDER_ID = 'CoC7' + +const rootFolder = fs.realpathSync(path.dirname(url.fileURLToPath(import.meta.url)) + '/..') + +const collisions = {} + +const rolls = [ + { + type: 'attrib', + name: 'Attrib', + names: [ + { + name: 'Luck', + icon: 'fas fa-dice-d20' + }, + { + name: 'Sanity', + icon: 'fas fa-pastafarianism' + } + ] + }, + { + type: 'characteristic', + name: 'Characteristic', + names: [ + { + name: 'APP', + icon: 'fas fa-hat-cowboy' + }, + { + name: 'CON', + icon: 'fas fa-heart-broken' + }, + { + name: 'DEX', + icon: 'fas fa-skating' + }, + { + name: 'EDU', + icon: 'fas fa-graduation-cap' + }, + { + name: 'INT', + icon: 'fas fa-brain' + }, + { + name: 'POW', + icon: 'fas fa-hamsa' + }, + { + name: 'SIZ', + icon: 'fas fa-child' + }, + { + name: 'STR', + icon: 'fas fa-dumbbell' + } + ] + }, + { + type: 'skill', + name: 'Skill', + names: [ + { + name: 'Accounting', + icon: 'fas fa-balance-scale' + }, + { + name: 'Anthropology', + icon: 'fas fa-bone' + }, + { + name: 'Appraise', + icon: 'fas fa-dollar-sign' + }, + { + name: 'Archaeology', + icon: 'fas fa-archway' + }, + { + name: 'Art/Craft (Fine Art)', + icon: 'fas fa-broom' + }, + { + name: 'Charm', + icon: 'fas fa-kiss-wink-heart' + }, + { + name: 'Climb', + icon: 'fas fa-hiking' + }, + { + name: 'Computer Use', + icon: 'fas fa-mouse' + }, + { + name: 'Credit Rating', + icon: 'fas fa-award' + }, + { + name: 'Cthulhu Mythos', + icon: 'fab fa-gitkraken' + }, + { + name: 'Demolitions', + icon: 'fas fa-bomb' + }, + { + name: 'Disguise', + icon: 'fas fa-user-secret' + }, + { + name: 'Diving', + icon: 'fas fa-user-astronaut' + }, + { + name: 'Dodge', + icon: 'fas fa-running' + }, + { + name: 'Drive Auto', + icon: 'fas fa-car-side' + }, + { + name: 'Electrical Repair', + icon: 'fas fa-bolt' + }, + { + name: 'Electronics', + icon: 'fas fa-microchip' + }, + { + name: 'Fast Talk', + icon: 'fas fa-dizzy' + }, + { + name: 'Fighting (Brawl)', + icon: 'fas fa-fist-raised' + }, + { + name: 'Firearms (Handgun)', + icon: 'fas fa-bullseye' + }, + { + name: 'Firearms (Rifle/Shotgun)', + icon: 'fas fa-crosshairs' + }, + { + name: 'Firearms (Submachine Gun)', + icon: 'far fa-dot-circle' + }, + { + name: 'First Aid', + icon: 'fas fa-medkit' + }, + { + name: 'History', + icon: 'fas fa-heading' + }, + { + name: 'Intimidate', + icon: 'fas fa-tired' + }, + { + name: 'Jump', + icon: 'fas fa-walking' + }, + { + name: 'Language (Any)', + icon: 'fas fa-om' + }, + { + name: 'Language (Own)', + icon: 'fas fa-globe' + }, + { + name: 'Law', + icon: 'fas fa-gavel' + }, + { + name: 'Library Use', + icon: 'fas fa-book-open' + }, + { + name: 'Listen', + icon: 'fas fa-deaf' + }, + { + name: 'Locksmith', + icon: 'fab fa-expeditedssl' + }, + { + name: 'Mechanical Repair', + icon: 'fas fa-tools' + }, + { + name: 'Medicine', + icon: 'fas fa-ambulance' + }, + { + name: 'Natural World', + icon: 'fas fa-hippo' + }, + { + name: 'Navigate', + icon: 'fas fa-route' + }, + { + name: 'Occult', + icon: 'fas fa-hat-wizard' + }, + { + name: 'Operate Heavy Machinery', + icon: 'fas fa-snowplow' + }, + { + name: 'Persuade', + icon: 'fas fa-comments' + }, + { + name: 'Pilot (Boat)', + icon: 'fas fa-ship' + }, + { + name: 'Psychoanalysis', + icon: 'fas fa-head-side-cough' + }, + { + name: 'Psychology', + icon: 'fas fa-head-side-virus' + }, + { + name: 'Read Lips', + icon: 'fas fa-blind' + }, + { + name: 'Ride', + icon: 'fab fa-sticker-mule' + }, + { + name: 'Science (Chemistry)', + icon: 'fas fa-atom' + }, + { + name: 'Sleight of Hand', + icon: 'fas fa-hand-sparkles' + }, + { + name: 'Spot Hidden', + icon: 'fas fa-binoculars' + }, + { + name: 'Stealth', + icon: 'fas fa-user-ninja' + }, + { + name: 'Survival (Desert)', + icon: 'fas fa-wind' + }, + { + name: 'Swim', + icon: 'fas fa-swimmer' + }, + { + name: 'Fighting (Throw)', + icon: 'fas fa-football-ball' + }, + { + name: 'Track', + icon: 'fas fa-shoe-prints' + } + ] + } +] + +const parameters = [ + { + name: 'Regular', + code: '', + difficulty: 0, + modifier: 0 + }, + { + name: 'Hard', + code: 'Hard', + difficulty: '+', + modifier: 0 + }, + { + name: 'Extreme', + code: 'Extreme', + difficulty: '++', + modifier: 0 + }, + { + name: 'Critical', + code: 'Critical', + difficulty: '+++', + modifier: 0 + }, + { + name: 'Blind', + code: 'Blind', + difficulty: '?', + modifier: 0 + }, + { + name: '1 Bonus', + code: '1B', + difficulty: 0, + modifier: '+1' + }, + { + name: '2 Bonus', + code: '2B', + difficulty: 0, + modifier: '+2' + }, + { + name: '1 Penalty', + code: '1P', + difficulty: 0, + modifier: '-1' + }, + { + name: '2 Penalty', + code: '2P', + difficulty: 0, + modifier: '-2' + } +] + +try { + const html = [ + '', + '', + '', + '', + '', + '', + '' + ] + for (const roll1 of rolls) { + for (const roll2 of roll1.names) { + for (const parameter of parameters) { + html.push('') + html.push('') + html.push('') + + html.push('') + html.push('') + html.push('') + } + } + } + + const dbFile = {} + + const id = 'qaWAuaZa42JtdBhF' + collisions[id] = true + const pageId = 'izVAGIeSXPWURg7U' + collisions[pageId] = true + const journalKey = '!journal!' + id + const journalPageKey = '!journal.pages!' + id + '.' + pageId + dbFile[journalKey] = { + name: 'Roll Requests', + pages: [ + pageId + ], + _id: id, + flags: { + [FOLDER_ID]: { + cocidFlag: { + id: 'je..roll-requests', + lang: 'en', + priority: 0 + } + } + } + } + dbFile[journalPageKey] = { + _id: pageId, + name: 'Roll Requests', + type: 'text', + title: { + show: false + }, + text: { + content: html.join('') + } + } + + const batch = Object.keys(dbFile).reduce((c, i) => { + c.push({ type: 'put', key: i, value: dbFile[i], valueEncoding: 'json' }) + return c + }, []) + + if (fs.existsSync(rootFolder + '/packs/roll-requests')) { + await ClassicLevel.destroy(rootFolder + '/packs/roll-requests') + } + const db = new ClassicLevel(rootFolder + '/packs/roll-requests', { keyEncoding: 'utf8', valueEncoding: 'json' }) + await db.batch(batch, { valueEncoding: 'utf8' }) + await db.close() + console.log('Generated: ./packs/roll-requests') +} catch (e) { + console.log('EXCEPTION:', e) +} diff --git a/styles/system/adventure-sheet.less b/styles/system/adventure-sheet.less new file mode 100644 index 00000000..f4b69419 --- /dev/null +++ b/styles/system/adventure-sheet.less @@ -0,0 +1,358 @@ +@colourAdventureSheetAdventure: #75844c; +@colourAdventureSheetKeeperNotes: rgba(79,39,1,0.1); +@colourAdventureSheetKeeperNotesDark: rgba(79,39,1,0.2); +@colourAdventureSheetKeeperFoundryvtt: rgba(254,134,32,0.1); +@colourAdventureSheetKeeperFoundryvttDark: rgba(254,134,32,0.2); +@colourAdventureSheetKeeperReadaloud: rgba(127,127,127,0.1); +@colourAdventureSheetKeeperReadaloudDark: rgba(127,127,127,0.2); +@colourAdventureSheetExample: rgb(102,77,42); + +div.coc7-adventure-entry.sheet { + &.fixed-adventure-heading form.journal-header { + display: none; + } + + nav.pages-list { + font-family: Voltaire; + } + + section.journal-entry-content, + div.editor.prosemirror { + background: url(./assets/art/page.webp) repeat; + } + + section.journal-entry-content { + form.journal-header { + font-family: Voltaire; + input[type="text"] { + color: @colourAdventureSheetAdventure; + } + } + } + + div.journal-entry-pages, + div.journal-page-content { + font-family: Lusitana; + /* font-family: Arial; */ + + h1, + h2, + h3, + h4 { + font-family: Voltaire; + border-bottom: none; + color: @colourAdventureSheetAdventure; + } + + h1, h2 { + text-transform: uppercase; + } + + .coc7-adventure-solo { + display: none; + + p { + text-align: justify; + + a.content-link, + a.inline-roll { + margin: 0 0.2rem; + } + } + + p.actor-drop { + border: 1px solid #000; + text-align: center; + padding: 1rem; + } + + .assign-point-values ul { + padding:0; + } + + ul.flexrow { + li { + list-style-type: none; + text-align: center; + } + + &.source-values { + li { + border: 1px solid #000; + flex: 0 0 40px; + margin: 0 auto; + } + + width: 80%; + margin: 0 auto; + } + + &.destination-values li div.value { + border: 1px solid #000; + width: 40px; + margin: 0 auto; + } + + .draggable-other { + &.value.empty { + border: 1px dotted #999; + } + &:not(.empty) { + cursor: move; + } + } + + div.selectPadding { + padding: 4px; + } + + select { + width: 95%; + } + } + + .hidden-until { + display: none; + } + } + + p.hasdropcap:first-letter { + font-size: 2.3em; + float: left; + padding-right: 0.1em; + margin-top: -0.2em; + } + + p.hasindent { + text-indent: 1em; + * { + text-indent: 0; + } + } + + div.adventure-heading-section { + margin-bottom: 1em; + + div.bookmark { + flex: 0 0 93px; + mask: url(./assets/art/bookmark.webp) center center / contain no-repeat; + -webkit-mask: url(./assets/art/bookmark.webp) center center / contain no-repeat; + background: @colourAdventureSheetAdventure; + + &.short { + mask: url(./assets/art/bookmarks.webp) center center / contain no-repeat; + -webkit-mask: url(./assets/art/bookmarks.webp) center center / contain no-repeat; + } + + img { + display: block; + width: 100%; + mix-blend-mode: luminosity; + } + } + + .adventure-heading { + padding: 0.5em; + + div.heading { + font-size: 3em; + font-family: Voltaire; + text-transform: uppercase; + color: @colourAdventureSheetAdventure; + } + + .subheading { + font-style: italic; + } + } + } + + p.example { + color: @colourAdventureSheetExample; + } + p.example, + p.example-neutral { + font-style: italic; + } + + tr.example { + background-color: @colourAdventureSheetExample; + } + + div.keeper-foundryvtt, + div.keeper-read-aloud { + font-style: italic; + } + + div.keeper-notes, + div.keeper-foundryvtt, + div.keeper-read-aloud { + position: relative; + background-color: @colourAdventureSheetKeeperNotes; + border-radius: 1em; + border: 1px solid @colourAdventureSheetKeeperNotesDark; + margin-bottom: 1em; + + &.sidebar { + float: right; + width: 22em; + margin-left: 1em; + margin-bottom: 1em; + } + + + div.keeper-title { + background-color: @colourAdventureSheetKeeperNotes; + margin: 0; + padding: 0.7em 0.7em 0.7em 3em; + font-family: Voltaire; + font-size: 1.2em; + border-radius: 1em 1em 0 0; + border-bottom: 1px solid @colourAdventureSheetKeeperNotesDark; + background-image: url(./assets/art/elder-sign.webp); + background-repeat: no-repeat; + background-position-y: 0.45em; + background-position-x: 0.4em; + + &.default { + &:before { + content: "Keeper Note"; + } + p { + display: none; + } + } + &:not(.default) { + p { + margin: 0; + } + } + } + + div.keeper-body { + padding: 0.3em 1em 0.5em; + } + + table.keeper-body { + margin: 0; + border: 0; + } + } + + div.keeper-foundryvtt { + background-color: @colourAdventureSheetKeeperFoundryvtt; + border: 1px solid @colourAdventureSheetKeeperFoundryvttDark; + div.keeper-title { + background-image: url(./assets/art/coc7-fvtt.webp); + background-position-y: 0.4em; + background-color: @colourAdventureSheetKeeperFoundryvtt; + border-bottom: 1px solid @colourAdventureSheetKeeperFoundryvttDark; + &.default:before { + content: "FoundryVTT Note"; + } + } + } + + div.keeper-read-aloud { + background-color: @colourAdventureSheetKeeperReadaloud; + border: 1px solid @colourAdventureSheetKeeperReadaloudDark; + div.keeper-title { + background-image: url(./assets/art/chat-bubble.svg); + background-position-y: 0.3em; + background-color: @colourAdventureSheetKeeperReadaloud; + border-bottom: 1px solid @colourAdventureSheetKeeperReadaloudDark; + background-size: 35px 35px; + &.default:before { + content: "Read aloud or paraphrase the following to the players"; + } + } + } + + div.keeper-information { + background-color: rgba(0, 0, 0, 0.1); + padding: 0.7em; + border-radius: 1.4em; + margin-top: 0.7em; + + &.sidebar { + float: right; + width: 22em; + margin-left: 1em; + margin-bottom: 1em; + } + + &::before { + content: ''; + background-repeat: no-repeat; + background-size: contain; + display: block; + background-image: url(assets/art/keeper-bottom.webp); + aspect-ratio: 17/1; + } + + &::after { + content: ''; + background-repeat: no-repeat; + background-size: contain; + display: block; + background-image: url(assets/art/keeper-top.webp); + aspect-ratio: 17/1; + } + + h2, h3 { + text-align: center; + } + } + + div.flexrow.two-column { + text-align: justify; + + div:first-child { + padding-right: 2em; + } + + div.keeper-information.sidebar { + margin-left: 0; + } + + table th, + table td { + text-align: center; + } + } + + .creditspage { + text-align: center; + } + + .coc7-link, .coc7-inline { + vertical-align: baseline; + } + + section.tmi-toggleable p.toggle { + background: #DDD; + padding: 1px 0.8em; + display: inline; + border: 1px solid var(--color-border-dark-tertiary); + border-radius: 2px; + cursor: pointer; + } + section.tmi-toggleable p.toggle:hover { + text-shadow: 0 0 8px var(--color-shadow-primary); + } + } + + div.journal-entry-pages:not(.editor-content), + div.journal-page-content:not(.editor-content) { + section.tmi-toggleable div.toggle { + display: none; + } + } + + div.journal-entry-pages.editor-content, + div.journal-page-content.editor-content { + section.tmi-toggleable div.toggle { + border-style: dashed; + } + } +} diff --git a/styles/system/index.less b/styles/system/index.less index 4d82b1c7..7939e8d8 100644 --- a/styles/system/index.less +++ b/styles/system/index.less @@ -35,3 +35,4 @@ @import 'tooltips.less'; @import 'compendiums.less'; @import '../dev.less'; +@import './adventure-sheet.less'; diff --git a/system.json b/system.json index e6241f9a..14fdeb1b 100644 --- a/system.json +++ b/system.json @@ -2,7 +2,7 @@ "id": "CoC7", "title": "Call of Cthulhu 7th Edition", "description": "An implementation of the Call of Cthulhu 7th Edition game system for Foundry Virtual Tabletop.", - "version": "0.10.19", + "version": "7.0", "authors": [ { "name": "Miskatonic Investigative Society" @@ -17,53 +17,105 @@ "lib/socketlib/src/socketlib.js", "bundle.js" ], - "templateVersion": 1, "styles": [ - "https://fonts.googleapis.com/css?family=Noto%20Sans", + "https://fonts.googleapis.com/css?family=Noto%20Sans|Voltaire|Lusitana", "lib/game-icons/game-icons.css", "coc7g.css" ], + "packFolders": [ + { + "name": "Cthulhuwiki | en", + "sorting": "a", + "color": "#75844c", + "packs": [ + "en-wiki-phobias-and-manias", + "en-wiki-roll-tables", + "en-wiki-weapons" + ] + }, + { + "name": "System Examples | en", + "sorting": "a", + "color": "#75844c", + "packs": [ + "examples", + "items", + "roll-requests", + "sanity-tables-examples", + "skills" + ] + }, + { + "name": "System Manuals", + "sorting": "a", + "color": "#75844c", + "packs": [ + "system-doc" + ] + } + ], "packs": [ { "label": "Skills", "type": "Item", "name": "skills", - "path": "./packs/skills.db", + "path": "packs/en-skills", "system": "CoC7" }, { "label": "Items Examples", "type": "Item", "name": "items", - "path": "./packs/items.db", + "path": "packs/en-items", "system": "CoC7" }, { "label": "Examples", "type": "Actor", "name": "examples", - "path": "./packs/examples.db", + "path": "packs/en-examples", "system": "CoC7" }, { "label": "Roll Requests", "type": "JournalEntry", "name": "roll-requests", - "path": "./packs/roll-requests.db", + "path": "packs/roll-requests", "system": "CoC7" }, { "label": "Sanity Roll Table", "type": "RollTable", "name": "sanity-tables-examples", - "path": "./packs/sanity-tables-examples.db", + "path": "packs/en-sanity-tables-examples", "system": "CoC7" }, { - "label": "System manual", + "label": "System manuals", "type": "JournalEntry", "name": "system-doc", - "path": "./packs/system-doc.db", + "path": "packs/system-doc", + "system": "CoC7" + }, + { + "label": "Phobias and Manias | en", + "type": "Item", + "name": "en-wiki-phobias-and-manias", + "path": "packs/en-wiki-phobias-and-manias", + "system": "CoC7" + }, + { + "label": "Roll Tables | en", + "type": "RollTable", + "name": "en-wiki-roll-tables", + "path": "packs/en-wiki-roll-tables", + "system": "CoC7" + }, + { + "label": "Weapons | en", + "type": "Item", + "name": "en-wiki-weapons", + "path": "packs/en-wiki-weapons", "system": "CoC7" } ], @@ -155,5 +207,17 @@ "secondaryTokenAttribute": "attribs.san", "url": "https://github.com/Miskatonic-Investigative-Society/CoC7-FoundryVTT", "manifest": "https://github.com/Miskatonic-Investigative-Society/CoC7-FoundryVTT/releases/latest/download/system.json", - "download": "https://github.com/Miskatonic-Investigative-Society/CoC7-FoundryVTT/releases/download/0.10.19/system.zip" + "download": "https://github.com/Miskatonic-Investigative-Society/CoC7-FoundryVTT/releases/download/0.10.19/system.zip", + "media": [ + { + "type": "setup", + "thumbnail": "systems/CoC7/assets/images/system-thumbnail.jpg" + } + ], + "background": "systems/CoC7/assets/images/system-background.jpg", + "documentTypes": { + "RegionBehavior": { + "coc7ClickableEvents": {} + } + } } diff --git a/templates/chat/combat/melee-initiator.html b/templates/chat/combat/melee-initiator.html index 7f4fb01c..5bff57cb 100644 --- a/templates/chat/combat/melee-initiator.html +++ b/templates/chat/combat/melee-initiator.html @@ -1,4 +1,4 @@ -
    +
    @@ -19,10 +19,6 @@

    - {{#if advantage}}{{localize 'CoC7.Advantage'}}{{/if}} - {{#if disadvantage}}{{localize 'CoC7.Disadvantage'}}{{/if}} -

    {{#if target}} {{targetName}} : @@ -33,13 +29,6 @@

    {{/if}}

    - - {{#unless rolled}} -
    - {{localize 'CoC7.Advantage'}} - {{localize 'CoC7.Disadvantage'}} -
    - {{/unless}} {{#unless rolled}} @@ -55,6 +44,26 @@

    {{localize 'CoC7.combatCard.surprised'}} {{localize 'CoC7.combatCard.autoSuccess'}}

    + +
    +
    + {{localize 'CoC7.PenaltyDice'}} +   + {{localize 'CoC7.BonusDice'}} +
    +
    + -2 + + -1 + + 0 + + +1 + + +2 +
    + +
    {{/unless}} {{#if rolled}} diff --git a/templates/chat/combat/melee-target.html b/templates/chat/combat/melee-target.html index aaab38d3..abbf70ca 100644 --- a/templates/chat/combat/melee-target.html +++ b/templates/chat/combat/melee-target.html @@ -1,4 +1,4 @@ -
    +
    @@ -36,20 +36,10 @@

    {{localize 'CoC7.Dodge'}}{{/if}} {{#if fightingBack}}{{localize 'CoC7.FightBack'}}{{/if}} {{#if maneuvering}}{{localize 'CoC7.Maneuver'}}{{/if}} - {{#if advantage}}{{localize 'CoC7.Advantage'}}{{/if}} - {{#if disadvantage}}{{localize 'CoC7.Disadvantage'}}{{/if}}

    {{/if}}
    {{/unless}} - - {{#unless (or rolled notResponding)}} -
    - {{localize 'CoC7.Advantage'}} - {{localize 'CoC7.Disadvantage'}} -
    - {{/unless}} - {{#unless rolled}} @@ -76,6 +66,27 @@

    {{/unless}} + {{#unless (or rolled notResponding)}} +
    +
    + {{localize 'CoC7.PenaltyDice'}} +   + {{localize 'CoC7.BonusDice'}} +
    +
    + -2 + + -1 + + 0 + + +1 + + +2 +
    + +
    + {{/unless}} {{#if (and rolled notResponding)}} {{else if rolled}} diff --git a/templates/chat/combat/range-initiator.html b/templates/chat/combat/range-initiator.html index e072658c..9c0f6276 100644 --- a/templates/chat/combat/range-initiator.html +++ b/templates/chat/combat/range-initiator.html @@ -1,4 +1,4 @@ -
    +
    {{#if displayActorOnCard}} @@ -24,8 +24,6 @@

    {{localize 'CoC7.rangeCombatCard.MultipleShots'}}{{/if}} {{#if burst}} {{localize 'CoC7.rangeCombatCard.Burst'}}{{/if}} {{#if fullAuto}} {{localize 'CoC7.rangeCombatCard.FullAuto'}} {{/if}} - {{#if advantage}} {{localize 'CoC7.Advantage'}}{{/if}} - {{#if disadvantage}} {{localize 'CoC7.Disadvantage'}}{{/if}} {{#if aimed}} {{localize 'CoC7.rangeCombatCard.aiming'}}{{/if}}

    {{else}} @@ -43,20 +41,38 @@

    {{localize 'CoC7.rangeCombatCard.MultipleShots'}} {{/if}} +

    + +
    {{#if item.system.properties.brst}} {{localize 'CoC7.rangeCombatCard.Burst'}} {{/if}} {{#if item.system.properties.auto}} {{localize 'CoC7.rangeCombatCard.FullAuto'}} {{/if}} + {{localize 'CoC7.rangeCombatCard.aiming'}}
    -
    - {{localize 'CoC7.Advantage'}} - {{localize 'CoC7.Disadvantage'}} - {{localize 'CoC7.rangeCombatCard.aiming'}} +
    +
    + {{localize 'CoC7.PenaltyDice'}} +   + {{localize 'CoC7.BonusDice'}} +
    +
    + -2 + + -1 + + 0 + + +1 + + +2 +
    +
    - {{/if}} + {{/if}}
    @@ -116,6 +132,17 @@

    {{localize 'CoC7.rangeCombatCard.InMelee'}} {{localize 'CoC7.rangeCombatCard.FastMovingTarget'}}

    + + {{#if ../calculatedBonusDice}} +
    +
    {{localize 'CoC7.BonusDice'}}: {{../calculatedBonusDice}}
    +
    + {{/if}} + {{#if ../calculatedPenaltyDice}} +
    +
    {{localize 'CoC7.PenaltyDice'}}: {{../calculatedPenaltyDice}}
    +
    + {{/if}} {{/if}}
    From 740adef344fb72ad32b5b7d64ce3657232829845 Mon Sep 17 00:00:00 2001 From: snap01 <43982555+snap01@users.noreply.github.com> Date: Thu, 17 Oct 2024 22:55:04 +0100 Subject: [PATCH 34/35] Preparing the system for upcoming premium content. --- .github/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index 68c1a7c4..97c86587 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -17,6 +17,7 @@ When not specified, all changes were made by @castanhocorreia, @HavlockV, and @s - Fix compendium filtering - Fix db/2 calculation, thanks to @lozanoje #1601 - Fix ranged weapons not adding DB/2 +- Preparing the system for upcoming premium content. - Workaround for DsN 5.0.0 to 5.0.5 bonus dice, replace bronze dice withl bronze01 dice - Update CoC ID functionality as per ticket #1584 - Update token art if default and the actor image is changed From b4cb3264d0f4ae8861068ed26bd8efb13d705e4b Mon Sep 17 00:00:00 2001 From: snap01 <43982555+snap01@users.noreply.github.com> Date: Sun, 20 Oct 2024 12:09:36 +0100 Subject: [PATCH 35/35] Prepare system for 7.0 --- .github/CHANGELOG.md | 4 ++++ system.json | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index 97c86587..8fb40792 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -7,6 +7,10 @@ Happy gaming ! ## Upcoming Release +When not specified, all changes were made by @castanhocorreia, @HavlockV, and @snap01. + +## Version 7.0 + **_!! FoundryVTT v10 is no longer supported !!_** When not specified, all changes were made by @castanhocorreia, @HavlockV, and @snap01. diff --git a/system.json b/system.json index 14fdeb1b..d7b7348f 100644 --- a/system.json +++ b/system.json @@ -207,7 +207,7 @@ "secondaryTokenAttribute": "attribs.san", "url": "https://github.com/Miskatonic-Investigative-Society/CoC7-FoundryVTT", "manifest": "https://github.com/Miskatonic-Investigative-Society/CoC7-FoundryVTT/releases/latest/download/system.json", - "download": "https://github.com/Miskatonic-Investigative-Society/CoC7-FoundryVTT/releases/download/0.10.19/system.zip", + "download": "https://github.com/Miskatonic-Investigative-Society/CoC7-FoundryVTT/releases/download/7.0/system.zip", "media": [ { "type": "setup",

    Type

    Name

    Parameters

    Code

    ' + roll1.name + '

    ' + roll2.name + '

    ' + parameter.name + '

    @coc7.check[type:' + roll1.type + ',name:' + roll2.name + ',difficulty:' + parameter.difficulty + ',modifier:' + parameter.modifier + ',icon:' + roll2.icon + ']{ ' + roll2.name + (parameter.code !== '' ? ' (' + parameter.code + ')' : '') + '}

    tDH7!q4k1Flu=I_WaRljyB$D&z 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 z�mCO~qfpM>O{@pd$#13#e7YAz8$DnPvTI;Rzj(z%ZJ6Ex-rpBDs?NB*P&n*U9cm z*_74`!oi7#Qlf%)^CfhUr0J+9(9XIo$*KI_QH?UKI>pE5@zf79{0mMgkBA!~5QS`Y z1l;Xl2@xT-iC8eQZ2BhkoeVu@S|PV8^bNJ)-!n1G#`%>&uGD%WKf=4f%h>(-*MSNC zzDK-~Ax4{pJBu!?NN(=j`#05hdFo8rH|%@9{s?O-WB06J#E7t93Gt7X(}3^IGKYQ8 zi!jzKa&Ew>|b7~9dTu;`Z{5dHux)f{dGBd@estJ zrtG2QYqc5;JW94oT_4Xtwp3&HXeoZ`q&p>7+5mBgKugZA5Ip`1n17k#85QA|bDAHi z%B65~M=c|zRS2PgOku1MP{C(M3wvyRukQ#OB0j9+lj#zsSe_y{u`9*3wfHOnsX`3H zKF46|Q`~?Oi@xGA(EZ7Q0!7vUP0@|;Au2(1Zb)NeB1V|!E@4Pqu)6MMt%@{t{|u?n zTb~72VtaqpXP)#Lg|6MLe#-d^5cVkL@3eWbwQ~7ss#N@Q+mzfFk~ik)Oj@Wp(yYwg z#YNXOor>qhJI$*1yQcQH(Gl(e3g*F>kt zB!Fbo4fVE|$uFnSLj*`2-Qy@@xDyD!8#C-o^(Prev50+Q1U#CKVUB~Mz&#TEDDtES z0X65E`DQIQ&5)*HEt@~)cD@+dtgo9LlCYZEYjw`P{Er>I39#G;=fjVvq5Y|D6D?ZHVJ$3;8O9AF1@LE4nI!Z)RuqkxEuk+- z?8i~9e!ejb$>jO|n0xea+2$8Z>?C`>jAErO!n7V ztI96tT*pm$?CRQJkN@L*a%+lZ;6W27j9S^7WuxWz$E>VSC@MK~_XOHF8Z%7N5Da_A zrVXQ%P(6nInd!SGTO9&z8m z1$=BTrLMq(JEd-0jjM&>a$Q&WCdc{oEZ4Lvne$tmdz{u_jYYGcUT1QemG^Kzl%Vea zxV%PwwZ@EGmTUQ!>ErIHAMFF z=hC?wTuBe0-2bQk80LgD#$J6JIh%?p1wD@voVqP6g;qHE&!_xx31fH_Xcg_!h+QRJ zCY;|X!BYdeX7(L`&Hp&H;R$ske0|enc=UQZtzSAP=Tf0z%9MTNxWu!PoFx#Hd*(ak zT~IU#effJ;;w153o>8hYP}Yxm`M7D;pE;-dZ+oTqIy@NiubLH3QRGBMyfxc-SEuhL( zEYr+Sg`Thb7&K~3WD~0Io0Ur5`jix3S5~|Wu>@jT(UhpeuyezhZJ!ET_p^2wyKQlvbeI1%uA3u83#P$VP&si6t{0%$_L&y$vC_BM@ zv(@iLj)D-eK)e!m9!MHBZ}%}VLGhRfG_GX?nk}@iCf^K;tW?RGvXYoV_}Ad2CvuET z*yjy-iHcah3IiPvZfK-J3{Ftm4LKMCb*zL}cyPzlh9IUlm)jM|qHB;cu}?PqVvQz( zq~K}Ky7v|ICF^}1GL_WQ<%jcI*D!!`u#9W9d*EqgGmvxjIU}+0hc~l)+K1k1GZmJ@ zDK*%2Ze?eAzU1ufm4Hz5gZKHwQt5W||Bv8nB!gtg{jF=`o#o2}Xy`?j8QW&ww?w#% z#Mx_^U&;o49HG>uGDapMlu$-&>6xO`$L;`7`*8EZp_X9%Cp@Hxj`?;g#~+ zyS>Wv)*FIo1^CGrb71I6fdR zl{hKy_T4`feSTl!`uqhjp@lgnt1($v7V$*PE6g4t2Mlw*}28qf@jjtIM`JN_Txh2%7 zr^Fslu{n|zt`^IT{G%;AXJ-A1swbzQPdqi-Ncu&i6ISbF zgJX6?(4|f3`ma1u>wf`@Z3^jwpy%6fK4fk!-jiS}Zf+OvKAW<8ynI%RO_B&xc47IE z(jh6A9oEH7=PZ09-Z>PTr*cZ@wNWPKu3K9WgY9UD&x@qfwZu{pXaAa`sh2=vbu;UP zLe`SAXxHq|H-B8K$g%dWRm>uMwn5*DCZQX~8FQywVk;CN|n37 zO4Iycww@>3!-^%_^^~jZ19RnBM!xvwR~8+bR)>c?HKt4@uxTjqM9Vr8URF~|tbpbc z#n#Ng2G)>N8$T#9ev>~EW zA+iKMv<*Vl`)Yd{g&>xA*AgocTW2);8aM7ZXUYek?zpk{iNrXnHn@hE`NkSfDx?Jk zH!aTxUpeGMdXZ$g44&~>lz>ANehsp&9`}}LILKg-q(Lg^3dwsA5x`PscJFq5PCwJ+0U^)QX-}+tZd&I~{DNC6QdSY=V3y4=e37wPu3-Ai~ z5fZMl+7^rZQByERIqvbz&f!;!Tik;JksYzZqFt%DPDmS;DjgcP7|QxHh?&i=iqq!I zdv&JOryMR_s_9X!7M?Z1c|F>LGhr@+l;YSGQ!u%#UI01%Pm|2b1=pf z|Dtbfa@JhM_Nl-GBjJ+`Tq3?KIj8v#(sP#Kxth@(>uW@KL%P%a`QD3k;eUJgUx+N3 zMM>f>MSD((owL7waqPRHp!s+|!9z|p@tp^)Ta$O%fs%H%UzM4j&092s zsPC8hISl20d5%zFq3hz*c2g0J-iEZ5dav`-neoDOvW^bAhLM6fQ|dh%8{3XVP~UMR ze@MG{UuH}(ewc4OmiH^Im*8)UQ$onzWuC3hKEdX?o5Vw?qo^+m?X*?izN#@c@aDC# zx46ZM&v0DH+5TBBZZ#$LyH`B3-k#bBL7d{*|AK9rxULNElct;LPiY=LZ8p0eoRB3^ zF+-2nFZ#Fnw`Q&0dwrsY`Q*;fMXYCi$tkQX?~MZ9H?p*_pJ-O~?-?FOWay|%gd{O} z&Iiy=ks~{;AP8THM0PBx(x=g%-T0la;v#4KuQx-9p;X|V2D1HJ+Ip#U3P_S^q>&_k z{X!#;nhGu3)3sW9se+2A3N%Y#kJxNNK_$OML_H-j8(M3(%Pn4AepfwVi3P!kI1UZJ zb*8#({Z5VuyOfF~9B}qrKK`(Xdh^_siw=8)cEzbIEDd8M6&ZlX@CIX1>}Z zXBEc(m56Dlrd$VJ-flT{5hnLca@Y2u-o1S!qFbYsO@5X~{~CF63i_Y!k%y{4Mih;E zS0Gc;lq88sGcR{843b?S_A-z-IqXpT)bv~x2 zcGDHime(FByZ`)gJ!Xa_>=9KHJGmhfJHIGedFjy^ycOH7fx~g}+|$qi=~pA;=QVT| z3EX+%$@g}D($Nzj;&6nQg_dkB-1SRoJz>$X-3|SYWZ;E}BOxcEy2B73vvZ{&S02C# zAXMY1RfQ3CjI^^usyHR5Bu!hstjjMn_wJ)-gi}%9e>1$|)+_H9`Wq6G38OsNWQGC%+pHFXZ(*-hc0}d8jBO z2T*p8bH*Jg8+3u7vHd*$jL_)B5O4>=bFE#dV`ST>?wS(P?{)4>P1)xzwi6h0H&Q<8 zyBl=X6tQ(^N@Z%hk#NNZZA{z2l8i!@WSEb38pje}*Y){Bnco5%jGVJ$_Wzb}&R2B$L}ywM4@!wIri7?BsIZI7QAog z1vaEK3fD-BH1=7NJegLKzotrZ9m)C{lpqyAd&|VUd1iikY%0a|b<9R1VT;6mCwh9T z7(b`5UnB{G*lm0+L^z`7iul2{M&)k9O~I-!^gCvv*}rY^_GY{z{H<|!{RJ`UJK@gL zto3W=1+p{E=G5t{U|*I0QFJc;Oz(djpSjK4HinwJg}Igc{W4?5a@oZZp~xloTtmfi z*<5pX3v+axaxa6p~QsqMYCN_Xq6p*kj*)KkxVF{eHckuj@|!lhX=l zdueE524VNv@G8E?`NN^l={3B!<@E1Eqd*0`H0KENyfaZ_*=un*Nixyu8(iC5~So`A7cB5^L!sUnSE>{{k7 zTm0UIl3%*x`zQ3tcA8gNp9$8pH>h?hzz`}1w?8G~Dc6%eT zEXSDw{NGwliu9Z1UE+?+G=ssKry(AzV6P3;m^>EkwsTs zz$c!{zomEiEh|X1?;__kXIfN1lJfb5TJW2g8dI%C$bR$f@fYY(!|Jb}Lkj0C;(DQ; zZMZ`YnF_FBWvY;L@>RqK=?)Otb1LFF=b`iOE6W9f(&M)t`rN2lqf6ccI))v_dt3!x zQ2n@H$Girm|7o!O+8wQuafnmahUbhH&{WWY|3`BE)osHzH9k32@eRRjqT(rg;;Z*uz<~*W+?>SJLix% z)?Tq7UtUO%pbk4PS;&~s5v(Rct=g(KNt+l;?gB2ZX#XT`_g_$O)w~#sNB25d z6=|LTLbDy4^Bi_{BiDag@jblTu5Nd1*6QW@oyULRDwe*$HQqr|ti$3%K<$;KBKU4+ zhvP^TAQzT@QeMbx-}1cD@#;*m&P;<5PU60~;<4S!ir*dm7=4Z@()|J4BjQ&=EDuI_ z5)7JDZsUQ=1$tVB#sljo6VvN%MxPU&SiEVfoyxAbJlQN8`~eI`3m~~S^Ivgn?&5=; zswqCbN6AfK08EoeI8@rm`c_R46!2s;5-UTr0ZCS*N#awerKH9ScP^L+gY8-Dg;Rdw zCG6?H@z&2aJ65DF3~Cr21a=Q6#>HpLS5^;}pWbjySjchco;NmW5qoxU?oa8tXwJ2+ z+-C|RxQYDwXgMEd2X?K#$5#tqs+p^fmFgN0B0(gdNTkiopf&^O(_8)~4NeisKAikk zG!+&`qYDBD6a(d>UpOF9V+mr0BS8}q!1taA)zP}8F(N`l08U?()<%Zs0mYPDm+w=y z`k0Rj72Y-8Km1(-&kO7A2d`|}&7KL8S}QZySG%CrAqF(SDS^jOXFkoH0Wex9Rb?Z_ zZh+oZ_cg#@gJu+0%_>~#B*M<{?9^?`n>&?;7M?pQYA%dt4x%|DwW#YvohEu^CpN-W zcUD8XfiOJa&-(u)` zDbL7!R)gD?N;ebjkyLabUS0dIJRf3Z&3~ZsBFL2M{vq6xf8RL!%%wKR4JfE>UnX$R zzdo$WuM^Vn(YnSmbHwt=vszTMC&QCX_FQkU{(r0F7B2zCmKK(hFVA@;)qAY8wV{EW zwcW|4Ud>%J{%XT1o3d*Ke`KYPkDipSNx-}b3c+XR$%be%$2Ok{9Yf(S21<(>0Wlpf^dAUsY-H+vQObT`!94o{ z_Wx&H5f1Pfgv>}Ec^& z9Xqw2iF|Udv5L$C!AS)_n?D^@j=X$#E^zg6{HMuyF7ds{i^4IkWbc;~RoQbP)iyJg z=xwm3Ynx9&4H(JAqPscQu+zJJ5EJXTvcEMH&tGA<&13VS|g)bP%)k>L#ICX zSjlQ}$s8ks0r zy2U<*2s-(yAduEd1-f0J`;QHar?Pn>_bBUV<&nooz6)?wAV)dHLfVp#t6Yim;3@@H z1)+|-5%EsBVv~{aZ|TRR%KWNqy^W)F@qsxVel5ACpjYR5#l9qn(15JwbUnks=sTiiH@RKRGm5Fa%(6~3sul0wNnoz>aT3=tVl?YO(xCodU%zQYR=oz~E-RDsA*sNc4Pjgxw zp_6Ycnt z-pCUBDwfK^0dtyrH1n5clA}}W(s(OIiaYep`hGZwp#A{iiE+Hu_Wu`-pPY6baYFLK zskFvV#KOuSQVfQKr>{u6(_`hRdTCL^N~1x@EtCvZ9wGpr52ff_54+!Dt|jgO6HrET zo>FvpKXErBg7SZtlPtk%JopN`H0J7L?w438O8iRP`oa2-;>Q<~n^=~A_ZbiWJTG^| z-=zDfX4-^G1wSiDh@wZobT2b#At-C^)k!Hl}g-Zn%2#Wjul5*L{}A^)-y6ohy42;6$a7_CeR=st2i6Vwe@1QYa7t; zX>fs73xURh+~ZX3@g-OLgv|L`4>jt|5esFBO!3r#aoK?EOrNYV3%ooa^oOX%#JvjB zRmC4eu1ceFwcSL}<{Vy_O^M-AirWNDWD0pxJ8dnFiPN*s^GYQ4b? z7&Km5gmNa=gb=Klv(`Z}b~zsaFXQB^<2ZROuObXl7KeDy1}afqG7KP@eA#4^+js5Gwc< z0z2B}CbEpYGn($Gaena6zYPAD)SXTP&^5!un`IAfXyF z5&yw+qQN>2yjEN_2g50%z6} zsgN4)aiwQNMfF7u$AQAuh2oBr42fy|&v)0Er95-qx;WMeN+vLuh zJgz%xiBuIA&T&->iE82x_M9xHhD|5NM0LNDh$mvEPMrJz^-3~ojDL(%w~#ibyBHVL zY{B&5gPUDit*f~@vi1P5OegM`J!^wd8Dfc>u0~Lyfr>N5Q8X?(g1UrWSLi{iHOVLp z5lmw8IAN+zIiK+-%i3GM*bzIGQ^Idy`^794@-FxsI{(&zWSH7a)il%$lr7YJ3!4x4 zkx&)-2fX7G{AxA~-LT$Aq~#4=H9q)=IQhCXBFt&@x^Xr0og=4{B~f%YgHiWYi6Rk@ zM?c9ezd7UDN>u`XfvdC?02Fep$UPN%t61pUOgcFdDxKw|JYbN^UJ4a?{o+F~ilKvQCdD;QNrU8DLE zL*sjWMrcM|lbd~;qoOE0Os zbMN&)7^h9zv3lm=yM4{V@mQ{%lNq_RfI8T2#SbDApL`k605udpg?>%(p; zYQK4-TFqgQe~I*g3%lYs zFwYE>zQR{d9vOIS@kj3$Hk#U6ZYw=@uU5*-@2Q;#?M+Y+OJmy5lKKHi_IYT>P9F_u zteh&A-*szSuHnyWLp1>@uMPB2Ry)%YT6xy8O4-XCz8gY7CDy$oR z0e1x4Tn<(Td1@7W!0#%k8O~_nJ(o4}hFF83JoiU7vRDQK8kT%Cf<$TLtcId{2trvm z?cqAndhdF(N|{OlYMD%ozr5B=qA*sH+^8uKF7vXy>Tko0GeWC&;+Oj~r|gny=I}N0 zjAXZ8>8pVqqjh2;*ugPP%ejpb+`dlwTAn|p$1p4i!8wN)oXjY8eb6S>Fw;m9B{8p$?m z@$;UD^D}M z&pr8A_|;=DVS5m8oXtjA+)2ZJ?3IwEKNri^U6@KI#ZpY=E5EjH{WEE~c#IqCZvm$; zwlNM9wjH*wSn0AGT8KMU#3tz{x50V#fHgKaX*|>L0r7zYOOE7CWZUBi5;S9VITpn| zquU8w+QpZsB#{+pJBav91dJUdw^VoXgCnQ?cH_ny5EJBZ?MUsE$D@|jxQV)7gbIv$ z2zKParM&rd=w$EE4b2#C)dEC{<^C}!QQ1nc0hVH1##kTgmJ#w~u{;HQlMsSH?g>)x z2JCY41VU^ZDs*o`1+W8eh^zz^TJkDQpkYb%ff9oMfmErfvRQ5w-TNB9^7c7rkF&eY z;TWmx!b8Vm3XLmsUWFP%VIAyD14&S-d6q7&CREpI zERYDwm<#99O(%4VG~f=NUOEbVkLQ&H+TKY%X(>xTA_mA<_2rKD3g(_Q{yu*Oq{v@) z?ljj--NZaM@RrkKz9jv|WOq}fUn(f80Y<@et-g?)mHH5K)?0v++2`{Ie2r#3bE8ei zq>?t{HVLi(oYQPEm9xGD=T#xV6}!@;(vpwUq9iayME4>Z9IlHK+11G5BX|Q7uCbtW zgdn$y3{GgNvt2-bphCy$ev+{Ri8QIY8U3=88s)PCn)wNdSY0=P4V7*SATfJN05Ly+pofnrw`VPFZoy#y-Z-$2J4 zYF3}V&6FMo(|96t8CBAmL>K&pm|lb!dqhJ2^kzF*JQ<@B|7T_{6$_cQo~qxDTFfi{SiaUIT^%WGL(%-ixNQJh#R9>4loL`;hN#G37bs>{ChS|54!*vntGg8^o^bc8q|~1Veghfd0L<7lAfrfzi`Rj0CF+H18hcF{olZ`}esWV&eidz>Wh=tbxzN zGGHY~jEhpENsXwH4EWr_-6IDW$Va|3RJQUO_dQ%c^Q-cU2=_Gy&9uQ zkm;oF?r-ZBgqAWls(otg#MqbLo%;&?Lk!c}e#LLx5I?y~MG-T%8bVH*Q+(XaPSv7< z1!o6Rb6AT@X)|nRd{u)NOeY<&|C;r;5y9Gm(>|kj1H!9PFnvAv4>}oxgZRKBXi#{> zNDcY}UkF+RLx%g5G8mSY%ohE5^RM<8r%^*-o9#yec7IOyK0*kW=|Zc*Ch=%m&9spoLTDy7FjUau zCnb&;+Z>Qz*pdtl)}l%`A*S-1BjZ%z3U$O94{%Cw>`NG|DU{p<^u;BKNVUiCvdsEq ztsxJHUIkymmHx~gN56?LO!4&|rzaU(Er~N>o~U#Shg{Pbv)u?|}h~eQ%grN+Pt8rkbhcX~Mb5h|`H4T!Y8?_#L_+w)vOB`_2@d^`X5m6vyW+J%{}%6W`0 zrJ29BSN#LJjUJ+=_c6rt{Bl%+?2q53^#F6b9e_2MYcVq?bD_cs3R0R#DPT z{UF_JGC))Mh%6CaQi1`~5)4_o4M7FMAFQ35-Uugf-#dXE&Z{I%yD5W_55t2-1^h{q{V@i3JFNP(b<_29}r zXMFKCmBYTz*q#h{;IT$X5XHAGUQ*qbUcL93WzGQCKLh7873s=ni})PX*wsZ2`B3wB zo@jd+1^z9{cz>&ch$G|cslp~Ii!VtBZj3T&mi)TctAx)#~i#J1nF=U*qqqSKmeBxkq zVj=5GL$uE5#s|KGrqrU){)*lIQ|S1Kq{SX^BO-OX7f4ND;yY@DEIw7ml}yx(?Tx^hb9dam?)1F z*;{}0c1Tv9G?f1(%8vJd=O|=_ys^U-iHieX#FqGy^@m7_8ToY@WEd^L45@wh9XG?R zS+&2eN>ImXz>T(i+Y69E7^+kL2UKnS*({6onY7meNyE@cKqGcz3TVZvEnZ`G;c>PP zWu$6;z>20lu$P^RYgBQjjc#C}a(J?W5+Z)34NH?elkMyqQ4}JX5`LQUuQa}`yQB9a zvnMDW?GONul_*<~q$t{<2V(hM+bAweiSEl4PFs!QLb>I1#6VB;Un*gId<$~ev2HKX znbm;ivSf;a+9(M-!%~#I82&zKnFM5bG;pkgbMbSo9 z;tBsPC*N+kCa`9a|aDml%p@64$b&w9=#ihn-jQ+lMKb zH>P8P64Gx-ryyve+B_gSf{(k8O4e`+`(baslT(GyN4L36yyK*3w4Eo*NCIcSS+@cBQ<6(}ltq`pgo#&9ce8vsFi< z64a7M`$3HKD^!Jlf@558?o7M@bUc3<4@<`sp{QxU{e2jw=bkTF{|9Oc0TeKiA$&MX z=1Wtz&T`9^+Sd%sd?Ma+2WxH4zQdSEY%so2x!Q2Y=cH9-;Pi1vmdyUK=l1W_TC!Ys zP>wV}{LS2ABE>bYDSfauUxnUc!FoqH1)$bO0jzu*HPK|oOxv8)D6Vl;i}hq*@-tDs1c9W zKg-ob+1nMb^#xe5<4bUpir?@uZLd{|6z}9Sr&5^I-@12$dVKnDwcM(yxik8->j;W;2AlVixm+AwQ8-{5ovrP3z}}>Tdq6pGR)9uWQt9MDz4@ zn`J+SRLd!!>y}8HSfBS0TUT03{W3O?!O#pBK;N26{L0b25rI>UDuBX>Ojri>)0JT8 z7z8*Z9sBL)IfbAFr-YCzP}S&u1;(T{9M+QKb*6Br%jaD|;m2ZyxOZP%7~yeYTY(oa zcOKgQ#0MXk^4Z=XBy)zh{uQ*;tU@l~VbKFtDj5$H+5a3FVhy7z`?R-uh$LZ$lc%CM zllG)kX`@pe9HUeMGo|kHZ(nTzCd3vi>1u}m!2R4&X37iAFG$_ z@){_<9)3mh!Kt0IsgQt%a4DH97WZ)~rebDVU)rLAgl{jXK=GKa*)jIBJW z5_P27l_@v^a4uRHli`iw#js*AFO$q>b2XZ{y2q`dOrFPW@yYzTFps5L;-BzWJ6Joy zK<&U0N!J#s<%^(>Vx<$I^NK$nomg5zER<@!)Q}DNx8k8Ve^Tx3N*+x`B|Sj%u<3lX z)19dkYfU3sJ3wu`wl*` zP3vCEVTT##pM##{=wIrn9AlVm#oRD_Ay zhDgqu>Ysu7Z%R6piX(v|TmOQ5A>L|dJKk2V55z-au;;UKW##5CIIW)Doai$Dr^gFY z?Te-#dc(9>jLMBC9cgoXMreq=D6n2buziG9jBip7G_lUK&RiUpu=wF#Ss6k)Rj{$d zpBR(3@{$?i*+{F`M$bl#TiL5MiZO2my7fi zkFdViDm!mJP)>wiqa)vSg_y%<(hDQZHVbcPTxEX1TUn~LynIh1)W_#anNPNc7m-Uk zvBej{tL0SIIVgt^RcA+8)!Wnc3bp)^%VL=oA@vMad!2XGI;G*p(86zK)h6-OX|Gx=jPPO zrh9S1yr*E{rnD<$Huv%a@Wo!DKd5Nt#HM;`aLnS2(4n64Yxz~1pmz=CbID{>oryNu zyq%c8A}A=4?Xvpr%C#p#(yVG?bPTuE`aaX?9{!|LtH>OO4a;u?23NU0d*mi1>x52L z>X(svqoHfjk->z)WP#=+Ea)d)F}^#j&okNDf3y0M$Jh9n(@jO)`z_t51GR@99D(l& zosR(F+Afeq9@U;xO&Q>SkacYbYFVj`KsZNt+pPDBYR8?>IhLRt^2gxEkrs>Li)m#V z@FV+25~f?xZA%gg=ou42J?Z95am3$8#GOb#ae{)_v7Bt@Rl^xoGMXS1X^ftebBsWH zenHW-EzFlbk6pWDQlGGS?KtJ~I?|VWKhM{dd7he#&zlHI16ADnN7QJv`J9z5Q8E8W ztKJhk9l1Y0c81Xi%6a$JMXeGW*1I-7HihWc$sF07nEJMM2!z-2^}WUS&1 zbdKg>Nm6->0*Oxd(qn;e!W()jdS&rrU0To+?$)vLj47Dh)M6e@8pEHZ+S=U?`Yv^c z!nwoKMx2PjAS}=y-cfCe({jb@y>xCtp*03KWsA%2sJqPt<0coy56Pv_f4h#GIeb)3 zx;)|hW8rM|4^cS-(AP<1&=upDk)3vy=Xzu?OMW3L-{+p7Hp%u8QmB;^2ZWGjde3$r zifZn(cbTrlflU;^^D1*Xc2|Q6AyqyFW1ip1g+1n6`L;%;bLEvxK6@uXP)Oo4_JP&Z zd9GaxMZV9?w$XtiS|<=~%Y4roj-Xd^S7a}bQv-|K&j(owRbV#nQf4X*v$k3ab2hnN z60(1vdMaphZ8j>Z6Y@;mYTe*p;(dn_WESnEyrau`XDx1yR{C)?4b0^&2j z*KG%k@m6=Lr`#~ayy8O;6B&SDMsX{fk%YifV%gX7-b>n8*Vc<#Xseqrv6mu%wy^OP z(O#bD$T*9cj)2{429ITz^;*9m4c3g8r)YGs!i>ku9tvkA7En{2nT*A2f!87)o+aN0 zK$Q|1G|L%|!LhKPKy()*Dk~`;pN@{o+@(nPndB`iJjW;c*MI8v@sbkS^Um=n=TzgX zto5~SKU?>k=(?M?&M>85EnEChiWbbVp;nBViSbMo8LE~kkP>*7((Fm~^g?S{R{@o?0r$RH)E_Rw?TkhV#vmT`d_0X$Qn1VJ+S zTDR4K5De7#wdk<&{E-=#IMS(_SKmB>{ggic!kW3Q)%RNM#6FRer`6~MpZyQ?vg6es zXU&kyX5Bw%g?uaGcX1xN@FhNHozb`+{X)=3^e_CgkPBEE2zVp)Vca8?^h$A2vuOC| zNk(fckqHD`6&=1F2|+RD&?!dVD*&Z|v7-4>5~bf1YX1-suGKj*f_tfv5gUlZA0mn} zDXldNqLm?1#TnX(N}zZDU;0cUi_}WlnU=K<4vz{7pfbp_G^KuA(5|i0$HPA_pSPDD z_~H7CiI^)@M{MvKB*gnB0YTxJba)4S=+9C4UdoQ{d;E52dL|PPVCQFo$jqQkJYlM&s%`qz%z)>i6n)v)dH8+Wqv{jv$_E4|A1(>&P2)KptX&Z8Kua828k8>J14_;q33--IX@9QA3 z-*St8q+mRcf>gzcditLFhA2qf%f9Y;fT2y5vK>kwfS6ONKrqxPgYgNDEs+g_1F6*P z41`9Ju)QzK7v;*#_ei2yWBV6$dUd~!(Mpzrz@#f4D& zl4Qq=WLOjfX{KMSa_zXwsqRaGM3Nh! zfNp}s1r;fvnzc<7?`|_eyo>)phCczG3?g^#b}2Ni&t!CCWahY2_?{-m+47V6RUJsQyYS7&}i!EPp}4% z;^DHKk416)1x~HYPOY<0Ed<>dIlu>J=^(+h2n=GuDUZm?iq!f087j8(NqG+QPIH%a zMTZB^=@r6WouQfWN?6twjp*CqPIW{A3Vm4oCx6n9S9|1T z#xZUkdsXi47ReY)@jH}WZ372-q|Af7yONJ}40|>*_*dnWHazEeX^q?L?B|ZLMe2&J zU|Pt(WiHQ!fSDqEd|;lSE~t>hBU-L{9L4f`ssI=&sU|lK>TaO8x{|S?0kPx|QUF_w z2rJTOyDVXg1;Pskir`)|HHX&SN|&F^K^FwhV_DrxiAzt_uHb8n&c3bwCb(?dXkK*t zfD&6}%kCWoyxcKu3l+aqO2iVqQ3kTy1l;aRGgo2Q6J?fR^5?L5#Gjw=(e8CL>WUfp zfnDJqrFqlTspZy*2A?B6ERyQopqopN zAOU0eZ75XkuilIjQ^Y!Yy9hUTQbwWGx|Q7IgNMcP07+B`5g1xZyHKz?+7W>G$El3- zu~K`Dn72ZM);!g$EH?PQX(TB+cy6Z|Z6f&I{4jLu6<6yOb5NeD@X@|QdcQUHQfB8y z-nUZSx8L2tptXYY2NMbxhyXh*r>b)GySA`nRCC#Ni#%qcMz!NWU}42WnMzA0P8BZ; zY?u8>jZ;LEV!4p3H?wa>Dl9pKAQTR_I!=+$91`mcYTW2j|*$))YLLA>4*7rgfC4yHkrmu;0BzWr%8UALc7);unv7D&iWR+BM80+h)a$)QC4#G9$?p3amd|}^7o0!$t5q<>;~t^O zCgK((1raQDyZ2(E$}wy++cQ!-(!^LskRa5OL1az_6CwMkyZvft*1)`9tcW zaThcI>*NXAfcn$8SFB5+Dp6k23b8wZX8?p!#il;D)%S&lu^@_@Fab|9LmRdEoZIdq zSd=)v7FKRO$TSk>m;Cs4r6uLEh9u_C6%DJmJ%8Yuj^xzXMTG>x90kYj-Y}Hxl69_- zh+8D;BIoXNj6y%c|B9oaZPjFOIQ4)!LkEs*aaBBEW+#o|)G89ws9p%N$>R{Lb$kH= z>h-nLDHE&hSuZ|8plfSIeA+^}MwA3uLrC@j9EUVqY(Qqp4rTVD2WUrp%aOS#%c8TM zaX581sB(F1FXv*P<2IQ7rDLsT%H;>i5~`pqp$Q`-JPJs%+vI+TbN#wh+BtS_KD}`W zTee`nhr#iViW=BxL8TAB_88bb{e#I~wWvD1LfF^s*9`h9ONOI2tRKdlxld8d7}M4G z`YnCUYD`*=FEyP4x)>8v7(2emx1hlJ6$gE^-M?scc>Hz0N0dj)H{URmhtVG}%`?Ti zjHF_BL^y&=7oTZ~-ekMRYP7h<8)iCnH7aT_XV7FV+gSy3;HclEd4N5EDcH+lt>=DP z45m|g{%vI5Z8Jx`>+r=8ip#Vm*81{}YE*M}X-&z<59K`0ISwnQlaZJ2{<*{T-13%m z@3kUf(q#5G`N#D43DJqqjwir-!w>s)o)J#nQ+1n@6|GOfix=H{)A0To106@?GA04} z^gfn4c{>9yrTc6_>Ov*Dg7IbXpKS>)1ng15)l$$^YxG%fUjzWwLlih==zp3mhZuIh-;q;+kw~9DtTSlkY-KVO^99~!f&E(Dh-Lqj0 zh`13BaVj$D7`pB!$&%aokZ~2TXXff;ie4DN@!G7`qvLS+x%>)K3*TXZwwQ9!;GK6{J zTN$)-<(It>#EG>k%IMtzz6pxIfD1RMqmXlKx8dZ6kd15w!k1&e^k!?|gFvpVr)qpg z5z2mrP#h3mB)`qKcyL?k3y}0qY>Htop!~=-dAouVx@aH>1`|HVln|SO(=1oP`HLC7 z?YWjIB>!93A}p(dG2w}FnT-IdgZjBGjsXq*2S>1^t_{@9d9yAsR4nZdcy3wApooS- z0a@-J*EYEyPU|}woh%Dxd|}^Xdmqe#@d|D$eN_~t9*vRqK85*-A6Q&E5c?43{V(Fy z*)W4wTv{a#I6e+ZNQ|1hSyV9l@|3xWd#BSX3|AZSpZ4wR_NaVwi>(_@s=Z*aRNQ;9 z=7W#;7y76bvp*Fn12IPT_MiLav)#eaziaAO zQW!aZsAGD&!9Jl72W)B8vO{1cP?Ik49~E?0k<+ZIg{FX|fGcNHt4+@xd{pfJb@C9> z64b27jeb0b>R8rTyZdP}Ft^T7PcURq7%ehgJHtd~)n!#049q zDUIQw#5vE2IQHdK_~zMMOBAr%3v!+chqMw))IkhjS~{a-v0O&-#%IekDC{&T3Ndj) z`HRC{)A-wY*4nLc5!HJL08+*7;Dw7uvyy7}P9^kn0r>fJnz$52Kmu_?rjv8gZR2ls<=~o6 zKQRr2u!uzWvOxurwnf1!r06y%T8?ms=G67XscN=cBUNkFnsOt)vlad(uM?&~&-fxTqNnE(c=cL5O zQ>zh=9rw6W&^f1~tRr`yVA!rBWtiTzfnQhMVp&x5r0u+D%&8>F80)o3OW&W?yH2^~ zmN`94uE=Xx^9X~%ZmproptqkLinJX}Sz&qpKd8B7{wa3&m)V@wb0-Kas#8HMb5c-a z6ft_29ou!l(7YG7n`vNlXVjz{r<7DgPk>LL&n4xl&cx{SXPnsn48C+qBg*4b(E+6| z_Z~07_wxCiqO1gkVcC1JfuIc6M;d=hBQaf#y@MQdKxXgIP$nJm-B~%&k8hM-{^{z~ z)#Z$2yz@D7!{$(Ksi@pz@N13Lj5)qv9Q@O*{7PERrQ9>;V=MFaeqLOVDam=QdrbW5 zj)-02+3Pw@7sBWgb?`o+@H6Hom{8db#6`GuX23M)Z0qUw1=ewoj3dt`9nF*1n|t!!4cV8Q@(d-(+kIjbw&i8~)1zd^ zLHuzrKSyOz{AQQUz@8$=JIcbD_P(^R;?U_m`UiKbbg^TH9Ny~51@w)#9B#vx4xX*j z@3dNa`_*IK@<~!o*cw(?rM>{%yIMwKt>2ZQh4cO2*{3`<5CsLgn)MFNzj>3tpWfIkl9gif#WZ zx7uX2flpcjmgiM*kDe*jYQBgnxa_J6K{r;P{(k z4TrxM%+2VxyRR-OockZ>a_;tT)W3$xkGAc02|=6aIgWCA+3a3|m1hAe3y0r_X19_VPjDNeFBo3kAq?9w<=RCnKQr^QIj;74knJZ;IYAn-?ah_xLv4dc}VdCuh^H#9MNX$*iur?QH4{rVKqA_PgUgl+XwFsejE1M1-YU zYyM0rN)B0m{e1aq@r}`QyVdVzMBKw+9>kg>17Lz4O*SGnd!Xhi{$!HtBm}_7_sV); zv;U4RxHfXPvvkH_s0!=4UL2+5Om%7_cl#6f@|H_kOxXXma~Y)TUSE-_cpYn^aV3JL zaA+z*2Wq^<(3-W>XnBDuPI`8G>CbUx)_QA%vV-S0`>rEjova`H0%FLMW~~ywe?Y3c z6Z5emJsDkmU)wa>6(8uUoH6EClgmH6eSn)l%Pj50-+`3M8rAs5tltr}lp-ZZxCV^5 zJ+D=i-0JvZH7l#Q&b6jIS~&gltVB5%5SFx~wwb-4_fGb`N_B^wa;e0|3A9L-4no!K z!jz8En?$^wj*-`S&bzxlxv`lajJkejeetp4`1$QeyJ}<~X}^LBT?!EY(L%4ZHnRvt zTL>?NiaeuOzV9iJgdF}J)VeY6&Oj5FhqC*P3lvGrUYv?rE-bQvkNMnET`4A!aBaj~ z<#1)m{YWIC+;6Ug>doJz?=#$+lK;*uVUJw@6p$YuQqlV;z@ehE6O*x9u76+6N3mf4 zfruNO@)huh;EwvxiLq))mmyE9!&Rrq2+;&@D4?nUu1u4 zJ!Y!tb!=~P#mwJpy*>%LEMkCBK`|Y5p+D9bbWT zu}|ZF&una7%Kzz}6GQ1#?BMRV$WO)Gm;aOMK03T4d*-&0dj|VSclot50O!Ol zy0the(sDpsO9rW$M6x6(Twb@ zoDfJo{j1WrQhU|^UQAt*d)E+c$)o+zl2yA}NZ=iXPTFKElR0Bzn0b=h<%PBop^Rsb zDmWG27*{MCwz*n!u;KDQuKqik?f?J($79DHv14nEN{!lkmQu6&G^$0+DpgyIiY+!Z z8hh4gwN{7KB8g2=suU%$M>TdR`hC1U@84g)oFnJtFF85)`{RDQ-)`6I<+@XOe?L-Y zW(8Q-Mv?@%ZVIF$8F8)m)f>il48tVx?q)M_(}q6sR?3H>IeEZpwGi%Z(NoMTfao?H zY6h3E-m$`JfLE2jYb0N^1i!zOEj#w-z1|~pS9Z5pWRVqZ=)9k#Kqf&&c@!_3be|GU z+orv0T@pV@1^k#=+2FQ9#rC?X1EdKRUgwaaRhPcsIV@VUYWf|g;t2nO&HaiXs;Of3 zZ(bT!SR&9~zhtF{iAcj0jO|V&rxWPDD{!RrF+#s2+uE*K$a-ruWNZ=?f*q008B*i_ zT{~X8kXiW~FiVg#+Uo=YV=E_~y8;{7*| z6WHfxnOZ7t1E_Bmu2=15?JUfip>LY2l8vA`$BDJ{); zjk8r!@3%Ho(%QyAT;W5jY_j#>I5WjxRHbPi6m91X-8OthX=xb4E}_8ufeLO!jhGrO zWK<@+pkCvHPx2WFbZsR30~MUC`R})Yp+sVru6sHrN|s^`avfpuYTE>Go7tk(VWa;* zELC6t+4Wxzb9JL+_i9&T?gJxU6$rM}KK9odn7C$AXmkri^mTC0{0 ze|vfKc6tgiw4+BEtI?$t?o};<_rg{f-wWJ>*gXue{i05ycm#%8!g(%MGP^hCk~ZN3)zkxb>QD63 zM;E4R<^}7rZ&A~fxj@**QV_Ls(>$4LdWx_fIRv;I{LjMnS^VMtNZ$0lFg<_{*5J3M z&Z5X?D}cm4H~;&X547yTG$M;Gs{fvflAZsb2yrGT)w=hR>2H#)EDBi#5RHxV?X3nK8hpm#bt-(m5vSPMz!p~Eq~s)=I`HJX;jzX#GD*^@s7)m z;ZQ?MUgU2=#zN-Etfi12(LwCbCZw7E(~YoQ?YG^*-!%<{nu~;8ltgNp*kP~f)X3vO zHr4lcGI;70sM`^qfUXEDY#7~PHDknmWS_jVt0lN|srbL8@=)$OQg%Ah*obv+8*YM? zJu()m=~~lg9U0Sni7rXaH3sZ%dpSK=cwZzXFa}*Hjq}&Fgd_CmVNpjnSZ6{trVq*P zSY4+Unmsjcm;gjaS+5w4^7$m|c%8R7fD4So)RPS1Nv$4L#K|)KM@QQrzgwv)wf%N7 z!`k1~ubnHIc@@-IWN=qeZxZ<4J>KaknOGDsJrIVESX4jq5Z?~Z50TcP|8qhIJhxL% zrP%vVZ6)SFg;SG}lsw*O3zVFpkF}#iOWJrs^-%G^82fKTD>vHRV_DfQ=v*-g8&;B`*yr#t%*slnJ^Wdf?-Qd%c}?F605>S ztA)+ z+&`49d{OgKuMvS|Ta9!;;%Zj#o$uQ3wTe6m2BomSXnmY6jU9Do;A}8V?4W@#R*Zvo zn?)5re0bFd(B8k}u+$f1RrG(;?UojTL#-@}j_G{x2eAsc^ET@Az_@_1Hyk}jO}dT| z+)Gv+&r)1}?)+{!ENuPY`DFCFaJX&N8q%V=mNr4)hgt%(2W_7_9S8-$crTLm0Vvz+ z|GDb1MP2Pqvw{P-pNqdqtk1YgR^@YS77TC(N!ZsJR*-n{R~+Bo+X-R^eHIO*AL|u7hM9&0 z(UJ->K^6LTmKg=rL}oUGmgHF(e;rps*o(#Mz$U#7vh1i&kgo<{^R)8cvLb{AN>R?A z!^ArdjDjvy+NP4cE8TJ$>7UZLWPIGj$P$|eUfX;xj90GuNb|v+|9A{q9lto~+B7?W zUl1tC<@2OqT}0mCB|bQ$7vmx|#JFkB7{T71Sw`8|N`#)tVD*|x&EQ7Oxs$c>$U)Kccx8lR6!VpkS;V8GAtP;)`iUX3cd4cAg6T5Lb#bCm65Dbx zw9WOxg78F(XC+km)QINlW7N(_Xvo!$cqr9NAjOI6lG9Z10(s3<^o*FNtycb95Ks&P0f+L5%x$<;%`i#z~pfR+|PGwb`0u^=3DQ$eGW7AgJ#{L zQ?ASCprq(fDfh{c%7@fOQBDza4q^({KDIk)c);UA)yP%Sy#tzb0K!J#F$ejziU^?Z zb}Ud`+to6JYn!H(0CQR&RF|_480@Q;Kj^;{@eGQz{;~;u(WI$j*H-4yAmc#3Pa`dw z6w)A`uUgxjM-T+~b<2b!*+ORyg8eF@{^Hs&f^3h%H&P;#4*Q+9WO_{Q>ohRbge%3{ zyRWp9r(dTqu1L@zzs4$y+NbbTsCMJUQ2x-3jX&vb+yAYd{ zxrZA_YElW_*oY6dU>Ax>NZP?Y)-)laRnRuxyZnB(`v@)m@}l7kL)Gj=FqJm*OdvPC z=mP^?Gvw15nE634MKC%&TM;X3M1N)fx8l=H)l5vtPs0MebT4&@gcCL!BVX(LiAOKW zQb@m8ug%bbV%+&B?*Rh#7KzT5sOh<~VE?#8H8vAskqq<_2=${%-6qb;{C3ALmNC8q z=#?^rr>)GxQ7gNuZ4<09c-gmYlc|1;bQ)FwG0})2p2{Vs4>|GYg9zFu;wmp`T|plu zbt}6^2~3f;+dsBhPIspcJS|ZzU1%n(;pu;w#iGLOYpokl>PB=xJ?NSdcMUPf=_c!N zoZ!VSCBhy`rrgw^6&f_vawXg2l(JjU&%MWfGP&HN#lMKnT8?*Jba)r^wI#s_Y-9CV zSZ~0$56*I$5S`%*RQM~+WSNMN4{Pg>hPY8Vu|}87pa4#WUf~wwbiWV ztr1}8)RFLmhnB=~eT?7%{h9t190?SH_pU5MorW?G{_l_ZK)<&cDbaUPWqZ)zG>osn z%i12aNu50u7&-Hy_y>Xsnc1!i6QfV__1*tEFf$1i;2U8p{Ggvc|A zLAq&As(`)*0~XWQpLEpb$g{$tioJN5OdQ=e9bN%;7&1{Cth%d}rQ#cCf6Q%!gClb* z2!2D`s{J2L7!wE@?QC7q1_^5)8Zzqe=?$EsMXezXRV}=QZcGeFi{nQs*}cjw@n;Rw z6PDJ@6w3AUqEHV|q>Rp%cJTVo-mqt3Jl*bV&D~ZVORw^!R?(L`v<<1bCQ`dBw-;Hf z(hAjy86!KyG)=or?bpPzWJLELc1~!?s*7^X4k>I5e>LNTlRaD>cTbz;_FS3e2f|6< zqW9z#Qnb>mCFmvWIjyT7=h2A*gCCp%1;9ce^R;d7mSP6GaL>6Sd^9*2ha}*i=s?@o zdDo?GeT~cg@wfX-d&xlbGvoW=Qu;+uUhK7TUnYs!$&ZlXbeXFW6-@~ryqOkf#%|=;|M$kspLBIynUq0eqau897aJ0~o3t-TzqkZ+U{EBdga7xD>ihUV(7ClnXnfRc z^FL7G2yP{2<-t1AsyVX6Mmtj)dDL{E+}zQ#&z*^2LJ14{mQcoY^!DKP1?Sny@EV2! zB+nxQPPB;PhrW2#8n7c*KY`?9TxP6Qj$S@VVyZw49SDNTTKqDYu6?5V3ayu3sE9uJ zb`^`({^`;;Fc|PDI3ev+jUiBQulr*UGB_b~UE@>jZ4@7$(J)qiGcV=z6Z^@ND5>PF z+M0|!jHUvk$nIrWtf!7HJCN^dtZ8W}>RqEa<+vhlAsk26x0wL3z#0`{eg@5MSJ;DKfxjdn`=~T^iBODb$EJ7K*U+|@_UFjZD|eTF3R4D)wsr`HCG@*yl^+p zw@#r7d4g4l9=QK#tq)bf zK!uKcx|~J-Er&-PiP%7@SwiVqvo6jmC`9xW5;zp-!c?becomVXa(Ii8#N>C(C>4=W zFKx*y&99soX9-e+^>oxAfgtckzB5m}TTDY*^+M`Q!?D>^!)Uov9bkDDI70r${r+t+ z(51)_Dx+CPN(yQ@6bNs?l@E|28^d-&8X}cAN%yP_g7C)vBG{sWnN z(>Yrl%ysv@lOR7e3SM1J3P>_|C{V$+V0w$L6&z@?Z_b?b!TF0n)Vq;$;OjGNIZ-!G zg2iB3w5nEC=ZSRI4Hl#4Wc0bv6FOeCVM_X0p|hVr(YXoDOHMAtKEW_l4=dUUS`~pkHyaC?N7bF;z@pqTl)u+ zqZ8A^VHtb(8AI=8I+tzYGrvTa&iY&YiZN;Vf3Iku&scH$y2rhYf^zGgcrUe@=$pCq z_cCPB^lXe#(?gRR&Yiy@wlVO*IU8ff^ zikCB?q4y%b(G5qyGImiJ54{+#(ujtGZ!z$rl)Yx2mrp;8?hrSmg)}+u$ptdzyUt1q z5?bMnCP$~!D_a^z5^I7kug_J9HmX+wXcB;N}7?(PPfordl)0u%ohv${wx zqMuJj?rU)cwPqtTV6;Fn7wj}$r()-I&Ccsc;FDODmm!$v%La~~7o9$We0hNSPVG|;#Au#Fc;Td z%kIlCUWnsdTh&om&rleHApQ&3=n&L)Q9~*N9a8Y*oSJbW*s%o^ESQ?;-5_S~lu}vB+QoktV5cs4&W#j@=r<0zbNrlqc{Sdl&aah^B1#5|W)N zF(DE}(u?t}e9p{MV3X1@jp{)8&$7LCZKNzV@4G0z_43lp@vGz~WfwVZ z)Gb9VJMZr&w&fb!7b?+-E?+ds(c3f+nijid-Dw80HxTB}mdG`876(C1mDeQO*5^t- zerxUtTm(g->}u~4M>6pBjW9pI1s;7;KBq8Qy1!ghDh@IF@ZLTT*#h#Y7D5&fxU*kk9$O$U+tlV5Xk z1;6ttrA?m0lvtkW>Tph{=mB0Tw>!d`?fkT8)uLNniKmX%T=`!|L?a~VzKbwRD*#7= z0a2Irv*GGvztL|hbEr9_a^{uy7;Z_`X>L0 zJ*>TeM0$qEtT!310tY*vR+YA!%kwtdr{u9Lt6y8~S`vV~`Toa#!ykX5yB~~&lwvY) zu3D89=r47fg%iDGzNt(SH$(NB+*>dqQyL8it#u7Ax=|=s)!4-R=THAmE*TpI>U4>p zBF$lbEBEX1ns^i`&E?jHYJ^u?$EY>zI)fp+crH+T!?}#0VW@gcXuEnt(;N0tB_;#t zW+8i7&ws~0dxjO(Br4O5b!&%;z`5$b0Tycuxj$rN1*)%_iju*_d)Gv7 zH9d+w=@(B9L>i2;J$$Y&v9ldP{S)XDUrbz$&c;df_&0lvMStltp2DDV;BSH4s1~Zj#{Eo0E&$E4;D*K z?I}Y=;9hrA@^ieVPR}(;?be_zgM%k!bZ=T0!ETWKwsagoorm%-}$vrpXQzhiF(hVp?L(vRc$hteM*Rng9dT;&~FU2Y4)P8csGTef$~-{b#0wN+{+vj!X)hai3(xL$LC`x&++y6=g>b8 zCQ=Dn7C1-HhSTZVo5V(^;5+@RpAIpqdM6)E3l*a$q^%e2u7k+` zit5FB@YP-BWh+;|s~>AobAg;LK5aJb=Lv98mNolapW0*>)~v+vY#4jREk`pGwKaxJ z>I;;gALJfcZd@uZ=w*O!Z+syc?OGOFy%;k#^mD;y<`D=c{O5P(4u*q$*nXSg~+S zuH}xLvrmkX{1*ZHnZXxDXKx0cPJ1II{W}wJ-=My)WPt{-m zI=bQNTcL9TABbg6D#2eH*|vm2zWu5n$DxW~>S_^mv<1+FbV3;+mA+?ml5@MMOKxCr z1|5LAf)cQNyS8@(Uu#|8z~V`f-FH7Nr|Ml@Us=?;)A_KM9s*IlR9s%xW}o-n>31ok zzZ6qQ;$Qj)`T)(?aa?ifQr`D5yz8IwtOF;&LCQ`NGM%r);Z#hep+|okA?t+jW`>J~ zJzwrry_1zpPO4H2mZXYlzHWH{7a8DgQP%h9pDbn7HiIaHxT9vHkiEoN) zcy6dJNUgpkHrU+=6LBQ><_W-oVo^57`55Nc3Z#yV(iUZ;K7n(Fc}{JYY~qC`+h!X& z{U6dX_u}9x=(1^{bJxZwUqupPC|R3!Z1|3O?oUmR&$$fUk`u`#0 z+ghTg6#J;vD|VRW)jQ?|u{+mHyf2m*u+#LFYf?}y<%;gt-tIHo-7gOW0)0z+_79q7 z9Re+@>&?q`-akOd%A5=|wyl-2=Sn{zWRDaia-v+Bd}KG4eOUUJ4U!IKdu7i*Q6D8%0s44fM{_Q}z1! z`C+mAd#y48o}lL>kUPD9FiNP0pa=EFp3k3FUA=t%GMwb}<|i+G8s(wb->o^bS@oM8y-G$7e4Tsk9V6R@`57)v3E$)-qwKZ=&!K%8|wB@*? zmM<8T)pzD@8(2=47xnK8-mxR+Q5*J;8PiL_bHhn?wp0W4j-tTigb7sfgJMKXnwjAd zoD|lX#Ufgh8hY>7MLrW(@x^Dg8j={kTVs&Ar;#5Yd8*D)O+$vv<8U6`BqV*2RQj89zs`v<>P_m@S5 zW@noD;^{Q9-c`-IXLgv4=LSYh-ax;lp?+F#xWchi`LEMk!=DbBTKqEbe7{1MS#gz{$rNz=PABcCKN_ zxxdz^4yA1xwTJJuQk+PRrN%#6cXFM{y!Kgf9GTxM4P-A|X!AMqJ+wlg`B{jwU%iCD zOW~wQq!cLjdclb)jyqN-W<<8UIuTbXG(6xHB>qX#@;-+U4DU&@PkHf#rM`vgJr~EOCaUqbFYH+U93+yz>VPN1~P1-{393w!#nuJ zT>(2RJq@#}^u^7EhO3v#60u!M^mhY0H=(6FtiN1`W`pK_gK|_Zh9vL z^9d0aUlt`_-5o`qaR8B&t2UmM4+*aP3vqAfDu71YaM|3I;Cbf;8M&|3KUu z$SDbuHsySpA#;0PdK~^>C{RpId^s_CcSTYnKXHxP25La@BQ=SJ&7Z0QkqJ|uv}*b$ z*`j9H^onADW2b&^kW)TwM;<-Dx<^j@>c5(I{Nb(YA( zhgJ|>E{>x!FIcYeIC6i2(l9G6&jqj30dCcIqN%)h*qZkZWs=Zw$}4)qHuqXMvPW*p zI+5Q>ZSdR})&^w50wG?P`9{d(%N+PSo}aEQQSx_0&m!fX{;_n9z$I?8P&ru*$XB^}j}B4s%6y}dChivvLq9^CPZ{Zb1mb}K|O zx(2$qsAOkiw)D{b$4;=f)m`u zpXbE0MTc`M7(L)#(FhcP`>^Ioo!$vCO^)Rx(jWSf+ z%Yo>vt+zY0;~90o-a>*VryGA*m-J-jN%r5?Z^5?$vM>G5Jjb8*SQjqO5@V!k-;UI; zlY0Om0h=L@B-SPeC#EfdsB5brsuGXM+-*KD!}I1ecp>+YAZ@=HIqe9jU&=O(6~*k= zRPs`^QwEYE$o*8)w{$&GnX!oR%A}|FkfE#^c6Zi?bMPCxlxR7nV!HYif7P{PJjlEk zPBK!t8$*VaijLH9KW6%DBdYN!|KJ;^|D30NN||RIAbN0VQNJ)5{0G{Xa%qD81NAm9 zT^jjS7@|ylJ;@f{#>0@b>)|o6CCjCAO_F1e--~DGm78U;!O1}W&EkPJU7vOnjx%KM z0m|;+r!@!}tcUnCrxp{G=jJ`vph*_b;JCz-hhN;D4u9_Np;RQOd}wJ(RxXl(#ILWk zQI}bL8pd4lQd_6|0|DxU7P5R02sZk;FZYngl8sQo3hn^creUuV-fow&Q*9Y>^P|bf zHOcd?8{dlnWaKTKEyKsz!*~y1GZkD86B~PcRYH@gM#)@B<76mo4mQ8Dc9=5R(e2Xp z7PGf$BJ=kLo^EEB@^lbAkPMSJvv=5Qyif`)o0Fl`VP>>D$4SX32aVK<1zVMUNFPN>^^rzy2agw_q=01bg`EpJ1 z_X+|c#>|jNH0fh1TUY2lXE9`Lu`{Y}#g*^Zr-zSR6sY0du+sYWfY?cQf{)QJ%QfOK zRy_d)E#UMaN4_ep0;)Z^kHgjpB=w2Prli+#y6YkAO1e?m2hqSrsuJN@KtfvUD+x1TK{7Mo^#8tiT^ZdAH5Nns7wSa#*selETNEB+sf zBv(P53ncdsWLtt}j%B%}IJnoU+-A2&Rmn_&LGU?o8VlqzF4%BI6IB@74h0WViQ#ep z6nYr)Yqlk1gzu}=<`};VxH6s5bXQ~En!wJ81pEbDo}RX|*JwzP&^4-+ zPCq7iRFU?pTt=QA5Z3v1CTzfwS-|-5Oh%jjB4@NKFIJnxpbhv#_k>f-G(?Ti50PNA zDEBnNtTp-(qCwEcyL4-erHJfwdHzclK*&uy*(``lPCj}MNKly5laArprs6^Cz2933 zi|z%D);5oY;k>ln*Oh37_qiLHU_~$n&KLY>0lXk%e7MmZ8HmZow1Bql_vPfism}r{ zv1#9L-=KMU3pe)o_AJ8eJoaENmB0;Xm&%_`x~j9H1A1t)nw$Ei0*3x3B;bj}R`&}N z86u2D==VtbnD1Ix!M=~PSQ`(?E}nW3WK6Q>N*A06R`ZMF`(0>BB-IkxH8>@Ikqb~B z2Rw_#rZ%n;|H`b{v0|{h8BleAbVID{Ric-Qkbybj88Xfdp8?(S#1)tKE-I~5pXJec zt0b6GzqESl#+6-GS0jjME}))-{c)kpM#=C^{F}QVlaa%T5hK>G0@UQ!+C?er*FOe^ z$4u%Cr&>J`X5F;&Zb%<6Md5r1Lzs z8gI@aBAw*Yk$W-QT>E4(X?6=(pjXcy_DGJ(1@6KX{Q&ObOlb0m01Il+czQ;wq$x)n zbnbTfist}7%B&Cc)9^uHc(cDywh-0ovOE_R?!{C>=?)`FKuCp;lR@`GzVqm>EGX)iMnpulszWzC3$u(U5h-2Bk%vmhJ zO>A)}l~3&YC>;aHnUzI`P%?6^L+&!#SyIN1p!@&T5TQ3Lg2Q!p%XeG@+o%$E(TuK9 zSxUFRMyIMXb zse{h*j7!&@XS0dT4(QAdbf67$a$qJ(THcFH^S3{UDfu7B%JkeY`F|4u$6oRcm<)cl z?bB?i6ohhF1D_*TrDUkN7(&ljUi@|bH8OMH+%Ge~x9Q21H;#Xw);#1{hv&3vb3-{o zES*QLCxO7rx1nZ0AN8iU%ps{iZMp4J-Rl1SU5Ze^Gc?o5%wS=^%SkEEfb$SqY9Y@4 z7I+zJ9C|Ly5g2EXN6;`>@5KtVI6qQn#&!JzJ)NIJN=L@_hZ{pLj_v;R^L7%aB^<}9lYXshS{ET#x6!{kbN%&8$afS# zF;s{Rr0xRe`>tq+22>mJN|^%uG?4{NMaND>2Zp2I6P=AE>JU*ZEkKd#S>I(@$#hj zPtsZ}xMTCDDbMmyL%!m#qh6H7$Jxet9%~zrC*--`uKU1QONpRC<3en5oH`Ch@A`86 zhxgy-z9T-##bmb}md~omT4x&i%9)gADpN6Xc44_N--e=CLkQxd8nyXXKf3~ai+@Wd zD9L3;%;OZf9{ucVpL>oZmsP6;-mth|6Q(0qORuv8c*QO_?Q!}-UPGiZ5oUz z&nedFSkKyAcdshxS1+eeBa?zL|G3M$fqwj=Wk6XG1J zU$z)n@7rGzdu|WK=MpR>?%6yQX(KgnK{tic`*ikV{z}0ny0BMwwTH8;cy*J=)f;4g z$Qs*S$2Dg{>;q>g(rn~_P9>(`VE9Rib_4oE@GtcFArFWHjJqng@1fP#)itKa&>Oy z>G?niZ;)YL(+Ui-%RKmL;)piDYh$_5#)?iTwK_XU(c z1+R7lG`q+yXWA_}m$>r3j2;M4qIvE9u@KS7l{d$8-bk~e-(8DxZMJJeAkvSOkc+fE zLkWqVUtC*4Q~!Yoc4N^r%5I~67Xw<*aQX%xGJ?QNhrD}d($&b>N5JDE`;HGIy3R>0 zp4@*`9vI*;ZzcRm3Oc~qrPG4F5>CAArEN=(2xR;)rr&DOpT(b?CYVoQn{tadtsxK6 zG~xE$qnYzyBx`wvShM0HgB7VfqD5aF0@i@(qXkNHK&pq1PH8oEA}rrBfgml z2RYoIuxEq}f2=Zi`#ttok%&hEs8EaZUQ0}eQ0Qe|ZoR~32(TxeXE9N%&hWC=(I&%^ z2`Il(zUI;&-SU*m#m}l29<($yo#*O^aHw&r zAjS;s1LD^g3%{VWRe=&3O?b$(yLOQI4g{x2vWW2mJF;Ml)e{JQf#HegI(c#N9xk@= zSQR_l^Nell1!&lI8KFt`6yb!6G!#Tp$l$9>k9uxmdPBqsO7zb~;g(e?DoN3nlgWwW zZ*KJMlVx#228!2z@y*emtxQnXd>Gp&4;@43D{g$wiMwn5Gz&AljvaU@*`vZ@%}eq1 zX)HWHHjGB`T{2YUhv)bNg>QYSAiX+&dNOeCY0t@1Fw^~}$B?oKcZtn~*PfokmazH< zYe3LdJv>Ym`6{2;J!PQdmKs+|Z{TzI$89e>_wv5S7lUkN+Voyza)@YDLzB_)zKWxF z(=62Mn1i65L;U>(Lc7}~n7h%f!apM(+lz~MxO8Wm1v98!8E_HB?vK5ze@Th%80b6j z8^Ku^TkMl&TjcgaKzDYSbzvW8^C zT=yc86B_b(g*V;qxuxFlh+oQnTUgV^2bUM@V`jPuZYI|npy}d3#*dB8WROpC9avJk zQd*N^THy5}M{Hni{OwzL*(y#(3C=iTTe|oUt^8Vedqxu2LFDN}`Qk8le3idqY;>+H za0`02*VTDx=4h|Z(p9WWvg+v*jBW%ZSp?g>%NeSdyt}sGUPc@0DOo zLg+aV9~v16li&IWI;!~xf?yfH@Z|m>aQ{&vtI%fsb6#u`G~P$e?RVyAo$VT(8^T+3 zl)l!_`@oQIdMpGiL>jJf^j9#t*2&6khe zNfK+4_caP8+`$HV(mhzudbo%o{!-0MQ|_GB<_cc%dz6&1kv#lNJ7}CD8P(sO2_O6B zTZEVM`?=6u)QBOG>=1}qyFFJ!AJ}4u9R(wLSH{Qm^3fHi6otRJlKs(nRj?-^49)nz zA|g0_rPa9&WS=ZYFDLdWc$wHWYPz%%%;@L0SC9j{C1kIej$^?KyEe(jrA#HqYhOx{ zmGaN(j`e~B@L_gNB%jNiJ0gZZp+~>j{UVxAnwI6#J+L-nECNl^5Q@@qC&!^LX~qt< zK3$F$=8oKEX24GK;UlGkX-F^KII&N#Js2zt^zRfDtGJwfECWfzbN(C}GY7{TmKQ?w z-0rjxE9uXLi@4aEyHOadGuHX>)3f~-~ z6lC|Izi?MXV>q{%|)_ zx|cC1Fvx*g=t;OJl@lA9mBubeRkE-P)A7ceJhpR=SKw7Jxp}t27Txeo{B_eD2(@RO zuIG*P-E8xjaJ`(_*4a+fPNM}G|K&g4FU2L}&q(n}-C?bdTybHLbMthP+ z#ni=J@L9+jh#axdZCRml1IM~5hs5!C^$2!6+m{$q3DDZ=#$mP6VBId=gi^P(Y;DP3 z+EU?-q$*>|7O)YiT)lO#yNo|YOP*T$qxJsmq1L0TO&8@0Q$V5XaEs@vPP5vl^*xx8 zUiS75FrOD$yUvwYeEN=}h48-iWfp@`H3yrBZ>2Wd=&W5MrO+x|0DLc5FH=spWRye( z$Is?;8!Q+p7)bC?nekN>yVmhQ_ild>h+RVKKBV2z0`+{0JK*1ELwf}z9O zqcSreZS=+O{g;=Qmy;oAm{n+}>{EH6a@k9SB0HR2R)9 zr&1EpqEF-@qk%nh9oGQEo;36XVWYw4pJIP0QDEoV7xty)miyLsSLaS%SB}y54(=D3 zDAz_%sGXKCeFoFLr$=Sg8F)lAwuoD9HmVI!{g_|D(}dc{esl?)XnV$%6)UcNl5;MR z;f@M4_rSjpU9MvGQm0WszV6o^axR1IJ=KI1I}$c{#KRFj4;hr!sK*3q1$O!n11>6Q zxAe6akqlvha=M$yMY;#V5Kta|JUQxG%j|Q{rxbAgG~Q<|-i6Cx#Vqf{i?hrzku^2v z{!P-$A|K0HYktz()-O5V<@pP!T}mz=THHw$TaUTHm40=`CtFyEZc4O){2IZ$e}B6w z_}sQ1|6%mHX8o9f2)h?;eexSB{99!3GDxNMhefjBcdtEG^Z%8%bdr4Q%E_KdeqPkO zOf((+10ix>78S^@Q65UGMN%`Dq^T<+S%x;BS@pm>$G3VpFg(rNTDHj}s0|?d{gxW1 zo9VthUTaaYl(9MTCM=;YeS13_CQh_#|?|{VE|SNsGv+n^}Z5bnY;j$ zEjQpMCDvA^;6r0tuOW?L3E9Klj)dTJ?y)4Nlf>S=d&b`c`%%dWZnR*B*E16^3 z4P)c$?Xk1G{{!}y3dnCosi>juJ-{wk!zARfxgy`eorye|eVCcF zFY}9+Q!s%Czgh#w%N9plCVL68&%U4HTxBXm_e>r>np`(xPeHuod~ft$ibiW!BV+cm zi_%Oiq;T+<`zqP`Ci~3+(P@i`0d@^A(Zp*!no-sdf6%i_ zA4Eu|&uF8Gzfxb#iV-39|?u#3^H6Bxx+pnV`5GvP9{=^ z9eL_E=vd_&9-F-zh$MzekT3NAweNT+fsc$zmZT` zi^oy}1ke7F$=BBrwwx|u1@i9n1BAQS+eMJ`DU$1R?$61*%BFsPauWl;tK3m?U>*kH z*o^|5b|oVt3zeL)_X1f9hR04a#g%c%9q$yd$c>N=xwbp;_#yQgqCNlDP;}1G3oRCG zgjRZH&?K}FF@6RAS;0uACaL|C5)yWhSo`Y=Gd&!DwOyEa?!W3dwU?m1a4{csfX>+5ews&H%{>vkR? zFl>CRYbT_i6KW2iV4wbUuI29N3&}C%+Q8CeAmBtg?vEY5Vw=8bUM9?@f?~gtUE?rq z{Do)sR*QeT(GxnK$6oB41;=y>)B8P!_icvV_1atY7%#0@+s%VEy^ZG#b-gbpn6`)Y z#%@^e8}r<*2SQ3La(Ovzo+$>?Wv~YVmi!cq8kOwca%jdoMdDS=$1TrY_oJ`uP_UYZXJ8`|PqC_UFs=#m42q&<6&eJr_+WrgaU+=t)S z<=4W}9bIjUArHYV$qQB8Yvr9VvVS0K5^@G%HOEA2E~+%+=LluzQ%2bOcnV97srcTM ztQGx2m$~>bR~I_f>#QspI1liaT?mHPe^W7-a{6?gwqgC=E;Ni^+}3O&ppNp;?v#0` ziwz4WH*tcsoIDqJ-a5n5*iL1vAI(a;J9<)vQIp{!iM!)pwPmCA{6+_u@C>`R)L?v0 zimgB13MQyDATF(canG5C_49X@gXnSEQU<;@JfpqA>G5(70Y2Ro_|G~Up}vEi5GY4A zn9!|c~WFksK#k`jJMzt0H_>uRzbP-%samNm5dJ5)YthZWB zxbG7vQ#MPepkkg}rH&D}o27l;n)S*d(4fIIq?@vTqmno}ynuW7y|vw%rIl$1w-|lV z$PBAb_eORhE6Gb@rLsid_Q>cs;XvIJh&7X!G%rY4>%Ho%E&w`D;jp?zEzgtVU^(4GlB&Z)`Y zFQm9e_Mh?#x?fl`$;JHx4F+Uvmadv^ZA#(=nP7kVw)CpvAAgHwlz=%4L&z>C4UeF8 zx8Ez9(H~c{&#S;t;QEQ6J{KFSYP9VQn*TIoJ6_U@9u#lsh$KBbv2*0uYv(Z}b&H)X(U}DcO~GAK8T{8|_d5_9OqL=RO9oVM_@ut^&7>o<+Xf z=&d*ir-O{#;xU{-S%bmI-Rt5}z81xWmauF2F{O_oIxn{&!Oh;aadiP`!S*!$106r= z0b~T>-M4uGJJW6cB#g+3InU&W9Db!o?%Lr9B>Mnd)=8Gd3P&=R4kg%)g2sd6sJfqg z{*=2(zSVDD?i^d_W^qkb%5<|(wSvIk(%W-TeE3%ct}e;48Gk{ozU6}TmGxs1$YbPZ zCzF*TM17>)Y--{gFn@w*-tuzfZ>!|fdeL>aR5ru%oztNd$2gIM@S(mmfsgi=C0yEm zp4iWQzzOv)-1*{Qe|wXMH@qf`)@{M*)L}P7YJgcH37+}R4Y_lwk0WSfToebC@A_)} z1JRB$dO)k!gLf`ID(Mi1Xg*Bz;-nwLL`)yTm}!f6=Hl`1ftlD>PEm9hHMQqi2B+^* z(0be5rYiaLp+_?B$PxZ137R%z*)@WOQU2`3T?)RiTZb*oUZKOG7_k{z{2$kZSS)cM zlzR%L1J}%#LG3e*QaE$Or2S~Fs%y4DxEh-gXZzl&hO%WQ4EzJJ|Dnyik{ZTgd!wXq z)U~ZjGSf`1S36t`@NS79qF9WgB9SNz$-QGI6ZCZ%Cdm0mRuDT43t2{V@%5eYEGpA5 zD8?aJAf=;n!Rg8CYT@GIBCOzeJrQz%Oz5qe3peNrVY~-T79FHvyb2b1MHIP3IlW zb|3bCd&Ug0_bw$yjT*66&FZbuqGBrzYDKGd#HO`kua*w2gtk<*Dq_?sszysIv1e^D z@89=+p6BLMT zs@FxqoV+=>;i1%E?qTd*3fKD@<8rd$X<@! zN+MhDLJqqe1%O}=U;W~OgqXUFLS~I6M8w5Zdv3^W1+?|d($cfmQv(&GMbhac*N0!M ztn?c}6)!t=c1CqYmYc#dTCVu=UC;1v5uDSFJawwzSH|zy4e4va;lG_jZrL2zhJ}V& zU{9sUIK=jfl($~s+yf(<$jB?R1iBB0Q#ZTgLLL>e?%`q_-fA078`9A91ePane@D5q zVS~9{))Da5%iXhxj)5)-vRZ?j$BgP9$8u@APMxXDR1v38_%b9ZbX41yzNN$Gvak8@ zp_qo8yj&AIr<(+4L=d zi1HBEJk*&#=-jbYxBpezDxWEGde2ORm`@(Q~_c7i+BFVLVe8>TcE!34EYJfe4u{D^oO0C~*k~mZ#U!2(4QXax~SmL&iGVtHGvqfdaCJ12f&-SLF3?W^3=45JW)p=(0Fmg8U%%vw&SZ6@3 zIF-cLF1c%y2M~mLZb<%k44DQ=eQGHuKD_d0eL**JUXxX-_FQvzo?XI^U;` z&f(7faQ6^)*uKT@Y*%H7T5Ga${cd6J)?U}x&cQ&A{@Z#iT|{Y2;)@M#oQ-B{<42TB|MpYrfag8`v% zl(IpC{j{z?sV{u$T#y_wZQaJ=?1NS61k3n@p2_$mL(AKF7b|xZ`{O8L)6w?-QgJuw z`n!lsdq?>!er)Pn1lVhG9!&y`vzm$i6ija#i z0wfk1`*ljDX8yq4rJcqY36ZnWv0xj{S?!(H!TOqnSnrC)u}uO?YR7^VeD+`GkUkpT zG3U@pgrS9njYfSm`nUR5Xu^GDqV3X>LquAqqgA*hAe>D)-kNQlqE)fZRtWX=wPYW@ zRf~8m`Inr5>z0BM_^!3@ZpF2J`M(X@{rLb9(z2R`YZ7z4+J`e+tiKOzXv_;V3~p>R z`y`!DJeq7|u#1AC?V` z*_AS_SP(JbKyBCrbeO*(ehk0>vFN5p{0rBNu53S>%A|d6RvZf$k~9HDjpr(5D3K=3 zEEggwhIQ!jVqQzLQ|LM9JfRGS_>2&hr;}^5zN>8E%9R(N*{a?yekC<~B1iIs-KTZ* zQa7E35U@oH;;VvT5)f|}W z5(&QY2W;>4jfof0J6KQtp96GWz$A^7b)XbAmq{aPDQ(tb(M<*fM><3PfA1%KGA#Y$ z9h$LyO;j_pur}oPlKz~_$Cd5R5)?n>>p-215B<{pE%|<5qOKCuM3A+9sVYfa*9sxyNIS|Q7qk)R8Nl6Cu@IYakPLRYCw*U4WS7Z>q zI=F@zk>gxi)7~351WjvGZnwJAaxiwOe~XltAyC=xOvSof*4ii|AMuHNlR*nKixFh> z$C$TJHjy`Jr>eYZv`rGjOZMSDV-j@MJ8V<+#d2+-&#R3Ds{@4Rxpt-R(kn) zNINgx2Fw2l|D*uf-=8K>G}bFKMt06i?@Je~$v|W-{?z*7`cAQWCvc-;%SrGqcB0rr zmBnr8Z>ipL>Rq;Y&I{+@Vm_1!F23YnDn>pJJK}cLFOV#1O#OC5nNV)~aXPzMkYvIZn*oD~qOJ%Y77bqXm zJc4@4(v+L(%}dzI+l64kB>@p91|w>^5iBQ_3fKM@cj1MuxbXGPtyDXv)g9#!@w9}t zi$MNZHB45wNcu%YPC^>yRL&cv;|{xVg0S&4thDC47ZR#|$7{!CHo0+4v@_b{+%#Ws z6vs?akDONTsyxQ*+j_a|CvW!OkIZB^@#_%Sq<^lfOhkXM^}5Ze{hbinKjzpwJZV;~ zrDIT>f2L%DS&#ktC0vn%`7d^wGjV$=Nk=7$gwEXH_G356vw16)?n9L~UaNXLuSXNKdwjpmQqP@L z()h2l+BBGGX}Q~peL8M z{+2MKlJh9B6TOLXgYix+L?=HYaqwnOcylyu|5ok#o)$XN5XVEcUvQ>BuPGJRPl{3D zv=eo;Av}~K!zf{-^b-Px>N}+wp8vY>D5n zCvk54Q#+UMr4xc*scH)4tG-!oeZbHir&X#Qx6(eNMM0JB+ahHZ#1Tuu1Z~(r$4TNt zV|MLisO^NtJ6yGyv3$UlVv`4SEaG}@h!gYO@(+>!ptC9+(9xP>Rh!yT9ABp%-<(k z?+q>};dZ27z^foS(f9bDIIEin-sPpDLaU`I6vDzqx@jCuw`gR5g|P#pw_bq89jwtz6M zK0Z9UuwneJpbK|%;=K#4>ug(@HdGbABsWsq^VC|%{RKS!@u`5mQtETkb0A-;WXM*| zPHrrmT3X3%{HH>Kl~dKn_Zz+5vd!)s_z?F?EIjtt#ZRXSx_T5ww@Cp z(vC7FPeO{B|D~D?N>~#*9hZlZop1h2mEi6!M=4k!$EEXYcaYmN?UT>65PvOY5G1}f z2!t=6skp?;>tay z>nixzhS;T%m6$xv!%JKq?z~N|Re`!ZmM)25FX^y`hP0VSZ0{Yuof(}fzhWbGEu)Kl zT}I^dIjFd!c(iqPfd7)Ay2?pIkRAo`Y|@n4yDKY2=Hu0`#JmW}NOzG6F@7wAg%!L) zh+UdV0#T-#q!01MKN*!GsdqDWC^>E*#WBq8iu71h@2Hg&-CYoj0IKui^SbgkT( zYHB@pf~<#}ep~NZcGGR7U946(2Cb0_Z_v)_7b{vs#3|ob#a6uUP(4=cMPZn}1gx$p zRPj;G(;%H?8MM#+9rHq%%7Q(4r=G1O+SqQ z013%x&@`gN6Vbw_j06la7OM3U(zYeI5aCHp)l4=5k&4tFBlWpIM)!*Vt7|)~2%Ta< z{=FWNmJP+%vL3+gReZgBm%%oOG_?cL)MS#BXIamuXZ1cAiGpsAJHN!PGtv)xcZ@Mc zptGSfw}UEKdo{|iS!$Z@%yUJ)Gps5CnWBb5^qTS??pT;=@P_lI-|r` z!oua)r7hJ%F}66`?l`xtHF4$K=f5QPayuBwuFfu9NCTiTl=bwdE-Mm`ML9aj5A;=W zTd1UjOhnePd{t%JYGY^HR&cDtI{$U8Hh-F8(~b1m7YnLKTX@&+xN}Fo$sazK&)Ysry+|_2Z5}|NGBfua|1`d-~QGr8`wX@fBJtuR%m_5msu4K&kD?e+kucP+LGI` z4%oKtZe`rhXGU99b)*kpu_g`Jm9jy(M@*=YD0x&QaSPj1>cg3p9KI1{RCSQ^i5=@m z=rEu`^IRnaKu+c0ve>CO=X>ntSbWy{i<3tzB{Jj^QOSm(eXD%#R-7QL%Lu5t94~laJB}CN zf2k%cD8Px}Di_E0FV%W-3|-vt-5q!KP+0qT3?S$H=lPt){N3FP~^ zOEBhNDmm-_^n?s4sWjRgCoHf_;i$-g`uC3sJwF5Ee>XqP7k*}2xbmXTM?;wV)~`~D zY>~8FjvuJ!$|6cB!sXw0th&J-EX3_)F49zJek0f1fKYLr;VeS;>qA$t*b?riQgLxM z5>uuw@1`&)mbePxUBa|A#Vb~{_z0Y~ zKb`8qtRtQe8fB8`v>@OZSt>EphAb{N$h5%9o20MOoMl0=UwbF)`=!e#F6?bh#>N;w}ovAmC?D%4_?nldPItxgX)Gkn-c zEhdody39!2UupldisN`0#*IJIU3^1x?Qvkr96BK}^iLr|j5#^3C9SwCq#c$F*sBVq zic`MISjDdjAhfS+CgI^2B4Qy#$OTbUNV5|`u5iJ4AdAU=Qv87C{N`l=`U_`eW+E*h z#0eIGs3i0al76xFcl915rJ;h9R3Nk>m1{zBy6W{WJEb^ie*~DJhq!{#`x@5aI#0R0 zy*QYsqCX*5+BNmF+2vMJz@ed1bdZ!SM*?y1FfXz$I_vC`Lzf5QVbtYm&sZJ@mMgZl z)VlKH*Ah7ZYUB7+KEc_inC2NxQtth7Szxa-H3XrW9o63i0GGZjV_JSs3af(C7c@`0 zak`lVXKlg~jCzB3cjsQ0GJmUW3V@MMdVntDqPOz>rNWkmDQ*OmEjkbDbae$+(zx4^ zoITs$0!}abC6gZS*d6rVWtG!aEf~v90nawuWy*OI1CE!rF?HkjSc}Xu`$D3^cUJA* z+z4QO$+XG_BZ`P)P^h!PTs&8hvobbpkByRqB;?-)dS)p@9 z&cz@N6{qg0N~L?t<5_a1V>7gGbWCbc9!^Z$)TTpupY$R6Wo5gbj#WP-Zsp1HnAtec zO;KwYJ^x*oAbL}5_53bGbO5}1rPDmO+Mvr}fM+dR3@LQWt;tsi`U?;Q+n+YLI;BU( zYYMY%WWAj$8;TTIZ<10FKh1_*r`&%SSGT6cs4n+X5_Cg_IdxKXiv3Sy+~$|Kv(Q}&_|E|$qWSIm`HyGmu?BL-A9RKI&Sp<*)6y=G09^%m;hGKq zCz3c)97<+^%iAGS1(9s4^Sj>x1?Vj0YAy9`RagZ#)m(71{m(Jd+_V>v{#cvd zJ=kIa89uTxq`SW+FTAu-O5V|{R3P|%Ia8Wy)eM{wbXHdAmNaZ}(5jN=G-~5->^npX zSIn8X3R=_|EXe)U-)h%2!DHFSDkimsG5eQ7Mf*}dEBSD6zB=)W4(o`L5&PpIBCFGl9s zuQpMns4?f>@L+Rn2u!hy0uVXh4e3J^D?IF$v31NxE8{wU$`I?r6Bj|X`mRff^cw_PG4hwG%S>ysicj?7taScYby zt3ikSDh5GuQ*KR2u+X#@x$@aZSr1+CMm7W@HooeP5TXJ@?_{in#^>Z=d@~oX+K)Sh zTzii=4+6)icL;SDmSafUpI;RK^{_OP$cq%h9@|}@lil_4jU&-xmIM=`f4U%0KJ!9Z zZDF}}DyVw4=*eGV3aeQ^F$Pgl$+RtV_E2v^l2e)uP&DL~_!r03;P=v5t=I8c~>iFn62UV_9kDL2KKcs2EQ@dpvO zlrIlSxv#Um_OjAdva#@dl#&DL(H#uyPO__A6T508o(Pd^oZK|DqKbfH{Xl>0l=(q{ zn6>v#rR=c^$*{T~={`$u0s@RDg{uClCY;;-OZ5oeVPp}@$vho@r}Nw$YGIzgeZ(BO z*A!}JCc<$tdt~7h`}mNIs*z@4sP!^T=9J1@r}^Ac#ETaAm+A~?R>6Z+>8-gJMrdT$ zuinpQG`mu+f{ZL2Ud5WQeYou%V-9}S2(b`iWgh9VbeH1yg5*l_B@;hicT&SI95-e2 z@9+;-KC6Mgyo7}? zxJZm$l<5gL{>kkJNp!qRCu)z!D`%ky1NG&8s;LOuo^5QTFVOh=z2fCTj9#e53~tvdvw@mZBQv1DW-{;Cr%dJ~-o zV(5e5^5_0M-zv|H>1_*c>h6t%`ft?pQJs&LPbOciNH>DXw6g^%ov5($NNXZ-_k`cJ zd#@A0rSMr8<2ogmsRw80uAJ*UVWFFAUFyPa0n?!F*$+WzV`sHWk#!XfxhN$f7S75c}x)J6ewN zB-8BN%V8t|`nHm!JM?6|C$yi_?hMW`97v$*D0gn-uyb+W6TB6!n%(O0^wiL{X;l%L zvlG=+DT<_Z`|k3vZbSYM^Y(2$4&Pn>EJp5#<5!;ix;($U71eV!jOn2tJp%WByWIq_ z7-8D*QzGUyftLVHpx4r(vKss-rNGtYeGr_D!aWXF_$F)_Zz*DneXZSkY_1X?x}MtRIE?S{ZJ7jk}zh zdvq6{ovNQ3nBB=~gr*CxFWjY#Z{kPg6)I=AiATBHDfO7hlgL_;1q=o}qCe1!?bv=` zpU+4#y?!pF+e$Yh{H}U7s9nJ250z2?M~@_~+UO?Gkxl>Osu*=$+Ei&y zMQxAi)2pGZqSEd5-Y7F-!`7B_RFtCXR^9t&1&qB(^}~ldWZJp@Tf`wrmUuU%j?2X&LEyx$@lIqrGP5k)c$2U@ZBy<9cX($+Ug& zKP0`{6n2*tXILVQd)MlQzZTp;0Q-7f4c{&V#rD=|DS7ZyADrfCLD?ei*L%7@?w!!q|KMrFzYPNef^; z-8N?J*G}v?FWPR9rQA{H<4n_}_L@H~^m0T>h*`%X$FGVVh<$!PUAsx_E+X>?GOT`E z(LhDP(|f62$n(QnG0N^MT9-O6mVs&Boiv^1CZJ6%jsV%M%pzJ|h73O4tey;##Vidz zbnIcIpK1t5Ts-?F=<)R!o--_wVy!&G(KP2Xyly$BP2_d99A$(L@cJU{Wf zP|!1!u(Ot~t4C=gIBQwI`U#-d{wJ$)jPT`8@{B-lps0_zW)w*Sh(H9jFT&wo%n3=) zV!ZtL*gi6rRxQy!F+HqPJbMp5Rf4e}UBiR-@O47@QSb{1$`t%Q$Jb-q?o2*X&yw-B zi>eD_+$l2f5YB-F&5lQDMa-q<-0`s4F0E&6(xt83lORaPcYf z893!dkZGU2xlHp=N!Y^UE72=Nq1e@&K;qkJPa3!( z)CtI$T}nK5SDo^eIARS4DM@}$W*5grJwv^}f-TJ0zi!@*Kt+*D`DtIkMfnDF%6z_l z;WXkdO%C~W?`xedpdx>X#QEez3Y??G+V?u3H1YGFqa~( zKM&aY?_*h2>-uy=z@3-r8PI%=5m!pZg&&AdMk)@(Q3@74GUJvY4}Z;?h~2nHvKE%9YWI+5+q%|DAI z{OvI1pV+uGs!aRAUBe=+n`)515$&z670drC-f<*+?ke%}h`9tz^Zw}Rp}WlIH0RMV zw6&1`T|z}^6}d}0W%WY*g5lzs+weh~vsmG12u)n7E+S{Vws<+F+XEHy>q841yWxZG zk5#XTvRKrj{{~2}%h*XA90AHq$M^Q%ueJ)5GtfL#(==6TU}MxZI-b=T5=-T|Pb@P! zw0-z6K3kn?zs-JHII3Xj1D}-(5pa_}Co|JQnaqeU^v5d>(lZ2Dhr9o!QfuD;WH3XK zt~iNkv@hKw32qosMcv=aR4Oa&!pAOez}F?eLO7eMx~le;tF!SW{N%>9t$WOQ();xM z10oOJq}l`<)xSxDCa1HgR$X5s8S^PLxEM!yTeFwHH_nk}rJI&q;ruRgOl#w`US)Ig zd^0QL!AkeY(ltZdP_M#h``^yK2bVnRg@ICDWR62caOxZC? zl6t+{?yDZ^I+HSL=pn+UuR9i3v-3NXk-0M5ra;vx^lEWB)7OkhU1|nxq5_)a=Z93wZ<3Dkr^zqDPB9 zQ$4|5gNFVL#qGUC{>Z^3U&BK=_Lo=J5#;QQ00L;Ua`%V9<5tkNjHq_Tq41evJATX#!eM#yVeBs>v@kEYhS~`_P2w z8L#%4YlnaNA`F0G&bS(Tv=>|z-Dn7(le8CtJbeLZ-s$(YNMRA!?1NXk`=4&8*s|ItWzV@5y88?MJw|jyinlL!GcP zCM}#Ad+~}V$zwHObsAL^ACll7QAkbqi7Ysj*u4WHh$F3cM8yVmdIS48Lg*M>)Vt>% z)0MKnV#^}RhN?Zm3r>h#+mjs4=Uk=KMP0#<@^O1_p@-MpQs+k6byY)_bw9z{3>2Aw z`l~B)n01)IH;9L|P9~_~Gq6jZVolw&MB3EeAWgW7DwM%@N(GpA6$-48CJ$))%xZtGWeyNmdtKWoPr1E|o=o138zfWN(3GC36QIAX>^r~s zLgc4>p1shEqq&c20LqW~virHnYp+PA(28Y?ND1J&a@PbgFvl26=KH zruB-JqOc&T)U!OSg%2hpwe#{o_+P&C!{V4ng;7yXyEjWQkgkqs_po{3?`cyBJu~wK zPNlPe|E&}MD;M)!n-%{14v78Y;7D^^}KWeX+Z^ckHpt;n@! zBMfp40|l?)p~FHMcI5H{j4ySLK?SBs6vz$pjZ-FzB|ZoaMrS0XOdMm8dm%NmzmANa zO!qfkiAF@nDGnUFu=Fh!%;t;ESpF!UUF%%{WUzl69Fs20U`i)8>4>14n4VqL9;G1s zo$`e`ZCszZ7O(achQ3vOB>)RoIg{@Ie))ZEY-^%Q5xI87aLG$#r%_~>=Bg-9)qZag zlotiR<6Oz@MYpo*O0C^cJ=MU`5b}U$t%L+1Kezi;n1}NTlAO$6OWV-e#$Dk*o60_y$5lU+}~m* zQP*cuVt*pL6lg`o8RRTwn5qllK1!EsOznVum4N6E03QJ z>;5=e;m(o5U)?l63lkFK0e^2$krHA{035#zdLI=SwfYHO#n~f1`8(K5se$!b{rD?y zIEvv>+tXCPeNe7`)M=^(ui@B6;!HgPg1c&ZxPjx}DE_%3JHWg3m18wf1++`PwVXRv zvW$Z%;PLPZcUdrdG)m+#OjlBk5+k?t*~{B4`3PKex#I`_s-bMGVv^2L!VfJWuA~9) ztB0pbHlUz8Yw$BU)ggnr+?&b1V0|DfcR=Jff*mk%{F51ihf3toTordPkeEWIT{bsz zlMT?7ko5vxq&|LsUAW|a+v@KcyS`rIW*p+(Ytc8)P!B!uFjfw52)-RwuvW~(uLc}= zY$s|B9y1utukWXNBZ3tb)TL?;=72iit@yQmw`%I1aI=)7%_z=IIh`SykPlj;=S06L znV0wM8Ds_UTzK6^7?>1IDW3#13cHu=A4!b(=w-f^*!%rUe6p}8-Xj9oHx*pt-(Iv| z--bl1McT@}W*+j0Pv{D7JEzY>^NTx4b9bPduEi?jZ^wLR?eR>y%xJoErgbETQ|#{0 zl>6Cgq9~}LcMR(ab^CG1^u4obE9#28z{n(3@p?d0SR?ap7(MgXck(ynHj174{_}~n zwH3%%S8&d$KPYAjF+ZpfSde}E#aF1TGzGpn8p8D3S(sMlY8cjzOM2#Yzi!o~19ih% z2d66R_0j|7{5@&oY0&{~pBAIeNv3v2G-D4^Kl!8SKcqNd+c1N{yW-;Y;Pv^ppiK5Upq=t=fciM!c-OaSWIpM z-9M2koxxdr}eykwSG3Lhhp)wr%Ey@`8>Sk#^`37;&}Z)ysetJ!m1-t^%DO%B zu>-*wTuoF0%537KjNWx_Wm z{(vf^ANeKtFv_=A<4mh~_c`a^CB`a-%z@h;&M?yquu4e`Yh@_;9S=7JV~BlsSe#ul zTcA}VsN5bC2EsZmPdm7S5LQW6ZAvs`73+%jfXqV0uDk|vymwp}s2?AuM`vrBfHwFr z(L;+x4_JuGqLwj_Zr2K7O|Q(^uUaIeW#6)GtEWzsNilh!TekdOH{96K)>rEOhf@{p zG!ZV14*&z&M#(9~oZn-*WeiAB+n@!G<4oBrQ*1?=!xo%0tj+@LU0(4k?M}GOagH=y6D0Su}SLE~Dv>kEbU5b*xmjt2}cn7VBO%(oBYpxdUZh%JKpL znM$Rh3H8VvX>Pix_DInc?$ry2*Xw*UYD0ax$C<$r@J`0+cEfWQyH{1|$l}o}`J!`@ zHvj+X^7nTbO-Sk0c+#E;_2p!I@jZ3B@AUP7wyzOd{Ey-;l3gbsJ$c zO5d#ExsQJe&|l=`pFb5;t?r9tp_;vV&R3euMB`+`-5k48_0OcK!u@LV)-h|@cy}L0 ztv0De%L1(IY_vz^iz{#Z&2^o)n(4uhGX~#Qr#lkOy8CaWQ?occ{8(oIkl&WhBr<=L zznQ8Rvl{vK)S>o6o!IwU@cI=(du_^i$VVQN5)J)j@a6ZMRflg3bb5Ce%*_{T?ZkG! ziREbLGzA~t>Dt?Y_0?E?(CCCN#Mb1D$@l!ma5V8h8mEJEb-7qpLA_O$%1HdLIYbWS zwMAO7rIW0l)z*>APSCxq@3^M43Mn_wPbi-^48WsFgxpLMTIO`-t~*;gC{Okjnehjy zuy1f^odCKd@7=K@2vg9M%9Y~V`M;Ir<`c#M7J>H|(Zzc5Gm*nQ@W`nr10D=!KY z@;BRdE^|*> zHOU}8QG9{e#f0g3_S5sx-mutqZ40htPR|H=qBQ){-s)+ru7Q%T&6_X&Jg0&IkB{R{0CHcv9#v$OM!}? z6AsNN99+5YMo)mL+@hx|lcr)1aD4O!8525F!#3D^@yGD$Z-KbI8D{jN0o{9QcOhLU zi7e%lk>c+1R%6q~obNqtQ{y6bQ0_~S8MHXXXea|>N)_b8bM1brSOg|{!zwFrw-Wmv z{70fziR;I;?aqxT`>t4_+xkcxgCCc^41zgS&I2NqWEk+_w=rSI4)M7Ul_|+wfy3i} zLem1DR!y67Qlm-3><_2*ErdX^GMQ&eMn(GHr&Orx9ycqau{vvU8ilo|D)!#u zBLx~I`3mxaV%bVSxoRt8U9MhFIG2g2&gWk-csk*|W~*m-VojjansnZ)&HL>Fkfs9mxT#wj%8XLf|EGAt2 zJ@t`%v6GLC@1QbROy~tYf}a|NVVFBk3ZF05?sK;J-8ilBJ7<o7U;$8SNRk5)hU+6X4%1} zy}GLs`kO16Pf`P&z0cx7b@n&tFcyEU@*|&0BCJdtEaHWY86ZAwEfJTH&H1hit_VK~ zK3~q}qyx#VAJ~SP1f%}pAnQb~x-c#WMTI|(b$q}Xv38|%X5>Td{fe`REYZLu6OY>@ z4$jR~Iwi`Z5W?G3ce$<(TG?Qtw1bfGpb4u%IL&Z_N&kAW?lEeA`TSWU&sO@E-6ci9`RJiGEpWfgGcB|Z00-aqW|DR|5j)E~# z&(NP#kM@nt}za`Mdtygm`|V~)i$t0*_5Fy zngxs(1o6b!yk~VP6P&vRY~<_5EvADZN07%%Bw^t@mWBClGRL>ux)2Y$9ySQe;u{A? zJ<|?ai7|?`r7ySN6FYoT2N%d>m)aVJg(DkjN{&_24s1GNf}N{7s`sDFUi|NBR>rO} z-zOj=I0catUrl}5$RawU{m^s&p$SpRaOvICBcPYkt^+!0tGSb;gw=Nj4>mwRoyW;4 zJlh*yMLsk~<8B!C+-oN{K`B#dViIN>#_YZ^(A9)Jg$p^3RqfdPFEf7Jci1alRJ3~# z`~ba{A5`NCK%ck>VGZ8J#TX8T=^)5gj>}+1+ZkU1LUHbLT&+3uwKdpMhq|}riErT- z&p-WHsEdNTxbBpX(ColBW3GIZ@RAU=^6+N+yPIL|QqrHVTFyno<3=@cZn6(YO+^V% z>9Y*2T-IH3hCPz7Rc>)H_LX88PTZbEqx>Eg>>;$xM1AdEBAG_{P|c>PNX< zL|Dql%lni&Pe-ugax|v2OiVn)u=g~x1TXcse6#o7+!fF*fH;QBp7_@D@uMPrP6UHb z>Rb7^In&xA#kEmEIZqY$?Yeh=g(+XQC6>lCQhi$omJB%771Xg1$fD53Rka;sKi7yp znLQlY@Jc|ZA7Vq1jwh2{>IU+ZMY}Tlx^j6-CC(&i32KBXvWko&9VyHKBudt5k*{vx z*q2*ug6j(HRV?Qa`*eo(jj=eOVub-(X>C+er0$`^yuYHXIFM^sRP-M{rO+Z0z~omw zS5#o4iDXqFT-+8qjY+O)FkxOX%zxQ?;5lJk?8?wKDtq`fdFU<$UGjc@1jwR5HJ_ zA=`?Lj#ctgXJU2{8SR6KeDV<#7?pkYex%3mK23%A19XV}OJ)E}iK*Pu zTL6xYh>YxsUm!XwxkXPz2h$=d>6f{v^t&cUT)_{RZ}onI*k|is^d#7Ii#ag zU5JUB{O9_G7buGa4}05$Lpwx8w*-bvl`9T`p0{*q5Ui58R{z`?QF*E`c3E z14k9cx_?s7{)PtNZ60E;wbkj0fkFRLrSDqglgS*O5I#)dKwE=R!4|lQfK>R%zB>I2 z%N^_B#Ds{R3L4&Zf|h)H1_5AhftCvOC^``*sU3uI2CZsyxmEl2&x-i>-Dm; z+bi4I1xCv!6lEyFxBK^7p4Y4pciTwoTb~98(^)Qt6yp+3vs-6x7@L%(p9G{#=m|vL z49}+^_KWq$e?pXQ2|*fE#$GFYbGzxiF23}FCrgM|QH?KOMJ+x(*uC8{%Ci)m8hLkD z6>u8dDfE6+gbva@FBOA zA#i@>9<2DI?|M>YZrbsjm;{JHjLPL!WocC5W2Q_k?Ij}L{oQs|t&r3eCtQry+{3u= z85MT7H0A7mJ-vwYBQvZxQ`|~YNcNV5upZST<$<6Jj~tel~x?#g?_(|Ne9cE#ekZtk>lG^sLjL$N@b+P3rpHJ@9iz5wV zSLQz-Khjz$%{+W!bRha_h`7~kU^VF7s5+qju~C(1r0MR}_M|xyXq5~)-}C8fbFwNa zI&_IweU81Z(Q@g&)Yv6!z6R%iD5@sULz=w3_s zHTWYf{U0-dZPQo!c>35Lrs7zuw{lE1M*fMUog1FzND7Xc`~})Uc|egONvw3#eV6ZPxCR3REDL-M*=7wgMlvy zJGnB`7EsPCs^N|<(UTk{kBc_iyYDFvWyLbhx;=|V4~omCDJ)sTt~r?^61K~&oO-{U zutbevb8Zc1UPF+wXvew6f}BM18?-DJ`fzi7=%nUp1KRK-2_Xz*Hrr+#PZ z>YdfM4mF}L_M;;_V7<~1?~*JYgujKui!aIxYS(QzKvIBfAPOO>git6%E`4~WA>c{9Dov+uR|_ZOTyYk`K;|_eG$@jlLtrp`D_biq zEG(7HKCtYY`qC;kn-KmE2KvZE&byBjO7YXKPtpYPd^2a%WSw>PLRs^Tneva8Y3GdZ z^>=mpvg*y;K2x&i9@I=~-zd((q>FDokl*dj*(#x&q(7XM849ObsXaMpQn>_g?9un4+j#yF_b3V$yY|=aQv~a&hwTm ztF&xA!rdSzk!wxaU*|6s$SYM-%S1D_+7T{uJ9Zghfv}GlfPCC*_D=Sx=(ud|#g8sz z6jeu|Uq3&;SIsV9s3(d~WGA^_!HdAdZKP7>W@a@|ahq8HP)Ddi;Dc;GqxUic@s*sm zRygx!9ZO=>7|NZ~@5>G-hfvwE(he;%uNTVO#j5KA`NMp2-vAR>l`OI>rh`Pe{4bTd zoNK75ihw}K!{47p2T$`sV>fpgpa_az(wcbR$RDoM5kNH>N@s;NT%tO9n(zTgpk#0A zC=T{4nIlOdh2_nkH22!SmB>DP+_KhD+7mpo(c!a9?$c>Jv>?uN(I2`;s;3^5%E36d zj>LZW#Q_#3tD8?>xD@&Wjt@Nv$+_z62ZVP%yb;et-l!+^omTjIx_K^FRm6jO z5jy9f(k2;}1B;}q%eHTAZ|#mXBXmQ>ybXn}hW8ifC8=%woz~fk`?663zEe2=;2oEI z+{?g11tkI?QkFLLIW|p7l>$WR-FC(H5!4bOyLBxNp;I*7=5rQbdEbDbLzl8Wx$vGv zRzXJ7i6UldQ=w`q7f-|ilXi=@m8>l^xq>$NZ5BVr3G(07$n{Vn?1i(Bk|W zm{q)h^oQa!HMy1A7v!)NKe(_?rh3Yosqb1y-JBTtHFdpPy=d-+#Oht*s-tZ;R8^e7 z$1CFtuMu^uJAsz3NZ3xWw!pIsw<zK zA%PGZ7~#a)P#=_0{fcMl0E|pP#VFOQ*7>v%ef`@o15N0VIg$k8!|@}l--7No(^`z2 zdcAh9j{W$!^tEi_p7dr;YQmo-F=rz8WSD?it9NwpuNpwY37wk>5O;wrS<6;C zltA+b9Nv}u}Harn{{jv6bxqDWStQDE``i!($Ww}9j;A*ucd{z89c%j;Pki?Xts z?E%TNOw0N!md~a@z!!TDh+2Iil*p-rtkoYEPe>L~WDiRQm*)pHKiCkDbPp5v;9XQN+n@Bg^X+_W4j^^34@BG{W>RK?lb9GWL{`b0N`9Z#;jT~8vub#?qy9ggOu#^dF1D2cv;Z|Xs$SbZ zzQn0&sd!Jy#yYiO+t2-<0^@XgPRCg@s@wid8WCf5kK6p)v{V%aJG)LQ{5G&NxOD{?&@nbx+JeL`<$%OX0W!2{`&r>An7 z*|?cGtAxG1q|@u0A-m0NS8F!m@Lz5Wkk#jsk52dLlL&eL>XELjXC)D$`v%8!8QwLH z%Y63$T4z&VHZ1oEe)v{J=hd+19=2qA^DQ~`K2vh9Pl&=6yAl(JIwX$ODd*{VF3f&b z@7<6DGvk8X{I$zJP`(}?mWPK50k0F?h{{KHd_nA8z<(3h) zA(z}j#hA-7He0gXB9lwWWkMJC$tAZ~ZeepDa{VS2xtAt#m!eS0r3+F~^8J0j|3BwA z&g^{7d@k?z>+*a(A3Jkizf1LRgoQf>dDw`pg`Si$v>}>SyG_?^($Xf%D!Dri5n&hT z1zmmGSE>FPZ)+y|K_TctUwa!qh_v*l&#C<_A#Fn=*Q@sVPD6)*E}#ebE3?-f3Muq5 zkw>_I6Mx=2;nnU9xvWWN=7f&7#0HkBS7pU(wBCd^+(CqO`AZ4KwmmDm>L= zc4$u6_lILp$i;903h&E7x25EH9mhKMVd2al41~MeVT%bd&QK5rjNa+%>lyU*O*YlM zd0J~z0r@h|*W-ws#^|l&#LxDc6Z0qjRCj%Q=QRMH?Kj8_5iL#ptO+{Wp6uZuRb=dN zw9FRaR^9x7`$&P_aiP8&C8s}q+iX4`k#~3<%~m`jF)Ss#lz$Wlxmz}Q<^|*EghcGC z4HRNgWpW_(Hu`tsn2ZkNkNQtb?Yz*mC*n#q(7scZ`P44mmPbGbgYy1{X8wh^>5JYS ziJKu+0Z{;h%X43MOD7$25G8wXI-YRXok9Y*94MF*Z1Lg{Y11>Ysxy9!!^sNMG#ZbE%jbc<-j^37j;=w5 z^|Z5vjQZ$^!!E`v)f(w}#YqlplM9~gzj%xlKn%>?09@k>SPTSf5;&Uk0~U%zgG*Lo zfg5|-5jp{jYgobhPj0r%fz#m%5+1BtWS1tBQV-CQJbl!fnEZX80W;w9BzS1@u6;kR zfXcGiuAt+gIPR1M&~;^D)=7UKJcdKfai}GLAthj_ zT9@(3lS%lNi9I?v3@eU*tai$U{YwD@O>f zaJx`d-N7WZwl*##0Pq!AG?=q*JQ+3O5h#-{4G*NLjoWJa-s*qw)8#4%9koM$ogXhB zf0Rqa;|SM*inwn1*G>;LMK2m{=XhgiQ;~mzwgaZr;!pYbai0hiwx1llWpMtSSa9>< z>~Ut|NY+hHYKYuV7l$gPd(~x4!rsl1JtvP|bv|-dr%2V?TyT0le^{OO8crIRD5i=` z;&K6-++du#;D+f1$#ba#At$b@4TV2)p{%ql5*O}D`-BwE0+WfmxU7i8cj8)`87c~E zF0WJ%7#sESnkD7zXZLyqcIz=>rE7z>9?St50vcsyE ztNoqH_YHMg3y!{JWL>Jg@f~xID8*owIV|WuQTA39wlM^0oKjQ!(8CtnxgH_(%_)EL zP40fgGT2n@p8}P#L-}zX+{z~P^6K7hSN@|kS{GRK*A{ptR=xihWZOJah!YcLwT$># zj3L|+#)%dSQYh&mlWae{#kt}cIg9(xpQ&_-(UNA`+&ood91q>PCwIn`Z{p4`W?$HS zJ5(sx@rU7B*%F0=4dv4D5Dznt%~1YsXer@~*)RzllF{oNE6&VKX8WpLWp4=_N9r_f z4Ih`fq3(U+&+5fe8MwUH+l`kwbEX65N7)Bn<6Q?s@ALF`khiCgvOsyj#KUF71j&S^ z`Hye6Q#lNLRV+G_&UFY473G+}(gY%G9j8jk)_raMOA2*R%3$PYg0}I6Xo>K+l$({p zvs&{SBQu9nkeQ=u#yRM~@NlZ2(4oh0h6HcEyU*c0w6vUM$=sVpfQ+~mGjj2_R^l6- z5Q=YB<%Ra{iF5ay&t1du7XXANI-j?gg%y5c-j19LJT@$1?fjWF8niU=Sh-bzN)v8D z1|1)iK(e!FYKe#Xzp7K1%$<5LJ|2p~BjmKE;whcTOaueg?4IqEf&h15TG>2h z%Ga!MIl-==A$lsg$?00|Qr8T5JsE@_7R3{TH{VYccT_MTs{Ge1>U<(>E)wgfCIZ`< ziFRP2nuO6@;X(?Y~y!3je0SV zYo&T}$o4An>jNsaFO^M@FU&1PK8NhGuW2^HieLT{{m-q$dK-bZ5%%11sG*jsnB-g5 z*C@q&7v>)Rh)zK|&(ZJ&@0Ay!R|wYswD)*GTZA)-4r?FeZLB9sCSJ84w*lAaqqKnG zBw``zRaSG*m(QuZR+>iA_SeRP{hawVf?w?|octO#JXN)PveYioegSKO9vD7VVyquq zOfkq6O%|FebY6Q0`BbX~S@Jq`<kVsyvgcN~_Yy20#; zv;&!Z01l$7fDe0~g1=s0z2Yudk&6{+DLzviil5~3P0um2sXCJP zZCXs?_QH|FhZC%qHOzD-S~@ITy!PV!4AINKl{XV4`h%tJairRiBa&qj)%4^TE*y~6 z+{R}dO4yJz(bTX|NB!8ga^JY*J3TjpKV%Cy-p z6-biz?ODX&V!?R$^9eWX=%U8GYq(3)Lv2hO369-*A=8(sZ|D@aINDr>u!oO+Wt_Vr zHKZR4?2`XI)20E5#=$`O*lIg$Klz&0PcQ1Iyl*QH;uG%PCp~KfF`Rog-1b&^i^31{-fB0PD;GNFjYwS_a zzMt-(_ueD-;!0KtI}tLnnX*fkdz~@y@$MTne7`ahNkO!{Jd0}8eV(gyLtsFQsH zl9wUhj{x(3Z=ETCep)g~5h<0`2O4!c)|~mnT>*0F&M>cv)Ri2C>@QS%g?olZ_qUfd zXc2J>$9tm^#+LC13VGKg3l>|AGnF#$b}w~k=NYXRFUnr)lk8p^QMzvRcM{+oN$r?> zZsx@-1AQL|AmKG^+;vbt&^WiRF7+=6Rud!mEj4p9<5l-+=4O$n%wO>XiPPT+2hvYV zolOaw9)}JcT)Eq9CZ+SH=;h^G_l{YAUIV)RNrEHrOFc@DN2!BF03|k33416I2varS zWUQ}56m5k|58uO^c|Iw&DM|ch_UZ8b7mxpFWjt^HB7F#bYG^mFbWihd&c4Nsi$fQq z(PBQH!Ut=#Y~AQ#LutJCr|?p~mZS8KO__r~=^u}4PsY%T%Yz}t`6u-DwEi@%0;S`7 z2U2tyX~S3PZ2g!wcSCNh`N+J8~O`luf70;2Y6g)M%9v*K`JWrQxG zt;*056D<$!kw~$v*C2Kb)KN|>S|@*OyI%3WKXo3tKuM1mS@&BLVz@*8l;z|f-qCx7@*bCJT z1sDuY^)hVC6=?-n$0by{;ER|QM7=n&Q!5##mNR%MJ8wqeH00*dzuLHn#Pw&&--NGS zj5mIzrJ^R|u(9`Ofa`$uL>tzXqg%3UHy|t|1M2{E-cl-`3(ch7h;3#5QNIuwx|JvG zx{coi=+N)DfYIHvG(bI=XtZUg@%%t8KZfW7;H@B;-yC0+r|qA3px72o^NtbUG!A}; zI=64R`=6V1JpMp+G5slzz`V-7W4}lt@O(&aev{#JUOSz1L(q%!E$)mTXN3=hJvg#& zyL%#A%O&R7zUi<2NY5?n(rUip1ErYF?&%}T#*Bqm@YB1Gzli~!Z)b1s+e@0gxS<#e z*eL^!G8uofx9Up|E=rynK7c1qXs4oqd)P~?@58rcV_r9t=(TqPO*Tt_Isdjx>EH!& z;$Ke0mQA#@am=22jMNstO7zCwONrxaz)_wc`^@^m%ey(d^Tqk41QawFLNlym%QQfD0%?tk<7i9oGnuT?l82)7GwV@#li% z5)Z|4Xyc#jA)zWh8!(NJghU1El0W2@t~K;M5cIqg(rvgCqj>${kKo^S_CYPi2`+>q-JG)R8XKD9J32r>$k8+k9au@)V!`iw6 z$xfA02B-@RjJ)G&0>cV-s3&53|??c|er zrJG5o`wlKG#pu1?Jy!xa&v^vF_f=zD4!AozFOD1aFXK3eE@;;Dd@fFY`a|%oQcUVK zwV>oe+t00d(jN=Hx9_yk3z$;06x7A zd9?Y895PpHMDod$e<8b9e+a`_Ri?ptD9Tw$6IJ+@7jaf&xnrq8>jXVoF3YvXx|jfd zZh6as$3|-0!jLHU3UJTaOlv7({Na6n3~`7BHXaCGPO#5lF_10C(3!!0M(mu03z?*9 zGf>*|8SY~4b?JGPp8U0ubakpQ)pg=l24{+{5t@E)D9axrj$V5+`C}Yqhj%{9ho&h$ z2Qpw36rn*;wS01}F>x?Ag3LW+T6MwKlVjQvEqZn(ea!E(R9mLw=VC1lF}Y#AX5H2u zVx36bn@)XgU1o=6ed|NHnE+@RP5EwYZh#eU&&2Jz9han4ed)Ab2MG$jvb=0CYojXm z@JZ)&@!sH0W}>`%I9(`6RZKI}oc+}6e*X_=;K(9hrHL!0cI<`YBBiM!Im1U|wJe7q zBG%c1W)h4sn70JYq#SS+G8wJ&Ly!Ta4;Y<;KM`flvfiK^HwQen686#GZFU=t4zgM^ zhF|QGvj$E|hjug5xOCZe zPTt$uo8$~dO!I*%0Xud|fv*)OJ^`EXwh4-`c*gz@$y*uqPG|(M_Il9wBLaV;zNW2h z2|H3tq8B)dii4k~IHeA6m-|ejoPFL?-?7A#7#YcUKbg1XOP(z%E!h&5HSQwQec*D& z%{sNVS&KG20+jeMyP2G9EtKsi2PG+hJgrznvhz4wSi$)$FBMa+`NMKa=s!=v>XQSU zw*_CgaF=YYnGl8Dlg7N|*JJHSwe6;D;jZR*V(1fmJ%n59fM4HXY+-6!5a| zQ8;ilrO#&j06%i;E79pX|M`E>{=b4kg7HyM5Sq}AXIVETn)5e{m!a^gKEtwqxwNk{ zPc#)0oYi^vx;Aonc-Mmf5F5*eoGt$|eiUe7|4^DOj{lL7l6k{^#d1($tU5B5@YMfG z+~2Vqq=&r}0VY}QReeeyQlD;yKuJKvU8~KV5{58?c23SdGZqDyl@@7N`w_u>r~6?* zp%GScz3K`7HsShlSr{Y|psI6V z#bGr8sf8KAn{n^4+0|FZRVoGM9PM0xxP}wATUq4P|F93(LSMj9nFWn+p#yZ6^UPY= zE|r$=0Dkn$%%yPP0;62#Bn>#(c0h=o$xqsH9)>Bez+}@Ml5<~i*%g>` zxFG|8F)T34J9K~fy}H#VO++ob*FaurT|ugrw8h}HFI@1nuNg!5qawGejBzM5i14ON z3n6H(m2IhuxQ;%`dASgkoaG#<2?P8YO<>u6CIO z;8>|IDzQh=qR9>#21k`)V;Y78pHF#8-Z|svOR`dkKEg`u)dk508laYYgyl}<&LF;^ zG5|Fngx|zJ-2$t&e#r_3(dQ*0Dki8I=TA&>aNgNv&M`C;X}^A&Zgyhv6FCL#g%P^v zosg;)SDY?;ini8k!SZBWfxtzs997M!;iBdA8(0s2b}`XV-F~?E}+Z|Ke_UK^O!q8 z2flpY=5uD+!@}Z}loYml$FzoCq3|akvjL$v&lkIy+nyudgIiMjXUYaI-2|lh5tp%j z2Wr9fsuyDahh@`oe;|IH3TNOevIw&Xg6 z@d&^Wt=!J3QUSO?bai^kQN-e$f>$jpmqo5M=3j-7WjS^#>t4C20h3IU$fGnwL|b4JLD&@-?;pR!>M{n4oQ6BkkII3#57l_cy6VX;!1C!Ph$(IQ-~|i za!KpO7S?y;O}wo94av3o7_H$ELfDW*%LLRZ5CHm42G+E575JH< zlJkM`ag$MtFCpPrC<-CLm=&TRW;Redu~j=<=)}v98aPzGWW#p*tDlP%WY!;H$X1*D zu`P74zDfWLA_3XqVH=^uy{w;iq{OCYcjW$O(`G|4WUEDzu`rYBWC;dF(UJo0{2qNKv>& zr7~+6c&5#DUfw3of;7eVSIv6D1Ir6-PI&#ogm9^GlR+6J>h5EvICqwcs<( zg$@&PmQ*!f8J~1vPHFcQJEfM~Y`CvA^SU~rFnta;^->v~ii7j6K>4Hyc8Mr`NFm2) zky8wJwP!6S^qNo{Tdh+TWjzxkbq7H1J}nvE$YuwlrPtZy`t1aJhQC<>FY{t!BR@Xz z+<9y$03rWOyB|ky0V($`n2MUz*CHX}mm3kEn{`^gkpJsvEaw`7kROzDAWgVDPW+Pw08&7GO03sYCvaD zusVu4**rG;8luZP$diol)}MqeNJU^4U69kD06y!Eh9CU5&Bv^2K2+kw#J^urq~{uI z7`QB8)K=*TcSX(m=d8ct;L=ncs-IMiEPI2`)~V9>=VcB?&$gDO3v#K)TBZ+pe4D6PF1b- zQ-vaG3AY1s1qPLez|Q2v&z0RM*}pkO;5EQ=XdBU9?9{5HYHn@ZA7{eY(jLLe-`|9E z1NL7-D(Gt5KLd#hLf6Heoscb%LH@hx_3>dvbB7iomm53l2kk`r=X{KT`T<3hUFQvKP+&!5T)j=kmkcr5MPiLNw%ZH9KhS&+450)Zs-8 z93ub$uUv{lMNN{&&BhFJ!*|>X5kAJDgpwcmiS`V*6nrdWeCsJhLc&~?vNvt$^k~*> zAh@iOI);a;#VPPAB_%s>Ne{}FV|L?s%2qk2!!;1*ygwh89gaV3i;;cZ#NeH8psIVB z221ELxdkxykuS=mJxk!|s#a?ng^m{fnt)c7?WxeLg+h`z9PWo;e0g4m`71mO6@JC? z3{0bvPYpUX<_FfPXQ+crG#PP-q;_%?MY=cf)tm%ZP{wA0_s~OfO-8GIp$JzTp{=}P zjjk`9_{oE#im5YGrjU7$NxXMR8CSV4KZKExkJJZNy{eSuk*UU>f*&eX2S;FEsjlKhbWEZ|ge-b3kDZ*v%dvZv3Yq)8fdwAL<}1VImPCMV9^u71_m zCo`f1>Rh_7d$**Fr zIv>H@#g>|S7UVUP8@egV8dnB}^F&jCo_M4h^leL3_1SU?ct#MBD#H=`7S0aKc%DH^ z*|p(ZyL6qcmX91&<3LV|>p^ek{;d(2Z0v=iF2^}_SK0V@-%VL^Z2{tV;m-(HE-6h#}rn^kaE?SuI@1#D1`pY3J%KRyalQKpvVw!4Fcj&6P-1_%5Rvgh5 zwVd!zVp|?p`@9^81S-}~6^a7^+KEHcIw^D%F$=?Eizb+_!sPIGt7-ZrW-Owe>)6#= zlm^0BIl$jU9aDK8mfOc4;UMx4JgMtQt!}$RbGk_6@ODa$!FK`5%vA1sWGyj0DnH=B9DN$lB+MHw$gP)V_vHtNuU}~#ud{X-PBL}E7VnIaY9Sx?R zp2c8V7iq1MSmWbjvB`=3_Dl-d*@-a&Nw9n0Khn2_&7|32srz$+lecf7H zBsUpG;X=1BVHGRI)0mRXC|@aG3H1bdoy;lNE z28IvB6Cd2W(3%I+xFuCa+OE3oBVj&;U9V71%DRIv0gigyzB;r}4IBQmg2S~imcmx% zXowe>7tVQP#Od2unXe|(#*L^LZWWg)eTjM~&Kykp1xx7TAG<@fsDoRy?GgBl@mrsA z%v{5?H1zx&Pol(x4V?!~;xMQD@H(x0MnL>Sp3GILfVx#RQ)Jqv!fgWh=x^%pp2GW! z&ft}%+EvUeamN}ODzSmB%3e~42{F+V{=j}8+1FYo?wlKWJ59(({3Ox+U9F0)^{6Wh z`la9BLL8!HwbC-`b!jn1jy-JXw{*H0Mq zGAakL8N6%VR4ooHHD#D^AjW>V>F_86$oxl_ON;L7zifs%e-7?-^{se=Aftz5)LxS;@=ywUwCh`NH zS&z&K{X|Dqvs+n{KD-awrDaWyrS5dlRMAjVCIxcJ&&b{R!lOy3eqm4wIvf~^FAiqP z1wiIsSutw?Ofocg(kBGoREZsNtvP9(45I->zyH$gI=uyu^LcYj8U;3os}c4yabQ)} zL~^wXDQ`c2N8Qch{-SX!yJ$o`&P0U58+6;}qK6N554|>v<`BZUmXG_>QUtyh?Ua}j z5EGG0;T5bEv6kmwX3ITHNEz=ape%Dc`voq`Zj%QEH zs^f)x!aLp$nsC!mk#XG9O0ay*sS>CL%h|jRfr$g7~)-zVW;Ig|wV}U+?&{euY zv076c?SB2_G*skk;dSI?wBZNYqeRL@A;f}&01fU7v4N`OspbfETYWn0gbfT+mk>X} z^F_doMf{RLMe`;;!{ykmYiMjKJ8zU_fOTE&GDJibNJ=VSD~G%zoYaQHgIoPF93r!r z)&)+L9yHuVAd5txizc7}siSd>t!j%3#DrhqWWqT1G(;*BY&cOh-jh?KpemBPLguu^ zRpDnL2BIgHOQe70;+fr8tFslFy->*8R>+$Nef+SQr%A13#**D~aTw>BI@k&^X#j}E zUR3gsovrZaTf?~w4zrKxwAyx%A5f?mFU+M(dGS;_Dv)2T;IZbwn#u2mhx*xIvhNra zQNJ2ce7sR7ndgW7hABF0AvJm@TY5Q`p|TfiBEjM9|Lq_C+hwoK@`Zk5~XkZE^g`PvQ+qu$=Jcv#3ZeDD0s_ zLJj=-pn4*gS+aF=Pbo*BQZ0}h2`iY3)*kn@i3UsA(geDUTxD~FjLsTb$hqILTnUl@ zvn)%Gl^e0xhKpF;vLRT3Lp~!BJ3=YIZBX=ERP7cA9hD_46fiiZXs0a#UscZV6V0$? zVD$k@3T39vDd#CJHedFl07e!hV^w8Z793w`&rlV@smB{A+WVhcqfATrF?ef~le&y0 zD{)3lc0M_G%nzZ!pHmyDQ=Y5@Bx7ym?mx&_*{AIUb5$$k2NP2AvPjm?u&+_hWSh?| z`{hz)G8VS3HIp#d=?8W=xUObg z7IRdIDOAQ(gxwY;t;#ZasZaxje`G0UMf>1%Zv6mdKS(jz|5j)^1+Z~5UQFl0 zrebB`3f|3S{>RO|WUwW+D!rwb3ST}f1QRQQ$`Wa(VTm&l4wrlu>cA`lx#9Wa_1DE0 z)GwC}B~L;m7|T3%OAZMQRL=2tv7#wefog2hpfGD1Nf>%FW;2v)W8o z&VH84(<@*#g$p8(Luz+IovPwP!8l?AxLly;%lF*4Gg53{+b3W_VFoz#mg(*v@*l&(p z%r;}#WSQW6hZLk3!Rl82C1!ujpnO3R`l@{L+yHcE72)i@9*$1E9G}6iTDO~XM=Sq! z)HVTvFLOF{sAYd_x{14(C$lT8?bvav2{Q^3eAlgkqgvW0MXszGxL1QrTJ0VvQR>NM!*e zrhBa)Bo_%WuBNNwIu1Ekvfx)O+}kCbZg;K_WVI`ZRZLs@OjZ?R4tq3LhU6H;LoncT zX!7z!!16xXBR+XIF%{q|0=(;^aqg>u@_H(c7;YpxRr0j%D09wUWNLK9aS%c;;92n9 zWwD5Z#UL!VhJLAcTi05F%XSX=!w7$T7at!m$PmEZjZdynG8VX72nnxWdy^pVKLzU=9YX$U|8$97avp@i znS{`c#)y7VIk{g&!w;dS-+LITIdirhzQ6KTpX<- z)Ea+EhHk8<+c`aWD*KZ;ZZ^6)L5dr{l#zD&**_1Zx4dKPLf{x4LY#{@lLB-UO*h}u z%%VPtHIIm7RrI~H#b*HZ2%1m`mDdekfxlM4dy5_Et^vK4^1ig!(AP8D=(Qd7hlJ(^;`c)o**==NGLvq&Q`ULX~5QSlLYHn zta9^U;T3!(R^4g?C9@#$>`4K;S^m(nA}@)L!dA&jmtp-Zm@ux`dIXd>-y}y~tC$KI zF?5Hnmjp$s$0HC_!PNwHD*1IR_S6s(8X*a_Ig0Wdclalr_*_vq`1%dw6^CJpT2W1n z!Z;Wo!srwJ%HV~hz6817)aoh;cLa?YU~0sfP-vXXq}lPR0DUf$KDsE>DK!I5u6KEcKO#dNDbSyn18D+_3Dgr6+`51=m-{8;(xFoQi`UrTxk z<~>G`|GcGs4kv}LO7u6$Y$~xL)@oe0z%AG=?@aJv`3~1qpFgx_tDnKU2^yn1J~T{X ztQN}V;+GX{?2*$ZBDb|oa1Ly%ej zo$#EK8(B0#O~2$)U*@k5GpxX;A0O$P6H)puPz)jb#9t>YK)04})1YiKF2?qyIrZ#9 z5$pYi3y&P$HltQmEWGbXwt+p#dzc|R3~p)xTSy^P1Rwp=qXYEJHFU?34Gt*m-ReZ+ z=Gs72`$Vd!3<viFlXX*-Te$|q0T4xXs}pN@iD@9Eym9iM z5sIU+ADTabx*q@Fi`4Kl)0PsYii!1b3G-BWas_KY&E)r*S@{^{R4s-(@p4%a(vlEt zonxNvgLJz6agG61bp)@j;hAz!H3Kvc;RF0~>T&P%1)ng!al>`tIjf*z@}h`qU0IYL zYuw~hy8hc%%f1ZxHF*#oh|vu{B(*b`LBN7pSgig=Kr-^b&ORMQm_SK5RaGYNl*54YL&`l(V8fJmit$By>^!!^qK=)X{B zSZz?D1=jX zl`q`~{yeyrOV8=Rpp(ym7=rH$(PjnHkag0AnMzrtZdsHi!-=%{DPP}j!p6i{@)01E z17?JX96mM|I@u`_ontvrEc1ZgK1u#mopHk7N#Z!3>X7ifI1k5F3r53DvT++4Wl$AI zoCBJ3Y5V4O7=B9ICfK^1Of2*7Qpu(Pr4l~-&t9tE;AH-6crN1OryOb5DL=Ty@-tDW-zqJ4OI2*BKf!F*s_KXJMwwcCmp;|f z+-kN`@V(frl3*o7r0bNsLtW?=0auG>zP|0FiHPtFKbghk$LoW0p<5pbkF-yX%YXhO z|3?#uxxjQYmf09UU%)3n*tN8t2jeS!p+%Ho!!#)gncn>)2wws0u z5OLamKxa~DN3tD{Nt`+m6BcDOvV0IjGZOnL;F&1@di?pj)fO4g8=NW~m5>OPzSH!= zWFh^_t+}`wiHXS8s^QQweO_!KpMIi`lYxjHO_bpUOjtofcW@;;!E{-Xsbh2#N8@lC zq$EN7L_cn~--7W|14$&$nw^+7N%>U$S^z0qc|OnH3Mg8Ga$}A@uOADOs)=a$EdbuM zSy@b_>6TX|K%&GmULTWq;|8~|q>lF`avP}IGAh*atyt5iM)gI_s`^X>1>(68LCNEY zP~F~i!qbva5{o5|tjzTXyQ4ws7&yhsM)lNy-7-2o%w@%TLnrYnqhLQp7LLxmkbdNA zWB)sg3992tSdFu)xvUt(&v-JRFqWa!uCN2a=0Xr2i4BG5)%r@DFbqOq)*}{Q!p;0; zMN~5Igqj%w{5bU(LA)%{28stBZ01TO)@*K<|&u!xMO=8ie+sm=#wv#4(D)`EEybWo#Qq|Leb26tPD?OrqBH%0U1_(;EPQj(v zu*H|tFS?B(D#~c0Ih>cxG&4G#J+qT>eg6J0yph$2(s$?mUnpv>G7|jxgt2+3`gX?x zm*oqXzC6LQOq>N(Pp0A=A6~9>C|FcHBzea`k|fKE6LIA-Ubsv+PF@<#sXF;#Jp;OV z47yPoP>9VL84>%GV8LKsbf|05tG;Xc;D@N-X}Wd6q}eO8f=}vpQ^(44isdFwTvQOh zVEqQZZgtH%+y?BKHj@^Q(x>Av!ScXK!Aip-EwN4lNW|sx1$|`as%(!~jlU5IW zilxXOGC`0p&)t}aZJRi=;{&FIoi-kh|{6h=JAIP`VRA_b%W}^bTKOA1<5z?h0 zl$V;8UVbR=iHLbw9{x})$o{|!%AI37L)!GhU}c}lhqY8Sf3ZoIm(7GS_vCb(*iMGl)6ha$pmc4BULRx3oJNSf z5NC2-{i73bTE~XpFW>}EeJXWn&IbHlCp^)f*b9FuHv-6Mc{rI= z+L1h(Nz7cx-rZaIei_gM+qD-WriHmw$moMQ*y+0&oTJh1GDKT4Hl63-*)!0A_u83I z9VWII!^5}{Id<$$=*28~#uUzwScBh87ZbjL?^ZWawU53)N4@(SSE9*CR{`SQu@k|W z&;T>>lWggsHM-fEn4c-9ODjdJ6LP?R5buGHM|NF*sC+w~&k=A-9p4jIDVs+UYyM=s zrZ`HgS|{xBpZ;@4o>l)x;@9y$U5lC-eW=9#Ow6BDSseF*b@HU*K6T_8(Gtg+xwoSJ z`Xx7M)$BubP+H7S$tYL<68SX~K_dP{`$WVtw&d7rFO2Vyvv|b~=nYs$R`U4i+}rixmq`{7vQ(Ox8XML`a}N(Ez4fe;#vvaRQ37v)zH6}(XN?S zJTW{RL(?~UCtf>Pv0OO}xM6@EIu*K6s~2Njsv2dAV$~zk^0e~O^0bYNif#tEb)DI~ z`Dpi;CvAD9Wht(3@a#eMzo5y@ug%?q?Lh(E(TFaNN9AtNRq2n*@6v0xLg(inA@0o2 zcZANhKAj8Qy4>dWiAL9!Nuvzk8~OO-1;lq{xG3+KTbo-)WXI(;SFL-kmnbc-Oz#bc zTqd#CwDOJtFAY;#wnFDFcU9{%vyt&Pdtvb?cALQyZ*RHoROgY%!c{+653fbER3kEU&?4jbM*1qxZ*)Fj{rr<4s zM<16|4%Qe(xz*q=liZ? z)*M?rw=}!*06XLw`bb0qUh_tN?=do#UUcT0T=_1#klt8+fc+N)P;2?LL-QJ?2O)bk z-4WjwXBVX>dLD_r;nfJ5>As_t!kzx})Rlm4HP*ff_qM_HPx~cx;F=VX>?==SC|B`p zzh8U;4k+FA+hkp@2@HAJ2>ISE^IZGs{RRzKo^Ycmpyg-PyT16lmmYa`G}3eN@wa@p ziv9D2`_7G8zROEjXA4VXwQGJE#2b9?Ydl)}wAF)KO!aP;mqj#h$gAAh^pBaMXGU^7 zxS~bQXFB}=EPG%c5aB!Q=Znq(B;4+UmIi0cyKGc`saYWGJ>bPK4D+rN3K>~%Cf^h_ zH%Y7LA8H#NE|YnaUMhLNc<>H6^oK#V7yr}BrjjK)yMV=y8v0kFtcE?B4EBN&>a0i% z{)KlrBp;NfXEaLYw*8Tw!J5y={VPdjCHrDR4+j5aADbdT*1?OS$6C+ud=EoC9yx%- z98UeULO?yzXgAtD8MX~u34Mi>1_ZXQb%ghnXmd~Tvl6gVqBQqE+sNxLtv7xt9Qz8p z5uZ^W?OaRqm^W?Rc0G%%Fx}xkXyE$n~V6ni1l!(Usw_`qIvKpJr3IKW;@E9b*s9 zyLrfT_js=~91$vMzHG!zI62sh+H?(GZhizyqdg?IM;?wTzT9YVg?Okf+}ZUAS0nuL zwWQ3wTOaBRoI%QN{njVFh;n#~n#D~MU`FPxrHA}E+5zDDvr=o+Js6Wa{;(ThOh^;o zpEG<%uPrRQuk7PoLyL%3E;$p{okse*edX(U9$Djei&}l!l%A3Z@Z_~PC4vq!u; z&rDrm-uP~YeEeOINe%e2Cr`ts1tqLR()RuZtrefsbNcbYy3qwYe6D)*d!RVajqjZV z&u+d1p~3ZTm}hY`iB-PkNsmnRaGNct(t4sndpHPNa>2$$cEisdQEm*`dT-e^XbFpB zMXXprTR&-nXZfzJ=W`k8jhqJnwDO7rj%zWkqUzy|VAt zN4kK#uz*(c5c4?I38{`2Ic0Oi^ttr=6Q=R%3Cq#%Uq$f-JT7X_7vfX}YA2+1%J!aX zUrhD=+jQn+&b;Zd^uZgOMvDU7yU?>KQIC5J(2#rdtsjN9-wf_)KEx)KW9e6pY?)mQ z{2+5eTfc<&yhHO*()-PF+tUis4j8oU4m)op`pBoWJX@75W%aYwWXBNC%_o+)!LEZd zn~&pm*SQa5(14%nC#$d4(0$SSPSm^r)xcg<=PS8~dpZ)7&nZfEetS@!U(yHaT;2om zMP`{iFC0(vkB|sBOOgGtnCrVg^Y>EthdsX0C~7xGW0Ls-$yd&>HIp0{g@{{>|QMxVX3bg)PXd3WxI>}f7wC4pg+gtPmG2XPp9 z(GL_s!=)qm&NtekjJZwU)>9Z~(`kU^qJTDTJWlW$#hs~Aoq0L$S2J$l+O+i^!A{cH z#HWRK3B2j?u-8m_uuA_FG4JV#etpa^vg^Ki6JhBRMQA((+28*`;tgYRw`VQBa9eh> z{Ap{os%QFcyK5cp0k#p<{fyi=Fx%KCF$uO$sa;*-GdP=Tes(8PB&y?tyLD;hrc~-| z>N#3uK;?2~wD)O=cKXt_dGuRgp|YRvy!WejnxT0i%w-#zMNq*Hv#R>s1t&069KhIRmI znFyT3$Qkay^F0TAzQs3U@LxVR3hh4#=&aTJ(5?3`NV@LV?#B12z$q04OX^L#i<-5p z=m@8;o^c@0yWQa19%}j9D{k0(XPxbC{7xYYT_ARxnL^knzT!;pCL(gj%;`?4Gfc@+ znStC#>5;~*=eITI!{$jUXOVFyd-{hy9}$TnEnB&dHg$LmwfeA=f=IKm*v$$*{pGQY zk(LI&0bAtqzo51^Q*KWi8~2>6&QfI#U4ET;ab17cRCmCtwKs8O<7bx*CmoI!qkq_ZeLmOoi@=u3eCT9RJ*VEfLoAD2Wl5=NYa%r78eYf>&hWFoN3%y2rT<+K{+s7|!EU(Q+ z}zTla<#&vUKSvr%JYy_-Mz z?D?wv-FD~x6${7Fjb>e)(RZdjked8YlfnK)9aXZYm)ak#cy75amp|S2d>QH5UL%tF z`}$zOx6N0w7tVST+iE-g&dP0f97^lzD$%;WUDqiWpc;vqT{L~Q*ckmkimv^i>Hmwn zUz3tsbBz>pFH+=IE=BHU7@JEf<`Qye?)Q)~L@v=7o92GWm`g*Xt7|TsYo8Ds$uR4? z?;r5~<^4F1*E#2To)=S9RD>3#iEo0fAvnOvEakYA?(59*+UpNZ;G!MXq<`iO&cx@w z+!5m0T#L`!W=t}*>3i+?u3Zj+D)W3VVl~|TD5dVcQb2ZSW%g9i^v|z^XD7mvHivwA zWTQbJk%eA{`L4sV;n^Sr>k7iB{1VVUD(F+I|GaFbaSOpvEH+{&yQ5_Q?@H(1?7}I7 zR=3_BWKAxeJOm-j=z4oV1Fn2Jn@%OC*8W4nM>LZVl z&sB>F{qc#3*CNkVr1)mjvU-Lkl(M6GJcMB!)(k$sCCJ`>`mOFWAE3-AB{vgaDr%=9 zQPF{b5bYJM&44A8;>2J@Pzo~9R^?(s#P@+_(TNWE+kWGtd+L(2s_@@*-Q6vmnq{!% zeD4r}DT*9`e5~D@VJ+?ooDX40T; z8qqcU3ufyBgW-n)(6=JIv!HC{gC)y3^W{4L_)ZRyz>4mW*ymfS`L!YwDe>oQplDma z5rS3c*3``42fJX1Ij}ml`AA<4$ zip;g(8>A1ay=*sgKw*l-o>zg9e)LQPJcta5eIgxEkDW`bVL4gDOdE2#SrDCm>GBeK$cuHAgko9a4POM&uC&%mIjh)>#PoN$oCCH*Gffch&6cp8JT(l)Iw`-OnprZ! z&LZ^t673UHk=voF%p;?!@?FY9gD-YcH`rHt7z~n=(1Zsof zA19sF(Z2NHkDF{s6I<#;V(9M)XR#*}v4K!bU#Un5zBHG>Gj(s8Zk*bTudsS)|7SQp z9hPwF3E8(f2+61ZbtxLBZJ0nuP6^SYp7}nkh*vQ7w;JMo#pu^mW{u5wxxZRzhd#ow z53JD?T8|PDw^q{gWLDXr`ni5V1I5}R59s$^IB!`HEvA#P?iMR$2$sHW#g3woO%|Ua zZCmsxwPS=XvhAY(*9|X~y`e365ewxxDM}rE)HlJ}5$rto`C*do?BN-s%wPQ=GR>Vf zVWoBZFYdG?guzKuc#ah3zoN}5mp0pNOx_LhIP@oGGK&|b6JyA_1Uq+xb_~+pg@j&T{ z0i{E(Qn|(Tp2O6|fclaAIPq>luD)0bKfKSbSuZh&+`fock&sjNV7(h4y58Dl^ZOr* z@2&8@kp8%N_TNxCo!JeqMxLZ<-gubII^i(L|QsK_(RZxqEeQIyfG7Me%10cWQ%vhQF^b)Vh-H&uMcfBm~9c21zvsHdOR!V)gGk zmx;d@@tq!OjZA%y}^yuM);YHBV4K!sC9z0C+`yP!JD296z|lB79)q8MxUNAp1y3dm6-_wm>^BA$SvG{EQPz&dTLfQ zqrFzc8PC~t2CsO_e3{d#bk#d_{W!C;T=Y;R_)mBEY~0my*TQ=KL!0uO{pfZ_R|F>| zk`GdT%4@#9%`OnCIAuCnkbp^XsUyk0@?dl6e008SpUJ=JZy6yUGh%W&!UEeJYZvT~>>u!lt<2`^oYx zbo&|>`&&?f9V996jwnsR^4-LrUh}>|hhvUAiZ~(d&7o%Qj*(b>w_ulBIScD_%8w-*Fq$}X~_REAhq4%hYDjJZ#aLK2qnq9@wkE#YAjMjnk8LN0eb2e4zu*l z(5=lH67j7|vPrH3%21s;hl;c+3*uhdu+!mkg%T{4o^oa1<-g4Ki(V)OMeQQ9%nS?r|>M?^mgNOw_*qFV6mQ%3cr(vWcYO-m;SVqohd`f0rG zZ25Z|mJS^phvFi&{$x zJ#}smu*Z5}rxBh)@ZK39^=iZNfzo32bVXL{TcrLC3~*ZN=UsqPQVkxn`}KFBbhChI zAZJl9L>)xSFm`dL-@ofXr^pCvyR`c|zNWq&a$kDrP0NUMilEsyIg^%8?J6{0c9FO? z+_)|<2+MTH-2>%C!9{S~Mhe;KAG&NCLB#f%1=f8f9fuBJ<*A6)piYG?S)lBh%V>>r zH=}Y)@lXhnGO`U2=MmaE4&DwDcw!+Su6p_@C-H5@oj?eJd&%8qllqd=w%YhdT85rB z4UoOT`UZ*DtOhM-ewQY!Dw9?TY_^TzafPREz;Pdm?@qME=6ZFpPPidbADps?>Fca+ z?BHu`0i`vHeY`Avt$rxAq-Uajbk6bzu>c!2KR zorfFv--A&6Sq1WU@dBfsD8Zy0yX>N*^x*9-vLSjD8T~3YTuib)LhYEt*J;sVPeed- z+#=;6P6#i^7emkLG8C{L#Ys(srBVTT%kK&=mnNz3Us}Gh0f~NkW{lMw$n)EhO}B6( z8>tppT=lJ<<*!7M`YEGuhme;9K~JT+vnR+Um#Z<3Qb7};fsV3(oD1P7B7Xi%ss!y6cncqnNW;{zi!sm|6O=ZixOaj{{6~ZCkK~{RahHGw<(BLv)W%mc=UiqaM( zyQaXD{COOAub6WWD9SNpnJl!2JD@A8SLA&&RF#2 zx-Q$HM4hsj$1<`%Mp`IexsZENf7~)#B?Q%-r93du^pH>HD;r;rVGqz#!)mzZ| zC+&7@ReuLp)#PxTrw?WN;PSA1QZD8oA9p&EouwQ48o_OTdkvn1(KUl3YDmK_g?6z8 zhH=_0Bba$VK{_8oI9_}d-{y?@V&aHQAKEwIFz-NIpxqIDVYSz{_j4scc`&}PWr5>o zGHBI~iGNj!d^KOa8Pp#{xsE+&=SgOIEr3gBMcaE3n)jsj#D6*NS6~$v`~KKFfXOj* z1H6)gNHTX4j()%Ek$HDt5bx3q-o3f96YR?#Aqj`fH?4ki;n<3kD9KugH=lW1f_{=d zpyRqFQ=siG?|!*jnB~mM^r7-*Cw8im4HJSkj68Y&Dv^Dl!xFwCtc|I_F2uAaF!wzE zH+4Rp)^`x1#Rp7}iPFVZ#tV*x zOpoH#K`y7t70!Ofe%;|>)>B^dtJjy!hAxTjAM24L*pOBxH>Nn%@HT86@q0NQ;}hYe z9IHq<1n_g+uRAS&Y0yRzfu&J;Mv+th6-9Z`Bui5U5YG#xJFS1#^yRh|N9=v>zo&i3 zXFf3S34aDB;I>cW8IR2OdHw;R;6*UlWKX5G^8qX_eC^!qs1`Z}-r53q&0nn!HJx`C z5h+Vf^*JfT+%Vu#JwI6!m|b*i&|(3U=kZs#&CFdOZ;*RJbO+Zumup5&)mL5XPILn= z86^r!AU?*55Y4JT=BqvL=9AdwNmJ~u3z;jq`$wvt>OnG8Md*7p;xdJI;-^btS){9f zGit_(ezY*9xn7KJJ9unL(g2kD#fX1)i)t}4U8Zo%{@C2KEm@~WTj&BcAl~*s-p*NZ zt`Sp0*P0yj1a~MagUcLI)YTtEZRV+@;N_WLk?^mglt~eC8zHn9ZHT?B^q*xvn)a=b z^znNH?fRk6CL`E*N@jxJFZBJCi)jRP!7>@DQ_cvuyrbk2o2Tj&aJUH-TWO(yb8B^t z8!HP8PUxrkvp3{b`<__-DJ|NI zQgn1Bdl=_|(xwO?0igQl_5p3`hZ=0F&31z`F(Ip~x36bdEM2T5rOuw98VD8T>#N&O zB)V0WXtM_c4PNK4I4;6Ca=0HK^4 zpg8N3?|c#@M$Yp~-||A;ibVhhD)oDs4D{2zNjZF>{+%5p8eo47%lRJ5)@uG~O70;@ zmC_b#D)m9wo!K*AzutBI%ile;}dt^n-+M z67oS#4Mw#Q84kYUL|5N)GLCwl9?VRC=2xbGJn9$-WxCk1X$&Yf+}qm6&RGBXKo51n z8^Ow>s87MWS7e^0+ay9)xJa>*XKOH{8)~M5YL3`vTXnb)6oP|#v!2qij3f;x`l&De zZ14=~d#!{Mt=Sa|{~QSjRK=V|@C}fb:=29mS$a%g9}y6o{!dl8LdOZc;DI>OTY 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%0ArfI~AMU^9+l=L~4QKCooLY=tBQ#&( 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 literal 0 HcmV?d00001 diff --git a/assets/images/timetrap2.webp b/assets/images/timetrap2.webp new file mode 100644 index 0000000000000000000000000000000000000000..1fc3ea73e85acf5aa2b91cbfce5d41ae1a311633 GIT binary patch literal 7268 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 LwY9%riGcqH0!RGe literal 0 HcmV?d00001 diff --git a/compendiums/en-examples.yaml b/compendiums/en-examples.yaml new file mode 100644 index 00000000..067ae835 --- /dev/null +++ b/compendiums/en-examples.yaml @@ -0,0 +1,1478 @@ +name: 'Goon' +type: 'npc' +img: 'systems/CoC7/assets/icons/cultist.svg' +system: + characteristics: + str: + formula: '5*2d6+6' + con: + formula: '5*3d6' + siz: + formula: '5*3d6' + dex: + formula: '5*3d6' + app: + formula: '5*1d6' + int: + formula: '5*1d6' + pow: + formula: '0' + edu: + formula: '0' + attribs: + mp: + value: 0 + max: 0 + lck: + value: 0 + armor: + value: 0 + special: + sanLoss: + checkPassed: '' + checkFailled: '' + attacksPerRound: 1 + infos: + occupation: 'Obey to the villain' + age: '30' + flags: + locked: true + displayFormula: false +prototypeToken: + texture: + src: systems/CoC7/assets/icons/cultist.svg +items: + - name: 'Orders' + type: 'item' + img: 'icons/svg/item-bag.svg' + _id: 'QXaAdZrzIlpR65b4' + - name: 'Secret documents' + type: 'item' + img: 'icons/svg/item-bag.svg' + _id: '3GYcAo139cyCy9fA' + - name: 'Be a pain' + type: 'skill' + img: 'systems/CoC7/assets/icons/skills.svg' + _id: 'PSkJAIU89V7wn2Bb' + system: + base: '0' + value: '50' + properties: + push: true + - name: 'Dodge' + type: 'skill' + img: 'systems/CoC7/assets/icons/skills/dodge.svg' + _id: 'AvGHgRlHt0R3Ed4S' + system: + description: + value: '