Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion lang/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,14 @@
"hint": "By default, show Lair Actions (not normally included in 5e monster stat-blocks)."
}
},
"show-region-actions": {
"enable": "Show regional effects",
"disable": "Hide regional effects",
"settings": {
"name": "Show Regional Effects",
"hint": "By default, show Regional Effects (not normally included in the 5e monster stat-blocks)."
}
},
"current-hit-points": {
"enable": "Show current hit points",
"disable": "Hide current hit points",
Expand Down Expand Up @@ -316,11 +324,17 @@
"innatespellcasting(psionics)",
"innatespellcastingpsionics"
],
"RegionalEffectsLocators": [
"regionaleffect",
"regioneffect"
],

"LegActionCost": "Costs {number} Actions",
"LegendaryText": "The {name} can take {number} legendary actions, choosing from the options below. Only one legendary action option can be used at a time and only at the end of another creature's turn. The {name} regains spent legendary actions at the start of its turn.",

"LairActionsHeading": "Lair Actions",
"LairText": "On initiative count 20 (losing all initiative ties), the {name} takes a lair action to cause one of the following effects; the {name} can't use the same effect two rounds in a row:"
"LairText": "On initiative count 20 (losing all initiative ties), the {name} takes a lair action to cause one of the following effects; the {name} can't use the same effect two rounds in a row:",

"RegionHeading" : "Regional Effects"
}
}
16 changes: 15 additions & 1 deletion lang/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,14 @@
"hint": "Affiche les actions d'antre par défaut (pas incluses dans les stat-blocks des monstres)."
}
},
"show-region-actions": {
"enable": "Afficher les effets de région",
"disable": "Masquer les effets de région",
"settings": {
"name": "Afficher les effets de région",
"hint": "Par défaut, affiche les effets de région (qui ne sont normalement pas inclus dans les blocs de statistiques du 5e monstre)."
}
},
"current-hit-points": {
"enable": "Afficher les points de vie actuels",
"disable": "Cacher les points de vie actuels",
Expand Down Expand Up @@ -324,11 +332,17 @@
"incantationinnée(psionique)",
"incantationinnéepsionique"
],
"RegionalEffectsLocators": [
"effetrégional",
"effetderégion"
],

"LegActionCost": "Coûte {number} Actions",
"LegendaryText": "Le {name} peut effectuer {number} actions légendaires, en choisissant parmi les options suivantes. Une seule action légendaire peut être utilisée à la fois, et seulement à la fin du tour d'une autre créature. Le {name} récupère les actions légendaires dépensées au début de son tour.",

"LairActionsHeading": "Actions d'antre",
"LairText": "À 20 lors du décompte d'initiative (sachant qu'il perd en cas d'égalité), le {name} peut effectuer une de ses actions d'antre. Il ne peut pas le faire tant qu'il est neutralisé ou incapable d'agir d'une façon ou d'une autre. S'il est surpris lors d'un combat, il ne peut pas l'effectuer avant la fin de son premier tour de jeu."
"LairText": "À 20 lors du décompte d'initiative (sachant qu'il perd en cas d'égalité), le {name} peut effectuer une de ses actions d'antre. Il ne peut pas le faire tant qu'il est neutralisé ou incapable d'agir d'une façon ou d'une autre. S'il est surpris lors d'un combat, il ne peut pas l'effectuer avant la fin de son premier tour de jeu.",

"RegionHeading" : "Effets de région"
}
}
16 changes: 15 additions & 1 deletion lang/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,14 @@
"hint": "住処アクションを表示する。"
}
},
"show-region-actions": {
"enable": "地域の効果を表示する",
"disable": "リージョンエフェクトを非表示",
"settings": {
"name": "地域の効果を表示する",
"hint": "デフォルトでは、RegionEffectsを表示します。"
}
},
"current-hit-points": {
"enable": "現在HPを表示",
"disable": "現在HPを非表示",
Expand Down Expand Up @@ -320,11 +328,17 @@
"生得呪文(サイオニック)",
"生得呪文(サイオニック)"
],
"RegionalEffectsLocators": [
"地域効果",
"リージョンエフェクト"
],

"LegActionCost": "{number}伝説的アクション消費",
"LegendaryText": "{name}は以下の伝説的アクションを合計3回行なうことができる。1度に使用できる伝説的アクションはいずれか1つだけであり、行なえるのは他のクリーチヤーのターンの終了時である。{name} は消費した伝説的アクションの回数を自身のターンの開始時に回復する。",

"LairActionsHeading": "住処アクション",
"LairText": "イニシアチブ20の時点で(同値の場合は常に後)、この{name}は住処アクションを行ない、以下のうち任意の1つの効果を生み出せる。同一の効果を2ラウンド連続で使用することはできない。"
"LairText": "イニシアチブ20の時点で(同値の場合は常に後)、この{name}は住処アクションを行ない、以下のうち任意の1つの効果を生み出せる。同一の効果を2ラウンド連続で使用することはできない。",

"RegionHeading" : "地域効果"
}
}
16 changes: 15 additions & 1 deletion lang/pt-BR.json
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,14 @@
"hint": "Por padrão, mostrar Ações de Covil (não incluídas nos blocos de criaturas do livro)."
}
},
"show-region-actions": {
"enable": "Mostrar efeitos de região",
"disable": "Ocultar efeitos de região",
"settings": {
"name": "Mostrar efeitos de região",
"hint": "Por padrão, mostre os efeitos da região (não incluídas nos blocos de criaturas do livro)."
}
},
"current-hit-points": {
"enable": "Mostrar Pontos de Vida atuais",
"disable": "Esconder Pontos de Vida atuais",
Expand Down Expand Up @@ -330,11 +338,17 @@
"conjuraçãoinata(psiônico)",
"conjuraçãoinatapsiônico"
],
"RegionalEffectsLocators": [
"efeito regional",
"efeito de região"
],

"LegActionCost": "Custa {number} Ações",
"LegendaryText": "O(a) {name} pode executar {number} ações lendárias, escolhendo entre as opções abaixo. Apenas uma opção de ação lendária pode ser usada por vez, e apenas no final do turno de outro criatura. O(a) {name} recupera as ações lendárias gastas no começo do turno dele.",

"LairActionsHeading": "Ações de Covil",
"LairText": "Na contagem de iniciativa 20 (interrompendo a sequência de iniciativa), o(a) {name} executa uma ação de covil para causar um dos efeitos a seguir; o(a) {name} não pode usar o mesmo efeito em duas rodadas seguidas:"
"LairText": "Na contagem de iniciativa 20 (interrompendo a sequência de iniciativa), o(a) {name} executa uma ação de covil para causar um dos efeitos a seguir; o(a) {name} não pode usar o mesmo efeito em duas rodadas seguidas:",

"RegionHeading" : "Efeitos da região"
}
}
2 changes: 2 additions & 0 deletions scripts/dnd5e/ActionPreper.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,13 @@ export default class ActionPreper extends ItemPreper {
multiAttack: MonsterBlock5e.isMultiAttack(data),
legendary: MonsterBlock5e.isLegendaryAction(data),
lair: MonsterBlock5e.isLairAction(data),
region: MonsterBlock5e.isRegionEffect(data),
legResist: MonsterBlock5e.isLegendaryResistance(data),
bonusAction: MonsterBlock5e.isBonusAction(data),
reaction: MonsterBlock5e.isReaction(data)
};
is.specialAction = this.isSpecialAction(is);
is.noName = is.region || is.lair;

return is;
}
Expand Down
1 change: 1 addition & 0 deletions scripts/dnd5e/Flags5e.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ export default class Flags5e extends Flags {
"current-hit-points" : { type: Boolean, default: true },
"maximum-hit-points" : { type: Boolean, default: true },
"show-lair-actions" : { type: Boolean, default: false },
"show-region-actions": { type: Boolean, default: false },
"show-not-prof" : { type: Boolean, default: false },
"show-resources" : { type: Boolean, default: true },
"show-skill-save" : { type: Boolean, default: true },
Expand Down
1 change: 1 addition & 0 deletions scripts/dnd5e/ItemPrep.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ export default class ItemPrep {
legResist: { prep: ItemPreper, filter: MonsterBlock5e.isLegendaryResistance, items: [], dataset: {type: "feat"} },
legendary: { prep: ActionPreper, filter: MonsterBlock5e.isLegendaryAction, items: [], dataset: {type: "feat"} },
lair: { prep: ActionPreper, filter: MonsterBlock5e.isLairAction, items: [], dataset: {type: "feat"} },
region: { prep: ActionPreper, filter: MonsterBlock5e.isRegionEffect, items: [], dataset: {type: "feat"} },
multiattack: { prep: ActionPreper, filter: MonsterBlock5e.isMultiAttack, items: [], dataset: {type: "feat"} },
casting: { prep: CastingPreper, filter: CastingPreper.isCasting.bind(CastingPreper), items: [], dataset: {type: "feat"} },
reaction: { prep: ActionPreper, filter: MonsterBlock5e.isReaction, items: [], dataset: {type: "feat"} },
Expand Down
12 changes: 11 additions & 1 deletion scripts/dnd5e/MonsterBlock5e.js
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ export default class MonsterBlock5e extends ActorSheet5eNPC {
hasCastingFeature: Boolean(data.features.casting.items.length),
hasLegendaryActions: Boolean(data.features.legendary.items.length),
hasLair: Boolean(data.features.lair.items.length),
hasRegion: Boolean(data.features.region.items.length),
hasActions: Boolean(data.features.attacks.items.length || data.features.actions.items.length || data.features.multiattack.items.length),
hasBonusActions: Boolean(data.features.bonusActions.items.length),
hasReactions: Boolean(data.features.reaction.items.length),
Expand Down Expand Up @@ -430,6 +431,11 @@ export default class MonsterBlock5e extends ActorSheet5eNPC {
return this.constructor.isLairAction(item)
});
}
hasRegion() {
return this.actor.data.items.some((item) => {
return this.constructor.isRegionEffect(item);
});
}
hasLegendaryActions() {
return this.actor.data.items.some((item) => {
return this.constructor.isLegendaryAction(item)
Expand Down Expand Up @@ -1175,6 +1181,11 @@ export default class MonsterBlock5e extends ActorSheet5eNPC {
return item.data?.activation?.type === "lair";
}

static isRegionEffect(item) {
let name = item.name.toLowerCase().replace(/\s+/g, "");
return getTranslationArray("MOBLOKS5E.RegionalEffectsLocators").some(loc => name.includes(loc));
}

static isAction(item) {
return item.data?.activation?.type && item.data?.activation.type != "none";
}
Expand All @@ -1186,7 +1197,6 @@ export default class MonsterBlock5e extends ActorSheet5eNPC {
static isReaction(item) {
return item.data?.activation?.type === "reaction";
}


static getItemAbility(item, actor, master) {
return master.object.items.get(item._id).abilityMod;
Expand Down
7 changes: 7 additions & 0 deletions templates/dnd5e/main.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,13 @@
{{> "modules/monsterblock/templates/dnd5e/parts/main/lairActs.hbs"}}
{{/if}}

{{! Regional Effects }}
{{#if (and flags.show-region-actions info.hasRegion)}}
{{#> "modules/monsterblock/templates/dnd5e/collapsibleSection.hbs" title="MOBLOKS5E.RegionHeading" section="region"}}
{{> "modules/monsterblock/templates/dnd5e/parts/featureBlock.hbs" item=features.region.items.[0]}}
{{/"modules/monsterblock/templates/dnd5e/collapsibleSection.hbs"}}
{{/if}}

{{! Loot Items }}
{{#if info.hasLoot}}
{{#> "modules/monsterblock/templates/dnd5e/collapsibleSection.hbs" title="DND5E.Inventory" section="inventory"}}
Expand Down
2 changes: 1 addition & 1 deletion templates/dnd5e/parts/featureBlock.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<i class="fa fa-trash"></i>
</a>
{{/if}}
{{#unless lairactions}}
{{#unless item.is.noName}}
<span class="item-name" data-item-id="{{item._id}}">
{{~item.name~}}
</span>
Expand Down
3 changes: 3 additions & 0 deletions templates/dnd5e/switches.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@
{{#if info.hasLair}}
{{> "modules/monsterblock/templates/dnd5e/parts/switch.hbs" control="show-lair-actions"}}
{{/if}}
{{#if info.hasRegion}}
{{> "modules/monsterblock/templates/dnd5e/parts/switch.hbs" control="show-region-actions"}}
{{/if}}
{{> "modules/monsterblock/templates/dnd5e/parts/switch.hbs" control="show-bio"}}
{{> "modules/monsterblock/templates/dnd5e/parts/trigger.hbs"
control="resetDefaults"
Expand Down