Compare commits

...

8 Commits

Author SHA1 Message Date
81aa563cfa Timecard update 2025-05-23 13:44:26 -04:00
e77da43e5c Usurper update 2025-05-23 13:43:20 -04:00
7a0d87a258 Outcast update 2025-05-23 13:39:53 -04:00
0547d09d8a Demoted update 2025-05-23 13:39:13 -04:00
864784b394 Inventor update 2025-05-23 13:33:34 -04:00
c9393f9e37 Badass update 2025-05-23 13:23:00 -04:00
c4b97cf3f6 Superfan update 2025-05-23 13:20:46 -04:00
a1d4e07408 Add locked moves for pre-selected moves 2025-05-23 13:18:25 -04:00
5 changed files with 69 additions and 60 deletions

View File

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

View File

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

View File

@ -151,12 +151,11 @@ const playbooks = {
{
marked: false,
name: "Encyclopedic Knowledge",
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.
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.
<ul class="hench-list-2-col">
<li>What is their power?</li>
<li>Why are they here?</li>
<li>Who do they work with?</li>
<li>Any yes or no question.</li>
</ul>`,
hasWriteIn: false,
writeIn: null,
@ -171,7 +170,7 @@ const playbooks = {
{
marked: false,
name: "Just an Average Citizen",
description: `When you are out of uniform no one will suspect you are a henchman until you reveal yourself or act with violence.`,
description: `When you are out of uniform no one can identify you as a henchman until you reveal yourself or act with violence.`,
hasWriteIn: false,
writeIn: null,
},
@ -183,9 +182,10 @@ const playbooks = {
writeIn: null,
},
{
marked: false,
marked: true,
locked: true,
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. 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 2. Ignore the cue, and use the rank:
<ul class="hench-list-1-col">
<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>
@ -261,7 +261,7 @@ const playbooks = {
<li>Quick</li>
<li>Unbreakable</li>
<li>Explosive</li>
<li>Explosive</li>
<li>Untraceable</li>
<li>Sniping</li>
</ul>`,
hasWriteIn: true,
@ -282,13 +282,14 @@ const playbooks = {
writeIn: null,
},
{
marked: false,
name: "Like Old Times",
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:
marked: true,
locked: true,
name: "Phone a Friend",
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">
<li>1-2 They want back on your good side. What is the same? What is different now?</li>
<li>3-4 They might forgive you. What did you do to hurt them?</li>
<li>5-6 Things will never be the same as they used to be. Why?</li>
<li>1-2 They do it cleanly.</li>
<li>3-4 They do it sloppily. A new complication arises.</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>`,
hasWriteIn: false,
writeIn: null,
@ -311,7 +312,7 @@ const playbooks = {
"Doing something unexpected",
],
missionPlanningQuestions: [
"Present your new prototype weapon, which the target is probably weak to.",
"Explain an unconventional or secret weakness of the target.”",
"State a fact about the target's defense systems.",
"Ask the boss: what secret research is the target hiding?",
],
@ -344,16 +345,10 @@ const playbooks = {
moves: [
{
marked: false,
name: "Always Prepared",
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.
<ul class="hench-list-2-col">
<li>Inaccurate</li>
<li>Slow</li>
<li>Unstable</li>
<li>Cumbersome</li>
</ul>`,
hasWriteIn: true,
writeIn: "",
name: "Unorthodox",
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.`,
hasWriteIn: false,
writeIn: null,
},
{
marked: false,
@ -364,8 +359,8 @@ const playbooks = {
},
{
marked: false,
name: "Packmule",
description: `Gain +1 gear slot. Your teammates can mark gear from your sheet, if you let them.`,
name: "Hammerspace",
description: `You can mark any number of gear slots.`,
hasWriteIn: false,
writeIn: null,
},
@ -377,16 +372,24 @@ const playbooks = {
writeIn: null,
},
{
marked: false,
name: "Logistics",
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:
marked: true,
locked: true,
name: "Always Prepared",
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">
<li>1-2 You find a source in ample supply. However much you need, you got.</li>
<li>3-4 You're able to squeeze out a sample. You have barely enough to work with.</li>
<li>5-6 You catch trouble. Mark 2 heat.</li>
<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>3-4 You're able to make one for yourself.</li>
<li>5-6 You barely get it out of the lab. Pick an additional flaw.</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>`,
hasWriteIn: false,
writeIn: null,
hasWriteIn: true,
writeIn: "",
},
],
},
@ -454,7 +457,7 @@ const playbooks = {
{
marked: false,
name: "I've Seen Worse",
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.`,
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.`,
hasWriteIn: false,
writeIn: null,
},
@ -466,13 +469,14 @@ const playbooks = {
writeIn: null,
},
{
marked: false,
name: "Friends in Low Places",
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:
marked: true,
locked: true,
name: "Like Old Times",
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">
<li>1-2 They phone it in, but they do it.</li>
<li>3-4 They do it sloppily. A new complication arises.</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>1-2 You stir up some recognition and pride. Mark 2 experience, and describe something you've found on the scene.</li>
<li>3-4 The night is a blur. Mark 1 experience, then describe something you've lost, and something youve gained.</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>
</ul>`,
hasWriteIn: false,
writeIn: null,
@ -527,7 +531,7 @@ const playbooks = {
],
moves: [
{
marked: true,
marked: false,
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.`,
hasWriteIn: true,
@ -550,14 +554,15 @@ const playbooks = {
{
marked: false,
name: "Folie à Deux",
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.`,
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.`,
hasWriteIn: false,
writeIn: null,
},
{
marked: false,
marked: true,
locked: true,
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. 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 2. Ignore the cue, and instead use the rank:
<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>3-4 You overhear a common rumor - a worst held secret, a trick they've pulled, or a romantic tryst.</li>
@ -618,14 +623,14 @@ const playbooks = {
{
marked: false,
name: "Defiant",
description: `When you act in opposition to the boss's orders, take 1 less stress if you resist consequences.`,
description: `When you act in opposition to the boss's orders, take 2 less stress if you resist consequences.`,
hasWriteIn: false,
writeIn: null,
},
{
marked: false,
name: "Steal the Spotlight",
description: `When you claim the boss's actions as your own, clear 1 stress. If your audience believes you, clear 2.`,
description: `When you claim the boss's actions as your own, clear 2 stress. If your audience believes you, clear 3.`,
hasWriteIn: false,
writeIn: null,
},
@ -638,19 +643,20 @@ const playbooks = {
},
{
marked: false,
name: "Machinations",
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.`,
name: "Splinter Cell",
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.`,
hasWriteIn: false,
writeIn: null,
},
{
marked: false,
name: "Understudy",
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:
marked: true,
locked: true,
name: "Machinations",
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">
<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>3-4 The night is a blur. Describe something you've lost, and something you've gained.</li>
<li>5-6 You cause a complete ruckus. Mark 2 heat.</li>
<li>Clear all stress.</li>
<li>Reduce all marked harm by 1 level. <em>(Level 1 harm is cleared).</em></li>
<li>Mark 2 ticks on one of your tinker clocks.</li>
</ul>`,
hasWriteIn: false,
writeIn: null,
@ -670,7 +676,7 @@ const playbooks = {
],
fixedInclinations: [
"Invoking rules or regulations.",
"Taking the laziest approach.",
"Draw on skills from your mundane life.",
],
missionPlanningQuestions: [
"State something that, by Guild rule, the target cannot do to you this mission.",
@ -733,11 +739,12 @@ const playbooks = {
writeIn: null,
},
{
marked: false,
marked: true,
locked: true,
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. 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 2. Ignore the cue, and instead use the rank:
<ul class="hench-list-1-col">
<li>1-2 You have a wonderful time and brighten each others' spirits. Gain +1 card to your next home life draw.</li>
<li>1-2 You have a wonderful time and brighten each others' spirits. You each clear 2 stress.</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>
</ul>`,

View File

@ -90,7 +90,7 @@
{{#each actor.system.moves}}
<div class="hench-row hench-l-grey hench-flex-resizeable hench-gap-narrow">
<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}} />
<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}} />
</div>
<div class="hench-box hench-flex-resizeable hench-gap-narrow hench-padding-narrow">
<div>

View File

@ -230,7 +230,7 @@
{{#each actor.system.moves}}
<div class="hench-row hench-l-grey hench-flex-resizeable hench-gap-narrow">
<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}} />
<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}} />
</div>
<div class="hench-box hench-flex-resizeable hench-gap-narrow hench-padding-narrow">
<div>