Merge branch '015-spells' into 'master'
Resolve "Track Spells in character sheet" Closes #15 See merge request dungeonslayers/ds4!44
This commit is contained in:
commit
0771bf7ce8
25 changed files with 434 additions and 51 deletions
|
@ -1,12 +1,15 @@
|
|||
{
|
||||
"DS4.UserInteractionAddItem": "Neu",
|
||||
"DS4.UserInteractionEditItem": "Bearbeiten",
|
||||
"DS4.UserInteractionDeleteItem": "Löschen",
|
||||
"DS4.NotOwned": "Nicht besessen",
|
||||
"DS4.HeadingDescription": "Beschreibung",
|
||||
"DS4.HeadingBiography": "Biografie",
|
||||
"DS4.HeadingDetails": "Details",
|
||||
"DS4.HeadingEffects": "Effekte",
|
||||
"DS4.HeadingInventory": "Inventar",
|
||||
"DS4.HeadingProfile": "Profil",
|
||||
"DS4.HeadingTalents": "Talente & Fähigkeiten",
|
||||
"DS4.HeadingSpells": "Zaubersprüche",
|
||||
"DS4.AttackType": "Angriffs Typ",
|
||||
"DS4.AttackTypeAbbr": "AT",
|
||||
"DS4.WeaponBonus": "Waffen Bonus",
|
||||
|
@ -16,11 +19,13 @@
|
|||
"DS4.AttackTypeMelee": "Schlagen",
|
||||
"DS4.AttackTypeRanged": "Schießen",
|
||||
"DS4.AttackTypeMeleeRanged": "Schlagen + Schießen",
|
||||
"DS4.Description": "Beschreibung",
|
||||
"DS4.Quantity": "Menge",
|
||||
"DS4.PriceGold": "Preis (Gold)",
|
||||
"DS4.StorageLocation": "Wo gelagert",
|
||||
"DS4.ItemEquipped": "Ausgerüstet",
|
||||
"DS4.ItemOwner": "Eigentümer",
|
||||
"DS4.ItemEquippedAbbr": "A",
|
||||
"DS4.ItemOwner": "Besitzer",
|
||||
"DS4.ItemAvailability": "Verfügbarkeit",
|
||||
"DS4.ItemAvailabilityHamlet": "Dorf",
|
||||
"DS4.ItemAvailabilityVilage": "Kleinstadt",
|
||||
|
@ -36,6 +41,8 @@
|
|||
"DS4.ItemTypeArmorPlural": "Panzerungen",
|
||||
"DS4.ItemTypeShield": "Schild",
|
||||
"DS4.ItemTypeShieldPlural": "Schilde",
|
||||
"DS4.ItemTypeSpell": "Zauberspruch",
|
||||
"DS4.ItemTypeSpellPlural": "Zaubersprüche",
|
||||
"DS4.ItemTypeTrinket": "Schmuckstück",
|
||||
"DS4.ItemTypeTrinketPlural": "Schmuckstücke",
|
||||
"DS4.ItemTypeEquipment": "Ausrüstung",
|
||||
|
@ -72,6 +79,25 @@
|
|||
"DS4.ArmorMaterialTypeChainAbbr": "Ketten",
|
||||
"DS4.ArmorMaterialTypePlate": "Platten",
|
||||
"DS4.ArmorMaterialTypePlateAbbr": "Platten",
|
||||
"DS4.SpellType": "Zauberspruchtyp",
|
||||
"DS4.SpellTypeAbbr": "T",
|
||||
"DS4.SpellTypeSpellcasting": "Zaubern",
|
||||
"DS4.SpellTypeTargetedSpellcasting": "Zielzaubern",
|
||||
"DS4.SpellCategory": "Kategorie",
|
||||
"DS4.SpellCategoryHealing": "Heilung",
|
||||
"DS4.SpellCategoryFire": "Feuer",
|
||||
"DS4.SpellCategoryIce": "Eis",
|
||||
"DS4.SpellCategoryLight": "Licht",
|
||||
"DS4.SpellCategoryDarkness": "Schatten",
|
||||
"DS4.SpellCategoryMindAffecting": "Geistensbeeinflussend",
|
||||
"DS4.SpellCategoryElectricity": "Elektrizität",
|
||||
"DS4.SpellBonus": "Zauberbonus",
|
||||
"DS4.SpellBonusAbbr": "ZB",
|
||||
"DS4.SpellMaxDistance": "Reichweite",
|
||||
"DS4.SpellEffectRadius": "Effektradius",
|
||||
"DS4.SpellDuration": "Wirkdauer",
|
||||
"DS4.SpellCooldownDuration": "Abklingzeit",
|
||||
"DS4.SpellScrollPriceGold": "Schriftrollenpreis (Gold)",
|
||||
"DS4.AttributeBody": "Körper",
|
||||
"DS4.AttributeMobility": "Agilität",
|
||||
"DS4.AttributeMind": "Geist",
|
||||
|
@ -115,5 +141,19 @@
|
|||
"DS4.ProfileSpecialCharacteristics": "Besondere Eigenschaften",
|
||||
"DS4.WarningManageActiveEffectOnOwnedItem": "Das Verwalten von aktiven Effekten innerhalb eines besessen Items wird derzeit nicht unterstützt und wird in einem nachfolgenden Update hinzugefügt.",
|
||||
"DS4.ErrorDiceCritOverlap": "Es gibt eine Überlappung zwischen Patzern und Immersiegen.",
|
||||
"DS4.ErrorExplodingRecursionLimitExceeded": "Die maximale Rekursionstiefe für slayende Würfelwürfe wurde überschritten."
|
||||
"DS4.ErrorExplodingRecursionLimitExceeded": "Die maximale Rekursionstiefe für slayende Würfelwürfe wurde überschritten.",
|
||||
"DS4.UnitRounds": "Runden",
|
||||
"DS4.UnitRoundsAbbr": "Rnd",
|
||||
"DS4.UnitMinutes": "Minuten",
|
||||
"DS4.UnitMinutesAbbr": "min",
|
||||
"DS4.UnitHours": "Stunden",
|
||||
"DS4.UnitHoursAbbr": "h",
|
||||
"DS4.UnitDays": "Tage",
|
||||
"DS4.UnitDaysAbbr": "d",
|
||||
"DS4.UnitMeters": "Meter",
|
||||
"DS4.UnitMetersAbbr": "m",
|
||||
"DS4.UnitKilometers": "Kilometer",
|
||||
"DS4.UnitKilometersAbbr": "km",
|
||||
"DS4.UnitCustom": "individuell",
|
||||
"DS4.UnitCustomAbbr": " "
|
||||
}
|
||||
|
|
|
@ -1,12 +1,15 @@
|
|||
{
|
||||
"DS4.UserInteractionAddItem": "Add item",
|
||||
"DS4.UserInteractionEditItem": "Edit item",
|
||||
"DS4.UserInteractionDeleteItem": "Delete item",
|
||||
"DS4.NotOwned": "No owner",
|
||||
"DS4.HeadingDescription": "Description",
|
||||
"DS4.HeadingBiography": "Biography",
|
||||
"DS4.HeadingDetails": "Details",
|
||||
"DS4.HeadingEffects": "Effects",
|
||||
"DS4.HeadingInventory": "Inventory",
|
||||
"DS4.HeadingProfile": "Profile",
|
||||
"DS4.HeadingTalents": "Talents & Abilities",
|
||||
"DS4.HeadingSpells": "Spells",
|
||||
"DS4.AttackType": "Attack Type",
|
||||
"DS4.AttackTypeAbbr": "AT",
|
||||
"DS4.WeaponBonus": "Weapon Bonus",
|
||||
|
@ -16,10 +19,12 @@
|
|||
"DS4.AttackTypeMelee": "Melee",
|
||||
"DS4.AttackTypeRanged": "Ranged",
|
||||
"DS4.AttackTypeMeleeRanged": "Melee / Ranged",
|
||||
"DS4.Description": "Description",
|
||||
"DS4.Quantity": "Quantity",
|
||||
"DS4.PriceGold": "Price (Gold)",
|
||||
"DS4.StorageLocation": "Stored at",
|
||||
"DS4.ItemEquipped": "Equipped",
|
||||
"DS4.ItemEquippedAbbr": "E",
|
||||
"DS4.ItemOwner": "Owner",
|
||||
"DS4.ItemAvailability": "Availability",
|
||||
"DS4.ItemAvailabilityHamlet": "Hamlet",
|
||||
|
@ -36,6 +41,8 @@
|
|||
"DS4.ItemTypeArmorPlural": "Armor",
|
||||
"DS4.ItemTypeShield": "Shield",
|
||||
"DS4.ItemTypeShieldPlural": "Shields",
|
||||
"DS4.ItemTypeSpell": "Spell",
|
||||
"DS4.ItemTypeSpellPlural": "Spells",
|
||||
"DS4.ItemTypeTrinket": "Trinket",
|
||||
"DS4.ItemTypeTrinketPlural": "Trinkets",
|
||||
"DS4.ItemTypeEquipment": "Equipment",
|
||||
|
@ -72,6 +79,25 @@
|
|||
"DS4.ArmorMaterialTypeChainAbbr": "Chain",
|
||||
"DS4.ArmorMaterialTypePlate": "Plate",
|
||||
"DS4.ArmorMaterialTypePlateAbbr": "Plate",
|
||||
"DS4.SpellType": "Spell Type",
|
||||
"DS4.SpellTypeAbbr": "T",
|
||||
"DS4.SpellTypeSpellcasting": "Spellcasting",
|
||||
"DS4.SpellTypeTargetedSpellcasting": "Targeted Spellcasting",
|
||||
"DS4.SpellCategory": "Category",
|
||||
"DS4.SpellCategoryHealing": "Healing",
|
||||
"DS4.SpellCategoryFire": "Fire",
|
||||
"DS4.SpellCategoryIce": "Ice",
|
||||
"DS4.SpellCategoryLight": "Light",
|
||||
"DS4.SpellCategoryDarkness": "Darkness",
|
||||
"DS4.SpellCategoryMindAffecting": "Mind Affecting",
|
||||
"DS4.SpellCategoryElectricity": "Electricity",
|
||||
"DS4.SpellBonus": "Spell Bonus",
|
||||
"DS4.SpellBonusAbbr": "SB",
|
||||
"DS4.SpellMaxDistance": "Range",
|
||||
"DS4.SpellEffectRadius": "Radius",
|
||||
"DS4.SpellDuration": "Duration",
|
||||
"DS4.SpellCooldownDuration": "Cooldown",
|
||||
"DS4.SpellScrollPriceGold": "Scroll Price (Gold)",
|
||||
"DS4.AttributeBody": "Body",
|
||||
"DS4.AttributeMobility": "Mobility",
|
||||
"DS4.AttributeMind": "Mind",
|
||||
|
@ -115,5 +141,19 @@
|
|||
"DS4.ProfileSpecialCharacteristics": "Special Characteristics",
|
||||
"DS4.WarningManageActiveEffectOnOwnedItem": "Managing Active Effects within an Owned Item is not currently supported and will be added in a subsequent update.",
|
||||
"DS4.ErrorDiceCritOverlap": "There's an overlap between Fumbles and Coups",
|
||||
"DS4.ErrorExplodingRecursionLimitExceeded": "Maximum recursion depth for exploding dice roll exceeded"
|
||||
"DS4.ErrorExplodingRecursionLimitExceeded": "Maximum recursion depth for exploding dice roll exceeded",
|
||||
"DS4.UnitRounds": "Rounds",
|
||||
"DS4.UnitRoundsAbbr": "rnd",
|
||||
"DS4.UnitMinutes": "Minutes",
|
||||
"DS4.UnitMinutesAbbr": "min",
|
||||
"DS4.UnitHours": "Hours",
|
||||
"DS4.UnitHoursAbbr": "h",
|
||||
"DS4.UnitDays": "Days",
|
||||
"DS4.UnitDaysAbbr": "d",
|
||||
"DS4.UnitMeters": "Meters",
|
||||
"DS4.UnitMetersAbbr": "m",
|
||||
"DS4.UnitKilometers": "Kilometers",
|
||||
"DS4.UnitKilometersAbbr": "km",
|
||||
"DS4.UnitCustom": "Custom Unit",
|
||||
"DS4.UnitCustomAbbr": " "
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ export class DS4ActorSheet extends ActorSheet<DS4ActorDataType, DS4Actor, DS4Ite
|
|||
template: "systems/ds4/templates/actor/actor-sheet.hbs",
|
||||
width: 745,
|
||||
height: 600,
|
||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }],
|
||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "inventory" }],
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -26,6 +26,14 @@ export const DS4 = {
|
|||
ranged: "systems/ds4/assets/official/DS4-RAT.png",
|
||||
},
|
||||
|
||||
/**
|
||||
* Define the file paths to icon images
|
||||
*/
|
||||
spellTypesIcons: {
|
||||
spellcasting: "systems/ds4/assets/official/DS4-SPC.png",
|
||||
targetedSpellcasting: "systems/ds4/assets/official/DS4-TSC.png",
|
||||
},
|
||||
|
||||
/**
|
||||
* Define the set of item availabilties
|
||||
*/
|
||||
|
@ -46,6 +54,7 @@ export const DS4 = {
|
|||
weapon: "DS4.ItemTypeWeapon",
|
||||
armor: "DS4.ItemTypeArmor",
|
||||
shield: "DS4.ItemTypeShield",
|
||||
spell: "DS4.ItemTypeSpell",
|
||||
trinket: "DS4.ItemTypeTrinket",
|
||||
equipment: "DS4.ItemTypeEquipment",
|
||||
talent: "DS4.ItemTypeTalent",
|
||||
|
@ -96,6 +105,21 @@ export const DS4 = {
|
|||
plate: "DS4.ArmorMaterialTypePlateAbbr",
|
||||
},
|
||||
|
||||
spellTypes: {
|
||||
spellcasting: "DS4.SpellTypeSpellcasting",
|
||||
targetedSpellcasting: "DS4.SpellTypeTargetedSpellcasting",
|
||||
},
|
||||
|
||||
spellCategories: {
|
||||
healing: "DS4.SpellCategoryHealing",
|
||||
fire: "DS4.SpellCategoryFire",
|
||||
ice: "DS4.SpellCategoryIce",
|
||||
light: "DS4.SpellCategoryLight",
|
||||
darkness: "DS4.SpellCategoryDarkness",
|
||||
mindAffecting: "DS4.SpellCategoryMindAffecting",
|
||||
electricity: "DS4.SpellCategoryElectricity",
|
||||
},
|
||||
|
||||
/**
|
||||
* Define the set of attributes a character has
|
||||
*/
|
||||
|
@ -188,4 +212,43 @@ export const DS4 = {
|
|||
eyeColor: "String",
|
||||
specialCharacteristics: "String",
|
||||
},
|
||||
|
||||
/**
|
||||
* Define translations for available distance units
|
||||
*/
|
||||
distanceUnits: {
|
||||
meter: "DS4.UnitMeters",
|
||||
kilometer: "DS4.UnitKilometers",
|
||||
custom: "DS4.UnitCustom",
|
||||
},
|
||||
/**
|
||||
* Define abbreviations for available distance units
|
||||
*/
|
||||
distanceUnitsAbbr: {
|
||||
meter: "DS4.UnitMetersAbbr",
|
||||
kilometer: "DS4.UnitKilometersAbbr",
|
||||
custom: "DS4.UnitCustomAbbr",
|
||||
},
|
||||
|
||||
/**
|
||||
* Define translations for available distance units
|
||||
*/
|
||||
temporalUnits: {
|
||||
rounds: "DS4.UnitRounds",
|
||||
minutes: "DS4.UnitMinutes",
|
||||
hours: "DS4.UnitHours",
|
||||
days: "DS4.UnitDays",
|
||||
custom: "DS4.UnitCustom",
|
||||
},
|
||||
|
||||
/**
|
||||
* Define abbreviations for available units
|
||||
*/
|
||||
temporalUnitsAbbr: {
|
||||
rounds: "DS4.UnitRoundsAbbr",
|
||||
minutes: "DS4.UnitMinutesAbbr",
|
||||
hours: "DS4.UnitHoursAbbr",
|
||||
days: "DS4.UnitDaysAbbr",
|
||||
custom: "DS4.UnitCustomAbbr",
|
||||
},
|
||||
};
|
||||
|
|
|
@ -48,6 +48,7 @@ async function registerHandlebarsPartials() {
|
|||
"systems/ds4/templates/item/partials/body.hbs",
|
||||
"systems/ds4/templates/actor/partials/items-overview.hbs",
|
||||
"systems/ds4/templates/actor/partials/talents-overview.hbs",
|
||||
"systems/ds4/templates/actor/partials/spells-overview.hbs",
|
||||
"systems/ds4/templates/actor/partials/overview-add-button.hbs",
|
||||
"systems/ds4/templates/actor/partials/overview-control-buttons.hbs",
|
||||
"systems/ds4/templates/actor/partials/attributes-traits.hbs",
|
||||
|
@ -76,6 +77,8 @@ Hooks.once("setup", function () {
|
|||
"armorMaterialTypes",
|
||||
"armorMaterialTypesAbbr",
|
||||
"armorMaterialTypes",
|
||||
"spellTypes",
|
||||
"spellCategories",
|
||||
"attributes",
|
||||
"traits",
|
||||
"combatValues",
|
||||
|
@ -83,6 +86,10 @@ Hooks.once("setup", function () {
|
|||
"progression",
|
||||
"language",
|
||||
"profile",
|
||||
"temporalUnits",
|
||||
"temporalUnitsAbbr",
|
||||
"distanceUnits",
|
||||
"distanceUnitsAbbr",
|
||||
];
|
||||
|
||||
// Exclude some from sorting where the default order matters
|
||||
|
|
|
@ -4,6 +4,7 @@ export type DS4ItemDataType =
|
|||
| DS4Weapon
|
||||
| DS4Armor
|
||||
| DS4Shield
|
||||
| DS4Spell
|
||||
| DS4Trinket
|
||||
| DS4Equipment
|
||||
| DS4Talent
|
||||
|
@ -32,6 +33,26 @@ interface DS4TalentRank extends ModifiableData<number> {
|
|||
max: number;
|
||||
}
|
||||
|
||||
interface DS4Spell extends DS4ItemBase, DS4ItemEquipable {
|
||||
spellType: "spellcasting" | "targetedSpellcasting";
|
||||
bonus: string;
|
||||
spellCategory:
|
||||
| "healing"
|
||||
| "fire"
|
||||
| "ice"
|
||||
| "light"
|
||||
| "darkness"
|
||||
| "mindAffecting"
|
||||
| "electricity"
|
||||
| "none"
|
||||
| "unset";
|
||||
maxDistance: UnitData<DistanceUnit>;
|
||||
effectRadius: UnitData<DistanceUnit>;
|
||||
duration: UnitData<TemporalUnit>;
|
||||
cooldownDuration: UnitData<TemporalUnit>;
|
||||
scrollPrice: number;
|
||||
}
|
||||
|
||||
interface DS4Shield extends DS4ItemBase, DS4ItemPhysical, DS4ItemEquipable, DS4ItemProtective {}
|
||||
interface DS4Trinket extends DS4ItemBase, DS4ItemPhysical, DS4ItemEquipable {}
|
||||
interface DS4Equipment extends DS4ItemBase, DS4ItemPhysical {}
|
||||
|
@ -62,3 +83,10 @@ interface DS4ItemEquipable {
|
|||
interface DS4ItemProtective {
|
||||
armorValue: number;
|
||||
}
|
||||
|
||||
interface UnitData<UnitType> {
|
||||
value: string;
|
||||
unit: UnitType;
|
||||
}
|
||||
type TemporalUnit = "rounds" | "minutes" | "hours" | "days" | "custom";
|
||||
type DistanceUnit = "meter" | "kilometer" | "custom";
|
||||
|
|
|
@ -9,12 +9,13 @@
|
|||
.side-property {
|
||||
margin: 2px 0;
|
||||
display: grid;
|
||||
grid-template-columns: minmax(30%, auto) auto;
|
||||
grid-template-columns: 40% auto;
|
||||
justify-content: left;
|
||||
|
||||
label {
|
||||
line-height: $default-input-height;
|
||||
font-weight: bold;
|
||||
padding-right: 3pt;
|
||||
}
|
||||
|
||||
input,
|
||||
|
@ -30,6 +31,17 @@
|
|||
height: 100%;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.unit-data-pair {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
select {
|
||||
width: 4em;
|
||||
}
|
||||
input {
|
||||
max-width: 7em;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -115,6 +115,7 @@
|
|||
"weapon",
|
||||
"armor",
|
||||
"shield",
|
||||
"spell",
|
||||
"trinket",
|
||||
"equipment",
|
||||
"talent",
|
||||
|
@ -175,6 +176,29 @@
|
|||
},
|
||||
"alphabet": {
|
||||
"templates": ["base"]
|
||||
},
|
||||
"spell": {
|
||||
"templates": ["base", "equipable"],
|
||||
"spellType": "spellcasting",
|
||||
"bonus": "",
|
||||
"spellCategory": "unset",
|
||||
"maxDistance": {
|
||||
"value": "",
|
||||
"unit": "meter"
|
||||
},
|
||||
"effectRadius": {
|
||||
"value": "",
|
||||
"unit": "meter"
|
||||
},
|
||||
"duration": {
|
||||
"value": "",
|
||||
"unit": "custom"
|
||||
},
|
||||
"cooldownDuration": {
|
||||
"value": "",
|
||||
"unit": "custom"
|
||||
},
|
||||
"scrollPrice": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -58,26 +58,30 @@
|
|||
|
||||
{{!-- Sheet Tab Navigation --}}
|
||||
<nav class="sheet-tabs tabs" data-group="primary">
|
||||
<a class="item" data-tab="description">{{localize 'DS4.HeadingDescription'}}</a>
|
||||
<a class="item" data-tab="inventory">{{localize 'DS4.HeadingInventory'}}</a>
|
||||
<a class="item" data-tab="spells">{{localize 'DS4.HeadingSpells'}}</a>
|
||||
<a class="item" data-tab="talents">{{localize 'DS4.HeadingTalents'}}</a>
|
||||
<a class="item" data-tab="profile">{{localize "DS4.HeadingProfile"}}</a>
|
||||
<a class="item" data-tab="inventory">{{localize 'DS4.HeadingInventory'}}</a>
|
||||
<a class="item" data-tab="biography">{{localize 'DS4.HeadingBiography'}}</a>
|
||||
</nav>
|
||||
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
{{!-- Biography Tab --}}
|
||||
<div class="tab biography" data-group="primary" data-tab="description">
|
||||
{{editor content=data.biography target="data.biography" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
{{!-- Items Tab --}}
|
||||
{{> systems/ds4/templates/actor/partials/items-overview.hbs}}
|
||||
|
||||
{{! Profile Tab --}}
|
||||
{{> systems/ds4/templates/actor/partials/profile.hbs}}
|
||||
{{!-- Spells Tab --}}
|
||||
{{> systems/ds4/templates/actor/partials/spells-overview.hbs}}
|
||||
|
||||
{{!-- Talents Tab --}}
|
||||
{{> systems/ds4/templates/actor/partials/talents-overview.hbs}}
|
||||
|
||||
{{!-- Items Tab --}}
|
||||
{{> systems/ds4/templates/actor/partials/items-overview.hbs}}
|
||||
{{! Profile Tab --}}
|
||||
{{> systems/ds4/templates/actor/partials/profile.hbs}}
|
||||
|
||||
{{!-- Biography Tab --}}
|
||||
<div class="tab biography" data-group="primary" data-tab="biography">
|
||||
{{editor content=data.biography target="data.biography" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
</section>
|
||||
</form>
|
|
@ -37,7 +37,7 @@
|
|||
<li class="item flexrow item-header">
|
||||
{{!-- equipped --}}
|
||||
{{#if (ne dataType 'equipment')}}
|
||||
<div class="flex05" title="{{localize 'DS4.ItemEquipped'}}">E</div>
|
||||
<div class="flex05" title="{{localize 'DS4.ItemEquipped'}}">{{localize 'DS4.ItemEquippedAbbr'}}</div>
|
||||
{{/if}}
|
||||
{{!-- image --}}
|
||||
<div class="flex05 item-image"></div>
|
||||
|
@ -48,7 +48,7 @@
|
|||
{{!-- item type specifics --}}
|
||||
{{> @partial-block }}
|
||||
{{!-- description --}}
|
||||
<div class="flex4">{{localize 'DS4.HeadingDescription'}}</div>
|
||||
<div class="flex4">{{localize 'DS4.Description'}}</div>
|
||||
{{!-- add button --}}
|
||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType=dataType }}
|
||||
</li>
|
||||
|
@ -78,10 +78,10 @@
|
|||
</div>
|
||||
{{!-- amount --}}
|
||||
<input class="flex05 item-num-val item-change" type="number" min="0" step="1" value="{{item.data.data.quantity}}" data-dtype="Number"
|
||||
data-property="data.quantity" title="{{localize 'DS4.Quantity'}}">
|
||||
data-property="data.quantity" title="{{localize 'DS4.Quantity'}}" />
|
||||
{{!-- name --}}
|
||||
<input class="flex3 item-name item-change" type="text" value="{{item.name}}" data-dtype="String"
|
||||
data-property="name" title="{{localize 'DS4.ItemName'}}">
|
||||
data-property="name" title="{{localize 'DS4.ItemName'}}" />
|
||||
{{!-- item type specifics --}}
|
||||
{{> @partial-block}}
|
||||
{{!-- description --}}
|
||||
|
|
86
src/templates/actor/partials/spells-overview.hbs
Normal file
86
src/templates/actor/partials/spells-overview.hbs
Normal file
|
@ -0,0 +1,86 @@
|
|||
{{!-- ======================================================================== --}}
|
||||
{{!-- INLINE PARTIAL DEFINITIONS --}}
|
||||
{{!-- ======================================================================== --}}
|
||||
|
||||
|
||||
{{!--
|
||||
!-- Two templates for displaying values with unit.
|
||||
!-- @param unitDatum: the object to display; must have a value and a unit attribute
|
||||
!-- @param localizationString
|
||||
!-- @param config: the config object
|
||||
--}}
|
||||
{{#*inline "temporalUnit"}}
|
||||
<div class="unit-data-pair item-num-val"
|
||||
title="{{localize localizationString}} [{{lookup config.temporalUnits unitDatum.unit}}]" >
|
||||
{{unitDatum.value}}{{lookup config.temporalUnitsAbbr unitDatum.unit}}
|
||||
</div>
|
||||
{{/inline}}
|
||||
|
||||
{{#*inline "distanceUnit"}}
|
||||
<div class="unit-data-pair item-num-val"
|
||||
title="{{localize localizationString}} [{{lookup config.distanceUnits unitDatum.unit}}]" >
|
||||
{{unitDatum.value}}{{lookup config.distanceUnitsAbbr unitDatum.unit}}
|
||||
</div>
|
||||
{{/inline}}
|
||||
|
||||
|
||||
{{!-- ======================================================================== --}}
|
||||
|
||||
|
||||
<div class="tab items" data-group="primary" data-tab="spells">
|
||||
<ol class="items-list">
|
||||
<li class="item flexrow item-header">
|
||||
{{!-- equipped --}}
|
||||
<div class="flex05 item-image" title="{{localize 'DS4.ItemEquipped'}}">{{localize 'DS4.ItemEquippedAbbr'}}</div>
|
||||
{{!-- image --}}
|
||||
<div class="flex05 item-image"></div>
|
||||
{{!-- name --}}
|
||||
<div class="flex2 item-name">{{localize 'DS4.ItemName'}}</div>
|
||||
{{!-- spell type --}}
|
||||
<div class="item-image" title="{{localize 'DS4.SpellType'}}">{{localize 'DS4.SpellTypeAbbr'}}</div>
|
||||
{{!-- spell bonus --}}
|
||||
<div class="item-num-val" title="{{localize 'DS4.SpellBonus'}}">{{localize 'DS4.SpellBonusAbbr'}}</div>
|
||||
{{!-- max. distance --}}
|
||||
<div class="item-num-val" title="{{localize 'DS4.SpellMaxDistance'}}"><i class="fas fa-ruler"></i></div>
|
||||
{{!-- duration --}}
|
||||
<div class="item-num-val" title="{{localize 'DS4.SpellDuration'}}"><i class="far fa-clock"></i></div>
|
||||
{{!-- cooldown duration --}}
|
||||
<div class="item-num-val" title="{{localize 'DS4.SpellCooldownDuration'}}"><i class="fas fa-hourglass-half"></i></div>
|
||||
{{!-- description --}}
|
||||
{{!-- <div class="flex3">{{localize 'DS4.Description'}}</div> --}}
|
||||
{{!-- add button --}}
|
||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType='spell' }}
|
||||
</li>
|
||||
{{#each itemsByType.spell as |item id|}}
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
<input class="flex05 item-image item-change" type="checkbox" {{checked item.data.data.equipped}} data-dtype="Boolean"
|
||||
data-property="data.equipped" title="{{localize 'DS4.ItemEquipped'}}">
|
||||
{{!-- image --}}
|
||||
<div class="flex05 item-image">
|
||||
<img src="{{item.img}}" title="{{item.name}}" width="24" height="24" />
|
||||
</div>
|
||||
{{!-- name --}}
|
||||
<input class="flex2 item-name item-change" type="text" value="{{item.name}}" data-dtype="String"
|
||||
data-property="name" title="{{localize 'DS4.ItemName'}}" />
|
||||
{{!-- spell type --}}
|
||||
<div class="flex05 item-image">
|
||||
<img src="{{lookup ../config.spellTypesIcons item.data.data.spellType}}"
|
||||
title="{{lookup ../config.spellTypes item.data.data.spellType}}" width="24" height="24" />
|
||||
</div>
|
||||
{{!-- spell bonus --}}
|
||||
<input class="item-num-val item-change" type="text" data-dtype="String"
|
||||
data-property="data.bonus" value="{{item.data.data.bonus}}" title="{{localize 'DS4.SpellBonus'}}" />
|
||||
{{!-- max. distance --}}
|
||||
{{> distanceUnit localizationString='DS4.SpellMaxDistance' unitDatum=item.data.data.maxDistance config=../config}}
|
||||
{{!-- duration --}}
|
||||
{{> temporalUnit localizationString='DS4.SpellDuration' unitDatum=item.data.data.duration config=../config}}
|
||||
{{!-- cooldown duration --}}
|
||||
{{> temporalUnit localizationString='DS4.SpellCooldownDuration' unitDatum=item.data.data.cooldownDuration config=../config}}
|
||||
{{!-- description --}}
|
||||
{{!-- <div class="flex3 item-description">{{{item.data.data.description}}}</div> --}}
|
||||
{{!-- control buttons --}}
|
||||
{{> systems/ds4/templates/actor/partials/overview-control-buttons.hbs }}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
</div>
|
|
@ -1,8 +1,6 @@
|
|||
{{!-- ======================================================================== --}}
|
||||
{{!-- INLINE PARTIAL DEFINITIONS --}}
|
||||
{{!-- ======================================================================== --}}
|
||||
{{!-- TODO: remove duplicate add and delete button definition --}}
|
||||
|
||||
|
||||
|
||||
{{!--
|
||||
|
@ -110,7 +108,7 @@
|
|||
{{!-- name --}}
|
||||
<div class="flex1 item-name">{{localize 'DS4.ItemName'}}</div>
|
||||
{{!-- description --}}
|
||||
<div class="flex3">{{localize 'DS4.HeadingDescription'}}</div>
|
||||
<div class="flex3">{{localize 'DS4.Description'}}</div>
|
||||
{{!-- add button --}}
|
||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType=dataType }}
|
||||
</li>
|
||||
|
@ -132,7 +130,7 @@
|
|||
{{!-- rank info --}}
|
||||
<div class="flex3">{{localize 'DS4.TalentRank'}}</div>
|
||||
{{!-- description --}}
|
||||
<div class="flex4">{{localize 'DS4.HeadingDescription'}}</div>
|
||||
<div class="flex4">{{localize 'DS4.Description'}}</div>
|
||||
{{!-- add button --}}
|
||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType='talent' }}
|
||||
</li>
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
{{/systems/ds4/templates/item/partials/sheet-header.hbs}}
|
||||
|
||||
{{!-- Common Item body --}}
|
||||
{{> systems/ds4/templates/item/partials/body.hbs}}
|
||||
{{#> systems/ds4/templates/item/partials/body.hbs}}{{/systems/ds4/templates/item/partials/body.hbs}}
|
||||
|
||||
</form>
|
|
@ -12,7 +12,7 @@
|
|||
</select>
|
||||
</div>
|
||||
<div class="basic-property">
|
||||
<label>{{localize "DS4.ArmorMaterialType"}}</label>
|
||||
<label for="data.armorMaterialType">{{localize "DS4.ArmorMaterialType"}}</label>
|
||||
<select name="data.armorMaterialType" data-type="String">
|
||||
{{#select data.armorMaterialType}}
|
||||
{{#each config.armorMaterialTypes as |value key|}}
|
||||
|
@ -30,5 +30,5 @@
|
|||
{{/systems/ds4/templates/item/partials/sheet-header.hbs}}
|
||||
|
||||
{{!-- Common Item body --}}
|
||||
{{> systems/ds4/templates/item/partials/body.hbs}}
|
||||
{{#> systems/ds4/templates/item/partials/body.hbs}}{{/systems/ds4/templates/item/partials/body.hbs}}
|
||||
</form>
|
|
@ -3,5 +3,5 @@
|
|||
{{/systems/ds4/templates/item/partials/sheet-header.hbs}}
|
||||
|
||||
{{!-- Common Item body --}}
|
||||
{{> systems/ds4/templates/item/partials/body.hbs}}
|
||||
{{#> systems/ds4/templates/item/partials/body.hbs}}{{/systems/ds4/templates/item/partials/body.hbs}}
|
||||
</form>
|
|
@ -3,6 +3,6 @@
|
|||
{{/systems/ds4/templates/item/partials/sheet-header.hbs}}
|
||||
|
||||
{{!-- Common Item body --}}
|
||||
{{> systems/ds4/templates/item/partials/body.hbs}}
|
||||
{{#> systems/ds4/templates/item/partials/body.hbs}}{{/systems/ds4/templates/item/partials/body.hbs}}
|
||||
|
||||
</form>
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
{{!-- Sheet Tab Navigation --}}
|
||||
<nav class="sheet-tabs tabs" data-group="primary">
|
||||
<a class="item" data-tab="description">{{localize "DS4.HeadingDescription"}}</a>
|
||||
<a class="item" data-tab="description">{{localize "DS4.Description"}}</a>
|
||||
<a class="item" data-tab="effects">{{localize "DS4.HeadingEffects"}}</a>
|
||||
{{#if isPhysical}}
|
||||
<a class="item" data-tab="details">{{localize "DS4.HeadingDetails"}}</a>
|
||||
|
@ -13,7 +13,9 @@
|
|||
<section class="sheet-body">
|
||||
|
||||
{{!-- Description Tab --}}
|
||||
{{> systems/ds4/templates/item/partials/description.hbs}}
|
||||
{{#> systems/ds4/templates/item/partials/description.hbs}}
|
||||
{{> @partial-block}}
|
||||
{{/systems/ds4/templates/item/partials/description.hbs}}
|
||||
|
||||
{{!-- Effects Tab --}}
|
||||
{{> systems/ds4/templates/item/partials/effects.hbs}}
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
{{!--
|
||||
Render a description tab.
|
||||
Additional elements of the side-properties div can be handed over via the @partial-block.
|
||||
--}}
|
||||
|
||||
<div class="tab flexrow" data-group="primary" data-tab="description">
|
||||
<div class="side-properties">
|
||||
{{#if isOwned}}
|
||||
|
@ -24,8 +29,9 @@
|
|||
{{else}}
|
||||
<span>{{localize "DS4.NotOwned"}}</span>
|
||||
{{/if}}
|
||||
{{> @partial-block}}
|
||||
</div>
|
||||
<div class="description" title="{{localize 'DS4.HeadingDescription'}}">
|
||||
<div class="description" title="{{localize 'DS4.Description'}}">
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
</div>
|
|
@ -3,18 +3,19 @@
|
|||
{{!-- As you add new fields, add them in here! --}}
|
||||
<div class="side-properties">
|
||||
<div class="side-property">
|
||||
<label for="data.price">{{localize "DS4.PriceGold"}}</label>
|
||||
<input type="number" min="0" data-dtype="Number" name="data.price" value="{{data.price}}" />
|
||||
</div>
|
||||
<div class="side-property">
|
||||
<label for="data.availability">{{localize "DS4.ItemAvailability"}}</label>
|
||||
<select name="data.availability" data-type="String">
|
||||
{{#select data.availability}}
|
||||
{{#each config.itemAvailabilities as |value key|}}
|
||||
<option value="{{key}}">{{value}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</div>
|
||||
<label for="data.price">{{localize "DS4.PriceGold"}}</label>
|
||||
<input type="number" min="0" max="99999" step="0.01" data-dtype="Number"
|
||||
name="data.price" value="{{data.price}}" />
|
||||
</div>
|
||||
<div class="side-property">
|
||||
<label for="data.availability">{{localize "DS4.ItemAvailability"}}</label>
|
||||
<select name="data.availability" data-type="String">
|
||||
{{#select data.availability}}
|
||||
{{#each config.itemAvailabilities as |value key|}}
|
||||
<option value="{{key}}">{{value}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -3,6 +3,6 @@
|
|||
{{/systems/ds4/templates/item/partials/sheet-header.hbs}}
|
||||
|
||||
{{!-- Common Item body --}}
|
||||
{{> systems/ds4/templates/item/partials/body.hbs}}
|
||||
{{#> systems/ds4/templates/item/partials/body.hbs}}{{/systems/ds4/templates/item/partials/body.hbs}}
|
||||
|
||||
</form>
|
||||
|
|
|
@ -10,5 +10,5 @@
|
|||
{{/systems/ds4/templates/item/partials/sheet-header.hbs}}
|
||||
|
||||
{{!-- Common Item body --}}
|
||||
{{> systems/ds4/templates/item/partials/body.hbs}}
|
||||
{{#> systems/ds4/templates/item/partials/body.hbs}}{{/systems/ds4/templates/item/partials/body.hbs}}
|
||||
</form>
|
72
src/templates/item/spell-sheet.hbs
Normal file
72
src/templates/item/spell-sheet.hbs
Normal file
|
@ -0,0 +1,72 @@
|
|||
{{!-- ======================================================================== --}}
|
||||
{{!-- INLINE PARTIAL DEFINITIONS --}}
|
||||
{{!-- ======================================================================== --}}
|
||||
|
||||
|
||||
{{#*inline "unitDatum" }}
|
||||
<div class="side-property">
|
||||
<label>{{localize localizeString}}</label>
|
||||
<div class="unit-data-pair">
|
||||
<input class="item-num-val" type="text" data-dtype="String"
|
||||
name="data.{{property}}.value" value="{{lookup (lookup data property) 'value'}}" />
|
||||
<select name="data.{{property}}.unit" data-type="String">
|
||||
{{#select (lookup (lookup data property) 'unit')}}
|
||||
{{#if (eq unitType 'temporal')}}
|
||||
{{#each (lookup config 'temporalUnitsAbbr') as |value key|}}<option value="{{key}}">{{value}}</option>{{/each}}
|
||||
{{else}}
|
||||
{{#each (lookup config 'distanceUnitsAbbr') as |value key|}}<option value="{{key}}">{{value}}</option>{{/each}}
|
||||
{{/if}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
{{/inline}}
|
||||
|
||||
|
||||
{{!-- ======================================================================== --}}
|
||||
|
||||
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
{{#> systems/ds4/templates/item/partials/sheet-header.hbs}}
|
||||
<div class="grid grid-4col basic-properties">
|
||||
<div class="basic-property">
|
||||
<label for="data.spellType">{{localize "DS4.SpellType"}}</label>
|
||||
<select name="data.spellType" data-type="String">
|
||||
{{#select data.spellType}}
|
||||
{{#each config.spellTypes as |value key|}}
|
||||
<option value="{{key}}">{{value}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="basic-property">
|
||||
<label for="data.bonus">{{localize "DS4.SpellBonus"}}</label>
|
||||
<input type="text" name="data.bonus" value="{{data.bonus}}" data-dtype="String" />
|
||||
</div>
|
||||
</div>
|
||||
{{/systems/ds4/templates/item/partials/sheet-header.hbs}}
|
||||
|
||||
{{!-- Common Item body --}}
|
||||
{{#> systems/ds4/templates/item/partials/body.hbs}}
|
||||
<div class="side-property">
|
||||
<label for="data.spellCategory">{{localize "DS4.SpellCategory"}}</label>
|
||||
<select name="data.spellCategory" data-type="String">
|
||||
{{#select data.spellCategory}}
|
||||
{{#each config.spellCategories as |value key|}}
|
||||
<option value="{{key}}">{{value}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</div>
|
||||
{{> unitDatum data=data property='maxDistance' localizeString='DS4.SpellMaxDistance' unitType='distance' }}
|
||||
{{> unitDatum data=data property='effectRadius' localizeString='DS4.SpellEffectRadius' unitType='distance' }}
|
||||
{{> unitDatum data=data property='duration' localizeString='DS4.SpellDuration' unitType='temporal' }}
|
||||
{{> unitDatum data=data property='cooldownDuration' localizeString='DS4.SpellCooldownDuration' unitType='temporal' }}
|
||||
<div class="side-property">
|
||||
<label for="data.scrollPrice">{{localize "DS4.SpellScrollPriceGold"}}</label>
|
||||
<input type="number" min="0" max="9999" step="0.01" data-dtype="Number"
|
||||
name="data.scrollPrice" value="{{data.scrollPrice}}" />
|
||||
</div>
|
||||
{{/systems/ds4/templates/item/partials/body.hbs}}
|
||||
|
||||
</form>
|
|
@ -27,6 +27,6 @@
|
|||
{{/systems/ds4/templates/item/partials/sheet-header.hbs}}
|
||||
|
||||
{{!-- Common Item body --}}
|
||||
{{> systems/ds4/templates/item/partials/body.hbs}}
|
||||
{{#> systems/ds4/templates/item/partials/body.hbs}}{{/systems/ds4/templates/item/partials/body.hbs}}
|
||||
|
||||
</form>
|
||||
|
|
|
@ -3,5 +3,5 @@
|
|||
{{/systems/ds4/templates/item/partials/sheet-header.hbs}}
|
||||
|
||||
{{!-- Common Item body --}}
|
||||
{{> systems/ds4/templates/item/partials/body.hbs}}
|
||||
{{#> systems/ds4/templates/item/partials/body.hbs}}{{/systems/ds4/templates/item/partials/body.hbs}}
|
||||
</form>
|
|
@ -25,5 +25,5 @@
|
|||
{{/systems/ds4/templates/item/partials/sheet-header.hbs}}
|
||||
|
||||
{{!-- Common Item body --}}
|
||||
{{> systems/ds4/templates/item/partials/body.hbs}}
|
||||
{{#> systems/ds4/templates/item/partials/body.hbs}}{{/systems/ds4/templates/item/partials/body.hbs}}
|
||||
</form>
|
Loading…
Reference in a new issue