Skip to content

Commit

Permalink
fix race restriction for classes and update SRD classes
Browse files Browse the repository at this point in the history
  • Loading branch information
guilhermemir committed Sep 19, 2024
1 parent 8d62654 commit 7632375
Show file tree
Hide file tree
Showing 11 changed files with 43 additions and 25 deletions.
1 change: 1 addition & 0 deletions src/lang/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@
"armors": "Armaduras",
"magic_items": "Itens Mágicos"
},
"race_restrictions": "Restrições de Raça",
"on_level": {
"3": "3",
"6": "6",
Expand Down
1 change: 1 addition & 0 deletions src/lang/pt-BR.json
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@
"armors": "Armaduras",
"magic_items": "Itens Mágicos"
},
"race_restrictions": "Restrições de Raça",
"on_level": {
"3": "3",
"6": "6",
Expand Down
49 changes: 24 additions & 25 deletions src/module/sheets/OD2CharacterSheet.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,16 +80,23 @@ export default class OD2CharacterSheet extends ActorSheet {
}

const raceName = this.actor.system.race.name;
const className = item.name;
const raceClassRestrictions = {
'Anão Aventureiro': 'Anão',
'Elfo Aventureiro': 'Elfo',
'Halfling Aventureiro': 'Halfling',
};

if (raceClassRestrictions[className] && raceClassRestrictions[className] !== raceName) {
let classRestrictions = item.system.restrictions.races;

// Dividir a string de raças em um array de raças individuais
if (classRestrictions.length > 0 && typeof classRestrictions[0] === 'string') {
classRestrictions = classRestrictions[0].split(',').map((race) => race.trim());
}

// Verificar se classRestrictions contém apenas uma string vazia e tratá-la como um array vazio
if (classRestrictions.length === 1 && classRestrictions[0] === '') {
classRestrictions = [];
}

if (classRestrictions.length > 0 && !classRestrictions.includes(raceName)) {
ui.notifications.error(
`Para vincular a classe ${className}, o personagem deve ser da raça: ${raceClassRestrictions[className]}.`,
`Para vincular a classe ${
item.name
}, o personagem deve ser de uma das seguintes raças: ${classRestrictions.join(', ')}.`,
);
return;
}
Expand Down Expand Up @@ -586,23 +593,15 @@ export default class OD2CharacterSheet extends ActorSheet {

if (itemType === 'race') {
const characterClass = this.actor.system.class;
const restrictedClasses = {
'Anão Aventureiro': 'Anão',
'Elfo Aventureiro': 'Elfo',
'Halfling Aventureiro': 'Halfling',
};

if (
characterClass &&
restrictedClasses[characterClass.name] &&
restrictedClasses[characterClass.name] === itemName
) {
ui.notifications.error(
`Não é possível excluir a raça ${itemName} enquanto a classe ${characterClass.name} estiver vinculada ao personagem.`,
);
return;
if (characterClass) {
const classRestrictions = characterClass.system.restrictions.races;
if (classRestrictions.length > 0 && classRestrictions.includes(itemName)) {
ui.notifications.error(
`Não é possível excluir a raça ${itemName} enquanto a classe ${characterClass.name} estiver vinculada ao personagem.`,
);
return;
}
}

confirmationTemplate = raceTemplate;
} else if (itemType === 'class') {
confirmationTemplate = classTemplate;
Expand Down
Empty file.
Binary file added src/packs/classes/000014.ldb
Binary file not shown.
Binary file added src/packs/classes/000017.log
Binary file not shown.
Binary file added src/packs/classes/MANIFEST-000016
Binary file not shown.
File renamed without changes.
Binary file added src/packs/classes/lost/MANIFEST-000008
Binary file not shown.
12 changes: 12 additions & 0 deletions src/styles/class-tab-features.less
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,18 @@
}
}

.race-restrictions {
margin-bottom: 5px;

input {
padding: 5px;
background-color: white;
border: none;
border-radius: 0.25rem;
font-family: 'Alegreya', serif;
}
}

.levels {
display: flex;
flex-direction: column;
Expand Down
5 changes: 5 additions & 0 deletions src/templates/partials/tabs/class-tab-features.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@
<label class="font-bold">{{localize "olddragon2e.class_ability.equipment_restrictions.magic_items"}}</label>
<textarea name="system.equipment_restrictions.magic_items" data-dtype="String" >{{system.equipment_restrictions.magic_items}}</textarea>
</div>
{{!-- Restrições de Raça --}}
<div class="race-restrictions">
<label><strong>{{localize "olddragon2e.class_ability.race_restrictions"}}</strong> (Exemplo: Anão, Elfo, Halfling)</label>
<input name="system.restrictions.races" type="text" value="{{system.restrictions.races}}" data-dtype="Array">
</div>
{{!-- Níveis --}}
<div class="levels">
{{#each system.levels as |level key|}}
Expand Down

0 comments on commit 7632375

Please sign in to comment.