Compare commits

..

No commits in common. "81aa563cfabf1b1d6976bd3cf32407a82510dd80" and "5f0361588ad2f91892cb05594bb29202888ad016" have entirely different histories.

5 changed files with 60 additions and 69 deletions

View File

@ -35,7 +35,6 @@ const bossData = {
moves: [ moves: [
{ {
marked: true, marked: true,
locked: true,
name: "Force of Will", name: "Force of Will",
description: `Whenever you act, do not draw. Simply declare what you do, and what happens after.`, description: `Whenever you act, do not draw. Simply declare what you do, and what happens after.`,
hasWriteIn: false, hasWriteIn: false,

View File

@ -30,7 +30,6 @@ const cappedArrayField = (innerField, maxSize, defaultValue = undefined) => new
const moveField = () => new SchemaField({ const moveField = () => new SchemaField({
marked: new BooleanField({ required: true, initial: false }), marked: new BooleanField({ required: true, initial: false }),
locked: new BooleanField({ required: false, initial: false }),
name: textField(), name: textField(),
description: textField(), description: textField(),
hasWriteIn: new BooleanField({ required: true, initial: false }), hasWriteIn: new BooleanField({ required: true, initial: false }),

View File

@ -151,11 +151,12 @@ const playbooks = {
{ {
marked: false, marked: false,
name: "Encyclopedic Knowledge", name: "Encyclopedic Knowledge",
description: `When you first meet a new heroic or villainous character, you can decide you've heard of them before, and choose to answer one of the below. Whatever you state is true. description: `When you first meet a new heroic or villainous character, The Boss may ask you one of the following. You've heard of them before: answer. Whatever you state is true.
<ul class="hench-list-2-col"> <ul class="hench-list-2-col">
<li>What is their power?</li> <li>What is their power?</li>
<li>Why are they here?</li> <li>Why are they here?</li>
<li>Who do they work with?</li> <li>Who do they work with?</li>
<li>Any yes or no question.</li>
</ul>`, </ul>`,
hasWriteIn: false, hasWriteIn: false,
writeIn: null, writeIn: null,
@ -170,7 +171,7 @@ const playbooks = {
{ {
marked: false, marked: false,
name: "Just an Average Citizen", name: "Just an Average Citizen",
description: `When you are out of uniform no one can identify you as a henchman until you reveal yourself or act with violence.`, description: `When you are out of uniform no one will suspect you are a henchman until you reveal yourself or act with violence.`,
hasWriteIn: false, hasWriteIn: false,
writeIn: null, writeIn: null,
}, },
@ -182,10 +183,9 @@ const playbooks = {
writeIn: null, writeIn: null,
}, },
{ {
marked: true, marked: false,
locked: true,
name: "Forum Lurker", name: "Forum Lurker",
description: `As a prep action you can trawl the web for information about a piece of the setting. State a single fact about this thing and draw 2. Ignore the cue, and use the rank: description: `As a prep action you can trawl the web for information about a piece of the setting. State a single fact about this thing and draw. Ignore the cue, and use the rank:
<ul class="hench-list-1-col"> <ul class="hench-list-1-col">
<li>1-2 You learn your information is correct but flawed.</li> <li>1-2 You learn your information is correct but flawed.</li>
<li>3-6 You learn your information is false but holds a kernel of truth.</li> <li>3-6 You learn your information is false but holds a kernel of truth.</li>
@ -261,7 +261,7 @@ const playbooks = {
<li>Quick</li> <li>Quick</li>
<li>Unbreakable</li> <li>Unbreakable</li>
<li>Explosive</li> <li>Explosive</li>
<li>Untraceable</li> <li>Explosive</li>
<li>Sniping</li> <li>Sniping</li>
</ul>`, </ul>`,
hasWriteIn: true, hasWriteIn: true,
@ -282,14 +282,13 @@ const playbooks = {
writeIn: null, writeIn: null,
}, },
{ {
marked: true, marked: false,
locked: true, name: "Like Old Times",
name: "Phone a Friend", description: `As a prep action, you can take an old friend out on the town. Describe how things were between you, back in the day and how you spend time with them now. Then, draw. Ignore the cue, and use the rank:
description: `As a prep action, you can ask an old friend to complete a favor. State what you want, then draw 2. Ignore the cue, and instead use the rank:
<ul class="hench-list-1-col"> <ul class="hench-list-1-col">
<li>1-2 They do it cleanly.</li> <li>1-2 They want back on your good side. What is the same? What is different now?</li>
<li>3-4 They do it sloppily. A new complication arises.</li> <li>3-4 They might forgive you. What did you do to hurt them?</li>
<li>5-6 You get roped into doing a favor for them during the next mission. If you fail to follow through, take 2 harm, Damaged Reputation.</li> <li>5-6 Things will never be the same as they used to be. Why?</li>
</ul>`, </ul>`,
hasWriteIn: false, hasWriteIn: false,
writeIn: null, writeIn: null,
@ -312,7 +311,7 @@ const playbooks = {
"Doing something unexpected", "Doing something unexpected",
], ],
missionPlanningQuestions: [ missionPlanningQuestions: [
"Explain an unconventional or secret weakness of the target.”", "Present your new prototype weapon, which the target is probably weak to.",
"State a fact about the target's defense systems.", "State a fact about the target's defense systems.",
"Ask the boss: what secret research is the target hiding?", "Ask the boss: what secret research is the target hiding?",
], ],
@ -345,10 +344,16 @@ const playbooks = {
moves: [ moves: [
{ {
marked: false, marked: false,
name: "Unorthodox", name: "Always Prepared",
description: `When you use your gear in a manner other than its intended purpose, and you play a 2, 3, or face card, clear 3 stress.`, description: `At the beginning of the action, write a new piece of gear in below. Choose one flaw. You may use this gear this mission, without counting towards your slots. At the end of the mission, erase it.
hasWriteIn: false, <ul class="hench-list-2-col">
writeIn: null, <li>Inaccurate</li>
<li>Slow</li>
<li>Unstable</li>
<li>Cumbersome</li>
</ul>`,
hasWriteIn: true,
writeIn: "",
}, },
{ {
marked: false, marked: false,
@ -359,8 +364,8 @@ const playbooks = {
}, },
{ {
marked: false, marked: false,
name: "Hammerspace", name: "Packmule",
description: `You can mark any number of gear slots.`, description: `Gain +1 gear slot. Your teammates can mark gear from your sheet, if you let them.`,
hasWriteIn: false, hasWriteIn: false,
writeIn: null, writeIn: null,
}, },
@ -372,24 +377,16 @@ const playbooks = {
writeIn: null, writeIn: null,
}, },
{ {
marked: true, marked: false,
locked: true, name: "Logistics",
name: "Always Prepared", description: `As a prep action you may tap your connections to procure something unusual. State what you're trying to find, then draw. Ignore the cue, and instead use the rank:
description: `As a prep action, you can design a new prototype invention. Write it in below and pick 1 flaw. You may use it as gear this mission. Then, draw 2. Ignore the cue, and use the rank:
<ul class="hench-list-1-col"> <ul class="hench-list-1-col">
<li>1-2 You make enough prototypes for the whole team to use. Each player may write it in as an extra gear option for this mission.</li> <li>1-2 You find a source in ample supply. However much you need, you got.</li>
<li>3-4 You're able to make one for yourself.</li> <li>3-4 You're able to squeeze out a sample. You have barely enough to work with.</li>
<li>5-6 You barely get it out of the lab. Pick an additional flaw.</li> <li>5-6 You catch trouble. Mark 2 heat.</li>
</ul>
<p><strong>Flaws:</strong></p>
<ul class="hench-list-2-col">
<li>Inaccurate</li>
<li>Slow</li>
<li>Unstable</li>
<li>Cumbersome</li>
</ul>`, </ul>`,
hasWriteIn: true, hasWriteIn: false,
writeIn: "", writeIn: null,
}, },
], ],
}, },
@ -457,7 +454,7 @@ const playbooks = {
{ {
marked: false, marked: false,
name: "I've Seen Worse", name: "I've Seen Worse",
description: `When you team up with a fellow hench, describe a similar memory from your past that has prepared you for this moment. Take +1 to the draw (possibly up to 4 cards), and you take one stress.`, description: `During The Action, you can help another character. Describe a similar memory from your past that has prepared you for this moment. They take +1 to their draw <em>(possibly up to 4 cards)</em>, and you take one stress.`,
hasWriteIn: false, hasWriteIn: false,
writeIn: null, writeIn: null,
}, },
@ -469,14 +466,13 @@ const playbooks = {
writeIn: null, writeIn: null,
}, },
{ {
marked: true, marked: false,
locked: true, name: "Friends in Low Places",
name: "Like Old Times", description: `As a prep action, you can ask an underworld contact to complete an unusual favor. State what you want, then draw. Ignore the cue, and instead use the rank:
description: `As a prep action, you can take some henches on a minor crime spree. Explain your petty crimes, then draw 2. Ignore the cue, and instead use the rank:
<ul class="hench-list-1-col"> <ul class="hench-list-1-col">
<li>1-2 You stir up some recognition and pride. Mark 2 experience, and describe something you've found on the scene.</li> <li>1-2 They phone it in, but they do it.</li>
<li>3-4 The night is a blur. Mark 1 experience, then describe something you've lost, and something youve gained.</li> <li>3-4 They do it sloppily. A new complication arises.</li>
<li>5-6 You cause a complete ruckus. When you draw engagement, treat the result as one level worse. How have you put the mission in jeopardy?</li> <li>5-6 You get roped into doing a favor for them during the next mission. If you fail to follow through, take 2 harm, "Damaged Reputation."</li>
</ul>`, </ul>`,
hasWriteIn: false, hasWriteIn: false,
writeIn: null, writeIn: null,
@ -531,7 +527,7 @@ const playbooks = {
], ],
moves: [ moves: [
{ {
marked: false, marked: true,
name: "Teacher's Pet", name: "Teacher's Pet",
description: `You live at the base, and are specially favored by the boss. Describe a privilege that only you receive. You cannot clock out.`, description: `You live at the base, and are specially favored by the boss. Describe a privilege that only you receive. You cannot clock out.`,
hasWriteIn: true, hasWriteIn: true,
@ -554,15 +550,14 @@ const playbooks = {
{ {
marked: false, marked: false,
name: "Folie à Deux", name: "Folie à Deux",
description: `At the beginning of the action, choose another hench. Whenever they help you or show support, clear 2 stress. Whenever they fail or are hurt, take 2 stress.`, description: `At the beginning of the action, choose another hench. Whenever they help you or show support, clear 1 stress. Whenever they fail or are hurt, take 1 stress.`,
hasWriteIn: false, hasWriteIn: false,
writeIn: null, writeIn: null,
}, },
{ {
marked: true, marked: false,
locked: true,
name: "Eavesdropper", name: "Eavesdropper",
description: `As a prep action, you can lurk around where you shouldn't be and listen for secrets. Choose a target or an ally, then draw 2. Ignore the cue, and instead use the rank: description: `As a prep action, you can lurk around where you shouldn't be and listen for secrets. Choose a target or an ally, then draw. Ignore the cue, and instead use the rank:
<ul class="hench-list-1-col"> <ul class="hench-list-1-col">
<li>1-2 You overhear something no one else knows - a future plan, a haunting deed, or their shame.</li> <li>1-2 You overhear something no one else knows - a future plan, a haunting deed, or their shame.</li>
<li>3-4 You overhear a common rumor - a worst held secret, a trick they've pulled, or a romantic tryst.</li> <li>3-4 You overhear a common rumor - a worst held secret, a trick they've pulled, or a romantic tryst.</li>
@ -623,14 +618,14 @@ const playbooks = {
{ {
marked: false, marked: false,
name: "Defiant", name: "Defiant",
description: `When you act in opposition to the boss's orders, take 2 less stress if you resist consequences.`, description: `When you act in opposition to the boss's orders, take 1 less stress if you resist consequences.`,
hasWriteIn: false, hasWriteIn: false,
writeIn: null, writeIn: null,
}, },
{ {
marked: false, marked: false,
name: "Steal the Spotlight", name: "Steal the Spotlight",
description: `When you claim the boss's actions as your own, clear 2 stress. If your audience believes you, clear 3.`, description: `When you claim the boss's actions as your own, clear 1 stress. If your audience believes you, clear 2.`,
hasWriteIn: false, hasWriteIn: false,
writeIn: null, writeIn: null,
}, },
@ -643,20 +638,19 @@ const playbooks = {
}, },
{ {
marked: false, marked: false,
name: "Splinter Cell", name: "Machinations",
description: `You have loyal henches on the team. When you take the team-building prep time action, you can draw 3 and hold two of the cards for the mission.`, description: `At the start of each mission, secretly note your own goal for this mission. When you complete it, reveal it, and take a free flashback to explain how it fits into your larger plans. Then, you may mark 2 ticks on any one of your tinker clocks.`,
hasWriteIn: false, hasWriteIn: false,
writeIn: null, writeIn: null,
}, },
{ {
marked: true, marked: false,
locked: true, name: "Understudy",
name: "Machinations", description: `As a prep action, you can take some henches on a minor crime spree. Explain your petty crimes, then draw. Ignore the cue, and instead use the rank:
description: `As a prep action, secretly note your own goal for this mission, and show it to the boss. During the mission, if you complete this goal, reveal it, then choose one:
<ul class="hench-list-1-col"> <ul class="hench-list-1-col">
<li>Clear all stress.</li> <li>1-2 You stir up some recognition and pride. Clear 1 heat, and mark 1 tick on one of your tinker clocks.</li>
<li>Reduce all marked harm by 1 level. <em>(Level 1 harm is cleared).</em></li> <li>3-4 The night is a blur. Describe something you've lost, and something you've gained.</li>
<li>Mark 2 ticks on one of your tinker clocks.</li> <li>5-6 You cause a complete ruckus. Mark 2 heat.</li>
</ul>`, </ul>`,
hasWriteIn: false, hasWriteIn: false,
writeIn: null, writeIn: null,
@ -676,7 +670,7 @@ const playbooks = {
], ],
fixedInclinations: [ fixedInclinations: [
"Invoking rules or regulations.", "Invoking rules or regulations.",
"Draw on skills from your mundane life.", "Taking the laziest approach.",
], ],
missionPlanningQuestions: [ missionPlanningQuestions: [
"State something that, by Guild rule, the target cannot do to you this mission.", "State something that, by Guild rule, the target cannot do to you this mission.",
@ -739,12 +733,11 @@ const playbooks = {
writeIn: null, writeIn: null,
}, },
{ {
marked: true, marked: false,
locked: true,
name: "Hobbyist", name: "Hobbyist",
description: `As a prep action, you can invite a fellow hench to join you in your hobby. Name the hobby, and how they're involved, then draw 2. Ignore the cue, and instead use the rank: description: `As a prep action, you can invite a fellow hench to join you in your hobby. Name the hobby, and how they're involved, then draw. Ignore the cue, and instead use the rank:
<ul class="hench-list-1-col"> <ul class="hench-list-1-col">
<li>1-2 You have a wonderful time and brighten each others' spirits. You each clear 2 stress.</li> <li>1-2 You have a wonderful time and brighten each others' spirits. Gain +1 card to your next home life draw.</li>
<li>3-4 You have a pleasant, but ordinary, time. Clear 1 stress; they mark 1 experience.</li> <li>3-4 You have a pleasant, but ordinary, time. Clear 1 stress; they mark 1 experience.</li>
<li>5-6 You completely lose track of time. Lose a remaining prep action, or take 1 harm "sleep deprived."</li> <li>5-6 You completely lose track of time. Lose a remaining prep action, or take 1 harm "sleep deprived."</li>
</ul>`, </ul>`,

View File

@ -90,7 +90,7 @@
{{#each actor.system.moves}} {{#each actor.system.moves}}
<div class="hench-row hench-l-grey hench-flex-resizeable hench-gap-narrow"> <div class="hench-row hench-l-grey hench-flex-resizeable hench-gap-narrow">
<div class="hench-box hench-flex-fixed"> <div class="hench-box hench-flex-fixed">
<input type="checkbox" name="hench-move-checkbox-{{@index}}" class="hench-checkbox-toggle-field" data-field-path="system.moves[{{@index}}].marked" {{#if this.marked}}checked{{/if}} {{#if this.locked}}disabled{{/if}} /> <input type="checkbox" name="hench-move-checkbox-{{@index}}" class="hench-checkbox-toggle-field" data-field-path="system.moves[{{@index}}].marked" {{#if this.marked}}checked{{/if}} />
</div> </div>
<div class="hench-box hench-flex-resizeable hench-gap-narrow hench-padding-narrow"> <div class="hench-box hench-flex-resizeable hench-gap-narrow hench-padding-narrow">
<div> <div>

View File

@ -230,7 +230,7 @@
{{#each actor.system.moves}} {{#each actor.system.moves}}
<div class="hench-row hench-l-grey hench-flex-resizeable hench-gap-narrow"> <div class="hench-row hench-l-grey hench-flex-resizeable hench-gap-narrow">
<div class="hench-box hench-flex-fixed"> <div class="hench-box hench-flex-fixed">
<input type="checkbox" name="hench-move-checkbox-{{@index}}" class="hench-checkbox-toggle-field" data-field-path="system.moves[{{@index}}].marked" {{#if this.marked}}checked{{/if}} {{#if this.locked}}disabled{{/if}} /> <input type="checkbox" name="hench-move-checkbox-{{@index}}" class="hench-checkbox-toggle-field" data-field-path="system.moves[{{@index}}].marked" {{#if this.marked}}checked{{/if}} />
</div> </div>
<div class="hench-box hench-flex-resizeable hench-gap-narrow hench-padding-narrow"> <div class="hench-box hench-flex-resizeable hench-gap-narrow hench-padding-narrow">
<div> <div>