From e43d18b9746c941595e78550b6b21eafe0fbfe10 Mon Sep 17 00:00:00 2001 From: Peter Varaksin Date: Thu, 23 Apr 2020 19:11:04 +0300 Subject: [PATCH] Character sheet --- module/actor-sheet.js | 14 +- module/blades.js | 10 +- module/item-sheet.js | 40 +--- module/item.js | 6 + module/templates.js | 1 + packs/abilities.db | 55 ++++++ packs/classes.db | 15 +- packs/heritages.db | 2 +- packs/items.db | 44 ++--- packs/vices.db | 4 +- styles/assets/brush/dry-brush-stroke-1.png | Bin 0 -> 14735 bytes styles/assets/brush/dry-brush-stroke-3.png | Bin 0 -> 24086 bytes styles/blades.css | 218 ++++++++++++++++++--- system.json | 14 ++ template.json | 21 +- templates/actor-sheet.html | 180 +++++++++++------ templates/items/ability.html | 15 ++ templates/items/class.html | 7 +- templates/items/item.html | 8 +- templates/items/simple.html | 13 ++ templates/parts/attributes.html | 146 +++++++------- templates/parts/coins.html | 118 +++++++++++ 22 files changed, 678 insertions(+), 253 deletions(-) create mode 100644 module/item.js create mode 100644 packs/abilities.db create mode 100644 styles/assets/brush/dry-brush-stroke-1.png create mode 100644 styles/assets/brush/dry-brush-stroke-3.png create mode 100644 templates/items/ability.html create mode 100644 templates/items/simple.html create mode 100644 templates/parts/coins.html diff --git a/module/actor-sheet.js b/module/actor-sheet.js index 0d1e4bf..74f5e7b 100644 --- a/module/actor-sheet.js +++ b/module/actor-sheet.js @@ -9,8 +9,8 @@ export class BladesActorSheet extends ActorSheet { return mergeObject(super.defaultOptions, { classes: ["blades-in-the-dark", "sheet", "actor"], template: "systems/blades-in-the-dark/templates/actor-sheet.html", - width: 800, - height: 1000 + width: 700, + height: 970 }); } @@ -19,12 +19,13 @@ export class BladesActorSheet extends ActorSheet { /** @override */ getData() { const data = super.getData(); - data.dtypes = ["String", "Number", "Boolean", "Radio"]; + + // Calculate Load + let loadout = 0; + data.items.forEach(i => {loadout += (i.type === "item") ? parseInt(i.data.load) : 0}); + data.data.loadout = loadout; console.log("DATA"); console.log(data); - // for ( let attr of Object.values(data.data) ) { - // attr.isCheckbox = attr.dtype === "Boolean"; - // } return data; } @@ -65,7 +66,6 @@ export class BladesActorSheet extends ActorSheet { /** @override */ _updateObject(event, formData) { - console.log(formData); // Handle the free-form attributes list // const formAttrs = expandObject(formData).data.attributes || {}; // const attributes = Object.values(formAttrs).reduce((obj, v) => { diff --git a/module/blades.js b/module/blades.js index 0a479a4..4aab67a 100644 --- a/module/blades.js +++ b/module/blades.js @@ -6,6 +6,7 @@ // Import Modules import { preloadHandlebarsTemplates } from "./templates.js"; +import { BladesItem } from "./item.js"; import { BladesItemSheet } from "./item-sheet.js"; import { BladesActorSheet } from "./actor-sheet.js"; @@ -20,16 +21,13 @@ Hooks.once("init", async function() { * Set an initiative formula for the system * @type {String} */ - CONFIG.Combat.initiative = { - formula: "1d20", - decimals: 2 - }; + CONFIG.Item.entityClass = BladesItem; // Register sheet application classes Actors.unregisterSheet("core", ActorSheet); - Actors.registerSheet("bitd", BladesActorSheet, { makeDefault: true }); + Actors.registerSheet("blades", BladesActorSheet, { types: ["character"], makeDefault: true }); Items.unregisterSheet("core", ItemSheet); - Items.registerSheet("bitd", BladesItemSheet, {makeDefault: true}); + Items.registerSheet("blades", BladesItemSheet, {makeDefault: true}); preloadHandlebarsTemplates(); diff --git a/module/item-sheet.js b/module/item-sheet.js index 51fa886..83d1851 100644 --- a/module/item-sheet.js +++ b/module/item-sheet.js @@ -19,7 +19,14 @@ export class BladesItemSheet extends ItemSheet { /** @override */ get template() { const path = "systems/blades-in-the-dark/templates/items"; - return `${path}/${this.item.data.type}.html`; + let simple_item_types = ["background", "heritage", "vice"]; + let template_name = `${this.item.data.type}`; + + if (simple_item_types.indexOf(this.item.data.type) >= 0) { + template_name = "simple"; + } + + return `${path}/${template_name}.html`; } /* -------------------------------------------- */ @@ -40,7 +47,7 @@ export class BladesItemSheet extends ItemSheet { if (!this.options.editable) return; // Add or Remove Attribute - html.find(".attributes").on("click", ".attribute-control", this._onClickAttributeControl.bind(this)); + // html.find(".attributes").on("click", ".attribute-control", this._onClickAttributeControl.bind(this)); } /* -------------------------------------------- */ @@ -74,34 +81,5 @@ export class BladesItemSheet extends ItemSheet { await this._onSubmit(event); } } - /* -------------------------------------------- */ - - /** @override */ - _updateObject(event, formData) { - - // Handle the free-form attributes list - const formAttrs = expandObject(formData).data.attributes || {}; - const attributes = Object.values(formAttrs).reduce((obj, v) => { - let k = v["key"].trim(); - if ( /[\s\.]/.test(k) ) return ui.notifications.error("Attribute keys may not contain spaces or periods"); - delete v["key"]; - obj[k] = v; - return obj; - }, {}); - - // Remove attributes which are no longer used - for ( let k of Object.keys(this.object.data.data.attributes) ) { - if ( !attributes.hasOwnProperty(k) ) attributes[`-=${k}`] = null; - } - - // Re-combine formData - formData = Object.entries(formData).filter(e => !e[0].startsWith("data.attributes")).reduce((obj, e) => { - obj[e[0]] = e[1]; - return obj; - }, {_id: this.object._id, "data.attributes": attributes}); - - // Update the Item - return this.object.update(formData); - } } diff --git a/module/item.js b/module/item.js new file mode 100644 index 0000000..c361626 --- /dev/null +++ b/module/item.js @@ -0,0 +1,6 @@ +/** + * Extend the basic Item + * @extends {Item} + */ +export class BladesItem extends Item { +} diff --git a/module/templates.js b/module/templates.js index 329ad79..584eeed 100644 --- a/module/templates.js +++ b/module/templates.js @@ -9,6 +9,7 @@ export const preloadHandlebarsTemplates = async function() { const templatePaths = [ // Actor Sheet Partials + "systems/blades-in-the-dark/templates/parts/coins.html", "systems/blades-in-the-dark/templates/parts/attributes.html" ]; diff --git a/packs/abilities.db b/packs/abilities.db new file mode 100644 index 0000000..713a9fd --- /dev/null +++ b/packs/abilities.db @@ -0,0 +1,55 @@ +{"_id":"0IDmKmW3AiaNEBpE","name":"Survivor","permission":{"default":0},"type":"ability","data":{"description":"From hard won experience or occult ritual, you are immune to the poisonous miasma of the deathlands and are able to subsist on the strange flora and fauna there. You get +1 stress box.","class":"Hound","price":"1"},"folder":"PaUiEAoDgddaXGEi","sort":500001,"flags":{}} +{"_id":"1G5jzLtr2Xy5K5I2","name":"Cloak & Dagger","permission":{"default":0},"type":"ability","data":{"description":"When you use a disguise or other form of covert misdirection, you get +1d to rolls to confuse or deflect suspicion. When you throw off your disguise, the resulting surprise gives you the initiative in the situation.","class":"Slide","price":"1"},"folder":"537uDqf28OmWJoAM","sort":200001,"flags":{}} +{"_id":"26BF64gJyZVZeQFZ","name":"Analyst","permission":{"default":0},"type":"ability","data":{"description":"During downtime, you get two ticks to distribute among any long term project clocks that involve investigation or learning a new formula or design plan.","class":"Leech","price":"1"},"folder":"EorKoKOCKsvC93ZA","sort":200001,"flags":{}} +{"_id":"3BitFvLHGQbuaezR","name":"Ambush","permission":{"default":0},"type":"ability","data":{"description":"When you attack from hiding or spring a trap, you get +1d.","class":"Lurk","price":"1"},"folder":"7gkE4yoqYZiTi9EB","sort":200001,"flags":{}} +{"_id":"3VQkC6YZfnO7nFRm","name":"Mastermind","permission":{"default":0},"type":"ability","data":{"description":"You may expend your special armor to protect a teammate, or to push yourself when you gather information or work on a long-term project.","class":"Spider","price":"1"},"folder":"io6Cdw11wDXIixI3","sort":700001,"flags":{}} +{"_id":"3Yf2yt4zUSvnLbzA","name":"Physicker","permission":{"default":0},"type":"ability","data":{"description":"You can Tinker with bones, blood, and bodily humours to treat wounds or stabilize the dying. You may study a malady or corpse. Everyone in your crew gets +1d to their healing treatment rolls.","class":"Leech","price":"1"},"folder":"EorKoKOCKsvC93ZA","sort":600001,"flags":{}} +{"_id":"4CjjbD1wYdB3xV9g","name":"Sharpshooter","permission":{"default":0},"type":"ability","data":{"description":"You can push yourself to do one of the following: make a ranged attack at extreme distance beyond what’s normal for the weapon—unleash a barrage of rapid fire to suppress the enemy.","class":"Hound","price":"1"},"folder":"PaUiEAoDgddaXGEi","sort":100001,"flags":{}} +{"_id":"4kNuvKoOQQzM5jLl","name":"Ghost Hunter","permission":{"default":0},"type":"ability","data":{"description":"Your hunting pet is imbued with spirit energy. It gains potency when tracking or fighting the supernatural, and gains an arcane ability: ghost-form, mind-link, or arrow-swift. Take this ability again to choose an additional arcane ability for your pet.","class":"Hound","price":"2"},"folder":"PaUiEAoDgddaXGEi","sort":300001,"flags":{}} +{"_id":"56t1bRDXIxGDJhKd","name":"Venomous","permission":{"default":0},"type":"ability","data":{"description":"Choose a drug or poison (from your bandolier stock) to which you have become immune. You can push yourself to secrete it through your skin or saliva or exhale it as a vapor.","class":"Leech","price":"1"},"folder":"EorKoKOCKsvC93ZA","sort":800001,"flags":{}} +{"_id":"5UwC3EZPaWrw3szD","name":"Tempest","permission":{"default":0},"type":"ability","data":{"description":"You can push yourself to do one of the following: unleash a stroke of lightning as a weapon - summon a storm in your immediate vicinity (torrential rain, roaring winds, heavy fog, chilling frost/snow, etc.).","class":"Whisper","price":"1"},"folder":"5Sb9YUatUQwtpdMZ","sort":700001,"flags":{}} +{"_id":"7hooG3QMZrhGlD35","name":"Leader","permission":{"default":0},"type":"ability","data":{"description":"When you Command a cohort in combat, they continue to fight when they would otherwise break (they're not taken out when they suffer level 3 harm). They gain +1 effect and 1 armor.","class":"Cutter","price":"1"},"folder":"cJPDzs27jPdqAVDV","sort":400000,"flags":{}} +{"_id":"97TVuvrGMilTIMKO","name":"Strange Methods","permission":{"default":0},"type":"ability","data":{"description":"When you invent or craft a creation with arcane features, take +1 result level to your roll. You begin with one arcane design already known.","class":"Whisper","price":"1"},"folder":"5Sb9YUatUQwtpdMZ","sort":600001,"flags":{}} +{"_id":"BW4k9Qr3AGw6sEut","name":"Iron Will","permission":{"default":0},"type":"ability","data":{"description":"You're immune to the terror that some supernatural entities inflict on sight. Take +1d to resistance rolls with Resolve.","class":"Whisper","price":"1"},"folder":"5Sb9YUatUQwtpdMZ","sort":300001,"flags":{}} +{"_id":"CskYi6efFy3OKS0D","name":"Like Looking into a Mirror","permission":{"default":0},"type":"ability","data":{"description":"You can always tell when someone is lying to you.","class":"Slide","price":"1"},"folder":"537uDqf28OmWJoAM","sort":400001,"flags":{}} +{"_id":"DPRnFPkObGyvgzGW","name":"Scout","permission":{"default":0},"type":"ability","data":{"description":"When you gather info to locate a target, you get +1 effect. When you hide in a prepared position or use camouflage, you get +1dto rolls to avoid detection.","class":"Hound","price":"1"},"folder":"PaUiEAoDgddaXGEi","sort":400001,"flags":{}} +{"_id":"FLECQ52FEPuV9lPl","name":"Mule","permission":{"default":0},"type":"ability","data":{"description":"Your load limits are higher. Light: 5. Normal: 7. Heavy: 8.","class":"Cutter","price":"1"},"folder":"cJPDzs27jPdqAVDV","sort":500000,"flags":{}} +{"_id":"Fa3urOZnQj2dhups","name":"Not to be Trifled With","permission":{"default":0},"type":"ability","data":{"description":"You can push yourself to do one of the following: perform a feat of physical force that verges on the superhuman—engage a small gang on equal footing in close combat.","class":"Cutter","price":"1"},"folder":"cJPDzs27jPdqAVDV","sort":600000,"flags":{}} +{"_id":"GFcTs25hSqVfPccB","name":"Savage","permission":{"default":0},"type":"ability","data":{"description":"When you unleash physical violence, it's especially frightening. When you Command a frightened target, take +1d.","class":"Cutter","price":"1"},"folder":"cJPDzs27jPdqAVDV","sort":700000,"flags":{}} +{"_id":"GGik6vATDVw1ZkZX","name":"Saboteur","permission":{"default":0},"type":"ability","data":{"description":"When you Wreck, the work is much quieter than it should be and the damage is hidden from casual inspection.","class":"Leech","price":"1"},"folder":"EorKoKOCKsvC93ZA","sort":700001,"flags":{}} +{"_id":"K327OtKAa3T8NweW","name":"Ghost Voice","permission":{"default":0},"type":"ability","data":{"description":"You know the secret method to interact with a ghost or demon as if it was a normal human, regardless of how wild or feral it appears. You gain potency when communicating with the supernatural.","class":"Slide","price":"1"},"folder":"537uDqf28OmWJoAM","sort":300001,"flags":{}} +{"_id":"KhryFnEwDPtPCuEY","name":"Ghost Ward","permission":{"default":0},"type":"ability","data":{"description":"You know how to Wreck an area with arcane substances and methods so it is either anathema or enticing to spirits (your choice).","class":"Leech","price":"1"},"folder":"EorKoKOCKsvC93ZA","sort":500001,"flags":{}} +{"_id":"KzghACWjB35yp9Ox","name":"Fortitude","permission":{"default":0},"type":"ability","data":{"description":"You may expend your special armor to resist a consequence of fatigue, weakness, or chemical effects, or to push yourself when working with technical skill or handling alchemicals.","class":"Leech","price":"1"},"folder":"EorKoKOCKsvC93ZA","sort":400001,"flags":{}} +{"_id":"LL4ALumWoSfHBuEC","name":"Battleborn","permission":{"default":0},"type":"ability","data":{"description":"You may expend your special armor to reduce harm from an attack in combat or to push yourself during a fight.","class":"Cutter","price":"1"},"folder":"cJPDzs27jPdqAVDV","sort":100000,"flags":{}} +{"_id":"OIAtGUPHlE5wfHZo","name":"Vigorous","permission":{"default":0},"type":"ability","data":{"description":"You recover from harm faster. Permanently fill in one of your healing clock segments. Take +1d to healing treatment rolls.","class":"Cutter","price":"1"},"folder":"cJPDzs27jPdqAVDV","sort":800000,"flags":{}} +{"_id":"RNMcZRcMABGjvFwr","name":"A Little Something on the Side","permission":{"default":0},"type":"ability","data":{"description":"At the end of each downtime phase, you earn +2 stash.","class":"Slide","price":"1"},"folder":"537uDqf28OmWJoAM","sort":500001,"flags":{}} +{"_id":"TDhvP6fV6PnTSrvC","name":"Calculating","permission":{"default":0},"type":"ability","data":{"description":"Due to your careful planning, during downtime, you may give yourself or another crew member +1 downtime action.","class":"Spider","price":"1"},"folder":"io6Cdw11wDXIixI3","sort":200001,"flags":{}} +{"_id":"TTxVIEqlbXvQpFuq","name":"Functioning Vice","permission":{"default":0},"type":"ability","data":{"description":"When you indulge your vice, you may adjust the dice outcome by 1 or 2 (up or down). An ally who joins in your vice may do the same.","class":"Spider","price":"1"},"folder":"io6Cdw11wDXIixI3","sort":400001,"flags":{}} +{"_id":"UI8WWOJiSFr3Sn9C","name":"Artificer","permission":{"default":0},"type":"ability","data":{"description":"When you invent or craft a creation with spark-craftfeatures, take +1 result level to your roll. You begin with one special design already known.","class":"Leech","price":"1"},"folder":"EorKoKOCKsvC93ZA","sort":300001,"flags":{}} +{"_id":"YYyzA49gE764951G","name":"The Devil's Footsteps","permission":{"default":0},"type":"ability","data":{"description":"When you push yourself, choose one of the following additional benefits: perform a feat of athletics that verges on the superhuman—maneuver to confuse your enemies so they mistakenly attack each other.","class":"Lurk","price":"1"},"folder":"7gkE4yoqYZiTi9EB","sort":400001,"flags":{}} +{"_id":"YeRIdgN6dt54tSAK","name":"Ghost Contract","permission":{"default":0},"type":"ability","data":{"description":"When you shake on a deal, you and your partner - human or otherwise - both bear a mark of your oath. If either breaks the contract, they take level 3 harm, \"Cursed\".","class":"Spider","price":"1"},"folder":"io6Cdw11wDXIixI3","sort":500001,"flags":{}} +{"_id":"Z8LYDGPeRdUnjtLN","name":"Ritual","permission":{"default":0},"type":"ability","data":{"description":"You can Study an occult ritual (or create a new one) to summon a supernatural effect or being. You know the arcane methods to perform ritual sorcery. You begin with one ritual already learned.","class":"Whisper","price":"1"},"folder":"5Sb9YUatUQwtpdMZ","sort":500001,"flags":{}} +{"_id":"bCRW1vrqROytbqWb","name":"Ghost Mind","permission":{"default":0},"type":"ability","data":{"description":"You're always aware of supernatural entities in your presence. Take +1d when you gather info about the supernatural.","class":"Whisper","price":"1"},"folder":"5Sb9YUatUQwtpdMZ","sort":200001,"flags":{}} +{"_id":"bqQNAewUffuNUfbV","name":"Rook's Gambit","permission":{"default":0},"type":"ability","data":{"description":"Take 2 Stress to roll your best action rating while performing a different action. Say how you adapt your skill to this use.","class":"Slide","price":"1"},"folder":"537uDqf28OmWJoAM","sort":100001,"flags":{}} +{"_id":"cyYStjHgqaxobB1y","name":"Subterfuge","permission":{"default":0},"type":"ability","data":{"description":"You may expend your special armor to resist a consequence from suspicion or persuasion, or to push yourself for subterfuge.","class":"Slide","price":"1"},"folder":"537uDqf28OmWJoAM","sort":700001,"flags":{}} +{"_id":"e46lMfe6ayO3qDF5","name":"Foresight","permission":{"default":0},"type":"ability","data":{"description":"Two times per score you can assist a teammate without paying stress. Tell us how you prepared for this.","class":"Spider","price":"1"},"folder":"io6Cdw11wDXIixI3","sort":100001,"flags":{}} +{"_id":"eVTVGgTOhaqSpCca","name":"Vengeful","permission":{"default":0},"type":"ability","data":{"description":"You gain an additional xp trigger: You got payback against someone who harmed you or someone you care about. If your crew helped you get payback, also mark crew xp.","class":"Hound","price":"1"},"folder":"PaUiEAoDgddaXGEi","sort":700001,"flags":{}} +{"_id":"ehNEPCtVCr4hbqBm","name":"Focused","permission":{"default":0},"type":"ability","data":{"description":"You may expend your special armor to resist a consequence of surprise or mental harm (fear, confusion, losing track of someone) or to push yourself for ranged combat or tracking.","class":"Hound","price":"1"},"folder":"PaUiEAoDgddaXGEi","sort":200001,"flags":{}} +{"_id":"h0F1Xsoijv0LlMSd","name":"Jail Bird","permission":{"default":0},"type":"ability","data":{"description":"When incarcerated, your wanted level counts as 1 less, your Tier as 1 more, and you gain +1 faction status with a faction you help on the inside (in addition to your incarceration roll).","class":"Spider","price":"1"},"folder":"io6Cdw11wDXIixI3","sort":600001,"flags":{}} +{"_id":"iRMpss4mzoC4WNFp","name":"Compel","permission":{"default":0},"type":"ability","data":{"description":"You can Attune to the ghost field to force a nearby ghost to appear and obey a command you give it. You are not supernaturally terrified by a ghost you summon or compel (though your allies may be).","class":"Whisper","price":"1"},"folder":"5Sb9YUatUQwtpdMZ","sort":100001,"flags":{}} +{"_id":"j20q54yIvqlg51Z5","name":"Shadow","permission":{"default":0},"type":"ability","data":{"description":"You may expend your special armor to resist a consequence from detection or security measures, or to push yourself for a feat of athletics or stealth.","class":"Lurk","price":"1"},"folder":"7gkE4yoqYZiTi9EB","sort":800001,"flags":{}} +{"_id":"mkI2szl2Ea1v2zGS","name":"Bodyguard","permission":{"default":0},"type":"ability","data":{"description":"When you protect a teammate, take +1d to your resistance roll. When you gather info to anticipate possible threats in the current situation, you get +1 effect.","class":"Cutter","price":"1"},"folder":"cJPDzs27jPdqAVDV","sort":200000,"flags":{}} +{"_id":"n47JqyJJwXX3Q0Ua","name":"Connected","permission":{"default":0},"type":"ability","data":{"description":"During downtime, you get +1 result level when you acquire an asset or reduce heat.","class":"Spider","price":"1"},"folder":"io6Cdw11wDXIixI3","sort":300001,"flags":{}} +{"_id":"npFfvkY95OWza0Mo","name":"Warded","permission":{"default":0},"type":"ability","data":{"description":"You may expend your special armor to resist a supernatural consequence, or to push yourself when you deal with arcane forces.","class":"Whisper","price":"1"},"folder":"5Sb9YUatUQwtpdMZ","sort":800001,"flags":{}} +{"_id":"omm65Xz4wqJVE0Th","name":"Infiltrator","permission":{"default":0},"type":"ability","data":{"description":"You are not affected by quality or Tier when you bypass security measures.","class":"Lurk","price":"1"},"folder":"7gkE4yoqYZiTi9EB","sort":100001,"flags":{}} +{"_id":"owJ82qqEbO4u8wGv","name":"Occultist","permission":{"default":0},"type":"ability","data":{"description":"You know the secret ways to Consort with ancient powers, forgotten gods or demons. Once you've consorted with one, you get +1d to command cultists who worship it.","class":"Whisper","price":"1"},"folder":"5Sb9YUatUQwtpdMZ","sort":400001,"flags":{}} +{"_id":"qw5Nzte5I60PiBbh","name":"Expertise","permission":{"default":0},"type":"ability","data":{"description":"Choose one of your action ratings. When you lead a group action using that action, you can suffer only 1 stress at most regardless of the number of failed rolls.","class":"Lurk","price":"1"},"folder":"7gkE4yoqYZiTi9EB","sort":500001,"flags":{}} +{"_id":"r6dry3SxyDBP84bD","name":"Ghost Veil","permission":{"default":0},"type":"ability","data":{"description":"You may shift partially into the ghost field, becoming shadowy and insubstantial for a few moments. Take 2 stress when you shift, plus 1 stress for each extra feature: It lasts for a few minutes rather than moments - you are invisible rather than shadowy - you may float through the air like a ghost.","class":"Lurk","price":"1"},"folder":"7gkE4yoqYZiTi9EB","sort":600001,"flags":{}} +{"_id":"rNafmXeBlQ9eDpF9","name":"Reflexes","permission":{"default":0},"type":"ability","data":{"description":"When there's a question about who acts first, the answer is you (two characters with Reflexes act simultaneously).","class":"Lurk","price":"1"},"folder":"7gkE4yoqYZiTi9EB","sort":700001,"flags":{}} +{"_id":"sOennuura7lMn9qm","name":"Tough as Nails","permission":{"default":0},"type":"ability","data":{"description":"Penalties from harm are one level less severe (though level 4 harm is still fatal).","class":"Hound","price":"1"},"folder":"PaUiEAoDgddaXGEi","sort":600001,"flags":{}} +{"_id":"uaLo32nPUpKp3Yqf","name":"Ghost Fighter","permission":{"default":0},"type":"ability","data":{"description":"You may imbue your hands, melee weapons, or tools with spirit energy. You gain potency in combat vs. the supernatural. You may grapple with spirits to restrain and capture them.","class":"Cutter","price":"1"},"folder":"cJPDzs27jPdqAVDV","sort":300000,"flags":{}} +{"_id":"ubiQP80zuYu0jkBt","name":"Daredevil","permission":{"default":0},"type":"ability","data":{"description":"When you roll a desperate action, you get +1d to your roll if you also take -1d to any resistance rolls against consequences from your action.","class":"Lurk","price":"1"},"folder":"7gkE4yoqYZiTi9EB","sort":300001,"flags":{}} +{"_id":"v53AgGx9HbOAmBbM","name":"Alchemist","permission":{"default":0},"type":"ability","data":{"description":"When you invent or craft a creation with alchemicalfeatures, take +1 result level to your roll. You begin with one special formula already known.","class":"Leech","price":"1"},"folder":"EorKoKOCKsvC93ZA","sort":100001,"flags":{}} +{"_id":"vbIWDdNIEa6dpP7D","name":"Weaving the Web","permission":{"default":0},"type":"ability","data":{"description":"You gain +1d to Consort when you gather information on a target for a score. You get +1d to the engagement roll for that operation.","class":"Spider","price":"1"},"folder":"io6Cdw11wDXIixI3","sort":800001,"flags":{}} +{"_id":"vqMYvzn0jw6Iwy9U","name":"Trust in Me","permission":{"default":0},"type":"ability","data":{"description":"You get +1d vs. a target with whom you have an intimate relationship.","class":"Slide","price":"1"},"folder":"537uDqf28OmWJoAM","sort":800001,"flags":{}} +{"_id":"zCgcGLgPPOKGOXck","name":"Mesmerism","permission":{"default":0},"type":"ability","data":{"description":"When you Sway someone, you may cause them to forget that it's happened until they next interact with you.","class":"Slide","price":"1"},"folder":"537uDqf28OmWJoAM","sort":600001,"flags":{}} diff --git a/packs/classes.db b/packs/classes.db index a78b877..47c332c 100644 --- a/packs/classes.db +++ b/packs/classes.db @@ -1,8 +1,7 @@ -{"_id":"8jExf4Zqad6e3bvn","name":"Leech","permission":{"default":0},"type":"class","data":{"description":"","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]},"class_items":[]},"folder":"Q5shG4toM5PkRSnX","sort":400000,"flags":{}} -{"_id":"CAHfNrPDJZKVNMrH","name":"Lurk","permission":{"default":0},"type":"class","data":{"description":"","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]},"class_items":[]},"folder":"Q5shG4toM5PkRSnX","sort":500000,"flags":{}} -{"_id":"JGxBjlbooxuUHe4E","name":"Hound","permission":{"default":0},"type":"class","data":{"description":"","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]}},"folder":"Q5shG4toM5PkRSnX","sort":100000,"flags":{}} -{"_id":"OKRtWdhpwIAdX3RS","name":"Itemko","permission":{"default":0},"type":"item","data":{"class_restriction":"","load":0,"description":""},"folder":"3Rl8reBeGom1vbie","sort":100000,"flags":{}} -{"_id":"P6LMZBrG5U9eCjhX","name":"Spider","permission":{"default":0},"type":"class","data":{"description":"","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]},"class_items":[]},"folder":"Q5shG4toM5PkRSnX","sort":700000,"flags":{}} -{"_id":"YUGDdyADj0PTBVcP","name":"Slide","permission":{"default":0},"type":"class","data":{"description":"","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]},"class_items":[]},"folder":"Q5shG4toM5PkRSnX","sort":600000,"flags":{}} -{"_id":"tEob41rtEbHcswNM","name":"Cutter","permission":{"default":0},"type":"class","data":{"description":"","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]},"class_items":[]},"folder":"Q5shG4toM5PkRSnX","sort":300000,"flags":{}} -{"_id":"zOg14xy8ZEku6bNq","name":"Whisper","permission":{"default":0},"type":"class","data":{"description":"","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]},"class_items":[]},"folder":"Q5shG4toM5PkRSnX","sort":200000,"flags":{}} \ No newline at end of file +{"_id":"8jExf4Zqad6e3bvn","name":"Leech","permission":{"default":0},"type":"class","data":{"description":"A saboteur and technician","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]},"class_items":[]},"sort":400000,"flags":{}} +{"_id":"CAHfNrPDJZKVNMrH","name":"Lurk","permission":{"default":0},"type":"class","data":{"description":"A stealthy infiltrator and burglar","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]},"class_items":[]},"sort":500000,"flags":{}} +{"_id":"JGxBjlbooxuUHe4E","name":"Hound","permission":{"default":0},"type":"class","data":{"description":"A deadly sharpshooter and tracker","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]}},"sort":100000,"flags":{}} +{"_id":"P6LMZBrG5U9eCjhX","name":"Spider","permission":{"default":0},"type":"class","data":{"description":"A devious mastermind","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]},"class_items":[]},"sort":700000,"flags":{}} +{"_id":"YUGDdyADj0PTBVcP","name":"Slide","permission":{"default":0},"type":"class","data":{"description":"A subtle manipulator and spy","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]},"class_items":[]},"sort":600000,"flags":{}} +{"_id":"tEob41rtEbHcswNM","name":"Cutter","permission":{"default":0},"type":"class","data":{"description":"A dangerous & intimidating fighter","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]},"class_items":[]},"sort":300000,"flags":{}} +{"_id":"zOg14xy8ZEku6bNq","name":"Whisper","permission":{"default":0},"type":"class","data":{"description":"An Arcane adept and channeler","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]},"class_items":[]},"sort":200000,"flags":{}} diff --git a/packs/heritages.db b/packs/heritages.db index 77383ea..a9f67a9 100644 --- a/packs/heritages.db +++ b/packs/heritages.db @@ -3,4 +3,4 @@ {"_id":"TiL4AssY9Ryty6f9","name":"The Dagger Isles","permission":{"default":0},"type":"heritage","data":{"description":""},"folder":"2TX8ibE6E4CDUGYX","sort":200000,"flags":{}} {"_id":"Tk61Y7K84GgQpqPz","name":"Skovlan","permission":{"default":0},"type":"heritage","data":{"description":""},"folder":"2TX8ibE6E4CDUGYX","sort":500000,"flags":{}} {"_id":"WRzLNozCfzFLg0d6","name":"Tycheros","permission":{"default":0},"type":"heritage","data":{"description":""},"folder":"2TX8ibE6E4CDUGYX","sort":600000,"flags":{}} -{"_id":"fKEJOkqoAwinyzrm","name":"Akoros","permission":{"default":0},"type":"heritage","data":{"description":""},"folder":"2TX8ibE6E4CDUGYX","sort":100000,"flags":{}} \ No newline at end of file +{"_id":"fKEJOkqoAwinyzrm","name":"Akoros","permission":{"default":0},"type":"heritage","data":{"description":""},"folder":"2TX8ibE6E4CDUGYX","sort":100000,"flags":{}} diff --git a/packs/items.db b/packs/items.db index 75406f2..98522e0 100644 --- a/packs/items.db +++ b/packs/items.db @@ -1,28 +1,16 @@ -{"_id":"0GbyUKjjMof6D8fb","name":"Faith","permission":{"default":0},"type":"vice","data":{"description":""},"folder":"Jz1yD35kaDA2NZtZ","sort":100000,"flags":{}} -{"_id":"43dWmFJgAeqcsOJl","name":"Pleasure","permission":{"default":0},"type":"vice","data":{"description":""},"folder":"Jz1yD35kaDA2NZtZ","sort":500000,"flags":{}} -{"_id":"7q2RhjaBzYBoWmMa","name":"Law","permission":{"default":0},"type":"background","data":{"description":""},"folder":"YkuVHwuSV9IfsxU0","sort":300000,"flags":{}} -{"_id":"7zLXN88TgLkP0JlK","name":"Noble","permission":{"default":0},"type":"background","data":{"description":""},"folder":"YkuVHwuSV9IfsxU0","sort":600000,"flags":{}} -{"_id":"8bDf9RzcGeNz48Kp","name":"Underworld","permission":{"default":0},"type":"background","data":{"description":""},"folder":"YkuVHwuSV9IfsxU0","sort":700000,"flags":{}} -{"_id":"8jExf4Zqad6e3bvn","name":"Leech","permission":{"default":0},"type":"class","data":{"description":"","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]},"class_items":[]},"folder":"Q5shG4toM5PkRSnX","sort":400000,"flags":{}} -{"_id":"ANBgWHbSQVgUQecV","name":"Iruvia","permission":{"default":0},"type":"heritage","data":{"description":""},"folder":"2TX8ibE6E4CDUGYX","sort":300000,"flags":{}} -{"_id":"CAHfNrPDJZKVNMrH","name":"Lurk","permission":{"default":0},"type":"class","data":{"description":"","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]},"class_items":[]},"folder":"Q5shG4toM5PkRSnX","sort":500000,"flags":{}} -{"_id":"JGxBjlbooxuUHe4E","name":"Hound","permission":{"default":0},"type":"class","data":{"description":"","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]}},"folder":"Q5shG4toM5PkRSnX","sort":100000,"flags":{}} -{"_id":"Lp7ezgXB3USzviHa","name":"Obligation","permission":{"default":0},"type":"vice","data":{"description":""},"folder":"Jz1yD35kaDA2NZtZ","sort":400000,"flags":{}} -{"_id":"OKRtWdhpwIAdX3RS","name":"Itemko","permission":{"default":0},"type":"item","data":{"class_restriction":"","load":0,"description":""},"folder":"3Rl8reBeGom1vbie","sort":100000,"flags":{}} -{"_id":"P6LMZBrG5U9eCjhX","name":"Spider","permission":{"default":0},"type":"class","data":{"description":"","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]},"class_items":[]},"folder":"Q5shG4toM5PkRSnX","sort":700000,"flags":{}} -{"_id":"PJ4m6YEsMEzfgAqy","name":"Weird","permission":{"default":0},"type":"vice","data":{"description":""},"folder":"Jz1yD35kaDA2NZtZ","sort":700000,"flags":{}} -{"_id":"RrvbKXClyyNBYFBB","name":"Severos","permission":{"default":0},"type":"heritage","data":{"description":""},"folder":"2TX8ibE6E4CDUGYX","sort":400000,"flags":{}} -{"_id":"S1CvKYfGwHFq9yxR","name":"Trade","permission":{"default":0},"type":"background","data":{"description":""},"folder":"YkuVHwuSV9IfsxU0","sort":400000,"flags":{}} -{"_id":"TiL4AssY9Ryty6f9","name":"The Dagger Isles","permission":{"default":0},"type":"heritage","data":{"description":""},"folder":"2TX8ibE6E4CDUGYX","sort":200000,"flags":{}} -{"_id":"Tk61Y7K84GgQpqPz","name":"Skovlan","permission":{"default":0},"type":"heritage","data":{"description":""},"folder":"2TX8ibE6E4CDUGYX","sort":500000,"flags":{}} -{"_id":"VNt88GVp0Td0Q8H6","name":"Luxury","permission":{"default":0},"type":"vice","data":{"description":""},"folder":"Jz1yD35kaDA2NZtZ","sort":300000,"flags":{}} -{"_id":"WRzLNozCfzFLg0d6","name":"Tycheros","permission":{"default":0},"type":"heritage","data":{"description":""},"folder":"2TX8ibE6E4CDUGYX","sort":600000,"flags":{}} -{"_id":"Y0aq94hQO9LyMJN9","name":"Stupor","permission":{"default":0},"type":"vice","data":{"description":""},"folder":"Jz1yD35kaDA2NZtZ","sort":600000,"flags":{}} -{"_id":"YUGDdyADj0PTBVcP","name":"Slide","permission":{"default":0},"type":"class","data":{"description":"","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]},"class_items":[]},"folder":"Q5shG4toM5PkRSnX","sort":600000,"flags":{}} -{"_id":"ZplBgIXHxWLUXX1o","name":"Academic","permission":{"default":0},"type":"background","data":{"description":""},"folder":"YkuVHwuSV9IfsxU0","sort":100000,"flags":{}} -{"_id":"ex7Mqv42SKZrfUL0","name":"Military","permission":{"default":0},"type":"background","data":{"description":""},"folder":"YkuVHwuSV9IfsxU0","sort":500000,"flags":{}} -{"_id":"fKEJOkqoAwinyzrm","name":"Akoros","permission":{"default":0},"type":"heritage","data":{"description":""},"folder":"2TX8ibE6E4CDUGYX","sort":100000,"flags":{}} -{"_id":"qGkgWsdxcnl0cFhm","name":"Labor","permission":{"default":0},"type":"background","data":{"description":""},"folder":"YkuVHwuSV9IfsxU0","sort":200000,"flags":{}} -{"_id":"tEob41rtEbHcswNM","name":"Cutter","permission":{"default":0},"type":"class","data":{"description":"","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]},"class_items":[]},"folder":"Q5shG4toM5PkRSnX","sort":300000,"flags":{}} -{"_id":"ueBoUHFBMHlCowB0","name":"Gambling","permission":{"default":0},"type":"vice","data":{"description":""},"folder":"Jz1yD35kaDA2NZtZ","sort":200000,"flags":{}} -{"_id":"zOg14xy8ZEku6bNq","name":"Whisper","permission":{"default":0},"type":"class","data":{"description":"","base_skills":{"hunt":[0],"study":[0],"survey":[0],"tinker":[0],"finesse":[0],"prowl":[0],"skirmish":[0],"wreck":[0],"attune":[0],"command":[0],"consort":[0],"sway":[0]},"class_items":[]},"folder":"Q5shG4toM5PkRSnX","sort":200000,"flags":{}} +{"_id":"05ZtdYxXWEPmLlxH","name":"Demolition Tools","permission":{"default":0},"type":"item","data":{"class_restriction":"","load":"2","description":"","items":[]},"sort":1400000,"flags":{}} +{"_id":"8kgtZo4ddpRAJH7l","name":"+ Heavy","permission":{"default":0},"type":"item","data":{"class_restriction":"","load":"3","description":"","items":[]},"sort":800000,"flags":{}} +{"_id":"9BztJARntO1uFSYY","name":"Throwing Knives","permission":{"default":0},"type":"item","data":{"class_restriction":"","load":"1","description":"","items":[]},"sort":200000,"flags":{}} +{"_id":"K9onsW8mnJiFrWAZ","name":"A Blade or Two","permission":{"default":0},"type":"item","data":{"class_restriction":"","load":"1","description":"","items":[]},"sort":100000,"flags":{}} +{"_id":"MOZAojcYM92lrDcK","name":"A Large Weapon","permission":{"default":0},"type":"item","data":{"class_restriction":"","load":"2","description":"","items":[]},"sort":500000,"flags":{}} +{"_id":"OEspgCofoCwHOcm9","name":"An Unusual Weapon","permission":{"default":0},"type":"item","data":{"class_restriction":"","load":"1","description":"","items":[]},"sort":600000,"flags":{}} +{"_id":"RM4Qs7KnUDUWXOiz","name":"Subterfuge Supplies","permission":{"default":0},"type":"item","data":{"class_restriction":"","load":"1","description":"","items":[]},"sort":1300000,"flags":{}} +{"_id":"SaRZapoF6ja5s7Qo","name":"Lantern","permission":{"default":0},"type":"item","data":{"class_restriction":"","load":"1","description":"","items":[]},"sort":1600000,"flags":{}} +{"_id":"YLPAWyYPQZuuHL18","name":"Arcane Implements","permission":{"default":0},"type":"item","data":{"class_restriction":"","load":"1","description":"","items":[]},"sort":1100000,"flags":{}} +{"_id":"cIa0ZZUXpOcqPtKy","name":"Climbing Gear","permission":{"default":0},"type":"item","data":{"class_restriction":"","load":"2","description":"","items":[]},"sort":1000000,"flags":{}} +{"_id":"gCFkqHGH9KGiGcGn","name":"Burglary Gear","permission":{"default":0},"type":"item","data":{"class_restriction":"","load":"1","description":"","items":[]},"sort":900000,"flags":{}} +{"_id":"iUytqBYn6e0slC75","name":"A Pistol","permission":{"default":0},"type":"item","data":{"class_restriction":"","load":"1","description":"","items":[]},"sort":300000,"flags":{}} +{"_id":"ukmU5W2Ya9EJr4J0","name":"Armor","permission":{"default":0},"type":"item","data":{"class_restriction":"","load":"2","description":"","items":[]},"sort":700000,"flags":{}} +{"_id":"vLpzNwzhGlBfxw2v","name":"Documents","permission":{"default":0},"type":"item","data":{"class_restriction":"","load":"1","description":"","items":[]},"sort":1200000,"flags":{}} +{"_id":"y1tNdNOesmsYbJkv","name":"Tinkering Tools","permission":{"default":0},"type":"item","data":{"class_restriction":"","load":"1","description":"","items":[]},"sort":1500000,"flags":{}} +{"_id":"y9WkdMK6v8GxweL5","name":"A 2nd Pistol","permission":{"default":0},"type":"item","data":{"class_restriction":"","load":"1","description":"","items":[]},"sort":400000,"flags":{}} diff --git a/packs/vices.db b/packs/vices.db index da5192d..434041e 100644 --- a/packs/vices.db +++ b/packs/vices.db @@ -1,7 +1,7 @@ +{"_id":"0GbyUKjjMof6D8fb","name":"Faith","permission":{"default":0},"type":"vice","data":{"description":""},"folder":"Jz1yD35kaDA2NZtZ","sort":100000,"flags":{}} +{"_id":"43dWmFJgAeqcsOJl","name":"Pleasure","permission":{"default":0},"type":"vice","data":{"description":""},"folder":"Jz1yD35kaDA2NZtZ","sort":500000,"flags":{}} {"_id":"Lp7ezgXB3USzviHa","name":"Obligation","permission":{"default":0},"type":"vice","data":{"description":""},"folder":"Jz1yD35kaDA2NZtZ","sort":400000,"flags":{}} {"_id":"PJ4m6YEsMEzfgAqy","name":"Weird","permission":{"default":0},"type":"vice","data":{"description":""},"folder":"Jz1yD35kaDA2NZtZ","sort":700000,"flags":{}} {"_id":"VNt88GVp0Td0Q8H6","name":"Luxury","permission":{"default":0},"type":"vice","data":{"description":""},"folder":"Jz1yD35kaDA2NZtZ","sort":300000,"flags":{}} {"_id":"Y0aq94hQO9LyMJN9","name":"Stupor","permission":{"default":0},"type":"vice","data":{"description":""},"folder":"Jz1yD35kaDA2NZtZ","sort":600000,"flags":{}} {"_id":"ueBoUHFBMHlCowB0","name":"Gambling","permission":{"default":0},"type":"vice","data":{"description":""},"folder":"Jz1yD35kaDA2NZtZ","sort":200000,"flags":{}} -{"_id":"43dWmFJgAeqcsOJl","name":"Pleasure","permission":{"default":0},"type":"vice","data":{"description":""},"folder":"Jz1yD35kaDA2NZtZ","sort":500000,"flags":{}} -{"_id":"0GbyUKjjMof6D8fb","name":"Faith","permission":{"default":0},"type":"vice","data":{"description":""},"folder":"Jz1yD35kaDA2NZtZ","sort":100000,"flags":{}} \ No newline at end of file diff --git a/styles/assets/brush/dry-brush-stroke-1.png b/styles/assets/brush/dry-brush-stroke-1.png new file mode 100644 index 0000000000000000000000000000000000000000..2b2b1a10de0c8535a840e85205e4e0787d84224d GIT binary patch literal 14735 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 literal 0 HcmV?d00001 diff --git a/styles/blades.css b/styles/blades.css index cddb14b..120b0d0 100644 --- a/styles/blades.css +++ b/styles/blades.css @@ -7,6 +7,9 @@ /* * Custom Radio */ +/* + * Custom Radio Squared + */ /* * Checkboxes underscored. */ @@ -16,31 +19,76 @@ /* * General Styles */ - * { +* { font-family: Georgia, "Bitstream Charter", "Times New Roman", serif; } * ul { list-style: none; } +* form.actor-sheet { + padding: 20px; +} +* textarea { + margin-top: 10px; +} +* td { + padding: 10px; +} * .section { margin-bottom: 10px; display: flex; flex-direction: row; justify-content: space-between; } +* .section > * { + margin-right: 10px; +} +* .section > *:last-child { + margin-right: 0px; +} +* .section .grow-one { + flex-grow: 1; +} +* .section .grow-two { + flex-grow: 2; +} +* .section.experience { + margin-bottom: 0px; + justify-content: center; +} +* .editor, +* .editor-content { + min-height: 280px; +} +* .flex-horizontal { + display: flex; + flex-direction: row; + justify-content: space-between; +} +* .flex-vertical { + display: flex; + flex-direction: column; +} * .black-label { background-color: black; color: white; - font-size: 35px; + font-size: 21px; text-align: center; padding: 0px 5px; - height: 50px !important; + height: 30px !important; text-transform: capitalize; } +* .label-stripe { + text-transform: uppercase; + background-color: #888; + margin-bottom: 10px; + position: relative; +} * #stress-trauma { border-top: 3px solid black; display: flex; flex-direction: row; + margin-bottom: 0px; /* Trauma */ } * #stress-trauma > * { @@ -54,8 +102,8 @@ /* Hide the browser's default checkbox */ } * #stress-trauma #character-stress label { - height: 100px; - width: 32px; + height: 50px; + width: 17px; background-image: url("assets/teeth/stresstooth-red.png"); background-repeat: no-repeat; background-size: contain; @@ -86,8 +134,8 @@ flex-direction: column; } * #stress-trauma #character-trauma-container #character-trauma label { - height: 100px; - width: 32px; + height: 50px; + width: 17px; background-image: url("assets/teeth/shorttooth-red.png"); background-repeat: no-repeat; background-size: contain; @@ -124,7 +172,7 @@ } * #stress-trauma #trauma-list label { cursor: pointer; - font-size: 22px; + font-size: 19px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; @@ -142,6 +190,49 @@ text-decoration: none; font-weight: bold; } +* #abilities #character-experience { + display: flex; + /* Hide the browser's default checkbox */ + position: absolute; + top: 0px; + right: 0px; +} +* #abilities #character-experience label { + height: 30px; + width: 10px; + background-image: url("assets/teeth/stresstooth-red.png"); + background-repeat: no-repeat; + background-size: contain; + margin-right: 5px; +} +* #abilities #character-experience label:last-of-type { + margin-right: 0px; +} +* #abilities #character-experience label[for$="-0"] { + width: auto; + height: auto; + background-image: none !important; + background: black !important; + margin-right: 0px; +} +* #abilities #character-experience input { + display: none; +} +* #abilities #character-experience input:checked ~ label { + background-image: url("assets/teeth/stresstooth-halfgrey.png"); +} +* #abilities #character-experience input:checked + label { + background-image: url("assets/teeth/stresstooth-red.png"); +} +* #abilities .item-name { + width: 70px; +} +* #abilities .item-body { + width: auto; +} +* #abilities .item-description { + width: 200px; +} * #harm-armor { display: flex; } @@ -211,49 +302,59 @@ * #harm-armor #character-health-clock *:nth-child(9) { transform: rotate(270deg) skewY(180deg); } -* #harm-armor #character-armor-uses { - display: flex; - flex-direction: column; -} * #harm-armor #character-armor-uses div { display: flex; flex-direction: row; justify-content: space-between; } +* #attributes { + display: flex; + flex-direction: column; +} +* #attributes .stripe { + background-color: black; + color: white; + font-size: 17px; + padding-left: 5px; +} * #attributes .attributes-exp { + position: relative; + margin-bottom: 10px; +} +* #attributes .attributes-exp .stripe-tooth-body { display: flex; /* Hide the browser's default checkbox */ + position: absolute; + top: 0px; + right: 0px; } -* #attributes .attributes-exp label { - height: 50px; - width: 17px; +* #attributes .attributes-exp .stripe-tooth-body label { + height: 30px; + width: 10px; background-image: url("assets/teeth/xptooth-red.png"); background-repeat: no-repeat; background-size: contain; margin-right: 5px; } -* #attributes .attributes-exp label:last-of-type { +* #attributes .attributes-exp .stripe-tooth-body label:last-of-type { margin-right: 0px; } -* #attributes .attributes-exp label[for$="-0"] { +* #attributes .attributes-exp .stripe-tooth-body label[for$="-0"] { width: auto; height: auto; background-image: none !important; background: black !important; margin-right: 0px; } -* #attributes .attributes-exp input { +* #attributes .attributes-exp .stripe-tooth-body input { display: none; } -* #attributes .attributes-exp input:checked ~ label { +* #attributes .attributes-exp .stripe-tooth-body input:checked ~ label { background-image: url("assets/teeth/xptooth-white.png"); } -* #attributes .attributes-exp input:checked + label { +* #attributes .attributes-exp .stripe-tooth-body input:checked + label { background-image: url("assets/teeth/xptooth-red.png"); } -* #attributes .attributes-exp { - border-top: 5px solid black; -} * #attributes .attributes-container { display: flex; margin: 5px 0px; @@ -261,8 +362,8 @@ /* Hide the browser's default checkbox */ } * #attributes .attributes-container label { - height: 20px; - width: 20px; + height: 15px; + width: 15px; background-color: black; vertical-align: middle; border: 2px solid black; @@ -288,5 +389,72 @@ * #attributes .attributes-container * { margin-right: 5px; } +* .item { + justify-content: space-between; +} +* .item .item-body { + margin-bottom: 10px; +} +* .item .item-body * { + margin-right: 10px; +} +* .item .item-body .item-description { + font-style: italic; + text-align: justify; +} +* .item div { + flex-grow: 2; +} +* .item .item-control { + flex-grow: 1; +} +* .item .item-body, +* .item .item-class-label { + width: 100px; +} +* #name, +* #alias { + margin-bottom: 10px; +} +* .profile-img { + margin: 0px 30px; +} +* .coins { + display: flex; + /* Hide the browser's default checkbox */ + flex-wrap: wrap; +} +* .coins label { + height: 15px; + width: 15px; + background-color: grey; + vertical-align: middle; + border: 1px solid black; +} +* .coins label[for$="-0"] { + margin-right: 0px; +} +* .coins input { + display: none; +} +* .coins input:checked ~ label { + background-color: white; +} +* .coins input:checked + label { + background-color: grey; +} +* .coins label { + margin-right: 3px; + margin-bottom: 3px; +} +* .coins label[for$="0"] { + border-width: 2px; +} +* .coins.coins-hands { + width: 36px; +} +* .coins.coins-stashed { + width: 190px; +} /*# sourceMappingURL=style.css.map */ diff --git a/system.json b/system.json index f447e0b..128aa5b 100644 --- a/system.json +++ b/system.json @@ -42,6 +42,20 @@ "system": "blades-in-the-dark", "path": "./packs/backgrounds.db", "entity": "Item" + }, + { + "name": "Items", + "label": "Items", + "system": "blades-in-the-dark", + "path": "./packs/items.db", + "entity": "Item" + }, + { + "name": "Abilities", + "label": "Abilities", + "system": "blades-in-the-dark", + "path": "./packs/abilities.db", + "entity": "Item" } ] } diff --git a/template.json b/template.json index 59a2a31..4f76306 100644 --- a/template.json +++ b/template.json @@ -10,6 +10,7 @@ "coins": [0], "coins_stashed": [0], "special_abilities": [], + "loadout": 0, "harm": { "light": { "one": "", @@ -108,13 +109,18 @@ }, "Item": { "types": ["item", "class", "ability", "heritage", "background", "vice"], + "templates": { + "default": { + "description": "" + } + }, "item": { + "templates": ["default"], "class_restriction": "", - "load": 0, - "description": "" + "load": 0 }, "class": { - "description": "", + "templates": ["default"], "base_skills": { "hunt": [0], "study": [0], @@ -132,17 +138,18 @@ "class_items": [] }, "ability": { + "templates": ["default"], "class": "", - "description": "" + "price": 1 }, "heritage": { - "description": "" + "templates": ["default"] }, "background": { - "description": "" + "templates": ["default"] }, "vice": { - "description": "" + "templates": ["default"] } } } diff --git a/templates/actor-sheet.html b/templates/actor-sheet.html index cb224be..c826275 100644 --- a/templates/actor-sheet.html +++ b/templates/actor-sheet.html @@ -1,77 +1,85 @@ -
+
-
-
+
+
-
+
+ {{#each actor.items as |item id|}} {{#eq item.type "heritage"}} -
-
+
+
Heritage
+
-

{{item.name}}

+
{{item.name}}
-
+
{{/eq}} {{/each}} {{#each actor.items as |item id|}} - {{#eq item.type "background"}} -
-
- -

{{item.name}}

+ {{#eq item.type "background"}} +
+
Background
+
+ +
{{item.name}}
+
+
- -
- {{/eq}} + {{/eq}} + {{/each}} + + {{#each actor.items as |item id|}} + {{#eq item.type "vice"}} +
+
Vice
+
+ +
{{item.name}}
+
+ +
+ {{/eq}} + {{/each}} + + {{#each actor.items as |item id|}} + {{#eq item.type "class"}} +
+
Class
+
+ +
{{item.name}}
+
+ +
+ {{/eq}} {{/each}}
-
- -
+ -
-
+
+
-
- {{#each actor.items as |item id|}} - {{#eq item.type "vice"}} -
-
- -

{{item.name}}

-
- -
- {{/eq}} - {{/each}} - {{#each actor.items as |item id|}} - {{#eq item.type "class"}} -
-
- -

{{item.name}}

-
- -
- {{/eq}} - {{/each}} -
+ + {{> "systems/blades-in-the-dark/templates/parts/coins.html"}}
+ {{!-- Experience --}} +
+
{{!-- Stress and Trauma --}}
@@ -229,21 +237,75 @@
{{!-- Attributes --}} - {{> "systems/blades-in-the-dark/templates/parts/attributes.html"}} +
- {{!-- Owned Items Tab --}} - -
    - {{#each actor.items as |item id|}} -
  1. -
    - -

    {{item.name}}

    +
    +
    +
    +

    Abilities

    +
    + {{#multiboxes data.experience}} + + + + + + + + + + + + + + + + + + + {{/multiboxes}} +
    +
    + +
    + {{#each actor.items as |item id|}} + {{#eq item.type "ability"}} +
    +
    +
    {{item.name}}
    +
    {{item.data.description}}
    +
    +
    - -
  2. - {{/each}} -
- + {{/eq}} + {{/each}} +
+
+ + {{!-- Owned Items Tab --}} +
+
+

Loadout: {{data.loadout}}

+
+
+ {{#each actor.items as |item id|}} + {{#eq item.type "item"}} +
+
+ +
{{item.name}}
+
{{item.data.description}}
+
+ +
+ {{/eq}} + {{/each}} +
+
+
+ + {{!-- Attributes --}} + {{> "systems/blades-in-the-dark/templates/parts/attributes.html"}} +
diff --git a/templates/items/ability.html b/templates/items/ability.html new file mode 100644 index 0000000..c2d357b --- /dev/null +++ b/templates/items/ability.html @@ -0,0 +1,15 @@ +
+
+ +
+

+
+
+ + {{!-- Sheet Body --}} +
+ +
+ + +
diff --git a/templates/items/class.html b/templates/items/class.html index 0ff211c..6558ceb 100644 --- a/templates/items/class.html +++ b/templates/items/class.html @@ -6,12 +6,7 @@
- {{!-- Sheet Body --}}
- - {{!-- Description Tab --}} -
- {{editor content=data.description target="data.description" button=true owner=owner editable=editable}} -
+
diff --git a/templates/items/item.html b/templates/items/item.html index 83d6718..36aaedc 100644 --- a/templates/items/item.html +++ b/templates/items/item.html @@ -8,10 +8,8 @@ {{!-- Sheet Body --}}
- - {{!-- Description Tab --}} -
- {{editor content=data.description target="data.description" button=true owner=owner editable=editable}} -
+ + +
diff --git a/templates/items/simple.html b/templates/items/simple.html new file mode 100644 index 0000000..d7746bb --- /dev/null +++ b/templates/items/simple.html @@ -0,0 +1,13 @@ +
+
+ +
+

+
+
+ + {{!-- Sheet Body --}} +
+ +
+
diff --git a/templates/parts/attributes.html b/templates/parts/attributes.html index 16dc156..95e5d74 100644 --- a/templates/parts/attributes.html +++ b/templates/parts/attributes.html @@ -1,23 +1,26 @@ -
- -
+
+
- {{#multiboxes data.attributes.insight.exp}} - - - - - - - - - - - - - - - {{/multiboxes}} +
+ +
+
+ {{#multiboxes data.attributes.insight.exp}} + + + + + + + + + + + + + + {{/multiboxes}} +
{{!-- Skills --}} @@ -50,7 +53,7 @@ -
study
+
Study
{{/multiboxes}}
@@ -66,7 +69,7 @@ -
survey
+
Survey
{{/multiboxes}}
@@ -82,30 +85,34 @@ -
tinker
+
Tinker
{{/multiboxes}}
-
+
- {{#multiboxes data.attributes.prowess.exp}} - - - - - - - - - - - - - - - {{/multiboxes}} +
+ +
+
+ {{#multiboxes data.attributes.prowess.exp}} + + + + + + + + + + + + + + {{/multiboxes}} +
{{!-- Skills --}} @@ -122,7 +129,7 @@ -
finesse
+
Finesse
{{/multiboxes}}
@@ -138,7 +145,7 @@ -
prowl
+
Prowl
{{/multiboxes}}
@@ -154,7 +161,7 @@ -
skirmish
+
Skirmish
{{/multiboxes}}
@@ -170,33 +177,37 @@ -
wreck
+
Wreck
{{/multiboxes}}
-
+
- {{#multiboxes data.attributes.resolve.exp}} - - - - - - - - - - - - - - - {{/multiboxes}} +
+ +
+
+ {{#multiboxes data.attributes.resolve.exp}} + + + + + + + + + + + + + + {{/multiboxes}} +
- + {{!-- Skills --}}
{{#multiboxes data.attributes.resolve.skills.attune}} @@ -211,7 +222,7 @@ -
attune
+
Attune
{{/multiboxes}}
@@ -227,7 +238,7 @@ -
command
+
Command
{{/multiboxes}}
@@ -243,7 +254,7 @@ -
consort
+
Consort
{{/multiboxes}}
@@ -259,10 +270,9 @@ -
sway
+
Sway
{{/multiboxes}}
-
- -
\ No newline at end of file +
+
diff --git a/templates/parts/coins.html b/templates/parts/coins.html new file mode 100644 index 0000000..6ec9e0a --- /dev/null +++ b/templates/parts/coins.html @@ -0,0 +1,118 @@ +
+ +
+
+ +
+
+ {{#multiboxes data.coins}} + + + + + + + + + + {{/multiboxes}} +
+
+ +
+ +
+ +
+
+ {{#multiboxes data.coins_stashed}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{/multiboxes}} +
+ +
+ +
\ No newline at end of file